user_info.html 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  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;}
  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(' 昵称',item.nickName,'nickName')">
  45. <a class="mui-navigate-right"><span class="r">{{item.nickName}}</span>昵称</a>
  46. </li>
  47. <li class="mui-table-view-cell" @click="pwd()">
  48. <a class="mui-navigate-right"><span class="r">修改密码</span>密码</a>
  49. </li>
  50. <li class="mui-table-view-cell" @click="op(' 邮箱',item.email=='null'?'':item.email,'email')">
  51. <a class="mui-navigate-right"><span class="r">{{item.email=='null'?'未填':item.email}}</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()"><a>拍照</a></li>
  63. <li class="mui-table-view-cell" @click="pickImg()"><a>选取现有</a></li>
  64. </ul>
  65. <ul class="mui-table-view">
  66. <li class="mui-table-view-cell" style="color: red;"><a href="#picture"><b>取消</b></a></li>
  67. </ul>
  68. </div>
  69. <!--图片剪裁-->
  70. <div id="clipp">
  71. <img id="image" alt="Picture" src="../../images/APP-banner2.jpg">
  72. <div class="op">
  73. <span class="mui-icon mui-icon mui-icon-closeempty mui-pull-left" @click="cancel()"></span>
  74. <span class="mui-icon mui-icon-checkmarkempty mui-pull-right" @click="save()"></span>
  75. </div>
  76. </div>
  77. </div>
  78. <script src="../../js/mui.min.js"></script>
  79. <script src="../../js/app.js"></script>
  80. <script src="../../js/vue.min.js"></script>
  81. <script src="../../js/cropper.min.js"></script>
  82. <script type="text/javascript">
  83. var cropper = null;
  84. var vm = new Vue({
  85. el: "#app",
  86. data: {
  87. item: {}
  88. },
  89. mounted: function() {
  90. mui.plusReady(function() {
  91. vm.getData();
  92. })
  93. },
  94. methods: {
  95. getData: function() {
  96. request(urls().userInfo, {id: getUser().id}, function(res) {
  97. vm.item = res;
  98. localStorage.setItem("user", JSON.stringify(res));
  99. vm.item.header=urls().path+vm.item.header;
  100. setTimeout(function(){
  101. plus.webview.getWebviewById('tab/mine.html').reload(true);
  102. },500);
  103. plus.nativeUI.closeWaiting();
  104. })
  105. },
  106. //拍照
  107. takePhoto: function() {
  108. plus.nativeUI.showWaiting("准备剪裁...");
  109. takePhoto(function(path) {
  110. plus.io.resolveLocalFileSystemURL(path, function(entry) {
  111. plus.nativeUI.closeWaiting();
  112. if(cropper != null) {
  113. cropper.destroy();
  114. }
  115. cropper = getClipper(1, entry.toLocalURL());
  116. });
  117. })
  118. },
  119. //选择现有
  120. pickImg: function() {
  121. pickImg(function(p) {
  122. if(cropper != null) {
  123. cropper.destroy();
  124. }
  125. cropper = getClipper(1, p.files[0]);
  126. }, 1);
  127. },
  128. //裁剪结束并上传
  129. save: function() {
  130. plus.nativeUI.showWaiting("正在上传...");
  131. //获得裁剪对象
  132. var croppedCanvas = cropper.getCroppedCanvas({width: 100,height: 100})
  133. var dataUrl = croppedCanvas.toDataURL();
  134. request(urls().user_upload,{id:getUser().id,dataImage:dataUrl},function(res) {
  135. vm.item.header=urls().path+res.url;
  136. mui.toast("上传成功");
  137. vm.getData();
  138. plus.nativeUI.closeWaiting();
  139. })
  140. document.getElementById("clipp").style.display = 'none';
  141. },
  142. //取消裁剪
  143. cancel: function() {
  144. document.getElementById("clipp").style.display = 'none';
  145. },
  146. //修改密码
  147. pwd:function(){
  148. open('find_pass', 'find_pass.html', null, 'slide-in-bottom');
  149. },
  150. //编辑其它
  151. op: function(msg, val, op) {
  152. open('edit_info', 'edit_info.html', {msg: msg,value: val,op: op}, 'slide-in-bottom');
  153. }
  154. }
  155. })
  156. </script>
  157. </body>
  158. </html>