zhangwei
2025-08-22 b538026f2095c82a699c3269bfd6c6925ed4d662
用户管理
1 文件已重命名
5个文件已修改
3个文件已添加
953 ■■■■■ 已修改文件
Web/src/api/Customer/fBS_CusExtend.ts 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web/src/theme/app.scss 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web/src/views/Customer/fBS_CusExtend/component/editDialog.vue 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web/src/views/Customer/fBS_CusExtend/component/fBS_Customer/component/editDialog.vue 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web/src/views/Customer/fBS_CusExtend/component/fBS_Customer/editDialog.vue 262 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web/src/views/Customer/fBS_CusExtend/component/fBS_Customer/index.vue 310 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web/src/views/Customer/fBS_CusExtend/index.vue 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web/src/views/Customer/fBS_CusExtendExamine/component/editDialogApply.vue 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web/src/views/Customer/fBS_CusExtendExamine/index.vue 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Web/src/api/Customer/fBS_CusExtend.ts
@@ -17,10 +17,39 @@
                url: '/api/fBS_CusExtend/getParam',
                method: 'get',
            }, false),    
        changeSteps:(id: any, step: any, cancel: boolean = false)=>baseApi.request({
                url:  `/api/fBS_CusExtend/changeSteps/${id}/${step}`,
        //分页查询 待审核企业角色
        getReviewPage:( data:any,cancel: boolean = false)=>baseApi.request({
                url:  `/api/fBS_CusExtend/getReviewPage`,
                method: 'post',
                data
            }, cancel),
        // 更改审核状态
        changeSteps:(coutomerExRolesId: any, step: any, cancel: boolean = false)=>baseApi.request({
            url:  `/api/fBS_CusExtend/changeSteps/${coutomerExRolesId}/${step}`,
                method: 'get',
            }, cancel),
        // 修改用户
        upDataCustormerUser:(data: any, cancel: boolean = false)=>baseApi.request({
            url: '/api/fBS_CusExtend/upDataCustormerUser',
            method: 'post',
            data
        }, cancel),
        // 获取用户信息
        custormerUserInfo:(custormerUserId: any, cancel: boolean = false)=>baseApi.request({
            url:  `/api/fBS_CusExtend/custormerUserInfo/${custormerUserId}`,
            method: 'get',
        }, cancel),
        // 新建员工
        careCustormerUser:(data: any, cancel: boolean = false)=>baseApi.request({
            url: '/api/fBS_CusExtend/careCustormerUser',
            method: 'post',
            data
        }, cancel),
        // 删除员工
        delCustormerUser:(custormerUserId: any, cancel: boolean = false)=>baseApi.request({
            url:  `/api/fBS_CusExtend/delCustormerUser/${custormerUserId}`,
            method: 'delete',
        }, cancel),
        // 删除企业资料
        delete: baseApi.delete,
        // 批量删除企业资料
Web/src/theme/app.scss
@@ -218,6 +218,10 @@
.flex {
    display: flex;
}
.flex-end {
    display: flex;
    justify-content: end;
}
.flex-auto {
    flex: 1;
    overflow: hidden;
Web/src/views/Customer/fBS_CusExtend/component/editDialog.vue
@@ -55,7 +55,7 @@
    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.ruleForm.enterpriseType = state.ruleForm.enterpriseType&&state.ruleForm.enterpriseType.split(",");
    state.showDialog = true;
};
@@ -160,7 +160,7 @@
                            <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="6" :xl="6" 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"
@@ -174,9 +174,8 @@
                                :value="item.code"
                                />
                            </el-select>
                            <!-- <el-input v-model="state.ruleForm.transactionCode" placeholder="请输入交易主体"  show-word-limit clearable /> -->
                        </el-form-item>
                    </el-col>
                    </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="请输入注册资金"  show-word-limit clearable />
@@ -205,6 +204,29 @@
                    <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="12" :md="12" :lg="6" :xl="6" class="mb20" >
                        <el-form-item label="开户行" prop="bankName">
                            <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="8" :xl="8" class="mb20" >
                        <el-form-item label="银行账号" prop="bankAccount">
                            <el-input v-model="state.ruleForm.bankAccount" 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="bankAccountIMG">
                            <el-image
                                :src="state.ruleForm.bankAccountIMG"
                                :zoom-rate="1.2"
                                :preview-src-list="[state.ruleForm.bankAccountIMG]"
                                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="24" :md="24" :lg="24" :xl="24" class="mb20" >
@@ -263,16 +285,7 @@
                            <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="6" :xl="6" class="mb20" >
                        <el-form-item label="开户行" prop="bankName">
                            <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="8" :xl="8" class="mb20" >
                        <el-form-item label="银行账号" prop="bankAccount">
                            <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="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 />
Web/src/views/Customer/fBS_CusExtend/component/fBS_Customer/component/editDialog.vue
New file
@@ -0,0 +1,151 @@
<script lang="ts" name="fBS_Customer" 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_CustomerApi } from '/@/api/Customer/fBS_Customer';
import { useFBS_CusExtendApi } from '/@/api/Customer/fBS_CusExtend';
const fBS_CusExtendApi = useFBS_CusExtendApi();
//父级传递来的函数,用于回调
const emit = defineEmits(["reloadTable"]);
const fBS_CustomerApi = useFBS_CustomerApi();
const ruleFormRef = ref();
const state = reactive({
    title: '',
    loading: false,
    showDialog: false,
    ruleForm: {} as any,
    stores: {},
    dropdownData: {} as any,
});
// 自行添加其他规则
const rules = ref<FormRules>({
  account: [{required: true, message: '请选择账号!', trigger: 'blur',},],
  password: [{required: true, message: '请选择密码!', trigger: 'blur',},],
  name: [{required: true, message: '请输入姓名!', trigger: 'blur',},],
  phoneNumber: [{required: true, message: '请输入手机号!', trigger: 'change',},],
  age: [{required: true, message: '请选择年龄!', trigger: 'blur',},],
  cardType: [{required: true, message: '请选择证件类型!', trigger: 'change',},],
  cultureLevel: [{required: true, message: '请选择文化程度!', trigger: 'change',},],
  orderNo: [{required: true, message: '请选择排序!', trigger: 'blur',},],
  status: [{required: true, message: '请选择状态!', trigger: 'change',},],
});
// 页面加载时
onMounted(async () => {
});
// 打开弹窗
const openDialog = async (row: any, title: string, newAdd:any) => {
    console.log(newAdd,row);
    row = row??{ status: 1,orderNo: 100, };
    state.ruleForm = row.id ? await fBS_CusExtendApi.custormerUserInfo(row.id).then(res => res.data.result) : JSON.parse(JSON.stringify(row));
    state.title = title;
    if(title=='新增用户'){
        state.ruleForm.isEn = true
        state.ruleForm.cusExtendId =  newAdd.id
    }
    state.showDialog = true;
};
// 关闭弹窗
const closeDialog = () => {
    emit("reloadTable",state.ruleForm);
    state.showDialog = false;
};
// 提交
const submit = async () => {
    ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => {
        if (isValid) {
            let values = state.ruleForm;
            let res = await fBS_CusExtendApi[state.ruleForm.id ? 'upDataCustormerUser' : 'careCustormerUser'](values);
            state.ruleForm.id = state.ruleForm.id??res.data.result
            closeDialog();
        } else {
            ElMessage({
                message: `表单有${Object.keys(fields).length}处验证失败,请修改后再提交`,
                type: "error",
            });
        }
    });
};
//将属性或者函数暴露给父组件
defineExpose({ openDialog });
</script>
<template>
    <div class="fBS_Customer-container">
        <el-dialog v-model="state.showDialog" :width="800" draggable :close-on-click-modal="false">
            <template #header>
                <div style="color: #fff">
                    <span>{{ state.title }}</span>
                </div>
            </template>
            <el-form :model="state.ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules">
                <el-row :gutter="35">
                    <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-form-item label="姓名" prop="name">
                            <el-input v-model="state.ruleForm.name" 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="phoneNumber">
                            <el-input v-model="state.ruleForm.phoneNumber" 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="是否管理员">
                            <el-switch
                                v-model="state.ruleForm.isManager"
                                inline-prompt
                                :active-value="true"
                                :inactive-value="false"
                                active-text="是"
                                inactive-text="否"
                            />
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" >
                        <el-form-item label="是否启用">
                            <el-switch
                                v-model="state.ruleForm.isEn"
                                inline-prompt
                                :active-value="true"
                                :inactive-value="false"
                                active-text="启用"
                                inactive-text="停用"
                            />
                            </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" >
                        <el-form-item label="备注" prop="remarks">
                            <el-input
                                v-model="state.ruleForm.remarks"
                                placeholder="请输入备注信息"
                                type="textarea"
                            />
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
            <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_CusExtend/component/fBS_Customer/editDialog.vue
