user_info.html 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>个人信息</title>
  6. <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  7. <link href="../../css/mui.min.css" rel="stylesheet" />
  8. <link href="../../css/animate.min.css" rel="stylesheet" />
  9. <link href="../../css/cropper.min.css" rel="stylesheet" />
  10. <style>
  11. .mui-bar-nav~.mui-content{padding-top: 60px;}
  12. .r{float: right;margin-right: 20px;color: darkgray;font-size: 14px;}
  13. .head{line-height: 45px;}
  14. .mui-table-view-cell{padding: 14px;font-size: 14px;color: #7f7c7c;}
  15. .mui-table-view:before{background-color: rgba(200, 199, 204, 0);}
  16. .mui-table-view:after{background-color: rgba(200, 199, 204, 0);}
  17. .mui-table-view-cell:after{background-color: #dedbdb;}
  18. .img{width: 40px;height: 40px;border-radius: 50%;}
  19. .m_box {padding: 0px 10px 0px 10px;margin: 15px;box-shadow: 0 1px 6px #dbdbdb;}
  20. #clipp{position:fixed;width:100%;height:100%;top:0;background-color:black;display:none;z-index:9999999}
  21. #clipp img{max-width:100%;height:auto;vertical-align:middle;}
  22. #clipp .op{position:fixed;width:100%;bottom:0;}
  23. #clipp .mui-icon{color:white;font-size:50px;font-weight:bold}
  24. [v-cloak] {display: none;}
  25. </style>
  26. </head>
  27. <body>
  28. <div id="app" v-cloak>
  29. <header class="mui-bar mui-bar-nav">
  30. <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
  31. <h1 class="mui-title">个人信息</h1>
  32. </header>
  33. <div class="mui-content animated fadeInUp">
  34. <div class="m_box">
  35. <ul class="mui-table-view">
  36. <li class="mui-table-view-cell">
  37. <a href="#picture" class="mui-navigate-right">
  38. <span class="r">
  39. <img :src="item.header" class="img">
  40. </span>
  41. <span class="head">头像</span>
  42. </a>
  43. </li>
  44. <li class="mui-table-view-cell" @click="op('CN',item.nickName,1)">
  45. <a class="mui-navigate-right"><span class="r">{{item.nickName}}</span>昵称</a>
  46. </li>
  47. <li class="mui-table-view-cell" @click="op('身高',item.height,3)">
  48. <a class="mui-navigate-right"><span class="r">{{item.email}}</span>邮箱</a>
  49. </li>
  50. <li class="mui-table-view-cell">
  51. <a href="#sex" class="mui-navigate-right"><span class="r">{{item.size}}</span>出生日期</a>
  52. </li>
  53. <li class="mui-table-view-cell">
  54. <a href="#sex" class="mui-navigate-right"><span class="r">{{item.mTime}}</span>注册时间</a>
  55. </li>
  56. </ul>
  57. </div>
  58. </div>
  59. <!--拍照-->
  60. <div id="picture" class="mui-popover mui-popover-action mui-popover-bottom">
  61. <ul class="mui-table-view">
  62. <li class="mui-table-view-cell" @click="takePhoto()">
  63. <a>拍照</a>
  64. </li>
  65. <li class="mui-table-view-cell" @click="pickImg()">
  66. <a>选取现有</a>
  67. </li>
  68. </ul>
  69. <ul class="mui-table-view">
  70. <li class="mui-table-view-cell" style="color: red;">
  71. <a href="#picture"><b>取消</b></a>
  72. </li>
  73. </ul>
  74. </div>
  75. <!--性别-->
  76. <div id="sex" class="mui-popover mui-popover-action mui-popover-bottom">
  77. <ul class="mui-table-view">
  78. <li class="mui-table-view-cell" @click="size('S')"><a>S</a></li>
  79. <li class="mui-table-view-cell" @click="size('M')"><a>M</a></li>
  80. <li class="mui-table-view-cell" @click="size('L')"><a>L</a></li>
  81. <li class="mui-table-view-cell" @click="size('XL')"><a>XL</a></li>
  82. <li class="mui-table-view-cell" @click="size('均码')"><a>均码</a></li>
  83. </ul>
  84. <ul class="mui-table-view">
  85. <li class="mui-table-view-cell" style="color: red;">
  86. <a href="#sex"><b>取消</b></a>
  87. </li>
  88. </ul>
  89. </div>
  90. <!--新增的图片剪裁-->
  91. <div id="clipp">
  92. <img id="image" alt="Picture" src="../../images/APP-banner2.jpg">
  93. <div class="op">
  94. <span class="mui-icon mui-icon mui-icon-closeempty mui-pull-left" @click="cancel()"></span>
  95. <span class="mui-icon mui-icon-checkmarkempty mui-pull-right" @click="save()"></span>
  96. </div>
  97. </div>
  98. </div>
  99. <script src="../../js/mui.min.js"></script>
  100. <script src="../../js/app.js"></script>
  101. <script src="../../js/vue.min.js"></script>
  102. <script src="../../js/cropper.min.js"></script>
  103. <script type="text/javascript">
  104. var cropper = null;
  105. var vm = new Vue({
  106. el: "#app",
  107. data: {
  108. item: {}
  109. },
  110. mounted: function() {
  111. mui.plusReady(function() {
  112. vm.getData();
  113. })
  114. },
  115. methods: {
  116. getData: function() {
  117. request(urls().userInfo, {id: getUser().id}, function(res) {
  118. if(res.result == true) {
  119. vm.item = res.data;
  120. localStorage.setItem("user", JSON.stringify(res.data));
  121. vm.item.header=urls().path+vm.item.header;
  122. plus.webview.getWebviewById('tab/mine.html').reload(true);
  123. }else{
  124. mui.alert(res.msg);
  125. }
  126. plus.nativeUI.closeWaiting();
  127. })
  128. },
  129. //拍照
  130. takePhoto: function() {
  131. mui('#picture').popover('toggle');
  132. var cmr = plus.camera.getCamera();
  133. var res = cmr.supportedImageResolutions[0];
  134. var fmt = cmr.supportedImageFormats[0];
  135. plus.nativeUI.showWaiting("准备剪裁...");
  136. cmr.captureImage(function(path) {
  137. plus.io.resolveLocalFileSystemURL(path, function(entry) {
  138. plus.nativeUI.closeWaiting();
  139. if(cropper != null) {
  140. cropper.destroy();
  141. }
  142. cropper = getClipper(1, entry.toLocalURL());
  143. });
  144. }, function(error) {
  145. plus.nativeUI.closeWaiting();
  146. }, {
  147. resolution: res,
  148. format: fmt
  149. });
  150. },
  151. //选择现有
  152. pickImg: function() {
  153. mui('#picture').popover('toggle');
  154. // 从相册中选择图片然后裁剪
  155. plus.gallery.pick(function(path) {
  156. if(cropper != null) {
  157. cropper.destroy();
  158. }
  159. cropper = getClipper(1, path);
  160. }, {
  161. filter: "image"
  162. });
  163. },
  164. //裁剪结束并上传
  165. save: function() {
  166. plus.nativeUI.showWaiting("正在上传...");
  167. //获得裁剪对象
  168. var croppedCanvas = cropper.getCroppedCanvas({width: 100,height: 100})
  169. var dataUrl = croppedCanvas.toDataURL();
  170. request(urls().user_upload,{id:getUser().id,dataImage:dataUrl},function(res) {
  171. vm.item.header=urls().path+res.url;
  172. mui.toast("上传成功");
  173. vm.getData();
  174. plus.nativeUI.closeWaiting();
  175. })
  176. document.getElementById("clipp").style.display = 'none';
  177. },
  178. //取消裁剪
  179. cancel: function() {
  180. document.getElementById("clipp").style.display = 'none';
  181. },
  182. //编辑尺码
  183. size: function(op) {
  184. mui('#sex').popover('toggle');
  185. request(urls().edit_info, {field: 'size',id: getUser().id,value: op}, function(res) {
  186. if(res.result == true) {
  187. mui.toast("修改成功");
  188. vm.item.size = op;
  189. }
  190. plus.nativeUI.closeWaiting();
  191. })
  192. },
  193. //编辑其它
  194. op: function(msg, val, op) {
  195. open('edit_info', 'edit_info.html', {msg: msg,value: val,op: op}, 'slide-in-bottom');
  196. }
  197. }
  198. })
  199. </script>
  200. </body>
  201. </html>