3列弹出框
This commit is contained in:
@@ -1,12 +1,8 @@
|
||||
<template>
|
||||
<el-dialog v-model='dialogVisible' :title='dialogTitle' v-bind="dialogBig" @close="close">
|
||||
<el-form :model='formContent' ref='dialogFormRef' :rules='rules'>
|
||||
|
||||
<el-form :model='formContent' ref='dialogFormRef' :rules='rules' label-width="auto" class="form-three">
|
||||
<el-divider>基础数据</el-divider>
|
||||
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="8">
|
||||
<el-form-item label='数据模型' :label-width='140' prop='dataType'>
|
||||
<el-form-item label='数据模型' prop='dataType'>
|
||||
<el-select v-model="formContent.dataType" clearable placeholder="请选择数据模型">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('Cs_Data_Type')"
|
||||
@@ -16,14 +12,10 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='指标名称' :label-width='140' prop='name'>
|
||||
<el-form-item label='指标名称' prop='name'>
|
||||
<el-input v-model='formContent.name' placeholder='请输入指标名称' autocomplete='off'/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='相别' :label-width='140' prop='phase'>
|
||||
<el-form-item label='相别' prop='phase'>
|
||||
<el-select v-model="formContent.phase" clearable placeholder="请选择相别">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('phase')"
|
||||
@@ -33,33 +25,19 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="8">
|
||||
<el-form-item label='显示名称' :label-width='140' prop='showName'>
|
||||
<el-form-item label='显示名称' prop='showName'>
|
||||
<el-input v-model='formContent.showName' placeholder='请输入显示名称' autocomplete='off'/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='别名' :label-width='140' prop='otherName'>
|
||||
<el-form-item label='别名' prop='otherName'>
|
||||
<el-input v-model='formContent.otherName' placeholder='请输入别名' autocomplete='off'/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='单位' :label-width='140' prop='unit'>
|
||||
<el-form-item label='单位' prop='unit'>
|
||||
<el-select v-model="formContent.unit" clearable placeholder="请选择单位">
|
||||
<el-option v-for="item in dictStore.getDictData('Unit_Type')" :key="item.id" :label="item.name"
|
||||
:value="item.code"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="8">
|
||||
<el-form-item label='指标数据类型' :label-width='140' prop='type'>
|
||||
<el-form-item label='指标数据类型' prop='type'>
|
||||
<el-select v-model="formContent.type" clearable placeholder="请选择指标数据类型">
|
||||
<el-option
|
||||
:label="'Number'"
|
||||
@@ -75,22 +53,18 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='次数' :label-width='140'>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="11">
|
||||
<el-input v-model="formContent.harmStart" placeholder="起始次数" autocomplete="off"/>
|
||||
</el-col>
|
||||
<el-col :span="2">-</el-col>
|
||||
<el-col :span="11">
|
||||
<el-input v-model="formContent.harmEnd" placeholder="结束次数" autocomplete="off"/>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label='次数'>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="11">
|
||||
<el-input v-model="formContent.harmStart" placeholder="起始次数" autocomplete="off" width="100px" />
|
||||
</el-col>
|
||||
<el-col :span="2" style="text-align: center;">—</el-col>
|
||||
<el-col :span="11">
|
||||
<el-input v-model="formContent.harmEnd" placeholder="结束次数" autocomplete="off" width="100px"/>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='数据统计类型' :label-width='140' prop='statMethod'>
|
||||
<el-form-item label='数据统计类型' prop='statMethod'>
|
||||
<el-select v-model="selectedStatMethods" multiple placeholder="请选择数据统计类型">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('Stat_Method')"
|
||||
@@ -100,17 +74,11 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="8">
|
||||
<el-form-item label='系统类别' :label-width='140' prop='systemType'>
|
||||
<el-form-item label='系统类别' prop='systemType'>
|
||||
<el-input v-model='formContent.systemType' placeholder='请输入系统类别' autocomplete='off'/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='报表数据来源' :label-width='140' prop='resourcesId'>
|
||||
<el-form-item label='报表数据来源' prop='resourcesId'>
|
||||
<el-select v-model="formContent.resourcesId" clearable placeholder="请选择报表数据来源">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('Data_Day')"
|
||||
@@ -120,9 +88,7 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='数据表表名' :label-width='140' prop='classId'>
|
||||
<el-form-item label='数据表表名' prop='classId'>
|
||||
<el-select v-model="formContent.classId" clearable placeholder="请选择数据表表名">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('Data')"
|
||||
@@ -132,22 +98,13 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="8">
|
||||
<el-form-item label='限值字段名称' :label-width='140' prop='limitName'>
|
||||
<el-form-item label='限值字段名称' prop='limitName'>
|
||||
<el-input v-model='formContent.limitName' placeholder='请输入限值字段名称' autocomplete='off'/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='限值表名' :label-width='140' prop='limitTable'>
|
||||
<el-form-item label='限值表名' prop='limitTable'>
|
||||
<el-input v-model='formContent.limitTable' placeholder='请输入限值表名' autocomplete='off'/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='超标判断方式' :label-width='140' prop='formula'>
|
||||
<el-form-item label='超标判断方式' prop='formula'>
|
||||
<el-select v-model="formContent.formula" clearable placeholder="请选择超标判断方式">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('Limit_Value_Judgment')"
|
||||
@@ -157,102 +114,58 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="24">
|
||||
<el-form-item label='排序' :label-width='140'>
|
||||
<el-input-number v-model='formContent.sort' :min='1' :max='999'/>
|
||||
<el-form-item label='排序' >
|
||||
<el-input-number v-model='formContent.sort' :min='1' :max='999' style="width: 300px;"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-divider>拓展数据</el-divider>
|
||||
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="8">
|
||||
<el-form-item label='参数缺省值' :label-width='140' prop='defaultValue'>
|
||||
<el-form-item label='参数缺省值' prop='defaultValue'>
|
||||
<el-input v-model='formContent.defaultValue' placeholder='请输入参数缺省值' autocomplete='off'/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='事件类别' :label-width='140' prop='eventType'>
|
||||
<el-form-item label='事件类别' prop='eventType'>
|
||||
<el-input v-model='formContent.eventType' placeholder='请输入事件类别' autocomplete='off'/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='设置最大值' :label-width='140' prop='maxNum'>
|
||||
<el-form-item label='设置最大值' prop='maxNum'>
|
||||
<el-input-number v-model='formContent.maxNum' controls-position="right" style="width: 300px;"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="8">
|
||||
<el-form-item label='设置最小值' :label-width='140' prop='minNum'>
|
||||
<el-form-item label='设置最小值' prop='minNum'>
|
||||
<el-input-number v-model='formContent.minNum' controls-position="right" style="width: 300px;"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='枚举序列' :label-width='140' prop='setValue'>
|
||||
<el-form-item label='枚举序列' prop='setValue'>
|
||||
<el-input v-model='formContent.setValue' placeholder='请输入枚举序列' autocomplete='off'/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='字符串长度上限' :label-width='140' prop='strlen'>
|
||||
<el-form-item label='字符串长度上限' prop='strlen'>
|
||||
<el-input-number v-model='formContent.strlen' controls-position="right" style="width: 300px;"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="8">
|
||||
<el-form-item label='上送规则' :label-width='140' prop='tranRule'>
|
||||
<el-form-item label='上送规则' prop='tranRule'>
|
||||
<el-input v-model='formContent.tranRule' placeholder='请输入上送规则' autocomplete='off'/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='当前值' :label-width='140' prop='curSts'>
|
||||
<el-form-item label='当前值' prop='curSts'>
|
||||
<el-input v-model='formContent.curSts' placeholder='请输入当前值' autocomplete='off'/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='二次值转一次值公式' :label-width='140' prop='primaryFormula'>
|
||||
<el-form-item label='二次值转一次值公式' prop='primaryFormula'>
|
||||
<el-input v-model='formContent.primaryFormula' placeholder='请输入公式' autocomplete='off'/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="是否可远程控制" :label-width="140">
|
||||
<el-form-item label="是否可远程控制" >
|
||||
<el-radio-group v-model="formContent.ctlSts">
|
||||
<el-radio label="是" :value="1"></el-radio>
|
||||
<el-radio label="否" :value="0"></el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="是否存储" :label-width="140">
|
||||
<el-form-item label="是否存储" >
|
||||
<el-radio-group v-model="formContent.storeFlag">
|
||||
<el-radio label="是" :value="1"></el-radio>
|
||||
<el-radio label="否" :value="0"></el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="数据是否上送" :label-width="140">
|
||||
<el-form-item label="数据是否上送" >
|
||||
<el-radio-group v-model="formContent.tranFlag">
|
||||
<el-radio label="是" :value="1"></el-radio>
|
||||
<el-radio label="否" :value="0"></el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</el-form>
|
||||
|
||||
<template #footer>
|
||||
<div class='dialog-footer'>
|
||||
<el-button @click='close()'>取消</el-button>
|
||||
@@ -270,7 +183,6 @@ import {ElMessage, type FormItemRule} from 'element-plus'
|
||||
import {addDictPq, updateDictPq} from '@/api/system/dictionary/dictPq'
|
||||
import {computed, reactive, type Ref, ref} from 'vue';
|
||||
import {useDictStore} from '@/stores/modules/dict'
|
||||
import selectCheckBox from "@/views/system/dictionary/dictPq/components/selectCheckBox.vue";
|
||||
const dictStore = useDictStore()
|
||||
const selectedStatMethods = ref<string[]>([])
|
||||
// 定义弹出组件元信息
|
||||
|
||||
@@ -1,121 +0,0 @@
|
||||
<template>
|
||||
|
||||
<el-select
|
||||
v-model="menusTitle"
|
||||
multiple
|
||||
collapse-tags
|
||||
collapse-tags-tooltip
|
||||
:placeholder="props.placeholder"
|
||||
clearable
|
||||
@clear="clearData"
|
||||
:popper-append-to-body="false"
|
||||
>
|
||||
<!-- @change="changeSelectMenu" -->
|
||||
<el-checkbox v-model="checkedAll" @change="selectAll">全选</el-checkbox>
|
||||
<el-option
|
||||
v-for="(item, index) in menuList"
|
||||
:key="item[props.id]"
|
||||
:value="item[props.id]"
|
||||
>
|
||||
<el-checkbox
|
||||
:label="item[props.label]"
|
||||
size="large"
|
||||
@change="changeCheckBox(item, index)"
|
||||
:checked="isChecked(item, index)"
|
||||
v-model="checkBoxObj[index]"
|
||||
/>
|
||||
</el-option>
|
||||
</el-select>
|
||||
|
||||
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, reactive, defineProps, defineEmits } from "vue";
|
||||
const props = defineProps({
|
||||
list: { type: Array, required: true },
|
||||
id: { type: String, required: true },
|
||||
label: { type: String, required: true },
|
||||
modelValue: { type: Array },
|
||||
placeholder: { type: String, default: "选择" },
|
||||
});
|
||||
const emit = defineEmits(["update:modelValue"]);
|
||||
const value = ref("");
|
||||
const checkedAll = ref("false");
|
||||
const menus = ref([]);
|
||||
const menuList = props.list;
|
||||
const checkBoxObj = ref({});
|
||||
menuList.forEach((res, index) => {
|
||||
checkBoxObj.value[index] = false;
|
||||
});
|
||||
const menusTitle = ref([]);
|
||||
const changeSelectMenu = (val) => {};
|
||||
const selectAll = (value) => {
|
||||
menus.value = [];
|
||||
menusTitle.value = [];
|
||||
if (value) {
|
||||
menuList.forEach((item, index) => {
|
||||
menus.value.push(item[props.id]);
|
||||
menusTitle.value.push(item[props.label]);
|
||||
checkBoxObj.value[index] = true;
|
||||
});
|
||||
} else {
|
||||
menus.value = [];
|
||||
menusTitle.value = [];
|
||||
menuList.forEach((item, index) => {
|
||||
checkBoxObj.value[index] = false;
|
||||
});
|
||||
}
|
||||
emit("update:modelValue", menus.value);
|
||||
};
|
||||
const isChecked = (item) => {
|
||||
return menus.value.indexOf(item[props.id]) > -1;
|
||||
};
|
||||
const changeCheckBox = (item, index) => {
|
||||
let i = menus.value.indexOf(item[props.id]);
|
||||
if (i == -1) {
|
||||
menus.value.push(item[props.id]);
|
||||
menusTitle.value.push(item[props.label]);
|
||||
} else {
|
||||
menus.value.splice(i, 1);
|
||||
menusTitle.value.splice(i, 1);
|
||||
}
|
||||
if (menus.value.length == menuList.length) {
|
||||
checkedAll.value = true;
|
||||
} else {
|
||||
checkedAll.value = false;
|
||||
}
|
||||
emit("update:modelValue", menus.value);
|
||||
};
|
||||
const clearData = () => {
|
||||
menus.value = [];
|
||||
menusTitle.value = [];
|
||||
emit("update:modelValue", menus.value);
|
||||
checkedAll.value = false;
|
||||
menuList.forEach((item, index) => {
|
||||
checkBoxObj.value[index] = false;
|
||||
});
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.el-select-dropdown {
|
||||
.el-checkbox {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-left: 20px;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.el-select-dropdown__item {
|
||||
// background-color: red !important;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
.el-select-dropdown.is-multiple .el-select-dropdown__item.is-selected::after{
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user