lisy hace 5 meses
padre
commit
9c191fd33f

+ 20 - 26
src/views/training/meeting-add/index.vue

@@ -54,7 +54,7 @@
                                 </el-form-item>
                             </el-col>
                             <el-col :span="12">
-                                <el-form-item label="可报名人员类型" prop="conditions.typeCheck">
+                                <el-form-item label="可报名单位类型" prop="conditions.typeCheck">
                                     <el-checkbox-group v-model="checkedVipLevels" @change="handleCheckedChange">
                                         <el-checkbox v-for="city in form.conditions.typeCheck" :key="city" :label="city" :value="city">
                                             {{ selectDictLabels(lm_check_join_type, city.vipLevel, ',') }}
@@ -131,7 +131,7 @@
                                                     </div>
                                                 </template>
                                             </div>
-                                            <div class="flex1 ml--10" v-if="checkedVipLevels.length == 0" ><el-empty :image-size="20" description="请先选择报名人员类型" /></div>
+                                            <div class="flex1 ml--10" v-if="checkedVipLevels.length == 0"><el-empty :image-size="20" description="请先选择报名人员类型" /></div>
                                         </div>
                                     </div>
                                 </el-form-item>
@@ -227,24 +227,19 @@
                                 <template v-for="(item, index) in form.certificateInfo" :key="index">
                                     <el-row :gutter="20" class="bg-#f4f4f4 pd-16 mb-10">
                                         <el-col :span="10">
-                                            <el-form-item label="证书名称" :prop="`certificateInfo.${index}.certType`"
-                                                :rules="[{ required: true, message: '请选择证书名称', trigger: 'change' }]">
+                                            <el-form-item label="证书名称" :prop="`certificateInfo.${index}.certType`" :rules="[{ required: true, message: '请选择证书名称', trigger: 'change' }]">
                                                 <el-select v-model="item.certType" placeholder="证书名称" clearable>
-                                                    <el-option v-for="item in lm_training_cert" :key="item.value"
-                                                        :label="item.label" :value="item.value" />
+                                                    <el-option v-for="item in lm_training_cert" :key="item.value" :label="item.label" :value="item.value" />
                                                 </el-select>
                                             </el-form-item>
                                         </el-col>
                                         <el-col :span="10">
-                                            <el-form-item :prop="`certificateInfo.${index}.certImg`"
-                                                :rules="[{ required: true, message: '请上传证书图片', trigger: 'change' }]">
+                                            <el-form-item :prop="`certificateInfo.${index}.certImg`" :rules="[{ required: true, message: '请上传证书图片', trigger: 'change' }]">
                                                 <template #label>
                                                     <span>证书模板图片</span>
-                                                    <el-button @click="goEditor()" type="primary"
-                                                        text>去编辑模板图片</el-button>
+                                                    <el-button @click="goEditor()" type="primary" text>去编辑模板图片</el-button>
                                                 </template>
-                                                <ImageUpload v-model="item.certImg" :fileSize="40" :limit="1">
-                                                </ImageUpload>
+                                                <ImageUpload v-model="item.certImg" :fileSize="40" :limit="1"></ImageUpload>
                                             </el-form-item>
                                         </el-col>
                                         <el-col :span="4">
@@ -258,8 +253,7 @@
                         </div>
 
                         <div class="w-50% d-flex flex-cln j-c a-c pl-20">
-                            <el-button type="primary" class="w-100%" plain style="height: 70px; margin-bottom: 20px;"
-                                @click="showSignIn = true">点击去编辑报名信息></el-button>
+                            <el-button type="primary" class="w-100%" plain style="height: 70px; margin-bottom: 20px;" @click="showSignIn = true">点击去编辑报名信息></el-button>
                             <div class="w-400 h-700 border over-auto">
                                 <div class="pd-10 border bg-#fafafa">
                                     <div class="pt-10  f-s-20 f-w-6 d-flex j-c a-c flex-cln ">报名信息</div>
@@ -273,8 +267,7 @@
                                 </template>
                                 <template v-for="(field, index) in fields" :key="index">
                                     <div class="meeting-custom-wrapper" @click.stop="showSignIn = true">
