ApprovalList.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <template>
  2. <a-row :gutter="24">
  3. <a-col :md="24">
  4. <a-card :style="cardStyle" :bordered="false">
  5. <!-- 查询区域 -->
  6. <div class="table-page-search-wrapper">
  7. <a-form layout="inline" @keyup.enter.native="searchQuery">
  8. <a-row :gutter="24">
  9. <a-col :md="6" :sm="24">
  10. <a-form-item label="单据编号" :labelCol="labelCol" :wrapperCol="wrapperCol">
  11. <a-input placeholder="请输入单据编号" v-model="queryParam.number"></a-input>
  12. </a-form-item>
  13. </a-col>
  14. <a-col :md="6" :sm="24">
  15. <a-form-item label="流程类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
  16. <a-select v-model="queryParam.type" allowClear placeholder="请选择流程类型">
  17. <a-select-option v-for="item in flowTypes" :key="item.value" :value="item.value">{{item.label}}</a-select-option>
  18. </a-select>
  19. </a-form-item>
  20. </a-col>
  21. <a-col :md="6" :sm="24">
  22. <a-form-item label="发起人" :labelCol="labelCol" :wrapperCol="wrapperCol">
  23. <a-input placeholder="请输入审核发起人" v-model="queryParam.initiatorName"></a-input>
  24. </a-form-item>
  25. </a-col>
  26. <a-col :md="6" :sm="24">
  27. <span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
  28. <a-button type="primary" @click="searchQuery">查询</a-button>
  29. <a-button style="margin-left: 8px" @click="searchReset">重置</a-button>
  30. </span>
  31. </a-col>
  32. </a-row>
  33. </a-form>
  34. </div>
  35. <!-- table区域-begin -->
  36. <div>
  37. <a-table
  38. ref="table"
  39. bordered
  40. size="middle"
  41. rowKey="id"
  42. :columns="columns"
  43. :dataSource="dataSource"
  44. :pagination="ipagination"
  45. :scroll="scroll"
  46. :loading="loading"
  47. @change="handleTableChange"
  48. >
  49. <span slot="action" slot-scope="text, record">
  50. <a @click="goApproval(record,true)">详情</a>
  51. <a-divider v-if="btnEnableList.indexOf(2) > -1" type="vertical" />
  52. <a @click="goApproval(record,false)" v-if="btnEnableList.indexOf(2) > -1" style="margin-left: 8px;">审批</a>
  53. </span>
  54. <template slot="auditStatus" slot-scope="status">
  55. <a-tag v-if="status == 0" color="blue">待审批</a-tag>
  56. <a-tag v-if="status == 1" color="green">已通过</a-tag>
  57. <a-tag v-if="status == 2" color="red">未通过</a-tag>
  58. </template>
  59. </a-table>
  60. </div>
  61. <!-- table区域-end -->
  62. </a-card>
  63. </a-col>
  64. <bill-detail ref="modalDetail" @ok="handleOk"></bill-detail>
  65. <!-- 盘点任务审批 -->
  66. <InventoryCheckModal ref="InventoryCheckModal" @ok="handleOk" />
  67. <!-- pda维护商品 -->
  68. <PdaFlowModal ref="PdaFlowModal" @ok="handleOk" />
  69. </a-row>
  70. </template>
  71. <script>
  72. import { postAction } from '@/api/manage'
  73. import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  74. import { approvalMixin } from './mixin/approvalMixin'
  75. import { flowTypes } from './utils/flow'
  76. import BillDetail from '@/views/bill/dialog/BillDetail.vue'
  77. import InventoryCheckModal from '@/views/stock/modules/InventoryCheckModal'
  78. import PdaFlowModal from './modules/PdaFlowModal.vue'
  79. export default {
  80. name: 'ApprovalList',
  81. mixins: [JeecgListMixin,approvalMixin],
  82. components: {
  83. BillDetail,
  84. InventoryCheckModal,
  85. PdaFlowModal
  86. },
  87. data() {
  88. return {
  89. labelCol: {
  90. span: 5,
  91. },
  92. wrapperCol: {
  93. span: 18,
  94. offset: 1,
  95. },
  96. flowTypes,
  97. queryParam: {},
  98. depotFlag: '0',
  99. customerFlag: '0',
  100. columns: [
  101. {
  102. title: '操作',
  103. dataIndex: 'action',
  104. scopedSlots: { customRender: 'action' },
  105. align: 'center',
  106. width: 100,
  107. },
  108. { title: '单据编号', dataIndex: 'number', align: 'left' },
  109. { title: '流程类型', dataIndex: 'type', align: 'left' },
  110. { title: '发起人', dataIndex: 'initiatorName', align: 'left' },
  111. { title: '审核人', dataIndex: 'auditorName', align: 'left' },
  112. { title: '创建时间', dataIndex: 'submitTime',width: 170, align: 'left'},
  113. { title: '审批状态', dataIndex: 'auditStatus', align: 'left',scopedSlots: { customRender: 'auditStatus' }},
  114. ],
  115. url: {
  116. list: '/audit/pendingApprovalList',
  117. },
  118. disableMixinCreated: true
  119. }
  120. },
  121. beforeRouteEnter(to, from, next){
  122. next(vm => {
  123. vm.loadData()
  124. //初始化按钮权限
  125. vm.initActiveBtnStr()
  126. // 更新数据
  127. vm.$store.dispatch('updateApprovalStat')
  128. })
  129. },
  130. methods: {
  131. loadData(arg) {
  132. if (!this.url.list) {
  133. this.$message.error('请设置url.list属性!')
  134. return
  135. }
  136. //加载数据 若传入参数1则加载第一页的内容
  137. if (arg === 1) {
  138. this.ipagination.current = 1
  139. }
  140. this.loading = true
  141. const url = this.url.list + '?currentPage=' + this.ipagination.current + '&pageSize=' + this.ipagination.pageSize
  142. postAction(url, {
  143. ...this.queryParam
  144. }).then((res) => {
  145. if (res.code === 200) {
  146. this.dataSource = res.data.rows
  147. this.ipagination.total = Number(res.data.total)
  148. }else {
  149. this.$message.warning(res.msg)
  150. }
  151. this.loading = false
  152. this.onClearSelected()
  153. })
  154. },
  155. handleOk(){
  156. this.$store.dispatch('updateApprovalStat')
  157. this.loadData()
  158. }
  159. },
  160. }
  161. </script>
  162. <style scoped>
  163. @import '~@assets/less/common.less';
  164. </style>