环卫车小程序前端代码
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.

138 lines
3.3 KiB

7 months 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="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. export default{
  48. data(){
  49. return{
  50. fileList: [],
  51. form: {
  52. name: '',
  53. idCard:'',
  54. mobile: '',
  55. file: ''
  56. },
  57. rules: {
  58. name: [{
  59. type: 'string',
  60. required: true,
  61. message: '请输入姓名名称',
  62. trigger: ['blur', 'change']
  63. }],
  64. mobile: [
  65. {
  66. required: true,
  67. message: '请输入手机号',
  68. trigger: ['change','blur'],
  69. },
  70. {
  71. validator: (rule, value, callback) => {
  72. return uni.$u.test.mobile(value);
  73. },
  74. message: '手机号码不正确',
  75. trigger: ['change','blur'],
  76. },
  77. ],
  78. file: [{
  79. type: 'string',
  80. required: true,
  81. message: '请选择身份证照片',
  82. trigger: ['blur', 'change']
  83. }]
  84. },
  85. }
  86. },
  87. watch: {
  88. fileList(newValue, oldValue) {
  89. if (newValue.length > 0) {
  90. this.form.file = '有'
  91. } else {
  92. this.form.file = ''
  93. }
  94. }
  95. },
  96. onReady() {
  97. this.$refs.uForm.setRules(this.rules)
  98. },
  99. methods: {
  100. submit() {
  101. uni.switchTab({
  102. url:"/pages/home/index"
  103. })
  104. this.$refs.uForm.validate().then(res => {
  105. uni.$u.toast('校验通过')
  106. }).catch(errors => {
  107. // uni.$u.toast('校验失败')
  108. })
  109. },
  110. deletePic(event) {
  111. this.fileList.splice(e.index, 1)
  112. },
  113. async afterRead(e) {
  114. let self = this
  115. e.file.forEach(file => {
  116. self.$Oss.ossUpload(file.url).then(url => {
  117. self.fileList.push({
  118. url
  119. })
  120. })
  121. })
  122. }
  123. }
  124. }
  125. </script>
  126. <style>
  127. page{
  128. background-color: #ffffff;
  129. }
  130. </style>
  131. <style lang="scss" scoped>
  132. .line-green {
  133. width: 8rpx;
  134. height: 32rpx;
  135. background: #669A32;
  136. border-radius: 4rpx;
  137. }
  138. </style>