live_reward.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. {extend name="public/container"}
  2. {block name="head"}
  3. <style>
  4. .layui-form-label {
  5. width: 100px;
  6. padding: 5px 15px;
  7. }
  8. .layui-input-block {
  9. margin-left: 100px;
  10. }
  11. .layui-btn-group .layui-btn-normal {
  12. border: 1px solid #0092DC;
  13. border-left: none;
  14. }
  15. .layui-btn-group .layui-btn-normal:first-child {
  16. border-left: 1px solid #0092DC;
  17. }
  18. </style>
  19. {/block}
  20. {block name="content"}
  21. <div class="layui-fluid">
  22. <div v-cloak id="app" class="layui-row layui-col-space15">
  23. <div class="layui-col-md12">
  24. <div class="layui-card">
  25. <div class="layui-card-header">直播贡献</div>
  26. <div class="layui-card-body">
  27. <form class="layui-form" lay-filter="form" action="">
  28. <div class="layui-form-item">
  29. <label class="layui-form-label">搜索内容:</label>
  30. <div class="layui-input-inline" style="width: 350px;">
  31. <input type="text" name="user_info" v-model="where.user_info" placeholder="请输入用户昵称或手机号" autocomplete="off" class="layui-input">
  32. </div>
  33. </div>
  34. <div class="layui-form-item">
  35. <label class="layui-form-label">直播间:</label>
  36. <div class="layui-input-inline" style="width: 350px;">
  37. <select name="live_id" lay-filter="live_id">
  38. <option value="">全部</option>
  39. <option v-for="item in live_studio" :value="item.id">{{ item.live_title }}</option>
  40. </select>
  41. </div>
  42. </div>
  43. <div class="layui-form-item">
  44. <label class="layui-form-label">礼物搜索:</label>
  45. <div class="layui-input-inline" style="width: 350px;">
  46. <select name="gift_id" lay-filter="gift_id">
  47. <option value="">全部</option>
  48. <option v-for="item in giftList" :value="item.id">{{ item.live_gift_name }}</option>
  49. </select>
  50. </div>
  51. </div>
  52. <div class="layui-form-item">
  53. <label class="layui-form-label">创建时间:</label>
  54. <div class="layui-input-inline" data-type="date" style="width: auto;">
  55. <div class="layui-btn-group">
  56. <button :class="[where.date === item.value ? 'layui-btn-normal' : 'layui-btn-primary', 'layui-btn layui-btn-sm']" type="button" v-for="item in dateList" @click="setData(item)">{{item.name}}</button>
  57. </div>
  58. </div>
  59. <div class="layui-input-inline">
  60. <input type="text" name="date" placeholder="自定义" autocomplete="off" id="date" class="layui-input" style="height: 30px;">
  61. </div>
  62. </div>
  63. <div class="layui-form-item">
  64. <div class="layui-input-block">
  65. <button @click="search" type="button" class="layui-btn layui-btn-sm layui-btn-normal">
  66. <i class="layui-icon">&#xe615;</i> 搜索</button>
  67. <button @click="refresh" type="reset" class="layui-btn layui-btn-normal layui-btn-sm">
  68. <i class="layui-icon">&#xe669;</i> 刷新</button>
  69. </div>
  70. </div>
  71. </form>
  72. </div>
  73. </div>
  74. <!-- 中间详细信息-->
  75. <templet v-for="(item, index) in badge">
  76. <div v-if="item.count > 0" :key="index" :class="item.col!=undefined ? 'layui-col-sm'+item.col+' '+'layui-col-md'+item.col:'layui-col-sm6 layui-col-md3'">
  77. <div class="layui-card">
  78. <div class="layui-card-header">
  79. {{item.name}}
  80. <span class="layui-badge layuiadmin-badge" :class="item.background_color">{{item.field}}</span>
  81. </div>
  82. <div class="layui-card-body">
  83. <p class="layuiadmin-big-font">{{item.count}}</p>
  84. <p v-if="item.content!=undefined">
  85. {{item.content}}
  86. <span class="layuiadmin-span-color">{{item.sum}}<i :class="item.class"></i></span>
  87. </p>
  88. </div>
  89. </div>
  90. </div>
  91. </templet>
  92. <!--enb-->
  93. </div>
  94. </div>
  95. <!--产品列表-->
  96. <div class="layui-col-md12">
  97. <div class="layui-card">
  98. <div class="layui-card-body">
  99. <table class="layui-hide" id="List" lay-filter="List"></table>
  100. </div>
  101. </div>
  102. </div>
  103. </div>
  104. <script src="{__ADMIN_PATH}js/layuiList.js"></script>
  105. {/block}
  106. {block name="script"}
  107. <script>
  108. var live_id="{$live_id}";
  109. //加载列表
  110. layList.tableList({o:'List', done:function () {}},"{:Url('live_reward_list')}?live_id="+live_id,function (){
  111. return [
  112. {field: 'id', title: '编号', width:60,align: 'center'},
  113. {field: 'live_title', title: '直播间',align: 'center'},
  114. {field: 'nickname', title: '用户名',align: 'center'},
  115. {field: 'avatar', title: '头像',align: 'center',templet: '<p><img class="avatar" style="cursor: pointer" class="open_image" data-image="{{d.avatar}}" src="{{d.avatar}}" alt="{{d.nickname}}"></p>'},
  116. {field: 'gift_name', title: '礼物',align: 'center'},
  117. {field: 'gift_image', title: '礼物图片',templet:'#image',align: 'center'},
  118. {field: 'gift_price', title: '礼物价格({$gold_info["gold_name"]})',align: 'center'},
  119. {field: 'gift_num', title: '礼物数量',align: 'center'},
  120. {field: 'total_price', title: '总额({$gold_info["gold_name"]})', align: 'center'},
  121. {field: 'add_time', title: '贡献时间',align: 'center'},
  122. ];
  123. });
  124. //查询
  125. layList.search('search',function(where){
  126. layList.reload(where,true);
  127. });
  128. layList.switch('gis_show',function (odj,value) {
  129. var is_show_value = 0
  130. if(odj.elem.checked==true){
  131. var is_show_value = 1
  132. }
  133. action.set_value('is_show',value,is_show_value,'live_goods');
  134. });
  135. //快速编辑
  136. layList.edit(function (obj) {
  137. var id=obj.data.live_goods_id,value=obj.value;
  138. switch (obj.field) {
  139. case 'gsort':
  140. if(value < 0) return layList.msg('排序不能小于0');
  141. action.set_value('sort',id,value,'live_goods');
  142. break;
  143. case 'gfake_sales':
  144. action.set_value('fake_sales',id,value,'live_goods');
  145. break;
  146. }
  147. });
  148. //监听并执行排序
  149. layList.sort(['live_goods_id','gsort'],true);
  150. //点击事件绑定
  151. layList.tool(function (event,data,obj) {
  152. switch (event) {
  153. case 'open_image':
  154. $eb.openImage(data.image);
  155. break;
  156. }
  157. })
  158. var live_studio='<?=$live_studio;?>';
  159. require(['vue'],function(Vue) {
  160. new Vue({
  161. el: "#app",
  162. data: {
  163. badge: [],
  164. giftList:[],
  165. live_studio: JSON.parse(live_studio),
  166. dateList: [
  167. {name: '全部', value: ''},
  168. {name: '今天', value: 'today'},
  169. {name: '昨天', value: 'yesterday'},
  170. {name: '本周', value: 'week'},
  171. {name: '本月', value: 'month'},
  172. {name: '本季度', value: 'quarter'},
  173. {name: '本年', value: 'year'},
  174. ],
  175. where:{
  176. date:'',
  177. user_info:'',
  178. live_id:live_id,
  179. gift_id:0,
  180. },
  181. showtime: false,
  182. },
  183. methods: {
  184. setData:function(item){
  185. this.where.date = item.value;
  186. layui.form.val('form', {
  187. 'date': ''
  188. });
  189. },
  190. getBadge:function() {
  191. var that=this;
  192. layList.basePost(layList.Url({c:'live.aliyun_live',a:'getBadge'}),this.where,function (rem) {
  193. that.badge=rem.data;
  194. });
  195. },
  196. liveGiftList:function() {
  197. var that=this;
  198. layList.baseGet(layList.Url({c:'live.aliyun_live',a:'liveGiftList'}),function (rem) {
  199. that.giftList=rem.data;
  200. that.$nextTick(function () {
  201. layui.form.render();
  202. layui.form.on('select(gift_id)', function (data) {
  203. that.where.gift_id = data.value;
  204. });
  205. });
  206. });
  207. },
  208. search:function () {
  209. this.getBadge();
  210. layList.reload(this.where,true);
  211. },
  212. refresh:function () {
  213. window.location.reload();
  214. }
  215. },
  216. mounted:function () {
  217. var that=this;
  218. layui.form.render();
  219. that.getBadge();
  220. that.liveGiftList();
  221. layList.laydate.render({
  222. elem: '#date',
  223. trigger:'click',
  224. range: true,
  225. done: function (value){
  226. that.where.date = value;
  227. }
  228. });
  229. this.$nextTick(function () {
  230. layui.form.val('form', {
  231. live_id: live_id
  232. });
  233. layui.form.on('select(live_id)', function (data) {
  234. that.where.live_id = data.value;
  235. });
  236. });
  237. }
  238. })
  239. });
  240. </script>
  241. {/block}