index.vue 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  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. :page-size="pageSize"
  12. @columns-change="handleColumnChange"
  13. :cache-key="cacheKeyUrl"
  14. >
  15. <!-- 表头工具栏 -->
  16. <template v-slot:toolbar>
  17. <el-button
  18. size="small"
  19. type="primary"
  20. icon="el-icon-plus"
  21. class="ele-btn-icon"
  22. @click="openEdit('add')"
  23. v-if="$hasPermission('main:team:save')"
  24. >
  25. 新建
  26. </el-button>
  27. <!-- <el-button
  28. size="small"
  29. type="primary"
  30. class="ele-btn-icon"
  31. @click="openclass"
  32. >
  33. 设置班次
  34. </el-button> -->
  35. </template>
  36. <!-- 操作列 -->
  37. <template v-slot:action="{ row }">
  38. <el-link
  39. type="primary"
  40. :underline="false"
  41. icon="el-icon-edit"
  42. @click="openEdit('copy', row)"
  43. v-if="$hasPermission('main:team:save')"
  44. >
  45. 复制
  46. </el-link>
  47. <el-link
  48. type="primary"
  49. :underline="false"
  50. icon="el-icon-edit"
  51. @click="openEdit('edit', row)"
  52. v-if="$hasPermission('main:team:update')"
  53. >
  54. 修改
  55. </el-link>
  56. <el-popconfirm
  57. class="ele-action"
  58. title="确定要删除此角色吗?"
  59. @confirm="remove(row)"
  60. v-if="$hasPermission('main:team:delete')"
  61. >
  62. <template v-slot:reference>
  63. <el-link type="danger" :underline="false" icon="el-icon-delete">
  64. 删除
  65. </el-link>
  66. </template>
  67. </el-popconfirm>
  68. </template>
  69. </ele-pro-table>
  70. </el-card>
  71. <edit ref="edit" @done="done"></edit>
  72. <setclasses ref="setclasses" @done="done"></setclasses>
  73. </div>
  74. </template>
  75. <script>
  76. import tabMixins from '@/mixins/tableColumnsMixin';
  77. import edit from './components/edit.vue';
  78. import setclasses from './components/setclasses.vue';
  79. import { getteampage, deleteteam } from '@/api/workforceManagement/team';
  80. import search from './components/search.vue';
  81. export default {
  82. mixins: [tabMixins],
  83. components: {
  84. search,
  85. edit,
  86. setclasses
  87. },
  88. data() {
  89. return {
  90. selection: [],
  91. columns: [
  92. {
  93. width: 45,
  94. type: 'selection',
  95. columnKey: 'selection',
  96. align: 'center',
  97. fixed: 'left'
  98. },
  99. {
  100. width: 45,
  101. type: 'index',
  102. columnKey: 'index',
  103. align: 'center',
  104. fixed: 'left'
  105. },
  106. {
  107. prop: 'code',
  108. label: '编码'
  109. },
  110. {
  111. label: '名称',
  112. prop: 'name'
  113. },
  114. {
  115. label: '所属工厂',
  116. prop: 'factoryName'
  117. },
  118. // {
  119. // label: '所属厂房',
  120. // prop: 'workshopPlanName'
  121. // },
  122. // {
  123. // label: '所属产线',
  124. // prop: 'productionLineName'
  125. // },
  126. {
  127. label: '工作中心',
  128. prop: 'workCenterNames'
  129. },
  130. {
  131. label: '工艺类型',
  132. prop: 'produceVersionName'
  133. },
  134. {
  135. label: '班组长',
  136. prop: 'leaderUserName'
  137. },
  138. {
  139. label: '人数',
  140. prop: 'userNumber'
  141. },
  142. {
  143. columnKey: 'action',
  144. label: '操作',
  145. width: 220,
  146. align: 'center',
  147. resizable: false,
  148. slot: 'action',
  149. showOverflowTooltip: true,
  150. fixed: 'right'
  151. }
  152. ],
  153. dict: {
  154. enabled: {
  155. 1: '生效',
  156. 0: '未生效'
  157. },
  158. groupId: []
  159. },
  160. pageSize: this.$store.state.tablePageSize,
  161. cacheKeyUrl: '000a249c-workforceManagement-team'
  162. };
  163. },
  164. methods: {
  165. datasource({ page, where, limit }) {
  166. let data = getteampage({
  167. ...where,
  168. pageNum: page,
  169. size: limit
  170. });
  171. return data;
  172. },
  173. openEdit(type, row) {
  174. this.$refs.edit.open(type, row);
  175. },
  176. remove(row) {
  177. let par = [row.id];
  178. deleteteam(par)
  179. .then((message) => {
  180. this.$message.success(message);
  181. this.done();
  182. })
  183. .catch((e) => {
  184. this.$message.error(e.message);
  185. });
  186. },
  187. /* 刷新表格 */
  188. reload(where) {
  189. this.$refs.table.reload({ page: 1, where: where });
  190. },
  191. done() {
  192. this.$refs.table.reload({
  193. page: 1
  194. });
  195. },
  196. openclass() {
  197. if (this.selection.length <= 0) {
  198. this.$message.error('请选择班组');
  199. return;
  200. }
  201. let list = this.selection.map((n) => n.id);
  202. this.$refs.setclasses.open(list);
  203. }
  204. }
  205. };
  206. </script>