qinzhipeng_v@didiglobal.com 4 年之前
父节点
当前提交
e9134ed68d

+ 46 - 18
src/views/projectManage/components/workflowAndStatus.vue

@@ -1,45 +1,73 @@
 <template>
   <el-dialog
-    title="提示"
+    title="拉取望岳状态及工作流"
     :visible.sync="dialogVisible"
-    width="30%"
-    :before-close="handleClose"
+    width="33%"
+    class="public_task"
+    :before-close="close"
   >
-    <span>这是一段信息</span>
+    <div class="blueStripe" />
+    <div class="Layout_flex_start">
+      <div class="el-icon-warning iconSty" />
+      <div class="dia-content">
+        <div>点击确定按钮,将同步望岳{{ dia_content }}”<span style="color: rgb(230, 162, 60);">{{ titName }}</span> “的状态及工作流到质惠,同步后质惠上的状态及工作流时间将被覆盖,并且无法恢复,请谨慎操作!</div>
+      </div>
+    </div>
     <span slot="footer" class="dialog-footer">
-      <el-button @click="dialogVisible = false">取 消</el-button>
-      <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
+      <el-button @click="close">取 消</el-button>
+      <el-button type="danger" @click="dialogVisible = false">确 定</el-button>
     </span>
   </el-dialog>
 </template>
 
 <script>
