freight-rules.php 5.7 KB

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