Browse Source

feat: SOP模板列表支持总后台模板展示

- 详情页标题显示总后台模板橙色标签
- 总后台模板所有表单设为只读disabled状态
- 隐藏总后台模板的编辑操作按钮和保存按钮
- 保持复制功能正常可用
- 根据templateType字段控制页面显示状态
xw 5 days ago
parent
commit
aec6716019
1 changed files with 27 additions and 19 deletions
  1. 27 19
      src/views/qw/sopTemp/updateSopTemp.vue

+ 27 - 19
src/views/qw/sopTemp/updateSopTemp.vue

@@ -1,13 +1,15 @@
 <template>
   <div class="app-container">
 
-    <div style="margin: 30px;" v-if="this.form.sendType == 1 && formType==1 "> sop规则【修改企微接口】模板</div>
-    <div style="margin: 30px;" v-if="this.form.sendType == 1 && formType==2 "> sop规则【复制企微接口】模板</div>
-    <div style="margin: 30px;" v-if="this.form.sendType == 1 && formType==3 "> sop规则【查看企微接口】模板</div>
-    <div style="margin: 30px;" v-if="this.form.sendType == 2 && formType==1 "> sop规则【修改群发助手】模板</div>
-    <div style="margin: 30px;" v-if="this.form.sendType == 2 && formType==2 "> sop规则【复制群发助手】模板</div>
-    <div style="margin: 30px;" v-if="this.form.sendType == 2 && formType==3 "> sop规则【查看群发助手】模板</div>
-    <div style="margin: 30px;">模板编号:【{{ this.form.id }}】</div>
+    <div style="margin: 30px;" v-if="this.form.sendType == 1 && formType==1 && form.templateType != 1"> sop规则【修改企微接口】模板</div>
+    <div style="margin: 30px;" v-if="this.form.sendType == 1 && formType==2"> sop规则【复制企微接口】模板</div>
+    <div style="margin: 30px;" v-if="this.form.sendType == 1 && (formType==3 || form.templateType == 1)"> sop规则【查看企微接口】模板</div>
+    <div style="margin: 30px;" v-if="this.form.sendType == 2 && formType==1 && form.templateType != 1"> sop规则【修改群发助手】模板</div>
+    <div style="margin: 30px;" v-if="this.form.sendType == 2 && formType==2"> sop规则【复制群发助手】模板</div>
+    <div style="margin: 30px;" v-if="this.form.sendType == 2 && (formType==3 || form.templateType == 1)"> sop规则【查看群发助手】模板</div>
+    <div style="margin: 30px;">模板编号:【{{ this.form.id }}】
+      <el-tag v-if="form.templateType == 1" type="warning" style="margin-left: 10px;">总后台模板</el-tag>
+    </div>
 
     <div style="margin-top: 10px;margin-left: 50px;margin-right: 100px;margin-bottom: 60px;">
       <el-form ref="form" :model="form" :rules="rules" label-width="100px">
@@ -23,22 +25,22 @@
         </el-form-item>
         <el-form-item label="规则" prop="setting">
           <el-link type="primary" class="el-icon-plus" :underline="false" @click='addSetting()'
-                   v-if="form.sendType != 4 && formType != 3 && roles.includes('add_sop_temp_day')">添加天数
+                   v-if="form.sendType != 4 && formType != 3 && form.templateType != 1 && roles.includes('add_sop_temp_day')">添加天数
           </el-link>
           <el-link type="primary" class="el-icon-sort" :underline="false" @click='openUpdateDaySorts()'
                    style="margin-left: 20px"
-                   v-if="form.sendType != 4 && formType != 3">修改天数排序
+                   v-if="form.sendType != 4 && formType != 3 && form.templateType != 1">修改天数排序
           </el-link>
           <el-link type="primary" class="el-icon-sort" :underline="false" @click='openUpdateSorts()'
                    style="margin-left: 20px"
-                   v-if="form.sendType != 4 && formType != 3">修改规则排序
+                   v-if="form.sendType != 4 && formType != 3 && form.templateType != 1">修改规则排序
           </el-link>
           <el-link type="primary" class="el-icon-plus" :underline="false" @click='addSetting()'
-                   v-if="form.sendType == 4 && (formType != 3 && setting.length < 1) && roles.includes('add_sop_temp_day')">添加天数
+                   v-if="form.sendType == 4 && (formType != 3 && form.templateType != 1 && setting.length < 1) && roles.includes('add_sop_temp_day')">添加天数
           </el-link>
           <el-tabs v-model="tabIndex" type="card" @tab-remove="delSetting" v-if="setting && setting.length > 0"
                    :before-leave="leave" @tab-click="tabClick">
