Merge remote-tracking branch 'origin/dev_20230808_OTA' into dev_20230808_OTA

This commit is contained in:
高嵩
2023-08-22 11:12:13 +08:00
5 changed files with 138 additions and 106 deletions
+1
View File
@@ -1951,4 +1951,5 @@ module.exports = {
datacannotbeedited:'This data cannot be edited', datacannotbeedited:'This data cannot be edited',
Rematchornot:'Rematch or not', Rematchornot:'Rematch or not',
Modifyremarks:'Modify remarks', Modifyremarks:'Modify remarks',
Reasonforreturn:'Reason for return',
} }
+1
View File
@@ -3907,4 +3907,5 @@ module.exports = {
datacannotbeedited:'该数据不能进行编辑', datacannotbeedited:'该数据不能进行编辑',
Rematchornot:'是否重新匹配', Rematchornot:'是否重新匹配',
Modifyremarks:'修改备注', Modifyremarks:'修改备注',
Reasonforreturn:'退回原因'
} }
@@ -33,7 +33,7 @@
v-model="queryParam.impactHomo"></a-input> v-model="queryParam.impactHomo"></a-input>
</div> </div>
</a-col> </a-col>
<template v-if="toggleSearchStatus && vehicleTypeCode== '全部'"> <template v-if="toggleSearchStatus && vehicleTypeCode== $t('whole')">
<a-col :md="6" :sm="8"> <a-col :md="6" :sm="8">
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text" :title="$t('vehicleType')"> <div class="title-text" :title="$t('vehicleType')">
@@ -61,7 +61,7 @@
</template> </template>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons"> <span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
<a-col :md="6" :sm="24"> <a-col :md="6" :sm="24">
<a @click="handleToggleSearch" v-if="vehicleTypeCode == '全部'"> <a @click="handleToggleSearch" v-if="vehicleTypeCode == $t('whole')">
{{ !toggleSearchStatus ? $t('open') : $t('away') }} {{ !toggleSearchStatus ? $t('open') : $t('away') }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'" /> <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
</a> </a>
@@ -103,55 +103,55 @@
</div> </div>
<!-- 全部导出--> <!-- 全部导出-->
<div class="table-operator" style='margin-bottom: 19px;text-align: left;margin-top: 20px;'> <div class="table-operator" style='margin-bottom: 19px;text-align: left;margin-top: 20px;'>
<div v-show="vehicleTypeCode === '全部'" class="operator-text" @click="handleExportManage('all')" <div v-show="vehicleTypeCode === $t('whole')" class="operator-text" @click="handleExportManage('all')"
v-has="'otadetail:export'"> v-has="'otadetail:export'">
<a-icon type="export" :rotate="-90" /> <a-icon type="export" :rotate="-90" />
{{ $t('export') }} {{ $t('export') }}
</div> </div>
<!-- 全部下发通知--> <!-- 全部下发通知-->
<div v-show="vehicleTypeCode === '全部'" class="operator-text" @click="issuenotice" <div v-show="vehicleTypeCode === $t('whole')" class="operator-text" @click="issuenotice"
v-has="'otadetail:Issuenotice'"> v-has="'otadetail:Issuenotice'">
<a-icon type="sound" /> <a-icon type="sound" />
{{ $t('issuenotice') }} {{ $t('issuenotice') }}
</div> </div>
<!-- studio导出--> <!-- studio导出-->
<div v-show="vehicleTypeCode !== '全部'" class="operator-text" @click="handleExportManage('studio')" <div v-show="vehicleTypeCode !== $t('whole')" class="operator-text" @click="handleExportManage('studio')"
v-has="'otad:export'"> v-has="'otad:export'">
<a-icon type="export" :rotate="-90"/> <a-icon type="export" :rotate="-90"/>
{{ $t('export') }} {{ $t('export') }}
</div> </div>
<!-- studio批量设置--> <!-- studio批量设置-->
<div v-show="vehicleTypeCode !== '全部'" class="operator-text" @click="BatchSetting" <div v-show="vehicleTypeCode !== $t('whole')" class="operator-text" @click="BatchSetting"
v-has="'otad:batchsetting'"> v-has="'otad:batchsetting'">
<a-icon type="setting" /> <a-icon type="setting" />
{{ $t('BatchSetting') }} {{ $t('BatchSetting') }}
</div> </div>
<!-- studio申请重新匹配--> <!-- studio申请重新匹配-->
<div v-show="vehicleTypeCode !== '全部'" class="operator-text" @click="applyforrematch" <div v-show="vehicleTypeCode !== $t('whole')" class="operator-text" @click="applyforrematch"
v-has="'otad:rematch'"> v-has="'otad:rematch'">
<a-icon type="rollback" /> <a-icon type="rollback" />
{{ $t('applyforrematch') }} {{ $t('applyforrematch') }}
</div> </div>
<!-- studio保存--> <!-- studio保存-->
<div v-show="vehicleTypeCode !== '全部'" class="operator-text" @click="preservation" <div v-show="vehicleTypeCode !== $t('whole')" class="operator-text" @click="preservation"
v-has="'otad:save'"> v-has="'otad:save'">
<a-icon type="check-circle" /> <a-icon type="check-circle" />
{{ $t('preservation') }} {{ $t('preservation') }}
</div> </div>
<!-- studio提交--> <!-- studio提交-->
<div v-show="vehicleTypeCode !== '全部'" class="operator-text" @click="submit" <div v-show="vehicleTypeCode !== $t('whole')" class="operator-text" @click="submit"
v-has="'otad-submit'"> v-has="'otad-submit'">
<a-icon type="check-circle" /> <a-icon type="check-circle" />
{{ $t('submit') }} {{ $t('submit') }}
</div> </div>
<!-- manger确认--> <!-- manger确认-->
<div v-show="vehicleTypeCode !== '全部'" class="operator-text" @click="confirm" <div v-show="vehicleTypeCode !== $t('whole')" class="operator-text" @click="confirm"
v-has="'otaman:confirm'"> v-has="'otaman:confirm'">
<a-icon type="check-circle" /> <a-icon type="check-circle" />
{{ $t('confirm') }} {{ $t('confirm') }}
</div> </div>
<!-- manger退回--> <!-- manger退回-->
<div v-show="vehicleTypeCode !== '全部'" class="operator-text" @click="sendBack" <div v-show="vehicleTypeCode !== $t('whole')" class="operator-text" @click="sendBack"
v-has="'otaman:return'"> v-has="'otaman:return'">
<a-icon type="rollback" /> <a-icon type="rollback" />
{{ $t('sendBack') }} {{ $t('sendBack') }}
@@ -361,7 +361,7 @@ export default {
importZipUrl: '/ota/otaBaCxList/importData',//导入 importZipUrl: '/ota/otaBaCxList/importData',//导入
}, },
number:'', number:'',
vehicleTypeCode:'全部', vehicleTypeCode:this.$t('whole'),
visible: false, visible: false,
loading: false, loading: false,
toggleSearchStatus: false, toggleSearchStatus: false,
@@ -891,7 +891,7 @@ export default {
watch:{ watch:{
// 监听车型变化 // 监听车型变化
vehicleTypeCode(){ vehicleTypeCode(){
if(this.vehicleTypeCode !== '全部'){ if(this.vehicleTypeCode !== this.$t('whole')){
this.cuList = this.customizeSeList this.cuList = this.customizeSeList
this.$forceUpdate() this.$forceUpdate()
}else{ }else{
@@ -971,7 +971,7 @@ export default {
} }
}) })
this.selectedRowKeys = [] this.selectedRowKeys = []
queryParam.appliedVehicleProject = this.vehicleTypeCode == '全部'?queryParam.appliedVehicleProject:this.vehicleTypeCode queryParam.appliedVehicleProject = this.vehicleTypeCode == this.$t('whole')?queryParam.appliedVehicleProject:this.vehicleTypeCode
queryParam.plannedBpLaunchBatch = this.$route.query.plannedBpLaunchBatch queryParam.plannedBpLaunchBatch = this.$route.query.plannedBpLaunchBatch
let query = { let query = {
pageNo: this.pageNo, pageNo: this.pageNo,
@@ -981,7 +981,7 @@ export default {
...queryParam ...queryParam
} }
this.loading = true this.loading = true
let url = this.vehicleTypeCode == '全部'?'/ota/otaManageApplyEO/getOtaPage':'/ota/otaManageApplyEO/getOtaCarPage' let url = this.vehicleTypeCode == this.$t('whole')?'/ota/otaManageApplyEO/getOtaPage':'/ota/otaManageApplyEO/getOtaCarPage'
getAction(url, query).then((res) => { getAction(url, query).then((res) => {
if (res.success) { if (res.success) {
if (res.result.current > 1 && res.result.records.length == 0) { if (res.result.current > 1 && res.result.records.length == 0) {
@@ -1027,7 +1027,7 @@ export default {
} else if (long && long == 'en-us') { } else if (long && long == 'en-us') {
this.cut = 'en' this.cut = 'en'
} }
this.queryParam.appliedVehicleProject = this.vehicleTypeCode == '全部'?this.queryParam.appliedVehicleProject:this.vehicleTypeCode this.queryParam.appliedVehicleProject = this.vehicleTypeCode == this.$t('whole')?this.queryParam.appliedVehicleProject:this.vehicleTypeCode
this.queryParam.plannedBpLaunchBatch = this.$route.query.plannedBpLaunchBatch this.queryParam.plannedBpLaunchBatch = this.$route.query.plannedBpLaunchBatch
let exportName = this.$route.query.plannedBpLaunchBatch let exportName = this.$route.query.plannedBpLaunchBatch
let query = { let query = {
@@ -1314,7 +1314,7 @@ export default {
}, },
getHeader() { getHeader() {
getAction('head/headCustomEO/list', { getAction('head/headCustomEO/list', {
moduleFlag: this.vehicleTypeCode == '全部'?'全车型':'分车型' moduleFlag: this.vehicleTypeCode == this.$t('whole')?'全车型':'分车型'
}).then((res) => { }).then((res) => {
if (res.success) { if (res.success) {
if(res.result && res.result.length > 0){ if(res.result && res.result.length > 0){
@@ -1323,9 +1323,9 @@ export default {
}) })
this.columnsAll = res.result this.columnsAll = res.result
}else{ }else{
this.columnsAll = this.vehicleTypeCode == '全部'?this.columns:this.columnstype this.columnsAll = this.vehicleTypeCode == this.$t('whole')?this.columns:this.columnstype
} }
if(this.vehicleTypeCode == '全部'){ if(this.vehicleTypeCode == this.$t('whole')){
for (let j = 0; j < this.columnsAll.length; j++) { for (let j = 0; j < this.columnsAll.length; j++) {
for (let i = 0; i < this.columns.length; i++) { for (let i = 0; i < this.columns.length; i++) {
if (this.columns[i].dataIndex == this.columnsAll[j].dataIndex) { if (this.columns[i].dataIndex == this.columnsAll[j].dataIndex) {
@@ -1,7 +1,7 @@
<!--拒绝原因--> <!--拒绝原因-->
<template> <template>
<a-modal <a-modal
:title="$t('rejectReason')" :title="$t('Reasonforreturn')"
:width="600" :width="600"
:visible="visible" :visible="visible"
:confirm-loading="confirmLoading" :confirm-loading="confirmLoading"
@@ -15,11 +15,11 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required">*</span> <span class="Required">*</span>
<span class="title-text-text" :title="$t('rejectReason')"> <span class="title-text-text" :title="$t('Reasonforreturn')">
{{$t('rejectReason')}}</span> {{$t('Reasonforreturn')}}</span>
</div> </div>
<a-form-model-item class="itemModel" prop="rejectReason"> <a-form-model-item class="itemModel" prop="rejectReason">
<a-textarea :placeholder="$t('pleaseEnter')+$t('rejectReason')" <a-textarea :placeholder="$t('pleaseEnter')+$t('Reasonforreturn')"
v-model="formInline.rejectReason" v-model="formInline.rejectReason"
style="width: 90%" style="width: 90%"
:maxLength="200" :maxLength="200"
@@ -56,7 +56,7 @@ export default {
rejectReason: [ rejectReason: [
{ {
required: true, required: true,
message: this.$t('rejectReason') + this.$t('cannotEmpty'), message: this.$t('Reasonforreturn') + this.$t('cannotEmpty'),
trigger: 'blur' trigger: 'blur'
} }
], ],
@@ -8,16 +8,16 @@
<div class="title-text" :title="$t('softwareversion')"> <div class="title-text" :title="$t('softwareversion')">
<span>{{ $t('softwareversion') }}</span> <span>{{ $t('softwareversion') }}</span>
</div> </div>
<a-select v-model="queryParam.ctype" <a-select v-model="queryParam.plannedBpLaunchBatch"
class="box-input" class="box-input"
@change="getonChange" @change="getonChange"
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
:autoClearSearchValue="false" :autoClearSearchValue="false"
:getPopupContainer="triggerNode => triggerNode.parentNode" :popper-append-to-body="false"> :getPopupContainer="triggerNode => triggerNode.parentNode" :popper-append-to-body="false">
<a-select-option v-for="d in options" :key="d.value" :label='d.label' :value="d.value"> <a-select-option v-for="d in options" :key="d.plannedBpLaunchBatch" :label='d.plannedBpLaunchBatch' :value="d.plannedBpLaunchBatch">
<span style="display: inline-block;width: 80%" :title=" d.label"> <span style="display: inline-block;width: 80%" :title=" d.plannedBpLaunchBatch">
{{ d.label }} {{ d.plannedBpLaunchBatch }}
</span> </span>
</a-select-option> </a-select-option>
</a-select> </a-select>
@@ -44,14 +44,14 @@
<td width="150px" height="50px" align="center">{{$t('Pendingapproval')}}</td> <td width="150px" height="50px" align="center">{{$t('Pendingapproval')}}</td>
<td width="150px" height="50px" align="center">{{$t('lock')}}</td> <td width="150px" height="50px" align="center">{{$t('lock')}}</td>
<td width="150px" height="50px" align="center">{{$t('sendBack')}}</td> <td width="150px" height="50px" align="center">{{$t('sendBack')}}</td>
<td width="150px" height="50px" align="center">{{$t('notInvolved')}}</td> <!-- <td width="150px" height="50px" align="center">{{$t('notInvolved')}}</td>-->
</tr> </tr>
<tr> <tr>
<td height="80px" align="center"><span style='color: #5087EC'>{{matchForm.a}}</span></td> <td height="80px" align="center"><span style='color: #5087EC'>{{matchForm.to_be_matched}}</span></td>
<td height="80px" align="center"><span style='color: #68BBC4'>{{matchForm.a}}</span></td> <td height="80px" align="center"><span style='color: #68BBC4'>{{matchForm.to_be_approved}}</span></td>
<td height="80px" align="center"><span style='color: #58A55C'>{{matchForm.a}}</span></td> <td height="80px" align="center"><span style='color: #58A55C'>{{matchForm.locked}}</span></td>
<td height="80px" align="center"><span style='color: #F2BD42'>{{matchForm.a}}</span></td> <td height="80px" align="center"><span style='color: #F2BD42'>{{matchForm.rejected}}</span></td>
<td height="80px" align="center"><span style='color: #BBBBBB'>{{matchForm.a}}</span></td> <!--/* <td height="80px" align="center"><span style='color: #BBBBBB'>{{matchForm.a}}</span></td>*/-->
</tr> </tr>
</table> </table>
</div> </div>
@@ -72,13 +72,13 @@
<td width="190px" height="50px" align="center">{{$t('componentReportHasBeenStored')}}</td> <td width="190px" height="50px" align="center">{{$t('componentReportHasBeenStored')}}</td>
</tr> </tr>
<tr> <tr>
<td height="80px" align="center"><span style='color: #BBBBBB'>{{authenticationForm.a}}</span></td> <td height="80px" align="center"><span style='color: #BBBBBB'>{{authenticationForm.Not_start}}</span></td>
<td height="80px" align="center"><span style='color: #68BBC4'>{{authenticationForm.a}}</span></td> <td height="80px" align="center"><span style='color: #F2BD42'>{{authenticationForm.In_progress}}</span></td>
<td height="80px" align="center"><span style='color: #68BBC4'>{{authenticationForm.a}}</span></td> <td height="80px" align="center"><span style='color: #68BBC4'>{{authenticationForm.Test_passed}}</span></td>
<td height="80px" align="center"><span style='color: #D95040'>{{authenticationForm.a}}</span></td> <td height="80px" align="center"><span style='color: #D95040'>{{authenticationForm.Test_failed}}</span></td>
<td height="80px" align="center"><span style='color: #BBBBBB'>{{authenticationForm.a}}</span></td> <td height="80px" align="center"><span style='color: #BBBBBB'>{{authenticationForm.Component_report_not_submitted}}</span></td>
<td height="80px" align="center"><span style='color: #68BBC4'>{{authenticationForm.a}}</span></td> <td height="80px" align="center"><span style='color: #68BBC4'>{{authenticationForm.Component_report_submitted}}</span></td>
<td height="80px" align="center"><span style='color: #58A55C'>{{authenticationForm.a}}</span></td> <td height="80px" align="center"><span style='color: #58A55C'>{{authenticationForm.Component_report_has_been_stored}}</span></td>
</tr> </tr>
</table> </table>
</div> </div>
@@ -109,8 +109,7 @@
data() { data() {
return { return {
queryParam: { queryParam: {
value: 1, plannedBpLaunchBatch: ''
ctype: ''
}, },
options: [], options: [],
collecting: [], collecting: [],
@@ -142,7 +141,7 @@
}, },
mounted() { mounted() {
this.getoptions() this.getoptions()
this.getData() // this.getData()
}, },
methods: { methods: {
@@ -150,19 +149,17 @@
}, },
getData() { getData() {
let id = '' let query = {
if (this.idList && this.idList.length > 0) { ...this.queryParam,
id = this.idList.join(',') projectId:this.$route.query.id
} else {
id = this.$route.query.id
} }
getAction(this.url.getProjectDetailsStatistics, { id: id }).then((res) => { getAction('ota/otaManageApplyEO/getStatisticalStatus', query).then((res) => {
if (res.success) { if (res.success) {
if (res.result) { if (res.result) {
let mainTopDataSource = res.result.taskToConfirmMap ? res.result.taskToConfirmMap.taskToConfirmMapList : [] let mainTopDataSource = res.result.matchStatusMapList ? res.result.matchStatusMapList : []
let mainEndDataSource = res.result.designComplianceMap ? res.result.designComplianceMap.designComplianceMapList : [] let mainEndDataSource = res.result.attestationScheduleMapList ? res.result.attestationScheduleMapList : []
this.matchForm = res.result.matchForm this.matchForm = res.result.matchStatusMap
this.authenticationForm = res.result.authenticationForm this.authenticationForm = res.result.attestationScheduleMap
this.mainTopEcharts(mainTopDataSource) this.mainTopEcharts(mainTopDataSource)
this.mainEndEcharts(mainEndDataSource) this.mainEndEcharts(mainEndDataSource)
// this.mainRightEcharts(mainRightDataSource) // this.mainRightEcharts(mainRightDataSource)
@@ -177,7 +174,8 @@
getAction('ota/otaManageApplyEO/getVdrListByProject', { projectId: id }).then((res) => { getAction('ota/otaManageApplyEO/getVdrListByProject', { projectId: id }).then((res) => {
if (res.success) { if (res.success) {
this.options = res.result this.options = res.result
this.queryParam.ctype = this.options[0].value this.queryParam.plannedBpLaunchBatch = this.options[0].plannedBpLaunchBatch
this.getData()
// this.getData(this.queryParam.ctype) // this.getData(this.queryParam.ctype)
} else { } else {
} }
@@ -268,40 +266,40 @@
if (dataSource && dataSource.length > 0) { if (dataSource && dataSource.length > 0) {
this.dataSource = [{}] this.dataSource = [{}]
dataSource.forEach(res => { dataSource.forEach(res => {
if (res.taskAffirmStatus == 'Not started') { if (res.matchStatus == 'to_be_matched') {
data.push({ data.push({
value: res.taskAffirmStatusCount, value: res.matchStatusCount,
name: this.$t('notLaunch'), name: this.$t('tobematched'),
color: '#00B3BE', color: '#5087EC',
status: res.taskAffirmStatus status: res.matchStatus
}) })
color.push('#00B3BE') color.push('#5087EC')
} else if (res.taskAffirmStatus == 'List to confirm') { } else if (res.matchStatus == 'to_be_approved') {
data.push({ data.push({
value: res.taskAffirmStatusCount, value: res.matchStatusCount,
name: this.$t('listToConfirm'), name: this.$t('Pendingapproval'),
color: '#FDA71C', color: '#68BBC4',
status: res.taskAffirmStatus status: res.matchStatus
}) })
color.push('#FDA71C') color.push('#68BBC4')
} else if (res.taskAffirmStatus == 'Accepted') { } else if (res.matchStatus == 'locked') {
data.push({ data.push({
value: res.taskAffirmStatusCount, value: res.matchStatusCount,
name: this.$t('accept'), name: this.$t('lock'),
color: '#26BC4B', color: '#58A55C',
status: res.taskAffirmStatus status: res.matchStatus
}) })
color.push('#26BC4B') color.push('#58A55C')
} else if (res.taskAffirmStatus == 'Rejected') { } else if (res.matchStatus == 'rejected') {
data.push({ data.push({
value: res.taskAffirmStatusCount, value: res.matchStatusCount,
name: this.$t('refuse'), name: this.$t('sendBack'),
color: '#E83030', color: '#F2BD42',
status: res.taskAffirmStatus status: res.matchStatus
}) })
color.push('#E83030') color.push('#F2BD42')
} }
this.mainTopNum += res.taskAffirmStatusCount this.mainTopNum += res.matchStatusCount
}) })
} }
this.getEcharts('main-top-Collect', this.$t('Matchingstatestatistics'), color, data) this.getEcharts('main-top-Collect', this.$t('Matchingstatestatistics'), color, data)
@@ -313,41 +311,66 @@
this.mainTopNum = 0 this.mainTopNum = 0
if (dataSource && dataSource.length > 0) { if (dataSource && dataSource.length > 0) {
this.dataSource = [{}] this.dataSource = [{}]
console.log(dataSource)
dataSource.forEach(res => { dataSource.forEach(res => {
if (res.designFlowTaskStatus == 'Not started') { if (res.attestationSchedule == 'Not start') {
data.push({ data.push({
value: res.designFlowTaskStatusCount, value: res.attestationScheduleCount,
name: this.$t('notLaunch'), name: this.$t('Notatthe'),
color: '#00B3BE', color: '#BBBBBB',
status: res.designFlowTaskStatus status: res.attestationSchedule
}) })
color.push('#00B3BE') color.push('#BBBBBB')
} else if (res.designFlowTaskStatus == 'List to confirm') { } else if (res.attestationSchedule == 'In progress') {
data.push({ data.push({
value: res.designFlowTaskStatusCount, value: res.attestationScheduleCount,
name: this.$t('listToConfirm'), name: this.$t('inProgress'),
color: '#FDA71C', color: '#F2BD42',
status: res.designFlowTaskStatus status: res.attestationSchedule
}) })
color.push('#FDA71C') color.push('#F2BD42')
} else if (res.designFlowTaskStatus == 'Accepted') { } else if (res.attestationSchedule == 'Test failed') {
data.push({ data.push({
value: res.designFlowTaskStatusCount, value: res.attestationScheduleCount,
name: this.$t('accept'), name: this.$t('experimentFailed'),
color: '#26BC4B', color: '#D95040',
status: res.designFlowTaskStatus status: res.attestationSchedule
}) })
color.push('#26BC4B') color.push('#D95040')
} else if (res.designFlowTaskStatus == 'Rejected') { } else if (res.attestationSchedule == 'Component report not submitted') {
data.push({ data.push({
value: res.designFlowTaskStatusCount, value: res.attestationScheduleCount,
name: this.$t('refuse'), name: this.$t('componentReportNotSubmitted'),
color: '#E83030', color: '#BBBBBB',
status: res.designFlowTaskStatus status: res.attestationSchedule
}) })
color.push('#E83030') color.push('#BBBBBB')
} else if (res.attestationSchedule == 'Component report submitted') {
data.push({
value: res.attestationScheduleCount,
name: this.$t('componentReportSubmitted'),
color: '#68BBC4',
status: res.attestationSchedule
})
color.push('#68BBC4')
} else if (res.attestationSchedule == 'Component report has been stored') {
data.push({
value: res.attestationScheduleCount,
name: this.$t('componentReportHasBeenStored'),
color: '#58A55C',
status: res.attestationSchedule
})
color.push('#58A55C')
}else if (res.attestationSchedule == 'Test passed') {
data.push({
value: res.attestationScheduleCount,
name: this.$t('experimentPassed'),
color: '#68BBC4',
status: res.attestationSchedule
})
color.push('#68BBC4')
} }
this.mainTopNum += res.designFlowTaskStatusCount this.mainTopNum += res.attestationScheduleCount
}) })
} }
this.getEcharts('main-end-Collect', this.$t('OTaauthenticationprogressstatistics'), color, data) this.getEcharts('main-end-Collect', this.$t('OTaauthenticationprogressstatistics'), color, data)
@@ -355,7 +378,14 @@
responsibility(item) { responsibility(item) {
this.$emit('currentStatus', item) this.$emit('currentStatus', item)
}, },
jump(){ vdrcheckClick(){
this.options.forEach(item => {
if(item.plannedBpLaunchBatch == this.queryParam.plannedBpLaunchBatch){
this.vehicleTypeCode = item.appliedVehicleProject
this.softwareversion = item.plannedBpLaunchBatch
this.releaseName = item.updateDate
}
})
let newUrl = this.$router.resolve({ let newUrl = this.$router.resolve({
path:'/components/detil', path:'/components/detil',
query:{ query:{