对接项目库详情的项目状态
This commit is contained in:
@@ -1813,4 +1813,7 @@ module.exports = {
|
|||||||
certificationActivityManagement:'Certification Activity Management',
|
certificationActivityManagement:'Certification Activity Management',
|
||||||
parameterCollectionProgressManagement:'Parameter Collection Progress Management',
|
parameterCollectionProgressManagement:'Parameter Collection Progress Management',
|
||||||
certificationTaskConfirmation:'Certification Task Confirmation',
|
certificationTaskConfirmation:'Certification Task Confirmation',
|
||||||
|
selectTime:'Select Time',
|
||||||
|
designCompliance:'Design Compliance',
|
||||||
|
verifyCompliance:'Verify Compliance',
|
||||||
}
|
}
|
||||||
@@ -1915,4 +1915,7 @@ module.exports = {
|
|||||||
certificationActivityManagement:'认证活动管理',
|
certificationActivityManagement:'认证活动管理',
|
||||||
parameterCollectionProgressManagement:'参数收集进度管理',
|
parameterCollectionProgressManagement:'参数收集进度管理',
|
||||||
certificationTaskConfirmation:'认证任务确认',
|
certificationTaskConfirmation:'认证任务确认',
|
||||||
|
selectTime:'选择时间',
|
||||||
|
designCompliance:'设计符合性',
|
||||||
|
verifyCompliance:'验证符合性',
|
||||||
}
|
}
|
||||||
@@ -36,7 +36,6 @@
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
loading: false,
|
loading: false,
|
||||||
currentProjectStatusTotal: 0,
|
|
||||||
url: {
|
url: {
|
||||||
getProjectDetailsStatistics: '/project/projectLibraryBase/getProjectDetailsStatistics'
|
getProjectDetailsStatistics: '/project/projectLibraryBase/getProjectDetailsStatistics'
|
||||||
},
|
},
|
||||||
@@ -82,9 +81,12 @@
|
|||||||
getAction(this.url.getProjectDetailsStatistics, { id: id }).then((res) => {
|
getAction(this.url.getProjectDetailsStatistics, { id: id }).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
if (res.result) {
|
if (res.result) {
|
||||||
let dataSource = res.result.currentProjectStatusMap ? res.result.currentProjectStatusMap.currentProjectStatusMapList : []
|
let mainTopDataSource = res.result.taskToConfirmMap ? res.result.taskToConfirmMap.taskToConfirmMapList : []
|
||||||
this.mainLeftEcharts(dataSource)
|
let mainLeftDataSource = res.result.designComplianceMap ? res.result.designComplianceMap.designComplianceMapList : []
|
||||||
this.currentProjectStatusTotal = res.result.currentProjectStatusMap ? res.result.currentProjectStatusMap.currentProjectStatusTotal : 0
|
let mainRightDataSource = res.result.verifyComplianceMap ? res.result.verifyComplianceMap.verifyComplianceMapList : []
|
||||||
|
this.mainTopEcharts(mainTopDataSource)
|
||||||
|
this.mainLeftEcharts(mainLeftDataSource)
|
||||||
|
this.mainRightEcharts(mainRightDataSource)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -124,61 +126,137 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
myChart.on('click', (params) => {
|
// myChart.on('click', (params) => {
|
||||||
let query = {
|
// let query = {
|
||||||
title: params.seriesName,
|
// title: params.seriesName,
|
||||||
projectLibraryId: this.$route.query.id,
|
// projectLibraryId: this.$route.query.id,
|
||||||
operatorType: 'queryCurrentProjectStatusStatistics',
|
// operatorType: 'queryCurrentProjectStatusStatistics',
|
||||||
conditionAssessment: params.data.color
|
// conditionAssessment: params.data.color
|
||||||
}
|
// }
|
||||||
this.$refs.responsibilityListRef.getData(query)
|
// this.$refs.responsibilityListRef.getData(query)
|
||||||
})
|
// })
|
||||||
},
|
},
|
||||||
|
|
||||||
|
mainTopEcharts(dataSource) {
|
||||||
|
let data = []
|
||||||
|
let color = []
|
||||||
|
if (dataSource && dataSource.length > 0) {
|
||||||
|
this.dataSource = [{}]
|
||||||
|
dataSource.forEach(res => {
|
||||||
|
if (res.taskAffirmStatus == 'Not started') {
|
||||||
|
data.push({
|
||||||
|
value: res.taskAffirmStatusCount,
|
||||||
|
name: this.$t('notLaunch'),
|
||||||
|
color: '#00B3BE'
|
||||||
|
})
|
||||||
|
color.push('#00B3BE')
|
||||||
|
} else if (res.taskAffirmStatus == 'List to confirm') {
|
||||||
|
data.push({
|
||||||
|
value: res.taskAffirmStatusCount,
|
||||||
|
name: this.$t('listToConfirm'),
|
||||||
|
color: '#FDA71C'
|
||||||
|
})
|
||||||
|
color.push('#FDA71C')
|
||||||
|
} else if (res.taskAffirmStatus == 'Accepted') {
|
||||||
|
data.push({
|
||||||
|
value: res.taskAffirmStatusCount,
|
||||||
|
name: this.$t('accept'),
|
||||||
|
color: '#26BC4B'
|
||||||
|
})
|
||||||
|
color.push('#26BC4B')
|
||||||
|
} else if (res.taskAffirmStatus == 'Rejected') {
|
||||||
|
data.push({
|
||||||
|
value: res.taskAffirmStatusCount,
|
||||||
|
name: this.$t('refuse'),
|
||||||
|
color: '#E83030'
|
||||||
|
})
|
||||||
|
color.push('#E83030')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.getEcharts('main-top', this.$t('regulatoryTaskConfirmation'), color, data)
|
||||||
|
},
|
||||||
|
|
||||||
mainLeftEcharts(dataSource){
|
mainLeftEcharts(dataSource){
|
||||||
let data = []
|
let data = []
|
||||||
let color = []
|
let color = []
|
||||||
if (dataSource && dataSource.length > 0) {
|
if (dataSource && dataSource.length > 0) {
|
||||||
this.dataSource = [{}]
|
this.dataSource = [{}]
|
||||||
dataSource.forEach(res => {
|
dataSource.forEach(res => {
|
||||||
if (res.color == '4') {
|
if (res.designFlowTaskStatus == 'Not started') {
|
||||||
data.push({
|
data.push({
|
||||||
value: res.conditionAssessmentCount,
|
value: res.designFlowTaskStatusCount,
|
||||||
name: this.$t('blue'),
|
name: this.$t('notLaunch'),
|
||||||
color: res.color
|
color: '#00B3BE'
|
||||||
})
|
})
|
||||||
color.push('#00B3BE')
|
color.push('#00B3BE')
|
||||||
this.dataSource[0].blueCount = res.conditionAssessmentCount
|
} else if (res.designFlowTaskStatus == 'List to confirm') {
|
||||||
} else if (res.color == '1') {
|
|
||||||
data.push({
|
data.push({
|
||||||
value: res.conditionAssessmentCount,
|
value: res.designFlowTaskStatusCount,
|
||||||
name: this.$t('red'),
|
name: this.$t('listToConfirm'),
|
||||||
color: res.color
|
color: '#FDA71C'
|
||||||
})
|
|
||||||
color.push('#E83030')
|
|
||||||
this.dataSource[0].redCount = res.conditionAssessmentCount
|
|
||||||
} else if (res.color == '2') {
|
|
||||||
data.push({
|
|
||||||
value: res.conditionAssessmentCount,
|
|
||||||
name: this.$t('yellow'),
|
|
||||||
color: res.color
|
|
||||||
})
|
})
|
||||||
color.push('#FDA71C')
|
color.push('#FDA71C')
|
||||||
this.dataSource[0].yellowCount = res.conditionAssessmentCount
|
} else if (res.designFlowTaskStatus == 'Compliance') {
|
||||||
} else if (res.color == '3') {
|
|
||||||
data.push({
|
data.push({
|
||||||
value: res.conditionAssessmentCount,
|
value: res.designFlowTaskStatusCount,
|
||||||
name: this.$t('green'),
|
name: this.$t('compliance'),
|
||||||
color: res.color
|
color: '#26BC4B'
|
||||||
})
|
})
|
||||||
this.dataSource[0].greenCount = res.conditionAssessmentCount
|
color.push('#26BC4B')
|
||||||
color.push('#26BD4B')
|
} else if (res.designFlowTaskStatus == 'Non-Compliance') {
|
||||||
|
data.push({
|
||||||
|
value: res.designFlowTaskStatusCount,
|
||||||
|
name: this.$t('nonCompliance'),
|
||||||
|
color: '#707486'
|
||||||
|
})
|
||||||
|
color.push('#707486')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
this.getEcharts('main-left', this.$t('regulatoryTaskConfirmation'), color, data)
|
this.getEcharts('main-left', this.$t('designCompliance'), color, data)
|
||||||
this.getEcharts('main-right', this.$t('regulatoryTaskConfirmation'), color, data)
|
|
||||||
this.getEcharts('main-top', this.$t('regulatoryTaskConfirmation'), color, data)
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
mainRightEcharts(dataSource){
|
||||||
|
let data = []
|
||||||
|
let color = []
|
||||||
|
if (dataSource && dataSource.length > 0) {
|
||||||
|
this.dataSource = [{}]
|
||||||
|
dataSource.forEach(res => {
|
||||||
|
if (res.verifyFlowTaskStatus == 'Not started') {
|
||||||
|
data.push({
|
||||||
|
value: res.verifyFlowTaskStatusCount,
|
||||||
|
name: this.$t('notLaunch'),
|
||||||
|
color: '#00B3BE'
|
||||||
|
})
|
||||||
|
color.push('#00B3BE')
|
||||||
|
} else if (res.verifyFlowTaskStatus == 'List to confirm') {
|
||||||
|
data.push({
|
||||||
|
value: res.verifyFlowTaskStatusCount,
|
||||||
|
name: this.$t('listToConfirm'),
|
||||||
|
color: '#FDA71C'
|
||||||
|
})
|
||||||
|
color.push('#FDA71C')
|
||||||
|
} else if (res.verifyFlowTaskStatus == 'Compliance') {
|
||||||
|
data.push({
|
||||||
|
value: res.verifyFlowTaskStatusCount,
|
||||||
|
name: this.$t('compliance'),
|
||||||
|
color: '#26BC4B'
|
||||||
|
})
|
||||||
|
color.push('#26BC4B')
|
||||||
|
} else if (res.verifyFlowTaskStatus == 'Non-Compliance') {
|
||||||
|
data.push({
|
||||||
|
value: res.verifyFlowTaskStatusCount,
|
||||||
|
name: this.$t('nonCompliance'),
|
||||||
|
color: '#707486'
|
||||||
|
})
|
||||||
|
color.push('#707486')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.getEcharts('main-right', this.$t('verifyCompliance'), color, data)
|
||||||
|
},
|
||||||
|
|
||||||
responsibility(item) {
|
responsibility(item) {
|
||||||
this.$emit('currentStatus', item)
|
this.$emit('currentStatus', item)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<div class="table-page-search-wrapper">
|
<div class="table-page-search-wrapper">
|
||||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<a-col :md="6" :sm="8">
|
<a-col :md="5" :sm="8">
|
||||||
<div class="box-title-text">
|
<div class="box-title-text">
|
||||||
<div class="title-text" :title="$t('entryName')">
|
<div class="title-text" :title="$t('entryName')">
|
||||||
<span>{{ $t('entryName') }}</span>
|
<span>{{ $t('entryName') }}</span>
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
v-model="queryParam.projectName"></j-input>
|
v-model="queryParam.projectName"></j-input>
|
||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="6" :sm="8">
|
<a-col :md="5" :sm="8">
|
||||||
<div class="box-title-text">
|
<div class="box-title-text">
|
||||||
<div class="title-text" :title="$t('targetMarket')">
|
<div class="title-text" :title="$t('targetMarket')">
|
||||||
<span>{{ $t('targetMarket') }}</span>
|
<span>{{ $t('targetMarket') }}</span>
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
:triggerChange="false" :dictCode="'region'"/>
|
:triggerChange="false" :dictCode="'region'"/>
|
||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="6" :sm="8">
|
<a-col :md="5" :sm="8">
|
||||||
<div class="box-title-text">
|
<div class="box-title-text">
|
||||||
<div class="title-text" :title="$t('brand')">
|
<div class="title-text" :title="$t('brand')">
|
||||||
<span>{{ $t('brand') }}</span>
|
<span>{{ $t('brand') }}</span>
|
||||||
@@ -34,23 +34,15 @@
|
|||||||
:triggerChange="false" :dictCode="'brand'"/>
|
:triggerChange="false" :dictCode="'brand'"/>
|
||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
<span style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
|
<a-col :md="5" :sm="8">
|
||||||
<a-col :md="6" :sm="24">
|
<div class="box-title-text">
|
||||||
<a-button class="box-button"
|
<div class="title-text" :title="$t('selectTime')">
|
||||||
@click="searchReset">{{ $t('reset') }}</a-button>
|
<span>{{ $t('selectTime') }}</span>
|
||||||
<a-button style="margin-left: 8px" class="box-button" type="primary" @click="searchQuery">{{ $t('query') }}</a-button>
|
|
||||||
</a-col>
|
|
||||||
</span>
|
|
||||||
</a-row>
|
|
||||||
</a-form>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="box-top">
|
|
||||||
<span class="box-top-text">{{ $t('regulatoryCertificationTaskPlan') }}</span>
|
|
||||||
<span class="box-top-text fullScreenView" @click="TaskPlanListClick">{{ $t('fullScreenView') }}</span>
|
|
||||||
<span style="float: right" class="box-top-text-right">
|
|
||||||
<a-range-picker
|
<a-range-picker
|
||||||
:placeholder="[this.$t('startMonth'), this.$t('endMonth')]"
|
:placeholder="[this.$t('startMonth'), this.$t('endMonth')]"
|
||||||
format="YYYY-MM"
|
format="YYYY-MM"
|
||||||
|
class="box-input"
|
||||||
v-model="getTime"
|
v-model="getTime"
|
||||||
:mode="mode2"
|
:mode="mode2"
|
||||||
:open="open"
|
:open="open"
|
||||||
@@ -64,6 +56,23 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-range-picker>
|
</a-range-picker>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<span style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
|
||||||
|
<a-col :md="4" :sm="24">
|
||||||
|
<a-button class="box-button"
|
||||||
|
@click="searchReset">{{ $t('reset') }}</a-button>
|
||||||
|
<a-button style="margin-left: 8px" class="box-button" type="primary" @click="searchQuery">{{ $t('query') }}</a-button>
|
||||||
|
</a-col>
|
||||||
|
</span>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
<div class="box-top">
|
||||||
|
<!-- <span class="box-top-text">{{ $t('regulatoryCertificationTaskPlan') }}</span>-->
|
||||||
|
<!-- <span class="box-top-text fullScreenView" @click="TaskPlanListClick">{{ $t('fullScreenView') }}</span>-->
|
||||||
|
<span style="float: right" class="box-top-text-right">
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
<div class="box-top-content" style="position: relative">
|
<div class="box-top-content" style="position: relative">
|
||||||
<!-- <div id="main"></div>-->
|
<!-- <div id="main"></div>-->
|
||||||
@@ -90,21 +99,42 @@
|
|||||||
<div class="box-top-content-right-bottom">
|
<div class="box-top-content-right-bottom">
|
||||||
<div class="process-content" v-for="(item,index) in timeData" :key="index">
|
<div class="process-content" v-for="(item,index) in timeData" :key="index">
|
||||||
<div class="process-content-right-xian"></div>
|
<div class="process-content-right-xian"></div>
|
||||||
|
<div class="process-content-right-xian-one"></div>
|
||||||
<div class="process-content-content" :style="val.left"
|
<div class="process-content-content" :style="val.left"
|
||||||
v-for="(val,indexOne) in item.data[0]" :key="indexOne">
|
v-for="(val,indexOne) in item.data[0]" :key="indexOne">
|
||||||
<div class="process-content-right-top" v-if="indexOne % 2 == 0" :title="val.name">{{ val.name }}</div>
|
<div class="process-content-right-top" :title="val.name">{{ val.name }}</div>
|
||||||
<div class="process-content-right-button" v-if="indexOne % 2 == 1" :title="val.name">{{ val.name }}
|
<!-- <div class="process-content-right-button" v-if="indexOne % 2 == 1" :title="val.name">{{ val.name }}-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<a-tooltip placement="topLeft" overlayClassName="tooltipColor">
|
||||||
|
<template slot="title">
|
||||||
|
<span>{{ val.time.slice(0, 11) }}</span>
|
||||||
|
</template>
|
||||||
|
<img v-if="val.status == 1" src="../../../assets/heiTop.png" class="process-content-left"
|
||||||
|
alt="">
|
||||||
|
<img v-else-if="val.status == 2" src="../../../assets/kongTop.png"
|
||||||
|
class="process-content-left"
|
||||||
|
alt="">
|
||||||
|
<img v-else-if="val.status == 3" src="../../../assets/shiTop.png" class="process-content-left"
|
||||||
|
alt="">
|
||||||
|
</a-tooltip>
|
||||||
|
|
||||||
|
<!-- <div class="process-content-right-button">{{val.time.slice(0,11)}}</div>-->
|
||||||
|
</div>
|
||||||
|
<div class="process-content-contentOne" :style="val.left"
|
||||||
|
v-for="(val,indexTwo) in item.data[0]">
|
||||||
|
<!-- <div class="process-content-right-top" v-if="indexOne % 2 == 0" :title="val.name">{{ val.name }}</div>-->
|
||||||
|
<div class="process-content-right-button" :title="val.name">{{ val.name }}
|
||||||
</div>
|
</div>
|
||||||
<a-tooltip placement="topLeft" overlayClassName="tooltipColor">
|
<a-tooltip placement="topLeft" overlayClassName="tooltipColor">
|
||||||
<template slot="title">
|
<template slot="title">
|
||||||
<span>{{ val.time.slice(0, 11) }}</span>
|
<span>{{ val.time.slice(0, 11) }}</span>
|
||||||
</template>
|
</template>
|
||||||
<img v-if="val.status == 1" src="../../../assets/done.svg" class="process-content-left"
|
<img v-if="val.status == 1" src="../../../assets/huiBottom.png" class="process-content-left"
|
||||||
alt="">
|
alt="">
|
||||||
<img v-else-if="val.status == 2" src="../../../assets/open.svg"
|
<img v-else-if="val.status == 2" src="../../../assets/kongBottom.png"
|
||||||
class="process-content-left"
|
class="process-content-left"
|
||||||
alt="">
|
alt="">
|
||||||
<img v-else-if="val.status == 3" src="../../../assets/inprogress.svg" class="process-content-left"
|
<img v-else-if="val.status == 3" src="../../../assets/shiBottom.png" class="process-content-left"
|
||||||
alt="">
|
alt="">
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
|
|
||||||
@@ -121,57 +151,57 @@
|
|||||||
<JLoading :loading="loadingMain">{{ this.$t('dataLoading') }}</JLoading>
|
<JLoading :loading="loadingMain">{{ this.$t('dataLoading') }}</JLoading>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-bottom">
|
<!-- <div class="box-bottom">-->
|
||||||
<span class="box-top-text">{{ $t('projectStatusAndProgress') }}</span>
|
<!-- <span class="box-top-text">{{ $t('projectStatusAndProgress') }}</span>-->
|
||||||
<span class="box-top-text fullScreenView" @click="projectNameClick">{{ $t('fullScreenView') }}</span>
|
<!-- <span class="box-top-text fullScreenView" @click="projectNameClick">{{ $t('fullScreenView') }}</span>-->
|
||||||
<div>
|
<!-- <div>-->
|
||||||
<a-table
|
<!-- <a-table-->
|
||||||
ref="table"
|
<!-- ref="table"-->
|
||||||
size="middle"
|
<!-- size="middle"-->
|
||||||
:components="drag(columns,'columns')"
|
<!-- :components="drag(columns,'columns')"-->
|
||||||
:loading="loading"
|
<!-- :loading="loading"-->
|
||||||
:pagination="false"
|
<!-- :pagination="false"-->
|
||||||
:scroll="{x: '100%',y:500}"
|
<!-- :scroll="{x: '100%',y:500}"-->
|
||||||
:data-source="dataSource"
|
<!-- :data-source="dataSource"-->
|
||||||
:columns="columns"
|
<!-- :columns="columns"-->
|
||||||
>
|
<!-- >-->
|
||||||
<span slot="projectStatusTitle">
|
<!-- <span slot="projectStatusTitle">-->
|
||||||
<span>{{ this.$t('CurrentStatusOfTheProject') }}</span><br />
|
<!-- <span>{{ this.$t('CurrentStatusOfTheProject') }}</span><br />-->
|
||||||
<span>{{ '(' + $t('red') + '/' + $t('yellow') + '/' + $t('green') + '/' + $t('blue') + ')' }}</span>
|
<!-- <span>{{ '(' + $t('red') + '/' + $t('yellow') + '/' + $t('green') + '/' + $t('blue') + ')' }}</span>-->
|
||||||
</span>
|
<!-- </span>-->
|
||||||
<span slot="CertificationProgressTitle">
|
<!-- <span slot="CertificationProgressTitle">-->
|
||||||
<span>{{ this.$t('CertificationProgress') }}</span><br />
|
<!-- <span>{{ this.$t('CertificationProgress') }}</span><br />-->
|
||||||
<span>{{ '(' + $t('notInvolved') + '/' + $t('toBeStarted') + '/' + $t('inProgress') + '/' + $t('experimentFailed') + '/' + $t('experimentPassed') + ')'
|
<!-- <span>{{ '(' + $t('notInvolved') + '/' + $t('toBeStarted') + '/' + $t('inProgress') + '/' + $t('experimentFailed') + '/' + $t('experimentPassed') + ')'-->
|
||||||
}}</span>
|
<!-- }}</span>-->
|
||||||
</span>
|
<!-- </span>-->
|
||||||
<span slot="listConfirmationStatusTitle">
|
<!-- <span slot="listConfirmationStatusTitle">-->
|
||||||
<span>{{ this.$t('listConfirmation') }}</span><br />
|
<!-- <span>{{ this.$t('listConfirmation') }}</span><br />-->
|
||||||
<span>{{ '(' + $t('notLaunch') + '/' + $t('toBeConfirmed') + '/' + $t('accept') + '/' + $t('refuse') + ')'
|
<!-- <span>{{ '(' + $t('notLaunch') + '/' + $t('toBeConfirmed') + '/' + $t('accept') + '/' + $t('refuse') + ')'-->
|
||||||
}}</span>
|
<!-- }}</span>-->
|
||||||
</span>
|
<!-- </span>-->
|
||||||
<span slot="taskAffirmStatusTitle">
|
<!-- <span slot="taskAffirmStatusTitle">-->
|
||||||
<span>{{ this.$t('taskAffirm') }}</span><br />
|
<!-- <span>{{ this.$t('taskAffirm') }}</span><br />-->
|
||||||
<span>{{ '(' + $t('notLaunch') + '/' + $t('toBeConfirmed') + '/' + $t('accept') + '/' + $t('refuse') + ')'
|
<!-- <span>{{ '(' + $t('notLaunch') + '/' + $t('toBeConfirmed') + '/' + $t('accept') + '/' + $t('refuse') + ')'-->
|
||||||
}}</span>
|
<!-- }}</span>-->
|
||||||
</span>
|
<!-- </span>-->
|
||||||
<span slot="designComplianceReviewTitle">
|
<!-- <span slot="designComplianceReviewTitle">-->
|
||||||
<span>{{ this.$t('designComplianceReview') }}</span><br />
|
<!-- <span>{{ this.$t('designComplianceReview') }}</span><br />-->
|
||||||
<span>{{ '(' + $t('toBeConfirmed') + '/' + $t('accord') + '/' + $t('nonConformity') + '/' + $t('Tracked') + '/' + $t('notInvolved') + '/' + $t('taskTermination') + ')'
|
<!-- <span>{{ '(' + $t('toBeConfirmed') + '/' + $t('accord') + '/' + $t('nonConformity') + '/' + $t('Tracked') + '/' + $t('notInvolved') + '/' + $t('taskTermination') + ')'-->
|
||||||
}}</span>
|
<!-- }}</span>-->
|
||||||
</span>
|
<!-- </span>-->
|
||||||
<span slot="preHomeConfirmationTitle">
|
<!-- <span slot="preHomeConfirmationTitle">-->
|
||||||
<span>{{ this.$t('preHomeConfirmation') }}</span><br />
|
<!-- <span>{{ this.$t('preHomeConfirmation') }}</span><br />-->
|
||||||
<span>{{ '(' + $t('toBeConfirmed') + '/' + $t('accord') + '/' + $t('nonConformity') + '/' + $t('Tracked') + '/' + $t('notInvolved') + '/' + $t('taskTermination') + ')'
|
<!-- <span>{{ '(' + $t('toBeConfirmed') + '/' + $t('accord') + '/' + $t('nonConformity') + '/' + $t('Tracked') + '/' + $t('notInvolved') + '/' + $t('taskTermination') + ')'-->
|
||||||
}}</span>
|
<!-- }}</span>-->
|
||||||
</span>
|
<!-- </span>-->
|
||||||
<span slot="verificationComplianceReviewTitle">
|
<!-- <span slot="verificationComplianceReviewTitle">-->
|
||||||
<span>{{ this.$t('verificationComplianceReview') }}</span><br />
|
<!-- <span>{{ this.$t('verificationComplianceReview') }}</span><br />-->
|
||||||
<span>{{ '(' + $t('toBeConfirmed') + '/' + $t('accord') + '/' + $t('nonConformity') + '/' + $t('Tracked') + '/' + $t('notInvolved') + '/' + $t('taskTermination') + ')'
|
<!-- <span>{{ '(' + $t('toBeConfirmed') + '/' + $t('accord') + '/' + $t('nonConformity') + '/' + $t('Tracked') + '/' + $t('notInvolved') + '/' + $t('taskTermination') + ')'-->
|
||||||
}}</span>
|
<!-- }}</span>-->
|
||||||
</span>
|
<!-- </span>-->
|
||||||
</a-table>
|
<!-- </a-table>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</a-card>
|
</a-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -275,6 +305,7 @@ export default {
|
|||||||
this.getList()
|
this.getList()
|
||||||
this.getTimeline()
|
this.getTimeline()
|
||||||
this.handlingTime = moment(new Date()).format('YYYY-MM-DD')
|
this.handlingTime = moment(new Date()).format('YYYY-MM-DD')
|
||||||
|
// this.handlingTime = '2023-04-30'
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getNewDate(flag, many) {
|
getNewDate(flag, many) {
|
||||||
@@ -360,13 +391,13 @@ export default {
|
|||||||
},
|
},
|
||||||
okChange() {
|
okChange() {
|
||||||
this.open = false
|
this.open = false
|
||||||
this.getTimeline()
|
// this.getTimeline()
|
||||||
},
|
},
|
||||||
hodeChange() {
|
hodeChange() {
|
||||||
this.getTime = []
|
this.getTime = []
|
||||||
this.startTime = undefined
|
this.startTime = undefined
|
||||||
this.endTime = undefined
|
this.endTime = undefined
|
||||||
this.getTimeline()
|
// this.getTimeline()
|
||||||
},
|
},
|
||||||
panelChange(value, mode) {
|
panelChange(value, mode) {
|
||||||
this.getTime = value
|
this.getTime = value
|
||||||
@@ -451,10 +482,10 @@ export default {
|
|||||||
for (let i = 0; i < timeData.length; i++) {
|
for (let i = 0; i < timeData.length; i++) {
|
||||||
for (let j = 0; j < timeData[i].data[0].length; j++) {
|
for (let j = 0; j < timeData[i].data[0].length; j++) {
|
||||||
for (let k = 0; k < dataList.length; k++) {
|
for (let k = 0; k < dataList.length; k++) {
|
||||||
let num = (Math.ceil(clientWidth / 31)) * parseInt(timeData[i].data[0][j].time.slice(8, 10))
|
let num = (Math.ceil(clientWidth / 30)) * parseInt(timeData[i].data[0][j].time.slice(8, 10))
|
||||||
timeList.forEach((res, index) => {
|
timeList.forEach((res, index) => {
|
||||||
if (timeData[i].data[0][j].time.slice(0, 7) == res.slice(0, 7)) {
|
if (timeData[i].data[0][j].time.slice(0, 7) == res.slice(0, 7)) {
|
||||||
timeData[i].data[0][j].left = 'left:' + ((clientWidth * index + num) - 16) + 'px'
|
timeData[i].data[0][j].left = 'left:' + ((clientWidth * index + num) - 10) + 'px'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -464,11 +495,15 @@ export default {
|
|||||||
contentRightXian[0].style = 'display:none'
|
contentRightXian[0].style = 'display:none'
|
||||||
let clientWidthOne = dataList[0].clientWidth
|
let clientWidthOne = dataList[0].clientWidth
|
||||||
clientWidthOne = clientWidthOne / length
|
clientWidthOne = clientWidthOne / length
|
||||||
let num = Math.ceil(clientWidthOne / 31) * parseInt(this.handlingTime.slice(8, 10))
|
let num = (Math.floor(clientWidthOne / 30 * 10000)/10000) * parseInt(this.handlingTime.slice(8, 10))
|
||||||
timeList.forEach((res, index) => {
|
timeList.forEach((res, index) => {
|
||||||
if (res.slice(0, 7) == this.handlingTime.slice(0, 7)) {
|
if (res.slice(0, 7) == this.handlingTime.slice(0, 7)) {
|
||||||
contentRightText[0].style = 'left:' + ((clientWidthOne * index + num) - 24) + 'px;' + 'display:block'
|
if (timeList.length - 1 == index) {
|
||||||
contentRightXian[0].style = 'left:' + ((clientWidthOne * index + num) + 10) + 'px;' + 'display:block'
|
contentRightText[0].style = 'left:' + ((clientWidthOne * index + num)-84) + 'px;' + 'display:block;border-radius: 2px 0 2px 2px;'
|
||||||
|
}else{
|
||||||
|
contentRightText[0].style = 'left:' + ((clientWidthOne * index + num)+2) + 'px;' + 'display:block;border-radius: 2px 2px 2px 0;'
|
||||||
|
}
|
||||||
|
contentRightXian[0].style = 'left:' + ((clientWidthOne * index + num)+2) + 'px;' + 'display:block'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -491,6 +526,9 @@ export default {
|
|||||||
},
|
},
|
||||||
searchReset() {
|
searchReset() {
|
||||||
this.queryParam = {}
|
this.queryParam = {}
|
||||||
|
this.getTime = []
|
||||||
|
this.startTime = undefined
|
||||||
|
this.endTime = undefined
|
||||||
this.getTimeline()
|
this.getTimeline()
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
@@ -519,26 +557,29 @@ export default {
|
|||||||
query: item
|
query: item
|
||||||
})
|
})
|
||||||
window.open(newUrl.href, '_blank')
|
window.open(newUrl.href, '_blank')
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
.box-top-text-right .ant-calendar-picker-input {
|
.box-top-text-right .ant-calendar-picker-input {
|
||||||
height: 38px;
|
height: 10px;
|
||||||
width: 300px;
|
width: 300px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-calendar-footer-btn .ant-calendar-footer-extra {
|
.ant-calendar-footer-btn .ant-calendar-footer-extra {
|
||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.overlayClassName .ant-tooltip-inner {
|
.overlayClassName .ant-tooltip-inner {
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
background-color: rgba(0, 0, 0, 0.75) !important;
|
background-color: rgba(0, 0, 0, 0.75) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.overlayClassName .ant-tooltip-arrow::before {
|
.overlayClassName .ant-tooltip-arrow::before {
|
||||||
background-color: rgba(0, 0, 0, 0.75) !important;
|
background-color: rgba(0, 0, 0, 0.75) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.overlayClassName {
|
.overlayClassName {
|
||||||
max-width: 500px !important;
|
max-width: 500px !important;
|
||||||
}
|
}
|
||||||
@@ -586,7 +627,7 @@ export default {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
height: 500px;
|
height: 500px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
padding: 0 58px 20px 10px;
|
padding: 0 0 20px 10px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
@@ -615,7 +656,7 @@ export default {
|
|||||||
.box-top-text-right {
|
.box-top-text-right {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
float: right;
|
float: right;
|
||||||
height: 38px;
|
height: 10px;
|
||||||
width: 300px;
|
width: 300px;
|
||||||
margin-top: -4px;
|
margin-top: -4px;
|
||||||
}
|
}
|
||||||
@@ -627,17 +668,17 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.box-top-content-left {
|
.box-top-content-left {
|
||||||
width: 140px;
|
width: 119px;
|
||||||
float: left;
|
float: left;
|
||||||
padding-top: 57px;
|
padding-top: 52px;
|
||||||
margin-right: 20px;
|
margin-right: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.box-top-content-left-text {
|
.box-top-content-left-text {
|
||||||
color: #191E29;
|
color: #191E29;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
height: 84px;
|
height: 110px;
|
||||||
letter-spacing: 0px;
|
letter-spacing: 0px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
@@ -646,7 +687,7 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.box-top-content-right {
|
.box-top-content-right {
|
||||||
width: calc(100% - 160px);
|
width: calc(100% - 135px);
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -658,8 +699,8 @@ export default {
|
|||||||
top: 0;
|
top: 0;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
padding-top: 20px;
|
padding-top: 34px;
|
||||||
padding-left: 160px;
|
padding-left: 135px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.box-top-content-right-top-text {
|
.box-top-content-right-top-text {
|
||||||
@@ -683,12 +724,13 @@ export default {
|
|||||||
|
|
||||||
.box-top-content-right-bottom {
|
.box-top-content-right-bottom {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding-top: 50px;
|
/*padding-top: 50px;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
.process-content {
|
.process-content {
|
||||||
position: relative;
|
position: relative;
|
||||||
height: 84px;
|
height: 110px;
|
||||||
|
/*overflow:hidden;*/
|
||||||
|
|
||||||
.process-content-content {
|
.process-content-content {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
@@ -697,14 +739,70 @@ export default {
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
left: 40px;
|
left: 40px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
width: 24px;
|
width: 16px;
|
||||||
height: 24px;
|
height: 16px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
margin-top: 5px;
|
margin-top: 37px;
|
||||||
|
|
||||||
.process-content-left {
|
.process-content-left {
|
||||||
width: 24px;
|
width: 16px;
|
||||||
height: 24px;
|
height: 16px;
|
||||||
|
/*margin-top: 5px;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
.process-content-right-top {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #040B29;
|
||||||
|
width: 75px;
|
||||||
|
background: #fff;
|
||||||
|
display: inline-block;
|
||||||
|
overflow: hidden;
|
||||||
|
position: absolute;
|
||||||
|
top: -12px;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.process-content-right-button {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #040B29;
|
||||||
|
width: 75px;
|
||||||
|
background: #fff;
|
||||||
|
display: inline-block;
|
||||||
|
overflow: hidden;
|
||||||
|
position: absolute;
|
||||||
|
top: 12px;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.process-content-right-button {
|
||||||
|
width: 75px;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #6F7385;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 34px;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.process-content-contentOne {
|
||||||
|
background: #fff;
|
||||||
|
z-index: 98;
|
||||||
|
/*padding: 0 6px;*/
|
||||||
|
position: absolute;
|
||||||
|
left: 40px;
|
||||||
|
text-align: center;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-top: 63px;
|
||||||
|
|
||||||
|
.process-content-left {
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
/*margin-top: 5px;*/
|
/*margin-top: 5px;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -747,31 +845,44 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.process-content-right-xian {
|
.process-content-right-xian {
|
||||||
height: 2px;
|
height: 1px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background: #E6E6E9;
|
background: #E6E6E9;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 16px;
|
top: 48px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.process-content-right-xian-one {
|
||||||
|
height: 1px;
|
||||||
|
width: 100%;
|
||||||
|
background: #E6E6E9;
|
||||||
|
position: absolute;
|
||||||
|
top: 74px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.box-top-content-right-xian {
|
.box-top-content-right-xian {
|
||||||
width: 2px;
|
height: 120%;
|
||||||
height: 100%;
|
border-left: 1px #D92E2E solid;
|
||||||
border: 1px #21c9cc dashed;
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: -36px;
|
top: -42px;
|
||||||
z-index: 999;
|
z-index: 999;
|
||||||
}
|
}
|
||||||
|
|
||||||
.box-top-content-right-text {
|
.box-top-content-right-text {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: -60px;
|
top: -68px;
|
||||||
color: #21c9cc;
|
color: #E63030;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 14px;
|
font-size: 12px;
|
||||||
width: 100px;
|
text-align: center;
|
||||||
|
width: 87px;
|
||||||
z-index: 101;
|
z-index: 101;
|
||||||
|
height: 27px;
|
||||||
|
line-height: 22px;
|
||||||
|
background: rgba(230, 48, 48, 0.1);
|
||||||
|
border: 1px solid #E63030;
|
||||||
|
border-radius: 2px 2px 2px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/deep/ .ant-table-column-title {
|
/deep/ .ant-table-column-title {
|
||||||
|
|||||||
Reference in New Issue
Block a user