-                                        <meetingCustomPreview :field="field" style="pointer-events: none"
-                                            v-if="field" />
+                                        <meetingCustomPreview :field="field" style="pointer-events: none" v-if="field" />
                                     </div>
                                 </template>
                                 <div class="pd-15 border1 c-#D7D7D7 d-flex j-sb">
@@ -487,17 +480,18 @@ const rules = reactive({
     'conditions.totalCheck': [{ required: true, message: '请选择是否限制报名人数', trigger: 'change' }],
     'conditions.typeCheck': [
     {
-      validator: (rule, value, callback) => {
-        // 检查至少选择了一个选项(至少有一个 check 为 "1")
-        const isChecked = value.some(item => item.check === "1");
-        if (!isChecked) {
-          callback(new Error('请至少选择一种可报名人员类型'));
-        } else {
-          callback();
+            validator: (rule, value, callback) => {
+                setTimeout(() => {
+                    const isChecked = value.some(item => item.check == "1");
+                    if (!isChecked) {
+                        callback(new Error('请至少选择一种可报名单位类型'));
+                    } else {
+                        callback();
+                    }
+                }, 300);
+            },
+            trigger: 'change' // 触发校验的时机
         }
-      },
-      trigger: 'change' // 触发校验的时机
-    }
   ],
     certFlag: [{ required: true, message: '请选择是否颁发证书', trigger: 'change' }],
     certificateInfo: [{ required: true, message: '请选择证书名称', trigger: 'change' }],

+ 25 - 58
src/views/training/meeting/index.vue

@@ -7,35 +7,26 @@
                     <div class="flex1 ov-hd d-flex j-ed">
                         <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="auto">
                             <el-form-item label="会议名称" prop="trainingName">
-                                <el-input v-model="queryParams.trainingName" placeholder="搜会议名称" clearable
-                                    style="width: 160px" @keyup.enter="handleQuery" />
+                                <el-input v-model="queryParams.trainingName" placeholder="搜会议名称" clearable style="width: 160px" @keyup.enter="handleQuery" />
                             </el-form-item>
                             <el-form-item label="会议方式" prop="joinType">
-                                <el-select v-model="queryParams.joinType" placeholder="请选择会议方式" clearable
-                                    style="width: 160px" @change="handleQuery">
-                                    <el-option v-for="item in lm_training_join_type" :key="item.value"
-                                        :label="item.label" :value="item.value" />
+                                <el-select v-model="queryParams.joinType" placeholder="请选择会议方式" clearable style="width: 160px" @change="handleQuery">
+                                    <el-option v-for="item in lm_training_join_type" :key="item.value" :label="item.label" :value="item.value" />
                                 </el-select>
                             </el-form-item>
                             <el-form-item label="报名状态" prop="joinStatus">
-                                <el-select v-model="queryParams.joinStatus" placeholder="请选择会报名状态" clearable
-                                    style="width: 160px" @change="handleQuery">
-                                    <el-option v-for="item in lm_training_join_status" :key="item.value"
-                                        :label="item.label" :value="item.value" />
+                                <el-select v-model="queryParams.joinStatus" placeholder="请选择会报名状态" clearable style="width: 160px" @change="handleQuery">
+                                    <el-option v-for="item in lm_training_join_status" :key="item.value" :label="item.label" :value="item.value" />
                                 </el-select>
                             </el-form-item>
                             <el-form-item label="会议状态" prop="trainingStatus">
-                                <el-select v-model="queryParams.trainingStatus" placeholder="请选择会议状态" clearable
-                                    style="width: 160px" @change="handleQuery">
-                                    <el-option v-for="item in lm_training_status" :key="item.value" :label="item.label"
-                                        :value="item.value" />
+                                <el-select v-model="queryParams.trainingStatus" placeholder="请选择会议状态" clearable style="width: 160px" @change="handleQuery">
+                                    <el-option v-for="item in lm_training_status" :key="item.value" :label="item.label" :value="item.value" />
                                 </el-select>
                             </el-form-item>
                             <el-form-item label="是否颁发证书" prop="certFlag">
-                                <el-select v-model="queryParams.certFlag" placeholder="请选择是否颁发证书" clearable
-                                    style="width: 160px" @change="handleQuery">
-                                    <el-option v-for="item in yes_no" :key="item.value" :label="item.label"
-                                        :value="item.value" />
+                                <el-select v-model="queryParams.certFlag" placeholder="请选择是否颁发证书" clearable style="width: 160px" @change="handleQuery">
+                                    <el-option v-for="item in yes_no" :key="item.value" :label="item.label" :value="item.value" />
                                 </el-select>
                             </el-form-item>
                             <el-form-item>
@@ -49,16 +40,14 @@
             <div class="d-flex flex1 ov-hd flex-cln pd-16">
                 <div class="d-flex j-sb mb-16">
                     <div>
-                        <searchTabs v-model="queryParams.status" @change="handleQuery" :list="tabs" key-label="name"
-                            key-count="num" key-value="type"></searchTabs>
+                        <searchTabs v-model="queryParams.status" @change="handleQuery" :list="tabs" key-label="name" key-count="num" key-value="type"></searchTabs>
                     </div>
                     <el-button type="primary" @click="router.push({ path: 'lmmeetingadd' })">新增会议</el-button>
                 </div>
                 <div class="flex1 ov-hd">
                     <vxe-table :loading="loading" border :data="dataList" min-height="0" max-height="100%">
                         <vxe-column title="序号" align="center" type="seq" width="50" />
-                        <vxe-column field="trainingName" title="会议名称" :formatter="colNoData" min-width="150"
-                            class-name="f-w-600" />
+                        <vxe-column field="trainingName" title="会议名称" :formatter="colNoData" min-width="150" class-name="f-w-600" />
                         <vxe-column field="trainingTime" min-width="370" title="会议时间" class-name="f-w-600">
                             <template #default="{ row }">
                                 <div class="d-flex a-c">
@@ -92,72 +81,50 @@
                         <vxe-column field="certCount" title="领取证书人数" width="80" />
                         <vxe-column field="certFlag" title="签到二维码" width="90" align="center">
                             <template #default="{ row }">
-                                <el-button @click="trainingSignIn(row)"
-                                    :style="{ color: !['1', '0'].includes(row?.trainingStatus) ? '#999' : '#0079fe' }"
-                                    text :disabled="!['1', '0'].includes(row?.trainingStatus)">查看</el-button>
+                                <el-button @click="trainingSignIn(row)" :style="{ color: !['1', '0'].includes(row?.trainingStatus) ? '#999' : '#0079fe' }" text :disabled="!['1', '0'].includes(row?.trainingStatus)">查看</el-button>
                             </template>
                         </vxe-column>
-                        <vxe-column title="临时报名通道" align="center" field="createByName" width="120"
-                            :formatter="colNoData">
+                        <vxe-column title="临时报名通道" align="center" field="createByName" width="120" :formatter="colNoData">
                             <template #default="{ row }">
                                 <div v-if="row.tempStatus == '0'">
-                                    <el-popconfirm confirm-button-text="确认" cancel-button-text="取消"
-                                        title="通过临时报名通道报名将不受时间限制,是否确认打开?" :disabled="row.trainingStatus == '2'"
-                                        @confirm="confirmEvent(row)" @cancel="cancelEvent">
+                                    <el-popconfirm confirm-button-text="确认" cancel-button-text="取消" title="通过临时报名通道报名将不受时间限制,是否确认打开?" :disabled="row.trainingStatus == '2'" @confirm="confirmEvent(row)" @cancel="cancelEvent">
                                         <template #reference>
-                                            <el-switch :model-value="row.trainingStatus == '2' ? '0' : row.tempStatus"
-                                                @update:model-value="row.trainingStatus != '2' ? row.tempStatus = $event : null"
-                                                :loading="loading1" active-value="1" inactive-value="0"
-                                                :before-change="beforeChange1" :disabled="row.trainingStatus == '2'" />
+                                            <el-switch :model-value="row.trainingStatus == '2' ? '0' : row.tempStatus" @update:model-value="row.trainingStatus != '2' ? row.tempStatus = $event : null" :loading="loading1" active-value="1" inactive-value="0" :before-change="beforeChange1" :disabled="row.trainingStatus == '2'" />
                                         </template>
                                     </el-popconfirm>
                                 </div>
                                 <div v-if="row.tempStatus == '1'">
-                                    <el-switch v-if="+row.tempStatus"
-                                        :model-value="row.trainingStatus == '2' ? '0' : row.tempStatus"
-                                        @update:model-value="row.trainingStatus != '2' ? row.tempStatus = $event : null"
-                                        :loading="loading1" :before-change="() => beforeChange2(row)" active-value="1"
-                                        inactive-value="0" :disabled="row.trainingStatus == '2'" />
+                                    <el-switch v-if="+row.tempStatus" :model-value="row.trainingStatus == '2' ? '0' : row.tempStatus" @update:model-value="row.trainingStatus != '2' ? row.tempStatus = $event : null" :loading="loading1" :before-change="() => beforeChange2(row)" active-value="1" inactive-value="0" :disabled="row.trainingStatus == '2'" />
                                 </div>
-                                <el-button v-if="row.tempStatus == '1' && row.trainingStatus !== '2'" type="primary"
-                                    text @click="temporary(row)" :disabled="row.trainingStatus == '2'">查看</el-button>
+                                <el-button v-if="row.tempStatus == '1' && row.trainingStatus !== '2'" type="primary" text @click="temporary(row)" :disabled="row.trainingStatus == '2'">查看</el-button>
                             </template>
                         </vxe-column>
-                        <vxe-column title=" 创建人" align="center" field="createByName" width="70"
-                            :formatter="colNoData" />
+                        <vxe-column title=" 创建人" align="center" field="createByName" width="70" :formatter="colNoData" />
                         <vxe-column title="创建时间" align="center" field="createTime" width="160" :formatter="colNoData" />
                         <vxe-column title="操作" width="240" fixed="right">
                             <template #default="{ row }">
-                                <el-button v-if="!+row?.status" type="primary" text
-                                    @click="trainingOn(row)">上架</el-button>
+                                <el-button v-if="!+row?.status" type="primary" text @click="trainingOn(row)">上架</el-button>
                                 <span></span>
-                                <el-button v-if="+row?.status" type="danger" text
-                                    @click="trainingOff(row)">下架</el-button>
+                                <el-button v-if="+row?.status" type="danger" text @click="trainingOff(row)">下架</el-button>
                                 <span></span>
                                 <el-button v-if="!+row?.status" type="primary" @click="editRow(row)" text>编辑</el-button>
                                 <span></span>
                                 <el-badge :value="row.waitCount" class="item" :offset="[-10, 5]" v-if="+row.waitCount">
-                                    <el-button @click="router.push({ path: 'lmmeetingdetail', query: { id: row?.id } })"
-                                        style="color: #0079fe;" text>人员管理及详情</el-button>
+                                    <el-button @click="router.push({ path: 'lmmeetingdetail', query: { id: row?.id } })" style="color: #0079fe;" text>人员管理及详情</el-button>
                                 </el-badge>
-                                <el-button v-else
-                                    @click="router.push({ path: 'lmmeetingdetail', query: { id: row?.id } })"
-                                    style="color: #0079fe;" text>人员管理及详情</el-button>
+                                <el-button v-else @click="router.push({ path: 'lmmeetingdetail', query: { id: row?.id } })" style="color: #0079fe;" text>人员管理及详情</el-button>
                                 <span></span>
                                 <el-button text type="danger" @click="deleteRow(row)">删除</el-button>
                             </template>
                         </vxe-column>
                     </vxe-table>
                 </div>
-                <pagination :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
-                    @pagination="getList" />
+                <pagination :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
             </div>
         </div>
     </div>
-    <SignInCode v-if="showSignIn" v-model:show="showSignIn" :info="rowInfo" :dict="{ lm_training_join_type }">
-    </SignInCode>
-    <TemporaryRegistration v-if="showTemporary" v-model:show="showTemporary" :info="temporaryRegistration"
-        :dict="{ lm_training_join_type }"></TemporaryRegistration>
+    <SignInCode v-if="showSignIn" v-model:show="showSignIn" :info="rowInfo" :dict="{ lm_training_join_type }"></SignInCode>
+    <TemporaryRegistration v-if="showTemporary" v-model:show="showTemporary" :info="temporaryRegistration" :dict="{ lm_training_join_type }"></TemporaryRegistration>
 </template>
 
 <script setup name="meeting" lang="ts">

+ 43 - 34
src/views/training/models/meeting-custom.vue

@@ -1,35 +1,38 @@
 <template>
-    <div class="pd-10 pl-15 border1">
+    <div class="pd-10 pl-15 border1 drag-handle">
         <el-form ref="formRef" label-width="auto" label-position="top" :model="field" :rules="rules" :scroll-to-error="true">
             <template v-if="field.type === '1' || field.type === '7' || field.type === '10'">
                 <el-form-item v-if="field.name.includes('text1-')" prop="label">
-                    <el-tag type="info" size="small">单行文本</el-tag>
-                    <div class="d-flex flex-cln">
-                        <div class="pb-5 f-s-16 f-w-6 c-#606266" @click="changeShowtitle()" v-show="!showtitle">{{ field.label }}</div>
-                        <el-input ref="titleInput" class="pd-5 no-disabled-input" v-show="showtitle" v-model="field.label" :placeholder="'请输入标题'" style="width: 340px;font-size: 16px;" clearable @blur="showtitle = false" />
-                        <el-input class="pd-5 disabled-input" :placeholder="'请输入'" style="width: 340px; pointer-events: none ;" />
+                    <div class="d-flex flex-cln w-100% " >
+                        <el-tag type="info" size="small" style="width: 70px;" class="drag-handle">单行文本</el-tag>
+                        <div class="pb-5 f-s-16 f-w-6 c-#606266 " @click="changeShowtitle()" v-show="!showtitle">{{ field.label }}</div>
+                        <el-input ref="titleInput" class="pd-5 no-disabled-input no-drag" v-show="showtitle || !field.label" v-model="field.label" :placeholder="'请输入标题'" style="width: 340px;font-size: 16px;" clearable @blur="showtitle = false" />
                     </div>
                 </el-form-item>
-                <el-form-item v-else-if="field.name.includes('text2-')" prop="label">
-                    <el-tag type="info" size="small">多行文本</el-tag>
-                    <div class="d-flex flex-cln">
-                        <div class="pb-5 f-s-16 f-w-6 c-#606266" @click="changeShowtitle()" v-show="!showtitle">{{ field.label }}</div>
-                        <el-input ref="titleInput" class="pd-5 no-disabled-input" v-show="showtitle" v-model="field.label" :placeholder="'请输入标题'" style="width: 340px;font-size: 16px;" clearable @blur="showtitle = false" />
-                        <el-input
-                            class="pd-5 disabled-input"
-                            :placeholder="'请输入'"
-                            style="width: 340px; pointer-events: none ;"
-                            type="textarea"
-                            :autosize="{
-                            minRows: 4, maxRows: 7
-                        }"
-                        />
+                <el-input v-if="field.name.includes('text1-')" class="pd-5 disabled-input" :placeholder="'请输入'" style="width: 340px;margin-top: -8px; pointer-events: none ;" />
+                <el-form-item v-if="field.name.includes('text2-')" prop="label">
+                    <div class="d-flex flex-cln w-100%">
+                        <el-tag type="info" size="small" style="width: 70px;">多行文本</el-tag>
+                        <div class="d-flex flex-cln">
+                            <div class="pb-5 f-s-16 f-w-6 c-#606266" @click="changeShowtitle()" v-show="!showtitle">{{ field.label }}</div>
+                            <el-input ref="titleInput" class="pd-5 no-disabled-input no-drag" v-show="showtitle || !field.label" v-model="field.label" :placeholder="'请输入标题'" style="width: 340px;font-size: 16px;" clearable @blur="showtitle = false" />
+                        </div>
                     </div>
                 </el-form-item>
-                <el-form-item v-else-if="field.name.includes('desc1-')" prop="defValue" :rules="[{ required: true, message: '请输入描述', trigger: 'blur' }]">
+                <el-input
+                    v-if="field.name.includes('text2-')"
+                    class="pd-5 disabled-input"
+                    :placeholder="'请输入'"
+                    style="width: 340px; pointer-events: none ;margin-top: -8px;"
+                    type="textarea"
+                    :autosize="{
+                            minRows: 4, maxRows: 7
+                        }"
+                />
+                <el-form-item v-if="field.name.includes('desc1-')" prop="defValue" :rules="[{ required: true, message: '请输入描述', trigger: 'blur' }]">
                     <el-tag type="info" size="small">文本描述</el-tag>
                     <el-input
