Browse Source

reactor:部门退部门需要默认选中短信;

zhangchong 6 months ago
parent
commit
332ae341c4

+ 2 - 2
.env.development

@@ -3,9 +3,9 @@ VITE_MODE_NAME=development
 # 防止部署多套系统到同一域名不同目录时,变量共用的问题 设置不同的前缀
 VITE_STORAGE_NAME=dev
 # 业务系统基础请求地址
-VITE_API_URL=http://110.188.24.28:50300
+VITE_API_URL=http://110.188.24.28:50100
 # 业务系统socket请求地址
-VITE_API_SOCKET_URL=http://110.188.24.28:50300/hubs/hotline
+VITE_API_SOCKET_URL=http://110.188.24.28:50100/hubs/hotline
 # 业务系统文件上传上传请求地址
 VITE_API_UPLOAD_URL=http://open.fs.12345lm.cn
 # 数据共享平台请求地址

+ 2 - 2
src/views/auxiliary/knowledgeLexicon/components/Knowledge-lexicon-add.vue

@@ -16,7 +16,7 @@
           </el-col>
           <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
             <el-form-item label="是否启用" prop="isEnable" :rules="[{ required: false, message: '请选择是否启用', trigger: 'change' }]">
-              <el-switch v-model="state.ruleForm.isEnable" inline-prompt active-text="启用" inactive-text="禁用" :active-value="1" :inactive-value="0" />
+              <el-switch v-model="state.ruleForm.isEnable" inline-prompt active-text="启用" inactive-text="禁用" :active-value="0" :inactive-value="1" />
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
@@ -99,7 +99,7 @@ const state = reactive<any>({
 	ruleForm: {
     tag: '', // 关键词
     classifyArray: [], // 标签分类
-    isEnable: 1, // 是否启用
+    isEnable: 0, // 是否启用
     synonym: '', // 违禁同义词
     remark: '', // 备注说明
 	},

+ 2 - 2
src/views/auxiliary/knowledgeLexicon/components/Knowledge-lexicon-edit.vue

@@ -16,7 +16,7 @@
 				</el-col>
 				<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 					<el-form-item label="是否启用" prop="isEnable" :rules="[{ required: false, message: '请选择是否启用', trigger: 'change' }]">
-						<el-switch v-model="state.ruleForm.isEnable" inline-prompt active-text="启用" inactive-text="禁用" :active-value="1" :inactive-value="0" />
+						<el-switch v-model="state.ruleForm.isEnable" inline-prompt active-text="启用" inactive-text="禁用" :active-value="0" :inactive-value="1" />
 					</el-form-item>
 				</el-col>
 				<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
@@ -98,7 +98,7 @@ const state = reactive<any>({
 	ruleForm: {
 		tag: '', // 关键词
 		classifyArray: [], // 标签分类
-		isEnable: 1, // 是否启用
+		isEnable: 0, // 是否启用
 		synonym: '', // 违禁同义词
 		remark: '', // 备注说明
 	},

+ 1 - 1
src/views/auxiliary/knowledgeLexicon/index.vue

@@ -75,7 +75,7 @@ const columns = ref<any[]>([
 		label: '是否启用',
 
 		render: (scope: any) => {
-			return scope.row.isEnable === 1 ? '启用' : '禁用';
+			return scope.row.isEnable === 0 ? '启用' : '禁用';
 		},
 	},
 	{ prop: 'creatorName', label: '创建人', minWidth: 120 },

+ 1 - 0
src/views/knowledge/components/Knowledge-keywords.vue

@@ -71,6 +71,7 @@ const state = reactive({
 		Tag: null, // 标签
 		Classify: null, // 标签类型
 		Synonym: null, // 近义词
+		IsEnable:0, // 0启用 1禁用
 	},
 	total: 0, // 总条数
 	tableData: [], // 表格数据

+ 49 - 41
src/views/knowledge/index/edit.vue

@@ -37,26 +37,26 @@
 							</template>
 							<template #default>
 								<el-form-item label="知识分类" prop="knowledgeTypeId" :rules="[{ required: true, message: '请选择知识分类', trigger: 'change' }]">
-                  <el-tree-select
-                    v-model="state.ruleForm.knowledgeTypeId"
-                    :data="state.typeData"
-                    multiple
-                    :render-after-expand="false"
-                    show-checkbox
-                    ref="cascadeRef"
-                    node-key="id"
-                    @change="getKnowledgeList"
-                    :props="{  label: 'name' }"
-                    class="w100"
-                    check-strictly
-                    check-on-click-node
-                    collapse-tags
-                    collapse-tags-tooltip
-                    :max-collapse-tags="2"
-                    filterable
-                    placeholder="请选择知识分类"
-                  >
-                  </el-tree-select>
+									<el-tree-select
+										v-model="state.ruleForm.knowledgeTypeId"
+										:data="state.typeData"
+										multiple
+										:render-after-expand="false"
+										show-checkbox
+										ref="cascadeRef"
+										node-key="id"
+										@change="getKnowledgeList"
+										:props="{ label: 'name' }"
+										class="w100"
+										check-strictly
+										check-on-click-node
+										collapse-tags
+										collapse-tags-tooltip
+										:max-collapse-tags="2"
+										filterable
+										placeholder="请选择知识分类"
+									>
+									</el-tree-select>
 								</el-form-item>
 							</template>
 						</el-skeleton>
@@ -119,7 +119,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">
 						<el-skeleton :loading="state.loading" animated>
 							<template #template>
 								<el-form-item label="来源部门" prop="sourceOrganizeId" :rules="[{ required: true, message: '请选择来源部门', trigger: 'change' }]">
@@ -170,7 +170,7 @@
 							</template>
 						</el-skeleton>
 					</el-col>
-<!--					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+					<!--					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 						<el-skeleton :loading="state.loading" animated>
 							<template #template>
 								<el-form-item label="知识摘要">
@@ -376,7 +376,7 @@ const state = reactive<any>({
 });
 const ruleFormRef = ref<any>(); // 表单ref
 // 选择热点分类
-const chooseHotSpot = (val: any,node:any,externalArr:any) => {
+const chooseHotSpot = (val: any, node: any, externalArr: any) => {
 	state.ruleForm.hotspotSpliceName = val.hotSpotFullName; // 热点分类拼接名称
 	state.ruleForm.hotspotName = val.hotSpotName; // 热点分类名称
 	state.ruleForm.hotspotCode = val.provinceCode; // 热点分类code
@@ -421,24 +421,24 @@ const isRepeat = (type: string) => {
 				state.ruleForm[type] = '';
 			});
 	}
-	knowledgeKeyword({title:state.ruleForm.title}).then(res => {
-		if(res.result.length){
-			const nameArr = res.result.map((item:any) => item.tag);
-			const ids = res.result.map((item:any) => item.id);
-			keyWordsNameArr.value = removeDuplicate([...keyWordsNameArr.value,...nameArr]);
-			state.ruleForm.keywordsName = keyWordsNameArr.value.join(',')
+	knowledgeKeyword({ title: state.ruleForm.title }).then((res) => {
+		if (res.result.length) {
+			const nameArr = res.result.map((item: any) => item.tag);
+			const ids = res.result.map((item: any) => item.id);
+			keyWordsNameArr.value = removeDuplicate([...keyWordsNameArr.value, ...nameArr]);
+			state.ruleForm.keywordsName = keyWordsNameArr.value.join(',');
 			state.ruleForm.keywords = removeDuplicate([...state.ruleForm.keywords, ...ids]);
 		}
-	})
+	});
 };
 // 默认配置
 const defaultContent = ref([
 	{
-		type: "paragraph",
-		children: [ { text: '', fontFamily: '仿宋', fontSize: '20px' },],
+		type: 'paragraph',
+		children: [{ text: '', fontFamily: '仿宋', fontSize: '20px' }],
 		lineHeight: '2',
 	},
-])
+]);
 // 展示编写规范
 const KnowledgeStandardRef = ref<RefType>();
 const showStandard = () => {
@@ -449,7 +449,7 @@ const cascadeRef = ref<RefType>();
 const getKnowledgeList = () => {
 	const currentNode = cascadeRef.value.getCheckedNodes();
 	state.ruleForm.knowledgeType = currentNode.map((item: any) => {
-		return { KnowledgeTypeName: item.name, KnowledgeTypeId: item.id, KnowledgeTypeSpliceName : item.spliceName };
+		return { KnowledgeTypeName: item.name, KnowledgeTypeId: item.id, KnowledgeTypeSpliceName: item.spliceName };
 	});
 };
 // 添加关键词
@@ -459,10 +459,19 @@ const addKeywords = () => {
 };
 // 选择关键词
 const selectKeyword = (val: any) => {
-	const nameArr = val.name;
-	keyWordsNameArr.value = removeDuplicate([...keyWordsNameArr.value,...nameArr]);
-	state.ruleForm.keywordsName = keyWordsNameArr.value.join(',')
-	state.ruleForm.keywords = removeDuplicate([...state.ruleForm.keywords, ...val.ids]);
+	keyWordsNameArr.value = [];
+	state.ruleForm.keywordsName = '';
+	state.ruleForm.keywords = [];
+	if (val.ids && val.ids.length) {
+		const nameArr = val.name;
+		keyWordsNameArr.value = removeDuplicate([...keyWordsNameArr.value, ...nameArr]);
+		state.ruleForm.keywordsName = keyWordsNameArr.value.join(',');
+		state.ruleForm.keywords = removeDuplicate([...state.ruleForm.keywords, ...val.ids]);
+	} else {
+		keyWordsNameArr.value = [];
+		state.ruleForm.keywordsName = '';
+		state.ruleForm.keywords = [];
+	}
 };
 // 选择知识库模板
 const selectTemplate = (val: any) => {
@@ -551,7 +560,7 @@ const onPreview = () => {
 		name: 'knowledgePreview',
 		params: {
 			tagsViewName: '知识预览',
-			id:'0',
+			id: '0',
 		},
 	});
 };
@@ -617,7 +626,7 @@ const getKnowledgeType = async () => {
 
 		state.loading = false;
 	} catch (error) {
-		console.log(error)
+		console.log(error);
 		state.loading = false;
 	}
 };
@@ -636,7 +645,6 @@ const getDetail = async () => {
 			state.ruleForm.keywordsName = state.ruleForm.keywordsDto.map((item: any) => item.tag).join(',');
 		}
 		state.ruleForm.knowledgeTypeId = state.ruleForm.knowledgeType.map((item: any) => item.knowledgeTypeId);
-
 	}
 };
 onMounted(async () => {

+ 45 - 13
src/views/todo/seats/accept/Knowledge.vue

@@ -17,15 +17,15 @@
 				</template>
 			</el-input>
 		</div>
-		<div class="mt5" style="display: flex;flex-wrap: wrap;justify-content: space-between" v-if="state.queryParams.Attribution === ''">
-<!--			<div style="display: flex;">
+		<div class="mt5" style="display: flex; flex-wrap: wrap; justify-content: space-between" v-if="state.queryParams.Attribution === ''">
+			<div style="display: flex">
 				<div style="height: 32px; line-height: 32px">推荐类型:</div>
-				<el-radio-group v-model="state.queryParams.Sort" @change="handleQuery">
+				<el-radio-group v-model="state.queryParams.recommendType" @change="changeRecommendType">
 					<el-radio value="1">关键词推荐</el-radio>
 					<el-radio value="2">热点推荐</el-radio>
 				</el-radio-group>
-			</div>-->
-			<div style="display: flex;">
+			</div>
+			<div style="display: flex">
 				<div style="height: 32px; line-height: 32px">排序:</div>
 				<el-radio-group v-model="state.queryParams.Sort" @change="handleQuery">
 					<el-radio :value="1">浏览量</el-radio>
@@ -43,7 +43,7 @@
 			<el-scrollbar>
 				<div v-for="(v, i) in state.knowledgeList" :key="i" class="retrieval-content-item" @click="onPreview(v)">
 					<h4 class="mb10 text-no-wrap">{{ v.title }}</h4>
-<!--					<div class="text-ellipsis2">{{ v.summary }}</div>-->
+					<!--					<div class="text-ellipsis2">{{ v.summary }}</div>-->
 					<div class="flex-center-between mt10 color-info">
 						<div>
 							<span class="mr10">创建部门:{{ v.creatorOrgName }}</span>
@@ -70,10 +70,11 @@
 </template>
 <script setup lang="ts" name="orderAcceptKnowledge">
 // 定义变量内容
-import { onMounted, reactive, defineAsyncComponent, ref } from 'vue';
+import { onMounted, reactive, defineAsyncComponent, ref, watch } from 'vue';
 import { useRoute, useRouter } from 'vue-router';
 import { formatDate } from '@/utils/formatTime';
 import { knowledgeRetrieval } from '@/api/knowledge/retrieval';
+import { throttle } from '@/utils/tools';
 
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
 
@@ -102,7 +103,8 @@ const state = reactive<any>({
 		Keyword: null,
 		RetrievalType: 0, // 检索类型
 		Attribution: '',
-		Sort:1,
+		Sort: 1,
+		recommendType: '1',
 	},
 });
 // 手动查询,将页码设置为1
@@ -111,17 +113,35 @@ const handleQuery = () => {
 	knowledgeRetrievalPaged();
 };
 //  知识查询
-const knowledgeRetrievalPaged = async () => {
+const knowledgeRetrievalPaged = throttle(async () => {
 	try {
 		state.loading = true;
-		const res: any = await knowledgeRetrieval({ ...state.queryParams, HotspotName: state.queryParams.Attribution ? '' : HotspotName.value });
-		state.knowledgeList = res.result?.items ?? [];
-		state.knowledgeTotal = res.result?.total ?? 0;
+		let request: EmptyObjectType = {};
+		if (state.queryParams.recommendType === '1') {
+			//关键词
+			request = {
+				...state.queryParams,
+				Content: props.formData.content,
+			};
+
+			Reflect.deleteProperty(request, 'HotspotId');
+		}
+		if (state.queryParams.recommendType === '2') {
+			//关键词
+			request = {
+				...state.queryParams,
+				HotspotId: props.formData.hotspotId,
+			};
+			Reflect.deleteProperty(request, 'Content');
+		}
+		const { result } = await knowledgeRetrieval(request);
+		state.knowledgeList = result?.items ?? [];
+		state.knowledgeTotal = result?.total ?? 0;
 		state.loading = false;
 	} catch (error) {
 		state.loading = false;
 	}
-};
+}, 300);
 const router = useRouter(); // 路由
 const route = useRoute(); // 路由
 // 预览知识
@@ -153,6 +173,18 @@ const querySearch = async (name: string) => {
 		state.loading = false;
 	}
 };
+// 切换推荐类型查询
+const changeRecommendType = () => {
+	knowledgeRetrievalPaged();
+};
+watch(
+	() => props.formData,
+	(val: any) => {
+		knowledgeRetrievalPaged();
+	},
+	{ immediate: true, deep: true }
+);
+
 onMounted(() => {
 	knowledgeRetrievalPaged();
 });

+ 1 - 1
src/views/todo/seats/accept/ybAccept.vue

@@ -472,7 +472,7 @@
 								<repeat-event ref="repeatEventRef" @orderAddRepeat="orderAddRepeat" :repeatIds="state.ruleForm.repeatableEventDetails" />
 							</el-tab-pane>
 							<el-tab-pane label="知识库" name="knowledge">
-								<Knowledge ref="knowledgeRef" />
+								<Knowledge ref="knowledgeRef" :formData="state.ruleForm"/>
 							</el-tab-pane>
 						</el-tabs>
 					</el-card>

+ 1 - 1
src/views/todo/seats/accept/zgAccept.vue

@@ -436,7 +436,7 @@
 					<el-card shadow="never">
 						<el-tabs v-model="rightBottomActive" @tab-change="handleRightBottom" stretch>
 							<el-tab-pane label="知识库" name="knowledge">
-								<Knowledge ref="knowledgeRef" />
+								<Knowledge ref="knowledgeRef" :formData="state.ruleForm"/>
 							</el-tab-pane>
 							<el-tab-pane label="预案库" name="aa"> </el-tab-pane>
 						</el-tabs>