<script setup>
|
import {ref, reactive, onMounted} from "vue";
|
import {ElLoading, ElMessageBox, ElMessage} from "element-plus";
|
import {setPwrStandParamApi} from "@/api/standardParams.js";
|
import useElement from "@/hooks/useElement.js";
|
const { $loading, $message } = useElement();
|
const formRef = ref();
|
const props = defineProps({
|
info: {
|
type: Object,
|
default() {
|
return {
|
num: 0,
|
standName: "",
|
powerType: 1,
|
paramType: 1,
|
basisVal: 0,
|
alarmLimith: 0,
|
alarmLimithUpper: 0,
|
alarmLimitl: 0,
|
alarmLimitlLower: 0,
|
fileName: "",
|
standFilePath: "",
|
}
|
}
|
}
|
});
|
const emit = defineEmits(["update:close", "success"]);
|
const params = reactive({
|
num: 0,
|
standName: "",
|
powerType: 1,
|
paramType: 1,
|
basisVal: 0,
|
alarmLimith: 0,
|
alarmLimithUpper: 0,
|
alarmLimitl: 0,
|
alarmLimitlLower: 0,
|
fileName: "",
|
standFilePath: "",
|
});
|
const rules = reactive({
|
basisVal: [
|
{
|
required: true,
|
message: "不能为空",
|
trigger: ["blur", "change"],
|
},
|
],
|
alarmLimithUpper: [
|
{
|
required: true,
|
message: "不能为空",
|
trigger: ["blur", "change"],
|
},
|
{
|
validator: validatorHUpper,
|
trigger: ["blur", "change"],
|
}
|
],
|
alarmLimith: [
|
{
|
required: true,
|
message: "不能为空",
|
trigger: ["blur", "change"],
|
},
|
{
|
validator: validatorH,
|
trigger: ["blur", "change"],
|
}
|
],
|
alarmLimitl: [
|
{
|
required: true,
|
message: "不能为空",
|
trigger: ["blur", "change"],
|
},
|
{
|
validator: validatorL,
|
trigger: ["blur", "change"],
|
}
|
],
|
alarmLimitlLower: [
|
{
|
required: true,
|
message: "不能为空",
|
trigger: ["blur", "change"],
|
},
|
{
|
validator: validatorLLower,
|
trigger: ["blur", "change"],
|
}
|
],
|
});
|
const layout = reactive({
|
gutter: 16,
|
span: 12
|
});
|
|
function close() {
|
emit('update:close', false);
|
}
|
|
async function confirm() {
|
let valid = await formRef.value.validate(() => { });
|
|
if (!valid) {
|
$message.error("表单验证失败");
|
return false;
|
}
|
ElMessageBox.confirm(
|
'确认设置标准参数?',
|
'系统提示',
|
{
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'info',
|
}
|
).then(() => {
|
setParams();
|
}).catch(() => {})
|
}
|
async function setParams() {
|
const info = JSON.parse(JSON.stringify(params));
|
const loading = $loading({
|
text: "数据加载中..."
|
});
|
|
try {
|
const rs = await setPwrStandParamApi(info);
|
loading.close();
|
if(rs.code === 1) {
|
ElMessage({
|
message: '设置标准参数成功',
|
type: 'success',
|
});
|
emit('success', true);
|
close();
|
}else{
|
await ElMessageBox.alert("设置标准参数失败!", "系统提示", {
|
confirmButtonText: "确定",
|
});
|
}
|
}catch (e) {
|
console.log(e);
|
loading.close();
|
}
|
}
|
function validatorHUpper(rule, value, callback) {
|
if(value>params.alarmLimith) {
|
callback();
|
}else {
|
callback(new Error('上上限值需大于上限值'));
|
}
|
}
|
|
function validatorH(rule, value, callback) {
|
if(value<params.alarmLimithUpper) {
|
callback();
|
}else {
|
callback(new Error('上限值需小于上上限值'));
|
}
|
}
|
|
function validatorL(rule, value, callback) {
|
if(value>params.alarmLimitlLower) {
|
callback();
|
}else {
|
callback(new Error('下限值需大于下下限值'));
|
}
|
}
|
function validatorLLower(rule, value, callback) {
|
if(value<params.alarmLimitl) {
|
callback();
|
}else {
|
callback(new Error('下下限值需小于下限值'));
|
}
|
}
|
onMounted(()=>{
|
Object.assign(params, props.info);
|
});
|
</script>
|
|
<template>
|
<div class="form-wrapper">
|
<div class="form-content">
|
<el-form ref="formRef" :model="params" label-width="6em" :rules="rules">
|
<el-row :gutter="layout.gutter">
|
<el-col :span="layout.span">
|
<el-form-item label="参数名称:">
|
<el-input v-model="params.standName" :disabled="true"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="基准值:" prop="basisVal">
|
<el-input v-model="params.basisVal"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="上上限:" prop="alarmLimithUpper">
|
<el-input v-model="params.alarmLimithUpper"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="下下限:" prop="alarmLimitlLower">
|
<el-input v-model="params.alarmLimitlLower"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="上限:" prop="alarmLimith">
|
<el-input v-model="params.alarmLimith"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="layout.span">
|
<el-form-item label="下限:" prop="alarmLimitl">
|
<el-input v-model="params.alarmLimitl"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
</div>
|
<div class="form-footer">
|
<el-button type="primary" @click="confirm">确定</el-button>
|
<el-button type="danger" @click="close">取消</el-button>
|
</div>
|
</div>
|
</template>
|
|
<style scoped lang="less">
|
.form-wrapper {
|
width: 520px;
|
.form-footer {
|
text-align: right;
|
}
|
}
|
</style>
|