From e878d0367cd1504a5585a3c242e4aae895fe951b Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Mon, 19 Jan 2026 17:31:11 +0800
Subject: [PATCH] feat: 完成接单
---
applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue | 67 ++++++++++++++++++++++++---------
1 files changed, 49 insertions(+), 18 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 2acd0b0..d3fdd14 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
@@ -7,7 +7,7 @@
:style="{ width: pxToRem(1216) }"
destroy-on-close
>
- <div style="display: flex">
+ <div class="content" style="display: flex">
<div class="leftBox">
<div class="detail-container" v-if="dialogReadonly">
<el-row>
@@ -35,6 +35,11 @@
<div class="val">{{ formData.remark }}</div>
</el-col>
</el-row>
+ <el-table ref="deviceTableRef" :data="deviceList" row-key="id">
+ <el-table-column prop="nickname" label="设备名称" />
+ <el-table-column prop="deviceName" label="设备型号" />
+ <el-table-column prop="devicePayload" label="设备负载" />
+ </el-table>
</div>
<el-form
class="gd-dialog-form"
@@ -110,15 +115,9 @@
</el-form>
<div id="mapContainer" class="gd-cesium"></div>
</div>
- <div>
- <h3>推荐设备</h3>
- <el-table
- class="command-data-cockpit-table"
- ref="deviceTableRef"
- :data="deviceList"
- row-key="id"
- @selection-change="handleDeviceSelectionChange"
- >
+ <div class="rightBox" v-if="!dialogReadonly">
+ <div class="title">推荐设备</div>
+ <el-table ref="deviceTableRef" :data="deviceList" row-key="id" @selection-change="handleDeviceSelectionChange">
<el-table-column type="selection" width="55" :reserve-selection="true" />
<el-table-column prop="nickname" label="设备名称" />
<el-table-column prop="deviceName" label="设备型号" />
@@ -128,6 +127,9 @@
</div>
<template #footer>
+ <el-button color="#F2F3F5" @click="requester = !requester">
+ 当前用户是{{ requester ? '需求方' : '服务方' }}
+ </el-button>
<el-button color="#F2F3F5" @click="visible = false">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
<el-button
class="save-btn"
@@ -137,8 +139,16 @@
:disabled="submitting"
@click="handleSubmit"
>
- 保存
+ 发布
</el-button>
+ <template v-if="requester">
+ <el-button color="#F2F3F5">拒单原因</el-button>
+ <el-button color="#F2F3F5">重新发布</el-button>
+ </template>
+ <template v-else>
+ <el-button color="#F2F3F5">拒绝接单</el-button>
+ <el-button class="save-btn" color="#4C34FF" @click="acceptOrders">接单</el-button>
+ </template>
</template>
</el-dialog>
</template>
@@ -147,7 +157,7 @@
import { computed, ref, onMounted, nextTick } from 'vue'
import { ElMessage } from 'element-plus'
import { dateRangeFormat, fieldRules, geomAnalysis, getDictLabel } from '@ztzf/utils'
-import { gdWorkOrderDetailApi, gdWorkOrderSaveApi } from './orderManageApi'
+import { gdWorkOrderDetailApi, gdWorkOrderHandleStatusApi, gdWorkOrderSaveApi } from './orderManageApi'
import { gdManageDeviceListApi, gdManageDevicePageApi } from './gdManageDeviceApi'
import { cartesian3Convert } from '@/utils/cesium/mapUtil'
import * as turf from '@turf/turf'
@@ -179,6 +189,7 @@
const submitting = ref(false) // 提交中
const dialogReadonly = computed(() => dialogMode.value === 'view')
const titleEnum = ref({ edit: '编辑', view: '查看', add: '新增' })
+const requester = ref(true)
const deviceList = ref([]) // 设备列表
const selectedDevices = ref([]) // 选中的设备
@@ -192,6 +203,14 @@
workOrderType: fieldRules(true),
executeStartTime: fieldRules(true),
deviceLoadDemand: fieldRules(true),
+}
+
+function acceptOrders() {
+ gdWorkOrderHandleStatusApi({ operationType: 1, workOrderId: formData.value.id }).then(res => {
+ ElMessage.success('接单成功')
+ visible.value = false
+ emit('success')
+ })
}
// 获取推荐设备列表
@@ -347,11 +366,23 @@
</script>
<style lang="scss" scoped>
-.leftBox {
- width: 681px;
-}
-#mapContainer {
- width: 681px;
- height: 423px;
+.content {
+ display: flex;
+ gap: 0 20px;
+ .leftBox {
+ width: 0;
+ flex: 1;
+ #mapContainer {
+ width: 100%;
+ height: 423px;
+ }
+ }
+ .rightBox {
+ .title {
+ font-weight: 500;
+ font-size: 14px;
+ color: #272e37;
+ }
+ }
}
</style>
--
Gitblit v1.9.3