+import '@/styles/PublicStyle/index.scss'
 export default {
   props: {
-    visible: { type: Boolean, default: false }
+    visible: { type: Boolean, default: false },
+    name: { type: String, required: true },
+    dpmrequired: { type: String, required: true }
   },
   data() {
     return {
-      dialogVisible: false
+      dia_content: this.name,
+      dialogVisible: false,
+      titName: ''
     }
   },
   watch: {
-    visible(newVal, olfVal) {
-      this.dialogVisible = newVal
+    visible: {
+      handler(newV, old) {
+        this.dialogVisible = newV
+      },
+      deep: true,
+      immediate: true
+    },
+    dpmrequired: {
+      handler(newV, old) {
+        this.titName = newV
+      },
+      deep: true,
+      immediate: true
     }
+
   },
   methods: {
-    handleClose(done) {
-      this.$confirm('确认关闭?')
-        .then(_ => {
-          done()
-        })
-        .catch(_ => {})
+    close() {
+      this.dialogVisible = false
+      this.$emit('update')
     }
   }
 }
 </script>
 
-<style>
-
+<style lang="scss" scoped>
+.iconSty {
+font-size: 40px;
+color: #F56C6C;
+margin: -24px 10px 0 10px;
+}
+.dia-content {
+  color: #333;
+}
 </style>

+ 23 - 4
src/views/projectManage/requirement/requirementDetail.vue

@@ -7,7 +7,7 @@
           <div class="header-title">
             <span>
               <span class="title-id">REQUIREMENT-{{ form_query.id }} </span>
-              <el-tooltip v-if="form_query.isDirectlyFromDpm === 1" class="item" effect="dark" :content="form_query.relatedDpmRequirementInfo.requirementDisplayId + form_query.relatedDpmRequirementInfo.name" placement="top">
+              <el-tooltip v-if="form_query.isDirectlyFromDpm === 1" class="item" effect="dark" :content="toilp" placement="top">
                 <img class="cursorPo img-logo" src="@/assets/home_images/WX20200914-141851@2x.png" @click="dpmUrl(form_query.dpmUrl)">
               </el-tooltip>
             </span>
@@ -67,7 +67,7 @@
               <div class="title-left-name">工作流</div>
             </div>
             <div>
-              <el-button class="el-btn-size" size="mini" @click="dialogVisible = true">{{ '拉取望岳状态及工作流' }}</el-button>
+              <el-button v-if="form_query.isDirectlyFromDpm === 1" size="mini" @click="dialogVisible = true">{{ '拉取望岳状态及工作流' }}</el-button>
               <el-popover
                 v-model="visible"
                 placement="bottom-start"
@@ -101,6 +101,18 @@
             <div class="title-left-name">基础信息</div>
           </div>
           <div class="detail-info">
+            <el-form :inline="true" :model="form_query" class="demo-form-inline" label-position="left" label-width="100px">
+              <el-form-item label="PM:">
+                <search-people :value.sync="form_query.pm" :clearable="false" @change="changeArea" />
+              </el-form-item>
+              <el-form-item label="开发Leader:">
+                <div>{{ form_query.pm }} <i class="el-icon-edit" /></div>
+                <search-people :value.sync="form_query.pm" :clearable="false" @change="changeArea" />
+              </el-form-item>
+              <el-form-item label="测试Leader:">
+                <search-people :value.sync="form_query.pm" :clearable="false" @change="changeArea" />
+              </el-form-item>
+            </el-form>
             <el-form :inline="true" :model="form_query" class="demo-form-inline" label-position="left" label-width="100px">
               <el-form-item label="所属项目:" class="module">
                 <div v-if="form_query.belongingProject !== -1" @click="jump('项目详情',form_query.belongingProject)">{{ form_query.belongingProjectName }}</div>
@@ -339,7 +351,12 @@
       <schedule :visible.sync="scheduleVisble" :name="'需求'" :is-schedule-locked="isScheduleLocked" :require-id="requirementId" @updataData="GetRequireScheduleHistory" />
       <!-- 排期锁定 -->
       <!-- 状态及工作流 -->
-      <workflowAndStatus :visible.sync="dialogVisible" />
+      <workflowAndStatus
+        :visible.sync="dialogVisible"
+        :name="'需求'"
+        :dpmrequired="toilp"
+        @update="getRequirementById(); dialogVisible=false "
+      />
       <!-- 状态及工作流 -->
       <drawer
         ref="drawer"
@@ -471,6 +488,7 @@ export default {
       taskArray: [{ code: 1, name: '仅任务' }, { code: 2, name: '仅子任务' }, { code: 3, name: '所有任务' }], // 需求下任务展示
       textarea2: '',
       HoldTask: '',
+      toilp: '',
       props: {
         value: 'id',
         label: 'rqmtOrntName',
@@ -596,7 +614,7 @@ export default {
             }
           })
           if (!this.scheduleVisble) {
-            this.$message({ message: '没有权限,请联系PM执行解锁!', type: 'error', duration: 2000, offset: 150 })
+            this.$message({ message: '没有权限,请联系PM、开发Leader、测试Leader执行解锁!', type: 'error', duration: 2000, offset: 150 })
           }
         }
       } else {
@@ -733,6 +751,7 @@ export default {
       const res = await getRequirementById({ id: this.$route.query.id })
       if (res.code === 200) {
         this.form_query = res.data
+        this.toilp = this.form_query.relatedDpmRequirementInfo.requirementDisplayId + this.form_query.relatedDpmRequirementInfo.name
         if (this.form_query.referredClientType !== null) {
           this.form_query.referredClientType = this.form_query.referredClientTypes
         }

+ 36 - 20
src/views/projectManage/taskList/taskViewDetail.vue

@@ -95,26 +95,29 @@
               <div class="title-left-icon" />
               <div class="title-left-name">工作流</div>
             </div>
-            <el-popover
-              v-model="visible"
-              placement="bottom-end"
-              width="300px"
-              :visible-arrow="false"
-              trigger="manual"
-            >
-              <el-input
-                v-model="textarea2"
-                type="textarea"
-                rows="5"
-                style="width:300px"
-                placeholder="请输入Hold原因(选填)"
-              />
-              <div style="text-align: right; margin-top: 10px;">
-                <el-button size="mini" type="text" @click="visible = false">取消</el-button>
-                <el-button type="primary" size="mini" @click="taskHold(textarea2)">确定</el-button>
-              </div>
-              <el-button slot="reference" class="el-btn-size" size="mini" @click="changeBtn">{{ form_query.status === -2 ? HoldTask = '解除 Hold' : HoldTask = 'Hold 任务' }}</el-button>
-            </el-popover>
+            <div>
+              <el-button v-if="form_query.isDirectlyFromDpm === 0 || form_query.isDirectlyFromDpm === 1" size="mini" @click="dialogVisible = true">{{ '拉取望岳状态及工作流' }}</el-button>
+              <el-popover
+                v-model="visible"
+                placement="bottom-end"
+                width="300px"
+                :visible-arrow="false"
+                trigger="manual"
+              >
+                <el-input
+                  v-model="textarea2"
+                  type="textarea"
+                  rows="5"
+                  style="width:300px"
+                  placeholder="请输入Hold原因(选填)"
+                />
+                <div style="text-align: right; margin-top: 10px;">
+                  <el-button size="mini" type="text" @click="visible = false">取消</el-button>
+                  <el-button type="primary" size="mini" @click="taskHold(textarea2)">确定</el-button>
+                </div>
+                <el-button slot="reference" class="el-btn-size" size="mini" @click="changeBtn">{{ form_query.status === -2 ? HoldTask = '解除 Hold' : HoldTask = 'Hold 任务' }}</el-button>
+              </el-popover>
+            </div>
           </div>
           <timeLine :id="taskId" ref="timeLine" :name="'任务'" />
         </section>
@@ -337,6 +340,14 @@
       <!-- 排期锁定 -->
       <schedule ref="ScheduleEvent" :visible.sync="scheduleVisble" :name="'任务'" :is-schedule-locked="isScheduleLocked" :require-id="taskId" @updataData="getScheduleGetTaskScheduleHistory" />
       <!-- 排期锁定 -->
+      <!-- 状态及工作流 -->
+      <workflowAndStatus
+        :visible.sync="dialogVisible"
+        :name="'任务'"
+        :dpmrequired="toilp"
+        @update="taskGet(); dialogVisible=false "
+      />
+      <!-- 状态及工作流 -->
       <!-- 同步望月 -->
       <synchronize-dialog
         v-if="synchronizeDialog"
@@ -406,6 +417,7 @@ import record from '@/views/projectManage/components/record.vue'
 import timeLine from '@/views/projectManage/components/timeLine.vue'
 import { dailyReportCheckStatus, reportreleaseCheckStatus, reportdelivertestCheckStatus } from '@/api/reportTemplate'
 import synchronizeDialog from './dialog/synchronizeDialog' // 同步弹框
+import workflowAndStatus from '@/views/projectManage/components/workflowAndStatus.vue'
 import '@/styles/PublicStyle/index.scss'
 export default {
   components: {
@@ -428,6 +440,7 @@ export default {
     download,
     record,
     timeLine,
+    workflowAndStatus,
     synchronizeDialog
   },
   filters: {
@@ -445,7 +458,9 @@ export default {
       textarea2: '',
       HoldTask: '',
       visible: false, // Hold任务
+      dialogVisible: false,
       showunlock: true,
+      toilp: '',
       ScheduId: '', // 排期ID
       LockState: {}, // 锁定状态
       tips: '', // 后加入需求的任务排期提示
@@ -639,6 +654,7 @@ export default {
       const res = await taskGet(this.$route.query.id)
       if (res.code === 200) {
         this.form_query = res.data
+        this.toilp = this.form_query.relatedDpmTaskInfo.taskId + this.form_query.relatedDpmTaskInfo.name
         this.allStatus = res.data.availableStatusList
         this.$refs.timeLine.taskGetWorkFlow()
       }