From 013c63b6a07231bb4456106e31715b0982167abd Mon Sep 17 00:00:00 2001 From: 董国庆 <364620639@qq.com> Date: 星期三, 04 六月 2025 09:38:46 +0800 Subject: [PATCH] Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/leshan-laboratory --- culture/src/views/pedigree-chart/components/AddSublevelForm.vue | 422 ++++++++++++++++++++++++++++------------------------ 1 files changed, 226 insertions(+), 196 deletions(-) diff --git a/culture/src/views/pedigree-chart/components/AddSublevelForm.vue b/culture/src/views/pedigree-chart/components/AddSublevelForm.vue index f02a4c6..95c2945 100644 --- a/culture/src/views/pedigree-chart/components/AddSublevelForm.vue +++ b/culture/src/views/pedigree-chart/components/AddSublevelForm.vue @@ -1,215 +1,245 @@ <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="strainCode"> - <el-input disabled v-model="form.strainCode"></el-input> - </el-form-item> - </el-col> - <el-col :span="10"> - <el-form-item label="传代菌种名称" prop="strainName"> - <el-input disabled v-model="form.strainName"></el-input> - </el-form-item> - </el-col> - <el-col :span="10"> - <el-form-item label="接种菌种编号" prop="inoculateNo"> - <el-input :disabled="!dialogTitle.includes('新增')" v-model="form.inoculateNo" - placeholder="请输入"></el-input> - </el-form-item> - </el-col> - <el-col :span="10"> - <el-form-item label="接种菌种名称" prop="inoculateName"> - <el-input :disabled="!dialogTitle.includes('新增')" v-model="form.inoculateName" - 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="inTime" required> - <el-input disabled v-model="form.inTime"></el-input> - </el-form-item> - </el-col> - </el-row> - <!-- <el-row v-if="!dialogTitle.includes('新增')" :gutter="20"> - <el-col :span="10"> - <el-form-item label="接种操作人签字"> - <el-image /> - </el-form-item> - </el-col> - <el-col :span="10"> - <el-form-item label="菌种保藏人签字"> - <el-image /> - </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> + <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-dialog> + </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> export default { - data() { - return { - dialogVisible: false, - dialogTitle: '', - form: { - thisName: '', - thisTime: '', - strainCode: '', - strainName: '', - inoculateNo: '', - inoculateName: '', - status: 1, - inTime: '', - 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' } - ], - inoculateNo: [ - { required: true, message: '请输入接种菌种编号', trigger: 'blur' } - ], - inoculateName: [ - { required: true, message: '请输入接种菌种名称', trigger: 'blur' } - ] - } - } + 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, + }; + this.dialogVisible = true; }, - 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')}` - - this.form = { - ...this.form, - ...value.form, - thisName: userInfo.nickName || '', - thisTime: formatTime, - inTime: formatTime - } - this.dialogVisible = true - }, - closeDialog() { - this.dialogVisible = false - // 重置表单数据 - this.form = { - thisName: '', - thisTime: '', - strainCode: '', - strainName: '', - inoculateNo: '', - inoculateName: '', - status: 1, - inTime: '', - 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() + 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; + margin-top: 39px; + display: flex; + justify-content: center; - .el-button--primary { - width: 150px; - height: 40px; - background: #049C9A; - border-radius: 4px; - } + .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; + 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: 183px; + 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; - border: 2px solid rgba(4, 156, 154, 0.5); - font-family: 'PingFangSCRegular'; - - .flex-row-save { - background: #049C9A; - color: #fff; - } - - div { - width: 183px; - 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> -- Gitblit v1.7.1