From 9251aa2b02fa8bbad8cfba74d3b2d7ddf485a117 Mon Sep 17 00:00:00 2001
From: pyt <626651354@qq.com>
Date: 星期四, 10 四月 2025 10:27:02 +0800
Subject: [PATCH] Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/leshan-laboratory

---
 src/views/dataManagement/sampleManage/addSample.vue |  379 +++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 259 insertions(+), 120 deletions(-)

diff --git a/src/views/dataManagement/sampleManage/addSample.vue b/src/views/dataManagement/sampleManage/addSample.vue
index 3ac69bc..158722f 100644
--- a/src/views/dataManagement/sampleManage/addSample.vue
+++ b/src/views/dataManagement/sampleManage/addSample.vue
@@ -32,6 +32,7 @@
       <span>基础信息</span>
     </div>
     <el-form
+      v-if="!isExperimenter"
       ref="form"
       :model="form"
       :rules="rules"
@@ -39,63 +40,144 @@
       label-position="top"
     >
       <el-form-item label="取样单编号" prop="sampleCode">
-        <el-input 
-          v-model="form.sampleCode" 
+        <el-input
+          v-model="form.sampleCode"
           :disabled="!isExperimenter"
-          :placeholder="isExperimenter ? '请输入取样单编号' : '自动生成'" 
+          :placeholder="isExperimenter ? '请输入取样单编号' : '自动生成'"
         />
       </el-form-item>
     </el-form>
+    <div v-else class="number">取样单编号:213421241</div>
     <div class="header-title-left" style="margin-top: 38px">
       <img src="@/assets/public/headercard.png" />
       <span>取样操作记录</span>
-      <el-button 
+      <el-button
         v-if="isEngineer"
-        type="primary" 
-        class="el-icon-plus" 
+        type="primary"
+        class="el-icon-plus"
         @click="showAddTime = true"
-      > 
+      >
         新增工艺时间
       </el-button>
-      <el-button 
-        type="primary" 
+      <el-button
+        type="primary"
         class="el-icon-plus"
         @click="showAdditives = !showAdditives"
-      > 
-        {{ showAdditives ? '收起辅料详情' : '展开辅料详情' }}
+      >
+        {{ showAdditives ? "收起辅料详情" : "展开辅料详情" }}
       </el-button>
     </div>
     <Table :data="sampleData" :total="sampleTotal" :height="null">
       <template>
         <el-table-column prop="index" label="序号" width="80"></el-table-column>
-        <el-table-column prop="processTime" label="工艺时间" width="150"></el-table-column>
-        <el-table-column prop="sampleName" label="取样名称" width="150"></el-table-column>
-        <el-table-column prop="sampleCode" label="取样样品编号" width="150"></el-table-column>
-        <el-table-column prop="temperature" label="温度" width="150"></el-table-column>
+        <el-table-column
+          prop="processTime"
+          label="工艺时间"
+          width="150"
+        ></el-table-column>
+        <el-table-column
+          prop="sampleName"
+          label="取样名称"
+          width="150"
+        ></el-table-column>
+        <el-table-column
+          prop="sampleCode"
+          label="取样样品编号"
+          width="150"
+        ></el-table-column>
+        <el-table-column
+          prop="temperature"
+          label="温度"
+          width="150"
+        ></el-table-column>
         <el-table-column prop="ph" label="PH" width="150"></el-table-column>
-        <el-table-column prop="waterAmount" label="加水量" width="150"></el-table-column>
+        <el-table-column
+          prop="waterAmount"
+          label="加水量"
+          width="150"
+        ></el-table-column>
         <template v-if="showAdditives">
