From a64543f9746d5d52b42e7f001f7a0d645cf3e596 Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Fri, 06 Feb 2026 10:13:16 +0800
Subject: [PATCH] feat:更新任务工单
---
applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue | 77 +++++++++++++++++++++++++-------------
1 files changed, 51 insertions(+), 26 deletions(-)
diff --git a/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
index bcb77b1..7ab4e00 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
+++ b/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
@@ -9,9 +9,11 @@
:close-on-click-modal="false"
>
<div class="content" style="display: flex">
- <div class="processBox" v-if="dialogMode !== 'add' && processList.length">
-<!-- <div class="detail-title">工单记录</div>-->
- <OrderStepBar :processList="processList" />
+ <div class="processBox" v-if="dialogMode !== 'add'">
+ <div class="detail-title">工单记录</div>
+ <div class="process">
+ <OrderStepBar :processList="processList" />
+ </div>
</div>
<div class="leftBox">
<div v-if="dialogReadonly">
@@ -34,7 +36,7 @@
</el-col>
<el-col :span="12">
<div class="label">设备需求</div>
- <div class="val">{{ getDictLabel(formData.deviceLoadDemand, dictObj.deviceLoadDemand) }}</div>
+ <div class="val">{{ formData.deviceLoadDemand }}</div>
</el-col>
<el-col :span="24">
<div class="label">工单备注</div>
@@ -106,7 +108,6 @@
<el-form-item label="执行时间" prop="executeStartTime">
<el-date-picker
class="gd-date-picker"
- popper-class="gd-date-picker-popper"
v-model="dateRange"
type="daterange"
range-separator="至"
@@ -127,10 +128,10 @@
@change="loadDemandChange"
>
<el-option
- v-for="item in dictObj.deviceLoadDemand"
- :key="item.dictKey"
- :label="item.dictValue"
- :value="item.dictKey"
+ v-for="item in payloadList"
+ :key="item.name"
+ :label="item.name"
+ :value="item.name"
/>
</el-select>
</el-form-item>
@@ -138,9 +139,9 @@
<el-col :span="24">
<el-form-item label="工单备注" prop="remark">
<el-input
- class="gd-input"
+ class="gd-input-text"
type="textarea"
- :rows="4"
+ :rows="3"
v-model="formData.remark"
placeholder="请输入"
clearable
@@ -173,10 +174,10 @@
<el-table
class="separateTable"
:empty-text="
- formData.deviceLoadDemand && pointList.length ? '暂无数据' : '请先选择设备需求并在地图上绘制工单范围'
+ pointList.length ? '暂无数据' : '请先在地图上绘制工单范围'
"
ref="deviceTableRef"
- :data="formData.deviceLoadDemand && pointList.length ? deviceList : []"
+ :data="pointList.length ? deviceList : []"
row-key="id"
@selection-change="handleDeviceSelectionChange"
>
@@ -264,10 +265,10 @@
gdWorkOrderHandleStatusApi,
gdWorkOrderSaveApi,
} from './orderManageApi'
-import { gdManageDeviceListApi } from './gdManageDeviceApi'
+import { gdDevicePayloadListApi, gdManageDeviceListApi } from './gdManageDeviceApi'
import { cartesian3Convert } from '@/utils/cesium/mapUtil'
import * as Cesium from 'cesium'
-import { DrawPolygon } from '@/utils/cesium/DrawPolygon'
+import { DrawPolygon } from '@ztzf/utils'
import { pxToRem } from '@/utils/rem'
import dayjs from 'dayjs'
import RefuseOrderDialog from '@/views/orderView/orderManage/orderManage/RefuseOrderDialog.vue'
@@ -339,7 +340,6 @@
workOrderName: fieldRules(true, 50),
workOrderType: fieldRules(true),
executeStartTime: fieldRules(true),
- deviceLoadDemand: fieldRules(true),
}
// 操作类型:1接单,2拒接接单,3申请取消,4申请修改, 5同意取消
@@ -512,11 +512,17 @@
viewPlane = viewer.entities?.add({
customType: 'control_group',
position: Cesium.Cartesian3.fromDegrees(result[0], result[1]),
+ polygon: {
+ hierarchy: Cesium.Cartesian3.fromDegreesArray(result),
+ material: Cesium.Color.fromBytes(45, 140, 240, 99),
+ outline: false,
+ heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
+ },
polyline: {
positions: Cesium.Cartesian3.fromDegreesArray(result),
clampToGround: true,
- width: 3,
- material: Cesium.Color.RED,
+ width: 2,
+ material: Cesium.Color.fromBytes(45, 140, 240, 255),
},
})
flyVisual({
@@ -547,7 +553,8 @@
// 渲染
function renderingAllDevice(list) {
list.forEach(item => {
- const position = Cesium.Cartesian3.fromDegrees(item.longitude || 115.0, item.latitude || 27.11)
+ if (!item.longitude || !item.latitude) return
+ const position = Cesium.Cartesian3.fromDegrees(item.longitude, item.latitude)
viewer.entities.add({
position: position,
billboard: {
@@ -555,6 +562,7 @@
width: 30,
height: 30,
verticalOrigin: Cesium.VerticalOrigin.CENTER,
+ heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
},
label: {
text: item.nickname,
@@ -563,6 +571,7 @@
outlineWidth: 2,
outlineColor: Cesium.Color.WHITE,
horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
+ heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
pixelOffset: new Cesium.Cartesian2(0, -20),
},
@@ -570,9 +579,17 @@
})
}
+const payloadList = ref([])
+function getPayloadList() {
+ gdDevicePayloadListApi().then(res => {
+ payloadList.value = res.data.data
+ })
+}
+
// 打开弹框
async function open({ mode = 'add', row } = {}) {
dialogMode.value = mode
+ getPayloadList()
initMap()
const allDeviceRes = await gdManageDeviceListApi()
formData.value = dialogMode.value === 'add' ? initForm() : row
@@ -656,8 +673,10 @@
flex-direction: column;
.gd-cesium {
+ position: relative;
+ overflow: hidden;
width: 100%;
- min-height: 380px;
+ min-height: 360px;
flex: 1;
}
}
@@ -674,12 +693,18 @@
}
.processBox {
- padding: 12px 16px 24px 16px;
- width: 312px;
- border: 1px solid #e4e4e4;
- border-radius: 8px;
- overflow: auto;
- background: #fff;
+ display: flex;
+ flex-direction: column;
+
+ .process {
+ height: 100%;
+ padding: 12px 16px 24px 16px;
+ width: 312px;
+ border: 1px solid #e4e4e4;
+ border-radius: 8px;
+ background: #fff;
+ overflow: auto;
+ }
}
}
--
Gitblit v1.9.3