|
@@ -158,7 +158,7 @@
|
|
|
<el-row>
|
|
|
<span class="demandLayout">排期:</span>
|
|
|
<span class="demandeta">{{ dataList.startTime || '' }} ~ {{ dataList.endTime }}</span>
|
|
|
- <span style="color: #999999; font-size: 14px;">{{ '(' + dataList.scheduleTimeAnnotation.所有 + ')' }}</span>
|
|
|
+ <span v-if="dataList.scheduleTimeAnnotation" style="color: #999999; font-size: 14px;">{{ '(' + dataList.scheduleTimeAnnotation.所有 + ')' }}</span>
|
|
|
</el-row>
|
|
|
<el-row :gutter="20">
|
|
|
<el-col v-for="(item, index) in scheduleDetail" :key="index" :span="12">
|
|
@@ -169,7 +169,30 @@
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<span class="demandLayout">预计上线版本:</span>
|
|
|
- <span v-for="item in preOnlineVersion" :key="item" class="demandeta"> {{ item }} </span>
|
|
|
+ <span v-if="preOnlineVersion && preOnlineVersion.length > 0">
|
|
|
+ <span v-for="item in dataList.preOnlineVersionInfos" :key="item.id">
|
|
|
+ <el-popover placement="top" width="200" trigger="click" class="test">
|
|
|
+ <div class="popover-title">版本时间轴</div>
|
|
|
+ <div class="timeline-soll">
|
|
|
+ <div v-for="(i, y) in timeline" :key="y" class="dateTime-flexStart">
|
|
|
+ <div style="width: 24px">
|
|
|
+ <span class="circular" />
|
|
|
+ <div v-show="y < timeline.length - 1" class="qz-timeline" />
|
|
|
+ </div>
|
|
|
+ <div class="qz-over-hidden">
|
|
|
+ <el-tooltip v-if="i.name.length + i.version.length > 10" class="item" effect="dark" :content="i.name + i.version" placement="right">
|
|
|
+ <span class="version">{{ i.name }}{{ i.version }}</span>
|
|
|
+ </el-tooltip>
|
|
|
+ <span v-else class="version">{{ i.name + i.version }}</span><br>
|
|
|
+ <span class="createTime">{{ i.endTime }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <span slot="reference" class="onlineVersion online" @click="getEventList(item.id)"> {{ item.appName + " " + item.version }} </span>
|
|
|
+ </el-popover>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ <!-- <span v-for="item in preOnlineVersion" :key="item" class="demandeta"> {{ item }} </span> -->
|
|
|
<el-tooltip class="item" effect="dark" content="版本有问题?点击触发重新计算!" placement="right">
|
|
|
<svg-icon :icon-class="icon_problem ? 'problem1' : 'problem'" class="cursorPo" @mouseenter="icon_problem = true" @mouseleave="icon_problem = false" @click="requirementUpdatePreOnlineVersion" />
|
|
|
</el-tooltip>
|
|
@@ -196,6 +219,7 @@ import { taskUpdates } from '@/api/projectViewDetails'
|
|
|
import { memberQueryMemberInfoByIDAPorName } from '@/api/projectIndex'
|
|
|
import schedule from '@/views/projectManage/schedule' // 排期锁定弹窗
|
|
|
import taskDialog from '@/views/projectManage/taskList/dialog/taskDialog' // 任务状态修改(已上线/已提测/已准出)
|
|
|
+import { getEvent } from '@/api/versionsCalendar'
|
|
|
export default {
|
|
|
components: {
|
|
|
scheduleList,
|
|
@@ -231,6 +255,7 @@ export default {
|
|
|
showTaskDialog: false,
|
|
|
taskScheduleList: [],
|
|
|
scheduleList: [],
|
|
|
+ timeline: [],
|
|
|
datas: [{
|
|
|
date: '',
|
|
|
type: '',
|
|
@@ -351,6 +376,12 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
|
|
|
+ getEventList(ele) {
|
|
|
+ getEvent(ele).then(response => {
|
|
|
+ this.timeline = response.data
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
async changeStatus(e) { // 状态改变
|
|
|
if (e.status === 70 || e.status === 90 || e.status === 100) {
|
|
|
this.taskIdObject = e
|
|
@@ -713,3 +744,60 @@ export default {
|
|
|
color: #FFF;
|
|
|
}
|
|
|
</style>
|
|
|
+<style lang="scss" scoped>
|
|
|
+.version {
|
|
|
+ white-space: nowrap;
|
|
|
+ font-size: 12px;
|
|
|
+ color: #333333;
|
|
|
+}
|
|
|
+.qz-over-hidden {
|
|
|
+ width: 144px;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+}
|
|
|
+.createTime {
|
|
|
+ font-size: 12px;
|
|
|
+ color: #999999;
|
|
|
+}
|
|
|
+.timeline-soll {
|
|
|
+ width: 100%;
|
|
|
+ height: 245px;
|
|
|
+ overflow: hidden;
|
|
|
+ overflow-y: auto;
|
|
|
+ padding-right: 15px;
|
|
|
+}
|
|
|
+.qz-timeline {
|
|
|
+ width: 0px;
|
|
|
+ height: calc(100% + 8px);
|
|
|
+ border: 1px solid #E5E5E5;
|
|
|
+ position: relative;
|
|
|
+ top: -8px;
|
|
|
+ left: 8px;
|
|
|
+}
|
|
|
+.dateTime-flexStart {
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-start;
|
|
|
+ margin-bottom: 20px;
|
|
|
+
|
|
|
+}
|
|
|
+.circular {
|
|
|
+ width: 8px;
|
|
|
+ height: 8px;
|
|
|
+ margin: 5px;
|
|
|
+ display: inline-block;
|
|
|
+ border: 1px solid #60AEFF;
|
|
|
+ border-radius: 50%;
|
|
|
+}
|
|
|
+.popover-title {
|
|
|
+ font-size: 14px;
|
|
|
+ font-family: Microsoft Sans Serif;
|
|
|
+ font-weight: 400;
|
|
|
+ margin: 0 0 20px;
|
|
|
+ color: #333333;
|
|
|
+ text-align: center;
|
|
|
+}
|
|
|
+.online:hover {
|
|
|
+ color: #409EFF;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+</style>
|