index.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <template>
  2. <view class="form">
  3. <view class="li" v-for="(item,index) in paramsForm" :key="index">
  4. <view class="label">{{item.title}}<text v-if="item.required == 1">(必填)</text></view>
  5. <input type="number" maxlength="11" v-model="item.value" :placeholder="'请输入'+item.title" placeholder-class="placeholder" class="ipt" v-if="item.code == 'phone'" />
  6. <input type="idcard" maxlength="18" v-model="item.value" :placeholder="'请输入'+item.title" placeholder-class="placeholder" class="ipt" v-else-if="item.code == 'cardNo'" />
  7. <view class="radio ddflex" v-else-if="item.code == 'sex'">
  8. <view class="lis ddflex" v-for="(it,idx) in sex" :key="idx" @tap="checkSex(index,idx)"><image :src="'../static/images/'+(item.value == it.value ? 'gou_h.png':'gou.png')"></image>{{it.label}}</view>
  9. </view>
  10. <input v-model="item.value" :placeholder="'请输入'+item.title" placeholder-class="placeholder" class="ipt" v-else />
  11. </view>
  12. <!-- <view class="li">
  13. <view class="label">姓名</view>
  14. <input placeholder="请输入真实姓名" placeholder-class="placeholder" class="ipt" />
  15. </view>
  16. <view class="li">
  17. <view class="label">性别</view>
  18. <view class="radio ddflex">
  19. <view class="lis ddflex"><image src="../static/images/gou_h.png"></image>男</view>
  20. <view class="lis ddflex"><image src="../static/images/gou.png"></image>女</view>
  21. </view>
  22. </view>
  23. <view class="li">
  24. <view class="label">手机号码</view>
  25. <input placeholder="请输入手机号码" placeholder-class="placeholder" class="ipt" />
  26. </view>
  27. <view class="li">
  28. <view class="label">身份证号码</view>
  29. <input placeholder="请输入身份证号码" placeholder-class="placeholder" class="ipt" />
  30. </view>
  31. <view class="li">
  32. <view class="label ddflex">联系地址<view class="edit ddflex" @click="jumpUrl('/mine/editAddress/editAddress?id=' + address.id+'&isOpen='+true)">修改<image src="../../static/pages/images/crico1.png"></image></view></view>
  33. <view class="addr ddflex" v-if="address">
  34. <image :src="picUrlss+'lvluo/open_dz.png'"></image>
  35. <view class="fflex">
  36. <view class="addr-dz">{{address.address}}<block v-if="address.house">{{address.house}}</block></view>
  37. <view class="addr-info">{{address.name}}<text>{{address.phone}}</text></view>
  38. </view>
  39. </view>
  40. <view class="add-box ddflex" v-else>
  41. <view class="add" @click="chooseAddress">授权微信地址</view>
  42. </view>
  43. </view>
  44. <view class="li ddflex" style="margin-top: 40rpx;">
  45. <view class="label fflex" style="margin-top: 0;">是否允许服务顾问上门拜访</view>
  46. <view class="switch ddflex"><view>不允许</view><switch :value="true" style="zoom: .7;"></switch></view>
  47. </view>
  48. <view class="li">
  49. <view class="label">兴趣爱好</view>
  50. <view class="select ddflex">
  51. <view class="lis">户外运动</view>
  52. <view class="lis">旅游</view>
  53. <view class="lis">摄影</view>
  54. <view class="lis">看书</view>
  55. <view class="lis">绘画</view>
  56. </view>
  57. </view>
  58. <view class="li">
  59. <view class="label">建议</view>
  60. <view class="textarea-box">
  61. <textarea placeholder="请输入" placeholder-class="placeholder" class="textarea"></textarea>
  62. <view class="text-num">0/200</view>
  63. </view>
  64. </view> -->
  65. <view style="height: 168rpx;"></view>
  66. <view class="bot">
  67. <view class="btn" @click="formSubmit()">保存</view>
  68. </view>
  69. </view>
  70. </template>
  71. <script>
  72. const app = getApp();
  73. const req = require("../../utils/request.js");
  74. const util = require("../../utils/util.js");
  75. export default {
  76. components: {},
  77. props: {},
  78. data() {
  79. return {
  80. paramsForm: [],
  81. personList: [],
  82. personPramas: [],
  83. sex: [
  84. {label: '男',value: 1},{label: '女',value: 2}
  85. ]
  86. }
  87. },
  88. onLoad(options) {
  89. let pages = getCurrentPages(); //获取所有页面栈实例列表
  90. let prevPage = pages[pages.length - 2]; //上一页页面实例
  91. if(prevPage.$vm.detail.params){
  92. this.paramsForm = JSON.parse(prevPage.$vm.detail.params).columnList;
  93. }
  94. this.personList = prevPage.$vm.personList;
  95. this.personPramas = prevPage.$vm.personPramas;
  96. },
  97. onShow() {
  98. },
  99. methods: {
  100. checkSex(index,idx){
  101. console.log('选择性别')
  102. this.paramsForm[index].value = this.sex[idx].value;
  103. this.$forceUpdate()
  104. },
  105. checkRequire(formItemList){
  106. let sfz = /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
  107. for(var i = 0; i < formItemList.length; i++){
  108. if(formItemList[i].required){
  109. if(!formItemList[i].value){
  110. req.msg('请填写' + formItemList[i].title);
  111. return false;
  112. }else{
  113. if(formItemList[i].code == 'phone' && !util.isMobile(formItemList[i].value)) return req.msg('请填写正确的手机号码');
  114. if(formItemList[i].code == 'cardNo' && !sfz.test(formItemList[i].value)) return req.msg('请填写正确的身份证号码');
  115. }
  116. }
  117. }
  118. return true;
  119. },
  120. formSubmit(){
  121. let valueList = []
  122. if(!this.checkRequire(this.paramsForm)) return false
  123. let pages = getCurrentPages(); //获取所有页面栈实例列表
  124. let prevPage = pages[pages.length - 2]; //上一页页面实例
  125. // let obj = {};
  126. // this.paramsForm.map(it=>{
  127. // obj[it.code] = it.value;
  128. // })
  129. // this.personList.push(obj);
  130. // console.log('obj==',obj)
  131. console.log('this.paramsForm==',this.paramsForm)
  132. let paramsForm = []
  133. this.paramsForm.map(it=>{
  134. let obj = {
  135. title: it.title,
  136. code: it.code,
  137. value: it.value
  138. }
  139. paramsForm.push(obj);
  140. })
  141. let personList = this.personList;
  142. personList.push(paramsForm);
  143. prevPage.$vm.personList = personList;
  144. // let paramsForm = this.personPramas;
  145. // paramsForm.push(this.paramsForm);
  146. // prevPage.$vm.personPramas = paramsForm;
  147. uni.navigateBack()
  148. },
  149. },
  150. mounted() {},
  151. }
  152. </script>
  153. <style>page{background: #fff;}</style>
  154. <style>
  155. @import "./index.css";
  156. </style>