New file
@@ -0,0 +1,262 @@
<script lang="ts" name="fBS_Customer" setup>
import { ref, reactive, onMounted } from "vue";
import type { FormRules } from "element-plus";
import { formatDate } from '/@/utils/formatTime';
import { useFBS_CustomerApi } from '/@/api/Customer/fBS_Customer';
import { useFBS_CusExtendApi } from '/@/api/Customer/fBS_CusExtend';
import { auth } from '/@/utils/authFunction';
import { ElMessageBox, ElMessage } from "element-plus";
import { downloadStreamFile } from "/@/utils/download";
import editDialog from '/@/views/Customer/fBS_CusExtend/component/fBS_Customer/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";
const fBS_CusExtendApi = useFBS_CusExtendApi();
const fBS_CustomerApi = useFBS_CustomerApi();
const printDialogRef = ref();
const editDialogRef = ref();
const importDataRef = ref();
const state = reactive({
    title: '',
    loading: false,
    showDialog: false,
    ruleForm: {} as any,
    stores: {},
    dropdownData: {} as any,
    exportLoading: false,
    tableLoading: false,
    showAdvanceQueryUI: false,
    selectData: [] as any[],
    tableQueryParams: {} as any,
    tableParams: {
        page: 1,
        pageSize: 20,
        total: 0,
        field: 'createTime', // 默认的排序字段
        order: 'descending', // 排序方向
        descStr: 'descending', // 降序排序的关键字符
    },
    tableData: [],
    listRow:{}
});
// 页面加载时
onMounted(async () => {
});
/**
 * 根据id对数组元素进行操作:存在则替换,不存在则添加,指定删除则移除
 * @param {Array} array - 要操作的原数组
 * @param {Object} item - 要操作的元素,必须包含id属性
 * @param {boolean} [deleteFlag=false] - 是否执行删除操作
 * @returns {Array} 处理后的数组
 */
