edit.vue 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <template>
  2. <view >
  3. <u-toast ref="uToast"/>
  4. <view class="bg-white" style="padding: 10rpx 30rpx;margin: 20rpx;border-radius: 12rpx;">
  5. <u-form :label-style="labelStyle" label-width="180" :model="form" ref="uForm">
  6. <u-form-item label="住户姓名" :required="true"><u-input v-model="form.name" placeholder="请输入住户姓名"/></u-form-item>
  7. <u-form-item label="性别" :required="true">
  8. <u-input type="select" :select-open="sexShow" v-model="sexLabel" placeholder="请选择性别" @click="sexShow=true"></u-input>
  9. </u-form-item>
  10. <u-form-item label="所属小区" :required="true">
  11. <u-input v-model="form.residentialName" disabled></u-input>
  12. </u-form-item>
  13. <u-form-item label="所属楼栋" :required="true">
  14. <u-input v-model="form.buildingName" disabled></u-input>
  15. </u-form-item>
  16. <u-form-item label="所属单元" :required="true">
  17. <u-input v-model="form.unitName" disabled></u-input>
  18. </u-form-item>
  19. <u-form-item label="所属房间" :required="true">
  20. <u-input v-model="form.roomName" disabled></u-input>
  21. </u-form-item>
  22. <u-form-item label="住户类型" :required="true">
  23. <u-input type="select" :select-open="typeShow" v-model="typeLabel" placeholder="请选择房间" @click="typeShow=true"></u-input>
  24. </u-form-item>
  25. <u-form-item label="手机号" :required="true">
  26. <u-input v-model="form.phone" placeholder="请填写手机号"></u-input>
  27. </u-form-item>
  28. <u-form-item label="证件类型">
  29. <text>身份证</text>
  30. </u-form-item>
  31. <u-form-item label="证件号码">
  32. <u-input v-model="form.idCard" placeholder="请填写证件号码" type="idcard"></u-input>
  33. </u-form-item>
  34. <u-form-item label="籍贯">
  35. <u-input v-model="form.nativePlace" placeholder="请填写籍贯"></u-input>
  36. </u-form-item>
  37. <u-form-item label="备注" label-position="top">
  38. <u-input type="textarea" placeholder="请填写备注" v-model="form.remark" />
  39. </u-form-item>
  40. </u-form>
  41. </view>
  42. <!-- 性别 -->
  43. <u-select @confirm="sexConfirm" v-model="sexShow" :list="sexList"></u-select>
  44. <!-- 住户类型 -->
  45. <u-select @confirm="typeConfirm" v-model="typeShow" :list="typeList"></u-select>
  46. <view @click="confirm" style="display: flex;justify-content: center;">
  47. <view class="cu-btn bg-blue radius" style="width: 70%;height: 84rpx;margin: 20rpx 0;">
  48. 提交
  49. </view>
  50. </view>
  51. </view>
  52. </template>
  53. <script>
  54. export default {
  55. name: '',
  56. data() {
  57. return {
  58. labelStyle:{
  59. "fontWeight":"600"
  60. },
  61. form:{
  62. type:-1
  63. },
  64. // 性别
  65. sexLabel:'', //回显
  66. sexShow:false,
  67. sexList:[
  68. {
  69. value: "0",
  70. label: "未知"
  71. },
  72. {
  73. value:'1',
  74. label:'男'
  75. },
  76. {
  77. value:'2',
  78. label:'女'
  79. },
  80. ],
  81. //住户类型
  82. typeLabel:'', //回显
  83. typeShow:false,
  84. typeList:[
  85. {
  86. value:'0',
  87. label:'业主'
  88. },
  89. {
  90. value:'1',
  91. label:'成员'
  92. },
  93. {
  94. value:'2',
  95. label:'租户'
  96. },
  97. ],
  98. };
  99. },
  100. onLoad(options) {
  101. this.fetchData(options.id)
  102. },
  103. methods:{
  104. fetchData(id){
  105. this.$api.user.detail({id: id}).then(res=>{
  106. res = res.data
  107. //数据
  108. this.form={
  109. id:res.id,
  110. name:res.name,
  111. residentialName:res.residentialName,
  112. residentialId:res.residentialId,
  113. buildingName:res.buildingName,
  114. buildingId:res.buildingId,
  115. unitName:res.unitName,
  116. unitId:res.unitId,
  117. roomName:res.roomName,
  118. roomId:res.roomId,
  119. type:res.type,
  120. phone:res.phone || '',
  121. sex:res.sex,
  122. idCard:res.idCard || '',
  123. birthPlace:res.birthPlace || '',
  124. file:res.file || '',
  125. remark:res.remark || '',
  126. nativePlace: res.nativePlace
  127. }
  128. //性别回显
  129. this.sexList.forEach(item=>{
  130. if (item.value==res.sex) {
  131. this.sexLabel=item.label
  132. }
  133. })
  134. //类型回显
  135. this.typeList.forEach(item=>{
  136. if (item.value==res.type) {
  137. this.typeLabel=item.label
  138. }
  139. })
  140. })
  141. },
  142. // 性别
  143. sexConfirm(e){
  144. this.sexLabel=e[0].label
  145. this.form.sex=e[0].value
  146. },
  147. //住户类型
  148. typeConfirm(e){
  149. this.typeLabel=e[0].label
  150. this.form.type=e[0].value
  151. },
  152. confirm(){
  153. debugger
  154. if (this.$isEmpty(this.form.name)) {
  155. this.$showToast('请输入姓名','error')
  156. return
  157. }
  158. if (this.form.sex == ""||this.form.sex == undefined) {
  159. this.$showToast('请选择性别',"error")
  160. return
  161. }
  162. if (this.form.type==-1) {
  163. this.$showToast('请选择住户类型','error')
  164. return
  165. }
  166. if (this.$isEmpty(this.form.phone)) {
  167. this.$showToast('请填写手机号码','error')
  168. return
  169. }
  170. if (!this.$verify.phone(this.form.phone)) {
  171. this.$showToast('手机格式不正确','error')
  172. return
  173. }
  174. if (!this.$isEmpty(this.form.idCard)) {
  175. if (!this.$verify.idCard(this.form.idCard)) {
  176. this.$showToast('身份证号码不正确','error')
  177. return
  178. }
  179. }
  180. console.log(this.form);
  181. this.$api.user.update(this.form).then(res=>{
  182. if (res.data==true) {
  183. this.$dialog.showModal('操作成功',false).then(res=>{
  184. this.$navigateBack()
  185. uni.navigateTo({
  186. url:"/pages/user/user"
  187. })
  188. })
  189. }else{
  190. this.$u.toast(res.msg)
  191. }
  192. })
  193. }
  194. }
  195. };
  196. </script>
  197. <style lang="scss" scoped>
  198. </style>