From a60dc30be50598fe2d1acb42f8171ec69e37b436 Mon Sep 17 00:00:00 2001 From: 13404089107 <puwei@sinata.cn> Date: 星期三, 28 五月 2025 17:29:05 +0800 Subject: [PATCH] Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/leshan-laboratory --- culture/src/views/pedigree-chart/progenitorComponents/AddSublevelForm.vue | 349 +++++++++++++++++++++++++++++++++------------------------ 1 files changed, 200 insertions(+), 149 deletions(-) diff --git a/culture/src/views/pedigree-chart/progenitorComponents/AddSublevelForm.vue b/culture/src/views/pedigree-chart/progenitorComponents/AddSublevelForm.vue index 7798476..10d2e37 100644 --- a/culture/src/views/pedigree-chart/progenitorComponents/AddSublevelForm.vue +++ b/culture/src/views/pedigree-chart/progenitorComponents/AddSublevelForm.vue @@ -1,167 +1,218 @@ <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="strainNo"> - <el-input disabled v-model="form.inoculateNo"></el-input> - </el-form-item> - </el-col> - <el-col :span="10"> - <el-form-item label="传代菌种名称" prop="strainName"> - <el-input disabled v-model="form.inoculateName"></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.num" - 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.name" - placeholder="请输入"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-form-item label="保存/废弃" required> - <div class="flex-row"> - <div @click="handleStatus('save')" :class="form.isDiscarded && 'active'">保存</div> - <div @click="handleStatus('discard')" :class="!form.isDiscarded && 'active'">废弃</div> - </div> - </el-form-item> - <el-row :gutter="20"> - <el-col :span="10"> - <el-form-item v-if="!form.isDiscarded" 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"> - <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="保存/废弃" required> + <div class="flex-row"> + <div @click="handleStatus(1)" :class="form.status === 1 && 'active'"> + 保存 + </div> + <div @click="handleStatus(2)" :class="form.status === 2 && 'active'"> + 废弃 + </div> </div> - </el-dialog> + </el-form-item> + <el-row :gutter="20"> + <el-col :span="10"> + <el-form-item + v-if="form.status === 2" + label="废弃原因说明" + prop="remark" + > + <el-input + :disabled="!dialogTitle.includes('新增')" + v-model="form.remark" + 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: { - isDiscarded: true - }, - rules: { - isDiscarded: [ - { required: true, message: '请选择废弃状态', trigger: 'blur' } - ], - inoculateNo: [ - { required: true, message: '请输入接种菌种编号', trigger: 'blur' } - ], - inoculateName: [ - { required: true, message: '请输入接种菌种名称', trigger: 'blur' } - ], - }, - } + data() { + return { + dialogVisible: false, + dialogTitle: "", + form: { + status: 1, + }, + rules: { + status: [ + { required: true, message: "请选择废弃状态", trigger: "blur" }, + ], + strainCode: [ + { required: true, message: "请输入接种菌种编号", trigger: "blur" }, + ], + strainName: [ + { required: true, message: "请输入接种菌种名称", trigger: "blur" }, + ], + remark: [ + { required: true, message: "请输入废弃原因", trigger: "blur" }, + ], + }, + }; + }, + methods: { + openInitData(value) { + console.log(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: value.form.vaccinateTime + ? value.form.vaccinateTime + : formatTime, + type: 1, + }; + this.dialogVisible = true; }, - methods: { - openInitData(value) { - this.dialogTitle = value.title - this.form = value.form - this.dialogVisible = true - }, - closeDialog() { - this.dialogVisible = false - }, - handleSubmit() { - this.$emit('addNodeSign', this.form, 3) - }, - handleStatus(status) { - if (!this.dialogTitle.includes('新增')) return - this.form.isDiscarded = status === 'save' - this.$forceUpdate() + closeDialog() { + this.dialogVisible = false; + }, + 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