-                        class="pd-5 no-disabled-input"
+                        class="pd-5 no-disabled-input no-drag"
                         v-model="field.defValue"
                         :placeholder="'请输入'"
                         type="textarea"
@@ -39,17 +42,17 @@
                         style="width: 340px;font-weight: 600;"
                     />
                 </el-form-item>
-                <div class="d-flex flex-cln" v-else>
+                <div class="d-flex flex-cln" v-if="!['desc1-', 'text'].some(str => field.name.includes(str))">
                     <div class="pb-5 f-s-16 f-w-6 c-#606266">{{ field.label }}</div>
                     <el-input class="pd-5 disabled-input" :placeholder="'请输入'" style="width: 340px; pointer-events: none ;" />
                 </div>
             </template>
             <template v-if="field.type === '4' || field.type === '5'">
                 <el-form-item v-if="field.name.includes('rad-')" prop="label" :rules="[{ required: true, message: '请输入标题', trigger: 'blur' }]">
-                    <div class="d-flex flex-cln">
+                    <div class="d-flex flex-cln w-100%">
                         <div><el-tag type="info" size="small">单选</el-tag></div>
                         <div class="pb-5 f-s-16 f-w-6 c-#606266" @click="changeShowtitle()" v-show="!showtitle">{{ field.label }}</div>
