index.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <template>
  2. <div class="ele-body">
  3. <el-card shadow="never">
  4. <!-- 搜索表单 -->
  5. <search @search="reload" />
  6. <ele-pro-table
  7. ref="table"
  8. :columns="columns"
  9. :datasource="datasource"
  10. :selection.sync="selection"
  11. cache-key="systemRoleTable20"
  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. >
  22. 新建
  23. </el-button>
  24. <!-- <el-button
  25. size="small"
  26. type="primary"
  27. class="ele-btn-icon"
  28. @click="openclass"
  29. >
  30. 设置班次
  31. </el-button> -->
  32. </template>
  33. <!-- 操作列 -->
  34. <template v-slot:action="{ row }">
  35. <el-link
  36. type="primary"
  37. :underline="false"
  38. icon="el-icon-edit"
  39. @click="openEdit('edit', row)"
  40. >
  41. 修改
  42. </el-link>
  43. <el-popconfirm
  44. class="ele-action"
  45. title="确定要删除此角色吗?"
  46. @confirm="remove(row)"
  47. >
  48. <template v-slot:reference>
  49. <el-link type="danger" :underline="false" icon="el-icon-delete">
  50. 删除
  51. </el-link>
  52. </template>
  53. </el-popconfirm>
  54. </template>
  55. </ele-pro-table>
  56. </el-card>
  57. <edit ref="edit" @done="done"></edit>
  58. <setclasses ref="setclasses" @done="done"></setclasses>
  59. </div>
  60. </template>
  61. <script>
  62. import edit from './components/edit.vue';
  63. import setclasses from './components/setclasses.vue';
  64. import { getteampage, deleteteam } from '@/api/workforceManagement/team';
  65. import search from './components/search.vue';
  66. export default {
  67. components: {
  68. search,
  69. edit,
  70. setclasses
  71. },
  72. data() {
  73. return {
  74. selection: [],
  75. columns: [
  76. {
  77. width: 45,
  78. type: 'selection',
  79. columnKey: 'selection',
  80. align: 'center',
  81. fixed: 'left'
  82. },
  83. {
  84. width: 45,
  85. type: 'index',
  86. columnKey: 'index',
  87. align: 'center',
  88. fixed: 'left'
  89. },
  90. {
  91. prop: 'code',
  92. label: '编码'
  93. },
  94. {
  95. label: '名称',
  96. prop: 'name'
  97. },
  98. {
  99. label: '所属工厂-厂房',
  100. prop: 'workshopPlanName'
  101. },
  102. {
  103. label: '所属产线',
  104. prop: 'productionLineName'
  105. },
  106. {
  107. label: '生产版本',
  108. prop: 'produceVersionName'
  109. },
  110. {
  111. label: '人数',
  112. prop: 'userNumber'
  113. },
  114. {
  115. columnKey: 'action',
  116. label: '操作',
  117. width: 220,
  118. align: 'center',
  119. resizable: false,
  120. slot: 'action',
  121. showOverflowTooltip: true,
  122. fixed: 'right'
  123. }
  124. ],
  125. dict: {
  126. enabled: {
  127. 1: '生效',
  128. 0: '未生效'
  129. },
  130. groupId: []
  131. }
  132. };
  133. },
  134. methods: {
  135. datasource({ page, where, limit }) {
  136. let data = getteampage({
  137. ...where,
  138. pageNum: page,
  139. size: limit
  140. });
  141. return data;
  142. },
  143. openEdit(type, row) {
  144. this.$refs.edit.open(type, row);
  145. },
  146. remove(row) {
  147. let par = [row.id];
  148. deleteteam(par)
  149. .then((message) => {
  150. this.$message.success(message);
  151. this.done();
  152. })
  153. .catch((e) => {
  154. this.$message.error(e.message);
  155. });
  156. },
  157. /* 刷新表格 */
  158. reload(where) {
  159. this.$refs.table.reload({ page: 1, where: where });
  160. },
  161. done() {
  162. this.$refs.table.reload({
  163. page: 1
  164. });
  165. },
  166. openclass() {
  167. if (this.selection.length <= 0) {
  168. this.$message.error('请选择班组');
  169. return;
  170. }
  171. let list = this.selection.map((n) => n.id);
  172. this.$refs.setclasses.open(list);
  173. }
  174. }
  175. };
  176. </script>