|
@@ -134,6 +134,50 @@
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <el-divider content-position="left">证件信息</el-divider>
|
|
|
|
|
+ <el-row :gutter="20">
|
|
|
|
|
+ <el-col :span="24">
|
|
|
|
|
+ <el-form-item label="营业执照" prop="businessLicenseImages">
|
|
|
|
|
+ <ImageUpload
|
|
|
|
|
+ v-model="form.businessLicenseImages"
|
|
|
|
|
+ :limit="5"
|
|
|
|
|
+ :file-size="10"
|
|
|
|
|
+ :file-type="['jpg', 'jpeg', 'png', 'pdf']"
|
|
|
|
|
+ :isShowTip="false"
|
|
|
|
|
+ placeholder="请上传营业执照图片或PDF"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+ <el-row :gutter="20">
|
|
|
|
|
+ <el-col :span="24">
|
|
|
|
|
+ <el-form-item label="经营许可证" prop="businessPermitImages">
|
|
|
|
|
+ <ImageUpload
|
|
|
|
|
+ v-model="form.businessPermitImages"
|
|
|
|
|
+ :limit="5"
|
|
|
|
|
+ :file-size="10"
|
|
|
|
|
+ :file-type="['jpg', 'jpeg', 'png', 'pdf']"
|
|
|
|
|
+ :isShowTip="false"
|
|
|
|
|
+ placeholder="请上传经营许可证图片或PDF"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+ <el-row :gutter="20">
|
|
|
|
|
+ <el-col :span="24">
|
|
|
|
|
+ <el-form-item label="其他证件" prop="otherCertImages">
|
|
|
|
|
+ <ImageUpload
|
|
|
|
|
+ v-model="form.otherCertImages"
|
|
|
|
|
+ :limit="10"
|
|
|
|
|
+ :file-size="10"
|
|
|
|
|
+ :file-type="['jpg', 'jpeg', 'png', 'pdf']"
|
|
|
|
|
+ placeholder="请上传其他相关证件图片或PDF"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
<el-row>
|
|
<el-row>
|
|
|
<el-col :span="24">
|
|
<el-col :span="24">
|
|
|
<el-form-item label="备注" prop="remark">
|
|
<el-form-item label="备注" prop="remark">
|
|
@@ -153,12 +197,14 @@
|
|
|
|
|
|
|
|
<script setup lang="ts" name="CustomerForm">
|
|
<script setup lang="ts" name="CustomerForm">
|
|
|
import { ref, reactive, getCurrentInstance, toRefs } from 'vue';
|
|
import { ref, reactive, getCurrentInstance, toRefs } from 'vue';
|
|
|
|
|
+import type { FormItemRule } from 'element-plus';
|
|
|
import { getCustomer, addCustomer, updateCustomer } from '@/api/crm/customer';
|
|
import { getCustomer, addCustomer, updateCustomer } from '@/api/crm/customer';
|
|
|
import type { CustomerForm as CustomerFormType } from '@/api/crm/customer/types';
|
|
import type { CustomerForm as CustomerFormType } from '@/api/crm/customer/types';
|
|
|
import { ComponentInternalInstance } from 'vue';
|
|
import { ComponentInternalInstance } from 'vue';
|
|
|
import { listUser } from '@/api/system/user';
|
|
import { listUser } from '@/api/system/user';
|
|
|
import { useDict } from '@/utils/dict';
|
|
import { useDict } from '@/utils/dict';
|
|
|
import { useUserStore } from '@/store/modules/user';
|
|
import { useUserStore } from '@/store/modules/user';
|
|
|
|
|
+import ImageUpload from '@/components/ImageUpload/index.vue';
|
|
|
|
|
|
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
const userStore = useUserStore();
|
|
const userStore = useUserStore();
|
|
@@ -192,11 +238,14 @@ const form = ref<CustomerFormType>({
|
|
|
ownerUserId: undefined,
|
|
ownerUserId: undefined,
|
|
|
nextTime: undefined,
|
|
nextTime: undefined,
|
|
|
clueId: undefined,
|
|
clueId: undefined,
|
|
|
- remark: undefined
|
|
|
|
|
|
|
+ remark: undefined,
|
|
|
|
|
+ businessLicenseImages: undefined,
|
|
|
|
|
+ businessPermitImages: undefined,
|
|
|
|
|
+ otherCertImages: undefined
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
// 表单校验规则
|
|
// 表单校验规则
|
|
|
-const rules = ref({
|
|
|
|
|
|
|
+const rules = ref<Record<string, FormItemRule[]>>({
|
|
|
customerName: [{ required: true, message: '客户名称不能为空', trigger: 'blur' }],
|
|
customerName: [{ required: true, message: '客户名称不能为空', trigger: 'blur' }],
|
|
|
shortName: [{ required: true, message: '客户简称不能为空', trigger: 'blur' }],
|
|
shortName: [{ required: true, message: '客户简称不能为空', trigger: 'blur' }],
|
|
|
customerType: [{ required: true, message: '客户类型不能为空', trigger: 'change' }],
|
|
customerType: [{ required: true, message: '客户类型不能为空', trigger: 'change' }],
|
|
@@ -205,6 +254,32 @@ const rules = ref({
|
|
|
province: [{ required: true, message: '省份不能为空', trigger: 'blur' }],
|
|
province: [{ required: true, message: '省份不能为空', trigger: 'blur' }],
|
|
|
city: [{ required: true, message: '城市不能为空', trigger: 'blur' }],
|
|
city: [{ required: true, message: '城市不能为空', trigger: 'blur' }],
|
|
|
district: [{ required: true, message: '区县不能为空', trigger: 'blur' }],
|
|
district: [{ required: true, message: '区县不能为空', trigger: 'blur' }],
|
|
|
|
|
+ businessLicenseImages: [
|
|
|
|
|
+ { required: true, message: '请至少上传一张营业执照图片', trigger: 'change' },
|
|
|
|
|
+ {
|
|
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
|
|
+ if (!value || (Array.isArray(value) && value.length === 0)) {
|
|
|
|
|
+ callback(new Error('请至少上传一张营业执照图片'));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ callback();
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ trigger: 'change'
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ businessPermitImages: [
|
|
|
|
|
+ { required: true, message: '请至少上传一张经营许可证图片', trigger: 'change' },
|
|
|
|
|
+ {
|
|
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
|
|
+ if (!value || (Array.isArray(value) && value.length === 0)) {
|
|
|
|
|
+ callback(new Error('请至少上传一张经营许可证图片'));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ callback();
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ trigger: 'change'
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
mobile: [{ pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' }],
|
|
mobile: [{ pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' }],
|
|
|
email: [{ type: 'email', message: '请输入正确的邮箱地址', trigger: 'blur' }]
|
|
email: [{ type: 'email', message: '请输入正确的邮箱地址', trigger: 'blur' }]
|
|
|
});
|
|
});
|
|
@@ -303,7 +378,10 @@ const reset = () => {
|
|
|
ownerUserId: undefined,
|
|
ownerUserId: undefined,
|
|
|
nextTime: undefined,
|
|
nextTime: undefined,
|
|
|
clueId: undefined,
|
|
clueId: undefined,
|
|
|
- remark: undefined
|
|
|
|
|
|
|
+ remark: undefined,
|
|
|
|
|
+ businessLicenseImages: undefined,
|
|
|
|
|
+ businessPermitImages: undefined,
|
|
|
|
|
+ otherCertImages: undefined
|
|
|
};
|
|
};
|
|
|
formRef.value?.resetFields();
|
|
formRef.value?.resetFields();
|
|
|
};
|
|
};
|