diff --git a/src/services/regex.js b/src/services/regex.js index 584818b..41109c4 100644 --- a/src/services/regex.js +++ b/src/services/regex.js @@ -1,4 +1,5 @@ export default { IdCardNo: /\d{17}[\dX]/, - Phone: /1\d{10}/ + Phone: /1\d{10}/, + Tydm: /[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}/ }; diff --git a/src/views/CA/UnitApply.vue b/src/views/CA/UnitApply.vue index 460dca6..87599c1 100644 --- a/src/views/CA/UnitApply.vue +++ b/src/views/CA/UnitApply.vue @@ -1,7 +1,302 @@ + + +export default { + components: { + Form, + FormItem: Form.Item, + Input, + Upload, + Cascader, + UploadOutlined, + Button, + Select, + Option: Select.Option, + Row, + RowCol: Col + }, + data() { + return { + uploadConfig: picUploadConfig, + labelCol: { span: 8 }, + wrapperCol: { span: 14 }, + fileList: [], + form: {}, + areaOptions: [], + organizeList: [], + rules: { + operatorId: [ + { required: true, message: "请输入18位身份证号码", trigger: "blur" }, + { + pattern: regex.IdCardNo, + message: "输入正确的18位身份证号码", + trigger: "blur" + } + ], + operatorName: [ + { required: true, message: "请输入经办人姓名", trigger: "blur" } + ], + unitName: [ + { required: true, message: "请选择企业名称", trigger: "change" } + ], + operatorPhone: [ + { required: true, message: "请输入你的手机号码", trigger: "blur" }, + { + pattern: regex.Phone, + message: "请输入正确的11位手机号码", + trigger: "blur" + } + ], + tydm: [ + { + required: true, + message: "请输入企业统一社会信用代码", + trigger: "blur" + }, + { + pattern: regex.Tydm, + message: "请输入正确的18位统一社会信用代码", + trigger: "blur" + } + ], + address: [ + { required: true, message: "请输入邮寄信息", trigger: "blur" } + ], + code: [ + { + required: true, + message: "请选择省市区信息", + trigger: "blur", + transform: v => v && v.join("-") + }, + { + pattern: /\d+-\d+-\d+/, + message: "信息不完整", + trigger: "blur", + transform: v => v && v.join("-") + } + ], + LOAPicId: [ + { + required: true, + message: "请上传授权承诺书照片", + trigger: "change", + transform: v => v && v.toString() + } + ], + idCardFrontPicId: [ + { + required: true, + message: "请上传授权承诺书照片", + trigger: "change", + transform: v => v && v.toString() + } + ], + idCardBackPicId: [ + { + required: true, + message: "请上传授权承诺书照片", + trigger: "change", + transform: v => v && v.toString() + } + ], + businessLicensePicId: [ + { + required: true, + message: "请上传授权承诺书照片", + trigger: "change", + transform: v => v && v.toString() + } + ] + } + }; + }, + computed: { + disabled: function() { + return this.fileList.length > 0; + } + }, + async created() { + const organizeInfo = await get("/api2/UserInfo/Organize"); + this.areaOptions = await getAreaOptions(""); + this.organizeList = organizeInfo.data; + }, + methods: { + handleChange(config, info) { + const name = config.name; + // var formValue = this.form[name]; + // console.log(name, formValue); + if (info.file.status !== "uploading") { + // console.log(info.file.status,info.file, info.fileList); + } + if (info.file.status === "done") { + message.success(`${info.file.name} 文件上传成功`); + this.form[name] = info.file.response.id; + config.disabled = true; + } else if (info.file.status === "error") { + message.error(`${info.file.name} 文件上传失败`); + } + if (info.file.status === "removed") { + config.disabled = false; + this.form[name] = null; + } + }, + beforeUpload(file) { + const isJpgOrPng = + file.type === "image/jpeg" || file.type === "image/png"; + if (!isJpgOrPng) { + message.error("只能上传jpeg/png格式的图片文件"); + } + const isLt2M = file.size / 1024 / 1024 < 2; + if (!isLt2M) { + message.error("文件大小超过2MB!"); + } + return isJpgOrPng && isLt2M; + }, + async loadAreaOptions(selectedOptions) { + const targetOption = selectedOptions[selectedOptions.length - 1]; + targetOption.loading = true; + const options = await getAreaOptions(targetOption.value); + if (options) { + targetOption.children = options; + } + targetOption.loading = false; + this.areaOptions = [...this.areaOptions]; + }, + onSubmit() { + this.$refs.ruleForm.validate(); + console.log(this.form); + } + } +}; + diff --git a/src/views/CA/UserApply.vue b/src/views/CA/UserApply.vue index 222bd66..f4b514a 100644 --- a/src/views/CA/UserApply.vue +++ b/src/views/CA/UserApply.vue @@ -59,7 +59,6 @@ import { Form, Input, Button, Select, message, Drawer } from "ant-design-vue"; import { get, post } from "@/services/http"; import regex from "@/services/regex"; -console.log(regex); export default { data() { return {