-          <el-table-column prop="additive1" label="加辅1" width="150" ></el-table-column>
-          <el-table-column prop="additive2" label="加辅2" width="150"></el-table-column>
-          <el-table-column prop="additive3" label="加辅3" width="150"></el-table-column>
-          <el-table-column prop="additive4" label="加辅4" width="150"></el-table-column>
-          <el-table-column prop="additive5" label="加辅5" width="150"></el-table-column>
-          <el-table-column prop="additive6" label="加辅6" width="150"></el-table-column>
-          <el-table-column prop="additive7" label="加辅7" width="150"></el-table-column>
-          <el-table-column prop="additive8" label="加辅8" width="150"></el-table-column>
-          <el-table-column prop="additive9" label="加辅9" width="150"></el-table-column>
-          <el-table-column prop="additive10" label="加辅10" width="150"></el-table-column>
+          <el-table-column
+            prop="additive1"
+            label="加辅1"
+            width="150"
+          ></el-table-column>
+          <el-table-column
+            prop="additive2"
+            label="加辅2"
+            width="150"
+          ></el-table-column>
+          <el-table-column
+            prop="additive3"
+            label="加辅3"
+            width="150"
+          ></el-table-column>
+          <el-table-column
+            prop="additive4"
+            label="加辅4"
+            width="150"
+          ></el-table-column>
+          <el-table-column
+            prop="additive5"
+            label="加辅5"
+            width="150"
+          ></el-table-column>
+          <el-table-column
+            prop="additive6"
+            label="加辅6"
+            width="150"
+          ></el-table-column>
+          <el-table-column
+            prop="additive7"
+            label="加辅7"
+            width="150"
+          ></el-table-column>
+          <el-table-column
+            prop="additive8"
+            label="加辅8"
+            width="150"
+          ></el-table-column>
+          <el-table-column
+            prop="additive9"
+            label="加辅9"
+            width="150"
+          ></el-table-column>
+          <el-table-column
+            prop="additive10"
+            label="加辅10"
+            width="150"
+          ></el-table-column>
         </template>
-        <el-table-column prop="sampleAmount" label="取样量" width="150"></el-table-column>
-        <el-table-column prop="sampleTime" label="取样时间" width="150"></el-table-column>
-        <el-table-column prop="remark" label="拍照" width="150"></el-table-column>
-        <el-table-column prop="operator" label="操作人员" width="150"></el-table-column>
-        <el-table-column v-if="isExperimenter" fixed="right" label="操作" width="150">
+        <el-table-column
+          prop="sampleAmount"
+          label="取样量"
+          width="150"
+        ></el-table-column>
+        <el-table-column
+          prop="sampleTime"
+          label="取样时间"
+          width="150"
+        ></el-table-column>
+        <el-table-column
+          prop="remark"
+          label="拍照"
+          width="150"
+        ></el-table-column>
+        <el-table-column
+          prop="operator"
+          label="操作人员"
+          width="150"
+        ></el-table-column>
+        <el-table-column
+          v-if="isExperimenter"
+          fixed="right"
+          label="操作"
+          width="150"
+        >
           <template slot-scope="scope">
-            <el-button
-               type="text"
-              @click="handleEdit(scope.$index, scope.row)"
-            >编辑</el-button>
+            <el-button type="text" @click="handleEdit(scope.$index, scope.row)"
+              >编辑</el-button
+            >
           </template>
         </el-table-column>
       </template>
@@ -113,7 +195,7 @@
       </el-form>
     </div>
     <div class="add-project-footer">
-      <el-button type="primary" class="save-btn">保存</el-button>
+      <el-button type="primary" class="save-btn" @click="handleSave">保存</el-button>
       <el-button>存草稿</el-button>
     </div>
     <experimentalScheduling :show="showScheduling" />
@@ -123,6 +205,12 @@
       :data="currentSampleData"
       @submit="handleSampleSubmit"
     />
+    <confirm-dialog
+      :visible.sync="showConfirmDialog"
+      :form-data="form"
+      :sample-data="sampleData"
+      @confirm="handleConfirm"
+    />
   </Card>
 </template>
 
