<template> <div style="display: inline-block;margin: 0px 5px"> <el-button type="text" @click="openPurchaseDialog" size="mini">{{getOperatorName()}}</el-button> <el-dialog :title="getOperatorName()" :visible.sync="open" width="800px" append-to-body :close-on-click-modal="false" destroy-on-close> <component :is="currentTabComponent" :purchaseData="purchaseData" ref="currentCom" v-if="open"></component> <div slot="footer" class="dialog-footer" style="text-align: center" v-if="operatorName != 'purchaseDetail'"> <el-button style="width: 150px;border-color: #1890ff;color: #1890ff;" @click="resetSuggestion">重置意见</el-button> <el-button type="primary" style="width: 150px" @click="submitSuggestion">提交</el-button> </div> </el-dialog> </div> </template> <script> import { getPurchase, updatePurchase, approvalPurchase } from "@/api/transaction/purchase"; import calculate from "./Calculate"; import confirm from "./Confirm"; import purchaseDetail from "./PurchaseDetail"; import { sendNotice, noticeIsReadByRelationId } from "@/api/system/notice"; export default { name: "operator-button", components:{ calculate, confirm, purchaseDetail }, props:{ operatorName: { type: String }, purchaseInfo: { type: Object } }, created(){ this.currentTabComponent = this.operatorName; }, data(){ return{ open: false, currentTabComponent: "", purchaseData: {} } }, methods:{ getOperatorName(){ switch(this.operatorName){ case "purchaseDetail": return "详情"; case "confirm" : return "部门长审核"; case "calculate": return "核算部审批"; default: return ""; } }, openPurchaseDialog(){ getPurchase(this.purchaseInfo.purchaseId).then(res =>{ if(res.code == 200){ this.purchaseData = res.data; this.open = true; } }) }, //重置意见 resetSuggestion(){ this.$refs.currentCom.resetSuggestion(); }, //提交 submitSuggestion(){ if(this.$refs.currentCom.checkParam()){ return; } if("calculate" == this.operatorName){ approvalPurchase(this.$refs.currentCom.submitSuggestion()).then(res =>{ if(res.code == 200){ this.open = false; this.$emit("getList"); this.$message.success("审核成功!"); if(this.$refs.currentCom.submitSuggestion().purchaseStatus == '3'){ sendNotice({noticeTitle:"您的物品采购申请被驳回",noticeType:"1",noticeContent:"您的物品采购申请被驳回",userId:this.purchaseInfo.handledByUserId,relationType:"2",relationId:this.purchaseInfo.purchaseId}); }else{ noticeIsReadByRelationId({relationId:this.purchaseInfo.purchaseId}); } }else{ this.$message.error("审核失败!"); } }); return; } updatePurchase(this.$refs.currentCom.submitSuggestion()).then(res =>{ if(res.code == 200){ this.open = false; this.$emit("getList"); this.$message.success("提交成功!"); sendNotice({noticeTitle:"您有新物品采购信息待审批",noticeType:"1",noticeContent:"您有新物品采购信息待审批",roles:"calculator",relationType:"2",relationId:this.purchaseInfo.purchaseId}) }else{ this.$message.error("提交失败!"); } }) }, } } </script> <style scoped> </style>