|
@@ -18,11 +18,18 @@
|
|
|
></div>
|
|
|
</div>
|
|
|
<div class="card chart2-box">
|
|
|
- <div class="title">研究生月度派单分配及对比</div>
|
|
|
+ <div class="title"
|
|
|
+ ><span>研究生月度派单分配及对比</span>
|
|
|
+ <FullscreenIcon
|
|
|
+ class="cursor-pointer"
|
|
|
+ @click="chart2?.maximize"
|
|
|
+ color="#595959"
|
|
|
+ /></div>
|
|
|
<div class="chart-wrap"
|
|
|
><my-chart
|
|
|
:options="options2"
|
|
|
@chartClick="chart2Click"
|
|
|
+ ref="chart2"
|
|
|
></my-chart
|
|
|
></div>
|
|
|
</div>
|
|
@@ -60,9 +67,15 @@
|
|
|
<div class="row2 flex">
|
|
|
<div class="col1">
|
|
|
<div class="card chart6-box">
|
|
|
- <div class="title">教务处月度派单分布及对比备份</div>
|
|
|
+ <div class="title"
|
|
|
+ ><span>教务处月度派单分布及对比备份</span
|
|
|
+ ><FullscreenIcon
|
|
|
+ class="cursor-pointer"
|
|
|
+ @click="chart3?.maximize"
|
|
|
+ color="#595959"
|
|
|
+ /></div>
|
|
|
<div class="chart-wrap">
|
|
|
- <my-chart :options="options3"></my-chart>
|
|
|
+ <my-chart :options="options3" ref="chart3"></my-chart>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -74,6 +87,7 @@
|
|
|
class="service-item"
|
|
|
v-for="item in result6"
|
|
|
:key="item.id"
|
|
|
+ @click="serviceClick(item)"
|
|
|
>
|
|
|
<div class="head flex justify-between items-center">
|
|
|
<div>{{ item.name }}</div>
|
|
@@ -131,6 +145,12 @@
|
|
|
:footer="false"
|
|
|
:timeParams="timeParams"
|
|
|
></SupplierDispatchDrillDialog>
|
|
|
+ <DispatchStatisticsDrill
|
|
|
+ v-model:visible="showDispatchStatisticsDrill"
|
|
|
+ :data="dispatchStatisticsDrillData"
|
|
|
+ :footer="false"
|
|
|
+ :timeParams="timeParams"
|
|
|
+ ></DispatchStatisticsDrill>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -144,6 +164,9 @@ import CustomTypeDrillDialog from './custom-type-drill-dialog.vue';
|
|
|
import MonthDispatchDrillDialog from './month-dispatch-drill-dialog.vue';
|
|
|
import RegionDispatchDrillDialog from './region-dispatch-drill-dialog.vue';
|
|
|
import SupplierDispatchDrillDialog from './supplier-dispatch-drill-dialog.vue';
|
|
|
+import DispatchStatisticsDrill from './dispatch-statistics-drill-dialog.vue';
|
|
|
+import { FullscreenIcon } from 'tdesign-icons-vue-next';
|
|
|
+
|
|
|
import {
|
|
|
createBarOption,
|
|
|
createRingPieOption,
|
|
@@ -156,7 +179,8 @@ import {
|
|
|
supplierDispatchAnalysis,
|
|
|
dispatchStatisticsAnalysis,
|
|
|
} from '@/api/report';
|
|
|
-
|
|
|
+const chart2 = ref();
|
|
|
+const chart3 = ref();
|
|
|
const showCustomTypeDrill = ref(false);
|
|
|
const customTypeDrillData = ref({ type: '' });
|
|
|
|
|
@@ -169,6 +193,9 @@ const regionDispatchDrillData = ref({ type: '', regionId: '', name: '' });
|
|
|
const showSupplierDispatchDrill = ref(false);
|
|
|
const supplierDispatchDrillData = ref({ supplierId: '', name: '' });
|
|
|
|
|
|
+const showDispatchStatisticsDrill = ref(false);
|
|
|
+const dispatchStatisticsDrillData = ref({ serviceId: '', serviceName: '' });
|
|
|
+
|
|
|
const curTimeRange = ref([]);
|
|
|
const timeParams = computed(() => {
|
|
|
return {
|
|
@@ -260,12 +287,12 @@ const tableColumns = [
|
|
|
{
|
|
|
prop: 'name',
|
|
|
label: '城市',
|
|
|
- style: { width: 'calc((100% - 84px) / 2)' },
|
|
|
+ style: { width: 'calc((100% - 90px) / 2)' },
|
|
|
},
|
|
|
{
|
|
|
prop: 'count',
|
|
|
label: '总数',
|
|
|
- style: { width: 'calc((100% - 84px) / 4)' },
|
|
|
+ style: { width: 'calc((100% - 90px) / 4)' },
|
|
|
},
|
|
|
{
|
|
|
prop: 'rate',
|
|
@@ -338,6 +365,12 @@ const tableRowClick6 = (item) => {
|
|
|
showRegionDispatchDrill.value = true;
|
|
|
};
|
|
|
|
|
|
+const serviceClick = (item) => {
|
|
|
+ dispatchStatisticsDrillData.value.serviceId = item.id;
|
|
|
+ dispatchStatisticsDrillData.value.serviceName = item.name;
|
|
|
+ showDispatchStatisticsDrill.value = true;
|
|
|
+};
|
|
|
+
|
|
|
const options2 = computed(() => {
|
|
|
return createBarOption(comResult2.value);
|
|
|
});
|
|
@@ -437,6 +470,7 @@ const options4 = computed(() =>
|
|
|
}
|
|
|
.chart-wrap {
|
|
|
height: calc(100% - 36px);
|
|
|
+ padding: 2px;
|
|
|
&.service-box {
|
|
|
display: flex;
|
|
|
flex-wrap: wrap;
|
|
@@ -450,6 +484,10 @@ const options4 = computed(() =>
|
|
|
padding: 6px 8px;
|
|
|
background-color: #f7f7f7;
|
|
|
border-radius: 2px;
|
|
|
+ cursor: pointer;
|
|
|
+ &:hover {
|
|
|
+ box-shadow: 0 0 0 2px #4080ff;
|
|
|
+ }
|
|
|
|
|
|
.head {
|
|
|
font-size: 12px;
|