环卫车小程序前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

161 lines
3.8 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. <template>
  2. <view>
  3. <u--form labelPosition="top" :model="form" :rules="rules" ref="uForm" labelWidth="80">
  4. <view class="se-p-20">
  5. <view class="se-p-20 se-bgc-white se-br-10 se-fs-20">
  6. <u-form-item label="姓名" prop="name">
  7. <u--input v-model="form.name" placeholder="请输入姓名名称"></u--input>
  8. </u-form-item>
  9. <u-form-item label="身份证号码" prop="idCard">
  10. <u--input v-model="form.idCard" placeholder="请输入详细地址"></u--input>
  11. </u-form-item>
  12. <u-form-item label="联系电话" prop="mobile">
  13. <u--input v-model="form.mobile" placeholder="请输入联系方式"></u--input>
  14. </u-form-item>
  15. </view>
  16. </view>
  17. <view class="se-p-20">
  18. <view class="se-px-20 se-pb-20 se-bgc-white se-br-10 se-fs-20">
  19. <u-form-item prop="file" labelWidth="2">
  20. <view class="se-flex se-flex-v-sa">
  21. <view class="se-py-20 se-w-p-100 se-flex">
  22. <view class="line-green"></view>
  23. <view class="se-ml-10">
  24. 身份证上传(正面)
  25. </view>
  26. </view>
  27. <view class="se-py-20 se-w-p-100">
  28. <u-upload :fileList="form.fileList" @afterRead="afterRead" @delete="deletePic" name="1"
  29. multiple :maxCount="10"></u-upload>
  30. </view>
  31. </view>
  32. </u-form-item>
  33. </view>
  34. </view>
  35. <view class="se-px-20 se-pt-20">
  36. <view class="se-px-20 se-pb-80 se-fs-20 se-flex">
  37. <view @click="submit"
  38. class="se-mx-10 se-flex-1 se-br-40 se-flex-h-c se-h-80 se-lh-80 se-ta-c se-fs-28 se-c-white se-bgc-green">
  39. <text>确认</text>
  40. </view>
  41. </view>
  42. </view>
  43. </u--form>
  44. </view>
  45. </template>
  46. <script>
  47. import { addUser } from "@/common/api.js"
  48. export default{
  49. data(){
  50. return{
  51. form: {
  52. name: '',
  53. idCard:'',
  54. mobile: '',
  55. file: '',
  56. fileList:[
  57. ]
  58. },
  59. rules: {
  60. name: [{
  61. type: 'string',
  62. required: true,
  63. message: '请输入姓名名称',
  64. trigger: ['blur', 'change']
  65. }],
  66. mobile: [
  67. {
  68. required: true,
  69. message: '请输入手机号',
  70. trigger: ['change','blur'],
  71. },
  72. {
  73. validator: (rule, value, callback) => {
  74. return uni.$u.test.mobile(value);
  75. },
  76. message: '手机号码不正确',
  77. trigger: ['change','blur'],
  78. },
  79. ],
  80. file: [{
  81. type: 'string',
  82. required: true,
  83. message: '请选择身份证照片',
  84. trigger: ['blur', 'change']
  85. }]
  86. },
  87. }
  88. },
  89. watch: {
  90. 'form.fileList'(newValue, oldValue) {
  91. if (newValue.length > 0) {
  92. this.form.file = '有'
  93. } else {
  94. this.form.file = ''
  95. }
  96. }
  97. },
  98. onReady() {
  99. this.$refs.uForm.setRules(this.rules)
  100. },
  101. methods: {
  102. submit() {
  103. let that = this
  104. that.$refs.uForm.validate().then(res => {
  105. // uni.$u.toast('校验成功')
  106. that.onAddUser()
  107. }).catch(errors => {
  108. console.info(errors)
  109. uni.$u.toast('校验失败')
  110. })
  111. },
  112. onAddUser(){
  113. let that = this
  114. let params={
  115. cerImage:that.form.fileList.map(item => item.url).join(','),
  116. cerNo:that.form.idCard,
  117. id:uni.getStorageSync('userInfo').id,
  118. name:that.form.name,
  119. phone:that.form.mobile
  120. }
  121. addUser(params).then(response=>{
  122. uni.$u.toast(response.result)
  123. setTimeout(()=>{
  124. uni.switchTab({
  125. url:"/pages/home/index"
  126. })
  127. },1500)
  128. }).catch(error=>{
  129. })
  130. },
  131. deletePic(event) {
  132. this.form.fileList.splice(e.index, 1)
  133. },
  134. async afterRead(e) {
  135. let self = this
  136. e.file.forEach(file => {
  137. self.$Oss.ossUpload(file.url).then(url => {
  138. self.form.fileList.push({
  139. url
  140. })
  141. })
  142. })
  143. }
  144. }
  145. }
  146. </script>
  147. <style>
  148. page{
  149. background-color: #ffffff;
  150. }
  151. </style>
  152. <style lang="scss" scoped>
  153. .line-green {
  154. width: 8rpx;
  155. height: 32rpx;
  156. background: #669A32;
  157. border-radius: 4rpx;
  158. }
  159. </style>