增加手机端pre-homo流程历史记录

This commit is contained in:
高嵩
2023-07-21 14:35:26 +08:00
parent 76818a8938
commit 8aa877c0ff
3 changed files with 210 additions and 48 deletions
@@ -7,6 +7,7 @@ import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException; import com.jero.common.exception.JeroBootException;
import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.project.enums.CertificationFlowNodeEnum;
import com.jero.modules.project.enums.OperatorTypeEnum; import com.jero.modules.project.enums.OperatorTypeEnum;
import com.jero.modules.project.enums.RequestSourceEnum; import com.jero.modules.project.enums.RequestSourceEnum;
import com.jero.modules.project.enums.ReviewResultEnum; import com.jero.modules.project.enums.ReviewResultEnum;
@@ -220,11 +221,13 @@ public class ProcessHistoryEOServiceImpl extends ServiceImpl<ProcessHistoryEOMap
data.setName(DesignComplianceFlowNodeKeyEnum.getTextByValue(data.getTaskDefinitionKey(), cut)); data.setName(DesignComplianceFlowNodeKeyEnum.getTextByValue(data.getTaskDefinitionKey(), cut));
} else if (StringUtils.equals(flowType, FlowTypeEnum.YZFHXSCLC.getValue()) || StringUtils.equals(flowType, FlowTypeEnum.YZ_XGJFWLC.getValue())) { } else if (StringUtils.equals(flowType, FlowTypeEnum.YZFHXSCLC.getValue()) || StringUtils.equals(flowType, FlowTypeEnum.YZ_XGJFWLC.getValue())) {
data.setName(VerifyComplianceFlowNodeKeyEnum.getTextByValue(data.getTaskDefinitionKey(), cut)); data.setName(VerifyComplianceFlowNodeKeyEnum.getTextByValue(data.getTaskDefinitionKey(), cut));
} else if (StringUtils.equals(flowType, FlowTypeEnum.CERTIFICATION_LC.getValue())) {
data.setName(CertificationFlowNodeEnum.getTextByValue(data.getTaskDefinitionKey(), cut));
} else if (StringUtils.isNotEmpty(data.getTaskDefinitionKey())) { } else if (StringUtils.isNotEmpty(data.getTaskDefinitionKey())) {
data.setName(DesignComplianceNodeEnum.getTextByValue(data.getTaskDefinitionKey(), cut)); data.setName(DesignComplianceNodeEnum.getTextByValue(data.getTaskDefinitionKey(), cut));
} }
} else if (StringUtils.isNotEmpty(data.getTaskDefinitionKey())) { } else if (StringUtils.isNotEmpty(data.getTaskDefinitionKey())) {
data.setName(DesignComplianceNodeEnum.getTextByValue(data.getTaskDefinitionKey(), cut)); data.setName(CertificationFlowNodeEnum.getTextByValue(data.getTaskDefinitionKey(), cut));
} }
if(StringUtils.isNotEmpty(data.getApprovalFile())){ if(StringUtils.isNotEmpty(data.getApprovalFile())){
@@ -11,12 +11,12 @@
</span> </span>
</div> </div>
<div class="Virtual-detail-text-right"> <div class="Virtual-detail-text-right">
<div class="operator-text" <!-- <div class="operator-text"-->
v-has="'projectComment:list'" <!-- v-has="'projectComment:list'"-->
@click="globalReplacementClick"> <!-- @click="globalReplacementClick">-->
<a-icon type="qrcode"/> <!-- <a-icon type="qrcode"/>-->
{{ $t('globalReplacement') }} <!-- {{ $t('globalReplacement') }}-->
</div> <!-- </div>-->
<!-- <div class="operator-text"--> <!-- <div class="operator-text"-->
<!-- v-if="textTitle === $t('listOfRegulations')"--> <!-- v-if="textTitle === $t('listOfRegulations')"-->
<!-- v-has="'projectComment:list'"--> <!-- v-has="'projectComment:list'"-->
@@ -184,45 +184,45 @@
<historicalVersionList ref="historicalVersionListRef"/> <historicalVersionList ref="historicalVersionListRef"/>
<commentList ref="commentListRef"/> <commentList ref="commentListRef"/>
<JLoading :loading="loading"></JLoading> <JLoading :loading="loading"></JLoading>
<SelectedBy ref="SelectedByRef" <!-- <SelectedBy ref="SelectedByRef"-->
:isSingleChoice="true" <!-- :isSingleChoice="true"-->
:title="$t('PersonnelSelection')" <!-- :title="$t('PersonnelSelection')"-->
@SelectedByForm="SelectedByForm"/> <!-- @SelectedByForm="SelectedByForm"/>-->
<a-drawer <!-- <a-drawer-->
:title="$t('globalReplacement')" <!-- :title="$t('globalReplacement')"-->
:maskClosable="false" <!-- :maskClosable="false"-->
:width="900" <!-- :width="900"-->
placement="right" <!-- placement="right"-->
:closable="true" <!-- :closable="true"-->
@close="handleCancel" <!-- @close="handleCancel"-->
:visible="selectVisible" <!-- :visible="selectVisible"-->
style="height: 100%;overflow: auto;padding-bottom: 53px;"> <!-- style="height: 100%;overflow: auto;padding-bottom: 53px;">-->
<a-spin :spinning="submitLoading"> <!-- <a-spin :spinning="submitLoading">-->
<a-table <!-- <a-table-->
ref="table" <!-- ref="table"-->
:loading="selectLoading" <!-- :loading="selectLoading"-->
:pagination="false" <!-- :pagination="false"-->
:scroll="{x: '100%',y:'calc(100vh - 300px)'}" <!-- :scroll="{x: '100%',y:'calc(100vh - 300px)'}"-->
rowKey="id" <!-- rowKey="id"-->
:data-source="dataSource" <!-- :data-source="dataSource"-->
:columns="columns" <!-- :columns="columns"-->
> <!-- >-->
<span slot="replacementPerson" <!-- <span slot="replacementPerson"-->
slot-scope="text,record,index" <!-- slot-scope="text,record,index"-->
:title="text"> <!-- :title="text">-->
<PersonnelSelection :query="{db_field_name:'newUserId',db_field_txt:$t('personLiable'),subscript:index}" <!-- <PersonnelSelection :query="{db_field_name:'newUserId',db_field_txt:$t('personLiable'),subscript:index}"-->
:isSingleChoice="true" <!-- :isSingleChoice="true"-->
:personneQuery="record" <!-- :personneQuery="record"-->
@change="PersonnelSelectionChange" <!-- @change="PersonnelSelectionChange"-->
v-model="record.newUserIdName"/> <!-- v-model="record.newUserIdName"/>-->
</span> <!-- </span>-->
</a-table> <!-- </a-table>-->
</a-spin> <!-- </a-spin>-->
<div class="drawer-bootom-button"> <!-- <div class="drawer-bootom-button">-->
<a-button @click="handleCancel" style="margin-right: 16px">{{ $t('cancel') }}</a-button> <!-- <a-button @click="handleCancel" style="margin-right: 16px">{{ $t('cancel') }}</a-button>-->
<a-button @click="handleSubmit" type="primary" :loading="submitLoading">{{ $t('submit') }}</a-button> <!-- <a-button @click="handleSubmit" type="primary" :loading="submitLoading">{{ $t('submit') }}</a-button>-->
</div> <!-- </div>-->
</a-drawer> <!-- </a-drawer>-->
</div> </div>
</template> </template>
@@ -79,6 +79,10 @@
</a-row> </a-row>
</a-form> </a-form>
<div class="table-operator"> <div class="table-operator">
<div @click="globalReplacementClick" v-has="'projectRelatedPersonnel:globalReplacement'" class="operator-text">
<a-icon type="qrcode"/>
{{$t('globalReplacement')}}
</div>
<div @click="handleModule" v-has="'projectRelatedPersonnel:exportTemplate'" class="operator-text"> <div @click="handleModule" v-has="'projectRelatedPersonnel:exportTemplate'" class="operator-text">
<a-icon type="download"/> <a-icon type="download"/>
{{$t('templateDownload')}} {{$t('templateDownload')}}
@@ -269,12 +273,52 @@
</a-spin> </a-spin>
</a-modal> </a-modal>
<personBatting ref="personBattingRef" @personBattingTable="personBattingTable"/> <personBatting ref="personBattingRef" @personBattingTable="personBattingTable"/>
<SelectedBy ref="SelectedByRef"
:isSingleChoice="true"
:title="$t('PersonnelSelection')"
@SelectedByForm="SelectedByForm"/>
<a-drawer
:title="$t('globalReplacement')"
:maskClosable="false"
:width="900"
placement="right"
:closable="true"
@close="selecthandleCancel"
:visible="selectVisible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<a-spin :spinning="submitLoading">
<a-table
ref="table"
:loading="selectLoading"
:pagination="false"
:scroll="{x: '100%',y:'calc(100vh - 300px)'}"
rowKey="id"
:data-source="selectDataSource"
:columns="selectColumns"
>
<span slot="replacementPerson"
slot-scope="text,record,index"
:title="text">
<PersonnelSelection :query="{db_field_name:'newUserId',db_field_txt:$t('personLiable'),subscript:index}"
:isSingleChoice="true"
:personneQuery="record"
@change="PersonnelSelectionOneChange"
v-model="record.newUserIdName"/>
</span>
</a-table>
</a-spin>
<div class="drawer-bootom-button">
<a-button @click="selecthandleCancel" style="margin-right: 16px">{{ $t('cancel') }}</a-button>
<a-button @click="selecthandleSubmit" type="primary" :loading="submitLoading">{{ $t('submit') }}</a-button>
</div>
</a-drawer>
</div> </div>
</template> </template>
<script> <script>
import PersonnelSelection from '@/components/PersonnelSelection/index' import PersonnelSelection from '@/components/PersonnelSelection/index'
import SelectedBy from '@/components/SelectedBy/index'
import personBatting from './personBatting' import personBatting from './personBatting'
import { getAction, postAction, downloadFile, putAction } from '@/api/manage' import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
import ImportFile from '@/components/ImportFile/index' import ImportFile from '@/components/ImportFile/index'
@@ -286,7 +330,8 @@
components: { components: {
PersonnelSelection, PersonnelSelection,
ImportFile, ImportFile,
personBatting personBatting,
SelectedBy
}, },
mixins: [ResizeHeader, ResizeColumnProvide], mixins: [ResizeHeader, ResizeColumnProvide],
data() { data() {
@@ -294,6 +339,9 @@
toggleSearchStatus: false, toggleSearchStatus: false,
visible: false, visible: false,
queryParam: {}, queryParam: {},
selectVisible: false,
submitLoading: false,
selectLoading: false,
columnsAll: [ columnsAll: [
{ {
title: this.$t('statisticalNodes'), title: this.$t('statisticalNodes'),
@@ -359,7 +407,41 @@
scopedSlots: { customRender: 'operation' } scopedSlots: { customRender: 'operation' }
} }
], ],
selectColumns: [
{
title: this.$t('replacedPerson'),
align: 'left',
dataIndex: 'userName',
width: 180,
customRender: (value, row, index) => {
const obj = {
children: value,
attrs: {}
}
if (index === 0) {
obj.attrs.rowSpan = row.maxLength
} else {
obj.attrs.rowSpan = 0
}
return obj
}
},
{
title: this.$t('areaOfResponsibility'),
align: 'left',
dataIndex: 'title',
width: 180
},
{
title: this.$t('replacementPerson'),
align: 'left',
dataIndex: 'replacementPerson',
width: 180,
scopedSlots: {customRender: 'replacementPerson'}
}
],
dataSource: [], dataSource: [],
selectDataSource:[],
loading: false, loading: false,
editVisible: false, editVisible: false,
confirmLoading: false, confirmLoading: false,
@@ -433,7 +515,9 @@
}, },
selectedRowKeys: [], selectedRowKeys: [],
dictOptionsValue: [], dictOptionsValue: [],
administrators: false administrators: false,
userIds:'',
userName:'',
} }
}, },
computed: { computed: {
@@ -465,6 +549,81 @@
} }
}) })
}, },
PersonnelSelectionOneChange(value, id, index){
this.selectDataSource[index][value] = id
this.selectDataSource = [...this.selectDataSource]
},
selecthandleCancel(){
this.selectVisible = false
},
selecthandleSubmit(){
if (this.selectDataSource.length > 0) {
let replacementUserList = []
this.selectDataSource.forEach(res => {
replacementUserList.push({
dutyTerritory: res.value,
newUserId: res.newUserId || '',
newUserName: res.newUserIdName || ''
})
})
let query = {
userId: this.userIds,
projectLibraryId: this.$route.query.id,
userName: this.userName,
replacementUserList: replacementUserList
}
this.submitLoading = true
postAction('/project/projectLibraryBase/overallReplacementUser', query).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.submitLoading = false
this.selectVisible = false
this.selectDataSource = []
this.userName = ''
this.userIds = ''
this.getList()
} else {
this.$message.warning(this.$t('operationFailed'))
this.submitLoading = false
}
})
} else {
this.$message.warning(this.$t('thereReplaceableData'))
}
},
globalReplacementClick() {
this.$refs.SelectedByRef.getPush()
},
SelectedByForm(userIds, userName) {
this.userIds = userIds
this.userName = userName
this.selectVisible = true
this.$refs.SelectedByRef.visible = false
this.$refs.SelectedByRef.submitLoading = false
this.getUserAllDutyTerritoryList()
},
getUserAllDutyTerritoryList() {
let query = {
projectLibraryId: this.$route.query.id,
userName: this.userName,
userId: this.userIds
}
this.selectLoading = true
getAction('/project/projectLibraryBase/getUserAllDutyTerritoryList', query).then((res) => {
if (res.success) {
this.selectDataSource = res.result || []
this.selectDataSource.forEach(val => {
val.newUserId = ''
val.userName = this.userName
val.maxLength = this.selectDataSource.length
})
this.selectLoading = false
} else {
this.selectDataSource = []
this.selectLoading = false
}
})
},
personBattingTable() { personBattingTable() {
this.selectedRowKeys = [] this.selectedRowKeys = []
this.getList() this.getList()