function operateByid(array, item, deleteFlag = false) {
    // 检查元素是否包含id
    // if (!item || !('id' in item)) {
    //     console.warn('元素必须包含id属性');
    //     return [...array];
    // }
    // 创建原数组的副本,避免直接修改原数组
    const newArray = [...array];
    // 查找数组中是否存在相同id的元素
    const index = newArray.findIndex(i => i.id === item.id);
    if (deleteFlag) {
        // 如果需要删除且元素存在,则从数组中移除
        if (index !== -1) {
            newArray.splice(index, 1);
        }
    } else {
        if (index !== -1) {
            // 存在则替换
            newArray[index] = item;
        } else {
            // 不存在则添加
            newArray.push(item);
        }
    }
    return newArray;
}
// 查询操作
const handleQuery = async (params: any = {}, deleteFlag:false) => {
  state.tableLoading = true;
  state.tableData = operateByid(state.tableData,params,deleteFlag)
  console.log(params);
  state.tableLoading = false;
};
// 列排序
const sortChange = async (column: any) => {
  state.tableParams.field = column.prop;
  state.tableParams.order = column.order;
  await handleQuery();
};
// 删除
const delFBS_Customer = (row: any) => {
    console.log(row,'rowrow');
  ElMessageBox.confirm(`确定要删除吗?`, "提示", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning",
  }).then(async () => {
    await fBS_CusExtendApi.delCustormerUser(row.id);
    handleQuery(row,true);
    ElMessage.success("删除成功");
  }).catch(() => {});
};
// 批量删除
const batchDelFBS_Customer = () => {
  ElMessageBox.confirm(`确定要删除${state.selectData.length}条记录吗?`, "提示", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning",
  }).then(async () => {
    await fBS_CustomerApi.batchDelete(state.selectData.map(u => ({ id: u.id }) )).then(res => {
      ElMessage.success(`成功批量删除${res.data.result}条记录`);
      handleQuery();
    });
  }).catch(() => {});
};
// // 设置状态
// const changeFBS_CustomerStatus = async (row: any) => {
//   await fBS_CusExtendApi.setStatus({ id: row.id, status: row.status }).then(() => ElMessage.success('状态设置成功'));
// };
// 导出数据
const exportFBS_CustomerCommand = 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_CustomerApi.exportData(params).then(res => downloadStreamFile(res));
    } else if (command === 'current') {
      const params = Object.assign({}, state.tableQueryParams, state.tableParams);
      await fBS_CustomerApi.exportData(params).then(res => downloadStreamFile(res));
    } else if (command === 'all') {
      const params = Object.assign({}, state.tableQueryParams, state.tableParams, { page: 1, pageSize: 99999999 });
      await fBS_CustomerApi.exportData(params).then(res => downloadStreamFile(res));
    }
  } finally {
    state.exportLoading = false;
  }
}
handleQuery();
//父级传递来的函数,用于回调
const emit = defineEmits(["reloadTable"]);
const ruleFormRef = ref();
// 页面加载时
onMounted(async () => {
});
// 打开弹窗
const openDialog = async (row: any, title: string) => {
    state.title = title;
    let res = JSON.parse(JSON.stringify(row))
    state.tableData = res.custormerUsers
    state.listRow = row
    // state.ruleForm = row.id ? await fBS_CustomerApi.detail(row.id).then(res => res.data.result) : JSON.parse(JSON.stringify(row));
    state.showDialog = true;
};
// 关闭弹窗
const closeDialog = () => {
    emit("reloadTable");
    state.showDialog = false;
};
// 提交
const submit = async () => {
    closeDialog();
};
//将属性或者函数暴露给父组件
defineExpose({ openDialog });
</script>
<template>
    <div class="fBS_Customer-container">
        <el-dialog v-model="state.showDialog" :width="1200" draggable @close="closeDialog" :close-on-click-modal="false">
            <template #header>
                <div style="color: #fff">
                    <span>{{ state.title }}</span>
                </div>
            </template>
            <div class="flex-end">
                <el-button @click="editDialogRef.openDialog(null, '新增用户',state.listRow)" v-auth="'fBS_Customer:add'" type="primary" v-reclick="1000">新建</el-button>
            </div>
            <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-column type="selection" width="40" align="center"
                        v-if="false" />
                    <!-- <el-table-column type="index" label="序号" width="55" align="center" /> -->
                    <el-table-column prop='name' label='姓名' sortable='custom' show-overflow-tooltip />
                    <el-table-column prop='isManager' label='角色' sortable='custom' show-overflow-tooltip >
                    <template #default="scope">
                        <el-switch
                        disabled="disabled"
                        v-model="scope.row.isManager"
                        :active-value='true'
                        :inactive-value='false'
                        active-text="管理员"
                        inactive-text="员工"
                        size="small"
                        inline-prompt
                        />
                    </template>
                        </el-table-column>
                    <el-table-column prop='phoneNumber' label='手机号码' show-overflow-tooltip />
                    <el-table-column prop='isEn' label='是否启用' v-auth="'fBS_Customer:setStatus'" show-overflow-tooltip>
                        <template #default="scope">
                            <el-tag :type="scope.row.isEn?'primary':'error'">{{ scope.row.isEn?'是':'否' }}</el-tag>
                        </template>
                    </el-table-column>
                    <el-table-column prop='remark' label='备注' show-overflow-tooltip />
                    <el-table-column label="操作" width="70" align="center" fixed="right" show-overflow-tooltip
                        v-if="auth('fBS_Customer:update') || auth('fBS_Customer:delete')">
                        <template #default="scope">
                            <el-button icon="ele-Edit" size="small" text type="primary"
                                @click="editDialogRef.openDialog(scope.row, '编辑用户信息')" v-auth="'fBS_Customer:update'">
                            </el-button>
                            <el-button icon="ele-Delete" size="small" text type="primary"
                                @click="delFBS_Customer(scope.row)" v-auth="'fBS_Customer:delete'"> </el-button>
                        </template>
                    </el-table-column>
                </el-table>
                <ImportData ref="importDataRef" :import="fBS_CustomerApi.importData"
                    :download="fBS_CustomerApi.downloadTemplate" v-auth="'fBS_Customer:import'"
                    @refresh="handleQuery" />
                <printDialog ref="printDialogRef" :title="'打印客户表'" @reloadTable="handleQuery" />
                <editDialog ref="editDialogRef" @reloadTable="handleQuery" />
            </el-card>
            <template #footer>
                <span class="dialog-footer">
                    <el-button @click="submit">取 消</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_CusExtend/component/fBS_Customer/index.vue