-                        <el-input ref="titleInput" class="pd-5 no-disabled-input" v-show="showtitle" v-model="field.label" :placeholder="'请输入标题'" style="width: 340px" @blur="showtitle = false" />
+                        <el-input ref="titleInput" class="pd-5 no-disabled-input no-drag" v-show="showtitle || !field.label" v-model="field.label" :placeholder="'请输入标题'" style="width: 340px" clearable @blur="showtitle = false" />
                     </div>
                 </el-form-item>
                 <el-form-item
@@ -67,7 +70,7 @@
                         <el-radio-group v-model="field.value" style="pointer-events: none ;">
                             <el-radio :label="1"><span></span></el-radio>
                         </el-radio-group>
-                        <el-input type="text" v-model="item.label" style="width: 310px" :placeholder="'请输入选项内容'" @input="val => { item.label = val; item.value = val; }" />
+                        <el-input class="no-drag" type="text" v-model="item.label" style="width: 310px" :placeholder="'请输入选项内容'" @input="val => { item.label = val; item.value = val; }" />
                         <el-icon class="ml-10 delete-btn" color="red" @click="removeOption(index)">
                             <Close />
                         </el-icon>
@@ -75,10 +78,10 @@
                 </el-form-item>
                 <el-button v-if="field.name.includes('rad-')" type="primary" plain class="w-100% mt-10" @click="addOption()">新增选项</el-button>
                 <el-form-item v-if="field.name.includes('che-')" prop="label">
