Pārlūkot izejas kodu

reactor:平移BUG修复;

zhangchong 10 mēneši atpakaļ
vecāks
revīzija
817db726d7

+ 11 - 0
src/api/statistics/order.ts

@@ -271,6 +271,17 @@ export const orderSourceTime = (params: object) => {
 		params,
 	});
 };
+/**
+ * @description 信件来源分时统计表头
+ * @param {object} params
+ */
+export const orderSourceTimeHeader = (params?: object) => {
+	return request({
+		url: `/api/v1/BiOrder/order_source_hours_report_header`,
+		method: 'get',
+		params,
+	});
+};
 /**
  * @description 信件来源分时统计导出
  * @param {object} data

+ 2 - 2
src/components/OrderDetail/index.vue

@@ -224,8 +224,8 @@
 							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="state.ruleForm.centerOpinion">
 								<el-form-item label="中心意见"> {{ state.ruleForm.centerOpinion }} </el-form-item>
 							</el-col>
-							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="state.ruleForm.actualOpinion">
-								<el-form-item label="承办意见"> {{ state.ruleForm.actualOpinion }} </el-form-item>
+							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="state.ruleForm.fileOpinion">
+								<el-form-item label="承办意见"> {{ state.ruleForm.fileOpinion }} </el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="state.ruleForm.sendBackOpinion">
 								<el-form-item label="退回意见"> {{ state.ruleForm.sendBackOpinion }} </el-form-item>

+ 79 - 173
src/views/statistics/order/timeSource.vue

@@ -48,6 +48,7 @@
 						max-height="60vh"
 						:toolButton="['refresh', 'setting', 'exportAll']"
 						@export-all="exportTable($event, true)"
+            :key="Math.random()"
 					>
 					</ProTable>
 				</el-col>
@@ -60,120 +61,13 @@ import { onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import { defaultDate, shortcuts } from '@/utils/constants';
 import Other from '@/utils/other';
-import {orderSource, orderSourceExport, orderSourceTime} from '@/api/statistics/order';
+import {orderSourceExport, orderSourceTime, orderSourceTimeExport, orderSourceTimeHeader} from '@/api/statistics/order';
 import { downloadFileByStream } from '@/utils/tools';
 import { useRouter } from 'vue-router';
 
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
-const columns = ref<any[]>([
-  { prop: 'time', label: '时间段', align: 'center', minWidth: 100, fixed: 'left' },
-  {
-    prop: 'subtotal',
-    label: '小计',
-    align: 'center',
-  },
-  {
-    prop: 'phone',
-    label: '电话',
-    align: 'center',
-  },
-  {
-    prop: 'web',
-    label: '因特网',
-    align: 'center',
-  },
-  {
-    prop: 'rests',
-    label: '其他',
-    align: 'center',
-  },
-  {
-    prop: 'created',
-    label: '自建',
-    align: 'center',
-  },
-  {
-    prop: 'weChat',
-    label: '微信',
-    align: 'center',
-  },
-  {
-    prop: 'app',
-    label: 'APP',
-    align: 'center',
-  },
-  {
-    prop: 'wisdomYB',
-    label: '智慧宜宾',
-    align: 'center',
-    minWidth: 120,
-  },
-  {
-    prop: 'platform',
-    label: '综治平台',
-    align: 'center',
-    minWidth: 120,
-  },
-  {
-    prop: 'platform12328',
-    label: '省12328平台',
-    align: 'center',
-    minWidth: 120,
-  },
-  {
-    prop: 'mayorAndNetizens',
-    label: '市长和网民',
-    align: 'center',
-    minWidth: 120,
-  },
-  {
-    prop: 'mediaYB',
-    label: '宜宾融媒体',
-    align: 'center',
-    minWidth: 120,
-  },
-  {
-    prop: 'platform12345',
-    label: '省12345平台',
-    align: 'center',
-    minWidth: 120,
-  },
-  {
-    prop: 'interaction',
-    label: '省政民互动',
-    minWidth: 120,
-    align: 'center',
-  },
-  {
-    prop: 'serviceYB',
-    label: '宜办事',
-    align: 'center',
-  },
-  {
-    prop: 'cityTransfer',
-    label: '市州互转',
-    align: 'center',
-    minWidth: 120,
-  },
-  {
-    prop: 'platform110',
-    label: '宜宾110平台',
-    align: 'center',
-    minWidth: 120,
-  },
-  {
-    prop: 'noService',
-    label: '办不成事反映窗口',
-    align: 'center',
-    minWidth: 150,
-  },
-  {
-    prop: 'iyb',
-    label: 'i宜宾',
-    align: 'center',
-  },
-]);
+const columns = ref<any[]>([]);
 // 定义变量内容
 const ruleFormRef = ref<RefType>(); // 表单ref
 const state = reactive<any>({
@@ -199,21 +93,78 @@ const handleQuery = () => {
 	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');
-  orderSourceTime(request)
-		.then((res: any) => {
-      console.log(res)
-			setOption([], []);
-			state.loading = false;
-		})
-		.catch(() => {
-			state.loading = false;
-		});
+const queryList = async () => {
+  state.loading = true;
+  try {
+    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');
+    const dataRes = await orderSourceTime(request);
+    const headerRes = await orderSourceTimeHeader();
+    console.log(dataRes,headerRes)
+    columns.value = headerRes.result.map((item: any) => {
+      return {
+        prop: item.value.replace(item.value[0],item.value[0].toLowerCase()),
+        label: item.key,
+        align: 'center',
+        minWidth: 120,
+      };
+    });
+    columns.value.unshift({
+      prop: 'time',
+      label: '时间段',
+      align: 'center',
+      minWidth: 120,
+      fixed: 'left',
+    },{
+      prop: 'subtotal',
+      label: '小计',
+      align: 'center',
+      minWidth: 100,
+    })
+    state.tableData = dataRes.result;
+    const legendData = headerRes.result.map((item: any) => {
+      return item.key;
+    });
+    const xData = dataRes.result.map((item: any) => {
+      return item.time;
+    })
+    const seriesHeader = headerRes.result.map((item: any) => {
+      return {
+        prop: item.value.replace(item.value[0],item.value[0].toLowerCase()),
+        label: item.key,
+      };
+    });
+    // for(let i of seriesHeader){
+    //   const item = dataRes.result.filter((j: any) =>j.time === i.prop);
+    //   for(let j of dataRes.result){
+    //     if(j.time === i.prop)
+    //   }
+    //   console.log(item,'11')
+    // }
+    const seriesData = dataRes.result.map((item: any) => {
+      for(let i of headerRes.result){
+
+      }
+      return {
+        name:'' ,
+        type: 'bar',
+        stack: 'total',
+
+        animationDelay: function (idx) {
+          return idx * 50 + 1000;
+        },
+        data: item.data,
+      }
+    })
+    console.log(seriesHeader)
+    setOption(legendData,xData,[])
+    state.loading = false;
+  }catch (e){
+    state.loading = false;
+    console.log(e)
+  }
 };
 /** 重置按钮操作 */
 const resetQuery = (formEl: FormInstance | undefined) => {
@@ -223,7 +174,7 @@ const resetQuery = (formEl: FormInstance | undefined) => {
 };
 const option = ref<any>({});
 // 信件来源统计
-const setOption = (legendData: string[], data: any) => {
+const setOption = (legendData: string[],xData:any, seriesData: any) => {
 	option.value = {
 		title: {
 			text: '信件来源分时统计',
@@ -239,27 +190,7 @@ const setOption = (legendData: string[], data: any) => {
 		},
 		legend: {
 			top: '7%',
-			data: [
-				'自建',
-				'string',
-				'市长与网民',
-				'宜宾110平台',
-				'智慧宜宾',
-				'微信',
-				'小程序',
-				'网站',
-				'其他',
-				'App',
-				'因特网',
-				'综治平台',
-				'省政民互动',
-				'市州互转',
-				'微博',
-				'电话',
-				'i宜宾',
-				'省12345平台',
-				'宜宾融媒体',
-			],
+			data: legendData,
 		},
 		grid: {
 			left: '0',
@@ -272,32 +203,7 @@ const setOption = (legendData: string[], data: any) => {
       axisLabel: {
         rotate:45   //设置的值大于0向右倾斜,小于0向左
       },
-      data: [
-				'00:00~00:59',
-				'01:00~01:59',
-				'02:00~02:59',
-				'03:00~03:59',
-				'04:00~04:59',
-				'05:00~05:59',
-				'06:00~06:59',
-				'07:00~07:59',
-				'08:00~08:59',
-				'09:00~09:59',
-				'10:00~10:59',
-				'11:00~11:59',
-				'12:00~12:59',
-				'13:00~13:59',
-				'14:00~14:59',
-				'15:00~15:59',
-				'16:00~16:59',
-				'17:00~17:59',
-				'18:00~18:59',
-				'19:00~19:59',
-				'20:00~20:59',
-				'21:00~21:59',
-				'22:00~22:59',
-				'23:00~23:59',
-			],
+      data: xData,
 		},
 		yAxis: {
 			type: 'value',
@@ -515,7 +421,7 @@ const exportTable = (columnInfos: any, isExportAll = false) => {
 		isExportAll,
 	};
 	state.loading = true;
-	orderSourceExport(req)
+  orderSourceTimeExport(req)
 		.then((res: any) => {
 			state.loading = false;
 			downloadFileByStream(res);