From 6eeeb44d39e7afff85ae6ec6f22bf3c48222a84d Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Thu, 22 Jan 2026 15:06:45 +0800
Subject: [PATCH] feat: app-gd
---
uniapps/work-app/build/config/proxy.js | 5 ++
uniapps/work-app/src/api/user/index.js | 22 -----------
applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue | 8 ++--
applications/task-work-order/src/assets/images/orderView/orderManage/drone.png | 0
applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue | 30 +++++++++++++--
uniapps/work-app/env/.env | 1
applications/task-work-order/src/views/orderView/orderManage/orderManage/RefuseOrderDialog.vue | 22 ++++++----
uniapps/work-app/src/api/work/index1.js | 24 ++++++++++++
8 files changed, 73 insertions(+), 39 deletions(-)
diff --git a/applications/task-work-order/src/assets/images/orderView/orderManage/drone.png b/applications/task-work-order/src/assets/images/orderView/orderManage/drone.png
new file mode 100644
index 0000000..bbc513c
--- /dev/null
+++ b/applications/task-work-order/src/assets/images/orderView/orderManage/drone.png
Binary files differ
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 916d839..467f20a 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
@@ -340,7 +340,7 @@
nextTick(() => {
refuseOrderDialogRef.value.open({
mode,
- row: { workOrderId: formData.value.id },
+ row: formData.value,
type,
formLabel,
})
@@ -353,8 +353,6 @@
const str = [...pointList.value, pointList.value[0]].map(item => `${item.longitude} ${item.latitude}`).join(',')
let geom = `POLYGON((${str}))`
const res = await gdManageDeviceListApi({
- current: 1,
- size: 1000,
ids: formData.value.recommendDeviceIds,
devicePayload: dialogMode.value === 'add' ? formData.value.deviceLoadDemand : '',
geom: dialogMode.value === 'add' ? geom : '',
@@ -490,10 +488,33 @@
})
}
-
+// 获取巡检任务
function gdPatrolTaskPage() {
gdPatrolTaskPageApi({ current: 1, size: 1000, workOrderId: formData.value.id }).then(res => {
patrolTaskList.value = res.data.data.records || []
+ })
+}
+
+function setMapDevice() {
+ gdManageDeviceListApi().then(res => {
+ renderingDevice(res?.data?.data || [])
+ })
+}
+
+import droneIcon from '@/assets/images/orderView/orderManage/drone.png'
+function renderingDevice(list) {
+ // 渲染红点
+ list.forEach(item => {
+ const position = Cesium.Cartesian3.fromDegrees(item.longitude || 115.00, item.latitude || 27.11)
+ viewer.entities.add({
+ position: position,
+ billboard: {
+ image: droneIcon,
+ width: 40,
+ height: 40,
+ verticalOrigin: Cesium.VerticalOrigin.CENTER,
+ },
+ })
})
}
@@ -510,6 +531,7 @@
dialogMode.value === 'edit' ? editPolygon() : viewPolygon()
}
await getDeviceList()
+ // setMapDevice()
await nextTick()
syncSelection()
}
diff --git a/applications/task-work-order/src/views/orderView/orderManage/orderManage/RefuseOrderDialog.vue b/applications/task-work-order/src/views/orderView/orderManage/orderManage/RefuseOrderDialog.vue
index 9aab81e..07f477c 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/orderManage/RefuseOrderDialog.vue
+++ b/applications/task-work-order/src/views/orderView/orderManage/orderManage/RefuseOrderDialog.vue
@@ -7,7 +7,16 @@
destroy-on-close
:close-on-click-modal="false"
>
+ <div v-if="dialogReadonly">
+ <el-row class="detail-row-view">
+ <el-col :span="24">
+ <div class="label">{{formLabelStr}}:</div>
+ <div class="val">{{ formData.rejectReason || '' }}</div>
+ </el-col>
+ </el-row>
+ </div>
<el-form
+ v-else
class="gd-dialog-form"
ref="formRef"
:model="formData"
@@ -49,8 +58,10 @@
<script setup>
import { computed, ref } from 'vue'
import { ElMessage } from 'element-plus'
-import { fieldRules } from '@ztzf/utils'
+import { fieldRules, getDictLabel } from '@ztzf/utils'
import { gdWorkOrderHandleStatusApi } from '@/views/orderView/orderManage/orderManage/orderManageApi'
+import { pxToRem } from '@/utils/rem'
+import dayjs from 'dayjs'
// 初始化表单数据
const initForm = () => ({
@@ -88,19 +99,12 @@
})
}
-function loadDetail() {
-
-}
-
let formLabelStr = ref('原因')
// 打开弹框
async function open({ mode = 'add', row, formLabel, type } = {}) {
dialogMode.value = mode
formLabelStr.value = formLabel
- formData.value = { ...initForm(), ...row, operationType: type }
- if (mode === 'view'){
- await loadDetail()
- }
+ formData.value = { workOrderId: row.id, operationType: type, rejectReason: row.rejectReason }
}
defineExpose({ open })
diff --git a/applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue b/applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue
index b741d35..50f0e85 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue
+++ b/applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue
@@ -73,10 +73,10 @@
<div class="gd-table-toolbar">
<!-- <el-button color="#F2F3F5" @click="requester = !requester">我是{{ requester ? '需求方' : '服务方' }}</el-button>-->
- <el-button color="#F2F3F5" @click="previewVisible = true">预览</el-button>
+<!-- <el-button color="#F2F3F5" @click="previewVisible = true">预览</el-button>-->
- <el-button :icon="Plus" color="#4C34FF" type="primary" @click="openForm('add')">新增</el-button>
- <el-button :icon="Delete" color="#4C34FF" :disabled="!selectedIds.length" @click="handleDelete()">删除</el-button>
+ <el-button :icon="Plus" color="#4C34FF" type="primary" @click="openForm('add')" v-if="requester">新增</el-button>
+ <el-button :icon="Delete" color="#4C34FF" :disabled="!selectedIds.length" @click="handleDelete()" v-if="requester">删除</el-button>
</div>
<div class="gd-table-container" v-loading="loading">
@@ -114,7 +114,7 @@
<template v-slot="{ row }">
<el-link @click="openFormChange(row)">查看</el-link>
<!--<el-link @click="openForm('edit', row)">编辑</el-link>-->
- <el-link @click="handleDelete(row)">删除</el-link>
+ <el-link @click="handleDelete(row)" v-if="requester">删除</el-link>
</template>
</el-table-column>
</el-table>
diff --git a/uniapps/work-app/build/config/proxy.js b/uniapps/work-app/build/config/proxy.js
index 68c2c42..8633721 100644
--- a/uniapps/work-app/build/config/proxy.js
+++ b/uniapps/work-app/build/config/proxy.js
@@ -20,6 +20,11 @@
changeOrigin: true,
rewrite: path => path.replace(new RegExp(`^${VITE_API_PREFIX}`), ''),
},
+ [VITE_API_PREFIX_GD]: {
+ target: configEnv?.[envName || VITE_APP_ENV]?.VITE_API_BASE_URL_GD,
+ changeOrigin: true,
+ rewrite: path => path.replace(new RegExp(`^${VITE_API_PREFIX_GD}`), ''),
+ },
}
return proxy
}
diff --git a/uniapps/work-app/env/.env b/uniapps/work-app/env/.env
index 695ff20..a5c5058 100644
--- a/uniapps/work-app/env/.env
+++ b/uniapps/work-app/env/.env
@@ -12,6 +12,7 @@
# API代理前缀
VITE_API_PREFIX=/api
+VITE_API_PREFIX_GD=/api-gd
# 删除console
VITE_DROP_CONSOLE=false
diff --git a/uniapps/work-app/src/api/user/index.js b/uniapps/work-app/src/api/user/index.js
index 12e344d..5a3fc98 100644
--- a/uniapps/work-app/src/api/user/index.js
+++ b/uniapps/work-app/src/api/user/index.js
@@ -22,28 +22,6 @@
/** 退出登录 */
export const logout = () => post("/user/logout")
-// 工单用户登录接口
-export const ticketLoginInterfaceApi = (tenantId, deptId, roleId, username, password, type, key, code) => {
- return request({
- url: '/blade-auth/oauth/token',
- method: 'post',
- header: {
- 'Tenant-Id': tenantId,
- 'Dept-Id': website.switchMode ? deptId : '',
- 'Role-Id': website.switchMode ? roleId : '',
- 'Captcha-Key': key,
- 'Captcha-Code': code,
- },
- params: {
- tenantId,
- username,
- password,
- grant_type: 'password',
- scope: 'all',
- type,
- },
- })
-}
// 用户登录接口
export const loginByUsername = (tenantId, deptId, roleId, username, password, type, key, code) => {
diff --git a/uniapps/work-app/src/api/work/index1.js b/uniapps/work-app/src/api/work/index1.js
index 304174d..1109a77 100644
--- a/uniapps/work-app/src/api/work/index1.js
+++ b/uniapps/work-app/src/api/work/index1.js
@@ -1,4 +1,6 @@
import { request } from "@/utils/requestGd/index.js"
+import website from '@/config/website'
+
// 获取工单列表
export const getGdList = data => {
return request({
@@ -7,3 +9,25 @@
data,
});
};
+// 工单用户登录接口
+export const ticketLoginInterfaceApi = (tenantId, deptId, roleId, username, password, type, key, code) => {
+ return request({
+ url: '/blade-auth/oauth/token',
+ method: 'post',
+ header: {
+ 'Tenant-Id': tenantId,
+ 'Dept-Id': website.switchMode ? deptId : '',
+ 'Role-Id': website.switchMode ? roleId : '',
+ 'Captcha-Key': key,
+ 'Captcha-Code': code,
+ },
+ params: {
+ tenantId,
+ username,
+ password,
+ grant_type: 'password',
+ scope: 'all',
+ type,
+ },
+ })
+}
--
Gitblit v1.9.3