You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
198 lines
5.4 KiB
198 lines
5.4 KiB
<template> |
|
<view class="negative-wrapper"> |
|
<negative :data="data" :loading="loading" /> |
|
|
|
<view class="container" v-if="flowKey === 'first_distribute' || flowKey === 'second_distribute'"> |
|
<uni-forms ref="distributeFormRef" :modelValue="actionData" :rules="distributeRules" label-width="200rpx" style="margin: 12px"> |
|
<uni-forms-item label="主办层级" name="hostLevel" required> |
|
<uni-data-checkbox v-model="actionData.hostLevel" :localdata="hostLevel" :map="{text: 'dictLabel', value: 'dictValue'}" /> |
|
</uni-forms-item> |
|
<uni-forms-item label="办理单位" name="departId" required> |
|
<uni-data-picker :localdata="departs" placeholder="请选择办理单位" :border="false" |
|
:map="{text:'shortName', value: 'id'}" v-model="actionData.departId" /> |
|
</uni-forms-item> |
|
</uni-forms> |
|
</view> |
|
</view> |
|
<view class="footer col-24 flex flex-wrap justify-end"> |
|
<n-button v-for="item in flowActions" :type="item.buttonType" class="button" :plain="item.plain" :label="item.buttonLabel" @tap="submit(item)" :disabled="loading" /> |
|
</view> |
|
|
|
<modal ref="approveModelRef" @confirm="handleApproval" title="审批意见" placeholderText="请输入审批意见" confirmText="审批通过" /> |
|
|
|
<modal ref="returnModelRef" @confirm="handleApproval" title="退回意见" placeholderText="请输入退回意见" confirmType="warn" /> |
|
|
|
</template> |
|
<script> |
|
import { getDictOptions } from '@/common/dict' |
|
import { getNegative, executeNegative } from '@/api/negative' |
|
import { |
|
departTree, |
|
secondList |
|
} from '@/api/depart' |
|
|
|
let _this; |
|
export default { |
|
inheritAttrs: false, |
|
data() { |
|
return { |
|
data: {}, |
|
flowActions: [], |
|
loading: true, |
|
actionData: {}, |
|
activeFlowAction: {}, |
|
departs: [], |
|
distributeRules: { |
|
hostLevel: { |
|
rules: [{ |
|
required: true, |
|
errorMessage: '请选择主办层级', |
|
}] |
|
}, |
|
departId: { |
|
rules: [{ |
|
required: true, |
|
errorMessage: '请选择办理单位', |
|
}] |
|
}, |
|
}, |
|
flowKey: '', |
|
confirmationCompletionFlag: false |
|
} |
|
}, |
|
setup() { |
|
const hostLevel = getDictOptions("hostLevel"); |
|
return { |
|
hostLevel |
|
} |
|
}, |
|
onLoad() { |
|
|
|
_this = this; |
|
uni.setNavigationBarTitle({ |
|
title: `问题编号 ` + this.$page.options.id |
|
}) |
|
this.getData() |
|
|
|
}, |
|
methods: { |
|
getData() { |
|
getNegative(this.$page.options.id, this.$page.options.workId).then(data => { |
|
this.data = data |
|
this.flowActions = data.flowActions |
|
this.flowKey = data.flowNode.flowKey |
|
this.confirmationCompletionFlag = data.confirmationCompletionFlag |
|
this.loading = false |
|
if (this.flowKey === 'first_distribute' || this.flowKey === 'second_distribute') { |
|
if (this.flowKey === 'first_distribute') { |
|
secondList().then(data => { |
|
this.departs = data |
|
}) |
|
} else { |
|
departTree().then(data => { |
|
this.departs = data[0].children |
|
}) |
|
} |
|
|
|
} |
|
}) |
|
}, |
|
async submit(item) { |
|
console.log(item.actionKey) |
|
const actions = ['save', 'apply_extension', 'apply_completion', 'apply_countersign', 'update_verify']; |
|
if (actions.indexOf(item.actionKey) > -1) { |
|
uni.showModal({ |
|
title: '温馨提示', |
|
content: '该功能暂不支持在APP上操作,如有需要请在电脑端操作', |
|
success: function (res) { |
|
if (res.confirm) { |
|
console.log('用户点击确定'); |
|
} else if (res.cancel) { |
|
console.log('用户点击取消'); |
|
} |
|
} |
|
}); |
|
return |
|
} |
|
if (item.openDialog) { |
|
const approveActionKeys = ['second_approve', 'first_approve'] |
|
if (approveActionKeys.indexOf(item.actionKey) > -1) { |
|
if ( |
|
this.confirmationCompletionFlag |
|
) { |
|
item = { |
|
actionName: "认定办结", |
|
actionKey: "confirmationCompletion", |
|
doClose: true |
|
}; |
|
} |
|
this.$refs.approveModelRef.open() |
|
this.activeFlowAction = item |
|
return |
|
} |
|
const returnActionKeys = ['second_sign_return', 'three_sign_return', 'second_approve_return', 'first_approve_return'] |
|
if (returnActionKeys.indexOf(item.actionKey) > -1) { |
|
this.$refs.returnModelRef.open() |
|
this.activeFlowAction = item |
|
} |
|
return |
|
} |
|
if (item.actionKey === 'second_distribute') { |
|
await this.$refs.distributeFormRef.validate() |
|
} |
|
this.loading = true |
|
executeNegative(this.$page.options.id, { |
|
workId: this.$page.options.workId, |
|
actionKey: item.actionKey, |
|
nextFlowKey: item.nextFlowKey, |
|
actionName: item.actionName, |
|
data: this.actionData |
|
}).then(data => { |
|
console.log(data) |
|
if (item.actionKey === 'second_sign') { |
|
uni.showToast({ |
|
title: '签收成功', |
|
icon: 'success', |
|
duration: 3000 |
|
}) |
|
} |
|
if (item.doClose) { |
|
uni.showToast({ |
|
title: '操作成功', |
|
icon: 'success', |
|
duration: 3000 |
|
}) |
|
uni.navigateBack({ |
|
|
|
}); |
|
} else { |
|
this.getData() |
|
} |
|
|
|
}) |
|
}, |
|
handleApproval(comments) { |
|
this.activeFlowAction.openDialog = false |
|
this.actionData.comments = comments |
|
this.submit(this.activeFlowAction) |
|
} |
|
} |
|
} |
|
</script> |
|
|
|
<style lang="scss" scoped> |
|
.footer { |
|
background-color: #fff; |
|
gap: 8rpx; |
|
} |
|
.negative-wrapper { |
|
background-color: #f5f5f5; |
|
min-height: 100vh; |
|
box-sizing: border-box; |
|
padding-bottom: 60px; |
|
.container { |
|
background-color: #fff; |
|
margin-bottom: 12rpx; |
|
} |
|
} |
|
</style> |