Переглянути джерело

reactor:知识库知识管理调整;综合查询生成时间默认查询一个月;

zhangchong 10 місяців тому
батько
коміт
a33b7f0466

+ 0 - 106
src/components/Pagination/index.vue

@@ -1,106 +0,0 @@
-<template>
-  <div :class="{ hidden: hidden }" class="pagination-container">
-    <el-pagination :background="background" v-model:current-page="currentPage" v-model:page-size="pageSize"
-      :layout="layout" :page-sizes="pageSizes" :pager-count="pagerCount" :total="total" :small="small"
-      @size-change="handleSizeChange" @current-change="handleCurrentChange" />
-  </div>
-</template>
-
-<script lang="ts" name="pagination" setup>
-import {computed, onMounted, ref, watch} from 'vue';
-import mittBus from '@/utils/mitt';
-// 定义父组件传过来的值
-const props = defineProps({
-  total: {
-    required: true,
-    type: Number,
-  },
-  page: {
-    type: Number,
-    default: 1,
-  },
-  limit: {
-    type: Number,
-    default: 20,
-  },
-  pageSizes: {
-    type: Array,
-    default() {
-      return [10, 20, 30, 50, 100]
-    },
-  },
-  // 移动端页码按钮的数量端默认值5
-  pagerCount: {
-    type: Number,
-    default: document.body.clientWidth < 992 ? 5 : 7,
-  },
-  layout: {
-    type: String,
-    default: 'total, sizes, prev, pager, next, jumper',
-  },
-  background: {
-    type: Boolean,
-    default: false,
-  },
-  autoScroll: {
-    type: Boolean,
-    default: true,
-  },
-  hidden: {
-    type: Boolean,
-    default: false,
-  },
-})
-
-// 定义子组件向父组件传值/事件
-const emit = defineEmits(['update:page', 'update:limit', 'pagination']);
-
-// 定义变量内容
-const small = ref(false);
-const currentPage = computed({
-  get() {
-    return props.page
-  },
-  set(val) {
-    emit('update:page', val)
-  },
-})
-const pageSize = computed({
-  get() {
-    return props.limit
-  },
-  set(val) {
-    emit('update:limit', val)
-  },
-})
-const handleSizeChange = (val: any) => {
-  /**
-   * 场景:API返回总数为25条,按照10条每页,一共有3页。选了2的页数之后,然后把size选择成30条,
-   * 这个时候,分页就会同时触发size选择函数以及current选择函数。{page: 2, size: 30},{page: 1, size: 30}请求两次,会导致列表会有暂无数据的情况
-   * 解决办法:用setTimeout(函数,0),用延迟,虽然还是两次请求,但是每次都是{page: 1, size: 30}
-   */
-  setTimeout(() => {
-    emit('pagination', { page: currentPage.value, limit: val })
-  }, 0)
-  mittBus.emit('scrollTopEmit', { top: 0 });// 分页发送监听事件 滚动到页面顶部
-}
-const handleCurrentChange = (val: any) => {
-  emit('pagination', { page: val, limit: pageSize.value })
-  mittBus.emit('scrollTopEmit', { top: 0 });// 分页发送监听事件 滚动到页面顶部
-}
-onMounted(() => {
-  // 监听布局大小 改变分页的大小
-  // let themeConfig = Local.get('themeConfig');
-  // small.value = themeConfig.globalComponentSize == 'small';
-})
-</script>
-<style scoped>
-.pagination-container {
-  padding-top: 20px;
-  display: flex;
-  justify-content: flex-end;
-}
-.pagination-container.hidden {
-  display: none;
-}
-</style>

+ 1 - 1
src/layout/navBars/breadcrumb/telControl.vue