New file
@@ -0,0 +1,310 @@
<script lang="ts" setup name="fBS_Customer">
import { ref, reactive, onMounted } from "vue";
import { auth } from '/@/utils/authFunction';
import { ElMessageBox, ElMessage } from "element-plus";
import { downloadStreamFile } from "/@/utils/download";
import { useFBS_CustomerApi } from '/@/api/Customer/fBS_Customer';
import editDialog from '/@/views/Customer/fBS_Customer/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";
const fBS_CustomerApi = useFBS_CustomerApi();
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', // 降序排序的关键字符
  },
  tableData: [],
});
// 页面加载时
onMounted(async () => {
});
// 查询操作
const handleQuery = async (params: any = {}) => {
  state.tableLoading = true;
  state.tableParams = Object.assign(state.tableParams, params);
  const result = await fBS_CustomerApi.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 sortChange = async (column: any) => {
  state.tableParams.field = column.prop;
  state.tableParams.order = column.order;
  await handleQuery();
};
// 删除
const delFBS_Customer = (row: any) => {
  ElMessageBox.confirm(`确定要删除吗?`, "提示", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning",
  }).then(async () => {
    await fBS_CustomerApi.delete({ id: row.id });
    handleQuery();
    ElMessage.success("删除成功");
  }).catch(() => {});
};
// 批量删除
const batchDelFBS_Customer = () => {
  ElMessageBox.confirm(`确定要删除${state.selectData.length}条记录吗?`, "提示", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning",
  }).then(async () => {
    await fBS_CustomerApi.batchDelete(state.selectData.map(u => ({ id: u.id }) )).then(res => {
      ElMessage.success(`成功批量删除${res.data.result}条记录`);
      handleQuery();
    });
  }).catch(() => {});
};
// 设置状态
const changeFBS_CustomerStatus = async (row: any) => {
  await fBS_CustomerApi.setStatus({ id: row.id, status: row.status }).then(() => ElMessage.success('状态设置成功'));
};
// 导出数据
const exportFBS_CustomerCommand = 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_CustomerApi.exportData(params).then(res => downloadStreamFile(res));
    } else if (command === 'current') {
      const params = Object.assign({}, state.tableQueryParams, state.tableParams);
      await fBS_CustomerApi.exportData(params).then(res => downloadStreamFile(res));
    } else if (command === 'all') {
      const params = Object.assign({}, state.tableQueryParams, state.tableParams, { page: 1, pageSize: 99999999 });
      await fBS_CustomerApi.exportData(params).then(res => downloadStreamFile(res));
    }
  } finally {
    state.exportLoading = false;
  }
}
handleQuery();
</script>
<template>
  <div class="fBS_Customer-container" v-loading="state.exportLoading">
    <el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
      <el-form :model="state.tableQueryParams" ref="queryForm" labelWidth="90">
        <el-row>
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :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-form-item label="账号">
              <el-input v-model="state.tableQueryParams.account" 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.realName" 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.nickName" 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="证件类型">
              <g-sys-dict v-model="state.tableQueryParams.cardType" code="CardTypeEnum" 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" v-if="state.showAdvanceQueryUI">
            <el-form-item label="身份证">
              <el-input v-model="state.tableQueryParams.idCardPath" 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="文化程度">
              <g-sys-dict v-model="state.tableQueryParams.cultureLevel" code="CultureLevelEnum" 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" v-if="state.showAdvanceQueryUI">
            <el-form-item label="毕业院校">
              <el-input v-model="state.tableQueryParams.college" 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.officePhone" 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.emergencyContact" 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.emergencyPhone" 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.emergencyAddress" 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.introduction" 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-number v-model="state.tableQueryParams.orderNo"  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="状态">
              <g-sys-dict v-model="state.tableQueryParams.status" code="StatusEnum" 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" v-if="state.showAdvanceQueryUI">
            <el-form-item label="备注">
              <el-input v-model="state.tableQueryParams.remark" 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.posLevel" 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.posTitle" clearable placeholder="请输入职称"/>
            </el-form-item>
          </el-col> -->
          <el-col :xs="24" :sm="12" :md="12" :lg="8" :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_Customer: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_Customer" :disabled="state.selectData.length == 0" v-auth="'fBS_Customer:batchDelete'"> 删除 </el-button>
                <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="editDialogRef.openDialog(null, '新增客户表')" v-auth="'fBS_Customer:add'"> 新增 </el-button>
                <el-dropdown :show-timeout="70" :hide-timeout="50" @command="exportFBS_CustomerCommand">
                  <el-button type="primary" style="margin-left:5px;" icon="ele-FolderOpened" v-reclick="20000" v-auth="'fBS_Customer: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_Customer: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; }" 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_Customer:batchDelete') || auth('fBS_Customer:export')" />
        <el-table-column type="index" label="序号" width="55" align="center"/>
        <el-table-column prop='account' label='账号' sortable='custom' show-overflow-tooltip />
        <!-- <el-table-column prop='password' label='密码' show-overflow-tooltip /> -->
        <el-table-column prop='realName' label='真实姓名' sortable='custom' show-overflow-tooltip />
        <el-table-column prop='nickName' label='昵称' sortable='custom' show-overflow-tooltip />
        <!-- <el-table-column prop='avatar' label='头像' show-overflow-tooltip /> -->
        <!-- <el-table-column prop='sex' label='性别' show-overflow-tooltip>
          <template #default="scope">
            <g-sys-dict v-model="scope.row.sex" code="GenderEnum" />
          </template>
        </el-table-column>
        <el-table-column prop='age' label='年龄' show-overflow-tooltip />
        <el-table-column prop='birthday' label='出生日期' show-overflow-tooltip />
        <el-table-column prop='nation' label='民族' show-overflow-tooltip /> -->
        <el-table-column prop='phone' label='手机号码' show-overflow-tooltip />
        <!-- <el-table-column prop='cardType' label='证件类型' show-overflow-tooltip>
          <template #default="scope">
            <g-sys-dict v-model="scope.row.cardType" code="CardTypeEnum" />
          </template>
        </el-table-column> -->
        <!-- <el-table-column prop='idCardNum' label='身份证号' show-overflow-tooltip />
        <el-table-column prop='idCardPath' label='身份证' show-overflow-tooltip />
        <el-table-column prop='email' label='邮箱' show-overflow-tooltip />
        <el-table-column prop='address' label='地址' show-overflow-tooltip />
        <el-table-column prop='cultureLevel' label='文化程度' show-overflow-tooltip>
          <template #default="scope">
            <g-sys-dict v-model="scope.row.cultureLevel" code="CultureLevelEnum" />
          </template>
        </el-table-column> -->
        <!-- <el-table-column prop='politicalOutlook' label='政治面貌' show-overflow-tooltip /> -->
        <!-- <el-table-column prop='college' label='毕业院校' show-overflow-tooltip />
        <el-table-column prop='officePhone' label='办公电话' show-overflow-tooltip />
        <el-table-column prop='emergencyContact' label='紧急联系人' show-overflow-tooltip />
        <el-table-column prop='emergencyPhone' label='紧急联系人电话' show-overflow-tooltip />
        <el-table-column prop='emergencyAddress' label='紧急联系人地址' show-overflow-tooltip />
        <el-table-column prop='introduction' label='个人简介' show-overflow-tooltip />
        <el-table-column prop='orderNo' label='排序' show-overflow-tooltip /> -->
        <el-table-column prop='status' label='状态' v-auth="'fBS_Customer:setStatus'" show-overflow-tooltip>
          <template #default="scope">
            <el-switch v-model="scope.row.status" :active-value="1" :inactive-value="2" size="small" @change="changeFBS_CustomerStatus(scope.row)" />
          </template>
        </el-table-column>
        <el-table-column prop='remark' label='备注' show-overflow-tooltip />
        <!-- <el-table-column prop='posLevel' label='职级' show-overflow-tooltip />
        <el-table-column prop='posTitle' label='职称' show-overflow-tooltip /> -->
        <!-- <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_Customer:update') || auth('fBS_Customer:delete')">
          <template #default="scope">
            <el-button icon="ele-Edit" size="small" text type="primary" @click="editDialogRef.openDialog(scope.row, '编辑客户表')" v-auth="'fBS_Customer:update'">  </el-button>
            <el-button icon="ele-Delete" size="small" text type="primary" @click="delFBS_Customer(scope.row)" v-auth="'fBS_Customer: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_CustomerApi.importData" :download="fBS_CustomerApi.downloadTemplate" v-auth="'fBS_Customer: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>
