vue-list.blade.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491
  1. @extends('layouts.base')
  2. @section('title', '全部会员列表')
  3. @section('content')
  4. <link href="{{static_url('yunshop/css/total.css')}}" media="all" rel="stylesheet" type="text/css" />
  5. <style scoped>
  6. .vue-title {
  7. display: flex;
  8. margin: 5px 0;
  9. line-height: 32px;
  10. font-size: 16px;
  11. color: #333;
  12. font-weight: 600;
  13. }
  14. .vue-title-left {
  15. width: 4px;
  16. height: 18px;
  17. margin-top: 6px;
  18. background: #29ba9c;
  19. display: inline-block;
  20. margin-right: 10px;
  21. }
  22. .vue-title-content {
  23. font-size: 14px;
  24. flex: 1;
  25. }
  26. .inputs {
  27. margin-top: 20px;
  28. padding-left: 15px;
  29. }
  30. .input-w-1 {
  31. width: 300px;
  32. margin-right: 10px;
  33. }
  34. .picker-box {
  35. margin-left: -10px;
  36. }
  37. .spanClass {
  38. font-family: SourceHanSansCN-Regular;
  39. font-size: 14px;
  40. font-weight: normal;
  41. font-stretch: normal;
  42. letter-spacing: 1px;
  43. color: #999999;
  44. margin-left: 10px;
  45. }
  46. .el-table_1_column_8,
  47. .el-table_1_column_9 {
  48. text-align: left !important;
  49. }
  50. .excelUp {
  51. width: 140px;
  52. height: 40px;
  53. border: 1px solid #29ba9c;
  54. color: #29ba9c;
  55. border-radius: 5px;
  56. }
  57. .excelUp .el-link--inner {
  58. color: #29ba9c;
  59. }
  60. .el-dialog {
  61. height: 685px;
  62. }
  63. .el-dialog__body {
  64. height: 540px;
  65. }
  66. .member-merge{
  67. height: 350px;
  68. }
  69. .member-merge .el-dialog__body {
  70. height: 200px;
  71. }
  72. .p-text {
  73. font-family: SourceHanSansCN-Regular;
  74. font-size: 14px;
  75. font-weight: normal;
  76. font-stretch: normal;
  77. letter-spacing: 0px;
  78. color: #333333;
  79. /* border:1px solid red; */
  80. text-align: center;
  81. }
  82. .cell {
  83. text-align: center;
  84. }
  85. .el-table_1_column_1 .cell {
  86. text-align: left;
  87. margin-left: 10px
  88. }
  89. .el-table_1_column_7 .cell {
  90. text-align: left;
  91. }
  92. .el-table_1_column_8 .cell {
  93. text-align: left;
  94. }
  95. .titleE {
  96. cursor: pointer;
  97. user-select: none;
  98. }
  99. .keep {
  100. width: 40px;
  101. height: 22px;
  102. font-family: SourceHanSansCN-Medium;
  103. font-size: 12px;
  104. font-weight: normal;
  105. font-stretch: normal;
  106. letter-spacing: 1px;
  107. color: #ffffff;
  108. font-weight: bold;
  109. background: #ff9800;
  110. text-align: center;
  111. }
  112. .keep_0 {
  113. background: #9c27b0;
  114. margin: 0 auto !important;
  115. }
  116. /* 显示图标 */
  117. .icon_size {
  118. font-size: 30px;
  119. }
  120. /* 已关注 */
  121. .wechat_public_already {
  122. color: #04af82;
  123. }
  124. /* 未关注 */
  125. .wechat_public_not {
  126. color: #999999;
  127. }
  128. /* 微信小程序 */
  129. .smallprogram {
  130. color: #00b84b;
  131. }
  132. /* APP */
  133. .all_app {
  134. color: #0068ff;
  135. }
  136. /* 微信开放平台 */
  137. .all_wechat {
  138. color: #0ad76d;
  139. }
  140. /* 支付宝 */
  141. .all_alipay {
  142. color: #069eff;
  143. }
  144. /* 抖音 */
  145. .all_tril {
  146. color: #23042b;
  147. }
  148. /* 企业微信 */
  149. .qiyeweixin01 {
  150. color: #0082ef;
  151. }
  152. [v-cloak] {
  153. display: none;
  154. }
  155. .input-w {
  156. height: 40px;
  157. margin-right: 19px;
  158. margin-bottom: 20px;
  159. border-radius: 4px;
  160. }
  161. .input_1 {
  162. width: 120px;
  163. }
  164. .input_2 {
  165. width: 300px;
  166. }
  167. .input_3 {
  168. width: 230px;
  169. }
  170. .input_4 {
  171. width: 437px;
  172. height: 42px;
  173. border-radius: 6px;
  174. border: solid 1px #dee2ee;
  175. }
  176. .input_5 {
  177. width: 102px;
  178. height: 40px;
  179. background-color: #29ba9c;
  180. border-radius: 4px;
  181. }
  182. .input_6 {
  183. width: 140px;
  184. height: 40px;
  185. border-radius: 4px;
  186. color: #29ba9c;
  187. border: solid 1px #29ba9c;
  188. }
  189. .input_7 {
  190. width: 125px;
  191. height: 40px;
  192. border-radius: 4px;
  193. border: solid 1px #29ba9c;
  194. }
  195. .tag_all {
  196. height: 22px;
  197. line-height: 22px;
  198. }
  199. .tag_13c7a7 {
  200. background-color: #13c7a7;
  201. margin-bottom: 4px;
  202. }
  203. .tag_ffb025 {
  204. background-color: #ffb025;
  205. }
  206. .tag_box {
  207. text-align: left;
  208. }
  209. .tag_box .el-tag--dark {
  210. font-family: SourceHanSansCN-Medium;
  211. font-size: 12px;
  212. font-weight: normal;
  213. font-stretch: normal;
  214. letter-spacing: 1px;
  215. color: #ffffff;
  216. border: none;
  217. }
  218. .table_p p {
  219. margin: 0;
  220. }
  221. .addTag {
  222. width: 89px;
  223. height: 30px;
  224. border-radius: 4px;
  225. font-family: SourceHanSansCN-Heavy;
  226. font-size: 12px;
  227. font-weight: normal;
  228. color: #29ba9c;
  229. padding: 0px 0px;
  230. border: solid 1px #29ba9c;
  231. margin-right: 20px;
  232. margin-left: -45px;
  233. }
  234. /* 隐藏折叠功能 */
  235. .table_p .el-table__expand-column .cell {
  236. display: none;
  237. }
  238. .tableBox.noborder .expanded td {
  239. border: none;
  240. }
  241. .operation {
  242. width: 70px;
  243. height: 30px;
  244. border-radius: 4px;
  245. margin-bottom: 5px;
  246. border: solid 1px #a2a2a2;
  247. }
  248. .el-table__expanded-cell[class*=cell] {
  249. padding: 12px 50px;
  250. }
  251. .fixed {
  252. margin-left: -10px;
  253. }
  254. /* 链接列表 */
  255. .linkList {
  256. height: 30px;
  257. line-height: 30px;
  258. }
  259. .a_userOrder{
  260. color: #0ab2dc;
  261. }
  262. .a_userOrder:hover{
  263. color: #0b1eee;
  264. cursor: pointer;
  265. }
  266. </style>
  267. <div class="all">
  268. <div id="app" v-cloak>
  269. <div class="total-head">
  270. <div class="vue-title">
  271. <div class="vue-title-left"></div>
  272. <div class="vue-title-content">会员查询</div>
  273. </div>
  274. <!-- 搜索列表 -->
  275. <div class="inputs">
  276. <el-input class="input-w input_1" clearable class="input-w" v-model="search_form.account_number" placeholder="户号"></el-input>
  277. <el-input class="input-w input_1" clearable class="input-w" v-model="search_form.account_name" placeholder="户名"></el-input>
  278. <el-input class="input-w input_1" clearable class="input-w" v-model="search_form.member_id" placeholder="会员ID"></el-input>
  279. <el-input class="input-w input_1" clearable class="input-w" v-model="search_form.member_info" placeholder="会员昵称/姓名/手机号" style="width: 200px"></el-input>
  280. <el-date-picker
  281. v-model="times"
  282. type="datetimerange"
  283. value-format="yyyy-MM-dd HH:mm:ss"
  284. range-separator="至"
  285. start-placeholder="开始日期"
  286. end-placeholder="结束日期"
  287. style="margin-left:5px;"
  288. align="right">
  289. </el-date-picker>
  290. <el-button class="input_5" @click="search" type="primary">搜索</el-button>
  291. </div>
  292. </div>
  293. <div class="total-floo" style="padding-bottom:50px;overflow-x: scroll;">
  294. <div class="main">
  295. <el-table class="table_p tableBox" :data="list" style="width: 100%">
  296. <el-table-column label="ID">
  297. <template slot-scope="scope">
  298. <span>[[scope.row.id]]</span>
  299. </template>
  300. </el-table-column>
  301. <el-table-column label="添加时间">
  302. <template slot-scope="scope">
  303. <span>[[scope.row.created_at]]</span>
  304. </template>
  305. </el-table-column>
  306. <el-table-column label="户名">
  307. <template slot-scope="scope">
  308. <span>[[scope.row.account_name]]</span>
  309. </template>
  310. </el-table-column>
  311. <el-table-column label="户号">
  312. <template slot-scope="scope">
  313. <span>[[scope.row.account_number]]</span>
  314. </template>
  315. </el-table-column>
  316. <el-table-column label="所在区域">
  317. <template slot-scope="scope">
  318. <span>[[scope.row.province]]</span><br>
  319. <span>[[scope.row.city]]</span>
  320. </template>
  321. </el-table-column>
  322. <el-table-column label="会员">
  323. <template slot-scope="scope">
  324. <div>
  325. <el-image style="width: 100px; height: 100px" :src="scope.row.avatar" :fit="cover"></el-image>
  326. </div>
  327. <div>
  328. <span>[[scope.row.nickname]]</span>
  329. </div>
  330. </template>
  331. </el-table-column>
  332. <el-table-column>
  333. <template slot="header" slot-scope="scope">
  334. <div>累计订单充值(单)</div>
  335. <div>累计订单金额(元)</div>
  336. </template>
  337. <template slot-scope="scope">
  338. <span>[[scope.row.orders_total ? scope.row.orders_total : 0]]</span><br>
  339. <span>[[scope.row.orders_price ? scope.row.orders_price : 0]]</span>
  340. </template>
  341. </el-table-column>
  342. <el-table-column label="操作">
  343. <template slot-scope="scope">
  344. <span class="a_userOrder" @click="userOrder(scope.row.id)" >查看充值订单</span>
  345. </template>
  346. </el-table-column>
  347. </el-table>
  348. </div>
  349. <div class="fixed total-floo">
  350. <div class="fixed_box">
  351. <el-pagination layout="prev, pager, next,jumper" background style="text-align:right" :page-size="per_page" :current-page="current_page" :total="total" @current-change="search">
  352. </el-pagination>
  353. </div>
  354. </div>
  355. </div>
  356. </div>
  357. <script>
  358. var vm = new Vue({
  359. el: '#app',
  360. // 防止后端冲突,修改ma语法符号
  361. delimiters: ['[[', ']]'],
  362. data() {
  363. return {
  364. list_url:'{!! $list_url !!}',
  365. account_order_url:'{!! $account_order_url !!}',
  366. search_form:{},
  367. list:[],
  368. current_page:1,
  369. total:1,
  370. per_page:1,
  371. times:[],
  372. }
  373. },
  374. //定义全局的方法
  375. beforeCreate() {
  376. },
  377. created() {
  378. },
  379. mounted() {
  380. this.getData(1);
  381. },
  382. watch: {
  383. },
  384. filters: {
  385. },
  386. computed: {
  387. },
  388. methods: {
  389. getData(page){
  390. let requestData = {
  391. page:page,
  392. code: this.code,
  393. search: JSON.parse(JSON.stringify(this.search_form)),
  394. };
  395. if(this.times && this.times.length>0) {
  396. requestData.search.start_time = this.times[0];
  397. requestData.search.end_time = this.times[1];
  398. }
  399. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  400. this.$http.post(this.list_url,requestData).then(function(response) {
  401. if (response.data.result) {
  402. this.list = response.data.data.list.data;
  403. this.current_page = response.data.data.list.current_page;
  404. this.total = response.data.data.list.total;
  405. this.per_page = response.data.data.list.per_page;
  406. loading.close();
  407. } else {
  408. this.$message({
  409. message: response.data.msg,
  410. type: 'error'
  411. });
  412. }
  413. loading.close();
  414. }, function(response) {
  415. this.$message({
  416. message: response.data.msg,
  417. type: 'error'
  418. });
  419. loading.close();
  420. });
  421. },
  422. search(page){
  423. this.getData(page);
  424. },
  425. userOrder(account_id){
  426. window.location.href = this.account_order_url + '&account_id=' + account_id;
  427. }
  428. }
  429. })
  430. </script>
  431. @endsection