view.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <template>
  2. <el-container direction="vertical">
  3. <el-header height="40px" style="border-bottom: 1px solid #eee">操作记录</el-header>
  4. <div style="margin:10px 0;">
  5. <el-form :inline="true">
  6. <el-form-item label="选择柜子">
  7. <el-select v-model="cabinetValue" placeholder="请选择" @change="onChangeCabinet">
  8. <el-option v-for="item in cabinetOptions" :key="item.id" :label="item.alias" :value="item.id"></el-option>
  9. </el-select>
  10. </el-form-item>
  11. <el-form-item label="选择箱子">
  12. <el-select v-model="boxValue" placeholder="请选择">
  13. <el-option v-for="item in boxOptions" :key="item.box_number" :label="item.box_number" :value="item.box_number"></el-option>
  14. </el-select>
  15. </el-form-item>
  16. <el-form-item>
  17. <el-button style="margin-left:10px;" type="primary" :disabled="disSearch" @click="onSearch">查询</el-button>
  18. </el-form-item>
  19. </el-form>
  20. </div>
  21. <el-table :data="tableData" border style="width: 100%">
  22. <el-table-column align="center" prop="id" label="ID"></el-table-column>
  23. <el-table-column align="center" prop="alias" label="柜号"></el-table-column>
  24. <el-table-column align="center" prop="box_number" label="箱号"></el-table-column>
  25. <el-table-column align="center" prop="status_text" label="操作类型"></el-table-column>
  26. <el-table-column align="center" prop="datetime" label="操作日期"></el-table-column>
  27. </el-table>
  28. <el-row style="margin-top:10px;" type="flex" justify="end">
  29. <el-pagination background layout="prev, pager, next" :total="total" :page-size="pageSize" @current-change="onPageChange" :current-page="pageNumber"></el-pagination>
  30. </el-row>
  31. </el-container>
  32. </template>
  33. <script>
  34. import {
  35. boxActionList,
  36. cabinetList,
  37. boxList
  38. } from "@/api";
  39. export default {
  40. data() {
  41. return {
  42. pageSize: 10,
  43. pageNumber: 1,
  44. cabinetValue: "",
  45. cabinetOptions: [],
  46. boxOptions: [],
  47. boxValue: "",
  48. tableData: [],
  49. total: 0,
  50. };
  51. },
  52. created() {
  53. this.getCabinetList();
  54. },
  55. computed: {
  56. disSearch() {
  57. return this.boxValue != "" && this.cabinetValue == "";
  58. },
  59. },
  60. methods: {
  61. onChangeCabinet(value) {
  62. if (value) {
  63. this.getBoxList();
  64. }
  65. console.log(value);
  66. },
  67. getCabinetList() {
  68. cabinetList().then((res) => {
  69. console.log(res);
  70. if (res && res.msg == "ok") {
  71. this.cabinetOptions = res.data.rows;
  72. }
  73. });
  74. },
  75. getBoxList() {
  76. boxList({
  77. cabinet_number: this.cabinetValue
  78. }).then((res) => {
  79. if (res && res.msg == "ok") {
  80. this.boxOptions = res.data.rows;
  81. }
  82. });
  83. },
  84. getBoxActionList() {
  85. let box = this.boxValue ? this.boxValue : 0;
  86. boxActionList({
  87. cabinet_number: this.cabinetValue,
  88. box_number: box,
  89. pageSize: this.pageSize,
  90. pageNumber: this.pageNumber,
  91. }).then((res) => {
  92. console.log(res);
  93. if (res && res.msg == "ok") {
  94. this.total = res.data.total;
  95. this.tableData = res.data.rows;
  96. }
  97. });
  98. },
  99. onPageChange(page) {
  100. if (page == this.pageNumber) {
  101. return;
  102. } else {
  103. this.pageNumber = page;
  104. setTimeout(() => {
  105. this.getBoxActionList();
  106. }, 0);
  107. }
  108. },
  109. onSearch() {
  110. this.pageNumber = 1;
  111. setTimeout(() => {
  112. this.getBoxActionList();
  113. }, 0);
  114. },
  115. },
  116. };
  117. </script>
  118. <style scoped>
  119. </style>