CommissionStatistic.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <template>
  2. <Container>
  3. <div>
  4. <el-table :data="tableData" style="width: 100%">
  5. <el-table-column prop="id" label="序号" width="180"></el-table-column>
  6. <el-table-column
  7. prop="staffName"
  8. label="姓名"
  9. width="180"
  10. ></el-table-column>
  11. <el-table-column prop="target" label="目标"></el-table-column>
  12. <el-table-column prop="completed" label="已完成"></el-table-column>
  13. <el-table-column prop="rewardOrder" label="订单奖金"></el-table-column>
  14. <el-table-column prop="rewardGoods" label="商品奖金"></el-table-column>
  15. <el-table-column prop="rewardOut" label="已经发放"></el-table-column>
  16. <el-table-column prop="reward" label="未发放"></el-table-column>
  17. <el-table-column fixed="right" label="操作" width="210">
  18. <template slot-scope="scope">
  19. <el-button
  20. v-if="
  21. $accessCheck(
  22. $Access.CommissionStatisticDetailCommissionStatistic
  23. )
  24. "
  25. type="text"
  26. size="small"
  27. @click="
  28. $router.push(
  29. `/saleCommission/CommissionList?id=${scope.row.id}&name=${scope.row.staffName}`
  30. )
  31. "
  32. >
  33. 明细
  34. </el-button>
  35. <el-button
  36. v-if="$accessCheck($Access.CommissionStatisticSetTarget)"
  37. type="text"
  38. size="small"
  39. @click="handleClick(scope.row)"
  40. >
  41. 设置目标
  42. </el-button>
  43. <el-button
  44. v-if="$accessCheck($Access.CommissionStatisticAmountIssued)"
  45. type="text"
  46. size="small"
  47. @click="moneyClick(scope.row)"
  48. >
  49. 发放金额
  50. </el-button>
  51. </template>
  52. </el-table-column>
  53. </el-table>
  54. </div>
  55. <!-- 分页查询-->
  56. <FooterPage
  57. :page-size="pageSize"
  58. :total-page.sync="total"
  59. :current-page.sync="page"
  60. @pageChange="pageChange"
  61. @sizeChange="sizeChange"
  62. ></FooterPage>
  63. </Container>
  64. </template>
  65. <script>
  66. import { getAllStaff, updateStaffTargetAndReward } from "@/api/Department";
  67. export default {
  68. data() {
  69. return {
  70. total: 0,
  71. page: 1,
  72. pageSize: 10,
  73. tableData: [],
  74. departmentId: "",
  75. search_key: "",
  76. };
  77. },
  78. created() {
  79. this.getAllStaff();
  80. },
  81. activated() {
  82. if (this.$_isInit()) return;
  83. this.getAllStaff();
  84. },
  85. methods: {
  86. // 获取列表
  87. async getAllStaff() {
  88. const data = await getAllStaff({
  89. page: this.page,
  90. pageSize: this.page_size,
  91. departmentId: this.departmentId,
  92. keyword: this.search_key,
  93. });
  94. this.tableData = data.data;
  95. this.total = data.pageTotal;
  96. },
  97. pageChange(page) {
  98. this.page = page;
  99. this.getAllStaff();
  100. },
  101. sizeChange(size) {
  102. this.page_size = size;
  103. this.pageChange(1);
  104. },
  105. // 设置目标
  106. handleClick(item) {
  107. this.$prompt("请输入金额", "设置目标", {
  108. confirmButtonText: "确定",
  109. cancelButtonText: "取消",
  110. }).then(({ value }) => {
  111. this.updateStaffTargetAndReward(item.id, value, 0);
  112. });
  113. },
  114. // 设置金额
  115. moneyClick(item) {
  116. this.$prompt("请输入金额", "发放金额", {
  117. confirmButtonText: "确定",
  118. cancelButtonText: "取消",
  119. }).then(({ value }) => {
  120. this.updateStaffTargetAndReward(item.id, 0, value);
  121. });
  122. },
  123. async updateStaffTargetAndReward(id, target, rewardGo) {
  124. let params = {};
  125. if (target) {
  126. params.target = target;
  127. }
  128. if (rewardGo) {
  129. params.rewardGo = rewardGo;
  130. }
  131. const { data } = await updateStaffTargetAndReward(id, params);
  132. this.$message.success("设置成功");
  133. this.getAllStaff();
  134. },
  135. },
  136. };
  137. </script>
  138. <style scoped></style>