修改测试BUG
This commit is contained in:
@@ -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) => {
|
||||
|
||||
@@ -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,
|
||||
})),
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 })
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
title="绑定工程"
|
||||
class="cn-operate-dialog"
|
||||
:close-on-click-modal="false"
|
||||
width="500px"
|
||||
>
|
||||
<el-input maxlength="32" show-word-limit
|
||||
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 }}
|
||||
|
||||
@@ -55,6 +55,7 @@
|
||||
draggable
|
||||
title="绑定工程 / 设备"
|
||||
class="cn-operate-dialog"
|
||||
width="800px"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div class="dialog-content">
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user