baseInfo.vue 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. <template>
  2. <div>
  3. <el-form ref="registerForm" label-position="left" label-width="100px" :model="registerForm"
  4. :rules="registerRules">
  5. <el-form-item label="企业名称" prop="qyname">
  6. <el-input v-model="registerForm.qyname" type="text" auto-complete="off"
  7. placeholder="请输入正确的公司全称"></el-input>
  8. </el-form-item>
  9. <el-form-item label="用户名" prop="username">
  10. <el-input v-model="registerForm.username" auto-complete="off"
  11. placeholder="用户名长度3-20位,只能输入字母、数字、下划线,以字母开头"></el-input>
  12. </el-form-item>
  13. <el-form-item label="密码" prop="password">
  14. <el-input v-model="registerForm.password" type="password" auto-complete="off"
  15. placeholder="6-20位英文(区分大小写)、数字的组合"></el-input>
  16. </el-form-item>
  17. <el-form-item label="确认密码" prop="password">
  18. <el-input v-model="registerForm.password" type="password" auto-complete="off"
  19. placeholder="请再输入一遍上面的密码"></el-input>
  20. </el-form-item>
  21. <el-form-item label="负责人姓名" prop="name">
  22. <el-input v-model="registerForm.name" auto-complete="off" placeholder="请输入负责人姓名"></el-input>
  23. </el-form-item>
  24. <el-form-item label="手机号码" prop="photo">
  25. <el-input v-model="registerForm.photo" auto-complete="off" placeholder="请填写11位有效的手机号码"></el-input>
  26. </el-form-item>
  27. <el-form-item label="电子邮箱" prop="lxryx">
  28. <el-input v-model="registerForm.lxryx" auto-complete="off" placeholder="请填写有效的电子邮箱地址"></el-input>
  29. </el-form-item>
  30. <el-form-item label="邮政编码" prop="yzbm">
  31. <el-input v-model="registerForm.yzbm" auto-complete="off" placeholder="请输入邮政编码"></el-input>
  32. </el-form-item>
  33. <el-form-item label="营业执照" prop="yyzz">
  34. <!-- <el-upload class="avatar-uploader" action="https://jsonplaceholder.typicode.com/posts/"
  35. :show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
  36. <img v-if="imageUrl" :src="imageUrl" class="avatar">
  37. <i v-else class="el-icon-plus avatar-uploader-icon"></i>
  38. </el-upload> -->
  39. </el-form-item>
  40. <el-form-item style="width:100%;">
  41. <el-button :loading="loading" size="medium" type="primary" style="width:100%;" @click="handleRegister">
  42. 下一步
  43. </el-button>
  44. </el-form-item>
  45. </el-form>
  46. </div>
  47. </template>
  48. <script>
  49. export default {
  50. name: "baseInfo",
  51. data() {
  52. //用户名格式验证
  53. var userName = (rule, value, callback) => {
  54. const regex = /^[a-zA-Z][a-zA-Z0-9_]{2,19}$/;
  55. if (regex.test(value) == true) {
  56. callback();
  57. } else {
  58. callback(new Error('用户名长度3-20位,只能输入字母、数字、下划线,以字母开头'));
  59. }
  60. };
  61. //密码格式验证
  62. var passWord = (rule, value, callback) => {
  63. const regex = /^(?=.*[a-zA-Z])(?=.*\d)[a-zA-Z\d]{6,20}$/
  64. if (regex.test(value) == true) {
  65. callback();
  66. } else {
  67. callback(new Error('6-20位英文(区分大小写)、数字的组合'));
  68. }
  69. }
  70. //两次密码是否一致验证
  71. const equalToPassword = (rule, value, callback) => {
  72. if (this.registerForm.password !== value) {
  73. callback(new Error("两次输入的密码不一致"));
  74. } else {
  75. callback();
  76. }
  77. };
  78. //手机号验证
  79. const phone = (rule, value, callback) => {
  80. const regex = /^1[3-9]\d{9}$/
  81. if (regex.test(value) == false) {
  82. callback(new Error("手机号码不正确"));
  83. } else {
  84. callback();
  85. }
  86. };
  87. //电子邮箱验证
  88. const email = (rule, value, callback) => {
  89. const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
  90. if (regex.test(value) == false) {
  91. callback(new Error("电子邮箱不正确"));
  92. } else {
  93. callback();
  94. }
  95. };
  96. return {
  97. loading:false,//按钮加载
  98. registerForm: {
  99. qyname: null, //企业名称
  100. username: null, //用户名
  101. password: null, //密码
  102. qrpassword: null, //确认密码
  103. name: null, //负责人姓名
  104. photo: null, //手机号码
  105. lxryx: null, //电子邮箱
  106. yzbm: null, //邮政编码
  107. yyzz: null, //营业执照
  108. },
  109. registerRules: {
  110. qyname: {
  111. required: true,
  112. message: '公司名称不能为空',
  113. trigger: ['blur', 'change']
  114. },
  115. username: [{
  116. required: true,
  117. message: '用户名不能为空',
  118. trigger: ['blur', 'change']
  119. },
  120. {
  121. validator: userName,
  122. trigger: ['blur', 'change']
  123. }
  124. ],
  125. password: [{
  126. required: true,
  127. message: '密码不能为空',
  128. trigger: ['blur', 'change']
  129. },
  130. {
  131. validator: passWord,
  132. trigger: ['blur', 'change']
  133. }
  134. ],
  135. qypassword: [{
  136. required: true,
  137. message: '确认密码不能为空',
  138. trigger: ['blur', 'change']
  139. },
  140. {
  141. validator: equalToPassword,
  142. trigger: ['blur', 'change']
  143. }
  144. ],
  145. name: {
  146. required: true,
  147. message: '负责人姓名不能为空',
  148. trigger: ['blur', 'change']
  149. },
  150. photo: [{
  151. required: true,
  152. message: '手机号码不能为空',
  153. trigger: ['blur', 'change']
  154. },
  155. {
  156. validator: phone,
  157. trigger: ['blur', 'change']
  158. }
  159. ],
  160. lxryx: [{
  161. required: true,
  162. message: '电子邮箱不能为空',
  163. trigger: ['blur', 'change']
  164. },
  165. {
  166. validator: email,
  167. trigger: ['blur', 'change']
  168. }
  169. ],
  170. yzbm: {
  171. required: true,
  172. message: '邮政编码不能为空',
  173. trigger: ['blur', 'change']
  174. },
  175. yyzz: {
  176. required: true,
  177. message: '请上传营业执照',
  178. trigger: ['blur', 'change']
  179. }
  180. }
  181. }
  182. },
  183. methods: {
  184. handleRegister() {
  185. this.$emit('submitSuccess', 1)
  186. // this.$refs.registerForm.validate(valid => {
  187. // if (valid) {
  188. // } else {
  189. // }
  190. // })
  191. }
  192. }
  193. }
  194. </script>
  195. <style scoped lang="scss">
  196. .avatar-uploader .el-upload {
  197. border: 1px dashed #eee;
  198. border-radius: 6px;
  199. cursor: pointer;
  200. position: relative;
  201. overflow: hidden;
  202. }
  203. .avatar-uploader .el-upload:hover {
  204. border-color: #409EFF;
  205. }
  206. .avatar-uploader-icon {
  207. font-size: 28px;
  208. color: #8c939d;
  209. width: 178px;
  210. height: 178px;
  211. line-height: 178px;
  212. text-align: center;
  213. }
  214. .avatar {
  215. width: 178px;
  216. height: 178px;
  217. display: block;
  218. }
  219. </style>