修改测试BUG

This commit is contained in:
guanj
2026-06-18 16:35:16 +08:00
parent 13f11596e4
commit 8527939eb1
44 changed files with 1329 additions and 953 deletions

View File

@@ -193,14 +193,14 @@
</TableHeader>
<div class="data_time" :style="{
alignItems: realTimeFlag ? 'flex-end' : 'center'
}" v-if="dataSet.includes('_realtimedata') && sonTab != 2 && !realTimeFlag">
<p class="mb10 mt10" >
}" v-if="dataSet.includes('_realtimedata') && sonTab != 2 && !realTimeFlag">
<p class="mb10 mt10">
<span>数据时间:{{ trendDataTime || '-' }}</span>
</p>
<el-button v-if="!realTimeFlag && dataSet.includes('_realtimedata')" style="float: right !important"
:icon="Back" @click="handleReturn" >
:icon="Back" @click="handleReturn">
返回
</el-button>
</div>
@@ -503,7 +503,7 @@ const activeTrendName: any = ref(0)
const trendTimer: any = ref()
const trendDataTime: any = ref()
const showButton = ref(false)
const latestTime=ref('')
const latestTime = ref('')
const decodeMqttPayload = (message: any) => {
try {
return JSON.parse(JSON.stringify(JSON.parse(new TextDecoder().decode(message))))
@@ -552,6 +552,7 @@ const handleTrend = async () => {
})
.catch(e => {
realTrendRef.value && realTrendRef.value.setRealTrendData(false)
harmonicSpectrumRef.value && harmonicSpectrumRef.value.setloading()
tableLoading.value = false
})
@@ -559,8 +560,12 @@ const handleTrend = async () => {
if (res.code == 'A0000') {
realTrendRef.value && realTrendRef.value.setOverLimitData(res.data)
}
}).catch(e => {
realTrendRef.value && realTrendRef.value.setRealTrendData(false)
harmonicSpectrumRef.value && harmonicSpectrumRef.value.setloading()
tableLoading.value = false
})
realTrendRef.value &&
await realTrendRef.value &&
realTrendRef.value.open({ devId: deviceId.value, lineId: lineId.value, activeTrendName: activeTrendName.value })
}
//实时趋势
@@ -632,7 +637,7 @@ const handleSearch = () => {
if (oddAndEvenFlag.value) {
list = list.filter((item: any) => {
let str = item.name.split('次')[0]
if (oddAndEven.value == '1') {
// 奇次
@@ -693,24 +698,25 @@ const nodeClick = async (e: anyObj, node?: any) => {
if (e == undefined) {
return (loading.value = false)
}
if(e.pname?.includes('便携')){
if (e.pname?.includes('便携')) {
deviceType.value = '1'
}else{
} else {
deviceType.value = '2'
}
searchValue.value = ''
deviceId.value = e?.pid
lineId.value = e?.id
TrendList.value = e
if (!e) {
loading.value = false
return
}
//选中设备名称后,点击标签页也能查询数据,要求点击设备名称后,点击标签页默认查询第一个监测点数据
if (e.level == 3) {
searchValue.value = ''
deviceId.value = e?.pid
lineId.value = e?.id
TrendList.value = e
if (!e) {
loading.value = false
return
}
engineeringName.value = node?.parent.parent.data.name
await queryDictType({
@@ -795,7 +801,7 @@ const nodeClick = async (e: anyObj, node?: any) => {
//治理设备和便携式设备切换判断
const deviceType = ref('0')
const pointTypeChange = (val: any, obj: any) => {
nodeClick(obj)
}
const realTimeRef: any = ref()
@@ -1209,7 +1215,7 @@ const handleClick = async (tab?: any) => {
}
//运行趋势
if (dataSet.value.includes('_devRunTrend')) {
tableLoading.value=true
tableLoading.value = true
setTimeout(async () => {
if (tab.props != undefined) await (datePickerRef.value && datePickerRef.value?.setInterval(5))
@@ -1242,13 +1248,13 @@ const handleClick = async (tab?: any) => {
//查询当前指标
if (!dataSet.value.includes('_')) {
formInline.id = dataSet.value
latestTime.value=''
tableData.value=[]
latestTime.value = ''
tableData.value = []
// await deviceRtData(formInline)
await realTimeData(formInline)
.then((res: any) => {
tableData.value = res.data[0].children
latestTime.value=res.data[0].dataTime
latestTime.value = res.data[0].dataTime
formInline.total = res.data.total
let queryListName = queryList.value.filter((item: any) => item.id == formInline.targetType)
let list = tableData.value.filter((item: any) => {

View File

@@ -205,15 +205,17 @@ const buildTMetric = (name: string, items: RawMetricItem[]): DisplayMetric => {
}
const sharedUnit = getSharedUnit(items)
const unitsDiffer = sharedUnit == null && new Set(items.map(item => item.unit ?? null)).size > 1
return {
name,
otherName: name,
unit: getSharedUnit(items),
unit: sharedUnit,
type: 't-multi',
subItems: items.map(item => ({
subTitle: extractSubTitle(item.otherName || item.name || ''),
subTitle: buildTitle(
extractSubTitle(item.otherName || item.name || ''),
item.unit
),
value: item.data,
})),
}

View File

@@ -46,7 +46,7 @@
<Table ref="tableRef"></Table>
<el-dialog :title="dialogTitle" v-model.trim="dialogFormVisible" :close-on-click-modal="false"
:before-close="resetForm" draggable width="40%">
:before-close="resetForm" draggable width="500px">
<el-form :model="form" label-width="120px" :rules="rules" ref="ruleFormRef">
<el-form-item label="设备名称:" prop="name">
<el-input maxlength="32" show-word-limit v-model.trim="form.name" autocomplete="off" clearable

View File

@@ -281,6 +281,9 @@ const resetData = (dataLevel: string) => {
allDataList.value = []
xAixsTimeList.value = []
}
const setloading=()=>{
loading.value = false
}
resetData('Primary')
const mqttMessage: any = ref()
const setHarmonicSpectrumData = (val: any) => {
@@ -414,7 +417,7 @@ const init = () => {
}
onMounted(() => { })
defineExpose({ resetData, setHarmonicSpectrumData })
defineExpose({ resetData, setHarmonicSpectrumData,setloading })
</script>
<style lang="scss" scoped>
.harmonic {

View File

@@ -277,6 +277,7 @@ const init = () => {
return
}
const handleClick = (tab: any, event: any) => {
tableData.value = []
echartsData.value = {}
@@ -305,6 +306,7 @@ const shouldIncludeHarmonicData = (numberPart: number) => {
const setRealTrendData = (val: any) => {
mqttMessage.value = {}
if (!val) {
loading.value = false
return
}
loading.value = true
@@ -338,24 +340,24 @@ const selectChange = () => {
//获取国标限值
const limitData: any = ref()
const setOverLimitData = (val: any) => {
limitData.value = {}
for (let key in val) {
if (activeName.value == 0) {
if (String(key).includes('uharm')) {
if (key.startsWith('uharm')) {
limitData.value[key] = val[key]
}
}
} else if (activeName.value == 1) {
if (String(key).includes('iharm')) {
limitData.value[key] = val[key]
}
} else {
if (String(key).includes('inuharm')) {
limitData.value[key] = val[key]
}
}
}
// limitData.value = {}
// for (let key in val) {
// if (activeName.value == 0) {
// if (String(key).includes('uharm')) {
// if (key.startsWith('uharm')) {
// limitData.value[key] = val[key]
// }
// }
// } else if (activeName.value == 1) {
// if (String(key).includes('iharm')) {
// limitData.value[key] = val[key]
// }
// } else {
// if (String(key).includes('inuharm')) {
// limitData.value[key] = val[key]
// }
// }
// }
}
onMounted(() => {})
defineExpose({ open, setRealTrendData, setOverLimitData })

View File

@@ -1,211 +1,211 @@
<template>
<!-- 测试项日志 -->
<div :style="{ height: height }">
<vxe-table height="auto" auto-resize :data="dataList" v-bind="defaultAttribute" :key="key">
<vxe-column v-for="item in column" :field="item.field" :title="item.title" :formatter="formatter"
:min-width="item.width" :sortable="item.sortable"></vxe-column>
<vxe-column title="操作" fixed="right" width="120" v-if="showButtom">
<template v-slot:default="scoped">
<el-button link type="primary" @click="revise(scoped.row)">修改</el-button>
<el-button link type="danger" @click="remove(scoped.row)">删除</el-button>
</template>
</vxe-column>
</vxe-table>
<el-dialog draggable v-model="dialogVisible" title="修改" width="400" :before-close="handleClose">
<el-form :model="form" ref="ruleFormRef" label-width="auto" class="form-one" :rules="rules">
<el-form-item label="数据起始时间" prop="proStartTime">
<el-date-picker v-model="form.proStartTime" type="datetime" format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择数据起始时间" />
</el-form-item>
<el-form-item label="数据结束时间" prop="proEndTime">
<el-date-picker v-model="form.proEndTime" type="datetime" format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择数据结束时间" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="handleClose">取消</el-button>
<el-button type="primary" @click="handleConfirm">
确定
</el-button>
</template>
</el-dialog>
</div>
</template>
<script setup lang='ts'>
import { mainHeight } from '@/utils/layout'
import { ref, reactive } from 'vue'
import { betweenDay } from '@/utils/formatTime'
import { defaultAttribute } from '@/components/table/defaultAttribute'
import { ElMessageBox, ElMessage } from 'element-plus'
import { activateUser, deluser, passwordConfirm } from '@/api/user-boot/user'
import { useDictData } from '@/stores/dictData'
import { updateRecordData } from '@/api/cs-device-boot/EquipmentDelivery'
import { useAdminInfo } from '@/stores/adminInfo'
const dictData = useDictData()
const voltageLevelList: any = dictData.getBasicData('Dev_Voltage_Stand')
import { deleteItem } from '@/api/cs-device-boot/csGroup'
const volConTypeList = dictData.getBasicData('Dev_Connect')
const emit = defineEmits(['onSubmit'])
const height = mainHeight(295).height
const dataList = ref([])
const key: any = ref(0)
const ruleFormRef = ref()
const adminInfo = useAdminInfo()
const showButtom = ref(adminInfo.roleCode.includes('operation_manager') || adminInfo.roleCode.includes('root'))
const dialogVisible = ref(false)
const column: any = ref([
{ field: 'startTime', title: '数据起始时间', width: '140px', sortable: true },
{ field: 'endTime', title: '数据结束时间', width: '140px', sortable: true },
{ field: 'lastTime', title: '持续时间', width: '140px', sortable: true },
{ field: 'itemName', title: '数据来源', width: '100px' },
{ field: 'statisticalInterval', title: '时间间隔(分钟)', width: '120px', },
{ field: 'voltageLevel', title: '电压等级', width: '100px', sortable: true },
{ field: 'volConType', title: ' 电压接线方式', width: '120px', sortable: true },
{
field: 'pt', title: 'PT', width: '100px',
},
{ field: 'ct', title: 'CT', width: '100px', },
{ field: 'capacitySi', title: '用户协议容量(MVA)', width: '140px', },
{ field: 'capacitySt', title: '供电设备容量(MVA)', width: '140px', },
{ field: 'capacitySscb', title: '基准短路容量(MVA)', width: '140px', },
{ field: 'capacitySscmin', title: '最小短路容量(MVA)', width: '140px', },
// { field: 'location', title: ' 测试位置', width: '100px', },
])
const form = reactive({
proStartTime: '',
proEndTime: '',
id: ''
})
const rules = {
proStartTime: [{ required: true, message: '请输入数据起始时间', trigger: 'blur' }],
proEndTime: [{ required: true, message: '请输入数据结束时间', trigger: 'blur' }],
}
const setData = (data: any) => {
dataList.value = JSON.parse(JSON.stringify(data))
key.value += 1
}
const formatter = (row: any) => {
if (row.column.field == 'voltageLevel') {
return row.cellValue == null ? '/' : voltageLevelList.filter((item: any) => item.id == row.cellValue)[0]?.name
} else if (row.column.field == 'volConType') {
return row.cellValue == null ? '/' : volConTypeList.filter((item: any) => item.id == row.cellValue)[0]?.name
} else {
return row.cellValue == null ? '/' : row.cellValue
}
}
// 取消
const handleClose = () => {
dialogVisible.value = false
}
// 确定
const handleConfirm = () => {
ruleFormRef.value.validate((valid: any) => {
if (valid) {
let data = betweenDay(new Date(form.proStartTime), new Date(form.proEndTime))
if (data < 0) {
ElMessage.warning('数据结束时间不能小于数据起始时间')
} else {
updateRecordData(form).then((res) => {
ElMessage.success(res.message)
dialogVisible.value = false
emit('onSubmit')
})
}
}
})
// dialogVisible.value = false
}
// 删除
const remove = (row: any) => {
ElMessageBox.prompt('二次校验密码确认', '', {
confirmButtonText: '确认',
cancelButtonText: '取消',
customClass: 'customInput',
inputType: 'text',
beforeClose: (action, instance, done) => {
if (action === 'confirm') {
if (instance.inputValue == null) {
return ElMessage.warning('请输入密码')
} else if (instance.inputValue?.length > 32) {
return ElMessage.warning('密码长度不能超过32位,当前密码长度为' + instance.inputValue.length)
} else {
done();
}
} else {
done();
}
}
}).then(({ value }) => {
passwordConfirm(value).then(res => {
console.log('密码正确');
deleteItem({ id: row.id }).then(() => {
ElMessage.success('删除成功')
emit('onSubmit')
})
})
})
}
// 修改
const revise = (row: any) => {
ElMessageBox.prompt('二次校验密码确认', '', {
confirmButtonText: '确认',
cancelButtonText: '取消',
customClass: 'customInput',
inputType: 'text',
beforeClose: (action, instance, done) => {
if (action === 'confirm') {
if (instance.inputValue == null) {
return ElMessage.warning('请输入密码')
} else if (instance.inputValue?.length > 32) {
return ElMessage.warning('密码长度不能超过32位,当前密码长度为' + instance.inputValue.length)
} else {
done();
}
} else {
done();
}
}
}).then(({ value }) => {
passwordConfirm(value).then(res => {
dialogVisible.value = true
form.proStartTime = row.startTime
form.proEndTime = row.endTime
form.id = row.id
})
})
}
defineExpose({ setData })
</script>
<style lang="scss">
.customInput {
.el-input__inner {
-webkit-text-security: disc !important;
}
}
</style>
<template>
<!-- 测试项日志 -->
<div :style="{ height: height }">
<vxe-table height="auto" auto-resize :data="dataList" v-bind="defaultAttribute" :key="key">
<vxe-column v-for="item in column" :field="item.field" :title="item.title" :formatter="formatter"
:min-width="item.width" :sortable="item.sortable"></vxe-column>
<vxe-column title="操作" fixed="right" width="120" v-if="showButtom">
<template v-slot:default="scoped">
<el-button link type="primary" @click="revise(scoped.row)">修改</el-button>
<el-button link type="danger" @click="remove(scoped.row)">删除</el-button>
</template>
</vxe-column>
</vxe-table>
<el-dialog draggable v-model="dialogVisible" title="修改" width="500" :before-close="handleClose">
<el-form :model="form" ref="ruleFormRef" label-width="auto" class="form-one" :rules="rules">
<el-form-item label="数据起始时间" prop="proStartTime">
<el-date-picker v-model="form.proStartTime" type="datetime" format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择数据起始时间" />
</el-form-item>
<el-form-item label="数据结束时间" prop="proEndTime">
<el-date-picker v-model="form.proEndTime" type="datetime" format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择数据结束时间" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="handleClose">取消</el-button>
<el-button type="primary" @click="handleConfirm">
确定
</el-button>
</template>
</el-dialog>
</div>
</template>
<script setup lang='ts'>
import { mainHeight } from '@/utils/layout'
import { ref, reactive } from 'vue'
import { betweenDay } from '@/utils/formatTime'
import { defaultAttribute } from '@/components/table/defaultAttribute'
import { ElMessageBox, ElMessage } from 'element-plus'
import { activateUser, deluser, passwordConfirm } from '@/api/user-boot/user'
import { useDictData } from '@/stores/dictData'
import { updateRecordData } from '@/api/cs-device-boot/EquipmentDelivery'
import { useAdminInfo } from '@/stores/adminInfo'
const dictData = useDictData()
const voltageLevelList: any = dictData.getBasicData('Dev_Voltage_Stand')
import { deleteItem } from '@/api/cs-device-boot/csGroup'
const volConTypeList = dictData.getBasicData('Dev_Connect')
const emit = defineEmits(['onSubmit'])
const height = mainHeight(295).height
const dataList = ref([])
const key: any = ref(0)
const ruleFormRef = ref()
const adminInfo = useAdminInfo()
const showButtom = ref(adminInfo.roleCode.includes('operation_manager') || adminInfo.roleCode.includes('root'))
const dialogVisible = ref(false)
const column: any = ref([
{ field: 'startTime', title: '数据起始时间', width: '140px', sortable: true },
{ field: 'endTime', title: '数据结束时间', width: '140px', sortable: true },
{ field: 'lastTime', title: '持续时间', width: '140px', sortable: true },
{ field: 'itemName', title: '数据来源', width: '100px' },
{ field: 'statisticalInterval', title: '时间间隔(分钟)', width: '120px', },
{ field: 'voltageLevel', title: '电压等级', width: '100px', sortable: true },
{ field: 'volConType', title: ' 电压接线方式', width: '120px', sortable: true },
{
field: 'pt', title: 'PT', width: '100px',
},
{ field: 'ct', title: 'CT', width: '100px', },
{ field: 'capacitySi', title: '用户协议容量(MVA)', width: '140px', },
{ field: 'capacitySt', title: '供电设备容量(MVA)', width: '140px', },
{ field: 'capacitySscb', title: '基准短路容量(MVA)', width: '140px', },
{ field: 'capacitySscmin', title: '最小短路容量(MVA)', width: '140px', },
// { field: 'location', title: ' 测试位置', width: '100px', },
])
const form = reactive({
proStartTime: '',
proEndTime: '',
id: ''
})
const rules = {
proStartTime: [{ required: true, message: '请输入数据起始时间', trigger: 'blur' }],
proEndTime: [{ required: true, message: '请输入数据结束时间', trigger: 'blur' }],
}
const setData = (data: any) => {
dataList.value = JSON.parse(JSON.stringify(data))
key.value += 1
}
const formatter = (row: any) => {
if (row.column.field == 'voltageLevel') {
return row.cellValue == null ? '/' : voltageLevelList.filter((item: any) => item.id == row.cellValue)[0]?.name
} else if (row.column.field == 'volConType') {
return row.cellValue == null ? '/' : volConTypeList.filter((item: any) => item.id == row.cellValue)[0]?.name
} else {
return row.cellValue == null ? '/' : row.cellValue
}
}
// 取消
const handleClose = () => {
dialogVisible.value = false
}
// 确定
const handleConfirm = () => {
ruleFormRef.value.validate((valid: any) => {
if (valid) {
let data = betweenDay(new Date(form.proStartTime), new Date(form.proEndTime))
if (data < 0) {
ElMessage.warning('数据结束时间不能小于数据起始时间')
} else {
updateRecordData(form).then((res) => {
ElMessage.success(res.message)
dialogVisible.value = false
emit('onSubmit')
})
}
}
})
// dialogVisible.value = false
}
// 删除
const remove = (row: any) => {
ElMessageBox.prompt('二次校验密码确认', '', {
confirmButtonText: '确认',
cancelButtonText: '取消',
customClass: 'customInput',
inputType: 'text',
beforeClose: (action, instance, done) => {
if (action === 'confirm') {
if (instance.inputValue == null) {
return ElMessage.warning('请输入密码')
} else if (instance.inputValue?.length > 32) {
return ElMessage.warning('密码长度不能超过32位,当前密码长度为' + instance.inputValue.length)
} else {
done();
}
} else {
done();
}
}
}).then(({ value }) => {
passwordConfirm(value).then(res => {
console.log('密码正确');
deleteItem({ id: row.id }).then(() => {
ElMessage.success('删除成功')
emit('onSubmit')
})
})
})
}
// 修改
const revise = (row: any) => {
ElMessageBox.prompt('二次校验密码确认', '', {
confirmButtonText: '确认',
cancelButtonText: '取消',
customClass: 'customInput',
inputType: 'text',
beforeClose: (action, instance, done) => {
if (action === 'confirm') {
if (instance.inputValue == null) {
return ElMessage.warning('请输入密码')
} else if (instance.inputValue?.length > 32) {
return ElMessage.warning('密码长度不能超过32位,当前密码长度为' + instance.inputValue.length)
} else {
done();
}
} else {
done();
}
}
}).then(({ value }) => {
passwordConfirm(value).then(res => {
dialogVisible.value = true
form.proStartTime = row.startTime
form.proEndTime = row.endTime
form.id = row.id
})
})
}
defineExpose({ setData })
</script>
<style lang="scss">
.customInput {
.el-input__inner {
-webkit-text-security: disc !important;
}
}
</style>

View File

@@ -32,6 +32,7 @@
title="绑定工程"
class="cn-operate-dialog"
:close-on-click-modal="false"
width="500px"
>
<el-input maxlength="32" show-word-limit

View File

@@ -126,7 +126,7 @@
<!-- <el-empty v-if="dirList.length === 0" /> -->
</div>
<popup ref="fileRef"></popup>
<el-dialog v-model.trim="addDeviceDirOpen" :destroy-on-close="true" title="新建文件夹目录" width="500" @closed="close">
<el-dialog v-model.trim="addDeviceDirOpen" draggable :destroy-on-close="true" title="新建文件夹目录" width="500" @closed="close">
<el-form ref="formRef" :model="form"
:rules="{ path: [{ required: true, message: '请输入文件夹名称', trigger: 'blur' }] }">
<el-form-item label="文件夹名称" prop="path">

View File

@@ -1,7 +1,7 @@
<!-- 设备文件下载 -->
<template>
<div :class="downLoading ? 'all_disabled' : ''">
<el-dialog v-model.trim="dialogVisible" title="文件信息" width="50%" @closed="handleClose">
<el-dialog draggable v-model.trim="dialogVisible" title="文件信息" width="800px" @closed="handleClose">
<div v-loading="loading">
<div

View File

@@ -1,5 +1,5 @@
<template>
<el-dialog class="cn-operate-dialog device-manage-popup" v-model.trim="dialogVisible" title="设备模版分组">
<el-dialog draggable class="cn-operate-dialog device-manage-popup" v-model.trim="dialogVisible" title="设备模版分组" width="500px">
<el-descriptions class="mb10" :column="3" border>
<el-descriptions-item label="名称">
{{ popupData.deviceData.name }}

View File

@@ -55,6 +55,7 @@
draggable
title="绑定工程 / 设备"
class="cn-operate-dialog"
width="800px"
:close-on-click-modal="false"
>
<div class="dialog-content">

View File

@@ -1,14 +1,15 @@
<template>
<el-dialog v-model.trim="dialogVisible" :title="title" draggable
:style="{ width: popupType == 0 || popupType == 1 ? '500px' : '1100px' }">
<el-dialog
:width="(popupType == 0 || popupType == 1) ? '500px' : (popupType == 2 || popupType == 3) ? '800px' : '1100px'"
v-model.trim="dialogVisible" :title="title" draggable>
<!-- 新增方案数据 -->
<el-form :model="form" scroll-to-error label-width="140px" :rules="rules1" ref="ruleFormRef1" class="form-one"
v-if="popupType == 0 || popupType == 1">
<el-form-item label="方案名称:" prop="itemName">
<el-input maxlength="32" show-word-limit v-model.trim="form.itemName" placeholder="请输入方案名称" />
<el-input maxlength="32" show-word-limit v-model.trim="form.itemName" placeholder="请输入方案名称" />
</el-form-item>
<el-form-item label="方案描述:" prop="describe">
<el-input show-word-limit maxlength="300" type="textarea" v-model.trim="form.describe"
<el-input show-word-limit maxlength="300" type="textarea" v-model.trim="form.describe"
placeholder="请输入方案描述" />
</el-form-item>
</el-form>
@@ -18,7 +19,7 @@
<el-form :model="form1" ref="ruleFormRef2" scroll-to-error class="form-two" label-width="140px"
:rules="rules2">
<el-form-item label="测试项名称:" prop="itemName">
<el-input maxlength="32" show-word-limit v-model.trim="form1.itemName" placeholder="请输入测试项名称" />
<el-input maxlength="32" show-word-limit v-model.trim="form1.itemName" placeholder="请输入测试项名称" />
</el-form-item>
<el-form-item label="测量间隔:" prop="statisticalInterval">
<el-select v-model.trim="form1.statisticalInterval" placeholder="请选择测量间隔" clearable
@@ -41,7 +42,7 @@
</el-select>
</el-form-item>
<el-form-item label="最小短路容量:" prop="capacitySscmin">
<el-input maxlength="32" show-word-limit v-model.trim="form1.capacitySscmin" oninput="value=value.replace(/[^\-?\d.]/g,'')
<el-input maxlength="32" show-word-limit v-model.trim="form1.capacitySscmin" oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" autocomplete="off" placeholder="请选择最小短路容量">
<template #append>MVA</template>
@@ -49,7 +50,7 @@
</el-form-item>
<el-form-item label="用户协议容量:" prop="capacitySi">
<el-input maxlength="32" show-word-limit v-model.trim="form1.capacitySi" autocomplete="off"
<el-input maxlength="32" show-word-limit v-model.trim="form1.capacitySi" autocomplete="off"
oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder="请输入用户协议容量">
@@ -58,7 +59,7 @@
</el-form-item>
<el-form-item label="基准短路容量:" prop="capacitySscb">
<el-input maxlength="32" show-word-limit v-model.trim="form1.capacitySscb" oninput="value=value.replace(/[^\-?\d.]/g,'')
<el-input maxlength="32" show-word-limit v-model.trim="form1.capacitySscb" oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder="请输入基准短路容量">
<template #append>MVA</template>
@@ -66,26 +67,26 @@
</el-form-item>
<el-form-item label="供电设备容量:" prop="capacitySt">
<el-input maxlength="32" show-word-limit v-model.trim="form1.capacitySt" oninput="value=value.replace(/[^\-?\d.]/g,'')
<el-input maxlength="32" show-word-limit v-model.trim="form1.capacitySt" oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder="请输入供电设备容量">
<template #append>MVA</template>
</el-input>
</el-form-item>
<el-form-item label="PT变比" prop="pt">
<el-input maxlength="32" show-word-limit style="width: 48%" v-model.number.trim="form1.pt"
<el-input maxlength="32" show-word-limit style="width: 48%" v-model.number.trim="form1.pt"
autocomplete="off" placeholder="请输入PT变比" oninput="value=value.replace(/[^0-9.]/g,'')" />
<el-input maxlength="32" show-word-limit style="width: 48%" v-model.number.trim="form1.pt1"
<el-input maxlength="32" show-word-limit style="width: 48%" v-model.number.trim="form1.pt1"
autocomplete="off" placeholder="请输入PT变比" oninput="value=value.replace(/[^0-9.]/g,'')" />
</el-form-item>
<el-form-item label="CT变比" prop="ct">
<el-input maxlength="32" show-word-limit v-model.number.trim="form1.ct" style="width: 48%"
<el-input maxlength="32" show-word-limit v-model.number.trim="form1.ct" style="width: 48%"
autocomplete="off" oninput="value=value.replace(/[^0-9.]/g,'')" placeholder="请输入CT变比" />
<el-input maxlength="32" show-word-limit v-model.number.trim="form1.ct1" style="width: 48%"
<el-input maxlength="32" show-word-limit v-model.number.trim="form1.ct1" style="width: 48%"
autocomplete="off" oninput="value=value.replace(/[^0-9.]/g,'')" placeholder="请输入CT变比" />
</el-form-item>
<el-form-item label="监测位置:" prop="location" style="width: 100%">
<el-input show-word-limit maxlength="300" type="textarea" v-model.trim="form1.location"
<el-input show-word-limit maxlength="300" type="textarea" v-model.trim="form1.location"
placeholder="请输入监测位置" />
</el-form-item>
</el-form>
@@ -485,10 +486,10 @@ const submit = () => {
let subForm = JSON.parse(JSON.stringify(form1.value))
subForm.list = checkedIdList.value
console.log(title.value.includes('绑定测试项'));
updateRecord(subForm).then((res: any) => {
if (res.code == 'A0000') {
ElMessage.success(title.value.includes('绑定测试项')?'绑定测试项成功':'修改测试项成功')
ElMessage.success(title.value.includes('绑定测试项') ? '绑定测试项成功' : '修改测试项成功')
initForm()
emit('onSubmit')
close()