From 233e4fc4f35bd00a36ee34a7fbf5e47b41db26db Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Mon, 17 Nov 2025 09:54:44 +0800
Subject: [PATCH] feat:更新初始化地形
---
src/views/device/addDevice.vue | 242 ++++++++++++++++++++++++++----------------------
1 files changed, 130 insertions(+), 112 deletions(-)
diff --git a/src/views/device/addDevice.vue b/src/views/device/addDevice.vue
index 622bef8..a8a95d0 100644
--- a/src/views/device/addDevice.vue
+++ b/src/views/device/addDevice.vue
@@ -70,10 +70,12 @@
lazy: true,
tree: true,
- // dialogWidth: 1050,
+ dialogWidth: 1050,
+ searchGutter: 30,
+ searchMenuPosition: 'left',
+ searchMenuSpan: 4,
tip: false,
searchShow: true,
- searchMenuSpan: 6,
border: true,
index: true,
indexLabel: '序号',
@@ -92,11 +94,11 @@
{
label: '设备名称',// '工作空间名称',
prop: 'workspace_name',
- editDisabled: true,
- searchLabelWidth: 130,
- search: true,
- // searchSpan: 4,
+ // editDisabled: true,
+ editDisplay: false,
labelWidth: 130,
+ search: true,
+ searchSpan: 4,
rules: [
{
required: true,
@@ -110,7 +112,8 @@
prop: 'platform_name',
labelWidth: 130,
width: 180,
- editDisabled: true,
+ // editDisabled: true,
+ editDisplay: false,
type: 'select',
dicData: this.systemNamesDicData,
rules: [
@@ -122,7 +125,7 @@
],
},
{
- label: '所属单位',
+ label: '所属部门',
prop: 'dept_name',
addDisplay: false,
editDisplay: false,
@@ -132,13 +135,13 @@
rules: [
{
required: true,
- message: '请输入所属单位',
+ message: '请输入所属部门',
trigger: 'blur',
},
],
},
{
- label: '所属单位',
+ label: '所属部门',
prop: 'dept_id',
hide: true,
type: 'tree',
@@ -154,7 +157,7 @@
rules: [
{
required: true,
- message: '请输入所属单位',
+ message: '请输入所属部门',
trigger: 'blur',
},
],
@@ -163,7 +166,8 @@
label: '绑定编号',
prop: 'bind_code',
labelWidth: 130,
- editDisabled: true,
+ // editDisabled: true,
+ editDisplay: false,
rules: [
{
required: false,
@@ -174,18 +178,18 @@
},
{
label: '设备类型',
+ editDisplay: false,
prop: 'type',
- type: 'radio',
labelWidth: 130,
value: 0,
type: 'select',
dicData: [
{
- label: '机场',
+ label: '机巢',
value: 0
},
{
- label: '遥控器',
+ label: '控制器',
value: 1
}
],
@@ -196,34 +200,6 @@
trigger: 'change',
},
],
- },
- {
- 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: '设备位置',// '行政区划',
@@ -237,65 +213,84 @@
width: 200,
},
{
- label: '设备位置',// '行政区划',
- prop: 'area_code',
- type: 'cascader',
+ label: '设备位置',
+ prop: 'area_code',
+ // type: 'cascader',
+ type: 'tree',
+ labelWidth: 130,
+ searchSpan: 4,
+ hide: true,
+ search: true,
+ // overHidden: true,
+ editDisplay: true,
+ viewDisplay: true,
+ checkStrictly: true,
+ defaultExpandAll: true,
+ dicData: [],
+ props: {
+ label: 'name',
+ value: 'id',
+ children: 'childrens',
+ },
+ rules: [
+ {
+ required: true,
+ message: '请选择设备位置',
+ trigger: 'change',
+ },
+ ],
+ },
+ {
+ 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: 'workspace_desc',
+ type: 'textarea',
labelWidth: 130,
searchSpan: 4,
- hide: true,
- search: true,
- editDisplay: true,
- viewDisplay: false,
- props: {
- label: 'title',
- value: 'value',
- emitPath: false,
- checkStrictly: true,
- multiple: false,
- expandTrigger: 'hover',
- },
- dataType: 'string',
+ overHidden: true,
+ minRows: 3,
+ maxRows: 5,
+ maxlength: 250,
+ span: 24,
+ showWordLimit: true,
rules: [
- {
- required: true,
- message: '请选择设备位置',
- trigger: 'change',
- },
+ {
+ required: true,
+ message: '请输入设备描述不能超过250个字',
+ trigger: 'blur',
+ },
+ {
+ max: 250,
+ message: '设备描述不能超过250个字',
+ trigger: 'blur',
+ },
+ // 如果需要更严格的校验(如中文字符计算),可以使用 validator
+ {
+ validator: (rule, value, callback) => {
+ if (value && value.length > 250) {
+ callback(new Error('设备描述不能超过250个字'));
+ } else {
+ callback();
+ }
+ },
+ trigger: 'blur',
+ },
],
- 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()
- }
- },
},
+
+
+
],
},
@@ -340,6 +335,12 @@
await this.getRegionTreeList();
await this.getSystemNamesList();
},
+ mounted() {
+ getRegionTreeAll({ parentCode: this.userInfo.detail.areaCode }).then(res => {
+ const column = this.findObject(this.option.column, 'area_code');
+ column.dicData = res.data.data ? [res.data.data] : [];
+ });
+ },
methods: {
async getRegionTreeList(code) {
try {
@@ -370,20 +371,20 @@
this.systemNamesList = [];
}
},
- beforeOpen (type, row, index) {
- if (type === 'add') {
- this.form = {
- workspace_name: '',
- platform_name: '',
- dept_name: '',
- bind_code: '',
- type: 0,
- workspace_desc: '',
- area_name: '',
- area_code: '',
- }
- }
- },
+ // beforeOpen (type, row, index) {
+ // if (type === 'add') {
+ // this.form = {
+ // workspace_name: '',
+ // platform_name: '',
+ // dept_name: '',
+ // bind_code: '',
+ // type: 0,
+ // workspace_desc: '',
+ // area_name: '',
+ // area_code: '',
+ // }
+ // }
+ // },
async getXZQHList(area_code) {
try {
const res = await getLazyTree(area_code);
@@ -576,12 +577,24 @@
}
},
beforeOpen (done, type) {
+ if (type === 'add') {
+ this.form = {
+ workspace_name: '',
+ platform_name: '',
+ dept_name: '',
+ bind_code: '',
+ type: 0,
+ workspace_desc: '',
+ area_name: '',
+ area_code: '',
+ }
+ }
if (['edit', 'view'].includes(type)) {
getDetail(this.form.id).then(async res => {
const data = res.data.data
this.form = {
...data,
- area_code: await this.getFullAreaCode(data.area_code),
+ // area_code: await this.getFullAreaCode(data.area_code),
}
})
}
@@ -611,7 +624,12 @@
}
values.releaseTimeRange = null
}
+ console.log(values.area_code,this.query)
values['type'] = 1
+ if (values.area_code) {
+ values['area_code'] = values.area_code.split(',').pop()
+ }
+
this.loading = true
getList(page.currentPage, page.pageSize, values).then(async res => {
const data = res.data.data
--
Gitblit v1.9.3