Forráskód Böngészése

reactor:274 中心办件统计表:新增【发布量统计】;

zhangchong 8 hónapja
szülő
commit
9b3cb0c7f0

+ 49 - 16
src/api/statistics/center.ts

@@ -399,10 +399,10 @@ export const centerEnterpriseSpecialistLetterDetailExport = (data: object) => {
   });
 }
 /**
- * @description 发布量统计
+ * @description 发布量统计
  * @param {object} params
  */
-export const statisticsOrderPublish = (params: object) => {
+export const centerPublish = (params: object) => {
   return request({
     url: `/api/v1/Order/published/statistics`,
     method: 'get',
@@ -410,19 +410,52 @@ export const statisticsOrderPublish = (params: object) => {
   });
 };
 /**
- * @description 发布量统计列表导出
+ * @description 发布量统计列表(部门)
+ * @param {object} params
+ */
+export const centerPublishList = (params: object) => {
+  return request({
+    url: `/api/v1/Order/published/statistics/department`,
+    method: 'get',
+    params,
+  });
+};
+/**
+ * @description 发布量统计列表导出(部门)
  * @param {object} data
  */
-export const statisticsOrderPublishExport = (data: object) => {
-  return request(
-    {
-      url: `/api/v1/Order/published/statistics/export`,
-      method: 'post',
-      data,
-      responseType: 'blob',
-    },
-    {
-      reduce_data_format: false,
-    }
-  );
-};
+export const centerPublishListExport = (data: object) => {
+  return request({
+    url: `/api/v1/Order/published/statistics/department/export`,
+    method: 'post',
+    data,
+    responseType: 'blob',
+  }, {
+    reduce_data_format: false
+  });
+};
+/**
+ * @description 发布量统计列表(用户)
+ * @param {object} params
+ */
+export const centerPublishUserList = (params: object) => {
+  return request({
+    url: `/api/v1/Order/published/statistics/user`,
+    method: 'get',
+    params,
+  });
+};
+/**
+ * @description 发布量统计列表导出(用户)
+ * @param {object} data
+ */
+export const centerPublishUserListExport = (data: object) => {
+  return request({
+    url: `/api/v1/Order/published/statistics/user/export`,
+    method: 'post',
+    data,
+    responseType: 'blob',
+  }, {
+    reduce_data_format: false
+  });
+};

+ 15 - 8
src/components/OrderDetail/index.vue

@@ -157,7 +157,7 @@
 							<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="['ZiGong'].includes(themeConfig.appScope)">
 								<el-form-item label="重点事项类型">
 									<span class="color-danger" v-if="state.ruleForm.isUrgent">紧急;</span>
-									<span  class="color-danger" v-if="state.ruleForm.is24HoursComplete">24小时办结</span>
+									<span class="color-danger" v-if="state.ruleForm.is24HoursComplete">24小时办结</span>
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="['ZiGong'].includes(themeConfig.appScope) && state.ruleForm.orderTag">
@@ -173,7 +173,7 @@
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 								<el-form-item label="受理内容">
-									<div v-html="showKeyWord(state.ruleForm.content, state.ruleForm.sensitive)"  class="formatted-text"></div>
+									<div v-html="showKeyWord(state.ruleForm.content, state.ruleForm.sensitive)" class="formatted-text"></div>
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
@@ -207,7 +207,12 @@
 								<el-form-item label="办理时间"> {{ formatDate(state.ruleForm.actualHandleTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm.timeLimit">
-								<el-form-item label="工单办理期限"> {{ state.ruleForm.timeLimit }} <span  class="color-danger" v-if="['ZiGong'].includes(themeConfig.appScope) && state.ruleForm.is24HoursComplete">24小时办结</span></el-form-item>
+								<el-form-item label="工单办理期限">
+									{{ state.ruleForm.timeLimit }}
+									<span class="color-danger" v-if="['ZiGong'].includes(themeConfig.appScope) && state.ruleForm.is24HoursComplete"
+										>24小时办结</span
+									></el-form-item
+								>
 							</el-col>
 							<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm.expiredTime">
 								<el-form-item label="工单期满时间">
@@ -241,7 +246,9 @@
 								<el-form-item label="退回意见" class="formatted-text"> {{ state.ruleForm.sendBackOpinion }} </el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="state.ruleForm.sendBackRefuseOpinion">
-								<el-form-item label="退回不通过原因" label-width="120px" class="formatted-text"> {{ state.ruleForm.sendBackRefuseOpinion }} </el-form-item>
+								<el-form-item label="退回不通过原因" label-width="120px" class="formatted-text">
+									{{ state.ruleForm.sendBackRefuseOpinion }}
+								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="state.ruleForm.sendBackAuditTime">
 								<el-form-item label="退回审批时间" label-width="120px">
@@ -251,9 +258,9 @@
 							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="state.ruleForm.orderRemarks?.length">
 								<el-form-item label="备注信息">
 									<el-row v-for="item in state.ruleForm.orderRemarks" class="w100 mb10">
-										<el-col class="formatted-text"> 备注信息:{{ item.remark }} </el-col>
-										<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6"> 备注人:{{ item.remarkUser }} </el-col>
-										<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6"> 备注日期:{{ formatDate(item.remarkTime, 'YYYY-mm-dd HH:MM:SS') }} </el-col>
+										<el-col class="formatted-text">备注信息:{{ item.remark }} </el-col>
+										<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">备注人:{{ item.remarkUser }} </el-col>
+										<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">备注日期:{{ formatDate(item.remarkTime, 'YYYY-mm-dd HH:MM:SS') }}</el-col>
 									</el-row>
 								</el-form-item>
 							</el-col>
@@ -914,7 +921,7 @@ defineExpose({
 		.el-form-item {
 			margin-bottom: 5px;
 			.el-form-item__content {
-				line-height: 24px;
+				line-height: 20px;
 			}
 		}
 	}

+ 4 - 0
src/theme/app.scss

@@ -529,4 +529,8 @@ li {
 	white-space: pre-wrap; /* 保留换行 */
 	word-wrap: break-word; /* 超长单词自动换行 */
 	overflow-wrap: break-word; /* 处理长单词或 URL 的换行 */
+	line-height: 20px;
+	.el-form-item__content{
+		line-height: 20px !important;
+	}
 }

+ 1 - 1
src/views/judicial/order/components/orderDetail.vue

@@ -220,7 +220,7 @@ defineExpose({
 		.el-form-item {
 			margin-bottom: 5px;
 			.el-form-item__content {
-				line-height: 24px;
+				line-height: 20px;
 			}
 		}
 	}

+ 111 - 62
src/views/statistics/center/publications.vue

@@ -59,15 +59,21 @@
 					:data="state.tableData1"
 					@updateTable="queryList"
 					:loading="state.loading"
-					:total="state.total"
+					:total="state.total1"
 					v-model:page-index="state.queryParams1.PageIndex"
 					v-model:page-size="state.queryParams1.PageSize"
 					:toolButton="['refresh', 'setting', 'exportCurrent', 'exportAll']"
-					:exportMethod="statisticsOrderPublishExport"
+					:exportMethod="centerPublishUserListExport"
 					:exportParams="requestParams"
 				>
 					<template #table-search>
 						<el-form :model="state.queryParams1" ref="ruleFormRef1" @submit.native.prevent inline>
+							<el-form-item label="归档类型" prop="ProcessType">
+								<el-select v-model="state.queryParams1.ProcessType" placeholder="请选择归档类型" @change="handleQuery" class="w100" clearable>
+									<el-option label="中心归档" value="10" />
+									<el-option label="部门归档" value="20" />
+								</el-select>
+							</el-form-item>
 							<el-form-item label="时间段" prop="crTime">
 								<el-date-picker
 									v-model="state.queryParams1.crTime"
@@ -90,54 +96,76 @@
 							</el-form-item>
 						</el-form>
 					</template>
+					<template #description>
+						<el-popover :width="500" trigger="click">
+							<template #reference>
+								<el-button circle title="口径说明"><SvgIcon name="ele-QuestionFilled" /></el-button>
+							</template>
+							<el-descriptions title="" :column="1" border style="max-height: 400px; overflow: auto">
+								<el-descriptions-item label="发布人">当前登录系统发布工单的用户</el-descriptions-item>
+								<el-descriptions-item label="待发布量">待发布工单总数量</el-descriptions-item>
+								<el-descriptions-item label="不公开发布量">勾选不公开发布的工单总量</el-descriptions-item>
+								<el-descriptions-item label="公开发布量">勾选公开发布的工单总量</el-descriptions-item>
+								<el-descriptions-item label="总量">待发布量+不公开发布量+公开发量</el-descriptions-item>
+							</el-descriptions>
+						</el-popover>
+					</template>
 				</ProTable>
 			</template>
 			<template v-if="state.active === 'list'">
-					<ProTable
-						ref="proTableRef2"
-						:columns="columns2"
-						:data="state.tableData2"
-						@updateTable="queryList"
-						:loading="state.loading"
-						:total="state.total2"
-						v-model:page-index="state.queryParams2.PageIndex"
-						v-model:page-size="state.queryParams2.PageSize"
-						:toolButton="['refresh', 'setting', 'exportCurrent', 'exportAll']"
-						:exportMethod="statisticsOrderPublishExport"
-						:exportParams="requestParams"
-					>
-						<template #table-search>
-							<el-form :model="state.queryParams2" ref="ruleFormRef2" @submit.native.prevent inline>
-								<el-form-item label="归档类型" prop="FiledType">
-									<el-select v-model="state.queryParams2.FiledType" placeholder="请选择归档类型" @change="handleQuery" class="w100">
-										<el-option label="中心归档" value="10" />
-										<el-option label="部门归档" value="20" />
-									</el-select>
-								</el-form-item>
-								<el-form-item label="时间段" prop="crTime">
-									<el-date-picker
-										v-model="state.queryParams2.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(queryParams2)" class="default-button" :loading="state.loading">
-										<SvgIcon name="ele-Refresh" class="mr5" />重置
-									</el-button>
-								</el-form-item>
-							</el-form>
-						</template>
-					</ProTable>
-				</template>
+				<ProTable
+					ref="proTableRef2"
+					:columns="columns2"
+					:data="state.tableData2"
+					@updateTable="queryList"
+					:loading="state.loading"
+					:total="state.total2"
+					v-model:page-index="state.queryParams2.PageIndex"
+					v-model:page-size="state.queryParams2.PageSize"
+					:toolButton="['refresh', 'setting', 'exportCurrent', 'exportAll']"
+					:exportMethod="centerPublishListExport"
+					:exportParams="requestParams"
+				>
+					<template #table-search>
+						<el-form :model="state.queryParams2" ref="ruleFormRef2" @submit.native.prevent inline>
+							<el-form-item label="时间段" prop="crTime">
+								<el-date-picker
+									v-model="state.queryParams2.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(queryParams2)" class="default-button" :loading="state.loading">
+									<SvgIcon name="ele-Refresh" class="mr5" />重置
+								</el-button>
+							</el-form-item>
+						</el-form>
+					</template>
+					<template #description>
+						<el-popover :width="500" trigger="click">
+							<template #reference>
+								<el-button circle title="口径说明"><SvgIcon name="ele-QuestionFilled" /></el-button>
+							</template>
+							<el-descriptions title="" :column="1" border style="max-height: 400px; overflow: auto">
+								<el-descriptions-item label="发布时间">工单发布时间</el-descriptions-item>
+								<el-descriptions-item label="办理部门">工单最后办理部门</el-descriptions-item>
+								<el-descriptions-item label="待发布">工单待发布件</el-descriptions-item>
+								<el-descriptions-item label="发布公开">单发布勾选公开</el-descriptions-item>
+								<el-descriptions-item label="发布不公开">工单发布勾选不公开</el-descriptions-item>
+							</el-descriptions>
+						</el-popover>
+					</template>
+				</ProTable>
+			</template>
 		</el-card>
 	</div>
 </template>
@@ -146,7 +174,14 @@ import { onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import { defaultDate, shortcuts } from '@/utils/constants';
 import Other from '@/utils/other';
-import {  statisticsOrderPublish,statisticsOrderPublishExport } from '@/api/statistics/center';
+import {
+	centerPublish,
+	centerPublishList,
+	centerPublishUserList,
+	centerPublishListExport,
+	centerPublishUserListExport,
+} from '@/api/statistics/center';
+import { formatDate } from '@/utils/formatTime';
 
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
@@ -165,9 +200,8 @@ const state = reactive<any>({
 		StartTime: null,
 		EndTime: null,
 	},
-	tableData: [], //表单
+
 	loading: false, // 加载
-	total: 0, // 总数
 	active: 'pie',
 	queryParams1: {
 		crTime: defaultDate, //
@@ -175,14 +209,16 @@ const state = reactive<any>({
 		EndTime: null,
 		PageIndex: 1,
 		PageSize: 10,
+		ProcessType: null,
 	},
-	queryParams2:{
+	tableData1: [], //表单
+	total1: 0, // 总数
+	queryParams2: {
 		crTime: defaultDate, //
 		StartTime: null,
 		EndTime: null,
 		PageIndex: 1,
 		PageSize: 10,
-		FiledType:null
 	},
 	tableData2: [], //表单
 	total2: 0, // 总数
@@ -204,18 +240,19 @@ const queryList = async () => {
 				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');
+				const response = await centerPublish(requestParams.value);
 				state.tableData = [
 					{
 						label: '待发布',
-						num: 1731,
+						num: response.result.waitCount,
 					},
 					{
 						label: '发布公开',
-						num: 60,
+						num: response.result.publicCount,
 					},
 					{
 						label: '发布不公开',
-						num: 37918,
+						num: response.result.privateCount,
 					},
 				];
 				const xData = state.tableData.map((item: any) => item.label);
@@ -238,8 +275,9 @@ const queryList = async () => {
 				requestParams.value.StartTime = state.queryParams1.crTime === null ? null : state.queryParams1.crTime[0];
 				requestParams.value.EndTime = state.queryParams1.crTime === null ? null : state.queryParams1.crTime[1];
 				Reflect.deleteProperty(requestParams.value, 'crTime');
-				const { result} = await statisticsOrderPublish(requestParams.value);
-				console.log(result)
+				const { result } = await centerPublishUserList(requestParams.value);
+				state.tableData1 = result.items ?? [];
+				state.total1 = result.total;
 				state.loading = false;
 				break;
 			case 'list': // 列表
@@ -247,6 +285,9 @@ const queryList = async () => {
 				requestParams.value.StartTime = state.queryParams2.crTime === null ? null : state.queryParams2.crTime[0];
 				requestParams.value.EndTime = state.queryParams2.crTime === null ? null : state.queryParams2.crTime[1];
 				Reflect.deleteProperty(requestParams.value, 'crTime');
+				const listResponse = await centerPublishList(requestParams.value);
+				state.tableData2 = listResponse.result?.items ?? [];
+				state.total2 = listResponse.result?.total;
 				state.loading = false;
 				break;
 			default:
@@ -366,11 +407,19 @@ const columns1 = ref<any[]>([
 	{ prop: 'totalCount', label: '总量', align: 'center' },
 ]);
 const columns2 = ref<any[]>([
-	{ prop: 'label', label: '发布时间', align: 'center' },
-	{ prop: 'num', label: '办理部门', align: 'center',minWidth: 150 },
-	{ prop: 'num', label: '待发布', align: 'center' },
-	{ prop: 'num', label: '发布公开', align: 'center' },
-	{ prop: 'num', label: '发布不公开', align: 'center' },
+	{
+		prop: 'publishTime',
+		label: '发布时间',
+		align: 'center',
+		minWidth: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.publishTime, 'YYYY-mm-dd')}</span>;
+		},
+	},
+	{ prop: 'name', label: '办理部门', align: 'center', minWidth: 150 },
+	{ prop: 'waitCount', label: '待发布', align: 'center' },
+	{ prop: 'publicCount', label: '发布公开', align: 'center' },
+	{ prop: 'privateCount', label: '发布不公开', align: 'center' },
 ]);
 onMounted(() => {
 	queryList();

+ 1 - 1
src/views/todo/seats/accept/Copy.vue

@@ -233,7 +233,7 @@ defineExpose({
 		.el-form-item {
 			margin-bottom: 5px;
 			.el-form-item__content {
-				line-height: 24px;
+				line-height: 20px;
 			}
 		}
 	}