Browse Source

reactor:发布和发布待办新增查询条件;

zhangchong 6 months ago
parent
commit
f224020ddd
2 changed files with 139 additions and 11 deletions
  1. 74 11
      src/views/business/publish/index.vue
  2. 65 0
      src/views/business/publish/todo.vue

+ 74 - 11
src/views/business/publish/index.vue

@@ -19,17 +19,9 @@
             <el-form-item label="工单编码" prop="No">
               <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" class="keyword-input" />
             </el-form-item>
-            <!--				<el-form-item label="处理结果" prop="Resolve">
-              <el-select v-model="state.queryParams.Resolve" placeholder="请选择处理结果" @change="handleQuery">
-                <el-option label="已得到解决" value="true" />
-                <el-option label="未得到解决" value="false" />
-              </el-select>
-            </el-form-item>-->
             <el-form-item>
               <el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
-              <el-button @click="resetQuery(ruleFormRef)" class="default-button" :loading="state.loading">
-                <SvgIcon name="ele-Refresh" class="mr5" />重置
-              </el-button>
+							<el-button @click="drawer = true" class="default-button"> <SvgIcon name="ele-Search" class="mr5" />更多查询</el-button>
             </el-form-item>
           </el-form>
         </template>
@@ -47,6 +39,68 @@
 				</template>
 			</ProTable>
 		</div>
+		<!--	更多查询	-->
+		<el-drawer v-model="drawer" title="更多查询" size="500px">
+			<el-form :model="state.queryParams" ref="drawerRuleFormRef" @submit.native.prevent label-width="100px">
+				<el-form-item label="受理时间" prop="slTime">
+					<el-date-picker
+						v-model="state.queryParams.slTime"
+						type="datetimerange"
+						unlink-panels
+						range-separator="至"
+						start-placeholder="开始时间"
+						end-placeholder="结束时间"
+						:shortcuts="shortcuts"
+						@change="handleQuery"
+						value-format="YYYY-MM-DD[T]HH:mm:ss"
+						:default-time="defaultTimeStartEnd"
+					/>
+				</el-form-item>
+				<el-form-item label="来电号码" prop="FromPhone">
+					<el-input v-model="state.queryParams.FromPhone" placeholder="来电号码" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
+				<el-form-item label="接办部门" prop="ActualHandleOrgName">
+					<el-input v-model="state.queryParams.ActualHandleOrgName" placeholder="请填写接办部门名称" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
+				<el-form-item label="受理类型" prop="AcceptType">
+					<el-select v-model="state.queryParams.AcceptType" placeholder="请选择受理类型" clearable @change="handleQuery">
+						<el-option v-for="item in state.acceptTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+					</el-select>
+				</el-form-item>
+				<el-form-item label="热点分类" prop="Hotspot">
+					<el-input v-model="state.queryParams.Hotspot" placeholder="热点分类名称" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
+				<el-form-item label="发布人" prop="NameOrNo">
+					<el-input v-model="state.queryParams.NameOrNo" placeholder="发布人" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
+				<el-form-item label="受理人" prop="NameOrNo">
+					<el-input v-model="state.queryParams.NameOrNo" placeholder="受理人/坐席工号" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
+				<el-form-item label="发布时间" prop="fbTime">
+					<el-date-picker
+						v-model="state.queryParams.fbTime"
+						type="datetimerange"
+						unlink-panels
+						range-separator="至"
+						start-placeholder="开始时间"
+						end-placeholder="结束时间"
+						:shortcuts="shortcuts"
+						@change="handleQuery"
+						value-format="YYYY-MM-DD[T]HH:mm:ss"
+						:default-time="defaultTimeStartEnd"
+					/>
+				</el-form-item>
+				<el-form-item label="发布状态" prop="AcceptType">
+					<el-select v-model="state.queryParams.AcceptType" placeholder="请选择发布状态" clearable @change="handleQuery">
+						<el-option v-for="item in state.acceptTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+					</el-select>
+				</el-form-item>
+			</el-form>
+			<template #footer>
+				<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
+				<el-button @click="resetQuery(drawerRuleFormRef)" class="default-button"> <SvgIcon name="ele-Refresh" class="mr5" />重置 </el-button>
+			</template>
+		</el-drawer>
 		<!-- 工单发布详情 -->
 		<order-publish ref="orderPublishRef" @updateList="queryList" />
 		<!-- 工单发布修改 -->
@@ -58,12 +112,14 @@ import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import { formatDate } from '@/utils/formatTime';
 import { publishedList } from '@/api/business/publish';
+import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
+import { useThemeConfig } from '@/stores/themeConfig';
+import { storeToRefs } from 'pinia';
 // 引入组件
 const OrderPublish = defineAsyncComponent(() => import('@/views/business/publish/components/Order-publish.vue')); // 工单发布和查看详情
 const OrderPublishEdit = defineAsyncComponent(() => import('@/views/business/publish/components/Order-publish-edit.vue')); // 工单发布修改
 const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
 // 定义变量内容
-const ruleFormRef = ref<RefType>(); // 表单ref
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
@@ -113,7 +169,7 @@ const columns = ref<any[]>([
 	{ prop: 'publishState', label: '是否公开' },
 	{ prop: 'operation', label: '操作', fixed: 'right', minWidth: 90, align: 'center' },
 ]);
