123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- <template>
- <transition name="dialog-fade">
- <el-dialog
- v-if="showDialog"
- :title="dialogTitle"
- class="dialog-component"
- v-model="showDialog"
- width="640px"
- @close="closeDialog(0)"
- >
- <el-form
- ref="formInfo"
- :model="formInfo"
- class="demo-form-inline"
- label-width="100px"
- :rules="rules"
- >
- <el-form-item label="设备名称:" prop="watchName">
- <el-input v-model="formInfo.watchName"></el-input>
- </el-form-item>
- <el-form-item label="设备编号:" prop="watchCode">
- <el-input v-model="formInfo.watchCode"></el-input>
- </el-form-item>
- <el-form-item label="回路表记地址:" prop="routeAddress">
- <el-select
- v-model="formInfo.routeAddress"
- multiple
- filterable
- collapse-tags
- placeholder="请选择"
- >
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="额定电压(kV):" prop="ratedVoltage">
- <el-input v-model="formInfo.ratedVoltage"></el-input>
- <div class="remarksTxt">(数值为线电压)</div>
- </el-form-item>
- <el-form-item label="额定电流(A):" prop="stationAddress">
- <el-input v-model="formInfo.ratedCurrent"></el-input>
- </el-form-item>
- <el-form-item label="电流负载率门限:" prop="fzlMx">
- <el-input v-model="formInfo.fzlMx"></el-input>
- <div class="remarksTxt">(0-100之间的数字)</div>
- </el-form-item>
- <el-form-item label="设备能力:" prop="ability">
- <el-checkbox v-model="checked">电能质量分析</el-checkbox>
- <div class="remarksTxt">(如果未勾选,该设备不参与电能质量分析)</div>
- </el-form-item>
-
- <br />
- <br />
- <br />
- <div style="text-align: right">
- <el-button @click="closeDialog(0)">取消</el-button>
- <el-button type="primary" @click="submitForm('formInfo')"
- >保存</el-button
- >
- </div>
- </el-form>
- </el-dialog>
- </transition>
- </template>
- <script>
- export default {
- name: "DialogComponent",
- props: {
- dialogTitle: {
- type: String,
- default: "新增",
- },
- itemInfo: {
- type: Object,
- default: function () {
- return {};
- },
- },
- },
- data() {
- return {
- checked: true,
- showDialog: false,
- formInfo: JSON.parse(JSON.stringify(this.itemInfo)),
- options: [
- {
- value: "选项1",
- label: "站点一",
- },
- {
- value: "选项2",
- label: "站点二",
- },
- {
- value: "选项3",
- label: "站点三",
- },
- {
- value: "选项4",
- label: "站点四",
- },
- {
- value: "选项5",
- label: "站点五",
- },
- ],
- rules: {
- watchName: [
- // required 是否为必填项, trigger:表单验证的触发时机,失去焦点进行验证
- { required: true, message: "请输入设备名称", trigger: "blur" },
- {
- min: 3,
- max: 6,
- message: "用户名长度在 3 到 6 个字符",
- trigger: "blur",
- },
- ],
- watchCode: [
- { required: true, message: "请输入设备编号", trigger: "blur" },
- {
- min: 3,
- max: 6,
- message: "用户名长度在 3 到 6 个字符",
- trigger: "blur",
- },
- ],
- routeAddress: [
- { required: true, message: "请选则回路表记地址", trigger: "change" },
-
- ],
- ratedVoltage: [
- { required: true, message: '请选择站点列表', trigger: 'change'}
-
- ],
- ratedCurrent: [
- { required: true, message: "请输入已选站点个数", trigger: "blur" },
- { trigger: "blur" },
- ],
- fzlMx: [
- { required: true, message: "请输入挂载设备个数", trigger: "blur" },
- { trigger: "blur" },
- ],
- },
- };
- },
- methods: {
- roleValid(rule, value, callback) {
- rule
- if (value.length === 0) {
- callback(new Error("角色不能为空"));
- } else {
- callback();
- }
- },
- // onSelectedDrug(event) {
- // this.routeAddress = event;
- // console.log(this.routeAddress);
- // },
- // 保存操作
- submitForm(formName) {
- const params = Object.assign(this.formInfo, {});
- params
- this.$refs[formName].validate((valid) => {
- if (valid) {
- // 走保存请求
- this.$message({
- message: "操作成功!",
- type: "success",
- });
- this.closeDialog(1);
- } else {
- return false;
- }
- });
- },
- // 关闭弹框
- closeDialog(flag) {
- this.$refs["formInfo"].resetFields();
- this.showDialog = false;
- this.$emit("closeDialog", flag);
- },
- },
- };
- </script>
-
- <style scoped lang="scss">
- .el-input,
- .el-select {
- width: 240px;
- }
- // label样式
- .el-form-item__label {
- width: 150px
- }
- .el-form-item__content {
- margin-left: 150px
- }
- </style>
|