-                    <div class="d-flex flex-cln">
+                    <div class="d-flex flex-cln w-100%">
                         <div><el-tag type="info" size="small">多选</el-tag></div>
                         <div class="pb-5 f-s-16 f-w-6 c-#606266" @click="changeShowtitle()" v-show="!showtitle">{{ field.label }}</div>
-                        <el-input ref="titleInput" class="pd-5 no-disabled-input" v-show="showtitle" v-model="field.label" :placeholder="'请输入标题'" style="width: 340px" @blur="showtitle = false" />
+                        <el-input ref="titleInput" class="pd-5 no-disabled-input no-drag" v-show="showtitle || !field.label" v-model="field.label" :placeholder="'请输入标题'" style="width: 340px" clearable @blur="showtitle = false" />
                     </div>
                 </el-form-item>
                 <el-form-item
@@ -94,7 +97,7 @@
                 >
                     <div class="pd-1 p-rtv">
                         <el-checkbox class="pd-5" :label="1" style="pointer-events: none ;"><span></span></el-checkbox>
-                        <el-input type="text" v-model="item.label" style="width: 310px" :placeholder="'请输入选项内容'" @input="val => { item.label = val; item.value = val; }" />
+                        <el-input class="no-drag" type="text" v-model="item.label" style="width: 310px" :placeholder="'请输入选项内容'" @input="val => { item.label = val; item.value = val; }" />
                         <el-icon class="ml-10 delete-btn" color="red" @click="removeOption(index)">
                             <Close />
                         </el-icon>
