From 18ba6b7aed78d1fc639b0b7702f9cb5bdf66e12c Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Sun, 20 Apr 2025 16:28:50 +0800
Subject: [PATCH] Merge branch 'master' of http://139.196.74.78:10010/r/drone/command-center-dashboard
---
src/layout/Header.vue | 2
src/views/Home/HomeRight/EventOverview.vue | 6 +
src/assets/images/aiNowFly/event/hover.png | 0
src/hooks/useTaskWayline/useTaskWayline.js | 10 +-
src/components/UserOperate.vue | 2
src/const/drc.js | 9 ++
.env | 6 -
src/assets/images/home/homeRight/leftTriangle.png | 0
src/views/Home/RSide.vue | 2
.env.test | 4
src/views/Home/AINowFly.vue | 14 +-
src/assets/images/aiNowFly/event/startRecord.png | 0
src/components/CurrentTaskDetails/CurrentTaskDetails.vue | 95 +++++++++--------------
src/views/SignMachineNest/MachineLeft/InspectionRaskDetails.vue | 6
src/views/SignMachineNest/MachineRight/MachineStatus/MachineTableDetails/DeviceEvent.vue | 5 +
.env.development | 4
src/components/DeviceJobDetails/JobRelatedEvents.vue | 13 +--
src/components/CurrentTaskDetails/ControlPanel/ControlPanel.vue | 3
.env.production | 2
src/assets/images/aiNowFly/event/takePhoto.png | 0
src/components/CurrentTaskDetails/ControlPanel/BaseControl.vue | 7 +
src/components/CurrentTaskDetails/TaskDetailsRight.vue | 29 +++++-
22 files changed, 117 insertions(+), 102 deletions(-)
diff --git a/.env b/.env
index 5128c3d..b109a58 100644
--- a/.env
+++ b/.env
@@ -1,3 +1,5 @@
+#开发、测试、生产环境共用环境配置
+
VITE_APP_API = /api
#调试参数
VITE_APP_DEBUG_KEY = saber
@@ -9,7 +11,3 @@
VITE_APP_TDT_TOKEN = c6eea7dad4fa1e2d1e32ec0e7c9735db
#cesium token
VITE_APP_CESIUM_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJkYTZlNGNlYS01NTU1LTQ1MGEtYmNlZS0yNTE2NDk5YWM2MjEiLCJpZCI6MTc5Njk2LCJpYXQiOjE3MDA1NDcwMjV9.qcl4AH2731cfFd0-I1ZLUINPXqvglLkDFD-UGR2zU5M
-
-# 环境路径
-VITE_APP_TICKET_BASE_URL=https://wrj.shuixiongit.com
-VITE_APP_TICKET_BACKUP_URL=https://aisky.org.cn
\ No newline at end of file
diff --git a/.env.development b/.env.development
index c1b7c39..6a9bca3 100644
--- a/.env.development
+++ b/.env.development
@@ -11,5 +11,5 @@
# 航线文件地址
VITE_APP_AIRLINE_URL = https://wrj.shuixiongit.com/minio/cloud-bucket
-#系统运维
-VITE_APP_ADMIN_URL = 'https://wrj.shuixiongit.com/manage'
+#管理后台地址
+VITE_APP_ADMIN_URL = 'https://wrj.shuixiongit.com/manage/wel/index'
diff --git a/.env.production b/.env.production
index 4e96c25..1ea534b 100644
--- a/.env.production
+++ b/.env.production
@@ -6,4 +6,4 @@
# ws地址
VITE_APP_WS_API_URL = wss://wrj.shuixiongit.com/drone-wss/api/v1/ws
# 管理后台地址
-VITE_APP_ADMIN_URL = 'https://aisky.org.cn/manage'
+VITE_APP_ADMIN_URL = 'https://aisky.org.cn/manage/wel/index'
diff --git a/.env.test b/.env.test
index 1518c99..39adca1 100644
--- a/.env.test
+++ b/.env.test
@@ -6,5 +6,5 @@
# 航线文件地址
VITE_APP_AIRLINE_URL = https://wrj.shuixiongit.com/minio/cloud-bucket
-#系统运维
-VITE_APP_ADMIN_URL = 'https://wrj.shuixiongit.com/manage'
+#管理后台地址
+VITE_APP_ADMIN_URL = 'https://wrj.shuixiongit.com/manage/wel/index'
diff --git a/src/assets/images/aiNowFly/stop.png b/src/assets/images/aiNowFly/event/hover.png
similarity index 100%
rename from src/assets/images/aiNowFly/stop.png
rename to src/assets/images/aiNowFly/event/hover.png
Binary files differ
diff --git a/src/assets/images/aiNowFly/picture-recording.png b/src/assets/images/aiNowFly/event/startRecord.png
similarity index 100%
rename from src/assets/images/aiNowFly/picture-recording.png
rename to src/assets/images/aiNowFly/event/startRecord.png
Binary files differ
diff --git a/src/assets/images/aiNowFly/photo.png b/src/assets/images/aiNowFly/event/takePhoto.png
similarity index 100%
rename from src/assets/images/aiNowFly/photo.png
rename to src/assets/images/aiNowFly/event/takePhoto.png
Binary files differ
diff --git a/src/assets/images/home/homeRight/leftTriangle.png b/src/assets/images/home/homeRight/leftTriangle.png
new file mode 100644
index 0000000..574073a
--- /dev/null
+++ b/src/assets/images/home/homeRight/leftTriangle.png
Binary files differ
diff --git a/src/components/CurrentTaskDetails/ControlPanel/BaseControl.vue b/src/components/CurrentTaskDetails/ControlPanel/BaseControl.vue
index c365f48..51dd9dc 100644
--- a/src/components/CurrentTaskDetails/ControlPanel/BaseControl.vue
+++ b/src/components/CurrentTaskDetails/ControlPanel/BaseControl.vue
@@ -31,9 +31,10 @@
import EventBus from '@/event-bus'
const isAutoControl = inject('isAutoControl')
+const isBackDock = inject('isBackDock')
const list3 = computed(() => [
- { name: '自动控制', svg: 'autoControl', style: { top: '-70%' }, active: isAutoControl.value, handle: autoControl },
+ { name: '自动控制', svg: 'autoControl', style: { top: '-70%' }, active: isAutoControl.value && !isBackDock.value, handle: autoControl },
//如果是返航, 继续任务 就是自动任务
//如果是取消返航, 继续任务 就是自动任务
{ name: '继续任务', svg: 'continueTask', style: { left: '70%' }, active: false, handle: autoControl },
@@ -41,10 +42,10 @@
name: '手动控制',
svg: 'manualControl',
style: { top: '70%' },
- active: !isAutoControl.value,
+ active: !isAutoControl.value && !isBackDock.value,
handle: manualControl,
},
- { name: '返航/取消返航', svg: 'turnBack', style: { left: '-70%' }, active: false, handle: turnBack },
+ { name: '返航/取消返航', svg: 'turnBack', style: { left: '-70%' }, active: isBackDock.value, handle: turnBack },
])
function autoControl() {
diff --git a/src/components/CurrentTaskDetails/ControlPanel/ControlPanel.vue b/src/components/CurrentTaskDetails/ControlPanel/ControlPanel.vue
index 6873e0a..cf4331e 100644
--- a/src/components/CurrentTaskDetails/ControlPanel/ControlPanel.vue
+++ b/src/components/CurrentTaskDetails/ControlPanel/ControlPanel.vue
@@ -158,6 +158,7 @@
const droneSn = inject('droneSn')
const trueAltitude = inject('trueAltitude')
const client_id = inject('client_id')
+const isBackDock = inject('isBackDock')
const deviceTopicInfo = ref({
pubTopic: '',
@@ -359,7 +360,7 @@
})
}
-const isBackDock = ref(false)
+
// 返航
async function onBackDock() {
diff --git a/src/components/CurrentTaskDetails/CurrentTaskDetails.vue b/src/components/CurrentTaskDetails/CurrentTaskDetails.vue
index 74bb1b0..ea92bd8 100644
--- a/src/components/CurrentTaskDetails/CurrentTaskDetails.vue
+++ b/src/components/CurrentTaskDetails/CurrentTaskDetails.vue
@@ -41,8 +41,6 @@
import { pxToRem } from '@/utils/rem'
import LiveVideo from '@/components/LiveVideo.vue'
import { liveStart } from '@/api/home/machineNest'
-import { getJobDetails } from '@/api/home/task'
-
import RealTimeMap from '@/components/CurrentTaskDetails/RealTimeMap.vue'
import ControlPanel from '@/components/CurrentTaskDetails/ControlPanel/ControlPanel.vue'
import TaskDetailsHead from '@/components/CurrentTaskDetails/TaskDetailsHead.vue'
@@ -60,9 +58,8 @@
const isAutoControl = ref(true) //是否自动控制
const lineQuality = ref(1) //1流畅,2标清
const taskDetailsViewer = ref(null) //地图实例
-const deviceOsdInfo = computed(() => wsInfo.value?.device_osd)
-const dockSn = computed(() => taskDetails?.value?.device_sns?.[0])
-const droneSn = computed(() => deviceOsdInfo?.value?.data?.sn)
+const dockSn = computed(() => taskDetails?.value?.device_sns?.[0]) //机巢sn
+const droneSn = computed(() => wsInfo.value?.device_osd?.data?.sn) //无人机sn
const trueAltitude = ref('') // 真实高度
const isAiLive = ref(false) // 是ai直播
const video_id = ref('') // 直播视频id
@@ -71,42 +68,16 @@
const currentLiveUrl = ref('') // 当前直播地址
const isTakeOff = ref(false) // 是在飞行中
const isMaxMap = ref(false) //是大地图
-const client_id = ref('') //是大地图
-
-// 获取机巢直播
-const getDeviceLiveUrl = async () => {
- const res = await liveStart(dockSn.value, 2)
- currentLiveUrl.value = res.data.data.rtcs_url
-}
-
-const hasIr = ref(false)
-provide('hasIr', hasIr)
-//获取相机能力
-async function getLiveCapacity() {
- const res = await getLiveCapacityApi({ sn: droneSn.value})
- res?.data?.data?.forEach((item) => {
- item?.cameras_list?.forEach((item1) => {
- item1?.videos_list?.forEach((item2) => {
- item2?.switch_video_types?.forEach(item3 =>{
- if (item3 === 'ir'){
- hasIr.value = true
- }
- })
- })
- })
- })
-}
-
-const useTaskDetailsCallBack = () => {
- getDeviceLiveUrl()
-}
-
-let { taskDetails, workspace_id, getTaskDetails } = useTaskDetails(useTaskDetailsCallBack)
-let { wsInfo, removeWS } = useDroneWS(workspace_id) //ws信息,是一个ref对象
+const client_id = ref('') //mqtt id
+const hasIr = ref(false) //有红外能力
+let once = true //第一次触发
+const isBackDock = ref(false)
+let { taskDetails, workspace_id, getTaskDetails:initTaskDetails } = useTaskDetails(()=> getDeviceLiveUrl())
+let { wsInfo } = useDroneWS(workspace_id) //ws信息,是一个ref对象
provide('wsInfo', wsInfo)
+provide('isBackDock', isBackDock)
provide('workspace_id', workspace_id)
-provide('deviceOsdInfo', deviceOsdInfo)
provide('dockOsdInfo', wsInfo?.value?.dock_osd)
provide('dockSn', dockSn)
provide('droneSn', droneSn)
@@ -118,24 +89,33 @@
provide('isAiLive', isAiLive)
provide('video_id', video_id)
provide('client_id', client_id)
+provide('hasIr', hasIr)
-let once = true
-watch(deviceOsdInfo,()=>{
- if (once){
- getLiveCapacity()
- once =false
- }
-})
+// 获取机巢直播
+const getDeviceLiveUrl = async () => {
+ const res = await liveStart(dockSn.value, 2)
+ currentLiveUrl.value = res.data.data.rtcs_url
+}
-watch(
- wsInfo,
- () => {
- // wsInfo 变化触发
- setCurrentLiveUrl()
- },
- { deep: true }
-)
+//获取是否有红外功能
+async function getLiveCapacity() {
+ if (!once) return
+ once = false
+ const res = await getLiveCapacityApi({ sn: droneSn.value })
+ res?.data?.data?.forEach(item => {
+ item?.cameras_list?.forEach(item1 => {
+ item1?.videos_list?.forEach(item2 => {
+ item2?.switch_video_types?.forEach(item3 => {
+ if (item3 === 'ir') {
+ hasIr.value = true
+ }
+ })
+ })
+ })
+ })
+}
+// set Ai直播
const getAiLiveUrl = async () => {
const res = await getLiveAiLinkApi({
original_stream_url: `${CURRENT_CONFIG.rtmpURL}${video_id.value.replace(/\//g, '-')}`,
@@ -159,13 +139,13 @@
// 无人机直播画质切换
const changeLineQuality = async () => {
- const res = await updateDroneQualityApi({ video_id: video_id.value, video_quality: lineQuality.value })
+ await updateDroneQualityApi({ video_id: video_id.value, video_quality: lineQuality.value })
ElMessage.success('切换画质成功')
}
// 设置当前直播地址
const setCurrentLiveUrl = async () => {
- const deviceInfo = deviceOsdInfo.value?.data?.host
+ const deviceInfo = wsInfo.value?.device_osd?.data?.host
if (!deviceInfo) return
const currentIsTakeOff = ![14, 0].includes(deviceInfo?.mode_code)
// 如果还是之前的状态,不切换
@@ -174,8 +154,11 @@
isTakeOff.value ? await getDroneLiveUrl() : await getDeviceLiveUrl()
}
+watch(() => wsInfo.value?.device_osd, getLiveCapacity)
+watch(wsInfo, setCurrentLiveUrl, { deep: true })
+
onMounted(() => {
- getTaskDetails(props?.id)
+ initTaskDetails(props?.id)
EventBus.on('CurrentTaskDetails-timeStop', changeLineQuality)
EventBus.on('CurrentTaskDetails-getAiLiveUrl', getAiLiveUrl)
EventBus.on('CurrentTaskDetails-getDroneLiveUrl', getDroneLiveUrl)
diff --git a/src/components/CurrentTaskDetails/TaskDetailsRight.vue b/src/components/CurrentTaskDetails/TaskDetailsRight.vue
index d580a43..47d2c31 100644
--- a/src/components/CurrentTaskDetails/TaskDetailsRight.vue
+++ b/src/components/CurrentTaskDetails/TaskDetailsRight.vue
@@ -7,7 +7,10 @@
<div class="taskInfo">
<div v-for="item in list" class="itemBox">
<div class="itemName">{{ item.name }}:</div>
- <div class="itemValue">{{ item.value }}</div>
+ <div class="itemValue" v-if="item.name !== '飞行事件'">{{ item.value }}</div>
+ <div class="flightEvents" v-else>
+ <img v-for="item in flightEvents" alt="" :src="item.img" :title="item.name"></img>
+ </div>
</div>
</div>
@@ -17,6 +20,7 @@
<script setup>
import droneImg from '@/assets/images/taskManagement/taskIntermediateContent/droneImg.png'
import BaseControl from '@/components/CurrentTaskDetails/ControlPanel/BaseControl.vue'
+import { droneEventList } from '@/const/drc'
const taskDetails = inject('taskDetails')
const workspace_id = inject('workspace_id')
@@ -32,7 +36,8 @@
{ name: '关联算法', value: '', field: 'ai_type_str' },
{ name: '任务描述', value: '', field: 'remark' },
])
-// takePhoto,hover
+const flightEvents = ref([])
+
watch(
taskDetails,
() => {
@@ -44,7 +49,9 @@
}
if (item.name === '飞行事件') {
const { action_modes = [] } = taskDetails?.value || {}
- // todo item.value = action_modes.
+ flightEvents.value = action_modes.flatMap(({ actionActuatorFunc }) =>
+ droneEventList.filter(({ value }) => actionActuatorFunc === value)
+ )
}
})
},
@@ -93,7 +100,7 @@
}
.taskInfo {
- width: 220px;
+ width: 230px;
height: 520px;
display: flex;
overflow: auto;
@@ -115,8 +122,18 @@
.itemValue {
font-weight: bold;
color: #ffffff;
- word-break: break-all; /* 强制在任意字符断行 */
- white-space: normal; /* 允许正常换行 */
+ word-break: break-all; /* 强制在任意字符断行 */
+ white-space: normal; /* 允许正常换行 */
+ }
+
+ .flightEvents{
+ display: flex;
+ flex-wrap: wrap;
+ gap: 10px 10px;
+ img {
+ width: 30px;
+ height: 30px;
+ }
}
}
}
diff --git a/src/components/DeviceJobDetails/JobRelatedEvents.vue b/src/components/DeviceJobDetails/JobRelatedEvents.vue
index 93e6713..980e4c3 100644
--- a/src/components/DeviceJobDetails/JobRelatedEvents.vue
+++ b/src/components/DeviceJobDetails/JobRelatedEvents.vue
@@ -59,23 +59,20 @@
const total = ref(10)
const examine = row => {
const orderNumber = row.event_num
- const primaryUrl = `${import.meta.env.VITE_APP_TICKET_BASE_URL}/manage/tickets/ticket?orderNumber=${orderNumber}`
- const backupUrl = `${import.meta.env.VITE_APP_TICKET_BACKUP_URL}/manage/tickets/ticket?orderNumber=${orderNumber}`
- const win = window.open(primaryUrl, '_blank')
- if (!win || win.closed) {
- window.open(backupUrl, '_blank')
- }
+ const adminUrl = import.meta.env.VITE_APP_ADMIN_URL
+ const targetPath = `/tickets/ticket?orderNumber=${orderNumber}`;
+ window.open(`${adminUrl}?redirect=${encodeURIComponent(targetPath)}`, '_blank');
}
const wayLineJodInfoId = inject('wayLineJodInfoId')
const getList = () => {
params.value.way_line_jod_info_id = wayLineJodInfoId.value
-
+
getDeviceEventList(params.value, sizeParams.value).then(res => {
const resData = res?.data?.data || {}
list.value = resData.records
total.value = resData.total
-
+
})
}
diff --git a/src/components/UserOperate.vue b/src/components/UserOperate.vue
index 5f07fff..6cab918 100644
--- a/src/components/UserOperate.vue
+++ b/src/components/UserOperate.vue
@@ -1,6 +1,7 @@
<script setup>
import { fullscreenToggel } from '@/utils/util';
import { useStore } from 'vuex';
+import { ElMessage } from 'element-plus'
const router = useRouter();
const store = useStore();
const dropdownClick = val => {
@@ -20,6 +21,7 @@
}
const info = () =>{
+ ElMessage.warning('加急开发中...')
console.log('点击了个人信息');
}
</script>
diff --git a/src/const/drc.js b/src/const/drc.js
index 77cb05a..29c7a56 100644
--- a/src/const/drc.js
+++ b/src/const/drc.js
@@ -29,3 +29,12 @@
{ min: 315, max: 360, value: '北偏西' },
{ min: 360, max: 360, value: '正北' }
];
+
+import hoverImg from '@/assets/images/aiNowFly/event/hover.png'
+import startRecordImg from '@/assets/images/aiNowFly/event/startRecord.png'
+import takePhotoImg from '@/assets/images/aiNowFly/event/takePhoto.png'
+export const droneEventList = [
+ {name:'开始录像',value:'startRecord',img:startRecordImg},
+ {name:'悬停',value:'hover',img:hoverImg},
+ {name:'拍照',value:'takePhoto',img:takePhotoImg},
+]
diff --git a/src/hooks/useTaskWayline/useTaskWayline.js b/src/hooks/useTaskWayline/useTaskWayline.js
index 506c46c..df11f81 100644
--- a/src/hooks/useTaskWayline/useTaskWayline.js
+++ b/src/hooks/useTaskWayline/useTaskWayline.js
@@ -4,9 +4,9 @@
* @LastEditors: shuishen 1109946754@qq.com
* @LastEditTime: 2025-04-19 19:00:36
* @FilePath: \command-center-dashboard\src\hooks\useTaskWayline\useTaskWayline.js
- * @Description:
- *
- * Copyright (c) 2025 by shuishen, All Rights Reserved.
+ * @Description:
+ *
+ * Copyright (c) 2025 by shuishen, All Rights Reserved.
*/
import lineImg from '@/assets/images/arrow-right-blue.png'
import rwqfdImg from '@/assets/images/signMachineNest/rwqfd.png'
@@ -117,8 +117,6 @@
function setAircraftGltf () {
const host = deviceOsdInfo.value?.data?.host
- console.log(host, 1111111111)
-
const aircraftEntity = viewer?.entities.getById('aircraftGltf')
const position = Cesium.Cartesian3.fromDegrees(host?.longitude, host?.latitude, host?.height)
if (aircraftEntity) {
@@ -215,4 +213,4 @@
removeEntitys,
mapEntityRemove,
}
-}
\ No newline at end of file
+}
diff --git a/src/layout/Header.vue b/src/layout/Header.vue
index 8bdf2ca..fad0241 100644
--- a/src/layout/Header.vue
+++ b/src/layout/Header.vue
@@ -52,7 +52,7 @@
const handleClick = ({ path, name }) => {
if (['系统运维'].includes(name)) {
- window.open(import.meta.env.VITE_APP_ADMIN_URL + '?token=' + localStorage.getItem(ELocalStorageKey.Token), '_blank');
+ window.open(import.meta.env.VITE_APP_ADMIN_URL, '_blank');
return;
}
if (!['首页', '任务管理'].includes(name)) return ElMessage.warning('正在加急开发中...');
diff --git a/src/views/Home/AINowFly.vue b/src/views/Home/AINowFly.vue
index dbad17b..f56f39e 100644
--- a/src/views/Home/AINowFly.vue
+++ b/src/views/Home/AINowFly.vue
@@ -16,14 +16,14 @@
<!-- todo-->
<el-form-item label="飞行事件">
<div class="event">
- <img src="@/assets/images/aiNowFly/picture-recording.png" alt="">
+ <img src="../../assets/images/aiNowFly/event/startRecord.png" alt="">
<div class="img-close" v-show="isPhoto">
<img @click="isPhoto=false" class="close" src="@/assets/images/aiNowFly/close.png" alt="">
- <img src="@/assets/images/aiNowFly/photo.png" alt="">
+ <img src="../../assets/images/aiNowFly/event/takePhoto.png" alt="">
</div>
<div class="img-close" v-show="isStop">
<img @click="isStop=false" class="close" src="@/assets/images/aiNowFly/close.png" alt="">
- <img src="@/assets/images/aiNowFly/stop.png" alt="">
+ <img src="../../assets/images/aiNowFly/event/hover.png" alt="">
</div>
<div class="add-event" @click="isShowEvent = !isShowEvent">+
<div class="event-select" v-show="isShowEvent">
@@ -159,7 +159,7 @@
label: {
text: `预计${item.minute}分钟`,
font: 'bold 16px Source Han Sans CN', // 加粗并增大字号
- // fillColor: new Cesium.Color(27/255, 179/255, 255/255, 1.0),
+ // fillColor: new Cesium.Color(27/255, 179/255, 255/255, 1.0),
// fillColor: Cesium.Color.WHITE,
// style: Cesium.LabelStyle.FILL_AND_OUTLINE,
// verticalOrigin: Cesium.VerticalOrigin.CENTER,
@@ -354,12 +354,12 @@
:deep(.el-select__wrapper) {
background-color: #021740;
box-shadow: 0 0 0 1px #026AD6;
-
+
&.is-focus {
box-shadow: 0 0 0 1px #026AD6;
}
}
-
+
:deep(.el-input__wrapper.is-disabled) {
background-color: #021740;
box-shadow: 0 0 0 1px #026AD6;
@@ -440,7 +440,7 @@
white-space: nowrap;
}
}
-
+
.btn-submit {
cursor: pointer;
margin-left: 88px;
diff --git a/src/views/Home/HomeRight/EventOverview.vue b/src/views/Home/HomeRight/EventOverview.vue
index d87301b..7f5f1c5 100644
--- a/src/views/Home/HomeRight/EventOverview.vue
+++ b/src/views/Home/HomeRight/EventOverview.vue
@@ -40,7 +40,7 @@
<img class="completion-left-img" :src="completionLeft" alt="" />
<div class="completion-text">事件类型完成率情况</div>
<div class="completion-separator"></div>
- <img class="completion-left-img" :src="completionLeft" alt="" />
+ <img class="completion-left-img" :src="leftTriangle" alt="" />
</div>
<div class="chart" ref="echartsRef"></div>
@@ -56,6 +56,7 @@
import overviewImg5 from '@/assets/images/home/homeRight/overview5.png'
import overviewImg6 from '@/assets/images/home/homeRight/overview6.png'
import completionLeft from '@/assets/images/home/homeRight/completionLeft.png'
+import leftTriangle from '@/assets/images/home/homeRight/leftTriangle.png'
import * as echarts from 'echarts'
import CommonDateTime from '@/components/CommonDateTime.vue'
import VSelectLoad from '@/directive/selectLoad'
@@ -153,6 +154,9 @@
width: 2, // 线条宽度
type: 'solid', // 线条类型
},
+ tooltip: {
+ valueFormatter: (value) => value + '%'
+ },
symbol: 'circle', // 数据点符号
symbolSize: 6, // 数据点符号大小
emphasis: {
diff --git a/src/views/Home/RSide.vue b/src/views/Home/RSide.vue
index 7e41a56..98c980d 100644
--- a/src/views/Home/RSide.vue
+++ b/src/views/Home/RSide.vue
@@ -40,6 +40,7 @@
import tc from '@/assets/images/rSide/tc.png'
import tc1 from '@/assets/images/rSide/tc1.png'
import cesiumOperation from '@/utils/cesium-tsa'
+import { ElMessage } from 'element-plus'
let logIndex = ref(3)
const enterHover = value => {
@@ -61,6 +62,7 @@
activeIndex.value = activeIndex.value === 1 ? null : value
}
if (value === 2) {
+ ElMessage.warning('加急开发中...')
activeIndex.value = activeIndex.value === 2 ? null : value
}
}
diff --git a/src/views/SignMachineNest/MachineLeft/InspectionRaskDetails.vue b/src/views/SignMachineNest/MachineLeft/InspectionRaskDetails.vue
index f9f9890..d2ff6e6 100644
--- a/src/views/SignMachineNest/MachineLeft/InspectionRaskDetails.vue
+++ b/src/views/SignMachineNest/MachineLeft/InspectionRaskDetails.vue
@@ -109,7 +109,7 @@
},
],
}
-
+import _ from 'lodash'
// chart.setOption(option);
const pieOption = {
@@ -138,7 +138,7 @@
tarValue = data[i].value
}
}
- let percentage = ((tarValue / total) * 100).toFixed(1)
+ let percentage = total ? _.round(((tarValue / total) * 100),1) : 0
return `${name} ${percentage}%`
},
},
@@ -167,7 +167,7 @@
{ value: 0, name: '处理中', itemStyle: { color: '#FFC398' } },
{ value: 0, name: '已完成', itemStyle: { color: '#AFD9FB' } },
// { value: 0, name: '待分拨', itemStyle: { color: '#E9C81A' } },
-
+
{ value: 0, name: '已完结', itemStyle: { color: '#11C4FF' } },
],
},
diff --git a/src/views/SignMachineNest/MachineRight/MachineStatus/MachineTableDetails/DeviceEvent.vue b/src/views/SignMachineNest/MachineRight/MachineStatus/MachineTableDetails/DeviceEvent.vue
index 0edf424..934d9d2 100644
--- a/src/views/SignMachineNest/MachineRight/MachineStatus/MachineTableDetails/DeviceEvent.vue
+++ b/src/views/SignMachineNest/MachineRight/MachineStatus/MachineTableDetails/DeviceEvent.vue
@@ -70,7 +70,10 @@
const total = ref(0)
const distribution = row => {
- ElMessage.warning('正在加急开发中...')
+ const orderNumber = row.event_num
+ const adminUrl = import.meta.env.VITE_APP_ADMIN_URL
+ const targetPath = `/tickets/ticket?orderNumber=${orderNumber}`;
+ window.open(`${adminUrl}?redirect=${encodeURIComponent(targetPath)}`, '_blank');
}
const examine = row => {
ElMessage.warning('正在加急开发中...')
--
Gitblit v1.9.3