@@ -130,13 +218,15 @@
 import experimentalScheduling from "./components/experimental-scheduling.vue";
 import addTime from "./components/addTime.vue";
 import SampleDialog from "./components/sampleDialog.vue";
+import ConfirmDialog from './components/confirmDialog.vue';
 
 export default {
   name: "AddConfirmationSheet",
   components: {
     experimentalScheduling,
     addTime,
-    SampleDialog
+    SampleDialog,
+    ConfirmDialog,
   },
   props: {},
   data() {
@@ -145,6 +235,7 @@
       showAddTime: false,
       showAdditives: true,
       showSampleDialog: false,
+      showConfirmDialog: false,
       currentSampleData: {},
       currentEditIndex: -1,
       schedulingData: [], // 实验调度表格数据
@@ -152,63 +243,63 @@
       sampleData: [
         {
           index: 1,
-          processTime: '2h',
-          sampleName: '样品A',
-          sampleCode: 'SP001',
-          temperature: '25℃',
-          ph: '7.0',
-          waterAmount: '500ml',
-          additive1: '10g',
-          additive2: '5g',
-          additive3: '3g',
-          additive4: '',
-          additive5: '',
-          additive6: '',
-          additive7: '',
-          additive8: '',
-          additive9: '',
-          additive10: '',
-          sampleAmount: '100ml',
-          sampleTime: '2024-03-20 10:00:00',
-          remark: '',
-          operator: '张三'
+          processTime: "2h",
+          sampleName: "样品A",
+          sampleCode: "SP001",
+          temperature: "25℃",
+          ph: "7.0",
+          waterAmount: "500ml",
+          additive1: "10g",
+          additive2: "5g",
+          additive3: "3g",
+          additive4: "",
+          additive5: "",
+          additive6: "",
+          additive7: "",
+          additive8: "",
+          additive9: "",
+          additive10: "",
+          sampleAmount: "100ml",
+          sampleTime: "2024-03-20 10:00:00",
+          remark: "",
+          operator: "张三",
         },
         {
           index: 2,
-          processTime: '4min',
-          sampleName: '样品B',
-          sampleCode: 'SP002',
-          temperature: '30℃',
-          ph: '6.5',
-          waterAmount: '300ml',
-          additive1: '8g',
-          additive2: '4g',
-          additive3: '',
-          additive4: '',
-          additive5: '',
-          additive6: '',
-          additive7: '',
-          additive8: '',
-          additive9: '',
-          additive10: '',
-          sampleAmount: '50ml',
-          sampleTime: '2024-03-20 10:30:00',
-          remark: '',
-          operator: '李四'
-        }
+          processTime: "4min",
+          sampleName: "样品B",
+          sampleCode: "SP002",
+          temperature: "30℃",
+          ph: "6.5",
+          waterAmount: "300ml",
+          additive1: "8g",
+          additive2: "4g",
+          additive3: "",
+          additive4: "",
+          additive5: "",
+          additive6: "",
+          additive7: "",
+          additive8: "",
+          additive9: "",
+          additive10: "",
+          sampleAmount: "50ml",
+          sampleTime: "2024-03-20 10:30:00",
+          remark: "",
+          operator: "李四",
+        },
       ],
       sampleTotal: 2,
       form: {
-        sampleCode: '',
-        remark: '',
+        sampleCode: "",
+        remark: "",
       },
       rules: {
         sampleCode: [
-          { required: true, message: '请输入取样单编号', trigger: 'blur' }
+          { required: true, message: "请输入取样单编号", trigger: "blur" },
         ],
       },
       menu: [],
-      userRole: 'experimenter', // 用户角色,可以是 'engineer' 或 'experimenter'
+      userRole: "experimenter", // 用户角色,可以是 'engineer' 或 'experimenter'
     };
   },
   computed: {
@@ -216,11 +307,11 @@
       return this.$baseTableHeight();
     },
     isEngineer() {
-      return this.userRole === 'engineer';
+      return this.userRole === "engineer";
     },
     isExperimenter() {
-      return this.userRole === 'experimenter';
-    }
+      return this.userRole === "experimenter";
+    },
   },
   watch: {},
   created() {},