Web/src/views/Customer/fBS_CusExtend/index.vue
@@ -5,6 +5,7 @@
import { downloadStreamFile } from "/@/utils/download";
import { useFBS_CusExtendApi } from '/@/api/Customer/fBS_CusExtend';
import editDialog from '/@/views/Customer/fBS_CusExtend/component/editDialog.vue'
import userManagement from '/@/views/Customer/fBS_CusExtend/component/fBS_Customer/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";
@@ -16,6 +17,8 @@
const fBS_ExRoleApi = useFBS_ExRoleApi();
const printDialogRef = ref();
const editDialogRef = ref();
const userManagementRef = ref();
const dialogVisible = ref(false);
const importDataRef = ref();
const state = reactive({
  exportLoading: false,
@@ -129,6 +132,11 @@
    state.exportLoading = false;
  }
}
const openUser=()=>{
  console.log(dialogVisible.value,'dialogVisible.value');
  dialogVisible.value = true
}
handleQuery();
</script>
@@ -147,7 +155,7 @@
              <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-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>
@@ -156,7 +164,7 @@
            <el-form-item label="交易主体">
              <el-input v-model="state.tableQueryParams.transactionCode" clearable placeholder="请输入交易主体"/>
            </el-form-item>
          </el-col>
          </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="请输入企业名称"/>
