|
@@ -19,11 +19,14 @@
|
|
|
</el-collapse-item>
|
|
|
</el-collapse>
|
|
|
<div class="button-area">
|
|
|
- <el-button @click="openProductionDialog" v-if="currentNode.nodeCode === 'PRODUCT_CHOICE' || currentNode.nodeCode === 'REPORT_CHOICE'" type="danger" round>
|
|
|
+ <el-button @click="openProductionDialog"
|
|
|
+ v-if="currentNode.nodeCode === 'PRODUCT_CHOICE' || currentNode.nodeCode === 'REPORT_CHOICE'" type="danger" round>
|
|
|
选择产品
|
|
|
</el-button>
|
|
|
- <el-button @click="openAssetsAchievementRatioDialog()" v-if="currentNode.nodeCode === 'CHECK_ARCHIVING' || currentNode.nodeCode === 'RECHECK_ARCHIVING'" type="danger" round>
|
|
|
- <span v-if="currentNode.nodeCode === 'RECHECK_ARCHIVING'">复审部</span> 归档审核
|
|
|
+ <el-button @click="openAssetsAchievementRatioDialog()"
|
|
|
+ v-if="currentNode.nodeCode === 'CHECK_ARCHIVING' || currentNode.nodeCode === 'RECHECK_ARCHIVING'" type="danger"
|
|
|
+ round>
|
|
|
+ <span v-if="currentNode.nodeCode === 'RECHECK_ARCHIVING'">复审部</span>归档审核
|
|
|
</el-button>
|
|
|
<el-button v-if="nodeBusinessInfo.currentNodePermission.commit" class="y-save" type="success" round
|
|
|
@click="commit('PASS')" :disabled="!nodeBusinessInfo.doWorkflow">提交</el-button>
|
|
@@ -1056,7 +1059,7 @@
|
|
|
</div>
|
|
|
</el-form>
|
|
|
</el-dialog>
|
|
|
- <el-dialog :visible.sync="productionCheckDialogVisible" @close="resetProductionForm">
|
|
|
+ <el-dialog :visible.sync="productionCheckDialogVisible" @close="resetProductionForm()">
|
|
|
<el-form ref="productionPerformanceForm" :model="productionPerformanceForm">
|
|
|
<div class="createMajor-main-container">
|
|
|
<div class="postInfo-container">
|
|
@@ -1140,11 +1143,70 @@
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
|
|
|
- <el-dialog :visible.sync="assetsAchievementRatioDialogVisible" width="50%">
|
|
|
-
|
|
|
- <span slot="footer" class="dialog-footer">
|
|
|
- <el-button @click="warehouseDialog = false">取 消</el-button>
|
|
|
- <el-button type="primary" @click="">确 定</el-button>
|
|
|
+ <el-dialog :visible.sync="assetsAchievementRatioDialogVisible" @close="resetProductionForm()"
|
|
|
+ @closed="resetBusinessPerformanceDistributionForm()" width="25%">
|
|
|
+ <div v-if="businessPerformanceDistributionForm.distributionList !== null" class="createMajor-main-container">
|
|
|
+ <div class="postInfo-container">
|
|
|
+ <div>
|
|
|
+ <el-divider content-position="left">
|
|
|
+ <h3 class="title">
|
|
|
+ <div class="avatar-wrapper icon-title">归档</div>
|
|
|
+ <div class="icon-info">归档审核</div>
|
|
|
+ </h3>
|
|
|
+ </el-divider>
|
|
|
+ </div>
|
|
|
+ <p style="margin-top: 50px; color: red;">绩效比例:</p>
|
|
|
+ <el-row style="margin-top: 10px;" v-for="(member, index) in assetsBusinessMembers" :key="index"
|
|
|
+ class="row-style">
|
|
|
+ <el-col>
|
|
|
+ <p style="width: 65px; display: inline-block; text-align: right;">
|
|
|
+ {{ member.memberName }}:
|
|
|
+ </p>
|
|
|
+ <el-input-number
|
|
|
+ v-model="businessPerformanceDistributionForm.distributionList[index].performanceDistribution"
|
|
|
+ :precision="2" :step="0.1" :max="100">
|
|
|
+ </el-input-number>
|
|
|
+ <p style="margin-left: 5px; display: inline-block;">
|
|
|
+ %
|
|
|
+ </p>
|
|
|
+ <p style="margin-left: 5px; display: inline-block;">
|
|
|
+ <span v-if="member.memberType === '项目负责人'" style="color: blueviolet;">
|
|
|
+ * {{ member.memberType }}
|
|
|
+ </span>
|
|
|
+ <span v-if="member.memberType === '项目参与人'">
|
|
|
+ * {{ member.memberType }}
|
|
|
+ </span>
|
|
|
+ <span v-if="member.memberType === '签字师'" style="color: red;">
|
|
|
+ * {{ member.memberType }}
|
|
|
+ </span>
|
|
|
+ </p>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <span v-if="currentNode.nodeCode === 'CHECK_ARCHIVING'">
|
|
|
+ <el-row style="margin-top: 10px;" class="row-style">
|
|
|
+ <el-col>
|
|
|
+ <el-form>
|
|
|
+ <el-form-item :rules="{ required: true, message: '请上传附件资料', trigger: 'changes' }" prop="filePath"
|
|
|
+ label="资料附件:" label-width="120px" class="postInfo-container-item">
|
|
|
+ <el-upload action="/api/upload" :limit="3" :on-success="changeresProduction" :on-exceed="handleExceed"
|
|
|
+ :on-preview="handleAttachmentPreview" :before-remove="beforeRemovePro" :file-list="fileList">
|
|
|
+ <el-button plain type="info" round style="width: 100%">上传附件<i
|
|
|
+ class="el-icon-upload el-icon--right"></i></el-button>
|
|
|
+ </el-upload>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </span>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <span v-if="businessPerformanceDistributionForm.distributionList !== null" slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="assetsAchievementRatioDialogVisible = false">取 消</el-button>
|
|
|
+ <el-button v-if="showDistributionButton" type="primary" @click="saveBusinessPerformanceDistribution()">新
|
|
|
+ 增</el-button>
|
|
|
+ <el-button v-if="!showDistributionButton" type="primary" @click="updateAssetsPerformanceDistribution()">修
|
|
|
+ 改</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
@@ -1623,14 +1685,21 @@ export default {
|
|
|
wareHouseProductionType: null,
|
|
|
wareHouseproductionId: null,
|
|
|
assetsAchievementRatioDialogVisible: false,
|
|
|
+ // 项目所有参与人信息
|
|
|
+ assetsBusinessMembers: [],
|
|
|
// 资产绩效比例表单
|
|
|
- evaluationMemberForm: {
|
|
|
- id: null,
|
|
|
+ businessPerformanceDistributionForm: {
|
|
|
+ businessId: null,
|
|
|
businessType: null,
|
|
|
- memberId: null,
|
|
|
- achievementRatio: null,
|
|
|
- reportNo: null
|
|
|
- }
|
|
|
+ reportNo: null,
|
|
|
+ distributionList: [
|
|
|
+ // {
|
|
|
+ // memberId: null,
|
|
|
+ // performanceDistribution: null
|
|
|
+ // }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ showDistributionButton: null
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
@@ -1663,11 +1732,11 @@ export default {
|
|
|
this.$api.assets.getAssetsDetailById(id).then(res => {
|
|
|
if (res.code === 200) {
|
|
|
this.assetsForm = res.data;
|
|
|
+ this.$refs.board.getInstanceQueue();
|
|
|
this.assetsForm.members = JSON.parse(res.data.members);
|
|
|
this.initCustomerSelect(this.assetsForm.clienteleType);
|
|
|
this.getPrincipalByAllotDepartment();
|
|
|
this.getAllUser();
|
|
|
- this.$refs.board.getInstanceQueue();
|
|
|
}
|
|
|
})
|
|
|
},
|
|
@@ -2152,7 +2221,7 @@ export default {
|
|
|
if (res.code === 200) {
|
|
|
this.$notify({
|
|
|
title: '成功',
|
|
|
- message: '添加资产业务评估对象成功!',
|
|
|
+ message: '添加资产业务评估对象成功,可继续添加或提交节点',
|
|
|
type: 'success',
|
|
|
duration: 2000
|
|
|
});
|
|
@@ -2337,7 +2406,7 @@ export default {
|
|
|
if (res.code === 200) {
|
|
|
this.$notify({
|
|
|
title: '成功',
|
|
|
- message: '选择产品成功!',
|
|
|
+ message: '选择产品成功!请继续提交流程节点!',
|
|
|
type: 'success',
|
|
|
duration: 2000
|
|
|
});
|
|
@@ -2493,7 +2562,7 @@ export default {
|
|
|
if (res.code == 200) {
|
|
|
this.$notify({
|
|
|
title: '成功',
|
|
|
- message: '产品撰写成功!',
|
|
|
+ message: '产品撰写成功!请继续提交流程节点!',
|
|
|
type: 'success',
|
|
|
duration: 2000
|
|
|
});
|
|
@@ -2698,7 +2767,7 @@ export default {
|
|
|
if (res.code === 200 && res.data) {
|
|
|
this.$notify({
|
|
|
title: '成功',
|
|
|
- message: '质检信息更新成功',
|
|
|
+ message: '质检信息更新成功,请继续提交流程节点!',
|
|
|
type: 'success',
|
|
|
duration: 3000
|
|
|
});
|
|
@@ -2711,7 +2780,7 @@ export default {
|
|
|
if (res.code === 200 && res.data) {
|
|
|
this.$notify({
|
|
|
title: '成功',
|
|
|
- message: '质检信息保存成功',
|
|
|
+ message: '质检信息保存成功,请继续提交流程节点!',
|
|
|
type: 'success',
|
|
|
duration: 3000
|
|
|
});
|
|
@@ -2778,7 +2847,7 @@ export default {
|
|
|
if (res.code === 200 && res.data) {
|
|
|
this.$notify({
|
|
|
title: '成功',
|
|
|
- message: '库存操作成功',
|
|
|
+ message: '库存操作成功,请继续提交流程节点!',
|
|
|
type: 'success',
|
|
|
duration: 2000
|
|
|
});
|
|
@@ -2819,8 +2888,136 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
// 打开绩效比例分配弹窗
|
|
|
- openAssetsAchievementRatioDialog(){
|
|
|
+ openAssetsAchievementRatioDialog() {
|
|
|
+ this.businessPerformanceDistributionForm.distributionList = [];
|
|
|
+ //获取报告附件信息
|
|
|
+ let assetsProductionDetailDTO = new Object();
|
|
|
+ assetsProductionDetailDTO.businessId = this.pageParams.row.assetsId;
|
|
|
+ assetsProductionDetailDTO.productionNo = this.pageParams.row.reportNo;
|
|
|
+ this.$api.assets.getAssetsProductionDetailByNo(assetsProductionDetailDTO).then(res => {
|
|
|
+ if (res.code == 200 && res.data !== null) {
|
|
|
+ this.assetsProductionForm = res.data;
|
|
|
+ this.assetsProductionForm.filePath = JSON.parse(res.data.filePath);
|
|
|
+ this.fileList = this.assetsProductionForm.filePath;
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
this.assetsAchievementRatioDialogVisible = true;
|
|
|
+ this.getPerformanceDistributionList();
|
|
|
+
|
|
|
+ // console.log(this.businessPerformanceDistributionForm.distributionList);
|
|
|
+ // if (this.businessPerformanceDistributionForm.distributionList !== null && this.businessPerformanceDistributionForm.distributionList[0].id !== null) {
|
|
|
+ // this.showDistributionButton = false;
|
|
|
+ // } else {
|
|
|
+ // this.showDistributionButton = true;
|
|
|
+ // }
|
|
|
+
|
|
|
+ },
|
|
|
+ // 新增资产绩效分配信息
|
|
|
+ saveBusinessPerformanceDistribution() {
|
|
|
+ const sum = this.businessPerformanceDistributionForm.distributionList.reduce((accumulator, obj) => {
|
|
|
+ return accumulator + obj.performanceDistribution;
|
|
|
+ }, 0);
|
|
|
+ if (sum === 100) {
|
|
|
+ this.taskRecordDTO.recordId = this.currentNode.tasks[0].recordId;
|
|
|
+ this.taskRecordDTO.taskData = this.businessPerformanceDistributionForm;
|
|
|
+ this.$api.businessPerformanceDistribution.addAssetsPerformanceDistribution(this.taskRecordDTO).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$notify({
|
|
|
+ title: '成功',
|
|
|
+ message: '绩效分配新增完成,请继续提交流程节点!',
|
|
|
+ type: 'success',
|
|
|
+ duration: 3000
|
|
|
+ });
|
|
|
+ if(this.currentNode.nodeCode === 'CHECK_ARCHIVING'){
|
|
|
+ this.updateProductionFileInfo();
|
|
|
+ }
|
|
|
+ this.resetBusinessPerformanceDistributionForm();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.$notify({
|
|
|
+ title: '警告',
|
|
|
+ message: '所有人员分配的绩效之和必须等于100%!',
|
|
|
+ type: 'error',
|
|
|
+ duration: 3000
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 重置绩效分配表单
|
|
|
+ resetBusinessPerformanceDistributionForm() {
|
|
|
+ this.assetsAchievementRatioDialogVisible = false;
|
|
|
+ this.businessPerformanceDistributionForm.businessId = null;
|
|
|
+ this.businessPerformanceDistributionForm.businessType = null;
|
|
|
+ this.businessPerformanceDistributionForm.reportNo = null;
|
|
|
+ },
|
|
|
+ // 获取资产绩效分配信息list
|
|
|
+ getPerformanceDistributionList() {
|
|
|
+ this.businessPerformanceDistributionForm.businessId = this.pageParams.row.assetsId;
|
|
|
+ this.businessPerformanceDistributionForm.businessType = 'ASSET_BUSINESS';
|
|
|
+ this.businessPerformanceDistributionForm.reportNo = this.pageParams.row.reportNo;
|
|
|
+ let selectDTO = this.businessPerformanceDistributionForm;
|
|
|
+ selectDTO.distributionList = null;
|
|
|
+ this.$api.businessPerformanceDistribution.getPerformanceDistributionList(this.businessPerformanceDistributionForm).then(res => {
|
|
|
+ if (res.code === 200 && res.data !== null && res.data.length > 0) {
|
|
|
+ this.businessPerformanceDistributionForm.distributionList = res.data;
|
|
|
+ this.getAssetsBusinessMembers();
|
|
|
+ this.showDistributionButton = false;
|
|
|
+ } else {
|
|
|
+ this.showDistributionButton = true;
|
|
|
+ this.getAssetsBusinessMembers(true);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 获取项目参与人信息
|
|
|
+ getAssetsBusinessMembers(state) {
|
|
|
+ let assetsBusinessMembersDTO = { businessId: null, reportNo: null };
|
|
|
+ assetsBusinessMembersDTO.businessId = this.pageParams.row.assetsId;
|
|
|
+ assetsBusinessMembersDTO.reportNo = this.pageParams.row.reportNo;
|
|
|
+ this.$api.assets.getAssetsBusinessMembers(assetsBusinessMembersDTO).then(res => {
|
|
|
+ // 返回不为空,且没有绩效分配信息
|
|
|
+ if (res.code === 200 && res.data !== null) {
|
|
|
+ this.assetsBusinessMembers = res.data;
|
|
|
+ if (state) {
|
|
|
+ this.businessPerformanceDistributionForm.distributionList = [];
|
|
|
+ for (let i = 0; i < this.assetsBusinessMembers.length; i++) {
|
|
|
+ let memberInfo = { memberId: this.assetsBusinessMembers[i].memberId, performanceDistribution: 0, memberType: this.assetsBusinessMembers[i].memberType }
|
|
|
+ this.businessPerformanceDistributionForm.distributionList.push(memberInfo)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 修改资产绩效分配信息
|
|
|
+ updateAssetsPerformanceDistribution() {
|
|
|
+ const sum = this.businessPerformanceDistributionForm.distributionList.reduce((accumulator, obj) => {
|
|
|
+ return accumulator + obj.performanceDistribution;
|
|
|
+ }, 0);
|
|
|
+ if (sum === 100) {
|
|
|
+ this.taskRecordDTO.recordId = this.currentNode.tasks[0].recordId;
|
|
|
+ this.taskRecordDTO.taskData = this.businessPerformanceDistributionForm;
|
|
|
+ this.$api.businessPerformanceDistribution.updateAssetsPerformanceDistribution(this.taskRecordDTO).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$notify({
|
|
|
+ title: '成功',
|
|
|
+ message: '绩效分配修改完成,请继续提交流程节点!',
|
|
|
+ type: 'success',
|
|
|
+ duration: 3000
|
|
|
+ });
|
|
|
+ if(this.currentNode.nodeCode === 'CHECK_ARCHIVING'){
|
|
|
+ this.updateProductionFileInfo();
|
|
|
+ }
|
|
|
+ this.resetBusinessPerformanceDistributionForm();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.$notify({
|
|
|
+ title: '警告',
|
|
|
+ message: '所有人员分配的绩效之和必须等于100%!',
|
|
|
+ type: 'error',
|
|
|
+ duration: 3000
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|