@@ -116,14 +119,14 @@
             </template>
             <template v-if="field.type === '6' || field.type === '8' || field.type === '9'">
                 <el-form-item prop="label">
-                    <div class="d-flex flex-cln">
+                    <div class="d-flex flex-cln w-100%">
                         <div>
                             <el-tag type="info" class="" size="small" v-if="field.name.includes('pic1-')">图片</el-tag>
                             <el-tag type="info" size="small" v-else-if="field.name.includes('file1-')">文件</el-tag>
                             <el-tag type="info" size="small" v-else>图文描述</el-tag>
                         </div>
                         <div class="pb-5 f-s-16 f-w-6 c-#606266" @click="changeShowtitle()" v-show="!showtitle">{{ field.label }}</div>
-                        <el-input ref="titleInput" class="pd-5 no-disabled-input" v-show="showtitle" v-model="field.label" :placeholder="'请输入标题'" style="width: 340px;font-size: 16px;" clearable @blur="showtitle = false" />
+                        <el-input ref="titleInput" class="pd-5 no-disabled-input no-drag" v-show="showtitle || !field.label" v-model="field.label" :placeholder="'请输入标题'" style="width: 340px;font-size: 16px;" clearable @blur="showtitle = false" />
                     </div>
                 </el-form-item>
                 <ImageUpload v-if="!field.name.includes('pic2')" v-model="field.defValue" :limit="1" isString class="pl-5 noup" :isShowTip="false"></ImageUpload>