@@ -220,7 +228,7 @@
                <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-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>
@@ -243,14 +251,14 @@
        <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='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> -->
        <el-table-column prop='businessLicense' label='营业执照' show-overflow-tooltip width="120">
          <template v-slot="scope">
             <el-image
@@ -303,37 +311,24 @@
        <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>
        <!-- <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> -->
        <!-- <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')">
        <el-table-column label="操作" width="100" 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, '编辑企业资料', state.qiyeList,state.roleList)" v-auth="'fBS_CusExtend:update'">  </el-button>
            <!-- <el-button icon="ele-Check" size="small" text type="primary" @click="editDialogRefApplyRef.openDialog(scope.row, '审核企业资料', state.qiyeList,state.roleList,state.shenheList)" v-auth="'fBS_CusExtend:update'">  </el-button> -->
            <el-button icon="ele-User" size="small" text type="primary" @click="userManagementRef.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>
@@ -351,7 +346,16 @@
      <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" />
      <userManagement ref="userManagementRef" @reloadTable="handleQuery"/>
    </el-card>
    <el-dialog title="管理企业用户" :visible.sync="dialogVisible" width="width">
          <!-- <userManagement ref="userManagementRef"/> -->
          <div slot="footer">
              <el-button @click="dialogVisible = false">取 消</el-button>
              <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
          </div>
      </el-dialog>
  </div>
