wangziqian 5 жил өмнө
parent
commit
a51c1e5060

+ 37 - 24
src/views/ToConfigure/components/modifyNotice.vue

@@ -4,6 +4,7 @@
     :title="title"
     :is-default-close="false"
     width="60%"
+    :show-footer="!disabled"
     @confirm="confirmForm()"
     @cancel="cancel()"
   >
@@ -20,6 +21,7 @@
             :options="directionList"
             placeholder="请选择"
             clearable
+            :disabled="disabled"
           />
         </el-form-item>
         <el-form-item v-if="type === 'task'" label="技术模块">
@@ -31,17 +33,18 @@
             :options="directionList"
             placeholder="请选择"
             clearable
+            :disabled="disabled"
           />
         </el-form-item>
       </el-form>
       <el-form ref="form" :model="formData" label-width="100px" label-position="left" :inline="true">
         <el-form-item label="跟版客户端">
-          <el-select v-model="formData.clientId" placeholder="请选择" size="small">
+          <el-select v-model="formData.clientId" placeholder="请选择" size="small" :disabled="disabled">
             <el-option v-for="item in appClientList" :key="'app'+item.code" :label="item.msg" :value="item.code" />
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select v-model="formData.clientVersionId" placeholder="请选择" size="small">
+          <el-select v-model="formData.clientVersionId" placeholder="请选择" size="small" :disabled="disabled">
             <el-option v-for="item in clientList" :key="'client'+item.code" :label="item.msg" :value="item.code" />
           </el-select>
         </el-form-item>
@@ -49,59 +52,59 @@
       <h2 class="form-title">通知条件</h2>
       <el-form ref="form" :model="formData" label-width="100px" label-position="left">
         <el-form-item v-for="(item,index) in formData.noticeConditionList" :key="'condition'+index" label="条件">
-          <el-select v-model="item.type" placeholder="请选择类型" size="small" class="condition-select" @change="changeNoticeItem(item)">
+          <el-select v-model="item.type" placeholder="请选择类型" size="small" class="condition-select" :disabled="disabled" @change="changeNoticeItem(item)">
             <el-option v-for="key in typeList" :key="key.label" :label="key.label" :value="key.value" />
           </el-select>
-          <el-select v-show="item.type === 0" v-model="item.status" placeholder="请选择状态" size="small" class="condition-select">
+          <el-select v-show="item.type === 0" v-model="item.status" placeholder="请选择状态" size="small" class="condition-select" :disabled="disabled">
             <el-option v-for="key in statusList" :key="'status'+key.code" :label="key.msg" :value="key.code" />
           </el-select>
-          <el-select v-show="item.type === 0" v-model="item.triggerEvent" placeholder="请选择" size="small" class="condition-select">
+          <el-select v-show="item.type === 0" v-model="item.triggerEvent" placeholder="请选择" size="small" class="condition-select" :disabled="disabled">
             <el-option v-for="key in triggerList" :key="'trigger'+key.code" :label="key.name" :value="key.code" />
           </el-select>
-          <el-select v-show="item.type === 1" v-model="item.triggerEvent" placeholder="请选择" size="small" class="condition-select">
+          <el-select v-show="item.type === 1" v-model="item.triggerEvent" placeholder="请选择" size="small" class="condition-select" :disabled="disabled">
             <el-option v-for="key in noticeEventList" :key="'event'+key.code" :label="key.name" :value="key.code" />
           </el-select>
-          <el-select v-show="item.type === 0" v-model="item.greaterTime" placeholder="请选择" size="small" class="condition-select">
+          <el-select v-show="item.type === 0" v-model="item.greaterTime" placeholder="请选择" size="small" class="condition-select" :disabled="disabled">
             <el-option v-for="key in rangDaysList" :key="'greaterTime'+key.value" :label="key.label" :value="key.value" />
           </el-select>
-          <el-select v-show="item.type === 1" v-model="item.lessTime" placeholder="请选择" size="small" class="condition-select">
+          <el-select v-show="item.type === 1" v-model="item.lessTime" placeholder="请选择" size="small" class="condition-select" :disabled="disabled">
             <el-option v-for="key in aheadDaysList" :key="'lessTime'+key.value" :label="key.label" :value="key.value" />
           </el-select>
-          <i class="el-icon-remove-outline" @click="removeItem(index)" />
+          <i v-show="!disabled" class="el-icon-remove-outline" @click="removeItem(index)" />
         </el-form-item>
-        <div class="add-condition" @click="addCondition()"><i class="el-icon-circle-plus-outline" /> 添加条件</div>
+        <div v-show="!disabled" class="add-condition" @click="addCondition()"><i class="el-icon-circle-plus-outline" /> 添加条件</div>
       </el-form>
       <h2 class="form-title">通知方式(必选)</h2>
       <el-form ref="form" :model="formData" label-width="100px" label-position="left">
         <!-- 邮件方式 -->
-        <el-checkbox v-model="noticeList.Email" class="notice-check">邮件</el-checkbox>
+        <el-checkbox v-model="noticeList.Email" class="notice-check" :disabled="disabled">邮件</el-checkbox>
         <el-form-item v-for="(item,index) in EmailList" :key="'email'+index" :label="index===0?'通知人群':''">
-          <el-select v-model="item.type" placeholder="请选择" size="small" class="condition-select" @change="changeNoticeType(item)">
+          <el-select v-model="item.type" placeholder="请选择" size="small" class="condition-select" :disabled="disabled" @change="changeNoticeType(item)">
             <el-option v-for="key in noticeGroupList" :key="'email-type'+key.label" :label="key.label" :value="key.value" />
           </el-select>
