Pārlūkot izejas kodu

reactor:对接随手拍统计报表i

zhangchong 1 mēnesi atpakaļ
vecāks
revīzija
eb45475868

+ 1 - 1
.env.development

@@ -3,7 +3,7 @@ VITE_MODE_NAME=development
 # 防止部署多套系统到同一域名不同目录时,变量共用的问题 设置不同的前缀
 VITE_STORAGE_NAME=dev
 # 业务系统基础请求地址
-VITE_API_URL=http://110.188.24.28:50300
+VITE_API_URL=http://110.188.24.28:50100
 # 业务系统socket请求地址
 VITE_API_SOCKET_URL=http://110.188.24.28:50100/hubs/hotline
 # 业务系统文件上传上传请求地址

+ 56 - 0
src/api/snapshot/statistics.ts

@@ -411,3 +411,59 @@ export const getSSPStatisticsRepeatExport = (data: object) => {
 		}
 	);
 };
+/**
+ * @description 获取随手拍社区统计
+ * @param {object} params
+ */
+export const getSSPStatisticsCommunity = (params?: object) => {
+	return request({
+		url: '/api/v1/BiSnapshot/community-statistics',
+		method: 'get',
+		params,
+	});
+};
+/**
+ * @description 随手拍社区统计导出
+ * @param {object} data
+ */
+export const getSSPStatisticsCommunityExport = (data: object) => {
+	return request(
+		{
+			url: '/api/v1/BiSnapshot/community-statistics/export_excel',
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
+/**
+ * @description 获取随手拍社区统计详情
+ * @param {object} params
+ */
+export const getSSPStatisticsCommunityDetail = (params?: object) => {
+	return request({
+		url: '/api/v1/BiSnapshot/community-statistics-detail',
+		method: 'get',
+		params,
+	});
+};
+/**
+ * @description 随手拍社区统计详情导出
+ * @param {object} data
+ */
+ export const getSSPStatisticsCommunityDetailExport = (data: object) => {
+	return request(
+		{
+			url: '/api/v1/BiSnapshot/community-statistics-detail/export_excel',
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};

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

@@ -452,13 +452,13 @@
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
 						<el-form-item label="回访方式">
 							{{ state.ruleForm?.orderVisits[state.ruleForm?.orderVisits.length - 1]?.visitTypeText }}
-														<el-button
+							<el-button
 								plain
 								title="人工回访录音"
 								size="small"
 								type="primary"
 								class="ml8"
-								@click="onVisitRecord( state.ruleForm?.orderVisits[state.ruleForm?.orderVisits.length - 1])"
+								@click="onVisitRecord(state.ruleForm?.orderVisits[state.ruleForm?.orderVisits.length - 1])"
 								v-if="
 									['ZiGong', 'LuZhou', 'YiBin'].includes(themeConfig.appScope)
 										? state.ruleForm?.orderVisits[state.ruleForm?.orderVisits.length - 1]?.recordingAbsolutePath && userInfos.isCenter
@@ -877,7 +877,7 @@ const getOrderDetail = async (id: string) => {
 		state.workflow = state.ruleForm?.workflow ?? {};
 		state.orderComplements = result?.orderComplements ?? [];
 		state.loading = false;
-	} catch (error) {
+	} catch (error: any) {
 		state.loading = false;
 		state.dialogVisible = false;
 	}
@@ -948,7 +948,7 @@ const openDialog = (val: any) => {
 				value: '2',
 			},
 		];
-	} else {
+	} else if (['YiBin'].includes(themeConfig.value.appScope) && !userInfos.value.isCenter) {
 		state.tabPaneList = [
 			{
 				label: '工单详情',
@@ -966,10 +966,6 @@ const openDialog = (val: any) => {
 				label: '市民画像',
 				value: '3',
 			},
-			{
-				label: '副本工单',
-				value: '4',
-			},
 			/*		{
 				label: '地图信息',
 				value: '5',

+ 12 - 3
src/views/business/discern/YBApply.vue

@@ -2,7 +2,7 @@
 	<div class="business-discern-apply-container layout-padding">
 		<div class="layout-padding-auto layout-padding-view pd20">
 			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline :disabled="state.loading">
-				<el-form-item label="数据范围" prop="DataScope">
+				<el-form-item label="数据范围" prop="DataScope" v-auth="'business:discern:apply:dataScope'">
 					<el-segmented
 						:options="[
 							{
@@ -113,10 +113,19 @@
 					</vxe-column>
 					<vxe-column title="操作" fixed="right" width="240" align="center">
 						<template #default="{ row }">
-							<el-button link type="primary" @click="submitDiscern(row)" title="发起甄别申请" v-auth="'business:discern:apply:submit'">
+							<el-button
+								link
+								type="primary"
+								@click="submitDiscern(row)"
+								title="发起甄别申请"
+								v-auth="'business:discern:apply:submit'"
+								v-if="row.isShowOperate"
+							>
 								发起甄别
 							</el-button>
-							<el-button link type="primary" @click="onDetail(row)" title="查看甄别详情" v-if="row.screenSendBack"> 甄别详情 </el-button>
+							<el-button link type="primary" @click="onDetail(row)" title="查看甄别详情" v-if="row.screenSendBack && row.isShowOperate">
+								甄别详情
+							</el-button>
 							<el-button link type="primary" @click="visitDetail(row)" title="查看回访明细"> 回访明细 </el-button>
 						</template>
 					</vxe-column>

+ 20 - 4
src/views/business/discern/ZGApply.vue

@@ -6,7 +6,7 @@
 				<el-tab-pane :name="1" label="中心话务甄别" v-if="userInfos.isCenter" :disabled="state.loading"></el-tab-pane>
 			</el-tabs>
 			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline :disabled="state.loading">
-				<el-form-item label="数据范围" prop="DataScope">
+				<el-form-item label="数据范围" prop="DataScope" v-auth="'business:discern:apply:dataScope'">
 					<el-segmented
 						:options="[
 							{
@@ -123,13 +123,29 @@
 					</vxe-column>
 					<vxe-column title="操作" fixed="right" width="340" align="center">
 						<template #default="{ row }">
-							<el-button link type="primary" @click="submitDiscern(row)" title="发起甄别申请" v-auth="'business:discern:apply:submit'">
+							<el-button
+								link
+								type="primary"
+								@click="submitDiscern(row)"
+								title="发起甄别申请"
+								v-auth="'business:discern:apply:submit'"
+								v-if="row.isShowOperate"
+							>
 								发起甄别
 							</el-button>
-							<el-button link type="primary" @click="onEditApplyTime(row)" title="修改甄别提起时限" v-auth="'business:discern:apply:editApplyTime'">
+							<el-button
+								link
+								type="primary"
+								@click="onEditApplyTime(row)"
+								title="修改甄别提起时限"
+								v-auth="'business:discern:apply:editApplyTime'"
+								v-if="row.isShowOperate"
+							>
 								修改提起时限
 							</el-button>
-							<el-button link type="primary" @click="onDetail(row)" title="查看甄别详情" v-if="row.screenSendBack"> 甄别详情 </el-button>
+							<el-button link type="primary" @click="onDetail(row)" title="查看甄别详情" v-if="row.screenSendBack && row.isShowOperate">
+								甄别详情
+							</el-button>
 							<el-button link type="primary" @click="visitDetail(row)" title="查看回访明细"> 回访明细 </el-button>
 						</template>
 					</vxe-column>

+ 8 - 17
src/views/snapshot/statistics/community.vue

@@ -21,16 +21,6 @@
 					</el-form>
 				</template>
 			</vxe-grid>
-			<vxe-toolbar
-				ref="toolbarRef"
-				:loading="state.loading"
-				custom
-				:refresh="{
-					queryMethod: handleQuery,
-				}"
-				:tools="[{ toolRender: { name: 'exportAll' } }]"
-			>
-			</vxe-toolbar>
 		</div>
 	</div>
 </template>
@@ -41,7 +31,7 @@ import { defaultDate } from '@/utils/constants';
 import Other from '@/utils/other';
 import XEUtils from 'xe-utils';
 import { useRouter } from 'vue-router';
-import { getSSPStatisticsBaseData, getSSPStatisticsHotSpot, getSSPStatisticsHotSpotExport } from '@/api/snapshot/statistics';
+import {getSSPStatisticsBaseData, getSSPStatisticsCommunity, getSSPStatisticsCommunityExport} from '@/api/snapshot/statistics';
 
 const StatisticalTime = defineAsyncComponent(() => import('@/components/StatisticalTime/index.vue')); // 日期类型选择组件
 // 定义变量内容
@@ -87,7 +77,7 @@ const gridOptions = reactive<any>({
 	rowConfig: { isHover: true, height: 30, isCurrent: true, useKey: true },
 	height: 'auto',
 	columns: [
-		{ field: 'hotspotName', title: '热点名称', treeNode: true },
+		{ field: 'communityName', title: '热点名称', treeNode: true },
 		{
 			field: 'sumCount',
 			title: '分类统计',
@@ -104,7 +94,7 @@ const gridOptions = reactive<any>({
 	],
 	data: [],
 	params: {
-		exportMethod: getSSPStatisticsHotSpotExport,
+		exportMethod: getSSPStatisticsCommunityExport,
 		exportParams: requestParams,
 	},
 	sortConfig: {
@@ -150,7 +140,7 @@ const queryList = () => {
 	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');
-	getSSPStatisticsHotSpot(requestParams.value)
+  getSSPStatisticsCommunity(requestParams.value)
 		.then((res: any) => {
 			state.tableData = res.result ?? [];
 			state.tableData = state.tableData.map((item: any) => {
@@ -181,7 +171,7 @@ const fetchChildListApi = (row: any) => {
 		request.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
 		Reflect.deleteProperty(request, 'crTime');
 		request.HotspotCode = row.hotspotCode;
-		getSSPStatisticsHotSpot(request)
+    getSSPStatisticsCommunity(request)
 			.then((res: any) => {
 				resolve(res.result ?? []);
 			})
@@ -198,8 +188,9 @@ const linkDetail = (row: any) => {
 		query: {
 			StartTime: requestParams.value.StartTime,
 			EndTime: requestParams.value.EndTime,
-			HotspotCode: row.hotspotCode,
-			tagsViewName: `社区统计明细`,
+      IndustryId: requestParams.value.IndustryId,
+      CommunityFullName: row.communityFullName,
+      tagsViewName: `社区统计明细`,
 			type: 'hotspotSubclass',
 		},
 	});

+ 5 - 11
src/views/snapshot/statistics/detailCommunity.vue

@@ -47,12 +47,7 @@
 <script setup lang="tsx" name="snapshotStatisticsDetailCommunity">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import Other from '@/utils/other';
-import {
-	getSSPStatisticsDetail,
-	getSSPStatisticsExport,
-	getSSPStatisticsProcessDetail,
-	getSSPStatisticsProcessDetailExport,
-} from '@/api/snapshot/statistics';
+import { getSSPStatisticsCommunityDetail, getSSPStatisticsCommunityDetailExport } from '@/api/snapshot/statistics';
 import { useRoute } from 'vue-router';
 
 // 引入组件
@@ -160,13 +155,13 @@ const gridOptions = reactive<any>({
 			sortable: true,
 			formatter: 'formatDate',
 		},
-    { field: 'acceptType', title: '社区名称', width: 140 },
+		{ field: 'communityName', title: '社区名称', width: 140 },
 		{ field: 'acceptType', title: '受理类型', width: 120 },
 		{ field: 'hotspotName', title: '热点分类', width: 150 },
 	],
 	data: [],
 	params: {
-		exportMethod: getSSPStatisticsProcessDetailExport,
+		exportMethod: getSSPStatisticsCommunityDetailExport,
 		exportParams: requestParams,
 	},
 	sortConfig: {
@@ -194,12 +189,11 @@ const queryList = () => {
 		requestParams.value = Other.deepClone(state.queryParams);
 		requestParams.value.StartTime = routeQueryParams.StartTime;
 		requestParams.value.EndTime = routeQueryParams.EndTime;
-		requestParams.value.FieldName = routeQueryParams.FieldName;
-		requestParams.value.OrgId = routeQueryParams.OrgId;
+		requestParams.value.CommunityFullName = routeQueryParams.CommunityFullName;
 		requestParams.value.IndustryId = routeQueryParams.IndustryId;
 		state.loading = true;
 		gridOptions.loading = true;
-		getSSPStatisticsProcessDetail(requestParams.value)
+		getSSPStatisticsCommunityDetail(requestParams.value)
 			.then((response: any) => {
 				gridOptions.data = response?.result.items ?? [];
 				state.total = response?.result.total;

+ 0 - 10
src/views/snapshot/statistics/hotSubclass.vue

@@ -16,16 +16,6 @@
 					</el-form>
 				</template>
 			</vxe-grid>
-			<vxe-toolbar
-				ref="toolbarRef"
-				:loading="state.loading"
-				custom
-				:refresh="{
-					queryMethod: handleQuery,
-				}"
-				:tools="[{ toolRender: { name: 'exportAll' } }]"
-			>
-			</vxe-toolbar>
 		</div>
 	</div>
 </template>

+ 14 - 10
src/views/snapshot/statistics/repeatOrder.vue

@@ -96,14 +96,11 @@
 	</div>
 </template>
 <script setup lang="tsx" name="snapshotStatisticsRepeatOrder">
-import { defineAsyncComponent, onMounted, reactive, ref, computed } from 'vue';
+import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import type { FormInstance } from 'element-plus';
-import { ElMessage, ElMessageBox } from 'element-plus';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
-import { addObserve } from '@/api/query/observe';
-import { exportAssignment } from '@/utils/tools';
 import Other from '@/utils/other';
-import {getSSPAllBaseData, getSSPAllOrder, getSSPAllOrderExport, getSSPStatisticsRepeat} from '@/api/snapshot/statistics';
+import { getSSPAllBaseData, getSSPStatisticsRepeat, getSSPStatisticsRepeatExport } from '@/api/snapshot/statistics';
 
 // 引入组件
 const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
@@ -177,7 +174,7 @@ const gridOptions = reactive<any>({
 		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
 	},
 	params: {
-		exportMethod: getSSPAllOrderExport,
+		exportMethod: getSSPStatisticsRepeatExport,
 		exportParams: requestParams,
 	},
 	customConfig: {
@@ -187,11 +184,11 @@ const gridOptions = reactive<any>({
 	rowConfig: { isHover: true, height: 30, isCurrent: true, useKey: true },
 	height: 'auto',
 	columns: [
-		{ field: 'no', title: '类型', width: 120 },
+		{ field: 'orderSnapshotType', title: '类型', width: 120 },
 		{ field: 'no', title: '重复编码', width: 140, slots: { default: 'order_detail_repeat' } },
 		{ field: 'no', title: '工单编码', width: 140 },
 		{
-			field: 'creationTime',
+			field: 'beginCreationTime',
 			title: '受理时间',
 			width: 160,
 			sortable: true,
@@ -213,12 +210,19 @@ const gridOptions = reactive<any>({
 		},
 		{ field: 'actualHandleOrgName', title: '接办部门', width: 140 },
 		{
-			field: 'actualHandleTime',
+			field: 'startTime',
 			title: '接办时间',
 			width: 160,
 			sortable: true,
 			formatter: 'formatDate',
 		},
+    {
+      field: 'filedTime',
+      title: '办结时间',
+      width: 160,
+      sortable: true,
+      formatter: 'formatDate',
+    },
 		{ field: 'acceptType', title: '受理类型', width: 120 },
 		{ field: 'hotspotName', title: '热点分类', width: 150 },
 		{ field: 'acceptorName', title: '受理人', width: 120 },
@@ -270,7 +274,7 @@ const queryList = () => {
 		Reflect.deleteProperty(requestParams.value, 'doneTime'); // 删除无用的参数
 		state.loading = true;
 		gridOptions.loading = true;
-    getSSPStatisticsRepeat(requestParams.value)
+		getSSPStatisticsRepeat(requestParams.value)
 			.then((response: any) => {
 				gridOptions.data = response?.result.items ?? [];
 				state.total = response?.result.total;

+ 2 - 2
src/views/todo/seats/accept/History.vue

@@ -38,11 +38,11 @@
 		</vxe-column>
 		<vxe-column field="statusText" title="状态" width="100"></vxe-column>
 		<vxe-column field="actualHandleOrgName" title="接办部门" width="140"></vxe-column>
-<!--		<vxe-column align="center" title="操作" width="70" fixed="left" v-auth="'todo:seats:supply'">
+		<vxe-column align="center" title="操作" width="70" fixed="left" v-auth="'todo:seats:supply'">
 			<template #default="{ row }">
 				<el-button type="primary" link @click="supply(row)">补充</el-button>
 			</template>
-		</vxe-column>-->
+		</vxe-column>
 	</vxe-table>
 	<pagination
 		@pagination="searchHistory"