用工小程序前端代码
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.

168 lines
4.3 KiB

7 months ago
  1. <template>
  2. <view>
  3. <u--form labelPosition="left" :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" class="se-bgc-f5" placeholder="请输入姓名名称"></u--input>
  8. </u-form-item>
  9. <u-form-item label="密码" prop="password">
  10. <u--input v-model="form.password" class="se-bgc-f5" placeholder="请输入您的密码"></u--input>
  11. </u-form-item>
  12. <u-form-item label="联系电话" prop="mobile">
  13. <u--input v-model="form.mobile" class="se-bgc-f5" placeholder="请输入联系方式"></u--input>
  14. </u-form-item>
  15. <u-form-item label="居住地址" prop="address">
  16. <u--input v-model="form.address" class="se-bgc-f5" placeholder="请输入详细地址"></u--input>
  17. </u-form-item>
  18. <u-form-item label="行业" prop="industry">
  19. <u--input v-model="form.industry" class="se-bgc-f5" placeholder="请输入行业"></u--input>
  20. </u-form-item>
  21. </view>
  22. </view>
  23. <view class="se-p-20">
  24. <view class="se-px-20 se-pb-20 se-bgc-white se-br-10 se-fs-20">
  25. <u-form-item prop="file" labelWidth="2">
  26. <view class="se-flex se-flex-v-sa">
  27. <view class="se-py-20 se-w-p-100 se-flex">
  28. <view class="line-orange"></view>
  29. <view class="se-ml-10">
  30. 身份证上传(正反面)
  31. </view>
  32. </view>
  33. <view class="se-py-20 se-w-p-100">
  34. <u-upload :fileList="fileList" @afterRead="afterRead" @delete="deletePic" name="1"
  35. multiple :maxCount="10"></u-upload>
  36. </view>
  37. </view>
  38. </u-form-item>
  39. </view>
  40. </view>
  41. <view class="se-px-20 se-pt-20">
  42. <view class="se-px-20 se-pb-80 se-fs-20 se-flex">
  43. <view @click="submit"
  44. class="se-mx-10 se-flex-1 se-br-40 se-flex-h-c se-h-60 se-lh-60 se-ta-c se-fs-28 se-c-white se-bgc-orange">
  45. <text>申请审核</text>
  46. </view>
  47. <view
  48. class="se-mx-10 se-flex-1 se-b se-br-40 se-flex-h-c se-h-60 se-lh-60 se-ta-c se-fs-28 se-c-66 se-bgc-f5">
  49. <text>联系我们</text>
  50. </view>
  51. </view>
  52. </view>
  53. </u--form>
  54. </view>
  55. </template>
  56. <script>
  57. export default{
  58. data(){
  59. return{
  60. current:0,
  61. navList:[
  62. {
  63. name: '企业入驻',
  64. }, {
  65. name: '个人入驻',
  66. }
  67. ],
  68. fileList: [],
  69. form: {
  70. name: '',
  71. password: '',
  72. mobile: '',
  73. address:'',
  74. industry:'',
  75. file: ''
  76. },
  77. rules: {
  78. name: [{
  79. type: 'string',
  80. required: true,
  81. message: '请输入姓名名称',
  82. trigger: ['blur', 'change']
  83. }],
  84. password: [{
  85. type: 'string',
  86. required: true,
  87. message: '请输入您的密码',
  88. trigger: ['blur', 'change']
  89. }],
  90. mobile: [
  91. {
  92. required: true,
  93. message: '请输入手机号',
  94. trigger: ['change','blur'],
  95. },
  96. {
  97. validator: (rule, value, callback) => {
  98. return uni.$u.test.mobile(value);
  99. },
  100. message: '手机号码不正确',
  101. trigger: ['change','blur'],
  102. },
  103. ],
  104. address: [{
  105. type: 'string',
  106. required: true,
  107. message: '请输入公司地址',
  108. trigger: ['blur', 'change']
  109. }],
  110. industry: [{
  111. type: 'string',
  112. required: true,
  113. message: '请输入行业',
  114. trigger: ['blur', 'change']
  115. }],
  116. file: [{
  117. type: 'string',
  118. required: true,
  119. message: '请选择营业执照',
  120. trigger: ['blur', 'change']
  121. }]
  122. },
  123. }
  124. },
  125. watch: {
  126. fileList(newValue, oldValue) {
  127. if (newValue.length > 0) {
  128. this.form.file = '有'
  129. } else {
  130. this.form.file = ''
  131. }
  132. }
  133. },
  134. onReady() {
  135. this.$refs.uForm.setRules(this.rules)
  136. },
  137. methods: {
  138. submit() {
  139. this.$refs.uForm.validate().then(res => {
  140. uni.$u.toast('校验通过')
  141. }).catch(errors => {
  142. // uni.$u.toast('校验失败')
  143. })
  144. },
  145. deletePic(event) {
  146. this.fileList.splice(e.index, 1)
  147. },
  148. async afterRead(e) {
  149. let self = this
  150. e.file.forEach(file => {
  151. self.$Oss.ossUpload(file.url).then(url => {
  152. self.fileList.push({
  153. url
  154. })
  155. })
  156. })
  157. }
  158. }
  159. }
  160. </script>
  161. <style lang="scss" scoped>
  162. .line-orange {
  163. width: 8rpx;
  164. height: 32rpx;
  165. background: #ff7a31;
  166. border-radius: 4rpx;
  167. }
  168. </style>