index.html 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <template>
  2. <el-card shadow="never">
  3. <el-tabs type="card" v-model="tabs" @tab-change="tabChange">
  4. <el-tab-pane name="all">
  5. <template #label>
  6. 录入人员
  7. </template>
  8. </el-tab-pane>
  9. <el-tab-pane name="group">
  10. <template #label>
  11. 组员管理
  12. </template>
  13. </el-tab-pane>
  14. </el-tabs>
  15. <yun-table :columns="columns" ref="yuntable" @render="onTableRender" toolbar="refresh,recyclebin" :auth="auth"
  16. :extend="extend">
  17. </yun-table>
  18. </el-card>
  19. </template>
  20. <script>
  21. import table from "@components/Table.js";
  22. export default {
  23. components: {
  24. 'YunTable': table
  25. },
  26. data: {
  27. extend: {
  28. index_url: 'user/group_user/index',
  29. // add_url: 'user/group_user/add?add_type=2',
  30. edit_url: 'user/group_user/edit',
  31. del_url: 'user/group_user/del',
  32. // multi_url: 'user/group_user/multi',
  33. download_url: 'user/group_user/download',
  34. recyclebin_url: 'user/group_user/recyclebin',
  35. // import_url: 'user/group_user/import',
  36. },
  37. auth: {
  38. edit: Yunqi.auth.check('app\\admin\\controller\\user\\GroupUser', 'edit'),
  39. del: Yunqi.auth.check('app\\admin\\controller\\user\\GroupUser', 'del'),
  40. recyclebin: Yunqi.auth.check('app\\admin\\controller\\user\\GroupUser', 'recyclebin')
  41. },
  42. columns: [
  43. {
  44. checkbox: true, selectable: function (row, index) {
  45. //可以根据业务需求返回false让某些行不可选中
  46. return true;
  47. }
  48. },
  49. { field: "id", title: "ID", operate: false },
  50. // { field: "group_name", title: "组名", operate: false, visible: false },
  51. // { field: "username", title: "账号" },
  52. { field: "manage_nickname", title: "管理员", visible: false },
  53. { field: "nickname", title: "录入人员姓名" },
  54. { field: 'avatar', title: __('头像'), formatter: Yunqi.formatter.image, operate: false },
  55. // { field: "email", title: "电子邮箱" },
  56. { field: "mobile", title: "手机号" },
  57. {
  58. field: 'role', title: __('角色'), sortable: true, operate: 'selects', formatter(value, row, index) {
  59. var role = "";
  60. if (value.indexOf("1") > -1) role = role + "录入员";
  61. if (value.indexOf("2") > -1) role = role + "-库管";
  62. if (value.indexOf("3") > -1) role = role + "-记账";
  63. return role;
  64. }
  65. },
  66. { field: "id_card", title: "身份证号" },
  67. { field: 'sex', title: __('性别'), width: 100, searchList: { 1: __('男'), 2: __('女') }, operate: false },
  68. // { field: "jointime", title: "加入时间", operate: "daterange", formatter: Yunqi.formatter.datetime },
  69. { field: "status", title: "状态", operate: "select", searchList: { normal: "正常", hidden: "隐藏" } },
  70. { field: "createtime", title: "创建时间", sortable: true, operate: "daterange", formatter: Yunqi.formatter.datetime },
  71. { field: "updatetime", title: "更新时间", visible: false, operate: "daterange", formatter: Yunqi.formatter.datetime },
  72. {
  73. field: 'operate',
  74. fixed: 'right',
  75. title: __('操作'),
  76. width: 150,
  77. action: {
  78. list: {
  79. tooltip: true,
  80. icon: 'fa fa-list',
  81. type: 'info',
  82. text: __('小组成员'),
  83. method: 'group_list'
  84. }
  85. },
  86. visible: false
  87. }
  88. ],
  89. tabs: 'all'
  90. },
  91. //页面加载完成时执行
  92. onLoad: function (query) {
  93. },
  94. //页面初始显示或在框架内显示时执行
  95. onShow: function () {
  96. },
  97. //页面在框架内隐藏时执行
  98. onHide: function () {
  99. },
  100. //页面在框架内关闭时执行
  101. onUnload: function () {
  102. },
  103. methods: {
  104. tabChange(e) {
  105. this.tabs = e
  106. let group_name_visible = true
  107. let type = 2;
  108. if (this.tabs == 'all') {
  109. group_name_visible = false
  110. this.extend.add_url = 'user/group_user/add?add_type=2'
  111. } else if (this.tabs == 'group') {
  112. type = 1
  113. this.extend.add_url = 'user/group_user/add?add_type=1'
  114. }
  115. let columns = this.columns;
  116. for (let i in columns) {
  117. if (columns[i].field == 'manage_nickname') {
  118. columns[i].visible = group_name_visible;
  119. }
  120. if (columns[i].field == 'nickname') {
  121. columns[i].visible = !group_name_visible;
  122. }
  123. if (columns[i].field == 'operate') {
  124. columns[i].visible = group_name_visible;
  125. }
  126. }
  127. this.columns = columns
  128. this.$nextTick(() => {
  129. this.$refs.yuntable.reset();
  130. });
  131. this.getList(type)
  132. },
  133. getList(type) {
  134. let that = this;
  135. this.extend.index_url = 'user/group_user/index?type=' + type
  136. Yunqi.ajax.get(this.extend.index_url, {}).then(res => {
  137. this.$refs.yuntable.reload();
  138. })
  139. },
  140. group_list: function (row) {
  141. let that = this;
  142. Yunqi.api.open({
  143. url: 'user/group_user/group_list?pid=' + row.id,
  144. width: 1000,
  145. title: __(row.group_name),
  146. icon: 'fa fa-list',
  147. close: function (r) {
  148. that.$refs.yuntable.reload();
  149. }
  150. });
  151. },
  152. onTableRender: function (list) {
  153. //表格渲染完成后执行
  154. /**
  155. * table常用方法
  156. * this.$refs.yuntable.reset();//重新渲染整个组件,当columns修改时,需要重新渲染表格才能生效,可以执行该方法。
  157. * this.$refs.yuntable.reload();//保持当前的page,重新获取数据
  158. * this.$refs.yuntable.submit();//返回第一页,重新获取数据
  159. * this.$refs.yuntable.expandAllTree();//树形表格展开所有节点
  160. * this.$refs.yuntable.expandTree(topid);//树形表格展开指定节点
  161. */
  162. }
  163. }
  164. }
  165. </script>
  166. <style>
  167. </style>