zhangchong 2 سال پیش
والد
کامیت
980cd66d67

+ 24 - 1
src/api/knowledge/apply.ts

@@ -8,7 +8,30 @@
  */
 import request from '/@/utils/request';
 /**
- * @description: 知识检索
+ * @description: 知识申请列表 基础数据
+ * @param 
+ * @return {*}
+ */
+export const baseData = () => {
+	return request({
+		url: '/api/v1/KnowledgeApply/apply-base-data',
+		method: 'get'
+	});
+};
+/**
+ * @description: 知识申请处理列表
+ * @param {object} params
+ * @return {*}
+ */
+export const handlelist = (params:object) => {
+	return request({
+		url: '/api/v1/KnowledgeApply/handlelist',
+		method: 'get',
+        params
+	});
+};
+/**
+ * @description: 我的知识申请列表
  * @param {object} params
  * @return {*}
  */

+ 32 - 0
src/api/knowledge/index.ts

@@ -30,6 +30,17 @@ export const knowpopscreen = (params: object) => {
 		params
 	});
 };
+/**
+ * @description: 知识库列表页 基础数据
+ * @param 
+ * @return {*}
+ */
+export const baseData = () => {
+	return request({
+		url: '/api/v1/Knowledge/knowledge-status-data',
+		method: 'get',
+	});
+};
 /**
  * @description: 知识查询 (所有知识列表)
  * @param {object} params
@@ -147,6 +158,17 @@ export const KnowledgeGetknowledge = (params?: object) => {
 		params
 	});
 };
+/**
+ * @description:  我的知识删除列表 基础数据
+ * @param {object} params
+ * @return {*}
+ */
+export const deleteBase = () => {
+	return request({
+		url: `/api/v1/Knowledge/delete-status-data`,
+		method: 'get'
+	});
+};
 /**
  * @description:  我的知识删除列表
  * @param {object} params
@@ -159,6 +181,16 @@ export const KnowledgeDeletelist = (params: object) => {
 		params
 	});
 };
+/**
+ * @description:  审核管理列表 基础数据
+ * @return {*}
+ */
+export const approvedBasedata= () => {
+	return request({
+		url: `/api/v1/Knowledge/approval-base-data`,
+		method: 'get'
+	});
+};
 /**
  * @description:  审核管理列表
  * @param {object} params

+ 12 - 9
src/layout/navBars/breadcrumb/user.vue

@@ -44,13 +44,13 @@
 			<i class="iconfont" :class="!isScreenfull ? 'icon-quanping1' : 'icon-tuichuquanping'"></i>
 		</div> -->
 		<el-dropdown :show-timeout="70" :hide-timeout="50" @command="onHandleCommandClick">
-			<div class="layout-navbars-breadcrumb-user-link">
-				<div style="text-align: center">
+			<div class="layout-navbars-breadcrumb-user-link" :title="userInfos.name">
+				<div class="layout-navbars-breadcrumb-user-link-photoBox">
 					<el-avatar :src="userInfos.photo" :size="28" class="layout-navbars-breadcrumb-user-link-photo">
 						<SvgIcon name="ele-UserFilled" color="var(--el-color-primary)" />
 					</el-avatar>
-					<div class="mt10">{{ userInfos.name ? userInfos.name : '' }}</div>
 				</div>
+				<div class="mt10 text-no-wrap">{{ userInfos.name ? userInfos.name : '' }}</div>
 				<!-- <el-icon class="el-icon--right">
 					<ele-ArrowDown />
 				</el-icon> -->
@@ -492,20 +492,22 @@ onMounted(() => {
 
 <style scoped lang="scss">
 .layout-navbars-breadcrumb-user {
-	display: flex;
-	align-items: center;
-	justify-content: center;
 	width: 100px;
+	overflow: hidden;
 	&-link {
 		height: 100%;
-		display: flex;
-		align-items: center;
 		white-space: nowrap;
-
+		text-align: center;
+		width: 100%;
 		&-photo {
 			background-color: var(--hotline-bg-main-color);
 			border: 2px solid var(--el-color-primary);
 		}
+		&-photoBox{
+			width: 100%;
+			display: flex;
+			justify-content: center;
+		}
 	}
 
 	&-icon {
@@ -529,6 +531,7 @@ onMounted(() => {
 
 	:deep(.el-dropdown) {
 		color: var(--hotline-color-text-main);
+		width: 100%;
 	}
 
 	:deep(.el-badge) {

+ 8 - 42
src/views/business/order/index.vue

@@ -152,12 +152,12 @@
 					</transition>
 					<transition name="el-zoom-in-top">
 						<el-col :span="8" v-show="!searchCol">
-						<el-form-item label="工单状态" prop="Status">
-							<el-select v-model="state.queryParams.Status" placeholder="请选择工单状态" multiple clearable class="w100">
-								<el-option v-for="item in state.orderStatusOptions" :value="item.key" :key="item.key" :label="item.value" />
-							</el-select>
-						</el-form-item>
-					</el-col>
+							<el-form-item label="工单状态" prop="Status">
+								<el-select v-model="state.queryParams.Status" placeholder="请选择工单状态" multiple clearable class="w100">
+									<el-option v-for="item in state.orderStatusOptions" :value="item.key" :key="item.key" :label="item.value" />
+								</el-select>
+							</el-form-item>
+						</el-col>
 					</transition>
 					<el-col :span="8">
 						<div class="flex-end w100">
@@ -176,14 +176,10 @@
 				<!-- <p class="table-title">信息列表</p> -->
 				<div>
 					<el-button type="primary" @click="onAddWorkOrder"> <SvgIcon name="ele-Plus" class="mr5" />新建工单 </el-button>
-					<el-button type="primary" :disabled="!state.multipleSelection.length" v-waves @click="onImportTable">
-						<SvgIcon name="iconfont icon-daochu" class="mr5" />导出
-					</el-button>
 				</div>
 			</div>
 			<!-- 表格 -->
-			<el-table :data="state.tableList" v-loading="state.loading" row-key="id" @selection-change="handleSelectionChange" @sort-change="sortChange">
-				<el-table-column type="selection" width="55" :reserve-selection="true" />
+			<el-table :data="state.tableList" v-loading="state.loading" row-key="id" @sort-change="sortChange">
 				<el-table-column type="index" width="60" label="序号" />
 				<!--  sortable="custom" 工单编码排序 -->
 				<el-table-column label="工单编码" prop="no" show-overflow-tooltip width="150">
@@ -269,11 +265,8 @@
 import { defineAsyncComponent, ref, reactive, onMounted, onActivated } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
 import type { FormInstance } from 'element-plus';
-import { storeToRefs } from 'pinia';
-import { useThemeConfig } from '/@/stores/themeConfig';
-import { useRouter, useRoute } from 'vue-router';
+import { useRouter } from 'vue-router';
 import { formatDate } from '/@/utils/formatTime';
-import table2excel from 'js-table2excel';
 import { listBaseData, orderList, hotspottype, orderDelete } from '/@/api/business/order';
 
 // 引入组件
@@ -340,7 +333,6 @@ const state = reactive(<any>{
 	tableList: [], //表单
 	loading: false,
 	total: 0,
-	multipleSelection: [], //多选表格
 	tabPaneList: [
 		{
 			label: '全部工单',
@@ -376,9 +368,6 @@ const state = reactive(<any>{
 	orgData: [],
 });
 const cascaderRef = ref();
-const route = useRoute();
-const storesThemeConfig = useThemeConfig();
-const { themeConfig } = storeToRefs(storesThemeConfig);
 // 热点分类远程搜索
 const HotspotProps = {
 	label: 'hotSpotName',
@@ -534,10 +523,6 @@ const resetQuery = (formEl: FormInstance | undefined) => {
 // const handleClick = (val: string) => {
 // 	getList();
 // };
-// 多选表格
-const handleSelectionChange = (val: any) => {
-	state.multipleSelection = val;
-};
 // 新增工单
 const onAddWorkOrder = () => {
 	// 跳转到录入工单页面
@@ -577,25 +562,6 @@ const onDeleteOrder = (row: any) => {
 		})
 		.catch(() => {});
 };
-//导出列表
-const onImportTable = () => {
-	const tabeHeader = [
-		{ key: 'no', colWidth: '', title: '工单编码', type: 'text', isCheck: true },
-		{ key: 'title', colWidth: '', title: '标题', type: 'text', isCheck: true },
-		{ key: 'statusText', colWidth: '', title: '工单状态', type: 'text', isCheck: true },
-		{ key: 'currentStepName', colWidth: '', title: '当前环节', type: 'text', isCheck: true },
-		{ key: 'acceptTypeText', colWidth: '', title: '受理类型', type: 'text', isCheck: true },
-		{ key: 'hotspot', colWidth: '', title: '热点分类', type: 'text', isCheck: true },
-		{ key: 'emergencyLevelText', colWidth: '', title: '紧急程度', type: 'text', isCheck: true },
-		{ key: 'expiredTime', colWidth: '', title: '办理期限', type: 'text', isCheck: true },
-		{ key: 'employeeName', colWidth: '', title: '受理坐席', type: 'text', isCheck: true },
-	];
-	table2excel(
-		tabeHeader,
-		state.multipleSelection,
-		`${themeConfig.value.globalTitle}-${route.meta.title} ${formatDate(new Date(), 'YYYY-mm-dd HH-MM')}`
-	);
-};
 onMounted(async () => {
 	getBaseData();
 	getList();

+ 27 - 68
src/views/knowledge/apply/index.vue

@@ -3,13 +3,11 @@
 		<el-card shadow="never">
 			<el-tabs v-model="state.queryParams.Status" @tab-change="handleClick">
 				<el-tab-pane label="全部" name=" "></el-tab-pane>
-				<el-tab-pane label="待处理" name="0"></el-tab-pane>
-				<el-tab-pane label="处理完成" name="1"></el-tab-pane>
-				<el-tab-pane label="已退回" name="2"></el-tab-pane>
+				<el-tab-pane :label="v.value" :name="v.key" v-for="(v, i) in state.statusOptions" :key="i"></el-tab-pane>
 				<el-form :model="state.queryParams" ref="ruleFormRef" :inline="true" @submit.native.prevent class="mt15">
 					<el-form-item label="申请类型" prop="ApplyType">
 						<el-select v-model="state.queryParams.ApplyType" placeholder="请选择申请类型" class="w100">
-							<el-option v-for="item in state.ApplyTypeOptions" :key="item.value" :label="item.label" :value="item.value" />
+							<el-option v-for="item in state.eKnowledgeApplyType" :key="item.key" :label="item.value" :value="item.key" />
 						</el-select>
 					</el-form-item>
 					<el-form-item label="关键字" prop="Keyword">
@@ -46,32 +44,23 @@
 			<div class="flex-center-between mb20">
 				<p class="table-title">信息列表</p>
 				<div>
-					<el-button type="primary" :disabled="!state.multipleSelection.length" @click="onImportTable">
-						<SvgIcon name="iconfont icon-daochu" class="mr5" />导出
-					</el-button>
+					
 				</div>
 			</div>
 			<!-- 表格 -->
-			<el-table :data="state.tableList" v-loading="state.loading" row-key="id" @selection-change="handleSelectionChange">
-				<el-table-column type="selection" width="55" :reserve-selection="true" />
-				<el-table-column prop="content" label="申请内容" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="knowledgeApplyType" label="申请类型" show-overflow-tooltip>
+			<el-table :data="state.tableList" v-loading="state.loading" row-key="id">
+				<el-table-column prop="content" label="申请内容" show-overflow-tooltip width="170"></el-table-column>
+				<el-table-column prop="knowledgeApplyTypeName" label="申请类型" show-overflow-tooltip></el-table-column>
+				<el-table-column label="状态" show-overflow-tooltip width="170">
 					<template #default="{ row }">
-						<span>
-							{{ row.knowledgeApplyType === 0 ? '新增' : '更新' }}
-						</span>
+						<span style="color: var(--el-color-primary)" v-if="row.status === 0">{{ row.statusName }}</span>
+						<span style="color: var(--el-color-success)" v-if="row.status === 1">{{ row.statusName }}</span>
+						<span style="color: var(--el-color-danger)" v-if="row.status === 2">{{ row.statusName }}</span>
 					</template>
 				</el-table-column>
-				<el-table-column label="状态" show-overflow-tooltip>
-					<template #default="{ row }">
-						<span style="color: var(--el-color-primary)" v-if="row.status === 0">待处理</span>
-						<span style="color: var(--el-color-success)" v-if="row.status === 1">处理完成</span>
-						<span style="color: var(--el-color-danger)" v-if="row.status === 2">已退回</span>
-					</template>
-				</el-table-column>
-				<el-table-column prop="processor" label="处理人" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="creationName" label="申请人" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="creationOrgName" label="部门名称" show-overflow-tooltip></el-table-column>
+				<el-table-column prop="processor" label="处理人" show-overflow-tooltip width="170"></el-table-column>
+				<el-table-column prop="creationName" label="申请人" show-overflow-tooltip width="170"></el-table-column>
+				<el-table-column prop="creationOrgName" label="部门名称" show-overflow-tooltip width="170"></el-table-column>
 				<el-table-column prop="toNo" label="创建时间" show-overflow-tooltip width="170">
 					<template #default="scope">
 						<span>{{ formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
@@ -118,16 +107,12 @@
 
 <script lang="ts" setup name="knowledgeApply">
 import { ref, reactive, onMounted, defineAsyncComponent } from 'vue';
-import { useRoute } from 'vue-router';
 import type { FormInstance } from 'element-plus';
 import { ElMessage, ElMessageBox } from 'element-plus';
 import { formatDate } from '/@/utils/formatTime';
-import table2excel from 'js-table2excel';
-import { storeToRefs } from 'pinia';
-import { useThemeConfig } from '/@/stores/themeConfig';
 // 引入节流
 import { throttle } from '/@/utils/tools';
-import { KnowledgeApply, KnowledgeReturn } from '/@/api/knowledge/apply';
+import { handlelist, KnowledgeReturn, baseData } from '/@/api/knowledge/apply';
 
 // 引入组件
 const ApplyDetail = defineAsyncComponent(() => import('/@/views/knowledge/apply/component/ApplyDetail.vue'));
@@ -177,24 +162,12 @@ const state = reactive(<any>{
 	tableList: [],
 	loading: false,
 	total: 0,
-	multipleSelection: [],
-	ApplyTypeOptions: [
-		{
-			label: '新增',
-			value: 0,
-		},
-		{
-			label: '修改',
-			value: 1,
-		},
-	],
+	eKnowledgeApplyType: [],
+	statusOptions: [],
 });
-const storesThemeConfig = useThemeConfig();
-const { themeConfig } = storeToRefs(storesThemeConfig);
 const ruleFormRef = ref<FormInstance>();
 const applyDetailRef = ref();
 const applyHandleRef = ref();
-const route = useRoute();
 // 创建时间
 const tiemChange = (val: string[]) => {
 	state.queryParams.StartTime = val[0];
@@ -205,7 +178,7 @@ const getList = () => {
 	state.loading = true;
 	let request = JSON.parse(JSON.stringify(state.queryParams));
 	Reflect.deleteProperty(request, 'crTime'); // 删除无用的参数
-	KnowledgeApply(request)
+	handlelist(request)
 		.then((response: any) => {
 			state.tableList = response?.result.items ?? [];
 			state.total = response?.result.total;
@@ -215,10 +188,6 @@ const getList = () => {
 			state.loading = false;
 		});
 };
-// 多选表格
-const handleSelectionChange = (val: any) => {
-	state.multipleSelection = val;
-};
 /** 重置按钮操作 */
 const resetQuery = throttle((formEl: FormInstance | undefined) => {
 	if (!formEl) return;
@@ -268,29 +237,19 @@ const onReturn = (row: any) => {
 		})
 		.catch(() => {});
 };