@@ -133,8 +136,10 @@
                     </div>
                 </el-form-item>
                 <div class="f-s-12 c-333 pl-5 pt-15" v-if="!field.name.includes('pic2')">参会者点击可上传文件/图片</div>
-                <div class="f-s-12 c-999 pl-5">单个图片/文件大小不超过10MB;</div>
-                <div class="f-s-12 c-999 pl-5">支持格式:gif、png、jpg、jpeg、bmp、doc、docx、pdf、xls、xlsx、ppt.pptx、txt、zip、gzip、rar、mp4、mov</div>
+                <div class="f-s-12 c-999 pl-5" v-if="!field.name.includes('pic2')">单个图片/文件大小不超过10MB;</div>
+                <div class="f-s-12 c-999 pl-5" v-if="field.name.includes('pic2')">单个图片大小不超过10MB;</div>
+                <div class="f-s-12 c-999 pl-5" v-if="!field.name.includes('pic2')">支持格式:gif、png、jpg、jpeg、bmp、doc、docx、pdf、xls、xlsx、ppt.pptx、txt、zip、gzip、rar、mp4、mov</div>
+                <div class="f-s-12 c-999 pl-5" v-if="field.name.includes('pic2')">支持格式:png、jpg、jpeg</div>
             </template>
         </el-form>
     </div>
@@ -247,8 +252,12 @@ defineExpose({
 
 :deep(.no-disabled-input .el-input__inner) {
     font-weight: bold !important;
+    
+}
+:deep(.no-disabled-input .el-textarea__inner){
+    font-weight: bold !important;
+    font-size: 16px;
 }
-
 :deep(.no-disabled-input .el-input__wrapper) {
     /* box-shadow: none !important; */
     font-weight: bold !important;

+ 1 - 1
src/views/training/models/meeting-editors.vue

@@ -216,7 +216,7 @@
                             <span>(固定字段,不可编辑)</span>
                         </div>
                     </template>
-                    <VueDraggable ref="el" v-model="fields">
+                    <VueDraggable ref="el" v-model="fields" handle=".drag-handle" :filter="'.no-drag'">
                         <template v-for="(field, index) in fields" :key="index">
                             <div class="meeting-custom-wrapper" :class="{ 'active-border': activeField === field }" @click="setActive(field)" :ref="el => setFieldRef(el, index)">
                                 <MeetingCustom :field="field" ref="childRef" v-if="field" />