修改UAT提出的问题

This commit is contained in:
范强强
2023-05-12 15:51:20 +08:00
parent 2b9429e338
commit f6fb1e6e94
4 changed files with 333 additions and 175 deletions
@@ -270,6 +270,9 @@
this.textColor(this.$t('projectDetails'))
this.textTitle = this.$t('projectDetails')
} else if (this.$route.query.type == '102') {
if (this.$route.query.dutyTerritoryName){
this.areaOfResponsibilityList = this.$route.query
}
this.textColor(this.$t('listOfRegulations'))
this.textTitle = this.$t('listOfRegulations')
} else if (this.$route.query.type == '103') {
@@ -285,6 +288,9 @@
this.textColor(this.$t('TaskParameterCollection'))
this.textTitle = this.$t('TaskParameterCollection')
} else if (this.$route.query.type == '106') {
if (this.$route.query.dutyTerritoryName){
this.areaOfResponsibility = this.$route.query
}
this.textColor(this.$t('certificationList'))
this.textTitle = this.$t('certificationList')
}
@@ -0,0 +1,175 @@
<template>
<a-modal
:title="title"
:width="800"
:visible="visible"
:confirm-loading="confirmLoading"
:maskClosable="false"
@cancel="visible = false"
>
<template slot="footer">
<a-button key="back" @click="visible = false">
{{$t('cancel')}}
</a-button>
</template>
<!-- <div style="text-align: right;margin-bottom: 10px">-->
<!-- <div @click="handleExport" class="operator-text">-->
<!-- <a-icon type="export" :rotate="-90"/>-->
<!-- {{$t('export')}}-->
<!-- </div>-->
<!-- </div>-->
<a-table
ref="table"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%',y:400}"
:data-source="dataSource"
@change="tableOnChange"
:columns="columns"
>
<!-- -->
<a slot="areaOfResponsibility" @click="areaOfResponsibilityClick(result)" slot-scope="text,result">
{{text}}
</a>
</a-table>
</a-modal>
</template>
<script>
import { getAction, postAction, downloadFile } from '@/api/manage'
import moment from 'moment'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'responsibilityList',
mixins: [ResizeHeader, ResizeColumnProvide],
data() {
return {
visible: false,
title: '',
confirmLoading: false,
loading: false,
dataSource: [],
queryParam: {},
projectInfo: {},
url: {
groupByTerritoryXls: '/project/projectLibraryBase/exportProjectDetailsStatisticsGroupByTerritoryXls',
GroupByTerritory: '/project/projectLibraryBase/getProjectDetailsStatisticsGroupByTerritory'
},
columns: [
{
title: this.$t('areaOfResponsibility'),
dataIndex: 'dutyTerritoryName',
align: 'left',
width: 150,
ellipsis: true,
sorter: true,
scopedSlots: { customRender: 'areaOfResponsibility' }
},
{
title: this.$t('Quantity'),
dataIndex: 'amount',
align: 'left',
ellipsis: true,
width: 150,
sorter: true
},
{
title: this.$t('proportionWithInTheAreaOfResponsibility'),
dataIndex: 'percentage',
align: 'left',
ellipsis: true,
width: 240,
sorter: true
}
]
}
},
mounted() {
},
methods: {
getData(data, projectInfo) {
this.visible = true
this.projectInfo = projectInfo
this.title = data.title
this.queryParam = data
this.getList()
},
tableOnChange(pagination, filters, sorter) {
this.orderBy = sorter.order == 'ascend' ? '1' : '2'
if (sorter.columnKey == 'attestationRank_dictText') {
this.orderByField = 'attestationRank'
} else if (sorter.columnKey == 'dutyTerritory_dictText') {
this.orderByField = 'dutyTerritory'
} else if (sorter.columnKey == 'designDeliverableTypeName') {
this.orderByField = 'designDeliverableType'
} else if (sorter.columnKey == 'verifyDeliverableTypeName') {
this.orderByField = 'verifyDeliverableType'
} else if (sorter.columnKey == 'designDutyIdName') {
this.orderByField = 'designDutyId'
} else if (sorter.columnKey == 'verifyDutyIdName') {
this.orderByField = 'verifyDutyId'
} else if (sorter.columnKey == 'verifyFlowStatusName') {
this.orderByField = 'verifyFlowStatus'
} else if (sorter.columnKey == 'designFlowStatusName') {
this.orderByField = 'designFlowStatus'
} else {
this.orderByField = sorter.columnKey
}
this.getList()
},
getList() {
this.loading = true
let query = {
...this.queryParam,
orderBy: this.orderBy,
orderByField: this.orderByField
}
getAction(this.url.GroupByTerritory, query).then((res) => {
if (res.success) {
this.loading = false
this.dataSource = res.result.dataList || []
} else {
this.loading = false
this.dataSource = []
}
})
},
handleExport() {
downloadFile(this.url.groupByTerritoryXls, this.title + '.xls', this.queryParam)
},
handleCancel() {
this.visible = false
},
areaOfResponsibilityClick(item) {
let type = ''
if (this.queryParam.operatorType == 'queryFGTaskToConfirmStatistics' ||
this.queryParam.operatorType == 'queryDesignStatistics' ||
this.queryParam.operatorType == 'queryVerifyStatistics') {
type = '102'
} else {
type = '106'
}
let query = {
id: this.projectInfo.id,
projectName: this.projectInfo.projectName,
projectNameId: this.projectInfo.projectNameId,
targetMarket: this.projectInfo.targetMarket,
studioEngineer: this.projectInfo.studioEngineer,
type: type,
dutyTerritoryName: item.dutyTerritoryName
}
let newUrl = this.$router.resolve({
path: '/ProjectDetails',
query: query
})
window.open(newUrl.href, '_blank')
}
}
}
</script>
<style scoped>
</style>
@@ -1,108 +1,116 @@
<template>
<a-drawer
:title="title"
:maskClosable="false"
:width="1000"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<a-spin :spinning="confirmLoading">
<div class="box-content" v-if="visible">
<div class="box-content-top"
v-if="projectQuery.name == this.$t('listPublishing') || projectQuery.name == this.$t('responsibilityConfirmation')">
<div class="total-text">
<span>{{$t('totalTable')+' : '+mainTopNum}}</span>
<div>
<a-drawer
:title="title"
:maskClosable="false"
:width="1000"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<a-spin :spinning="confirmLoading">
<div class="box-content" v-if="visible">
<div class="box-content-top"
v-if="projectQuery.name == this.$t('listPublishing') || projectQuery.name == this.$t('responsibilityConfirmation')">
<div class="total-text">
<span>{{$t('totalTable')+' : '+mainTopNum}}</span>
</div>
<div id="main-top"></div>
</div>
<div id="main-top"></div>
</div>
<div class="box-content-top" v-if="projectQuery.name == this.$t('designVerification')">
<div class="total-text">
<span>{{$t('totalTable')+' : '+mainLeftNum}}</span>
<div class="box-content-top" v-if="projectQuery.name == this.$t('designVerification')">
<div class="total-text">
<span>{{$t('totalTable')+' : '+mainLeftNum}}</span>
</div>
<div id="main-left"></div>
</div>
<div id="main-left"></div>
</div>
<div class="box-content-top" v-if="projectQuery.name == this.$t('verificationAndVerification')">
<div class="total-text">
<span>{{$t('totalTable')+' : '+mainRightNum}}</span>
<div class="box-content-top" v-if="projectQuery.name == this.$t('verificationAndVerification')">
<div class="total-text">
<span>{{$t('totalTable')+' : '+mainRightNum}}</span>
</div>
<div id="main-right"></div>
</div>
<div id="main-right"></div>
</div>
<div class="box-content-top"
v-if="projectQuery.name == this.$t('listPublishing') || projectQuery.name == this.$t('responsibilityConfirmation')">
<div class="total-text">
<span>{{$t('totalTable')+' : '+mainTopNumOne}}</span>
<div class="box-content-top"
v-if="projectQuery.name == this.$t('listPublishing') || projectQuery.name == this.$t('responsibilityConfirmation')">
<div class="total-text">
<span>{{$t('totalTable')+' : '+mainTopNumOne}}</span>
</div>
<div id="main-top-one"></div>
</div>
<div id="main-top-one"></div>
</div>
<div class="box-content-top"
v-if="projectQuery.name == this.$t('getStarted') || projectQuery.name == this.$t('certificationStartOne')">
<div class="total-text">
<span>{{$t('totalTable')+' : '+mainLeftNumOne}}</span>
<div class="box-content-top"
v-if="projectQuery.name == this.$t('getStarted') || projectQuery.name == this.$t('certificationStartOne')">
<div class="total-text">
<span>{{$t('totalTable')+' : '+mainLeftNumOne}}</span>
</div>
<div id="main-right-one"></div>
</div>
<div id="main-right-one"></div>
</div>
<div class="box-content-top"
v-if="projectQuery.name == this.$t('certificationEnd') || projectQuery.name == this.$t('certificationSubmission')">
<div class="total-text-text" :class="{'total-text-text-cntop':long == 'zh-cn' ? true:false,
<div class="box-content-top"
v-if="projectQuery.name == this.$t('certificationEnd') || projectQuery.name == this.$t('certificationSubmission')">
<div class="total-text-text" :class="{'total-text-text-cntop':long == 'zh-cn' ? true:false,
'total-text-text-entop':long == 'zh-cn' ? false:true}">
<span>{{$t('totalTable')+' : '+mainBottomNum}}</span>
<span>{{$t('totalTable')+' : '+mainBottomNum}}</span>
</div>
<div class="box-content-text">
<div class="box-content-text-text" @click="boxContentClick(0)">
{{$t('whole')}}
</div>
<div class="box-content-text-text" @click="boxContentClick(1)">
{{$t('completeVehicle')}}
</div>
<div class="box-content-text-text" @click="boxContentClick(2)">
{{$t('components')}}
</div>
</div>
<div id="main-bottom"></div>
</div>
<div class="box-content-text">
<div class="box-content-text-text" @click="boxContentClick(0)">
{{$t('whole')}}
</div>
<div class="box-content-text-text" @click="boxContentClick(1)">
{{$t('completeVehicle')}}
</div>
<div class="box-content-text-text" @click="boxContentClick(2)">
{{$t('components')}}
</div>
</div>
<div id="main-bottom"></div>
</div>
<div class="table-page-search-wrapper"
v-if="this.projectQuery.name == this.$t('getStarted') || this.projectQuery.name == this.$t('certificationStartOne')">
<a-form layout="inline">
<a-row :gutter="24">
<a-col :md="12" :sm="10">
<div class="box-title-text">
<div class="title-text" :title="$t('Statisticalmodels')">
<span>{{ $t('Statisticalmodels') }}</span>
<div class="table-page-search-wrapper"
v-if="this.projectQuery.name == this.$t('getStarted') || this.projectQuery.name == this.$t('certificationStartOne')">
<a-form layout="inline">
<a-row :gutter="24">
<a-col :md="12" :sm="10">
<div class="box-title-text">
<div class="title-text" :title="$t('Statisticalmodels')">
<span>{{ $t('Statisticalmodels') }}</span>
</div>
<a-radio-group class="box-input"
v-model="queryParam.value" @change="onChange">
<a-radio :value="1">
{{$t('Thepercentage')}}
</a-radio>
<a-radio :value="2">
{{$t('Quantity')}}
</a-radio>
</a-radio-group>
</div>
<a-radio-group class="box-input"
v-model="queryParam.value" @change="onChange">
<a-radio :value="1">
{{$t('Thepercentage')}}
</a-radio>
<a-radio :value="2">
{{$t('Quantity')}}
</a-radio>
</a-radio-group>
</div>
</a-col>
</a-row>
</a-form>
</div>
<div class="box-content-top-one"
v-if="this.projectQuery.name == this.$t('getStarted') || this.projectQuery.name == this.$t('certificationStartOne')">
<div id="main-left-parameter"></div>
</a-col>
</a-row>
</a-form>
</div>
<div class="box-content-top-one"
v-if="this.projectQuery.name == this.$t('getStarted') || this.projectQuery.name == this.$t('certificationStartOne')">
<div id="main-left-parameter"></div>
</div>
</div>
</a-spin>
<div class="drawer-bootom-button">
<a-button style="margin-right: .8rem" @click="handleCancel">{{$t('cancel')}}</a-button>
</div>
</a-spin>
<div class="drawer-bootom-button">
<a-button style="margin-right: .8rem" @click="handleCancel">{{$t('cancel')}}</a-button>
</div>
</a-drawer>
</a-drawer>
<responsibilityList ref="responsibilityListRef"/>
</div>
</template>
<script>
import * as echarts from 'echarts'
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
import responsibilityList from './responsibilityList'
export default {
name: 'statistics',
components: {
responsibilityList
},
data() {
return {
visible: false,
@@ -138,6 +146,7 @@
submitquantity: [],
syncReportpercentage: [],
syncReportquantity: [],
projectInfo:{},
long: localStorage.getItem('language') || 'zh-cn',
certificationProgressMap: {},
url: {
@@ -150,8 +159,9 @@
handleCancel() {
this.visible = false
},
getData(val) {
getData(val,projectInfo) {
this.visible = true
this.projectInfo = projectInfo
this.title = val.name
this.projectQuery = val
this.getEchart()
@@ -201,7 +211,7 @@
},
getEcharts(chart, title, color, data) {
var myChart = echarts.init(document.getElementById(chart))
let myChart = echarts.init(document.getElementById(chart))
myChart.setOption({
title: {
text: title
@@ -245,31 +255,59 @@
}
]
})
myChart.off('click') // 重点代码
myChart.on('click', (params) => {
let query = {}
if (params.seriesName == this.$t('regulatoryTaskConfirmation')) {
query = {
title: params.seriesName,
projectLibraryId: this.$route.query.id,
title: params.seriesName + '-' + params.name,
projectLibraryId: this.projectQuery.projectId,
operatorType: 'queryFGTaskToConfirmStatistics',
status: params.data.status
}
} else if (params.seriesName == this.$t('designCompliance')) {
query = {
title: params.seriesName,
projectLibraryId: this.$route.query.id,
title: params.seriesName + '-' + params.name,
projectLibraryId: this.projectQuery.projectId,
operatorType: 'queryDesignStatistics',
status: params.data.status
}
} else if (params.seriesName == this.$t('verifyCompliance')) {
query = {
title: params.seriesName,
projectLibraryId: this.$route.query.id,
title: params.seriesName + '-' + params.name,
projectLibraryId: this.projectQuery.projectId,
operatorType: 'queryVerifyStatistics',
status: params.data.status
}
} else if (params.seriesName === this.$t('certificationTaskConfirmation')) {
query = {
title: params.seriesName + '-' + params.name,
projectLibraryId: this.projectQuery.projectId,
operatorType: 'queryRZTaskToConfirmStatistics',
status: params.data.status
}
} else if (params.seriesName === this.$t('preHomoFlow')) {
query = {
title: params.seriesName + '-' + params.name,
projectLibraryId: this.projectQuery.projectId,
operatorType: 'queryPrehomoStatistics',
status: params.data.status
}
} else if (params.seriesName === this.$t('CertificationProgress')) {
query = {
title: params.seriesName + '-' + params.name,
projectLibraryId: this.projectQuery.projectId,
status: params.data.status
}
if (this.num == '0') {
query.operatorType = 'queryCertificationProgressStatisticsAll'
} else if (this.num == '1') {
query.operatorType = 'queryCertificationProgressStatisticsCar'
} else if (this.num == '2') {
query.operatorType = 'queryCertificationProgressStatisticsPart'
}
}
this.$refs.responsibilityListRef.getData(query)
this.$refs.responsibilityListRef.getData(query,this.projectInfo)
})
},
@@ -500,7 +538,7 @@
this.mainLeftNumOne += res.taskAffirmStatusCount
})
}
this.getEchartsOne('main-right-one', this.$t('preHomoFlow'), color, data)
this.getEcharts('main-right-one', this.$t('preHomoFlow'), color, data)
},
mainBottomEcharts(dataSource) {
@@ -569,79 +607,7 @@
this.mainBottomNum += res.certificationProgressCount
})
}
this.getEchartsOne('main-bottom', this.$t('CertificationProgress'), color, data)
},
getEchartsOne(chart, title, color, data) {
var myChart = echarts.init(document.getElementById(chart))
myChart.setOption({
title: {
text: title
},
tooltip: {
trigger: 'item',
textStyle: {
fontWeight: 'normal',
fontSize: 14,
color: '#040B29',
fontFamily: 'BlueSkyNoto'
},
formatter: function(parms) {
let str = parms.marker + ' ' + parms.data.name + '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' + parms.data.value + ' (' + parms.percent + '%)'
return str
}
},
legend: {
itemWidth: 12,
itemHeight: 12,
bottom: '0',
left: 'center',
itemGap: 30,
icon: 'circle'
},
series: [
{
name: title,
type: 'pie',
radius: ['40%', '54%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
},
labelLine: {
show: false
},
color: color,
data: data
}
]
})
myChart.off('click') // 重点代码
myChart.on('click', (params) => {
console.log(params)
let query = {
title: params.seriesName,
projectLibraryId: this.$route.query.id
}
if (params.seriesName === this.$t('certificationTaskConfirmation')) {
query.operatorType = 'queryRZTaskToConfirmStatistics'
query.status = params.data.status
} else if (params.seriesName === this.$t('preHomoFlow')) {
query.operatorType = 'queryPrehomoStatistics'
query.status = params.data.status
} else if (params.seriesName === this.$t('CertificationProgress')) {
if (this.num == '0') {
query.operatorType = 'queryCertificationProgressStatisticsAll'
} else if (this.num == '1') {
query.operatorType = 'queryCertificationProgressStatisticsCar'
} else if (this.num == '2') {
query.operatorType = 'queryCertificationProgressStatisticsPart'
}
query.status = params.data.status
}
this.$refs.responsibilityListRef.getData(query)
})
this.getEcharts('main-bottom', this.$t('CertificationProgress'), color, data)
},
boxContentClick(num) {
@@ -1034,6 +1000,7 @@
.total-text-text-entop {
right: 290px;
}
.box-title-text {
line-height: 1.4;
display: flex;
@@ -92,6 +92,9 @@
<div style="overflow:visible;">
<div class="box-top-content-left">
<div class="box-top-content-left-text"
:class="{'box-top-content-left-text-projectStatus':
item.projectInfo.projectStatus == '4786d0f0d230454e99a9fce15579eabf' ||
item.projectInfo.projectStatus == 'f737d063de754f2ab1bf51cd4118d04a'?true:false}"
v-for="(item,index) in timeData" :key="index">
<a-tooltip overlayClassName="overlayClassName" placement="topLeft">
<template slot="title">
@@ -135,19 +138,23 @@
v-if="!val.g"
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 @click="statusClick(val)" class="process-content-right-button" :title="val.name">{{ val.name }}
<div @click="statusClick(val,item.projectInfo)" class="process-content-right-button"
:title="val.name">{{ val.name }}
</div>
<a-tooltip placement="topLeft" overlayClassName="tooltipColor">
<template slot="title">
<span>{{ val.time.slice(0, 11) }}</span>
</template>
<img @click="statusClick(val)" v-if="val.status == 1" src="../../../assets/huiBottom.png"
<img @click="statusClick(val,item.projectInfo)" v-if="val.status == 1"
src="../../../assets/huiBottom.png"
class="process-content-left"
alt="">
<img @click="statusClick(val)" v-else-if="val.status == 2" src="../../../assets/kongBottom.png"
<img @click="statusClick(val,item.projectInfo)" v-else-if="val.status == 2"
src="../../../assets/kongBottom.png"
class="process-content-left"
alt="">
<img @click="statusClick(val)" v-else-if="val.status == 3" src="../../../assets/shiBottom.png"
<img @click="statusClick(val,item.projectInfo)" v-else-if="val.status == 3"
src="../../../assets/shiBottom.png"
class="process-content-left"
alt="">
</a-tooltip>
@@ -601,8 +608,8 @@
downloadFile('/project/ProjectStatusBoardController/exportXls',
this.$t('GRPSystemProjectProgressStatistics') + '.xls', query, this.Deselect)
},
statusClick(val) {
this.$refs.statisticsRef.getData(val)
statusClick(val, projectInfo) {
this.$refs.statisticsRef.getData(val, projectInfo)
},
boxContentClick(num) {
let boxContentTextColor = document.getElementsByClassName('box-header-text-color')
@@ -1024,4 +1031,7 @@
margin-left: 0;
}
}
.box-top-content-left-text-projectStatus{
color: #9C9FAC;
}
</style>