@@ -367,53 +458,71 @@
         // 更新表格数据
         this.$set(this.sampleData, this.currentEditIndex, {
           ...this.sampleData[this.currentEditIndex],
-          ...formData
+          ...formData,
         });
         this.currentEditIndex = -1;
       }
       this.showSampleDialog = false;
     },
     handleDelete(index, row) {
-      this.$confirm('确认删除该记录吗?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        this.sampleData.splice(index, 1);
-        // 重新计算序号
-        this.sampleData.forEach((item, i) => {
-          item.index = i + 1;
-        });
-        this.$message.success('删除成功');
-      }).catch(() => {});
+      this.$confirm("确认删除该记录吗?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          this.sampleData.splice(index, 1);
+          // 重新计算序号
+          this.sampleData.forEach((item, i) => {
+            item.index = i + 1;
+          });
+          this.$message.success("删除成功");
+        })
+        .catch(() => {});
     },
     handleAddTime(processTime) {
       if (!this.isEngineer) return;
       const newRow = {
         index: this.sampleData.length + 1,
         processTime,
-        sampleName: '',
-        sampleCode: '',
-        temperature: '',
-        ph: '',
-        waterAmount: '',
-        additive1: '',
-        additive2: '',
-        additive3: '',
-        additive4: '',
-        additive5: '',
-        additive6: '',
-        additive7: '',
-        additive8: '',
-        additive9: '',
-        additive10: '',
-        sampleAmount: '',
-        sampleTime: '',
-        remark: '',
-        operator: ''
+        sampleName: "",
+        sampleCode: "",
+        temperature: "",
+        ph: "",
+        waterAmount: "",
+        additive1: "",
+        additive2: "",
+        additive3: "",
+        additive4: "",
+        additive5: "",
+        additive6: "",
+        additive7: "",
+        additive8: "",
+        additive9: "",
+        additive10: "",
+        sampleAmount: "",
+        sampleTime: "",
+        remark: "",
+        operator: "",
       };
       this.sampleData.push(newRow);
-      this.$message.success('添加工艺时间成功');
+      this.$message.success("添加工艺时间成功");
+    },
+    handleSave() {
+      if (this.isExperimenter) {
+        this.showConfirmDialog = true;
+      } else {
+        this.submitForm();
+      }
+    },
+    handleConfirm(signature) {
+      this.submitForm(signature);
+    },
+    submitForm(signature = null) {
+      // 在这里实现表单提交逻辑
+      console.log('提交表单数据', { signature });
+      this.$message.success('保存成功');
+      this.showConfirmDialog = false;
     },
   },
 };
@@ -461,6 +570,12 @@
 .el-checkbox {
   display: flex;
   align-items: center;
+}
+.number{
+font-family: PingFangSC, PingFang SC;
+font-weight: 400;
+font-size: 14px;
+color: rgba(0,0,0,0.88);
 }
 
 .row,
@@ -576,13 +691,37 @@
 
 .remark-section {
   margin-top: 20px;
-  
+
   .el-form-item {
     width: 100%;
-    
+
     .el-textarea {
       width: 100%;
     }
   }
 }
+
+.signature-section {
+  margin-top: 26px;
+}
+
+.add-group {
+  padding-left: 25px;
+  margin-top: 14px;
+  display: flex;
+  align-items: center;
+  margin-bottom: 19px;
+
+  div {
+    color: #f56c6c;
+  }
+
+  span {
+    font-weight: 500;
+    font-size: 14px;
+    color: #222222;
+    line-height: 21px;
+    margin: 0 32px 0 8px;
+  }
+}
 </style>
\ No newline at end of file

--
Gitblit v1.7.1