Эх сурвалжийг харах

reactor:移除无用的数据共享平台菜单;新增数据清单

zhangchong 8 сар өмнө
parent
commit
ff6f2c21f4

+ 4 - 13
src/router/route.ts

@@ -312,21 +312,12 @@ export const dynamicRoutes: Array<RouteRecordRaw> = [
 		},
 	},
 	{
-		path: '/dataShare/taskDetail',
+		path: '/dataShare/taskDetail/:id',
 		name: 'dataShareTaskDetail',
 		component: () => import('@/views/dataShare/taskDetail.vue'),
 		meta: {
 			title: '推送任务明细',
 			isKeepAlive: true,
-		},
-	},
-	{
-		path: '/dataShare/newTaskDetail/:id',
-		name: 'dataShareNewTaskDetail',
-		component: () => import('@/views/dataShare/newTaskDetail.vue'),
-		meta: {
-			title: '推送任务明细(新)',
-			isKeepAlive: true,
 			isDynamic: true,
 		},
 	},
@@ -478,9 +469,9 @@ export const dynamicRoutes: Array<RouteRecordRaw> = [
 			isKeepAlive: true,
 		},
 	},{
-		path: '/statistics/center/reportCheck/:id/:tagsViewName?',
-		name: 'statisticsCenterReportCheck',
-		component: () => import('@/views/statistics/center/report-check.vue'),
+		path: '/statistics/center/detailReport/:id/:tagsViewName?',
+		name: 'statisticsCenterDetailReport',
+		component: () => import('@/views/statistics/center/detail-report.vue'),
 		meta: {
 			title: '查看分析报告',
 			isKeepAlive: true,

+ 0 - 160
src/views/dataShare/newOrderList.vue

@@ -1,160 +0,0 @@
-<template>
-	<div class="dataShare-new-orderList-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 inline>
-						<el-form-item label="省工单编码" prop="CaseSerial">
-							<el-input v-model="state.queryParams.CaseSerial" placeholder="省工单编码" clearable @keyup.enter="handleQuery" class="keyword-input"/>
-						</el-form-item>
-						<el-form-item label="是否及时" prop="IsSuccess">
-							<el-select v-model="state.queryParams.IsSuccess" placeholder="请选择是否及时" @change="handleQuery" clearable>
-								<el-option label="及时" value="true" />
-								<el-option label="不及时" value="false" />
-							</el-select>
-						</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"
-								: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="dataShareNewOrderList">
-import { onMounted, reactive, ref } from 'vue';
-import { FormInstance } from 'element-plus';
-import { defaultDateTime, defaultTimeStartEnd, shortcuts } from '@/utils/constants';
-import { getOrderListNew } from '@/api/dataShare';
-import { formatDate } from '@/utils/formatTime';
-import Other from '@/utils/other';
-const proTableRef = ref<RefType>(); // 表格ref
-// 表格配置项
-const columns = ref<any[]>([
-	{ prop: 'orderNo', label: '工单编号', align: 'center' },
-	{ prop: 'provinceNo', label: '省工单编码', align: 'center' },
-	{
-		prop: 'caseDate',
-		label: '工单创建时间',
-		align: 'center',
-		width: 160,
-		render: (scope) => {
-			return <span>{formatDate(scope.row.caseDate, 'YYYY-mm-dd HH:MM:SS')}</span>;
-		},
-	},
-	{
-		prop: 'startTime',
-		label: '受理时间',
-		align: 'center',
-		width: 160,
-		render: (scope) => {
-			return <span>{formatDate(scope.row.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-		},
-	},
-	{
-		prop: 'creationTime',
-		label: '入库时间',
-		align: 'center',
-		width: 160,
-		render: (scope) => {
-			return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-		},
-	},
-	{
-		prop: 'firstSendProvinceTime',
-		label: '第一次上传省上的时间',
-		align: 'center',
-		width: 170,
-		render: (scope) => {
-			return <span>{formatDate(scope.row.firstSendProvinceTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-		},
-	},
-	{
-		prop: 'lastSendProvinceTime',
-		label: '最近一次推送时间',
-		align: 'center',
-		width: 160,
-		render: (scope) => {
-			return <span>{formatDate(scope.row.lastSendProvinceTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-		},
-	},
-]);
-// 定义变量内容
-const ruleFormRef = ref<RefType>(); // 表单ref
-const state = reactive<any>({
-	queryParams: {
-		PageIndex: 1,
-		PageSize: 20,
-		// 查询条件
-		Id: null, // 热线号码
-		IsSuccess: null, // 是否成功
-		Keyword: null, // 关键字
-		crTime: defaultDateTime,
-		StartTime: null,
-		EndTime: null,
-		CaseSerial:null,
-	},
-	tableData: [], //表单
-	loading: false, // 加载
-	total: 0, // 总数
-});
-/** 搜索按钮操作 */
-const handleQuery = () => {
-	// state.queryParams.PageIndex = 1;
-	queryList();
-};
-/** 获取列表 */
-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');
-	getOrderListNew(request)
-		.then((res: any) => {
-			state.tableData = res.result?.items ?? [];
-			state.total = res.result?.total ?? 0;
-			state.loading = false;
-		})
-		.catch(() => {
-			state.loading = false;
-		});
-};
-/** 重置按钮操作 */
-const resetQuery = (formEl: FormInstance | undefined) => {
-	if (!formEl) return;
-	formEl.resetFields();
-	queryList();
-};
-onMounted(() => {
-	queryList();
-});
-</script>

+ 0 - 189
src/views/dataShare/newOrderNoCallLog.vue

@@ -1,189 +0,0 @@
-<template>
-	<div class="dataShare-new-orderNoCallLog-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 inline>
-						<el-form-item label="省工单编码" prop="CaseSerial">
-							<el-input v-model="state.queryParams.CaseSerial" 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"
-                  :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 #tableHeader="scope">
-<!--					<el-button type="primary" @click="onEdit(false)" :disabled="!scope.isSelected" :loading="state.loading" title="修改来源渠道">
-						修改来源渠道
-					</el-button>-->
-					<el-button type="primary" @click="onEdit(true)" :disabled="!scope.isSelected" :loading="state.loading" title="修改并推送">
-						修改并推送
-					</el-button>
-				</template>
-			</ProTable>
-		</div>
-	</div>
-</template>
-<script setup lang="tsx" name="dataShareNewOrderNoCallLog">
-import { onMounted, reactive, ref } from 'vue';
-import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
-import {  defaultDateTime, defaultTimeStartEnd, shortcuts } from "@/utils/constants";
-import { formatDate } from '@/utils/formatTime';
-import { editNoCallSource, getNoCallListNew } from "@/api/dataShare";
-import Other from "@/utils/other";
-const proTableRef = ref<RefType>(); // 表格ref
-// 表格配置项
-const columns = ref<any[]>([
-	{ type: 'selection', width: 40, align: 'center' },
-	{ prop: 'orderNo', label: '工单编号', align: 'center' },
-	{ prop: 'provinceNo', label: '省工单编码', align: 'center' ,minWidth: 220},
-	{
-		prop: 'caseSource',
-		label: '来源渠道',
-		align: 'center',
-	},
-	{
-		prop: 'caseDate',
-		label: '工单创建时间',
-		align: 'center',
-		width: 160,
-		render: (scope) => {
-			return <span>{formatDate(scope.row.caseDate, 'YYYY-mm-dd HH:MM:SS')}</span>;
-		},
-	},
-	{
-		prop: 'startTime',
-		label: '受理时间',
-		align: 'center',
-		width: 160,
-		render: (scope) => {
-			return <span>{formatDate(scope.row.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-		},
-	},
-	{
-		prop: 'firstSendProvinceTime',
-		label: '第一次上传省上的时间',
-		align: 'center',
-		width: 170,
-		render: (scope) => {
-			return <span>{formatDate(scope.row.firstSendProvinceTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-		},
-	},
-	{
-		prop: 'lastSendProvinceTime',
-		label: '最近一次推送时间',
-		align: 'center',
-		width: 160,
-		render: (scope) => {
-			return <span>{formatDate(scope.row.lastSendProvinceTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-		},
-	},
-	{
-		prop: 'handleState',
-		label: '工单状态',
-		align: 'center',
-	},
-  {
-    prop: 'callId',
-    label: '通话ID',
-    align: 'center',
-  }
-]);
-// 定义变量内容
-const ruleFormRef = ref<RefType>(); // 表单ref
-const state = reactive<any>({
-	queryParams: {
-		PageIndex: 1,
-		PageSize: 20,
-		crTime: defaultDateTime,
-    StartTime:null,
-    EndTime:null,
-		CaseSerial:null
-	},
-	tableData: [], //表单
-	loading: false, // 加载
-	total: 0, // 总数
-});
-/** 搜索按钮操作 */
-const handleQuery = () => {
-	// state.queryParams.PageIndex = 1;
-	queryList();
-};
-/** 获取列表 */
-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');
-  getNoCallListNew(request)
-		.then((res: any) => {
-			state.tableData = res.result?.items ?? [];
-			state.total = res.result?.total ?? 0;
-			state.loading = false;
-		})
-		.catch(() => {
-			state.loading = false;
-		});
-};
-/** 重置按钮操作 */
-const resetQuery = (formEl: FormInstance | undefined) => {
-	if (!formEl) return;
-	formEl.resetFields();
-	queryList();
-};
-// 修改
-const onEdit = (isPush: boolean) => {
-	const title = isPush ? '修改并推送' : '修改来源渠道';
-	const ids = proTableRef.value.selectedList.map((item: any) => item.orderId);
-	ElMessageBox.confirm(`您确定要${title}选择的【${proTableRef.value.selectedList.length}】个工单,是否继续?`, '提示', {
-		confirmButtonText: '确认',
-		cancelButtonText: '取消',
-		type: 'warning',
-		draggable: true,
-		cancelButtonClass: 'default-button',
-		autofocus: false,
-	})
-		.then(() => {
-			editNoCallSource({ ids, isPush }).then(() => {
-				ElMessage.success('操作成功');
-				queryList();
-			});
-		})
-		.catch(() => {});
-};
-// 查看修改记录
-const onRecord = (row: any) => {
-	console.log(row);
-};
-onMounted(() => {
-	queryList();
-});
-</script>

+ 0 - 82
src/views/dataShare/newTaskDetail.vue

@@ -1,82 +0,0 @@
-<template>
-  <div class="dataShare-taskDetail-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"
-      >
-      </ProTable>
-    </div>
-  </div>
-</template>
-<script setup lang="tsx" name="dataShareNewTaskDetail">
-import { onMounted, reactive, ref } from 'vue';
-import { getPushTaskDetailNew } from "@/api/dataShare";
-import { useRoute } from "vue-router";
-import { formatDate } from "@/utils/formatTime";
-const proTableRef = ref<RefType>(); // 表格ref
-// 表格配置项
-const columns = ref<any[]>([
-  {
-    prop: 'isSuccess',
-    label: '推送状态',
-    align: 'center',
-    render: (scope) => {
-      return <span>{scope.row.isSuccess ? '成功' : '失败'}</span>;
-    },
-  },
-  { prop: 'result', label: '返回数据', align: 'center' },
-  { prop: 'resultErrorData', label: '错误数据', align: 'center' },
-  { prop: 'processingServices', label: '推送平台', align: 'center' },
-  {
-    prop: 'creationTime',
-    label: '创建时间',
-    align: 'center',
-    width: 170,
-    render: (scope) => {
-      return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-    },
-  },
-]);
-// 定义变量内容
-const ruleFormRef = ref<RefType>(); // 表单ref
-const state = reactive({
-  queryParams: {
-    // 查询条件
-    PageIndex: 1,
-    PageSize: 20,
-  },
-  tableData: [], //表单
-  loading: false, // 加载
-  total: 0, // 总数
-});
-/** 获取列表 */
-const historyParams = history.state;
-const route = useRoute();
-const queryList = () => {
-  state.loading = true;
-  const request = {
-    PageIndex: state.queryParams.PageIndex,
-    PageSize: state.queryParams.PageSize,
-    Id: route.params.id
-  }
-  getPushTaskDetailNew(request)
-    .then((res: any) => {
-      state.tableData = res.result?.items ?? [];
-      state.total = res.result?.total ?? 0;
-      state.loading = false;
-    })
-    .catch(() => {
-      state.loading = false;
-    });
-};
-onMounted(() => {
-  queryList();
-});
-</script>

+ 0 - 433
src/views/dataShare/newTimeliness.vue

@@ -1,433 +0,0 @@
-<template>
-	<div class="dataShare-new-timeliness-container layout-padding">
-    <div class="layout-padding-auto layout-padding-view pd20 h100">
-        <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">
-              <el-statistic :value="state.data.orderCountNum">
-                <template #title>
-                  <span class="color-info font14">工单总量</span>
-                </template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-              <el-statistic :value="state.data.handleEndOrderNum">
-                <template #title>
-                  <span class="color-info font14">办结件数</span>
-                </template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-              <el-statistic :value="state.data.handleEndOrderOnTime">
-                <template #title>
-                  <span class="color-info font14">按时办结数量</span>
-                </template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-              <el-statistic :value="state.data.handleEndOrderRate">
-                <template #title>
-                  <span class="color-info font14">办结率</span>
-                </template>
-                <template #suffix>%</template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-              <el-statistic :value="state.data.handleEndOrderOnTimeRate">
-                <template #title>
-                  <span class="color-info font14">按时办结率</span>
-                </template>
-                <template #suffix>%</template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <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">
-              <el-statistic :value="state.data.orderTimely">
-                <template #title>
-                  <span class="color-info font14">工单及时上传</span>
-                </template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-              <el-statistic :value="state.data.orderNotTimely">
-                <template #title>
-                  <span class="color-info font14">工单未及时上传</span>
-                </template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-              <el-statistic :value="state.data.orderTimelinessRate">
-                <template #title>
-                  <span class="color-info font14">工单及时率</span>
-                </template>
-                <template #suffix>%</template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <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">
-              <el-statistic :value="state.data.telCountNum">
-                <template #title>
-                  <span class="color-info font14">电话总量</span>
-                </template>
-              </el-statistic>
-            </el-card> </el-col
-          ><el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-          <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-            <el-statistic :value="state.data.telConnectCountNum">
-              <template #title>
-                <span class="color-info font14">电话接通数</span>
-              </template>
-            </el-statistic>
-          </el-card> </el-col
-        ><el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-          <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-            <el-statistic :value="state.data.telNotConnectCountNum">
-              <template #title>
-                <span class="color-info font14">电话未接通数</span>
-              </template>
-            </el-statistic>
-          </el-card>
-        </el-col>
-          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-              <el-statistic :value="state.data.telConnectRate">
-                <template #title>
-                  <span class="color-info font14">电话接通率</span>
-                </template>
-                <template #suffix>%</template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <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">
-              <el-statistic :value="state.data.telTimely">
-                <template #title>
-                  <span class="color-info font14">电话及时上传</span>
-                </template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-              <el-statistic :value="state.data.telNotTimely">
-                <template #title>
-                  <span class="color-info font14">电话未及时上传</span>
-                </template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-              <el-statistic :value="state.data.telTimelinessRate">
-                <template #title>
-                  <span class="color-info font14">电话及时率</span>
-                </template>
-                <template #suffix>%</template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <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">
-              <el-statistic :value="state.data.rgdhOrderCount">
-                <template #title>
-                  <span class="color-info font14">电话来源工单数量</span>
-                </template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-              <el-statistic :value="state.data.containTel">
-                <template #title>
-                  <span class="color-info font14">匹配通话记录数</span>
-                </template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-              <el-statistic :value="state.data.notContainTel">
-                <template #title>
-                  <span class="color-info font14">未匹配通话记录数</span>
-                </template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-              <el-statistic :value="state.data.matchingRate">
-                <template #title>
-                  <span class="color-info font14">匹配率</span>
-                </template>
-                <template #suffix>%</template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <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">
-              <el-statistic :value="state.data.visitCountNum">
-                <template #title>
-                  <span class="color-info font14">回访总量</span>
-                </template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-              <el-statistic :value="state.data.satisfactionCountNum">
-                <template #title>
-                  <span class="color-info font14">满意总量</span>
-                </template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-              <el-statistic :value="state.data.notSatisfiedCountNum">
-                <template #title>
-                  <span class="color-info font14">不满意总量</span>
-                </template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-              <el-statistic :value="state.data.satisfactionRate">
-                <template #title>
-                  <span class="color-info font14">满意率</span>
-                </template>
-                <template #suffix>%</template>
-              </el-statistic>
-            </el-card> </el-col
-          ><el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-          <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-            <el-statistic :value="state.data.notSatisfiedRate">
-              <template #title>
-                <span class="color-info font14">不满意率</span>
-              </template>
-              <template #suffix>%</template>
-            </el-statistic>
-          </el-card>
-        </el-col>
-          <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">
-              <el-statistic :value="state.data.knowledgeCount">
-                <template #title>
-                  <span class="color-info font14">知识库总量</span>
-                </template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
-            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-              <el-statistic :value="state.data.updateKnowledgeCount">
-                <template #title>
-                  <span class="color-info font14">更新知识库量</span>
-                </template>
-              </el-statistic>
-            </el-card>
-          </el-col>
-        </el-row>
-      <el-backtop target=".backToTop" />
-		</div>
-	</div>
-</template>
-<script setup lang="tsx" name="dataShareNewTimeliness">
-import { onMounted, reactive, ref } from 'vue';
-import { FormInstance } from 'element-plus';
-import { defaultDateTime, defaultTimeStartEnd, shortcuts } from "@/utils/constants";
-import { formatDate } from '@/utils/formatTime';
-import { getTimeRateNew } from '@/api/dataShare';
-import Other from '@/utils/other';
-const proTableRef = ref<RefType>(); // 表格ref
-// 表格配置项
-const columns = ref<any[]>([
-	{ prop: 'provinceNo', label: '省工单编码', align: 'center' },
-	{
-		prop: 'firstTime',
-		label: '初次推送时间',
-		align: 'center',
-		width: 170,
-		render: (scope) => {
-			return <span>{formatDate(scope.row.firstTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-		},
-	},
-	{
-		prop: 'lastTime',
-		label: '最近一次推送时间',
-		align: 'center',
-		width: 170,
-		render: (scope) => {
-			return <span>{formatDate(scope.row.lastTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-		},
-	},
-	{
-		prop: 'sendTimes',
-		label: '推送次数',
-		align: 'center',
-	},
-	{
-		prop: 'isSuccess',
-		label: '推送状态',
-		align: 'center',
-		render: (scope) => {
-			return <span>{scope.row.isSuccess ? '成功' : '失败'}</span>;
-		},
-	},
-	{
-		prop: 'platformSource',
-		label: '平台名称',
-		align: 'center',
-	},
-	{ prop: 'taskType', label: '任务类型', align: 'center' },
-	{ prop: 'request', label: '请求参数', align: 'center' },
-	{
-		prop: 'generationTime',
-		label: '生成时间',
-		align: 'center',
-		width: 170,
-		render: (scope) => {
-			return <span>{formatDate(scope.row.generationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-		},
-	},
-	{
-		prop: 'creationTime',
-		label: '创建时间',
-		align: 'center',
-		width: 170,
-		render: (scope) => {
-			return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-		},
-	},
-]);
-// 定义变量内容
-const ruleFormRef = ref<RefType>(); // 表单ref
-const state = reactive<any>({
-	queryParams: {
-		crTime: defaultDateTime,
-		StartTime: null,
-		EndTime: null,
-	},
-	loading: false, // 加载
-	data: {
-		orderCountNum: 0, // 工单总量
-		handleEndOrderNum: 0, // 办结件数
-		handleEndOrderOnTime: 0, // 按时办结数量
-		orderTimely: 0, // 按时办结率
-		orderNotTimely: 0, // 不按时办结数量
-		orderTimelinessRate: 0, // 按时办结率
-		handleEndOrderRate: 0, // 办结率
-		handleEndOrderOnTimeRate: 0, // 按时办结率
-		telCountNum: 0, // 电话总量
-		telConnectCountNum: 0, // 电话接通数
-		telNotConnectCountNum: 0, // 电话未接通数
-		telTimely: 0, // 按时接通率
-		telNotTimely: 0, // 不按时接通数量
-		telTimelinessRate: 0, // 按时接通率
-		telConnectRate: 0, // 接通率
-		rgdhOrderCount: 0, // 电话来源工单数量
-		containTel: 0, // 包含电话数量
-		notContainTel: 0, // 不包含电话数量
-		matchingRate: 0, // 匹配率
-		visitCountNum: 0, // 回访总量
-		satisfactionCountNum: 0, // 满意总量
-		notSatisfiedCountNum: 0, // 不满意总量
-		satisfactionRate: 0, // 满意率
-		notSatisfactionRate: 0, // 不满意率
-		knowledgeCount: 0, // 知识库总量
-		updateKnowledgeCount: 0, // 更新知识库量
-	},
-});
-/** 搜索按钮操作 */
-const handleQuery = () => {
-	// state.queryParams.PageIndex = 1;
-	queryList();
-};
-/** 获取列表 */
-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');
-	getTimeRateNew(request)
-		.then((res: any) => {
-			state.data = res.result ?? {};
-			state.loading = false;
-		})
-		.catch(() => {
-			state.loading = false;
-		});
-};
-/** 重置按钮操作 */
-const resetQuery = (formEl: FormInstance | undefined) => {
-	if (!formEl) return;
-	formEl.resetFields();
-	queryList();
-};
-onMounted(() => {
-	queryList();
-});
-</script>
-<style scoped lang="scss">
-.dataShare-new-timeliness-container {
-	.el-divider--horizontal {
-		margin: 24px 0;
-	}
-	.statistics-item {
-		margin-bottom: 10px;
-	}
-  :deep(.layout-padding-view){
-    background-color: transparent;
-  }
-  :deep(.el-divider__text){
-    background-color: var(--hotline-bg-main-color);
-  }
-}
-</style>

+ 54 - 50
src/views/dataShare/orderList.vue

@@ -1,36 +1,6 @@
 <template>
-	<div class="dataShare-orderList-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="是否及时" prop="IsSuccess">
-					<el-select v-model="state.queryParams.IsSuccess" placeholder="请选择是否及时" @change="handleQuery" clearable>
-						<el-option label="及时" value="true" />
-						<el-option label="不及时" value="false" />
-					</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="dataShare-orderList-container layout-padding">
+		<div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -40,19 +10,52 @@
 				:total="state.total"
 				v-model:page-index="state.queryParams.PageIndex"
 				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="CaseSerial">
+							<el-input v-model="state.queryParams.CaseSerial" placeholder="省工单编码" clearable @keyup.enter="handleQuery" class="keyword-input"/>
+						</el-form-item>
+						<el-form-item label="是否及时" prop="IsSuccess">
+							<el-select v-model="state.queryParams.IsSuccess" placeholder="请选择是否及时" @change="handleQuery" clearable>
+								<el-option label="及时" value="true" />
+								<el-option label="不及时" value="false" />
+							</el-select>
+						</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"
+								: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="dataShareOrderList">
 import { onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { defaultDate, shortcuts } from '@/utils/constants';
-import { getOrderList } from '@/api/dataShare';
+import { defaultDateTime, defaultTimeStartEnd, shortcuts } from '@/utils/constants';
+import { getOrderListNew } from '@/api/dataShare';
 import { formatDate } from '@/utils/formatTime';
-import Other from "@/utils/other";
+import Other from '@/utils/other';
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
@@ -62,7 +65,7 @@ const columns = ref<any[]>([
 		prop: 'caseDate',
 		label: '工单创建时间',
 		align: 'center',
-		width: 170,
+		width: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.caseDate, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -71,7 +74,7 @@ const columns = ref<any[]>([
 		prop: 'startTime',
 		label: '受理时间',
 		align: 'center',
-		width: 170,
+		width: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -80,7 +83,7 @@ const columns = ref<any[]>([
 		prop: 'creationTime',
 		label: '入库时间',
 		align: 'center',
-		width: 170,
+		width: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -98,7 +101,7 @@ const columns = ref<any[]>([
 		prop: 'lastSendProvinceTime',
 		label: '最近一次推送时间',
 		align: 'center',
-		width: 170,
+		width: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.lastSendProvinceTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -109,14 +112,15 @@ const ruleFormRef = ref<RefType>(); // 表单ref
 const state = reactive<any>({
 	queryParams: {
 		PageIndex: 1,
-		PageSize: 10,
+		PageSize: 20,
 		// 查询条件
 		Id: null, // 热线号码
 		IsSuccess: null, // 是否成功
 		Keyword: null, // 关键字
-		crTime: defaultDate,
-    StartTime:null,
-    EndTime:null
+		crTime: defaultDateTime,
+		StartTime: null,
+		EndTime: null,
+		CaseSerial:null,
 	},
 	tableData: [], //表单
 	loading: false, // 加载
@@ -130,11 +134,11 @@ const handleQuery = () => {
 /** 获取列表 */
 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');
-	getOrderList(request)
+	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');
+	getOrderListNew(request)
 		.then((res: any) => {
 			state.tableData = res.result?.items ?? [];
 			state.total = res.result?.total ?? 0;

+ 45 - 42
src/views/dataShare/orderNoCallLog.vue

@@ -1,30 +1,6 @@
 <template>
-	<div class="dataShare-orderNoCallLog-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 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="dataShare-orderNoCallLog-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
@@ -34,34 +10,60 @@
 				:total="state.total"
 				v-model:page-index="state.queryParams.PageIndex"
 				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="CaseSerial">
+							<el-input v-model="state.queryParams.CaseSerial" 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"
+                  :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 #tableHeader="scope">
-					<el-button type="primary" @click="onEdit(false)" :disabled="!scope.isSelected" :loading="state.loading" title="修改来源渠道">
+<!--					<el-button type="primary" @click="onEdit(false)" :disabled="!scope.isSelected" :loading="state.loading" title="修改来源渠道">
 						修改来源渠道
-					</el-button>
+					</el-button>-->
 					<el-button type="primary" @click="onEdit(true)" :disabled="!scope.isSelected" :loading="state.loading" title="修改并推送">
 						修改并推送
 					</el-button>
 				</template>
 			</ProTable>
-		</el-card>
+		</div>
 	</div>
 </template>
 <script setup lang="tsx" name="dataShareOrderNoCallLog">
 import { onMounted, reactive, ref } from 'vue';
 import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
-import { defaultDate, shortcuts } from '@/utils/constants';
+import {  defaultDateTime, defaultTimeStartEnd, shortcuts } from "@/utils/constants";
 import { formatDate } from '@/utils/formatTime';
-import { editNoCallSource, getNoCallList } from '@/api/dataShare';
+import { editNoCallSource, getNoCallListNew } from "@/api/dataShare";
 import Other from "@/utils/other";
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-	{ type: 'selection', fixed: 'left', width: 55, align: 'center' },
+	{ type: 'selection', width: 40, align: 'center' },
 	{ prop: 'orderNo', label: '工单编号', align: 'center' },
-	{ prop: 'provinceNo', label: '省工单编码', align: 'center' },
-	{ prop: 'title', label: '工单标题', align: 'center' },
+	{ prop: 'provinceNo', label: '省工单编码', align: 'center' ,minWidth: 220},
 	{
 		prop: 'caseSource',
 		label: '来源渠道',
@@ -71,7 +73,7 @@ const columns = ref<any[]>([
 		prop: 'caseDate',
 		label: '工单创建时间',
 		align: 'center',
-		width: 170,
+		width: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.caseDate, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -80,7 +82,7 @@ const columns = ref<any[]>([
 		prop: 'startTime',
 		label: '受理时间',
 		align: 'center',
-		width: 170,
+		width: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -98,7 +100,7 @@ const columns = ref<any[]>([
 		prop: 'lastSendProvinceTime',
 		label: '最近一次推送时间',
 		align: 'center',
-		width: 170,
+		width: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.lastSendProvinceTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -119,10 +121,11 @@ const ruleFormRef = ref<RefType>(); // 表单ref
 const state = reactive<any>({
 	queryParams: {
 		PageIndex: 1,
-		PageSize: 10,
-		crTime: defaultDate,
+		PageSize: 20,
+		crTime: defaultDateTime,
     StartTime:null,
-    EndTime:null
+    EndTime:null,
+		CaseSerial:null
 	},
 	tableData: [], //表单
 	loading: false, // 加载
@@ -140,7 +143,7 @@ const queryList = () => {
   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');
-	getNoCallList(request)
+  getNoCallListNew(request)
 		.then((res: any) => {
 			state.tableData = res.result?.items ?? [];
 			state.total = res.result?.total ?? 0;

+ 1 - 1
src/views/dataShare/pushData.vue

@@ -187,7 +187,7 @@ const queryList = async () => {
 const router = useRouter();
 const onDetail = (row: any) => {
 	router.push({
-		name: 'dataShareNewTaskDetail',
+		name: 'dataShareTaskDetail',
 		params: {
 			id: row.id,
 		},

+ 0 - 233
src/views/dataShare/pushTask.vue

@@ -1,233 +0,0 @@
-<template>
-	<div class="dataShare-pushTask-container layout-pd">
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="ID" prop="Id">
-					<el-input v-model="state.queryParams.Id" placeholder="查询ID" clearable @keyup.enter="handleQuery" />
-				</el-form-item>
-				<!--        <el-form-item label="关键词" prop="Keyword">
-          <el-input v-model="state.queryParams.Keyword" placeholder="关键词" clearable @keyup.enter="handleQuery" />
-        </el-form-item>-->
-				<el-form-item label="是否成功" prop="IsSuccess">
-					<el-select v-model="state.queryParams.IsSuccess" placeholder="请选择是否成功" @change="handleQuery" clearable>
-						<el-option label="成功" value="true" />
-						<el-option label="失败" value="false" />
-					</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">
-			<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"
-				border
-			>
-				<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>
-					<el-button link type="primary" @click="onPushed(row)" title="修改状态为已推送"> 已推送 </el-button>
-				</template>
-			</ProTable>
-		</el-card>
-	</div>
-</template>
-<script setup lang="tsx" name="dataSharePushTask">
-import { onMounted, reactive, ref } from 'vue';
-import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
-import { defaultDate, shortcuts } from "@/utils/constants";
-import { getPushTaskList, rePush, taskPushed } from "@/api/dataShare";
-import { formatDate } from '@/utils/formatTime';
-import { useRouter } from 'vue-router';
-import other from "@/utils/other";
-const proTableRef = ref<RefType>(); // 表格ref
-// 表格配置项
-const columns = ref<any[]>([
-	// { prop: 'id', label: 'ID', align: 'center',minWidth: 210 },
-	{ prop: 'provinceNo', label: '省工单编码', align: 'center',minWidth: 200 },
-	{
-		prop: 'firstTime',
-		label: '初次推送时间',
-		align: 'center',
-		width: 170,
-		render: (scope) => {
-			return <span>{formatDate(scope.row.firstTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-		},
-	},
-	{
-		prop: 'lastTime',
-		label: '最近一次推送时间',
-		align: 'center',
-		width: 170,
-		render: (scope) => {
-			return <span>{formatDate(scope.row.lastTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-		},
-	},
-	{
-		prop: 'sendTimes',
-		label: '推送次数',
-		align: 'center',
-	},
-	{
-		prop: 'isSuccess',
-		label: '推送状态',
-		align: 'center',
-		render: (scope) => {
-			return <span>{scope.row.isSuccess ? '成功' : '失败'}</span>;
-		},
-	},
-	{
-		prop: 'platformSourceText',
-		label: '平台名称',
-		align: 'center',
-	},
-	{ prop: 'pathText', label: '任务类型', align: 'center' },
-	{ prop: 'request', label: '请求参数', align: 'center' },
-	{
-		prop: 'generationTime',
-		label: '生成时间',
-		align: 'center',
-		width: 170,
-		render: (scope) => {
-			return <span>{formatDate(scope.row.generationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-		},
-	},
-	{
-		prop: 'creationTime',
-		label: '创建时间',
-		align: 'center',
-		width: 170,
-		render: (scope) => {
-			return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-		},
-	},
-	{ prop: 'operation', label: '操作', fixed: 'right', width: 210, align: 'center' },
-]);
-// 定义变量内容
-const ruleFormRef = ref<RefType>(); // 表单ref
-const state = reactive<any>({
-	queryParams: {
-		// 查询条件
-		PageIndex: 1,
-		PageSize: 10,
-		Id: null, //
-		Keyword: null,
-		IsSuccess: null,
-		crTime: defaultDate,
-    StartTime:null,
-    EndTime:null
-	},
-	tableData: [], //表单
-	loading: false, // 加载
-	total: 0, // 总数
-});
-/** 搜索按钮操作 */
-const handleQuery = () => {
-	state.queryParams.PageIndex = 1;
-	queryList();
-};
-/** 获取列表 */
-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');
-	getPushTaskList(request)
-		.then((res: any) => {
-			state.tableData = res.result?.items ?? [];
-			state.total = res.result?.total ?? 0;
-			state.loading = false;
-		})
-		.catch(() => {
-			state.loading = false;
-		});
-};
-/** 重置按钮操作 */
-const resetQuery = (formEl: FormInstance | undefined) => {
-	if (!formEl) return;
-	formEl.resetFields();
-	queryList();
-};
-// 查看任务明细
-const router = useRouter();
-const onDetail = (row: any) => {
-	router.push({
-		name: 'dataShareTaskDetail',
-		query: {
-			IsSuccess: state.queryParams.IsSuccess,
-      id: row.id,
-		},
-	});
-};
-// 重推
-const onRePush = (row: any) => {
-	ElMessageBox.confirm(`确定重新推送省工单编码为【${row.provinceNo}】吗?`, '提示', {
-		confirmButtonText: '确定',
-		cancelButtonText: '取消',
-		type: 'warning',
-		draggable: true,
-	})
-		.then(() => {
-			rePush({ id: row.id })
-				.then(() => {
-					ElMessage({
-						message: '操作成功',
-						type: 'success',
-					});
-					queryList();
-				})
-				.catch(() => {});
-		})
-		.catch(() => {});
-};
-// 改状态为已推送
-const onPushed = (row: any) => {
-	ElMessageBox.confirm(`确定将省工单编码为【${row.provinceNo}】的任务状态修改为已推送吗?`, '提示', {
-		confirmButtonText: '确定',
-		cancelButtonText: '取消',
-		type: 'warning',
-		draggable: true,
-	})
-		.then(() => {
-      taskPushed({id:row.id})
-				.then(() => {
-					ElMessage({
-						message: '操作成功',
-						type: 'success',
-					});
-					queryList();
-				})
-				.catch(() => {});
-		})
-		.catch(() => {});
-};
-onMounted(() => {
-	queryList();
-});
-</script>

+ 1 - 1
src/views/dataShare/pushedTask.vue

@@ -178,7 +178,7 @@ const resetQuery = (formEl: FormInstance | undefined) => {
 const router = useRouter();
 const onDetail = (row: any) => {
 	router.push({
-		name: 'dataShareNewTaskDetail',
+		name: 'dataShareTaskDetail',
 		params: {
 			id: row.id,
 		},

+ 10 - 11
src/views/dataShare/taskDetail.vue

@@ -1,6 +1,6 @@
 <template>
-  <div class="dataShare-taskDetail-container layout-pd">
-    <el-card shadow="never">
+  <div class="dataShare-taskDetail-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20">
       <ProTable
         ref="proTableRef"
         :columns="columns"
@@ -10,15 +10,14 @@
         :total="state.total"
         v-model:page-index="state.queryParams.PageIndex"
         v-model:page-size="state.queryParams.PageSize"
-        border
       >
       </ProTable>
-    </el-card>
+    </div>
   </div>
 </template>
 <script setup lang="tsx" name="dataShareTaskDetail">
 import { onMounted, reactive, ref } from 'vue';
-import { getPushTaskDetail } from "@/api/dataShare";
+import { getPushTaskDetailNew } from "@/api/dataShare";
 import { useRoute } from "vue-router";
 import { formatDate } from "@/utils/formatTime";
 const proTableRef = ref<RefType>(); // 表格ref
@@ -33,7 +32,8 @@ const columns = ref<any[]>([
     },
   },
   { prop: 'result', label: '返回数据', align: 'center' },
-  { prop: 'requestInfo', label: '其他平台返回数据', align: 'center' },
+  { prop: 'resultErrorData', label: '错误数据', align: 'center' },
+  { prop: 'processingServices', label: '推送平台', align: 'center' },
   {
     prop: 'creationTime',
     label: '创建时间',
@@ -50,24 +50,23 @@ const state = reactive({
   queryParams: {
     // 查询条件
     PageIndex: 1,
-    PageSize: 10,
+    PageSize: 20,
   },
   tableData: [], //表单
   loading: false, // 加载
   total: 0, // 总数
 });
 /** 获取列表 */
+const historyParams = history.state;
 const route = useRoute();
-const routeQueryParams = route.query;
 const queryList = () => {
   state.loading = true;
   const request = {
     PageIndex: state.queryParams.PageIndex,
     PageSize: state.queryParams.PageSize,
-    IsSuccess: routeQueryParams.IsSuccess,
-    Id: routeQueryParams.id
+    Id: route.params.id
   }
-  getPushTaskDetail(request)
+  getPushTaskDetailNew(request)
     .then((res: any) => {
       state.tableData = res.result?.items ?? [];
       state.total = res.result?.total ?? 0;

+ 404 - 382
src/views/dataShare/timeliness.vue

@@ -1,411 +1,433 @@
 <template>
-  <div class="dataShare-timeliness-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 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">
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.orderCountNum">
-            <template #title>
-              <span class="color-info font14">工单总量</span>
-            </template>
-          </el-statistic>
+	<div class="dataShare-timeliness-container layout-padding">
+    <div class="layout-padding-auto layout-padding-view pd20 h100">
+        <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-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.handleEndOrderNum">
-            <template #title>
-              <span class="color-info font14">办结件数</span>
-            </template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.handleEndOrderOnTime">
-            <template #title>
-              <span class="color-info font14">按时办结数量</span>
-            </template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.orderTimely">
-            <template #title>
-              <span class="color-info font14">工单及时上传</span>
-            </template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.orderNotTimely">
-            <template #title>
-              <span class="color-info font14">工单未及时上传</span>
-            </template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.orderTimelinessRate">
-            <template #title>
-              <span class="color-info font14">工单及时率</span>
-            </template>
-            <template #suffix>%</template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.handleEndOrderRate">
-            <template #title>
-              <span class="color-info font14">办结率</span>
-            </template>
-            <template #suffix>%</template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.handleEndOrderOnTimeRate">
-            <template #title>
-              <span class="color-info font14">按时办结率</span>
-            </template>
-            <template #suffix>%</template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.telCountNum">
-            <template #title>
-              <span class="color-info font14">电话总量</span>
-            </template>
-          </el-statistic>
-        </el-card>
-      </el-col><el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-      <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-        <el-statistic :value="state.data.telConnectCountNum">
-          <template #title>
-            <span class="color-info font14">电话接通数</span>
-          </template>
-        </el-statistic>
-      </el-card>
-    </el-col><el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-      <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-        <el-statistic :value="state.data.telNotConnectCountNum">
-          <template #title>
-            <span class="color-info font14">电话未接通数</span>
-          </template>
-        </el-statistic>
-      </el-card>
-    </el-col><el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-      <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-        <el-statistic :value="state.data.telTimely">
-          <template #title>
-            <span class="color-info font14">电话及时上传</span>
-          </template>
-        </el-statistic>
-      </el-card>
-    </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.telNotTimely">
-            <template #title>
-              <span class="color-info font14">电话未及时上传</span>
-            </template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.telTimelinessRate">
-            <template #title>
-              <span class="color-info font14">电话及时率</span>
-            </template>
-            <template #suffix>%</template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.telConnectRate">
-            <template #title>
-              <span class="color-info font14">电话率</span>
-            </template>
-            <template #suffix>%</template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.rgdhOrderCount">
-            <template #title>
-              <span class="color-info font14">电话来源工单数量</span>
-            </template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.containTel">
-            <template #title>
-              <span class="color-info font14">匹配通话记录数</span>
-            </template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.notContainTel">
-            <template #title>
-              <span class="color-info font14">未匹配通话记录数</span>
-            </template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.matchingRate">
-            <template #title>
-              <span class="color-info font14">匹配率</span>
-            </template>
-            <template #suffix>%</template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.visitCountNum">
-            <template #title>
-              <span class="color-info font14">回访总量</span>
-            </template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.satisfactionCountNum">
-            <template #title>
-              <span class="color-info font14">满意总量</span>
-            </template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.notSatisfiedCountNum">
-            <template #title>
-              <span class="color-info font14">不满意总量</span>
-            </template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.satisfactionRate">
-            <template #title>
-              <span class="color-info font14">满意率</span>
-            </template>
-            <template #suffix>%</template>
-          </el-statistic>
-        </el-card>
-      </el-col><el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-      <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-        <el-statistic :value="state.data.notSatisfiedRate">
-          <template #title>
-            <span class="color-info font14">不满意率</span>
-          </template>
-          <template #suffix>%</template>
-        </el-statistic>
-      </el-card>
-    </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.knowledgeCount">
-            <template #title>
-              <span class="color-info font14">知识库总量</span>
-            </template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
-        <el-card shadow="never" v-loading="state.loading" class="statistics-item">
-          <el-statistic :value="state.data.updateKnowledgeCount">
-            <template #title>
-              <span class="color-info font14">更新知识库量</span>
-            </template>
-          </el-statistic>
-        </el-card>
-      </el-col>
-    </el-row>
-  </div>
+        <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">
+              <el-statistic :value="state.data.orderCountNum">
+                <template #title>
+                  <span class="color-info font14">工单总量</span>
+                </template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+              <el-statistic :value="state.data.handleEndOrderNum">
+                <template #title>
+                  <span class="color-info font14">办结件数</span>
+                </template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+              <el-statistic :value="state.data.handleEndOrderOnTime">
+                <template #title>
+                  <span class="color-info font14">按时办结数量</span>
+                </template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+              <el-statistic :value="state.data.handleEndOrderRate">
+                <template #title>
+                  <span class="color-info font14">办结率</span>
+                </template>
+                <template #suffix>%</template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+              <el-statistic :value="state.data.handleEndOrderOnTimeRate">
+                <template #title>
+                  <span class="color-info font14">按时办结率</span>
+                </template>
+                <template #suffix>%</template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <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">
+              <el-statistic :value="state.data.orderTimely">
+                <template #title>
+                  <span class="color-info font14">工单及时上传</span>
+                </template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+              <el-statistic :value="state.data.orderNotTimely">
+                <template #title>
+                  <span class="color-info font14">工单未及时上传</span>
+                </template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+              <el-statistic :value="state.data.orderTimelinessRate">
+                <template #title>
+                  <span class="color-info font14">工单及时率</span>
+                </template>
+                <template #suffix>%</template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <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">
+              <el-statistic :value="state.data.telCountNum">
+                <template #title>
+                  <span class="color-info font14">电话总量</span>
+                </template>
+              </el-statistic>
+            </el-card> </el-col
+          ><el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+          <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+            <el-statistic :value="state.data.telConnectCountNum">
+              <template #title>
+                <span class="color-info font14">电话接通数</span>
+              </template>
+            </el-statistic>
+          </el-card> </el-col
+        ><el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+          <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+            <el-statistic :value="state.data.telNotConnectCountNum">
+              <template #title>
+                <span class="color-info font14">电话未接通数</span>
+              </template>
+            </el-statistic>
+          </el-card>
+        </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+              <el-statistic :value="state.data.telConnectRate">
+                <template #title>
+                  <span class="color-info font14">电话接通率</span>
+                </template>
+                <template #suffix>%</template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <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">
+              <el-statistic :value="state.data.telTimely">
+                <template #title>
+                  <span class="color-info font14">电话及时上传</span>
+                </template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+              <el-statistic :value="state.data.telNotTimely">
+                <template #title>
+                  <span class="color-info font14">电话未及时上传</span>
+                </template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+              <el-statistic :value="state.data.telTimelinessRate">
+                <template #title>
+                  <span class="color-info font14">电话及时率</span>
+                </template>
+                <template #suffix>%</template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <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">
+              <el-statistic :value="state.data.rgdhOrderCount">
+                <template #title>
+                  <span class="color-info font14">电话来源工单数量</span>
+                </template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+              <el-statistic :value="state.data.containTel">
+                <template #title>
+                  <span class="color-info font14">匹配通话记录数</span>
+                </template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+              <el-statistic :value="state.data.notContainTel">
+                <template #title>
+                  <span class="color-info font14">未匹配通话记录数</span>
+                </template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+              <el-statistic :value="state.data.matchingRate">
+                <template #title>
+                  <span class="color-info font14">匹配率</span>
+                </template>
+                <template #suffix>%</template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <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">
+              <el-statistic :value="state.data.visitCountNum">
+                <template #title>
+                  <span class="color-info font14">回访总量</span>
+                </template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+              <el-statistic :value="state.data.satisfactionCountNum">
+                <template #title>
+                  <span class="color-info font14">满意总量</span>
+                </template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+              <el-statistic :value="state.data.notSatisfiedCountNum">
+                <template #title>
+                  <span class="color-info font14">不满意总量</span>
+                </template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+              <el-statistic :value="state.data.satisfactionRate">
+                <template #title>
+                  <span class="color-info font14">满意率</span>
+                </template>
+                <template #suffix>%</template>
+              </el-statistic>
+            </el-card> </el-col
+          ><el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+          <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+            <el-statistic :value="state.data.notSatisfiedRate">
+              <template #title>
+                <span class="color-info font14">不满意率</span>
+              </template>
+              <template #suffix>%</template>
+            </el-statistic>
+          </el-card>
+        </el-col>
+          <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">
+              <el-statistic :value="state.data.knowledgeCount">
+                <template #title>
+                  <span class="color-info font14">知识库总量</span>
+                </template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4">
+            <el-card shadow="never" v-loading="state.loading" class="statistics-item">
+              <el-statistic :value="state.data.updateKnowledgeCount">
+                <template #title>
+                  <span class="color-info font14">更新知识库量</span>
+                </template>
+              </el-statistic>
+            </el-card>
+          </el-col>
+        </el-row>
+      <el-backtop target=".backToTop" />
+		</div>
+	</div>
 </template>
 <script setup lang="tsx" name="dataShareTimeliness">
 import { onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { defaultDate, shortcuts } from "@/utils/constants";
-import { formatDate } from "@/utils/formatTime";
-import { getTimeRate } from "@/api/dataShare";
-import Other from "@/utils/other";
+import { defaultDateTime, defaultTimeStartEnd, shortcuts } from "@/utils/constants";
+import { formatDate } from '@/utils/formatTime';
+import { getTimeRateNew } from '@/api/dataShare';
+import Other from '@/utils/other';
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-  { prop: 'provinceNo', label: '省工单编码', align: 'center' },
-  {
-    prop: 'firstTime',
-    label: '初次推送时间',
-    align: 'center',
-    width: 170,
-    render: (scope) => {
-      return <span>{formatDate(scope.row.firstTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-    },
-  },
-  {
-    prop: 'lastTime',
-    label: '最近一次推送时间',
-    align: 'center',
-    width: 170,
-    render: (scope) => {
-      return <span>{formatDate(scope.row.lastTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-    },
-  },
-  {
-    prop: 'sendTimes',
-    label: '推送次数',
-    align: 'center',
-  },
-  {
-    prop: 'isSuccess',
-    label: '推送状态',
-    align: 'center',
-    render: (scope) => {
-      return <span>{scope.row.isSuccess ? '成功' : '失败'}</span>;
-    },
-  },
-  {
-    prop: 'platformSource',
-    label: '平台名称',
-    align: 'center',
-  },
-  { prop: 'taskType', label: '任务类型', align: 'center' },
-  { prop: 'request', label: '请求参数', align: 'center' },
-  {
-    prop: 'generationTime',
-    label: '生成时间',
-    align: 'center',
-    width: 170,
-    render: (scope) => {
-      return <span>{formatDate(scope.row.generationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-    },
-  },
-  {
-    prop: 'creationTime',
-    label: '创建时间',
-    align: 'center',
-    width: 170,
-    render: (scope) => {
-      return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-    },
-  },
+	{ prop: 'provinceNo', label: '省工单编码', align: 'center' },
+	{
+		prop: 'firstTime',
+		label: '初次推送时间',
+		align: 'center',
+		width: 170,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.firstTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{
+		prop: 'lastTime',
+		label: '最近一次推送时间',
+		align: 'center',
+		width: 170,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.lastTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{
+		prop: 'sendTimes',
+		label: '推送次数',
+		align: 'center',
+	},
+	{
+		prop: 'isSuccess',
+		label: '推送状态',
+		align: 'center',
+		render: (scope) => {
+			return <span>{scope.row.isSuccess ? '成功' : '失败'}</span>;
+		},
+	},
+	{
+		prop: 'platformSource',
+		label: '平台名称',
+		align: 'center',
+	},
+	{ prop: 'taskType', label: '任务类型', align: 'center' },
+	{ prop: 'request', label: '请求参数', align: 'center' },
+	{
+		prop: 'generationTime',
+		label: '生成时间',
+		align: 'center',
+		width: 170,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.generationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{
+		prop: 'creationTime',
+		label: '创建时间',
+		align: 'center',
+		width: 170,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
 ]);
 // 定义变量内容
 const ruleFormRef = ref<RefType>(); // 表单ref
 const state = reactive<any>({
-  queryParams: {
-    crTime: defaultDate,
-    StartTime:null,
-    EndTime:null
-  },
-  loading: false, // 加载
-  data:{
-    orderCountNum:0, // 工单总量
-    handleEndOrderNum:0 , // 办结件数
-    handleEndOrderOnTime:0, // 按时办结数量
-    orderTimely:0, // 按时办结率
-    orderNotTimely:0, // 不按时办结数量
-    orderTimelinessRate:0, // 按时办结率
-    handleEndOrderRate:0, // 办结率
-    handleEndOrderOnTimeRate:0, // 按时办结率
-    telCountNum:0, // 电话总量
-    telConnectCountNum:0, // 电话接通数
-    telNotConnectCountNum:0, // 电话未接通数
-    telTimely:0, // 按时接通率
-    telNotTimely:0, // 不按时接通数量
-    telTimelinessRate:0, // 按时接通率
-    telConnectRate:0, // 接通率
-    rgdhOrderCount:0, // 电话来源工单数量
-    containTel:0, // 包含电话数量
-    notContainTel:0, // 不包含电话数量
-    matchingRate:0, // 匹配率
-    visitCountNum:0, // 回访总量
-    satisfactionCountNum:0, // 满意总量
-    notSatisfiedCountNum:0, // 不满意总量
-    satisfactionRate:0, // 满意率
-    notSatisfactionRate:0, // 不满意率
-    knowledgeCount:0, // 知识库总量
-    updateKnowledgeCount:0, // 更新知识库量
-  }
+	queryParams: {
+		crTime: defaultDateTime,
+		StartTime: null,
+		EndTime: null,
+	},
+	loading: false, // 加载
+	data: {
+		orderCountNum: 0, // 工单总量
+		handleEndOrderNum: 0, // 办结件数
+		handleEndOrderOnTime: 0, // 按时办结数量
+		orderTimely: 0, // 按时办结率
+		orderNotTimely: 0, // 不按时办结数量
+		orderTimelinessRate: 0, // 按时办结率
+		handleEndOrderRate: 0, // 办结率
+		handleEndOrderOnTimeRate: 0, // 按时办结率
+		telCountNum: 0, // 电话总量
+		telConnectCountNum: 0, // 电话接通数
+		telNotConnectCountNum: 0, // 电话未接通数
+		telTimely: 0, // 按时接通率
+		telNotTimely: 0, // 不按时接通数量
+		telTimelinessRate: 0, // 按时接通率
+		telConnectRate: 0, // 接通率
+		rgdhOrderCount: 0, // 电话来源工单数量
+		containTel: 0, // 包含电话数量
+		notContainTel: 0, // 不包含电话数量
+		matchingRate: 0, // 匹配率
+		visitCountNum: 0, // 回访总量
+		satisfactionCountNum: 0, // 满意总量
+		notSatisfiedCountNum: 0, // 不满意总量
+		satisfactionRate: 0, // 满意率
+		notSatisfactionRate: 0, // 不满意率
+		knowledgeCount: 0, // 知识库总量
+		updateKnowledgeCount: 0, // 更新知识库量
+	},
 });
 /** 搜索按钮操作 */
 const handleQuery = () => {
-  // state.queryParams.PageIndex = 1;
-  queryList();
+	// state.queryParams.PageIndex = 1;
+	queryList();
 };
 /** 获取列表 */
 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');
-  getTimeRate(request)
-    .then((res: any) => {
-      state.data = res.result ?? {};
-      state.loading = false;
-    })
-    .catch(() => {
-      state.loading = false;
-    });
+	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');
+	getTimeRateNew(request)
+		.then((res: any) => {
+			state.data = res.result ?? {};
+			state.loading = false;
+		})
+		.catch(() => {
+			state.loading = false;
+		});
 };
 /** 重置按钮操作 */
 const resetQuery = (formEl: FormInstance | undefined) => {
-  if (!formEl) return;
-  formEl.resetFields();
-  queryList();
+	if (!formEl) return;
+	formEl.resetFields();
+	queryList();
 };
 onMounted(() => {
-  queryList();
+	queryList();
 });
 </script>
 <style scoped lang="scss">
-.statistics-item {
-  margin-bottom: 10px;
+.dataShare-timeliness-container {
+	.el-divider--horizontal {
+		margin: 24px 0;
+	}
+	.statistics-item {
+		margin-bottom: 10px;
+	}
+  :deep(.layout-padding-view){
+    background-color: transparent;
+  }
+  :deep(.el-divider__text){
+    background-color: var(--hotline-bg-main-color);
+  }
 }
 </style>
-

+ 2 - 2
src/views/statistics/call/telephonist.vue

@@ -85,11 +85,11 @@ const columns = ref<any[]>([
 	{ prop: 'inAvailableAnswer', label: '有效接通量', align: 'center', sortable: 'custom', minWidth: 120 },
 	{ prop: 'inHangupImmediateWhenAnswered', label: '接通秒挂', align: 'center', sortable: 'custom', minWidth: 120 },
 	{
-		prop: 'inAnsweredRate',
+		prop: 'availableAnswerRate',
 		label: '有效接通率',
 		align: 'center',
 		sortable: 'custom',
-		render: (scope) => <span>{scope.row.inAnsweredRate}%</span>,
+		render: (scope) => <span>{scope.row.availableAnswerRate}%</span>,
 		minWidth: 120,
 	},
 	{ prop: 'outTotal', label: '呼出总量', align: 'center', sortable: 'custom', minWidth: 120 },

+ 2 - 2
src/views/statistics/center/report.vue → src/views/statistics/center/analysis.vue

@@ -1,5 +1,5 @@
 <template>
-	<div class="statistics-center-report-container layout-padding">
+	<div class="statistics-center-analysis-container layout-padding">
     <div class="layout-padding-auto layout-padding-view pd20">
       <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
         <el-form-item prop="dateType" label="时间单位">
@@ -206,7 +206,7 @@
     </div>
 	</div>
 </template>
-<script setup lang="ts" name="statisticsCenterReport">
+<script setup lang="ts" name="statisticsCenterAnalysis">
 import { onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, FormInstance } from 'element-plus';
 import { throttle } from '@/utils/tools';

+ 204 - 0
src/views/statistics/center/dataList.vue

@@ -0,0 +1,204 @@
+<template>
+	<div class="statistics-center-data-list-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"
+				role-key="orgId"
+				:toolButton="['refresh', 'setting', 'exportCurrent', 'exportAll']"
+				:exportMethod="centerEmergencyListExport"
+				:exportParams="requestParams"
+			>
+				<template #table-search>
+					<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+						<el-form-item label="工单标题" prop="Title">
+							<el-input v-model="state.queryParams.Title" placeholder="工单标题" clearable @keyup.enter="handleQuery" class="keyword-input"/>
+						</el-form-item>
+						<el-form-item label="工单编码" prop="No">
+							<el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" class="keyword-input"/>
+						</el-form-item>
+						<el-form-item>
+							<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
+							<el-button @click="drawer = true" class="default-button"> <SvgIcon name="ele-Search" class="mr5" />更多查询</el-button>
+						</el-form-item>
+					</el-form>
+				</template>
+				<template #title="{ row }">
+					<order-detail :order="row" @updateList="queryList">{{ row.title }}</order-detail>
+				</template>
+			</ProTable>
+		</div>
+		<el-drawer v-model="drawer" title="更多查询" size="500px">
+			<el-form :model="state.queryParams" ref="drawerRuleFormRef" @submit.native.prevent label-width="90px">
+				<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 label="开始时间" prop="startTime">
+					<el-date-picker
+						v-model="state.queryParams.startTime"
+						type="datetimerange"
+						unlink-panels
+						range-separator="至"
+						start-placeholder="开始时间"
+						end-placeholder="结束时间"
+						:shortcuts="shortcuts"
+						@change="handleQuery"
+						value-format="YYYY-MM-DD[T]HH:mm:ss"
+						:default-time="defaultTimeStartEnd"
+					/>
+				</el-form-item>
+				<el-form-item label="结束时间" prop="endTime">
+					<el-date-picker
+						v-model="state.queryParams.endTime"
+						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>
+			<template #footer>
+				<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
+				<el-button @click="resetQuery(drawerRuleFormRef)" class="default-button"> <SvgIcon name="ele-Refresh" class="mr5" />重置 </el-button>
+			</template>
+		</el-drawer>
+	</div>
+</template>
+<script setup lang="tsx" name="statisticsCenterDataList">
+import { onMounted, reactive, ref, defineAsyncComponent } from 'vue';
+import { FormInstance } from 'element-plus';
+import { centerEmergencyList, centerEmergencyListExport } from '@/api/statistics/center';
+import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
+import Other from '@/utils/other';
+import { formatDate } from '@/utils/formatTime';
+
+// 引入组件
+const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
+// 表格配置项
+const columns = ref<any[]>([
+	{ prop: 'no', label: '工单编码', minWidth: 140 },
+	{ prop: 'arrangeTitle', label: '工单标题', minWidth: 200 },
+	{ prop: 'hotspotSpliceName', label: '热点全称', minWidth: 200 },
+	{ prop: 'acceptType', label: '受理类型', minWidth: 100 },
+	{ prop: 'sourceChannel', label: '来源渠道', minWidth: 100 },
+	{ prop: 'address', label: '事发地址', minWidth: 150 },
+	{ prop: 'arrangeContent', label: '受理内容', minWidth: 200 },
+	{ prop: 'arrangementOpinion', label: '承办意见', minWidth: 200 },
+	{
+		prop: 'creationTime',
+		label: '创建时间',
+		minWidth: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row?.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{
+		prop: 'filedTime',
+		label: '办结时间',
+		minWidth: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row?.filedTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{ prop: 'pushStateText', label: '推送状态', minWidth: 100 },
+]);
+const searchCol = ref(true); // 展开/收起
+// 展开/收起
+const closeSearch = () => {
+	searchCol.value = !searchCol.value;
+};
+// 定义变量内容
+const state = reactive<any>({
+	queryParams: {
+		// 查询条件
+		PageIndex: 1,
+		PageSize: 20,
+		Title: null, // 关键词
+		No: null,
+		HotspotSpliceName: null,
+		AcceptType: null,
+		SourceChannel: null,
+		crTime: [], // 创建时间
+		StartTime: null,
+		EndTime: null,
+		bjTime: [], // 办结时间
+		FiledStartTime: null,
+		FiledEndTime: null,
+	},
+	tableData: [], //表单
+	loading: false, // 加载
+	total: 0, // 总数
+});
+/** 搜索按钮操作 */
+const handleQuery = () => {
+	state.queryParams.PageIndex = 1;
+	queryList();
+};
+/** 获取列表 */
+const requestParams = ref({});
+const queryList = () => {
+	state.loading = true;
+	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');
+	requestParams.value.FiledStartTime = state.queryParams.bjTime === null ? null : state.queryParams.bjTime[0];
+	requestParams.value.FiledEndTime = state.queryParams.bjTime === null ? null : state.queryParams.bjTime[1];
+	Reflect.deleteProperty(requestParams.value, 'bjTime');
+	centerEmergencyList(requestParams.value)
+		.then((res: any) => {
+			state.tableData = res.result?.items ?? [];
+			state.total = res.result?.total ?? 0;
+			state.loading = false;
+		})
+		.catch(() => {
+			state.loading = false;
+		});
+};
+/** 重置按钮操作 */
+const drawerRuleFormRef = ref<RefType>();
+const ruleFormRef = ref<RefType>(null); // 表单ref
+const drawer = ref(false);
+const resetQuery = (formEl: FormInstance | undefined) => {
+	if (!formEl) return;
+	formEl.resetFields();
+	ruleFormRef.value?.resetFields();
+	queryList();
+};
+onMounted(() => {
+	queryList();
+});
+</script>
+<style scoped lang="scss">
+.statistics-center-emergency-List-container {
+	.arrow {
+		transition: transform var(--el-transition-duration);
+		cursor: pointer;
+	}
+	.arrow.is-reverse {
+		transform: rotateZ(-180deg);
+	}
+}
+</style>

+ 0 - 0
src/views/statistics/center/report-check.vue → src/views/statistics/center/detail-report.vue


+ 1 - 1
src/views/statistics/center/reportManage.vue

@@ -175,7 +175,7 @@ const queryEventList = () => {
 // 查看报告
 const viewReport = (row: any) => {
 	router.push({
-		name: 'statisticsCenterReportCheck',
+		name: 'statisticsCenterDetailReport',
 		params: {
 			id: row.analysisId,
 		},

+ 73 - 75
src/views/statistics/order/hotspotCount.vue

@@ -1,75 +1,75 @@
 <template>
 	<div class="statistics-order-hotspot-count-container layout-padding">
-    <div class="layout-padding-auto layout-padding-view pd20">
+		<div class="layout-padding-auto layout-padding-view pd20">
 			<ProTable
 				ref="proTableRef"
 				:columns="columns"
-				:data="state.tableData"
+				:data="tableData"
 				:loading="state.loading"
 				row-key="id"
 				lazy
 				:load="load"
 				:tree-props="{ children: 'children', hasChildren: 'sublevel' }"
 				show-summary
-        border
-        :pagination="false"
+				border
+				:pagination="false"
 			>
-        <template #table-search>
-          <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-            <el-form-item prop="dateType" label="时间单位">
-              <el-select v-model="state.queryParams.dateType" placeholder="部门名称" @change="handleQuery">
-                <el-option label="年" value="year" />
-                <el-option label="月" value="month" />
-                <el-option label="日" value="date" />
-                <el-option label="自定义" value="daterange" />
-              </el-select>
-            </el-form-item>
-            <el-form-item prop="crTime" v-if="state.queryParams.dateType === 'daterange'" label="时间">
-              <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 prop="hbTime" v-if="state.queryParams.dateType === 'daterange'" label="环比时间段">
-              <el-date-picker
-                  v-model="state.queryParams.hbTime"
-                  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 prop="time" v-else label="时间">
-              <el-date-picker
-                  v-model="state.queryParams.time"
-                  :type="state.queryParams.dateType"
-                  placeholder="选择时间"
-                  @change="handleQuery"
-                  :value-format="valueFormat"
-                  :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 #table-search>
+					<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+						<el-form-item prop="dateType" label="时间单位">
+							<el-select v-model="state.queryParams.dateType" placeholder="部门名称" @change="handleQuery">
+								<el-option label="年" value="year" />
+								<el-option label="月" value="month" />
+								<el-option label="日" value="date" />
+								<el-option label="自定义" value="daterange" />
+							</el-select>
+						</el-form-item>
+						<el-form-item prop="crTime" v-if="state.queryParams.dateType === 'daterange'" label="时间">
+							<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 prop="hbTime" v-if="state.queryParams.dateType === 'daterange'" label="环比时间段">
+							<el-date-picker
+								v-model="state.queryParams.hbTime"
+								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 prop="time" v-else label="时间">
+							<el-date-picker
+								v-model="state.queryParams.time"
+								:type="state.queryParams.dateType"
+								placeholder="选择时间"
+								@change="handleQuery"
+								:value-format="valueFormat"
+								: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>
 		</div>
 	</div>
@@ -78,7 +78,7 @@
 import { computed, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import { departmentHot } from '@/api/statistics/order';
-import { defaultDate, shortcuts } from "@/utils/constants";
+import { defaultDate, shortcuts } from '@/utils/constants';
 import dayjs from 'dayjs';
 
 const columns = ref<any>([
@@ -95,12 +95,9 @@ const state = reactive({
 		dateType: 'date', // 关键词
 		time: dayjs(new Date()).format('YYYY-MM-DD'), // 时间默认今天
 		crTime: defaultDate, // 时间默认今天开始到今天结束
-		hbTime:defaultDate, // 时间默认今天开始到今天结束
+		hbTime: defaultDate, // 时间默认今天开始到今天结束
 	},
-	tableData: [], //表单
 	loading: false, // 加载
-	total: 0, // 总数
-	totalCount: {},
 });
 const valueFormat = computed(() => {
 	return state.queryParams.dateType === 'date' ? 'YYYY-MM-DD' : state.queryParams.dateType === 'month' ? 'YYYY-MM' : 'YYYY';
@@ -111,15 +108,16 @@ const getType = computed(() => {
 		date: '1',
 		year: '3',
 		month: '2',
-    daterange: '0',
+		daterange: '0',
 	};
 	return statusMap[state.queryParams.dateType] || '';
 });
+const tableData = ref<EmptyArrayType>([]);
 /** 搜索按钮操作 */
 const handleQuery = () => {
-  // state.queryParams.PageIndex = 1;
-  state.tableData = [];
-  queryList();
+	// state.queryParams.PageIndex = 1;
+	tableData.value = [];
+	queryList();
 };
 /** 获取列表 */
 const queryList = () => {
@@ -157,21 +155,22 @@ const queryList = () => {
 	};
 	departmentHot(request)
 		.then((res: any) => {
-			state.tableData = res.result.list ?? [];
-			state.totalCount = res.result.total;
+			tableData.value = [...res.result.list];
 			state.loading = false;
 		})
 		.catch(() => {
 			state.loading = false;
 		});
-}
+};
 /** 重置按钮操作 */
 const resetQuery = (formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	formEl.resetFields();
 	queryList();
-}
+};
 // 懒加载
+const proTableRef = ref<RefType>();
+const maps = new Map();
 const load = (row: any, treeNode: unknown, resolve: (date: any[]) => void) => {
 	let StartTime = null;
 	let EndTime = null;
@@ -207,8 +206,7 @@ const load = (row: any, treeNode: unknown, resolve: (date: any[]) => void) => {
 	};
 	departmentHot(request)
 		.then((res: any) => {
-			state.totalCount = res.result.total;
-			resolve(res.result.list ?? []);
+			resolve([...res.result.list]);
 		})
 		.catch(() => {});
 };