Explorar el Código

业务线配置修改

wangziqian hace 5 años
padre
commit
a723db1051

+ 2 - 2
src/api/configure.js

@@ -238,9 +238,9 @@ export function deleteBizNoticeSetting(id) {
 }
 
 // 启用/停用通知配置
-export function enableBizNoticeSetting(id) {
+export function enableBizNoticeSetting(id, isEnable) {
   return request({
-    url: TeamManagement + `/setting/enableBizNoticeSetting?id=` + id,
+    url: TeamManagement + `/setting/enableBizNoticeSetting?id=${id}&isEnable=${isEnable}`,
     method: 'get'
   })
 }

+ 17 - 7
src/views/ToConfigure/components/modifyNotice.vue

@@ -55,19 +55,19 @@
           <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" :disabled="disabled">
+          <el-select v-show="item.type === 1 || item.type === 3" 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" :disabled="disabled">
+          <el-select v-show="item.type === 1 || item.type === 3" 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" :disabled="disabled">
+          <el-select v-show="item.type === 2 || item.type === 4" 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" :disabled="disabled">
+          <el-select v-show="item.type === 1 || item.type === 3" 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" :disabled="disabled">
+          <el-select v-show="item.type === 2 || item.type === 4" 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 v-show="!disabled" class="el-icon-remove-outline" @click="removeItem(index)" />
@@ -155,6 +155,7 @@
   </normal-dialog>
 </template>
 <script>
+const _ = require('lodash')
 import {
   showRequireStatusEnum,
   showTaskStatusEnum,
@@ -266,7 +267,7 @@ export default {
     data: {
       handler(newV) {
         if (newV) {
-          this.initData(newV)
+          this.initData(_.cloneDeep(newV))
         }
       },
       deep: true,
@@ -319,6 +320,7 @@ export default {
   methods: {
     initData(data) {
       this.formData = {
+        id: data.id,
         bizId: data.bizId,
         requireOrientIdList: data.requireOrientIdList, // 需求方向
         techModuleIdList: data.techModuleIdList, // 技术模块
@@ -429,7 +431,7 @@ export default {
     },
     addCondition() { // 添加条件
       this.formData.noticeConditionList.push({
-        type: 0, // 1 需求状态 2 需求事件 3 任务状态 4 任务事件
+        type: this.typeList[0].value, // 1 需求状态 2 需求事件 3 任务状态 4 任务事件
         status: 0,
         triggerEvent: 0, // 触发事件: 0 停留 1 交付 2 提测
         greaterTime: 1, // 大于的时间
@@ -480,18 +482,23 @@ export default {
     validate() { // 校验入参
       if (this.formData.requireOrientIdList.length < 1 && this.type === 'require') {
         this.$message({ message: '请选择需求方向', type: 'error', duration: 1000, offset: 150 })
+        return false
       }
       if (this.formData.techModuleIdList.length < 1 && this.type === 'task') {
         this.$message({ message: '请选择技术方向', type: 'error', duration: 1000, offset: 150 })
+        return false
       }
       if (!this.formData.clientId) {
         this.$message({ message: '请选择客户端', type: 'error', duration: 1000, offset: 150 })
+        return false
       }
       if (!this.EmailList && !this.DChartList && !this.GroupList) {
         this.$message({ message: '请选择一种通知方式', type: 'error', duration: 1000, offset: 150 })
+        return false
       }
       if (!this.formData.noticeTime) {
         this.$message({ message: '请选择通知时刻', type: 'error', duration: 1000, offset: 150 })
+        return false
       }
       this.formData.noticeSetting = {
         email: this.noticeList.Email ? this.EmailList : [],
@@ -501,6 +508,9 @@ export default {
       this.data && !this.copy ? this.updateBizNoticeSetting() : this.addBizNoticeSetting()
     },
     async addBizNoticeSetting() { // 新增通知
+      if (this.formData.id) {
+        delete this.formData.id
+      }
       const res = await addBizNoticeSetting(this.formData)
       if (res.code === 200) {
         this.$message({ message: '添加成功', type: 'success', duration: 1000, offset: 150 })

+ 30 - 15
src/views/ToConfigure/components/noticeConfig.vue

@@ -45,27 +45,27 @@
             <label>通知条件:</label>
             <el-tooltip
               effect="dark"
-              content="任务事件 开始开发 1天前开始提醒"
+              :content="item.copywriter.noticeConditionList.join(';')"
               placement="bottom"
               popper-class="item-span-tooltip"
             >
-              <span>任务事件 开始开发 1天前开始提醒</span>
+              <span>{{ item.copywriter.noticeConditionList.join(';') }}</span>
             </el-tooltip>
           </div>
           <div class="item-span">
             <label>通知方式:</label>
-            <span>{{ item.noticeType }}</span>
+            <span>{{ item.copywriter.noticeType }}</span>
           </div>
           <div class="item-span">
             <label>通知时刻:</label>
-            <span>{{ item.noticeTime }}</span>
+            <span>{{ item.copywriter.noticeTime }}</span>
           </div>
-          <el-button size="small" class="item-link">点击查看详情</el-button>
+          <el-button size="small" class="item-link" @click="showDetail(item)">点击查看详情</el-button>
         </div>
         <div class="item-bottom">
           <div v-show="item.isEnable" class="item-status show"><span />启用中</div>
           <div v-show="!item.isEnable" class="item-status hidden"><span />未启用</div>
-          <div class="item-creater"><span>朱晓菲</span>创建于2020-06-06</div>
+          <div class="item-creater"><span>{{ item.creator }}</span>{{ item.gmtCreate }}</div>
           <i class="el-icon-edit-outline" @click="editNotice(item)" />
           <el-popover
             placement="bottom"
@@ -74,7 +74,8 @@
             popper-class="notice-item-popper"
           >
             <ul class="add-require-task">
-              <li @click="enableNotice(item)">停用</li>
+              <li v-show="item.isEnable === 1" @click="enableNotice(item)">停用</li>
+              <li v-show="item.isEnable === 0" @click="enableNotice(item)">启用</li>
               <li @click="editNotice(item,true)">复制</li>
               <li @click="deleteNotice(item)">删除</li>
             </ul>
@@ -101,7 +102,9 @@
       :type="modifyType"
       :data="modifyData"
       :disabled="disabled"
+      :copy="copy"
       @confirm="confirmModify"
+      @cancel="disabled = false;copy = false"
     />
     <normal-dialog
       :show-dialog.sync="controlShow"
@@ -152,7 +155,7 @@ export default {
       },
       total: 0,
       controlShow: false, // 操作弹框
-      controlId: null, // 当前操作的id
+      nowItem: null, // 当前操作的id
       controlType: 0 // 0 删除 1停用
     }
   },
@@ -174,7 +177,7 @@ export default {
         pageSize: this.pages.pageSize
       }
       if (this.activeTab !== -1) {
-        params.status = this.activeTab
+        params.isEnable = this.activeTab
       }
       const res = await getBizNoticeSettingList(params)
       if (res.code === 200) {
@@ -182,6 +185,11 @@ export default {
         this.total = res.total
       }
     },
+    showDetail(item) { // 查看详情
+      this.modifyData = item
+      this.disabled = true
+      this.visibleModify = true
+    },
     editNotice(item, copy = false) { // 编辑通知
       if (item.requireOrientIdList.length > 0) {
         this.modifyType = 'require'
@@ -193,30 +201,37 @@ export default {
       this.visibleModify = true
     },
     deleteNotice(item) { // 删除弹框
-      this.controlId = item.id
+      this.modifyData = item
       this.controlShow = true
       this.controlType = 0
     },
     enableNotice(item) { // 停用/启用 弹框
-      this.controlId = item.id
-      this.controlShow = true
-      this.controlType = 1
+      this.modifyData = item
+      if (this.modifyData.isEnable === 0) {
+        this.enableBizNoticeSetting()
+      } else {
+        this.controlShow = true
+        this.controlType = 1
+      }
     },
     confirmControl() { // 操作确认
       if (this.controlType === 0) this.deleteBizNoticeSetting()
       if (this.controlType === 1) this.enableBizNoticeSetting()
     },
     async deleteBizNoticeSetting() { // 删除请求
-      const res = await deleteBizNoticeSetting(this.controlId)
+      const res = await deleteBizNoticeSetting(this.modifyData.id)
       if (res.code === 200) {
         this.$message({ message: '删除成功', type: 'success', duration: 1000, offset: 150 })
+        this.modifyData = null
         this.getBizNoticeSettingList()
       }
     },
     async enableBizNoticeSetting() { // 停用/启用
-      const res = await enableBizNoticeSetting(this.controlId)
+      const status = Number(!this.modifyData.isEnable)
+      const res = await enableBizNoticeSetting(this.modifyData.id, status)
       if (res.code === 200) {
         this.$message({ message: '操作成功', type: 'success', duration: 1000, offset: 150 })
+        this.modifyData = null
         this.getBizNoticeSettingList()
       }
     },