Merge remote-tracking branch 'origin/fix_bug_first_stage' into fix_bug_first_stage
This commit is contained in:
@@ -671,6 +671,10 @@ module.exports = {
|
||||
listConfirmation: 'List Confirmation',
|
||||
ListConfirmationDeadline: 'List confirmation deadline',
|
||||
dataConfirmation: 'Please select the data whose list confirmation status is not initiated or rejected, and the regulatory engineer and certification engineer are not empty',
|
||||
pleaseSelectinitiatedOrRejected: 'Please select the data whose list confirmation status is not initiated or rejected',
|
||||
TheEngineerAndCertification: 'The regulatory engineer and Certification Engineer of cannot be blank',
|
||||
PleaseTaskConfirmationRejected: 'Please select the data whose list confirmation status is accepted and task confirmation status is not initiated or rejected',
|
||||
theProjectContactEmpty: 'The project contact person of cannot be empty',
|
||||
pleaseSelectPersonFirst: 'Please select a person first',
|
||||
onlyOnePersonCanBeSelected: 'Only one person can be selected',
|
||||
overrule: 'Overrule',
|
||||
@@ -939,6 +943,6 @@ module.exports = {
|
||||
question: 'Question',
|
||||
ConfirmQuestion: 'Confirm Question',
|
||||
disableInput: 'Disable input',
|
||||
taskConfirmationDeadline:'Task Confirmation Deadline',
|
||||
taskConfirmationDeadline: 'Task Confirmation Deadline',
|
||||
OnlyOrTaskconfirmationOut: 'Only when the list confirmation status or task confirmation status is to be confirmed can the reminder be carried out'
|
||||
}
|
||||
@@ -680,7 +680,11 @@ module.exports = {
|
||||
listConfirmation: '清单确认',
|
||||
ListConfirmationDeadline: '清单确认截止时间',
|
||||
dataConfirmation: '请选择清单确认状态为未发起或拒绝的数据,以及法规工程师、认证工程师不为空',
|
||||
pleaseSelectinitiatedOrRejected:'请选择清单确认状态为未发起或拒绝的数据',
|
||||
TheEngineerAndCertification:'的法规工程师、认证工程师不能为空',
|
||||
taskDataConfirmation: '请选择清单确认状态为接受及任务确认状态为未发起或拒绝的数据,以及工程接口人不为空',
|
||||
theProjectContactEmpty:'的工程接口人不能为空',
|
||||
PleaseTaskConfirmationRejected:'请选择清单确认状态为接受及任务确认状态为未发起或拒绝的数据',
|
||||
pleaseSelectPersonFirst: '请先选择人员',
|
||||
onlyOnePersonCanBeSelected: '只能选择一个人员',
|
||||
overrule: '驳回',
|
||||
|
||||
@@ -320,8 +320,7 @@
|
||||
align: 'center',
|
||||
dataIndex: 'subtitle',
|
||||
width: 180,
|
||||
fixed: 'left',
|
||||
scopedSlots: { customRender: 'titleName' }
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('zoneOfApplication'),
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
</div>
|
||||
<div style="padding: 67px 0 0 0;background: #ffffff;height:100%">
|
||||
<div class="detail-content" style="height: 100%">
|
||||
<div class="Virtual-detail-left">
|
||||
<div v-if="isDisplay" class="Virtual-detail-left">
|
||||
<div class="Virtual-detail-left-text" :title="$t('projectDetails')"
|
||||
v-has="'projectLawsInventory:projectDetails'"
|
||||
v-if="isTrue"
|
||||
@@ -37,28 +37,58 @@
|
||||
</div>
|
||||
<div class="Virtual-detail-left-text" v-has="'projectLawsInventory:list'" :title="$t('listOfRegulations')"
|
||||
@click="textClick(1,$t('listOfRegulations'))">
|
||||
<a-icon type="container"/>
|
||||
<a-icon type="control"/>
|
||||
{{$t('listOfRegulations')}}
|
||||
</div>
|
||||
<div class="Virtual-detail-left-text" :title="$t('taskList')"
|
||||
v-has="'projectLawsInventory:taskList'"
|
||||
@click="textClick(2,$t('taskList'))">
|
||||
<a-icon type="container"/>
|
||||
<a-icon type="safety"/>
|
||||
{{$t('taskList')}}
|
||||
</div>
|
||||
<div class="Virtual-detail-left-text" v-has="'ncrTrack:queryPageInfo'" :title="$t('nonConformance')"
|
||||
@click="textClick(3,$t('nonConformance'))">
|
||||
<a-icon type="container"/>
|
||||
<a-icon type="safety-certificate"/>
|
||||
{{$t('nonConformance')}}
|
||||
</div>
|
||||
<div class="Virtual-detail-left-text" v-has="'projectLawsInventory:TaskParameterCollection'"
|
||||
:title="$t('TaskParameterCollection')"
|
||||
@click="textClick(4,$t('TaskParameterCollection'))">
|
||||
<a-icon type="container"/>
|
||||
<a-icon type="profile"/>
|
||||
{{$t('TaskParameterCollection')}}
|
||||
</div>
|
||||
<a-icon @click="textIconClick" type="menu-fold" class="text-icon"/>
|
||||
</div>
|
||||
<div class="Virtual-detail-right">
|
||||
<div v-if="!isDisplay" class="Virtual-detail-left-One">
|
||||
<div class="Virtual-detail-left-text"
|
||||
:title="$t('projectDetails')"
|
||||
v-has="'projectLawsInventory:projectDetails'"
|
||||
v-if="isTrue"
|
||||
@click="textClick(0,$t('projectDetails'))">
|
||||
<a-icon type="container"/>
|
||||
</div>
|
||||
<div class="Virtual-detail-left-text" v-has="'projectLawsInventory:list'" :title="$t('listOfRegulations')"
|
||||
@click="textClick(1,$t('listOfRegulations'))">
|
||||
<a-icon type="control"/>
|
||||
</div>
|
||||
<div class="Virtual-detail-left-text" :title="$t('taskList')"
|
||||
v-has="'projectLawsInventory:taskList'"
|
||||
@click="textClick(2,$t('taskList'))">
|
||||
<a-icon type="safety"/>
|
||||
</div>
|
||||
<div class="Virtual-detail-left-text" v-has="'ncrTrack:queryPageInfo'" :title="$t('nonConformance')"
|
||||
@click="textClick(3,$t('nonConformance'))">
|
||||
<a-icon type="safety-certificate"/>
|
||||
</div>
|
||||
<div class="Virtual-detail-left-text" v-has="'projectLawsInventory:TaskParameterCollection'"
|
||||
:title="$t('TaskParameterCollection')"
|
||||
@click="textClick(4,$t('TaskParameterCollection'))">
|
||||
<a-icon type="profile"/>
|
||||
</div>
|
||||
<a-icon @click="textIconClick" type="menu-unfold" class="text-icon-one"/>
|
||||
</div>
|
||||
<div class="Virtual-detail-right"
|
||||
:style="{'width':isDisplay?'calc(100% - 240px)':'calc(100% - 66px)'}">
|
||||
<ProjectDetailsName @TaskListChange="TaskListChange" v-if="textTitle === $t('projectDetails')"/>
|
||||
<listOfRegulations v-else-if="textTitle === $t('listOfRegulations')"/>
|
||||
<TaskList :isDisplayNum="isDisplayNum" :areaOfResponsibility="areaOfResponsibility"
|
||||
@@ -106,6 +136,8 @@
|
||||
textTitle: '',
|
||||
isTrue: true,
|
||||
loading: false,
|
||||
isDisplay: true,
|
||||
|
||||
url: {
|
||||
logList: '/project/projectLawsInventoryLogEO/page',
|
||||
historicalVersionUrl: '',
|
||||
@@ -151,6 +183,9 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
textIconClick() {
|
||||
this.isDisplay = !this.isDisplay
|
||||
},
|
||||
...mapGetters(['userInfo']),
|
||||
textColor(name) {
|
||||
let textColor = document.getElementsByClassName('Virtual-detail-left-text-color')
|
||||
@@ -312,11 +347,13 @@
|
||||
|
||||
.Virtual-detail-left {
|
||||
width: 240px;
|
||||
flex: 0 0 240px;
|
||||
padding: 16px 24px;
|
||||
box-sizing: border-box;
|
||||
font-size: 16px;
|
||||
line-height: 3;
|
||||
float: left;
|
||||
transition: all 0.2s;
|
||||
|
||||
.Virtual-detail-left-text {
|
||||
padding: 2px 12px;
|
||||
@@ -327,12 +364,30 @@
|
||||
}
|
||||
}
|
||||
|
||||
.Virtual-detail-left-One {
|
||||
width: 66px;
|
||||
flex: 0 0 66px;
|
||||
display: inline-block;
|
||||
padding: 16px 16px;
|
||||
box-sizing: border-box;
|
||||
font-size: 18px;
|
||||
right: 0;
|
||||
transition: all 0.2s;
|
||||
|
||||
.Virtual-detail-left-text {
|
||||
padding: 2px 8px;
|
||||
cursor: pointer;
|
||||
margin-bottom: 18px;
|
||||
color: rgb(0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.Virtual-detail-right {
|
||||
border-left: 2px #eff1f3 solid;
|
||||
width: calc(100% - 240px);
|
||||
height: 100%;
|
||||
float: left;
|
||||
float: right;
|
||||
overflow: auto;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -344,4 +399,24 @@
|
||||
.Virtual-detail-text-right {
|
||||
|
||||
}
|
||||
|
||||
.text-icon {
|
||||
color: rgb(0, 0, 0);
|
||||
font-size: 22px;
|
||||
position: absolute;
|
||||
left: 230px;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
transition: all 0.2s;
|
||||
}
|
||||
|
||||
.text-icon-one {
|
||||
color: rgb(0, 0, 0);
|
||||
font-size: 22px;
|
||||
position: absolute;
|
||||
left: 56px;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
transition: all 0.2s;
|
||||
}
|
||||
</style>
|
||||
@@ -5,7 +5,8 @@
|
||||
{{$t('basicInformationOfParameters')}}
|
||||
</div>
|
||||
<div class="header-tight">
|
||||
<a-button v-has="'projectLibraryBase:edit'" class="box-button" style="line-height: 32px" @click="edit">
|
||||
<a-button v-if="this.$route.query.studioEngineer == this.userInfo().id" class="box-button"
|
||||
style="line-height: 32px" @click="edit">
|
||||
{{$t('edit')}}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -92,7 +93,8 @@
|
||||
{{$t('regulatoryCertificationTaskPlan')}}
|
||||
</div>
|
||||
<div class="header-tight">
|
||||
<a-button class="box-button" v-has="'projectTaskPlanning:queryByProjectId'" style="line-height: 32px"
|
||||
<a-button class="box-button" v-if="this.$route.query.studioEngineer == this.userInfo().id"
|
||||
style="line-height: 32px"
|
||||
@click="settingClick">{{$t('setting')}}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -139,6 +141,7 @@
|
||||
import currentStatusOfTheProjectEcharts from './currentStatusOfTheProjectEcharts'
|
||||
import deliverableStatusEchart from './deliverableStatusEchart'
|
||||
import certificationProgressEchart from './certificationProgressEchart'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'ProjectDetails',
|
||||
@@ -171,6 +174,7 @@
|
||||
this.getSetting()
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
getForm() {
|
||||
getAction(this.url.queryById, { id: this.$route.query.id }).then((res) => {
|
||||
if (res.success) {
|
||||
|
||||
@@ -46,7 +46,9 @@
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
<div class="table-operator" style="overflow:hidden;">
|
||||
<div class="table-operator"
|
||||
v-if="(isRoleSwitching && !isDisplay) || (!isDisplay && roleSwitchingList.length > 1) || isDisplay"
|
||||
style="overflow:hidden;margin-bottom: 20px">
|
||||
<div style="float: left;margin-bottom: 0px;margin-left: 20px" v-if="isDisplay">
|
||||
<div class="operator-text" @click="initiateListConfirmationcClick('清单')">
|
||||
<a-icon type="solution"/>
|
||||
@@ -151,7 +153,7 @@
|
||||
class="tableList"
|
||||
:loading="loading"
|
||||
:pagination="false"
|
||||
:scroll="{x: '100%',y:'calc(100vh - 360px)'}"
|
||||
:scroll="{x: '100%',y:'calc(100vh - 170px)'}"
|
||||
rowKey="id"
|
||||
:data-source="dataSource"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
@@ -229,6 +231,7 @@
|
||||
@ok="handleOk"
|
||||
@cancel="handleCancel"
|
||||
>
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
@@ -262,6 +265,7 @@
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form-model>
|
||||
</a-spin>
|
||||
</a-modal>
|
||||
<a-modal
|
||||
:title="fileTitle"
|
||||
@@ -414,9 +418,8 @@
|
||||
title: this.$t('subtitle'),
|
||||
align: 'center',
|
||||
dataIndex: 'subtitle',
|
||||
width: 180,
|
||||
fixed: 'left',
|
||||
scopedSlots: { customRender: 'titleName' }
|
||||
ellipsis: true,
|
||||
width: 180
|
||||
},
|
||||
{
|
||||
title: this.$t('listConfirmationStatus'),
|
||||
@@ -1279,11 +1282,16 @@
|
||||
for (let i = 0; i < this.dataSource.length; i++) {
|
||||
for (let j = 0; j < selectedRowKeys.length; j++) {
|
||||
if (this.dataSource[i].id == selectedRowKeys[j]) {
|
||||
if ((this.dataSource[i].inventoryAffirmStatus == 'Not started' || this.dataSource[i].inventoryAffirmStatus == 'Rejected') &&
|
||||
this.dataSource[i].homologationEngineerId && this.dataSource[i].regulationOwnerId) {
|
||||
isTrue = true
|
||||
if (this.dataSource[i].inventoryAffirmStatus == 'Not started' || this.dataSource[i].inventoryAffirmStatus == 'Rejected') {
|
||||
if (this.dataSource[i].homologationEngineerId && this.dataSource[i].regulationOwnerId) {
|
||||
isTrue = true
|
||||
} else {
|
||||
this.$message.warning(this.dataSource[i].serialNumber + this.$t('TheEngineerAndCertification'))
|
||||
isTrue = false
|
||||
return
|
||||
}
|
||||
} else {
|
||||
this.$message.warning(this.$t('The') + (i + 1) + this.$t('strip') + ',' + this.$t('dataConfirmation'))
|
||||
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseSelectinitiatedOrRejected'))
|
||||
isTrue = false
|
||||
return
|
||||
}
|
||||
@@ -1309,40 +1317,46 @@
|
||||
for (let j = 0; j < selectedRowKeys.length; j++) {
|
||||
if (this.dataSource[i].id == selectedRowKeys[j]) {
|
||||
if ((this.dataSource[i].taskAffirmStatus == 'Not started' || this.dataSource[i].taskAffirmStatus == 'Rejected') &&
|
||||
this.dataSource[i].engineeringInterfacePerson && this.dataSource[i].inventoryAffirmStatus == 'Accepted') {
|
||||
if ((this.dataSource[i].verifyDueDate && this.dataSource[i].verifyDutyId
|
||||
&& this.dataSource[i].verifyInitiatorId && this.dataSource[i].verifyDeliverableType) ||
|
||||
(!this.dataSource[i].verifyDueDate && !this.dataSource[i].verifyDutyId
|
||||
&& !this.dataSource[i].verifyInitiatorId && !this.dataSource[i].verifyDeliverableType)) {
|
||||
isTrue = true
|
||||
this.dataSource[i].inventoryAffirmStatus == 'Accepted') {
|
||||
if (this.dataSource[i].engineeringInterfacePerson) {
|
||||
if ((this.dataSource[i].verifyDueDate && this.dataSource[i].verifyDutyId
|
||||
&& this.dataSource[i].verifyInitiatorId && this.dataSource[i].verifyDeliverableType) ||
|
||||
(!this.dataSource[i].verifyDueDate && !this.dataSource[i].verifyDutyId
|
||||
&& !this.dataSource[i].verifyInitiatorId && !this.dataSource[i].verifyDeliverableType)) {
|
||||
isTrue = true
|
||||
} else {
|
||||
isTrue = false
|
||||
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseConformityVerification'))
|
||||
return
|
||||
}
|
||||
if ((this.dataSource[i].prehomoDueDate && this.dataSource[i].prehomoDutyId
|
||||
&& this.dataSource[i].prehomoInitiatorId && this.dataSource[i].prehomoDeliverableType) ||
|
||||
(!this.dataSource[i].prehomoDueDate && !this.dataSource[i].prehomoDutyId
|
||||
&& !this.dataSource[i].prehomoInitiatorId && !this.dataSource[i].prehomoDeliverableType)) {
|
||||
isTrue = true
|
||||
} else {
|
||||
isTrue = false
|
||||
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseConfirmedByPrehomo'))
|
||||
return
|
||||
}
|
||||
if ((this.dataSource[i].designDueDate && this.dataSource[i].designDutyId
|
||||
&& this.dataSource[i].designInitiatorId && this.dataSource[i].designDeliverableType) ||
|
||||
(!this.dataSource[i].designDueDate && !this.dataSource[i].designDutyId
|
||||
&& !this.dataSource[i].designInitiatorId && !this.dataSource[i].designDeliverableType)) {
|
||||
isTrue = true
|
||||
} else {
|
||||
isTrue = false
|
||||
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseDesignConformityConfirmation'))
|
||||
return
|
||||
}
|
||||
} else {
|
||||
isTrue = false
|
||||
this.$message.warning(this.$t('The') + (i + 1) + this.$t('strip') + ',' + this.$t('pleaseConformityVerification'))
|
||||
return
|
||||
}
|
||||
if ((this.dataSource[i].prehomoDueDate && this.dataSource[i].prehomoDutyId
|
||||
&& this.dataSource[i].prehomoInitiatorId && this.dataSource[i].prehomoDeliverableType) ||
|
||||
(!this.dataSource[i].prehomoDueDate && !this.dataSource[i].prehomoDutyId
|
||||
&& !this.dataSource[i].prehomoInitiatorId && !this.dataSource[i].prehomoDeliverableType)) {
|
||||
isTrue = true
|
||||
} else {
|
||||
isTrue = false
|
||||
this.$message.warning(this.$t('The') + (i + 1) + this.$t('strip') + ',' + this.$t('pleaseConfirmedByPrehomo'))
|
||||
return
|
||||
}
|
||||
if ((this.dataSource[i].designDueDate && this.dataSource[i].designDutyId
|
||||
&& this.dataSource[i].designInitiatorId && this.dataSource[i].designDeliverableType) ||
|
||||
(!this.dataSource[i].designDueDate && !this.dataSource[i].designDutyId
|
||||
&& !this.dataSource[i].designInitiatorId && !this.dataSource[i].designDeliverableType)) {
|
||||
isTrue = true
|
||||
} else {
|
||||
isTrue = false
|
||||
this.$message.warning(this.$t('The') + (i + 1) + this.$t('strip') + ',' + this.$t('pleaseDesignConformityConfirmation'))
|
||||
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('theProjectContactEmpty'))
|
||||
return
|
||||
}
|
||||
} else {
|
||||
isTrue = false
|
||||
this.$message.warning(this.$t('The') + (i + 1) + this.$t('strip') + ',' + this.$t('taskDataConfirmation'))
|
||||
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('PleaseTaskConfirmationRejected'))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,10 +84,11 @@
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<!-- <span class="Required">*</span>-->
|
||||
<span class="title-text-text" :title="$t('regulatoryEngineer')">{{$t('regulatoryEngineer')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" :prop="'lawEngineerName'">
|
||||
<!-- :prop="'lawEngineerName'"-->
|
||||
<a-form-model-item class="itemModel">
|
||||
<PersonnelSelection
|
||||
:query="{db_field_name:'lawEngineer',db_field_txt:$t('regulatoryEngineer')}"
|
||||
:personneQuery="formInline"
|
||||
@@ -101,10 +102,11 @@
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<!-- <span class="Required">*</span>-->
|
||||
<span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" :prop="'engineeringInterfacePersonName'">
|
||||
<!-- :prop="'engineeringInterfacePersonName'"-->
|
||||
<a-form-model-item class="itemModel">
|
||||
<PersonnelSelection
|
||||
:query="{db_field_name:'engineeringInterfacePerson',db_field_txt:$t('engineeringInterfacePerson')}"
|
||||
:personneQuery="formInline"
|
||||
@@ -118,10 +120,11 @@
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<!-- <span class="Required">*</span>-->
|
||||
<span class="title-text-text" :title="$t('certifiedEngineer')">{{$t('certifiedEngineer')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" :prop="'certificationEngineer'">
|
||||
<!-- :prop="'certificationEngineer'"-->
|
||||
<a-form-model-item class="itemModel">
|
||||
<a-select allowClear
|
||||
v-model="formInline.certificationEngineer"
|
||||
:placeholder="$t('certifiedEngineer')+$t('areaOfResponsibility')">
|
||||
@@ -325,6 +328,9 @@
|
||||
editOk() {
|
||||
this.$refs.ruleForm.validate(valid => {
|
||||
if (valid) {
|
||||
if (!this.formInline.certificationEngineer){
|
||||
this.formInline.certificationEngineer = ''
|
||||
}
|
||||
this.confirmLoading = true
|
||||
putAction(this.url.edit, this.formInline).then((res) => {
|
||||
if (res.success) {
|
||||
|
||||
Reference in New Issue
Block a user