index.vue 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <template>
  2. <div class="app-container">
  3. <div class="screen-container">
  4. <div class="top clearfix">
  5. <div class="title fl">条件筛选</div>
  6. <div class="fr">
  7. <el-button size="mini" type="primary" @click="handleWorkerPurchaseCategorySumExport"
  8. >导出月度师傅采购类别</el-button
  9. >
  10. </div>
  11. </div>
  12. <el-form ref="screenForm" :model="screenForm" label-width="90px" size="mini" label-position="left">
  13. <el-row :gutter="20">
  14. <el-col :xs="24" :sm="12" :lg="6">
  15. <el-form-item
  16. label="月份"
  17. prop="yearMonth"
  18. :rules="[{ required: true, message: '请输入月份', trigger: 'blur' }]"
  19. >
  20. <el-date-picker v-model="screenForm.yearMonth" type="month" placeholder="选择月" value-format="yyyy-MM" />
  21. </el-form-item>
  22. </el-col>
  23. <el-col :span="24" class="tr">
  24. <el-form-item label="">
  25. <el-button size="mini" type="primary" @click="submitScreenForm">查询</el-button>
  26. </el-form-item>
  27. </el-col>
  28. </el-row>
  29. </el-form>
  30. </div>
  31. <div class="mymain-container">
  32. <div class="btn-group clearfix">
  33. <div class="fl" />
  34. <div class="fr" />
  35. </div>
  36. <div class="table">
  37. <el-table
  38. v-loading="listLoading"
  39. :data="dataList"
  40. element-loading-text="Loading"
  41. size="mini"
  42. border
  43. header-cell-class-name="headerRowColor"
  44. highlight-current-row
  45. >
  46. <el-table-column align="center" label="年月" prop="yearMonth" width="200px" />
  47. <el-table-column align="center" label="工单网点编号" prop="websitId" width="200px" />
  48. <el-table-column align="center" label="工单网点名称" prop="websitName" width="300px" />
  49. <el-table-column align="center" label="工单师傅编号" prop="workerId" width="200px" />
  50. <el-table-column align="center" label="工单师傅名称" prop="workerName" width="120px" />
  51. <el-table-column align="center" label="铜管(公斤)" prop="tgQty" width="110px" />
  52. <el-table-column align="center" label="铜管总价" prop="tgVal" />
  53. <el-table-column align="center" label="保温棉(条)" prop="bwmQty" width="110px" />
  54. <el-table-column align="center" label="保温棉总价" prop="bwmVal" width="110px" />
  55. <el-table-column align="center" label="电缆(米)" prop="dlQty" />
  56. <el-table-column align="center" label="电缆总价" prop="dlVal" />
  57. <el-table-column align="center" label="支架(付)" prop="zjQty" />
  58. <el-table-column align="center" label="支架总价" prop="zjVal" />
  59. <el-table-column align="center" label="冷媒(罐)" prop="lmQty" />
  60. <el-table-column align="center" label="冷媒总价" prop="lmVal" />
  61. <el-table-column align="center" label="五金" prop="wjQty" />
  62. <el-table-column align="center" label="五金总价" prop="wjVal" />
  63. <el-table-column align="center" label="其它" prop="jtQty" />
  64. <el-table-column align="center" label="其它总价" prop="jtVal" />
  65. <el-table-column align="center" label="开关" prop="kgQty" />
  66. <el-table-column align="center" label="开关总价" prop="kgVal" />
  67. <el-table-column align="center" label="包扎带" prop="bzdQty" />
  68. <el-table-column align="center" label="包扎带总价" prop="bzdVal" />
  69. <el-table-column align="center" label="总采购金额" prop="purchaseTotalVal" width="120px" />
  70. </el-table>
  71. </div>
  72. </div>
  73. </div>
  74. </template>
  75. <script>
  76. import { downloadFiles } from '@/utils/util'
  77. import { getWorkerPurchaseCategorySum } from '@/api/material-system/report'
  78. export default {
  79. name: 'WorkerPurchaseCategorySum',
  80. data() {
  81. return {
  82. listLoading: false,
  83. dataList: [], // 列表
  84. shopList: [], // 网点列表
  85. screenForm: {
  86. // 筛选表单数据
  87. yearMonth: '' // 年月
  88. }
  89. }
  90. },
  91. methods: {
  92. // 查询列表
  93. getList() {
  94. this.$refs.screenForm.validate(valid => {
  95. if (valid) {
  96. this.listLoading = true
  97. const params = {
  98. month: this.screenForm.yearMonth // 年月
  99. }
  100. getWorkerPurchaseCategorySum(params).then(res => {
  101. if (res.data) {
  102. res.data.forEach(obj => {
  103. obj.purchaseTotalVal = parseFloat(
  104. obj.tgVal + obj.bwmVal + obj.dlVal + obj.zjVal + obj.lmVal + obj.wjVal + obj.jtVal
  105. ).toFixed(4)
  106. })
  107. this.dataList = res.data
  108. }
  109. this.listLoading = false
  110. console.log(res)
  111. })
  112. }
  113. })
  114. },
  115. // 提交筛选表单
  116. submitScreenForm() {
  117. this.getList()
  118. },
  119. handleWorkerPurchaseCategorySumExport() {
  120. this.$refs.screenForm.validate(valid => {
  121. if (valid) {
  122. const screenData = {
  123. month: this.screenForm.yearMonth // 年月
  124. }
  125. downloadFiles('websit/report/export/worker-purchase-category-sum', screenData)
  126. }
  127. })
  128. }
  129. }
  130. }
  131. </script>
  132. <style scoped></style>