list.blade.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. @extends('layouts.base')
  2. @section('content')
  3. @section('title', '地址管理')
  4. <div class="right-titpos">
  5. <ul class="add-snav">
  6. <li class="active"><a href="#">地址修改记录</a></li>
  7. </ul>
  8. </div>
  9. <div id="app" v-cloak v-loading="all_loading">
  10. <template>
  11. <div class="second-list">
  12. <div class="third-list">
  13. <div class="form-list">
  14. <el-form :inline="true" :model="search_form" ref="search_form" style="margin-left:10px;">
  15. <el-row>
  16. <el-form-item label="" prop="">
  17. <el-select v-model="search_form.operate_type" placeholder="修改类型" clearable>
  18. <el-option v-for="item in operate_type_list" :key="item.id" :label="item.name"
  19. :value="item.id"></el-option>
  20. </el-select>
  21. </el-form-item>
  22. <el-form-item label="" prop="keyword">
  23. <el-input v-model="search_form.keyword" placeholder="请输入地址名称"></el-input>
  24. </el-form-item>
  25. {{--<el-form-item>--}}
  26. {{--<el-select v-model="search_form.id_v1" placeholder="请选择省" clearable--}}
  27. {{--@change="changeV1()">--}}
  28. {{--<el-option v-for="item in category_list" :key="item.id" :label="item.name"--}}
  29. {{--:value="item.id"></el-option>--}}
  30. {{--</el-select>--}}
  31. {{--</el-form-item>--}}
  32. {{--<el-form-item>--}}
  33. {{--<el-select v-model="search_form.id_v2" placeholder="请选择市" clearable--}}
  34. {{--@change="changeV2()">--}}
  35. {{--<el-option v-for="item in category_list_v2" :key="item.id"--}}
  36. {{--:label="item.name" :value="item.id"></el-option>--}}
  37. {{--</el-select>--}}
  38. {{--</el-form-item>--}}
  39. {{--<el-form-item>--}}
  40. {{--<el-select v-model="search_form.id_v3" placeholder="请选择区" clearable--}}
  41. {{--v-if="catlevel==3">--}}
  42. {{--<el-option v-for="item in category_list_v3" :key="item.id"--}}
  43. {{--:label="item.name" :value="item.id"></el-option>--}}
  44. {{--</el-select>--}}
  45. {{--</el-form-item>--}}
  46. <a href="#">
  47. <el-button type="primary" icon="el-icon-search" @click="search(1)">搜索
  48. </el-button>
  49. </a>
  50. </el-col>
  51. </el-row>
  52. </el-form>
  53. </div>
  54. <div class="table-list">
  55. <div style="margin-left:10px;">
  56. <el-button type="primary" size="small" @click="createAddress()">添加地址</el-button>
  57. <el-button type="success" size="small" @click="editAddress()">编辑地址</el-button>
  58. <el-button type="info" size="small" :loading="generateLoading" @click="generateAddressFile()">同步地址</el-button>
  59. <el-button type="danger" size="small" :loading="refreshLoading" @click="refreshAddress()">初始化地址</el-button>
  60. </div>
  61. <div>
  62. <template>
  63. <!-- 表格start -->
  64. <el-table :data="list" style="width: 100%" :class="table_loading==true?'loading-height':''"
  65. v-loading="table_loading">
  66. <el-table-column prop="id" label="ID" width="60" align="center"></el-table-column>
  67. <el-table-column prop="area_name" label="地址名称" width="100"
  68. align="center"></el-table-column>
  69. <el-table-column prop="level_name" label="地址级别" max-width="50"
  70. align="center"></el-table-column>
  71. <el-table-column prop="operate_type_name" label="修改类型" max-width="50"
  72. align="center"></el-table-column>
  73. <el-table-column prop="after_address" label="之前地址" align="center"></el-table-column>
  74. <el-table-column prop="before_address" label="之后地址" align="center"></el-table-column>
  75. <el-table-column prop="created_at" label="操作时间" align="center"></el-table-column>
  76. </el-table>
  77. <!-- 表格end -->
  78. </template>
  79. </div>
  80. </div>
  81. </div>
  82. <!-- 分页 -->
  83. <div class="vue-page" v-show="total>1">
  84. <el-row>
  85. <el-col align="right">
  86. <el-pagination layout="prev, pager, next,jumper" @current-change="search" :total="total"
  87. :page-size="per_size" :current-page="current_page" background
  88. v-loading="loading"></el-pagination>
  89. </el-col>
  90. </el-row>
  91. </div>
  92. </div>
  93. </template>
  94. </div>
  95. <script>
  96. var app = new Vue({
  97. el: "#app",
  98. delimiters: ['[[', ']]'],
  99. data() {
  100. return {
  101. refreshLoading: false,
  102. generateLoading: false,
  103. all_loading: false,
  104. operate_type_list: [
  105. {id: '', name: '全部操作'},
  106. {id: 'create', name: '添加'},
  107. {id: 'edit', name: '修改'},
  108. {id: 'del', name: '删除'},
  109. {id: 'refresh', name: '更新'},
  110. ],
  111. search_form: {
  112. keyword: '',
  113. operate_type: '',
  114. },
  115. list: [],
  116. loading: false,
  117. table_loading: false,
  118. //分页
  119. total: 0,
  120. per_size: 0,
  121. current_page: 0,
  122. rules: {},
  123. }
  124. },
  125. created() {
  126. },
  127. mounted() {
  128. let data = {!! $data !!};
  129. this.setData(data);
  130. },
  131. methods: {
  132. createAddress() {
  133. window.location.href = '{!! yzWebFullUrl('plugin.address-mgmt.admin.manage.create-show') !!}';
  134. },
  135. editAddress() {
  136. window.location.href = '{!! yzWebFullUrl('plugin.address-mgmt.admin.manage.edit-show') !!}';
  137. },
  138. refreshAddress() {
  139. this.$confirm('将把地址库覆盖为最新地址,可能对收银台、区域分红、订单地址、供应商、自提点、商品配送模板、租赁等功能造成影响,确认刷新吗?', '提示', {
  140. cancelButtonText: '取消',
  141. confirmButtonText: '确定',
  142. type: 'warning'
  143. }).then(() => {
  144. this.refreshLoading = true;
  145. var that = this;
  146. that.$http.post("{!! yzWebFullUrl('plugin.address-mgmt.admin.manage.refresh-address') !!}", {}).then(response => {
  147. if (response.data.result == 1) {
  148. that.$message.success(response.data.msg);
  149. this.search();
  150. } else {
  151. that.$message.error(response.data.msg);
  152. }
  153. that.refreshLoading = false;
  154. }), function (res) {
  155. console.log(res);
  156. that.refreshLoading = false;
  157. };
  158. }).catch(() => {
  159. this.$message({type: 'info', message: '取消操作'});
  160. });
  161. },
  162. generateAddressFile() {
  163. this.$confirm('如前端地址与后端地址显示不一致,可重新生产前端的地址文件统一地址', '提示', {
  164. cancelButtonText: '取消',
  165. confirmButtonText: '确定',
  166. type: 'warning'
  167. }).then(() => {
  168. this.generateLoading = true;
  169. var that = this;
  170. that.$http.post("{!! yzWebFullUrl('plugin.address-mgmt.admin.manage.generate-js') !!}", {}).then(response => {
  171. if (response.data.result == 1) {
  172. that.$message.success(response.data.msg);
  173. this.search();
  174. } else {
  175. that.$message.error(response.data.msg);
  176. }
  177. that.generateLoading = false;
  178. }), function (res) {
  179. console.log(res);
  180. that.generateLoading = false;
  181. };
  182. }).catch(() => {
  183. this.$message({type: 'info', message: '取消操作'});
  184. });
  185. },
  186. search(page) {
  187. let that = this;
  188. let json = {
  189. page: page,
  190. search: {
  191. keyword: that.search_form.keyword,
  192. operate_type: that.search_form.operate_type,
  193. },
  194. };
  195. that.table_loading = true;
  196. that.$http.post("{!! yzWebFullUrl('plugin.address-mgmt.admin.manage.search') !!}", json).then(response => {
  197. if (response.data.result == 1) {
  198. that.list = response.data.data.data;
  199. that.total = response.data.data.total;
  200. that.current_page = response.data.data.current_page;
  201. that.per_size = response.data.data.per_page;
  202. } else {
  203. that.$message.error(response.data.msg);
  204. }
  205. that.table_loading = false;
  206. }), function (res) {
  207. console.log(res);
  208. that.table_loading = false;
  209. };
  210. },
  211. setData(data) {
  212. this.list = data.list.data;
  213. this.total = data.list.total;
  214. this.current_page = data.list.current_page;
  215. this.per_size = data.list.per_page;
  216. },
  217. },
  218. })
  219. </script>
  220. @endsection