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