</template>
<style scoped>
Web/src/views/Customer/fBS_CusExtendExamine/component/editDialogApply.vue
File was renamed from Web/src/views/Customer/fBS_CusExtendExamine/component/editDialog.vue
@@ -1,5 +1,6 @@
<script lang="ts" name="fBS_CusExtend" setup>
import { ref, reactive, onMounted } from "vue";
import { ElMessage } from "element-plus";
import { formatDate } from '/@/utils/formatTime';
import { useFBS_CusExtendApi } from '/@/api/Customer/fBS_CusExtend';
@@ -15,9 +16,10 @@
    stores: {},
    dropdownData: {} as any,
    enterpriseList:[],
    roleList:[],
    shenheList:[],
    srcList:[]
    roleList:[] as any[],
    shenheList:[] as any[],
    srcList:[],
    listRow:{}
});
// 页面加载时
@@ -32,6 +34,8 @@
    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.exRole = row.exRole
    state.listRow = row
    // state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(",");
    state.showDialog = true;
};
@@ -44,8 +48,19 @@
// 提交
const submit = async (val:any) => {
    let values = state.ruleForm;
    await fBS_CusExtendApi.changeSteps(values.id,val);
    // let values = state.ruleForm;
    let res = await fBS_CusExtendApi.changeSteps(state.listRow.coutomerExRoleId,val);
    if(res.data.code==200){
        ElMessage({
            message: `审核成功!`,
            type: "success",
        });
    }else{
        ElMessage({
            message: res.message||`审核失败!`,
            type: "error",
        });
    }
    closeDialog();
};
const showPreview = ref(false)
@@ -89,10 +104,10 @@
                    <template #label>
                    <div class="cell-item">交易主体</div>
                    </template>
                    <!-- {{ state.ruleForm.transactionName }} -->
                    <span v-for="(item, index) in state.roleList" :key="index">
                    {{ state.ruleForm.exRole.name}}
                    <!-- <span v-for="(item, index) in state.roleList" :key="index">
                                            <span v-if="item.code == state.ruleForm.transactionCode">{{ item.name }}</span>
                                            </span>
                    </span> -->
                </el-descriptions-item>
                <el-descriptions-item>
                    <template #label>
