zhangwei
9 天以前 157476e37c39931ee026a2ca6fde0d09383884d3
'企业资料审核'
4个文件已修改
2个文件已添加
1100 ■■■■ 已修改文件
Web/src/api/Customer/fBS_CusExtend.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web/src/api/base/index.ts 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web/src/views/Customer/fBS_CusExtend/component/editDialog.vue 210 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web/src/views/Customer/fBS_CusExtend/index.vue 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web/src/views/Customer/fBS_CusExtendExamine/component/editDialog.vue 273 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web/src/views/Customer/fBS_CusExtendExamine/index.vue 361 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web/src/api/Customer/fBS_CusExtend.ts
@@ -12,6 +12,8 @@
        add: baseApi.add,
        // 更新企业资料
        update: baseApi.update,
        getParam: baseApi.getParam,
        changeSteps:baseApi.changeSteps,
        // 删除企业资料
        delete: baseApi.delete,
        // 批量删除企业资料
Web/src/api/base/index.ts
@@ -28,6 +28,19 @@
                data: { id },
            }, cancel);
        },
        getParam: function (id: any, cancel: boolean = false) {
            return request({
                url: baseUrl + "getParam",
                method: 'get',
                data: { id },
            }, cancel);
        },
        changeSteps: function (id: any, step, cancel: boolean = false) {
            return request({
                url: baseUrl + `changeSteps/${id}/${step}`,
                method: 'get',
            }, cancel);
        },
        dropdownData: function (data: any, cancel: boolean = false) {
            return request({
                url: baseUrl + "dropdownData",
Web/src/views/Customer/fBS_CusExtend/component/editDialog.vue
@@ -4,6 +4,7 @@
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"]);
@@ -17,6 +18,8 @@
    ruleForm: {} as any,
    stores: {},
    dropdownData: {} as any,
    enterpriseList:[],
    roleList:[]
});
// 自行添加其他规则
@@ -46,10 +49,13 @@
});
// 打开弹窗
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;
};
@@ -74,13 +80,30 @@
        }
    });
};
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>
@@ -91,121 +114,170 @@
                    <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>
Web/src/views/Customer/fBS_CusExtend/index.vue
@@ -8,8 +8,12 @@
import printDialog from '/@/views/system/print/component/hiprint/preview.vue'
import ModifyRecord from '/@/components/table/modifyRecord.vue';
import ImportData from "/@/components/table/importData.vue";
import { useFBS_ExRoleApi } from '/@/api/Customer/fBS_ExRole';
import { formatDate } from '/@/utils/formatTime';
const fBS_CusExtendApi = useFBS_CusExtendApi();
const fBS_ExRoleApi = useFBS_ExRoleApi();
const printDialogRef = ref();
const editDialogRef = ref();
const importDataRef = ref();
@@ -29,12 +33,33 @@
    order: 'descending', // 排序方向
    descStr: 'descending', // 降序排序的关键字符
  },
  tableParams1: {
    page: 1,
    pageSize: 20,
    total: 0,
    field: 'createTime', // 默认的排序字段
    order: 'descending', // 排序方向
    descStr: 'descending', // 降序排序的关键字符
  },
  tableData: [],
  roleList: [],
  qiyeList:[],
  shenheList:[]
});
// 页面加载时
onMounted(async () => {
  handleQueryRole()
  getParamList()
});
const getParamList = async()=>{
  let res = await fBS_CusExtendApi.getParam().then(res => res.data.result);
  state.qiyeList = res.enterpriseTypes
  state.shenheList = res.stepsTypeItems
  console.log(res,state.qiyeList,state.shenheList);
}
// 查询操作
const handleQuery = async (params: any = {}) => {
@@ -44,6 +69,12 @@
  state.tableParams.total = result?.total;
  state.tableData = result?.items ?? [];
  state.tableLoading = false;
};
// 查询角色
const handleQueryRole = async (params: any = {}) => {
  const result = await fBS_ExRoleApi.page(Object.assign({}, state.tableParams1)).then(res => res.data.result);
  state.roleList = result?.items ?? [];
};
// 列排序
@@ -104,129 +135,84 @@
<template>
  <div class="fBS_CusExtend-container" v-loading="state.exportLoading">
    <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> 
      <el-form :model="state.tableQueryParams" ref="queryForm" labelWidth="90">
      <el-form :model="state.tableQueryParams" ref="queryForm" labelWidth="120">
        <el-row>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10">
            <el-form-item label="关键字">
              <el-input v-model="state.tableQueryParams.keyword" clearable placeholder="请输入模糊查询关键字"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
          <!-- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="用户ID">
              <el-input v-model="state.tableQueryParams.customerId" clearable placeholder="请输入用户ID"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
          </el-col> -->
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="企业类型 ">
              <el-input v-model="state.tableQueryParams.enterpriseType" clearable placeholder="请输入企业类型 "/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="交易主体code">
              <el-input v-model="state.tableQueryParams.transactionCode" clearable placeholder="请输入交易主体code"/>
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="交易主体">
              <el-input v-model="state.tableQueryParams.transactionCode" clearable placeholder="请输入交易主体"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="营业执照文件路径">
              <el-input v-model="state.tableQueryParams.businessLicense" clearable placeholder="请输入营业执照文件路径"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="企业名称">
              <el-input v-model="state.tableQueryParams.enterpriseName" clearable placeholder="请输入企业名称"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="统一社会信用代码">
              <el-input v-model="state.tableQueryParams.unifiedSocialCreditCode" clearable placeholder="请输入统一社会信用代码"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
          <!-- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="注册资金">
              <el-input v-model="state.tableQueryParams.registeredCapital" clearable placeholder="请输入注册资金"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="法定代表人姓名">
              <el-input v-model="state.tableQueryParams.legalRepresentativeName" clearable placeholder="请输入法定代表人姓名"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="法定代表人身份证文件路径">
              <el-input v-model="state.tableQueryParams.legalRepresentativeIdCard" clearable placeholder="请输入法定代表人身份证文件路径"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="法定代表人姓名">
              <el-input v-model="state.tableQueryParams.legalRepresentativeIdNumber" clearable placeholder="请输入法定代表人姓名"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
          </el-col> -->
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="法定代表人姓名">
              <el-input v-model="state.tableQueryParams.legalRepresentativePhone" clearable placeholder="请输入法定代表人姓名"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="企业住所">
              <el-input v-model="state.tableQueryParams.residence" clearable placeholder="请输入企业住所"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="企业联系电话">
              <el-input v-model="state.tableQueryParams.enterprisePhone" clearable placeholder="请输入企业联系电话"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
          <!-- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="企业成立时间">
              <el-date-picker type="daterange" v-model="state.tableQueryParams.establishmentTimeRange"  value-format="YYYY-MM-DD HH:mm:ss" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" />
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
          </el-col> -->
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="企业主营业务">
              <el-input v-model="state.tableQueryParams.mainBusiness" clearable placeholder="请输入企业主营业务"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
          <!-- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="企业邮箱">
              <el-input v-model="state.tableQueryParams.enterpriseEmail" clearable placeholder="请输入企业邮箱"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
          </el-col> -->
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="业务经办人姓名">
              <el-input v-model="state.tableQueryParams.operatorName" clearable placeholder="请输入业务经办人姓名"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="业务经办人身份证文件路径或标识">
              <el-input v-model="state.tableQueryParams.operatorIdCard" clearable placeholder="请输入业务经办人身份证文件路径或标识"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="法定代表人姓名">
              <el-input v-model="state.tableQueryParams.operatorIdNumber" clearable placeholder="请输入法定代表人姓名"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="法定代表人姓名">
              <el-input v-model="state.tableQueryParams.operatorPhone" clearable placeholder="请输入法定代表人姓名"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="法定代表人姓名">
              <el-input v-model="state.tableQueryParams.bankName" clearable placeholder="请输入法定代表人姓名"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="法定代表人姓名">
              <el-input v-model="state.tableQueryParams.bankAccount" clearable placeholder="请输入法定代表人姓名"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
          <!-- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="审核步骤">
              <g-sys-dict v-model="state.tableQueryParams.steps" code="CusExtendStep" render-as="select" placeholder="请选择审核步骤" clearable filterable />
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
          </el-col> -->
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10">
            <el-form-item >
              <el-button-group style="display: flex; align-items: center;">
                <el-button type="primary"  icon="ele-Search" @click="handleQuery" v-auth="'fBS_CusExtend:page'" v-reclick="1000"> 查询 </el-button>
