index.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. <template>
  2. <div class="ele-body">
  3. <el-card shadow="never" v-loading="loading">
  4. <!-- <search @search="reload"></search> -->
  5. <!-- 数据表格 -->
  6. <ele-pro-table
  7. ref="table"
  8. :columns="columns"
  9. :datasource="datasource"
  10. cache-key="systemRoleTable"
  11. :pageSize="20"
  12. >
  13. <!-- 表头工具栏 -->
  14. <template v-slot:toolbar>
  15. <el-button
  16. size="small"
  17. type="primary"
  18. icon="el-icon-plus"
  19. class="ele-btn-icon"
  20. @click="openEdit('', 'add')"
  21. >新建</el-button>
  22. </template>
  23. <template v-slot:action="{ row }">
  24. <el-link type="primary" :underline="false" @click="openEdit(row, 'view')">详情</el-link>
  25. </template>
  26. </ele-pro-table>
  27. </el-card>
  28. <!-- 新建或编辑弹窗 -->
  29. <accessoryDialog ref="accessoryDialog" @refresh="reload" />
  30. </div>
  31. </template>
  32. <script>
  33. // import search from './components/search.vue';
  34. import accessoryDialog from './components/accessoryDialog.vue';
  35. import { accessoryPage } from '@/api/salesServiceManagement/index';
  36. // import dictMixins from '@/mixins/dictMixins';
  37. export default {
  38. // mixins: [dictMixins],
  39. components: {
  40. // search
  41. accessoryDialog
  42. },
  43. data() {
  44. return {
  45. // 加载状态
  46. loading: false
  47. };
  48. },
  49. computed: {
  50. columns() {
  51. return [
  52. {
  53. columnKey: 'index',
  54. label: '序号',
  55. type: 'index',
  56. width: 55,
  57. align: 'center',
  58. showOverflowTooltip: true,
  59. fixed: 'left'
  60. },
  61. {
  62. slot: 'code',
  63. prop: 'code',
  64. label: '编码',
  65. align: 'center',
  66. showOverflowTooltip: true
  67. },
  68. {
  69. prop: 'orderCode',
  70. label: '工单编码',
  71. align: 'center',
  72. showOverflowTooltip: true
  73. },
  74. {
  75. prop: 'categoryLevelName',
  76. label: '物品分类',
  77. align: 'center',
  78. showOverflowTooltip: true,
  79. formatter: (row) => {
  80. if (!row.details) return '';
  81. let str = '';
  82. row.details.map((el, idx) => {
  83. if (idx + 1 == row.details.length) {
  84. str += el.categoryLevelName;
  85. } else {
  86. str = str + '' + el.categoryLevelName + ',';
  87. }
  88. });
  89. return str;
  90. }
  91. },
  92. // + +关键字
  93. {
  94. prop: 'categoryName',
  95. label: '物品名称',
  96. align: 'center',
  97. showOverflowTooltip: true,
  98. formatter: (row) => {
  99. if (!row.details) return '';
  100. let str = '';
  101. row.details.map((el, idx) => {
  102. if (idx + 1 == row.details.length) {
  103. str += el.categoryName;
  104. } else {
  105. str = str + '' + el.categoryName + ',';
  106. }
  107. });
  108. return str;
  109. }
  110. },
  111. {
  112. prop: 'receivingDeptName',
  113. label: '领用部门',
  114. align: 'center',
  115. showOverflowTooltip: true
  116. },
  117. // + + 时间选择
  118. {
  119. prop: 'recipientName',
  120. label: '领用人',
  121. align: 'center',
  122. showOverflowTooltip: true
  123. },
  124. {
  125. prop: 'createTime',
  126. label: '创建时间',
  127. align: 'center',
  128. showOverflowTooltip: true
  129. },
  130. {
  131. prop: 'usageTime',
  132. label: '使用时间',
  133. align: 'center',
  134. showOverflowTooltip: true
  135. },
  136. {
  137. columnKey: 'action',
  138. slot: 'action',
  139. label: '操作',
  140. align: 'center',
  141. width: 180,
  142. resizable: false,
  143. showOverflowTooltip: true
  144. }
  145. ];
  146. }
  147. },
  148. created() {},
  149. methods: {
  150. /* 表格数据源 */
  151. datasource({ page, limit, where, order }) {
  152. return accessoryPage({ pageNum: page, size: limit, ...where });
  153. },
  154. /* 刷新表格 */
  155. reload(where) {
  156. this.$refs.table.reload({ page: 1, where });
  157. },
  158. openEdit(row, type) {
  159. this.$refs.accessoryDialog.init(row, type);
  160. }
  161. }
  162. };
  163. </script>
  164. <style lang="scss" scoped></style>