| | |
| | | |
| | | dialogWidth: 1050, |
| | | searchGutter: 30, |
| | | searchMenuPosition: 'left', |
| | | searchMenuSpan: 4, |
| | | tip: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | indexLabel: '序号', |
| | |
| | | prop: 'workspace_name', |
| | | // editDisabled: true, |
| | | editDisplay: false, |
| | | searchLabelWidth: 130, |
| | | search: true, |
| | | // searchSpan: 4, |
| | | labelWidth: 130, |
| | | search: true, |
| | | searchSpan: 4, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | ], |
| | | }, |
| | | { |
| | | label: '所属单位', |
| | | label: '所属部门', |
| | | prop: 'dept_name', |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: '请输入所属单位', |
| | | message: '请输入所属部门', |
| | | trigger: 'blur', |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: '所属单位', |
| | | label: '所属部门', |
| | | prop: 'dept_id', |
| | | hide: true, |
| | | type: 'tree', |
| | |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: '请输入所属单位', |
| | | message: '请输入所属部门', |
| | | trigger: 'blur', |
| | | }, |
| | | ], |
| | |
| | | label: '设备类型', |
| | | editDisplay: false, |
| | | prop: 'type', |
| | | type: 'radio', |
| | | labelWidth: 130, |
| | | value: 0, |
| | | type: 'select', |
| | | dicData: [ |
| | | { |
| | | label: '机场', |
| | | label: '机巢', |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: '遥控器', |
| | | label: '控制器', |
| | | value: 1 |
| | | } |
| | | ], |
| | |
| | | width: 200, |
| | | }, |
| | | { |
| | | label: '设备位置',// '行政区划', |
| | | prop: 'area_code', |
| | | type: 'cascader', |
| | | 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', |
| | | rules: [ |
| | | 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', |
| | | 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() |
| | | } |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: '设备描述',// '工作空间描述', |
| | | prop: 'workspace_desc', |
| | | labelWidth: 130, |
| | | // search: true, |
| | | searchSpan: 4, |
| | | // editDisabled: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: '请输入设备描述', |
| | | trigger: 'blur', |
| | | }, |
| | | ], |
| | | }, |
| | | |
| | | { |
| | | label: '创建时间', |
| | | prop: 'create_time', |
| | |
| | | format: 'YYYY-MM-DD HH:mm:ss', |
| | | |
| | | }, |
| | | |
| | | { |
| | | label: '设备描述', // '工作空间描述', |
| | | prop: 'workspace_desc', |
| | | type: 'textarea', |
| | | labelWidth: 130, |
| | | searchSpan: 4, |
| | | overHidden: true, |
| | | minRows: 3, |
| | | maxRows: 5, |
| | | maxlength: 250, |
| | | span: 24, |
| | | showWordLimit: true, |
| | | rules: [ |
| | | { |
| | | 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', |
| | | }, |
| | | ], |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | ], |
| | | }, |
| | |
| | | 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 { |
| | |
| | | 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); |
| | |
| | | console.error('获取行政区划数据失败:', error); |
| | | return []; |
| | | } |
| | | }, |
| | | }, |
| | | findNodeById(tree, id) { |
| | | if (tree.id === id) { |
| | | return tree; |
| | |
| | | try { |
| | | const response = await this.getFullAreaCode(areaCode); |
| | | const codes = response.split(','); |
| | | |
| | | |
| | | // 获取区域树数据 |
| | | const xzqhData = await this.getRegionTreeList(codes[0]); |
| | | if (!xzqhData) return '/'; |
| | | |
| | | |
| | | const names = []; |
| | | for (const code of codes) { |
| | | const node = this.findNodeById(xzqhData, code); |
| | |
| | | copyInfo (row, index) { |
| | | const ipAddress = import.meta.env.VITE_APP_DEVICE_IP |
| | | let params = ` |
| | | host: tcp://${ipAddress} |
| | | 网关地址: tcp://${ipAddress} |
| | | 账号:drone |
| | | 密码:drone@123 |
| | | 组织id:${row.bing_id} |
| | |
| | | } |
| | | }, |
| | | 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), |
| | | } |
| | | }) |
| | | } |
| | |
| | | this.onLoad(this.page, this.query) |
| | | }, |
| | | onLoad (page, params = {}) { |
| | | |
| | | |
| | | const { releaseTimeRange } = this.query |
| | | let values = { |
| | | ...params, |
| | |
| | | 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 |
| | |
| | | this.loading = false |
| | | this.selectionClear() |
| | | }) |
| | | |
| | | |
| | | }, |
| | | treeLoad (tree, treeNode, resolve) { |
| | | var params = { |