对接项目库详情的项目状态

This commit is contained in:
范强强
2023-04-26 15:21:56 +08:00
parent ee8304be26
commit abfea5ed0e
7 changed files with 126 additions and 83 deletions
+1
View File
@@ -1822,4 +1822,5 @@ module.exports = {
componentReportNotSubmitted:'Component report not submitted', componentReportNotSubmitted:'Component report not submitted',
componentReportSubmitted:'Component report submitted', componentReportSubmitted:'Component report submitted',
componentReportHasBeenStored:'Component report has been stored', componentReportHasBeenStored:'Component report has been stored',
parameterCollectionProgress:'Parameter Collection Progress',
} }
+1
View File
@@ -1924,4 +1924,5 @@ module.exports = {
componentReportNotSubmitted:'部件报告未提交', componentReportNotSubmitted:'部件报告未提交',
componentReportSubmitted:'部件报告已提交', componentReportSubmitted:'部件报告已提交',
componentReportHasBeenStored:'部件报告已入库', componentReportHasBeenStored:'部件报告已入库',
parameterCollectionProgress:'参数收集进度',
} }
@@ -46,15 +46,15 @@
> >
<span v-has="'projectRelatedPersonnel:page'" <span v-has="'projectRelatedPersonnel:page'"
@click="ListOfRelevantPersonnelClick"> @click="ListOfRelevantPersonnelClick">
<a-icon type="eye" /> <a-icon type="eye"/>
{{$t('ListOfRelevantPersonnel')}} {{$t('ListOfRelevantPersonnel')}}
</span> </span>
<!-- <a-button type="primary" v-has="'projectRelatedPersonnel:page'"--> <!-- <a-button type="primary" v-has="'projectRelatedPersonnel:page'"-->
<!-- :title="$t('ListOfRelevantPersonnel')"--> <!-- :title="$t('ListOfRelevantPersonnel')"-->
<!-- class="button-text"--> <!-- class="button-text"-->
<!-- >--> <!-- >-->
<!-- {{$t('ListOfRelevantPersonnel')}}--> <!-- {{$t('ListOfRelevantPersonnel')}}-->
<!-- </a-button>--> <!-- </a-button>-->
</span> </span>
</div> </div>
</div> </div>
@@ -105,7 +105,7 @@
>{{queryForm.explanation}}</span> >{{queryForm.explanation}}</span>
</div> </div>
</div> </div>
<div class="box-text"> <div class="box-text" style="margin-top: 10px;margin-bottom: 10px">
<div class="header-text"> <div class="header-text">
{{$t('complianceCertificationProgram')}} {{$t('complianceCertificationProgram')}}
</div> </div>
@@ -132,23 +132,24 @@
</div> </div>
<div class="process-content-right-xian"></div> <div class="process-content-right-xian"></div>
</div> </div>
<div class="box-text"> <div class="box-text" style="margin-top: 10px">
<div class="header-text"> <div class="header-text">
{{$t('projectStatus')}} {{$t('projectStatus')}}
</div> </div>
<div class="header-tight"> <div class="header-tight">
<a-button class="box-button" <a-button class="box-button"
style="line-height: 32px" style="line-height: 32px"
@click="settingClick">{{$t('stateExport')}} @click="stateExportClick">{{$t('stateExport')}}
</a-button> </a-button>
<a-button class="box-button" <a-button class="box-button"
v-if="activeKey == $t('regulatoryComplianceManagement') || activeKey == $t('certificationActivityManagement')"
style="line-height: 32px" style="line-height: 32px"
@click="settingClick">{{$t('versionStatistics')}} @click="versionStatisticsClick">{{$t('versionStatistics')}}
</a-button> </a-button>
</div> </div>
</div> </div>
<projectStatus/> <projectStatus ref="projectStatusRef" @projectStatusForm="projectStatusForm"/>
<versionStatistics ref="versionStatisticsRef" @versionStatisticsForm="versionStatisticsForm"/>
<listOfRelevantPersonnel ref="listOfRelevantPersonnelRef"/> <listOfRelevantPersonnel ref="listOfRelevantPersonnelRef"/>
<addModel :url="url" ref="addModelRef" @addModelList="addModelList"/> <addModel :url="url" ref="addModelRef" @addModelList="addModelList"/>
<settingList :url="url" ref="settingListRef" @settingListForm="settingListForm"/> <settingList :url="url" ref="settingListRef" @settingListForm="settingListForm"/>
@@ -160,6 +161,7 @@
import listOfRelevantPersonnel from './listOfRelevantPersonnel' import listOfRelevantPersonnel from './listOfRelevantPersonnel'
import { getAction, postAction, downloadFile, putAction } from '@/api/manage' import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
import addModel from './addModel' import addModel from './addModel'
import versionStatistics from './versionStatistics'
import settingList from './settingList' import settingList from './settingList'
import projectStatus from './projectStatus' import projectStatus from './projectStatus'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
@@ -170,14 +172,15 @@
listOfRelevantPersonnel, listOfRelevantPersonnel,
addModel, addModel,
settingList, settingList,
projectStatus projectStatus,
versionStatistics
}, },
data() { data() {
return { return {
queryForm: {}, queryForm: {},
cut: '', cut: '',
administrators: false, administrators: false,
activeKey: this.$t('CurrentStatusOfTheProject'), activeKey: this.$t('regulatoryComplianceManagement'),
url: { url: {
queryById: 'project/projectLibraryBase/queryById', queryById: 'project/projectLibraryBase/queryById',
add: 'project/projectLibraryBase/add', add: 'project/projectLibraryBase/add',
@@ -187,6 +190,8 @@
editSettingUrl: 'project/projectTaskPlanning/edit', editSettingUrl: 'project/projectTaskPlanning/edit',
settingQueryForm: '/project/projectTaskPlanning/list' settingQueryForm: '/project/projectTaskPlanning/list'
}, },
selectedRowKeys: [],
idList: [],
regulatoryCertificationTaskPlanList: [] regulatoryCertificationTaskPlanList: []
} }
}, },
@@ -194,6 +199,7 @@
this.getForm() this.getForm()
this.getSetting() this.getSetting()
this.administrators = false this.administrators = false
this.activeKey = this.$t('regulatoryComplianceManagement')
if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) { if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) {
this.userInfo().userRoleList.forEach(res => { this.userInfo().userRoleList.forEach(res => {
if (res.roleCode == 'admin') { if (res.roleCode == 'admin') {
@@ -243,7 +249,6 @@
} }
}, },
edit() { edit() {
console.log(this.queryForm)
this.$refs.addModelRef.editModel(JSON.parse(JSON.stringify(this.queryForm))) this.$refs.addModelRef.editModel(JSON.parse(JSON.stringify(this.queryForm)))
}, },
addModelList() { addModelList() {
@@ -251,6 +256,20 @@
}, },
settingClick() { settingClick() {
this.$refs.settingListRef.edit() this.$refs.settingListRef.edit()
},
stateExportClick() {
},
versionStatisticsClick() {
this.$refs.versionStatisticsRef.addModel(JSON.parse(JSON.stringify(this.selectedRowKeys)))
},
versionStatisticsForm(value) {
this.$refs.projectStatusRef.versionStatisticsForm(value)
this.selectedRowKeys = JSON.parse(JSON.stringify(value))
},
projectStatusForm(activeKey) {
this.activeKey = activeKey
} }
} }
} }
@@ -306,7 +325,7 @@
.text-field-content { .text-field-content {
width: 100%; width: 100%;
margin-bottom: 34px; /*margin-bottom: 34px;*/
.text-field-left { .text-field-left {
width: 124px; width: 124px;
@@ -421,7 +440,8 @@
.button-text { .button-text {
padding: 0 13px; padding: 0 13px;
} }
.box-button{
.box-button {
margin-left: 12px; margin-left: 12px;
} }
</style> </style>
@@ -61,8 +61,8 @@
:data-source="dataSource" :data-source="dataSource"
:columns="columns" :columns="columns"
> >
<span slot="ProcessType" slot-scope="text,result"> <span slot="problemType" slot-scope="text,result">
<a @click="standardClick(result)" class="textName" :title="text"> <a @click="problemTypeClick(result)" class="textName" :title="text">
{{text}} {{text}}
</a> </a>
</span> </span>
@@ -85,17 +85,22 @@
<!-- @showSizeChange="SizeChange"--> <!-- @showSizeChange="SizeChange"-->
<!-- />--> <!-- />-->
<!-- </div>--> <!-- </div>-->
<designCompliance ref="designComplianceRef"/>
</a-card> </a-card>
</template> </template>
<script> <script>
import { getAction, postAction, downloadFile, deleteAction,downloadFilePost } from '@/api/manage' import { getAction, postAction, downloadFile, deleteAction,downloadFilePost } from '@/api/manage'
import designCompliance from '../../toDoCenter/projectRegulationTasks/components/designCompliance'
import store from '@/store/' import store from '@/store/'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header' import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default { export default {
name: 'nonConformance', name: 'nonConformance',
mixins:[ResizeHeader, ResizeColumnProvide], mixins:[ResizeHeader, ResizeColumnProvide],
components:{
designCompliance
},
data() { data() {
return { return {
queryParam: {}, queryParam: {},
@@ -125,7 +130,6 @@
title: this.$t('ProcessType'), title: this.$t('ProcessType'),
align: 'left', align: 'left',
dataIndex: 'flowTypeName', dataIndex: 'flowTypeName',
scopedSlots: { customRender: 'ProcessType' },
ellipsis: true, ellipsis: true,
sorter:true, sorter:true,
width: 150 width: 150
@@ -144,7 +148,8 @@
dataIndex: 'flowStatusName', dataIndex: 'flowStatusName',
ellipsis: true, ellipsis: true,
sorter:true, sorter:true,
width: 150 width: 150,
scopedSlots: { customRender: 'problemType' },
}, },
{ {
title: this.$t('Sponsor'), title: this.$t('Sponsor'),
@@ -270,55 +275,64 @@
}) })
window.open(newUrl.href, '_blank') window.open(newUrl.href, '_blank')
}, },
standardClick(val) { problemTypeClick(row, name){
let num = val.prcType let query = {}
let query = { let TaskKey = ''
taskIds: val.taskId, if (row.flowType == '2') {
projectTaskInventoryId: val.projectLawsInventoryId, if (row.flowStatus == 'Task to be confirmed' || row.flowStatus == 'Duty Person Rejected') {
projectLibraryId: val.projectLibraryId, TaskKey = 'zrrqr'
projectName: val.projectName, } else if (row.flowStatus == 'Results to be submitted') {
id: val.projectLibraryId, TaskKey = 'zrrtjjfw'
serialNumber: val.serialNumber, } else if (row.flowStatus == 'Results to be reviewed' ||
actiProcInstId: val.prcId, row.flowStatus == 'Compliance' ||
primaryKeyId: val.projectTaskInventoryDetailId, row.flowStatus == 'Non-Compliance' ||
TaskKey: val.taskDefinitionKey, row.flowStatus == 'To be tracked' ||
isDisplay: val.status == 'NotDone' ? true : false row.flowStatus == 'NA') {
TaskKey = 'fggcssh'
}
query = {
actiProcInstId: row.actiProcInstId,
projectTaskInventoryId: row.id,
projectLibraryId: this.$route.query.id,
TaskKey: TaskKey,
isDisplay: false,
flowType: row.flowType,
Sponsor: 'regulationOwnerName',
personLiable: 'designDutyIdName',
typeOfDeliverables: 'designDeliverableTypeName',
deliverableTemplate: 'designDeliverableTemplate',
DueDate: 'designDueDate',
remarks: 'designRemark',
}
} else if(row.flowType == '4'){
if (row.flowStatus == 'Task to be confirmed' || row.flowStatus == 'Duty Person Rejected') {
TaskKey = 'zrrqr'
} else if (row.flowStatus == 'Results to be submitted') {
TaskKey = 'zrrtjjfw'
} else if (row.flowStatus == 'Results to be reviewed' ||
row.flowStatus == 'Compliance' ||
row.flowStatus == 'Non-Compliance' ||
row.flowStatus == 'To be tracked' ||
row.flowStatus == 'NA') {
TaskKey = 'fggcssh'
}
query = {
actiProcInstId: row.actiProcInstId,
projectTaskInventoryId: row.id,
projectLibraryId: this.$route.query.id,
TaskKey: TaskKey,
flowType: row.flowType,
isDisplay: false,
Sponsor: 'regulationOwnerName',
personLiable: 'verifyDutyIdName',
typeOfDeliverables: 'verifyDeliverableTypeName',
deliverableTemplate: 'verifyDeliverableTemplate',
DueDate: 'verifyDueDate',
remarks: 'verifyRemark',
}
} }
switch (num) { this.$refs.designComplianceRef.getList(JSON.parse(JSON.stringify(query)), row.flowTypeName)
case '2': },
query.flowType = 2
query.Sponsor = 'designInitiatorName'
query.personLiable = 'designDutyName'
query.typeOfDeliverables = 'designDeliverableTypeName'
query.deliverableTemplate = 'designDeliverableTemplate'
query.DueDate = 'designDueDate'
query.remarks = 'designRemark'
break
case '3':
query.flowType = 3
query.Sponsor = 'prehomoInitiatorName'
query.personLiable = 'prehomoDutyName'
query.typeOfDeliverables = 'prehomoDeliverableTypeName'
query.deliverableTemplate = 'prehomoDeliverableTemplate'
query.DueDate = 'prehomoDueDate'
query.remarks = 'prehomoRemark'
break
case '4':
query.flowType = 4
query.Sponsor = 'verifyInitiatorName'
query.personLiable = 'verifyDutyName'
query.typeOfDeliverables = 'verifyDeliverableTypeName'
query.deliverableTemplate = 'verifyDeliverableTemplate'
query.DueDate = 'verifyDueDate'
query.remarks = 'verifyRemark'
break
}
let newUrl = this.$router.resolve({
path: '/taskListProcess',
query: query
})
window.open(newUrl.href, '_blank')
}
} }
} }
</script> </script>
@@ -223,9 +223,15 @@
] ]
} }
option = { option = {
title: {
text: this.$t('parameterCollectionProgress'),
},
legend: { legend: {
data: [this.$t('Notatthe'), this.$t('Inthecollection'), this.$t('Submitted'), this.$t('SynchronizedLibrary')], data: [this.$t('Notatthe'), this.$t('Inthecollection'), this.$t('Submitted'), this.$t('SynchronizedLibrary')],
left: '10%' icon: 'circle',
bottom:'0',
itemWidth: 12,
itemHeight: 12,
}, },
toolbox: { toolbox: {
// feature: { // feature: {
@@ -270,8 +276,9 @@
}, },
yAxis: yAxis, yAxis: yAxis,
grid: { grid: {
left: '10%', bottom: '20%',
bottom: '20%' left:50,
right:10,
}, },
series: [ series: [
{ {
@@ -324,7 +331,7 @@
type: 'slider',//给x轴设置滚动条 type: 'slider',//给x轴设置滚动条
show: true, //flase直接隐藏图形 show: true, //flase直接隐藏图形
xAxisIndex: [0], xAxisIndex: [0],
bottom: 0, bottom: 46,
height: 20, height: 20,
showDetail: false, showDetail: false,
startValue: 0,//滚动条的起始位置 startValue: 0,//滚动条的起始位置
@@ -354,13 +361,14 @@
.box-content-left { .box-content-left {
width: calc(100% - 12px); width: calc(100% - 12px);
height: 600px; height: 626px;
border: 2px #eff1f3 solid; border: 2px #eff1f3 solid;
border-radius: 6px;
#main-left { #main-left {
width: 100%; width: 100%;
height: 100%; height: 100%;
padding: 24px; padding: 24px 20px;
box-sizing: border-box; box-sizing: border-box;
} }
@@ -11,7 +11,7 @@
<!-- class="operator-text">--> <!-- class="operator-text">-->
<!-- </div>--> <!-- </div>-->
<!-- </div>--> <!-- </div>-->
<a-tabs type="card" v-model="activeKey" class="ant-tabs"> <a-tabs type="card" v-model="activeKey" @change="activeKeyChange" class="ant-tabs">
<a-tab-pane :key="$t('regulatoryComplianceManagement')" :tab="$t('regulatoryComplianceManagement')"> <a-tab-pane :key="$t('regulatoryComplianceManagement')" :tab="$t('regulatoryComplianceManagement')">
<regulatoryCompliance @currentStatus="currentStatus" <regulatoryCompliance @currentStatus="currentStatus"
:idList="idList" :idList="idList"
@@ -26,11 +26,9 @@
v-if="activeKey == $t('parameterCollectionProgressManagement')"/> v-if="activeKey == $t('parameterCollectionProgressManagement')"/>
</a-tab-pane> </a-tab-pane>
<a-tab-pane :key="$t('nonConformance')" :tab="$t('nonConformance')"> <a-tab-pane :key="$t('nonConformance')" :tab="$t('nonConformance')">
<nonConformance @currentStatus="currentStatus" :idList="[]" <nonConformance @currentStatus="currentStatus" v-if="activeKey == $t('nonConformance')"/>
v-if="activeKey == $t('nonConformance')"/>
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
<versionStatistics ref="versionStatisticsRef" @versionStatisticsForm="versionStatisticsForm"/>
</a-card> </a-card>
</template> </template>
@@ -38,7 +36,6 @@
import regulatoryCompliance from './regulatoryCompliance' import regulatoryCompliance from './regulatoryCompliance'
import certificationActivity from './certificationActivity' import certificationActivity from './certificationActivity'
import parameterCollectionProgress from './parameterCollectionProgress' import parameterCollectionProgress from './parameterCollectionProgress'
import versionStatistics from './versionStatistics'
import nonConformance from './nonConformance' import nonConformance from './nonConformance'
import { getAction, postAction } from '@/api/manage' import { getAction, postAction } from '@/api/manage'
@@ -48,7 +45,6 @@
parameterCollectionProgress, parameterCollectionProgress,
regulatoryCompliance, regulatoryCompliance,
certificationActivity, certificationActivity,
versionStatistics,
nonConformance nonConformance
}, },
data() { data() {
@@ -59,6 +55,9 @@
} }
}, },
methods: { methods: {
activeKeyChange(){
this.$emit('projectStatusForm',this.activeKey)
},
currentStatus(item) { currentStatus(item) {
this.$emit('TaskListChange', item) this.$emit('TaskListChange', item)
}, },
@@ -34,7 +34,7 @@
:components="drag(columns,'columns')" :components="drag(columns,'columns')"
:columns="columns" :columns="columns"
:rowKey="(record)=>JSON.stringify(record)" :rowKey="(record)=>JSON.stringify(record)"
:scroll="{x: '100%',y:500}" :scroll="{x: '100%',y:'calc(100vh - 280px)'}"
:data-source="dataList" :data-source="dataList"
:pagination="false" :pagination="false"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"