This commit is contained in:
caoqianming 2024-06-11 11:16:45 +08:00
commit 8c5b926045
4 changed files with 441 additions and 305 deletions

View File

@ -863,7 +863,7 @@ export default {
getUserList() { getUserList() {
let that = this; let that = this;
this.$API.system.user.list this.$API.system.user.list
// .req({ page: 0, belong_dept__name: "" }) // .req({ page: 0,posts__name:'' })
.req({ page: 0 }) .req({ page: 0 })
.then((res) => { .then((res) => {
that.userList = res; that.userList = res;

View File

@ -1,310 +1,446 @@
<template> <template>
<el-dialog <el-dialog
title="性能检验" title="性能检验"
v-model="visible" v-model="visible"
:size="1000" :size="1000"
destroy-on-close destroy-on-close
@closed="$emit('closed')" @closed="$emit('closed')"
> >
<el-container v-loading="loading"> <el-container v-loading="loading">
<el-main style="padding: 0 20px 20px 20px"> <el-main style="padding: 0 20px 20px 20px">
<el-form <el-form
ref="dialogForm" ref="dialogForm"
:model="form" :model="form"
:rules="rules" :rules="rules"
label-width="160px" label-width="160px"
> >
<el-row> <el-row>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="检验类型" prop="testitem"> <el-form-item label="检验类型" prop="testitem">
<el-select <el-select
v-model="form.testitem" v-model="form.testitem"
placeholder="检验类型" placeholder="检验类型"
clearable clearable
style="width:100%" style="width: 100%"
disabled disabled
> >
<el-option <el-option
v-for="item in behaviors" v-for="item in behaviors"
:key="item.id" :key="item.id"
:label="item.name" :label="item.name"
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="实验日期" prop="test_date"> <el-form-item label="实验日期" prop="test_date">
<el-date-picker <el-date-picker
v-model="form.test_date" v-model="form.test_date"
type="date" type="date"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
style="width:100%" style="width: 100%"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="样品编号" prop="sample_number"> <el-form-item label="样品编号" prop="sample_number">
<el-input v-model="form.sample_number"></el-input> <el-input
</el-form-item> v-model="form.sample_number"
</el-col> ></el-input>
<el-col :md="12" :sm="24" v-if="activeName=='透过率'"> </el-form-item>
<el-form-item label="样品厚度/mm" prop="val_hd"> </el-col>
<el-input-number v-model="form.val_hd" :min="0" style="width:100%" controls-position="right"> <el-col :md="12" :sm="24" v-if="activeName == '透过率'">
</el-input-number> <el-form-item label="样品厚度/mm" prop="val_hd">
</el-form-item> <el-input-number
</el-col> v-model="form.val_hd"
<el-col :md="12" :sm="24" v-if="activeName=='中温粘度'||activeName=='膨胀'"> :min="0"
<el-form-item label="规格型号" prop="specification"> style="width: 100%"
<el-input v-model="form.specification"></el-input> controls-position="right"
</el-form-item> >
</el-col> </el-input-number>
<el-col :md="12" :sm="24" v-if="activeName=='析晶'"> </el-form-item>
<el-form-item label="样品数量" prop="sample_count"> </el-col>
<el-input-number v-model="form.sample_count" :min="0" style="width:100%" controls-position="right"> <el-col
</el-input-number> :md="12"
</el-form-item> :sm="24"
</el-col> v-if="
<el-col :md="12" :sm="24" v-if="activeName=='高温粘度'"> activeName == '中温粘度' || activeName == '膨胀'
<el-form-item label="样品密度" prop="sample_density"> "
<el-input v-model="form.sample_density"></el-input> >
</el-form-item> <el-form-item label="规格型号" prop="specification">
</el-col> <el-input
<el-col :md="12" :sm="24"> v-model="form.specification"
<el-form-item label="检验员" prop="test_user"> ></el-input>
<el-select </el-form-item>
v-model="form.test_user" </el-col>
placeholder="检验员" <el-col :md="12" :sm="24" v-if="activeName == '析晶'">
clearable <el-form-item label="样品数量" prop="sample_count">
filterable <el-input-number
style="width:100%" v-model="form.sample_count"
> :min="0"
<el-option style="width: 100%"
v-for="item in userList" controls-position="right"
:key="item.id" >
:label="item.name" </el-input-number>
:value="item.id" </el-form-item>
/> </el-col>
</el-select> <el-col
</el-form-item> :md="12"
</el-col> :sm="24"
<el-col :md="12" :sm="24" v-if="activeName=='析晶'"> v-if="activeName == '高温粘度'"
<el-form-item label="实验温度及保温时间" prop="sample_density"> >
<el-input v-model="form.sample_number"></el-input> <el-form-item
</el-form-item> label="样品密度"
</el-col> prop="sample_density"
<el-col :md="12" :sm="24" v-if="activeName=='高温粘度'"> >
<el-form-item label="升至最高温度/℃" prop="val_zgwd"> <el-input
<el-input-number v-model="form.val_zgwd" :min="0" style="width:100%" controls-position="right"> v-model="form.sample_density"
</el-input-number> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="仪器状态" prop="equip_state"> <el-form-item label="检验员" prop="test_user">
<el-select <el-select
v-model="form.equip_state" v-model="form.test_user"
placeholder="仪器状态" placeholder="检验员"
clearable style="width:100%" clearable
> filterable
<el-option style="width: 100%"
v-for="item in stateOptios" >
:key="item.id" <el-option
:label="item.name" v-for="item in userList"
:value="item.id"> :key="item.id"
</el-option> :label="item.name"
</el-select> :value="item.id"
</el-form-item> />
</el-col> </el-select>
<el-col :md="12" :sm="24" v-if="activeName=='折射率'"> </el-form-item>
<el-form-item label="折射率(589nm)" prop="val_zsl"> </el-col>
<el-input-number v-model="form.val_zsl" :min="0" style="width:100%" controls-position="right"> <el-col :md="12" :sm="24" v-if="activeName == '析晶'">
</el-input-number> <el-form-item
</el-form-item> label="实验温度及保温时间"
</el-col> prop="sample_density"
<el-col :md="12" :sm="24" v-if="activeName=='透过率'"> >
<el-form-item label="透过率(550nm)" prop="val_tgl"> <el-input
<el-input-number v-model="form.val_tgl" :min="0" style="width:100%" controls-position="right"> v-model="form.sample_number"
</el-input-number> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24" v-if="activeName=='中温粘度'"> <el-col
<el-form-item label="Ts/℃" prop="val_ts"> :md="12"
<el-input-number v-model="form.val_ts" :min="0" style="width:100%" controls-position="right"> :sm="24"
</el-input-number> v-if="activeName == '高温粘度'"
</el-form-item> >
</el-col> <el-form-item
<el-col :md="12" :sm="24" v-if="activeName=='膨胀'"> label="升至最高温度/℃"
<el-form-item label="30-300℃膨胀系数" prop="val_pzxs"> prop="val_zgwd"
<el-input-number v-model="form.val_pzxs" :min="0" style="width:100%" controls-position="right"> >
</el-input-number> <el-input-number
</el-form-item> v-model="form.val_zgwd"
</el-col> :min="0"
<el-col :md="12" :sm="24" v-if="activeName=='膨胀'"> style="width: 100%"
<el-form-item label="Tg/℃" prop="val_tg"> controls-position="right"
<el-input-number v-model="form.val_tg" :min="0" style="width:100%" controls-position="right"> >
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24" v-if="activeName=='膨胀'"> <el-col :md="12" :sm="24">
<el-form-item label="Tf/℃" prop="val_tf"> <el-form-item label="仪器状态" prop="equip_state">
<el-input-number v-model="form.val_tf" :min="0" style="width:100%" controls-position="right"> <el-select
</el-input-number> v-model="form.equip_state"
</el-form-item> placeholder="仪器状态"
</el-col> clearable
<el-col :md="12" :sm="24" v-if="activeName=='析晶'"> style="width: 100%"
<el-form-item label="析晶状态" prop="val_xj"> >
<el-select <el-option
v-model="form.val_xj" v-for="item in stateOptios"
placeholder="析晶状态" :key="item.id"
clearable style="width:100%" :label="item.name"
> :value="item.id"
<el-option >
v-for="item in xjOptios" </el-option>
:key="item.id" </el-select>
:label="item.name" </el-form-item>
:value="item.id"> </el-col>
</el-option> <el-col :md="12" :sm="24" v-if="activeName == '折射率'">
</el-select> <el-form-item label="折射率(589nm)" prop="val_zsl">
</el-form-item> <el-input-number
</el-col> v-model="form.val_zsl"
<el-col :md="12" :sm="24"> :min="0"
<el-form-item label="备注"> style="width: 100%"
<el-input v-model="form.note" placeholder="备注"/> controls-position="right"
</el-form-item> >
</el-col> </el-input-number>
</el-row> </el-form-item>
</el-form> </el-col>
</el-main> <el-col :md="12" :sm="24" v-if="activeName == '透过率'">
<el-footer v-if="this.mode!=='show'"> <el-form-item label="透过率(550nm)" prop="val_tgl">
<el-button type="primary" :loading="isSaveing" @click="submit">保存</el-button> <el-input-number
<el-button @click="visible = false">取消</el-button> v-model="form.val_tgl"
</el-footer> :min="0"
</el-container> style="width: 100%"
</el-dialog> controls-position="right"
>
</el-input-number>
</el-form-item>
</el-col>
<el-col
:md="12"
:sm="24"
v-if="activeName == '中温粘度'"
>
<el-form-item label="Ts/℃" prop="val_ts">
<el-input-number
v-model="form.val_ts"
:min="0"
style="width: 100%"
controls-position="right"
>
</el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24" v-if="activeName == '膨胀'">
<el-form-item
label="30-300℃膨胀系数"
prop="val_pzxs"
>
<el-input-number
v-model="form.val_pzxs"
:min="0"
style="width: 100%"
controls-position="right"
>
</el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24" v-if="activeName == '膨胀'">
<el-form-item label="Tg/℃" prop="val_tg">
<el-input-number
v-model="form.val_tg"
:min="0"
style="width: 100%"
controls-position="right"
>
</el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24" v-if="activeName == '膨胀'">
<el-form-item label="Tf/℃" prop="val_tf">
<el-input-number
v-model="form.val_tf"
:min="0"
style="width: 100%"
controls-position="right"
>
</el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24" v-if="activeName == '析晶'">
<el-form-item label="析晶状态" prop="val_xj">
<el-select
v-model="form.val_xj"
placeholder="析晶状态"
clearable
style="width: 100%"
>
<el-option
v-for="item in xjOptios"
: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="备注">
<el-input
v-model="form.note"
placeholder="备注"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-main>
<el-footer v-if="this.mode !== 'show'">
<el-button type="primary" :loading="isSaveing" @click="submit"
>保存</el-button
>
<el-button @click="visible = false">取消</el-button>
</el-footer>
</el-container>
</el-dialog>
</template> </template>
<script> <script>
export default { export default {
emits: ["success", "closed"], emits: ["success", "closed"],
props: { props: {
activeId: { type: String, default: "" }, activeId: { type: String, default: "" },
activeName: { type: String, default: "" }, activeName: { type: String, default: "" },
},
data() {
return {
loading: false,
form: {},
rules: {
belong_dept: [
{
required: true,
message: "请选择所属部门",
trigger: "blur",
},
],
test_date: [
{
required: true,
message: "请选择检验日期",
trigger: "blur",
},
],
test_user: [
{
required: true,
message: "请选择操作人",
trigger: "blur",
},
],
check_user: [
{
required: true,
message: "请选择专检人",
trigger: "blur",
},
],
test_group: [
{
required: true,
message: "请选择检测工序集",
trigger: "blur",
},
],
is_ok: [
{
required: true,
message: "请选择是否合格",
trigger: "blur",
},
],
},
stateOptios: [
{ id: "R", name: "正常" },
{ id: "T", name: "异常" },
],
xjOptios: [
{ id: "S", name: "析晶" },
{ id: "K", name: "不析晶" },
{ id: "θ", name: "未化" },
],
visible: false,
isSaveing: false,
userList: [],
options: [],
processOptions: [],
deptOptions: [],
selectionFilters: [],
setFiltersVisible: false,
belong_dept_options: [],
group: [],
behaviors: [],
};
},
mounted() {
console.log(this.activeId);
console.log(this.activeName);
this.form.testitem = this.activeId;
this.getTextItem();
this.getProcess();
this.getUserList();
this.getDeptOptions();
},
methods: {
//
open(mode = "add") {
this.mode = mode;
this.visible = true;
return this;
},
//
getTextItem() {
let that = this;
that.$API.qm.getTestItem
.get({ tag: "performance", page: 0 })
.then((res) => {
that.behaviors = res;
});
},
//
getDeptOptions() {
this.$API.system.dept.list
.req({ page: 0, type__in: "dept" })
.then((res) => {
this.deptOptions = res;
});
},
//
getUserList() {
let that = this;
this.$API.system.user.list
.req({ page: 0, posts__name: "检验" })
.then((res) => {
that.userList = res;
});
},
getProcess() {
let that = this;
this.$API.mtm.process.list.req({ page: 0 }).then((res) => {
that.processOptions = res;
});
},
handleClick() {},
//
submit() {
this.$refs.dialogForm.validate(async (valid) => {
if (valid) {
this.isSaveing = true;
try {
var res;
if (this.mode == "add") {
res = await this.$API.qm.ptest.create.req(
this.form
);
} else if (this.mode == "edit") {
res = await this.$API.qm.ptest.update.req(
this.form.id,
this.form
);
}
this.isSaveing = false;
this.$emit("success");
this.visible = false;
this.$message.success("操作成功");
} catch (err) {
//
this.isSaveing = false;
return err;
}
}
});
},
//
setData(data) {
Object.assign(this.form, data);
this.form.test_group = this.form.split(",");
},
//
setFilters(filters) {
this.selectionFilters = filters;
this.setFiltersVisible = true;
},
}, },
data() {
return {
loading: false,
form: {
},
rules: {
belong_dept: [{required: true, message: "请选择所属部门", trigger: "blur"}],
test_date: [{required: true, message: "请选择检验日期", trigger: "blur"}],
test_user: [{required: true, message: "请选择操作人", trigger: "blur"}],
check_user: [{required: true, message: "请选择专检人", trigger: "blur"}],
test_group:[{required: true, message: "请选择检测工序集", trigger: "blur"}],
is_ok: [{required: true, message: "请选择是否合格", trigger: "blur"}],
},
stateOptios:[
{id:'R',name:'正常'},
{id:'T',name:'异常'},
],
xjOptios:[
{id:'S',name:'析晶'},
{id:'K',name:'不析晶'},
{id:'θ',name:'未化'},
],
visible: false,
isSaveing: false,
userList:[],
options: [],
processOptions: [],
deptOptions: [],
selectionFilters: [],
setFiltersVisible: false,
belong_dept_options: [],
group: [],
behaviors:[],
};
},
mounted() {
console.log(this.activeId)
console.log(this.activeName)
this.form.testitem = this.activeId;
this.getTextItem();
this.getProcess();
this.getUserList();
this.getDeptOptions();
},
methods: {
//
open(mode = "add") {
this.mode = mode;
this.visible = true;
return this;
},
//
getTextItem(){
let that = this;
that.$API.qm.getTestItem.get({tag:'performance',page:0}).then(res=>{
that.behaviors = res;
})
},
//
getDeptOptions() {
this.$API.system.dept.list.req({ page: 0, type__in: 'dept' }).then((res) => {
this.deptOptions = res;
});
},
//
getUserList(){
let that = this;
this.$API.system.user.list.req({page:0,belong_dept__name:'检验管理部'}).then(res=>{
that.userList = res;
});
},
getProcess(){
let that = this;
this.$API.mtm.process.list.req({page:0}).then(res=>{
that.processOptions = res;
})
},
handleClick(){},
//
submit() {
this.$refs.dialogForm.validate(async (valid) => {
if (valid) {
this.isSaveing = true;
try {
var res;
if (this.mode == "add") {
res = await this.$API.qm.ptest.create.req(this.form);
} else if (this.mode == "edit") {
res = await this.$API.qm.ptest.update.req(this.form.id,this.form);
}
this.isSaveing = false;
this.$emit("success");
this.visible = false;
this.$message.success("操作成功");
} catch (err) {
//
this.isSaveing = false;
return err;
}
}
});
},
//
setData(data) {
Object.assign(this.form, data);
this.form.test_group = this.form.split(',')
},
//
setFilters(filters) {
this.selectionFilters = filters;
this.setFiltersVisible = true;
},
},
}; };
</script> </script>
<style> <style></style>
</style>

View File

@ -280,7 +280,7 @@ export default {
getUserList() { getUserList() {
let that = this; let that = this;
this.$API.system.user.list this.$API.system.user.list
.req({ page: 0, depts__name: "检验管理部" }) .req({ page: 0, posts__name: "检验" })
.then((res) => { .then((res) => {
that.userList = res.results; that.userList = res.results;
}); });

View File

@ -390,7 +390,7 @@ export default {
getUserList() { getUserList() {
let that = this; let that = this;
this.$API.system.user.list this.$API.system.user.list
.req({ page: 0, belong_dept__name: "检验管理部" }) .req({ page: 0, posts__name: "检验" })
.then((res) => { .then((res) => {
that.userList = res; that.userList = res;
}); });