From 2ca94de8ede18ac07ccfd8dec7b6f6a707adde9b Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Mon, 01 Sep 2025 11:20:24 +0800
Subject: [PATCH] Merge branch 'refs/heads/feature/v5.0/5.0.5' into patch_management
---
src/views/device/addDevice.vue | 190 ++++++++++++++++++++++++++++++++--------------
1 files changed, 131 insertions(+), 59 deletions(-)
diff --git a/src/views/device/addDevice.vue b/src/views/device/addDevice.vue
index 88a8a89..f556b04 100644
--- a/src/views/device/addDevice.vue
+++ b/src/views/device/addDevice.vue
@@ -27,8 +27,6 @@
import { getLazyTree } from '@/api/base/region'
import { mapGetters } from 'vuex'
-import { getWebsocketUrl } from '@/websocket/util/config'
-import ConnectWebSocket from '@/websocket'
import { $Clipboard } from "@smallwei/avue"
@@ -83,7 +81,7 @@
calcHeight: 20,
column: [
{
- label: '工作空间名称',
+ label: '设备名称',// '工作空间名称',
prop: 'workspace_name',
editDisabled: true,
searchLabelWidth: 130,
@@ -93,40 +91,24 @@
rules: [
{
required: true,
- message: '请输入工作空间名称',
+ message: '请输入设备名称',
trigger: 'blur',
},
],
},
{
- label: '工作空间描述',
- prop: 'workspace_desc',
- labelWidth: 130,
- // search: true,
- searchSpan: 4,
- // editDisabled: true,
- rules: [
- {
- required: true,
- message: '请输入工作空间描述',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '平台名称',
+ label: '系统名称',// '平台名称',
prop: 'platform_name',
labelWidth: 130,
editDisabled: true,
rules: [
{
required: false,
- message: '请输入平台名称',
+ message: '请输入系统名称',
trigger: 'blur',
},
],
},
-
{
label: '所属单位',
prop: 'dept_id',
@@ -184,15 +166,90 @@
],
},
{
+ label: '设备描述',// '工作空间描述',
+ prop: 'workspace_desc',
+ labelWidth: 130,
+ // search: true,
+ searchSpan: 4,
+ // editDisabled: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入设备描述',
+ trigger: 'blur',
+ },
+ ],
+ },
+
+ {
label: '创建时间',
prop: 'create_time',
addDisplay: false,
editDisplay: false,
+ overHidden: true,
type: 'date',
labelWidth: 130,
width: 160,
format: 'YYYY-MM-DD HH:mm:ss',
+ },
+ {
+ label: '设备位置',// '行政区划',
+ prop: 'area_code',
+ type: 'cascader',
+ labelWidth: 130,
+ hide: true,
+ editDisplay: true,
+ viewDisplay: false,
+ props: {
+ label: 'title',
+ value: 'value',
+ emitPath: false,
+ checkStrictly: true,
+ multiple: false,
+ expandTrigger: 'hover',
+ },
+ dataType: 'string',
+ rules: [
+ {
+ required: true,
+ message: '请选择设备位置',
+ trigger: 'change',
+ },
+ ],
+ lazy: true,
+ lazyLoad (node, resolve) {
+ let level = node.level
+ let list = []
+ let callback = () => {
+ resolve(
+ (list || []).map(ele => ({
+ ...ele,
+ value: ele.value,
+ leaf: level >= 2,
+ }))
+ )
+ }
+
+ if (level === 0) {
+ getLazyTree('000000000000').then(res => {
+ list = res.data.data
+ callback()
+ })
+ } else if (level === 1) {
+ getLazyTree(node.value).then(res => {
+ list = res.data.data
+ callback()
+ })
+ } else if (level === 2) {
+ getLazyTree(node.value).then(res => {
+ list = res.data.data
+ callback()
+ })
+ } else {
+ callback()
+ }
+ },
},
],
@@ -231,41 +288,22 @@
methods: {
copyInfo (row, index) {
- if (import.meta.env.VITE_APP_ENV === 'development') {
- // alert('地址'+import.meta.env.VITE_APP_ENV);
- let params = `
- host: tcp://139.196.74.78:1883
- 账号:drone
- 密码:123456
- 组织id:${row.bing_id}
- 设备码:${row.bind_code}
- 机场名称:${row.workspace_name}
- aircrattName:${row.workspace_desc}`
- $Clipboard({
- text: params,
- }).then(() => {
- this.$message.success("复制成功")
- }).catch(() => {
- this.$message.error("复制失败")
- })
- } else {
- // alert('地址'+import.meta.env.VITE_APP_ENV);
- let params = `
- host: tcp://101.132.85.201:1883
- 账号:drone
+ const ipAddress = import.meta.env.VITE_APP_DEVICE_IP
+ let params = `
+ host: tcp://${ipAddress}
+ 账号:drone
密码:drone@123
- 组织id:${row.bing_id}
- 设备码:${row.bind_code}
- 机场名称:${row.workspace_name}
+ 组织id:${row.bing_id}
+ 设备码:${row.bind_code}
+ 机场名称:${row.workspace_name}
aircrattName:${row.workspace_desc}`
- $Clipboard({
- text: params,
- }).then(() => {
- this.$message.success("复制成功")
- }).catch(() => {
- this.$message.error("复制失败")
- })
- }
+ $Clipboard({
+ text: params,
+ }).then(() => {
+ this.$message.success("复制成功")
+ }).catch(() => {
+ this.$message.error("复制失败")
+ })
},
init () {
this.onLoad(this.page)
@@ -277,6 +315,14 @@
},
rowSave (row, done, loading) {
+ let areaCode = row.area_code
+ if (Array.isArray(areaCode)) {
+ areaCode = areaCode[areaCode.length - 1]
+ } else if (typeof areaCode === 'string' && areaCode.includes(',')) {
+ const codes = areaCode.split(',')
+ areaCode = codes[codes.length - 1]
+ }
+ row.area_code = areaCode || null
add(row).then(
() => {
this.onLoad(this.page)
@@ -293,7 +339,11 @@
)
},
rowUpdate (row, index, done, loading) {
- update(row).then(
+ const submitData = {
+ ...row,
+ area_code: row.area_code.split(',').pop(),
+ }
+ update(submitData).then(
() => {
this.onLoad(this.page)
this.$message({
@@ -364,10 +414,32 @@
this.$refs.crud.toggleSelection()
})
},
+ async getFullAreaCode (areaCode) {
+ if (!areaCode) return ''
+
+ const code = areaCode.toString()
+
+ if (code.includes(',')) return code
+
+ if (code.endsWith('0000000000')) {
+ return code
+ } else if (code.endsWith('00000000') && !code.endsWith('0000000000')) {
+ const provinceCode = code.substring(0, 2) + '0000000000'
+ return `${provinceCode},${code}`
+ } else {
+ const provinceCode = code.substring(0, 2) + '0000000000'
+ const cityCode = code.substring(0, 4) + '00000000'
+ return `${provinceCode},${cityCode},${code}`
+ }
+ },
beforeOpen (done, type) {
if (['edit', 'view'].includes(type)) {
- getDetail(this.form.id).then(res => {
- this.form = res.data.data
+ getDetail(this.form.id).then(async res => {
+ const data = res.data.data
+ this.form = {
+ ...data,
+ area_code: await this.getFullAreaCode(data.area_code),
+ }
})
}
done()
@@ -443,4 +515,4 @@
border-color: #409eff;
}
}
-</style>
\ No newline at end of file
+</style>
--
Gitblit v1.9.3