158 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
		
		
			
		
	
	
			158 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| 
								 | 
							
								<template>
							 | 
						||
| 
								 | 
							
									<view class="check-action">
							 | 
						||
| 
								 | 
							
										<view class="btn-wrap">
							 | 
						||
| 
								 | 
							
											<view>
							 | 
						||
| 
								 | 
							
												<u--textarea v-model="value" placeholder="请输入审批意见"></u--textarea>
							 | 
						||
| 
								 | 
							
											</view>
							 | 
						||
| 
								 | 
							
											<view class="buttons">
							 | 
						||
| 
								 | 
							
												<u-button @click="handlePass" class="btn first-btn" type="primary" text="通过"></u-button>
							 | 
						||
| 
								 | 
							
												<u-button @click="handleReject" :disabled="localIsBtnRefuseDisable" type="warning" text="驳回"></u-button>
							 | 
						||
| 
								 | 
							
											</view>
							 | 
						||
| 
								 | 
							
										</view>
							 | 
						||
| 
								 | 
							
									</view>
							 | 
						||
| 
								 | 
							
								</template>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<!-- <check-action v-if="isLoadOK && tableKey === '1' && isAudit === 'true'" @reject="handleReject"
							 | 
						||
| 
								 | 
							
											@pass="handlePass" :okApi="okApi" :refuseApi="refuseApi"
							 | 
						||
| 
								 | 
							
											:dataSource="$store.state.auditModel"></check-action>
							 | 
						||
| 
								 | 
							
											 -->
							 | 
						||
| 
								 | 
							
								<!-- @reject="handleReject" @pass="handlePass" 如果调用页面需要对审批结束后继续处理 直接 在使用页面 写方法 -->
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<script>
							 | 
						||
| 
								 | 
							
									import {
							 | 
						||
| 
								 | 
							
										handlePassAudit,
							 | 
						||
| 
								 | 
							
										handleRejestAudit,
							 | 
						||
| 
								 | 
							
										handlePassAuditCallBack
							 | 
						||
| 
								 | 
							
									} from '../../services/apply/subPages/BS/notice'
							 | 
						||
| 
								 | 
							
									import '@/utils/showMsg.js'
							 | 
						||