-const state = reactive({
+const state = reactive<any>({
 	queryParams: {
 		// 查询条件
 		PageIndex: 1,
@@ -126,6 +182,8 @@ const state = reactive({
 	loading: false, // 加载
 	total: 0, // 总数
 });
+const storesThemeConfig = useThemeConfig();
+const { themeConfig } = storeToRefs(storesThemeConfig);
 // 手动查询,将页码设置为1
 const handleQuery = () => {
 	state.queryParams.PageIndex = 1;
@@ -145,9 +203,13 @@ const queryList = () => {
 		});
 };
 /** 重置按钮操作 */
+const drawerRuleFormRef = ref();
+const ruleFormRef = ref<RefType>(); // 表单ref
+const drawer = ref(false);
 const resetQuery = (formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	formEl.resetFields();
+	ruleFormRef.value?.resetFields();
 	queryList();
 };
 // 修改发布
@@ -155,6 +217,7 @@ const orderPublishEditRef = ref<RefType>(); // 工单发布修改ref
 const editPublish = (row: any) => {
 	orderPublishEditRef.value.openDialog(row);
 };
+const channelOptions = ref<EmptyArrayType>([]); // 来源渠道
 onMounted(() => {
 	queryList();
 });

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

@@ -91,11 +91,71 @@
 						<el-option label="否" value="false" />
 					</el-select>
 				</el-form-item>
+				<el-form-item label="受理时间" prop="slTime">
+					<el-date-picker
+						v-model="state.queryParams.slTime"
+						type="datetimerange"
+						unlink-panels
+						range-separator="至"
+						start-placeholder="开始时间"
+						end-placeholder="结束时间"
+						:shortcuts="shortcuts"
+						@change="handleQuery"
+						value-format="YYYY-MM-DD[T]HH:mm:ss"
+						:default-time="defaultTimeStartEnd"
+					/>
+				</el-form-item>
+				<el-form-item label="来电号码" prop="FromPhone">
+					<el-input v-model="state.queryParams.FromPhone" placeholder="来电号码" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
+				<el-form-item label="接办部门" prop="ActualHandleOrgName">
+					<el-input v-model="state.queryParams.ActualHandleOrgName" placeholder="请填写接办部门名称" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
+				<el-form-item label="受理类型" prop="AcceptType">
+					<el-select v-model="state.queryParams.AcceptType" placeholder="请选择受理类型" clearable @change="handleQuery">
+						<el-option v-for="item in state.acceptTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+					</el-select>
+				</el-form-item>
+				<el-form-item label="热点分类" prop="Hotspot">
+					<el-input v-model="state.queryParams.Hotspot" placeholder="热点分类名称" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
+				<el-form-item label="受理人" prop="NameOrNo">
+					<el-input v-model="state.queryParams.NameOrNo" placeholder="受理人/坐席工号" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
+				<el-form-item label="派单人" prop="NameOrNo">
+					<el-input v-model="state.queryParams.NameOrNo" placeholder="派单人" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
 				<el-form-item label="来源渠道" prop="Channel">
 					<el-select v-model="state.queryParams.Channel" placeholder="请选择来源渠道" clearable @change="handleQuery">
 						<el-option v-for="items in channelOptions" :key="items.dicDataValue" :label="items.dicDataName" :value="items.dicDataValue" />
 					</el-select>
 				</el-form-item>
+				<el-form-item label="办结时间" prop="bjTime">
+					<el-date-picker
+						v-model="state.queryParams.bjTime"
+						type="datetimerange"
+						unlink-panels
+						range-separator="至"
+						start-placeholder="开始时间"
+						end-placeholder="结束时间"
+						:shortcuts="shortcuts"
+						@change="handleQuery"
+						value-format="YYYY-MM-DD[T]HH:mm:ss"
+						:default-time="defaultTimeStartEnd"
+					/>
+				</el-form-item>
+				<template v-if="['ZiGong'].includes(themeConfig.appScope)">
+					<el-form-item label="行业" prop="Channel">
+						<el-select v-model="state.queryParams.Channel" placeholder="请选择行业" clearable @change="handleQuery">
+							<el-option v-for="items in channelOptions" :key="items.dicDataValue" :label="items.dicDataName" :value="items.dicDataValue" />
+						</el-select>
+					</el-form-item>
+					<el-form-item label="工单标签" prop="Channel">
+						<el-select v-model="state.queryParams.Channel" placeholder="请选择工单标签" clearable @change="handleQuery">
+							<el-option v-for="items in channelOptions" :key="items.dicDataValue" :label="items.dicDataName" :value="items.dicDataValue" />
+						</el-select>
+					</el-form-item>
+				</template>
 			</el-form>
 			<template #footer>
 				<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
@@ -109,6 +169,9 @@ import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
 import { formatDate } from '@/utils/formatTime';
 import { batchPublishOrder, publishBaseInfo, publishList } from '@/api/todo/publish';
+import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
+import { useThemeConfig } from '@/stores/themeConfig';
+import { storeToRefs } from 'pinia';
 // 引入组件
 const OrderPublish = defineAsyncComponent(() => import('@/views/business/publish/components/Order-publish.vue')); // 发布
 const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
@@ -133,6 +196,8 @@ const state = reactive<any>({
 	total: 0, // 总数
 });
 const fastSearch = ref('all'); // tab位置
+const storesThemeConfig = useThemeConfig();
+const { themeConfig } = storeToRefs(storesThemeConfig);
 const fastSearchChange = (val: string) => {
 	fastSearch.value = val;
 	switch (val) {