<template>
|
<el-dialog
|
:title="dialogTitle"
|
:visible.sync="dialogVisible"
|
width="40%"
|
@close="closeDialog"
|
:close-on-click-modal="false"
|
>
|
<el-form :model="form" :rules="rules" ref="form" label-position="top">
|
<el-row :gutter="20">
|
<el-col :span="10">
|
<el-form-item label="接种操作人" prop="thisName">
|
<el-input disabled v-model="form.thisName"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="10">
|
<el-form-item label="接种操作时间" prop="thisTime">
|
<el-input disabled v-model="form.thisTime"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="10">
|
<el-form-item label="传代菌种编号" prop="strainCode1">
|
<el-input disabled v-model="form.strainCode1"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="10">
|
<el-form-item label="传代菌种名称" prop="strainName1">
|
<el-input disabled v-model="form.strainName1"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="10">
|
<el-form-item label="接种菌种编号" prop="strainCode">
|
<el-input
|
:disabled="dialogTitle.includes('详情')"
|
v-model="form.strainCode"
|
placeholder="请输入"
|
></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="10">
|
<el-form-item label="接种菌种名称" prop="strainName">
|
<el-input
|
:disabled="dialogTitle.includes('详情')"
|
v-model="form.strainName"
|
placeholder="请输入"
|
></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-form-item label="保存/废弃">
|
<div class="flex-row">
|
<div :class="form.status === 1 && 'active'" @click="handleStatus(1)">
|
保存
|
</div>
|
<div :class="form.status === 2 && 'active'" @click="handleStatus(2)">
|
废弃
|
</div>
|
</div>
|
</el-form-item>
|
<el-row :gutter="20">
|
<el-col :span="10">
|
<el-form-item v-if="form.status === 2" label="废弃原因说明" required>
|
<el-input
|
:disabled="dialogTitle.includes('详情')"
|
v-model="form.discardReason"
|
placeholder="请输入"
|
></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row :gutter="20">
|
<el-col :span="10">
|
<el-form-item label="菌种入库时间" prop="confirmTime" >
|
<el-input disabled v-model="form.confirmTime"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row v-if="!dialogTitle.includes('新增')" :gutter="20">
|
<el-col v-if="form.vaccinateSignature" :span="10">
|
<el-form-item label="接种操作人签字">
|
<el-image :src="form.vaccinateSignature" />
|
</el-form-item>
|
</el-col>
|
<el-col v-if="form.preserveSignature" :span="10">
|
<el-form-item label="菌种保藏人签字">
|
<el-image :src="form.preserveSignature" />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
<div v-if="!dialogTitle.includes('详情')" class="dialog-footer">
|
<el-button type="primary" @click="handleSubmit">提交签字</el-button>
|
</div>
|
</el-dialog>
|
</template>
|
|
<script>
|
import moment from 'moment';
|
export default {
|
data() {
|
return {
|
dialogVisible: false,
|
dialogTitle: "",
|
form: {
|
thisName: "",
|
thisTime: "",
|
strainCode: "",
|
strainName: "",
|
strainCode1: "",
|
strainName1: "",
|
status: 1,
|
confirmTime: "",
|
discardReason: "",
|
},
|
rules: {
|
thisName: [
|
{ required: true, message: "请输入接种操作人", trigger: "blur" },
|
],
|
thisTime: [
|
{ required: true, message: "请输入接种操作时间", trigger: "blur" },
|
],
|
strainCode: [
|
{ required: true, message: "请输入传代菌种编号", trigger: "blur" },
|
],
|
strainName: [
|
{ required: true, message: "请输入传代菌种名称", trigger: "blur" },
|
],
|
strainCode1: [
|
{ required: true, message: "请输入接种菌种编号", trigger: "blur" },
|
],
|
strainName1: [
|
{ required: true, message: "请输入接种菌种名称", trigger: "blur" },
|
],
|
},
|
};
|
},
|
methods: {
|
openInitData(value) {
|
this.dialogTitle = value.title;
|
// 获取用户信息
|
const userInfo = JSON.parse(sessionStorage.getItem("userInfo") || "{}");
|
// 获取当前时间并格式化
|
const now = new Date();
|
const formatTime = `${now.getFullYear()}-${String(
|
now.getMonth() + 1
|
).padStart(2, "0")}-${String(now.getDate()).padStart(2, "0")} ${String(
|
now.getHours()
|
).padStart(2, "0")}:${String(now.getMinutes()).padStart(2, "0")}:${String(
|
now.getSeconds()
|
).padStart(2, "0")}`;
|
console.log(value);
|
|
this.form = {
|
parentId: value.parentId,
|
...this.form,
|
...value.form,
|
formStatus: value.formStatus,
|
strainCode1: value.strainCode1,
|
strainName1: value.strainName1,
|
thisName: userInfo.nickName || "",
|
thisTime: value.form.vaccinateTime
|
? value.form.vaccinateTime
|
: formatTime,
|
confirmTime: value.confirmTime ? moment(value.confirmTime).format('YYYY-MM-DD HH:mm:ss') : moment().format('YYYY-MM-DD HH:mm:ss')
|
};
|
this.dialogVisible = true;
|
},
|
close(){
|
this.dialogVisible = false;
|
},
|
closeDialog() {
|
this.dialogVisible = false;
|
// 重置表单数据
|
// this.form = {
|
// thisName: "",
|
// thisTime: "",
|
// strainCode: "",
|
// strainName: "",
|
// strainCode1: "",
|
// strainName1: "",
|
// status: 1,
|
// confirmTime: "",
|
// discardReason: "",
|
// };
|
// 重置表单验证
|
this.$refs.form && this.$refs.form.resetFields();
|
},
|
handleSubmit() {
|
this.$refs.form.validate((valid) => {
|
if (valid) {
|
this.$emit("addNodeSign", this.form, 3);
|
}
|
});
|
},
|
handleStatus(status) {
|
if (this.dialogTitle.includes("详情")) return;
|
this.form.status = status;
|
this.$forceUpdate();
|
},
|
},
|
};
|
</script>
|
|
<style scoped lang="less">
|
.dialog-footer {
|
margin-top: 39px;
|
display: flex;
|
justify-content: center;
|
|
.el-button--primary {
|
width: 150px;
|
height: 40px;
|
background: #049c9a;
|
border-radius: 4px;
|
}
|
}
|
|
.flex-row {
|
width: 370px;
|
display: flex;
|
align-items: center;
|
font-size: 16px;
|
color: #333333;
|
padding: 4px;
|
border-radius: 10px;
|
border: 2px solid rgba(4, 156, 154, 0.5);
|
font-family: "PingFangSCRegular";
|
|
.flex-row-save {
|
background: #049c9a;
|
color: #fff;
|
}
|
|
div {
|
width: 178px;
|
height: 32px;
|
text-align: center;
|
flex-shrink: 0;
|
cursor: pointer;
|
}
|
|
.active {
|
font-family: "SourceHanSansCN-Medium";
|
color: #049c9a;
|
background: #ebfefd;
|
box-shadow: 0px 0px 6px 0px rgba(10, 109, 108, 0.25);
|
border-radius: 10px;
|
}
|
}
|
</style>
|