From e950c38ba82e5e6bc8b0c50c35e5dbb6a180165a Mon Sep 17 00:00:00 2001
From: 13404089107 <puwei@sinata.cn>
Date: 星期二, 20 五月 2025 16:43:06 +0800
Subject: [PATCH] Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/leshan-laboratory

---
 culture/src/components/confirm-storage-dialog/index.vue |  151 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 151 insertions(+), 0 deletions(-)

diff --git a/culture/src/components/confirm-storage-dialog/index.vue b/culture/src/components/confirm-storage-dialog/index.vue
new file mode 100644
index 0000000..d4dc4c9
--- /dev/null
+++ b/culture/src/components/confirm-storage-dialog/index.vue
@@ -0,0 +1,151 @@
+<template>
+  <el-dialog
+    :visible.sync="visible"
+    title="签字确认"
+    width="520px"
+    :close-on-click-modal="false"
+    custom-class="record-detail-dialog"
+    @close="handleClose"
+  >
+    <div class="dialog-content">
+      <div class="confirm-tip">
+        {{ text }}
+        <!-- <span class="danger">确认后将无法再次编辑菌种传代项内容</span> -->
+      </div>
+      <el-form :model="form" :rules="rules" ref="form" label-position="top">
+        <el-form-item required>
+          <template #label>
+            <span>{{ name }}</span>
+            <el-button
+              type="primary"
+              class="sign-btn"
+              @click="showSignature = true"
+              >签名</el-button
+            >
+          </template>
+          <div class="signature-area" :class="{ waiting: !form.signature }">
+            <template v-if="form.signature">
+              <img :src="form.signature" :alt="name" />
+            </template>
+            <template v-else>
+              <span class="waiting-text">等待确认</span>
+            </template>
+          </div>
+        </el-form-item>
+      </el-form>
+    </div>
+    <div class="footer-btns">
+      <el-button @click="handleClose" style="margin-right: 16px"
+        >取消</el-button
+      >
+      <el-button type="primary" @click="handleConfirm">确认</el-button>
+    </div>
+    <signature-canvas
+      :visible.sync="showSignature"
+      @confirm="handleSignatureConfirm"
+    />
+  </el-dialog>
+</template>
+
+<script>
+import SignatureCanvas from "@/components/SignatureCanvas.vue";
+export default {
+  name: "ConfirmStorageDialog",
+  components: { SignatureCanvas },
+  props: {
+    visible: {
+      type: Boolean,
+      default: false,
+    },
+    text: {
+      type: String,
+      default: "",
+    },
+    name: {
+      type: String,
+      default: "",
+    },
+  },
+  data() {
+    return {
+      form: {
+        signature: "",
+      },
+      rules: {
+        signature: [{ required: true, message: "请签名", trigger: "change" }],
+      },
+      showSignature: false,
+    };
+  },
+  methods: {
+    handleClose() {
+      this.$emit("update:visible", false);
+    },
+    handleConfirm() {
+      this.$refs.form.validate((valid) => {
+        if (!valid) return;
+        this.$emit("confirm", { ...this.form });
+        this.handleClose();
+      });
+    },
+    handleSignatureConfirm(dataUrl) {
+      this.form.signature = dataUrl;
+      this.showSignature = false;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.confirm-tip {
+  color: #f5222d;
+  font-size: 16px;
+  margin-bottom: 24px;
+  .danger {
+    margin-left: 12px;
+  }
+}
+.signature-area {
+  height: 120px;
+  width: 100%;
+  background: #f5f7fa;
+  border-radius: 4px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  border: 1px solid #dcdfe6;
+  overflow: hidden;
+  padding: 0;
+}
+.signature-area.waiting {
+  border-style: dashed;
+  background: #fafafa;
+}
+.signature-area img {
+  width: 100%;
+  height: 100%;
+  object-fit: cover;
+  display: block;
+}
+.waiting-text {
+  color: #909399;
+  font-size: 14px;
+}
+.sign-btn {
+  height: 32px;
+  border-radius: 4px;
+  font-size: 14px;
+  padding: 0 20px;
+  font-weight: 400;
+  margin-left: 12px;
+}
+.footer-btns {
+  display: flex;
+  justify-content: center;
+  padding: 24px;
+  padding-top: 0;
+  .el-button {
+    width: 150px;
+  }
+}
+</style>

--
Gitblit v1.7.1