@@ -153,6 +168,26 @@
                </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-item>
                    <template #label>
                    <div class="cell-item">银行收款二维码</div>
                    </template>
                    <span @click="showImg('bankAccountIMG')">
                    <el-link type="primary" underline>查看银行收款二维码</el-link>
                    </span>
                </el-descriptions-item>
                <el-descriptions-item>
                    <template #label>
                    <div class="cell-item">法定代表人</div>
                    </template>
                    {{ state.ruleForm.legalRepresentativeName }}
@@ -199,18 +234,7 @@
                    </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>
Web/src/views/Customer/fBS_CusExtendExamine/index.vue
@@ -4,7 +4,7 @@
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 editDialog from './component/editDialogApply.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";
@@ -64,7 +64,7 @@
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);
  const result = await fBS_CusExtendApi.getReviewPage(Object.assign(state.tableQueryParams, state.tableParams)).then(res => res.data.result);
  state.tableParams.total = result?.total;
  state.tableData = result?.items ?? [];
  state.tableLoading = false;
@@ -133,20 +133,20 @@
</script>
<template>
  <div class="fBS_CusExtend-container" v-loading="state.exportLoading">
    <el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
    <!-- <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> -->
          <!-- <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-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>
@@ -165,7 +165,7 @@
            <el-form-item label="统一社会信用代码">
              <el-input v-model="state.tableQueryParams.unifiedSocialCreditCode" clearable placeholder="请输入统一社会信用代码"/>
            </el-form-item>
          </el-col>
          </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="请输入注册资金"/>
@@ -181,11 +181,11 @@
              <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-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> -->
          <!-- <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')]" />
@@ -201,26 +201,26 @@
              <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-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> -->
          <!-- <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-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 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-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>
@@ -233,21 +233,17 @@
                <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-col> -->
        <!-- </el-row>
      </el-form>
    </el-card>
    </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 v-slot="scope"><span >{{ scope.row.exRole.name }}</span>
          </template>
        </el-table-column>
        <el-table-column prop='businessLicense' label='营业执照' show-overflow-tooltip width="120">