index.blade.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  1. <!-- 拼团订单列表页 -->
  2. @extends('layouts.base')
  3. @section('title', '拼团订单列表')
  4. @section('content')
  5. <link href="{{static_url('yunshop/css/order.css')}}" media="all" rel="stylesheet" type="text/css"/>
  6. <div id="app-orders" xmlns:v-bind="http://www.w3.org/1999/xhtml" v-loading="all_loading">
  7. <template>
  8. <el-container>
  9. <el-header height="auto" style="margin-bottom: -50px">
  10. <div class="card">
  11. <div class="card-header card-header-icon" data-background-color="rose">
  12. <i class="fa fa-bars" style="font-size: 24px;" aria-hidden="true"></i>
  13. </div>
  14. <h4 class="card-title">拼团订单管理</h4>
  15. <div style="padding:24px">
  16. <el-form v-loading="loading" :inline="true" ref="search_form" :model="search_form">
  17. <el-form-item label="活动编号">
  18. <el-input v-model="search_form.fight_groups_id" placeholder="活动编号"></el-input>
  19. </el-form-item>
  20. <el-form-item label="活动标题">
  21. <el-input v-model="search_form.fight_groups_title" placeholder="活动标题"></el-input>
  22. </el-form-item>
  23. <el-form-item label="团队状态">
  24. <el-select v-model="search_form.team_status" clearable placeholder="团队状态">
  25. <el-option v-for="v in team_status" :key="v.id" :label="v.name" :value="v.id"></el-option>
  26. </el-select>
  27. </el-form-item>
  28. <el-form-item label="团长昵称">
  29. <el-input v-model="search_form.leader_name" placeholder="团长昵称"></el-input>
  30. </el-form-item>
  31. <el-form-item label="订单号">
  32. <el-input v-model="search_form.order_sn" placeholder="订单号"></el-input>
  33. </el-form-item>
  34. <el-form-item label="订单状态">
  35. <el-select v-model="search_form.status" clearable placeholder="订单状态">
  36. <el-option v-for="v in allStatus" :key="v.id" :label="v.name" :value="v.id"></el-option>
  37. </el-select>
  38. </el-form-item>
  39. <el-form-item label="下单时间">
  40. <div class="block">
  41. <span class="demonstration"></span>
  42. <el-date-picker v-model="search_form.create_time" type="datetimerange" range-separator="至"
  43. start-placeholder="开始日期"
  44. end-placeholder="结束日期"
  45. align="center"
  46. value-format="timestamp">
  47. </el-date-picker>
  48. </div>
  49. </el-form-item>
  50. <el-button type="primary" icon="el-icon-search" @click="searchOrder()">搜索
  51. </el-button>
  52. </el-form>
  53. </div>
  54. <table class='table'
  55. style='float:left;margin-bottom:0;table-layout: fixed;line-height: 40px;height: 40px'>
  56. <tr class='trhead'>
  57. <td colspan='8' style="text-align: left;">
  58. 订单数: <span id="total">[[order_total]]</span>
  59. 订单金额: <span id="totalmoney" style="color:red">[[order_sum_price]]</span>元&nbsp;
  60. </td>
  61. </tr>
  62. </table>
  63. </div>
  64. </el-header>
  65. <el-main>
  66. <div v-for="order in data.data">
  67. <el-container class="order-info">
  68. <el-header class="order-title"
  69. style="background: #f8f8f8;height: 36px;line-height: 36px;border: 1px solid #ccc;">
  70. <b>订单编号 : </b>[[ order.order_sn ]]
  71. <b>下单时间 :</b> [[ order.create_time ]]
  72. <label class="label label-info">[[ order.shop_name ]]</label>
  73. &nbsp;&nbsp;<b>活动名称 :</b> [[ order.group_title ]]&nbsp;&nbsp;
  74. &nbsp;&nbsp;<b>[[ order.member_num ]]人团</b>&nbsp;&nbsp;
  75. &nbsp;&nbsp;<b>团长 :</b> [[ order.leader_name ]]&nbsp;&nbsp;
  76. </el-row>
  77. </el-header>
  78. <el-main class="order-main">
  79. <el-row align="middle" type="flex" justify="space-between">
  80. <el-col :span="8">
  81. <template v-for="order_goods in order.has_many_order_goods">
  82. <el-row>
  83. <el-col :span="16">
  84. <img v-bind:src="order_goods.thumb"
  85. style='width:50px;height:50px;padding:1px;border:1px solid #ccc'>
  86. <span>[[ order_goods.title ]]</span>
  87. </el-col>
  88. <el-col :span="8">
  89. 原价: [[ order_goods.goods_price ]]
  90. <br/>应付: [[ order_goods.price ]]
  91. <br/>数量: [[ order_goods.total ]]
  92. </el-col>
  93. </el-row>
  94. </template>
  95. </el-col>
  96. <el-col :span="3">
  97. <!-- <template v-if="order.provider_platform_order.tripartite_provider">
  98. 销售平台:[[order.provider_platform_order.tripartite_retailer.name]]<br/>
  99. </template> -->
  100. <!-- <template v-if="order.provider_platform_order.tripartite_retailer">
  101. 供应平台:[[order.provider_platform_order.tripartite_provider.name]]
  102. </template> -->
  103. </el-col>
  104. <el-col :span="3">
  105. <a v-bind:href="'{{ yzWebUrl('member.member.detail', array('id' => '')) }}'+[[order.uid]]"
  106. target="_blank">
  107. [[order.belongs_to_member.nickname]]<br/>[[order.belongs_to_member.realname]]<br/>[[order.belongs_to_member.mobile]]
  108. </a>
  109. </el-col>
  110. <el-col :span="3">
  111. <label class='label label-info'>[[order.pay_type_name]]</label>
  112. </el-col>
  113. <el-col :span="3">
  114. <el-row>
  115. <el-col :span="12">
  116. 商品小计:
  117. </el-col>
  118. <el-col :span="12">
  119. [[order.goods_price]]
  120. </el-col>
  121. </el-row>
  122. <el-row>
  123. <el-col :span="12">
  124. 应收款:
  125. </el-col>
  126. <el-col :span="12">
  127. <span style="color:green">[[order.price]]</span>
  128. </el-col>
  129. </el-row>
  130. </el-col>
  131. <el-col :span="2">
  132. <div style="padding-bottom: 5px"><label class='label label-info'>[[order.status_name]]</label>
  133. </div>
  134. <div>
  135. <a v-bind:href="'{{ yzWebUrl('order.detail', array('id' => '')) }}'+[[order.id]]"
  136. target="_blank">查看详情</a></div>
  137. </el-col>
  138. <el-col :span="2">
  139. <order-operation :order="order"></order-operation>
  140. </el-col>
  141. </el-row>
  142. </el-main>
  143. </el-container>
  144. </div>
  145. </el-main>
  146. <!-- 分页 -->
  147. <el-row>
  148. <el-col :span="24" align="right" style="padding:15px 5% 15px 0">
  149. <el-pagination layout="prev, pager, next" @current-change="currentChange" :current-page="current_page" :total="total" :page-size="per_size" background v-loading="loading"></el-pagination>
  150. </el-col>
  151. </el-row>
  152. </el-container>
  153. </template>
  154. </div>
  155. <style>
  156. .el-table .warning-row {
  157. background: oldlace;
  158. }
  159. .el-table .success-row {
  160. background: #f0f9eb;
  161. }
  162. </style>
  163. @endsection('content')
  164. @section('js')
  165. @include('Yunshop\FightGroups::admin.order.orderOperation')
  166. <script>
  167. var app = new Vue({
  168. el: '#app-orders',
  169. delimiters: ['[[', ']]'],
  170. components: {
  171. 'order-operation': orderOperation
  172. },
  173. data() {
  174. let data = {!! $data?:'{}' !!};
  175. console.log(data);
  176. return {
  177. // data: data.orders,
  178. id:'',
  179. search_form:{},
  180. order_sum_price:'',
  181. order_total:"",
  182. //分页
  183. total:0,
  184. per_size:0,
  185. current_page:0,
  186. all_loading:false,
  187. team_status:[
  188. {id:null,name:'全部'},
  189. {id:1,name:'已开团'},
  190. {id:2,name:'成团成功'},
  191. {id:3,name:'成团失败'},
  192. ],
  193. rules:{},
  194. data:{
  195. data:[
  196. {id:1,provider_platform_order:{tripartite_provider:""},belongs_to_member:{nickname:"",}}
  197. ]
  198. },
  199. form: {},
  200. allStatus: [
  201. {id: null, name: "全部"},
  202. ...data.allStatus
  203. ],
  204. orderInfo:{
  205. // total_sum:data.total_info.total_amount,
  206. total_sum:"",
  207. // count:data.total_info.total,
  208. count:"",
  209. service_charge:'0',
  210. withdrawals:'0'
  211. },
  212. tripartiteRetailers: [
  213. {id: null, name: "全部"},
  214. // ...data.tripartiteRetailers
  215. ],
  216. tripartiteProviders: [
  217. {id: null, name: "全部"},
  218. // ...data.tripartiteProviders
  219. ],
  220. searchParams: {
  221. // ...data.searchParams,
  222. "keywords": "",
  223. "status": "",
  224. "tripartite_retailer_id": "",
  225. "tripartite_provider_id": "",
  226. "create_time": "",
  227. },
  228. loading: false,
  229. memberLoading: false,
  230. members: false,
  231. pageLoading: false
  232. }
  233. },
  234. created() {
  235. //获得url传过来的id
  236. var url = window.location.href;
  237. var url_arr = url.split("=");
  238. var url_arr2 = url_arr[url_arr.length-2].split("&");
  239. console.log(url_arr2)
  240. let json = {};
  241. if(url_arr2[url_arr2.length-1] == 'fight_groups_id'){
  242. this.id = url_arr[url_arr.length-1];
  243. let new_url = "";
  244. for(let i=0;i<url_arr.length;i++) {
  245. if(this.id.charAt(i)!="#") {
  246. new_url = new_url+this.id.charAt(i);
  247. }
  248. }
  249. this.id = new_url;
  250. json = {fight_groups_id:this.id};
  251. }
  252. this.search_form.fight_groups_id = this.id;
  253. this.getData(json);
  254. },
  255. methods: {
  256. getData(json) {
  257. var that = this;
  258. that.all_loading = true;
  259. this.$http.post("{!! yzWebUrl('plugin.fight-groups.admin.controllers.order.search')!!}", json).then(response => {
  260. console.log(response.data);
  261. that.data.data = response.data.data.data;
  262. that.total = response.data.data.total;
  263. that.per_size = response.data.data.per_page;
  264. that.current_page = response.data.data.current_page;
  265. that.order_sum_price = response.data.data.sum_price;
  266. that.order_total = response.data.data.total;
  267. that.all_loading = false;
  268. }, response => {
  269. console.log(response);
  270. that.all_loading = false;
  271. });
  272. },
  273. searchOrder() {
  274. console.log(this.search_form);
  275. let time = [];
  276. if(this.search_form.create_time){
  277. time[0] = this.search_form.create_time[0]/1000;
  278. time[1] = this.search_form.create_time[1]/1000;
  279. }
  280. let json = {
  281. page:1,
  282. fight_groups_id:this.search_form.fight_groups_id,
  283. fight_groups_title:this.search_form.fight_groups_title,
  284. leader_name:this.search_form.leader_name,
  285. order_sn:this.search_form.order_sn,
  286. status:this.search_form.status,
  287. team_status:this.search_form.team_status,
  288. create_time:time,
  289. };
  290. this. getData(json);
  291. },
  292. searchMember(queryString) {
  293. this.$http.post("{!! yzWebUrl('member.fastSearch')!!}", {keyword: queryString}).then(response => {
  294. let members = response.data.data.map(function (member) {
  295. console.log(member);
  296. member.label = member.mobile + '/' + member.realname + '/' + member.nickname;
  297. return member;
  298. });
  299. this.members = members;
  300. }, response => {
  301. console.log(response);
  302. });
  303. },
  304. currentChange(val) {
  305. let time = [];
  306. if(this.search_form.create_time){
  307. time[0] = this.search_form.create_time[0]/1000;
  308. time[1] = this.search_form.create_time[1]/1000;
  309. }
  310. let json = {
  311. page:val,
  312. fight_groups_id:this.search_form.fight_groups_id,
  313. fight_groups_title:this.search_form.fight_groups_title,
  314. leader_name:this.search_form.leader_name,
  315. order_sn:this.search_form.order_sn,
  316. status:this.search_form.status,
  317. team_status:this.search_form.team_status,
  318. create_time:time,
  319. };
  320. this. getData(json);
  321. },
  322. }
  323. });
  324. </script>
  325. @endsection('js')