From e70f39fc4e1d4265b8b2294d301b5454eb35a589 Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Fri, 28 Nov 2025 16:08:24 +0800
Subject: [PATCH] Merge branch 'feature/v8.0/8.0.3' into test
---
src/views/tickets/orderLog.vue | 15 ++-----
src/views/wel/components/proportionStatic.vue | 42 ++++++++++++++++-----
src/utils/date.js | 27 +++++++++++++
src/api/home/index.js | 8 ++++
src/views/wel/components/backlog.vue | 2 +
5 files changed, 74 insertions(+), 20 deletions(-)
diff --git a/src/api/home/index.js b/src/api/home/index.js
index 3b7e45f..0715709 100644
--- a/src/api/home/index.js
+++ b/src/api/home/index.js
@@ -6,6 +6,14 @@
method: 'get',
});
};
+// 大屏首页=>事件状态数量
+export const getEventStatusNum = data => {
+ return request({
+ url: '/drone-device-core/jobEvent/eventStatusNum',
+ method: 'post',
+ data,
+ })
+}
// 事件概况分类数
export const getJobEventByStatus = data => {
return request({
diff --git a/src/utils/date.js b/src/utils/date.js
index 35d9eb7..0e22793 100644
--- a/src/utils/date.js
+++ b/src/utils/date.js
@@ -1,3 +1,11 @@
+import dayjs from 'dayjs'
+import 'dayjs/locale/zh-cn'
+import weekday from 'dayjs/plugin/weekday'
+
+// 配置 dayjs
+dayjs.locale('zh-cn')
+dayjs.extend(weekday)
+
export const calcDate = (date1, date2) => {
let date3 = date2 - date1;
@@ -56,3 +64,22 @@
export function dateNow() {
return dateFormat(new Date(), 'yyyyMMddhhmmss');
}
+
+export const getDateRange = (unit, formatStr = 'YYYY-MM-DD HH:mm:ss') => {
+ const todayDate = dayjs()
+ let returnArr = [dayjs(), todayDate]
+ if (unit === 'today') {
+ returnArr = [dayjs(), todayDate]
+ }
+ if (unit === 'week') {
+ returnArr = [dayjs().weekday(0), todayDate]
+ }
+ if (unit === 'month') {
+ returnArr = [dayjs().startOf('month'), todayDate]
+ }
+ if (unit === 'year') {
+ returnArr = [dayjs().startOf('year'), todayDate]
+ }
+ returnArr = [returnArr[0].startOf('day').format(formatStr), returnArr[1].endOf('day').format(formatStr)]
+ return returnArr
+}
diff --git a/src/views/tickets/orderLog.vue b/src/views/tickets/orderLog.vue
index d88bbbb..595c86c 100644
--- a/src/views/tickets/orderLog.vue
+++ b/src/views/tickets/orderLog.vue
@@ -91,19 +91,14 @@
import AddEditDetails from './component/AddEditDetails.vue'
import NProgress from 'nprogress'
import { useStore } from 'vuex'
+import { useRoute } from 'vue-router'
import { downloadXls } from '@/utils/util'
import {
getList,
- saveUpdateOrderLog,
orderLogDetails,
- orderLogRecall,
- orderLogReject,
- orderLogPass,
orderLogExport,
jobStatusNum,
- userPublish,
deleteOrderLog,
- getWaylineMaxTerrainHeight
} from '@/api/tickets/orderLog'
import { newGetWorkspacesPage } from '@/api/resource/wayline'
import { getDictionaryByCode } from '@/api/system/dictbiz'
@@ -116,11 +111,10 @@
import { aiImagesPage } from '@/api/dataCenter/dataCenter';
const store = useStore()
+const route = useRoute()
const userInfo = computed(() => store.state.user.userInfo)
const permission = computed(() => store.state.user.permission);
-
-console.log(userInfo,permission, '8888')
const isShowAddEditDetails = ref(false)
@@ -150,7 +144,6 @@
activeTab.value = tabsList.value[0].name
// tab值传
orderListParams.status = tabsList.value[0].value
- console.log('8878797', tabsList.value)
// tabsList.value
// .map(tab => {
// if (tab.name === 'all') {
@@ -334,7 +327,6 @@
...cloneDeep(orderListParams.searchParams)
}
const res = await orderLogExport(apiParams)
- console.log(res, '导出')
downloadXls(res.data, `智飞工单${dayjs().format('YYYY-MM-DD')}.xlsx`)
ElMessage.success('导出成功')
@@ -447,6 +439,9 @@
filteredTabs()
getTableList()
updateGlobalCounts()
+ if (route.query.id) {
+ route.query.status === '1' ? handleCheckDetail({ id: route.query.id}, '工单审核') : handleCheckDetail({ id: route.query.id}, '工单详情')
+ }
})
</script>
diff --git a/src/views/wel/components/backlog.vue b/src/views/wel/components/backlog.vue
index c106d5c..d2b2162 100644
--- a/src/views/wel/components/backlog.vue
+++ b/src/views/wel/components/backlog.vue
@@ -155,11 +155,13 @@
const jumporder = val => {
if (checked.value === '智飞工单') {
const id = val.id
+ const status = val.status
getaddOrderRecord(id)
router.replace({
path: `/tickets/orderLog`,
query: {
id,
+ status,
},
})
} else {
diff --git a/src/views/wel/components/proportionStatic.vue b/src/views/wel/components/proportionStatic.vue
index 7601a16..81f6a4c 100644
--- a/src/views/wel/components/proportionStatic.vue
+++ b/src/views/wel/components/proportionStatic.vue
@@ -46,22 +46,32 @@
<script setup>
import useEchartsResize from '@/hooks/useEchartsResize';
-import { getJobEventByStatus } from '@/api/home/index';
+import { getJobEventByStatus, getEventStatusNum } from '@/api/home/index';
+import { getDateRange } from '@/utils/date'
import overviewImg2 from '@/assets/images/workbench/tc2.svg';
import overviewImg3 from '@/assets/images/workbench/tc3.svg';
import overviewImg4 from '@/assets/images/workbench/tc4.svg';
import overviewImg5 from '@/assets/images/workbench/tc5.svg';
import { useRouter } from 'vue-router'
+import _ from 'lodash'
const router = useRouter()
let checked = ref('CURRENT_YEAR');
let timeListStr = ['本周', '本月', '本年'];
let timeListEnum = ['CURRENT_WEEK', 'CURRENT_MONTH', 'CURRENT_YEAR'];
+
+const dateRanges = {
+ today: getDateRange('today'),
+ week: getDateRange('week'),
+ month: getDateRange('month'),
+ year: getDateRange('year'),
+}
+
const params = ref({
- date_enum: 'CURRENT_YEAR',
+ // date_enum: 'CURRENT_YEAR',
device_sn: '',
- end_date: undefined,
- start_date: undefined,
- source:1,//数据来源
+ end_date: dateRanges['year'][1], // undefined,
+ start_date: dateRanges['year'][0], // undefined,
+ source:1,//数据来源
});
const dateSelect = ref('CURRENT_YEAR');
const eventTypeList = ref([
@@ -72,13 +82,14 @@
]);
// 工单统计
const getTypeData = () => {
- getJobEventByStatus(params.value).then(res => {
+ getEventStatusNum(params.value).then(res => {
const resList = res?.data?.data || [];
+ let totalNum = resList.reduce((sum, item) => sum + (item.num || 0), 0) - resList[0].num;
resList.forEach(item => {
eventTypeList.value.forEach(item1 => {
if (item1.name === item.name) {
item1.value = item.num;
- item1.rate = item.rate;
+ item1.rate = _.round((item.num/totalNum)*100, 1);
}
});
});
@@ -94,7 +105,18 @@
let timeClick = (item, index) => {
checked.value = item;
- params.value.date_enum = item;
+ // params.value.date_enum = item;
+ if(item === 'CURRENT_WEEK') {
+ params.value.start_date = dateRanges['week'][0]
+ params.value.end_date = dateRanges['week'][1]
+ } else if(item === 'CURRENT_MONTH') {
+ params.value.start_date = dateRanges['month'][0]
+ params.value.end_date = dateRanges['month'][1]
+ } else {
+ params.value.start_date = dateRanges['year'][0]
+ params.value.end_date = dateRanges['year'][1]
+ }
+
dateSelect.value = item;
getTypeData();
};
@@ -110,7 +132,7 @@
const echartsRef = ref(null);
let { chart } = useEchartsResize(echartsRef);
const initChart = val => {
- const totalNum = val.reduce((sum, item) => sum + item.num, 0);
+ let totalNum = val.reduce((sum, item) => sum + item.num, 0);
const data = {
total: {
title: '总计',
@@ -119,7 +141,7 @@
data: val.map(item => ({
value: item.num,
name: item.name,
- rate: item.rate,
+ rate: _.round((item.num/totalNum)*100, 1),
})),
};
const containerWidth = chart.value.clientWidth;
--
Gitblit v1.9.3