data-log.blade.php 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. @extends('layouts.base')
  2. @section('title', '群活码-数据列表')
  3. @section('content')
  4. <link href="{{ static_url('yunshop/element-ui/2.10.1/css/index.css') }}" rel="stylesheet">
  5. <link rel="stylesheet" type="text/css" href="{{static_url('yunshop/goods/vue-goods1.css')}}" />
  6. <style>
  7. .el-button+.el-button {margin-left:0px;}
  8. </style>
  9. <div class="all">
  10. <div id="app" v-cloak>
  11. <div class="vue-head">
  12. <div class="vue-main-title" style="margin-bottom:20px">
  13. <div class="vue-main-title-left"></div>
  14. <div class="vue-main-title-content">群活码-数据列表</div>
  15. <div class="vue-main-title-button">
  16. </div>
  17. </div>
  18. <div class="vue-search">
  19. <el-form :inline="true" :model="search_form" class="demo-form-inline">
  20. <el-form-item label="">
  21. <el-input v-model="search_form.group_id" placeholder="活码ID"></el-input>
  22. </el-form-item>
  23. <el-form-item label="">
  24. <el-input v-model="search_form.code_name" placeholder="活码名称"></el-input>
  25. </el-form-item>
  26. <el-form-item label="">
  27. <el-select v-model="search_form.order_by" clearable placeholder="排序规则">
  28. <el-option label="统计日期" value="0"></el-option>
  29. <el-option label="当日扫码" value="1"></el-option>
  30. <el-option label="当日新会员" value="2"></el-option>
  31. </el-select>
  32. </el-form-item>
  33. <el-form-item label="">
  34. <el-select v-model="search_form.is_statistic" clearable placeholder="是否统计">
  35. <el-option label="统计" value="0"></el-option>
  36. <el-option label="不统计" value="1"></el-option>
  37. </el-select>
  38. </el-form-item>
  39. <el-form-item label="">
  40. <el-date-picker
  41. v-model="times"
  42. type="datetimerange"
  43. value-format="timestamp"
  44. range-separator="至"
  45. start-placeholder="开始日期"
  46. end-placeholder="结束日期"
  47. style="margin-left:5px;"
  48. align="right">
  49. </el-date-picker>
  50. </el-form-item>
  51. <el-form-item label="">
  52. <el-button type="primary" @click="search(1)">搜索</el-button>
  53. </el-form-item>
  54. </el-form>
  55. </div>
  56. </div>
  57. <div class="vue-main">
  58. <div class="vue-category-title" style="font-weight:500">统计:总扫活码人数[[statistic.cumulative|| 0]]人,总新会员人数[[statistic.cumulative_new|| 0]]人;<br>
  59. <div class="tip" style="font-size:13px">总扫活码人数=所有记录当日扫活码人数求和;总新会员人数=所有记录当日新会员人数求和;</div>
  60. </div>
  61. <div class="vue-main-form">
  62. <el-table :data="list" style="width: 100%">
  63. <el-table-column label="统计时间" align="center" prop="date_day"></el-table-column>
  64. <el-table-column label="群活码名称" align="center" prop="group_code.code_name"></el-table-column>
  65. <el-table-column label="当日扫码人数" align="center" prop="total_count"></el-table-column>
  66. <el-table-column label="累计扫码人数" align="center" prop="cumulative"></el-table-column>
  67. <el-table-column label="当日新会员人数" align="center" prop="new_count"></el-table-column>
  68. <el-table-column label="累计新会员人数" align="center" prop="cumulative_new"></el-table-column>
  69. </el-table>
  70. </div>
  71. </div>
  72. <!-- 分页 -->
  73. <div class="vue-page" v-if="total>0">
  74. <el-row>
  75. <el-col align="right">
  76. <el-pagination layout="prev, pager, next,jumper" @current-change="search" :total="total"
  77. :page-size="per_page" :current-page="current_page" background
  78. ></el-pagination>
  79. </el-col>
  80. </el-row>
  81. </div>
  82. </div>
  83. </div>
  84. <script>
  85. var app = new Vue({
  86. el: "#app",
  87. delimiters: ['[[', ']]'],
  88. name: 'test',
  89. data() {
  90. return {
  91. list:[],
  92. change_sort:'',
  93. times:[],
  94. statistic:{},
  95. search_form:{
  96. group_id:'',
  97. },
  98. rules: {},
  99. current_page:1,
  100. total:1,
  101. per_page:1,
  102. }
  103. },
  104. created() {
  105. this.search_form.group_id = this.getQueryString('group_id');
  106. },
  107. mounted() {
  108. this.getData(1);
  109. },
  110. methods: {
  111. getQueryString(name) {
  112. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  113. var r = window.location.search.substr(1).match(reg);
  114. if (r != null) return unescape(r[2]);
  115. return null;
  116. },
  117. getData(page) {
  118. console.log(this.times);
  119. let json = {
  120. page:page,
  121. search:{
  122. group_id:this.search_form.group_id,
  123. code_name:this.search_form.code_name,
  124. order_by:this.search_form.order_by,
  125. is_statistic:this.search_form.is_statistic,
  126. }
  127. };
  128. if(this.times && this.times.length>0) {
  129. json.search.time ={};
  130. json.search.time = {start:this.times[0]/1000,end:this.times[1]/1000}
  131. }
  132. console.log(json)
  133. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0.2)'});
  134. this.$http.post('{!! yzWebFullUrl('plugin.group-code.admin.group-code-log.get-list') !!}',json).then(function(response) {
  135. if (response.data.result) {
  136. this.list = response.data.data.list.data;
  137. this.current_page=response.data.data.list.current_page;
  138. this.total=response.data.data.list.total;
  139. this.per_page=response.data.data.list.per_page;
  140. this.statistic.cumulative = response.data.data.statistic.cumulative;
  141. this.statistic.cumulative_new = response.data.data.statistic.cumulative_new;
  142. loading.close();
  143. } else {
  144. this.$message({
  145. message: response.data.msg,
  146. type: 'error'
  147. });
  148. }
  149. loading.close();
  150. }, function(response) {
  151. this.$message({
  152. message: response.data.msg,
  153. type: 'error'
  154. });
  155. loading.close();
  156. });
  157. },
  158. search(val) {
  159. this.getData(val);
  160. },
  161. del(id,index) {
  162. console.log(id,index)
  163. this.$confirm('确定删除吗', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {
  164. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0.2)'});
  165. this.$http.post('{!! yzWebFullUrl('goods.dispatch.delete') !!}',{id:id}).then(function (response) {
  166. if (response.data.result) {
  167. this.list.splice(index,1);
  168. this.$message({type: 'success',message: '删除成功!'});
  169. }
  170. else{
  171. this.$message({type: 'error',message: response.data.msg});
  172. }
  173. loading.close();
  174. this.search(this.current_page)
  175. },function (response) {
  176. this.$message({type: 'error',message: response.data.msg});
  177. loading.close();
  178. }
  179. );
  180. }).catch(() => {
  181. this.$message({type: 'info',message: '已取消删除'});
  182. });
  183. },
  184. },
  185. })
  186. </script>
  187. @endsection