Kaynağa Gözat

reactor:402 发布待办;401 市州通用-关于知识下架的调整;353 市州通用-承办部门审批甄别申请时,增加“修改理由”等功能;325 新增知识引用和知识归属等功能

zhangchong 1 ay önce
ebeveyn
işleme
87e8410f36

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

@@ -110,6 +110,18 @@ export const KnowledgeOffShelfNew = (data: object) => {
 		data,
 	});
 };
+/**
+ * @description 知识库批量下架
+ * @param {string} data
+ * @return {*}
+ */
+export const KnowledgeBatchOffShelf = (data: object) => {
+	return request({
+		url: `/api/v1/Knowledge/unshelve-batch`,
+		method: 'post',
+		data,
+	});
+}
 /**
  * @description 知识库下架发起审批
  * @param {string} data

+ 2 - 2
src/components/OrderDetail/index.vue

@@ -200,8 +200,8 @@
 									<span>{{ state.ruleForm?.acceptorName }}</span>
 								</el-form-item>
 							</el-col>
-							<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm.startTime">
-								<el-form-item label="受理时间"> {{ formatDate(state.ruleForm?.startTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
+							<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm.creationTime">
+								<el-form-item label="受理时间"> {{ formatDate(state.ruleForm?.creationTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm.pushType">
 								<el-form-item label="推送分类"> {{ state.ruleForm.pushType }} </el-form-item>

+ 4 - 0
src/views/business/publish/todo.vue

@@ -110,6 +110,9 @@
 				<el-form-item label="来电号码" prop="FromPhone">
 					<el-input v-model.trim="state.queryParams.FromPhone" placeholder="来电号码" clearable @keyup.enter="handleQuery" />
 				</el-form-item>
+				<el-form-item label="联系电话" prop="Contact">
+					<el-input v-model="state.queryParams.Contact" placeholder="联系电话" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
 				<el-form-item label="一级部门" prop="OrgLevelOneName">
 					<el-input v-model="state.queryParams.OrgLevelOneName" placeholder="一级部门" clearable @keyup.enter="handleQuery" />
 				</el-form-item>
@@ -252,6 +255,7 @@ const state = reactive<any>({
 		Isgjzwfwpt: null, // 国家平台转办件
 		ProvinceChannel: null,
     OrderTag:null,
+		Contact:null, // 联系电话
 	},
 	tableData: [], //表单
 	loading: false, // 加载

+ 44 - 9
src/views/knowledge/index/YBIndex.vue

@@ -261,6 +261,9 @@
 							<el-button type="primary" @click="onPrivate" v-auth="'knowledge:index:private:batch'" :loading="state.loading" :disabled="isChecked">
 								批量不公开<span v-if="checkTable.length">({{ checkTable.length }})</span>
 							</el-button>
+							<el-button type="primary" @click="onOffShelves" v-auth="'knowledge:index:offShelves'" v-show="[-1,3].includes(state.queryParams.Status)" :loading="state.loading" :disabled="isChecked">
+								批量下架<span v-if="checkTable.length">({{ checkTable.length }})</span>
+							</el-button>
 							<el-button type="primary" @click="onImport" v-auth="'knowledge:index:import'" :loading="state.tableLoading">
 								<SvgIcon name="ele-Upload" class="mr5" />知识导入
 							</el-button>
@@ -467,7 +470,7 @@ import {
 	knowledgeExport,
 	knowledgeDetailExport,
 	KnowledgeOffShelfNew,
-	knowledgeDraftUpdatePublic,
+	knowledgeDraftUpdatePublic, KnowledgeBatchOffShelf,
 } from '@/api/knowledge';
 import { knowledgeDepartmentList, knowledgeHotSpotList, knowledgeHotSpotSearch, treeList } from '@/api/knowledge/type';
 import { Splitpanes, Pane } from 'splitpanes';
@@ -806,9 +809,11 @@ const offShelfFn = (row: any) => {
 			.then(() => {
 				state.tableLoading = true;
 				KnowledgeOffShelfNew({ id: row.id }).then(() => {
-					ElMessage.success('操作成功');
+					ElMessage.success('下架成功');
 					handleQuery();
-				});
+				}).catch(()=>{
+					state.tableLoading = false;
+				})
 			})
 			.catch(() => {});
 	} else {
@@ -827,9 +832,11 @@ const groundingFn = (row: any) => {
 		.then(() => {
 			state.tableLoading = true;
 			KnowledgeOnTheShelf(row.id).then(() => {
-				ElMessage.success('操作成功');
+				ElMessage.success('上架成功');
 				handleQuery();
-			});
+			}).catch(()=>{
+				state.tableLoading = false;
+			})
 		})
 		.catch(() => {});
 };
@@ -880,9 +887,12 @@ const onOpen = () => {
 		.then(() => {
 			state.tableLoading = true;
 			knowledgeDraftUpdatePublic({ knowledgeIds: ids, isPublic: true }).then(() => {
-				ElMessage.success('操作成功');
+				ElMessage.success('批量公开成功');
 				handleQuery();
-			});
+				state.tableLoading = false;
+			}).catch(()=>{
+				state.tableLoading = false;
+			})
 		})
 		.catch(() => {});
 };
@@ -899,9 +909,34 @@ const onPrivate = () => {
 		.then(() => {
 			state.tableLoading = true;
 			knowledgeDraftUpdatePublic({ knowledgeIds: ids, isPublic: false }).then(() => {
-				ElMessage.success('操作成功');
+				ElMessage.success('批量不公开成功');
 				handleQuery();
-			});
+				state.tableLoading = false;
+			}).catch(()=>{
+				state.tableLoading = false;
+			})
+		})
+		.catch(() => {});
+};
+// 批量下架
+const onOffShelves = () => {
+	const ids = checkTable.value.map((item: any) => item.id);
+	ElMessageBox.confirm(`是否确定要批量下架知识?`, '提示', {
+		confirmButtonText: '确认',
+		cancelButtonText: '取消',
+		type: 'warning',
+		draggable: true,
+		cancelButtonClass: 'default-button',
+	})
+		.then(() => {
+			state.tableLoading = true;
+			KnowledgeBatchOffShelf({knowledgeIds:ids }).then(() => {
+				ElMessage.success('批量下架成功');
+				handleQuery();
+				state.tableLoading = false;
+			}).catch(()=>{
+				state.tableLoading = false;
+			})
 		})
 		.catch(() => {});
 };

+ 43 - 9
src/views/knowledge/index/ZGIndex.vue

@@ -217,6 +217,9 @@
 							<el-button type="primary" @click="onPrivate" v-auth="'knowledge:index:private:batch'" :loading="state.loading" :disabled="isChecked">
 								批量不公开<span v-if="checkTable.length">({{ checkTable.length }})</span>
 							</el-button>
+							<el-button type="primary" @click="onOffShelves" v-auth="'knowledge:index:offShelves'" v-show="[-1,3].includes(state.queryParams.Status)" :loading="state.loading" :disabled="isChecked">
+								批量下架<span v-if="checkTable.length">({{ checkTable.length }})</span>
+							</el-button>
 							<el-button type="primary" @click="onImport" v-auth="'knowledge:index:import'" :loading="state.tableLoading">
 								<SvgIcon name="ele-Upload" class="mr5" />知识导入
 							</el-button>
@@ -424,7 +427,7 @@ import {
 	knowledgeExport,
 	knowledgeDetailExport,
 	knowledgeDraftUpdatePublic,
-	KnowledgeOffShelfNew,
+	KnowledgeOffShelfNew, KnowledgeBatchOffShelf,
 } from '@/api/knowledge';
 import { knowledgeDepartmentList, knowledgeHotSpotList, knowledgeHotSpotSearch, treeList } from '@/api/knowledge/type';
 import { Splitpanes, Pane } from 'splitpanes';
@@ -741,9 +744,12 @@ const offShelfFn = (row: any) => {
 		.then(() => {
 			state.tableLoading = true;
 			KnowledgeOffShelfNew({ id: row.id }).then(() => {
-				ElMessage.success('操作成功');
+				ElMessage.success('下架成功');
 				handleQuery();
-			});
+				state.tableLoading = false;
+			}).catch(()=>{
+				state.tableLoading = false;
+			})
 		})
 		.catch(() => {});
 };
@@ -759,9 +765,12 @@ const groundingFn = (row: any) => {
 		.then(() => {
 			state.tableLoading = true;
 			KnowledgeOnTheShelf(row.id).then(() => {
-				ElMessage.success('操作成功');
+				ElMessage.success('上架成功');
 				handleQuery();
-			});
+				state.tableLoading = false;
+			}).catch(()=>{
+				state.tableLoading = false;
+			})
 		})
 		.catch(() => {});
 };
@@ -812,9 +821,11 @@ const onOpen = () => {
 		.then(() => {
 			state.tableLoading = true;
 			knowledgeDraftUpdatePublic({ knowledgeIds: ids, isPublic: true }).then(() => {
-				ElMessage.success('操作成功');
+				ElMessage.success('批量公开成功');
 				handleQuery();
-			});
+			}).catch(()=>{
+				state.tableLoading = false;
+			})
 		})
 		.catch(() => {});
 };
@@ -831,9 +842,32 @@ const onPrivate = () => {
 		.then(() => {
 			state.tableLoading = true;
 			knowledgeDraftUpdatePublic({ knowledgeIds: ids, isPublic: false }).then(() => {
-				ElMessage.success('操作成功');
+				ElMessage.success('批量不公开成功');
 				handleQuery();
-			});
+			}).catch(()=>{
+				state.tableLoading = false;
+			})
+		})
+		.catch(() => {});
+};
+// 批量下架
+const onOffShelves = () => {
+	const ids = checkTable.value.map((item: any) => item.id);
+	ElMessageBox.confirm(`是否确定要批量下架知识?`, '提示', {
+		confirmButtonText: '确认',
+		cancelButtonText: '取消',
+		type: 'warning',
+		draggable: true,
+		cancelButtonClass: 'default-button',
+	})
+		.then(() => {
+			state.tableLoading = true;
+			KnowledgeBatchOffShelf({knowledgeIds:ids }).then(() => {
+				ElMessage.success('批量下架成功');
+				handleQuery();
+			}).catch(()=>{
+				state.tableLoading = false;
+			})
 		})
 		.catch(() => {});
 };

+ 13 - 8
src/views/knowledge/index/edit.vue

@@ -58,7 +58,7 @@
 							</template>
 						</el-skeleton>
 					</el-col>
-					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="8">
+					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="8" v-if="['YiBin'].includes(themeConfig.appScope)">
 						<el-skeleton :loading="state.loading" animated>
 							<template #template>
 								<el-form-item label="知识归属部门">
@@ -66,14 +66,17 @@
 								</el-form-item>
 							</template>
 							<template #default>
-								<el-form-item label="知识归属部门" prop="knowledgeOrg" :rules="[{ required: true, message: '请选择知识归属部门', trigger: 'change' }]">
+								<el-form-item
+									label="知识归属部门"
+									prop="knowledgeOrg"
+									:rules="[{ required: false, message: '请选择知识归属部门', trigger: 'change' }]"
+								>
 									<VTreeDrop
-										:data="state.typeData"
+										:data="orgsOptions"
 										checkable
 										keyField="id"
 										titleField="name"
 										v-model="state.ruleForm.knowledgeOrg"
-										@checked-change="getKnowledgeListData1"
 										:dropHeight="400"
 										dropPlaceholder="知识归属部门"
 										dropdownWidthFixed
@@ -478,6 +481,7 @@ import { removeDuplicate } from '@/utils/arrayOperation';
 import { useThemeConfig } from '@/stores/themeConfig';
 import { VTreeDrop } from '@wsfe/vue-tree';
 import { planTreeList } from '@/api/plan/type';
+import { getCanUseOrg } from '@/api/system/user';
 // 引入组件
 const Editor = defineAsyncComponent(() => import('@/components/Editor/index.vue')); // 富文本编辑器
 const ProcessAudit = defineAsyncComponent(() => import('@/components/ProcessAudit/index.vue')); // 流程审批
@@ -512,7 +516,7 @@ const state = reactive<any>({
 		indexNo: null, // 索引号
 		fileNo: null, // 文号
 		planTypeId: null, // 预案分类
-		knowledgeOrg:[], // 归属部门
+		knowledgeOrg: [], // 归属部门
 	},
 	typeData: [], // 知识分类
 	loading: false,
@@ -746,16 +750,16 @@ const orgsOptions = ref<EmptyArrayType>([]); // 来源单位
 const getKnowledgeType = async () => {
 	state.loading = true;
 	try {
-		const [typeDataRes, planTreeData] = await Promise.all([
+		const [typeDataRes, planTreeData, orgsOptionsRes] = await Promise.all([
 			treeList({ IsEnable: true }),
 			planTreeList({ IsEnable: true }),
 			// KnowledgeGetKnowledge(),
-			// getCanUseOrg(),
+			getCanUseOrg(),
 		]);
 		state.typeData = typeDataRes.result ?? [];
 		state.planTreeData = planTreeData.result ?? []; // 预案分类
 		// state.knowledgeOptions = knowledgeOptionsRes.result ?? [];
-		// orgsOptions.value = orgsOptionsRes.result ?? [];
+		orgsOptions.value = orgsOptionsRes.result ?? [];
 
 		state.loading = false;
 	} catch (error) {
@@ -778,6 +782,7 @@ const getDetail = async () => {
 			state.ruleForm.keywordsName = state.ruleForm.keywordsDto.map((item: any) => item.tag).join(',');
 		}
 		state.ruleForm.knowledgeTypeId = state.ruleForm.knowledgeTypes?.map((item: any) => item.id);
+		state.ruleForm.knowledgeOrg = state.ruleForm.knowledgeOrganizes?.map((item: any) => item.id);
 	}
 };
 onMounted(async () => {