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

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