@@ -253,45 +239,102 @@
      </el-form>
    </el-card>
    <el-card class="full-table" shadow="hover" style="margin-top: 5px">
      <el-table :data="state.tableData" @selection-change="(val: any[]) => { state.selectData = val; }" style="width: 100%" v-loading="state.tableLoading" tooltip-effect="light" row-key="id" @sort-change="sortChange" border>
      <el-table :data="state.tableData" @selection-change="(val: any[]) => { state.selectData = val; }" fit style="width: 100%" v-loading="state.tableLoading" tooltip-effect="light" row-key="id" @sort-change="sortChange" border>
        <el-table-column type="selection" width="40" align="center" v-if="auth('fBS_CusExtend:batchDelete') || auth('fBS_CusExtend:export')" />
        <el-table-column type="index" label="序号" width="55" align="center"/>
        <el-table-column prop='customerId' label='用户ID' show-overflow-tooltip />
        <!-- <el-table-column prop='customerId' label='用户ID' show-overflow-tooltip /> -->
        <el-table-column prop='enterpriseType' label='企业类型 ' show-overflow-tooltip />
        <el-table-column prop='transactionCode' label='交易主体code' show-overflow-tooltip />
        <el-table-column prop='businessLicense' label='营业执照文件路径' show-overflow-tooltip />
        <el-table-column prop='enterpriseName' label='企业名称' show-overflow-tooltip />
        <el-table-column prop='unifiedSocialCreditCode' label='统一社会信用代码' show-overflow-tooltip />
        <el-table-column prop='registeredCapital' label='注册资金' show-overflow-tooltip />
        <el-table-column prop='legalRepresentativeName' label='法定代表人姓名' show-overflow-tooltip />
        <el-table-column prop='legalRepresentativeIdCard' label='法定代表人身份证文件路径' show-overflow-tooltip />
        <el-table-column prop='legalRepresentativeIdNumber' label='法定代表人姓名' show-overflow-tooltip />
        <el-table-column prop='legalRepresentativePhone' label='法定代表人姓名' show-overflow-tooltip />
        <el-table-column prop='residence' label='企业住所' show-overflow-tooltip />
        <el-table-column prop='enterprisePhone' label='企业联系电话' show-overflow-tooltip />
        <el-table-column prop='establishmentTime' label='企业成立时间' show-overflow-tooltip />
        <el-table-column prop='mainBusiness' label='企业主营业务' show-overflow-tooltip />
        <el-table-column prop='enterpriseEmail' label='企业邮箱' show-overflow-tooltip />
        <el-table-column prop='operatorName' label='业务经办人姓名' show-overflow-tooltip />
        <el-table-column prop='operatorIdCard' label='业务经办人身份证文件路径或标识' show-overflow-tooltip />
        <el-table-column prop='operatorIdNumber' label='业务经办人姓名' show-overflow-tooltip />
        <el-table-column prop='operatorPhone' label='业务经办人电话' show-overflow-tooltip />
        <el-table-column prop='bankName' label='开户行名称' show-overflow-tooltip />
        <el-table-column prop='bankAccount' label='开户行账号' show-overflow-tooltip />
        <el-table-column prop='steps' label='审核步骤' show-overflow-tooltip>
          <template #default="scope">
            <g-sys-dict v-model="scope.row.steps" code="CusExtendStep" />
        <el-table-column prop='transactionCode' label='交易主体' show-overflow-tooltip width="100">
          <template v-slot="scope">
            <span v-for="(item, index) in state.roleList" :key="index">
          <span v-if="item.code == scope.row.transactionCode">{{ item.name }}</span>
        </span>
          </template>
        </el-table-column>
        <el-table-column label="修改记录" width="100" align="center" show-overflow-tooltip>
        <el-table-column prop='businessLicense' label='营业执照' show-overflow-tooltip width="120">
          <template v-slot="scope">
             <el-image
                                :src="scope.row.businessLicense"
                                :zoom-rate="1.2"
                                :preview-src-list="[scope.row.businessLicense]"
                                preview-teleported
                                fit="cover"
                        />
          </template>
        </el-table-column>
        <el-table-column prop='enterpriseName' label='企业名称' show-overflow-tooltip width="180"/>
        <el-table-column prop='unifiedSocialCreditCode' label='统一社会信用代码' show-overflow-tooltip width="150"/>
        <el-table-column prop='registeredCapital' label='注册资金' show-overflow-tooltip />
        <el-table-column prop='enterprisePhone' label='联系电话' show-overflow-tooltip width="100"/>
        <el-table-column prop='establishmentTime' label='成立时间' show-overflow-tooltip >
          <template #default="scope">
              {{ formatDate(new Date(scope.row.establishmentTime), 'YYYY-mm-dd') }}
            </template>
        </el-table-column>
        <!-- <el-table-column prop='mainBusiness' label='企业主营业务' show-overflow-tooltip /> -->
        <el-table-column prop='enterpriseEmail' label='企业邮箱' show-overflow-tooltip width="150"/>
        <el-table-column prop='legalRepresentativeName' label='法定代表人姓名' show-overflow-tooltip  width="110"/>
        <el-table-column prop='legalRepresentativeIdCard' label='法定代表人身份证' show-overflow-tooltip width="120">
          <template v-slot="scope">
             <el-image
                                :src="scope.row.legalRepresentativeIdCard"
                                :zoom-rate="1.2"
                                :preview-src-list="[scope.row.legalRepresentativeIdCard]"
                                preview-teleported
                                fit="cover"
                        />
          </template></el-table-column>
        <!-- <el-table-column prop='legalRepresentativeIdNumber' label='法定代表人身份证号码' show-overflow-tooltip width="120"/> -->
        <el-table-column prop='legalRepresentativePhone' label='法定代表人联系电话' show-overflow-tooltip width="130"/>
        <!-- <el-table-column prop='residence' label='企业住所' show-overflow-tooltip /> -->
        <el-table-column prop='operatorName' label='业务经办人姓名' show-overflow-tooltip width="110"/>
        <el-table-column prop='operatorIdCard' label='业务经办人身份证' show-overflow-tooltip width="120">
          <template v-slot="scope">
             <el-image
                                :src="scope.row.operatorIdCard"
                                :zoom-rate="1.2"
                                :preview-src-list="[scope.row.operatorIdCard]"
                                preview-teleported
                                fit="cover"
                        />
          </template>
        </el-table-column>
        <!-- <el-table-column prop='operatorIdNumber' label='业务经办人身份证号码' show-overflow-tooltip width="120"/> -->
        <el-table-column prop='operatorPhone' label='业务经办人电话' show-overflow-tooltip width="120"/>
        <!-- <el-table-column prop='bankName' label='开户行名称' show-overflow-tooltip /> -->
        <!-- <el-table-column prop='bankAccount' label='开户行账号' show-overflow-tooltip width="120"/> -->
        <el-table-column prop='steps' label='审核步骤' show-overflow-tooltip>
          <template v-slot="scope">
            <span v-for="(item, index) in state.shenheList" :key="index">
              <el-tag v-if="item.value == scope.row.steps">{{ item.description }}</el-tag>
            </span>
          </template>
          <!-- <template #default="scope">
            <el-tag v-if="scope.row.steps==0" type='warning'>
              待审核
            </el-tag>
            <el-tag v-else-if="scope.row.steps==1" type='primary'>
              更改
            </el-tag>
            <el-tag v-else-if="scope.row.steps==2" type='success'>
              通过
            </el-tag>
            <el-tag v-else-if="scope.row.steps==3" type='error'>
              未通过
            </el-tag>
          </template> -->
        </el-table-column>
        <!-- <el-table-column label="修改记录" width="100" align="center" show-overflow-tooltip>
          <template #default="scope">
            <ModifyRecord :data="scope.row" />
          </template>
        </el-table-column>
        <el-table-column label="操作" width="140" align="center" fixed="right" show-overflow-tooltip v-if="auth('fBS_CusExtend:update') || auth('fBS_CusExtend:delete')">
        </el-table-column> -->
        <el-table-column label="操作" width="70" align="center" fixed="right" show-overflow-tooltip v-if="auth('fBS_CusExtend:update') || auth('fBS_CusExtend:delete')">
          <template #default="scope">
            <el-button icon="ele-Edit" size="small" text type="primary" @click="editDialogRef.openDialog(scope.row, '编辑企业资料')" v-auth="'fBS_CusExtend:update'"> 编辑 </el-button>
            <el-button icon="ele-Delete" size="small" text type="primary" @click="delFBS_CusExtend(scope.row)" v-auth="'fBS_CusExtend:delete'"> 删除 </el-button>
            <el-button icon="ele-Edit" size="small" text type="primary" @click="editDialogRef.openDialog(scope.row, '编辑企业资料', state.qiyeList,state.roleList)" v-auth="'fBS_CusExtend:update'">  </el-button>
            <el-button icon="ele-Delete" size="small" text type="primary" @click="delFBS_CusExtend(scope.row)" v-auth="'fBS_CusExtend:delete'">  </el-button>
          </template>
        </el-table-column>
      </el-table>
