414 lines
14 KiB
Vue
414 lines
14 KiB
Vue
<template>
|
|
<el-drawer :title="titleMap[mode]" v-model="visible" :size="1000" destroy-on-close @closed="$emit('closed')">
|
|
<el-container v-loading="loading">
|
|
<el-main style="padding: 0 20px 20px 20px">
|
|
<el-form ref="dialogForm" :model="form" :rules="rules" :disabled="mode == 'show'" label-width="100px">
|
|
<el-row>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="责任部门">
|
|
<el-cascader v-model="form.belong_dept" :options="group" :props="groupsProps" clearable
|
|
:show-all-levels="false" style="width: 100%" @change="deptChange">
|
|
</el-cascader>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="所属工段">
|
|
<el-select v-model="form.mgroup" placeholder="所属工段" clearable style="width: 100%">
|
|
<el-option v-for="item in mgroups" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="设备名称" prop="name">
|
|
<el-input v-model="form.name" placeholder="设备名称" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="设备编号" prop="number">
|
|
<el-input v-model="form.number" placeholder="设备编号" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24" v-if="form.type == 10">
|
|
<el-form-item
|
|
label="表明工段运行的方式"
|
|
label-width="160"
|
|
>
|
|
<el-select
|
|
v-model="form.indicate_mgroup_running"
|
|
style="width: 100%"
|
|
clearable
|
|
@clear="() => { form.indicate_mgroup_running=null } "
|
|
>
|
|
<el-option
|
|
v-for="e in iMEnum.values"
|
|
:key="e.key"
|
|
:value="e.key"
|
|
:label="e.text"
|
|
></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="规格型号" prop="model">
|
|
<el-input v-model="form.model" placeholder="规格型号" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="8" :sm="24">
|
|
<el-form-item label="设备状态">
|
|
<el-select style="width: 100%" v-model="form.state" 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-col>
|
|
<el-col :md="8" :sm="24">
|
|
<el-form-item label="设备分类">
|
|
<el-select v-model="form.cate" placeholder="所属大类" clearable style="width: 100%">
|
|
<el-option v-for="item in cateOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="8" :sm="24">
|
|
<el-form-item label="是否删除">
|
|
<el-switch v-model="form.is_deleted" style="--el-switch-on-color: #FF0000;"/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-divider v-if="form.type == 50"/>
|
|
<el-row v-if="form.type == 50">
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="IP地址" prop="ip">
|
|
<el-input v-model="form.ip" placeholder="设备IP地址" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="端口号" prop="port">
|
|
<el-input v-model="form.port" placeholder="设备端口号" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="登录账号" prop="login_name">
|
|
<el-input v-model="form.login_name" placeholder="设备登录名" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="登录密码" prop="login_pwd">
|
|
<el-input v-model="form.login_pwd" placeholder="设备登录密码" />
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-divider/>
|
|
<el-row>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="生产厂">
|
|
<el-input v-model="form.factory" placeholder="生产厂" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="设备重要性">
|
|
<el-select style="width: 100%" v-model="form.importance" placeholder="请选择">
|
|
<el-option v-for="item in importace" :key="item.label" :label="item.label" :value="item.value">
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="出厂编号">
|
|
<el-input placeholder="出厂编号" v-model="form.number_factory"/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="购置日期">
|
|
<el-date-picker v-model="form.buy_date" type="date" placeholder="选择日期" value-format="YYYY-MM-DD"
|
|
style="width:100%">
|
|
</el-date-picker>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="启用日期">
|
|
<el-date-picker v-model="form.use_date" type="date" placeholder="启用日期" value-format="YYYY-MM-DD"
|
|
style="width:100%">
|
|
</el-date-picker>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="用电功率">
|
|
<el-input-number v-model="form.power_kw" :precision="2" :min="0" controls-position="right"
|
|
placeholder="用电功率" /><span style="margin-left:10px">(Kw)</span>
|
|
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="责任人" prop="leader_name">
|
|
<span style="display:flex">
|
|
<el-input readonly v-model="form.keeper"></el-input>
|
|
<ehsUserSelect :multiple="false" @submit="getReceptionist" />
|
|
</span>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="存放位置">
|
|
<el-input v-model="form.place" placeholder="存放位置" />
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="简要技术参数">
|
|
<el-input type="textarea" :rows="3" v-model="form.parameter" placeholder="技术参数" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="维修记录">
|
|
<el-input type="textarea" :rows="3" v-model="form.description" placeholder="维修记录" />
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-divider/>
|
|
<el-row v-if="form.type==20">
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="仪表类型">
|
|
<el-input v-model="form.meter_type" placeholder="仪表类型" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="量程范围">
|
|
<el-input v-model="form.measurement_range" placeholder="量范" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="管理等级">
|
|
<el-input v-model="form.management_level" placeholder="管理等级" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="精度等级">
|
|
<el-input v-model="form.accuracy_level" placeholder="精度等级" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :md="12" :sm="24">
|
|
<el-form-item label="检定周期(月)">
|
|
<el-input-number v-model="form.cycle" :precision="1" :min="0" controls-position="right"
|
|
style="width: 100%;" placeholder="检定周期(月)" />
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-divider v-if="form.type==20"/>
|
|
<el-row>
|
|
<el-col>
|
|
<el-form-item label="技术参数">
|
|
<el-button @click="addJsonItem" type="primary" size="small">添加</el-button>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row v-for="(item, $index) in parameter_json" :key="item" :gutter="4">
|
|
<el-col :span="11">
|
|
<el-form-item label="参数名">
|
|
<el-input v-model="item.key" placeholder="参数名" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="11">
|
|
<el-form-item label="参数值">
|
|
<el-input v-model="item.value" placeholder="参数值" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="2">
|
|
<el-button @click="delJsonItem($index)" type="danger" size="small">删除</el-button>
|
|
</el-col>
|
|
</el-row>
|
|
|
|
</el-form>
|
|
</el-main>
|
|
<el-footer>
|
|
<el-button type="primary" :loading="isSaveing" @click="submit">保存</el-button>
|
|
<el-button @click="visible = false">取消</el-button>
|
|
</el-footer>
|
|
</el-container>
|
|
</el-drawer>
|
|
</template>
|
|
<script>
|
|
import { genTree } from "@/utils/verificate";
|
|
import { iMEnum } from "@/utils/enum";
|
|
export default {
|
|
emits: ["success", "closed"],
|
|
props:{
|
|
eqtype:{
|
|
type:String,
|
|
default: ''
|
|
},
|
|
},
|
|
data() {
|
|
return {
|
|
iMEnum,
|
|
cateOptions:[],
|
|
loading: false,
|
|
mode: "add",
|
|
titleMap: {
|
|
add: "新增",
|
|
edit: "编辑",
|
|
show: "查看",
|
|
},
|
|
form: {
|
|
type: 10,
|
|
},
|
|
rules: {
|
|
name: [{ required: true, message: "请输入", trigger: "blur" }],
|
|
number: [{ required: true, message: "请输入", trigger: "blur" }],
|
|
belong_dept: [{ required: true, message: "请选择责任部门", trigger: "blur" }]
|
|
},
|
|
options: [{
|
|
value: 10,
|
|
label: '完好'
|
|
}, {
|
|
value: 20,
|
|
label: '限用'
|
|
}, {
|
|
value: 30,
|
|
label: '在修'
|
|
}, {
|
|
value: 40,
|
|
label: '禁用'
|
|
}],
|
|
importace: [
|
|
{
|
|
value: 10,
|
|
label: 'A'
|
|
},{
|
|
value: 20,
|
|
label: 'B'
|
|
},{
|
|
value: 30,
|
|
label: 'C'
|
|
},
|
|
],
|
|
parameter_json: [
|
|
{ key: '', value: '' }
|
|
],
|
|
visible: false,
|
|
isSaveing: false,
|
|
keeperOptions: [],
|
|
depOptions: [],
|
|
selectionFilters: [],
|
|
setFiltersVisible: false,
|
|
belong_dept_options: [],
|
|
group: [],
|
|
mgroups: [],
|
|
baseInfo: {},
|
|
groupsProps: {
|
|
// value: "id",
|
|
multiple: false,
|
|
emitPath: false,
|
|
checkStrictly: true,
|
|
},
|
|
};
|
|
},
|
|
mounted() {
|
|
this.getGroup();
|
|
this.getBaseInfo();
|
|
this.getCateOptions();
|
|
this.form.type = this.eqtype;
|
|
},
|
|
methods: {
|
|
getCateOptions() {
|
|
let that = this;
|
|
that.$API.em.ecate.list.req({page:0,type:that.eqtype}).then(res => {
|
|
that.cateOptions = res;
|
|
})
|
|
},
|
|
getBaseInfo() {
|
|
this.baseInfo = this.$TOOL.data.get('BASE_INFO').base
|
|
console.log(this.baseInfo)
|
|
},
|
|
//部门数据
|
|
// getGroup() {
|
|
// this.$API.system.dept.list.req({ type: 'dept' }).then(res => {
|
|
// this.group = res.results;
|
|
// });
|
|
// },
|
|
getGroup() {
|
|
let that = this;
|
|
that.$API.system.dept.list.req({ page: 0, type: 'dept' }).then(res => {
|
|
that.group = genTree(res);
|
|
});
|
|
},
|
|
getReceptionist(data) {
|
|
this.form.keeper = data.id;
|
|
this.form.keeper_name = data.name
|
|
},
|
|
deptChange() {
|
|
this.$API.mtm.mgroup.list.req({ page: 0, belong_dept: this.form.belong_dept }).then(res => {
|
|
this.mgroups = res;
|
|
});
|
|
},
|
|
//显示
|
|
open(mode = "add", type) {
|
|
this.mode = mode;
|
|
this.visible = true;
|
|
this.form.type = type;
|
|
return this;
|
|
},
|
|
//表单提交方法
|
|
submit() {
|
|
this.$refs.dialogForm.validate(async (valid) => {
|
|
if (valid) {
|
|
this.isSaveing = true;
|
|
try {
|
|
var res;
|
|
let obj = {};
|
|
this.parameter_json.forEach(item => {
|
|
obj[item.key] = item.value;
|
|
})
|
|
this.form.parameter_json = obj;
|
|
if (this.mode == "add") {
|
|
res = await this.$API.em.equipment.create.req(this.form);
|
|
} else if (this.mode == "edit") {
|
|
res = await this.$API.em.equipment.update.req(
|
|
this.form.id,
|
|
this.form
|
|
);
|
|
}
|
|
this.isSaveing = false;
|
|
this.$emit("success", this.form, this.mode);
|
|
this.visible = false;
|
|
this.$message.success("操作成功");
|
|
return res;
|
|
} catch (err) {
|
|
//可以处理校验错误
|
|
this.isSaveing = false;
|
|
return err;
|
|
}
|
|
}
|
|
});
|
|
},
|
|
addJsonItem() {
|
|
this.parameter_json.push({ key: '', value: '' })
|
|
},
|
|
delJsonItem(index) {
|
|
this.parameter_json.splice(index, 1)
|
|
},
|
|
//表单注入数据
|
|
setData(data) {
|
|
Object.assign(this.form, data);
|
|
if (data.parameter_json != null) {
|
|
let arr = [];
|
|
for (let key in data.parameter_json) {
|
|
let obj = {};
|
|
obj.key = key;
|
|
obj.value = data.parameter_json[key];
|
|
arr.push(obj);
|
|
}
|
|
this.parameter_json = arr;
|
|
this.deptChange()
|
|
}
|
|
},
|
|
//设置过滤项
|
|
setFilters(filters) {
|
|
this.selectionFilters = filters;
|
|
this.setFiltersVisible = true;
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style></style>
|