rules.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?php
  2. ?>
  3. <style>
  4. @media screen and (max-width: 1500px) {
  5. #app {
  6. min-width: 1270px;
  7. }
  8. }
  9. </style>
  10. <div id="app" v-cloak>
  11. <el-card shadow="never" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
  12. <div slot="header">
  13. <span>运费模板</span>
  14. <div style="float: right; margin: -5px 0">
  15. <el-button type="primary" size="small" @click="handle('edit')">添加规则</el-button>
  16. </div>
  17. </div>
  18. <div class="table-body">
  19. <el-form :inline="true" size="small" class="demo-form-inline">
  20. <el-form-item>
  21. <el-input @keyup.enter.native="search" size="small" placeholder="请输入搜索内容" v-model="keyword" clearable @clear="getList">
  22. <el-button slot="append" icon="el-icon-search" @click="search"></el-button>
  23. </el-input>
  24. </el-form-item>
  25. </el-form>
  26. <el-table v-loading="listLoading" :data="list" stripe style="width: 100%">
  27. <el-table-column label="ID" prop="id" align="center" min-width="100"></el-table-column>
  28. <el-table-column label="规则名称" prop="name" align="center" min-width="300">
  29. <template slot-scope="scope">
  30. <div size="small">{{scope.row.name}}</div>
  31. </template>
  32. </el-table-column>
  33. <el-table-column prop="is_default" label="是否默认" width="100">
  34. <template slot-scope="scope">
  35. <el-radio v-model="scope.row.is_default" :label="1" @change="handle('default',scope.row)">默认</el-radio>
  36. </template>
  37. </el-table-column>
  38. <el-table-column label="操作" min-width="120" align="center">
  39. <template slot-scope="scope">
  40. <el-button type="text" @click="handle('edit',scope.row)">编辑</el-button>
  41. <el-button type="text" @click="handle('destroy',scope.row)">删除</el-button>
  42. </template>
  43. </el-table-column>
  44. </el-table>
  45. <div style="text-align: right;margin: 20px 0;">
  46. <el-pagination @current-change="pagination" background layout="prev, pager, next" :page-count="pageCount"></el-pagination>
  47. </div>
  48. </div>
  49. </el-card>
  50. </div>
  51. <script>
  52. const app = new Vue({
  53. el: '#app',
  54. data() {
  55. return {
  56. keyword: '',
  57. list: [{
  58. title: "测试标题"
  59. }],
  60. listLoading: false,
  61. page: 1,
  62. pageCount: 0
  63. };
  64. },
  65. mounted: function() {
  66. this.getList();
  67. },
  68. methods: {
  69. search() {
  70. this.page = 1;
  71. this.getList();
  72. },
  73. pagination(currentPage) {
  74. let self = this;
  75. self.page = currentPage;
  76. self.getList();
  77. },
  78. // 获取广告列表
  79. getList() {
  80. let self = this;
  81. let params = {
  82. r: 'mall/freight/rules',
  83. page: self.page,
  84. }
  85. if(this.keyword) params.keyword = this.keyword;
  86. if (self.listLoading == false) {
  87. self.listLoading = true;
  88. request({
  89. params: params,
  90. method: 'get',
  91. }).then(e => {
  92. self.listLoading = false;
  93. if (e.data.code == 0) {
  94. self.list = e.data.data.list;
  95. self.pageCount = e.data.data.page_count;
  96. } else {
  97. self.$message.error(e.data.msg);
  98. }
  99. }).catch(e => {
  100. self.$message.error(e.data.msg);
  101. self.listLoading = false;
  102. });
  103. }
  104. },
  105. handle(type, data = null) {
  106. switch (type) {
  107. case 'edit':
  108. id = data ? parseInt(data.id) : '';
  109. param = {
  110. r: 'mall/freight/edit'
  111. };
  112. if (id) param = Object.assign(param, {
  113. id: id
  114. });
  115. navigateTo(param);
  116. break;
  117. case 'default':
  118. for (let i in this.list) {
  119. this.list[i].is_default = 0;
  120. }
  121. data.is_default = 1;
  122. param = {
  123. id: data.id,
  124. is_default: data.is_default,
  125. type
  126. };
  127. this.send(param)
  128. break;
  129. case 'destroy':
  130. param = {
  131. id: data.id,
  132. type
  133. };
  134. this.$confirm('删除该条数据后不可以恢复, 是否继续?', '警告', {
  135. type: 'warning'
  136. }).then(() => {
  137. this.send(param)
  138. })
  139. break;
  140. }
  141. },
  142. send(params) {
  143. let self = this;
  144. request({
  145. params: {
  146. r: 'mall/freight/rules',
  147. },
  148. method: 'post',
  149. data: params
  150. }).then(e => {
  151. if (e.data.code == 0) {
  152. self.$message.success(e.data.msg);
  153. self.getList();
  154. } else {
  155. self.$message.error(e.data.msg);
  156. }
  157. }).catch(e => {
  158. console.log(e);
  159. });
  160. }
  161. }
  162. });
  163. </script>