|
@@ -149,6 +149,9 @@
|
|
|
<el-checkbox value="IsSensitiveWord" border>敏感类工单</el-checkbox>
|
|
|
</el-checkbox-group>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button @click="contentRetrieval"><SvgIcon name="ele-DocumentCopy" class="mr5" />内容检索</el-button>
|
|
|
+ </el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-form-item label="工单标题" prop="Keyword">
|
|
@@ -209,11 +212,12 @@
|
|
|
>
|
|
|
退回</el-button
|
|
|
>
|
|
|
- <order-detail :order="row" @updateList="queryList(true)"/>
|
|
|
+ <order-detail :order="row" @updateList="queryList(true)" />
|
|
|
</template>
|
|
|
</ProTable>
|
|
|
- <div class="flex-end mt20">
|
|
|
-<!-- <el-button class="default-button" @click="onChangeTotal">展示总数</el-button>-->
|
|
|
+ <div class="flex-end mt20" style="align-items: center">
|
|
|
+ <!-- <el-button class="default-button" @click="onChangeTotal">展示总数</el-button>-->
|
|
|
+ <span v-loading="totalLoading" class="mr10">共 {{ totalCount }} 条</span>
|
|
|
<el-pagination
|
|
|
layout="prev, pager, next"
|
|
|
:total="state.total"
|
|
@@ -313,6 +317,12 @@
|
|
|
<el-option v-for="item in state.pushTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="归档类型" prop="FiledType">
|
|
|
+ <el-select v-model="state.queryParams.FiledType" placeholder="请选择归档类型" @change="handleQuery" clearable>
|
|
|
+ <el-option label="中心归档" value="10" />
|
|
|
+ <el-option label="部门归档" value="20" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="期满时间" prop="exTime">
|
|
|
<el-date-picker
|
|
|
v-model="state.queryParams.exTime"
|
|
@@ -372,16 +382,40 @@
|
|
|
<el-button @click="resetQuery(drawerRuleFormRef)" class="default-button"> <SvgIcon name="ele-Refresh" class="mr5" />重置 </el-button>
|
|
|
</template>
|
|
|
</el-drawer>
|
|
|
+ <el-dialog
|
|
|
+ v-model="state.dialogVisible"
|
|
|
+ draggable
|
|
|
+ destroy-on-close
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ modal-class="modal_class"
|
|
|
+ class="dialog_class"
|
|
|
+ append-to-body
|
|
|
+ :modal="false"
|
|
|
+ title="内容检索"
|
|
|
+ width="500px"
|
|
|
+ >
|
|
|
+ <el-form :model="state.ruleForm" ref="ruleFormContentRef" label-width="90px" class="show-info-form" @submit.native.prevent>
|
|
|
+ <el-form-item label="信件内容">
|
|
|
+ <el-input v-model="state.ruleForm.content" placeholder="请填写信件内容" :autosize="{ minRows: 4, maxRows: 10 }" type="textarea"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="检索提示">检索条件为词组检索,如“热线中心”</el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <template #footer>
|
|
|
+ <span class="dialog-footer">
|
|
|
+ <el-button @click="state.dialogVisible = false" class="default-button">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="onSearch(ruleFormContentRef)">查 询</el-button>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script setup lang="tsx" name="order">
|
|
|
import { defineAsyncComponent, onMounted, reactive, ref, onActivated, onBeforeUnmount } from 'vue';
|
|
|
import type { FormInstance } from 'element-plus';
|
|
|
-import { ElMessage, ElMessageBox, ElNotification } from 'element-plus';
|
|
|
+import { ElMessage, ElMessageBox } from 'element-plus';
|
|
|
import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
|
|
|
-import { useRoute, useRouter } from 'vue-router';
|
|
|
import { formatDate } from '@/utils/formatTime';
|
|
|
-import { exportJbOrder, exportOrder, listBaseData, orderList, orderListFixed, provinceReturn } from '@/api/business/order';
|
|
|
+import { exportJbOrder, exportOrder, listBaseData, orderList, orderListCount, orderListFixed } from '@/api/business/order';
|
|
|
import { addObserve } from '@/api/query/observe';
|
|
|
import { addEnd } from '@/api/query/end';
|
|
|
import { treeArea } from '@/api/auxiliary/area';
|
|
@@ -398,7 +432,7 @@ const OrderReturn = defineAsyncComponent(() => import('@/views/business/return/c
|
|
|
const state = reactive<any>({
|
|
|
queryParams: {
|
|
|
PageIndex: 1, // 当前页
|
|
|
- PageSize: 20, // 每页条数
|
|
|
+ PageSize: 50, // 每页条数
|
|
|
// 查询条件
|
|
|
No: null, // 工单编码
|
|
|
ProvinceNo: null, // 省工单编码
|
|
@@ -415,8 +449,8 @@ const state = reactive<any>({
|
|
|
Channels: null, // 渠道
|
|
|
Hotspot: null, // 热点分类名称
|
|
|
OrgId: null, // 接办部门
|
|
|
- ActualHandleOrgName:null, // 接办部门
|
|
|
- OrgLevelOneName:null, // 一级部门
|
|
|
+ ActualHandleOrgName: null, // 接办部门
|
|
|
+ OrgLevelOneName: null, // 一级部门
|
|
|
NameOrNo: null, // 受理坐席
|
|
|
crTime: [], // 生成时间
|
|
|
CreationTimeStart: null, // 创建时间 开始
|
|
@@ -435,6 +469,7 @@ const state = reactive<any>({
|
|
|
IsSensitiveWord: null, // 是否敏感词工单
|
|
|
SensitiveWord: null, // 敏感词
|
|
|
IsUrgent: null, // 是否加急
|
|
|
+ ContentRetrieval: null, // 内容检索
|
|
|
},
|
|
|
tableData: [], //表单
|
|
|
loading: false, // 加载
|
|
@@ -448,6 +483,10 @@ const state = reactive<any>({
|
|
|
pushTypeOptions: [], //推送分类
|
|
|
orgData: [], // 机构数据
|
|
|
areaOptions: [], // 省市区数据
|
|
|
+ dialogVisible: false,
|
|
|
+ ruleForm: {
|
|
|
+ content: null,
|
|
|
+ },
|
|
|
});
|
|
|
const fastSearch = ref('all'); // tab位置
|
|
|
const fastSearchChange = (val: string) => {
|
|
@@ -587,6 +626,8 @@ const handleCurrentChange = (val: number) => {
|
|
|
}
|
|
|
};
|
|
|
const requestParams = ref<EmptyObjectType>({});
|
|
|
+const totalCount = ref(0);
|
|
|
+const totalLoading = ref(false);
|
|
|
const queryList = (isQuery: boolean = false) => {
|
|
|
if (showTotal.value) {
|
|
|
requestParams.value = Other.deepClone(state.queryParams);
|
|
@@ -599,6 +640,7 @@ const queryList = (isQuery: boolean = false) => {
|
|
|
requestParams.value.ActualHandleTimeStart = state.queryParams.doneTime === null ? null : state.queryParams.doneTime[0]; // 办结时间
|
|
|
requestParams.value.ActualHandleTimeEnd = state.queryParams.doneTime === null ? null : state.queryParams.doneTime[1];
|
|
|
Reflect.deleteProperty(requestParams.value, 'doneTime'); // 删除无用的参数
|
|
|
+ requestParams.value.ContentRetrieval = state.ruleForm.content;
|
|
|
state.loading = true;
|
|
|
orderList(requestParams.value)
|
|
|
.then((response: any) => {
|
|
@@ -621,7 +663,9 @@ const queryList = (isQuery: boolean = false) => {
|
|
|
requestParams.value.ActualHandleTimeEnd = state.queryParams.doneTime === null ? null : state.queryParams.doneTime[1];
|
|
|
Reflect.deleteProperty(requestParams.value, 'doneTime'); // 删除无用的参数
|
|
|
requestParams.value.QueryIndex = queryIndex.value; // 数据批次
|
|
|
+ requestParams.value.ContentRetrieval = state.ruleForm.content;
|
|
|
state.loading = true;
|
|
|
+ totalLoading.value = true;
|
|
|
orderListFixed(requestParams.value)
|
|
|
.then((response: any) => {
|
|
|
if (isQuery) {
|
|
@@ -638,6 +682,16 @@ const queryList = (isQuery: boolean = false) => {
|
|
|
}
|
|
|
state.loading = false;
|
|
|
})
|
|
|
+ .then(() => { // 查询总数
|
|
|
+ orderListCount(requestParams.value)
|
|
|
+ .then((count) => {
|
|
|
+ totalCount.value = count.result;
|
|
|
+ totalLoading.value = false;
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ totalLoading.value = false;
|
|
|
+ });
|
|
|
+ })
|
|
|
.catch(() => {
|
|
|
state.loading = false;
|
|
|
});
|
|
@@ -656,6 +710,7 @@ const resetQuery = (formEl: FormInstance | undefined) => {
|
|
|
checkList.value = [];
|
|
|
queryIndex.value = 0;
|
|
|
ruleFormRef.value?.resetFields();
|
|
|
+ state.ruleForm.content = null;
|
|
|
queryList(true);
|
|
|
};
|
|
|
// 设置终结件
|
|
@@ -678,7 +733,8 @@ const onObserve = () => {
|
|
|
queryList();
|
|
|
});
|
|
|
})
|
|
|
- .catch(() => {});
|
|
|
+ .catch(() => {
|
|
|
+ });
|
|
|
};
|
|
|
// 设置终结件
|
|
|
const onEnd = () => {
|
|
@@ -700,7 +756,8 @@ const onEnd = () => {
|
|
|
queryList();
|
|
|
});
|
|
|
})
|
|
|
- .catch(() => {});
|
|
|
+ .catch(() => {
|
|
|
+ });
|
|
|
};
|
|
|
// 创建重复性事件
|
|
|
const repeatEventEditRef = ref<RefType>();
|
|
@@ -735,7 +792,22 @@ const onJbExport = () => {
|
|
|
state.loading = false;
|
|
|
});
|
|
|
})
|
|
|
- .catch(() => {});
|
|
|
+ .catch(() => {
|
|
|
+ });
|
|
|
+};
|
|
|
+// 打开内容检索
|
|
|
+const contentRetrieval = () => {
|
|
|
+ state.dialogVisible = !state.dialogVisible;
|
|
|
+};
|
|
|
+const ruleFormContentRef = ref<RefType>();
|
|
|
+// 内容检索
|
|
|
+const onSearch = (formEl: FormInstance | undefined) => {
|
|
|
+ if (!formEl) return;
|
|
|
+ formEl.validate((valid: boolean) => {
|
|
|
+ if (!valid) return;
|
|
|
+ queryList(true);
|
|
|
+ state.dialogVisible = false;
|
|
|
+ });
|
|
|
};
|
|
|
onMounted(() => {
|
|
|
getBaseData();
|
|
@@ -744,7 +816,7 @@ onMounted(() => {
|
|
|
onActivated(() => {
|
|
|
mittBus.on('clearCachePage', () => {
|
|
|
//清除缓存
|
|
|
- queryList();
|
|
|
+ queryList(true);
|
|
|
});
|
|
|
});
|
|
|
onBeforeUnmount(() => {
|