From b538026f2095c82a699c3269bfd6c6925ed4d662 Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期五, 22 八月 2025 15:47:26 +0800
Subject: [PATCH] 用户管理

---
 Web/src/theme/app.scss                                                               |    4 
 Web/src/views/Customer/fBS_CusExtend/component/editDialog.vue                        |   41 +
 Web/src/views/Customer/fBS_CusExtend/index.vue                                       |   52 +-
 Web/src/views/Customer/fBS_CusExtendExamine/component/editDialogApply.vue            |   66 ++-
 Web/src/views/Customer/fBS_CusExtend/component/fBS_Customer/editDialog.vue           |  262 +++++++++++++++
 Web/src/views/Customer/fBS_CusExtend/component/fBS_Customer/index.vue                |  310 ++++++++++++++++++
 Web/src/api/Customer/fBS_CusExtend.ts                                                |   37 +
 Web/src/views/Customer/fBS_CusExtendExamine/index.vue                                |   38 +-
 Web/src/views/Customer/fBS_CusExtend/component/fBS_Customer/component/editDialog.vue |  151 ++++++++
 9 files changed, 877 insertions(+), 84 deletions(-)

diff --git a/Web/src/api/Customer/fBS_CusExtend.ts b/Web/src/api/Customer/fBS_CusExtend.ts
index 6c47570..bb74182 100644
--- a/Web/src/api/Customer/fBS_CusExtend.ts
+++ b/Web/src/api/Customer/fBS_CusExtend.ts
@@ -16,11 +16,40 @@
 		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,
 		// 鎵归噺鍒犻櫎浼佷笟璧勬枡
diff --git a/Web/src/theme/app.scss b/Web/src/theme/app.scss
index a86d01a..170cd44 100644
--- a/Web/src/theme/app.scss
+++ b/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;
diff --git a/Web/src/views/Customer/fBS_CusExtend/component/editDialog.vue b/Web/src/views/Customer/fBS_CusExtend/component/editDialog.vue
index d260286..c5be1ca 100644
--- a/Web/src/views/Customer/fBS_CusExtend/component/editDialog.vue
+++ b/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="璇疯緭鍏ョ粺涓�绀句細淇$敤浠g爜"  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 />
diff --git a/Web/src/views/Customer/fBS_CusExtend/component/fBS_Customer/component/editDialog.vue b/Web/src/views/Customer/fBS_CusExtend/component/fBS_Customer/component/editDialog.vue
new file mode 100644
index 0000000..87689c9
--- /dev/null
+++ b/Web/src/views/Customer/fBS_CusExtend/component/fBS_Customer/component/editDialog.vue
@@ -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>
\ No newline at end of file
diff --git a/Web/src/views/Customer/fBS_CusExtend/component/fBS_Customer/editDialog.vue b/Web/src/views/Customer/fBS_CusExtend/component/fBS_Customer/editDialog.vue
new file mode 100644
index 0000000..3113875
--- /dev/null
+++ b/Web/src/views/Customer/fBS_CusExtend/component/fBS_Customer/editDialog.vue
@@ -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 - 瑕佹搷浣滅殑鍏冪礌锛屽繀椤诲寘鍚玦d灞炴��
+ * @param {boolean} [deleteFlag=false] - 鏄惁鎵ц鍒犻櫎鎿嶄綔
+ * @returns {Array} 澶勭悊鍚庣殑鏁扮粍
+ */
+function operateByid(array, item, deleteFlag = false) {
+    // 妫�鏌ュ厓绱犳槸鍚﹀寘鍚玦d
+    // if (!item || !('id' in item)) {
+    //     console.warn('鍏冪礌蹇呴』鍖呭惈id灞炴��');
+    //     return [...array];
+    // }
+    
+    // 鍒涘缓鍘熸暟缁勭殑鍓湰锛岄伩鍏嶇洿鎺ヤ慨鏀瑰師鏁扮粍
+    const newArray = [...array];
+    // 鏌ユ壘鏁扮粍涓槸鍚﹀瓨鍦ㄧ浉鍚宨d鐨勫厓绱�
+    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>
\ No newline at end of file
diff --git a/Web/src/views/Customer/fBS_CusExtend/component/fBS_Customer/index.vue b/Web/src/views/Customer/fBS_CusExtend/component/fBS_Customer/index.vue
new file mode 100644
index 0000000..2eeca98
--- /dev/null
+++ b/Web/src/views/Customer/fBS_CusExtend/component/fBS_Customer/index.vue
@@ -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>
\ No newline at end of file
diff --git a/Web/src/views/Customer/fBS_CusExtend/index.vue b/Web/src/views/Customer/fBS_CusExtend/index.vue
index 31239c3..c2c962c 100644
--- a/Web/src/views/Customer/fBS_CusExtend/index.vue
+++ b/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="璇疯緭鍏ョ敤鎴稩D"/>
             </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>
diff --git a/Web/src/views/Customer/fBS_CusExtendExamine/component/editDialog.vue b/Web/src/views/Customer/fBS_CusExtendExamine/component/editDialogApply.vue
similarity index 87%
rename from Web/src/views/Customer/fBS_CusExtendExamine/component/editDialog.vue
rename to Web/src/views/Customer/fBS_CusExtendExamine/component/editDialogApply.vue
index b9f7f73..3c20fb5 100644
--- a/Web/src/views/Customer/fBS_CusExtendExamine/component/editDialog.vue
+++ b/Web/src/views/Customer/fBS_CusExtendExamine/component/editDialogApply.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">
-											<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>
@@ -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">娉曞畾浠h〃浜�</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>
diff --git a/Web/src/views/Customer/fBS_CusExtendExamine/index.vue b/Web/src/views/Customer/fBS_CusExtendExamine/index.vue
index 41b52cf..145aace 100644
--- a/Web/src/views/Customer/fBS_CusExtendExamine/index.vue
+++ b/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="璇疯緭鍏ョ敤鎴稩D"/>
             </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="缁熶竴绀句細淇$敤浠g爜">
               <el-input v-model="state.tableQueryParams.unifiedSocialCreditCode" clearable placeholder="璇疯緭鍏ョ粺涓�绀句細淇$敤浠g爜"/>
             </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">

--
Gitblit v1.9.1