-          <el-select v-show="item.type===1" v-model="item.teams" placeholder="请选择" size="small" :multiple="true">
+          <el-select v-show="item.type===1" v-model="item.teams" placeholder="请选择" size="small" :multiple="true" :disabled="disabled">
             <el-option v-for="key in teamList" :key="'email-team'+key.teamId" :label="key.teamName" :value="key.teamId" />
           </el-select>
-          <search-people v-show="item.type===2" :value.sync="item.customStaffs" :clearable="false" :multiple="true" />
-          <i v-if="index!==0" class="el-icon-remove-outline" @click="removeMembers(EmailList,index)" />
+          <search-people v-show="item.type===2" :value.sync="item.customStaffs" :clearable="false" :multiple="true" :disabled="disabled" />
+          <i v-if="index!==0 && !disabled" class="el-icon-remove-outline" @click="removeMembers(EmailList,index)" />
         </el-form-item>
-        <div v-show="noticeList.Email" class="add-notice" @click="addMembers(EmailList)"><i class="el-icon-circle-plus-outline" /> 添加人群</div>
+        <div v-show="noticeList.Email && !disabled" class="add-notice" @click="addMembers(EmailList)"><i class="el-icon-circle-plus-outline" /> 添加人群</div>
         <!-- DChart系统方式 -->
-        <el-checkbox v-model="noticeList.DChart" class="notice-check">DChart系统通知</el-checkbox>
+        <el-checkbox v-model="noticeList.DChart" class="notice-check" :disabled="disabled">DChart系统通知</el-checkbox>
         <el-form-item v-for="(item,index) in DChartList" :key="'DChart'+index" :label="index===0?'通知人群':''">
-          <el-select v-model="item.type" placeholder="请选择" size="small" class="condition-select" @change="changeNoticeType(item)">
+          <el-select v-model="item.type" placeholder="请选择" size="small" class="condition-select" :disabled="disabled" @change="changeNoticeType(item)">
             <el-option v-for="key in noticeGroupList" :key="'DChart-type'+key.label" :label="key.label" :value="key.value" />
           </el-select>
-          <el-select v-show="item.type===1" v-model="item.teams" placeholder="请选择" size="small" :multiple="true">
+          <el-select v-show="item.type===1" v-model="item.teams" placeholder="请选择" size="small" :multiple="true" :disabled="disabled">
             <el-option v-for="key in teamList" :key="'DChart-team'+key.teamId" :label="key.teamName" :value="key.teamId" />
           </el-select>
-          <search-people v-show="item.type===2" :value.sync="item.customStaffs" :clearable="false" :multiple="true" />
-          <i v-if="index!==0" class="el-icon-remove-outline" @click="removeMembers(DChartList,index)" />
+          <search-people v-show="item.type===2" :value.sync="item.customStaffs" :clearable="false" :multiple="true" :disabled="disabled" />
+          <i v-if="index!==0 && !disabled" class="el-icon-remove-outline" @click="removeMembers(DChartList,index)" />
         </el-form-item>
-        <div v-show="noticeList.DChart" class="add-notice" @click="addMembers(DChartList)"><i class="el-icon-circle-plus-outline" /> 添加人群</div>
+        <div v-show="noticeList.DChart && !disabled" class="add-notice" @click="addMembers(DChartList)"><i class="el-icon-circle-plus-outline" /> 添加人群</div>
         <!-- DChart群方式 -->
-        <el-checkbox v-model="noticeList.Group" class="notice-check">DChart群通知</el-checkbox>
-        <div v-show="noticeList.Group" class="add-condition">
+        <el-checkbox v-model="noticeList.Group" class="notice-check" :disabled="disabled">DChart群通知</el-checkbox>
+        <div v-show="noticeList.Group && !disabled" class="add-condition">
           <ul v-show="GroupList.length>0" class="group-list">
             <li v-for="(item,index) in GroupList" :key="'gourp-item'+ index" class="group-item">
               <div>{{ item.name }}</div>
@@ -145,6 +148,7 @@
           placeholder="任意时间点"
           size="small"
           value-format="HH:mm:ss"
+          :disabled="disabled"
         />
       </div>
     </article>
@@ -181,6 +185,11 @@ export default {
       type: String,
       default: 'require', // 需求:require,任务:task
       required: false
+    },
+    disabled: {// 查看状态,不可修改
+      type: Boolean,
+      default: false,
+      required: false
     }
   },
   data() {
@@ -274,6 +283,8 @@ export default {
       handler(newV, oldV) {
         if (newV) {
           if (this.EmailList.length === 0) this.EmailList.push({ types: 0, member: false, teams: [], customStaffs: [] })
+        } else {
+          this.EmailList = []
         }
       }
     },
@@ -281,6 +292,8 @@ export default {
       handler(newV, oldV) {
         if (newV) {
           if (this.DChartList.length === 0) this.DChartList.push({ types: 0, member: false, teams: [], customStaffs: [] })
+        } else {
+          this.DChartList = []
         }
       }
     }

+ 2 - 0
src/views/ToConfigure/components/noticeConfig.vue

@@ -100,6 +100,7 @@
       :visible.sync="visibleModify"
       :type="modifyType"
       :data="modifyData"
+      :disabled="disabled"
       @confirm="confirmModify"
     />
     <normal-dialog
@@ -138,6 +139,7 @@ export default {
       activeTab: 1,
       requireImg: requireImg,
       taskImg: taskImg,
+      disabled: false,
       visibleModify: false, // 添加修改弹框
       modifyType: 'require', // 弹框类型
       modifyData: null, // 当前修改的通知