activity.blade.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  1. @extends('layouts.base')
  2. @section('content')
  3. @section('title', trans('会务列表'))
  4. <link rel="stylesheet" type="text/css" href="{{static_url('css/font-awesome.min.css')}}">
  5. <link rel="stylesheet" type="text/css" href="{{static_url('yunshop/goods/goods.css')}}"/>
  6. <style>
  7. .dig-title{
  8. display: flex;
  9. }
  10. .el-dialog__header{
  11. padding: 25px 0 !important;
  12. margin: 0 25px !important;
  13. border-bottom: 1px solid #ccc !important;
  14. }
  15. .isChecked {
  16. width: 110px;
  17. height: 40px;
  18. background-color: #29BA9C;
  19. text-align: center;
  20. line-height: 40px;
  21. color: #fff;
  22. border-radius:5px;
  23. cursor: pointer;
  24. }
  25. .noCheck {
  26. width: 110px;
  27. height: 40px;
  28. text-align: center;
  29. line-height: 40px;
  30. cursor: pointer;
  31. }
  32. .QRCode {
  33. display: flex;
  34. justify-content: center;
  35. }
  36. .QRCode .code-title {
  37. color: #888;
  38. text-align: center;
  39. cursor: pointer;
  40. text-decoration: none;
  41. }
  42. .QRCode-item {
  43. text-align: center;
  44. }
  45. .codeImg {
  46. width: 100px;
  47. height: 100px;
  48. margin: 20px;
  49. }
  50. .codeImg img {
  51. width: 100%;
  52. height: 100%;
  53. }
  54. .input-item {
  55. display: flex;
  56. align-items: center;
  57. margin: 30px 0 10px 0;
  58. }
  59. .input-item .item-title {
  60. margin-right: 20px;
  61. flex:2;
  62. text-align: right;
  63. }
  64. .input-item .item-input {
  65. flex:5;
  66. }
  67. .input-item .copy {
  68. width: 50px;
  69. height: 40px;
  70. line-height: 40px;
  71. text-align: center;
  72. margin-right: 160px;
  73. /* flex:3; */
  74. border: 1px solid #ccc;
  75. border-radius:5px;
  76. cursor: pointer;
  77. }
  78. </style>
  79. <div class="right-titpos">
  80. <ul class="add-snav">
  81. {{--<li class="active"><a href="#">会务列表</a></li>--}}
  82. <a class='btn btn-primary' href="{{yzWebUrl('plugin.conference.admin.conference.add-activity')}}"
  83. style="margin-bottom:5px;"><i class='fa fa-plus'></i> 创建新会务</a>
  84. </ul>
  85. </div>
  86. <div class='panel panel-default'>
  87. <form action="" method="post" class="form-horizontal" id="form1">
  88. <div class="panel panel-info">
  89. <div class="panel-body">
  90. <div class="form-group col-xs-12 col-sm-4">
  91. <input class="form-control" name="search[id]" type="text"
  92. value="{{$search['id']}}" placeholder="活动ID">
  93. </div>
  94. <div class="form-group col-xs-12 col-sm-4">
  95. <input class="form-control" name="search[title]" type="text"
  96. value="{{$search['title']}}" placeholder="请输入活动名称进行搜索">
  97. </div>
  98. <div class="form-group col-xs-12 col-sm-6">
  99. <div class="col-sm-4">
  100. <label class='radio-inline'>
  101. <input type='radio' value='0' name='search[is_time]'
  102. @if($search['is_time'] == '0') checked @endif>不按时间
  103. </label>
  104. <label class='radio-inline'>
  105. <input type='radio' value='1' name='search[is_time]'
  106. @if($search['is_time'] == '1') checked @endif>创建时间
  107. </label>
  108. </div>
  109. {!! app\common\helpers\DateRange::tplFormFieldDateRange('search[time]', ['starttime'=>$search['time']['start'],
  110. 'endtime'=>$search['time']['end'],
  111. 'start'=>$search['time']['start'],
  112. 'end'=>$search['time']['end']
  113. ], true) !!}
  114. </div>
  115. <div class="form-group col-xs-12 col-sm-2">
  116. <input type="button" class="btn btn-success" id="export" style="width:80px" value="导出">
  117. <input type="button" class="btn btn-success pull-right" style="width:80px" id="search" value="搜索">
  118. </div>
  119. </div>
  120. </div>
  121. </form>
  122. </div>
  123. <div class='panel panel-default'>
  124. <div class="panel-heading">活动列表:{{$total}}个</div>
  125. <div class='panel-body'>
  126. <table class="table table-hover" style="overflow:visible;">
  127. <thead>
  128. <tr>
  129. <th style='width:10%;'>ID</th>
  130. <th style='width:20%;'>活动名称</th>
  131. <th style='width:20%;'>已签到/未签到/总报名人数</th>
  132. <th>操作</th>
  133. </tr>
  134. </thead>
  135. <tbody>
  136. @foreach($list['data'] as $row)
  137. <tr>
  138. <td>{{$row['id']}}</td>
  139. <td>{{$row['title']}}</td>
  140. <td click="getQr1()">{{$row['sign']}}/{{$row['no_sign']}}/{{$row['total']}}(人)</td>
  141. <td style="position: relative;overflow: visible;">
  142. {{--<a class="btn btn-sm btn-default umphp" title="活动二维码"--}}
  143. {{--data-url="{{yzAppFullUrl('cashier_pay/')}}"--}}
  144. {{--data-goodsid="{{$row->id}}">--}}
  145. {{--<div class="img">--}}
  146. {{--{!! QrCode::size(120)->generate(yzAppFullUrl('goods/'.$row['id'])) !!}--}}
  147. {{--</div>--}}
  148. {{--<i class="fa fa-qrcode"></i>--}}
  149. {{--</a>--}}
  150. <a class="btn btn-sm btn-default umphp" onclick="openDig('{{$row['id']}}')" title="活动二维码"
  151. data-url="{{yzAppFullUrl('cashier_pay/' . $row['id'])}}"
  152. data-goodsid="{{$row['id']}}">
  153. <!-- <div class="img">
  154. <img style="width: 120px;high:120px;" src="{{$row['download_url']}}">
  155. </div> -->
  156. <i class="fa fa-qrcode"></i>
  157. </a>
  158. @if($row['download_url1'] != '')
  159. {{-- 新增小程序码--}}
  160. <!-- <a class="btn btn-sm btn-default umphp" title="活动小程序码"
  161. data-goodsid="{{$row['id']}}" style="z-index: 999">
  162. <div class="img">
  163. <img style="width: 120px;high:120px;" src="{{$row['download_url1']}}">
  164. </div>
  165. <i class="iconfont icon-ht_smallprogramcode"></i>
  166. </a> -->
  167. @endif
  168. <!-- <a download="{{$row['download_url']}}" href="{{$row['download_url']}}" title="下载二维码"
  169. class="btn btn-default btn-sm js-clip">下载二维码</a> -->
  170. {{-- 新增下载小程序码--}}
  171. @if($row['download_url1'] != '')
  172. <!-- <a download="{{$row['download_url1']}}" href="{{$row['download_url1']}}" title="下载太阳码"
  173. class="btn btn-default btn-sm js-clip">下载小程序码</a> -->
  174. @endif
  175. <a href="{{yzUrl('plugin.conference.admin.conference-enrol.enrol-data',['id'=>$row['id']])}}"
  176. class="btn btn-sm btn-default" title="会务报名数据" style="font-size: 13px;"><i
  177. class="fa fa-article"></i></a>
  178. <a href="{{yzUrl('plugin.conference.admin.conference.edit-activity',['id'=>$row['id']])}}"
  179. class="btn btn-sm btn-default" title="编辑"><i class="fa fa-edit"></i></a>
  180. <a href="{{yzUrl('plugin.conference.admin.conference.del-activity',['id'=>$row['id']])}}"
  181. onclick="return confirm('是否确认删除?');
  182. return false;" class="btn btn-default btn-sm" title="删除"><i
  183. class="fa fa-trash"></i></a>
  184. </td>
  185. </tr>
  186. @endforeach
  187. </tbody>
  188. </table>
  189. {!! $pager !!}
  190. </div>
  191. </div>
  192. <div style="width:100%;height:150px;"></div>
  193. <div id="diglog">
  194. <el-dialog
  195. :visible.sync="dialogVisible"
  196. width="40%"
  197. @close="handleClose">
  198. <div slot="title" class="dig-title">
  199. <div :class="[showAct ? 'isChecked' : 'noCheck']" @click="handleChange(1)">活动二维码</div>
  200. <div :class="[showSign ? 'isChecked' : 'noCheck']" @click="handleChange(2)">签到二维码</div>
  201. </div>
  202. <div class="actCode" v-show="showAct">
  203. <div class="QRCode" >
  204. <div class="QRCode-item">
  205. <div class="codeImg">
  206. <img :src="activity_url" alt="">
  207. </div>
  208. <a class="code-title" :href="activity_url" :download='activity_url'>下载二维码图片</a>
  209. </div>
  210. <div class="QRCode-item" v-if="actMiniCode">
  211. <div class="codeImg">
  212. <img :src="activity_url1" alt="">
  213. </div>
  214. <!-- <div class="code-title">下载小程序码图片</div> -->
  215. <a class="code-title" :href="activity_url1" :download='activity_url1'>下载小程序码图片</a>
  216. </div>
  217. </div>
  218. <div class="input-item" >
  219. <div class="item-title">H5页面链接</div>
  220. <div class="item-input">
  221. <el-col :span="22">
  222. <el-input
  223. placeholder="请输入链接"
  224. v-model="copy_activity_url"
  225. >
  226. </el-input>
  227. </el-col>
  228. </div>
  229. <div class="copy" @click="handleCopy(copy_activity_url)">复制</div>
  230. </div>
  231. <div class="input-item" >
  232. <div class="item-title">小程序页面链接</div>
  233. <div class="item-input">
  234. <el-col :span="22">
  235. <el-input
  236. placeholder="请输入链接"
  237. v-model="copy_activity_url1"
  238. >
  239. </el-input>
  240. </el-col>
  241. </div>
  242. <div class="copy" @click="handleCopy(copy_activity_url1)">复制</div>
  243. </div>
  244. </div>
  245. <div class="signCode" v-show="showSign">
  246. <div class="QRCode" >
  247. <div class="QRCode-item">
  248. <div class="codeImg">
  249. <img :src="download_url" alt="">
  250. </div>
  251. <a class="code-title" :href="download_url" :download='download_url'>下载二维码图片</a>
  252. </div>
  253. <div class="QRCode-item" v-if="downMiniCode">
  254. <div class="codeImg">
  255. <img :src="download_url1" alt="">
  256. </div>
  257. <a class="code-title" :href="download_url1" :download='download_url1'>下载小程序码图片</a>
  258. </div>
  259. </div>
  260. <div class="input-item" >
  261. <div class="item-title">H5页面链接</div>
  262. <div class="item-input">
  263. <el-col :span="22">
  264. <el-input
  265. placeholder="请输入链接"
  266. v-model="copy_download_url"
  267. >
  268. </el-input>
  269. </el-col>
  270. </div>
  271. <div class="copy" @click="handleCopy(copy_download_url)">复制</div>
  272. </div>
  273. <div class="input-item" >
  274. <div class="item-title">小程序页面链接</div>
  275. <div class="item-input">
  276. <el-col :span="22">
  277. <el-input
  278. placeholder="请输入链接"
  279. v-model="copy_download_url1"
  280. >
  281. </el-input>
  282. </el-col>
  283. </div>
  284. <div class="copy" @click="handleCopy(copy_download_url1)">复制</div>
  285. </div>
  286. </div>
  287. </el-dialog>
  288. </div>
  289. <script language='javascript'>
  290. //鼠标划过显示商品链接二维码
  291. $('.umphp').hover(function () {
  292. var url = $(this).attr('data-url');
  293. $(this).addClass("selected");
  294. },
  295. function () {
  296. $(this).removeClass("selected");
  297. });
  298. $(function () {
  299. $('#export').click(function () {
  300. $('#form1').attr('action', '{!! yzWebUrl('plugin.conference.admin.conference.export') !!}');
  301. $('#form1').submit();
  302. });
  303. $('#search').click(function () {
  304. $('#form1').attr('action', '{!! yzWebUrl('plugin.conference.admin.conference.manage') !!}');
  305. $('#form1').submit();
  306. });
  307. });
  308. var vm = new Vue({
  309. el:"#diglog",
  310. delimiters: ['[[', ']]'],
  311. data() {
  312. return {
  313. dialogVisible: false,
  314. showAct:true,//显示活动二维码
  315. showSign:false,//显示签到二维码
  316. actMiniCode:true,
  317. downMiniCode:true,
  318. activity_url:'',//活动二维码
  319. activity_url1:'',//活动小程序二维码
  320. download_url:'',//签到二维码
  321. download_url1:'',//签到小程序二维码
  322. copy_activity_url:'',//活动H5链接
  323. copy_activity_url1:'',//活动小程序链接
  324. copy_download_url:'',//签到H5链接
  325. copy_download_url1:'',//活动小程序链接
  326. }
  327. },
  328. methods: {
  329. handleClose() {
  330. this.dialogVisible = false;
  331. },
  332. handleChange(item){
  333. if(item == 1){
  334. this.showAct = true;
  335. this.showSign = false;
  336. }
  337. if(item == 2){
  338. this.showAct = false;
  339. this.showSign = true;
  340. }
  341. },
  342. handleCopy(data){
  343. if(data == ''){
  344. this.$message({
  345. message: '暂无连接',
  346. type: 'error'
  347. });
  348. return
  349. }
  350. //创建一个input元素
  351. let input = document.createElement('input')
  352. //给input的内容复制
  353. input.value = data
  354. // 在body里面插入这个元素
  355. document.body.appendChild(input)
  356. // 选中input里面内容
  357. input.select()
  358. //执行document里面的复制方法
  359. document.execCommand("Copy")
  360. // 复制之后移除这个元素
  361. document.body.removeChild(input);
  362. this.$message({
  363. message: '复制成功',
  364. type: 'success'
  365. });
  366. },
  367. async getCodes(id){
  368. console.log(id);
  369. let res = (await this.$http.post("{!! yzWebFullUrl('plugin.conference.admin.conference.get-codes') !!}", {id:id})).body
  370. this.activity_url = res.data.activity_url;
  371. this.download_url = res.data.download_url;
  372. if(res.data.activity_url1 == ""){
  373. this.actMiniCode = false;
  374. }else{
  375. this.activity_url1 = res.data.activity_url1
  376. this.actMiniCode = true;
  377. }
  378. if(res.data.download_url1 == ""){
  379. this.downMiniCode = false;
  380. }else{
  381. this.download_url1 = res.data.download_url1;
  382. this.downMiniCode = true;
  383. }
  384. this.copy_activity_url = res.data.copy_activity_url;
  385. this.copy_activity_url1 = res.data.copy_activity_url1;
  386. this.copy_download_url = res.data.copy_download_url;
  387. this.copy_download_url1 = res.data.copy_download_url1
  388. }
  389. }
  390. })
  391. function openDig(id){
  392. vm.dialogVisible = true;
  393. vm.getCodes(id)
  394. }
  395. // function openDig(actQrCodeImg,actMiniCodeImg,signQrCodeImg,signMiniCodeImg,actH5Url,actMiniUrl,signH5Url,signMiniUrl) {
  396. // vm.dialogVisible = true;
  397. // //二维码
  398. // //H5二维码
  399. // vm.activity_url = actQrCodeImg;
  400. // vm.download_url = signQrCodeImg;
  401. // //小程序二维码
  402. // if(actMiniCodeImg == ''){
  403. // vm.actMiniCode = false;
  404. // }else{
  405. // vm.activity_url1 = actMiniCodeImg
  406. // vm.actMiniCode = true;
  407. // }
  408. // if(signMiniCodeImg == ''){
  409. // vm.downMiniCode = false;
  410. // }else{
  411. // vm.download_url1 = signMiniCodeImg;
  412. // vm.downMiniCode = true;
  413. // }
  414. // //链接
  415. // //H5链接
  416. // vm.copy_activity_url = actH5Url;
  417. // vm.copy_activity_url1 = actMiniUrl
  418. // vm.copy_download_url = signH5Url;
  419. // vm.copy_download_url1 = signMiniUrl
  420. // }
  421. </script>
  422. @endsection