瀏覽代碼

reactor:部分列表页面样式调整;

zhangchong 9 月之前
父節點
當前提交
a2ba00da0f
共有 42 個文件被更改,包括 2960 次插入2628 次删除
  1. 3 3
      .env.development
  2. 11 6
      src/components/ProTable/index.vue
  3. 3 0
      src/theme/media/form.scss
  4. 1 0
      src/theme/media/proTable.scss
  5. 1 0
      src/views/auxiliary/smartCallOut/template.vue
  6. 30 24
      src/views/dataShare/newTimeliness.vue
  7. 38 53
      src/views/dataShare/pushData.vue
  8. 41 56
      src/views/dataShare/pushedTask.vue
  9. 85 85
      src/views/province/delay.vue
  10. 272 272
      src/views/province/order.vue
  11. 85 85
      src/views/province/return.vue
  12. 90 88
      src/views/province/screen.vue
  13. 97 97
      src/views/province/zmhd/index.vue
  14. 150 67
      src/views/quality/done/index.vue
  15. 142 96
      src/views/quality/index/index.vue
  16. 1 0
      src/views/quality/project/index.vue
  17. 1 0
      src/views/quality/template/index.vue
  18. 27 27
      src/views/statistics/call/detailIndex.vue
  19. 4 4
      src/views/statistics/call/detailIndexCall.vue
  20. 18 18
      src/views/statistics/call/detailIndexTime.vue
  21. 38 69
      src/views/statistics/call/detailTalkTime.vue
  22. 40 45
      src/views/statistics/call/hotNumber.vue
  23. 1 2
      src/views/statistics/call/index.vue
  24. 46 55
      src/views/statistics/call/seatsRecord.vue
  25. 43 50
      src/views/statistics/call/seatsRest.vue
  26. 39 39
      src/views/statistics/call/talkTime.vue
  27. 79 86
      src/views/statistics/call/telephone.vue
  28. 35 41
      src/views/statistics/call/telephonist.vue
  29. 46 53
      src/views/statistics/call/transferOut.vue
  30. 206 206
      src/views/statistics/center/detailEventFrequently.vue
  31. 263 263
      src/views/statistics/center/detailTelFrequently.vue
  32. 59 59
      src/views/statistics/center/detailWrongItem.vue
  33. 70 70
      src/views/statistics/center/frequentlyEvent.vue
  34. 31 31
      src/views/statistics/center/frequentlyTel.vue
  35. 99 51
      src/views/statistics/center/transferCity.vue
  36. 32 32
      src/views/statistics/center/wrongItem.vue
  37. 30 30
      src/views/statistics/order/centerCount.vue
  38. 18 21
      src/views/statistics/order/detailVisitDiscontent.vue
  39. 30 31
      src/views/statistics/order/visitDiscontent.vue
  40. 137 136
      src/views/todo/center/index.vue
  41. 266 142
      src/views/todo/order/index.vue
  42. 252 135
      src/views/todo/seats/index.vue

+ 3 - 3
.env.development

@@ -3,11 +3,11 @@ 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
 # 数据共享平台请求地址
 VITE_DATASHARE_API_YRL=http://ds.12345lm.cn
 # socket API
-VITE_API_SOCKET_URL=http://110.188.24.28:50300/hubs/hotline
+VITE_API_SOCKET_URL=http://110.188.24.28:50100/hubs/hotline
 # 上传 API
 VITE_API_UPLOAD_URL=http://110.188.24.28:50120
 # 文件上传地址前缀
@@ -25,4 +25,4 @@ VITE_JTHS_API_URL=http://118.121.58.161:19021
 # 捷通华声AppKey
 VITE_JTHS_APPKEY=MTAwMDAx
 # 当前地州市
-VITE_CURRENT_CITY=zigong
+VITE_CURRENT_CITY=yibin

+ 11 - 6
src/components/ProTable/index.vue

@@ -2,10 +2,10 @@
 <template>
 	<!-- 表格主体 -->
 	<div class="pro-table-main">
-    <!-- 搜索区域  -->
-    <div class="table-header-content">
-        <slot name="table-search" />
-    </div>
+		<!-- 搜索区域  -->
+		<div class="table-header-content">
+			<slot name="table-search" />
+		</div>
 		<!-- 表格头部 操作按钮 -->
 		<div class="table-header">
 			<div class="header-button-lf">
@@ -49,7 +49,7 @@
 			</div>
 		</div>
 		<!-- 表格主体 -->
-<!--    	:row-style="{ height: '24px' }"
+		<!--    	:row-style="{ height: '24px' }"
 			:cell-style="{ padding: '4px 0' }"-->
 		<el-table
 			ref="tableRef"
@@ -62,6 +62,8 @@
 			v-horizontal-scroll="'always'"
 			v-loading="loading"
 			:key="processTableData.length"
+			:row-style="{ height: '24px' }"
+			:cell-style="{ padding: '6px 0' }"
 		>
 			<!-- 默认插槽 -->
 			<slot />
@@ -595,8 +597,11 @@ defineExpose({
 	selectedList,
 	selectedListIds,
 });
+// 计算表格高度
 const height = computed(() => {
-	return props.pagination ? 'calc(100% - 42px)' : '100%';
+	const paginationHeight = props.pagination ? 42 : 0;
+	const showSummaryHeight = tableRef.value?.showSummary ? 42 : 0;
+	return `calc(100% - ${paginationHeight + showSummaryHeight}px`;
 });
 </script>
 <style scoped lang="scss">

+ 3 - 0
src/theme/media/form.scss

@@ -15,4 +15,7 @@
 	.el-form-item {
 		display: unset !important;
 	}
+	.el-form--inline .el-form-item{
+		margin-right: 0 !important;
+	}
 }

+ 1 - 0
src/theme/media/proTable.scss

