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

---
 laboratory/src/components/DynamicComponent/addTableHeader.vue |   98 +++++++++++++++++++++---------------------------
 1 files changed, 43 insertions(+), 55 deletions(-)

diff --git a/laboratory/src/components/DynamicComponent/addTableHeader.vue b/laboratory/src/components/DynamicComponent/addTableHeader.vue
index 5758d3f..b8697d9 100644
--- a/laboratory/src/components/DynamicComponent/addTableHeader.vue
+++ b/laboratory/src/components/DynamicComponent/addTableHeader.vue
@@ -1,59 +1,40 @@
 <template>
-  <el-dialog
-    title="新增表头"
-    :visible.sync="dialogVisible"
-    width="30%"
-    :close-on-click-modal="false"
-    @close="handleClose"
-  >
+  <el-dialog title="新增表头" :visible.sync="dialogVisible" width="30%" :close-on-click-modal="false" @close="handleClose">
     <div class="sample-dialog">
       <div class="sample-content">
         <div class="form-content">
           <el-form ref="form" :model="form" :rules="rules" label-position="top">
             <el-row :gutter="24">
               <el-col :span="24">
-                <el-form-item label="表头名称" prop="sampleCode">
-                  <el-input
-                    v-model="form.name"
-                    style="width: 100%"
-                    placeholder="请输入表头名称"
-                  />
+                <el-form-item label="表头名称" prop="name">
+                  <el-input v-model="form.name" style="width: 100%" placeholder="请输入表头名称" />
                 </el-form-item>
               </el-col>
               <el-col :span="24">
-                <el-form-item label="表头类型" prop="sampleCode">
+                <el-form-item label="表头类型" prop="type">
                   <el-radio-group v-model="form.type" style="width: 100%">
-                    <el-radio-button  label="text">文本框</el-radio-button>
+                    <el-radio-button label="text">文本框</el-radio-button>
                     <el-radio-button label="image">图片上传</el-radio-button>
-                    <el-radio-button  label="date">日期选择</el-radio-button>
-                    <el-radio-button  label="user">人员选择</el-radio-button>
+                    <el-radio-button label="date">日期选择</el-radio-button>
+                    <el-radio-button label="user">人员选择</el-radio-button>
                   </el-radio-group>
                 </el-form-item>
               </el-col>
               <el-col :span="24">
-                <el-form-item label="操作权限" prop="sampleCode">
+                <el-form-item label="操作权限" prop="role">
                   <el-select v-model="form.role" placeholder="请选择" style="width: 100%" multiple>
-                    <el-option
-                      v-for="item in options"
-                      :key="item.value"
-                      :label="item.label"
-                      :value="item.value"
-                    >
+                    <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
                     </el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
-              <el-col :span="24">
-                <el-form-item label="提示文案" prop="sampleCode">
-                  <el-input
-                    v-model="form.message"
-                    style="width: 100%"
-                    placeholder="请输入提示文案"
-                  />
+              <el-col :span="24" v-if="['text', 'date', 'user'].includes(form.type)">
+                <el-form-item label="提示文案" prop="message">
+                  <el-input v-model="form.message" style="width: 100%" placeholder="请输入提示文案" />
                 </el-form-item>
               </el-col>
               <el-col :span="24">
-                <el-form-item label="是否必填" prop="testTypes">
+                <el-form-item label="是否必填" prop="required">
                   <el-radio-group v-model="form.required">
                     <el-radio label="true">是</el-radio>
                     <el-radio label="false">否</el-radio>
@@ -71,7 +52,7 @@
     </div>
   </el-dialog>
 </template>
-  
+
 <script>
 export default {
   name: "AddDialog",
@@ -80,6 +61,10 @@
       type: Boolean,
       default: false,
     },
+    participants: {
+      type: Array,
+      default: () => []
+    }
   },
   data() {
     return {
@@ -102,13 +87,13 @@
           {
             type: "array",
             required: true,
-            message: "请至少选择一种检测类型",
+            message: "请至少选择一个操作人",
             trigger: "change",
           },
         ],
         message: [
           {
-            required: true,
+            required: false,
             message: "请输入提示文案",
             trigger: "blur",
           },
@@ -121,23 +106,7 @@
           },
         ],
       },
-      options: [{
-          value: '1',
-          label: '黄金糕'
-        }, {
-          value: '2',
-          label: '双皮奶'
-        }, {
-          value: '3',
-          label: '蚵仔煎'
-        }, {
-          value: '4',
-          label: '龙须面'
-        }, {
-          value: '5',
-          label: '北京烤鸭'
-        }],
-        value: ''
+      value: ''
     };
   },
   computed: {
@@ -149,10 +118,20 @@
         this.$emit("update:visible", val);
       },
     },
+    options() {
+      // 将participants转换为select组件需要的格式
+      let userId = JSON.parse(sessionStorage.getItem('userInfo'))?.userId
+      let nickName = JSON.parse(sessionStorage.getItem('userInfo'))?.nickName
+      let newList = JSON.parse(JSON.stringify(this.participants))
+      newList.push({ userId, nickName })
+      return newList.map(participant => ({
+        value: participant.userId,
+        label: participant.nickName
+      }));
+    }
   },
   mounted() {
     // 组件挂载时的初始化逻辑
-    console.log('组件已挂载');
   },
   methods: {
     setFormData(data) {
@@ -179,6 +158,12 @@
       };
     },
     handleSubmit() {
+      // 对于需要提示文案的类型,添加额外验证
+      if (['text', 'date', 'user'].includes(this.form.type) && !this.form.message) {
+        this.$message.error('请输入提示文案');
+        return;
+      }
+
       this.$refs.form.validate((valid) => {
         if (valid) {
           const submitData = {
@@ -191,7 +176,7 @@
   },
 };
 </script>
-  
+
 <style scoped lang="less">
 ::v-deep .el-dialog__body {
   padding: 0;
@@ -334,12 +319,15 @@
     .el-upload-list {
       margin-top: 10px;
     }
+
     .el-upload-list__item {
       transition: all 0.3s;
+
       &:hover {
         background-color: #f5f7fa;
       }
     }
+
     .el-upload__tip {
       color: #909399;
       font-size: 12px;
@@ -347,4 +335,4 @@
     }
   }
 }
-</style> 
\ No newline at end of file
+</style>
\ No newline at end of file

--
Gitblit v1.7.1