| | |
| | | import type { FormRules } from "element-plus"; |
| | | import { formatDate } from '/@/utils/formatTime'; |
| | | import { useFBS_CusExtendApi } from '/@/api/Customer/fBS_CusExtend'; |
| | | import { deepClone } from '/@/utils/other' |
| | | |
| | | //父级传递来的函数,用于回调 |
| | | const emit = defineEmits(["reloadTable"]); |
| | |
| | | ruleForm: {} as any, |
| | | stores: {}, |
| | | dropdownData: {} as any, |
| | | enterpriseList:[], |
| | | roleList:[] |
| | | }); |
| | | |
| | | // 自行添加其他规则 |
| | |
| | | }); |
| | | |
| | | // 打开弹窗 |
| | | const openDialog = async (row: any, title: string) => { |
| | | const openDialog = async (row: any, title: string, qiyeList,roleList) => { |
| | | state.roleList = roleList |
| | | state.enterpriseList = qiyeList |
| | | state.title = title; |
| | | row = row ?? { }; |
| | | state.ruleForm = row.id ? await fBS_CusExtendApi.detail(row.id).then(res => res.data.result) : JSON.parse(JSON.stringify(row)); |
| | | state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(","); |
| | | state.showDialog = true; |
| | | }; |
| | | |
| | |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | const isLeaf = data => { |
| | | data.forEach(item => { |
| | | if (!item.child) { |
| | | item.leaf = true; |
| | | } |
| | | }); |
| | | }; |
| | | const loadNode = (node, resolve) => { |
| | | if (node.level === 0) { |
| | | isLeaf(node.data); |
| | | return resolve(node.data); |
| | | } else if (node.level > 0 && node.data.child) { |
| | | isLeaf(node.data.child); |
| | | return resolve(node.data.child); |
| | | } else { |
| | | return resolve([]); |
| | | } |
| | | }; |
| | | //将属性或者函数暴露给父组件 |
| | | defineExpose({ openDialog }); |
| | | </script> |
| | | <template> |
| | | <div class="fBS_CusExtend-container"> |
| | | <el-dialog v-model="state.showDialog" :width="800" draggable :close-on-click-modal="false"> |
| | | <el-dialog v-model="state.showDialog" :width="'80%'" draggable :close-on-click-modal="false"> |
| | | <template #header> |
| | | <div style="color: #fff"> |
| | | <span>{{ state.title }}</span> |
| | |
| | | <el-form-item v-show="false"> |
| | | <el-input v-model="state.ruleForm.id" /> |
| | | </el-form-item> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-form-item label="用户ID" prop="customerId"> |
| | | <el-input v-model="state.ruleForm.customerId" placeholder="请输入用户ID" maxlength="19" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | </el-col> --> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" > |
| | | <el-form-item label="企业类型 " prop="enterpriseType"> |
| | | <el-input v-model="state.ruleForm.enterpriseType" placeholder="请输入企业类型 " maxlength="255" show-word-limit clearable /> |
| | | <el-tree-select |
| | | v-model="state.ruleForm.enterpriseType" |
| | | :data="state.enterpriseList" |
| | | multiple |
| | | node-key="name" |
| | | :render-after-expand="false" |
| | | show-checkbox |
| | | check-strictly |
| | | check-on-click-node |
| | | :load="loadNode" |
| | | lazy |
| | | :props="{ label: 'name', children: 'child', isLeaf: 'leaf' }" |
| | | /> |
| | | <!-- <el-input v-model="state.ruleForm.enterpriseType" placeholder="请输入企业类型 " show-word-limit clearable /> --> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-form-item label="交易主体code" prop="transactionCode"> |
| | | <el-input v-model="state.ruleForm.transactionCode" placeholder="请输入交易主体code" maxlength="255" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-form-item label="营业执照文件路径" prop="businessLicense"> |
| | | <el-input v-model="state.ruleForm.businessLicense" placeholder="请输入营业执照文件路径" maxlength="255" show-word-limit clearable /> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" > |
| | | <el-form-item label="营业执照" prop="businessLicense"> |
| | | <el-image |
| | | :src="state.ruleForm.businessLicense" |
| | | :zoom-rate="1.2" |
| | | :preview-src-list="[state.ruleForm.businessLicense]" |
| | | preview-teleported |
| | | fit="cover" |
| | | style="width:200px;height:150px" |
| | | /> |
| | | <!-- <el-input v-model="state.ruleForm.businessLicense" placeholder="请输入营业执照文件路径" show-word-limit clearable /> --> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-form-item label="企业名称" prop="enterpriseName"> |
| | | <el-input v-model="state.ruleForm.enterpriseName" placeholder="请输入企业名称" maxlength="255" show-word-limit clearable /> |
| | | <el-input v-model="state.ruleForm.enterpriseName" placeholder="请输入企业名称" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8" class="mb20" > |
| | | <el-form-item label="统一社会信用代码" prop="unifiedSocialCreditCode"> |
| | | <el-input v-model="state.ruleForm.unifiedSocialCreditCode" placeholder="请输入统一社会信用代码" maxlength="255" show-word-limit clearable /> |
| | | <el-input v-model="state.ruleForm.unifiedSocialCreditCode" placeholder="请输入统一社会信用代码" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb20" > |
| | | <el-form-item label="交易主体" prop="transactionCode"> |
| | | <el-select |
| | | v-model="state.ruleForm.transactionCode" |
| | | placeholder="请选择交易主体" |
| | | clearable |
| | | > |
| | | <el-option |
| | | v-for="item in state.roleList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | <!-- <el-input v-model="state.ruleForm.transactionCode" placeholder="请输入交易主体" show-word-limit clearable /> --> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb20" > |
| | | <el-form-item label="注册资金" prop="registeredCapital"> |
| | | <el-input v-model="state.ruleForm.registeredCapital" placeholder="请输入注册资金" maxlength="255" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-form-item label="法定代表人姓名" prop="legalRepresentativeName"> |
| | | <el-input v-model="state.ruleForm.legalRepresentativeName" placeholder="请输入法定代表人姓名" maxlength="255" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-form-item label="法定代表人身份证文件路径" prop="legalRepresentativeIdCard"> |
| | | <el-input v-model="state.ruleForm.legalRepresentativeIdCard" placeholder="请输入法定代表人身份证文件路径" maxlength="255" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-form-item label="法定代表人姓名" prop="legalRepresentativeIdNumber"> |
| | | <el-input v-model="state.ruleForm.legalRepresentativeIdNumber" placeholder="请输入法定代表人姓名" maxlength="255" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-form-item label="法定代表人姓名" prop="legalRepresentativePhone"> |
| | | <el-input v-model="state.ruleForm.legalRepresentativePhone" placeholder="请输入法定代表人姓名" maxlength="255" show-word-limit clearable /> |
| | | <el-input v-model="state.ruleForm.registeredCapital" placeholder="请输入注册资金" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-form-item label="企业住所" prop="residence"> |
| | | <el-input v-model="state.ruleForm.residence" placeholder="请输入企业住所" maxlength="255" show-word-limit clearable /> |
| | | <el-input v-model="state.ruleForm.residence" placeholder="请输入企业住所" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb20" > |
| | | <el-form-item label="企业联系电话" prop="enterprisePhone"> |
| | | <el-input v-model="state.ruleForm.enterprisePhone" placeholder="请输入企业联系电话" maxlength="255" show-word-limit clearable /> |
| | | <el-input v-model="state.ruleForm.enterprisePhone" placeholder="请输入企业联系电话" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb20" > |
| | | <el-form-item label="企业成立时间" prop="establishmentTime"> |
| | | <el-date-picker v-model="state.ruleForm.establishmentTime" type="date" placeholder="企业成立时间" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-form-item label="企业主营业务" prop="mainBusiness"> |
| | | <el-input v-model="state.ruleForm.mainBusiness" placeholder="请输入企业主营业务" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb20" > |
| | | <el-form-item label="企业邮箱" prop="enterpriseEmail"> |
| | | <el-input v-model="state.ruleForm.enterpriseEmail" placeholder="请输入企业邮箱" maxlength="255" show-word-limit clearable /> |
| | | <el-input v-model="state.ruleForm.enterpriseEmail" placeholder="请输入企业邮箱" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" > |
| | | <el-form-item label="企业主营业务" prop="mainBusiness"> |
| | | <el-input type="textarea" autosize v-model="state.ruleForm.mainBusiness" placeholder="请输入企业主营业务" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" > |
| | | <el-form-item label="法定代表人身份证" prop="legalRepresentativeIdCard"> |
| | | <el-image |
| | | :src="state.ruleForm.legalRepresentativeIdCard" |
| | | :zoom-rate="1.2" |
| | | :preview-src-list="[state.ruleForm.legalRepresentativeIdCard]" |
| | | preview-teleported |
| | | fit="cover" |
| | | style="width:200px;height:150px" |
| | | /> |
| | | <!-- <el-input v-model="state.ruleForm.legalRepresentativeIdCard" placeholder="请输入法定代表人身份证文件路径" show-word-limit clearable /> --> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb20" > |
| | | <el-form-item label="法定代表人姓名" prop="legalRepresentativeName"> |
| | | <el-input v-model="state.ruleForm.legalRepresentativeName" placeholder="请输入法定代表人姓名" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8" class="mb20" > |
| | | <el-form-item label="法定代表人身份证号码" prop="legalRepresentativeIdNumber"> |
| | | <el-input v-model="state.ruleForm.legalRepresentativeIdNumber" placeholder="请输入法定代表人姓名" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb20" > |
| | | <el-form-item label="法定代表人联系电话" prop="legalRepresentativePhone"> |
| | | <el-input v-model="state.ruleForm.legalRepresentativePhone" placeholder="请输入法定代表人姓名" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" > |
| | | <el-form-item label="业务经办人身份证" prop="operatorIdCard"> |
| | | <el-image |
| | | :src="state.ruleForm.operatorIdCard" |
| | | :zoom-rate="1.2" |
| | | :preview-src-list="[state.ruleForm.operatorIdCard]" |
| | | preview-teleported |
| | | fit="cover" |
| | | style="width:200px;height:150px" |
| | | /> |
| | | <!-- <el-input v-model="state.ruleForm.operatorIdCard" placeholder="请输入业务经办人身份证文件路径或标识" show-word-limit clearable /> --> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb20" > |
| | | <el-form-item label="业务经办人姓名" prop="operatorName"> |
| | | <el-input v-model="state.ruleForm.operatorName" placeholder="请输入业务经办人姓名" maxlength="255" show-word-limit clearable /> |
| | | <el-input v-model="state.ruleForm.operatorName" placeholder="请输入业务经办人姓名" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-form-item label="业务经办人身份证文件路径或标识" prop="operatorIdCard"> |
| | | <el-input v-model="state.ruleForm.operatorIdCard" placeholder="请输入业务经办人身份证文件路径或标识" maxlength="255" show-word-limit clearable /> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8" class="mb20" > |
| | | <el-form-item label="业务经办人身份证号码" prop="operatorIdNumber"> |
| | | <el-input v-model="state.ruleForm.operatorIdNumber" placeholder="请输入业务经办人身份证号" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-form-item label="业务经办人身号" prop="operatorIdNumber"> |
| | | <el-input v-model="state.ruleForm.operatorIdNumber" placeholder="请输入业务经办人身份证号" maxlength="255" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb20" > |
| | | <el-form-item label="业务经办人电话" prop="operatorPhone"> |
| | | <el-input v-model="state.ruleForm.operatorPhone" placeholder="请输入业务经办人电话" maxlength="255" show-word-limit clearable /> |
| | | <el-input v-model="state.ruleForm.operatorPhone" placeholder="请输入业务经办人电话" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb20" > |
| | | <el-form-item label="开户行" prop="bankName"> |
| | | <el-input v-model="state.ruleForm.bankName" placeholder="请输入开户行" maxlength="255" show-word-limit clearable /> |
| | | <el-input v-model="state.ruleForm.bankName" placeholder="请输入开户行" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8" class="mb20" > |
| | | <el-form-item label="银行账号" prop="bankAccount"> |
| | | <el-input v-model="state.ruleForm.bankAccount" placeholder="请输入银行账号" maxlength="255" show-word-limit clearable /> |
| | | <el-input v-model="state.ruleForm.bankAccount" placeholder="请输入银行账号" show-word-limit clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" > |
| | | <!-- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb20" > |
| | | <el-form-item label="审核步骤" prop="steps"> |
| | | <g-sys-dict v-model="state.ruleForm.steps" code="CusExtendStep" render-as="select" placeholder="请选择审核步骤" clearable filterable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-col> --> |
| | | </el-row> |
| | | </el-form> |
| | | <template #footer> |