-            <el-tab-pane v-for="(item, index) in setting" :closable="formType != 3 && roles.includes('del_sop_temp_day')" :key="index" :name="index + ''">
+            <el-tab-pane v-for="(item, index) in setting" :closable="formType != 3 && form.templateType != 1 && roles.includes('del_sop_temp_day')" :key="index" :name="index + ''">
               <el-badge slot="label" :is-dot="!item.id" class="item" style="display: inline-block">
                 <span>{{ '第' + item.dayNum + '天' }}</span>
               </el-badge>
@@ -48,11 +50,11 @@
                     style="background-color: #fbfbfb;padding: 15px;  border: 1px solid #e6e6e6; margin-bottom: 20px;">
                     <el-form :model="item" label-width="80px">
                       <el-form-item v-if="form.sendType != 4" label="内容名称" style="height: 50px;">
-                        <el-input :disabled="formType == 3" v-model="item.name"
+                        <el-input :disabled="formType == 3 || form.templateType == 1" v-model="item.name"
                                   placeholder="内容名称,仅内部可见"/>
                       </el-form-item>
                       <el-form-item label="课程" v-if="form.sendType == 11 && item.content && item.content.length > 0" required>
-                        <el-select :disabled="((formType == 3 || form.sendType == 11) && item.id != null) || !roles.includes('update_sop_temp_scourse')" v-model="item.content[0].courseId"
+                        <el-select :disabled="((formType == 3 || form.templateType == 1 || form.sendType == 11) && item.id != null) || !roles.includes('update_sop_temp_scourse')" v-model="item.content[0].courseId"
                                    placeholder="请选择课程" style=" margin-right: 10px;" size="mini" remote
                                    filterable
                                    @change="courseChangeUpdate(item.content[0], index, 0)">
@@ -567,31 +569,31 @@
                                     <el-col :span="1" :offset="1">
                                       <i class="el-icon-delete" @click="delSetList(index,contentIndex,setIndex)"
                                          style="margin-top: 20px;"
-                                         v-if="content.setting.length>1 && (formType != 3) && roles.includes('del_sop_temp_content') && !(form.sendType == 11 && setIndex == 0)"></i>
+                                         v-if="content.setting.length>1 && (formType != 3 && form.templateType != 1) && roles.includes('del_sop_temp_content') && !(form.sendType == 11 && setIndex == 0)"></i>
                                     </el-col>
                                   </el-row>
                                 </div>
                                 <el-link type="primary" class="el-icon-plus" :underline="false"
                                          @click='addSetList(contentIndex,item.content)'
-                                         v-if="content.type != 4 && formType != 3 && roles.includes('add_sop_temp_content')">添加内容
+                                         v-if="content.type != 4 && formType != 3 && form.templateType != 1 && roles.includes('add_sop_temp_content')">添加内容
                                 </el-link>
                               </el-form>
                             </el-col>
                             <el-col :span="1" :offset="1">
                               <i class="el-icon-delete" @click="delContent(index,contentIndex)"
                                  style="margin-top: 20px;"
-                                 v-if="item.content.length>1 && formType != 3 && roles.includes('del_sop_temp_rule')"></i>
+                                 v-if="item.content.length>1 && formType != 3 && form.templateType != 1 && roles.includes('del_sop_temp_rule')"></i>
                             </el-col>
                           </el-row>
                         </div>
                         <el-link type="primary" class="el-icon-plus" :underline="false" @click='addContent(index)'
-                                 v-if="formType != 3 && form.sendType != 4 && roles.includes('add_sop_temp_rule')">添加规则
+                                 v-if="formType != 3 && form.templateType != 1 && form.sendType != 4 && roles.includes('add_sop_temp_rule')">添加规则
                         </el-link>
                       </el-form-item>
                     </el-form>
 
                   </div>
-                  <div style="float: right;" v-if="formType != 3 && roles.includes('update_sop_temp_day')">
+                  <div style="float: right;" v-if="formType != 3 && form.templateType != 1 && roles.includes('update_sop_temp_day')">
                     <el-button type="primary" @click="save" v-if="!item.voice || item.voice == 0">
                       保存({{ '第' + (1 + (form.gap * index)) + '天' }})
                     </el-button>
@@ -801,6 +803,12 @@ export default {
       }
     };
   },
+  computed: {
+    // 是否为只读模式(查看模式或总后台模板)
+    isReadOnly() {
+      return this.formType == 3 || this.form.templateType == 1;
+    }
+  },
   created() {
     getRoles().then(res => {
       this.roles = res.data;