@@ -6,6 +6,7 @@
   .table-header-content{
     max-height: 160px;
     overflow: auto;
+    margin-bottom: 10px;
   }
   .pro-table-main{
     height: 100% !important;

+ 1 - 0
src/views/auxiliary/smartCallOut/template.vue

@@ -92,6 +92,7 @@ const columns = ref<any[]>([
 							inactive-text="禁用"
 							onClick={() => changeIsEnable(scope.row)}
 							inline-prompt
+              size="small"
 						/>
 					) : (
 						<span>{scope.row.isEnable ? '启用' : '禁用'}</span>

+ 30 - 24
src/views/dataShare/newTimeliness.vue

@@ -1,30 +1,32 @@
 <template>
 	<div class="dataShare-new-timeliness-container layout-padding">
     <div class="layout-padding-auto layout-padding-view pd20 h100">
-        <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-          <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"
-                :default-time="defaultTimeStartEnd"
-                :clearable="false"
-            />
-          </el-form-item>
-          <el-form-item label-width="0">
-            <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-form-item>
-        </el-form>
-        <el-row :gutter="20" style="flex:1;overflow:auto;">
+        <el-card shadow="never">
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+            <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"
+                  :default-time="defaultTimeStartEnd"
+                  :clearable="false"
+              />
+            </el-form-item>
+            <el-form-item label-width="0">
+              <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-form-item>
+          </el-form>
+        </el-card>
+        <el-row :gutter="20" style="flex:1;overflow:auto;" class="backToTop">
           <el-divider><el-text tag="b" class="font16">工单</el-text></el-divider>
           <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
             <el-card shadow="never" v-loading="state.loading" class="statistics-item">
@@ -272,6 +274,7 @@
             </el-card>
           </el-col>
         </el-row>
+      <el-backtop target=".backToTop" />
 		</div>
 	</div>
 </template>
@@ -423,5 +426,8 @@ onMounted(() => {
   :deep(.layout-padding-view){
     background-color: transparent;
   }
+  :deep(.el-divider__text){
+    background-color: var(--hotline-bg-main-color);
+  }
 }
 </style>

+ 38 - 53
src/views/dataShare/pushData.vue

@@ -1,46 +1,46 @@
 <template>
 	<div class="dataShare-pushData-container layout-padding">
 		<div class="layout-padding-auto layout-padding-view pd20">
-			<el-tabs v-model="platform" @tab-change="handleQuery" class="tabs h100">
+			<el-tabs v-model="platform" @tab-change="handleQuery">
 				<el-tab-pane name="province" label="省平台"></el-tab-pane>
 				<el-tab-pane name="other" label="其他平台"></el-tab-pane>
-				<ProTable
-					ref="proTableRef"
-					:columns="columns"
-					:data="state.tableData"
-					@updateTable="queryList"
-					:loading="state.loading"
-					:total="state.total"
-					v-model:page-index="state.queryParams.PageIndex"
-					v-model:page-size="state.queryParams.PageSize"
-				>
-					<template #table-search>
-						<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-							<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"
-									:default-time="defaultTimeStartEnd"
-									:clearable="false"
-								/>
-							</el-form-item>
-							<el-form-item label-width="0">
-								<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-form-item>
-						</el-form>
-					</template>
-				</ProTable>
 			</el-tabs>
+      <ProTable
+          ref="proTableRef"
+          :columns="columns"
+          :data="state.tableData"
+          @updateTable="queryList"
+          :loading="state.loading"
+          :total="state.total"
+          v-model:page-index="state.queryParams.PageIndex"
+          v-model:page-size="state.queryParams.PageSize"
+      >
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+            <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"
+                  :default-time="defaultTimeStartEnd"
+                  :clearable="false"
+              />
+            </el-form-item>
+            <el-form-item label-width="0">
+              <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-form-item>
+          </el-form>
+        </template>
+      </ProTable>
 		</div>
 	</div>
 </template>
@@ -179,19 +179,4 @@ const resetQuery = (formEl: FormInstance | undefined) => {
 onMounted(() => {
 	queryList();
 });
-</script>
-<style lang="scss" scoped>
-.dataShare-pushData-container {
-	.tabs {
-		display: flex;
-		flex-direction: column;
-		:deep(.el-tabs__content) {
-			display: flex;
-			height: 100%;
-		}
-		:deep(.pro-table-main) {
-			height: v-bind(height);
-		}
-	}
-}
-</style>
+</script>

+ 41 - 56
src/views/dataShare/pushedTask.vue

@@ -1,54 +1,54 @@
 <template>
 	<div class="dataShare-pushedTask-container layout-padding">
     <div class="layout-padding-auto layout-padding-view pd20">
-			<el-tabs v-model="state.queryParams.SelectType" @tab-change="handleQuery" class="tabs h100">
+			<el-tabs v-model="state.queryParams.SelectType" @tab-change="handleQuery">
 				<el-tab-pane name="1" label="服务工单受理"></el-tab-pane>
 				<el-tab-pane name="2" label="电话记录"></el-tab-pane>
 				<el-tab-pane name="3" label="服务工单处理过程"></el-tab-pane>
 				<el-tab-pane name="4" label="服务工单处理结果"></el-tab-pane>
 				<el-tab-pane name="5" label="省平台推送其他"></el-tab-pane>
 				<el-tab-pane name="6" label="其他平台"></el-tab-pane>
-        <ProTable
-            ref="proTableRef"
-            :columns="columns"
-            :data="state.tableData"
-            @updateTable="queryList"
-            :loading="state.loading"
-            :total="state.total"
-            v-model:page-index="state.queryParams.PageIndex"
-            v-model:page-size="state.queryParams.PageSize"
-        >
-          <template #table-search>
-            <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-              <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"
-                    :default-time="defaultTimeStartEnd"
-                    :clearable="false"
-                />
-              </el-form-item>
-              <el-form-item label-width="0">
-                <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-form-item>
-            </el-form>
-          </template>
-          <template #operation="{ row }">
-            <el-button link type="primary" @click="onDetail(row)" title="查看任务明细"> 任务明细 </el-button>
-            <el-button link type="primary" @click="onRePush(row)" title="重新推送"> 重推 </el-button>
-          </template>
-        </ProTable>
 			</el-tabs>
+      <ProTable
+          ref="proTableRef"
+          :columns="columns"
+          :data="state.tableData"
+          @updateTable="queryList"
+          :loading="state.loading"
+          :total="state.total"
+          v-model:page-index="state.queryParams.PageIndex"
+          v-model:page-size="state.queryParams.PageSize"
+      >
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+            <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"
+                  :default-time="defaultTimeStartEnd"
+                  :clearable="false"
+              />
+            </el-form-item>
+            <el-form-item label-width="0">
+              <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-form-item>
+          </el-form>
+        </template>
+        <template #operation="{ row }">
+          <el-button link type="primary" @click="onDetail(row)" title="查看任务明细"> 任务明细 </el-button>
+          <el-button link type="primary" @click="onRePush(row)" title="重新推送"> 重推 </el-button>
+        </template>
+      </ProTable>
 		</div>
 	</div>
 </template>
@@ -201,18 +201,3 @@ onMounted(() => {
 	queryList();
 });
 </script>
-<style lang="scss" scoped>
-.dataShare-pushedTask-container {
-  .tabs {
-    display: flex;
-    flex-direction: column;
-    :deep(.el-tabs__content) {
-      display: flex;
-      height: 100%;
-    }
-    :deep(.pro-table-main) {
-      height: v-bind(height);
-    }
-  }
-}
-</style>

+ 85 - 85
src/views/province/delay.vue

@@ -1,12 +1,23 @@
 <template>
-	<div class="province-order-delay-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
-				<el-row>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="审核状态" prop="State">
-              <el-segmented
-                  :options="[
+	<div class="province-order-delay-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
+			<ProTable
+				ref="proTableRef"
+				:columns="columns"
+				:data="state.tableData"
+				@updateTable="queryList"
+				:loading="state.loading"
+				:total="state.total"
+				v-model:page-index="state.queryParams.PageIndex"
+				v-model:page-size="state.queryParams.PageSize"
+			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
+            <el-row>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="审核状态" prop="State">
+                  <el-segmented
+                      :options="[
 									{
 										value: '0',
 										label: '申请中',
@@ -20,81 +31,70 @@
 										label: '不同意',
 									},
 								]"
-                  v-model="state.queryParams.State"
-                  @change="handleQuery"
-              />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="工单标题" prop="Title">
-							<el-input v-model="state.queryParams.Title" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="工单编码" prop="No">
-							<el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
-						</el-form-item>
-					</el-col>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<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>
-						</el-col>
-					</transition>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<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"
-									:default-time="defaultTimeStartEnd"
-								/>
-							</el-form-item>
-						</el-col>
-					</transition>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<el-form-item label="申请人" prop="ApplyUserName">
-								<el-input v-model="state.queryParams.ApplyUserName" placeholder="申请人姓名" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</transition>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label=" ">
-							<div class="flex-end w100">
-								<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 link type="primary" @click="closeSearch" :loading="state.loading">
-									{{ searchCol ? '展开' : '收起' }}
-									<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
-								</el-button>
-							</div>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
-			<ProTable
-				ref="proTableRef"
-				:columns="columns"
-				:data="state.tableData"
-				@updateTable="queryList"
-				:loading="state.loading"
-				:total="state.total"
-				v-model:page-index="state.queryParams.PageIndex"
-				v-model:page-size="state.queryParams.PageSize"
-			>
+                      v-model="state.queryParams.State"
+                      @change="handleQuery"
+                  />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="工单标题" prop="Title">
+                  <el-input v-model="state.queryParams.Title" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="工单编码" prop="No">
+                  <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
+                </el-form-item>
+              </el-col>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <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>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <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"
+                        :default-time="defaultTimeStartEnd"
+                    />
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="申请人" prop="ApplyUserName">
+                    <el-input v-model="state.queryParams.ApplyUserName" placeholder="申请人姓名" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label=" ">
+                  <div class="flex-end w100">
+                    <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 link type="primary" @click="closeSearch" :loading="state.loading">
+                      {{ searchCol ? '展开' : '收起' }}
+                      <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
+                    </el-button>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+        </template>
 				<template #expiredStatusText="{ row }">
 					<span :class="'overdue-status-' + row.order?.expiredStatus" :title="row.order?.expiredStatusText"></span>
 				</template>
@@ -106,7 +106,7 @@
 					<order-detail :order="row.order" @updateList="queryList" />
 				</template>
 			</ProTable>
-		</el-card>
+		</div>
 		<detail-drawer ref="detailDrawerRef"/>
 	</div>
 </template>
@@ -127,7 +127,7 @@ const DetailDrawer = defineAsyncComponent(() => import('@/views/province/compone
 const state = reactive<any>({
 	queryParams: {
 		PageIndex: 1, // 当前页
-		PageSize: 10, // 每页条数
+		PageSize: 20, // 每页条数
 		No: null, // 工单编码
 		Title: null, // 工单标题
 		State: '0', // 审核中

+ 272 - 272
src/views/province/order.vue

@@ -1,274 +1,6 @@
 <template>
-	<div class="province-order-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
-				<el-row>
-					<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>
-					</el-col>
-					<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" />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<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"
-								:default-time="defaultTimeStartEnd"
-							/>
-						</el-form-item>
-					</el-col>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<el-form-item label="工单编码" prop="No">
-								<el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</transition>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<el-form-item label="来电人姓名" prop="FromName">
-								<el-input v-model="state.queryParams.FromName" placeholder="来电人姓名" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</transition>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<el-form-item label="事发地址" prop="AreaCode">
-								<el-cascader
-									:options="state.areaOptions"
-									filterable
-									:props="{ checkStrictly: true, value: 'id', label: 'areaName', emitPath: false }"
-									placeholder="请选择事发地址"
-									clearable
-									class="w100"
-									v-model="state.queryParams.AreaCode"
-									@change="handleQuery"
-								>
-								</el-cascader>
-							</el-form-item>
-						</el-col>
-					</transition>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<el-form-item label="是否紧急" prop="IsUrgent">
-								<el-select v-model="state.queryParams.IsUrgent" placeholder="请选择是否紧急" clearable class="w100" @change="handleQuery">
-									<el-option :value="true" label="紧急" />
-									<el-option :value="false" label="不紧急" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</transition>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<el-form-item label="转接来源" prop="TransferPhone">
-								<el-input v-model="state.queryParams.TransferPhone" placeholder="转接来源" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</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="Status">
-								<el-select v-model="state.queryParams.Status" placeholder="请选择工单状态" clearable class="w100" @change="handleQuery">
-									<el-option v-for="item in state.orderStatusOptions" :value="item.key" :key="item.key" :label="item.value" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</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="AcceptType">
-								<el-select v-model="state.queryParams.AcceptType" placeholder="请选择受理类型" clearable class="w100" @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-col>
-					</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="Channel">
-								<el-select v-model="state.queryParams.Channel" placeholder="请选择来源渠道" clearable class="w100" @change="handleQuery">
-									<el-option v-for="item in state.channelOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</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="Hotspot">
-								<el-input v-model="state.queryParams.Hotspot" placeholder="热点分类名称" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</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="OrgId">
-                <el-cascader
-                    :options="state.orgsOptions"
-                    filterable
-                    :props="{ checkStrictly: true, value: 'id', label: 'name', emitPath: false }"
-                    placeholder="请选择接办部门"
-                    clearable
-                    class="w100"
-                    v-model="state.queryParams.OrgId"
-                    ref="cascadeRef"
-                    @change="handleQuery"
-                >
-                </el-cascader>
-              </el-form-item>
-						</el-col>
-					</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="NameOrNo">
-								<el-input v-model="state.queryParams.NameOrNo" placeholder="受理人/坐席工号" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</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="FromPhone">
-								<el-input v-model="state.queryParams.FromPhone" placeholder="来电号码" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</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="PhoneNo">
-								<el-input v-model="state.queryParams.PhoneNo" placeholder="联系电话" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</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="PushTypeCode">
-								<el-select v-model="state.queryParams.PushTypeCode" placeholder="请选择推送分类" clearable class="w100" @change="handleQuery">
-									<el-option v-for="item in state.pushTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</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-date-picker
-									v-model="state.queryParams.exTime"
-									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-col>
-					</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="ActualHandlerName">
-								<el-input v-model="state.queryParams.ActualHandlerName" placeholder="接办人" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</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="IsScreen">
-								<el-select v-model="state.queryParams.IsScreen" placeholder="请选择是否甄别" class="w100" clearable @change="handleQuery">
-									<el-option label="是" :value="true" />
-									<el-option label="否" :value="false" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</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="CurrentStepCode">
-								<el-select v-model="state.queryParams.CurrentStepCode" placeholder="请选择当前节点" clearable class="w100" @change="handleQuery">
-									<el-option v-for="item in state.currentStepOptions" :value="item.key" :key="item.key" :label="item.value" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</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="doneTime">
-								<el-date-picker
-									v-model="state.queryParams.doneTime"
-									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-col>
-					</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="IsOverTime">
-								<el-select v-model="state.queryParams.IsOverTime" placeholder="请选择是否超期" class="w100" clearable @change="handleQuery">
-									<el-option label="是" :value="true" />
-									<el-option label="否" :value="false" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</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="IdentityType">
-								<el-select v-model="state.queryParams.IdentityType" placeholder="请选择来电主体" clearable class="w100" @change="handleQuery">
-									<el-option v-for="item in state.identityTypeOptions" :value="item.key" :key="item.key" :label="item.value" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</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="ProvinceChannel">
-								<el-select v-model="state.queryParams.ProvinceChannel" placeholder="请选择省来源分类 " class="w100" clearable @change="handleQuery">
-									<el-option label="政民互动直派" value="1" />
-									<el-option label="政民互动" value="2" />
-									<el-option label="省12345" value="3" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</transition>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label=" ">
-							<div class="flex-end w100">
-								<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 link type="primary" @click="closeSearch" :loading="state.loading">
-									{{ searchCol ? '展开' : '收起' }}
-									<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
-								</el-button>
-							</div>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="province-order-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -282,6 +14,274 @@
 				:exportMethod="exportOrder"
 				:exportParams="requestParams"
 			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
+            <el-row>
+              <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>
+              </el-col>
+              <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" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <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"
+                      :default-time="defaultTimeStartEnd"
+                  />
+                </el-form-item>
+              </el-col>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="工单编码" prop="No">
+                    <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="来电人姓名" prop="FromName">
+                    <el-input v-model="state.queryParams.FromName" placeholder="来电人姓名" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="事发地址" prop="AreaCode">
+                    <el-cascader
+                        :options="state.areaOptions"
+                        filterable
+                        :props="{ checkStrictly: true, value: 'id', label: 'areaName', emitPath: false }"
+                        placeholder="请选择事发地址"
+                        clearable
+                        class="w100"
+                        v-model="state.queryParams.AreaCode"
+                        @change="handleQuery"
+                    >
+                    </el-cascader>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="是否紧急" prop="IsUrgent">
+                    <el-select v-model="state.queryParams.IsUrgent" placeholder="请选择是否紧急" clearable class="w100" @change="handleQuery">
+                      <el-option :value="true" label="紧急" />
+                      <el-option :value="false" label="不紧急" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="转接来源" prop="TransferPhone">
+                    <el-input v-model="state.queryParams.TransferPhone" placeholder="转接来源" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="Status">
+                    <el-select v-model="state.queryParams.Status" placeholder="请选择工单状态" clearable class="w100" @change="handleQuery">
+                      <el-option v-for="item in state.orderStatusOptions" :value="item.key" :key="item.key" :label="item.value" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="AcceptType">
+                    <el-select v-model="state.queryParams.AcceptType" placeholder="请选择受理类型" clearable class="w100" @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-col>
+              </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="Channel">
+                    <el-select v-model="state.queryParams.Channel" placeholder="请选择来源渠道" clearable class="w100" @change="handleQuery">
+                      <el-option v-for="item in state.channelOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="Hotspot">
+                    <el-input v-model="state.queryParams.Hotspot" placeholder="热点分类名称" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="OrgId">
+                    <el-cascader
+                        :options="state.orgsOptions"
+                        filterable
+                        :props="{ checkStrictly: true, value: 'id', label: 'name', emitPath: false }"
+                        placeholder="请选择接办部门"
+                        clearable
+                        class="w100"
+                        v-model="state.queryParams.OrgId"
+                        ref="cascadeRef"
+                        @change="handleQuery"
+                    >
+                    </el-cascader>
+                  </el-form-item>
+                </el-col>
+              </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="NameOrNo">
+                    <el-input v-model="state.queryParams.NameOrNo" placeholder="受理人/坐席工号" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="FromPhone">
+                    <el-input v-model="state.queryParams.FromPhone" placeholder="来电号码" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="PhoneNo">
+                    <el-input v-model="state.queryParams.PhoneNo" placeholder="联系电话" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="PushTypeCode">
+                    <el-select v-model="state.queryParams.PushTypeCode" placeholder="请选择推送分类" clearable class="w100" @change="handleQuery">
+                      <el-option v-for="item in state.pushTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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-date-picker
+                        v-model="state.queryParams.exTime"
+                        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-col>
+              </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="ActualHandlerName">
+                    <el-input v-model="state.queryParams.ActualHandlerName" placeholder="接办人" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="IsScreen">
+                    <el-select v-model="state.queryParams.IsScreen" placeholder="请选择是否甄别" class="w100" clearable @change="handleQuery">
+                      <el-option label="是" :value="true" />
+                      <el-option label="否" :value="false" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="CurrentStepCode">
+                    <el-select v-model="state.queryParams.CurrentStepCode" placeholder="请选择当前节点" clearable class="w100" @change="handleQuery">
+                      <el-option v-for="item in state.currentStepOptions" :value="item.key" :key="item.key" :label="item.value" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="doneTime">
+                    <el-date-picker
+                        v-model="state.queryParams.doneTime"
+                        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-col>
+              </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="IsOverTime">
+                    <el-select v-model="state.queryParams.IsOverTime" placeholder="请选择是否超期" class="w100" clearable @change="handleQuery">
+                      <el-option label="是" :value="true" />
+                      <el-option label="否" :value="false" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="IdentityType">
+                    <el-select v-model="state.queryParams.IdentityType" placeholder="请选择来电主体" clearable class="w100" @change="handleQuery">
+                      <el-option v-for="item in state.identityTypeOptions" :value="item.key" :key="item.key" :label="item.value" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="ProvinceChannel">
+                    <el-select v-model="state.queryParams.ProvinceChannel" placeholder="请选择省来源分类 " class="w100" clearable @change="handleQuery">
+                      <el-option label="政民互动直派" value="1" />
+                      <el-option label="政民互动" value="2" />
+                      <el-option label="省12345" value="3" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label=" ">
+                  <div class="flex-end w100">
+                    <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 link type="primary" @click="closeSearch" :loading="state.loading">
+                      {{ searchCol ? '展开' : '收起' }}
+                      <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
+                    </el-button>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+        </template>
 				<template #expiredStatusText="{ row }">
 					<span :class="'overdue-status-' + row.expiredStatus" :title="row.expiredStatusText"></span>
 				</template>
@@ -303,7 +303,7 @@
 					<order-detail :order="row" @updateList="queryList" />
 				</template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="provinceOrder">
@@ -324,7 +324,7 @@ const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/
 const state = reactive<any>({
 	queryParams: {
 		PageIndex: 1, // 当前页
-		PageSize: 10, // 每页条数
+		PageSize: 20, // 每页条数
 		// 查询条件
 		No: null, // 工单编码
 		ProvinceNo: null, // 省工单编码

+ 85 - 85
src/views/province/return.vue

@@ -1,12 +1,23 @@
 <template>
-	<div class="business-order-return-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
-				<el-row>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="审核状态" prop="State">
-              <el-segmented
-                  :options="[
+	<div class="business-order-return-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
+			<ProTable
+				ref="proTableRef"
+				:columns="columns"
+				:data="state.tableData"
+				@updateTable="queryList"
+				:loading="state.loading"
+				:total="state.total"
+				v-model:page-index="state.queryParams.PageIndex"
+				v-model:page-size="state.queryParams.PageSize"
+			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
+            <el-row>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="审核状态" prop="State">
+                  <el-segmented
+                      :options="[
 									{
 										value: '0',
 										label: '申请中',
@@ -20,81 +31,70 @@
 										label: '不同意',
 									},
 								]"
-                  v-model="state.queryParams.State"
-                  @change="handleQuery"
-              />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="工单标题" prop="Title">
-							<el-input v-model="state.queryParams.Title" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="工单编码" prop="No">
-							<el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
-						</el-form-item>
-					</el-col>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<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>
-						</el-col>
-					</transition>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<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"
-									:default-time="defaultTimeStartEnd"
-								/>
-							</el-form-item>
-						</el-col>
-					</transition>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<el-form-item label="申请人" prop="ApplyUserName">
-								<el-input v-model="state.queryParams.ApplyUserName" placeholder="申请人姓名" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</transition>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label=" ">
-							<div class="flex-end w100">
-								<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 link type="primary" @click="closeSearch" :loading="state.loading">
-									{{ searchCol ? '展开' : '收起' }}
-									<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
-								</el-button>
-							</div>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
-			<ProTable
-				ref="proTableRef"
-				:columns="columns"
-				:data="state.tableData"
-				@updateTable="queryList"
-				:loading="state.loading"
-				:total="state.total"
-				v-model:page-index="state.queryParams.PageIndex"
-				v-model:page-size="state.queryParams.PageSize"
-			>
+                      v-model="state.queryParams.State"
+                      @change="handleQuery"
+                  />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="工单标题" prop="Title">
+                  <el-input v-model="state.queryParams.Title" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="工单编码" prop="No">
+                  <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
+                </el-form-item>
+              </el-col>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <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>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <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"
+                        :default-time="defaultTimeStartEnd"
+                    />
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="申请人" prop="ApplyUserName">
+                    <el-input v-model="state.queryParams.ApplyUserName" placeholder="申请人姓名" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label=" ">
+                  <div class="flex-end w100">
+                    <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 link type="primary" @click="closeSearch" :loading="state.loading">
+                      {{ searchCol ? '展开' : '收起' }}
+                      <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
+                    </el-button>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+        </template>
 				<template #expiredStatusText="{ row }">
 					<span :class="'overdue-status-' + row.order?.expiredStatus" :title="row.order?.expiredStatusText"></span>
 				</template>
@@ -106,7 +106,7 @@
 					<order-detail :order="row.order" @updateList="queryList" />
 				</template>
 			</ProTable>
-		</el-card>
+		</div>
     <detail-drawer ref="detailDrawerRef" />
 	</div>
 </template>
@@ -127,7 +127,7 @@ const DetailDrawer = defineAsyncComponent(() => import('@/views/province/compone
 const state = reactive<any>({
 	queryParams: {
 		PageIndex: 1, // 当前页
-		PageSize: 10, // 每页条数
+		PageSize: 20, // 每页条数
 		No: null, // 工单编码
 		Title: null, // 工单标题
 		State: '0', // 审核中

+ 90 - 88
src/views/province/screen.vue

@@ -1,90 +1,6 @@
 <template>
-	<div class="province-order-screen-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
-				<el-row>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="审核状态" prop="State">
-							<el-segmented
-								:options="[
-									{
-										value: '0',
-										label: '申请中',
-									},
-									{
-										value: '1',
-										label: '同意',
-									},
-									{
-										value: '2',
-										label: '不同意',
-									},
-								]"
-								v-model="state.queryParams.State"
-								@change="handleQuery"
-							/>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="工单标题" prop="Title">
-							<el-input v-model="state.queryParams.Title" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="工单编码" prop="No">
-							<el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
-						</el-form-item>
-					</el-col>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<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>
-						</el-col>
-					</transition>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<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"
-									:default-time="defaultTimeStartEnd"
-								/>
-							</el-form-item>
-						</el-col>
-					</transition>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<el-form-item label="申请人" prop="ApplyUserName">
-								<el-input v-model="state.queryParams.ApplyUserName" placeholder="申请人姓名" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</transition>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label=" ">
-							<div class="flex-end w100">
-								<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 link type="primary" @click="closeSearch" :loading="state.loading">
-									{{ searchCol ? '展开' : '收起' }}
-									<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
-								</el-button>
-							</div>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="province-order-screen-container layout-padding">
+		<div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -95,6 +11,92 @@
 				v-model:page-index="state.queryParams.PageIndex"
 				v-model:page-size="state.queryParams.PageSize"
 			>
+				<template #table-search>
+					<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
+						<el-row>
+							<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+								<el-form-item label="审核状态" prop="State">
+									<el-segmented
+										:options="[
+											{
+												value: '0',
+												label: '申请中',
+											},
+											{
+												value: '1',
+												label: '同意',
+											},
+											{
+												value: '2',
+												label: '不同意',
+											},
+										]"
+										v-model="state.queryParams.State"
+										@change="handleQuery"
+									/>
+								</el-form-item>
+							</el-col>
+							<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+								<el-form-item label="工单标题" prop="Title">
+									<el-input v-model="state.queryParams.Title" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
+								</el-form-item>
+							</el-col>
+							<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+								<el-form-item label="工单编码" prop="No">
+									<el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
+								</el-form-item>
+							</el-col>
+							<transition name="el-zoom-in-top" v-show="!searchCol">
+								<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>
+								</el-col>
+							</transition>
+							<transition name="el-zoom-in-top" v-show="!searchCol">
+								<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+									<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"
+											:default-time="defaultTimeStartEnd"
+										/>
+									</el-form-item>
+								</el-col>
+							</transition>
+							<transition name="el-zoom-in-top" v-show="!searchCol">
+								<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+									<el-form-item label="申请人" prop="ApplyUserName">
+										<el-input v-model="state.queryParams.ApplyUserName" placeholder="申请人姓名" clearable @keyup.enter="handleQuery" />
+									</el-form-item>
+								</el-col>
+							</transition>
+							<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+								<el-form-item label=" ">
+									<div class="flex-end w100">
+										<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 link type="primary" @click="closeSearch" :loading="state.loading">
+											{{ searchCol ? '展开' : '收起' }}
+											<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
+										</el-button>
+									</div>
+								</el-form-item>
+							</el-col>
+						</el-row>
+					</el-form>
+				</template>
 				<template #expiredStatusText="{ row }">
 					<span :class="'overdue-status-' + row.order?.expiredStatus" :title="row.order?.expiredStatusText"></span>
 				</template>
@@ -106,7 +108,7 @@
 					<order-detail :order="row.order" @updateList="queryList" />
 				</template>
 			</ProTable>
-		</el-card>
+		</div>
 		<detail-drawer ref="detailDrawerRef" />
 	</div>
 </template>
@@ -127,7 +129,7 @@ const DetailDrawer = defineAsyncComponent(() => import('@/views/province/compone
 const state = reactive<any>({
 	queryParams: {
 		PageIndex: 1, // 当前页
-		PageSize: 10, // 每页条数
+		PageSize: 20, // 每页条数
 		No: null, // 工单编码
 		Title: null, // 工单标题
 		State: '0', // 审核中

+ 97 - 97
src/views/province/zmhd/index.vue

@@ -1,12 +1,23 @@
 <template>
-	<div class="province-zmhd-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
-				<el-row>
-          <el-col>
-            <el-form-item label="快捷查询" prop="IsProvinceZmhd">
-              <el-segmented
-                  :options="[
+	<div class="province-zmhd-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
+			<ProTable
+				ref="proTableRef"
+				:columns="columns"
+				:data="state.tableData"
+				@updateTable="queryList"
+				:loading="state.loading"
+				:total="state.total"
+				v-model:page-index="state.queryParams.PageIndex"
+				v-model:page-size="state.queryParams.PageSize"
+			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
+            <el-row>
+              <el-col>
+                <el-form-item label="快捷查询" prop="IsProvinceZmhd">
+                  <el-segmented
+                      :options="[
 									{
 										value: '',
 										label: '全部',
@@ -20,93 +31,82 @@
 										label: '已公开',
 									},
 								]"
-                  v-model="state.queryParams.IsProvinceZmhd"
-                  @change="handleQuery"
-              />
-            </el-form-item>
-          </el-col>
-					<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" />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="工单编码" prop="No">
-							<el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
-						</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>
-					</el-col>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<el-form-item label="答复部门名称" prop="AnswerOu">
-								<el-input v-model="state.queryParams.AnswerOu" placeholder="来电人姓名" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</transition>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<el-form-item label="初审人姓名" prop="AuditFirstName">
-								<el-input v-model="state.queryParams.AuditFirstName" placeholder="初审人姓名" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</transition>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<el-form-item label="答复部门名称" prop="AnswerOu">
-								<el-input v-model="state.queryParams.AnswerOu" placeholder="来电人姓名" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</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="auditTime">
-								<el-date-picker
-									v-model="state.queryParams.auditTime"
-									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-col>
-					</transition>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label=" ">
-							<div class="flex-end w100">
-								<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 link type="primary" @click="closeSearch" :loading="state.loading">
-									{{ searchCol ? '展开' : '收起' }}
-									<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
-								</el-button>
-							</div>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
-			<ProTable
-				ref="proTableRef"
-				:columns="columns"
-				:data="state.tableData"
-				@updateTable="queryList"
-				:loading="state.loading"
-				:total="state.total"
-				v-model:page-index="state.queryParams.PageIndex"
-				v-model:page-size="state.queryParams.PageSize"
-			>
+                      v-model="state.queryParams.IsProvinceZmhd"
+                      @change="handleQuery"
+                  />
+                </el-form-item>
+              </el-col>
+              <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" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="工单编码" prop="No">
+                  <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
+                </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>
+              </el-col>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="答复部门名称" prop="AnswerOu">
+                    <el-input v-model="state.queryParams.AnswerOu" placeholder="来电人姓名" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="初审人姓名" prop="AuditFirstName">
+                    <el-input v-model="state.queryParams.AuditFirstName" placeholder="初审人姓名" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="答复部门名称" prop="AnswerOu">
+                    <el-input v-model="state.queryParams.AnswerOu" placeholder="来电人姓名" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="auditTime">
+                    <el-date-picker
+                        v-model="state.queryParams.auditTime"
+                        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-col>
+              </transition>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label=" ">
+                  <div class="flex-end w100">
+                    <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 link type="primary" @click="closeSearch" :loading="state.loading">
+                      {{ searchCol ? '展开' : '收起' }}
+                      <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
+                    </el-button>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+        </template>
 				<template #expiredStatusText="{ row }">
 					<span :class="'overdue-status-' + row.expiredStatus" :title="row.expiredStatusText"></span>
 				</template>
@@ -120,7 +120,7 @@
 					<order-detail :order="row" @updateList="queryList" />
 				</template>
 			</ProTable>
-		</el-card>
+		</div>
 		<!--  公开  -->
 		<public-handle ref="publicHandleRef" @updateList="queryList" />
 		<public-detail ref="publicDetailRef" />
@@ -144,7 +144,7 @@ const PublicDetail = defineAsyncComponent(() => import('@/views/province/zmhd/co
 const state = reactive<any>({
 	queryParams: {
 		PageIndex: 1, // 当前页
-		PageSize: 10, // 每页条数
+		PageSize: 20, // 每页条数
 		// 查询条件
 		No: null, // 工单编码
 		ProvinceNo: null, // 省工单编号

+ 150 - 67
src/views/quality/done/index.vue

@@ -1,61 +1,159 @@
 <template>
 	<div class="quality-done-container layout-padding">
 		<div class="layout-padding-auto layout-padding-view pd20">
-			<el-tabs v-model="state.queryParams.Source" @tab-change="handleQuery" class="tabs h100">
+			<el-tabs v-model="state.queryParams.Source" @tab-change="handleQuery">
 				<el-tab-pane label="受理已质检" :name="1"></el-tab-pane>
 				<el-tab-pane label="派单已质检" :name="2"></el-tab-pane>
 				<el-tab-pane label="回访已质检" :name="3"></el-tab-pane>
-				<ProTable
-					ref="proTableRef"
-					:columns="columns"
-					:data="state.tableData"
-					@updateTable="queryList"
-					:loading="state.loading"
-					:total="state.total"
-					v-model:page-index="state.queryParams.PageIndex"
-					v-model:page-size="state.queryParams.PageSize"
-					:key="Math.random()"
-				>
-					<template #table-search>
-						<el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent>
-							<el-form-item label="关键词" prop="Keyword">
-								<el-input v-model="state.queryParams.Keyword" placeholder="关键词" clearable @keyup.enter="handleQuery" class="keyword-input" />
-							</el-form-item>
-							<el-form-item label="分数区间" prop="value">
-								<input-number-range v-model="state.queryParams.value" />
-							</el-form-item>
-							<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"
-									:default-time="defaultTimeStartEnd"
-								/>
-							</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)" v-waves class="default-button">
-									<SvgIcon name="ele-Refresh" class="mr5" />重置
-								</el-button>
-							</el-form-item>
-						</el-form>
-					</template>
-					<template #title="{ row }">
-						<order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
-					</template>
-					<!-- 表格操作 -->
-					<template #operation="{ row }">
-						<el-button link type="primary" @click="onQualityView(row)" v-auth="'quality:done:view'" title="查看质检详情"> 查看 </el-button>
-						<el-button link type="primary" @click="onQualityEdit(row)" v-auth="'quality:done:edit'" title="编辑质检"> 编辑 </el-button>
-					</template>
-				</ProTable>
 			</el-tabs>
+      <ProTable
+          ref="proTableRef"
+          :columns="acceptQualityColumns"
+          :data="state.tableData"
+          @updateTable="queryList"
+          :loading="state.loading"
+          :total="state.total"
+          v-model:page-index="state.queryParams.PageIndex"
+          v-model:page-size="state.queryParams.PageSize"
+          v-if="state.queryParams.Source === 1"
+      >
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent>
+            <el-form-item label="关键词" prop="Keyword">
+              <el-input v-model="state.queryParams.Keyword" placeholder="关键词" clearable @keyup.enter="handleQuery" class="keyword-input" />
+            </el-form-item>
+            <el-form-item label="分数区间" prop="value">
+              <input-number-range v-model="state.queryParams.value" />
+            </el-form-item>
+            <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"
+                  :default-time="defaultTimeStartEnd"
+              />
+            </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)" v-waves class="default-button">
+                <SvgIcon name="ele-Refresh" class="mr5" />重置
+              </el-button>
+            </el-form-item>
+          </el-form>
+        </template>
+        <template #title="{ row }">
+          <order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
+        </template>
+        <template #operation="{ row }">
+          <el-button link type="primary" @click="onQualityView(row)" v-auth="'quality:done:view'" title="查看质检详情"> 查看 </el-button>
+          <el-button link type="primary" @click="onQualityEdit(row)" v-auth="'quality:done:edit'" title="编辑质检"> 编辑 </el-button>
+        </template>
+      </ProTable>
+      <ProTable
+          ref="proTableRef"
+          :columns="assignQualityColumns"
+          :data="state.tableData"
+          @updateTable="queryList"
+          :loading="state.loading"
+          :total="state.total"
+          v-model:page-index="state.queryParams.PageIndex"
+          v-model:page-size="state.queryParams.PageSize"
+          v-else-if="state.queryParams.Source === 2"
+      >
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent>
+            <el-form-item label="关键词" prop="Keyword">
+              <el-input v-model="state.queryParams.Keyword" placeholder="关键词" clearable @keyup.enter="handleQuery" class="keyword-input" />
+            </el-form-item>
+            <el-form-item label="分数区间" prop="value">
+              <input-number-range v-model="state.queryParams.value" />
+            </el-form-item>
+            <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"
+                  :default-time="defaultTimeStartEnd"
+              />
+            </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)" v-waves class="default-button">
+                <SvgIcon name="ele-Refresh" class="mr5" />重置
+              </el-button>
+            </el-form-item>
+          </el-form>
+        </template>
+        <template #title="{ row }">
+          <order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
+        </template>
+        <template #operation="{ row }">
+          <el-button link type="primary" @click="onQualityView(row)" v-auth="'quality:done:view'" title="查看质检详情"> 查看 </el-button>
+          <el-button link type="primary" @click="onQualityEdit(row)" v-auth="'quality:done:edit'" title="编辑质检"> 编辑 </el-button>
+        </template>
+      </ProTable>
+      <ProTable
+          ref="proTableRef"
+          :columns="visitQualityColumns"
+          :data="state.tableData"
+          @updateTable="queryList"
+          :loading="state.loading"
+          :total="state.total"
+          v-model:page-index="state.queryParams.PageIndex"
+          v-model:page-size="state.queryParams.PageSize"
+          v-if="state.queryParams.Source === 3"
+      >
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent>
+            <el-form-item label="关键词" prop="Keyword">
+              <el-input v-model="state.queryParams.Keyword" placeholder="关键词" clearable @keyup.enter="handleQuery" class="keyword-input" />
+            </el-form-item>
+            <el-form-item label="分数区间" prop="value">
+              <input-number-range v-model="state.queryParams.value" />
+            </el-form-item>
+            <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"
+                  :default-time="defaultTimeStartEnd"
+              />
+            </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)" v-waves class="default-button">
+                <SvgIcon name="ele-Refresh" class="mr5" />重置
+              </el-button>
+            </el-form-item>
+          </el-form>
+        </template>
+        <template #title="{ row }">
+          <order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
+        </template>
+        <!-- 表格操作 -->
+        <template #operation="{ row }">
+          <el-button link type="primary" @click="onQualityView(row)" v-auth="'quality:done:view'" title="查看质检详情"> 查看 </el-button>
+          <el-button link type="primary" @click="onQualityEdit(row)" v-auth="'quality:done:edit'" title="编辑质检"> 编辑 </el-button>
+        </template>
+      </ProTable>
 		</div>
 		<!-- 质检 -->
 		<quality-inspection ref="qualityInspectionRef" @updateList="queryList" />
@@ -264,19 +362,4 @@ onMounted(() => {
 	getBaseData();
 	queryList();
 });
-</script>
-<style lang="scss" scoped>
-.quality-done-container {
-	.tabs {
-		display: flex;
-		flex-direction: column;
-		overflow: auto;
-		:deep(.pro-table-main) {
-			height: 100%;
-		}
-		:deep(.el-tabs__content) {
-			height: 100%;
-		}
-	}
-}
-</style>
+</script>

+ 142 - 96
src/views/quality/index/index.vue

@@ -1,56 +1,150 @@
 <template>
 	<div class="quality-container layout-padding">
 		<div class="layout-padding-auto layout-padding-view pd20">
-			<el-tabs v-model="state.queryParams.Source" @tab-change="handleQuery" class="tabs h100">
+			<el-tabs v-model="state.queryParams.Source" @tab-change="handleQuery">
 				<el-tab-pane :label="item.value" :name="item.key" v-for="item in qualitySourceOptions" :key="item.key"></el-tab-pane>
-				<ProTable
-					ref="proTableRef"
-					:columns="columns"
-					:data="state.tableData"
-					@updateTable="queryList"
-					:loading="state.loading"
-					:total="state.total"
-					v-model:page-index="state.queryParams.PageIndex"
-					v-model:page-size="state.queryParams.PageSize"
-					:key="Math.random()"
-				>
-					<template #table-search>
-						<el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent>
-							<el-form-item label="关键词" prop="Keyword">
-								<el-input v-model="state.queryParams.Keyword" placeholder="关键词" clearable @keyup.enter="handleQuery" class="keyword-input" />
-							</el-form-item>
-							<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"
-									:default-time="defaultTimeStartEnd"
-								/>
-							</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)" v-waves class="default-button">
-									<SvgIcon name="ele-Refresh" class="mr5" />重置
-								</el-button>
-							</el-form-item>
-						</el-form>
-					</template>
-					<template #title="{ row }">
-						<order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
-					</template>
-					<!-- 表格操作 -->
-					<template #operation="{ row }">
-						<el-button link type="primary" @click="onQualityInspection(row)" v-auth="'quality:inspection'" title="质检"> 质检 </el-button>
-						<order-detail :order="row.order" />
-					</template>
-				</ProTable>
 			</el-tabs>
+      <ProTable
+          ref="proTableRef"
+          :columns="acceptQualityColumns"
+          :data="state.tableData"
+          @updateTable="queryList"
+          :loading="state.loading"
+          :total="state.total"
+          v-model:page-index="state.queryParams.PageIndex"
+          v-model:page-size="state.queryParams.PageSize"
+          v-if="state.queryParams.Source === 1"
+      >
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent>
+            <el-form-item label="关键词" prop="Keyword">
+              <el-input v-model="state.queryParams.Keyword" placeholder="关键词" clearable @keyup.enter="handleQuery" class="keyword-input" />
+            </el-form-item>
+            <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"
+                  :default-time="defaultTimeStartEnd"
+              />
+            </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)" v-waves class="default-button">
+                <SvgIcon name="ele-Refresh" class="mr5" />重置
+              </el-button>
+            </el-form-item>
+          </el-form>
+        </template>
+        <template #title="{ row }">
+          <order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
+        </template>
+        <!-- 表格操作 -->
+        <template #operation="{ row }">
+          <el-button link type="primary" @click="onQualityInspection(row)" v-auth="'quality:inspection'" title="质检"> 质检 </el-button>
+          <order-detail :order="row.order" />
+        </template>
+      </ProTable>
+      <ProTable
+          ref="proTableRef"
+          :columns="assignQualityColumns"
+          :data="state.tableData"
+          @updateTable="queryList"
+          :loading="state.loading"
+          :total="state.total"
+          v-model:page-index="state.queryParams.PageIndex"
+          v-model:page-size="state.queryParams.PageSize"
+          v-else-if="state.queryParams.Source === 2"
+      >
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent>
+            <el-form-item label="关键词" prop="Keyword">
+              <el-input v-model="state.queryParams.Keyword" placeholder="关键词" clearable @keyup.enter="handleQuery" class="keyword-input" />
+            </el-form-item>
+            <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"
+                  :default-time="defaultTimeStartEnd"
+              />
+            </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)" v-waves class="default-button">
+                <SvgIcon name="ele-Refresh" class="mr5" />重置
+              </el-button>
+            </el-form-item>
+          </el-form>
+        </template>
+        <template #title="{ row }">
+          <order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
+        </template>
+        <!-- 表格操作 -->
+        <template #operation="{ row }">
+          <el-button link type="primary" @click="onQualityInspection(row)" v-auth="'quality:inspection'" title="质检"> 质检 </el-button>
+          <order-detail :order="row.order" />
+        </template>
+      </ProTable>
+      <ProTable
+          ref="proTableRef"
+          :columns="visitQualityColumns"
+          :data="state.tableData"
+          @updateTable="queryList"
+          :loading="state.loading"
+          :total="state.total"
+          v-model:page-index="state.queryParams.PageIndex"
+          v-model:page-size="state.queryParams.PageSize"
+          v-if="state.queryParams.Source === 3"
+      >
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent>
+            <el-form-item label="关键词" prop="Keyword">
+              <el-input v-model="state.queryParams.Keyword" placeholder="关键词" clearable @keyup.enter="handleQuery" class="keyword-input" />
+            </el-form-item>
+            <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"
+                  :default-time="defaultTimeStartEnd"
+              />
+            </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)" v-waves class="default-button">
+                <SvgIcon name="ele-Refresh" class="mr5" />重置
+              </el-button>
+            </el-form-item>
+          </el-form>
+        </template>
+        <template #title="{ row }">
+          <order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
+        </template>
+        <!-- 表格操作 -->
+        <template #operation="{ row }">
+          <el-button link type="primary" @click="onQualityInspection(row)" v-auth="'quality:inspection'" title="质检"> 质检 </el-button>
+          <order-detail :order="row.order" />
+        </template>
+      </ProTable>
 		</div>
 		<!-- 质检 -->
 		<quality-inspection ref="qualityInspectionRef" @updateList="queryList" />
@@ -70,25 +164,6 @@ const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/
 const QualityInspection = defineAsyncComponent(() => import('@/views/quality/index/components/Quality-inspection.vue')); // 质检
 
 const proTableRef = ref<RefType>(); // 表格ref
-// 表格配置项
-const columns = ref<any[]>([
-	{ prop: 'order.no', label: '工单编码', minWidth: 150 },
-	{ prop: 'aiQuality', label: '质检方式', minWidth: 100, render: (scope: any) => (scope.row.aiQuality ? '智能质检' : '人工质检') },
-	{ prop: 'order.sourceChannel', label: '来源渠道' },
-	{
-		prop: 'order.startTime',
-		label: '受理时间',
-		minWidth: 170,
-		render: (scope: any) => formatDate(scope.row.order?.startTime, 'YYYY-mm-dd HH:MM:SS'),
-	},
-	{ prop: 'order.acceptType', label: '受理类型' },
-	{ prop: 'order.statusText', label: '工单状态' },
-	{ prop: 'order.title', label: '工单标题', minWidth: 300 },
-	{ prop: 'order.hotspotName', label: '热点分类' },
-	{ prop: 'order.acceptorName', label: '受理人', minWidth: 120 },
-	{ prop: 'order.fromPhone', label: '来电电话', minWidth: 120 },
-	{ label: '操作', minWidth: 140, fixed: 'right', align: 'center', prop: 'operation' },
-]);
 // 定义变量内容
 const state = reactive<any>({
 	loading: false, // 加载状态
@@ -221,19 +296,6 @@ const handleQuery = () => {
 const requestParams = ref({});
 const queryList = () => {
 	state.loading = true;
-	switch (state.queryParams.Source) {
-		case 1:
-			columns.value = acceptQualityColumns;
-			break;
-		case 2:
-			columns.value = assignQualityColumns;
-			break;
-		case 3:
-			columns.value = visitQualityColumns;
-			break;
-		default:
-			break;
-	}
 	requestParams.value = Other.deepClone(state.queryParams);
 	requestParams.value.CreationTimeStart = state.queryParams.crTime === null ? null : state.queryParams.crTime[0]; // 生成时间
 	requestParams.value.CreationTimeEnd = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
@@ -267,19 +329,3 @@ onMounted(() => {
 	queryList();
 });
 </script>
-
-<style lang="scss" scoped>
-.quality-container {
-	.tabs {
-		display: flex;
-		flex-direction: column;
-		overflow: auto;
-		:deep(.pro-table-main) {
-			height: 100%;
-		}
-		:deep(.el-tabs__content) {
-			height: 100%;
-		}
-	}
-}
-</style>

+ 1 - 0
src/views/quality/project/index.vue

@@ -86,6 +86,7 @@ const columns = ref<any[]>([
 							inactive-value={0}
 							onClick={() => changeIsEnable(scope.row)}
 							inline-prompt
+              size="small"
 						/>
 					) : (
 						<span>{scope.row.isEnable === 1 ? '启用' : '禁用'}</span>

+ 1 - 0
src/views/quality/template/index.vue

@@ -81,6 +81,7 @@ const columns = ref<any[]>([
 							inactive-value={0}
 							onClick={() => changeIsEnable(scope.row)}
 							inline-prompt
+              size="small"
 						/>
 					) : (
 						<span>{scope.row.isEnable === 1 ? '启用' : '禁用'}</span>

+ 27 - 27
src/views/statistics/call/detailIndex.vue

@@ -1,30 +1,6 @@
 <template>
-	<div class="statistics-call-detail-index-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="时间段" prop="crTime">
-					<el-date-picker
-						v-model="state.queryParams.crTime"
-						type="daterange"
-						unlink-panels
-						range-separator="至"
-						start-placeholder="开始时间"
-						end-placeholder="结束时间"
-						:shortcuts="shortcuts"
-						@change="handleQuery"
-						value-format="YYYY-MM-DD"
-						:clearable="false"
-					/>
-				</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-form-item>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="statistics-call-detail-index-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -39,6 +15,30 @@
 				show-summary
 				:summary-method="getSummaries"
 			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+            <el-form-item label="时间段" prop="crTime">
+              <el-date-picker
+                  v-model="state.queryParams.crTime"
+                  type="daterange"
+                  unlink-panels
+                  range-separator="至"
+                  start-placeholder="开始时间"
+                  end-placeholder="结束时间"
+                  :shortcuts="shortcuts"
+                  @change="handleQuery"
+                  value-format="YYYY-MM-DD"
+                  :clearable="false"
+              />
+            </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-form-item>
+          </el-form>
+        </template>
 				<template #description>
 					<el-popover :width="500" trigger="click">
 						<template #reference>
@@ -65,7 +65,7 @@
 					</el-popover>
 				</template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsCallDetailIndex">

+ 4 - 4
src/views/statistics/call/detailIndexCall.vue

@@ -1,6 +1,6 @@
 <template>
-	<div class="statistics-call-detail-index-container layout-pd">
-		<el-card shadow="never">
+	<div class="statistics-call-detail-index-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -22,7 +22,7 @@
 					<order-detail :order="row" @updateList="queryList">{{ row.orderTitle }}</order-detail>
 				</template>
 			</ProTable>
-		</el-card>
+		</div>
 		<!-- 播放录音 -->
 		<play-record ref="playRecordRef" />
 	</div>
@@ -70,7 +70,7 @@ const columns = ref<any[]>([
 const state = reactive<any>({
 	queryParams: {
 		PageIndex: 1,
-		PageSize: 10,
+		PageSize: 20,
 	},
 	tableData: [], //表单
 	loading: false, // 加载

+ 18 - 18
src/views/statistics/call/detailIndexTime.vue

@@ -1,21 +1,6 @@
 <template>
-	<div class="statistics-call-detail-index-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="热线号码" prop="Keyword">
-					<el-select v-model="state.queryParams.Keyword" placeholder="请选择热线号码" clearable @change="handleQuery">
-						<el-option v-for="item in state.callForwardingSource" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-					</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-form-item>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="statistics-call-detail-index-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -30,8 +15,23 @@
 				:summary-method="getSummaries"
         border
 			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+            <el-form-item label="热线号码" prop="Keyword">
+              <el-select v-model="state.queryParams.Keyword" placeholder="请选择热线号码" clearable @change="handleQuery">
+                <el-option v-for="item in state.callForwardingSource" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+              </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-form-item>
+          </el-form>
+        </template>
 			</ProTable>
-		</el-card>
+		</DIV>
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsCallDetailIndexTime">

+ 38 - 69
src/views/statistics/call/detailTalkTime.vue

@@ -1,40 +1,6 @@
 <template>
-	<div class="statistics-call-detail-talk-time-container layout-pd">
-		<el-card shadow="never" v-if="showSearch">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="状态" prop="type">
-					<el-select v-model="state.queryParams.type" placeholder="请选择状态" clearable @change="handleQuery">
-						<el-option v-for="item in state.callForwardingType" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-					</el-select>
-				</el-form-item>
-				<el-form-item label="来源" prop="source">
-					<el-select v-model="state.queryParams.source" placeholder="请选择来源" clearable @change="handleQuery">
-						<el-option v-for="item in state.callForwardingSource" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-					</el-select>
-				</el-form-item>
-				<el-form-item label="时间段" prop="crTime">
-					<el-date-picker
-						v-model="state.queryParams.crTime"
-						type="daterange"
-						unlink-panels
-						range-separator="至"
-						start-placeholder="开始时间"
-						end-placeholder="结束时间"
-						:shortcuts="shortcuts"
-						@change="handleQuery"
-						value-format="YYYY-MM-DD"
-						:clearable="false"
-					/>
-				</el-form-item>
-				<el-form-item label-width="0">
-					<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-form-item>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="statistics-call-detail-talk-time-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -44,12 +10,44 @@
 				:total="state.total"
 				v-model:page-index="state.queryParams.PageIndex"
 				v-model:page-size="state.queryParams.PageSize"
-				show-summary
 				border
-				:summary-method="getSummaries"
 			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline v-if="showSearch">
+            <el-form-item label="状态" prop="type">
+              <el-select v-model="state.queryParams.type" placeholder="请选择状态" clearable @change="handleQuery">
+                <el-option v-for="item in state.callForwardingType" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="来源" prop="source">
+              <el-select v-model="state.queryParams.source" placeholder="请选择来源" clearable @change="handleQuery">
+                <el-option v-for="item in state.callForwardingSource" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="时间段" prop="crTime">
+              <el-date-picker
+                  v-model="state.queryParams.crTime"
+                  type="daterange"
+                  unlink-panels
+                  range-separator="至"
+                  start-placeholder="开始时间"
+                  end-placeholder="结束时间"
+                  :shortcuts="shortcuts"
+                  @change="handleQuery"
+                  value-format="YYYY-MM-DD"
+                  :clearable="false"
+              />
+            </el-form-item>
+            <el-form-item label-width="0">
+              <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-form-item>
+          </el-form>
+        </template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsCallDetailTalkTime">
@@ -86,7 +84,7 @@ const state = reactive<any>({
 		source: null,
 		crTime: defaultDate,
 		PageIndex: 1,
-		PageSize: 10,
+		PageSize: 20,
 		startHourTo: null,
 	},
 	tableData: [], //表单
@@ -139,35 +137,6 @@ const resetQuery = (formEl: FormInstance | undefined) => {
 	formEl.resetFields();
 	queryList();
 };
-// 合计
-const getSummaries = (param: any) => {
-	const { columns, data } = param;
-	const sums: string[] = [];
-	columns.forEach((column: { property: string }, index: number) => {
-		if (index === 0) {
-			sums[index] = '合计';
-			return;
-		}
-		const values = data.map((item: { [x: string]: any }) => Number(item[column.property]));
-		if (['callInConnectRate', 'effectiveRate', 'gateWay'].includes(column.property)) {
-			//百分比不能计算
-			sums[index] = '';
-			return '';
-		} else if (!values.every((value: unknown) => Number.isNaN(value))) {
-			sums[index] = `${values.reduce((prev: any, curr: any) => {
-				const value = Number(curr);
-				if (!Number.isNaN(value)) {
-					return prev + curr;
-				} else {
-					return prev;
-				}
-			}, 0)}`;
-		} else {
-			sums[index] = ' ';
-		}
-	});
-	return sums;
-};
 // 获取基础信息
 const getBaseInfo = async () => {
 	try {

+ 40 - 45
src/views/statistics/call/hotNumber.vue

@@ -1,35 +1,6 @@
 <template>
-	<div class="statistics-call-hot-number-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-        <el-form-item label="热线号码" prop="gateway">
-          <el-select v-model="state.queryParams.gateway" placeholder="请选择热线号码" clearable @change="handleQuery">
-            <el-option v-for="item in state.callForwardingSource" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-          </el-select>
-        </el-form-item>
-				<el-form-item label="时间段" prop="crTime">
-					<el-date-picker
-						v-model="state.queryParams.crTime"
-						type="daterange"
-						unlink-panels
-						range-separator="至"
-						start-placeholder="开始时间"
-						end-placeholder="结束时间"
-						:shortcuts="shortcuts"
-						@change="handleQuery"
-						value-format="YYYY-MM-DD"
-						:clearable="false"
-					/>
-				</el-form-item>
-				<el-form-item label-width="0">
-					<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-form-item>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="statistics-call-hot-number-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -41,8 +12,37 @@
 				border
 				:summary-method="getSummaries"
 			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+            <el-form-item label="热线号码" prop="gateway">
+              <el-select v-model="state.queryParams.gateway" placeholder="请选择热线号码" clearable @change="handleQuery">
+                <el-option v-for="item in state.callForwardingSource" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="时间段" prop="crTime">
+              <el-date-picker
+                  v-model="state.queryParams.crTime"
+                  type="daterange"
+                  unlink-panels
+                  range-separator="至"
+                  start-placeholder="开始时间"
+                  end-placeholder="结束时间"
+                  :shortcuts="shortcuts"
+                  @change="handleQuery"
+                  value-format="YYYY-MM-DD"
+                  :clearable="false"
+              />
+            </el-form-item>
+            <el-form-item label-width="0">
+              <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-form-item>
+          </el-form>
+        </template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsCallHotNumber">
@@ -50,6 +50,7 @@ import { onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import {callHotline, callPeriodBase} from '@/api/statistics/call';
 import { defaultDate, shortcuts } from "@/utils/constants";
+import Other from "@/utils/other";
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
@@ -81,7 +82,7 @@ const columns = ref<any[]>([
 ]);
 // 定义变量内容
 const ruleFormRef = ref<RefType>(); // 表单ref
-const state = reactive({
+const state = reactive<any>({
 	queryParams: {
 		// 查询条件
 		gateway: null, // 热线号码
@@ -98,20 +99,14 @@ const handleQuery = () => {
 	queryList();
 };
 /** 获取列表 */
+const requestParams = ref({});
 const queryList = () => {
 	state.loading = true;
-	let StartTime = null;
-	let endTime = null;
-	if (state.queryParams?.crTime) {
-		StartTime = state.queryParams?.crTime[0];
-		endTime = state.queryParams?.crTime[1];
-	}
-	const request = {
-		StartTime,
-		endTime,
-		gateway: state.queryParams.gateway,
-	};
-	callHotline(request)
+  requestParams.value = Other.deepClone(state.queryParams);
+  requestParams.value.StartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0];
+  requestParams.value.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
+  Reflect.deleteProperty(requestParams.value, 'crTime');
+	callHotline(requestParams.value)
 		.then((res: any) => {
 			state.tableData = res.result ?? [];
 			state.total = res.result?.total ?? 0;

+ 1 - 2
src/views/statistics/call/index.vue

@@ -29,8 +29,6 @@
 					<el-button type="primary" @click="onDetail" :loading="state.loading"> <SvgIcon name="ele-List" class="mr5" /> 话务日期明细 </el-button>
 				</el-form-item>
 			</el-form>
-		</el-card>
-		<el-card shadow="never">
 			<el-row :gutter="20">
 				<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
 					<v-chart class="chart" :option="option" :loading="state.loading" autoresize />
@@ -46,6 +44,7 @@
 						show-summary
 						border
 						:tool-button="false"
+            max-height="160px"
 					>
 					</ProTable>
 				</el-col>

+ 46 - 55
src/views/statistics/call/seatsRecord.vue

@@ -1,41 +1,6 @@
 <template>
-	<div class="statistics-call-seats-record-out-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="分机号" prop="TelNo">
-					<el-input v-model="state.queryParams.TelNo" placeholder="分机号" clearable @keyup.enter="handleQuery" class="keyword-input" />
-				</el-form-item>
-				<el-form-item label="动作类型" prop="ActionTtype">
-          <el-select v-model="state.queryParams.ActionTtype" placeholder="请选择动作类型" clearable @change="handleQuery">
-            <el-option v-for="item in actionTypeOptions" :value="item.key" :key="item.key" :label="item.value" />
-          </el-select>
-				</el-form-item>
-				<el-form-item label="坐席" prop="UserName">
-					<el-input v-model="state.queryParams.UserName" placeholder="坐席" clearable @keyup.enter="handleQuery" class="keyword-input" />
-				</el-form-item>
-				<el-form-item label="时间段" prop="crTime">
-					<el-date-picker
-						v-model="state.queryParams.crTime"
-						type="daterange"
-						unlink-panels
-						range-separator="至"
-						start-placeholder="开始时间"
-						end-placeholder="结束时间"
-						:shortcuts="shortcuts"
-						@change="handleQuery"
-						value-format="YYYY-MM-DD"
-						:clearable="false"
-					/>
-				</el-form-item>
-				<el-form-item label-width="0">
-					<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-form-item>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="statistics-call-seats-record-out-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -47,8 +12,43 @@
 				v-model:page-size="state.queryParams.PageSize"
 				border
 			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+            <el-form-item label="分机号" prop="TelNo">
+              <el-input v-model="state.queryParams.TelNo" placeholder="分机号" clearable @keyup.enter="handleQuery" class="keyword-input" />
+            </el-form-item>
+            <el-form-item label="动作类型" prop="ActionTtype">
+              <el-select v-model="state.queryParams.ActionTtype" placeholder="请选择动作类型" clearable @change="handleQuery">
+                <el-option v-for="item in actionTypeOptions" :value="item.key" :key="item.key" :label="item.value" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="坐席" prop="UserName">
+              <el-input v-model="state.queryParams.UserName" placeholder="坐席" clearable @keyup.enter="handleQuery" class="keyword-input" />
+            </el-form-item>
+            <el-form-item label="时间段" prop="crTime">
+              <el-date-picker
+                  v-model="state.queryParams.crTime"
+                  type="daterange"
+                  unlink-panels
+                  range-separator="至"
+                  start-placeholder="开始时间"
+                  end-placeholder="结束时间"
+                  :shortcuts="shortcuts"
+                  @change="handleQuery"
+                  value-format="YYYY-MM-DD"
+                  :clearable="false"
+              />
+            </el-form-item>
+            <el-form-item label-width="0">
+              <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-form-item>
+          </el-form>
+        </template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsCallSeatsRecord">
@@ -57,6 +57,7 @@ import { FormInstance } from 'element-plus';
 import { callAction, callActionBase } from "@/api/statistics/call";
 import { defaultDate, shortcuts } from '@/utils/constants';
 import { formatDate } from "@/utils/formatTime";
+import Other from "@/utils/other";
 
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
@@ -89,7 +90,7 @@ const state = reactive({
 	queryParams: {
 		// 查询条件
 		PageIndex: 1,
-		PageSize: 10,
+		PageSize: 20,
     TelNo: null, // 分级号
     UserName: null, // 坐席
     ActionTtype: null, // 动作类型
@@ -105,24 +106,14 @@ const handleQuery = () => {
 	queryList();
 };
 /** 获取列表 */
+const requestParams = ref({});
 const queryList = () => {
 	state.loading = true;
-	let StartTime = null;
-	let EndTime = null;
-	if (state.queryParams?.crTime) {
-		StartTime = state.queryParams?.crTime[0];
-		EndTime = state.queryParams?.crTime[1];
-	}
-	const request = {
-		StartTime,
-		EndTime,
-		UserName: state.queryParams.UserName,
-    ActionTtype: state.queryParams.ActionTtype,
-		PageIndex: state.queryParams.PageIndex,
-		PageSize: state.queryParams.PageSize,
-    TelNo: state.queryParams.TelNo,
-	};
-  callAction(request)
+  requestParams.value = Other.deepClone(state.queryParams);
+  requestParams.value.StartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0];
+  requestParams.value.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
+  Reflect.deleteProperty(requestParams.value, 'crTime');
+  callAction(requestParams.value)
 		.then((res: any) => {
 			state.tableData = res.result?.items ?? [];
 			state.total = res.result?.total ?? 0;

+ 43 - 50
src/views/statistics/call/seatsRest.vue

@@ -1,36 +1,6 @@
 <template>
-	<div class="statistics-call-seats-rest-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="工号" prop="StaffNo">
-					<el-input v-model="state.queryParams.StaffNo" placeholder="工号" clearable @keyup.enter="handleQuery" class="keyword-input" />
-				</el-form-item>
-				<el-form-item label="坐席名称" prop="UserName">
-					<el-input v-model="state.queryParams.UserName" placeholder="坐席名称" clearable @keyup.enter="handleQuery" class="keyword-input" />
-				</el-form-item>
-				<el-form-item label="时间段" prop="crTime">
-					<el-date-picker
-						v-model="state.queryParams.crTime"
-						type="daterange"
-						unlink-panels
-						range-separator="至"
-						start-placeholder="开始时间"
-						end-placeholder="结束时间"
-						:shortcuts="shortcuts"
-						@change="handleQuery"
-						value-format="YYYY-MM-DD"
-						:clearable="false"
-					/>
-				</el-form-item>
-				<el-form-item label-width="0">
-					<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-form-item>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="statistics-call-seats-rest-container layout-padding">
+		<div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -41,15 +11,46 @@
 				border
 				@sort-change="sortChange"
 			>
+				<template #table-search>
+					<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+						<el-form-item label="工号" prop="StaffNo">
+							<el-input v-model="state.queryParams.StaffNo" placeholder="工号" clearable @keyup.enter="handleQuery" class="keyword-input" />
+						</el-form-item>
+						<el-form-item label="坐席名称" prop="UserName">
+							<el-input v-model="state.queryParams.UserName" placeholder="坐席名称" clearable @keyup.enter="handleQuery" class="keyword-input" />
+						</el-form-item>
+						<el-form-item label="时间段" prop="crTime">
+							<el-date-picker
+								v-model="state.queryParams.crTime"
+								type="daterange"
+								unlink-panels
+								range-separator="至"
+								start-placeholder="开始时间"
+								end-placeholder="结束时间"
+								:shortcuts="shortcuts"
+								@change="handleQuery"
+								value-format="YYYY-MM-DD"
+								:clearable="false"
+							/>
+						</el-form-item>
+						<el-form-item label-width="0">
+							<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-form-item>
+					</el-form>
+				</template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsCallSeatsRest">
 import { onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import { callRest } from '@/api/statistics/call';
-import { defaultDate, shortcuts } from "@/utils/constants";
+import { defaultDate, shortcuts } from '@/utils/constants';
+import Other from '@/utils/other';
 
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
@@ -75,6 +76,8 @@ const state = reactive({
 		SortField: 'restDuration', // 排序字段
 		SortRule: 1, // 排序规则
 		crTime: defaultDate,
+		StartTime: null,
+		EndTime: null,
 	},
 	tableData: [], //表单
 	loading: false, // 加载
@@ -86,24 +89,14 @@ const handleQuery = () => {
 	queryList();
 };
 /** 获取列表 */
+const requestParams = ref({});
 const queryList = () => {
 	state.loading = true;
-	let StartTime = null;
-	let EndTime = null;
-	if (state.queryParams?.crTime) {
-		StartTime = state.queryParams?.crTime[0];
-		EndTime = state.queryParams?.crTime[1];
-	}
-	const request = {
-		StartTime,
-		EndTime,
-		StaffNo: state.queryParams.StaffNo,
-		UserName: state.queryParams.UserName,
-		Keyword: state.queryParams.Keyword,
-		SortField: state.queryParams.SortField,
-		SortRule: state.queryParams.SortRule,
-	};
-	callRest(request)
+	requestParams.value = Other.deepClone(state.queryParams);
+	requestParams.value.StartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0];
+	requestParams.value.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
+	Reflect.deleteProperty(requestParams.value, 'crTime');
+	callRest(requestParams.value)
 		.then((res: any) => {
 			state.tableData = res.result ?? [];
 			state.total = res.result?.total ?? 0;

+ 39 - 39
src/views/statistics/call/talkTime.vue

@@ -1,37 +1,6 @@
 <template>
-	<div class="statistics-call-talk-time-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="热线号码" prop="source">
-					<el-select v-model="state.queryParams.source" placeholder="请选择热线号码" clearable @change="handleQuery">
-						<el-option v-for="item in state.callForwardingSource" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-					</el-select>
-				</el-form-item>
-				<el-form-item label="时间段" prop="crTime">
-					<el-date-picker
-						v-model="state.queryParams.crTime"
-						type="daterange"
-						unlink-panels
-						range-separator="至"
-						start-placeholder="开始时间"
-						end-placeholder="结束时间"
-						:shortcuts="shortcuts"
-						@change="handleQuery"
-						value-format="YYYY-MM-DD"
-						:clearable="false"
-					/>
-				</el-form-item>
-				<el-form-item label-width="0">
-					<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 type="primary" @click="onDetail" :loading="state.loading"> 通话时段分析 </el-button>
-				</el-form-item>
-			</el-form>
-		</el-card>
-		<!--    :toolButton="['refresh', 'setting', 'exportCurrent', 'exportAll']"-->
-		<el-card shadow="never">
+	<div class="statistics-call-talk-time-container layout-padding">
+		<div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -42,8 +11,38 @@
 				border
 				show-summary
 			>
+				<template #table-search>
+					<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+						<el-form-item label="热线号码" prop="source">
+							<el-select v-model="state.queryParams.source" placeholder="请选择热线号码" clearable @change="handleQuery">
+								<el-option v-for="item in state.callForwardingSource" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+							</el-select>
+						</el-form-item>
+						<el-form-item label="时间段" prop="crTime">
+							<el-date-picker
+								v-model="state.queryParams.crTime"
+								type="daterange"
+								unlink-panels
+								range-separator="至"
+								start-placeholder="开始时间"
+								end-placeholder="结束时间"
+								:shortcuts="shortcuts"
+								@change="handleQuery"
+								value-format="YYYY-MM-DD"
+								:clearable="false"
+							/>
+						</el-form-item>
+						<el-form-item label-width="0">
+							<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 type="primary" @click="onDetail" :loading="state.loading"> 通话时段分析 </el-button>
+						</el-form-item>
+					</el-form>
+				</template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsCallTalkTime">
@@ -151,13 +150,14 @@ const handleQuery = () => {
 	queryList();
 };
 /** 获取列表 */
+const requestParams = ref({});
 const queryList = () => {
 	state.loading = true;
-	let request = Other.deepClone(state.queryParams);
-	request.StartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0];
-	request.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
-	Reflect.deleteProperty(request, 'crTime');
-	callPeriod(request)
+  requestParams.value = Other.deepClone(state.queryParams);
+  requestParams.value.StartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0];
+  requestParams.value.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
+  Reflect.deleteProperty(requestParams.value, 'crTime');
+	callPeriod(requestParams.value)
 		.then((res: any) => {
 			state.tableData = res.result;
 			state.loading = false;

+ 79 - 86
src/views/statistics/call/telephone.vue

@@ -1,70 +1,6 @@
 <template>
-	<div class="statistics-call-telephone-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
-				<el-row :gutter="10">
-					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
-						<el-form-item label="时间段" prop="crTime">
-							<el-date-picker
-								v-model="state.queryParams.crTime"
-								type="daterange"
-								unlink-panels
-								range-separator="至"
-								start-placeholder="开始时间"
-								end-placeholder="结束时间"
-								:shortcuts="shortcuts"
-								@change="handleQuery"
-								value-format="YYYY-MM-DD"
-								:clearable="false"
-							/>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
-						<el-form-item label="坐席人员" prop="Keyword">
-							<el-input v-model="state.queryParams.Keyword" placeholder="坐席人员" clearable @keyup.enter="handleQuery" />
-						</el-form-item>
-					</el-col>
-					<transition name="el-zoom-in-top">
-						<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8" v-show="!searchCol">
-							<el-form-item label="工号" prop="Keyword">
-								<el-input v-model="state.queryParams.Keyword" placeholder="工号" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</transition>
-					<transition name="el-zoom-in-top">
-						<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8" v-show="!searchCol">
-							<el-form-item label="工作组" prop="Keyword">
-								<el-input v-model="state.queryParams.Keyword" placeholder="工作组" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</transition>
-					<transition name="el-zoom-in-top">
-						<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8" v-show="!searchCol">
-							<el-form-item label="动作类型" prop="DelayState">
-								<el-select v-model="state.queryParams.DelayState" placeholder="动作类型" class="w100">
-									<el-option v-for="item in delayStateOptions" :value="item.key" :key="item.key" :label="item.value" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</transition>
-					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
-						<el-form-item label=" ">
-							<div class="flex-end w100">
-								<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 link type="primary" @click="closeSearch" :loading="state.loading">
-									{{ searchCol ? '展开' : '收起' }}
-									<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
-								</el-button>
-							</div>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="statistics-call-telephone-container layout-padding">
+		<div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -75,16 +11,83 @@
 				v-model:page-index="state.queryParams.PageIndex"
 				v-model:page-size="state.queryParams.PageSize"
 			>
+				<template #table-search>
+					<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
+						<el-row :gutter="10">
+							<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
+								<el-form-item label="时间段" prop="crTime">
+									<el-date-picker
+										v-model="state.queryParams.crTime"
+										type="daterange"
+										unlink-panels
+										range-separator="至"
+										start-placeholder="开始时间"
+										end-placeholder="结束时间"
+										:shortcuts="shortcuts"
+										@change="handleQuery"
+										value-format="YYYY-MM-DD"
+										:clearable="false"
+									/>
+								</el-form-item>
+							</el-col>
+							<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
+								<el-form-item label="坐席人员" prop="Keyword">
+									<el-input v-model="state.queryParams.Keyword" placeholder="坐席人员" clearable @keyup.enter="handleQuery" />
+								</el-form-item>
+							</el-col>
+							<transition name="el-zoom-in-top">
+								<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8" v-show="!searchCol">
+									<el-form-item label="工号" prop="Keyword">
+										<el-input v-model="state.queryParams.Keyword" placeholder="工号" clearable @keyup.enter="handleQuery" />
+									</el-form-item>
+								</el-col>
+							</transition>
+							<transition name="el-zoom-in-top">
+								<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8" v-show="!searchCol">
+									<el-form-item label="工作组" prop="Keyword">
+										<el-input v-model="state.queryParams.Keyword" placeholder="工作组" clearable @keyup.enter="handleQuery" />
+									</el-form-item>
+								</el-col>
+							</transition>
+							<transition name="el-zoom-in-top">
+								<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8" v-show="!searchCol">
+									<el-form-item label="动作类型" prop="DelayState">
+										<el-select v-model="state.queryParams.DelayState" placeholder="动作类型" class="w100">
+											<el-option v-for="item in delayStateOptions" :value="item.key" :key="item.key" :label="item.value" />
+										</el-select>
+									</el-form-item>
+								</el-col>
+							</transition>
+							<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
+								<el-form-item label=" ">
+									<div class="flex-end w100">
+										<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 link type="primary" @click="closeSearch" :loading="state.loading">
+											{{ searchCol ? '展开' : '收起' }}
+											<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
+										</el-button>
+									</div>
+								</el-form-item>
+							</el-col>
+						</el-row>
+					</el-form>
+				</template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsCallTel">
 import { onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import { knowledgeList } from '@/api/statistics/knowledge';
-import { defaultDate, shortcuts } from "@/utils/constants";
+import { defaultDate, shortcuts } from '@/utils/constants';
 import { formatDate } from '@/utils/formatTime';
+import Other from "@/utils/other";
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
@@ -110,13 +113,14 @@ const columns = ref<any[]>([
 ]);
 // 定义变量内容
 const ruleFormRef = ref<RefType>(); // 表单ref
-const state = reactive({
+const state = reactive<any>({
 	queryParams: {
 		// 查询条件
 		PageIndex: 1,
 		PageSize: 10,
 		Keyword: null, // 关键词
 		crTime: defaultDate, // 时间默认今天开始到今天结束
+    DelayState:null
 	},
 	tableData: [], //表单
 	loading: false, // 加载
@@ -134,25 +138,14 @@ const handleQuery = () => {
 	queryList();
 };
 /** 获取列表 */
+const requestParams = ref({});
 const queryList = () => {
 	state.loading = true;
-	let CreationTimeStart = null;
-	let CreationTimeEnd = null;
-	if (state.queryParams?.crTime) {
-		CreationTimeStart = state.queryParams?.crTime[0];
-		CreationTimeEnd = state.queryParams?.crTime[1];
-	}
-	const request = {
-		CreationTimeStart,
-		CreationTimeEnd,
-		DelayState: CreationTimeEnd,
-		PageIndex: state.queryParams.PageIndex,
-		PageSize: state.queryParams.PageSize,
-		Keyword: state.queryParams.Keyword,
-		SortField: state.queryParams.SortField,
-		SortRule: state.queryParams.SortRule,
-	};
-	knowledgeList(request)
+  requestParams.value = Other.deepClone(state.queryParams);
+  requestParams.value.StartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0];
+  requestParams.value.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
+  Reflect.deleteProperty(requestParams.value, 'crTime');
+	knowledgeList(requestParams.value)
 		.then((res: any) => {
 			state.tableData = res.result?.items ?? [];
 			state.total = res.result?.total ?? 0;

+ 35 - 41
src/views/statistics/call/telephonist.vue

@@ -1,30 +1,6 @@
 <template>
-	<div class="statistics-call-telephonist-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="时间段" prop="crTime">
-					<el-date-picker
-						v-model="state.queryParams.crTime"
-						type="daterange"
-						unlink-panels
-						range-separator="至"
-						start-placeholder="开始时间"
-						end-placeholder="结束时间"
-						:shortcuts="shortcuts"
-						@change="handleQuery"
-						value-format="YYYY-MM-DD"
-						:clearable="false"
-					/>
-				</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-form-item>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="statistics-call-telephonist-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -38,13 +14,37 @@
 				@sort-change="sortChange"
 				:summary-method="getSummaries"
 			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+            <el-form-item label="时间段" prop="crTime">
+              <el-date-picker
+                  v-model="state.queryParams.crTime"
+                  type="daterange"
+                  unlink-panels
+                  range-separator="至"
+                  start-placeholder="开始时间"
+                  end-placeholder="结束时间"
+                  :shortcuts="shortcuts"
+                  @change="handleQuery"
+                  value-format="YYYY-MM-DD"
+                  :clearable="false"
+              />
+            </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-form-item>
+          </el-form>
+        </template>
 				<template #name="{ row }">
 					<span
 						>{{ row.name }} <span v-if="row.staffNo">({{ row.staffNo }})</span></span
 					>
 				</template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsCallTelephonist">
@@ -53,6 +53,7 @@ import { FormInstance } from 'element-plus';
 import { callAgent } from '@/api/statistics/call';
 import { defaultDate, shortcuts } from "@/utils/constants";
 import { formatDurationDay } from '@/utils/formatTime';
+import Other from "@/utils/other";
 
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
@@ -124,7 +125,7 @@ const columns = ref<any[]>([
 ]);
 // 定义变量内容
 const ruleFormRef = ref<RefType>(); // 表单ref
-const state = reactive({
+const state = reactive<any>({
 	queryParams: {
 		// 查询条件
 		PageIndex: 1,
@@ -142,21 +143,14 @@ const handleQuery = () => {
 	queryList();
 };
 /** 获取列表 */
+const requestParams = ref({});
 const queryList = () => {
 	state.loading = true;
-	let StartTime = null;
-	let EndTime = null;
-	if (state.queryParams?.crTime) {
-		StartTime = state.queryParams?.crTime[0];
-		EndTime = state.queryParams?.crTime[1];
-	}
-	const request = {
-		StartTime,
-		EndTime,
-		SortField: state.queryParams.SortField,
-		SortRule: state.queryParams.SortRule,
-	};
-	callAgent(request)
+  requestParams.value = Other.deepClone(state.queryParams);
+  requestParams.value.StartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0];
+  requestParams.value.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
+  Reflect.deleteProperty(requestParams.value, 'crTime');
+	callAgent(requestParams.value )
 		.then((res: any) => {
 			state.tableData = res.result;
 			state.loading = false;

+ 46 - 53
src/views/statistics/call/transferOut.vue

@@ -1,36 +1,6 @@
 <template>
-	<div class="statistics-call-transfer-out-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="外线号码" prop="CDPN">
-					<el-input v-model="state.queryParams.CDPN" placeholder="外线号码" clearable @keyup.enter="handleQuery" class="keyword-input" />
-				</el-form-item>
-				<el-form-item label="受理人" prop="UserName">
-					<el-input v-model="state.queryParams.UserName" placeholder="受理人" clearable @keyup.enter="handleQuery" class="keyword-input" />
-				</el-form-item>
-				<el-form-item label="转外线时间" prop="crTime">
-					<el-date-picker
-						v-model="state.queryParams.crTime"
-						type="daterange"
-						unlink-panels
-						range-separator="至"
-						start-placeholder="开始时间"
-						end-placeholder="结束时间"
-						:shortcuts="shortcuts"
-						@change="handleQuery"
-						value-format="YYYY-MM-DD"
-						:clearable="false"
-					/>
-				</el-form-item>
-				<el-form-item label-width="0">
-					<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-form-item>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="statistics-call-transfer-out-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -42,8 +12,38 @@
 				v-model:page-size="state.queryParams.PageSize"
 				border
 			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+            <el-form-item label="外线号码" prop="CDPN">
+              <el-input v-model="state.queryParams.CDPN" placeholder="外线号码" clearable @keyup.enter="handleQuery" class="keyword-input" />
+            </el-form-item>
+            <el-form-item label="受理人" prop="UserName">
+              <el-input v-model="state.queryParams.UserName" placeholder="受理人" clearable @keyup.enter="handleQuery" class="keyword-input" />
+            </el-form-item>
+            <el-form-item label="转外线时间" prop="crTime">
+              <el-date-picker
+                  v-model="state.queryParams.crTime"
+                  type="daterange"
+                  unlink-panels
+                  range-separator="至"
+                  start-placeholder="开始时间"
+                  end-placeholder="结束时间"
+                  :shortcuts="shortcuts"
+                  @change="handleQuery"
+                  value-format="YYYY-MM-DD"
+                  :clearable="false"
+              />
+            </el-form-item>
+            <el-form-item label-width="0">
+              <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-form-item>
+          </el-form>
+        </template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsCallTransferOut">
@@ -52,6 +52,7 @@ import { FormInstance } from 'element-plus';
 import { callTransfer } from '@/api/statistics/call';
 import { defaultDate, shortcuts } from "@/utils/constants";
 import { formatDate } from '@/utils/formatTime';
+import Other from "@/utils/other";
 
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
@@ -70,13 +71,17 @@ const columns = ref<any[]>([
 ]);
 // 定义变量内容
 const ruleFormRef = ref<RefType>(); // 表单ref
-const state = reactive({
+const state = reactive<any>({
 	queryParams: {
 		// 查询条件
 		PageIndex: 1,
-		PageSize: 10,
+		PageSize: 20,
 		Keyword: null, // 关键词
+    CDPN:null,
+    UserName:null,
 		crTime: defaultDate, // 时间默认今天开始到今天结束
+    StartTime:null,
+    EndTime:null
 	},
 	tableData: [], //表单
 	loading: false, // 加载
@@ -88,26 +93,14 @@ const handleQuery = () => {
 	queryList();
 };
 /** 获取列表 */
+const requestParams = ref({});
 const queryList = () => {
 	state.loading = true;
-	let StartTime = null;
-	let EndTime = null;
-	if (state.queryParams?.crTime) {
-		StartTime = state.queryParams?.crTime[0];
-		EndTime = state.queryParams?.crTime[1];
-	}
-	const request = {
-		StartTime,
-		EndTime,
-		UserName: state.queryParams.UserName,
-		CDPN: state.queryParams.CDPN,
-		PageIndex: state.queryParams.PageIndex,
-		PageSize: state.queryParams.PageSize,
-		Keyword: state.queryParams.Keyword,
-		SortField: state.queryParams.SortField,
-		SortRule: state.queryParams.SortRule,
-	};
-	callTransfer(request)
+  requestParams.value = Other.deepClone(state.queryParams);
+  requestParams.value.StartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0];
+  requestParams.value.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
+  Reflect.deleteProperty(requestParams.value, 'crTime');
+	callTransfer(requestParams.value)
 		.then((res: any) => {
 			state.tableData = res.result?.items ?? [];
 			state.total = res.result?.total ?? 0;

+ 206 - 206
src/views/statistics/center/detailEventFrequently.vue

@@ -1,208 +1,6 @@
 <template>
-	<div class="statistics-center-detail-event-frequently layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
-				<el-row :gutter="10">
-					<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" />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="工单编码" prop="No">
-							<el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
-						</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>
-					</el-col>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<el-form-item label="来电人姓名" prop="FromName">
-								<el-input v-model="state.queryParams.FromName" placeholder="来电人姓名" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</transition>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<el-form-item label="转接来源" prop="TransferPhone">
-								<el-input v-model="state.queryParams.TransferPhone" placeholder="转接来源" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</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="Statuses">
-								<el-select v-model="state.queryParams.Statuses" placeholder="请选择工单状态" clearable class="w100" multiple>
-									<el-option v-for="item in state.orderStatusOptions" :value="item.key" :key="item.key" :label="item.value" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</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="Channels">
-								<el-select
-									v-model="state.queryParams.Channels"
-									placeholder="请选择来源渠道"
-									multiple
-									clearable
-									class="w100"
-									collapse-tags
-									collapse-tags-tooltip
-									:max-collapse-tags="2"
-								>
-									<el-option v-for="item in state.channelOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</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="OrgCodes">
-								<el-cascader
-									:options="state.orgsOptions"
-									filterable
-									:show-all-levels="false"
-									:props="{ checkStrictly: true, value: 'id', label: 'name', emitPath: false, multiple: true }"
-									placeholder="请选择接办部门"
-									clearable
-									class="w100"
-									v-model="state.queryParams.OrgCodes"
-									ref="cascadeRef"
-									@change="changeOrg"
-									collapse-tags
-									collapse-tags-tooltip
-									:max-collapse-tags="2"
-								>
-								</el-cascader>
-							</el-form-item>
-						</el-col>
-					</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="NameOrNo">
-								<el-input v-model="state.queryParams.NameOrNo" placeholder="受理人/坐席工号" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</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="PhoneNo">
-								<el-input v-model="state.queryParams.PhoneNo" placeholder="联系电话" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</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="PushTypeCode">
-								<el-select v-model="state.queryParams.PushTypeCode" placeholder="请选择推送分类" clearable class="w100" @change="handleQuery">
-									<el-option v-for="item in state.pushTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</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-date-picker
-									v-model="state.queryParams.exTime"
-									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-col>
-					</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="ActualHandlerName">
-								<el-input v-model="state.queryParams.ActualHandlerName" placeholder="接办人" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</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="IsScreen">
-								<el-select v-model="state.queryParams.IsScreen" placeholder="请选择是否甄别" class="w100" clearable @change="handleQuery">
-									<el-option label="是" :value="true" />
-									<el-option label="否" :value="false" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</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="CurrentStepCode">
-								<el-select v-model="state.queryParams.CurrentStepCode" placeholder="请选择当前节点" clearable class="w100" @change="handleQuery">
-									<el-option v-for="item in state.currentStepOptions" :value="item.key" :key="item.key" :label="item.value" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</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="doneTime">
-								<el-date-picker
-									v-model="state.queryParams.doneTime"
-									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-col>
-					</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="IsOverTime">
-								<el-select v-model="state.queryParams.IsOverTime" placeholder="请选择是否超期" class="w100" clearable @change="handleQuery">
-									<el-option label="是" :value="true" />
-									<el-option label="否" :value="false" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</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="IdentityType">
-								<el-select v-model="state.queryParams.IdentityType" placeholder="请选择来电主体" clearable class="w100" @change="handleQuery">
-									<el-option v-for="item in state.identityTypeOptions" :value="item.key" :key="item.key" :label="item.value" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</transition>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label=" ">
-							<div class="flex-end w100">
-								<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
-								<el-button @click="resetQuery(ruleFormRef)" v-waves class="default-button" :loading="state.loading">
-									<SvgIcon name="ele-Refresh" class="mr5" />重置
-								</el-button>
-								<el-button link type="primary" @click="closeSearch" :loading="state.loading">
-									{{ searchCol ? '展开' : '收起' }}
-									<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
-								</el-button>
-							</div>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="statistics-center-detail-event-frequently layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -214,6 +12,208 @@
 				v-model:page-size="state.queryParams.PageSize"
 				:key="Math.random()"
 			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
+            <el-row :gutter="10">
+              <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" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="工单编码" prop="No">
+                  <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
+                </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>
+              </el-col>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="来电人姓名" prop="FromName">
+                    <el-input v-model="state.queryParams.FromName" placeholder="来电人姓名" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="转接来源" prop="TransferPhone">
+                    <el-input v-model="state.queryParams.TransferPhone" placeholder="转接来源" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="Statuses">
+                    <el-select v-model="state.queryParams.Statuses" placeholder="请选择工单状态" clearable class="w100" multiple>
+                      <el-option v-for="item in state.orderStatusOptions" :value="item.key" :key="item.key" :label="item.value" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="Channels">
+                    <el-select
+                        v-model="state.queryParams.Channels"
+                        placeholder="请选择来源渠道"
+                        multiple
+                        clearable
+                        class="w100"
+                        collapse-tags
+                        collapse-tags-tooltip
+                        :max-collapse-tags="2"
+                    >
+                      <el-option v-for="item in state.channelOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="OrgCodes">
+                    <el-cascader
+                        :options="state.orgsOptions"
+                        filterable
+                        :show-all-levels="false"
+                        :props="{ checkStrictly: true, value: 'id', label: 'name', emitPath: false, multiple: true }"
+                        placeholder="请选择接办部门"
+                        clearable
+                        class="w100"
+                        v-model="state.queryParams.OrgCodes"
+                        ref="cascadeRef"
+                        @change="changeOrg"
+                        collapse-tags
+                        collapse-tags-tooltip
+                        :max-collapse-tags="2"
+                    >
+                    </el-cascader>
+                  </el-form-item>
+                </el-col>
+              </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="NameOrNo">
+                    <el-input v-model="state.queryParams.NameOrNo" placeholder="受理人/坐席工号" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="PhoneNo">
+                    <el-input v-model="state.queryParams.PhoneNo" placeholder="联系电话" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="PushTypeCode">
+                    <el-select v-model="state.queryParams.PushTypeCode" placeholder="请选择推送分类" clearable class="w100" @change="handleQuery">
+                      <el-option v-for="item in state.pushTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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-date-picker
+                        v-model="state.queryParams.exTime"
+                        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-col>
+              </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="ActualHandlerName">
+                    <el-input v-model="state.queryParams.ActualHandlerName" placeholder="接办人" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="IsScreen">
+                    <el-select v-model="state.queryParams.IsScreen" placeholder="请选择是否甄别" class="w100" clearable @change="handleQuery">
+                      <el-option label="是" :value="true" />
+                      <el-option label="否" :value="false" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="CurrentStepCode">
+                    <el-select v-model="state.queryParams.CurrentStepCode" placeholder="请选择当前节点" clearable class="w100" @change="handleQuery">
+                      <el-option v-for="item in state.currentStepOptions" :value="item.key" :key="item.key" :label="item.value" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="doneTime">
+                    <el-date-picker
+                        v-model="state.queryParams.doneTime"
+                        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-col>
+              </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="IsOverTime">
+                    <el-select v-model="state.queryParams.IsOverTime" placeholder="请选择是否超期" class="w100" clearable @change="handleQuery">
+                      <el-option label="是" :value="true" />
+                      <el-option label="否" :value="false" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="IdentityType">
+                    <el-select v-model="state.queryParams.IdentityType" placeholder="请选择来电主体" clearable class="w100" @change="handleQuery">
+                      <el-option v-for="item in state.identityTypeOptions" :value="item.key" :key="item.key" :label="item.value" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label=" ">
+                  <div class="flex-end w100">
+                    <el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
+                    <el-button @click="resetQuery(ruleFormRef)" v-waves class="default-button" :loading="state.loading">
+                      <SvgIcon name="ele-Refresh" class="mr5" />重置
+                    </el-button>
+                    <el-button link type="primary" @click="closeSearch" :loading="state.loading">
+                      {{ searchCol ? '展开' : '收起' }}
+                      <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
+                    </el-button>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+        </template>
 				<template #expiredStatusText="{ row }">
 					<span :class="'overdue-status-' + row.expiredStatus" :title="row.expiredStatusText"></span>
 				</template>
@@ -224,7 +224,7 @@
 					<order-detail :order="row" @updateList="queryList" />
 				</template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="eventFrequentlyDetail">
@@ -245,7 +245,7 @@ const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/
 const state = reactive<any>({
 	queryParams: {
 		PageIndex: 1, // 当前页
-		PageSize: 10, // 每页条数
+		PageSize: 20, // 每页条数
 		// 查询条件
 		No: null, // 工单编码
 		ProvinceNo: null, // 省工单编码

+ 263 - 263
src/views/statistics/center/detailTelFrequently.vue

@@ -1,265 +1,6 @@
 <template>
-	<div class="statistics-center-detail-tel-frequently layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
-				<el-row :gutter="10">
-          <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" />
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-            <el-form-item label="工单编码" prop="No">
-              <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-            <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"
-                  :default-time="defaultTimeStartEnd"
-              />
-            </el-form-item>
-          </el-col>
-          <transition name="el-zoom-in-top" v-show="!searchCol">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-              <el-form-item label="来电人姓名" prop="FromName">
-                <el-input v-model="state.queryParams.FromName" placeholder="来电人姓名" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top" v-show="!searchCol">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-              <el-form-item label="事发地址" prop="AreaCode">
-                <el-cascader
-                    :options="state.areaOptions"
-                    filterable
-                    :props="{ checkStrictly: true, value: 'id', label: 'areaName',emitPath:false }"
-                    placeholder="请选择事发地址"
-                    clearable
-                    class="w100"
-                    v-model="state.queryParams.AreaCode"
-                    @change="handleQuery"
-                >
-                </el-cascader>
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top" v-show="!searchCol">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-              <el-form-item label="转接来源" prop="TransferPhone">
-                <el-input v-model="state.queryParams.TransferPhone" placeholder="转接来源" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </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="Status">
-                <el-select v-model="state.queryParams.Status" placeholder="请选择工单状态" clearable class="w100" @change="handleQuery">
-                  <el-option v-for="item in state.orderStatusOptions" :value="item.key" :key="item.key" :label="item.value" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </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="AcceptType">
-                <el-select
-                    v-model="state.queryParams.AcceptType"
-                    placeholder="请选择受理类型"
-                    clearable
-                    class="w100"
-                    @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-col>
-          </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="Channel">
-                <el-select
-                    v-model="state.queryParams.Channel"
-                    placeholder="请选择来源渠道"
-                    clearable
-                    class="w100"
-                    @change="handleQuery"
-                >
-                  <el-option v-for="item in state.channelOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </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="Hotspot">
-                <el-input v-model="state.queryParams.Hotspot" placeholder="热点分类名称" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </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="OrgId">
-                <el-cascader
-                    :options="state.orgsOptions"
-                    filterable
-                    :props="{ checkStrictly: true, value: 'id', label: 'name', emitPath: false }"
-                    placeholder="请选择接办部门"
-                    clearable
-                    class="w100"
-                    v-model="state.queryParams.OrgId"
-                    ref="cascadeRef"
-                    @change="handleQuery"
-                >
-                </el-cascader>
-              </el-form-item>
-            </el-col>
-          </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="NameOrNo">
-                <el-input v-model="state.queryParams.NameOrNo" placeholder="受理人/坐席工号" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </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="ProvinceNo">
-                <el-input v-model="state.queryParams.ProvinceNo" placeholder="省工单编码" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </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="FromPhone">
-                <el-input v-model="state.queryParams.FromPhone" placeholder="来电号码" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </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="PhoneNo">
-                <el-input v-model="state.queryParams.PhoneNo" placeholder="联系电话" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </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="PushTypeCode">
-                <el-select v-model="state.queryParams.PushTypeCode" placeholder="请选择推送分类" clearable class="w100" @change="handleQuery">
-                  <el-option v-for="item in state.pushTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </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-date-picker
-                    v-model="state.queryParams.exTime"
-                    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-col>
-          </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="ActualHandlerName">
-                <el-input v-model="state.queryParams.ActualHandlerName" placeholder="接办人" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </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="IsScreen">
-                <el-select v-model="state.queryParams.IsScreen" placeholder="请选择是否甄别" class="w100" clearable @change="handleQuery">
-                  <el-option label="是" :value="true" />
-                  <el-option label="否" :value="false" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </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="CurrentStepCode">
-                <el-select v-model="state.queryParams.CurrentStepCode" placeholder="请选择当前节点" clearable class="w100" @change="handleQuery">
-                  <el-option v-for="item in state.currentStepOptions" :value="item.key" :key="item.key" :label="item.value" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </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="doneTime">
-                <el-date-picker
-                    v-model="state.queryParams.doneTime"
-                    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-col>
-          </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="IsOverTime">
-                <el-select v-model="state.queryParams.IsOverTime" placeholder="请选择是否超期" class="w100" clearable @change="handleQuery">
-                  <el-option label="是" :value="true" />
-                  <el-option label="否" :value="false" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </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="IdentityType">
-                <el-select v-model="state.queryParams.IdentityType" placeholder="请选择来电主体" clearable class="w100" @change="handleQuery">
-                  <el-option v-for="item in state.identityTypeOptions" :value="item.key" :key="item.key" :label="item.value" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-					</transition>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label=" ">
-							<div class="flex-end w100">
-								<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
-								<el-button @click="resetQuery(ruleFormRef)" v-waves class="default-button" :loading="state.loading">
-									<SvgIcon name="ele-Refresh" class="mr5" />重置
-								</el-button>
-								<el-button link type="primary" @click="closeSearch" :loading="state.loading">
-									{{ searchCol ? '展开' : '收起' }}
-									<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
-								</el-button>
-							</div>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="statistics-center-detail-tel-frequently layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -270,6 +11,265 @@
 				v-model:page-index="state.queryParams.PageIndex"
 				v-model:page-size="state.queryParams.PageSize"
 			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
+            <el-row :gutter="10">
+              <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" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="工单编码" prop="No">
+                  <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <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"
+                      :default-time="defaultTimeStartEnd"
+                  />
+                </el-form-item>
+              </el-col>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="来电人姓名" prop="FromName">
+                    <el-input v-model="state.queryParams.FromName" placeholder="来电人姓名" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="事发地址" prop="AreaCode">
+                    <el-cascader
+                        :options="state.areaOptions"
+                        filterable
+                        :props="{ checkStrictly: true, value: 'id', label: 'areaName',emitPath:false }"
+                        placeholder="请选择事发地址"
+                        clearable
+                        class="w100"
+                        v-model="state.queryParams.AreaCode"
+                        @change="handleQuery"
+                    >
+                    </el-cascader>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="转接来源" prop="TransferPhone">
+                    <el-input v-model="state.queryParams.TransferPhone" placeholder="转接来源" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="Status">
+                    <el-select v-model="state.queryParams.Status" placeholder="请选择工单状态" clearable class="w100" @change="handleQuery">
+                      <el-option v-for="item in state.orderStatusOptions" :value="item.key" :key="item.key" :label="item.value" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="AcceptType">
+                    <el-select
+                        v-model="state.queryParams.AcceptType"
+                        placeholder="请选择受理类型"
+                        clearable
+                        class="w100"
+                        @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-col>
+              </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="Channel">
+                    <el-select
+                        v-model="state.queryParams.Channel"
+                        placeholder="请选择来源渠道"
+                        clearable
+                        class="w100"
+                        @change="handleQuery"
+                    >
+                      <el-option v-for="item in state.channelOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="Hotspot">
+                    <el-input v-model="state.queryParams.Hotspot" placeholder="热点分类名称" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="OrgId">
+                    <el-cascader
+                        :options="state.orgsOptions"
+                        filterable
+                        :props="{ checkStrictly: true, value: 'id', label: 'name', emitPath: false }"
+                        placeholder="请选择接办部门"
+                        clearable
+                        class="w100"
+                        v-model="state.queryParams.OrgId"
+                        ref="cascadeRef"
+                        @change="handleQuery"
+                    >
+                    </el-cascader>
+                  </el-form-item>
+                </el-col>
+              </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="NameOrNo">
+                    <el-input v-model="state.queryParams.NameOrNo" placeholder="受理人/坐席工号" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="ProvinceNo">
+                    <el-input v-model="state.queryParams.ProvinceNo" placeholder="省工单编码" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="FromPhone">
+                    <el-input v-model="state.queryParams.FromPhone" placeholder="来电号码" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="PhoneNo">
+                    <el-input v-model="state.queryParams.PhoneNo" placeholder="联系电话" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="PushTypeCode">
+                    <el-select v-model="state.queryParams.PushTypeCode" placeholder="请选择推送分类" clearable class="w100" @change="handleQuery">
+                      <el-option v-for="item in state.pushTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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-date-picker
+                        v-model="state.queryParams.exTime"
+                        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-col>
+              </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="ActualHandlerName">
+                    <el-input v-model="state.queryParams.ActualHandlerName" placeholder="接办人" clearable @keyup.enter="handleQuery" />
+                  </el-form-item>
+                </el-col>
+              </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="IsScreen">
+                    <el-select v-model="state.queryParams.IsScreen" placeholder="请选择是否甄别" class="w100" clearable @change="handleQuery">
+                      <el-option label="是" :value="true" />
+                      <el-option label="否" :value="false" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="CurrentStepCode">
+                    <el-select v-model="state.queryParams.CurrentStepCode" placeholder="请选择当前节点" clearable class="w100" @change="handleQuery">
+                      <el-option v-for="item in state.currentStepOptions" :value="item.key" :key="item.key" :label="item.value" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="doneTime">
+                    <el-date-picker
+                        v-model="state.queryParams.doneTime"
+                        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-col>
+              </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="IsOverTime">
+                    <el-select v-model="state.queryParams.IsOverTime" placeholder="请选择是否超期" class="w100" clearable @change="handleQuery">
+                      <el-option label="是" :value="true" />
+                      <el-option label="否" :value="false" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="IdentityType">
+                    <el-select v-model="state.queryParams.IdentityType" placeholder="请选择来电主体" clearable class="w100" @change="handleQuery">
+                      <el-option v-for="item in state.identityTypeOptions" :value="item.key" :key="item.key" :label="item.value" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label=" ">
+                  <div class="flex-end w100">
+                    <el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
+                    <el-button @click="resetQuery(ruleFormRef)" v-waves class="default-button" :loading="state.loading">
+                      <SvgIcon name="ele-Refresh" class="mr5" />重置
+                    </el-button>
+                    <el-button link type="primary" @click="closeSearch" :loading="state.loading">
+                      {{ searchCol ? '展开' : '收起' }}
+                      <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
+                    </el-button>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+        </template>
 				<template #expiredStatusText="{ row }">
 					<span :class="'overdue-status-' + row.expiredStatus" :title="row.expiredStatusText"></span>
 				</template>
@@ -280,7 +280,7 @@
           <order-detail :order="row" @updateList="queryList" />
         </template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="telFrequentlyDetail">
@@ -301,7 +301,7 @@ const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/
 const state = reactive<any>({
 	queryParams: {
 		PageIndex: 1, // 当前页
-		PageSize: 10, // 每页条数
+		PageSize: 20, // 每页条数
 		// 查询条件
     No: null, // 工单编码
     ProvinceNo: null, // 省工单编码

+ 59 - 59
src/views/statistics/center/detailWrongItem.vue

@@ -1,61 +1,6 @@
 <template>
-	<div class="statistics-center-detail-wrong-item-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent>
-				<el-row :gutter="20">
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="部门名称" prop="OrgName">
-							<el-input v-model="state.queryParams.OrgName" placeholder="部门名称" clearable @keyup.enter="handleQuery" class="keyword-input" />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<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-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="统计时间" prop="crTime">
-							<el-date-picker
-								v-model="state.queryParams.crTime"
-								type="daterange"
-								unlink-panels
-								range-separator="至"
-								start-placeholder="开始时间"
-								end-placeholder="结束时间"
-								:shortcuts="shortcuts"
-								@change="handleQuery"
-								value-format="YYYY-MM-DD"
-								:clearable="false"
-							/>
-						</el-form-item>
-					</el-col>
-					<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="ErrorName">
-								<el-select v-model="state.queryParams.ErrorName" placeholder="请选择错误类型" clearable class="w100" @change="handleQuery">
-									<el-option v-for="item in reTransactErrorType" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</transition>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="">
-							<div class="flex-end w100">
-								<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 link type="primary" @click="closeSearch" :loading="state.loading">
-									{{ searchCol ? '展开' : '收起' }}
-									<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
-								</el-button>
-							</div>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="statistics-center-detail-wrong-item-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -69,11 +14,66 @@
 				:exportMethod="centerReturnErrorDetailExport"
 				:exportParams="requestParams"
 			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent>
+            <el-row :gutter="20">
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="部门名称" prop="OrgName">
+                  <el-input v-model="state.queryParams.OrgName" placeholder="部门名称" clearable @keyup.enter="handleQuery" class="keyword-input" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <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-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="统计时间" prop="crTime">
+                  <el-date-picker
+                      v-model="state.queryParams.crTime"
+                      type="daterange"
+                      unlink-panels
+                      range-separator="至"
+                      start-placeholder="开始时间"
+                      end-placeholder="结束时间"
+                      :shortcuts="shortcuts"
+                      @change="handleQuery"
+                      value-format="YYYY-MM-DD"
+                      :clearable="false"
+                  />
+                </el-form-item>
+              </el-col>
+              <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="ErrorName">
+                    <el-select v-model="state.queryParams.ErrorName" placeholder="请选择错误类型" clearable class="w100" @change="handleQuery">
+                      <el-option v-for="item in reTransactErrorType" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="">
+                  <div class="flex-end w100">
+                    <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 link type="primary" @click="closeSearch" :loading="state.loading">
+                      {{ searchCol ? '展开' : '收起' }}
+                      <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
+                    </el-button>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+        </template>
 				<template #title="{ row }">
 					<order-detail :order="row.orderSpecial.order" @updateList="queryList">{{ row.orderSpecial?.order?.title }}</order-detail>
 				</template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsCenterDetailWrongItem">
@@ -123,7 +123,7 @@ const state = reactive<any>({
 		ErrorName: null, // 错误类型
 		crTime: defaultDate,
 		PageIndex: 1,
-		PageSize: 10,
+		PageSize: 20,
 	},
 	tableData: [], //表单
 	loading: false, // 加载

+ 70 - 70
src/views/statistics/center/frequentlyEvent.vue

@@ -1,72 +1,6 @@
 <template>
-	<div class="statistics-center-frequently-event-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
-				<el-row :gutter="10">
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="受理时间" prop="crTime">
-							<el-date-picker
-								v-model="state.queryParams.crTime"
-								type="daterange"
-								unlink-panels
-								range-separator="至"
-								start-placeholder="开始时间"
-								end-placeholder="结束时间"
-								:shortcuts="shortcuts"
-								@change="handleQuery"
-								value-format="YYYY-MM-DD"
-								:clearable="false"
-							/>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="受理类型" prop="AcceptType">
-							<el-select v-model="state.queryParams.AcceptType" placeholder="请选择受理类型" clearable class="w100" @change="handleQuery">
-								<el-option v-for="item in acceptTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-							</el-select>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="热点分类" prop="Hotspot">
-							<el-input v-model="state.queryParams.Hotspot" placeholder="热点分类名称" clearable @keyup.enter="handleQuery" />
-						</el-form-item>
-					</el-col>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<el-form-item label="事发地址" prop="AreaCode">
-								<el-cascader
-									:options="areaOptions"
-									filterable
-									:props="{ checkStrictly: true, value: 'id', label: 'areaName',emitPath:false }"
-									placeholder="请选择事发地址"
-									clearable
-									class="w100"
-									v-model="state.queryParams.AreaCode"
-									@change="handleQuery"
-									ref="areaRef"
-								>
-								</el-cascader>
-							</el-form-item>
-						</el-col>
-					</transition>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label=" ">
-							<div class="flex-end w100">
-								<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 link type="primary" @click="closeSearch" :loading="state.loading">
-									{{ searchCol ? '展开' : '收起' }}
-									<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
-								</el-button>
-							</div>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="statistics-center-frequently-event-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -78,13 +12,79 @@
 				v-model:page-size="state.queryParams.PageSize"
 				border
 			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
+            <el-row :gutter="10">
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="受理时间" prop="crTime">
+                  <el-date-picker
+                      v-model="state.queryParams.crTime"
+                      type="daterange"
+                      unlink-panels
+                      range-separator="至"
+                      start-placeholder="开始时间"
+                      end-placeholder="结束时间"
+                      :shortcuts="shortcuts"
+                      @change="handleQuery"
+                      value-format="YYYY-MM-DD"
+                      :clearable="false"
+                  />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="受理类型" prop="AcceptType">
+                  <el-select v-model="state.queryParams.AcceptType" placeholder="请选择受理类型" clearable class="w100" @change="handleQuery">
+                    <el-option v-for="item in acceptTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="热点分类" prop="Hotspot">
+                  <el-input v-model="state.queryParams.Hotspot" placeholder="热点分类名称" clearable @keyup.enter="handleQuery" />
+                </el-form-item>
+              </el-col>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="事发地址" prop="AreaCode">
+                    <el-cascader
+                        :options="areaOptions"
+                        filterable
+                        :props="{ checkStrictly: true, value: 'id', label: 'areaName',emitPath:false }"
+                        placeholder="请选择事发地址"
+                        clearable
+                        class="w100"
+                        v-model="state.queryParams.AreaCode"
+                        @change="handleQuery"
+                        ref="areaRef"
+                    >
+                    </el-cascader>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label=" ">
+                  <div class="flex-end w100">
+                    <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 link type="primary" @click="closeSearch" :loading="state.loading">
+                      {{ searchCol ? '展开' : '收起' }}
+                      <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
+                    </el-button>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+        </template>
 				<!--        <template #tableHeader="scope">
           <el-button type="primary" @click="onAnalysis" :disabled="!scope.isSelected">
             <SvgIcon name="ele-Document" class="mr5" />生成分析报告
           </el-button>
         </template>-->
 			</ProTable>
-		</el-card>
+		</div>
 		<!--    <el-dialog v-model="state.dialogVisible" width="500px" draggable title="生成分析报告" @close="close" destroy-on-close>
       <el-form :model="state.ruleForm" label-width="90px" ref="ruleFormRef">
         <el-form-item label="回访人" prop="employee" :rules="[{ required: true, message: '请选择回访人', trigger: 'change' }]">
@@ -142,7 +142,7 @@ const state = reactive<any>({
 		StartTime: null,
 		EndTime: null,
 		PageIndex: 1,
-		PageSize: 10,
+		PageSize: 20,
 	},
 	tableData: [], //表单
 	loading: false, // 加载

+ 31 - 31
src/views/statistics/center/frequentlyTel.vue

@@ -1,33 +1,6 @@
 <template>
-	<div class="statistics-center-frequently-tel-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="来电号码" prop="PhoneNum">
-					<el-input v-model="state.queryParams.PhoneNum" placeholder="来电号码" clearable @keyup.enter="handleQuery" class="keyword-input" />
-				</el-form-item>
-				<el-form-item label="时间段" prop="crTime">
-					<el-date-picker
-						v-model="state.queryParams.crTime"
-						type="daterange"
-						unlink-panels
-						range-separator="至"
-						start-placeholder="开始时间"
-						end-placeholder="结束时间"
-						:shortcuts="shortcuts"
-						@change="handleQuery"
-						value-format="YYYY-MM-DD"
-						:clearable="false"
-					/>
-				</el-form-item>
-				<el-form-item label-width="0">
-					<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-form-item>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="statistics-center-frequently-tel-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -39,8 +12,35 @@
 				v-model:page-size="state.queryParams.PageSize"
 				border
 			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+            <el-form-item label="来电号码" prop="PhoneNum">
+              <el-input v-model="state.queryParams.PhoneNum" placeholder="来电号码" clearable @keyup.enter="handleQuery" class="keyword-input" />
+            </el-form-item>
+            <el-form-item label="时间段" prop="crTime">
+              <el-date-picker
+                  v-model="state.queryParams.crTime"
+                  type="daterange"
+                  unlink-panels
+                  range-separator="至"
+                  start-placeholder="开始时间"
+                  end-placeholder="结束时间"
+                  :shortcuts="shortcuts"
+                  @change="handleQuery"
+                  value-format="YYYY-MM-DD"
+                  :clearable="false"
+              />
+            </el-form-item>
+            <el-form-item label-width="0">
+              <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-form-item>
+          </el-form>
+        </template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsCenterFrequentlyTel">
@@ -74,7 +74,7 @@ const state = reactive<any>({
 	queryParams: {
 		// 查询条件
 		PageIndex: 1,
-		PageSize: 10,
+		PageSize: 20,
 		PhoneNum: null, // 来电号码
 		crTime: defaultDate,
     StartTime:null,

+ 99 - 51
src/views/statistics/center/transferCity.vue

@@ -1,62 +1,102 @@
 <template>
-	<div class="statistics-center-transfer-city-container layout-pd">
-		<el-card shadow="never">
+	<div class="statistics-center-transfer-city-container layout-padding">
+		<div class="layout-padding-auto layout-padding-view pd20">
 			<el-tabs v-model="state.queryParams.direction" @tab-change="handleQuery">
 				<el-tab-pane name="out" label="转出列表"></el-tab-pane>
 				<el-tab-pane name="in" label="转入列表"></el-tab-pane>
 			</el-tabs>
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item prop="cityName">
-					<el-input v-model="state.queryParams.cityName" placeholder="互转城市名称" clearable @keyup.enter="handleQuery" class="keyword-input" />
-				</el-form-item>
-				<el-form-item prop="crTime">
-					<el-date-picker
-						v-model="state.queryParams.crTime"
-						type="daterange"
-						unlink-panels
-						range-separator="至"
-						start-placeholder="开始时间"
-						end-placeholder="结束时间"
-						:shortcuts="shortcuts"
-						@change="handleQuery"
-						value-format="YYYY-MM-DD"
-						:clearable="false"
-					/>
-				</el-form-item>
-				<el-form-item label-width="0">
-					<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-form-item>
-			</el-form>
 			<ProTable
 				ref="proTableRef"
-				:columns="columns"
+				:columns="columnsOut"
 				:data="state.tableData"
 				@updateTable="queryList"
 				:loading="state.loading"
 				:total="state.total"
 				v-model:page-index="state.queryParams.PageIndex"
 				v-model:page-size="state.queryParams.PageSize"
-				border
-				:key="Math.random()"
+				v-if="state.queryParams.direction === 'out'"
 			>
+				<template #table-search>
+					<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+						<el-form-item prop="CiryName">
+							<el-input v-model="state.queryParams.CiryName" placeholder="互转城市名称" clearable @keyup.enter="handleQuery" class="keyword-input" />
+						</el-form-item>
+						<el-form-item prop="crTime">
+							<el-date-picker
+								v-model="state.queryParams.crTime"
+								type="daterange"
+								unlink-panels
+								range-separator="至"
+								start-placeholder="开始时间"
+								end-placeholder="结束时间"
+								:shortcuts="shortcuts"
+								@change="handleQuery"
+								value-format="YYYY-MM-DD"
+								:clearable="false"
+							/>
+						</el-form-item>
+						<el-form-item label-width="0">
+							<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-form-item>
+					</el-form>
+				</template>
 			</ProTable>
-		</el-card>
+			<ProTable
+				ref="proTableRef"
+				:columns="columnsIn"
+				:data="state.tableData"
+				@updateTable="queryList"
+				:loading="state.loading"
+				:total="state.total"
+				v-model:page-index="state.queryParams.PageIndex"
+				v-model:page-size="state.queryParams.PageSize"
+				v-else
+			>
+				<template #table-search>
+					<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+						<el-form-item prop="CiryName">
+							<el-input v-model="state.queryParams.CiryName" placeholder="互转城市名称" clearable @keyup.enter="handleQuery" class="keyword-input" />
+						</el-form-item>
+						<el-form-item prop="crTime">
+							<el-date-picker
+								v-model="state.queryParams.crTime"
+								type="daterange"
+								unlink-panels
+								range-separator="至"
+								start-placeholder="开始时间"
+								end-placeholder="结束时间"
+								:shortcuts="shortcuts"
+								@change="handleQuery"
+								value-format="YYYY-MM-DD"
+								:clearable="false"
+							/>
+						</el-form-item>
+						<el-form-item label-width="0">
+							<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-form-item>
+					</el-form>
+				</template>
+			</ProTable>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsCenterTransferCity">
 import { onMounted, reactive, ref } from 'vue';
 import { formatDate } from '@/utils/formatTime';
 import { cityConversionIn, cityConversionOut } from '@/api/statistics/center';
-import { defaultDate, shortcuts } from "@/utils/constants";
+import { defaultDate, shortcuts } from '@/utils/constants';
 import { FormInstance } from 'element-plus';
+import Other from '@/utils/other';
 
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
-const columns = ref<any[]>([]);
-const columnsOut = [
+const columnsOut = ref<any[]>([
 	{ type: 'index', fixed: 'left', width: 55, label: '序号', align: 'center' },
 	{ prop: 'orderCode', label: '受理编号' },
 	{
@@ -77,8 +117,8 @@ const columnsOut = [
 	},
 	{ prop: 'result', label: '同步返回', minWidth: 300 },
 	{ prop: 'cityName', label: '转入市州' },
-];
-const columnsInt = [
+]);
+const columnsIn = ref<any[]>([
 	{ type: 'index', fixed: 'left', width: 55, label: '序号', align: 'center' },
 	{ prop: 'orderCode', label: '转入受理编号' },
 	{
@@ -91,16 +131,18 @@ const columnsInt = [
 	},
 	{ prop: 'result', label: '同步转入', minWidth: 400 },
 	{ prop: 'cityName', label: '来源市州' },
-];
+]);
 // 定义变量内容
 const ruleFormRef = ref<RefType>(); // 表单ref
 const state = reactive<any>({
 	queryParams: {
 		// 查询条件
 		PageIndex: 1,
-		PageSize: 10,
+		PageSize: 20,
 		CiryName: null, // 城市名称
 		crTime: defaultDate,
+		StartTime: null,
+		EndTime: null,
 		direction: 'out',
 	},
 	tableData: [], //表单
@@ -119,26 +161,21 @@ const resetQuery = (formEl: FormInstance | undefined) => {
 	queryList();
 };
 /** 获取列表 */
+const requestParams = ref({});
 const queryList = () => {
 	state.loading = true;
-	columns.value = state.queryParams.direction === 'out' ? columnsOut : columnsInt;
-  const StartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0];
-  const EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
-	const request = {
-		StartTime,
-		EndTime,
-		CiryName: state.queryParams.CiryName,
-		PageIndex: state.queryParams.PageIndex,
-		PageSize: state.queryParams.PageSize,
-	};
-	if (state.queryParams.direction === 'out') {
-		cityConversionOut(request).then((res) => {
+	requestParams.value = Other.deepClone(state.queryParams);
+	requestParams.value.StartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0];
+	requestParams.value.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
+	Reflect.deleteProperty(requestParams.value, 'crTime');
+	if (requestParams.value === 'out') {
+		cityConversionOut(requestParams.value).then((res) => {
 			state.tableData = res.result.items;
 			state.total = res.result.total;
 			state.loading = false;
 		});
 	} else {
-		cityConversionIn(request).then((res) => {
+		cityConversionIn(requestParams.value).then((res) => {
 			state.tableData = res.result.items;
 			state.total = res.result.total;
 			state.loading = false;
@@ -149,3 +186,14 @@ onMounted(() => {
 	queryList();
 });
 </script>
+<style scoped lang="scss">
+.statistics-center-transfer-city-container {
+	.arrow {
+		transition: transform var(--el-transition-duration);
+		cursor: pointer;
+	}
+	.arrow.is-reverse {
+		transform: rotateZ(-180deg);
+	}
+}
+</style>

+ 32 - 32
src/views/statistics/center/wrongItem.vue

@@ -1,34 +1,6 @@
 <template>
-	<div class="statistics-center-wrong-item-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="部门名称" prop="OrgName">
-					<el-input v-model="state.queryParams.OrgName" placeholder="部门名称" clearable @keyup.enter="handleQuery" class="keyword-input" />
-				</el-form-item>
-				<el-form-item label="时间段" prop="crTime">
-					<el-date-picker
-						v-model="state.queryParams.crTime"
-						type="daterange"
-						unlink-panels
-						range-separator="至"
-						start-placeholder="开始时间"
-						end-placeholder="结束时间"
-						:shortcuts="shortcuts"
-						@change="handleQuery"
-						value-format="YYYY-MM-DD"
-						:clearable="false"
-					/>
-				</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 type="primary" @click="onDetail" :loading="state.loading"><SvgIcon name="ele-List" class="mr5" /> 回退错件明细 </el-button>
-				</el-form-item>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="statistics-center-wrong-item-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -45,8 +17,36 @@
 				:exportMethod="centerReturnErrorExport"
 				:exportParams="requestParams"
 			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+            <el-form-item label="部门名称" prop="OrgName">
+              <el-input v-model="state.queryParams.OrgName" placeholder="部门名称" clearable @keyup.enter="handleQuery" class="keyword-input" />
+            </el-form-item>
+            <el-form-item label="时间段" prop="crTime">
+              <el-date-picker
+                  v-model="state.queryParams.crTime"
+                  type="daterange"
+                  unlink-panels
+                  range-separator="至"
+                  start-placeholder="开始时间"
+                  end-placeholder="结束时间"
+                  :shortcuts="shortcuts"
+                  @change="handleQuery"
+                  value-format="YYYY-MM-DD"
+                  :clearable="false"
+              />
+            </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 type="primary" @click="onDetail" :loading="state.loading"><SvgIcon name="ele-List" class="mr5" /> 回退错件明细 </el-button>
+            </el-form-item>
+          </el-form>
+        </template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsCenterWrongItem">
@@ -81,7 +81,7 @@ const state = reactive<any>({
 	queryParams: {
 		// 查询条件
 		PageIndex: 1,
-		PageSize: 10,
+		PageSize: 20,
 		OrgName: null, // 关键词
 		crTime: defaultDate, // 时间默认今天开始到今天结束
 		SortField: null,

+ 30 - 30
src/views/statistics/order/centerCount.vue

@@ -1,33 +1,6 @@
 <template>
-	<div class="statistics-order-center-count-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="姓名" prop="Keyword">
-					<el-input v-model="state.queryParams.Keyword" placeholder="姓名" clearable @keyup.enter="handleQuery" class="keyword-input" />
-				</el-form-item>
-				<el-form-item label="时间段" prop="crTime">
-					<el-date-picker
-						v-model="state.queryParams.crTime"
-						type="daterange"
-						unlink-panels
-						range-separator="至"
-						start-placeholder="开始时间"
-						end-placeholder="结束时间"
-						:shortcuts="shortcuts"
-						@change="handleQuery"
-						value-format="YYYY-MM-DD"
-						:clearable="false"
-					/>
-				</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-form-item>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
+	<div class="statistics-order-center-count-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -42,8 +15,35 @@
 				:summary-method="getSummaries"
 				role-key="userId"
 			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+            <el-form-item label="姓名" prop="Keyword">
+              <el-input v-model="state.queryParams.Keyword" placeholder="姓名" clearable @keyup.enter="handleQuery" class="keyword-input" />
+            </el-form-item>
+            <el-form-item label="时间段" prop="crTime">
+              <el-date-picker
+                  v-model="state.queryParams.crTime"
+                  type="daterange"
+                  unlink-panels
+                  range-separator="至"
+                  start-placeholder="开始时间"
+                  end-placeholder="结束时间"
+                  :shortcuts="shortcuts"
+                  @change="handleQuery"
+                  value-format="YYYY-MM-DD"
+                  :clearable="false"
+              />
+            </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-form-item>
+          </el-form>
+        </template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsOrderCenter">

+ 18 - 21
src/views/statistics/order/detailVisitDiscontent.vue

@@ -1,22 +1,6 @@
 <template>
-	<div class="business-visit-table-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="关键字" prop="Keyword">
-					<el-input v-model="state.queryParams.Keyword" placeholder="工单编码/标题" clearable @keyup.enter="handleQuery" class="keyword-input" />
-				</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)" v-waves class="default-button" :loading="state.loading">
-						<SvgIcon name="ele-Refresh" class="mr5" />重置
-					</el-button>
-				</el-form-item>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
-			<!--       :toolButton="['refresh', 'setting', 'exportCurrent', 'exportAll']"
-          :exportMethod="orderSourceListDetailExport"
-          :exportParams="requestParams"   -->
+	<div class="business-visit-table-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -28,6 +12,19 @@
 				v-model:page-size="state.queryParams.PageSize"
 				:key="Math.random()"
 			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+            <el-form-item label="关键字" prop="Keyword">
+              <el-input v-model="state.queryParams.Keyword" placeholder="工单编码/标题" clearable @keyup.enter="handleQuery" class="keyword-input" />
+            </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)" v-waves class="default-button" :loading="state.loading">
+                <SvgIcon name="ele-Refresh" class="mr5" />重置
+              </el-button>
+            </el-form-item>
+          </el-form>
+        </template>
 				<template #title="{ row }">
 					<order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
 				</template>
@@ -37,7 +34,7 @@
 					<order-detail :order="row.order" @updateList="queryList" />
 				</template>
 			</ProTable>
-		</el-card>
+		</div>
 		<!-- 回访详情 -->
 		<visit-detail-com ref="visitDetailRef" @updateList="queryList" />
 	</div>
@@ -62,14 +59,14 @@ const state = reactive<any>({
 	queryParams: {
 		// 查询条件
 		PageIndex: 1,
-		PageSize: 10,
+		PageSize: 20,
 		Keyword: null, // 关键字
 	},
 	tableData: [], //表单
 	loading: false, // 加载
 	total: 0, // 总数
 });
-const columns = ref([
+const columns = ref<any[]>([
 	{ prop: 'order.no', label: '工单编码', minWidth: 140 },
 	{ prop: 'order.isProvinceText', label: '省/市工单', minWidth: 90 },
 	{ prop: 'order.title', label: '工单标题', minWidth: 200 },

+ 30 - 31
src/views/statistics/order/visitDiscontent.vue

@@ -1,34 +1,6 @@
 <template>
-	<div class="statistics-order-visit-discontent-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="部门名称" prop="OrgName">
-					<el-input v-model="state.queryParams.OrgName" placeholder="部门名称" clearable @keyup.enter="handleQuery" class="keyword-input" />
-				</el-form-item>
-				<el-form-item label="时间段" prop="crTime">
-					<el-date-picker
-						v-model="state.queryParams.crTime"
-						type="daterange"
-						unlink-panels
-						range-separator="至"
-						start-placeholder="开始时间"
-						end-placeholder="结束时间"
-						:shortcuts="shortcuts"
-						@change="handleQuery"
-						value-format="YYYY-MM-DD"
-						:clearable="false"
-					/>
-				</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-form-item>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
-			<!-- 表格 -->
+	<div class="statistics-order-visit-discontent-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -40,8 +12,35 @@
 				:key="Math.random()"
 				show-summary
 			>
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+            <el-form-item label="部门名称" prop="OrgName">
+              <el-input v-model="state.queryParams.OrgName" placeholder="部门名称" clearable @keyup.enter="handleQuery" class="keyword-input" />
+            </el-form-item>
+            <el-form-item label="时间段" prop="crTime">
+              <el-date-picker
+                  v-model="state.queryParams.crTime"
+                  type="daterange"
+                  unlink-panels
+                  range-separator="至"
+                  start-placeholder="开始时间"
+                  end-placeholder="结束时间"
+                  :shortcuts="shortcuts"
+                  @change="handleQuery"
+                  value-format="YYYY-MM-DD"
+                  :clearable="false"
+              />
+            </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-form-item>
+          </el-form>
+        </template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsVisitDiscontent">

+ 137 - 136
src/views/todo/center/index.vue

@@ -1,129 +1,6 @@
 <template>
-	<div class="todo-center-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px" class="mb10">
-				<el-row :gutter="10">
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="工单标题" prop="Title">
-							<el-input v-model="state.queryParams.Title" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="工单编码" prop="No">
-							<el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="生成时间" prop="scTime">
-							<el-date-picker
-								v-model="state.queryParams.scTime"
-								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-col>
-					<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="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-col>
-					</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="StepName">
-								<el-select v-model="state.queryParams.StepName" placeholder="请选择当前节点" clearable class="w100" @change="handleQuery">
-									<el-option v-for="item in state.stepNamesOptions" :value="item" :key="item" :label="item" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</transition>
-          <transition name="el-zoom-in-top" v-show="!searchCol">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-              <el-form-item label="派单员" prop="CenterToOrgHandlerName">
-                <el-input v-model="state.queryParams.CenterToOrgHandlerName" placeholder="派单员" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </transition>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<el-form-item label="是否紧急" prop="IsUrgent">
-								<el-select v-model="state.queryParams.IsUrgent" placeholder="请选择是否紧急" clearable class="w100" @change="handleQuery">
-									<el-option :value="true" label="紧急" />
-									<el-option :value="false" label="不紧急" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</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="CurrentHandleOrgName">
-								<el-input v-model="state.queryParams.CurrentHandleOrgName" placeholder="接办部门名称" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</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="Status">
-								<el-select v-model="state.queryParams.Status" placeholder="请选择工单状态" clearable class="w100" @change="handleQuery">
-									<el-option v-for="item in state.orderStatusOptions" :value="item.key" :key="item.key" :label="item.value" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</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="AcceptorName">
-								<el-input v-model="state.queryParams.AcceptorName" placeholder="受理人" clearable @keyup.enter="handleQuery" />
-							</el-form-item>
-						</el-col>
-					</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="ExpiredStatus">
-								<el-select v-model="state.queryParams.ExpiredStatus" placeholder="请选择超期状态" clearable class="w100" @change="handleQuery">
-									<el-option v-for="item in state.expiredStatusOptions" :value="item.key" :key="item.key" :label="item.value" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</transition>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="">
-							<div class="flex-end w100">
-								<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 link type="primary" @click="closeSearch" :loading="state.loading">
-									{{ searchCol ? '展开' : '收起' }}
-									<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
-								</el-button>
-							</div>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
-			<!--      :toolButton="['refresh', 'setting', 'exportCurrent', 'exportAll']"-->
+	<div class="todo-center-container layout-padding">
+		<div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -135,6 +12,130 @@
 				v-model:page-size="state.queryParams.PageSize"
 				:key="Math.random()"
 			>
+				<template #table-search>
+					<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px" class="mb10">
+						<el-row :gutter="10">
+							<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+								<el-form-item label="工单标题" prop="Title">
+									<el-input v-model="state.queryParams.Title" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
+								</el-form-item>
+							</el-col>
+							<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+								<el-form-item label="工单编码" prop="No">
+									<el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
+								</el-form-item>
+							</el-col>
+							<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+								<el-form-item label="生成时间" prop="scTime">
+									<el-date-picker
+										v-model="state.queryParams.scTime"
+										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-col>
+							<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="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-col>
+							</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="StepName">
+										<el-select v-model="state.queryParams.StepName" placeholder="请选择当前节点" clearable class="w100" @change="handleQuery">
+											<el-option v-for="item in state.stepNamesOptions" :value="item" :key="item" :label="item" />
+										</el-select>
+									</el-form-item>
+								</el-col>
+							</transition>
+							<transition name="el-zoom-in-top" v-show="!searchCol">
+								<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+									<el-form-item label="派单员" prop="CenterToOrgHandlerName">
+										<el-input v-model="state.queryParams.CenterToOrgHandlerName" placeholder="派单员" clearable @keyup.enter="handleQuery" />
+									</el-form-item>
+								</el-col>
+							</transition>
+							<transition name="el-zoom-in-top" v-show="!searchCol">
+								<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+									<el-form-item label="是否紧急" prop="IsUrgent">
+										<el-select v-model="state.queryParams.IsUrgent" placeholder="请选择是否紧急" clearable class="w100" @change="handleQuery">
+											<el-option :value="true" label="紧急" />
+											<el-option :value="false" label="不紧急" />
+										</el-select>
+									</el-form-item>
+								</el-col>
+							</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="CurrentHandleOrgName">
+										<el-input v-model="state.queryParams.CurrentHandleOrgName" placeholder="接办部门名称" clearable @keyup.enter="handleQuery" />
+									</el-form-item>
+								</el-col>
+							</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="Status">
+										<el-select v-model="state.queryParams.Status" placeholder="请选择工单状态" clearable class="w100" @change="handleQuery">
+											<el-option v-for="item in state.orderStatusOptions" :value="item.key" :key="item.key" :label="item.value" />
+										</el-select>
+									</el-form-item>
+								</el-col>
+							</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="AcceptorName">
+										<el-input v-model="state.queryParams.AcceptorName" placeholder="受理人" clearable @keyup.enter="handleQuery" />
+									</el-form-item>
+								</el-col>
+							</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="ExpiredStatus">
+										<el-select v-model="state.queryParams.ExpiredStatus" placeholder="请选择超期状态" clearable class="w100" @change="handleQuery">
+											<el-option v-for="item in state.expiredStatusOptions" :value="item.key" :key="item.key" :label="item.value" />
+										</el-select>
+									</el-form-item>
+								</el-col>
+							</transition>
+							<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+								<el-form-item label="">
+									<div class="flex-end w100">
+										<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 link type="primary" @click="closeSearch" :loading="state.loading">
+											{{ searchCol ? '展开' : '收起' }}
+											<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
+										</el-button>
+									</div>
+								</el-form-item>
+							</el-col>
+						</el-row>
+					</el-form>
+				</template>
 				<template #tableHeader="scope">
 					<el-button type="primary" @click="onJbExport" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'todo:center:jbdExport'"
 						><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出
@@ -154,7 +155,7 @@
 					<order-detail :order="row" @updateList="queryList" />
 				</template>
 			</ProTable>
-		</el-card>
+		</div>
 		<!-- 工单平移 -->
 		<order-migration ref="orderMigrationRef" @updateList="queryList" />
 	</div>
@@ -181,7 +182,7 @@ const OrderMigration = defineAsyncComponent(() => import('@/views/todo/center/Or
 const state = reactive<any>({
 	queryParams: {
 		PageIndex: 1, // 当前页
-		PageSize: 10, // 每页条数
+		PageSize: 20, // 每页条数
 		Title: null, // 标题
 		No: null, // 工单编号
 		scTime: [], // 生成时间
@@ -191,12 +192,12 @@ const state = reactive<any>({
 		StartTimeSt: null, // 受理开始时间
 		StartTimeEnd: null, // 受理结束时间
 		AcceptorName: null, // 受理人
-    CurrentHandleOrgName: null, // 接办部门
+		CurrentHandleOrgName: null, // 接办部门
 		Status: null, // 工单状态
 		ExpiredStatus: null, // 超期状态
 		StepName: null, // 当前节点名称
 		IsUrgent: null,
-    CenterToOrgHandlerName:null,// 派单员
+		CenterToOrgHandlerName: null, // 派单员
 	},
 	tableData: [], //表单
 	loading: false, // 加载
@@ -230,11 +231,11 @@ const columns = ref<any[]>([
 	{ prop: 'currentStepName', label: '当前节点', minWidth: 100 },
 	{ prop: 'statusText', label: '工单状态', minWidth: 100 },
 	{ prop: 'title', label: '工单标题', minWidth: 200 },
-  { prop: 'centerToOrgHandlerName', label: '派单员', minWidth: 120 },
+	{ prop: 'centerToOrgHandlerName', label: '派单员', minWidth: 120 },
 	{
 		prop: 'startTime',
 		label: '受理时间',
-    minWidth: 160,
+		minWidth: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -242,7 +243,7 @@ const columns = ref<any[]>([
 	{
 		prop: 'expiredTime',
 		label: '工单期满时间',
-    minWidth: 160,
+		minWidth: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.expiredTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -250,7 +251,7 @@ const columns = ref<any[]>([
 	{
 		prop: 'filedTime',
 		label: '办结时间',
-    minWidth: 160,
+		minWidth: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.filedTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -345,9 +346,9 @@ const onSign = (row: any) => {
 const onOrderEdit = (row: any) => {
 	router.push({
 		name: 'orderAccept',
-		query:{
-      id: row.id,
-    }
+		query: {
+			id: row.id,
+		},
 	});
 };
 // 交办单导出

+ 266 - 142
src/views/todo/order/index.vue

@@ -1,139 +1,269 @@
 <template>
-	<div class="todo-order-container layout-pd">
-		<el-card shadow="never">
+	<div class="todo-order-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<el-tabs v-model="state.queryParams.IsHandled" @tab-change="handleQuery">
 				<el-tab-pane name="false" label="工单待办"></el-tab-pane>
 				<el-tab-pane name="true" label="工单已办"></el-tab-pane>
 			</el-tabs>
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent>
-				<el-row :gutter="20">
-					<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" />
-						</el-form-item>
-					</el-col>
-          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-            <el-form-item label="工单编码" prop="No">
-              <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
-            </el-form-item>
-          </el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="生成时间" prop="scTime">
-							<el-date-picker
-								v-model="state.queryParams.scTime"
-								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-col>
-          <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="IsProvince">
-							<el-select v-model="state.queryParams.IsProvince" placeholder="请选择是否省工单" @change="handleQuery">
-								<el-option label="是" value="true" />
-								<el-option label="否" value="false" />
-							</el-select>
-						</el-form-item>
-					</el-col>
-          </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="IsCounterSign">
-								<el-select v-model="state.queryParams.IsCounterSign" placeholder="请选择是否会签" @change="handleQuery">
-									<el-option label="是" value="true" />
-									<el-option label="否" value="" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</transition>
-          <transition name="el-zoom-in-top" v-show="!searchCol">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-              <el-form-item label="是否紧急" prop="IsUrgent">
-                <el-select v-model="state.queryParams.IsUrgent" placeholder="请选择是否紧急" clearable @change="handleQuery">
-                  <el-option :value="true" label="紧急" />
-                  <el-option :value="false" label="不紧急" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </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="ExpiredOrAlmostOverdue">
-								<el-select v-model="state.queryParams.ExpiredOrAlmostOverdue" placeholder="请选择超期状态" @change="handleQuery">
-									<el-option label="已超期" value="true" />
-									<el-option label="即将超期" value="false" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</transition>
-          <transition name="el-zoom-in-top" v-show="!searchCol">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-              <el-form-item label="事发地址" prop="AreaCode">
-                <el-cascader
-                    :options="state.areaOptions"
-                    filterable
-                    :props="{ checkStrictly: true, value: 'id', label: 'areaName', emitPath: false }"
-                    placeholder="请选择事发地址"
-                    clearable
-                    class="w100"
-                    v-model="state.queryParams.AreaCode"
-                    @change="handleQuery"
-                >
-                </el-cascader>
-              </el-form-item>
-            </el-col>
-          </transition>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="">
-							<div class="flex-end w100">
-								<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 link type="primary" @click="closeSearch" :loading="state.loading">
-									{{ searchCol ? '展开' : '收起' }}
-									<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
-								</el-button>
-							</div>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-			<!--      :toolButton="['refresh', 'setting', 'exportCurrent', 'exportAll']"-->
-			<ProTable
-				ref="proTableRef"
-				:columns="columns"
-				:data="state.tableData"
-				@updateTable="queryList"
-				:loading="state.loading"
-				:total="state.total"
-				v-model:page-index="state.queryParams.PageIndex"
-				v-model:page-size="state.queryParams.PageSize"
-				:key="Math.random()"
-			>
-				<template #tableHeader="scope">
-					<el-button type="primary" @click="onJbExport" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'todo:seats:jbdExport'"
-						><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出
-					</el-button>
-				</template>
-				<template #expiredStatusText="{ row }">
-					<span :class="'overdue-status-' + row.expiredStatus" :title="row.expiredStatusText"></span>
-				</template>
-				<template #title="{ row }">
-					<order-detail :order="row" @updateList="queryList">{{ row.title }}</order-detail>
-				</template>
-				<template #operation="{ row }">
-					<order-detail :order="row" @updateList="queryList" />
-				</template>
-			</ProTable>
-		</el-card>
+      <ProTable
+          ref="proTableRef"
+          :columns="columnsTodo"
+          :data="state.tableData"
+          @updateTable="queryList"
+          :loading="state.loading"
+          :total="state.total"
+          v-model:page-index="state.queryParams.PageIndex"
+          v-model:page-size="state.queryParams.PageSize"
+          v-if="state.queryParams.IsHandled === 'false'"
+      >
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent>
+            <el-row :gutter="20">
+              <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" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="工单编码" prop="No">
+                  <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="生成时间" prop="scTime">
+                  <el-date-picker
+                      v-model="state.queryParams.scTime"
+                      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-col>
+              <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="IsProvince">
+                    <el-select v-model="state.queryParams.IsProvince" placeholder="请选择是否省工单" @change="handleQuery">
+                      <el-option label="是" value="true" />
+                      <el-option label="否" value="false" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="IsCounterSign">
+                    <el-select v-model="state.queryParams.IsCounterSign" placeholder="请选择是否会签" @change="handleQuery">
+                      <el-option label="是" value="true" />
+                      <el-option label="否" value="" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="是否紧急" prop="IsUrgent">
+                    <el-select v-model="state.queryParams.IsUrgent" placeholder="请选择是否紧急" clearable @change="handleQuery">
+                      <el-option :value="true" label="紧急" />
+                      <el-option :value="false" label="不紧急" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="ExpiredOrAlmostOverdue">
+                    <el-select v-model="state.queryParams.ExpiredOrAlmostOverdue" placeholder="请选择超期状态" @change="handleQuery">
+                      <el-option label="已超期" value="true" />
+                      <el-option label="即将超期" value="false" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="事发地址" prop="AreaCode">
+                    <el-cascader
+                        :options="state.areaOptions"
+                        filterable
+                        :props="{ checkStrictly: true, value: 'id', label: 'areaName', emitPath: false }"
+                        placeholder="请选择事发地址"
+                        clearable
+                        class="w100"
+                        v-model="state.queryParams.AreaCode"
+                        @change="handleQuery"
+                    >
+                    </el-cascader>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="">
+                  <div class="flex-end w100">
+                    <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 link type="primary" @click="closeSearch" :loading="state.loading">
+                      {{ searchCol ? '展开' : '收起' }}
+                      <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
+                    </el-button>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+        </template>
+        <template #tableHeader="scope">
+          <el-button type="primary" @click="onJbExport" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'todo:seats:jbdExport'"
+          ><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出
+          </el-button>
+        </template>
+        <template #expiredStatusText="{ row }">
+          <span :class="'overdue-status-' + row.expiredStatus" :title="row.expiredStatusText"></span>
+        </template>
+        <template #title="{ row }">
+          <order-detail :order="row" @updateList="queryList">{{ row.title }}</order-detail>
+        </template>
+        <template #operation="{ row }">
+          <order-detail :order="row" @updateList="queryList" />
+        </template>
+      </ProTable>
+      <ProTable
+          ref="proTableRef"
+          :columns="columnsDone"
+          :data="state.tableData"
+          @updateTable="queryList"
+          :loading="state.loading"
+          :total="state.total"
+          v-model:page-index="state.queryParams.PageIndex"
+          v-model:page-size="state.queryParams.PageSize"
+          v-else
+      >
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent>
+            <el-row :gutter="20">
+              <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" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="工单编码" prop="No">
+                  <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="生成时间" prop="scTime">
+                  <el-date-picker
+                      v-model="state.queryParams.scTime"
+                      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-col>
+              <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="IsProvince">
+                    <el-select v-model="state.queryParams.IsProvince" placeholder="请选择是否省工单" @change="handleQuery">
+                      <el-option label="是" value="true" />
+                      <el-option label="否" value="false" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="IsCounterSign">
+                    <el-select v-model="state.queryParams.IsCounterSign" placeholder="请选择是否会签" @change="handleQuery">
+                      <el-option label="是" value="true" />
+                      <el-option label="否" value="" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="是否紧急" prop="IsUrgent">
+                    <el-select v-model="state.queryParams.IsUrgent" placeholder="请选择是否紧急" clearable @change="handleQuery">
+                      <el-option :value="true" label="紧急" />
+                      <el-option :value="false" label="不紧急" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="ExpiredOrAlmostOverdue">
+                    <el-select v-model="state.queryParams.ExpiredOrAlmostOverdue" placeholder="请选择超期状态" @change="handleQuery">
+                      <el-option label="已超期" value="true" />
+                      <el-option label="即将超期" value="false" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="事发地址" prop="AreaCode">
+                    <el-cascader
+                        :options="state.areaOptions"
+                        filterable
+                        :props="{ checkStrictly: true, value: 'id', label: 'areaName', emitPath: false }"
+                        placeholder="请选择事发地址"
+                        clearable
+                        class="w100"
+                        v-model="state.queryParams.AreaCode"
+                        @change="handleQuery"
+                    >
+                    </el-cascader>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="">
+                  <div class="flex-end w100">
+                    <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 link type="primary" @click="closeSearch" :loading="state.loading">
+                      {{ searchCol ? '展开' : '收起' }}
+                      <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
+                    </el-button>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+        </template>
+        <template #tableHeader="scope">
+          <el-button type="primary" @click="onJbExport" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'todo:seats:jbdExport'"
+          ><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出
+          </el-button>
+        </template>
+        <template #expiredStatusText="{ row }">
+          <span :class="'overdue-status-' + row.expiredStatus" :title="row.expiredStatusText"></span>
+        </template>
+        <template #title="{ row }">
+          <order-detail :order="row" @updateList="queryList">{{ row.title }}</order-detail>
+        </template>
+        <template #operation="{ row }">
+          <order-detail :order="row" @updateList="queryList" />
+        </template>
+      </ProTable>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="todoOrder">
@@ -155,7 +285,7 @@ const state = reactive<any>({
 	queryParams: {
 		// 查询条件
 		PageIndex: 1, // 当前页
-		PageSize: 10, // 每页条数
+		PageSize: 20, // 每页条数
 		IsHandled: 'false', // 工单状态
 		Keyword: null, // 工单标题
     No: null, // 工单编码
@@ -182,8 +312,7 @@ const closeSearch = () => {
 const router = useRouter(); // 路由
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
-const columns = ref<any[]>([]);
-const columnsTodo = [
+const columnsTodo = ref<any[]>([
 	{ type: 'selection', minWidth: 40, align: 'center' },
 	{ prop: 'expiredStatusText', label: '超期状态', align: 'center', minWidth: 80 },
 	{ prop: 'no', label: '工单编码', minWidth: 140 },
@@ -232,8 +361,8 @@ const columnsTodo = [
 		label: '重办次数',
 	},
 	{ prop: 'operation', label: '操作', fixed: 'right', width: 90, align: 'center' },
-];
-const columnsDone = [
+]);
+const columnsDone = ref<any[]>([
 	// 已办
 	{ type: 'selection', minWidth: 40, align: 'center' },
 	{ prop: 'expiredStatusText', label: '超期状态', align: 'center', minWidth: 80 },
@@ -285,7 +414,7 @@ const columnsDone = [
 		label: '重办次数',
 	},
 	{ prop: 'operation', label: '操作', fixed: 'right', width: 90, align: 'center' },
-];
+]);
 // 手动查询,将页码设置为1
 const handleQuery = () => {
 	state.queryParams.PageIndex = 1;
@@ -295,11 +424,6 @@ const handleQuery = () => {
 const queryList = async () => {
 	try {
 		state.loading = true;
-		if (state.queryParams.IsHandled === 'true') {
-			columns.value = columnsDone;
-		} else {
-			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];

+ 252 - 135
src/views/todo/seats/index.vue

@@ -1,132 +1,255 @@
 <template>
-	<div class="todo-order-container layout-pd">
-		<el-card shadow="never">
+	<div class="todo-order-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<el-tabs v-model="state.queryParams.IsHandled" @tab-change="handleQuery">
 				<el-tab-pane name="false" label="工单待办"></el-tab-pane>
 				<el-tab-pane name="true" label="工单已办"></el-tab-pane>
 			</el-tabs>
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent>
-				<el-row :gutter="20">
-					<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" />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="工单编码" prop="No">
-							<el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="生成时间" prop="scTime">
-							<el-date-picker
-								v-model="state.queryParams.scTime"
-								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-col>
-					<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="IsCounterSign">
-								<el-select v-model="state.queryParams.IsCounterSign" placeholder="请选择是否会签" @change="handleQuery">
-									<el-option label="是" value="true" />
-									<el-option label="否" value="false" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</transition>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<el-form-item label="是否紧急" prop="IsUrgent">
-								<el-select v-model="state.queryParams.IsUrgent" placeholder="请选择是否紧急" clearable @change="handleQuery">
-									<el-option :value="true" label="紧急" />
-									<el-option :value="false" label="不紧急" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</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="IsProvince">
-								<el-select v-model="state.queryParams.IsProvince" placeholder="请选择是否省工单" @change="handleQuery">
-									<el-option label="是" value="true" />
-									<el-option label="否" value="false" />
-								</el-select>
-							</el-form-item>
-						</el-col>
-					</transition>
-					<transition name="el-zoom-in-top" v-show="!searchCol">
-						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-							<el-form-item label="事发地址" prop="AreaCode">
-								<el-cascader
-									:options="state.areaOptions"
-									filterable
-									:props="{ checkStrictly: true, value: 'id', label: 'areaName', emitPath: false }"
-									placeholder="请选择事发地址"
-									clearable
-									class="w100"
-									v-model="state.queryParams.AreaCode"
-									@change="handleQuery"
-								>
-								</el-cascader>
-							</el-form-item>
-						</el-col>
-					</transition>
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="">
-							<div class="flex-end w100">
-								<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 link type="primary" @click="closeSearch" :loading="state.loading">
-									{{ searchCol ? '展开' : '收起' }}
-									<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
-								</el-button>
-							</div>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-			<!--      	:toolButton="['refresh', 'setting', 'exportCurrent', 'exportAll']"-->
-			<ProTable
-				ref="proTableRef"
-				:columns="columns"
-				:data="state.tableData"
-				@updateTable="queryList"
-				:loading="state.loading"
-				:total="state.total"
-				v-model:page-index="state.queryParams.PageIndex"
-				v-model:page-size="state.queryParams.PageSize"
-				:key="Math.random()"
-			>
-				<template #tableHeader="scope">
-					<el-button type="primary" @click="onAddOrder" v-auth="'todo:seats:add'"> <SvgIcon name="ele-Plus" class="mr5" />新建工单 </el-button>
-					<el-button type="primary" @click="onJbExport" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'todo:order:jbdExport'"
-						><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出
-					</el-button>
-				</template>
-				<template #expiredStatusText="{ row }">
-					<span :class="'overdue-status-' + row.expiredStatus" :title="row.expiredStatusText"></span>
-				</template>
-				<template #title="{ row }">
-					<order-detail :order="row" @updateList="queryList">{{ row.title }}</order-detail>
-				</template>
-				<template #operation="{ row }">
-					<el-button link type="success" @click="onOrderEdit(row)" title="编辑工单" v-if="row.canEdit" v-auth="'todo:seats:edit'"> 修改 </el-button>
-					<el-button link type="primary" @click="onSign(row)" title="签收工单" v-if="row.canSign" v-auth="'todo:seats:sign'"> 签收 </el-button>
-					<order-detail :order="row" @updateList="queryList" />
-				</template>
-			</ProTable>
-		</el-card>
+      <ProTable
+          ref="proTableRef"
+          :columns="columnsTodo"
+          :data="state.tableData"
+          @updateTable="queryList"
+          :loading="state.loading"
+          :total="state.total"
+          v-model:page-index="state.queryParams.PageIndex"
+          v-model:page-size="state.queryParams.PageSize"
+          v-if="state.queryParams.IsHandled === 'false'"
+      >
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent>
+            <el-row :gutter="20">
+              <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" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="工单编码" prop="No">
+                  <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="生成时间" prop="scTime">
+                  <el-date-picker
+                      v-model="state.queryParams.scTime"
+                      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-col>
+              <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="IsCounterSign">
+                    <el-select v-model="state.queryParams.IsCounterSign" placeholder="请选择是否会签" @change="handleQuery">
+                      <el-option label="是" value="true" />
+                      <el-option label="否" value="false" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="是否紧急" prop="IsUrgent">
+                    <el-select v-model="state.queryParams.IsUrgent" placeholder="请选择是否紧急" clearable @change="handleQuery">
+                      <el-option :value="true" label="紧急" />
+                      <el-option :value="false" label="不紧急" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="IsProvince">
+                    <el-select v-model="state.queryParams.IsProvince" placeholder="请选择是否省工单" @change="handleQuery">
+                      <el-option label="是" value="true" />
+                      <el-option label="否" value="false" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="事发地址" prop="AreaCode">
+                    <el-cascader
+                        :options="state.areaOptions"
+                        filterable
+                        :props="{ checkStrictly: true, value: 'id', label: 'areaName', emitPath: false }"
+                        placeholder="请选择事发地址"
+                        clearable
+                        class="w100"
+                        v-model="state.queryParams.AreaCode"
+                        @change="handleQuery"
+                    >
+                    </el-cascader>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="">
+                  <div class="flex-end w100">
+                    <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 link type="primary" @click="closeSearch" :loading="state.loading">
+                      {{ searchCol ? '展开' : '收起' }}
+                      <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
+                    </el-button>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+        </template>
+        <template #tableHeader="scope">
+          <el-button type="primary" @click="onAddOrder" v-auth="'todo:seats:add'"> <SvgIcon name="ele-Plus" class="mr5" />新建工单 </el-button>
+          <el-button type="primary" @click="onJbExport" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'todo:order:jbdExport'"
+          ><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出
+          </el-button>
+        </template>
+        <template #expiredStatusText="{ row }">
+          <span :class="'overdue-status-' + row.expiredStatus" :title="row.expiredStatusText"></span>
+        </template>
+        <template #title="{ row }">
+          <order-detail :order="row" @updateList="queryList">{{ row.title }}</order-detail>
+        </template>
+        <template #operation="{ row }">
+          <el-button link type="success" @click="onOrderEdit(row)" title="编辑工单" v-if="row.canEdit" v-auth="'todo:seats:edit'"> 修改 </el-button>
+          <el-button link type="primary" @click="onSign(row)" title="签收工单" v-if="row.canSign" v-auth="'todo:seats:sign'"> 签收 </el-button>
+          <order-detail :order="row" @updateList="queryList" />
+        </template>
+      </ProTable>
+      <ProTable
+          ref="proTableRef"
+          :columns="columnsDone"
+          :data="state.tableData"
+          @updateTable="queryList"
+          :loading="state.loading"
+          :total="state.total"
+          v-model:page-index="state.queryParams.PageIndex"
+          v-model:page-size="state.queryParams.PageSize"
+          v-else
+      >
+        <template #table-search>
+          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent>
+            <el-row :gutter="20">
+              <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" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="工单编码" prop="No">
+                  <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="生成时间" prop="scTime">
+                  <el-date-picker
+                      v-model="state.queryParams.scTime"
+                      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-col>
+              <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="IsCounterSign">
+                    <el-select v-model="state.queryParams.IsCounterSign" placeholder="请选择是否会签" @change="handleQuery">
+                      <el-option label="是" value="true" />
+                      <el-option label="否" value="false" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="是否紧急" prop="IsUrgent">
+                    <el-select v-model="state.queryParams.IsUrgent" placeholder="请选择是否紧急" clearable @change="handleQuery">
+                      <el-option :value="true" label="紧急" />
+                      <el-option :value="false" label="不紧急" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </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="IsProvince">
+                    <el-select v-model="state.queryParams.IsProvince" placeholder="请选择是否省工单" @change="handleQuery">
+                      <el-option label="是" value="true" />
+                      <el-option label="否" value="false" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <transition name="el-zoom-in-top" v-show="!searchCol">
+                <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                  <el-form-item label="事发地址" prop="AreaCode">
+                    <el-cascader
+                        :options="state.areaOptions"
+                        filterable
+                        :props="{ checkStrictly: true, value: 'id', label: 'areaName', emitPath: false }"
+                        placeholder="请选择事发地址"
+                        clearable
+                        class="w100"
+                        v-model="state.queryParams.AreaCode"
+                        @change="handleQuery"
+                    >
+                    </el-cascader>
+                  </el-form-item>
+                </el-col>
+              </transition>
+              <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+                <el-form-item label="">
+                  <div class="flex-end w100">
+                    <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 link type="primary" @click="closeSearch" :loading="state.loading">
+                      {{ searchCol ? '展开' : '收起' }}
+                      <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
+                    </el-button>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+        </template>
+        <template #tableHeader="scope">
+          <el-button type="primary" @click="onAddOrder" v-auth="'todo:seats:add'"> <SvgIcon name="ele-Plus" class="mr5" />新建工单 </el-button>
+          <el-button type="primary" @click="onJbExport" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'todo:order:jbdExport'"
+          ><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出
+          </el-button>
+        </template>
+        <template #expiredStatusText="{ row }">
+          <span :class="'overdue-status-' + row.expiredStatus" :title="row.expiredStatusText"></span>
+        </template>
+        <template #title="{ row }">
+          <order-detail :order="row" @updateList="queryList">{{ row.title }}</order-detail>
+        </template>
+        <template #operation="{ row }">
+          <el-button link type="success" @click="onOrderEdit(row)" title="编辑工单" v-if="row.canEdit" v-auth="'todo:seats:edit'"> 修改 </el-button>
+          <el-button link type="primary" @click="onSign(row)" title="签收工单" v-if="row.canSign" v-auth="'todo:seats:sign'"> 签收 </el-button>
+          <order-detail :order="row" @updateList="queryList" />
+        </template>
+      </ProTable>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="todoSeats">
@@ -147,7 +270,7 @@ const state = reactive<any>({
 	queryParams: {
 		// 查询条件
 		PageIndex: 1, // 当前页
-		PageSize: 10, // 每页条数
+		PageSize: 20, // 每页条数
 		IsHandled: 'false', // 工单状态
 		Keyword: null, // 关键字
 		IsProvince: null, // 是否省工单
@@ -172,8 +295,7 @@ const closeSearch = () => {
 	searchCol.value = !searchCol.value;
 };
 // 表格配置项
-const columns = ref<any[]>([]);
-const columnsTodo = [
+const columnsTodo = ref<any[]>([
 	{ type: 'selection', width: 40, align: 'center' },
 	{ prop: 'expiredStatusText', label: '超期状态', align: 'center', minWidth: 80 },
 	{ prop: 'no', label: '工单编码', minWidth: 140 },
@@ -222,8 +344,8 @@ const columnsTodo = [
 		label: '重办次数',
 	},
 	{ prop: 'operation', label: '操作', fixed: 'right', minWidth: 140, align: 'center' },
-];
-const columnsDone = [
+]);
+const columnsDone = ref<any[]>([
 	// 已办
 	{ type: 'selection', minWidth: 40, align: 'center' },
 	{ prop: 'expiredStatusText', label: '超期状态', align: 'center', minWidth: 80 },
@@ -268,7 +390,7 @@ const columnsDone = [
 		label: '重办次数',
 	},
 	{ prop: 'operation', label: '操作', fixed: 'right', width: 140, align: 'center' },
-];
+]);
 // 手动查询,将页码设置为1
 const handleQuery = () => {
 	state.queryParams.PageIndex = 1;
@@ -278,11 +400,6 @@ const handleQuery = () => {
 const queryList = async () => {
 	try {
 		state.loading = true;
-		if (state.queryParams.IsHandled === 'true') {
-			columns.value = columnsDone;
-		} else {
-			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];