Merge branch 'master' of http://47.108.235.38:8080/r/FZCZTB
| | |
| | | getParam:()=>baseApi.request({ |
| | | 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}`, |
| | | method: 'get', |
| | | }, false), |
| | | //分页查询 待审核企业角色 |
| | | 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, |
| | | // 批量删除企业资料 |
| | |
| | | .flex { |
| | | display: flex; |
| | | } |
| | | .flex-end { |
| | | display: flex; |
| | | justify-content: end; |
| | | } |
| | | .flex-auto { |
| | | flex: 1; |
| | | overflow: hidden; |
| | |
| | | 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; |
| | | }; |
| | | |
| | |
| | | <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" |
| | |
| | | :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 /> |
| | |
| | | <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" > |
| | |
| | | <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 /> |
New file |
| | |
| | | <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> |
New file |
| | |
| | | <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> |
New file |
| | |
| | | <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> |
| | |
| | | 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"; |
| | |
| | | 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, |
| | |
| | | state.exportLoading = false; |
| | | } |
| | | } |
| | | const openUser=()=>{ |
| | | console.log(dialogVisible.value,'dialogVisible.value'); |
| | | |
| | | dialogVisible.value = true |
| | | } |
| | | |
| | | handleQuery(); |
| | | </script> |
| | |
| | | <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> |
| | |
| | | <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="请输入企业名称"/> |
| | |
| | | <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> |
| | |
| | | <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 |
| | |
| | | <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> |
| | |
| | | <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> |
File was renamed from Web/src/views/Customer/fBS_CusExtendExamine/component/editDialog.vue |
| | |
| | | <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'; |
| | | |
| | |
| | | stores: {}, |
| | | dropdownData: {} as any, |
| | | enterpriseList:[], |
| | | roleList:[], |
| | | shenheList:[], |
| | | srcList:[] |
| | | roleList:[] as any[], |
| | | shenheList:[] as any[], |
| | | srcList:[], |
| | | listRow:{} |
| | | }); |
| | | |
| | | // 页面加载时 |
| | |
| | | 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; |
| | | }; |
| | |
| | | |
| | | // 提交 |
| | | 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) |
| | |
| | | <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> |
| | | {{ 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> --> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item> |
| | | <template #label> |
| | |
| | | </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 }} |
| | |
| | | </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> |
| | |
| | | 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"; |
| | |
| | | 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; |
| | |
| | | </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> |
| | |
| | | <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="请输入注册资金"/> |
| | |
| | | <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')]" /> |
| | |
| | | <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> |
| | |
| | | <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"> |