Merge remote-tracking branch 'origin/master'

# Conflicts:
#	jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/template/service/impl/ParamsInfoEOServiceImpl.java
#	jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/InventoryAffirmJob.java
#	jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java
#	jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java
#	jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java
#	jero-web/src/common/lang/en-us.js
#	jero-web/src/common/lang/zh-cn.js
#	jero-web/src/components/uploadFileChangeDown/file.vue
This commit is contained in:
zer0Black
2022-07-01 15:12:31 +08:00
74 changed files with 1796 additions and 722 deletions
@@ -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,6 +46,7 @@
<a-table
ref="table"
bordered
class="taskTable"
:loading="loading"
:pagination="false"
:scroll="{x: true}"
@@ -197,7 +198,7 @@
scopedSlots: { customRender: 'CertificationProgress' }
},
{
title: this.$t('CurrentProjectStatusEvaluation'),
title: this.$t('CurrentStatus'),
align: 'center',
width: 150,
dataIndex: 'CurrentProjectStatusEvaluation',
@@ -406,7 +407,7 @@
},
CurrentProjectClick(val) {
let item = JSON.parse(JSON.stringify(val))
this.$refs.TaskListModelRef.getData(item, this.$t('CurrentProjectStatusEvaluation'))
this.$refs.TaskListModelRef.getData(item, this.$t('CurrentStatus'))
},
TaskListModelList() {
this.getList()
@@ -603,4 +604,9 @@
.box-input .ant-select-selection__rendered {
line-height: 38px;
}
.taskTable .ant-empty-normal {
padding: 32px 0 !important;
margin: 0 !important;
}
</style>
@@ -10,7 +10,7 @@
>
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<div class="headerText" v-if="title == $t('CurrentProjectStatusEvaluation')">
<div class="headerText" v-if="title == $t('CurrentStatus')">
{{this.$t('redSchedule')}}<br/>
{{this.$t('yellowSchedule')}}<br/>
{{this.$t('greenRequirements')}}<br/>
@@ -47,7 +47,7 @@
</div>
</a-col>
<a-col :span="24" v-if="title == $t('CurrentProjectStatusEvaluation') && this.formInline.roleCode != '0'">
<a-col :span="24" v-if="title == $t('CurrentStatus') && this.formInline.roleCode != '0'">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
@@ -84,7 +84,7 @@
</div>
</a-col>
<a-col :span="24" v-if="title == $t('CurrentProjectStatusEvaluation') && this.formInline.roleCode != '0'">
<a-col :span="24" v-if="title == $t('CurrentStatus') && this.formInline.roleCode != '0'">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
@@ -99,7 +99,7 @@
</div>
</a-col>
<div v-for="item in studioList"
v-if="title == $t('CurrentProjectStatusEvaluation') && formInline.roleCode == '0'">
v-if="title == $t('CurrentStatus') && formInline.roleCode == '0'">
<div class="headerText"
v-if="item.roleCode == 1"
style="margin-top: 10px">
@@ -196,7 +196,7 @@
getData(val, title) {
this.visible = true
this.title = title
if (title == this.$t('CurrentProjectStatusEvaluation')) {
if (title == this.$t('CurrentStatus')) {
val.remark = val.projectStatusAssessRemark || ''
val.conditionAssessment = val.projectStatusAssess || ''
if (val.roleCode == '2' || val.roleCode == '4' || val.roleCode == '1') {
@@ -31,11 +31,15 @@
<span class="title-text-text" :title="$t('certificationType')">{{$t('certificationType')}}</span>
</div>
<a-form-model-item class="itemModel">
<j-dict-select-tag class="box-input" v-model="formInline.attestationType"
@input="handleInput('attestationType')"
:placeholder="$t('PleaseSelect')+$t('certificationType')"
:type="'select'"
:triggerChange="false" dictCode="attestation_type"/>
<j-multi-select-tag class="box-input" v-model="formInline.attestationType"
:placeholder="$t('PleaseSelect')+$t('certificationType')"
:type="'select'"
:triggerChange="false" :dictCode="'attestation_type'"/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.attestationType"-->
<!-- @input="handleInput('attestationType')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('certificationType')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" dictCode="attestation_type"/>-->
</a-form-model-item>
</div>
</a-col>
@@ -61,11 +65,15 @@
<span class="title-text-text" :title="$t('certificationLevel')">{{$t('certificationLevel')}}</span>
</div>
<a-form-model-item class="itemModel">
<j-dict-select-tag class="box-input" v-model="formInline.attestationRank"
@input="handleInput('attestationRank')"
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
:type="'select'"
:triggerChange="false" dictCode="attestation_rank"/>
<j-multi-select-tag class="box-input" v-model="formInline.attestationRank"
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
:type="'select'"
:triggerChange="false" :dictCode="'attestation_rank'"/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.attestationRank"-->
<!-- @input="handleInput('attestationRank')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('certificationLevel')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" dictCode="attestation_rank"/>-->
</a-form-model-item>
</div>
</a-col>
@@ -142,7 +142,7 @@
<span class="title-text-text"
:title="$t('certificationType')">{{$t('certificationType')}}</span>
</div>
<a-form-model-item class="itemModel" prop="attestationType">
<a-form-model-item class="itemModel-multi" prop="attestationType">
<j-multi-select-tag class="box-input" v-model="formInline.attestationType"
:disabled="formInline.roleCode == 0 || formInline.roleCode == 2 ? false : true"
:placeholder="$t('PleaseSelect')+$t('certificationType')"
@@ -158,13 +158,12 @@
<span class="title-text-text"
:title="$t('certificationLevel')">{{$t('certificationLevel')}}</span>
</div>
<a-form-model-item class="itemModel" prop="attestationRank">
<j-dict-select-tag class="box-input" v-model="formInline.attestationRank"
:disabled="formInline.roleCode == 0 || formInline.roleCode == 2 ? false : true"
@input="handleInput('attestationRank')"
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
:type="'select'"
:triggerChange="false" :dictCode="'attestation_rank'"/>
<a-form-model-item class="itemModel-multi" prop="attestationRank">
<j-multi-select-tag class="box-input" v-model="formInline.attestationRank"
:disabled="formInline.roleCode == 0 || formInline.roleCode == 2 ? false : true"
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
:type="'select'"
:triggerChange="false" :dictCode="'attestation_rank'"/>
</a-form-model-item>
</div>
</a-col>
@@ -1,8 +1,8 @@
<template>
<a-card :bordered="false">
<div class="header-text">
{{ $t('DocumentStandard') }}
</div>
<!-- <div class="header-text">-->
<!-- {{ $t('DocumentStandard') }}-->
<!-- </div>-->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
@@ -46,8 +46,10 @@
</a-row>
</a-form>
</div>
<div class="table-operator" style="overflow:hidden;">
<div style="float: left;margin-bottom: 10px;margin-left: 20px" v-if="isDisplay">
<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"/>
{{ $t('initiateListConfirmation') }}
@@ -124,7 +126,7 @@
{{ $t('roleSwitching') }}
</div>
</div>
<div v-if="!isDisplay" style="float: right;margin-top: 1px;margin-bottom: 19px">
<div v-if="!isDisplay" style="float: right;margin-top: 1px;margin-bottom: 0px">
<div class="operator-text" @click="submitClick(0)" v-if="isRoleSwitching">
<a-icon type="check-circle"/>
{{ $t('submit') }}
@@ -148,9 +150,10 @@
<div style="width: 100%">
<a-table
ref="table"
class="tableList"
:loading="loading"
:pagination="false"
:scroll="{x: '100%',y:'calc(100vh - 420px)'}"
:scroll="{x: '100%',y:'calc(100vh - 170px)'}"
rowKey="id"
:data-source="dataSource"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
@@ -220,7 +223,7 @@
<transferList :url="url" @transferListForm="addModelList" ref="transferListRef"/>
<fixedPlate @fixedPlateForm="addModelList" ref="fixedPlateRef"/>
<a-modal
:title="$t('ListConfirmationDeadline')"
:title="listTitle"
:width="500"
:visible="visible"
:confirm-loading="confirmLoading"
@@ -228,39 +231,41 @@
@ok="handleOk"
@cancel="handleCancel"
>
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text-index">
<div class="title-text-index">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('TaskCutOffTime')">{{ $t('TaskCutOffTime') }}</span>
<a-spin :spinning="confirmLoading">
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text-index">
<div class="title-text-index">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('TaskCutOffTime')">{{ $t('TaskCutOffTime') }}</span>
</div>
<a-form-model-item v-if="this.timeName == '清单'" class="itemModel" prop="inventoryAffirmDueDate">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('TaskCutOffTime')"
@change="dateChange({db_field_name:'inventoryAffirmDueDate'})"
format="YYYY-MM-DD"
:disabledDate="disabledDate"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.inventoryAffirmDueDate"
style="width: 100%"/>
</a-form-model-item>
<a-form-model-item v-else-if="this.timeName == '任务'" class="itemModel" prop="taskAffirmDueDate">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('TaskCutOffTime')"
@change="dateChange({db_field_name:'taskAffirmDueDate'})"
format="YYYY-MM-DD"
:disabledDate="disabledDate"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.taskAffirmDueDate"
style="width: 100%"/>
</a-form-model-item>
</div>
<a-form-model-item v-if="this.timeName == '清单'" class="itemModel" prop="inventoryAffirmDueDate">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('TaskCutOffTime')"
@change="dateChange({db_field_name:'inventoryAffirmDueDate'})"
format="YYYY-MM-DD"
:disabledDate="disabledDate"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.inventoryAffirmDueDate"
style="width: 100%"/>
</a-form-model-item>
<a-form-model-item v-else-if="this.timeName == '任务'" class="itemModel" prop="taskAffirmDueDate">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('TaskCutOffTime')"
@change="dateChange({db_field_name:'taskAffirmDueDate'})"
format="YYYY-MM-DD"
:disabledDate="disabledDate"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.taskAffirmDueDate"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
</a-col>
</a-row>
</a-form-model>
</a-spin>
</a-modal>
<a-modal
:title="fileTitle"
@@ -391,6 +396,7 @@
data() {
return {
roleSwitchingList: [],
listTitle: '',
columnsAll: [
{
title: this.$t('standard'),
@@ -412,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'),
@@ -1215,10 +1220,10 @@
this.getList()
},
searchReset() {
this.queryParam = {}
this.$refs.globalAdvancedQueryRef.resetLine()
this.$refs.globalAdvancedQueryRef.emitCallback()
this.queryParam = {}
this.getList()
// this.getList()
},
addModelList() {
this.getList()
@@ -1253,8 +1258,8 @@
roleCode: roleCode
}
this.loading = true
this.getRoleByUserId()
getAction(this.url.list, query).then((res) => {
this.getRoleByUserId()
if (res.success) {
this.dataSource = res.result
this.loading = false
@@ -1269,6 +1274,7 @@
this.getList()
},
initiateListConfirmationcClick(name) {
this.listTitle = this.$t('ListConfirmationDeadline')
this.timeName = name
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
@@ -1276,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('dataConfirmation'))
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseSelectinitiatedOrRejected'))
isTrue = false
return
}
@@ -1298,6 +1309,7 @@
initiateTaskConfirmationClick(name) {
this.timeName = name
this.listTitle = this.$t('taskConfirmationDeadline')
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
let isTrue = true
@@ -1305,40 +1317,49 @@
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].verifyRemark) {
if (this.dataSource[i].verifyDueDate && this.dataSource[i].verifyDutyId
&& this.dataSource[i].verifyInitiatorId) {
isTrue = true
} else {
isTrue = false
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseConformityVerification'))
return
}
}
if (this.dataSource[i].prehomoRemark) {
if (this.dataSource[i].prehomoDueDate && this.dataSource[i].prehomoDutyId
&& this.dataSource[i].prehomoInitiatorId) {
isTrue = true
} else {
isTrue = false
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseConfirmedByPrehomo'))
return
}
}
if (this.dataSource[i].designRemark) {
if (this.dataSource[i].designDueDate && this.dataSource[i].designDutyId
&& this.dataSource[i].designInitiatorId) {
isTrue = true
} else {
isTrue = false
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseDesignConformityConfirmation'))
return
}
}
} else {
isTrue = false
this.$message.warning(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('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('pleaseDesignConformityConfirmation'))
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('theProjectContactEmpty'))
return
}
} else {
isTrue = false
this.$message.warning(this.$t('taskDataConfirmation'))
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('PleaseTaskConfirmationRejected'))
return
}
}
@@ -1578,7 +1599,7 @@
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
if (fileSuffix == '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id))
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id + '&userName=' + this.userInfo().username))
} else if (fileSuffix == '.docx') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
window.open(url, '_blank')
@@ -1596,7 +1617,7 @@
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
if (fileSuffix == '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + id))
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + id + '&userName=' + this.userInfo().username))
} else if (fileSuffix == '.docx') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + id + fileSuffix)
window.open(url, '_blank')
@@ -1604,12 +1625,12 @@
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + id + fileSuffix)
window.open(url, '_blank')
} else {
downloadFile('/sys/common/downLoadFile', name, { id: id })
downloadFile('/sys/common/downLoadFile', name, { id: id, userName: this.userInfo().username })
}
},
download(item) {
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id })
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id, userName: this.userInfo().username })
},
clickButtonToUpload(item, num) {
@@ -1885,4 +1906,8 @@
.itemModelComment .ant-form-item-control-wrapper {
width: 100% !important;
}
.tableList .ant-table-thead > tr > th {
padding: 7px 16px !important;
}
</style>
@@ -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) {
@@ -35,6 +35,7 @@
import { ACCESS_TOKEN } from '@/store/mutation-types'
import { getAction, postAction, downFile, downloadFile, putAction } from '@/api/manage'
import { Base64 } from 'js-base64'
import { mapGetters } from 'vuex'
export default {
name: 'resultReportedUpload',
@@ -74,6 +75,7 @@
}
},
methods: {
...mapGetters(['userInfo']),
clickButtonToUploadFile(item) {
this.uploadQuery = item
this.myfileList = []
@@ -208,7 +210,7 @@
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
if (fileSuffix === '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id))
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
} else if (fileSuffix === '.docx') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
window.open(url, '_blank')
@@ -216,7 +218,7 @@
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
window.open(url, '_blank')
} else {
downloadFile('/sys/common/downLoadFile', fileQuery.fileName, { id: fileQuery.id })
downloadFile('/sys/common/downLoadFile', fileQuery.fileName, { id: fileQuery.id,userName:this.userInfo().username })
}
}
}