修改测试问题

This commit is contained in:
guanj
2026-01-05 11:31:50 +08:00
parent a765cdf9ee
commit 75987c0c6f
7 changed files with 1156 additions and 936 deletions

View File

@@ -3,22 +3,47 @@
<TableHeader> <TableHeader>
<template #select> <template #select>
<el-form-item label="数据分类"> <el-form-item label="数据分类">
<el-select v-model.trim="tableStore.table.params.dataType" multiple filterable collapse-tags <el-select
clearable placeholder="请选择数据分类"> v-model.trim="tableStore.table.params.dataType"
<el-option v-for="item in DataTypeSelect" :key="item.id" :label="item.name" multiple
:value="item.id"></el-option> filterable
collapse-tags
clearable
placeholder="请选择数据分类"
>
<el-option
v-for="item in DataTypeSelect"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="数据存储"> <el-form-item label="数据存储">
<el-select v-model.trim="tableStore.table.params.classId" multiple filterable collapse-tags <el-select
clearable placeholder="请选择数据存储"> v-model.trim="tableStore.table.params.classId"
<el-option v-for="item in DataSelect" :key="item.id" :label="item.name" multiple
:value="item.id"></el-option> filterable
collapse-tags
clearable
placeholder="请选择数据存储"
>
<el-option
v-for="item in DataSelect"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="关键字筛选"> <el-form-item label="关键字筛选">
<el-input maxlength="32" show-word-limit v-model.trim="tableStore.table.params.searchValue" <el-input
placeholder="数据名称、别名、展示名称" clearable></el-input> maxlength="32"
show-word-limit
v-model.trim="tableStore.table.params.searchValue"
placeholder="数据名称、别名、展示名称"
clearable
></el-input>
</el-form-item> </el-form-item>
</template> </template>
<template #operation> <template #operation>
@@ -26,7 +51,7 @@
</template> </template>
</TableHeader> </TableHeader>
<Table ref="tableRef" /> <Table ref="tableRef" />
<PopupDictionary ref="popupDictionary"></PopupDictionary> <PopupDictionary ref="popupDictionary" v-if="show" @close="show=false"></PopupDictionary>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@@ -43,6 +68,7 @@ import { Plus } from '@element-plus/icons-vue'
defineOptions({ defineOptions({
name: 'govern/manage/basic/dictionary' name: 'govern/manage/basic/dictionary'
}) })
const show = ref(false)
const popupDictionary = ref() const popupDictionary = ref()
const dictData = useDictData() const dictData = useDictData()
const DataSelect = dictData.getBasicData('Data') const DataSelect = dictData.getBasicData('Data')
@@ -53,7 +79,9 @@ const tableStore = new TableStore({
method: 'POST', method: 'POST',
column: [ column: [
{ {
title: '序号', width: 80, formatter: (row: any) => { title: '序号',
width: 80,
formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1 return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
} }
}, },
@@ -83,7 +111,10 @@ const tableStore = new TableStore({
icon: 'el-icon-EditPen', icon: 'el-icon-EditPen',
render: 'basicButton', render: 'basicButton',
click: row => { click: row => {
popupDictionary.value.open('编辑字典', row) show.value = true
setTimeout(() => {
popupDictionary.value.open('编辑字典', row)
}, 100)
} }
}, },
{ {
@@ -131,6 +162,9 @@ onMounted(() => {
tableStore.index() tableStore.index()
}) })
const addMenu = () => { const addMenu = () => {
popupDictionary.value.open('新增字典') show.value = true
setTimeout(() => {
popupDictionary.value.open('新增字典')
}, 100)
} }
</script> </script>

View File

@@ -1,5 +1,5 @@
<template> <template>
<el-dialog class="cn-operate-dialog" v-model.trim="dialogVisible" :title="title"> <el-dialog class="cn-operate-dialog" v-model.trim="dialogVisible" :title="title" @close=" emit('close')">
<el-scrollbar> <el-scrollbar>
<div style="padding-left: 50px"> <div style="padding-left: 50px">
<el-divider content-position="center">基础数据</el-divider> <el-divider content-position="center">基础数据</el-divider>
@@ -7,127 +7,239 @@
<el-form :model="form" label-width="140px" ref="formRef" class="form-two" :rules="rules"> <el-form :model="form" label-width="140px" ref="formRef" class="form-two" :rules="rules">
<el-form-item label="数据分类:" prop="dataType"> <el-form-item label="数据分类:" prop="dataType">
<el-select v-model.trim="form.dataType" filterable clearable placeholder="请选择数据分类"> <el-select v-model.trim="form.dataType" filterable clearable placeholder="请选择数据分类">
<el-option v-for="item in DataTypeSelect" :key="item.id" :label="item.name" <el-option
:value="item.id"></el-option> v-for="item in DataTypeSelect"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="数据名称:" prop="name"> <el-form-item label="数据名称:" prop="name">
<el-input maxlength="32" show-word-limit v-model.trim="form.name" autocomplete="off" <el-input
placeholder="请输入数据名称"></el-input> maxlength="32"
show-word-limit
v-model.trim="form.name"
autocomplete="off"
placeholder="请输入数据名称"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="别名:" prop="otherName"> <el-form-item label="别名:" prop="otherName">
<el-input maxlength="32" show-word-limit v-model.trim="form.otherName" autocomplete="off" <el-input
placeholder="请输入别名"></el-input> maxlength="32"
show-word-limit
v-model.trim="form.otherName"
autocomplete="off"
placeholder="请输入别名"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="展示名称:" prop="showName"> <el-form-item label="展示名称:" prop="showName">
<el-input maxlength="32" show-word-limit v-model.trim="form.showName" autocomplete="off" <el-input
placeholder="请输入展示名称"></el-input> maxlength="32"
show-word-limit
v-model.trim="form.showName"
autocomplete="off"
placeholder="请输入展示名称"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="相别:" prop="phase"> <el-form-item label="相别:" prop="phase">
<el-select v-model.trim="form.phase" filterable clearable placeholder="请选择相别"> <el-select v-model.trim="form.phase" filterable clearable placeholder="请选择相别">
<el-option v-for="item in phaseSelect" :key="item.id" :label="item.name" <el-option
:value="item.id"></el-option> v-for="item in phaseSelect"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="单位:" prop="unit"> <el-form-item label="单位:" prop="unit">
<el-input maxlength="32" show-word-limit v-model.trim="form.unit" autocomplete="off" <el-input
placeholder="请输入单位"></el-input> maxlength="32"
show-word-limit
v-model.trim="form.unit"
autocomplete="off"
placeholder="请输入单位"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="基础数据类型:" prop="type"> <el-form-item label="基础数据类型:" prop="type">
<el-input maxlength="32" show-word-limit v-model.trim="form.type" autocomplete="off" <el-input
placeholder="请输入基础数据类型"></el-input> maxlength="32"
show-word-limit
v-model.trim="form.type"
autocomplete="off"
placeholder="请输入基础数据类型"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="开始结束次数:" prop="harmStart"> <el-form-item label="开始结束次数:" prop="harmStart">
<el-slider v-model.trim="form.harm" range show-stops :max="50" style="width: 95%" /> <el-slider v-model.trim="form.harm" range show-stops :max="50" style="width: 95%" />
</el-form-item> </el-form-item>
<el-form-item label="统计方法:" prop="statMethod"> <el-form-item label="统计方法:" prop="statMethod">
<el-select v-model.trim="form.statMethod" multiple collapse-tags collapse-tags-tooltip filterable <el-select
clearable placeholder="请选择统计方法"> v-model.trim="form.statMethod"
<el-option v-for="item in StatMethodSelect" :key="item.id" :label="item.name" multiple
:value="item.id"></el-option> collapse-tags
collapse-tags-tooltip
filterable
clearable
placeholder="请选择统计方法"
>
<el-option
v-for="item in StatMethodSelect"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="数据存储:" prop="classId"> <el-form-item label="数据存储:" prop="classId">
<el-select v-model.trim="form.classId" filterable clearable placeholder="请选择数据存储"> <el-select v-model.trim="form.classId" filterable clearable placeholder="请选择数据存储">
<el-option v-for="item in DataSelect" :key="item.code" :label="item.name" <el-option
:value="item.id"></el-option> v-for="item in DataSelect"
:key="item.code"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="报表数据来源:" prop="resourcesId"> <el-form-item label="报表数据来源:" prop="resourcesId">
<el-select v-model.trim="form.resourcesId" filterable clearable placeholder="请选择报表数据来源"> <el-select v-model.trim="form.resourcesId" filterable clearable placeholder="请选择报表数据来源">
<el-option v-for="item in ResourcesIdSelect" :key="item.code" :label="item.name" <el-option
:value="item.id"></el-option> v-for="item in ResourcesIdSelect"
:key="item.code"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="序号:" prop="sort"> <el-form-item label="序号:" prop="sort">
<el-input maxlength="32" show-word-limit type="number" v-model.trim="form.sort" autocomplete="off" <el-input
placeholder="请输入序号"></el-input> maxlength="32"
show-word-limit
type="number"
v-model.trim="form.sort"
autocomplete="off"
placeholder="请输入序号"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="限值名称:" prop="limitName"> <el-form-item label="限值名称:" prop="limitName">
<el-input maxlength="32" show-word-limit type="text" v-model.trim="form.limitName" <el-input
autocomplete="off" placeholder="请输入限值名称"></el-input> maxlength="32"
show-word-limit
type="text"
v-model.trim="form.limitName"
autocomplete="off"
placeholder="请输入限值名称"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="限值表名:" prop="limitTable"> <el-form-item label="限值表名:" prop="limitTable">
<el-input maxlength="32" show-word-limit type="text" v-model.trim="form.limitTable" <el-input
autocomplete="off" placeholder="请输入限值表名"></el-input> maxlength="32"
show-word-limit
type="text"
v-model.trim="form.limitTable"
autocomplete="off"
placeholder="请输入限值表名"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="超标判断方式:" prop="formula"> <el-form-item label="超标判断方式:" prop="formula">
<el-select v-model.trim="form.formula" filterable clearable placeholder="请选择超标判断方式"> <el-select v-model.trim="form.formula" filterable clearable placeholder="请选择超标判断方式">
<el-option v-for="item in FormulaSelect" :key="item.code" :label="item.name" <el-option
:value="item.id"></el-option> v-for="item in FormulaSelect"
:key="item.code"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div style="padding-left: 50px"> <div style="padding-left: 50px">
<el-divider content-position="center">拓展数据</el-divider> <el-divider content-position="center">拓展数据</el-divider>
</div> </div>
<el-form class="form-two" :model="form" label-width="140px" ref="formRef2" :rules="rules"> <el-form class="form-two" :model="form" label-width="140px" ref="formRef2">
<el-form-item label="告警码(缺省值):" > <el-form-item label="告警码(缺省值):">
<el-input maxlength="32" show-word-limit v-model.trim="form.defaultValue" autocomplete="off" <el-input
placeholder="请输入告警码(缺省值)"></el-input> maxlength="32"
show-word-limit
v-model.trim="form.defaultValue"
autocomplete="off"
placeholder="请输入告警码(缺省值)"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="事件类别:" > <el-form-item label="事件类别:">
<el-input maxlength="32" show-word-limit v-model.trim="form.eventType" autocomplete="off" <el-input
placeholder="请输入事件类别"></el-input> maxlength="32"
show-word-limit
v-model.trim="form.eventType"
autocomplete="off"
placeholder="请输入事件类别"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="设置最大值:" > <el-form-item label="设置最大值:">
<el-input maxlength="32" show-word-limit type="number" v-model.trim="form.maxNum" autocomplete="off" <el-input
placeholder="请输入设置最大值"></el-input> maxlength="32"
show-word-limit
type="number"
v-model.trim="form.maxNum"
autocomplete="off"
placeholder="请输入设置最大值"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="设置最小值:" > <el-form-item label="设置最小值:">
<el-input maxlength="32" show-word-limit type="number" v-model.trim="form.minNum" autocomplete="off" <el-input
placeholder="请输入设置最小值"></el-input> maxlength="32"
show-word-limit
type="number"
v-model.trim="form.minNum"
autocomplete="off"
placeholder="请输入设置最小值"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="枚举序列:"> <el-form-item label="枚举序列:">
<el-input maxlength="32" show-word-limit v-model.trim="form.setValue" autocomplete="off" <el-input
placeholder="请输入枚举序列"></el-input> maxlength="32"
show-word-limit
v-model.trim="form.setValue"
autocomplete="off"
placeholder="请输入枚举序列"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="字符串长度上限:" > <el-form-item label="字符串长度上限:">
<el-input maxlength="32" show-word-limit type="number" v-model.trim="form.strlen" autocomplete="off" <el-input
placeholder="请输入字符串长度上限"></el-input> maxlength="32"
show-word-limit
type="number"
v-model.trim="form.strlen"
autocomplete="off"
placeholder="请输入字符串长度上限"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="上送规则:" > <el-form-item label="上送规则:">
<el-input maxlength="32" show-word-limit v-model.trim="form.tranRule" autocomplete="off" <el-input
placeholder="请输入上送规则"></el-input> maxlength="32"
show-word-limit
v-model.trim="form.tranRule"
autocomplete="off"
placeholder="请输入上送规则"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="是否可远程控制:" > <el-form-item label="是否可远程控制:">
<el-radio v-model.trim="form.ctlSts" :label="1"></el-radio> <el-radio v-model.trim="form.ctlSts" :label="1"></el-radio>
<el-radio v-model.trim="form.ctlSts" :label="0"></el-radio> <el-radio v-model.trim="form.ctlSts" :label="0"></el-radio>
</el-form-item> </el-form-item>
<el-form-item label="是否需遥控校验:" > <el-form-item label="是否需遥控校验:">
<el-radio v-model.trim="form.curSts" :label="1"></el-radio> <el-radio v-model.trim="form.curSts" :label="1"></el-radio>
<el-radio v-model.trim="form.curSts" :label="0"></el-radio> <el-radio v-model.trim="form.curSts" :label="0"></el-radio>
</el-form-item> </el-form-item>
<el-form-item label="是否存储:" > <el-form-item label="是否存储:">
<el-radio v-model.trim="form.storeFlag" :label="1"></el-radio> <el-radio v-model.trim="form.storeFlag" :label="1"></el-radio>
<el-radio v-model.trim="form.storeFlag" :label="0"></el-radio> <el-radio v-model.trim="form.storeFlag" :label="0"></el-radio>
</el-form-item> </el-form-item>
<el-form-item label="是否加密:" > <el-form-item label="是否加密:">
<el-radio v-model.trim="form.storeFlag" :label="1"></el-radio> <el-radio v-model.trim="form.storeFlag" :label="1"></el-radio>
<el-radio v-model.trim="form.storeFlag" :label="0"></el-radio> <el-radio v-model.trim="form.storeFlag" :label="0"></el-radio>
</el-form-item> </el-form-item>
<el-form-item label="数据是否上送:" > <el-form-item label="数据是否上送:">
<el-radio v-model.trim="form.tranFlag" :label="1"></el-radio> <el-radio v-model.trim="form.tranFlag" :label="1"></el-radio>
<el-radio v-model.trim="form.tranFlag" :label="0"></el-radio> <el-radio v-model.trim="form.tranFlag" :label="0"></el-radio>
</el-form-item> </el-form-item>
@@ -135,7 +247,7 @@
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button> <el-button @click="dialogVisible = false; emit('close')">取消</el-button>
<el-button type="primary" @click="submit">确认</el-button> <el-button type="primary" @click="submit">确认</el-button>
</span> </span>
</template> </template>
@@ -148,7 +260,7 @@ import TableStore from '@/utils/tableStore'
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
import { useDictData } from '@/stores/dictData' import { useDictData } from '@/stores/dictData'
import { addCsDictData, updateCsDictData } from '@/api/system-boot/csDictData' import { addCsDictData, updateCsDictData } from '@/api/system-boot/csDictData'
const emit = defineEmits(['close'])
const formRef = ref() const formRef = ref()
const formRef2 = ref() const formRef2 = ref()
const dictData = useDictData() const dictData = useDictData()
@@ -279,16 +391,21 @@ const open = (text: string, data?: anyObj) => {
// console.log(form) // console.log(form)
} }
const submit = async () => { const submit = async () => {
form.harmStart = form.harm[0] formRef.value.validate(async (valid: any) => {
form.harmEnd = form.harm[1] if (valid) {
if (form.id) { form.harmStart = form.harm[0]
await updateCsDictData(form) form.harmEnd = form.harm[1]
} else { if (form.id) {
await addCsDictData(form) await updateCsDictData(form)
} } else {
ElMessage.success('保存成功') await addCsDictData(form)
tableStore.index() }
dialogVisible.value = false ElMessage.success('保存成功')
tableStore.index()
dialogVisible.value = false
emit('close')
}
})
} }
defineExpose({ open }) defineExpose({ open })

View File

@@ -1,6 +1,11 @@
<template> <template>
<el-dialog class="cn-operate-dialog" width="800px" v-model.trim="dialogVisible" :title="title"> <el-dialog
class="cn-operate-dialog"
width="800px"
v-model.trim="dialogVisible"
:title="title"
@close="emit('closePopup')"
>
<el-form class="form-two" :model="form" label-width="100px" ref="formRef" :rules="rules"> <el-form class="form-two" :model="form" label-width="100px" ref="formRef" :rules="rules">
<el-form-item label="装置类型:" prop="type"> <el-form-item label="装置类型:" prop="type">
<!-- <el-select v-model.trim="form.type" filterable placeholder="请选择" @change="typeChange"> <!-- <el-select v-model.trim="form.type" filterable placeholder="请选择" @change="typeChange">
@@ -8,52 +13,103 @@
:value="item.id"></el-option> :value="item.id"></el-option>
</el-select> --> </el-select> -->
<el-select v-model.trim="form.type" placeholder="请选择装置类型" @change="formDevTypeChange" clearable> <el-select v-model.trim="form.type" placeholder="请选择装置类型" @change="formDevTypeChange" clearable>
<el-option v-for="item in devTypeOptions" :key="item.value" :label="item.label" <el-option
:value="item.value"></el-option> v-for="item in devTypeOptions"
</el-select> :key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="装置型号:" prop="devType"> <el-form-item label="装置型号:" prop="devType">
<!-- <el-select v-model.trim="form.devType" placeholder="请选择" filterable @change="devTypeChange"> <!-- <el-select v-model.trim="form.devType" placeholder="请选择" filterable @change="devTypeChange">
<el-option v-for="item in DevTypeOptions" :key="item.id" :label="item.name" <el-option v-for="item in DevTypeOptions" :key="item.id" :label="item.name"
:value="item.id"></el-option> :value="item.id"></el-option>
</el-select> --> </el-select> -->
<el-select v-model.trim="form.devType" filterable placeholder="请选择装置型号" clearable @change="devTypeChange"> <el-select
<el-option v-for="item in formDevModelOptionsFilter" :key="item.value" :label="item.label" v-model.trim="form.devType"
:value="item.value"></el-option> filterable
</el-select> placeholder="请选择装置型号"
clearable
@change="devTypeChange"
>
<el-option
v-for="item in formDevModelOptionsFilter"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="版本号:" prop="versionNo"> <el-form-item label="版本号:" prop="versionNo">
<el-input maxlength="32" show-word-limit v-model.trim="form.versionNo" autocomplete="off" <el-input
placeholder="请输入版本号"></el-input> maxlength="32"
show-word-limit
v-model.trim="form.versionNo"
autocomplete="off"
placeholder="请输入版本号"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="版本类型:" prop="versionType"> <el-form-item label="版本类型:" prop="versionType">
<el-input maxlength="32" show-word-limit v-model.trim="form.versionType" autocomplete="off" <el-input
placeholder="填写特殊类型(不填默认通用类型)"></el-input> maxlength="32"
show-word-limit
v-model.trim="form.versionType"
autocomplete="off"
placeholder="填写特殊类型(不填默认通用类型)"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="版本协议:" prop="versionAgreement"> <el-form-item label="版本协议:" prop="versionAgreement">
<el-input maxlength="32" show-word-limit v-model.trim="form.versionAgreement" autocomplete="off" <el-input
placeholder="请输入版本协议"></el-input> maxlength="32"
show-word-limit
v-model.trim="form.versionAgreement"
autocomplete="off"
placeholder="请输入版本协议"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="版本日期:" prop="versionDate"> <el-form-item label="版本日期:" prop="versionDate">
<el-date-picker v-model.trim="form.versionDate" type="date" value-format="YYYY-MM-DD" <el-date-picker
placeholder="选择日期时间" style="width: 100%"></el-date-picker> v-model.trim="form.versionDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="选择日期时间"
style="width: 100%"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="CRC校验:" prop="crcInfo"> <el-form-item label="CRC校验:" prop="crcInfo">
<el-input maxlength="32" show-word-limit v-model.trim="form.crcInfo" autocomplete="off" <el-input
placeholder="请输入CRC校验"></el-input> maxlength="32"
show-word-limit
v-model.trim="form.crcInfo"
autocomplete="off"
placeholder="请输入CRC校验"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-form :model="form" label-width="100px" class="mt10"> <el-form :model="form" label-width="100px" class="mt10">
<el-form-item label="描述:" prop="description"> <el-form-item label="描述:" prop="description">
<el-input maxlength="300":autosize="{ minRows: 2, maxRows: 4 }" type="textarea" show-word-limit v-model.trim="form.description" autocomplete="off" <el-input
placeholder="请输入描述"></el-input> maxlength="300"
:autosize="{ minRows: 2, maxRows: 4 }"
type="textarea"
show-word-limit
v-model.trim="form.description"
autocomplete="off"
placeholder="请输入描述"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="升级文件:" prop="file"> <el-form-item label="升级文件:" prop="file">
<el-upload :limit="1" :auto-upload="false" :on-change="fileChange" :on-exceed="fileExceed" :on-remove="fileRemove" <el-upload
:file-list="fileList"> :limit="1"
<el-button type="primary">点击上传</el-button> :auto-upload="false"
:on-change="fileChange"
:on-exceed="fileExceed"
:on-remove="fileRemove"
:file-list="fileList"
>
<el-button type="primary">点击上传</el-button>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
</el-form> </el-form>
@@ -67,20 +123,20 @@
</el-dialog> </el-dialog>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, inject,computed } from 'vue' import { ref, inject, computed } from 'vue'
import { reactive } from 'vue' import { reactive } from 'vue'
import TableStore from '@/utils/tableStore' import TableStore from '@/utils/tableStore'
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
import { queryByCode, queryByid, queryCsDictTree } from '@/api/system-boot/dictTree' import { queryByCode, queryByid, queryCsDictTree } from '@/api/system-boot/dictTree'
import { addEdData, auditEdData } from '@/api/cs-device-boot/edData' import { addEdData, auditEdData } from '@/api/cs-device-boot/edData'
const emit = defineEmits(['closePopup'])
const TypeOptions = ref() const TypeOptions = ref()
const DevTypeAllOptions = ref() const DevTypeAllOptions = ref()
const DevTypeOptions = ref() const DevTypeOptions = ref()
const devTypeOptions: any = ref([]) const devTypeOptions: any = ref([])
const devModelOptions: any = ref([]) const devModelOptions: any = ref([])
const fileList:any = ref([]) const fileList: any = ref([])
const tableStore = inject('tableStore') as TableStore const tableStore = inject('tableStore') as TableStore
const formRef = ref() const formRef = ref()
const form = reactive<any>({ const form = reactive<any>({
@@ -97,8 +153,8 @@ const form = reactive<any>({
file: [] file: []
}) })
const rules = { const rules = {
type: [{ required: true, message: '装置类型不能为空', trigger: 'blur' }], type: [{ required: true, message: '装置类型不能为空', trigger: 'change' }],
devType: [{ required: true, message: '装置型号不能为空', trigger: 'blur' }], devType: [{ required: true, message: '装置型号不能为空', trigger: 'change' }],
versionNo: [{ required: true, message: '版本号不能为空', trigger: 'blur' }], versionNo: [{ required: true, message: '版本号不能为空', trigger: 'blur' }],
versionType: [{ required: true, message: '版本类型不能为空', trigger: 'blur' }], versionType: [{ required: true, message: '版本类型不能为空', trigger: 'blur' }],
versionAgreement: [{ required: true, message: '版本协议不能为空', trigger: 'blur' }], versionAgreement: [{ required: true, message: '版本协议不能为空', trigger: 'blur' }],
@@ -156,15 +212,15 @@ const formDevModelOptionsFilter = computed(() => {
}) })
}) })
const fileChange = (e: any) => { const fileChange = (e: any) => {
form.file = e.raw form.file = e.raw
fileList.value = [e.raw]
} }
const fileExceed = (e: any) => { const fileExceed = (e: any) => {
ElMessage.error('只能上传一个文件') ElMessage.error('只能上传一个文件')
} }
const fileRemove = (e: any) => { const fileRemove = (e: any) => {
form.file = null form.file = null
fileList.value = []
} }
const formDevTypeChange = (e: any) => { const formDevTypeChange = (e: any) => {
if (!e) { if (!e) {
@@ -203,11 +259,11 @@ const open = (text: string, data?: anyObj) => {
} }
const submit = () => { const submit = () => {
if (fileList.value.length == 0) {
if(form?.file == null){
ElMessage.warning('请上传升级文件') ElMessage.warning('请上传升级文件')
return return
} }
// console.log(formRef) // console.log(formRef)
formRef.value.validate(async (valid: boolean) => { formRef.value.validate(async (valid: boolean) => {
// console.log(valid) // console.log(valid)
@@ -224,9 +280,15 @@ const submit = () => {
ElMessage.success('操作成功') ElMessage.success('操作成功')
tableStore.index() tableStore.index()
dialogVisible.value = false dialogVisible.value = false
emit('closePopup')
} }
}) })
} }
defineExpose({ open }) defineExpose({ open })
</script> </script>
<style scoped lang="scss">
:deep(.el-upload-list__item-info) {
width: 600px !important;
}
</style>

View File

@@ -4,8 +4,12 @@
<template #select> <template #select>
<el-form-item label="装置型号:"> <el-form-item label="装置型号:">
<el-select v-model.trim="tableStore.table.params.devType" placeholder="请选择装置型号" clearable> <el-select v-model.trim="tableStore.table.params.devType" placeholder="请选择装置型号" clearable>
<el-option v-for="item in DevTypeOptions" :key="item.id" :label="item.name" <el-option
:value="item.id"></el-option> v-for="item in DevTypeOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</template> </template>
@@ -14,7 +18,7 @@
</template> </template>
</TableHeader> </TableHeader>
<Table ref="tableRef" /> <Table ref="tableRef" />
<PopupVersion ref="popupVersionRef" v-if="showPopup"></PopupVersion> <PopupVersion ref="popupVersionRef" v-if="showPopup" @closePopup="closePopup"></PopupVersion>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@@ -50,16 +54,16 @@ const tableStore = new TableStore({
{ title: '归档日期', field: 'updateTime' }, { title: '归档日期', field: 'updateTime' },
{ title: '描述', field: 'description' }, { title: '描述', field: 'description' },
{ {
title: '状态', field: 'status', render: 'tag', title: '状态',
field: 'status',
render: 'tag',
custom: { custom: {
0: 'error', 0: 'error',
1: 'success', 1: 'success'
}, },
replaceValue: { replaceValue: {
0: '禁用', 0: '禁用',
1: '启用', 1: '启用'
} }
}, },
{ {
@@ -75,7 +79,10 @@ const tableStore = new TableStore({
icon: 'el-icon-EditPen', icon: 'el-icon-EditPen',
render: 'basicButton', render: 'basicButton',
click: row => { click: row => {
popupVersionRef.value.open('编辑版本', row) showPopup.value = true
setTimeout(() => {
popupVersionRef.value.open('编辑版本', row)
}, 100)
} }
}, },
{ {
@@ -137,29 +144,30 @@ const tableStore = new TableStore({
} }
}) })
queryByCode('Device_Type').then(res => { queryByCode('Device_Type').then(res => {
const id = res.data.id const id = res.data.id
queryByid(id).then(res1 => { queryByid(id).then(res1 => {
res1.data.map((item: any, index: any) => { res1.data.map((item: any, index: any) => {
if (item.pid == id) { if (item.pid == id) {
res1.data.splice(index, 1) res1.data.splice(index, 1)
} }
})
console.log("🚀 ~ res1.data.map ~ res1.data:", res1.data)
DevTypeOptions.value = res1.data
}) })
console.log('🚀 ~ res1.data.map ~ res1.data:', res1.data)
DevTypeOptions.value = res1.data
}) })
})
tableStore.table.params.devType = '' tableStore.table.params.devType = ''
provide('tableStore', tableStore) provide('tableStore', tableStore)
onMounted(() => { onMounted(() => {
tableHeaderRef.value.onComSearch() tableHeaderRef.value.onComSearch()
}) })
const addMenu = () => { const addMenu = () => {
showPopup.value = true showPopup.value = true
setTimeout(() => { setTimeout(() => {
popupVersionRef.value.open('新增版本') popupVersionRef.value.open('新增版本')
}, 100) }, 100)
}
const closePopup = () => {
showPopup.value = false
} }
</script> </script>

View File

@@ -29,7 +29,7 @@ const props = defineProps({
const tableStore: any = new TableStore({ const tableStore: any = new TableStore({
url: '/cs-device-boot/csTerminalReply/bzLogs', url: '/cs-device-boot/csTerminalReply/bzLogs',
publicHeight: 0, publicHeight: 10,
method: 'POST', method: 'POST',
column: [ column: [
{ {
@@ -42,7 +42,7 @@ const tableStore: any = new TableStore({
{ {
field: 'engineeringName', field: 'engineeringName',
title: '项目名称', title: '项目名称',
width: 120, width: 100,
formatter: row => { formatter: row => {
return row.cellValue ? row.cellValue : '/' return row.cellValue ? row.cellValue : '/'
} }
@@ -50,7 +50,7 @@ const tableStore: any = new TableStore({
{ {
field: 'projectName', field: 'projectName',
title: '工程名称', title: '工程名称',
width: 120, width: 100,
formatter: row => { formatter: row => {
return row.cellValue ? row.cellValue : '/' return row.cellValue ? row.cellValue : '/'
} }
@@ -58,7 +58,7 @@ const tableStore: any = new TableStore({
{ {
field: 'deviceName', field: 'deviceName',
title: '设备名称', title: '设备名称',
width: 120, width: 100,
formatter: row => { formatter: row => {
return row.cellValue ? row.cellValue : '/' return row.cellValue ? row.cellValue : '/'
} }
@@ -66,7 +66,7 @@ const tableStore: any = new TableStore({
{ {
field: 'lineName', field: 'lineName',
title: '监测点名称', title: '监测点名称',
width: 120, width: 100,
formatter: row => { formatter: row => {
return row.cellValue ? row.cellValue : '/' return row.cellValue ? row.cellValue : '/'
} }
@@ -74,7 +74,7 @@ const tableStore: any = new TableStore({
{ {
field: 'logTime', field: 'logTime',
title: '补召时间', title: '补召时间',
width: 160, width: 150,
formatter: row => { formatter: row => {
return row.cellValue ? row.cellValue : '/' return row.cellValue ? row.cellValue : '/'
} }
@@ -90,7 +90,7 @@ const tableStore: any = new TableStore({
{ {
field: 'status', field: 'status',
title: '状态', title: '状态',
width: 80, width: 90,
formatter: row => { formatter: row => {
return row.cellValue ? row.cellValue : '/' return row.cellValue ? row.cellValue : '/'
} }
@@ -98,7 +98,7 @@ const tableStore: any = new TableStore({
{ {
field: 'result', field: 'result',
title: '结果', title: '结果',
minWidth: 200,
formatter: row => { formatter: row => {
return row.cellValue ? row.cellValue : '/' return row.cellValue ? row.cellValue : '/'
} }

View File

@@ -18,7 +18,7 @@
type="text" type="text"
clearable clearable
placeholder="用户名" placeholder="用户名"
autocomplete="off"
> >
<template #prefix> <template #prefix>
<span class="iconfont icon-yonghu" style="color: var(--el-color-primary)"></span> <span class="iconfont icon-yonghu" style="color: var(--el-color-primary)"></span>
@@ -33,10 +33,9 @@
type="password" type="password"
clearable clearable
placeholder="密码" placeholder="密码"
autocomplete="off" show-password
> >
<template #prefix> <template #prefix>
<!-- <Icon name="local-password" style="color: var(--el-color-primary); font-size: 16px" /> -->
<span class="iconfont icon-mima" style="color: var(--el-color-primary)"></span> <span class="iconfont icon-mima" style="color: var(--el-color-primary)"></span>
</template> </template>
</el-input> </el-input>