index.html 6.8 KB

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