|
@@ -0,0 +1,288 @@
|
|
|
|
|
+<template>
|
|
|
|
|
+ <el-col :span="16" :offset="6">
|
|
|
|
|
+ <el-form label-width="100px" ref="formRef" :model="form">
|
|
|
|
|
+ <el-form-item
|
|
|
|
|
+ v-if="taskDefinitionKey === 'deptLeaderAssign'"
|
|
|
|
|
+ label="采购部门"
|
|
|
|
|
+ prop="userId"
|
|
|
|
|
+ style="margin-bottom: 20px"
|
|
|
|
|
+ >
|
|
|
|
|
+ <deptSelect
|
|
|
|
|
+
|
|
|
|
|
+ v-model="form.useDeptId"
|
|
|
|
|
+ @changeGroup="searchDeptNodeClick"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item
|
|
|
|
|
+ v-if="taskDefinitionKey === 'deptLeaderAssign'"
|
|
|
|
|
+ label="采购员"
|
|
|
|
|
+ prop="userId"
|
|
|
|
|
+ style="margin-bottom: 20px"
|
|
|
|
|
+ :rules="{
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ message: '请选择',
|
|
|
|
|
+ trigger: 'change'
|
|
|
|
|
+ }"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="form.userId"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ style="width: 100%"
|
|
|
|
|
+ :filterable="true"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in userOptions"
|
|
|
|
|
+ :key="item.id"
|
|
|
|
|
+ :label="item.name"
|
|
|
|
|
+ :value="item.id"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item
|
|
|
|
|
+ label="审批建议"
|
|
|
|
|
+ style="margin-bottom: 20px"
|
|
|
|
|
+ :rules="{
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ message: '请选择',
|
|
|
|
|
+ trigger: 'change'
|
|
|
|
|
+ }"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ type="textarea"
|
|
|
|
|
+ v-model="form.reason"
|
|
|
|
|
+ placeholder="请输入审批建议"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-form>
|
|
|
|
|
+ <div style="margin-left: 10%; margin-bottom: 20px; font-size: 14px">
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ icon="el-icon-edit-outline"
|
|
|
|
|
+ type="success"
|
|
|
|
|
+ size="mini"
|
|
|
|
|
+ @click="handleAudit(1)"
|
|
|
|
|
+ v-if="!['storeManagerApprove'].includes(taskDefinitionKey)"
|
|
|
|
|
+ >通过
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ icon="el-icon-circle-close"
|
|
|
|
|
+ type="danger"
|
|
|
|
|
+ size="mini"
|
|
|
|
|
+ @click="rejectTask(0)"
|
|
|
|
|
+ >驳回
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- <el-button
|
|
|
|
|
+ icon="el-icon-circle-close"
|
|
|
|
|
+ type="danger"
|
|
|
|
|
+ size="mini"
|
|
|
|
|
+ @click="handleBackList"
|
|
|
|
|
+ >退回
|
|
|
|
|
+ </el-button> -->
|
|
|
|
|
+ <!-- <el-button
|
|
|
|
|
+ icon="el-icon-circle-close"
|
|
|
|
|
+ type="danger"
|
|
|
|
|
+ size="mini"
|
|
|
|
|
+ @click="handleAudit(0)"
|
|
|
|
|
+ v-if="taskDefinitionKey != 'productionSupervisorApprove1'"
|
|
|
|
|
+ >不通过
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ icon="el-icon-edit-outline"
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ size="mini"
|
|
|
|
|
+ v-if="taskDefinitionKey != 'productionSupervisorApprove1'"
|
|
|
|
|
+ @click="handleUpdateAssignee"
|
|
|
|
|
+ >转办
|
|
|
|
|
+ </el-button> -->
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+</template>
|
|
|
|
|
+
|
|
|
|
|
+<script>
|
|
|
|
|
+ import { approveTaskWithVariables, rejectTask,cancelTask } from '@/api/bpm/task';
|
|
|
|
|
+ import { listAllUserBind } from '@/api/system/organization';
|
|
|
|
|
+ import {
|
|
|
|
|
+ assign,
|
|
|
|
|
+ cancel,
|
|
|
|
|
+ UpdateInformation
|
|
|
|
|
+ } from '@/api/bpm/components/purchasingManage/purchasePlanManage';
|
|
|
|
|
+ import deptSelect from '@/components/CommomSelect/dept-select.vue';
|
|
|
|
|
+ import { getUserPage } from '@/api/system/organization';
|
|
|
|
|
+ import storageApi from '@/api/warehouseManagement';
|
|
|
|
|
+
|
|
|
|
|
+ // 流程实例的详情页,可用于审批
|
|
|
|
|
+ export default {
|
|
|
|
|
+ name: '',
|
|
|
|
|
+ components: {
|
|
|
|
|
+ deptSelect
|
|
|
|
|
+ },
|
|
|
|
|
+ props: {
|
|
|
|
|
+ businessId: {
|
|
|
|
|
+ default: ''
|
|
|
|
|
+ },
|
|
|
|
|
+ taskId: {
|
|
|
|
|
+ default: ''
|
|
|
|
|
+ },
|
|
|
|
|
+ id: {
|
|
|
|
|
+ default: ''
|
|
|
|
|
+ },
|
|
|
|
|
+ taskDefinitionKey: {
|
|
|
|
|
+ default: ''
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ data() {
|
|
|
|
|
+ return {
|
|
|
|
|
+ form: {
|
|
|
|
|
+ userId: '',
|
|
|
|
|
+ reason: '',
|
|
|
|
|
+ useDeptId: ''
|
|
|
|
|
+ },
|
|
|
|
|
+ userOptions: [],
|
|
|
|
|
+ isSaveLoading:false
|
|
|
|
|
+ };
|
|
|
|
|
+ },
|
|
|
|
|
+ created() {
|
|
|
|
|
+ this.userOptions = [];
|
|
|
|
|
+ listAllUserBind().then((data) => {
|
|
|
|
|
+ this.userOptions.push(...data);
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ /** 处理转办审批人 */
|
|
|
|
|
+ handleUpdateAssignee() {
|
|
|
|
|
+ this.$emit('handleUpdateAssignee');
|
|
|
|
|
+ },
|
|
|
|
|
+ /** 退回 */
|
|
|
|
|
+ handleBackList() {
|
|
|
|
|
+ this.$emit('handleBackList');
|
|
|
|
|
+ },
|
|
|
|
|
+ searchDeptNodeClick(val) {
|
|
|
|
|
+ console.log(val, 'val');
|
|
|
|
|
+ getUserPage({
|
|
|
|
|
+ groupId: val,
|
|
|
|
|
+ size: 999
|
|
|
|
|
+ }).then((data) => {
|
|
|
|
|
+ this.userOptions = data.list;
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ async storeManagerApprove() {
|
|
|
|
|
+ let res = await this.getTableValue();
|
|
|
|
|
+ let storageData = res.returnStorageData;
|
|
|
|
|
+ if(!storageData){
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ storageData.isSkip = 1;
|
|
|
|
|
+ try {
|
|
|
|
|
+ this.isSaveLoading = true;
|
|
|
|
|
+ await storageApi.storage(storageData);
|
|
|
|
|
+ approveTaskWithVariables({
|
|
|
|
|
+ id: this.taskId,
|
|
|
|
|
+ reason: this.form.reason,
|
|
|
|
|
+ variables: {
|
|
|
|
|
+ pass: true
|
|
|
|
|
+ }
|
|
|
|
|
+ }).then((res) => {
|
|
|
|
|
+ if (res.code != '-1') {
|
|
|
|
|
+ this.$emit('handleAudit', {
|
|
|
|
|
+ status: 1,
|
|
|
|
|
+ title: '入库'
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ this.isSaveLoading = false;
|
|
|
|
|
+ });
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ this.isSaveLoading = false;
|
|
|
|
|
+ this.$message.error('保存失败');
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ async handleAudit(status) {
|
|
|
|
|
+ let userInfo = this.userOptions.find(
|
|
|
|
|
+ (item) => item.id == this.form.userId
|
|
|
|
|
+ );
|
|
|
|
|
+ //主管指派采购员
|
|
|
|
|
+ if (this.taskDefinitionKey === 'deptLeaderAssign') {
|
|
|
|
|
+ if (!this.form.userId) {
|
|
|
|
|
+ this.$message.warning(`请选择采购员!`);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ await assign({
|
|
|
|
|
+ userId: userInfo.id,
|
|
|
|
|
+ userName: userInfo.name,
|
|
|
|
|
+ id: this.taskId,
|
|
|
|
|
+ reason: this.form.reason,
|
|
|
|
|
+ businessId: this.businessId
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ // //采购员核对
|
|
|
|
|
+ // if (this.taskDefinitionKey === 'purchaserCheck') {
|
|
|
|
|
+ // let arr = await this.getTableValue();
|
|
|
|
|
+ // if (!arr) {
|
|
|
|
|
+ // return;
|
|
|
|
|
+ // }
|
|
|
|
|
+ // await UpdateInformation(arr);
|
|
|
|
|
+ // }
|
|
|
|
|
+ let API = !!status ? approveTaskWithVariables : rejectTask;
|
|
|
|
|
+ API({
|
|
|
|
|
+ id: this.taskId,
|
|
|
|
|
+ reason: this.form.reason,
|
|
|
|
|
+ variables: {
|
|
|
|
|
+ userId: userInfo?.id,
|
|
|
|
|
+ pass: !!status
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ this.$emit('handleAudit', {
|
|
|
|
|
+ status,
|
|
|
|
|
+ title: status === 0 ? '驳回' : ''
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ rejectTask(status) {
|
|
|
|
|
+ rejectTask({
|
|
|
|
|
+ id: this.taskId,
|
|
|
|
|
+ reason: this.form.reason,
|
|
|
|
|
+ variables: {
|
|
|
|
|
+ pass: !!status
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ this.$emit('handleAudit', {
|
|
|
|
|
+ status,
|
|
|
|
|
+ title: status === 0 ? '驳回' : ''
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ getTableValue() {
|
|
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
|
|
+ this.$emit('getTableValue', async (data) => {
|
|
|
|
|
+ resolve(await data);
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ //更多
|
|
|
|
|
+ handleCommand(command) {
|
|
|
|
|
+ if (command === 'cancel') {
|
|
|
|
|
+ this.$confirm('是否确认作废?', {
|
|
|
|
|
+ type: 'warning',
|
|
|
|
|
+ cancelButtonText: '取消',
|
|
|
|
|
+ confirmButtonText: '确定'
|
|
|
|
|
+ })
|
|
|
|
|
+ .then(() => {
|
|
|
|
|
+ cancelTask({
|
|
|
|
|
+ id: this.id,
|
|
|
|
|
+ taskId: this.taskId,
|
|
|
|
|
+ reason: this.form.reason,
|
|
|
|
|
+ businessId: this.businessId
|
|
|
|
|
+ })
|
|
|
|
|
+ .then(() => {
|
|
|
|
|
+ this.$emit('handleClose');
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(() => {
|
|
|
|
|
+ this.$message.error('流程作废失败');
|
|
|
|
|
+ });
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(() => {});
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+</script>
|
|
|
|
|
+
|
|
|
|
|
+<style lang="scss"></style>
|