-// 导出表格
-const onImportTable = () => {
-	const tabeHeader = [
-		{ key: 'content', colWidth: '', title: '申请内容', type: 'text', isCheck: true },
-		{ key: 'knowledgeApplyType', colWidth: '', title: '申请类型', type: 'text', isCheck: true },
-		{ key: 'status', colWidth: '', title: '状态', type: 'text', isCheck: true },
-		{ key: 'processor', colWidth: '', title: '处理人', type: 'text', isCheck: true },
-		{ key: 'creationName', colWidth: '', title: '申请人', type: 'text', isCheck: true },
-		{ key: 'creationOrgName', colWidth: '', title: '部门名称', type: 'text', isCheck: true },
-		{ key: 'creationTime', colWidth: '', title: '创建时间', type: 'text', isCheck: true },
-		{ key: 'creationTime', colWidth: '', title: '截止时间', type: 'text', isCheck: true },
-		{ key: 'handleTime', colWidth: '', title: '处理完成时间', type: 'text', isCheck: true },
-		{ key: 'returnTime', colWidth: '', title: '退回时间', type: 'text', isCheck: true },
-		{ key: 'isOvertime', colWidth: '', title: '是否超时', type: 'text', isCheck: true },
-	];
-	table2excel(
-		tabeHeader,
-		state.multipleSelection,
-		`${themeConfig.value.globalTitle}-${route.meta.title} ${formatDate(new Date(), 'YYYY-mm-dd HH-MM')}`
-	);
+// 页面基础数据
+const getBaseData = async () => {
+	try {
+		const { result } = await baseData();
+		state.statusOptions = result.eKnowledgeApplyStatus;
+		state.eKnowledgeApplyType = result.eKnowledgeApplyType;
+	} catch (error) {
+		console.log(error);
+	}
 };
 onMounted(() => {
 	getList();
+	getBaseData();
 });
 </script>
 <style lang="scss" scoped></style>

+ 18 - 52
src/views/knowledge/apply/my/index.vue

@@ -3,10 +3,7 @@
 		<el-card shadow="never">
 			<el-tabs v-model="state.queryParams.Status" @tab-change="handleClick">
 				<el-tab-pane label="全部" name=" "></el-tab-pane>
-				<el-tab-pane label="处理中" name="0"></el-tab-pane>
-				<el-tab-pane label="处理完成" name="1"></el-tab-pane>
-				<el-tab-pane label="已退回" name="2"></el-tab-pane>
-				<el-tab-pane label="已撤销" name="3"></el-tab-pane>
+				<el-tab-pane :label="v.value" :name="v.key" v-for="(v, i) in state.statusOptions" :key="i"></el-tab-pane>
 				<el-form :model="state.queryParams" ref="ruleFormRef" :inline="true" @submit.native.prevent class="mt15">
 					<el-form-item label="申请类型" prop="ApplyType">
 						<el-select v-model="state.queryParams.ApplyType" placeholder="请选择申请类型" class="w100">
@@ -31,7 +28,6 @@
 							@change="tiemChange"
 							value-format="YYYY-MM-DD[T]HH:mm:ss"
 						/>
-						<!-- value-format="YYYY-MM-DD" -->
 					</el-form-item>
 					<el-form-item>
 						<el-button type="primary" @click="getList" :loading="state.loading" v-waves> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
@@ -45,28 +41,18 @@
 				<p class="table-title">信息列表</p>
 				<div>
 					<el-button type="primary" @click="onApply"> <SvgIcon name="ele-Plus" class="mr5" /> 发起申请 </el-button>
-					<el-button type="primary" :disabled="!state.multipleSelection.length" @click="onImportTable">
-						<SvgIcon name="iconfont icon-daochu" class="mr5" />导出
-					</el-button>
 				</div>
 			</div>
 			<!-- 表格 -->
-			<el-table :data="state.tableList" v-loading="state.loading" row-key="id" @selection-change="handleSelectionChange">
-				<el-table-column type="selection" width="55" :reserve-selection="true" />
+			<el-table :data="state.tableList" v-loading="state.loading" row-key="id">
 				<el-table-column prop="content" label="申请内容" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="knowledgeApplyType" label="申请类型" show-overflow-tooltip>
-					<template #default="{ row }">
-						<span>
-							{{ row.knowledgeApplyType === 0 ? '新增' : '更新' }}
-						</span>
-					</template>
-				</el-table-column>
+				<el-table-column prop="knowledgeApplyTypeName" label="申请类型" show-overflow-tooltip></el-table-column>
 				<el-table-column label="状态" show-overflow-tooltip>
 					<template #default="{ row }">
-						<span style="color: var(--el-color-primary)" v-if="row.status === 0">处理中</span>
-						<span style="color: var(--el-color-success)" v-if="row.status === 1">处理完成</span>
-						<span style="color: var(--el-color-danger)" v-if="row.status === 2">已退回</span>
-						<span style="color: var(--el-color-info)" v-if="row.status === 3">已撤销</span>
+						<span style="color: var(--el-color-primary)" v-if="row.status === 0">{{ row.statusName }}</span>
+						<span style="color: var(--el-color-success)" v-if="row.status === 1">{{ row.statusName }}</span>
+						<span style="color: var(--el-color-danger)" v-if="row.status === 2">{{ row.statusName }}</span>
+						<span style="color: var(--el-color-info)" v-if="row.status === 3">{{ row.statusName }}</span>
 					</template>
 				</el-table-column>
 				<el-table-column prop="toNo" label="创建时间" show-overflow-tooltip width="170">
@@ -122,14 +108,10 @@
 import { ref, reactive, onMounted, defineAsyncComponent } from 'vue';
 import type { FormInstance } from 'element-plus';
 import { ElMessage, ElMessageBox } from 'element-plus';
-import { useRoute } from 'vue-router';
 import { formatDate } from '/@/utils/formatTime';
-import table2excel from 'js-table2excel';
-import { storeToRefs } from 'pinia';
-import { useThemeConfig } from '/@/stores/themeConfig';
 // 引入节流
 import { throttle } from '/@/utils/tools';
-import { KnowledgeApply, KnowledgeRemove, KnowledgeCancel } from '/@/api/knowledge/apply';
+import { KnowledgeApply, KnowledgeRemove, KnowledgeCancel, baseData } from '/@/api/knowledge/apply';
 import { getOrgList } from '/@/api/system/organize';
 import { KnowledgeGetknowledge } from '/@/api/knowledge';
 
@@ -181,7 +163,6 @@ const state = reactive(<any>{
 	tableList: [],
 	loading: false,
 	total: 0,
-	multipleSelection: [],
 	ApplyTypeOptions: [
 		{
 			label: '新增',
@@ -194,13 +175,10 @@ const state = reactive(<any>{
 	],
 	orgData: [],
 });
-const storesThemeConfig = useThemeConfig();
-const { themeConfig } = storeToRefs(storesThemeConfig);
 const ruleFormRef = ref<FormInstance>();
 const myApplyAddRef = ref();
 const myApplyEditRef = ref();
 const myApplyDetailRef = ref();
-const route = useRoute();
 // 创建时间
 const tiemChange = (val: string[]) => {
 	if (val) {
@@ -223,10 +201,6 @@ const getList = () => {
 			state.loading = false;
 		});
 };
-// 多选表格
-const handleSelectionChange = (val: any) => {
-	state.multipleSelection = val;
-};
 /** 重置按钮操作 */
 const resetQuery = throttle((formEl: FormInstance | undefined) => {
 	if (!formEl) return;
@@ -286,27 +260,19 @@ const onDelete = (row: any) => {
 		})
 		.catch(() => {});
 };
-// 导出表格
-const onImportTable = () => {
-	const tabeHeader = [
-		{ key: 'content', colWidth: '', title: '申请内容', type: 'text', isCheck: true },
-		{ key: 'knowledgeApplyType', colWidth: '', title: '申请类型', type: 'text', isCheck: true },
-		{ key: 'status', colWidth: '', title: '状态', type: 'text', isCheck: true },
-		{ key: 'creationTime', colWidth: '', title: '创建时间', type: 'text', isCheck: true },
-		{ key: 'handleTime', colWidth: '', title: '处理完成时间', type: 'text', isCheck: true },
-		{ key: 'revokeTime', colWidth: '', title: '撤回时间', type: 'text', isCheck: true },
-		{ key: 'returnTime', colWidth: '', title: '退回时间', type: 'text', isCheck: true },
-		{ key: 'isOvertime', colWidth: '', title: '是否超时', type: 'text', isCheck: true },
-	];
-	table2excel(
-		tabeHeader,
-		state.multipleSelection,
-		`${themeConfig.value.globalTitle}-${route.meta.title} ${formatDate(new Date(), 'YYYY-mm-dd HH-MM')}`
-	);
+// 页面基础数据
+const getBaseData = async () => {
+	try {
+		const { result } = await baseData();
+		state.statusOptions = result.eKnowledgeApplyStatus;
+		state.eKnowledgeApplyType = result.eKnowledgeApplyType;
+	} catch (error) {
+		console.log(error);
+	}
 };
-
 onMounted(async () => {
 	getList();
+	getBaseData();
 	try {
 		const res: any = await Promise.all([getOrgList(), KnowledgeGetknowledge()]);
 		state.orgData = res[0].result ?? [];

+ 18 - 57
src/views/knowledge/knowledge/delApply/index.vue

@@ -3,10 +3,7 @@
 		<el-card shadow="never">
 			<el-tabs v-model="state.queryParams.EKnowledgeWorkFlowStatus" @tab-change="handleClick">
 				<el-tab-pane label="全部" name=" "></el-tab-pane>
-				<el-tab-pane label="审核中" name="1"></el-tab-pane>
-				<el-tab-pane label="审核通过" name="2"></el-tab-pane>
-				<el-tab-pane label="已撤销" name="3"></el-tab-pane>
-				<el-tab-pane label="审核不通过" name="4"></el-tab-pane>
+				<el-tab-pane :label="v.value" :name="v.key" v-for="(v, i) in state.statusOptions" :key="i"></el-tab-pane>
 				<el-form :model="state.queryParams" ref="ruleFormRef" :inline="true" @submit.native.prevent class="mt15">
 					<el-form-item label="关键字" prop="Keyword">
 						<el-input
@@ -43,14 +40,11 @@
 			<div class="flex-center-between mb20">
 				<p class="table-title">信息列表</p>
 				<div>
-					<el-button type="primary" :disabled="!state.multipleSelection.length" @click="onImportTable">
-						<SvgIcon name="iconfont icon-daochu" class="mr5" />导出
-					</el-button>
+					
 				</div>
 			</div>
 			<!-- 表格 -->
-			<el-table :data="state.tableList" v-loading="state.loading" row-key="id" @selection-change="handleSelectionChange">
-				<el-table-column type="selection" width="55" :reserve-selection="true" />
+			<el-table :data="state.tableList" v-loading="state.loading" row-key="id">
 				<el-table-column prop="title" label="标题" show-overflow-tooltip></el-table-column>
 				<el-table-column prop="knowledgeTypeName" label="类型" show-overflow-tooltip></el-table-column>
 				<el-table-column prop="hotspotName" label="热点" show-overflow-tooltip></el-table-column>
@@ -59,10 +53,10 @@
 				<el-table-column prop="pageView" label="阅读次数" show-overflow-tooltip></el-table-column>
 				<el-table-column label="状态" show-overflow-tooltip>
 					<template #default="{ row }">
-						<span v-if="row.workFlowApplyStatus === 1" style="color: var(--el-color-primary)">审核中</span>
-						<span v-if="row.workFlowApplyStatus === 2" style="color: var(--el-color-success)">审核通过</span>
-						<span v-if="row.workFlowApplyStatus === 3" style="color: var(--el-color-info)">已撤销</span>
-						<span v-if="row.workFlowApplyStatus === 4" style="color: var(--el-color-danger)">审核不通过</span>
+						<span v-if="row.workFlowApplyStatus === 1" style="color: var(--el-color-primary)">{{ row.workFlowApplyStatusName }}</span>
+						<span v-if="row.workFlowApplyStatus === 2" style="color: var(--el-color-success)">{{ row.workFlowApplyStatusName }}</span>
+						<span v-if="row.workFlowApplyStatus === 3" style="color: var(--el-color-info)">{{ row.workFlowApplyStatusName }}</span>
+						<span v-if="row.workFlowApplyStatus === 4" style="color: var(--el-color-danger)">{{ row.workFlowApplyStatusName }}</span>
 					</template>
 				</el-table-column>
 				<el-table-column prop="toNo" label="申请时间" show-overflow-tooltip width="170">
@@ -94,14 +88,10 @@
 import { ref, reactive, onMounted, defineAsyncComponent } from 'vue';
 import type { FormInstance } from 'element-plus';
 import { ElMessage, ElMessageBox } from 'element-plus';
-import { useRoute } from 'vue-router';
 import { formatDate } from '/@/utils/formatTime';
-import table2excel from 'js-table2excel';
-import { storeToRefs } from 'pinia';
-import { useThemeConfig } from '/@/stores/themeConfig';
 // 引入节流
 import { throttle } from '/@/utils/tools';
-import { KnowledgeDeletelist, KnowledgeRevoke } from '/@/api/knowledge';
+import { KnowledgeDeletelist, KnowledgeRevoke, deleteBase } from '/@/api/knowledge';
 
 // 引入组件
 const ProcessRecord = defineAsyncComponent(() => import('/@/views/knowledge/component/ProcessRecord.vue'));
@@ -148,27 +138,10 @@ const state = reactive(<any>{
 	tableList: [],
 	loading: false,
 	total: 0,
-	multipleSelection: [],
-	directionList: [
-		{
-			label: '全部',
-			value: '',
-		},
-		{
-			label: '呼入',
-			value: 0,
-		},
-		{
-			label: '呼出',
-			value: 1,
-		},
-	],
+	statusOptions: [],
 });
-const storesThemeConfig = useThemeConfig();
-const { themeConfig } = storeToRefs(storesThemeConfig);
 const ruleFormRef = ref<FormInstance>();
 const processRecordRef = ref();
-const route = useRoute();
 // 创建时间
 const tiemChange = (val: string[]) => {
 	state.queryParams.StartApplyTime = val[0];
@@ -189,10 +162,6 @@ const getList = () => {
 			state.loading = false;
 		});
 };
-// 多选表格
-const handleSelectionChange = (val: any) => {
-	state.multipleSelection = val;
-};
 /** 重置按钮操作 */
 const resetQuery = throttle((formEl: FormInstance | undefined) => {
 	if (!formEl) return;
@@ -226,26 +195,18 @@ const onRecall = (row: any) => {
 		})
 		.catch(() => {});
 };
-// 导出表格
-const onImportTable = () => {
-	const tabeHeader = [
-		{ key: 'title', colWidth: '', title: '标题', type: 'text', isCheck: true },
-		{ key: 'knowledgeTypeName', colWidth: '', title: '类型', type: 'text', isCheck: true },
-		{ key: 'hotspotName', colWidth: '', title: '热点', type: 'text', isCheck: true },
-		{ key: 'creationName', colWidth: '', title: '创建人', type: 'text', isCheck: true },
-		{ key: 'creationBMName', colWidth: '', title: '创建部门', type: 'text', isCheck: true },
-		{ key: 'pageView', colWidth: '', title: '阅读次数', type: 'text', isCheck: true },
-		{ key: 'creationTime', colWidth: '', title: '申请时间', type: 'text', isCheck: true },
-		{ key: 'workFlowApplyStatus', colWidth: '', title: '状态', type: 'text', isCheck: true },
-	];
-	table2excel(
-		tabeHeader,
-		state.multipleSelection,
-		`${themeConfig.value.globalTitle}-${route.meta.title} ${formatDate(new Date(), 'YYYY-mm-dd HH-MM')}`
-	);
+// 页面基础数据
+const getBaseData = async () => {
+	try {
+		const { result } = await deleteBase();
+		state.statusOptions = result;
+	} catch (error) {
+		console.log(error);
+	}
 };
 onMounted(() => {
 	getList();
+	getBaseData();
 });
 </script>
 <style lang="scss" scoped></style>

+ 3 - 29
src/views/knowledge/knowledge/draft/index.vue

@@ -45,14 +45,11 @@
 			<div class="flex-center-between mb20">
 				<p class="table-title">信息列表</p>
 				<div>
-					<el-button type="primary" :disabled="!state.multipleSelection.length" @click="onImportTable">
-						<SvgIcon name="iconfont icon-daochu" class="mr5" />导出
-					</el-button>
+					
 				</div>
 			</div>
 			<!-- 表格 -->
-			<el-table :data="state.tableList" v-loading="state.loading" row-key="id" @selection-change="handleSelectionChange">
-				<el-table-column type="selection" width="55" :reserve-selection="true" />
+			<el-table :data="state.tableList" v-loading="state.loading" row-key="id">
 				<el-table-column prop="title" label="标题" show-overflow-tooltip></el-table-column>
 				<el-table-column prop="knowledgeTypeName" label="类型" show-overflow-tooltip></el-table-column>
 				<el-table-column prop="creationTime" label="创建时间" show-overflow-tooltip width="170">
@@ -82,10 +79,7 @@ import type { FormInstance } from 'element-plus';
 import { ElMessage, ElMessageBox } from 'element-plus';
 import { treelist } from '/@/api/knowledge/type';
 import { formatDate } from '/@/utils/formatTime';
-import { useRouter, useRoute } from 'vue-router';
-import table2excel from 'js-table2excel';
-import { storeToRefs } from 'pinia';
-import { useThemeConfig } from '/@/stores/themeConfig';
+import { useRouter } from 'vue-router';
 // 引入节流
 import { throttle } from '/@/utils/tools';
 import { mydraftslist, removedrafts } from '/@/api/knowledge/draft';
@@ -138,9 +132,6 @@ const state = reactive(<any>{
 	multipleSelection: [],
 });
 const router = useRouter();
-const route = useRoute();
-const storesThemeConfig = useThemeConfig();
-const { themeConfig } = storeToRefs(storesThemeConfig);
 const ruleFormRef = ref<FormInstance>();
 // 创建时间
 const tiemChange = (val: string[]) => {
@@ -162,10 +153,6 @@ const getList = () => {
 			state.loading = false;
 		});
 };
-// 多选表格
-const handleSelectionChange = (val: any) => {
-	state.multipleSelection = val;
-};
 /** 重置按钮操作 */
 const resetQuery = throttle((formEl: FormInstance | undefined) => {
 	if (!formEl) return;
@@ -201,19 +188,6 @@ const onDel = (row: any) => {
 		})
 		.catch(() => {});
 };
-// 导出表格
-const onImportTable = () => {
-	const tabeHeader = [
-		{ key: 'title', colWidth: '', title: '标题', type: 'text', isCheck: true },
-		{ key: 'knowledgeTypeName', colWidth: '', title: '类型', type: 'text', isCheck: true },
-		{ key: 'creationTime', colWidth: '', title: '创建时间', type: 'text', isCheck: true },
-	];
-	table2excel(
-		tabeHeader,
-		state.multipleSelection,
-		`${themeConfig.value.globalTitle}-${route.meta.title} ${formatDate(new Date(), 'YYYY-mm-dd HH-MM')}`
-	);
-};
 // 知识分类
 const getKnowledgeType = async () => {
 	state.loading = true;

+ 22 - 50
src/views/knowledge/knowledge/index.vue

@@ -82,10 +82,7 @@
 						<div class="flex-column">
 							<el-tabs v-model="state.queryParams.Status" @tab-change="handleClick">
 								<el-tab-pane label="全部" name=" "></el-tab-pane>
-								<el-tab-pane label="已上架" name="3"></el-tab-pane>
-								<el-tab-pane label="已下架" name="4"></el-tab-pane>
-								<el-tab-pane label="审核中" name="1"></el-tab-pane>
-								<el-tab-pane label="审核不通过" name="2"></el-tab-pane>
+								<el-tab-pane :label="v.value" :name="v.key" v-for="(v, i) in state.statusOptions" :key="i"></el-tab-pane>
 							</el-tabs>
 							<!-- 搜索条件 -->
 							<el-form :model="state.queryParams" ref="ruleFormRef" :inline="true" @submit.native.prevent class="pl15 pr15 pt15">
@@ -148,14 +145,10 @@
 								<p class="table-title"></p>
 								<div>
 									<el-button type="primary" @click="onOpenAddUser"> <SvgIcon name="ele-Plus" class="mr5" />创建知识 </el-button>
-									<el-button type="primary" @click="onImportTable" :disabled="!state.multipleSelection.length">
-										<SvgIcon name="iconfont icon-daochu" class="mr5" />导出
-									</el-button>
 								</div>
 							</div>
 							<!-- 表格 -->
-							<el-table :data="state.tableData" v-loading="state.tableLoading" row-key="id" @selection-change="handleSelectionChange">
-								<el-table-column type="selection" width="55" :reserve-selection="true" />
+							<el-table :data="state.tableData" v-loading="state.tableLoading" row-key="id">
 								<el-table-column prop="title" label="标题" show-overflow-tooltip width="120"></el-table-column>
 								<el-table-column prop="knowledgeTypeName" label="类型" show-overflow-tooltip width="200"></el-table-column>
 								<el-table-column prop="hotspotName" label="热点" show-overflow-tooltip width="200"></el-table-column>
@@ -184,18 +177,18 @@
 								</el-table-column>
 								<el-table-column prop="status" label="状态" show-overflow-tooltip width="100">
 									<template #default="{ row }">
-										<span v-if="row.status === 1" style="color: var(--el-color-primary)">审核中</span>
-										<span v-if="row.status === 2" style="color: var(--el-color-danger)">审核不通过</span>
-										<span v-if="row.status === 3" style="color: var(--el-color-success)">已上架</span>
-										<span v-if="row.status === 4" style="color: var(--el-color-info)">已下架</span>
+										<span v-if="row.status === 1" style="color: var(--el-color-primary)">{{ row.statusName }}</span>
+										<span v-if="row.status === 2" style="color: var(--el-color-danger)">{{ row.statusName }}</span>
+										<span v-if="row.status === 3" style="color: var(--el-color-success)">{{ row.statusName }}</span>
+										<span v-if="row.status === 4" style="color: var(--el-color-info)">{{ row.statusName }}</span>
 									</template>
 								</el-table-column>
 								<el-table-column label="操作" width="300" fixed="right" align="center">
 									<template #default="{ row }">
-										<el-button link type="primary" @click="onPreview(row)" title="预览" v-if="[1, 2, 3, 4].includes(row.status)"> 预览 </el-button>
+										<el-button link type="info" @click="onPreview(row)" title="预览" v-if="[1, 2, 3, 4].includes(row.status)"> 预览 </el-button>
 										<el-button link type="primary" @click="onEdit(row)" title="编辑" v-if="[2, 3, 4].includes(row.status)"> 编辑 </el-button>
-										<el-button link type="primary" @click="onOffshelf(row)" title="下架" v-if="[3].includes(row.status)"> 下架 </el-button>
-										<el-button link type="primary" @click="ontheshelf(row)" title="上架" v-if="[4].includes(row.status)"> 上架 </el-button>
+										<el-button link type="warning" @click="onOffshelf(row)" title="下架" v-if="[3].includes(row.status)"> 下架 </el-button>
+										<el-button link type="success" @click="ontheshelf(row)" title="上架" v-if="[4].includes(row.status)"> 上架 </el-button>
 										<el-button link type="primary" @click="onRecord(row)" title="查看审核记录" v-if="[1, 2].includes(row.status)">
 											查看审核记录
 										</el-button>
@@ -234,17 +227,14 @@
 <script lang="ts" setup name="knowledge">
 import { ref, reactive, onMounted, watch, onActivated, defineAsyncComponent } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
-import { useRouter, useRoute } from 'vue-router';
+import { useRouter } from 'vue-router';
 import type { FormInstance } from 'element-plus';
-import table2excel from 'js-table2excel';
 import { formatDate } from '/@/utils/formatTime';
 import { throttle, commonEeum } from '/@/utils/tools';
-import { KnowledgePaged, KnowledgeRevoke, KnowledgeOffshelf, KnowledgeOntheshelf } from '/@/api/knowledge';
+import { KnowledgePaged, KnowledgeRevoke, KnowledgeOffshelf, KnowledgeOntheshelf, baseData } from '/@/api/knowledge';
 import { getOrgList } from '/@/api/system/organize';
 import { treelist } from '/@/api/knowledge/type';
 import { hotspottype } from '/@/api/business/order';
-import { storeToRefs } from 'pinia';
-import { useThemeConfig } from '/@/stores/themeConfig';
 
 // 引入组件
 const ProcessRecord = defineAsyncComponent(() => import('/@/views/knowledge/component/ProcessRecord.vue'));
@@ -292,20 +282,17 @@ const state = reactive<any>({
 	total: 0,
 	loading: false,
 	tableLoading: false,
-	multipleSelection: [],
 	orgData: [],
 	knowledgeOptions: [],
 	options: [],
+	statusOptions: [],
 });
 const router = useRouter();
-const route = useRoute();
 const ruleFormRef = ref<FormInstance>(); //表单ref
 const rightScrollRef = ref();
 const processRecordRef = ref();
 const processRef = ref();
 const updateKnowledge = ref();
-const storesThemeConfig = useThemeConfig();
-const { themeConfig } = storeToRefs(storesThemeConfig);
 // 热点分类远程搜索
 const HotspotProps = {
 	label: 'hotSpotFullName',
@@ -440,10 +427,6 @@ const handleNodeClick = (data: any) => {
 	}
 	getList();
 };
-// 表格多选
-const handleSelectionChange = (val: any) => {
-	state.multipleSelection = val;
-};
 /** 重置按钮操作 */
 const resetQuery = throttle((formEl: FormInstance | undefined) => {
 	if (!formEl) return;
@@ -465,7 +448,7 @@ const resetQuery = throttle((formEl: FormInstance | undefined) => {
 // 创建知识
 const onOpenAddUser = () => {
 	router.push({
-		name:'knowledgeEdit',
+		name: 'knowledgeEdit',
 		params: {
 			tagsViewName: '创建知识',
 		},
@@ -581,30 +564,19 @@ const onRecall = (row: any) => {
 const onRowDel = (row: any) => {
 	processRef.value.openDialog({ id: row.id, title: '删除知识', commonEeum: commonEeum.Seat, processType: 'deleteStart' });
 };
-// 导出表格
-const onImportTable = () => {
-	const tabeHeader = [
-		{ key: 'title', colWidth: '', title: '标题', type: 'text', isCheck: true },
-		{ key: 'knowledgeTypeName', colWidth: '', title: '类型', type: 'text', isCheck: true },
-		{ key: 'hotspotName', colWidth: '', title: '热点', type: 'text', isCheck: true },
-		{ key: 'creationName', colWidth: '', title: '创建人', type: 'text', isCheck: true },
-		{ key: 'creationBMName', colWidth: '', title: '创建部门', type: 'text', isCheck: true },
-		{ key: 'creationTime', colWidth: '', title: '创建时间', type: 'text', isCheck: true },
-		{ key: 'pageView', colWidth: '', title: '阅读次数', type: 'text', isCheck: true },
-		{ key: 'onShelfTime', colWidth: '', title: '上架时间', type: 'text', isCheck: true },
-		{ key: 'offShelfTime', colWidth: '', title: '下架时间', type: 'text', isCheck: true },
-		{ key: 'lastModificationTime', colWidth: '', title: '更新时间', type: 'text', isCheck: true },
-		{ key: 'status', colWidth: '', title: '状态', type: 'text', isCheck: true },
-	];
-	table2excel(
-		tabeHeader,
-		state.multipleSelection,
-		`${themeConfig.value.globalTitle}-${route.meta.title} ${formatDate(new Date(), 'YYYY-mm-dd HH-MM')}`
-	);
+// 页面基础数据
+const getBaseData = async () => {
+	try {
+		const { result } = await baseData();
+		state.statusOptions = result;
+	} catch (error) {
+		console.log(error);
+	}
 };
 onMounted(() => {
 	getList();
 	getOrgListApi();
+	getBaseData();
 });
 onActivated(() => {
 	getList();

+ 20 - 49
src/views/knowledge/process/index.vue

@@ -3,13 +3,11 @@
 		<el-card shadow="never">
 			<el-tabs v-model="state.queryParams.EKnowledgeWorkFlowStatus" @tab-change="handleClick">
 				<el-tab-pane label="全部" name=" "></el-tab-pane>
-				<el-tab-pane label="待审核" name="1"></el-tab-pane>
-				<el-tab-pane label="审核通过" name="2"></el-tab-pane>
-				<el-tab-pane label="已撤销" name="3"></el-tab-pane>
+				<el-tab-pane :label="v.value" :name="v.key" v-for="(v, i) in state.statusOptions" :key="i"></el-tab-pane>
 				<el-form :model="state.queryParams" ref="ruleFormRef" :inline="true" @submit.native.prevent class="mt15">
 					<el-form-item label="审核类型" prop="EKnowledgeApplyType">
 						<el-select v-model="state.queryParams.EKnowledgeApplyType" placeholder="请选择审核类型" class="w100">
-							<el-option v-for="(item, index) in state.directionList" :key="index" :label="item.label" :value="item.value" />
+							<el-option v-for="(item, index) in state.eKnowledgeApplyType" :key="index" :label="item.value" :value="item.key" />
 						</el-select>
 					</el-form-item>
 					<el-form-item label="关键字" prop="Keyword">
@@ -26,18 +24,15 @@
 			<div class="flex-center-between mb20">
 				<p class="table-title">信息列表</p>
 				<div>
-					<el-button type="primary" :disabled="!state.multipleSelection.length" @click="onImportTable">
-						<SvgIcon name="iconfont icon-daochu" class="mr5" />导出
-					</el-button>
+					
 				</div>
 			</div>
 			<!-- 表格 -->
-			<el-table :data="state.tableList" v-loading="state.loading" row-key="id" @selection-change="handleSelectionChange">
-				<el-table-column type="selection" width="55" :reserve-selection="true" />
+			<el-table :data="state.tableList" v-loading="state.loading" row-key="id">
 				<el-table-column prop="knowledgeTypeName" label="审核类型" show-overflow-tooltip>
 					<template #default="{ row }">
-						<span v-if="row.workflowModuleStatus === 0" style="color: var(--el-color-primary)">发布知识审核</span>
-						<span v-if="row.workflowModuleStatus === 2" style="color: var(--el-color-danger)">删除知识审核</span>
+						<span v-if="row.workflowModuleStatus === 0" style="color: var(--el-color-primary)">{{ row.workflowModuleStatusName }}</span>
+						<span v-if="row.workflowModuleStatus === 2" style="color: var(--el-color-danger)">{{ row.workflowModuleStatusName }}</span>
 					</template>
 				</el-table-column>
 				<el-table-column prop="title" label="标题" show-overflow-tooltip></el-table-column>
@@ -46,9 +41,7 @@
 				<el-table-column prop="createBMName" label="创建部门" show-overflow-tooltip></el-table-column>
 				<el-table-column label="状态" show-overflow-tooltip>
 					<template #default="{ row }">
-						<span v-if="row.status === 1" style="color: var(--el-color-primary)">待审批</span>
-						<span v-if="row.status === 2" style="color: var(--el-color-success)">审批成功</span>
-						<span v-if="row.status === 3" style="color: var(--el-color-danger)">已撤销</span>
+						<span>{{ row.eKnowledgeWorkFlowStatus }}</span>
 					</template>
 				</el-table-column>
 				<el-table-column prop="toNo" label="创建时间" show-overflow-tooltip width="170">
@@ -92,12 +85,9 @@ import { ref, reactive, onMounted, defineAsyncComponent } from 'vue';
 import type { FormInstance } from 'element-plus';
 import { useRouter } from 'vue-router';
 import { formatDate } from '/@/utils/formatTime';
-import table2excel from 'js-table2excel';
-import { storeToRefs } from 'pinia';
-import { useThemeConfig } from '/@/stores/themeConfig';
 // 引入节流
 import { throttle, commonEeum } from '/@/utils/tools';
-import { KnowledgeApprovedlist } from '/@/api/knowledge';
+import { KnowledgeApprovedlist, approvedBasedata } from '/@/api/knowledge';
 
 // 引入组件
 const ProcessRecord = defineAsyncComponent(() => import('/@/views/knowledge/component/ProcessRecord.vue'));
@@ -113,20 +103,9 @@ const state = reactive(<any>{
 	tableList: [],
 	loading: false,
 	total: 0,
-	multipleSelection: [],
-	directionList: [
-		{
-			label: '发布知识审核',
-			value: '0',
-		},
-		{
-			label: '删除知识审核',
-			value: '2',
-		},
-	],
+	eKnowledgeApplyType: [],// 审核类型
+	statusOptions:[], // 状态
 });
-const storesThemeConfig = useThemeConfig();
-const { themeConfig } = storeToRefs(storesThemeConfig);
 const ruleFormRef = ref<FormInstance>();
 const router = useRouter();
 const processRecordRef = ref();
@@ -144,10 +123,6 @@ const getList = () => {
 			state.loading = false;
 		});
 };
-// 多选表格
-const handleSelectionChange = (val: any) => {
-	state.multipleSelection = val;
-};
 /** 重置按钮操作 */
 const resetQuery = throttle((formEl: FormInstance | undefined) => {
 	if (!formEl) return;
@@ -180,23 +155,19 @@ const onSubmitProcess = () => {
 const onRecord = (row: any) => {
 	processRecordRef.value.openDialog(row);
 };
-// 导出表格
-const onImportTable = () => {
-	const tabeHeader = [
-		{ key: 'title', colWidth: '', title: '标题', type: 'text', isCheck: true },
-		{ key: 'knowledgeTypeName', colWidth: '', title: '类型', type: 'text', isCheck: true },
-		{ key: 'hotspotName', colWidth: '', title: '热点', type: 'text', isCheck: true },
-		{ key: 'creationName', colWidth: '', title: '创建人', type: 'text', isCheck: true },
-		{ key: 'creationBMName', colWidth: '', title: '创建部门', type: 'text', isCheck: true },
-		{ key: 'workFlowApplyStatus', colWidth: '', title: '状态', type: 'text', isCheck: true },
-		{ key: 'creationTime', colWidth: '', title: '创建时间', type: 'text', isCheck: true },
-		{ key: 'currentStepTime', colWidth: '', title: '到达该节点时间', type: 'text', isCheck: true },
-		{ key: 'handleTime', colWidth: '', title: '审核时间', type: 'text', isCheck: true },
-	];
-	table2excel(tabeHeader, state.multipleSelection, `${themeConfig.value.globalTitle}-知识库-审核管理 ${formatDate(new Date(), 'YYYY-mm-dd HH-MM')}`);
+// 页面基础数据
+const getBaseData = async () => {
+	try {
+		const { result } = await approvedBasedata();
+		state.statusOptions = result.eKnowledgeWorkFlowStatus;
+		state.eKnowledgeApplyType = result.eKnowledgeApplyType;
+	} catch (error) {
+		console.log(error);
+	}
 };
 onMounted(() => {
 	getList();
+	getBaseData();
 });
 </script>
 <style lang="scss" scoped></style>

+ 1 - 24
src/views/resetPwd/component/resetPwd.vue

@@ -3,23 +3,6 @@
 		<p class="currentAccount">
 			账号 <span>{{ userName }}</span>
 		</p>
-		<el-form-item prop="currentPassword" label="旧密码">
-			<el-input
-				class="inputDeep"
-				clearable
-				type="password"
-				show-password
-				placeholder="请输旧就密码"
-				v-model="state.ruleForm.currentPassword"
-				autocomplete="off"
-			>
-				<template #prefix>
-					<el-icon class="el-input__icon">
-						<ele-Unlock />
-					</el-icon>
-				</template>
-			</el-input>
-		</el-form-item>
 		<el-form-item prop="newPassword" label="新密码">
 			<el-input
 				class="inputDeep"
@@ -61,7 +44,7 @@
 			</el-input>
 		</el-form-item>
         <el-button type="primary" class="resetPwd-content-submit" round @click="onChangeConfirm(resetPwdRef)" :loading="state.loading"
-				>确认重置</el-button
+				>确认修改</el-button
 			>
 		<div class="font12 mt10 resetPwd-msg">提示:密码不得少于8位数,且必须包含数字、字母大小写和特殊字符</div>
 	</el-form>
@@ -78,7 +61,6 @@ import { storeToRefs } from 'pinia';
 import { useUserInfo } from '/@/stores/userInfo';
 // 修改密码参数类型
 interface ResetPwdState {
-	currentPassword: string;
 	newPassword: string;
 	confirmPassword: string;
 }
@@ -86,7 +68,6 @@ interface ResetPwdState {
 const router = useRouter();
 const state = reactive({
 	ruleForm: <ResetPwdState>{
-		currentPassword: '',
 		newPassword: '',
 		confirmPassword: '',
 	},
@@ -161,9 +142,6 @@ const checkPassword = (rule: any, value: string, callback: any) => {
 	if (modes.value == 0 || modes.value == 1) {
 		return callback('提示:密码不得少于8位数,且必须包含字母大小写和特殊字符'); //弱密码
 	}
-	if (value === state.ruleForm.currentPassword) {
-		return callback('新密码不能与旧密码一致,请重新输入');
-	}
 	return callback();
 };
 // 检查输入密码是否一致
@@ -177,7 +155,6 @@ const checkConfirmPassword = (rule: any, value: any, callback: any) => {
 	return callback();
 };
 const rules = reactive({
-	currentPassword: [{ required: true, message: '请输入旧密码', trigger: ['change', 'blur'] }],
 	newPassword: [{ required: true, validator: checkPassword, trigger: ['change', 'blur'] }],
 	confirmPassword: [{ required: true, validator: checkConfirmPassword, trigger: 'blur' }],
 });

+ 1 - 1
src/views/resetPwd/index.vue

@@ -6,7 +6,7 @@
 		</div>
 		<div class="login-content">
 			<div class="login-content-main">
-				<p class="login-content-title">密码重置</p>
+				<p class="login-content-title">修改密码</p>
 				<ResetPwd />
 			</div>
 		</div>

+ 3 - 3
src/views/system/config/dict/index.vue

@@ -121,19 +121,19 @@ const state = reactive<any>({
 	columns: [
 		{
 			key: 'dicDataName',
-			dataKey: 'dicDataName', //需要渲染当前列的数据字段,如{id:9527,name:'Mike'},则填name
+			dataKey: 'dicDataName',
 			title: '字典名称',
 			width: 600,
 		},
 		{
 			key: 'dicDataValue',
-			dataKey: 'dicDataValue', //需要渲染当前列的数据字段,如{id:9527,name:'Mike'},则填name
+			dataKey: 'dicDataValue',
 			title: '字典值',
 			width: 150,
 		},
 		{
 			key: 'dicTypeCode',
-			dataKey: 'dicTypeCode', //需要渲染当前列的数据字段,如{id:9527,name:'Mike'},则填name
+			dataKey: 'dicTypeCode',
 			title: '字典code',
 			width: 170,
 		},

+ 9 - 3
src/views/system/organize/index.vue

@@ -75,19 +75,25 @@ const state = reactive({
 	columns: [
 		{
 			key: 'orgName',
-			dataKey: 'orgName', //需要渲染当前列的数据字段,如{id:9527,name:'Mike'},则填name
+			dataKey: 'orgName',
 			title: '部门名称',
 			width: 400,
 		},
 		{
 			key: 'parentName',
-			dataKey: 'parentName', //需要渲染当前列的数据字段,如{id:9527,name:'Mike'},则填name
+			dataKey: 'parentName',
 			title: '上级部门',
 			width: 400,
 		},
+		{
+			key: 'orgTypeText',
+			dataKey: 'orgTypeText', 
+			title: '部门类别',
+			width: 200,
+		},
 		{
 			key: 'orgCode',
-			dataKey: 'orgCode', //需要渲染当前列的数据字段,如{id:9527,name:'Mike'},则填name
+			dataKey: 'orgCode', 
 			title: '部门编码',
 			width: 200,
 		},

+ 18 - 8
src/views/system/roles/index.vue

@@ -9,7 +9,7 @@
 							<el-option v-for="item in state.IncludeDeletedList" :key="item.value" :label="item.label" :value="item.value" />
 						</el-select>
 					</el-form-item>
-					<el-form-item label="关键字查询" prop="Keyword">
+					<el-form-item label="关键字" prop="Keyword">
 						<el-input v-model="state.queryParams.Keyword" placeholder="角色名称/角色编码" clearable @keyup.enter="handleQuery" />
 					</el-form-item>
 					<el-form-item>
@@ -37,14 +37,23 @@
 					</template>
 				</el-table-column>
 				<el-table-column prop="state" label="状态" show-overflow-tooltip width="80"> </el-table-column>
-				<el-table-column label="操作" width="260" fixed="right" align="center">
+				<el-table-column prop="lastModificationTime" label="更新时间" show-overflow-tooltip width="170">
 					<template #default="scope">
-						<el-button link type="primary" @click="onOpenEditRole(scope.row)" v-auth="'100203'" title="修改角色信息"> 修改 </el-button>
-						<el-button link type="success" @click="onPermissions(scope.row)" v-auth="'100204'" title="配置角色权限"> 配置权限 </el-button>
-						<el-button link type="info" @click="onDataAuth(scope.row)" v-auth="'100204'" title="配置角色数据权限"> 数据权限 </el-button>
-						<el-button link type="danger" @click="onRowDel(scope.row)" v-if="scope.row.state === '正常'" v-auth="'100202'" title="删除角色">
-							删除
+						<span>{{ formatDate(scope.row.lastModificationTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+					</template>
+				</el-table-column>
+				<el-table-column label="操作" width="260" fixed="right" align="center">
+					<template #default="{ row }">
+						<el-button link type="primary" @click="onOpenEditRole(row)" v-auth="'100203'" title="修改角色信息" v-if="!row.isDeleted">
+							修改
+						</el-button>
+						<el-button link type="success" @click="onPermissions(row)" v-auth="'100204'" title="配置角色权限" v-if="!row.isDeleted">
+							配置权限
+						</el-button>
+						<el-button link type="info" @click="onDataAuth(row)" v-auth="'100204'" title="配置角色数据权限" v-if="!row.isDeleted">
+							数据权限
 						</el-button>
+						<el-button link type="danger" @click="onRowDel(row)" v-auth="'100202'" title="删除角色" v-if="!row.isDeleted"> 删除 </el-button>
 					</template>
 				</el-table-column>
 				<template #empty>
@@ -73,6 +82,7 @@ import type { FormInstance } from 'element-plus';
 import { useRouter } from 'vue-router';
 import { throttle } from '/@/utils/tools';
 import { getRoleListPaged, delRole } from '/@/api/system/roles';
+import { formatDate } from '/@/utils/formatTime';
 // 引入组件
 const AddRole = defineAsyncComponent(() => import('/@/views/system/roles/component/addRole.vue'));
 const EditRole = defineAsyncComponent(() => import('/@/views/system/roles/component/editRole.vue'));
@@ -156,7 +166,7 @@ const onDataAuth = (row: any) => {
 		query: {
 			id: row.id,
 			code: row.name,
-			roleDisplay:row.displayName,
+			roleDisplay: row.displayName,
 			tagsViewName: '数据权限 ' + row.displayName,
 		},
 	});

+ 4 - 3
src/views/system/user/index.vue

@@ -56,9 +56,10 @@
 							<!-- 表格 -->
 							<el-table :data="state.tableData" v-loading="state.tableLoading" row-key="id">
 								<el-table-column type="index" width="60" label="序号" />
-								<el-table-column prop="name" label="姓名" show-overflow-tooltip width="150"></el-table-column>
-								<el-table-column prop="userName" label="账号" show-overflow-tooltip width="150"></el-table-column>
-								<el-table-column prop="orgName" label="所属部门" show-overflow-tooltip width="190"></el-table-column>
+								<el-table-column prop="name" label="姓名" show-overflow-tooltip width="170"></el-table-column>
+								<el-table-column prop="userName" label="账号" show-overflow-tooltip width="170"></el-table-column>
+								<el-table-column prop="organization.orgName" label="所属部门" show-overflow-tooltip width="190"></el-table-column>
+								<el-table-column prop="organization.orgTypeText" label="部门类别" show-overflow-tooltip width="190"></el-table-column>
 								<el-table-column prop="roleNames" label="角色" show-overflow-tooltip width="300"></el-table-column>
 								<el-table-column prop="phoneNo" label="电话号码" show-overflow-tooltip width="130"></el-table-column>
 								<el-table-column prop="staffNo" label="工号" show-overflow-tooltip width="120"></el-table-column>

+ 1 - 29
src/views/tels/blacklist/index.vue

@@ -40,14 +40,10 @@
 					<el-button type="primary" @click="onRemove" v-waves v-auth="'200202'" :disabled="!state.multipleSelection.length">
 						<SvgIcon name="ele-Delete" class="mr5" />解除
 					</el-button>
-					<el-button type="primary" v-waves @click="onImportTable" :disabled="!state.multipleSelection.length">
-						<SvgIcon name="iconfont icon-daochu" class="mr5" />导出
-					</el-button>
 				</div>
 			</div>
 			<!-- 表格 -->
-			<el-table :data="state.tableData" v-loading="state.loading" row-key="id" @selection-change="handleSelectionChange">
-				<el-table-column type="selection" width="55" :reserve-selection="true" />
+			<el-table :data="state.tableData" v-loading="state.loading" row-key="id">
 				<el-table-column type="index" width="60" label="序号" />
 				<el-table-column prop="phoneNo" label="电话号码" show-overflow-tooltip></el-table-column>
 				<el-table-column label="级别" show-overflow-tooltip width="170">
@@ -108,13 +104,9 @@
 import { defineAsyncComponent, ref, reactive, onMounted } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
 import type { FormInstance } from 'element-plus';
-import { useRoute } from 'vue-router';
-import { storeToRefs } from 'pinia';
-import { useThemeConfig } from '/@/stores/themeConfig';
 import { formatDate } from '/@/utils/formatTime';
 import { blacklistPaged, balcklistDelete } from '/@/api/tels/blacklist';
 import { throttle } from '/@/utils/tools';
-import table2excel from 'js-table2excel';
 // 引入组件
 const AddBlacklist = defineAsyncComponent(() => import('/@/views/tels/blacklist/component/addBlacklist.vue'));
 const OperationRecord = defineAsyncComponent(() => import('/@/views/tels/blacklist/component/operationRecord.vue'));
@@ -187,9 +179,6 @@ const state = reactive<QueryState>({
 const ruleFormRef = ref<FormInstance>();
 const addBlacklistRef = ref();
 const operationRecordRef = ref();
-const storesThemeConfig = useThemeConfig();
-const { themeConfig } = storeToRefs(storesThemeConfig);
-const route = useRoute();
 /** 搜索按钮操作 节流操作 */
 const handleQuery = throttle(() => {
 	state.queryParams.PageIndex = 1;
@@ -208,10 +197,6 @@ const getList = () => {
 			state.loading = false;
 		});
 };
-// 表格多选
-const handleSelectionChange = (val: any) => {
-	state.multipleSelection = val;
-};
 /** 重置按钮操作 */
 const resetQuery = throttle((formEl: FormInstance | undefined) => {
 	if (!formEl) return;
@@ -222,19 +207,6 @@ const resetQuery = throttle((formEl: FormInstance | undefined) => {
 const onAddBacklist = () => {
 	addBlacklistRef.value.openDialog();
 };
-// 导出表格
-const onImportTable = () => {
-	const tabeHeader = [
-		{ key: 'phoneNo', colWidth: '', title: '电话号码', type: 'text', isCheck: true },
-		{ key: 'duration', colWidth: '', title: '黑名单时长(秒)', type: 'text', isCheck: true },
-		{ key: 'creationTime', colWidth: '', title: '创建时间', type: 'text', isCheck: true },
-	];
-	table2excel(
-		tabeHeader,
-		state.multipleSelection,
-		`${themeConfig.value.globalTitle}-${route.meta.title} ${formatDate(new Date(), 'YYYY-mm-dd HH-MM')}`
-	);
-};
 // 删除黑名单
 const onRowDel = (row: any) => {
 	ElMessageBox.confirm(`此操作将永久删除:“${row.phoneNo}”,是否继续?`, '提示', {

+ 2 - 42
src/views/tels/callRecord/index.vue

@@ -36,14 +36,11 @@
 			<div class="flex-center-between mb20">
 				<p class="table-title">信息列表</p>
 				<div>
-					<el-button type="primary" :disabled="!state.multipleSelection.length" v-waves @click="onImportTable">
-						<SvgIcon name="iconfont icon-daochu" class="mr5" />导出
-					</el-button>
+					
 				</div>
 			</div>
 			<!-- 表格 -->
-			<el-table :data="state.tableList" v-loading="state.loading" row-key="id" @selection-change="handleSelectionChange">
-				<el-table-column type="selection" width="55" :reserve-selection="true" />
+			<el-table :data="state.tableList" v-loading="state.loading" row-key="id">
 				<el-table-column type="index" width="60" label="序号" />
 				<el-table-column prop="fromNo" label="主叫号码" show-overflow-tooltip></el-table-column>
 				<el-table-column prop="toNo" label="被叫号码" show-overflow-tooltip></el-table-column>
@@ -139,12 +136,6 @@
 <script lang="ts" setup name="callRecord">
 import { ref, reactive, onMounted, defineAsyncComponent } from 'vue';
 import type { FormInstance } from 'element-plus';
-import { useRoute } from 'vue-router';
-import { ElMessage } from 'element-plus';
-import { formatDate } from '/@/utils/formatTime';
-import table2excel from 'js-table2excel';
-import { storeToRefs } from 'pinia';
-import { useThemeConfig } from '/@/stores/themeConfig';
 // 引入节流
 import { throttle } from '/@/utils/tools';
 import { callPaged, callPagedMissed } from '/@/api/tels/callRecord';
@@ -167,7 +158,6 @@ interface QueryState {
 	tableList: Array<any>;
 	loading: boolean;
 	total: number;
-	multipleSelection: Array<any>;
 	directionList: Array<any>;
 	stateList: Array<any>;
 }
@@ -187,7 +177,6 @@ const state = reactive(<QueryState>{
 	tableList: [],
 	loading: false,
 	total: 0,
-	multipleSelection: [],
 	stateList: [
 		{
 			label: '全部',
@@ -217,11 +206,8 @@ const state = reactive(<QueryState>{
 		},
 	],
 });
-const storesThemeConfig = useThemeConfig();
-const { themeConfig } = storeToRefs(storesThemeConfig);
 const ruleFormRef = ref<FormInstance>();
 const playRecordingRef = ref();
-const route = useRoute();
 /** 获取用户列表 */
 const getList = () => {
 	state.loading = true;
@@ -264,10 +250,6 @@ const getList = () => {
 			break;
 	}
 };
-// 多选表格
-const handleSelectionChange = (val: any) => {
-	state.multipleSelection = val;
-};
 /** 重置按钮操作 */
 const resetQuery = throttle((formEl: FormInstance | undefined) => {
 	if (!formEl) return;
@@ -278,28 +260,6 @@ const resetQuery = throttle((formEl: FormInstance | undefined) => {
 const handleClick = () => {
 	getList();
 };
-// 导出表格
-const onImportTable = () => {
-	const tabeHeader = [
-		{ key: 'userName', colWidth: '', title: '用户名称', type: 'text', isCheck: true },
-		{ key: 'fromNo', colWidth: '', title: '主叫号码', type: 'text', isCheck: true },
-		{ key: 'toNo', colWidth: '', title: '被叫号码', type: 'text', isCheck: true },
-		{ key: 'callTypeText', colWidth: '', title: '通话类型', type: 'text', isCheck: true },
-		{ key: 'callStatusText', colWidth: '', title: '通话状态', type: 'text', isCheck: true },
-		{ key: 'callDirectionText', colWidth: '', title: '呼叫方向', type: 'text', isCheck: true },
-		{ key: 'endByText', colWidth: '', title: '通话结束方', type: 'text', isCheck: true },
-		{ key: 'phoneIspText', colWidth: '', title: '运营商', type: 'text', isCheck: true },
-		{ key: 'ringOffTypeText', colWidth: '', title: '挂断类型', type: 'text', isCheck: true },
-		{ key: 'attribution', colWidth: '', title: '归属地', type: 'text', isCheck: true },
-		// { key: 'creationTime', colWidth: '', title: '创建时间', type: 'text', isCheck: true },
-		// { key: 'image', colWidth: '', width: '70', height: '40', title: '图片描述', type: 'image', isCheck: true },
-	];
-	table2excel(
-		tabeHeader,
-		state.multipleSelection,
-		`${themeConfig.value.globalTitle}-${route.meta.title} ${formatDate(new Date(), 'YYYY-mm-dd HH-MM')}`
-	);
-};
 // 播放录音
 const onPalySoundRecording = (val: any) => {
 	playRecordingRef.value.openDialog(val);

+ 2 - 30
src/views/tels/telsLog/index.vue

@@ -23,14 +23,11 @@
 			<div class="flex-center-between mb20">
 				<p class="table-title">信息列表</p>
 				<div>
-					<el-button type="primary" v-waves @click="onImportTable" :disabled="!state.multipleSelection.length">
-						<SvgIcon name="iconfont icon-daochu" class="mr5" />导出
-					</el-button>
+					
 				</div>
 			</div>
 			<!-- 表格 -->
-			<el-table :data="state.tableData" v-loading="state.loading" row-key="id" @selection-change="handleSelectionChange">
-				<el-table-column type="selection" width="55" :reserve-selection="true" />
+			<el-table :data="state.tableData" v-loading="state.loading" row-key="id">
 				<el-table-column type="index" width="60" label="序号" />
 				<el-table-column prop="phoneNo" label="电话号码" show-overflow-tooltip></el-table-column>
 				<el-table-column prop="phoneNo" label="坐席" show-overflow-tooltip></el-table-column>
@@ -59,13 +56,8 @@
 <script lang="ts" setup name="telsLog">
 import { defineAsyncComponent, ref, reactive, onMounted } from 'vue';
 import type { FormInstance } from 'element-plus';
-import { storeToRefs } from 'pinia';
-import { useThemeConfig } from '/@/stores/themeConfig';
-import { useRoute } from 'vue-router';
-import { formatDate } from '/@/utils/formatTime';
 import { blacklistPaged } from '/@/api/tels/blacklist';
 import { throttle } from '/@/utils/tools';
-import table2excel from 'js-table2excel';
 // 引入组件
 const OperationRecord = defineAsyncComponent(() => import('/@/views/tels/telsLog/component/operationRecord.vue'));
 
@@ -96,9 +88,6 @@ const state = reactive<QueryState>({
 });
 const ruleFormRef = ref<FormInstance>();
 const operationRecordRef = ref();
-const route = useRoute();
-const storesThemeConfig = useThemeConfig();
-const { themeConfig } = storeToRefs(storesThemeConfig);
 /** 搜索按钮操作 节流操作 */
 const handleQuery = throttle(() => {
 	state.queryParams.PageIndex = 1;
@@ -117,29 +106,12 @@ const getList = () => {
 			state.loading = false;
 		});
 };
-// 表格多选
-const handleSelectionChange = (val: any) => {
-	state.multipleSelection = val;
-};
 /** 重置按钮操作 */
 const resetQuery = throttle((formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	formEl.resetFields();
 	handleQuery();
 }, 1000);
-// 导出表格
-const onImportTable = () => {
-	const tabeHeader = [
-		{ key: 'phoneNo', colWidth: '', title: '电话号码', type: 'text', isCheck: true },
-		{ key: 'duration', colWidth: '', title: '黑名单时长(秒)', type: 'text', isCheck: true },
-		{ key: 'creationTime', colWidth: '', title: '创建时间', type: 'text', isCheck: true },
-	];
-	table2excel(
-		tabeHeader,
-		state.multipleSelection,
-		`${themeConfig.value.globalTitle}-${route.meta.title} ${formatDate(new Date(), 'YYYY-mm-dd HH-MM')}`
-	);
-};
 // 查看坐席话务明细
 const onDetail = (row: any) => {
 	operationRecordRef.value.openDialog(row);