Browse Source

Merge branch 'http_test' into insist

qinzhipeng_v@didiglobal.com 4 năm trước cách đây
mục cha
commit
cbd12ea9f4

+ 10 - 2
src/api/requirement.js

@@ -307,7 +307,7 @@ export function taskDeleteRelationship(id) {
   })
 }
 
-// 同步排期到望
+// 同步排期到望
 export function taskShowRelatedDpmTask(id) {
   return request({
     url: requestIp + `/task/showRelatedDpmTask?id=${id}`,
@@ -315,10 +315,18 @@ export function taskShowRelatedDpmTask(id) {
   })
 }
 
-// 同步排期到望(确认)
+// 同步排期到望(确认)
 export function taskSyncScheduleToDpm(id) {
   return request({
     url: requestIp + `/task/syncScheduleToDpm?id=${id}`,
     method: 'get'
   })
 }
+
+// 同步望岳排期到质惠
+export function requirementSyncDpmWorkflow(id) {
+  return request({
+    url: requestIp + `/requirement/syncDpmWorkflow?id=${id}`,
+    method: 'get'
+  })
+}

+ 81 - 0
src/views/projectManage/components/workflowAndStatus.vue

@@ -0,0 +1,81 @@
+<template>
+  <el-dialog
+    title="拉取望岳状态及工作流"
+    :visible.sync="dialogVisible"
+    width="33%"
+    class="public_task"
+    :before-close="close"
+  >
+    <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="close">取 消</el-button>
+      <el-button type="danger" @click="requirementSyncDpmWorkflow">确 定</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+import '@/styles/PublicStyle/index.scss'
+import { requirementSyncDpmWorkflow } from '@/api/requirement.js'
+export default {
+  props: {
+    visible: { type: Boolean, default: false },
+    name: { type: String, required: true },
+    dpmrequired: { type: String, required: true }
+  },
+  data() {
+    return {
+      dia_content: this.name,
+      dialogVisible: false,
+      requirementId: Number(this.$route.query.id), // 需求id
+      titName: ''
+    }
+  },
+  watch: {
+    visible: {
+      handler(newV, old) {
+        this.dialogVisible = newV
+      },
+      deep: true,
+      immediate: true
+    },
+    dpmrequired: {
+      handler(newV, old) {
+        this.titName = newV
+      },
+      deep: true,
+      immediate: true
+    }
+
+  },
+  methods: {
+    async requirementSyncDpmWorkflow() {
+      const res = await requirementSyncDpmWorkflow(this.requirementId)
+      if (res.code === 200) {
+        this.$emit('update')
+      }
+    },
+    close() {
+      this.dialogVisible = false
+      this.$emit('update')
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.iconSty {
+font-size: 40px;
+color: #F56C6C;
+margin: -24px 10px 0 10px;
+}
+.dia-content {
+  color: #333;
+}
+</style>

+ 39 - 22
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>
@@ -66,26 +66,29 @@
               <div class="title-left-icon" />
               <div class="title-left-name">工作流</div>
             </div>
-            <el-popover
-              v-model="visible"
-              placement="bottom-start"
-              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="requirementHold(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 === 1" size="mini" @click="dialogVisible = true">{{ '拉取望岳状态及工作流' }}</el-button>
+              <el-popover
+                v-model="visible"
+                placement="bottom-start"
+                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="requirementHold(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="requirementId" ref="timeLine1" :name="'需求'" />
         </section>
@@ -281,6 +284,14 @@
       <!-- 排期锁定 -->
       <schedule :visible.sync="scheduleVisble" :name="'需求'" :is-schedule-locked="isScheduleLocked" :require-id="requirementId" @updataData="GetRequireScheduleHistory" />
       <!-- 排期锁定 -->
+      <!-- 状态及工作流 -->
+      <workflowAndStatus
+        :visible.sync="dialogVisible"
+        :name="'需求'"
+        :dpmrequired="toilp"
+        @update="getRequirementById(); dialogVisible=false "
+      />
+      <!-- 状态及工作流 -->
       <drawer
         ref="drawer"
         title="需求成员"
@@ -364,6 +375,7 @@ import demand from '@/views/projectManage/components/demand.vue'
 import record from '@/views/projectManage/components/record.vue'
 import timeLine from '@/views/projectManage/components/timeLine.vue'
 import BasicsCode from '@/views/projectManage/requirement/components/BasicsCode.vue'
+import workflowAndStatus from '@/views/projectManage/components/workflowAndStatus.vue'
 import ganntViews from './components/ganntViews'
 import '@/styles/PublicStyle/index.scss'
 export default {
@@ -382,7 +394,8 @@ export default {
     timeLine,
     demand,
     ganntViews,
-    BasicsCode
+    BasicsCode,
+    workflowAndStatus
   },
   filters: {
     ellipsis(value, num) {
@@ -399,6 +412,8 @@ export default {
       showunlock: true,
       textarea2: '',
       HoldTask: '',
+      dialogVisible: false,
+      toilp: '',
       rules: {
         brdPassRealTime: [{ required: true, message: '请输入BRD评审通过时间', trigger: 'change' }],
         prdPassRealTime: [{ required: true, message: '请输入PRD评审通过时间', trigger: 'change' }],
@@ -575,6 +590,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
         }
@@ -607,6 +623,7 @@ export default {
           }
         }
       })
+      this.$refs.timeLine1.taskGetWorkFlow()
     },
     async getCommentList() { // 获取需求评论
       const res = await getCommentList({ type: 4, joinId: this.$route.query.id })

+ 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()
       }