role.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <template>
  2. <div>
  3. <use-table ref="tbl"></use-table>
  4. <div class="container padding_b_0">
  5. <div class="dflex_wrap">
  6. <div class="dflex_vertical_c margin_r_40 margin_b_20">
  7. <div class="search_name">角色名称:</div>
  8. <el-input v-model="req.role_name" placeholder="请输入" class="search_input" @input="loadData"></el-input>
  9. </div>
  10. <el-button size="mini" class="search_btn margin_b_20 margin_r_40" @click="loadData">搜索</el-button>
  11. </div>
  12. </div>
  13. <div class="container use-table">
  14. <div class="dflex_sb margin_b_15">
  15. <div><el-button class="batch_btn padding0" @click="removes">删除</el-button></div>
  16. <el-button class="add_btn pos_r padding0" icon="iconfont iconxinzeng" @click="toAdd">新增</el-button>
  17. </div>
  18. <el-table :height="tblHeight" :data="tableDatas" @selection-change="selectionChange" highlight-current-row>
  19. <el-table-column type="selection"></el-table-column>
  20. <el-table-column property="_id" label="ID" width="250" align="center"></el-table-column>
  21. <el-table-column property="role_id" label="角色标识" width="100" align="center"></el-table-column>
  22. <el-table-column property="role_name" label="角色名称" align="center"></el-table-column>
  23. <el-table-column property="comment" label="备注" align="center"></el-table-column>
  24. <el-table-column property="create_date" label="创建时间" align="center"></el-table-column>
  25. <el-table-column label="操作" align="center" fixed="right">
  26. <template slot-scope="scope">
  27. <el-tooltip content="编辑" placement="top" :hide-after="1000" :enterable="false" effect="light">
  28. <el-button type="text" icon="iconfont iconbianji" class="bbb" @click="toEdit(scope.row._id)"></el-button>
  29. </el-tooltip>
  30. <el-tooltip content="删除" placement="top" :hide-after="1000" :enterable="false" effect="light">
  31. <el-button type="text" icon="iconfont iconshanchu" class="bbb" @click="remove(scope.row._id)"></el-button>
  32. </el-tooltip>
  33. </template>
  34. </el-table-column>
  35. </el-table>
  36. <el-pagination
  37. :current-page="req.page"
  38. :page-sizes="[10, 20, 30, 50, 100]"
  39. :page-size="req.rows"
  40. layout="total, sizes, prev, pager, next, jumper"
  41. :total="tableTotal"
  42. @size-change="sizeChange"
  43. @current-change="currentChange"
  44. ></el-pagination>
  45. </div>
  46. </div>
  47. </template>
  48. <script>
  49. const __name = 'uni-id-roles';
  50. export default {
  51. data() {
  52. return {
  53. defaultOptions: [
  54. {
  55. value: '',
  56. label: '全部'
  57. },
  58. {
  59. value: '是',
  60. label: '是'
  61. },
  62. {
  63. value: '否',
  64. label: '否'
  65. }
  66. ],
  67. req: {
  68. page: 1,
  69. rows: 10,
  70. orderby: 'sort asc',
  71. role_name: ''
  72. },
  73. tblHeight: 0,
  74. tableDatas: [],
  75. tableTotal: 0,
  76. selectDatas: [],
  77. id: '',
  78. autDrawer: false
  79. };
  80. },
  81. methods: {
  82. async loadData() {
  83. await this.$db[__name]
  84. .whereif(this.req.role_name, { role_name: new RegExp(this.req.role_name) })
  85. .totable(this.req)
  86. .then(res => {
  87. if (res.code == 200) {
  88. res.datas.rows.forEach((row, idx) => {
  89. row.create_date = new Date(row.create_date).format();
  90. });
  91. this.tableDatas = res.datas.rows;
  92. this.tableTotal = res.datas.total;
  93. }
  94. });
  95. },
  96. toAdd() {
  97. uni.navigateTo({
  98. url: `/pages/system_set/role/role_add_edit?tab=添加角色`,
  99. events: {
  100. refreshData: () => {
  101. this.loadData();
  102. }
  103. }
  104. });
  105. },
  106. toEdit(id) {
  107. uni.navigateTo({
  108. url: `/pages/system_set/role/role_add_edit?id=${id}&tab=编辑角色`,
  109. events: {
  110. refreshData: () => {
  111. this.loadData();
  112. }
  113. }
  114. });
  115. },
  116. remove(id) {
  117. this.$confirm('此操作将永久删除该数据!', '提示', {
  118. confirmButtonText: '确定',
  119. cancelButtonText: '取消',
  120. type: 'warning'
  121. }).then(() => {
  122. this.$db[__name].remove(id).then(res => {
  123. if (res.code == 200) {
  124. this.loadData();
  125. }
  126. });
  127. });
  128. },
  129. selectionChange(datas) {
  130. this.selectDatas = datas;
  131. },
  132. removes() {
  133. if (this.selectDatas.length <= 0) {
  134. this.$message('请勾选需要删除的数据');
  135. return;
  136. }
  137. let ids = this.selectDatas.map(x => x._id);
  138. this.$confirm('此操作将永久删除勾选数据!', '提示', {
  139. confirmButtonText: '确定',
  140. cancelButtonText: '取消',
  141. type: 'warning'
  142. }).then(() => {
  143. this.$db[__name]
  144. .where({
  145. _id: this.$db.$cmd.in(ids)
  146. })
  147. .remove()
  148. .then(res => {
  149. if (res.code == 200) {
  150. this.loadData();
  151. }
  152. });
  153. });
  154. },
  155. sizeChange(size) {
  156. this.req.rows = size;
  157. this.loadData();
  158. },
  159. currentChange(current) {
  160. this.req.page = current;
  161. this.loadData();
  162. }
  163. },
  164. created() {
  165. this.loadData();
  166. },
  167. updated() {
  168. if (!this.tblHeight) {
  169. this.tblHeight = this.$refs.tbl.tblHeight;
  170. }
  171. }
  172. };
  173. </script>
  174. <style></style>