@@ -1276,7 +1276,7 @@ const reConnect = async () => {
 	reconnectTimeout.value = setTimeout(() => {
 		websocket_connect();
 		lockReconnect = false;
-	}, 2 * 1000);
+	}, 4 * 1000);
 };
 // 链接成功 停止重连
 const stopReconnect = () => {

+ 5 - 0
src/utils/constants.ts

@@ -154,3 +154,8 @@ export const defaultDateThree = [
   dayjs().startOf('day').subtract(3, 'month').format('YYYY-MM-DD[T]HH:mm:ss'),
   dayjs().endOf('day').format('YYYY-MM-DD[T]HH:mm:ss'),
 ];
+// 默认选择日期(近一个月)
+export const defaultDateOne = [
+  dayjs().startOf('day').subtract(1, 'month').format('YYYY-MM-DD[T]HH:mm:ss'),
+  dayjs().endOf('day').format('YYYY-MM-DD[T]HH:mm:ss'),
+];

+ 34 - 53
src/views/business/order/index.vue

@@ -13,7 +13,7 @@
 				</el-checkbox-group>
 			</div>
 			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
-				<el-row :gutter="10">
+				<el-row :gutter="0">
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
 						<el-form-item label="工单标题" prop="Keyword">
 							<el-input v-model="state.queryParams.Keyword" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
@@ -25,8 +25,18 @@
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="省本地编号" prop="ProvinceNo">
-							<el-input v-model="state.queryParams.ProvinceNo" placeholder="省本地编号" clearable @keyup.enter="handleQuery" />
+						<el-form-item label="生成时间" prop="crTime">
+							<el-date-picker
+								v-model="state.queryParams.crTime"
+								type="datetimerange"
+								unlink-panels
+								range-separator="至"
+								start-placeholder="开始时间"
+								end-placeholder="结束时间"
+								:shortcuts="shortcuts"
+								@change="handleQuery"
+								value-format="YYYY-MM-DD[T]HH:mm:ss"
+							/>
 						</el-form-item>
 					</el-col>
 					<transition name="el-zoom-in-top">
@@ -162,18 +172,8 @@
 					</transition>
 					<transition name="el-zoom-in-top">
 						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-							<el-form-item label="受理时间" prop="crTime">
-								<el-date-picker
-									v-model="state.queryParams.crTime"
-									type="datetimerange"
-									unlink-panels
-									range-separator="至"
-									start-placeholder="开始时间"
-									end-placeholder="结束时间"
-									:shortcuts="shortcuts"
-									@change="timeStartChangeCr"
-									value-format="YYYY-MM-DD[T]HH:mm:ss"
-								/>
+							<el-form-item label="省本地编号" prop="ProvinceNo">
+								<el-input v-model="state.queryParams.ProvinceNo" placeholder="省本地编号" clearable @keyup.enter="handleQuery" />
 							</el-form-item>
 						</el-col>
 					</transition>
@@ -211,7 +211,7 @@
 					</transition>
 					<transition name="el-zoom-in-top">
 						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-							<el-form-item label="期时间" prop="exTime">
+							<el-form-item label="期时间" prop="exTime">
 								<el-date-picker
 									v-model="state.queryParams.exTime"
 									type="datetimerange"
@@ -220,7 +220,7 @@
 									start-placeholder="开始时间"
 									end-placeholder="结束时间"
 									:shortcuts="shortcuts"
-									@change="timeStartChangeEx"
+									@change="handleQuery"
 									value-format="YYYY-MM-DD[T]HH:mm:ss"
 								/>
 							</el-form-item>
@@ -263,7 +263,7 @@
 									start-placeholder="开始时间"
 									end-placeholder="结束时间"
 									:shortcuts="shortcuts"
-									@change="timeStartChangeDone"
+									@change="handleQuery"
 									value-format="YYYY-MM-DD[T]HH:mm:ss"
 								/>
 							</el-form-item>
@@ -382,7 +382,7 @@
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import type { FormInstance } from 'element-plus';
 import { ElMessage, ElMessageBox, ElNotification } from 'element-plus';
-import { shortcuts } from '@/utils/constants';
+import { defaultDateOne, shortcuts } from "@/utils/constants";
 import other from '@/utils/other';
 import { useRoute, useRouter } from 'vue-router';
 import { formatDate } from '@/utils/formatTime';
@@ -392,6 +392,7 @@ import { addEnd } from '@/api/query/end';
 import { treeArea } from '@/api/auxiliary/area';
 import { orderSign } from '@/api/todo/order';
 import { downloadFileByStream, downloadZip } from '@/utils/tools';
+import Other from "@/utils/other";
 
 // 引入组件
 const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
@@ -423,7 +424,7 @@ const state = reactive<any>({
 		HotspotIds: [], // 热点
 		OrgCodes: [], // 机构
 		NameOrNo: null, // 受理坐席
-		crTime: [], // 创建时间
+		crTime: defaultDateOne, // 生成时间
 		CreationTimeStart: null, // 创建时间 开始
 		CreationTimeEnd: null, // 创建时间 结束
 		TransferPhone: null, // 转派人
@@ -555,28 +556,6 @@ const changeArea = () => {
 	const area = areaRef.value?.getCheckedNodes() ?? [];
 	state.queryParams.AreaCodes = area.map((item: any) => item.value);
 };
-const handleTimeChange = (val: string[], startKey: string, endKey: string) => {
-	if (val) {
-		state.queryParams[startKey] = val[0];
-		state.queryParams[endKey] = val[1];
-	} else {
-		state.queryParams[startKey] = '';
-		state.queryParams[endKey] = '';
-	}
-	handleQuery();
-};
-// 受理时间
-const timeStartChangeCr = (val: string[]) => {
-	handleTimeChange(val, 'CreationTimeStart', 'CreationTimeEnd');
-};
-// 过期时间
-const timeStartChangeEx = (val: string[]) => {
-	handleTimeChange(val, 'ExpiredTimeStart', 'ExpiredTimeEnd');
-};
-// 办结时间
-const timeStartChangeDone = (val: string[]) => {
-	handleTimeChange(val, 'ActualHandleTimeStart', 'ActualHandleTimeEnd');
-};
 // 获取查询条件基础信息
 const getBaseData = async () => {
 	try {
@@ -607,11 +586,19 @@ const handleQuery = () => {
 };
 /** 获取列表 */
 const queryList = () => {
-	let request = other.deepClone(state.queryParams);
-	Reflect.deleteProperty(request, 'crTime'); // 删除无用的参数
-	Reflect.deleteProperty(request, 'exTime'); // 删除无用的参数
-	Reflect.deleteProperty(request, 'doneTime'); // 删除无用的参数
-	Reflect.deleteProperty(request, 'AreaCode'); // 删除无用的参数
+
+  let request = Other.deepClone(state.queryParams);
+  request.CreationTimeStart = state.queryParams.crTime === null ? null : state.queryParams.crTime[0]; // 生成时间
+  request.CreationTimeEnd = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
+  request.ExpiredTimeStart = state.queryParams.exTime === null ? null : state.queryParams.exTime[0]; // 期满时间
+  request.ExpiredTimeEnd = state.queryParams.exTime === null ? null : state.queryParams.exTime[1];
+  request.ActualHandleTimeStart = state.queryParams.doneTime === null ? null : state.queryParams.doneTime[0]; // 期满时间
+  request.ActualHandleTimeEnd = state.queryParams.doneTime === null ? null : state.queryParams.doneTime[1];
+  Reflect.deleteProperty(request, 'crTime'); // 删除无用的参数
+  Reflect.deleteProperty(request, 'exTime'); // 删除无用的参数
+  Reflect.deleteProperty(request, 'doneTime'); // 删除无用的参数
+  Reflect.deleteProperty(request, 'AreaCode'); // 删除无用的参数
+
 	state.loading = true;
 	orderList(request)
 		.then((response: any) => {
@@ -629,12 +616,6 @@ const hotSpotRef = ref<RefType>();
 const resetQuery = (formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	formEl.resetFields();
-	state.queryParams.CreationTimeStart = null;
-	state.queryParams.CreationTimeEnd = null;
-	state.queryParams.ExpiredTimeStart = null;
-	state.queryParams.ExpiredTimeEnd = null;
-	state.queryParams.ActualHandleTimeStart = null;
-	state.queryParams.ActualHandleTimeEnd = null;
 	state.queryParams.IsSensitiveWord = null;
 	state.queryParams.IsProvinceOrder = null;
 	fastSearch.value = 'all';

+ 2 - 2
src/views/knowledge/index/edit.vue

@@ -423,7 +423,7 @@ const cascadeRef = ref<RefType>();
 const getKnowledgeList = () => {
 	let currentNode = cascadeRef.value.getCheckedNodes();
 	state.ruleForm.knowledgeType = currentNode.map((item: any) => {
-		return { value: item.label, key: item.value, splice: item.data.spliceName };
+		return { KnowledgeTypeName: item.label, KnowledgeTypeId: item.value, KnowledgeTypeSpliceName : item.data.spliceName };
 	});
 };
 // 添加关键词
@@ -604,7 +604,7 @@ const getDetail = async () => {
 		if (state.ruleForm.keywordsDto && state.ruleForm.keywordsDto.length) {
 			state.ruleForm.keywordsName = state.ruleForm.keywordsDto.map((item: any) => item.tag).join(',');
 		}
-		state.ruleForm.knowledgeTypeId = state.ruleForm.knowledgeType.map((item: any) => item.key);
+		state.ruleForm.knowledgeTypeId = state.ruleForm.knowledgeType.map((item: any) => item.knowledgeTypeId);
 	}
 };
 onMounted(() => {

+ 2 - 2
src/views/knowledge/index/index.vue

@@ -186,7 +186,7 @@
 							:key="Math.random()"
 						>
 							<template #tableHeader="scope">
-								<el-button type="primary" @click="onOpenAddUser" v-auth="'knowledge:index:add'">
+								<el-button type="primary" @click="onOpenAddUser" v-auth="'knowledge:index:add'" :loading="state.loading">
 									<SvgIcon name="ele-Plus" class="mr5" />创建知识
 								</el-button>
 							</template>
@@ -417,7 +417,7 @@ const getKnowledgeType = async () => {
 };
 const staticColumns = [
 	{ prop: 'title', label: '标题', width: 300 },
-	{ prop: 'knowledgeType', label: '知识分类', width: 200 },
+	{ prop: 'knowledgeTypeText', label: '知识分类', width: 200 },
 	{ prop: 'statusName', label: '知识状态' },
 	{ prop: 'attribution', label: '知识归属', width: 120 },
 	{ prop: 'sourceOrganize.name', label: '来源部门', width: 120 },

+ 0 - 1
src/views/todo/seats/index.vue

@@ -232,7 +232,6 @@ const queryList = async () => {
 			columns.value = columnsTodo;
 		}
 		let request = Other.deepClone(state.queryParams);
-
 		request.StartTime = state.queryParams.scTime === null ? null : state.queryParams.scTime[0];
 		request.EndTime = state.queryParams.scTime === null ? null : state.queryParams.scTime[1];
 		Reflect.deleteProperty(request, 'scTime');