exa_wf_leaveFrom.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <template>
  2. <div>
  3. <el-form :model="formData" label-position="right" label-width="80px">
  4. <el-form-item label="请假原因:">
  5. <el-input
  6. v-model="formData.cause"
  7. clearable
  8. placeholder="请输入"
  9. ></el-input>
  10. </el-form-item>
  11. <el-form-item label="开始时间:">
  12. <el-date-picker
  13. type="date"
  14. placeholder="选择日期"
  15. v-model="formData.startTime"
  16. clearable
  17. ></el-date-picker>
  18. </el-form-item>
  19. <el-form-item label="结束时间:">
  20. <el-date-picker
  21. type="date"
  22. placeholder="选择日期"
  23. v-model="formData.endTime"
  24. clearable
  25. ></el-date-picker>
  26. </el-form-item>
  27. <el-form-item>
  28. <el-button v-if="this.wf.clazz == 'start'" @click="start" type="primary"
  29. >启动</el-button
  30. >
  31. <el-button
  32. v-if="this.wf.clazz == 'userTask'"
  33. @click="complete('yes')"
  34. type="primary"
  35. >同意</el-button
  36. >
  37. <el-button
  38. v-if="this.wf.clazz == 'userTask'"
  39. @click="complete('no')"
  40. type="primary"
  41. >拒绝</el-button
  42. >
  43. <el-button @click="back" type="primary">返回</el-button>
  44. </el-form-item>
  45. </el-form>
  46. </div>
  47. </template>
  48. <script>
  49. import {
  50. startWorkflow,
  51. completeWorkflowMove
  52. } from "@/api/workflowProcess";
  53. import infoList from "@/mixins/infoList";
  54. import { mapGetters } from "vuex";
  55. export default {
  56. name: "ExaWfLeave",
  57. mixins: [infoList],
  58. props:{
  59. business:{
  60. type:Object,
  61. default:function(){return null}
  62. },
  63. wf:{
  64. type:Object,
  65. default:function(){return{}}
  66. },
  67. workflowMoveID:{
  68. type:Number,
  69. default:0
  70. }
  71. },
  72. data() {
  73. return {
  74. formData: {
  75. cause:"",
  76. startTime:new Date(),
  77. endTime:new Date(),
  78. }
  79. };
  80. },
  81. computed:{
  82. canShow(){
  83. if(this.wf.assignType == "user"){
  84. if(this.wf.assginValue.indexOf(","+this.userInfo.ID+",")>0){
  85. return true
  86. }else{
  87. return false
  88. }
  89. }else if(this.wf.assign_type == "authority"){
  90. if(this.wf.assginValue.indexOf(","+this.userInfo.authorityId+",")>0){
  91. return true
  92. }else{
  93. return false
  94. }
  95. }
  96. return true
  97. },
  98. ...mapGetters("user", ["userInfo"])
  99. },
  100. methods: {
  101. async start() {
  102. const res = await startWorkflow({
  103. business:this.formData,
  104. wf:{
  105. workflowMoveID:this.workflowMoveID,
  106. businessId:0,
  107. businessType:"leave",
  108. workflowProcessID:this.wf.workflowProcessID,
  109. workflowNodeID:this.wf.id,
  110. promoterID:this.userInfo.ID,
  111. operatorID:this.userInfo.ID,
  112. action:"create",
  113. param:""
  114. }
  115. });
  116. if (res.code == 0) {
  117. this.$message({
  118. type:"success",
  119. message:"启动成功"
  120. })
  121. this.back()
  122. }
  123. },
  124. async complete(param){
  125. const res = await completeWorkflowMove({
  126. business:this.formData,
  127. wf:{
  128. workflowMoveID:this.workflowMoveID,
  129. businessID:this.formData.ID,
  130. businessType:"leave",
  131. workflowProcessID:this.wf.workflowProcessID,
  132. workflowNodeID:this.wf.id,
  133. promoterID:this.userInfo.ID,
  134. operatorID:this.userInfo.ID,
  135. action:"complete",
  136. param:param
  137. }
  138. })
  139. if(res.code == 0){
  140. this.$message({
  141. type:"success",
  142. message:"提交成功"
  143. })
  144. this.back()
  145. }
  146. },
  147. back(){
  148. this.$router.go(-1)
  149. }
  150. },
  151. async created() {
  152. if(this.business){
  153. this.formData = this.business
  154. }
  155. }
  156. };
  157. </script>
  158. <style>
  159. </style>