Web/src/views/Customer/fBS_CusExtendExamine/component/editDialog.vue
New file
@@ -0,0 +1,273 @@
<script lang="ts" name="fBS_CusExtend" setup>
import { ref, reactive, onMounted } from "vue";
import { ElMessage } from "element-plus";
import type { FormRules } from "element-plus";
import { formatDate } from '/@/utils/formatTime';
import { useFBS_CusExtendApi } from '/@/api/Customer/fBS_CusExtend';
import type { ImageInstance } from 'element-plus'
//父级传递来的函数,用于回调
const emit = defineEmits(["reloadTable"]);
const fBS_CusExtendApi = useFBS_CusExtendApi();
const ruleFormRef = ref();
const state = reactive({
    title: '',
    loading: false,
    showDialog: false,
    ruleForm: {} as any,
    stores: {},
    dropdownData: {} as any,
    enterpriseList:[],
    roleList:[],
    shenheList:[],
    srcList:[]
});
// 自行添加其他规则
const rules = ref<FormRules>({
  customerId: [{required: true, message: '请选择用户ID!', trigger: 'blur',},],
  enterpriseType: [{required: true, message: '请选择企业类型 !', trigger: 'blur',},],
  transactionCode: [{required: true, message: '请选择交易主体code!', trigger: 'blur',},],
  businessLicense: [{required: true, message: '请选择营业执照文件路径!', trigger: 'blur',},],
  enterpriseName: [{required: true, message: '请选择企业名称!', trigger: 'blur',},],
  unifiedSocialCreditCode: [{required: true, message: '请选择统一社会信用代码!', trigger: 'blur',},],
  registeredCapital: [{required: true, message: '请选择注册资金!', trigger: 'blur',},],
  legalRepresentativeName: [{required: true, message: '请选择法定代表人姓名!', trigger: 'blur',},],
  legalRepresentativeIdCard: [{required: true, message: '请选择法定代表人身份证文件路径!', trigger: 'blur',},],
  legalRepresentativeIdNumber: [{required: true, message: '请选择法定代表人姓名!', trigger: 'blur',},],
  legalRepresentativePhone: [{required: true, message: '请选择法定代表人姓名!', trigger: 'blur',},],
  residence: [{required: true, message: '请选择企业住所!', trigger: 'blur',},],
  enterprisePhone: [{required: true, message: '请选择企业联系电话!', trigger: 'blur',},],
  establishmentTime: [{required: true, message: '请选择企业成立时间!', trigger: 'change',},],
  enterpriseEmail: [{required: true, message: '请选择企业邮箱!', trigger: 'blur',},],
  bankName: [{required: true, message: '请选择法定代表人姓名!', trigger: 'blur',},],
  bankAccount: [{required: true, message: '请选择法定代表人姓名!', trigger: 'blur',},],
  steps: [{required: true, message: '请选择审核步骤!', trigger: 'change',},],
});
// 页面加载时
onMounted(async () => {
});
// 打开弹窗
const openDialog = async (row: any, title: string, qiyeList,roleList,shenheList) => {
    state.roleList = roleList
    state.enterpriseList = qiyeList
    state.shenheList = shenheList
    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 closeDialog = () => {
    emit("reloadTable");
    state.showDialog = false;
};
// 提交
const submit = async () => {
    let values = state.ruleForm;
    await fBS_CusExtendApi.changeSteps(values.id,values.steps);
    closeDialog();
};
const isLeaf = data => {
  data.forEach(item => {
    if (!item.child) {
      item.leaf = true;
    }
  });
};
const showPreview = ref(false)
const showImg = name => {
   showPreview.value=true
   state.srcList = [state.ruleForm[name]]
};
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="'80%'" draggable :close-on-click-modal="false">
            <template #header>
                <div style="color: #fff">
                    <span>{{ state.title }}</span>
                </div>
            </template>
            <div class="mb10">
                <el-row :gutter="10" justify="end">
                    <span>是否通过:</span>
                    <el-col :span="4">
                        <el-select
                            v-model="state.ruleForm.steps"
                            placeholder="请选择交易主体"
                            clearable
                        >
                            <el-option
                            v-for="item in state.shenheList"
                            :key="item.key"
                            :label="item.description"
                            :value="item.value"
                            />
                        </el-select>
                        </el-col>
                        <!-- <el-col :span="1"><el-button type="primary">审核</el-button></el-col> -->
                </el-row>
            </div>
            <el-descriptions class="margin-top" title="" :column="3" border>
                <el-descriptions-item :span="3">
                    <template #label>
                    <div class="cell-item">交易主体</div>
                    </template>
                    <!-- {{ state.ruleForm.transactionName }} -->
                    <span v-for="(item, index) in state.roleList" :key="index">
                                            <span v-if="item.code == state.ruleForm.transactionCode">{{ item.name }}</span>
                                            </span>
                </el-descriptions-item>
                <el-descriptions-item>
                    <template #label>
                    <div class="cell-item">企业名称</div>
                    </template>
                    {{ state.ruleForm.enterpriseName }}
                    <span @click="showImg('businessLicense')">
                    <el-link type="primary" underline>查看营业执照</el-link>
                    </span>
                </el-descriptions-item>
                <el-descriptions-item>
                    <template #label>
                    <div class="cell-item">统一社会信用代码</div>
                    </template>
                    {{ state.ruleForm.unifiedSocialCreditCode }}
                </el-descriptions-item>
                <el-descriptions-item>
                    <template #label>
                    <div class="cell-item">注册资金</div>
                    </template>
                    {{ state.ruleForm.registeredCapital }}
                </el-descriptions-item>
                <el-descriptions-item :span="2">
                    <template #label>
                    <div class="cell-item">企业类型</div>
                    </template>
                    {{ state.ruleForm.enterpriseType }}
                </el-descriptions-item>
                <el-descriptions-item>
                    <template #label>
                    <div class="cell-item">住所地</div>
                    </template>
                    {{ state.ruleForm.residence }}
                </el-descriptions-item>
                <el-descriptions-item>
                    <template #label>
                    <div class="cell-item">联系电话</div>
                    </template>
                    {{ state.ruleForm.legalRepresentativePhone }}
                </el-descriptions-item>
                <el-descriptions-item>
                    <template #label>
                    <div class="cell-item">成立时间</div>
                    </template>
                    {{ formatDate(new Date(state.ruleForm.establishmentTime), 'YYYY-mm-dd') }}
                </el-descriptions-item>
                <el-descriptions-item :span="2">
                    <template #label>
                    <div class="cell-item">电子邮箱</div>
                    </template>
                    {{ state.ruleForm.enterpriseEmail }}
                </el-descriptions-item>
                <el-descriptions-item :span="3" label-width="100">
                    <template #label>
                    <div class="cell-item">主营业务</div>
                    </template>
                    {{ state.ruleForm.mainBusiness }}
                </el-descriptions-item>
                <el-descriptions-item>
                    <template #label>
                    <div class="cell-item">法定代表人</div>
                    </template>
                    {{ state.ruleForm.legalRepresentativeName }}
                </el-descriptions-item>
                <el-descriptions-item>
                    <template #label>
                    <div class="cell-item">身份证</div>
                    </template>
                    {{ state.ruleForm.legalRepresentativeIdNumber }}
                    <span @click="showImg('legalRepresentativeIdCard')">
                    <el-link type="primary" underline>查看身份证</el-link>
                    </span>
                </el-descriptions-item>
                <el-descriptions-item>
                    <template #label>
                    <div class="cell-item">联系电话</div>
                    </template>
                    {{ state.ruleForm.legalRepresentativePhone }}
                </el-descriptions-item>
                <el-descriptions-item>
                    <template #label>
                    <div class="cell-item">业务经办人</div>
                    </template>
                    {{ state.ruleForm.operatorName }}
                </el-descriptions-item>
                <el-descriptions-item>
                    <template #label>
                    <div class="cell-item">身份证</div>
                    </template>
                    <el-image-viewer
                        v-if="showPreview"
                        :url-list="state.srcList"
                        show-progress
                        @close="showPreview = false"
                    />
                    {{ state.ruleForm.operatorIdNumber }}
                    <span style="margin-right: auto" @click="showImg('operatorIdCard')">
                    <el-link type="primary" underline>查看身份证</el-link>
                    </span>
                </el-descriptions-item>
                <el-descriptions-item>
                    <template #label>
                    <div class="cell-item">联系电话</div>
                    </template>
                    {{ state.ruleForm.operatorPhone }}
                </el-descriptions-item>
                <el-descriptions-item>
                    <template #label>
                    <div class="cell-item">开户银行</div>
                    </template>
                    {{ state.ruleForm.bankName }}
                </el-descriptions-item>
                <el-descriptions-item>
                    <template #label>
                    <div class="cell-item">银行账号</div>
                    </template>
                    {{ state.ruleForm.bankAccount }}
                </el-descriptions-item>
                </el-descriptions>
            <template #footer>
                <span class="dialog-footer">
                    <el-button @click="() => state.showDialog = false">取 消</el-button>
                    <el-button @click="submit" type="primary" v-reclick="1000">审 核</el-button>
                </span>
            </template>
        </el-dialog>
    </div>
</template>
<style lang="scss" scoped>
:deep(.el-select), :deep(.el-input-number) {
  width: 100%;
}
</style>
Web/src/views/Customer/fBS_CusExtendExamine/index.vue
New file
@@ -0,0 +1,361 @@
<script lang="ts" setup name="fBS_CusExtend">
import { ref, reactive, onMounted } from "vue";
import { auth } from '/@/utils/authFunction';
import { ElMessageBox, ElMessage } from "element-plus";
import { downloadStreamFile } from "/@/utils/download";
import { useFBS_CusExtendApi } from '/@/api/Customer/fBS_CusExtend';
import editDialog from '/@/views/Customer/fBS_CusExtendExamine/component/editDialog.vue'
import printDialog from '/@/views/system/print/component/hiprint/preview.vue'
import ModifyRecord from '/@/components/table/modifyRecord.vue';
import ImportData from "/@/components/table/importData.vue";
import { useFBS_ExRoleApi } from '/@/api/Customer/fBS_ExRole';
import { formatDate } from '/@/utils/formatTime';
const fBS_CusExtendApi = useFBS_CusExtendApi();
const fBS_ExRoleApi = useFBS_ExRoleApi();
const printDialogRef = ref();
const editDialogRef = ref();
const importDataRef = ref();
const state = reactive({
  exportLoading: false,
  tableLoading: false,
  stores: {},
  showAdvanceQueryUI: false,
  dropdownData: {} as any,
  selectData: [] as any[],
  tableQueryParams: {} as any,
  tableParams: {
    page: 1,
    pageSize: 20,
    total: 0,
    field: 'createTime', // 默认的排序字段
    order: 'descending', // 排序方向
    descStr: 'descending', // 降序排序的关键字符
  },
  tableParams1: {
    page: 1,
    pageSize: 20,
    total: 0,
    field: 'createTime', // 默认的排序字段
    order: 'descending', // 排序方向
    descStr: 'descending', // 降序排序的关键字符
  },
  tableData: [],
  roleList: [],
  qiyeList:[],
  shenheList:[]
});
// 页面加载时
onMounted(async () => {
  handleQueryRole()
  getParamList()
});
const getParamList = async()=>{
  let res = await fBS_CusExtendApi.getParam().then(res => res.data.result);
  state.qiyeList = res.enterpriseTypes
  state.shenheList = res.stepsTypeItems
  console.log(res,state.qiyeList,state.shenheList);
}
// 查询操作
const handleQuery = async (params: any = {}) => {
  state.tableLoading = true;
  state.tableParams = Object.assign(state.tableParams, params);
  const result = await fBS_CusExtendApi.page(Object.assign(state.tableQueryParams, state.tableParams)).then(res => res.data.result);
  state.tableParams.total = result?.total;
  state.tableData = result?.items ?? [];
  state.tableLoading = false;
};
// 查询角色
const handleQueryRole = async (params: any = {}) => {
  const result = await fBS_ExRoleApi.page(Object.assign({}, state.tableParams1)).then(res => res.data.result);
  state.roleList = result?.items ?? [];
};
// 列排序
const sortChange = async (column: any) => {
  state.tableParams.field = column.prop;
  state.tableParams.order = column.order;
  await handleQuery();
};
// 删除
const delFBS_CusExtend = (row: any) => {
  ElMessageBox.confirm(`确定要删除吗?`, "提示", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning",
  }).then(async () => {
    await fBS_CusExtendApi.delete({ id: row.id });
    handleQuery();
    ElMessage.success("删除成功");
  }).catch(() => {});
};
// 批量删除
const batchDelFBS_CusExtend = () => {
  ElMessageBox.confirm(`确定要删除${state.selectData.length}条记录吗?`, "提示", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning",
  }).then(async () => {
    await fBS_CusExtendApi.batchDelete(state.selectData.map(u => ({ id: u.id }) )).then(res => {
      ElMessage.success(`成功批量删除${res.data.result}条记录`);
      handleQuery();
    });
  }).catch(() => {});
};
// 导出数据
const exportFBS_CusExtendCommand = async (command: string) => {
  try {
    state.exportLoading = true;
    if (command === 'select') {
      const params = Object.assign({}, state.tableQueryParams, state.tableParams, { selectKeyList: state.selectData.map(u => u.id) });
      await fBS_CusExtendApi.exportData(params).then(res => downloadStreamFile(res));
    } else if (command === 'current') {
      const params = Object.assign({}, state.tableQueryParams, state.tableParams);
      await fBS_CusExtendApi.exportData(params).then(res => downloadStreamFile(res));
    } else if (command === 'all') {
      const params = Object.assign({}, state.tableQueryParams, state.tableParams, { page: 1, pageSize: 99999999 });
      await fBS_CusExtendApi.exportData(params).then(res => downloadStreamFile(res));
    }
  } finally {
    state.exportLoading = false;
  }
}
handleQuery();
</script>
<template>
  <div class="fBS_CusExtend-container" v-loading="state.exportLoading">
    <el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
      <el-form :model="state.tableQueryParams" ref="queryForm" labelWidth="120">
        <el-row>
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10">
            <el-form-item label="关键字">
              <el-input v-model="state.tableQueryParams.keyword" clearable placeholder="请输入模糊查询关键字"/>
            </el-form-item>
          </el-col>
          <!-- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="用户ID">
              <el-input v-model="state.tableQueryParams.customerId" clearable placeholder="请输入用户ID"/>
            </el-form-item>
          </el-col> -->
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="企业类型 ">
              <el-input v-model="state.tableQueryParams.enterpriseType" clearable placeholder="请输入企业类型 "/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="交易主体">
              <el-input v-model="state.tableQueryParams.transactionCode" clearable placeholder="请输入交易主体"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="企业名称">
              <el-input v-model="state.tableQueryParams.enterpriseName" clearable placeholder="请输入企业名称"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="统一社会信用代码">
              <el-input v-model="state.tableQueryParams.unifiedSocialCreditCode" clearable placeholder="请输入统一社会信用代码"/>
            </el-form-item>
          </el-col>
          <!-- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="注册资金">
              <el-input v-model="state.tableQueryParams.registeredCapital" clearable placeholder="请输入注册资金"/>
            </el-form-item>
          </el-col> -->
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="法定代表人姓名">
              <el-input v-model="state.tableQueryParams.legalRepresentativePhone" clearable placeholder="请输入法定代表人姓名"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="企业住所">
              <el-input v-model="state.tableQueryParams.residence" clearable placeholder="请输入企业住所"/>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="企业联系电话">
              <el-input v-model="state.tableQueryParams.enterprisePhone" clearable placeholder="请输入企业联系电话"/>
            </el-form-item>
          </el-col>
          <!-- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="企业成立时间">
              <el-date-picker type="daterange" v-model="state.tableQueryParams.establishmentTimeRange"  value-format="YYYY-MM-DD HH:mm:ss" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" />
            </el-form-item>
          </el-col> -->
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="企业主营业务">
              <el-input v-model="state.tableQueryParams.mainBusiness" clearable placeholder="请输入企业主营业务"/>
            </el-form-item>
          </el-col>
          <!-- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="企业邮箱">
              <el-input v-model="state.tableQueryParams.enterpriseEmail" clearable placeholder="请输入企业邮箱"/>
            </el-form-item>
          </el-col> -->
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="业务经办人姓名">
              <el-input v-model="state.tableQueryParams.operatorName" clearable placeholder="请输入业务经办人姓名"/>
            </el-form-item>
          </el-col>
          <!-- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10" v-if="state.showAdvanceQueryUI">
            <el-form-item label="审核步骤">
              <g-sys-dict v-model="state.tableQueryParams.steps" code="CusExtendStep" render-as="select" placeholder="请选择审核步骤" clearable filterable />
            </el-form-item>
          </el-col> -->
          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="4" class="mb10">
            <el-form-item >
              <el-button-group style="display: flex; align-items: center;">
                <el-button type="primary"  icon="ele-Search" @click="handleQuery" v-auth="'fBS_CusExtend:page'" v-reclick="1000"> 查询 </el-button>
                <el-button icon="ele-Refresh" @click="() => state.tableQueryParams = {}"> 重置 </el-button>
                <el-button icon="ele-ZoomIn" @click="() => state.showAdvanceQueryUI = true" v-if="!state.showAdvanceQueryUI" style="margin-left:5px;"> 高级查询 </el-button>
                <el-button icon="ele-ZoomOut" @click="() => state.showAdvanceQueryUI = false" v-if="state.showAdvanceQueryUI" style="margin-left:5px;"> 隐藏 </el-button>
                <!-- <el-button type="danger" style="margin-left:5px;" icon="ele-Delete" @click="batchDelFBS_CusExtend" :disabled="state.selectData.length == 0" v-auth="'fBS_CusExtend:batchDelete'"> 删除 </el-button> -->
                <!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="editDialogRef.openDialog(null, '新增企业资料')" v-auth="'fBS_CusExtend:add'"> 新增 </el-button> -->
                <el-dropdown :show-timeout="70" :hide-timeout="50" @command="exportFBS_CusExtendCommand">
                  <el-button type="primary" style="margin-left:5px;" icon="ele-FolderOpened" v-reclick="20000" v-auth="'fBS_CusExtend:export'"> 导出 </el-button>
                  <template #dropdown>
                    <el-dropdown-menu>
                      <el-dropdown-item command="select" :disabled="state.selectData.length == 0">导出选中</el-dropdown-item>
                      <el-dropdown-item command="current">导出本页</el-dropdown-item>
                      <el-dropdown-item command="all">导出全部</el-dropdown-item>
                    </el-dropdown-menu>
                  </template>
                </el-dropdown>
                <el-button type="warning" style="margin-left:5px;" icon="ele-MostlyCloudy" @click="importDataRef.openDialog()" v-auth="'fBS_CusExtend:import'"> 导入 </el-button>
              </el-button-group>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
    </el-card>
    <el-card class="full-table" shadow="hover" style="margin-top: 5px">
      <el-table :data="state.tableData" @selection-change="(val: any[]) => { state.selectData = val; }" fit style="width: 100%" v-loading="state.tableLoading" tooltip-effect="light" row-key="id" @sort-change="sortChange" border>
        <el-table-column type="selection" width="40" align="center" v-if="auth('fBS_CusExtend:batchDelete') || auth('fBS_CusExtend:export')" />
        <el-table-column type="index" label="序号" width="55" align="center"/>
        <!-- <el-table-column prop='customerId' label='用户ID' show-overflow-tooltip /> -->
        <el-table-column prop='enterpriseType' label='企业类型 ' show-overflow-tooltip />
        <el-table-column prop='transactionCode' label='交易主体' show-overflow-tooltip width="100">
          <template v-slot="scope">
            <span v-for="(item, index) in state.roleList" :key="index">
          <span v-if="item.code == scope.row.transactionCode">{{ item.name }}</span>
        </span>
          </template>
        </el-table-column>
        <el-table-column prop='businessLicense' label='营业执照' show-overflow-tooltip width="120">
          <template v-slot="scope">
             <el-image
                                :src="scope.row.businessLicense"
                                :zoom-rate="1.2"
                                :preview-src-list="[scope.row.businessLicense]"
                                preview-teleported
                                fit="cover"
                        />
          </template>
        </el-table-column>
        <el-table-column prop='enterpriseName' label='企业名称' show-overflow-tooltip width="180"/>
        <el-table-column prop='unifiedSocialCreditCode' label='统一社会信用代码' show-overflow-tooltip width="150"/>
        <el-table-column prop='registeredCapital' label='注册资金' show-overflow-tooltip />
        <el-table-column prop='enterprisePhone' label='联系电话' show-overflow-tooltip width="100"/>
        <el-table-column prop='establishmentTime' label='成立时间' show-overflow-tooltip >
          <template #default="scope">
              {{ formatDate(new Date(scope.row.establishmentTime), 'YYYY-mm-dd') }}
            </template>
        </el-table-column>
        <!-- <el-table-column prop='mainBusiness' label='企业主营业务' show-overflow-tooltip /> -->
        <el-table-column prop='enterpriseEmail' label='企业邮箱' show-overflow-tooltip width="150"/>
        <el-table-column prop='legalRepresentativeName' label='法定代表人姓名' show-overflow-tooltip  width="110"/>
        <el-table-column prop='legalRepresentativeIdCard' label='法定代表人身份证' show-overflow-tooltip width="120">
          <template v-slot="scope">
             <el-image
                                :src="scope.row.legalRepresentativeIdCard"
                                :zoom-rate="1.2"
                                :preview-src-list="[scope.row.legalRepresentativeIdCard]"
                                preview-teleported
                                fit="cover"
                        />
          </template></el-table-column>
        <!-- <el-table-column prop='legalRepresentativeIdNumber' label='法定代表人身份证号码' show-overflow-tooltip width="120"/> -->
        <el-table-column prop='legalRepresentativePhone' label='法定代表人联系电话' show-overflow-tooltip width="130"/>
        <!-- <el-table-column prop='residence' label='企业住所' show-overflow-tooltip /> -->
        <el-table-column prop='operatorName' label='业务经办人姓名' show-overflow-tooltip width="110"/>
        <el-table-column prop='operatorIdCard' label='业务经办人身份证' show-overflow-tooltip width="120">
          <template v-slot="scope">
             <el-image
                                :src="scope.row.operatorIdCard"
                                :zoom-rate="1.2"
                                :preview-src-list="[scope.row.operatorIdCard]"
                                preview-teleported
                                fit="cover"
                        />
          </template>
        </el-table-column>
        <!-- <el-table-column prop='operatorIdNumber' label='业务经办人身份证号码' show-overflow-tooltip width="120"/> -->
        <el-table-column prop='operatorPhone' label='业务经办人电话' show-overflow-tooltip width="120"/>
        <!-- <el-table-column prop='bankName' label='开户行名称' show-overflow-tooltip /> -->
        <!-- <el-table-column prop='bankAccount' label='开户行账号' show-overflow-tooltip width="120"/> -->
        <el-table-column prop='steps' label='审核步骤' show-overflow-tooltip>
          <template v-slot="scope">
            <span v-for="(item, index) in state.shenheList" :key="index">
              <el-tag v-if="item.value == scope.row.steps">{{ item.description }}</el-tag>
            </span>
          </template>
          <!-- <template #default="scope">
            <el-tag v-if="scope.row.steps==0" type='warning'>
              待审核
            </el-tag>
            <el-tag v-else-if="scope.row.steps==1" type='primary'>
              更改
            </el-tag>
            <el-tag v-else-if="scope.row.steps==2" type='success'>
              通过
            </el-tag>
            <el-tag v-else-if="scope.row.steps==3" type='error'>
              未通过
            </el-tag>
          </template> -->
        </el-table-column>
        <!-- <el-table-column label="修改记录" width="100" align="center" show-overflow-tooltip>
          <template #default="scope">
            <ModifyRecord :data="scope.row" />
          </template>
        </el-table-column> -->
        <el-table-column label="操作" width="70" align="center" fixed="right" show-overflow-tooltip v-if="auth('fBS_CusExtend:update') || auth('fBS_CusExtend:delete')">
          <template #default="scope">
            <el-button icon="ele-Check" size="small" text type="primary" @click="editDialogRef.openDialog(scope.row, '审核企业资料', state.qiyeList,state.roleList,state.shenheList)" v-auth="'fBS_CusExtend:update'">  </el-button>
            <!-- <el-button icon="ele-Delete" size="small" text type="primary" @click="delFBS_CusExtend(scope.row)" v-auth="'fBS_CusExtend:delete'">  </el-button> -->
          </template>
        </el-table-column>
      </el-table>
      <el-pagination
              v-model:currentPage="state.tableParams.page"
              v-model:page-size="state.tableParams.pageSize"
              @size-change="(val: any) => handleQuery({ pageSize: val })"
              @current-change="(val: any) => handleQuery({ page: val })"
              layout="total, sizes, prev, pager, next, jumper"
              :page-sizes="[10, 20, 50, 100, 200, 500]"
              :total="state.tableParams.total"
              size="small"
              background />
      <ImportData ref="importDataRef" :import="fBS_CusExtendApi.importData" :download="fBS_CusExtendApi.downloadTemplate" v-auth="'fBS_CusExtend:import'" @refresh="handleQuery"/>
      <printDialog ref="printDialogRef" :title="'打印企业资料'" @reloadTable="handleQuery" />
      <editDialog ref="editDialogRef" @reloadTable="handleQuery" />
    </el-card>
  </div>
</template>
<style scoped>
:deep(.el-input), :deep(.el-select), :deep(.el-input-number) {
  width: 100%;
}
</style>