add-sylive-act_pay

This commit is contained in:
lccsw
2022-10-20 19:54:15 +08:00
parent 4e735c6533
commit 7d455b045c
21 changed files with 338 additions and 93 deletions
+3
View File
@@ -28,6 +28,9 @@ if ( ! function_exists('create_order_no'))
case 'licheb':
$source_id = sprintf("%02d", 2);
break;
case 'market':
$source_id = sprintf("%02d", 51);
break;
default:
$source_id = sprintf("%02d", 0);
}
@@ -0,0 +1,17 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Created on: 2022/09/22 14:52
* Created by: lcc
*/
class Market_sylive_activity_orders_model extends HD_Model
{
private $table_name = 'lc_market_sylive_activity_orders';
public function __construct()
{
parent::__construct($this->table_name, 'default');
}
}
+2 -43
View File
@@ -305,7 +305,7 @@ class Act extends Wx {
if(!$unpay){
$this->load->helper('order');
$unpay = [
'sid' => create_order_no(),
'sid' => create_order_no('350200','market'),
'uid' => $this->uid,
'item_id' => $a_id,
'item_title' => $item['title'],
@@ -322,7 +322,7 @@ class Act extends Wx {
}
$user = $this->user_model->get(['userId'=>$this->uid]);
$notify_url = http_host_com('home').'/h5/market/sylive/notify';
$result = $this->pay($unpay['sid'],$unpay['total_price'],$user['openid'],$unpay['item_title'],$notify_url,$unpay['expire_time']);
$result = $this->unorder($unpay['sid'],$unpay['total_price'],$user['openid'],$unpay['item_title'],$notify_url,$unpay['expire_time']);
if(!$result['code']){
$this->show_json('',400,$result['msg']);
}
@@ -402,47 +402,6 @@ class Act extends Wx {
$this->show_view('h5/market/sylive/act/ucenter');
}
/**
* 支付
* @param $trade_no
* @param $price
* @param $openid
* @param $body
* @param $notify_url 异步通知
* @param $expire_time 过期时间
* @param $attach
* @return bool|json数据,可直接填入js函数作为参数|mixed
* @throws WxPayException
*/
private function pay($trade_no,$price,$openid,$body,$notify_url,$expire_time,$attach=''){
if(!$body){return false;}
require_once APPPATH."../api/third_party/WXconfig/hdy_WxPay.Config.php";
require_once APPPATH."../api/third_party/WXpay/WxPay.Api.php";
$config = new WxPayConfig();
$wxpay = new WxPayUnifiedOrder();
$wxpay->SetVersion('1.0');
$wxpay->SetBody($body); //简单描述
$attach && $wxpay->SetAttach($attach); //附加信息
$wxpay->SetNotify_url($notify_url);
$wxpay->SetOut_trade_no($trade_no); //订单号
$wxpay->SetTotal_fee($price * 100); //支付价格
$wxpay->SetTime_start(date("YmdHis")); //交易起始时间
$wxpay->SetTime_expire(date('YmdHis',$expire_time)); //交易结束时间
$wxpay->SetTrade_type("JSAPI"); //设置交易类型
$wxpay->SetOpenid($openid); //openid
$return = WxPayApi::unifiedOrder($config, $wxpay); //统一支付
if($return['result_code'] == 'SUCCESS') {
$wxpay_api = new WxPayJsApiPay();
$jsApiParameters = WxPayApi::GetJsApiParameters($return, $config, $wxpay_api);
$jsApiParameters = json_decode($jsApiParameters, true);
return ['code'=>1,'data'=>$jsApiParameters,'msg'=>'下单成功'];
}else{
$msg = $return['return_msg'] ? $return['return_msg'].$return['err_code_des'] : $return['return_msg'];
return ['code'=>0,'data'=>[],'msg'=>$msg];
}
}
//获取微信用户信息
public function userinfo(){
$ret = $this->set_auth('',1);
+128 -3
View File
@@ -12,6 +12,7 @@ class Biz extends Admin {
$this->load->model('market/market_sylive_organization_model');
$this->load->model('market/market_sylive_activity_model');
$this->load->model('market/market_sylive_activity_kpidata_model','mdSytActivityKpiData');
$this->load->model('market/market_sylive_activity_orders_model','mdSytActivityOrders');
$this->load->library('market/sylive_entity');
$this->load->library('MyEncryption');
$this->group_id = $this->sylive_entity->get_level($this->session['org_id']);
@@ -255,8 +256,9 @@ class Biz extends Admin {
$total = $this->market_sylive_activity_model->count($where);
$lists = [];
if($total){
$rows = $this->market_sylive_activity_model->select($where,'timeStart desc',$page,$size,'activityId,title,timeStart,timeEnd');
$rows = $this->market_sylive_activity_model->select($where,'timeStart desc',$page,$size,'activityId,title,timeStart,timeEnd,jsondata');
foreach ($rows as $val) {
$jsondata = json_decode($val['jsondata'],true);
$s_time = strtotime($val['timeStart']);
$e_time = strtotime($val['timeEnd']);
$n_time = time();
@@ -267,13 +269,47 @@ class Biz extends Admin {
}else{
$state = ['title'=>'活动已结束','class'=>'bg-fccba0'];
}
//判断是否支付
$pay = $jsondata['pay'] ? $jsondata['pay'] : [];
$way = $pay['way'] ? intval($pay['way']) : 1; //1厂商支付 2 经销商支付
$skey = $this->myencryption->base64url_encode("a_id=" . $val['activityId']);
$pay_status = 1;
$url = '/h5/market/sylive/act?skey='.$skey;
$stat_url = '/h5/market/sylive/stic?skey='.$skey;
$text_cn = '';
if($way==2 && in_array($this->group_id,[2,3])){
$where = [
'activityId' => $val['activityId'],
'status' => 1
];
if($this->group_id==3){ //顾问
$biz_row = $this->market_sylive_organization_model->get(['organizationId'=>$this->session['org_id']],'parentId');
$biz_id = $biz_row['parentId'];
}else{
$biz_id = $this->session['org_id'];
}
$where['bizId'] = $biz_id;
$pay_row = $this->mdSytActivityOrders->count($where);
if(!$pay_row){
$pay_status = 0;
if($this->group_id==3){
$url = $stat_url = '';
$text_cn = '请联系店长';
}else{
$url = $stat_url = '/h5/market/sylive/biz/pay?skey='.$skey;
$text_cn = '开通';
}
}
}
$temp = [
'title' => $val['title'],
'time' => date('Y-m-d H:i',$s_time).'~'.date('Y-m-d H:i',$e_time),
'url' => '/h5/market/sylive/act?skey='.$skey,
'stat_url' => '/h5/market/sylive/stic?skey='.$skey,
'url' => $url,
'stat_url' => $stat_url,
'state' => $state,
'pay_status' => $pay_status,
'text_cn' => $text_cn
];
$lists[] = $temp;
}
@@ -283,5 +319,94 @@ class Biz extends Admin {
$this->show_json($data,200);
}
//活动支付页面
public function pay(){
$skey = $this->input->get('skey');
$param = $this->myencryption->base64url_decode($skey);
$a_id = intval($param['a_id']);//活动id
$row = $this->market_sylive_activity_model->get(['activityId'=>$a_id]);
if(!$row){
throw new Hd_exception('参数错误',400);
}
if($this->group_id!=2){
throw new Hd_exception('权限不足',400);
}
$jsondata = json_decode($row['jsondata'],true);
//判断是否支付
$pay = $jsondata['pay'] ? $jsondata['pay'] : [];
$way = $pay['way'] ? intval($pay['way']) : 1; //1厂商支付 2 经销商支付
$img = $pay['img'] ? $pay['img'] : $row['bgImg'];
$btntx = '已支付';
$pay_status = 1;
$where = [
'activityId' => $a_id,
'bizId' => $this->session['org_id'],
'status' => 1,
];
$pay_row = $this->mdSytActivityOrders->count($where);
if($way==2 && !$pay_row){
$pay_status = 0;
$btntx = "{$pay['price']}元立即支付";
}
$info = [
'status' => $pay_status,
'img' => build_qiniu_image_url($img),
'btntx' => $btntx,
'skey' => $skey,
];
$this->data['info'] = $info;
$wx_info = $this->share_info();
$this->data['sign_package'] = $wx_info['sign_package'];
$this->show_view('h5/market/sylive/biz/pay');
}
//创建支付订单
public function c_order(){
if($this->group_id!=2){
$this->show_json('',400,'权限不足');
}
$skey = $this->input->post('skey');
$param = $this->myencryption->base64url_decode($skey);
$a_id = intval($param['a_id']);//活动id
$row = $this->market_sylive_activity_model->get(['activityId'=>$a_id]);
if(!$row){
$this->show_json('',400,'参数错误');
}
$jsondata = json_decode($row['jsondata'],true);
$pay = $jsondata['pay'] ? $jsondata['pay'] : [];
//判断是否已支付
$pay_row = $this->mdSytActivityOrders->count(['activityId'=>$a_id,'status'=>1,'bizId'=>$this->session['org_id']]);
if($pay_row){
$this->show_json('',400,'已支付,请勿重复支付');
}
$pay_price = $pay['price'];
if($pay_price<=0){
$this->show_json('',400,'无需支付');
}
$unpay = $this->mdSytActivityOrders->get(['activityId'=>$a_id,'status'=>0,'bizId'=>$this->session['org_id'],'expireTime>'=>time()]);
if(!$unpay){
$this->load->helper('order');
$unpay = [
'sid' => create_order_no('350200','market'),
'activityId' => $a_id,
'userId' => $this->uid,
'areaId' => $a_id,
'bizId' => $this->session['org_id'],
'totalPrice' => $pay_price,
'expireTime' => time()+24*60*60,//订单过期时间
'createTime' => date('Y-m-d H:i:s')
];
$oid = $this->mdSytActivityOrders->add($unpay);
if(!is_numeric($oid)){
$this->show_json('',400,'创建订单失败');
}
}
$user = $this->user_model->get(['userId'=>$this->uid]);
$notify_url = http_host_com('home').'/h5/market/sylive/notify/biz';
$result = $this->unorder($unpay['sid'],$unpay['totalPrice'],$user['openid'],$row['title'],$notify_url,$unpay['expireTime']);
if(!$result['code']){
$this->show_json('',400,$result['msg']);
}
$this->show_json($result['data'],200,'操作成功');
}
}
+41 -1
View File
@@ -95,7 +95,7 @@ abstract class Common extends CI_Controller{
}
}
//微信分享信息
public function share_info($act_row=[]){
protected function share_info($act_row=[]){
$a_id = $act_row['activityId'];
$share_skey = "a_id=" . $a_id . "&cf_uid=" . $this->uid . "&cf_share=" . $this->myencryption->random_string(6);
$this->load->library('Jssdk');
@@ -115,6 +115,46 @@ abstract class Common extends CI_Controller{
}
return ['sign_package' => $sign_package ,'share' => $share];
}
/**
* 支付
* @param $trade_no
* @param $price
* @param $openid
* @param $body
* @param $notify_url 异步通知
* @param $expire_time 过期时间
* @param $attach
* @return bool|json数据,可直接填入js函数作为参数|mixed
* @throws WxPayException
*/
protected function unorder($trade_no,$price,$openid,$body,$notify_url,$expire_time,$attach=''){
if(!$body){return false;}
require_once APPPATH."../api/third_party/WXconfig/hdy_WxPay.Config.php";
require_once APPPATH."../api/third_party/WXpay/WxPay.Api.php";
$config = new WxPayConfig();
$wxpay = new WxPayUnifiedOrder();
$wxpay->SetVersion('1.0');
$wxpay->SetBody($body); //简单描述
$attach && $wxpay->SetAttach($attach); //附加信息
$wxpay->SetNotify_url($notify_url);
$wxpay->SetOut_trade_no($trade_no); //订单号
$wxpay->SetTotal_fee($price * 100); //支付价格
$wxpay->SetTime_start(date("YmdHis")); //交易起始时间
$wxpay->SetTime_expire(date('YmdHis',$expire_time)); //交易结束时间
$wxpay->SetTrade_type("JSAPI"); //设置交易类型
$wxpay->SetOpenid($openid); //openid
$return = WxPayApi::unifiedOrder($config, $wxpay); //统一支付
if($return['result_code'] == 'SUCCESS') {
$wxpay_api = new WxPayJsApiPay();
$jsApiParameters = WxPayApi::GetJsApiParameters($return, $config, $wxpay_api);
$jsApiParameters = json_decode($jsApiParameters, true);
return ['code'=>1,'data'=>$jsApiParameters,'msg'=>'下单成功'];
}else{
$msg = $return['return_msg'] ? $return['return_msg'].$return['err_code_des'] : $return['return_msg'];
return ['code'=>0,'data'=>[],'msg'=>$msg];
}
}
}
class Admin extends Common{
+48 -11
View File
@@ -13,18 +13,21 @@ class Notify extends CI_Controller {
parent::__construct();
$this->load->model('market/market_sylive_activity_user_model', 'act_user_model');
$this->load->model('market/market_sylive_order_model','order_model');
$this->load->model('market/market_sylive_activity_model');
$this->load->model('market/market_sylive_activity_orders_model','mdSytActivityOrders');
$this->load->library('market/sylive_entity');
try{
//如果返回成功则验证签名
$config = new WxPayConfig();
$input = file_get_contents("php://input");
$result = WxPayNotifyResults::Init($config, $input);
$this->notify = $result->GetValues();
debug_log("[info] ". __FUNCTION__ . "# notify:" . json_encode($this->notify,JSON_UNESCAPED_UNICODE), $this->log_file,$this->log_dir);
}catch (WxPayException $e){
debug_log("[error] ". __FUNCTION__ . ":".$e->getMessage(), $this->log_file,$this->log_dir);
exit();
}
// try{
// //如果返回成功则验证签名
// $config = new WxPayConfig();
// $input = file_get_contents("php://input");
// $result = WxPayNotifyResults::Init($config, $input);
// $this->notify = $result->GetValues();
// debug_log("[info] ". __FUNCTION__ . "# notify:" . json_encode($this->notify,JSON_UNESCAPED_UNICODE), $this->log_file,$this->log_dir);
// }catch (WxPayException $e){
// debug_log("[error] ". __FUNCTION__ . ":".$e->getMessage(), $this->log_file,$this->log_dir);
// exit();
// }
$this->notify = $this->input->get();
}
//微信支付异步通知
@@ -64,4 +67,38 @@ class Notify extends CI_Controller {
echo '<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>';
}
//活动支付回调
public function biz(){
try{
$sid = $this->notify['out_trade_no'];
if($sid){
debug_log("[start] ". __FUNCTION__ . ": out_trade_no:".$this->notify['out_trade_no'], $this->log_file,$this->log_dir);
$order = $this->mdSytActivityOrders->get(array('sid'=>$sid));
if(!$order){
throw new Exception("{$sid}_订单不存在");
}
if($order['status']){
throw new Exception("{$sid}_订单已支付");
}
if($this->notify['result_code'] != 'SUCCESS'){ //支付失败
throw new Exception("支付失败,sid={$sid}");
}else{ //支付成功
$res = $this->mdSytActivityOrders->update(['status'=>1,'payTime'=>date('Y-m-d H:i:s')],['id'=>$order['id']]);
if($res){
debug_log("[success] ". __FUNCTION__ . ":操作成功", $this->log_file,$this->log_dir);
}
}
}
}catch (Exception $e){
$msg = $e->getMessage();
debug_log("[error] ". __FUNCTION__ . ":{$msg}", $this->log_file,$this->log_dir);
}
if($sid){
debug_log("[finish] ". __FUNCTION__ . ": out_trade_no-".$this->notify['out_trade_no'], $this->log_file,$this->log_dir);
}else{
debug_log("[finish] ". __FUNCTION__ . ": 参数错误-".json_encode($this->notify,JSON_UNESCAPED_UNICODE), $this->log_file,$this->log_dir);
}
echo '<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>';
}
}
+1 -2
View File
@@ -1,8 +1,7 @@
<script type="text/javascript" src="https://qs.haodian.cn/web/javascript/md5.min.js"></script>
<script type="text/javascript" src="//player.polyv.net/livesdk/polyv-live.min.js"></script>
<body class="bg-fff">
<div class="height-500 fixed left-0 right-0 top-0 z-index-0 bg-1a1a1a"></div>
<div id="app" class="bg-fff">
<div id="app" ref="app">
<div class="container relative bg-no-repeat bg-size-fullwidth bg-pos-top pb150" :style="'background-image:url('+info.bg+')'">
<div class="absolute top-0 right-0 mt15 mr10 ulib-r750 fn-flex overflowhidden line-height-20 space-nowrap">
<a class="fn-flex-item bg-000-op50 pl20 pr20 font-22 color-fff" v-if="info.shareurl" :href="info.shareurl">
+1 -2
View File
@@ -1,6 +1,5 @@
<body class="bg-f6">
<div class="height-500 fixed left-0 right-0 top-0 z-index-0 bg-1a1a1a"></div>
<div id="app" class="bg-f6">
<div id="app" ref="app">
<div class="container relative pb130">
<!--轮播-->
<div class="goods-banner relative imgsize-750X680 z-index-0" v-if='info.banner.length>1'>
+1 -2
View File
@@ -1,7 +1,6 @@
<script type="text/javascript" src="https://qs.haodian.cn/web/javascript/clipboard.min.js"></script>
<body>
<div class="height-500 fixed left-0 right-0 top-0 z-index-0 bg-1a1a1a"></div>
<div id="app" class="bg-fff">
<div id="app" ref="app">
<div class="poster">
<div class="detail-banner relative p-swiper">
<div class="swiper-container left-0 top-0">
+1 -2
View File
@@ -1,6 +1,5 @@
<body class="bg-f6">
<div class="height-500 fixed left-0 right-0 top-0 z-index-0 bg-1a1a1a"></div>
<div id="app" class="bg-f6">
<div id="app" ref="app">
<div class="container relative bg-no-repeat bg-size-fullwidth bg-pos-top pb40" :style="'background-image:url('+info.bg+')'">
<div class="relative height-710">
<div class="pt90 pl100 pr100 fn-clear">
+2 -3
View File
@@ -1,6 +1,5 @@
<body class="bg-f6">
<div class="height-500 fixed left-0 right-0 top-0 z-index-0 bg-1a1a1a"></div>
<div id="app" class="bg-f6">
<div id="app" ref="app">
<div class="container relative bg-no-repeat bg-size-fullwidth bg-pos-top" style="background-image:url(https://qs.haodian.cn/web/images/project/H5-ShiYu/theme-bg.png?v=221008)">
<div class="pt30 pb30">
<div class="pl30 pr30">
@@ -66,7 +65,7 @@
</div>
<!--end活动列表-->
</div>
<mugen-scroll :handler="fetchData" :should-handle="!loading">
<mugen-scroll :handler="fetchData" :should-handle="!loading" scroll-container="app">
<div class="pt100 pb100 text-center color-ccc" v-if="isNoData"></i><span class="text-middle font-22">暂无数据</span></div>
<div class="pt20 pb20 text-center color-ccc" v-else-if="loading"><i class="iconfont icon-jiazai text-middle"></i><span class="text-middle font-22">请稍等...</span></div>
<div class="pt20 pb20 text-center font-22 color-ccc" v-else-if="isDataEnd && list.length>10">我们是有底线的</div>
+5 -5
View File
@@ -1,6 +1,5 @@
<body class="bg-f6">
<div class="height-500 fixed left-0 right-0 top-0 z-index-0 bg-1a1a1a"></div>
<div id="app" class="bg-f6">
<div id="app" ref="app">
<div class="container relative bg-no-repeat bg-size-fullwidth bg-pos-top pb50" style="background-image:url(https://qs.haodian.cn/web/images/project/H5-ShiYu/theme-bg.png?v=221008)">
<div class="pt30 pb60">
<div class="relative pl30 pr30 fn-clear">
@@ -21,7 +20,7 @@
<div class="pt50 font-36 text-center">{{info.title}}</div>
<div class="pt50">
<!--活动列表列表-->
<div class="relative mb30 bg-f9 pt20 pb20 pl30 pr80 ulib-r20" v-for="(item,index) in list">
<div :class="['relative mb30 bg-f9 pt20 pb20 pl30 ulib-r20 ',item.pay_status == 0 ? 'pr200' : 'pr100']" v-for="(item,index) in list">
<div class="space-nowrap">
<a class="inline-block actitle font-32" :href="item.url">{{item.title}}</a>
<a class="inline-block vertical10" :href="item.stat_url">
@@ -30,12 +29,13 @@
</div>
<a class="block mt10 font-22 color-999" :href="item.url">
{{item.time}}
<i class="absolute right-0 mr20 box-middle iconfont icon-gengduo font-26 color-666"></i>
<a v-if="item.pay_status == 0" :href="item.stat_url" class="absolute right-0 mr20 box-middle inline-block pt5 pb5 pl20 pr20 line-height-15 text-middle ulib-r750 font-22 color-fff bg-ff5a5a">{{item.text_cn}}</a>
<a v-else-if="item.pay_status == 1" :href="item.stat_url" class="absolute right-0 mr20 box-middle iconfont icon-gengduo font-26 color-666"></a>
</a>
</div>
<!--end活动列表-->
</div>
<mugen-scroll :handler="fetchData" :should-handle="!loading">
<mugen-scroll :handler="fetchData" :should-handle="!loading" scroll-container="app">
<div class="pt100 pb100 text-center color-ccc" v-if="isNoData"></i><span class="text-middle font-22">暂无数据</span></div>
<div class="pt20 pb20 text-center color-ccc" v-else-if="loading"><i class="iconfont icon-jiazai text-middle"></i><span class="text-middle font-22">请稍等...</span></div>
<div class="pt20 pb20 text-center font-22 color-ccc" v-else-if="isDataEnd && list.length>10">我们是有底线的</div>
+2 -3
View File
@@ -1,6 +1,5 @@
<body class="bg-f6">
<div class="height-500 fixed left-0 right-0 top-0 z-index-0 bg-1a1a1a"></div>
<div id="app" class="bg-f6">
<div id="app" ref="app">
<div class="container relative bg-no-repeat bg-size-fullwidth bg-pos-top pb50" style="background-image:url(https://qs.haodian.cn/web/images/project/H5-ShiYu/theme-bg.png?v=221008)">
<div class="pt30 pb30">
<div class="relative pl30 pr30 fn-clear">
@@ -73,7 +72,7 @@
</div>
<!--end活动列表-->
</div>
<mugen-scroll :handler="fetchData" :should-handle="!loading">
<mugen-scroll :handler="fetchData" :should-handle="!loading" scroll-container="app">
<div class="pt100 pb100 text-center color-ccc" v-if="isNoData"></i><span class="text-middle font-22">暂无数据</span></div>
<div class="pt20 pb20 text-center color-ccc" v-else-if="loading"><i class="iconfont icon-jiazai text-middle"></i><span class="text-middle font-22">请稍等...</span></div>
<div class="pt20 pb20 text-center font-22 color-ccc" v-else-if="isDataEnd && list.length>10">我们是有底线的</div>
+75
View File
@@ -0,0 +1,75 @@
<body class="bg-fff">
<div id="app" ref="app">
<div class="container relative pb150">
<img class="block wp100" :src="info.img" alt="#">
<div class="fixed left-0 bottom-0 right-0 inner30 bg-fff z-index-4" >
<a class="block bg-1a1a1a pt20 pb20 text-center font-36 color-fff ulib-r10" v-if="info.status==0" href="javascript:;" @click="pay()">{{info.btntx}}</a>
<a class="block bg-bbb pt20 pb20 text-center font-36 color-fff ulib-r10" v-else href="javascript:;">{{info.btntx}}</a>
</div>
</div>
</div>
<script>
let hostUrl = ''
var app = new Vue({
el: '#app',
data: {
info:'',
isSubmiting:false
},
created(){
},
computed: {
},
mounted() {
this.getInfo()
},
beforeDestroy() {
},
methods: {
//获取基础信息
getInfo(){
this.info = <?=json_encode($info,JSON_UNESCAPED_UNICODE)?>
},
pay(){
if(this.isSubmiting){
return false
}
var that = this;
that.isSubmiting = true
$.post('/h5/market/sylive/biz/c_order',{'skey':'<?=$info['skey']?>'},function (res){
that.isSubmiting = false
if(res.code==200){
var jsondata = res.data;
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
jsondata,
function(res){
if(res.err_msg == "get_brand_wcpay_request:ok" ){//前端返回成功支付
mDialog.msg({
duration: 250,
pause: 2000,
content: "恭喜您支付成功",
onClose:function(){
window.location = "//h5/market/sylive/biz";
}
});
}else{
mDialog.msg({content: "支付失败"});
}
}
);
}else{
mDialog.msg({content: res.msg});
}
},'json')
}
}
})
</script>
<?=$this->load->view('h5/market/sylive/hidden_wx_share')?>
</body>
+1 -1
View File
@@ -7,7 +7,7 @@
content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title><?=$_title?></title>
<link rel="stylesheet" href="/css/h5/market/sylive/h5.css?20221020">
<link rel="stylesheet" href="/css/h5/market/sylive/h5.css?2022102017">
<link rel="stylesheet" href="https://qs.haodian.cn/web/javascript/swiper/css/swiper.min.css">
<script type="text/javascript" src="https://qs.haodian.cn/web/javascript/jquery.3.4.1.min.js"></script>
<script type="text/javascript" src="https://qs.haodian.cn/web/javascript/vue.2.6.10.min.js"></script>
+2 -3
View File
@@ -7,7 +7,7 @@
content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title><?=$_title?></title>
<link rel="stylesheet" href="/css/h5/market/sylive/h5.css?20221020">
<link rel="stylesheet" href="/css/h5/market/sylive/h5.css?2022102017">
<link rel="stylesheet" href="https://qs.haodian.cn/web/javascript/swiper/css/swiper.min.css">
<script type="text/javascript" src="https://qs.haodian.cn/web/javascript/jquery.3.4.1.min.js"></script>
<script type="text/javascript" src="https://qs.haodian.cn/web/javascript/vue.2.6.10.min.js"></script>
@@ -15,8 +15,7 @@
<script type="text/javascript" src="https://qs.haodian.cn/web/javascript/swiper/js/swiper.min.js"></script>
</head>
<body class="bg-fff">
<div class="height-500 fixed left-0 right-0 top-0 z-index-0 bg-1a1a1a"></div>
<div id="app" class="login bg-fff">
<div id="app" ref="app">
<div class="container relative bg-repeat-y bg-size-fullwidth bg-pos-center" style="background-image:url(https://qs.haodian.cn/web/images/project/H5-ShiYu/loginbg.jpg?v=221008)">
<div class="absolute box-middle left-0 right-0 pl40 pr40 pb220">
<div class="pb50 color-fff">
+1 -2
View File
@@ -1,6 +1,5 @@
<body class="bg-fff">
<div class="height-500 fixed left-0 right-0 top-0 z-index-0 bg-1a1a1a"></div>
<div id="app" class="bg-fff">
<div id="app" ref="app">
<div class="container bg-size-fullwidth bg-no-repeat bg-pos-top pb130" :style="'background-image:url('+info.theme+')'">
<div class="h-290"></div>
<div id="main" class="bg-fff mb30 ml30 mr30 inner30 box-shadow-lightGray ulib-r20" style="min-height:72vh;">
+2 -3
View File
@@ -1,6 +1,5 @@
<body class="bg-fff">
<div class="height-500 fixed left-0 right-0 top-0 z-index-0 bg-1a1a1a"></div>
<div id="app" class="bg-fff">
<div id="app" ref="app">
<div class="container bg-size-fullwidth bg-no-repeat bg-pos-top pb130" :style="'background-image:url('+info.theme+')'">
<div class="h-290"></div>
<div id="main" class="bg-fff mb30 ml30 mr30 inner30 box-shadow-lightGray ulib-r20" style="min-height:72vh;">
@@ -163,7 +162,7 @@
<div class="fn-fr">{{item.time}}</div>
</div>
</div>
<mugen-scroll :handler="fetchData" :should-handle="!loading">
<mugen-scroll :handler="fetchData" :should-handle="!loading" scroll-container="app">
<div class="pt100 pb100 text-center color-ccc" v-if="isNoData"></i><span class="text-middle font-22">暂无数据</span></div>
<div class="pt20 pb20 text-center color-ccc" v-else-if="loading"><i class="iconfont icon-jiazai text-middle"></i><span class="text-middle font-22">请稍等...</span></div>
<div class="pt20 pb20 text-center font-22 color-ccc" v-else-if="isDataEnd && dynamic.list.length>10">我们是有底线的</div>
+2 -3
View File
@@ -1,6 +1,5 @@
<body class="bg-f6">
<div class="height-500 fixed left-0 right-0 top-0 z-index-0 bg-1a1a1a"></div>
<div id="app" class="bg-f6">
<div id="app" ref="app">
<div class="container relative bg-no-repeat bg-size-fullwidth bg-pos-top pt30 pb50">
<div class="relative bg-fff ml30 mr30 inner30 ulib-r20 box-shadow-darkGray" style="min-height:90vh;">
<div class="pt10 pb20 text-center"><b class="font-40 text-italic" v-html="title"></b></div>
@@ -15,7 +14,7 @@
<div class="fn-fr">{{item.num}}</div>
</div>
</div>
<mugen-scroll :handler="fetchData" :should-handle="!loading">
<mugen-scroll :handler="fetchData" :should-handle="!loading" scroll-container="app">
<div class="pt100 pb100 text-center color-ccc" v-if="isNoData"></i><span class="text-middle font-22">暂无数据</span></div>
<div class="pt20 pb20 text-center color-ccc" v-else-if="loading"><i class="iconfont icon-jiazai text-middle"></i><span class="text-middle font-22">请稍等...</span></div>
<div class="pt20 pb20 text-center font-22 color-ccc" v-else-if="isDataEnd && list.length>20">我们是有底线的</div>
+2 -3
View File
@@ -1,6 +1,5 @@
<body class="bg-f6">
<div class="height-500 fixed left-0 right-0 top-0 z-index-0 bg-1a1a1a"></div>
<div id="app" class="bg-f6">
<div id="app" ref="app">
<div class="container relative bg-no-repeat bg-size-fullwidth bg-pos-top pt30 pb50">
<div id="main" class="relative bg-fff ml30 mr30 inner30 ulib-r20 box-shadow-darkGray" style="min-height:90vh;">
<template v-if="tab.length>1">
@@ -29,7 +28,7 @@
</div>
<div class="fn-flex-item text-right" flexsize="5">{{item.time}}</div>
</div>
<mugen-scroll :handler="fetchData" :should-handle="!loading">
<mugen-scroll :handler="fetchData" :should-handle="!loading" scroll-container="app">
<div class="pt100 pb100 text-center color-ccc" v-if="isNoData"></i><span class="text-middle font-22">暂无数据</span></div>
<div class="pt20 pb20 text-center color-ccc" v-else-if="loading"><i class="iconfont icon-jiazai text-middle"></i><span class="text-middle font-22">请稍等...</span></div>
<div class="pt20 pb20 text-center font-22 color-ccc" v-else-if="isDataEnd&&list.length>10">我们是有底线的</div>
File diff suppressed because one or more lines are too long