personal-info.js 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. (function() {
  2. Vue.component('personal-info', {
  3. template: `<div class="container ptb20 ">
  4. <div class="row w3-row">
  5. <left-menu :code="code"></left-menu>
  6. <div class="pl251">
  7. <div class="bgc-fff c-border ptb30">
  8. <form class="mainbox" id="form" role="form" onsubmit="return false;">
  9. <div class="c-t-center mb10">
  10. <img :src="userinfo.imgRemotePath || defaultImg" class="img-circle" width="100" height="100" id="personalImg" />
  11. <div class="c-f14 c-909090 pt15">
  12. <input type="file" @change="uploadImg()" class="c-vam c-inline-block type-hide pl105" accept="image/jpg,image/jpeg,image/png"><span class="changeImg">修改头像</span></div>
  13. </div>
  14. <div class="w3-row mt50">
  15. <div class="w3-col c-f16 m5 c-t-right" style="width:80px;">姓&emsp;&emsp;名</div>
  16. <div class="w3-rest pl15">
  17. <input type="text" class="form-control" v-model="userinfo.realName">
  18. </div>
  19. </div>
  20. <div class="w3-row">
  21. <div class="w3-col c-f16 m5 c-t-right" style="width:80px;">性&emsp;&emsp;别</div>
  22. <div class="w3-rest pl15 c-f14">
  23. <input type="radio" name="gender" value="0" v-model="userinfo.gender">&emsp;男&emsp;
  24. <input type="radio" name="gender" value="1" v-model="userinfo.gender">&emsp;女
  25. </div>
  26. </div>
  27. <div class="w3-row mt25">
  28. <div class="w3-col c-f16 m5 c-t-right" style="width:80px;">手机号码</div>
  29. <div class="w3-rest pl15">
  30. <input type="text" class="form-control" v-model="userinfo.telephone">
  31. </div>
  32. </div>
  33. <div class="w3-row mt25">
  34. <div class="w3-col c-f16 m5 c-t-right" style="width:80px;">身份证号</div>
  35. <div class="w3-rest pl15">
  36. <input type="text" class="form-control" v-model="userinfo.idCardNo">
  37. </div>
  38. </div>
  39. <div class="w3-row mt25">
  40. <div class="w3-col c-f16 m5 c-t-right" style="width:80px;">社保卡号</div>
  41. <div class="w3-rest pl15">
  42. <input type="text" class="form-control" v-model="userinfo.ssid">
  43. </div>
  44. </div>
  45. <div class="w3-row mt25">
  46. <div class="w3-col c-f16 m5 c-t-right" style="width:80px;">医疗保险号</div>
  47. <div class="w3-rest pl15">
  48. <input type="text" class="form-control" v-model="userinfo.micard">
  49. </div>
  50. </div>
  51. <div class="w3-row mt25">
  52. <div class="w3-col c-323232 c-f16 m5 c-t-right" style="width:80px;">行&emsp;&emsp;业</div>
  53. <div class="pl105" data-toggle="modal" data-target="#selindustry">
  54. <input id="industry" placeholder="请选择行业" type="text" class="form-control" name="industry" v-model="userinfo.profession"><span class="caret selcaret"></span>
  55. </div>
  56. </div>
  57. <div class="w3-row mt25">
  58. <div class="w3-col c-323232 c-f16 m5 c-t-right" style="width:80px;">家庭住址</div>
  59. <div class="pl105">
  60. <div class="dropdown">
  61. <a id="addressLabel" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
  62. <input id="addrcode" placeholder="请选择家庭住址" type="text" class="form-control" name="addrcode" :value="address"><span class="caret selcaret"></span>
  63. </a>
  64. <selsect-address :userinfo="userinfo"></selsect-address>
  65. </div>
  66. <textarea class="form-control mt10" v-model="userinfo.street"></textarea>
  67. </div>
  68. </div>
  69. <div class="c-t-center ">
  70. <button type="submit" class="btn btn-theme c-f16 mtb30" style="width:144px;" >保 存</button>
  71. </div>
  72. </form>
  73. <select-industry :industryid="industryid" :directionid="directionid" ref="getIndustry"></select-industry>
  74. </div>
  75. </div>
  76. </div>
  77. </div>`,
  78. props: [],
  79. data: function() {
  80. return {
  81. userinfo: {
  82. areaId: 330902,
  83. areaName: "定海区",
  84. cityId: 330900,
  85. cityName: "舟山市",
  86. demographicId: "362321199703137824",
  87. gender: "1",
  88. id: "0dae00035ab8be56319e6d2e0f183443",
  89. idCardNo: "362321199703137824",
  90. imgLocalPath: "",
  91. imgRemotePath: "http://172.19.103.52:80/group1/M00/1F/68/rBFuWFrPC4WAEdQxAAANa_JH8v8564.jpg",
  92. micard: "D95398393",
  93. profession: "网站/APP",
  94. provinceId: 330000,
  95. provinceName: "浙江省",
  96. realName: "柯诗莹",
  97. ssid: "D111111113",
  98. street: "33311513街道打 软件园二期望海路55号之一健康之路",
  99. telephone: "18950186666",
  100. userType: "GovEmployee",
  101. },
  102. code: "info",
  103. industryid: -1,
  104. directionid: -1,
  105. industryname: "",
  106. directionname: "",
  107. address: '',
  108. defaultImg:"../../../images/moren_touxiang_img.png",
  109. }
  110. },
  111. mounted: function() {
  112. var vm = this
  113. vm.address=vm.userinfo.provinceName+"/"+vm.userinfo.cityName+"/"+vm.userinfo.areaName
  114. $('.dropdown-toggle').dropdown()
  115. $('#selindustry').on('hidden.bs.modal', function(e) {
  116. vm.getNewIndustry()
  117. })
  118. },
  119. methods: {
  120. getNewIndustry: function() {
  121. var vm = this
  122. var aaa = vm.$refs.getIndustry.industryname
  123. var bbb = vm.$refs.getIndustry.directionname
  124. if(aaa != "") {
  125. vm.industryname = aaa
  126. vm.industryid = vm.$refs.getIndustry.industryid
  127. }
  128. if(bbb != "") {
  129. vm.directionname = bbb
  130. vm.directionid = vm.$refs.getIndustry.directionid
  131. }
  132. if(vm.industryname == "请选择行业") {
  133. $("#industry").val("")
  134. } else {
  135. $("#industry").val(vm.industryname + ">" + vm.directionname)
  136. }
  137. },
  138. update: function() {
  139. if(!this.value) {
  140. mui.toast(this.keyName + "不能为空!");
  141. return
  142. } else if(this.userinfo.key == 'idCardNo' && !this.isCardNo(this.value)) {
  143. mui.toast("请输入有效的身份证!");
  144. return
  145. } else if(this.userinfo.key == 'micard' && !this.validSSC(this.value)) {
  146. mui.toast("请填写有效的医保卡卡号");
  147. return
  148. } else if(this.userinfo.key == 'ssid' && !this.validNumWord(this.value)) {
  149. mui.toast("请填写有效的社保卡号");
  150. return
  151. }
  152. this.userinfo.userinfo[this.userinfo.key] = this.value;
  153. mineAPI.userinforUpdate(this.userinfo.userinfo).then(function(res) {
  154. mui.toast("修改成功");
  155. app.reloadView('user-infor', "./user-infor.html");
  156. }).catch(function() {
  157. mui.toast("修改失败!");
  158. })
  159. },
  160. isCardNo: function(card) {
  161. // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
  162. var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
  163. return reg.test(card)
  164. }, // 校验医保卡号格式
  165. validSSC: function(ssc) {
  166. var sscReg = /^([a-zA-Z]{1}[a-zA-Z0-9]{8}|[0-9]{12})$/;
  167. return sscReg.test(ssc);
  168. },
  169. validNumWord: function(ssc) {
  170. var sscReg = /^[0-9a-zA-Z]+$/;
  171. return sscReg.test(ssc);
  172. }
  173. },
  174. })
  175. })()