index.html 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. {extend name="vue_layout/main" /}
  2. {block name="styles"}
  3. <style>
  4. .Va-container-content {
  5. height: 72vw;
  6. }
  7. .icons-type-list {
  8. width: 350px;
  9. overflow: hidden;
  10. padding: 0;
  11. }
  12. .icons-type-one {
  13. border-radius: unset !important;
  14. border: 1px solid #ccc;
  15. padding: 10px 10px;
  16. margin: 2px;
  17. }
  18. .icons-type-list .icons-type-one.is-checked {
  19. border: 1px solid var(--buttonHoverColors);
  20. }
  21. </style>
  22. {/block}
  23. <!-- 主体 -->
  24. {block name="content"}
  25. <div class="form-container" style="overflow: hidden">
  26. <div class="form-container-header">
  27. <el-form :inline="true" :model="tables.search" size="small">
  28. <el-form-item>
  29. <el-input v-model="tables.search.keyword" placeholder="按昵称|手机号关键词搜索" clearable></el-input>
  30. </el-form-item>
  31. <el-form-item>
  32. <el-select v-model="tables.search.gender" placeholder="-- 按性别搜索 --" clearable>
  33. <el-option label="状态(全部)" value=""></el-option>
  34. <el-option key="0" label="女" value="0"></el-option>
  35. <el-option key="1" label="男" value="1"></el-option>
  36. </el-select>
  37. </el-form-item>
  38. <el-form-item>
  39. <el-button type="primary" size="small" @click="tablesSearchEvent"><i class="fa fa-search"></i> 搜 索
  40. </el-button>
  41. <el-button size="small" @click="tablesResetsEvent"><i class="fa fa-refresh"></i> 重 置</el-button>
  42. </el-form-item>
  43. </el-form>
  44. </div>
  45. <div class="form-container-main inline-tables no-pic" v-loading="tables.options.loading">
  46. <el-table
  47. :data="tables.data"
  48. border
  49. :stripe="true"
  50. @selection-change="tablesSelectChange"
  51. @sort-change="tablesPaginationSortChange"
  52. @cell-click="tablesCellMoveEvent"
  53. tooltip-effect="dark"
  54. ref="formContainerTables"
  55. row-key="id">
  56. <el-table-column prop="id" label="#ID" align="center" min-width="60"></el-table-column>
  57. <el-table-column prop="avatar" label="头像" align="center" min-width="80">
  58. <template slot-scope="scope">
  59. <va-image :src="scope.row.avatar" :key="scope.row.avatar" class="tables-image"></va-image>
  60. </template>
  61. </el-table-column>
  62. <el-table-column prop="nickname" label="昵称" align="center"></el-table-column>
  63. <el-table-column prop="mobile" label="手机号" align="center"></el-table-column>
  64. <el-table-column prop="gender" label="性别" align="center">
  65. <template slot-scope="scope">
  66. <el-tag v-if="scope.row.gender == 0" size="mini" type="danger" effect="plain">女</el-tag>
  67. <el-tag v-if="scope.row.gender == 1" size="mini" type="success" effect="plain">男</el-tag>
  68. </template>
  69. </el-table-column>
  70. <el-table-column prop="birthday" label="生日" align="center"></el-table-column>
  71. <el-table-column prop="money" label="金额" align="center">
  72. <template slot-scope="scope">
  73. <el-tag size="mini" effect="plain">¥{{scope.row.money}}</el-tag>
  74. </template>
  75. </el-table-column>
  76. <el-table-column prop="createtime" label="创建时间" align="center" :formatter="formatTableDate" min-width="160" sortable></el-table-column>
  77. <el-table-column prop="options" label="操作" align="left" fixed="right" width="160">
  78. <template slot-scope="scope">
  79. <el-button size="mini" warning type="text" @click="tablesRowsUpdate(scope.row)" v-if="permissions.update">
  80. <i :class="permissions.update.icon"></i> {{permissions.update.name}}
  81. </el-button>
  82. <!-- 更多操作 -->
  83. <el-dropdown size="small" style="margin-left: 10px">
  84. <el-button size="mini" primary type="text"><i class="fa fa-reorder "></i> 更多操作<i
  85. class="el-icon-arrow-down el-icon--right"></i></el-button>
  86. <el-dropdown-menu slot="dropdown">
  87. <el-dropdown-item v-if="permissions.status">
  88. <el-button size="mini" warning type="text"
  89. @click="tablesRowsStatus(scope.row,{id:scope.row.id})"
  90. v-if="permissions.status" :disabled="scope.row.is_system==1">
  91. <i :class="permissions.status.icon"></i>
  92. {{tables.status.maps[scope.row.status]}}
  93. </el-button>
  94. </el-dropdown-item>
  95. <el-dropdown-item v-if="permissions.remove">
  96. <el-button size="mini" danger type="text" @click="tablesRowsRemove(scope.row)"
  97. v-if="permissions.remove" :disabled="scope.row.is_system==1">
  98. <i :class="permissions.remove.icon"></i> {{permissions.remove.name}}
  99. </el-button>
  100. </el-dropdown-item>
  101. </el-dropdown-menu>
  102. </el-dropdown>
  103. <!-- 更多操作 End. -->
  104. </template>
  105. </el-table-column>
  106. </el-table>
  107. <div class="Va-container-tables-pagination-box">
  108. <el-pagination
  109. class="Va-container-tables-pagination"
  110. @size-change="tablesPaginationSizeChange"
  111. @current-change="tablesPaginationCurrentChange"
  112. :current-page.sync="tables.pagination.page"
  113. :page-sizes="tables.pagination.sizes"
  114. :page-size="tables.pagination.size"
  115. :layout="tables.pagination.layouts"
  116. :total="tables.pagination.total"
  117. data-7512a93d>
  118. </el-pagination>
  119. </div>
  120. </div>
  121. </div>
  122. {/block}
  123. <!-- vue -->
  124. {block name="scripts"}
  125. <script>
  126. var $App = new Vue({
  127. el: '#app',
  128. mixins: [$Config, $Layouts, $Tables, $DialogForms],
  129. data: {
  130. menuRule:'vue_demo',
  131. component: {status: false},
  132. config: {permissions: true},
  133. tables: {
  134. remove: {
  135. url: 'remove', msg: '确认删除当前数据吗?', field: 'id'
  136. },
  137. status: {
  138. url: 'status', field: 'status'
  139. },
  140. sort: {
  141. url: 'rank', item: 'sort', field: 'id'
  142. },
  143. url: 'vue_demo',
  144. search: {},
  145. pagination: {
  146. layout: ''
  147. },
  148. prop: 'id', orderBy: 'desc'
  149. },
  150. },
  151. methods: {
  152. tablesRowsInsert() {
  153. var that = this;
  154. that.create.action = 'insert';
  155. that.create.model = {name: '', sort: 255};
  156. that.dialogFormsOpens('create');
  157. },
  158. tablesRowsUpdate(rows) {
  159. var that = this;
  160. that.create.action = 'update';
  161. that.create.model = {
  162. id: rows.id,
  163. name: rows.name,
  164. sort: rows.sort,
  165. };
  166. that.dialogFormsOpens('create');
  167. },
  168. tablesResetsEvent() {
  169. var that = this;
  170. that.tables.search = {};
  171. that.tablesGetTableList();
  172. },
  173. },
  174. created() {
  175. },
  176. mounted() {
  177. }
  178. })
  179. </script>
  180. {/block}