我叫洪圣文

This commit is contained in:
2026-05-15 16:36:50 +08:00
parent b6006e0dfe
commit 6687cf0339
36 changed files with 2201 additions and 271 deletions

View File

@@ -26,8 +26,8 @@
<el-form-item v-if="!isSimpleMode" label="网络设备 ID" prop="ndid">
<el-input v-model="localForm.ndid" maxlength="64" clearable placeholder="请输入网络设备 ID" />
</el-form-item>
<el-form-item label="装置 MAC 地址" prop="mac">
<el-input v-model="localForm.mac" maxlength="64" clearable placeholder="请输入装置 MAC 地址" />
<el-form-item label="装置网络参数" prop="mac">
<el-input v-model="localForm.mac" maxlength="64" clearable placeholder="请输入装置网络参数" />
</el-form-item>
<el-form-item label="装置类型" prop="dev_type">
<el-select v-model="localForm.dev_type" clearable placeholder="请选择装置类型">
@@ -156,7 +156,7 @@ const isSimpleMode = computed(() => props.mode === 'simple')
const formRules = computed<FormRules<AddLedger.EquipmentForm>>(() => ({
name: [{ required: true, message: '请输入装置名称', trigger: 'blur' }],
...(isSimpleMode.value ? {} : { ndid: [{ required: true, message: '请输入网络设备 ID', trigger: 'blur' }] }),
mac: [{ required: true, message: '请输入装置 MAC 地址', trigger: 'blur' }],
mac: [{ required: true, message: '请输入装置网络参数', trigger: 'blur' }],
dev_model: [{ required: true, message: '请选择装置型号', trigger: 'change' }]
}))

View File

@@ -90,6 +90,7 @@ import {
} from '@/api/tools/addLedger'
import type { AddLedger } from '@/api/tools/addLedger/interface'
import { useDictStore } from '@/stores/modules/dict'
import { DICT_CODES } from '@/constants/dictCodes'
import LedgerTreePanel from './components/LedgerTreePanel.vue'
import LedgerContextPanel from './components/LedgerContextPanel.vue'
import {
@@ -126,7 +127,7 @@ type LedgerContextItem<T> = {
draft?: boolean
}
type LedgerDictCode = 'ledger_device_type' | 'ledger_device_model'
type LedgerDictCode = typeof DICT_CODES.LEDGER_DEVICE_TYPE | typeof DICT_CODES.LEDGER_DEVICE_MODEL
const dictStore = useDictStore()
const treeData = ref<AddLedger.NormalizedTreeNode[]>([])
@@ -169,8 +170,8 @@ const activeTabIds = reactive({
line: ''
})
const ledgerDictOptions = reactive<Record<LedgerDictCode, AddLedger.SelectOption[]>>({
ledger_device_type: [],
ledger_device_model: []
[DICT_CODES.LEDGER_DEVICE_TYPE]: [],
[DICT_CODES.LEDGER_DEVICE_MODEL]: []
})
let detailRequestSeq = 0
@@ -186,14 +187,14 @@ const fallbackDeviceModelOptions: AddLedger.SelectOption[] = [
{ label: 'PQS680', value: 'pqs680' }
]
const deviceTypeOptions = computed(() => resolveDictOptions('ledger_device_type', fallbackDeviceTypeOptions))
const deviceModelOptions = computed(() => resolveDictOptions('ledger_device_model', fallbackDeviceModelOptions))
const deviceTypeOptions = computed(() => resolveDictOptions(DICT_CODES.LEDGER_DEVICE_TYPE, fallbackDeviceTypeOptions))
const deviceModelOptions = computed(() => resolveDictOptions(DICT_CODES.LEDGER_DEVICE_MODEL, fallbackDeviceModelOptions))
const emptyStateText = computed(() =>
treeData.value.length === 0 ? '台账树为空,请先新增一个工程。' : '从左侧台账树选择工程、项目、设备或监测点。'
)
const resolveFallbackDictOptions = (code: LedgerDictCode) =>
code === 'ledger_device_type' ? fallbackDeviceTypeOptions : fallbackDeviceModelOptions
code === DICT_CODES.LEDGER_DEVICE_TYPE ? fallbackDeviceTypeOptions : fallbackDeviceModelOptions
const resolveCachedDictOptions = (code: LedgerDictCode) => {
const dictData = dictStore.getDictData(code)
@@ -236,8 +237,8 @@ const ensureLedgerDictOptionById = async (code: LedgerDictCode, value: string) =
const ensureEquipmentDictOptions = async (form: AddLedger.EquipmentForm) => {
await Promise.all([
ensureLedgerDictOptionById('ledger_device_type', form.dev_type || ''),
ensureLedgerDictOptionById('ledger_device_model', form.dev_model || '')
ensureLedgerDictOptionById(DICT_CODES.LEDGER_DEVICE_TYPE, form.dev_type || ''),
ensureLedgerDictOptionById(DICT_CODES.LEDGER_DEVICE_MODEL, form.dev_model || '')
])
}
@@ -252,8 +253,8 @@ const loadLedgerDictOptionsByCode = (code: LedgerDictCode) => {
}
const loadLedgerDictOptions = async () => {
loadLedgerDictOptionsByCode('ledger_device_type')
loadLedgerDictOptionsByCode('ledger_device_model')
loadLedgerDictOptionsByCode(DICT_CODES.LEDGER_DEVICE_TYPE)
loadLedgerDictOptionsByCode(DICT_CODES.LEDGER_DEVICE_MODEL)
}
const getCurrentPath = () => {