approval.vue 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <template>
  2. <div>
  3. <!-- 项目审批-->
  4. <el-dialog v-model="showDialog" title="审核" width="500px">
  5. <div class="flex flex-justify-start flex-col">
  6. <div class="full-width flex flex-justify-start flex-align-center mb-20">
  7. <span>审核状态:</span>
  8. <el-radio-group v-model="approvalStatus">
  9. <el-radio :label="3">通过</el-radio>
  10. <el-radio :label="4">不通过</el-radio>
  11. </el-radio-group>
  12. </div>
  13. <el-input
  14. class="mt-20"
  15. type="textarea"
  16. :rows="5"
  17. v-model="approvalMsg"
  18. placeholder="请填写审核意见"
  19. />
  20. <div class="full-width flex flex-justify-end mt-20">
  21. <el-button plain type="primary" @click="showDialog = false"
  22. >取消
  23. </el-button>
  24. <el-button type="primary" @click="projectApproval">确定</el-button>
  25. </div>
  26. </div>
  27. </el-dialog>
  28. </div>
  29. </template>
  30. <script>
  31. export default {
  32. props: {
  33. projectId: {
  34. type: String,
  35. default: ''
  36. }
  37. },
  38. data() {
  39. return {
  40. showDialog: false,
  41. approvalMsg: '',
  42. approvalStatus: 3
  43. }
  44. },
  45. methods: {
  46. show() {
  47. this.showDialog = true
  48. },
  49. /**
  50. * 管理员审批项目
  51. * approvalStatus === 4 审核不通过,需要填写原因
  52. */
  53. projectApproval() {
  54. if (this.approvalStatus === 4 && this.approvalMsg.length === 0) {
  55. this.$message.error('请填写审核意见')
  56. return
  57. }
  58. this.showDialog = false
  59. this.$api.project
  60. .approvalProject({
  61. id: this.projectId,
  62. reportType: this.approvalStatus,
  63. receiptMsg: this.approvalMsg
  64. })
  65. .then(res => {
  66. if (res.code === 200) {
  67. this.$message.success(res.msg)
  68. this.approvalStatus = 3
  69. this.approvalMsg = ''
  70. this.$emit('success')
  71. } else {
  72. this.$message.error(res.msg)
  73. }
  74. })
  75. }
  76. }
  77. }
  78. </script>
  79. <style lang="scss" scoped></style>