| 
								 | 
							
									export default {
							 | 
						||
| 
								 | 
							
										props: {
							 | 
						||
| 
								 | 
							
											dataSource: {
							 | 
						||
| 
								 | 
							
												type: Object,
							 | 
						||
| 
								 | 
							
												default () {
							 | 
						||
| 
								 | 
							
													return undefined
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											okApi: {
							 | 
						||
| 
								 | 
							
												type: String,
							 | 
						||
| 
								 | 
							
												default: ''
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											refuseApi: {
							 | 
						||
| 
								 | 
							
												type: String,
							 | 
						||
| 
								 | 
							
												default: ''
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											isBtnRefuseDisable: {
							 | 
						||
| 
								 | 
							
												typeof: Boolean,
							 | 
						||
| 
								 | 
							
												default: true
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										data() {
							 | 
						||
| 
								 | 
							
											return {
							 | 
						||
| 
								 | 
							
												value: '',
							 | 
						||
| 
								 | 
							
												localIsBtnRefuseDisable: this.isBtnRefuseDisable
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										// beforeCreate()  KO
							 | 
						||
| 
								 | 
							
										// beforeMount()   mounted()  OK
							 | 
						||
| 
								 | 
							
										created() {
							 | 
						||
| 
								 | 
							
											//wyw 没有驳回接口 
							 | 
						||
| 
								 | 
							
											// this.isBtnRefuseDisable = (this.__page__.options.refuseApi == null || this.__page__.options.refuseApi ==
							 | 
						||
| 
								 | 
							
											// 	undefined || this.__page__.options.refuseApi == 'undefined') ? true : false
							 | 
						||
| 
								 | 
							
											this.localIsBtnRefuseDisable = (this.$route.query.refuseApi == null || this.$route.query.refuseApi == undefined || this.$route.query.refuseApi == 'undefined') ? true : false
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										watch: {
							 | 
						||
| 
								 | 
							
											isBtnRefuseDisable(newValue) {
							 | 
						||
| 
								 | 
							
												this.localIsBtnRefuseDisable = newValue;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										methods: {
							 | 
						||
| 
								 | 
							
											handlePass() {
							 | 
						||
| 
								 | 
							
												const genParams = this.handleGenParams(10)
							 | 
						||
| 
								 | 
							
												handlePassAudit(genParams, this.okApi).then(res => {
							 | 
						||
| 
								 | 
							
													// this.$emit('pass', this.dataSource)
							 | 
						||
| 
								 | 
							
													uni.$showMsgFunc('审批成功!', () => {
							 | 
						||
| 
								 | 
							
														// if (this.tableKey == null || this.tableKey == 0) {
							 | 
						||
| 
								 | 
							
														// 	uni.navigateTo({
							 | 
						||
| 
								 | 
							
														// 		url: 'safeCheckIndex'
							 | 
						||
| 
								 | 
							
														// 	})
							 | 
						||
| 
								 | 
							
														// } else {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
														if (this.okApi == 'PF/Approve/Submit' && res.Data) {
							 | 
						||
| 
								 | 
							
															//最后一个节点处理问题
							 | 
						||
| 
								 | 
							
															handlePassAuditCallBack(res.Data + "?id=" + genParams.DATA_ID).then(
							 | 
						||
| 
								 | 
							
																res2 => {
							 | 
						||
| 
								 | 
							
																	uni.navigateBack()
							 | 
						||
| 
								 | 
							
																})
							 | 
						||
| 
								 | 
							
														} else {
							 | 
						||
| 
								 | 
							
															uni.navigateBack()
							 | 
						||
| 
								 | 
							
														}
							 | 
						||
| 
								 | 
							
														// }
							 | 
						||
| 
								 | 
							
													}, 'success', 1000)
							 | 
						||
| 
								 | 
							
												})
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											handleReject() {
							 | 
						||
| 
								 | 
							
												if (this.value == undefined || this.value === '' || this.value.length < 1) {
							 | 
						||
| 
								 | 
							
													uni.$showErrorInfo('请输入驳回意见!')
							 | 
						||
| 
								 | 
							
													return false
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
												const genParams = this.handleGenParams(20)
							 | 
						||
| 
								 | 
							
												handleRejestAudit(genParams, this.refuseApi).then(res => {
							 | 
						||
| 
								 | 
							
													// this.$emit('reject', this.dataSource)
							 | 
						||
| 
								 | 
							
													uni.$showMsgFunc('驳回成功!', () => {
							 | 
						||
| 
								 | 
							
														uni.navigateBack()
							 | 
						||
| 
								 | 
							
													}, 'success', 1000)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												})
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											handleGenParams(status) {
							 | 
						||
| 
								 | 
							
												const appInfoData = uni.getStorageSync('appInfo')
							 | 
						||
| 
								 | 
							
												const userId = appInfoData?.User?.ID || ''
							 | 
						||
| 
								 | 
							
												this.dataSource.Nav_ApproveDetails.sort((a, b) => a.NUM - b.NUM);
							 | 
						||
| 
								 | 
							
												let currentNodes = this.dataSource.Nav_ApproveDetails?.filter(v => v.IS_CURRENT == true);
							 | 
						||
| 
								 | 
							
												let isCurrent = false;
							 | 
						||
| 
								 | 
							
												if (currentNodes && currentNodes.length > 0) {
							 | 
						||
| 
								 | 
							
													let currentUserNode = currentNodes.filter(v => v.APPROVE_USER_ID === userId);
							 | 
						||
| 
								 | 
							
													if (currentUserNode != null) {
							 | 
						||
| 
								 | 
							
														isCurrent = true;
							 | 
						||
| 
								 | 
							
														this.dataSource.CurrentNode = currentUserNode[0];
							 | 
						||
| 
								 | 
							
													} else {
							 | 
						||
| 
								 | 
							
														this.dataSource.CurrentNode = currentNodes[0];
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
												const params = {
							 | 
						||
| 
								 | 
							
													...this.dataSource,
							 | 
						||
| 
								 | 
							
													CurrentNode: {
							 | 
						||
| 
								 | 
							
														...this.dataSource.CurrentNode,
							 | 
						||
| 
								 | 
							
														NODE_APPROVE_STATUS: status,
							 | 
						||
| 
								 | 
							
														CONTEXT: this.value
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
												return params
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								</script>
							 | 
						||
| 
								 | 
							
								<style scoped>
							 | 
						||
| 
								 | 
							
									.btn-wrap {
							 | 
						||
| 
								 | 
							
										position: fixed;
							 | 
						||
| 
								 | 
							
										bottom: 0;
							 | 
						||
| 
								 | 
							
										left: 0;
							 | 
						||
| 
								 | 
							
										width: 100%;
							 | 
						||
| 
								 | 
							
										box-sizing: border-box;
							 | 
						||
| 
								 | 
							
										padding: 16px;
							 | 
						||
| 
								 | 
							
										z-index: 1000;
							 | 
						||
| 
								 | 
							
										background: #fff;
							 | 
						||
| 
								 | 
							
										box-shadow: 0 -1px 2px 0 rgba(0, 0, 0, .05);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.buttons {
							 | 
						||
| 
								 | 
							
										margin-top: 5px;
							 | 
						||
| 
								 | 
							
										display: flex;
							 | 
						||
| 
								 | 
							
										justify-content: space-between;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.buttons .first-btn {
							 | 
						||
| 
								 | 
							
										margin-right: 20px;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								</style>
							 |