Commit 17899621a2e84478000029fbbe1dec5be212bd5d

Authored by vking
2 parents 200c9e85 c34861a2

Merge branch 'master-activity-pay-sellerdo'

Showing 213 changed files with 6313 additions and 644 deletions
... ... @@ -23,6 +23,13 @@ App({
shareTicket:"",
isAdmin:false,//是否运营人员
onLaunch: async function (opt) {
if(wx.getLogManager){
const logger =wx.getLogManager()
console.log.prototype=function(){
console.log(...arguments)
logger.debug(...arguments)
};
}
console.log('onLaunch',opt,wx.env);
wx.removeStorage({key: 'formids'});//清理历史formids
mta.App.init({
... ...
... ... @@ -38,6 +38,27 @@
],
"subpackages": [
{
"root": "pack-checkout",
"name": "支付",
"pages": [
"pages/index"
]
},
{
"root": "pack-activity",
"name": "红包活动包",
"pages": [
"pages/index",
"pages/money",
"pages/kefu",
"pages/qiye",
"pages/rule",
"pages/yuding",
"pack/pack",
"pack/list"
]
},
{
"root": "pack-cookbook",
"name": "提前点餐包",
"pages": [
... ... @@ -70,7 +91,9 @@
"pages/book/smsbatch/list",
"pages/book/smsbatch/result",
"pages/book/roomtype/roomtype",
"pages/book/b_reserve"
"pages/book/b_reserve",
"pages/checkout/index",
"pages/checkout/invoice"
]
}
],
... ... @@ -133,6 +156,10 @@
"haowu": {
"version": "3.2.0",
"provider": "wx56c8f077de74b07c"
},
"vktool": {
"version": "2.1.9",
"provider": "wxd3dc4206c76f14fc"
}
},
"navigateToMiniProgramAppIdList": [
... ... @@ -144,8 +171,7 @@
}
},
"usingComponents": {
"layout": "/components/layout",
"fb": "/components/common/feedback"
"layout": "/components/layout"
},
"debug": true,
"sitemapLocation": "sitemap.json"
... ...
... ... @@ -225,7 +225,8 @@ image{
}
.Medium{
font-weight: 400;
font-family:PingFangSC-Medium,PingFang SC;
font-weight: 500;
}
.button-none {
display: inline-block;
... ... @@ -252,7 +253,7 @@ image{
.more{
width: 12rpx;
height: 22rpx;
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/click.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/click.png");
background-size: 100% 100%;
min-width: 12rpx;
background-repeat: no-repeat;
... ...
// components/activity/enter.js
import util from '../../utils/util';
import App from '../../utils/api';
Component({
/**
* 组件的属性列表
*/
properties: {
hasInHome:Boolean,
floclass:String,
},
/**
* 组件的初始数据
*/
data: {
activity:null,
displayType:0,//0|1 浮层|弹框
},
/**
* 组件的方法列表
*/
methods: {
close(){
this.setData({
displayType:0,
})
},
hasActivity(e){//有通知就可以参加活动
console.log('hasActivity.enter',e)
this.getActivity()
},
getActivity(){
//hasInHome 金额少于1000 只显示小图
App.Task.GetTaskInfo({pos:'home'}).then(res=>{
let time=new Date()/1000
let activity=res.data.activity
if(!activity) return;
activity.task=res.data.task
let displayType=0//浮层
if(activity.status==1 && activity.starttime<time && time<activity.endtime){
if(activity.balance>1000){
if(activity.task.status!=2){
displayType=1//弹框
App.Task.SetTaskInfo({//领取任务
aid:activity.id,
tid:activity.task.id,
})
}
}else{
if(!this.data.hasInHome){//非首页浮层也不显示
activity=null
}
}
this.setData({
displayType:displayType,
activity:activity
})
}
})
},
}
})
... ...
{
"component": true,
"usingComponents": {
"has":"./hasActivity"
}
}
\ No newline at end of file
... ...
<!--components/activity/enter.wxml-->
<has bindevent="hasActivity"></has>
<block wx:if="{{activity}}">
<view class="mask" wx:if="{{displayType==1}}">
<view class="close" bindtap="close"></view>
<view class="activity" bindcatch="bindcatch">
<view class="enter">
<view class="enter-txt">请客订包间,就用周到安排</view>
<view class="enter-hot flex-cc">
<view class="enter-icon lt"></view>
<view class="enter-hot-txt">开工专享红包</view>
<view class="enter-icon gt"></view>
</view>
</view>
<view class="money">
<view class="money-tip flex-cc">订包间,消费抵现金</view>
<view class="money-views flex-bc">
<view class="money-number">{{activity.task.price}}</view>
<view class="money-dw">元</view>
</view>
<navigator url="/pack-activity/pages/index?id={{activity.id}}"
bindtap="close"
hover-class="navigator-hover">
<view class="money-button flex-cc">开心收下</view>
</navigator>
</view>
</view>
</view>
<navigator wx:else="" hover-class="navigator-hover"
url="/pack-activity/pages/index?id={{activity.id}}" >
<view class="mask-tips {{floclass}}" style="background-image: url({{activity.task.flo_url}})"></view>
</navigator>
</block>
... ...
/* components/activity/enter.wxss */
@import "../../app.wxss";
.mask{
z-index: 99999;
}
.close{
width: 60rpx;
height: 60rpx;
background-image: url("http://nosqn.colorcun.com/activity/images/enter/close.png");
background-size: 100% 100%;
margin-top: 200rpx;
margin-left: calc(100% - 100rpx);
}
.activity{
position: relative;
margin-top: 20rpx;
}
.enter{
width: 564rpx;
height: 471.3rpx;
background-image: url("http://nosqn.colorcun.com/activity/images/enter/enter.png");
background-size: 100% 100%;
margin-left:calc(50% - 282rpx);
box-sizing: border-box;
padding-top: 146rpx;
}
.enter-txt{
height:34rpx;
font-size:24rpx;
font-weight:500;
color:rgba(255,227,192,1);
line-height:34rpx;
letter-spacing:1rpx;
text-align: center;
}
.enter-hot{
height:50rpx;
font-size:36rpx;
font-weight:600;
color:rgba(255,227,192,1);
line-height:50rpx;
letter-spacing:2rpx;
margin-top: 46rpx;
}
.enter-hot-txt{
width:236rpx;
overflow: hidden;
white-space: nowrap;
margin: 0 20rpx 0;
text-align: center;
}
.enter-icon{
background-size: 100% 100%;
width:70rpx;
height:16rpx;
}
.enter-icon.lt{
background-image: url("http://nosqn.colorcun.com/activity/images/enter/lt-1.png");
}
.enter-icon.gt{
background-image: url("http://nosqn.colorcun.com/activity/images/enter/gt-1.png");
}
.money{
width: 400rpx;
height: 360rpx;
background-image: url("http://nosqn.colorcun.com/activity/images/enter/money.png");
background-size: 100% 100%;
margin-left:calc(50% - 200rpx + 13rpx);
margin-top: -143rpx;
box-sizing: border-box;
padding-top: 40rpx;
}
.money-tip{
height:34rpx;
font-size:24rpx;
font-weight:600;
color:rgba(204,17,39,1);
line-height:34rpx;
letter-spacing:1rpx;
}
.money-views{
height:106rpx;
font-size:76rpx;
font-weight:600;
color:rgba(204,17,39,1);
line-height:106rpx;
letter-spacing:1rpx;
margin-top: 16rpx;
}
.money-dw{
width:26rpx;
height:34rpx;
font-size:24rpx;
font-weight:600;
color:rgba(204,17,39,1);
line-height:34rpx;
letter-spacing:1rpx;
margin-left: 10rpx;
}
.money-button{
width:290rpx;
height:70rpx;
background:linear-gradient(180deg,rgba(231,66,88,1) 0%,rgba(243,53,78,1) 100%);
box-shadow:0rpx 2rpx 2rpx 0rpx rgba(209,33,54,1);
border-radius:35rpx;
font-size:32rpx;
font-weight:600;
color:rgba(255,227,192,1);
letter-spacing:1rpx;
text-shadow:0rpx 4rpx 8rpx rgba(207,31,51,1);
position: relative;
margin-top: 60rpx;
margin-left: 54rpx;
}
.money-button:after{
display: block;
position: absolute;
content: "";
width:36rpx;
height:36rpx;
background-size: 100% 100%;
background-image: url("http://nosqn.colorcun.com/activity/images/enter/more.png");
top:16rpx;
right:28rpx;
}
.mask-tips{
width: 110rpx;
height: 140rpx;
position: fixed;
left: 20rpx;
bottom: 520rpx;
/*background-image: url("http://nosqn.colorcun.com/activity/images/fl.png");*/
background-size: 100% 100%;
}
.mask-tips.detail_owner{
width: 120rpx;
height: 160rpx;
bottom: 320rpx;
}
\ No newline at end of file
... ...
// components/activity/hasActivity.js
const TSPOS={
latitude:[
39.8380681800,
39.4711852300,
],
longitude:[
117.9670715300,
118.4078979500,
]
}
Component({
/**
* 组件的属性列表
*/
properties: {
},
/**
* 组件的初始数据
*/
data: {
},
lifetimes: {
// 生命周期函数,可以为函数,或一个在methods段中定义的方法名
attached: function () {
this.selectComponent('#getpos').getPos();
},
moved: function () { },
detached: function () { },
},
/**
* 组件的方法列表
*/
methods: {
onpos(e){
let location=e.detail
location.latitude=39.6242016100
location.longitude=118.1174469000
//console.log('hasActivity',location);
if(location.latitude && location.longitude){
TSPOS.latitude.push(location.latitude)
TSPOS.longitude.push(location.longitude)
TSPOS.latitude=TSPOS.latitude.sort(($1,$2)=>{ return $1-$2})
TSPOS.longitude=TSPOS.longitude.sort(($1,$2)=>{ return $1-$2})
console.log('hasActivity',TSPOS);
if(TSPOS.latitude[1]==location.latitude
&& TSPOS.longitude[1]==location.longitude){
//console.log('hasActivity.event',location);
this.triggerEvent('event',location)
}
}
},
}
})
... ...
{
"component": true,
"usingComponents": {
"getpos":"/components/userinfo/getpos"
}
}
\ No newline at end of file
... ...
<!--components/activity/hasActivity.wxml-->
<getpos bindpos="onpos" id="getpos" hasAllowLoading="{{false}}"></getpos>
... ...
/* components/activity/hasActivity.wxss */
... ...
// components/activity/tips.js
import util from '../../utils/util';
import App from '../../utils/api';
Component({
/**
* 组件的属性列表
*/
properties: {
pos:String,
str:String,
cla:String,
},
/**
* 组件的初始数据
*/
data: {
activity:null,
},
lifetimes: {
// 生命周期函数,可以为函数,或一个在methods段中定义的方法名
attached: function () { },
moved: function () { },
detached: function () { },
},
/**
* 组件的方法列表
*/
methods: {
hasActivity(e){//有通知就可以参加活动
console.log('hasActivity.enter',e)
this.getActivity()
},
getActivity(){
//hasInHome 金额少于1000 只显示小图
App.Task.GetTaskInfo({pos:this.data.pos}).then(res=>{
let time=new Date()/1000
let activity=res.data.activity
activity.task=res.data.task
if(activity.status==1 && activity.starttime<time && time<activity.endtime){
if(activity.balance>1000 && activity.task.status!=2){
//通知页面显示tips
this.setData({
activity:activity,
msg:this.data.str.replace("¥price","¥"+activity.task.price)
})
}
}
})
},
}
})
... ...
{
"component": true,
"usingComponents": {
"has":"./hasActivity"
}
}
\ No newline at end of file
... ...
<!--components/activity/tips.wxml-->
<has bindevent="hasActivity"></has>
<view class="tips {{cla}}" wx:if="{{activity}}">
<view class="msg">
{{msg}}
<view class="jiao"></view>
</view>
</view>
... ...
/* components/activity/tips.wxss */
.tips{
position: fixed;
z-index: 9999;
background:rgba(84,83,84,0.8);
font-size:24rpx;
font-weight:500;
color:rgba(255,255,255,1);
}
.tips .msg{
height: 70rpx;
line-height: 70rpx;
padding: 0 24rpx;
position: relative;
}
.jiao{
width: 26rpx;
height: 10rpx;
background-image: url("http://nosqn.colorcun.com/activity/images/jiao2.png");
background-size: 100% 100%;
position: absolute;
bottom: -10rpx;
left:30rpx;
}
.tips.reserve-detail{
bottom:122rpx;
right:30rpx;
}
.tips.reserve-detail .jiao{
right:80rpx;
left:auto;
}
.tips.reserve-detail .msg{
color: #FEDE68;
}
.tips.reserve-detail .msg:before{
content: "现在预订即可获得";
color:rgba(255,255,255,1);
}
.tips.reserve-detail .msg:after{
content: "红包";
color:rgba(255,255,255,1);
}
.tips.detail-invitation{
bottom:112rpx;
left:28rpx;
}
.tips.detail-invitation .msg{
color: #ECD9B7;
font-weight: bold;
}
.tips.detail-invitation .msg:before{
content: "订包间即可获得";
color:rgba(236,217,183,1);
font-weight: normal;
}
.tips.detail-invitation .msg:after{
content: "红包";
color:rgba(236,217,183,1);
font-weight: normal;
}
.tips.detail-invitation .jiao{
left:80rpx;
}
\ No newline at end of file
... ...
<!--components/common/feedback.wxml-->
<cover-view class="button-none feedback" wx:if="{{hasDispaly}}" style="top:{{top}}%">
<button class="button-none" open-type="feedback">反馈</button>
</cover-view>
/* components/common/feedback.wxss */
.feedback{
position: fixed;
right: 20rpx;
box-sizing: border-box;
width: 80rpx;
height: 80rpx;
top:50%;
background-color: rgba(200,0,0,0.2);
z-index: 9999;
padding: 0;
line-height: 80rpx;
border-radius: 50%;
}
.button-none{
box-sizing: border-box;
width: 80rpx;
height: 80rpx;
background-color: rgba(200,0,0,0.2);
color: #fefefe;
font-size: 24rpx;
font-weight: bold;
border-radius: 50%;
line-height: 80rpx;
padding: 0;
}
\ No newline at end of file
... ... @@ -4,7 +4,7 @@
<icon type="success_no_circle" class="icon-success" color="#fff" size="40"></icon>
</block>
<block wx:else>
<image src="http://qn.colorcun.com/custom/lite/image/{{imgurl}}" class="reminder-image"></image>
<image src="http://nosqn.colorcun.com/custom/lite/image/{{imgurl}}" class="reminder-image"></image>
</block>
<view class="white smooth fsize16" style="line-height:1.2;margin-top:{{icon==true ? '-10rpx' : '20rpx'}};padding: 0 10px;text-align: center;">{{action_title}}</view>
<view class="white smooth fsize16" style="line-height:1.2;margin-top:10rpx;">{{action_so}}</view>
... ...
... ... @@ -41,22 +41,22 @@
height: 100%;
}
.tabBar .reserve{
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E9%80%9A%E7%9F%A5%E5%AE%A2%E6%88%B7-%E6%9C%AA%E7%82%B9%E5%87%BB.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E9%80%9A%E7%9F%A5%E5%AE%A2%E6%88%B7-%E6%9C%AA%E7%82%B9%E5%87%BB.png");
}
.tabBar .checked .reserve{
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E9%80%9A%E7%9F%A5%E5%AE%A2%E6%88%B7-%E7%82%B9%E5%87%BB.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E9%80%9A%E7%9F%A5%E5%AE%A2%E6%88%B7-%E7%82%B9%E5%87%BB.png");
}
.tabBar .book{
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/seller-tabs2-book.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/seller-tabs2-book.png");
}
.tabBar .checked .book {
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/seller-tabs2-book-checked.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/seller-tabs2-book-checked.png");
}
.tabBar .setting{
width: 34rpx;
height: 34rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E6%88%91%E7%9A%84.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E6%88%91%E7%9A%84.png");
}
.tabBar .checked .setting {
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E6%88%91%E7%9A%84-%E9%80%89%E4%B8%AD.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E6%88%91%E7%9A%84-%E9%80%89%E4%B8%AD.png");
}
... ...
... ... @@ -6,11 +6,11 @@
<view class="opt flex-ll">
<view class="back flex-vc" bindtap="back" wx:if="{{disBack}}">
<image class="back-image"
src="http://qn.colorcun.com/custom/lite-yd/image/back{{backgroundColor!='#ffffff'?'-light':''}}.png"></image>
src="http://nosqn.colorcun.com/custom/lite-yd/image/back{{backgroundColor!='#ffffff'?'-light':''}}.png"></image>
</view>
<view class="home flex-vc" bindtap="home" wx:if="{{disHome}}">
<image class="home-image"
src="http://qn.colorcun.com/custom/lite-yd/image/home{{backgroundColor!='#ffffff'?'-light':''}}.svg"></image>
src="http://nosqn.colorcun.com/custom/lite-yd/image/home{{backgroundColor!='#ffffff'?'-light':''}}.svg"></image>
</view>
</view>
<view class="title" bindtap="home">
... ... @@ -23,5 +23,4 @@
</view>
</view>
</view>
<fb></fb>
\ No newline at end of file
</view>
\ No newline at end of file
... ...
<view wx:if="{{!network}}" class="no-network">
<view class="no-network-box flex-vc" style="background:#fff;width:100%;height:500px;">
<image src="http://qn.colorcun.com/custom/lite/image/reminder.png" class="network-image"></image>
<image src="http://nosqn.colorcun.com/custom/lite/image/reminder.png" class="network-image"></image>
<view style="font-size:30rpx;margin-top:10rpx;color:#666;">网络不给力呀~</view>
<button type="warn" bindtap="refresh" style="margin-top:120px; width: 70%; background-color: #E14553; font-size: 34rpx; height: 80rpx;">
再试一次
... ...
... ... @@ -5,7 +5,7 @@
<cover-view class="close"></cover-view>
<cover-view class="title Semibold">选择菜系</cover-view>
<cover-view class="close">
<cover-image src="http://qn.colorcun.com/reserve/images/%E5%85%B3%20%20%E9%97%AD.png"></cover-image>
<cover-image src="http://nosqn.colorcun.com/reserve/images/%E5%85%B3%20%20%E9%97%AD.png"></cover-image>
</cover-view>
</cover-view>
<cover-view class="caixi-view flex-auto-ll">
... ... @@ -13,7 +13,7 @@
bindtap="active" data-index="{{index}}"
wx:for="{{multiArray[0]}}" wx:key="multiArray.key">
{{item}}
<cover-image class="number" wx:if="{{index>=1 && index<4}}" src="http://qn.colorcun.com/reserve/images/cx{{index}}.png"></cover-image>
<cover-image class="number" wx:if="{{index>=1 && index<4}}" src="http://nosqn.colorcun.com/reserve/images/cx{{index}}.png"></cover-image>
</cover-view>
</cover-view>
</cover-view>
... ...
... ... @@ -25,7 +25,7 @@
text-align: center;
}
.discount-name .close{
background-image: url("http://qn.colorcun.com/reserve/images/%E5%85%B3%20%20%E9%97%AD.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E5%85%B3%20%20%E9%97%AD.png");
width: 32rpx;
height: 32rpx;
position: absolute;
... ... @@ -49,7 +49,7 @@
width: 100%;
max-width: 690rpx;
height: 190rpx;
background-image: url("http://qn.colorcun.com/reserve/images/%E4%BC%98%E6%83%A0%E5%88%B8.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E4%BC%98%E6%83%A0%E5%88%B8.png");
margin-top: 40rpx;
}
.item .left{
... ...
... ... @@ -38,7 +38,7 @@
.timePicker .close{
width: 32rpx;
height: 32rpx;
background-image: url("http://qn.colorcun.com/reserve/images/ddate-close.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/ddate-close.png");
background-size: 100% 100%;
}
.title{
... ...
... ... @@ -28,7 +28,7 @@
margin-bottom: 60rpx;
}
.close{
background-image: url("http://qn.colorcun.com/reserve/images/close.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/close.png");
background-size: 100% 100%;
width: 32rpx;
height: 32rpx;
... ...
... ... @@ -48,7 +48,7 @@
margin-right: 20rpx;
width: 22rpx;
height:26rpx;
background-image: url("http://qn.colorcun.com/reserve/images/addr.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/addr.png");
background-size: 100% 100%;
min-width: 22rpx;
}
... ... @@ -63,7 +63,7 @@
padding: 20rpx;
}
.item-1 .icon {
background-image: url("http://qn.colorcun.com/reserve/images/sea-se.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/sea-se.png");
width: 36rpx;
height: 36rpx;
min-width: 36rpx;
... ... @@ -100,13 +100,13 @@
width: 20rpx;
height: 24rpx;
min-width: 20rpx;
background-image: url("http://qn.colorcun.com/reserve/images/addr.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/addr.png");
}
.history .icon-1{
width: 24rpx;
height: 18rpx;
min-width: 24rpx;
background-image: url("http://qn.colorcun.com/reserve/images/his-se.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/his-se.png");
}
.activity{
position: relative;
... ... @@ -118,7 +118,7 @@
width: 32rpx;
margin-left: 10rpx;
min-width: 32rpx;
background-image: url("http://qn.colorcun.com/reserve/images/huizi.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/huizi.png");
background-size: 100% 100%;
top:4rpx;
}
... ...
... ... @@ -3,7 +3,7 @@
<cover-view class="mask" hidden="{{hidden}}">
<cover-view class="header flex-lr" style="height: {{titleBarHeight}}px;padding-top: {{statusBarHeight}}px;" catchtap="hide">
<cover-view class="searchList flex-ll">
<cover-image class="icon" src="http://qn.colorcun.com/reserve/images/hasMap.png"></cover-image>
<cover-image class="icon" src="http://nosqn.colorcun.com/reserve/images/hasMap.png"></cover-image>
<cover-view class="title">地图</cover-view>
</cover-view>
<cover-view class="title" style="line-height: {{titleBarHeight}}px;height:{{titleBarHeight}}px;">一键订</cover-view>
... ...
... ... @@ -85,11 +85,11 @@
margin-right: 10rpx;
}
.picker .more{
background-image: url("http://qn.colorcun.com/reserve/images/%E8%8F%9C%E7%B3%BB.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E8%8F%9C%E7%B3%BB.png");
width: 12rpx;
height: 16rpx;
min-width:12rpx;
}
.tags.active .picker .more{
background-image: url("http://qn.colorcun.com/reserve/images/%E8%8F%9C%E7%B3%BB%E9%80%89%E4%B8%AD.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E8%8F%9C%E7%B3%BB%E9%80%89%E4%B8%AD.png");
}
\ No newline at end of file
... ...
... ... @@ -2,7 +2,7 @@
<cover-view class="seller flex-ll {{sellerStyle}}" >
<cover-view class="image">
<cover-image mode="aspectFill"
src="{{seller.seller_image?seller.seller_image+'?imageView2/2/w/320/interlace/0/q/100':'http://qn.colorcun.com/custom/lite-online/image/seller-def.png'}}"></cover-image>
src="{{seller.seller_image?seller.seller_image+'?imageView2/2/w/320/interlace/0/q/100':'http://nosqn.colorcun.com/custom/lite-online/image/seller-def.png'}}"></cover-image>
<view class="room_num" wx:if="{{seller.room_num>0}}">{{seller.room_num}}个包间</view>
</cover-view>
<cover-view class="info flex-tb">
... ... @@ -36,7 +36,7 @@
<block wx:if="{{seller.average>0 && hasAverage}}">¥{{seller.average}}元/人</block>
</cover-view>
<cover-view class="phone flex-ll" id="reserve-button" catchtap="tapButton" data-type="oncall">
<cover-image src="http://qn.colorcun.com/custom/lite-online/image/phone.png"></cover-image>
<cover-image src="http://nosqn.colorcun.com/custom/lite-online/image/phone.png"></cover-image>
<cover-view class="reserve-text">预订</cover-view>
</cover-view>
</cover-view>
... ...
... ... @@ -168,7 +168,7 @@
white-space:nowrap;
}
.activity-swiper .icon-hui{
background-image: url("http://qn.colorcun.com/reserve/images/%E6%83%A0.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E6%83%A0.png");
background-size: 100% 100%;
height: 32rpx;
width: 32rpx;
... ...
... ... @@ -3,7 +3,7 @@
<view class="seller flex-ll {{sellerStyle}}" >
<view class="image">
<image mode="aspectFill"
src="{{seller.seller_image?seller.seller_image+'?imageView2/2/w/320/interlace/0/q/100':'http://qn.colorcun.com/reserve/images/3x/%E6%9A%82%E6%97%A0.png'}}"></image>
src="{{seller.seller_image?seller.seller_image+'?imageView2/2/w/320/interlace/0/q/100':'http://nosqn.colorcun.com/reserve/images/3x/%E6%9A%82%E6%97%A0.png'}}"></image>
<view class="room_num" wx:if="{{false}}">{{seller.room_num}}个包间</view>
<view class="room_num hasBrand Semibold" wx:if="{{hasBrand && seller.brand}}">{{seller.brand.name}}</view>
</view>
... ... @@ -11,7 +11,8 @@
<view style="max-width: 100%;width: 100%;">
<view class="name Semibold flex-ll">
<view class="sellername">{{seller.sellername}}</view>
<view class="ActivityShort" wx:if="{{hasActivityShort && seller.activity.length>0}}"></view>
<view class="ActivityShort" wx:if="{{hasActivityShort && seller.is_discount>0}}"></view>
<view class="isopen_md" wx:if="{{hasActivityShort && seller.isopen_md==1}}">买单</view>
</view>
<view wx:if="{{hasSlogan && seller.slogan}}" class="slogan">“{{seller.slogan}}”</view>
<view class="text flex-ll" wx:if="{{seller.cate.length>0}}">
... ...
... ... @@ -177,7 +177,7 @@
white-space:nowrap;
}
.activity-swiper .icon-hui{
background-image: url("http://qn.colorcun.com/reserve/images/%E6%83%A0.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E6%83%A0.png");
background-size: 100% 100%;
height: 32rpx;
width: 32rpx;
... ... @@ -194,7 +194,7 @@
width: 32rpx;
margin-left: 10rpx;
min-width: 32rpx;
background-image: url("http://qn.colorcun.com/reserve/images/huizi.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/huizi.png");
background-size: 100% 100%;
}
.seller .image .room_num.hasBrand{
... ... @@ -228,9 +228,22 @@
max-width: 320rpx;
}
.reserve-icon{
background-image: url("http://qn.colorcun.com/reserve/images/ding.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/ding.png");
width: 24rpx;
height: 24rpx;
background-size: 100% 100%;
margin-right: 10rpx;
}
.isopen_md{
width:52rpx;
height:32rpx;
border-radius:4rpx;
border:2rpx solid rgba(146,231,61,1);
font-size:20rpx;
font-family:PingFangSC-Semibold,PingFang SC;
font-weight:600;
color:rgba(125,199,66,1);
line-height:32rpx;
text-align: center;
margin-left: 6rpx;
}
\ No newline at end of file
... ...
... ... @@ -11,7 +11,7 @@
<cover-view class="type">潮汕火锅</cover-view>
</cover-view>
<cover-view class="info flex-ll">
<cover-image src="http://qn.colorcun.com/custom/lite-yd/image/add-act.png" style="width: 30rpx; height: 30rpx; background-color: #F4A22A"></cover-image>
<cover-image src="http://nosqn.colorcun.com/custom/lite-yd/image/add-act.png" style="width: 30rpx; height: 30rpx; background-color: #F4A22A"></cover-image>
<cover-view class="type">在线订座买单8折起</cover-view>
</cover-view>
<cover-view class="info flex-ll">
... ... @@ -19,7 +19,7 @@
<cover-view class="type">赠送精美小菜和饮品</cover-view>
</cover-view>
<cover-view class="info flex-ll" style="margin-top: 22rpx;">
<cover-image src="http://qn.colorcun.com/custom/lite-yd/image/gps-icon.png" style="width: 26rpx; height: 32rpx;"></cover-image>
<cover-image src="http://nosqn.colorcun.com/custom/lite-yd/image/gps-icon.png" style="width: 26rpx; height: 32rpx;"></cover-image>
<cover-view class="type" catchtap="lookLocation">{{seller.map_address}}</cover-view>
</cover-view>
<cover-view class="body"></cover-view>
... ...
// components/reserve/discount.js
import App from '../../../utils/api'
Component({
/**
* 组件的属性列表
*/
properties: {
cla:String,
seller:{
type:Object,
value:{}
}
},
/**
* 组件的初始数据
*/
data: {
display:false,
hiddenAni:'',
mycards:[],
money:0,//最大优惠
red_envelopes_price:0,//获得金额
},
lifetimes: {
// 生命周期函数,可以为函数,或一个在methods段中定义的方法名
attached: function () {
App.Customer.SetCardRel({
sid:this.data.seller.id
}).then(res=>{
if(!res.data) return;
this.setData({
red_envelopes_price:res.data.red_envelopes_price,
money:res.data.money,
mycards:res.data.list,
})
if(res.data.red_envelopes_price>0){
setTimeout(()=>{
this.setData({
red_envelopes_price:0,
})
},3000)
}
})
},
moved: function () { },
detached: function () { },
},
/**
* 组件的方法列表
*/
methods: {
hide(){
this.setData({
hiddenAni:'discountHide',
})
this.triggerEvent('hide')
setTimeout(()=>{
this.setData({
display:false,
hiddenAni:'',
})
},250)
},
show(){
this.setData({
display:true,
hiddenAni:'',
})
this.triggerEvent('show')
},
useCard(){
this.hide()
this.triggerEvent('event',{type:'gotoReserve'})
},
},
})
... ...
{
"component": true,
"usingComponents": {
"quan":"./quan"
}
}
\ No newline at end of file
... ...
<!--components/reserve/discount.wxml-->
<view class="toast flex-vc" wx:if="{{red_envelopes_price>0}}">
<view style="text-align: center;">恭喜您获得<text>{{red_envelopes_price}}元红包</text></view>
</view>
<view class="{{cla?cla:'tips reserve-detail'}}" wx:if="{{money>0 && red_envelopes_price==0 && seller.isopen_md==1}}">
<view class="msg">
{{money}}元
<view class="jiao"></view>
</view>
</view>
<view class="mask" bindtap="hide" wx:if="{{display}}">
<view class="discount {{hiddenAni}}" catchtap="">
<view class="discount-name Medium" bindtap="hide">
优惠
<view class="close"></view>
</view>
<view class="discount-content">
<view class="activity">
<view class="txt">活动</view>
<view class="flex-ll activity-item" wx:if="{{seller.receive_condition_2}}"
style="align-items: flex-start">
<view class="activity-left">消费返</view>
<view class="activity-right">在线买单{{seller.receive_condition_str}}红包</view>
</view>
<view class="flex-ll activity-item" wx:if="{{seller.isopen_md==1}}"
style="align-items: flex-start">
<view class="activity-left">平台红包</view>
<view class="activity-right">可叠加使用平台红包</view>
</view>
</view>
<block wx:if="{{mycards.length>0}}">
<view class="mycards-txt">已领取的红包</view>
<view class="mycards">
<view class="mycards-item" wx:for="{{mycards}}" wx:key="mycards">
<quan quan="{{item}}">
<view class="button-use" bindtap="useCard">立即使用</view>
</quan>
<view class="quan-tips">仅可在预订包间、在线买单时使用</view>
</view>
</view>
</block>
</view>
</view>
</view>
... ...
/* components/reserve/discount.wxss */
@import "../../../app.wxss";
.discount{
position: fixed;
bottom: 0;
background-color: #ffffff;
border-radius: 40rpx 40rpx 0rpx 0rpx;
color: #353535;
width: 100%;
padding: 20rpx 40rpx 40rpx;
animation: discountShow 0.3s;
box-sizing: border-box;
min-height: 648rpx;
}
.discount-content{
max-height: 792rpx;
overflow-y: auto;
}
.discount.discountHide{
animation: discountHide 0.3s;
}
.discount view{
background-size: 100% 100%;
}
.discount-name{
font-size: 32rpx;
height: 84rpx;
line-height: 84rpx;
width: 100%;
position: relative;
text-align: center;
}
.discount-name .close{
background-image: url("http://nosqn.colorcun.com/sellerbaobao/close.png");
width: 28rpx;
height: 29rpx;
position: absolute;
right:0;
top:6rpx;
}
.activity{
margin-top: 40rpx;
}
.activity .txt{
width:60rpx;
height:42rpx;
font-size:30rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(136,136,136,1);
line-height:42rpx;
}
.activity-item{
margin-top: 20rpx;
}
.activity-left{
height:28rpx;
border-radius:4rpx;
border:2rpx solid rgba(248,164,135,1);
font-size:20rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(240,88,36,1);
line-height:28rpx;
padding: 0 6rpx;
min-width: 60rpx;
text-align: center;
}
.activity-right{
font-size:26rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(53,53,53,1);
line-height:36rpx;
margin-left: 40rpx;
}
.mycards-txt{
height:42rpx;
font-size:30rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(136,136,136,1);
line-height:42rpx;
margin-top: 50rpx;
}
.mycards{
margin-top: 20rpx;
/*max-height: 430rpx;*/
}
.quan-tips{
height:50rpx;
background:rgba(245,245,245,1);
border-radius:0rpx 0rpx 10rpx 10rpx;
font-size:22rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(136,136,136,1);
line-height:50rpx;
padding-left: 36rpx;
width: 100%;
box-sizing: border-box;
}
.mycards-item{
margin-bottom: 20rpx;
}
.button-use{
width:120rpx;
height:44rpx;
background:linear-gradient(180deg,rgba(231,66,88,1) 0%,rgba(243,53,78,1) 100%);
border-radius:6rpx;
font-size:24rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(255,227,192,1);
line-height:44rpx;
text-align: center;
}
@keyframes discountShow
{
from {bottom: -876rpx;}
to {bottom: 0rpx;}
}
@keyframes discountHide
{
from {bottom: 0;}
to {bottom: -876rpx;}
}
.toast{
min-height:80rpx;
min-width:380rpx;
background:rgba(53,53,53,0.8);
border-radius:20rpx;
font-size:32rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(255,255,255,1);
line-height:44rpx;
position: fixed;
top:60%;
left:calc(50% - 190rpx);
padding: 10rpx 20rpx;
box-sizing: border-box;
z-index: 9999;
}
.toast text{
color:#FEDE68;
}
.tips{
position: fixed;
z-index: 9999;
background:rgba(84,83,84,0.8);
font-size:24rpx;
font-weight:500;
color:rgba(255,255,255,1);
}
.tips .msg{
height: 70rpx;
line-height: 70rpx;
padding: 0 24rpx;
position: relative;
}
.jiao{
width: 26rpx;
height: 10rpx;
background-image: url("http://nosqn.colorcun.com/activity/images/jiao2.png");
background-size: 100% 100%;
position: absolute;
bottom: -10rpx;
left:30rpx;
}
.tips.reserve-detail{
bottom:122rpx;
right:30rpx;
}
.tips.reserve-detail .jiao{
right:80rpx;
left:auto;
}
.tips.reserve-detail .msg{
color: #FEDE68;
}
.tips.reserve-detail .msg:before{
content: "预订买单,立即抵扣";
color:rgba(255,255,255,1);
}
.detail_owner .jiao{
display: none;
}
.detail_owner .msg:after{
content: "红包待用";
text-indent: -4rpx;
display: inline-block;
}
.money-tips{
min-width:184rpx;
height:34rpx;
padding: 0 20rpx;
background:rgba(240,85,34,1);
border-radius:16rpx 16rpx 16rpx 0rpx;
font-size:20rpx;
font-weight:500;
color:rgba(255,255,255,1);
line-height:34rpx;
position: absolute;
top:-28rpx;
right:-16rpx;
}
.checkout-button-money-tips{
min-width:184rpx;
padding: 0 20rpx;
height:34rpx;
background:rgba(240,85,34,1);
border-radius:16rpx 16rpx 16rpx 0rpx;
font-size:20rpx;
font-weight:500;
color:rgba(255,255,255,1);
line-height:34rpx;
position: absolute;
top:-28rpx;
right:40rpx;
}
.seller-reserve{
display: none;
}
\ No newline at end of file
... ...
// components/common/feedback.js
const mans=[
'oB-xJ5KJCIasaEdgMRckqoL1cwg8', //vking.wang
//'oB-xJ5BjnTvdgQGLHsjioNHH0eE8',
'oB-xJ5MEi2mTMrBTiYImD9cpGH6o', //xiao qin qin
'oB-xJ5OE1pM_17vNyWSMGqLH1vOg', //驴肉火烧多少钱一斤 MI 8
'oB-xJ5DIWrC6MECaXfql2GvTmQTU', //红旗 Redmi Note 7 Pro
'oB-xJ5I39RVWOWq-IGoBDxcFY-3s', //曹可 iPhone 6s Plus<iPhone8,2>
];
// components/reserve/seller/quan.js
Component({
/**
* 组件的属性列表
*/
properties: {
quan:Object,
cla:String,
},
/**
* 组件的初始数据
*/
data: {
hasDispaly:false,
top:(Math.random()*70+10)
},
ready: function() {
if(!console.hasRewrite){
const logger =wx.getLogManager()
let consoleLog=console.log
console.hasRewrite=true
console.log.prototype=function(){
console.log(...arguments)
logger.debug(...arguments)
};
}
let openid=wx.getStorageSync('customer_openid');
if(!openid) return;
if(mans.includes(openid)){
this.setData({
hasDispaly:true,
top:(Math.random()*70+10)
})
}
},
/**
* 组件的方法列表
*/
... ...
<!--components/reserve/seller/quan.wxml-->
<wxs src="../../../utils/util.wxs" module="util" />
<view class="quan flex-lr {{cla}}">
<view class="money Semibold flex-cc money-{{util.toFixed(quan.price,0).length}}" style="align-items: flex-end">
<view class="dot">¥</view>
<view class="number">{{util.toFixed(quan.price,0)}}</view>
</view>
<view class="line"></view>
<view class="type">
<view class="card_title">{{quan.card_title}}</view>
<view class="card-date" wx:if="{{quan.start_time>0}}">
{{util.unixtoTime(quan.start_time,"YYYY.MM.DD")}}-{{util.unixtoTime(quan.end_time,"YYYY.MM.DD")}}
</view>
<view class="card-date" wx:else="">
长期有效
</view>
</view>
<view class="opt">
<slot></slot>
</view>
</view>
... ...
/* components/reserve/seller/quan.wxss */
@import "/app.wxss";
.quan{
width:100%;
height:170rpx;
background:rgba(255,239,223,1);
box-sizing: border-box;
padding: 36rpx;
padding-right: 22rpx;
padding-left: 0;
border-radius:10rpx 10rpx 0rpx 0rpx;
border-right: 14rpx solid #fefefe;
position: relative;
}
.quan:after{
background-size: 100% 100%;
background-image: url("http://nosqn.colorcun.com/sellerbaobao/rp2.png");
position: absolute;
top:0;
right:-14rpx;
width: 16rpx;
height: 170rpx;
content: "";
}
.quan .money{
min-width: 186rpx;
width: 186rpx;
overflow: hidden;
}
.quan .money-4,.quan .money-5{
min-width: 226rpx;
width: 226rpx;
overflow: hidden;
}
.quan .type{
width: 80%;
}
.dot{
width:22rpx;
height:50rpx;
font-size:36rpx;
font-family:PingFangSC-Semibold,PingFang SC;
font-weight:600;
color:rgba(204,65,17,1);
line-height:50rpx;
margin-bottom: 10rpx;
}
.number{
height:90rpx;
font-size:64rpx;
font-family:PingFangSC-Semibold,PingFang SC;
font-weight:600;
color:rgba(204,65,17,1);
line-height:90rpx;
margin-left: 10rpx;
}
.line{
height: 100rpx;
width:2rpx;
margin-right: 38rpx;
background-image: url("http://nosqn.colorcun.com/sellerbaobao/l-o2.png");
background-size: 2rpx 16rpx;
}
.card_title{
height:40rpx;
font-size:28rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(187,113,50,1);
line-height:40rpx;
}
.card-date{
height:32rpx;
font-size:22rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(187,113,50,1);
line-height:32rpx;
margin-top: 10rpx;
}
.quan-pt{
background:rgba(255,227,227,1);
}
.quan-pt:after{
background-image: url("http://nosqn.colorcun.com/sellerbaobao/rs2.png");
}
.quan-pt .dot,.quan-pt .number{
color:rgba(204,17,17,1);
}
.quan-pt .line{
background-image: url("http://nosqn.colorcun.com/sellerbaobao/l-r2.png");
}
.quan-pt .card_title,.quan-pt .card-date{
color:rgba(187,80,50,1);
}
.quan.bg-f5f5f5{
border-right: 14rpx solid #f5f5f5;
}
.quan-disabled{
background:rgba(245,245,245,1);
}
.quan-disabled:after{
background-image: url("http://nosqn.colorcun.com/sellerbaobao/rx2.png");
}
.quan-disabled .dot,.quan-disabled .number{
color:rgba(136,136,136,1);
}
.quan-disabled .line{
background-image: url("http://nosqn.colorcun.com/sellerbaobao/l-g2.png");
}
.quan-disabled .card_title,.quan-disabled .card-date{
color:rgba(136,136,136,1);
}
\ No newline at end of file
... ...
... ... @@ -14,16 +14,16 @@
background-size: 100% 100%;
}
.share-img.wechat{
background-image: url("http://qn.colorcun.com/reserve/share/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201906251004331.png");
background-image: url("http://nosqn.colorcun.com/reserve/share/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201906251004331.png");
}
.share-img.quanzi{
background-image: url("http://qn.colorcun.com/reserve/share/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20190625100433.png");
background-image: url("http://nosqn.colorcun.com/reserve/share/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20190625100433.png");
}
.share-img.qrcode{
background-image: url("http://qn.colorcun.com/reserve/share/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201906251004332.png");
background-image: url("http://nosqn.colorcun.com/reserve/share/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201906251004332.png");
}
.share-img.hwq{
background-image: url("http://qn.colorcun.com/reserve/images/hwq.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/hwq.png");
}
.share-name{
margin-top: 20rpx;
... ...
... ... @@ -13,7 +13,7 @@
{{showStatusStr}}
</view>
<view class="more" wx:else="">
<image src="http://qn.colorcun.com/custom/lite-yd/image/click.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/click.png"></image>
</view>
</view>
</formids>
... ... @@ -39,7 +39,7 @@
</formids>
<view class="seller address flex-ll" catchtap="lookLocation" wx:if="{{hasAddress}}">
<view class="gps-icon">
<image src="http://qn.colorcun.com/custom/lite-yd/image/gps-icon.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/gps-icon.png"></image>
</view>
<view class="address-txt">
{{seller.map_address}}
... ...
... ... @@ -2,7 +2,7 @@
<view class="flex-ll">
<view class="stat">
<view class="bg" style="background-color: {{color}};width: {{statnum}}%"></view>
<image src="http://qn.colorcun.com/custom/lite-online/image/%E9%95%82%E7%A9%BA%E6%98%9F%E6%98%9F.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-online/image/%E9%95%82%E7%A9%BA%E6%98%9F%E6%98%9F.png"></image>
</view>
<view class="stat-text" wx:if="{{hasShowText}}">{{stat}} 分</view>
</view>
... ...
... ... @@ -51,13 +51,13 @@
color:rgba(121,79,40,1);
}
.tip.yellow .more{
background-image: url("http://qn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911181208295.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911181208295.png");
}
.tip.yellow .close{
background-image: url("http://qn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20191118120829.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20191118120829.png");
}
.tip.yellow .jian{
background-image: url("http://qn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911181208293.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911181208293.png");
}
.tip.black{
... ... @@ -82,11 +82,11 @@
right:150rpx;
margin-left: 0;
z-index: 9999;
background-image: url("http://qn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911181208292.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911181208292.png");
}
.tip.black .close{
background-image: url("http://qn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911181208291.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911181208291.png");
}
.tip.black .more{
background-image: url("http://qn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911181208294.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911181208294.png");
}
\ No newline at end of file
... ...
<!--components/tips/add-to-lite.wxml-->
<cover-view class="discount" style="top:{{statusBarHeightFull+a2lHeight}}px;width:{{hidden?'100rpx':'720rpx'}};" bindtap="gotoDiscount">
<cover-view style="position: relative;height: 100%;">
<cover-image class="discount-img" src="http://qn.colorcun.com/reserve/images/%E6%83%A03.png"></cover-image>
<cover-view style="position: relative;" wx:if="{{!hidden}}">
<cover-image src="http://qn.colorcun.com/reserve/images/%E4%BC%98%E6%83%A0%E6%B4%BB%E5%8A%A83.png"></cover-image>
<cover-view class="discount-view">
<cover-view class="text">精选折扣,周到安排用户专享</cover-view>
<cover-view class="close" catchtap="hide"></cover-view>
</cover-view>
</cover-view>
</cover-view>
</cover-view>
\ No newline at end of file
<view class="discount" style="top:{{statusBarHeightFull+a2lHeight}}px;width:{{hidden?'100rpx':'720rpx'}};" bindtap="gotoDiscount">
<view style="position: relative;height: 100%;">
<image class="discount-img" src="http://nosqn.colorcun.com/reserve/images/%E6%83%A03.png"></image>
<view style="position: relative;" wx:if="{{!hidden}}">
<image class="discount-imgmax"
src="http://nosqn.colorcun.com/reserve/images/%E4%BC%98%E6%83%A0%E6%B4%BB%E5%8A%A83.png"></image>
<view class="discount-view">
<view class="text">精选折扣,周到安排用户专享</view>
<view class="close" catchtap="hide"></view>
</view>
</view>
</view>
</view>
\ No newline at end of file
... ...
... ... @@ -40,4 +40,8 @@
left:0;
width: 88rpx;
height: 88rpx;
}
.discount-imgmax{
height: 122rpx;
width: 100%;
}
\ No newline at end of file
... ...
... ... @@ -7,6 +7,7 @@ const properties={
confirmColor:{type:String,value:'#fff'},
header:{type:String,value:'确认信息'},
body:{type:String,value:'确认信息'},
cla:String,
};
Component({
options: {
... ...
<!--components/showModal/showModal.wxml-->
<view class="mask flex-vc" hidden="{{!hasShow}}">
<view class="mask flex-vc {{cla}}" hidden="{{!hasShow}}">
<view class="showModal">
<view class="header">
{{opt.header}}
... ...
... ... @@ -57,4 +57,22 @@
.footer .button-none.confirm{
}
.footer .button-none.cancel{
}
.checkout .body{
font-size:32rpx;
font-weight:500;
color:rgba(53,53,53,1);
line-height:44rpx;
margin-top: 32rpx;
}
.checkout .confirm{
width:320rpx;
height:80rpx;
background:rgba(36,35,32,1);
border-radius:10rpx;
font-size:32rpx;
font-family:PingFangSC-Semibold,PingFang SC;
font-weight:600;
color:rgba(255,255,255,1);
line-height:80rpx;
}
\ No newline at end of file
... ...
// component/menu/addDelete.js
import util from '../../utils/util';
import App from '../../utils/api';
Component({
/**
* 组件的属性列表
*/
properties: {
filePath:String,
},
/**
* 组件的初始数据
*/
data: {
},
attached(){
},
ready () {
},
detached(){
},
/**
* 组件的方法列表
*/
methods: {
Invoice(){
wx.chooseInvoiceTitle({
success:(res)=>{
console.log('wx.chooseInvoiceTitle',res)
this.triggerEvent('event',res)
},
fail:(efail)=>{
console.log('wx.chooseInvoiceTitle',efail)
if(efail.errMsg== "chooseInvoiceTitle:fail cancel") return;
wx.showModal({
title: '授权提示',
content: '您拒绝了获取发票抬头,请点击确定打开授权',
confirmColor: '#199095',
cancelColor: '#999',
success: function (res) {
if (res.confirm) {
util.setting();
}
}
})
},
})
},
}
})
... ...
{
"component": true,
"usingComponents": {
"formids": "/components/formids/formids"
}
}
\ No newline at end of file
... ...
<view bindtap="Invoice" style="width: 100%;">
<slot></slot>
</view>
\ No newline at end of file
... ...
@import "../../app.wxss";
\ No newline at end of file
... ...
... ... @@ -3,6 +3,7 @@ import util from '../../utils/util';
import App from '../../utils/api';
const subscribe=[
'ZwAkHfP8xUvBZKJn4VXsjRxUDTuCMjWqd8lTsdCPdks',//包厢预订通知 状态、预订门店、包厢名称、备注
'Pf1iEkCA8TnfeqEMkf-_338U78d4Js36pk6sbB0yem0',//消费金额反馈提醒 消费总额、包间名称、餐厅名称、预订日期
]
Component({
/**
... ... @@ -76,11 +77,14 @@ Component({
tplid:accept.toString()
})
},800)
this.triggerEvent('event',{type:'success'})
}else{
util.toast('订阅失败,请在设置中打开','none')
this.triggerEvent('event',{type:'fail'})
}
},
fail:(efail)=>{
this.triggerEvent('event',{type:'fail'})
console.log('wx.requestSubscribeMessage.fail',efail)
if(efail.errMsg.indexOf('not ended')) return;
wx.showModal({
... ...
// pack-activity/pages/money.js
import util from '../../utils/util';
import App from '../../utils/api';
Page({
/**
* 页面的初始数据
*/
data: {
list:[],
status:1,
},
page:1,
size:10,
hasMore:true,
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.GetUserCard()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
if(this.hasMore){
this.page+=1
this.GetUserCard()
}
},
GetUserCard(){
App.Customer.GetUserCard({
status:this.data.status,
page:this.page,
size:this.size,
}).then(res=> {
let list=this.data.list
list=list.concat(res.data)
if(res.data.length<this.size){
this.hasMore=false
}
this.setData({
list: list
})
})
},
searchInit(){
this.page=1;
this.hasMore=true;
},
switchTab(e){
let status=util.attr(e,'status')
if(status==this.data.status) return;
this.searchInit();
this.setData({
status:status,
list:[],
})
setTimeout(()=>{
this.GetUserCard()
},0)
},
})
\ No newline at end of file
... ...
{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle":"black",
"usingComponents": {
"nav":"/components/nav/nav",
"quan":"/components/reserve/seller/quan"
}
}
\ No newline at end of file
... ...
<!--pack-activity/pages/money.wxml-->
<wxs src="../../utils/util.wxs" module="util" />
<nav hasHome>我的红包</nav>
<view class="tabs flex-lr">
<view class="tabs-item flex-vc {{status==2?'':'active'}}" bindtap="switchTab" data-status="1">
<view class="tabs-txt">已使用</view>
</view>
<view class="tabs-item flex-vc {{status==2?'active':''}}" bindtap="switchTab" data-status="2">
<view class="tabs-txt">已失效</view>
</view>
</view>
<view class="pages" wx:if="{{list.length>0}}">
<view class="list-view list-view-{{item.sid}}" wx:for="{{list}}" wx:key="list">
<view class="quan">
<quan quan="{{item}}" cla="quan-disabled">
<view class="button-use status-{{item.status}}"></view>
</quan>
<view class="quan-tips" wx:if="{{item.sid==0}}">适用于平台所有商家,预订包间、在线买单时使用</view>
<view class="quan-tips" wx:else="">仅可在预订包间、在线买单时使用</view>
</view>
</view>
</view>
<view class="flex-vc" wx:else="">
<view class="empty-img"></view>
<view class="empty-txt">{{status==1?'暂时没有已经使用的哦':'暂时没有已经失效的哦'}}</view>
</view>
... ...
/* pack-activity/pages/money.wxss */
.pages{
padding-bottom: 50rpx;
padding-top: 80rpx;
}
.list-view{
width: calc(100% - 40rpx);
margin-left: 20rpx;
background:rgba(255,255,255,1);
border-radius:20rpx;
box-sizing: border-box;
padding: 20rpx 20rpx 0rpx;
}
.sellername{
height:40rpx;
font-size:28rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(53,53,53,1);
line-height:40rpx;
}
.more{
margin-left: 10rpx;
}
.quan{
margin-top: 10rpx;
}
.quan-tips{
height:50rpx;
background:rgba(250,250,250,1);
border-radius:0rpx 0rpx 10rpx 10rpx;
font-size:22rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(174,174,174,1);
line-height:50rpx;
padding-left: 36rpx;
width: 100%;
box-sizing: border-box;
}
.button-use{
position: absolute;
top:-12rpx;
right:14rpx;
width:117rpx;
height:117rpx;
background-size: 100% 100%;
}
.status-1{
background-image: url("http://nosqn.colorcun.com/sellerbaobao/use.png");
}
.status-2{
background-image: url("http://nosqn.colorcun.com/sellerbaobao/lose.png");
}
.empty-img{
background-image: url("http://nosqn.colorcun.com/sellerbaobao/empty2.png");
background-size: 100% 100%;
width:302rpx;
height:408rpx;
margin-top: 300rpx;
}
.empty-txt{
height:44rpx;
font-size:32rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(53,53,53,1);
line-height:44rpx;
margin-top: 40rpx;
}
.tabs{
height: 80rpx;
line-height: 80rpx;
border-bottom: 2rpx solid #F5F5F5;
box-sizing: border-box;
width: 100%;
position: fixed;
background-color: #fefefe;
z-index: 2;
}
.tabs-item{
width: 50%;
height: 80rpx;
}
.tabs-txt{
height: 80rpx;
width: 120rpx;
box-sizing: border-box;
text-align: center;
}
.active .tabs-txt{
border-bottom: 4rpx solid #C0A369;
color:#C0A369;
}
\ No newline at end of file
... ...
// pack-activity/pages/money.js
import util from '../../utils/util';
import App from '../../utils/api';
Page({
/**
* 页面的初始数据
*/
data: {
list:[],
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
//this.GetUserCard()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
this.selectComponent('#getpos').getPos();
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
if(this.hasMore){
this.page+=1;
this.GetUserCard()
}
},
page:1,
size:10,
hasMore:true,
GetUserCard(){
App.Customer.GetUserCard({
page:this.page,
size:this.size,
status:0,
lat:this.location.latitude,
lng:this.location.longitude,
}).then(res=> {
let list=this.data.list
list=list.concat(res.data)
if(res.data.length<this.size){
this.hasMore=false;
}
this.setData({
list: list
})
})
},
useCard(e){
let sid=util.attr(e,'sid')
if(sid>0) {
wx.navigateTo({
url: '/pages/reserve/detail?id=' + sid + '&activeTab=reserve'
})
}else{
//lat=39.62420161&lng=118.1174469&multiIndex=0&centre_pos=39.62420161,118.1174469&hasSuggestion=
wx.navigateTo({
url: util.http_build_query({
lat:this.location.latitude,
lng:this.location.longitude,
centre_pos:`${this.location.latitude},${this.location.longitude}`,
keyword:' ',
isopen_md:1,
multiIndex:0,
},'/pages/reserve/indexList'),
})
}
},
location:null,
onpos(e){
console.log('onpos',e);
this.location=e.detail
this.GetUserCard();
},
})
\ No newline at end of file
... ...
{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle":"black",
"usingComponents": {
"nav":"/components/nav/nav",
"quan":"/components/reserve/seller/quan",
"getpos":"/components/userinfo/getpos"
}
}
\ No newline at end of file
... ...
<!--pack-activity/pages/money.wxml-->
<wxs src="../../utils/util.wxs" module="util" />
<nav hasHome>我的红包</nav>
<view class="pages" wx:if="{{list.length>0}}">
<view class="list-view list-view-{{item.sid}}" wx:for="{{list}}" wx:key="list">
<navigator url="/pages/reserve/detail?id={{item.sid}}" hover-class="navigator-hover" wx:if="{{item.sid>0}}">
<view class="sellername flex-lr">
<view>{{item.sellername}}</view>
<view class="flex-rr">
点击进店
<view class="more"></view>
</view>
</view>
</navigator>
<view class="quan" wx:for="{{item.card_list}}" wx:key="card_list" wx:for-item="quan">
<quan quan="{{quan}}" cla="{{item.sid==0?'quan-pt bg-f5f5f5':''}}">
<view class="button-use" bindtap="useCard" data-sid="{{item.sid}}">立即使用</view>
</quan>
<view class="quan-tips pingtai" wx:if="{{item.sid==0}}">适用于平台所有商家,预订包间、在线买单时使用</view>
<view class="quan-tips" wx:else="">仅可在预订包间、在线买单时使用</view>
</view>
</view>
</view>
<view class="flex-vc" wx:else="">
<view class="empty-img"></view>
<view class="empty-txt">哎呀一个红包都没有呢</view>
</view>
<navigator url="./list" hover-class="navigator-hover">
<view class="more-link flex-cc">
<view>查看红包历史记录</view>
<view class="more"></view>
</view>
</navigator>
<getpos bindpos="onpos" id="getpos" hasAllowFail hasAllowLoading="{{false}}"></getpos>
... ...
/* pack-activity/pages/money.wxss */
page{
background-color: #F5F5F5;
}
.pages{
padding-bottom: 150rpx;
}
.list-view{
width: calc(100% - 40rpx);
margin-left: 20rpx;
background:rgba(255,255,255,1);
border-radius:20rpx;
box-sizing: border-box;
padding: 20rpx 20rpx 40rpx;
margin-bottom: 20rpx;
}
.list-view-0{
background: none;
margin-top: 0rpx;
padding-bottom: 20rpx;
}
.sellername{
height:40rpx;
font-size:28rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(53,53,53,1);
line-height:40rpx;
}
.more{
margin-left: 10rpx;
}
.quan{
margin-top: 20rpx;
}
.quan-tips{
height:50rpx;
background:rgba(245,245,245,1);
border-radius:0rpx 0rpx 10rpx 10rpx;
font-size:22rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(136,136,136,1);
line-height:50rpx;
padding-left: 36rpx;
width: 100%;
box-sizing: border-box;
}
.pingtai{
background:rgba(255,255,255,1);
color:rgba(136,136,136,1);
}
.button-use{
width:120rpx;
height:44rpx;
background:linear-gradient(180deg,rgba(231,66,88,1) 0%,rgba(243,53,78,1) 100%);
border-radius:6rpx;
font-size:24rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(255,227,192,1);
line-height:44rpx;
text-align: center;
}
.more-link{
height:120rpx;
background:rgba(255,255,255,1);
box-shadow:0rpx -4rpx 10rpx 0rpx rgba(219,219,219,1);
position: fixed;
bottom:0;
left:0;
width: 100%;
line-height: 120rpx;
font-size:30rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(153,153,153,1);
}
.more-link .more{
margin-left: 20rpx;
}
.empty-img{
background-image: url("http://nosqn.colorcun.com/sellerbaobao/empty.png");
background-size: 100% 100%;
width:302rpx;
height:408rpx;
margin-top: 300rpx;
}
.empty-txt{
height:44rpx;
font-size:32rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(53,53,53,1);
line-height:44rpx;
margin-top: 40rpx;
}
\ No newline at end of file
... ...
// pack-activity/pages/index.js
import util from '../../utils/util';
import App from '../../utils/api';
Page({
/**
* 页面的初始数据
*/
data: {
activity:null,
count:0,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.options=options
let sys=wx.getSystemInfoSync();
if("wxwork"==sys.environment){
console.log('wxwork run pack-activity',options)
App.Task.GetTaskByOpenid({
...options
}).then(res=>{
this.options.id=options.aid
if(res.ret==200){
util.toast('恭喜获得红包','none')
setTimeout(()=>{
this.GetTaskInfos()
},300)
}
})
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
this.GetTaskInfos()
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
return {
title:this.data.activity.title,
path:'/pages/reserve/index',
imageUrl:this.data.activity.bgurl+'.share.jpg',
}
},
GetTaskInfos(){
App.Task.GetTaskInfos({
aid:this.options.id,
}).then(res=>{
let activity=res.data.activity
activity.list=res.data.task
let count=0
activity.list.forEach(t=>{
if(t.status==2){
count+=(t.price*1)
}
})
this.setData({
count:count.toFixed(2),
activity:activity
})
})
},
taskNextDo(e){
let index=util.attr(e,'index')
let task=this.data.activity.list[index]
let tid=task.id
,path=util.http_build_query({aid:this.data.activity.id,tid:tid},task.task_url||'/pack-activity/pages/yuding')
console.log(path)
if(task.status==0){
App.Task.SetTaskInfo({//领取任务
aid:this.data.activity.id,
tid:tid,
}).then(()=>{
this.GetTaskInfos()
wx.navigateTo({
url: path
})
})
}else if(task.status==1){
wx.navigateTo({
url: path
})
}else{
wx.navigateTo({
url: '/pack-activity/pack/pack'
})
}
},
})
\ No newline at end of file
... ...
{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle":"black",
"usingComponents": {
"nav":"/components/nav/nav"
}
}
\ No newline at end of file
... ...
<!--pack-activity/pages/index.wxml-->
<nav hasHome>周到安排</nav>
<view class="pages" style="background-color: {{activity.element}}">
<view class="banner">
<image mode="widthFix" src="{{activity.bgurl}}" style="width: 100%"></image>
<navigator url="/pack-activity/pages/rule?id={{activity.id}}" hover-class="navigator-hover">
<view class="guize">活动 规则</view>
</navigator>
<view class="nomoney" wx:if="{{activity.balance<=1000}}"></view>
</view>
<view class="content">
<navigator url="/pack-activity/pack/pack" hover-class="navigator-hover">
<view class="tips flex-lr">
<view>活动累计收入:{{count}}元</view>
<view class="flex-rr">
查看余额
<view class="more"></view>
</view>
</view>
</navigator>
<view class="list">
<view class="header flex-cc">
<view class="header-img lt"></view>
<view class="header-txt">完成任务得红包</view>
<view class="header-img gt"></view>
</view>
<view class="item flex-lr" wx:for="{{activity.list}}" wx:key="list">
<image class="icon" src="{{item.icon_url}}" mode="aspectFit"></image>
<view class="item-content">
<view class="item-title">{{item.title}}</view>
<view class="item-desc">{{item.desc}}</view>
</view>
<view class="opt" bindtap="taskNextDo" data-index="{{index}}" wx:if="{{activity.balance>1000}}">
<view class="opt-button status{{item.status}}">{{['领取','去完成','已完成'][item.status]}}</view>
<view class="opt-money">{{item.price}}元红包</view>
</view>
</view>
</view>
<view class="share-but">
<button class="button-none" open-type="share">分享活动</button>
</view>
</view>
</view>
... ...
/* pack-activity/pages/index.wxss */
.pages{
}
.banner{
width:100%;
background:linear-gradient(202deg,rgba(213,45,182,1) 0%,rgba(240,72,102,1) 100%);
position: relative;
}
.content{
height: 1020rpx;
width: calc(100% - 40rpx);
margin: 0 20rpx 0;
}
.tips{
width:100%;
height:50rpx;
background:rgba(53,53,53,0.3);
border-radius:30rpx;
box-sizing: border-box;
padding: 0 28rpx 0 40rpx;
font-size:24rpx;
font-weight:500;
color:rgba(255,255,255,1);
line-height:50rpx;
}
.more{
background-image: url("http://nosqn.colorcun.com/activity/images/more.png");
margin-left: 22rpx;
}
.guize{
width:40rpx;
height:120rpx;
background:rgba(53,53,53,0.29);
border-radius:10rpx 0rpx 0rpx 10rpx;
padding: 2rpx 10rpx 0;
box-sizing: border-box;
font-size:20rpx;
font-weight:500;
color:rgba(255,255,255,1);
line-height:28rpx;
position: absolute;
top:20rpx;
right:0;
}
.nomoney{
background-image: url("http://nosqn.colorcun.com/activity/images/nomoney.png");
width:176rpx;
height:144rpx;
right:24rpx;
bottom: 42rpx;
position: absolute;
background-size: 100% 100%;
}
.list{
background:rgba(255,255,255,1);
box-shadow:4rpx 4rpx 6rpx 4rpx rgba(218,61,69,1);
border-radius:20rpx;
margin-top: 20rpx;
box-sizing: border-box;
padding-top: 60rpx;
padding-bottom: 60rpx;
}
.header{
margin-bottom: 60rpx;
}
.header .header-txt{
width:236rpx;
height:44rpx;
font-size:32rpx;
font-weight:600;
color:rgba(204,17,39,1);
line-height:44rpx;
margin: 0 20rpx;
}
.header-img{
background-size: 100% 100%;
width: 70rpx;
height: 16rpx;
}
.header-img.gt{
background-image: url("http://nosqn.colorcun.com/activity/images/lt.png");
}
.header-img.lt{
background-image: url("http://nosqn.colorcun.com/activity/images/gt.png");
}
.list .item{
margin-bottom: 60rpx;
height: 94rpx;
padding: 0 20rpx;
box-sizing: border-box;
}
.list .item:last-child{
margin-bottom: 0;
}
.item .icon{
width: 94rpx;
height: 94rpx;
min-width: 94rpx;
}
.item-content{
margin-left: 10rpx;
width: 100%;
}
.opt{
width: 130rpx;
min-width: 130rpx;
}
.item-title{
height:44rpx;
font-size:32rpx;
font-weight:600;
color:rgba(53,53,53,1);
line-height:44rpx;
}
.item-desc{
height:34rpx;
font-size:24rpx;
font-weight:500;
color:rgba(153,153,153,1);
line-height:34rpx;
margin-top: 10rpx;
}
.opt-money{
height:28rpx;
font-size:20rpx;
font-weight:600;
color:rgba(230,34,57,1);
line-height:28rpx;
margin-top: 10rpx;
}
.opt-button{
box-sizing: border-box;
width:130rpx;
height:50rpx;
border-radius:25rpx;
border:2rpx solid rgba(235,41,65,1);
font-size:24rpx;
font-weight:600;
color:rgba(230,34,57,1);
line-height:50rpx;
text-align: center;
}
.opt-button.status0,.opt-button.status1{
background:linear-gradient(180deg,rgba(225,27,49,1) 0%,rgba(243,53,78,1) 100%);
box-shadow:0rpx 2rpx 4rpx 0rpx rgba(232,37,60,1),2rpx 0rpx 6rpx 0rpx rgba(255,172,171,1);
color:rgba(255,227,192,1);
}
.share-but{
width:400rpx;
height:80rpx;
background:linear-gradient(180deg,rgba(252,190,38,1) 0%,rgba(255,233,128,1) 100%);
box-shadow:0rpx 4rpx 8rpx 0rpx rgba(182,43,68,1);
border-radius:40rpx;
margin-top: 40rpx;
font-size:32rpx;
font-weight:600;
color:rgba(230,34,57,1);
line-height:80rpx;
text-align: center;
margin-left: calc(50% - 200rpx);
}
.share-but .button-none{
height: 80rpx;
line-height:80rpx;
}
\ No newline at end of file
... ...
// pack-activity/pages/money.js
import util from '../../utils/util';
import App from '../../utils/api';
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
})
\ No newline at end of file
... ...
{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle":"black",
"usingComponents": {
"nav":"/components/nav/nav"
}
}
\ No newline at end of file
... ...
<!--pack-activity/pages/money.wxml-->
<wxs src="../../utils/util.wxs" module="util" />
<nav hasHome>关注公众号</nav>
<view class="pages">
<view class="pages-view">
<view class="text">进入客服消息后,点击右下角快捷图片,长 按图片关注【周到安排】</view>
<image src="http://nosqn.colorcun.com/activity/images/kefux.png" mode="widthFix" style="width: 100%;"></image>
</view>
</view>
<view class="bottom">
<view class="bottom-view flex-vc">
<button class="button-love" open-type="contact"
send-message-title="关注公众号"
send-message-img="http://nosqn.colorcun.com/activity/images/kefu.jpg"
show-message-card>去客服页面关注</button>
<view class="tips">关注公众号,及时获取订包间专属优惠信息</view>
</view>
</view>
... ...
/* pack-activity/pages/money.wxss */
page{
background-color: #ffffff;
}
.pages{
background-image: url("http://nosqn.colorcun.com/activity/images/money-header.png");
background-size: 100% auto;
background-repeat: no-repeat;
min-height: 500rpx;
padding-top: 80rpx;
}
.pages-view{
width: calc(100% - 40rpx);
margin-left: 20rpx;
height:340rpx;
background:#ffffff;
border-radius:20rpx;
box-sizing: border-box;
padding: 40rpx 20rpx;
}
.text{
padding: 0 30rpx;
font-size:32rpx;
font-weight:600;
color:rgba(53,53,53,1);
line-height:44rpx;
margin-bottom: 80rpx;
}
.bottom{
position: fixed;
bottom: 0;
height: 220rpx;
width: 100%;
}
.bottom-view{
width: 100%;
}
.button-love{
width:674rpx;
height:80rpx;
background:linear-gradient(360deg,rgba(220,44,75,1) 0%,rgba(244,143,161,1) 100%);
border-radius:40rpx;
font-size:32rpx;
font-weight:600;
color:rgba(255,255,255,1);
line-height:80rpx;
letter-spacing:1rpx;
}
.tips{
margin-top: 24rpx;
height:36rpx;
font-size:26rpx;
font-weight:500;
color:rgba(153,153,153,1);
line-height:36rpx;
}
\ No newline at end of file
... ...
// pack-activity/pages/money.js
import util from '../../utils/util';
import App from '../../utils/api';
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
App.User.GetBalance().then(res=>{
this.setData({
user:res.data
})
})
App.User.GetConsume().then(res=>{
this.setData({
list:res.data
})
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
})
\ No newline at end of file
... ...
{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle":"black",
"usingComponents": {
"nav":"/components/nav/nav"
}
}
\ No newline at end of file
... ...
<!--pack-activity/pages/money.wxml-->
<wxs src="../../utils/util.wxs" module="util" />
<nav hasHome>我的余额</nav>
<view class="pages">
<view class="pages-view">
<view class="money-block">
<view class="money-views-top">
<view class="txt">我的余额</view>
</view>
<view class="money-views flex-bc">
<view class="money-number">{{user.price}}</view>
<view class="money-dw">元</view>
</view>
<navigator url="/pages/reserve/index" open-type="switchTab" hover-class="other-navigator-hover">
<view class="yuding flex-cc">
<view class="icon"></view>
去订包间
</view>
</navigator>
</view>
</view>
<view class="list-view" wx:if="{{list.length>0}}">
<view class="item" wx:for="{{list}}" wx:key="list">
<view class="flex-lr name">
<view>{{item.remark}}</view>
<view>{{item.type==1?'+':'-'}}{{item.consumeprice}}</view>
</view>
<view class="flex-lr date">
<view>{{util.unixtoTime(item.createtime,"MM-DD HH:II")}}</view>
<view>余额 {{item.currprice}}</view>
</view>
</view>
</view>
</view>
... ...
/* pack-activity/pages/money.wxss */
page{
background-color: #F5F5F5;
}
.pages{
/*background-image: url("http://nosqn.colorcun.com/activity/images/money-header.png");*/
background-image: url("http://nosqn.colorcun.com/activity/images/bg-black.png");
background-size: 100% auto;
background-repeat: no-repeat;
min-height: 500rpx;
padding-top: 80rpx;
}
.pages-view{
width: calc(100% - 40rpx);
margin-left: 20rpx;
height:340rpx;
background:#ffffff;
border-radius:20rpx;
box-sizing: border-box;
padding: 20rpx;
}
.money-block{
height:300rpx;
background:rgba(255,255,255,1);
border-radius:20rpx;
padding-top: 40rpx;
box-sizing: border-box;
}
.money-views-top{
width: 258rpx;
height: 40rpx;
font-size:28rpx;
margin-left: calc(50% - 126rpx);
text-align: center;
font-weight:500;
color:rgba(153,153,153,1);
line-height:40rpx;
position: relative;
}
.money-views-top:before{
position: absolute;
display: block;
content: "";
width: 100%;
height: 2rpx;
left:0;
top:19rpx;
background-color: #E0E0E0;
}
.money-views-top .txt{
width: 138rpx;
background-color: #ffffff;
left:60rpx;
position: absolute;
}
.money-views{
height:100rpx;
font-size:72rpx;
font-weight:600;
color:#353535;
line-height:100rpx;
margin-top: 10rpx;
}
.money-dw{
width:32rpx;
height:44rpx;
font-size:32rpx;
font-weight:600;
color:#353535;
line-height:44rpx;
margin-left: 20rpx;
}
.list-view{
width: calc(100% - 40rpx);
margin-left: 20rpx;
background:rgba(255,255,255,1);
border-radius:20rpx;
box-sizing: border-box;
padding: 2rpx 40rpx 0;
margin-top: 20rpx;
}
.item{
height: 166rpx;
box-sizing: border-box;
border-bottom: 2rpx solid #F5F5F5;
line-height: 166rpx;
padding-top: 40rpx;
}
.item:last-child{
border-bottom-width: 0;
}
.item .name{
height:44rpx;
font-size:32rpx;
font-weight:500;
color:rgba(53,53,53,1);
line-height:44rpx;
box-sizing: border-box;
}
.item .date{
height:34rpx;
font-size:24rpx;
font-weight:500;
color:rgba(153,153,153,1);
line-height:34rpx;
margin-top: 10rpx;
}
.yuding{
width:320rpx;
height:70rpx;
background:linear-gradient(360deg,rgba(192,163,105,1) 0%,rgba(252,210,167,1) 100%);
border-radius:35rpx;
font-size:32rpx;
font-family:PingFangSC-Semibold,PingFang SC;
font-weight:600;
color:rgba(123,81,42,1);
line-height:70rpx;
margin-left: calc(50% - 160rpx);
margin-top: 40rpx;
}
.yuding .icon{
background-size: 100% 100%;
width: 30rpx;
height: 30rpx;
background-image: url("http://nosqn.colorcun.com/activity/images/addr.png");
margin-right: 20rpx;
}
\ No newline at end of file
... ...
// pack-activity/pages/money.js
import util from '../../utils/util';
import App from '../../utils/api';
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
})
\ No newline at end of file
... ...
{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle":"black",
"usingComponents": {
"nav":"/components/nav/nav"
}
}
\ No newline at end of file
... ...
<!--pack-activity/pages/money.wxml-->
<wxs src="../../utils/util.wxs" module="util" />
<nav hasHome>添加企业微信</nav>
<view class="pages">
<view class="pages-view">
<view class="text">【周到安排】已为您分配专属客服,订包间相关的任何问题,都可以撩我</view>
<image src="http://nosqn.colorcun.com/activity/images/kefux.png" mode="widthFix" style="width: 100%;"></image>
</view>
</view>
<view class="bottom">
<view class="bottom-view flex-vc">
<button class="button-love" open-type="contact"
send-message-title="添加企业微信"
send-message-img="http://nosqn.colorcun.com/activity/images/kefu.jpg"
show-message-card>去客服页面关注</button>
<view class="tips">添加企业微信,及时获知红包领取详情</view>
</view>
</view>
... ...
/* pack-activity/pages/money.wxss */
page{
background-color: #ffffff;
}
.pages{
background-image: url("http://nosqn.colorcun.com/activity/images/money-header.png");
background-size: 100% auto;
background-repeat: no-repeat;
min-height: 500rpx;
padding-top: 80rpx;
}
.pages-view{
width: calc(100% - 40rpx);
margin-left: 20rpx;
height:340rpx;
background:#ffffff;
border-radius:20rpx;
box-sizing: border-box;
padding: 40rpx 20rpx;
}
.text{
padding: 0 30rpx;
font-size:32rpx;
font-weight:600;
color:rgba(53,53,53,1);
line-height:44rpx;
margin-bottom: 80rpx;
}
.bottom{
position: fixed;
bottom: 0;
height: 220rpx;
width: 100%;
}
.bottom-view{
width: 100%;
}
.button-love{
width:674rpx;
height:80rpx;
background:linear-gradient(360deg,rgba(220,44,75,1) 0%,rgba(244,143,161,1) 100%);
border-radius:40rpx;
font-size:32rpx;
font-weight:600;
color:rgba(255,255,255,1);
line-height:80rpx;
letter-spacing:1rpx;
}
.tips{
margin-top: 24rpx;
height:36rpx;
font-size:26rpx;
font-weight:500;
color:rgba(153,153,153,1);
line-height:36rpx;
}
\ No newline at end of file
... ...
// pack-activity/pages/index.js
import util from '../../utils/util';
import App from '../../utils/api';
Page({
/**
* 页面的初始数据
*/
data: {
activity:null,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.options=options
let sys=wx.getSystemInfoSync();
this.setData({
height:sys.windowHeight,
})
this.GetTaskInfos()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
this.GetTaskInfos()
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
return {
title:this.data.activity.title,
path:'/pages/reserve/index',
imageUrl:this.data.activity.bgurl+'.share.jpg',
}
},
GetTaskInfos(){
App.Task.GetTaskInfos({
aid:this.options.id,
}).then(res=>{
let activity=res.data.activity
activity.list=res.data.task
let count=0
activity.list.forEach(t=>{
if(t.status==2){
count+=(t.price*1)
}
})
this.setData({
count:count.toFixed(2),
activity:activity
})
})
},
taskNextDo(e){
let index=util.attr(e,'index')
let task=this.data.activity.list[index]
let tid=task.id
,path=util.http_build_query({aid:this.data.activity.id,tid:tid},task.task_url||'/pack-activity/pages/yuding')
console.log(path)
if(task.status==0){
App.Task.SetTaskInfo({//领取任务
aid:this.data.activity.id,
tid:tid,
}).then(()=>{
this.GetTaskInfos()
wx.navigateTo({
url: path
})
})
}else if(task.status==1){
wx.navigateTo({
url: path
})
}else{
wx.navigateTo({
url: '/pack-activity/pack/pack'
})
}
},
})
\ No newline at end of file
... ...
{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle":"black",
"usingComponents": {
"nav":"/components/nav/nav"
}
}
\ No newline at end of file
... ...
<!--pack-activity/pages/index.wxml-->
<nav hasHome>周到安排</nav>
<view class="pages"
wx:if="{{activity}}"
style="background-color: {{activity.element}};background-image:url('{{activity.bgurl}}.rule.png')">
<view class="content">
<view class="list">
<view class="header flex-cc">
<view class="header-img lt"></view>
<view class="header-txt">活动规则</view>
<view class="header-img gt"></view>
</view>
<view class="item">
<text space="nbsp" class="desc">{{activity.desc}}</text>
</view>
</view>
</view>
</view>
... ...
/* pack-activity/pages/index.wxss */
.pages{
padding: 78rpx 0 52rpx;
background-size: 100% auto;
background-repeat: no-repeat;
}
.content{
width: calc(100% - 40rpx);
margin: 0 20rpx 0;
}
.list{
background:rgba(255,255,255,1);
box-shadow:4rpx 4rpx 6rpx 4rpx rgba(218,61,69,1);
border-radius:10rpx;
padding-top: 72rpx;
padding-bottom: 44rpx;
}
.header{
margin-bottom: 40rpx;
}
.header .header-txt{
width:128rpx;
height:44rpx;
font-size:32rpx;
font-weight:600;
color:rgba(53,53,53,1);
line-height:44rpx;
margin: 0 20rpx;
}
.header-img{
background-size: 100% 100%;
width: 88rpx;
height: 8rpx;
}
.header-img.gt{
background-image: url("http://nosqn.colorcun.com/activity/images/rule.gt.png");
}
.header-img.lt{
background-image: url("http://nosqn.colorcun.com/activity/images/rule.lt.png");
}
.list .item{
margin-bottom: 60rpx;
padding: 0 20rpx;
box-sizing: border-box;
}
.list .item:last-child{
margin-bottom: 0;
}
.item .icon{
width: 94rpx;
height: 94rpx;
min-width: 94rpx;
}
.item-content{
margin-left: 10rpx;
width: 100%;
}
.desc{
font-size:28rpx;
font-weight:500;
color:rgba(53,53,53,1);
line-height:40rpx;
}
\ No newline at end of file
... ...
// pack-activity/pages/index.js
import util from '../../utils/util';
import App from '../../utils/api';
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.options=options
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
})
\ No newline at end of file
... ...
{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle":"black",
"usingComponents": {
"nav":"/components/nav/nav"
}
}
\ No newline at end of file
... ...
<!--pack-activity/pages/index.wxml-->
<nav hasHome>订包间</nav>
<view class="pages">
<image src="http://nosqn.colorcun.com/activity/images/yuding.png" style="width: 100%;" mode="widthFix"></image>
<navigator url="/pages/reserve/index" open-type="switchTab" hover-class="other-navigator-hover">
<view class="content flex-cc">
<view class="share-but">
<button class="button-none">去订包间</button>
</view>
</view>
</navigator>
</view>
... ...
/* pack-activity/pages/index.wxss */
.pages{
}
.content{
position: fixed;
bottom: 80rpx;
width: 100%;
}
.share-but{
height:80rpx;
background:linear-gradient(360deg,rgba(220,44,75,1) 0%,rgba(244,143,161,1) 100%);
border-radius:40rpx;
font-size:32rpx;
font-weight:600;
color:rgba(255,255,255,1);
line-height:44rpx;
letter-spacing:1rpx;
text-align: center;
width: calc(100% - 76rpx);
}
.share-but .button-none{
height: 80rpx;
line-height:80rpx;
}
\ No newline at end of file
... ...
... ... @@ -210,7 +210,8 @@ image{
}
.Medium{
font-weight: 400;
font-family:PingFangSC-Medium,PingFang SC;
font-weight: 500;
}
.button-none {
display: inline-block;
... ... @@ -237,7 +238,7 @@ image{
.more{
width: 12rpx;
height: 22rpx;
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/click.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/click.png");
background-size: 100%;
min-width: 12rpx;
}
... ...
<view style="height:{{height}}px;" class="nothing-page flex-vc bg-white">
<image class="nothing-booklist" src="http://qn.colorcun.com/custom/lite-yd/image/nothing-booklist.png"></image>
<image class="nothing-booklist" src="http://nosqn.colorcun.com/custom/lite-yd/image/nothing-booklist.png"></image>
<view class="black-font font34r smooth nothing-content">暂无内容</view>
</view>
\ No newline at end of file
... ...
... ... @@ -7,15 +7,15 @@ Component({
data: {
list: [
{
imgurl: 'http://qn.colorcun.com/custom/lite-yd/image/notice-wx.png',
imgurl: 'http://nosqn.colorcun.com/custom/lite-yd/image/notice-wx.png',
title: '微信'
},
{
imgurl: 'http://qn.colorcun.com/custom/lite-yd/image/notice-msg.png',
imgurl: 'http://nosqn.colorcun.com/custom/lite-yd/image/notice-msg.png',
title: '短信'
},
{
imgurl: 'http://qn.colorcun.com/custom/lite-yd/image/notice-call.png',
imgurl: 'http://nosqn.colorcun.com/custom/lite-yd/image/notice-call.png',
title: '电话'
}
],
... ... @@ -26,10 +26,10 @@ Component({
let list=this.data.list
let pl = this.data.bookInfo.phone ? this.data.bookInfo.phone.length : 0;
if (pl < 3) {
list[2].imgurl='http://qn.colorcun.com/custom/lite-yd/image/notice-call-disabled.png'
list[2].imgurl='http://nosqn.colorcun.com/custom/lite-yd/image/notice-call-disabled.png'
}
if (!/^1\d{10}$/.test(this.data.bookInfo.phone)) {
list[1].imgurl='http://qn.colorcun.com/custom/lite-yd/image/notice-msg-disabled.png'
list[1].imgurl='http://nosqn.colorcun.com/custom/lite-yd/image/notice-msg-disabled.png'
}
this.setData({
list:list,
... ...
<view class="selected-time flex-cc">
<view class="flex-vc padding-topbottom padding-left25" bindtap="reducePnum">
<image src="http://qn.colorcun.com/custom/lite-yd/image/reduce-act.png" class="select-act"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/reduce-act.png" class="select-act"></image>
</view>
<input value="{{pnum}}" class="select-input flex-cc green-font font34r" bindunput="editpnum"/>
<view class="flex-vc padding-topbottom padding-right25" bindtap="addPnum">
<image src="http://qn.colorcun.com/custom/lite-yd/image/add-act.png" class="select-act"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/add-act.png" class="select-act"></image>
</view>
</view>
\ No newline at end of file
... ...
... ... @@ -3,7 +3,7 @@
<view class="cancel" catchtap="catchtap">
<view class="flex-rr">
<view class="close" bindtap="hide">
<image src="http://qn.colorcun.com/custom/lite-yd/image/close.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/close.png"></image>
</view>
</view>
<view class="title Semibold flex-vc">请选择取消原因</view>
... ...
... ... @@ -39,32 +39,32 @@
height: 100%;
}
.tabBar .reserve{
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/seller-tabs2-reserve.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/seller-tabs2-reserve.png");
}
.tabBar .checked .reserve{
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/seller-tabs2-reserve-checked.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/seller-tabs2-reserve-checked.png");
}
.tabBar .book{
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/seller-tabs2-book.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/seller-tabs2-book.png");
}
.tabBar .checked .book {
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/seller-tabs2-book-checked.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/seller-tabs2-book-checked.png");
}
.tabBar .setting{
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/seller-tabs2-setting.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/seller-tabs2-setting.png");
}
.tabBar .checked .setting {
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/seller-tabs2-setting-checked.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/seller-tabs2-setting-checked.png");
}
.tabBar .board{
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/seller-tabs2-boards.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/seller-tabs2-boards.png");
}
.tabBar .checked .board {
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/seller-tabs2-boards-checked.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/seller-tabs2-boards-checked.png");
}
.tabBar .order{
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/order.png?2");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/order.png?2");
}
.tabBar .checked .order {
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/order-checked.png?2");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/order-checked.png?2");
}
... ...
... ... @@ -13,7 +13,7 @@
bindtap="calendarShow">
<view style="width: 80%" class="item-text">{{checked==2?util.unixtoTime(list[2].time,"MM-DD"):'其他'}}</view>
<image
src="http://qn.colorcun.com/custom/lite-yd/image/date{{checked==2?'.selected':''}}.png"
src="http://nosqn.colorcun.com/custom/lite-yd/image/date{{checked==2?'.selected':''}}.png"
style="min-width: 36rpx;width: 36rpx;height: 36rpx; margin-right: 22rpx;"></image>
</view>
</view>
... ...
... ... @@ -7,7 +7,7 @@
style="height:100%;" wx:if="{{timePickerMask}}">
<view class="timePicker">
<view class="flex-rr">
<image class="close" src="http://qn.colorcun.com/custom/lite-yd/image/add-act.png" bindtap="calendarClose"></image>
<image class="close" src="http://nosqn.colorcun.com/custom/lite-yd/image/add-act.png" bindtap="calendarClose"></image>
</view>
<view class="flex-cc" style="margin-bottom: 56rpx; font-size: 30rpx;">
<view bindtap="calendarClose">{{ddate_solt==1?'午市':ddate_solt==2?'晚市':'早市'}}</view>
... ...
// pack-book/components/checkout/confirm-price.js
import util from '../../../utils/util'
import App from '../../../utils/api'
Component({
/**
* 组件的属性列表
*/
properties: {
price:Number,
},
/**
* 组件的初始数据
*/
data: {
hidden:true,
},
/**
* 组件的方法列表
*/
methods: {
show(rid,files){
if(this.data.price<=0){
return util.toast('请设置金额','none')
}
let bill_list=[]
if(files.length>0){
let hasNok=false
files.some(f=>{
if(f.progress==100 && f.remote && f.remote.url){
bill_list.push(f.remote.url)
}else{
hasNok=true
}
})
if(hasNok){
return util.toast('请等待图片上传完成','none')
}
}
this.rid=rid
this.bill_list=bill_list
this.hasSubmit=true
this.setData({
hidden:false,
})
},
hide(){
this.setData({
hidden:true,
})
},
hasSubmit:true,
submit(){
this.hide()
if(!this.hasSubmit) return;
this.hasSubmit=false,
App.Customer.UpdateOrderInfo({
rid:this.rid,
bill_list:JSON.stringify(this.bill_list),
price:this.data.price,
}).then(()=>{
this.triggerEvent('event')
this.hasSubmit=true
}).catch(()=>{
this.triggerEvent('event')
this.hasSubmit=true
})
},
}
})
... ...
{
"component": true,
"usingComponents": {}
}
\ No newline at end of file
... ...
<!--pack-book/components/checkout/confirm-price.wxml-->
<view class="mask flex-vc" wx:if="{{!hidden}}">
<view class="confirm-price">
<view class="title flex-rr" bindtap="hide">
<view class="bg-img bg-c1"></view>
</view>
<view class="center flex-vc">
<view class="tips">应收金额</view>
<view class="price">¥ {{price}}</view>
<view class="submit" bindtap="submit">确认发送</view>
</view>
</view>
</view>
... ...
/* pack-book/components/checkout/confirm-price.wxss */
@import "/app.wxss";
.bg-img{
background-image: url("http://nosqn.colorcun.com/checkout/images/css_sprites.png");
zoom: 33.5%;
}
.bg-c1 {
width: 36px; height: 36px;
background: url('http://nosqn.colorcun.com/checkout/images/css_sprites.png') -209px -111px;
}
.confirm-price{
width: calc(100% - 144rpx);
height:426rpx;
background:rgba(255,255,255,1);
border-radius:10rpx;
}
.title{
height: 92rpx;
line-height: 92rpx;
padding: 0 36rpx;
}
.tips{
height:42rpx;
font-size:30rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(112,112,112,1);
line-height:42rpx;
}
.price{
height:92rpx;
font-size:66rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(53,53,53,1);
line-height:92rpx;
margin-top: 16rpx;
}
.submit{
width:334rpx;
height:84rpx;
background:rgba(25,144,149,1);
border-radius:10rpx;
font-size:34rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(254,254,254,1);
line-height:84rpx;
text-align: center;
margin-top: 40rpx;
}
\ No newline at end of file
... ...
... ... @@ -11,7 +11,7 @@
<view class="single-date gray-deep-font flex-vc">
<view class="font30r">更多</view>
<view class="date-num flex-vc">
<image src="http://qn.colorcun.com/custom/lite-yd/image/more-dot.png" class="more-dot"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/more-dot.png" class="more-dot"></image>
</view>
</view>
</view>
... ...
... ... @@ -31,7 +31,7 @@
</view>
<image
src="http://qn.colorcun.com/custom/lite-yd/image/pnum{{form.pnum<6 || form.pnum>10?'.selected':''}}.png"
src="http://nosqn.colorcun.com/custom/lite-yd/image/pnum{{form.pnum<6 || form.pnum>10?'.selected':''}}.png"
style="min-width: 36rpx;width: 36rpx;height: 36rpx; margin-right: 22rpx;"></image>
</view>
</view>
... ... @@ -45,7 +45,7 @@
<view>可订桌位<text wx:if="{{tables.length>0}}"> ({{tablesLength}})</text></view>
<view class="flex-rr advice-more" bindtap="selectdesk">
<view style="padding-right:20rpx;" class="gray-deep-font font26r">更多</view>
<image src="http://qn.colorcun.com/custom/lite-yd/image/click.png" class="icon12-22"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/click.png" class="icon12-22"></image>
</view>
</view>
<view class="advice-desk-detail flex-rr" wx:if="{{tables.length>0}}">
... ... @@ -132,7 +132,7 @@
style="height:100%;" wx:if="{{CustomRemarkMoreMask}}">
<view class="timePicker" catchtap="catchtap">
<view class="flex-rr">
<image class="close" src="http://qn.colorcun.com/custom/lite-yd/image/add-act.png" bindtap="CustomRemarkMore"></image>
<image class="close" src="http://nosqn.colorcun.com/custom/lite-yd/image/add-act.png" bindtap="CustomRemarkMore"></image>
</view>
<view class="flex-cc" style="margin-bottom: 56rpx; font-size: 30rpx;">
<view bindtap="calendarClose">更多标签</view>
... ...
... ... @@ -210,7 +210,21 @@ Page({
}
*/
this.detailData.rdateStr = util.unixtoTime(this.detailData.ddate, tpl)
if(this.detailData.order_info && this.detailData.order_info.status==3){ //已支付
let ores = await App.Customer.GetOrderInfo({rid: id});
let discount={pt:0,se:0}
ores.data.discount.forEach(q=>{
if(q.checked){
if(q.owner==1){//平台
discount.pt+=parseFloat(q.price)
}else{
discount.se+=parseFloat(q.price)
}
}
})
//this.detailData.order_info.price=(this.detailData.order_info.price-discount.se).toFixed(2)
this.detailData.order_info.price=(this.detailData.order_info.should_price*1+discount.pt*1).toFixed(2)
}
this.setData({
tables: res.data.tables,
bookInfo: this.detailData,
... ...
... ... @@ -31,7 +31,7 @@
<view class="text">{{bookInfo.status==0?'待处理':'已拒绝'}}</view>
</view>
<view class="reserve-status-tip {{bookInfo.type==1?'online':''}}" wx:elif="{{bookInfo.status}}">
<image src="http://qn.colorcun.com/custom/lite-yd/image/reserve-status-{{bookInfo.status==5?1:bookInfo.status}}.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/reserve-status-{{bookInfo.status==5?1:bookInfo.status}}.png"></image>
</view>
<view class="flex-lr order-desk" wx:if="{{bookInfo.type==1}}">
<view class="flex-re" style="width:100%;flex-wrap:wrap;">
... ... @@ -107,7 +107,33 @@
<view class="black-font font34r">{{bookInfo.abolition==2?'顾客在线取消':bookInfo.cancel.uname}}</view>
</view>
</view>
<navigator url="{{bookInfo.invoice.type==0?'../checkout/invoice?rid='+bookInfo.id:''}}" wx:if="{{bookInfo.invoice}}">
<view class="order-info">
<view class="flex-lr order-detail">
<view class="gray-deep-font font30r">发票抬头</view>
<view class="flex-lr black-font font32r">
<view class="" style="text-align: right">
<view class="Medium">{{bookInfo.invoice.title}}</view>
<view class="gray-deep-font font28r"
wx:if="{{bookInfo.invoice.type==0}}"
style="margin-top: 10rpx;">税号:{{bookInfo.invoice.taxnumber}}</view>
</view>
<view class="more" style="margin-left: 20rpx" wx:if="{{bookInfo.invoice.type==0}}"></view>
</view>
</view>
</view>
</navigator>
<navigator url="../checkout/index?rid={{bookInfo.id}}" wx:if="{{bookInfo.order_info.status==3}}">
<view class="order-info">
<view class="flex-lr order-detail">
<view class="gray-deep-font font30r">实收金额:<text class="black-font font32r Medium">¥ {{bookInfo.order_info.price}}</text></view>
<view class="flex-lr gray-deep-font font28r">
查看明细
<view class="more" style="margin-left: 20rpx"></view>
</view>
</view>
</view>
</navigator>
<view style="height: 250rpx;"></view>
<!--通知预订人-->
... ...
... ... @@ -5,11 +5,11 @@
<view class="book-page bg_white">
<view class="book-search flex-lr">
<view class="flex-ll book-search-left">
<image src="http://qn.colorcun.com/custom/lite-yd/image/search.png" class="search-icon"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/search.png" class="search-icon"></image>
<input placeholder="桌位/客户姓名/手机号" placeholder-class="font30r gray-font smooth" class="font30r black-font smooth search-input" value="{{keywords}}" bindinput="searchinput" confirm-type="search" bindconfirm="searchbook"/>
</view>
<view bindtap="exportFile" class="exportFile flex-vc">
<image src="http://qn.colorcun.com/custom/lite-yd/image/export.png" class="search-icon"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/export.png" class="search-icon"></image>
<view>导出</view>
</view>
</view>
... ... @@ -48,7 +48,7 @@
<view class="book-list-thead flex-lr font34r black-font">
<view>桌号</view>
<view class="flex-cc">客户姓名</view>
<view class="flex-cc" bindtap="timeorder">时间<image src="http://qn.colorcun.com/custom/lite-yd/image/direction.png" class="icon22-26" background-size="cover"></image></view>
<view class="flex-cc" bindtap="timeorder">时间<image src="http://nosqn.colorcun.com/custom/lite-yd/image/direction.png" class="icon22-26" background-size="cover"></image></view>
<view class="flex-rr">操作</view>
</view>
<view class="book-list" style="padding-bottom:118rpx;">
... ...
... ... @@ -35,7 +35,7 @@
</block>
<view class="flex-rr advice-more" bindtap="selectdesk">
<view style="padding-right:30rpx;" class="gray-deep-font font26r">更多</view>
<image src="http://qn.colorcun.com/custom/lite-yd/image/click.png" class="icon12-22"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/click.png" class="icon12-22"></image>
</view>
</view>
</view>
... ... @@ -57,7 +57,7 @@
<block wx:if="{{reminder}}">
<view class="flex-rr" style="height:100rpx;">
<view style="color:#E14553;" class="font28r">{{reminder}}</view>
<image src="http://qn.colorcun.com/custom/lite-yd/image/name-have.png" class="phone-reminder"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/name-have.png" class="phone-reminder"></image>
</view>
</block>
</view>
... ...
... ... @@ -21,7 +21,7 @@
<formids class="back" >
<view style="min-width: 100rpx;" class="flex-ll">
<image class="back-image"
src="http://qn.colorcun.com/custom/lite-yd/image/back-light.png"></image>
src="http://nosqn.colorcun.com/custom/lite-yd/image/back-light.png"></image>
</view>
</formids>
<block wx:if="{{false}}" wx:for="{{tpls}}" wx:key="tpls.key">
... ...
... ... @@ -25,10 +25,10 @@ image{
}
.buts-share{
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E5%8F%91%E9%82%80%E8%AF%B7%E5%87%BD.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E5%8F%91%E9%82%80%E8%AF%B7%E5%87%BD.png");
}
.buts-share.customer{
background-image: url("http://qn.colorcun.com/manager-invitation/wx/%E7%A1%AE%E8%AE%A4%E6%94%B6%E5%88%B0.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx/%E7%A1%AE%E8%AE%A4%E6%94%B6%E5%88%B0.png");
}
.shangwu{
... ... @@ -40,12 +40,12 @@ image{
.shangwu .invit-logo.owner{
width: 380rpx;
height: 200rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92.png");
}
.shangwu .invit-logo.customer{
width: 352rpx;
height: 164rpx;
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/invit-logo.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/invit-logo.png");
}
... ... @@ -61,12 +61,12 @@ image{
.wenxin .invit-logo.owner{
width: 340rpx;
height: 184rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92-%E6%B8%A9%E9%A6%A8.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92-%E6%B8%A9%E9%A6%A8.png");
}
.wenxin .invit-logo.customer{
width: 344rpx;
height: 198rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/wx/%E9%82%80%E8%AF%B7%E5%87%BD.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx/%E9%82%80%E8%AF%B7%E5%87%BD.png");
}
.back{
... ...
... ... @@ -35,7 +35,7 @@
</view>
</block>
<view wx:else="" class="history-is-empty flex-vc Medium">
<image src="http://qn.colorcun.com/custom/lite-yd/image/history-is-empty.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/history-is-empty.png"></image>
<view>暂时还没订单</view>
</view>
<view wx:if="{{!hasMore}}" class="flex-vc hasMore">已经到底了</view>
... ...
... ... @@ -16,7 +16,7 @@
</view>
</block>
<view wx:else="" class="history-is-empty flex-vc Medium">
<image src="http://qn.colorcun.com/custom/lite-yd/image/history-is-empty.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/history-is-empty.png"></image>
<view>暂时还没有客户</view>
</view>
<view wx:if="{{!hasMore}}" class="row flex-vc">已经到底了</view>
... ...
/* pages/book/setting/index.wxss */
/*
http://qn.colorcun.com/custom/lite-yd/image/icon-zk.png
http://qn.colorcun.com/custom/lite-yd/image/icon-cz.png
http://nosqn.colorcun.com/custom/lite-yd/image/icon-zk.png
http://nosqn.colorcun.com/custom/lite-yd/image/icon-cz.png
*/
.pages{
width: 90%;
... ...
... ... @@ -31,7 +31,7 @@
</view>
<image
src="http://qn.colorcun.com/custom/lite-yd/image/pnum{{form.pnum<6 || form.pnum>10?'.selected':''}}.png"
src="http://nosqn.colorcun.com/custom/lite-yd/image/pnum{{form.pnum<6 || form.pnum>10?'.selected':''}}.png"
style="min-width: 36rpx;width: 36rpx;height: 36rpx; margin-right: 22rpx;"></image>
</view>
</view>
... ... @@ -45,7 +45,7 @@
<view>可订桌位<text wx:if="{{tables.length>0}}"> ({{tablesLength}})</text></view>
<view class="flex-rr advice-more" bindtap="selectdesk">
<view style="padding-right:20rpx;" class="gray-deep-font font26r">更多</view>
<image src="http://qn.colorcun.com/custom/lite-yd/image/click.png" class="icon12-22"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/click.png" class="icon12-22"></image>
</view>
</view>
<view class="advice-desk-detail flex-rr" wx:if="{{tables.length>0}}">
... ... @@ -133,7 +133,7 @@
style="height:100%;" wx:if="{{CustomRemarkMoreMask}}">
<view class="timePicker" catchtap="catchtap">
<view class="flex-rr">
<image class="close" src="http://qn.colorcun.com/custom/lite-yd/image/add-act.png" bindtap="CustomRemarkMore"></image>
<image class="close" src="http://nosqn.colorcun.com/custom/lite-yd/image/add-act.png" bindtap="CustomRemarkMore"></image>
</view>
<view class="flex-cc" style="margin-bottom: 56rpx; font-size: 30rpx;">
<view bindtap="calendarClose">更多标签</view>
... ...
/* pages/book/setting/index.wxss */
/*
http://qn.colorcun.com/custom/lite-yd/image/icon-zk.png
http://qn.colorcun.com/custom/lite-yd/image/icon-cz.png
http://nosqn.colorcun.com/custom/lite-yd/image/icon-zk.png
http://nosqn.colorcun.com/custom/lite-yd/image/icon-cz.png
*/
.header{
background-color: #199095;
... ... @@ -45,7 +45,7 @@ http://qn.colorcun.com/custom/lite-yd/image/icon-cz.png
margin-left: 20rpx;
}
.share-but{
background-image: url("http://qn.colorcun.com/reserve/share/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20190625162307.png");
background-image: url("http://nosqn.colorcun.com/reserve/share/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20190625162307.png");
width: 52rpx;
height: 52rpx;
background-size: 100% 100%;
... ...
/* pages/book/setting/sms.wxss */
/*
http://qn.colorcun.com/custom/lite-yd/image/icon-zk.png
http://qn.colorcun.com/custom/lite-yd/image/icon-cz.png
http://nosqn.colorcun.com/custom/lite-yd/image/icon-zk.png
http://nosqn.colorcun.com/custom/lite-yd/image/icon-cz.png
*/
.header{
height: 402rpx;
... ... @@ -44,7 +44,7 @@ http://qn.colorcun.com/custom/lite-yd/image/icon-cz.png
.header .info .button .icon-cz{
width: 74rpx;
height: 40rpx;
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/icon-cz.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/icon-cz.png");
background-size: 100%;
position: absolute;
top:-10rpx;
... ...
... ... @@ -27,7 +27,7 @@
.block .icon-zk{
width: 104rpx;
height: 54rpx;
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/icon-zk.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/icon-zk.png");
background-size: 100%;
position: absolute;
top:-10rpx;
... ...
... ... @@ -38,11 +38,11 @@
</view>
<view class="bottom-opt flex-lr">
<view class="bottom-opt-but flex-cc">
<image src="http://qn.colorcun.com/custom/lite-yd/image/service.png" style="width: 40rpx;"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/service.png" style="width: 40rpx;"></image>
<service><view class="txt">电话咨询</view></service>
</view>
<view class="bottom-opt-but flex-cc" bindtap="showQuestion">
<image src="http://qn.colorcun.com/custom/lite-yd/image/question.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/question.png"></image>
<view class="txt">常见问题</view>
</view>
</view>
... ...
... ... @@ -7,7 +7,7 @@
</view>
</block>
<view wx:else="" class="history-is-empty flex-vc Medium">
<image src="http://qn.colorcun.com/custom/lite-yd/image/history-is-empty.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/history-is-empty.png"></image>
<view>暂时还没有历史记录</view>
</view>
<view wx:if="{{!hasMore}}" class="list-rows">已经到底了</view>
... ...
// pack-book/pages/checkout/index.js
import util from '../../../utils/util';
import App from '../../../utils/api';
import RS from '../../../utils/reserveStatus';
Page({
/**
* 页面的初始数据
*/
data: {
qnConf:{
accessKey:'uva-aaonM8dukeR6phc9yuPBrOXk9brrNW_PxLD7',
secretKey:'oZMMVN6phk49lG0J1xwmi1Ju0ETT15EnAEWcU9Cs',
token:'',
bucket:'colorcun-attr',//存储空间
fileType:'image',//image|video|audio|file def:file
region:'华东',//存储区域
domain:'http://nosqn.colorcun.com',//你绑定的域名,非必填项
},
upConf:{
prefixPath:'paylist/images/', //上传到七牛后有一个路径前缀,可为空
loading:'ring',// none|leaf|circle|ring, def leaf 上传的loading效果; none为无,可自行在page wxml中添加
group:'def', //一个页面上多个组件的区分标识
security:false, // 开启非法检测,默认 false
//上传图片
count:5, //最多可以选择的图片张数
sizeType:['compressed'], //['original', 'compressed'] 所选的图片的尺寸,超大图片 compressed 会引起开卡顿
sourceType:['album', 'camera'], //['album', 'camera'] 选择图片的来源
},
files:[], //组件数据放入这里展示到页面上
hasAddFile:true,//出现上传加号
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.options=options
this.setData({
[`upConf.prefixPath`]:'paylist/'+options.rid+'/'
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
this.getDetail();
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
detail:null,
getDetail(hasCache=false){
App.Reserve.Detail({
openid: getApp().openid,
rid: this.options.rid
},hasCache).then(async res => {
this.detail=this.formatDatail(res.data)
this.detail.ddate_solt=Number(this.detail.ddate_solt);
let title=''
if(this.detail.order_info.status>1){
title='买单申请详情'
}
//debug
//this.detail.order_info.status=1
this.setData({
detail: this.detail,
title:title,
})
if(this.detail.order_info && this.detail.order_info.status==3){
App.Customer.GetOrderInfo({
rid:this.options.rid
}).then(res=>{
let discount={pt:0,se:0}
res.data.discount.forEach(q=>{
if(q.checked){
if(q.owner==1){//平台
discount.pt+=parseFloat(q.price)
}else{
discount.se+=parseFloat(q.price)
}
}
})
this.setData({
discount:{
pt:discount.pt.toFixed(2),
se:discount.se.toFixed(2),
//price:(this.detail.order_info.price-discount.se).toFixed(2)
price:(this.detail.order_info.should_price*1+discount.pt*1).toFixed(2)
}
})
})
}
})
},
formatDatail(detail) {
detail=RS.reserve(detail);
let formatDate='YYYY-MM-DD '+detail.soltName
if(detail.type==1 && detail.is_set_ddate==1){
formatDate +=' HH:II'
}
detail.rdateStr = util.unixtoTime(detail.ddate, formatDate);
detail.orderRemark='';
if(detail.order_info){
if(detail.order_info.is_wine==1 || detail.order_info.is_pack==1){
detail.orderRemark='*顾客'
let orderRemark=[]
if(detail.order_info.is_wine==1){
orderRemark.push('有酒水要退')
}
if(detail.order_info.is_pack==1){
orderRemark.push('菜品需要打包')
}
detail.orderRemark+=orderRemark.join(',')
}
}
return detail;
},
displayTables(){
if(this.data.tabs){
this.setData({
tabs:'',
})
return;
}
let tables=this.detail.tables
let tabs={}
tables.some(t=>{
if(!tabs[t.tid]){
tabs[t.tid]=t.name
}else{
tabs[t.tid]+="、"+t.name
}
})
this.setData({
tabs:tabs,
})
},
setPrice(e){
this.price=e.detail.value.replace(/[^\.\d]/g,'')
this.setData({
price:this.price
})
return this.price
},
qnevent(e){
console.log('qnevent',e.detail);
let files=e.detail.data
if(e.detail.act=='uploadFail'){
files[e.detail.fileCurrent].progress=Math.random().toFixed(2)
}
files.forEach(f=>{
if(f.progress==100){
if(!f.remote || !f.remote.url){
f.progress=(90+Math.random()*9).toFixed(2)
}
}
})
this.setData({
files:files,
hasAddFile:files.length<this.data.upConf.count
})
},
displayImage(e){
let path=util.attr(e,'path')
wx.previewImage({
urls:[path],
})
},
displayOrderImages(){
if(this.detail.order_info.bill_list.length>0){
wx.previewImage({
urls:this.detail.order_info.bill_list,
})
}
},
deleteImage(e){
let index=util.attr(e,'index')
let files=this.data.files
files.splice(index,1)
this.setData({
files:files,
hasAddFile:files.length<5
})
util.toast('图片已删除','none')
},
submit(){
this.selectComponent('#confirm-price').show(this.options.rid,this.data.files)
},
confirmPriceEvent(){
this.getDetail(true);
},
})
\ No newline at end of file
... ...
{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle":"white",
"usingComponents": {
"nav":"/components/nav/nav",
"qnupload": "plugin://vktool/qnupload",
"confirm-price":"../../components/checkout/confirm-price"
}
}
\ No newline at end of file
... ...
<!--pack-book/pages/checkout/index.wxml-->
<wxs src="../../../utils/util.wxs" module="util" />
<nav hasHome backgroundColor="#199095" color="#fefefe">{{title||'提前买单'}}</nav>
<view class="pages flex-vc">
<block wx:if="{{detail.order_info.status>1}}">
<view class="block payinfo">
<view class="title flex-lr">
<view class="Medium">消费信息</view>
</view>
<view class="center">
<view class="item flex-lr">
<view class="item-label">应收金额</view>
<view class="item-value order_info-price">¥ {{detail.order_info.price}}</view>
</view>
<view class="item flex-lr" wx:if="{{detail.order_info.bill_list.length>0}}">
<view class="item-label">消费清单</view>
<view class="item-value order_info-bill_list" bindtap="displayOrderImages">查看消费清单</view>
</view>
<view class="bg-img pay-tips-icon bg-pay{{detail.order_info.status}}"></view>
</view>
</view>
<view class="block userinfo">
<view class="title flex-lr">
<view class="Medium">顾客信息</view>
<view class="orderRemark">{{detail.orderRemark}}</view>
</view>
<view class="center">
<view class="item {{tabs?'auto-height':''}}">
<view class="flex-lr" bindtap="{{detail.tables.length>1?'displayTables':''}}">
<view class="item-label">桌位信息</view>
<view class="item-value flex-rr">
<view wx:if="{{!tabs}}">【{{util.reserveTidName(detail.tables[0].tid)}}】{{detail.tables[0].name}}</view>
<view class="bg-img bg-{{tabs?'x2':'x1'}}" wx:if="{{detail.tables.length>1}}"></view>
</view>
</view>
<view class="tabs-view" wx:if="{{tabs}}">
<view class="tabs-item" wx:for="{{tabs}}" wx:key="tabs">【{{util.reserveTidName(index)}}】{{item}}</view>
</view>
</view>
<view class="item flex-lr">
<view class="item-label">买单顾客</view>
<view class="item-value">{{detail.rname}} {{util.reserveSexName(detail.sex)}}</view>
</view>
<view class="item flex-lr">
<view class="item-label">顾客电话</view>
<view class="item-value">{{detail.phone}}</view>
</view>
<view class="item flex-lr">
<view class="item-label">到店时间</view>
<view class="item-value">{{detail.rdateStr}}</view>
</view>
<view class="item flex-lr">
<view class="item-label">申请时间</view>
<view class="item-value">{{util.unixtoTime(detail.order_info.create_time,'YYYY-MM-DD HH:II')}}</view>
</view>
</view>
</view>
<view class="block payinfo" wx:if="{{detail.order_info.status==3}}">
<view class="title flex-lr">
<view class="Medium">买单信息</view>
</view>
<view class="center">
<view class="item flex-lr">
<view class="item-label">应收金额</view>
<view class="item-value">¥ {{detail.order_info.price}}</view>
</view>
<view class="item flex-lr" wx:if="{{discount.pt>0}}">
<view class="item-label">周到安排补贴</view>
<view class="item-value">¥ {{discount.pt||0}}</view>
</view>
<view class="item flex-lr" wx:if="{{discount.se>0}}">
<view class="item-label">店铺红包</view>
<view class="item-value">¥ {{discount.se||0}}</view>
</view>
<view class="item flex-lr">
<view class="item-label Medium">实收金额</view>
<view class="item-value Medium">¥ {{discount.price}}</view>
</view>
<view class="item flex-lr">
<view class="item-label">支付方式</view>
<view class="item-value">微信支付</view>
</view>
<view class="item flex-lr">
<view class="item-label">买单时间</view>
<view class="item-value">{{util.unixtoTime(detail.order_info.pay_time,'YYYY-MM-DD HH:II')}}</view>
</view>
</view>
</view>
</block>
<block wx:if="{{detail.order_info.status==1}}">
<view class="pay-image-view flex-vc">
<view class="bg-img bg-pay"></view>
<view class="pay-txt">顾客申请买单</view>
</view>
<view class="block orderinput">
<view class="center">
<view class="item {{tabs?'auto-height':''}}">
<view class="flex-lr" bindtap="{{detail.tables.length>1?'displayTables':''}}">
<view class="item-label">桌位信息</view>
<view class="item-value flex-rr">
<view wx:if="{{!tabs}}">【{{util.reserveTidName(detail.tables[0].tid)}}】{{detail.tables[0].name}}</view>
<view class="bg-img bg-{{tabs?'x2':'x1'}}" wx:if="{{detail.tables.length>1}}"></view>
</view>
</view>
<view class="tabs-view" wx:if="{{tabs}}">
<view class="tabs-item" wx:for="{{tabs}}" wx:key="tabs">【{{util.reserveTidName(index)}}】{{item}}</view>
</view>
</view>
<view class="item flex-lr">
<view class="item-label">应收金额</view>
<view class="item-value flex-rr" style="position: relative">
<input class="item-value-input" style="width: 300rpx;"
bindinput="setPrice" type="digit" maxlength="8"
placeholder-style="font-size:32rpx" placeholder="点击填写金额"/>
<view wx:if="{{price}}"
style="right:{{price.length*25}}rpx;"
class="item-value-input hasPrice">¥</view>
</view>
</view>
</view>
</view>
<view class="orderRemark orderRemark-view" wx:if="{{detail.orderRemark}}">{{detail.orderRemark}}</view>
<view class="block orderimage">
<view class="title flex-lr">
<view>消费清单(选填)</view>
</view>
<view class="center">
<block wx:for="{{files}}" wx:key="fileskey">
<qnupload qnConf="{{qnConf}}" upConf="{{upConf}}"
file="{{item}}" files="{{files}}"
bindevent="qnevent" class="qnupload">
<view class="upload flex-vc uploaded"
catchtap="displayImage" data-path="{{item.path}}">
<image class="image" src="{{item.path}}"></image>
<view class="bg-add bg-img" style="background-image: none"></view>
<view class="upload-txt"></view>
<view class="image-delete flex-vc" catchtap="deleteImage" data-index="{{index}}">
<view class="bg-img bg-c2"></view>
</view>
</view>
</qnupload>
</block>
<qnupload wx:if="{{hasAddFile}}"
qnConf="{{qnConf}}" upConf="{{upConf}}"
file="{{item}}" files="{{files}}"
bindevent="qnevent" class="qnupload">
<view class="upload flex-vc">
<view class="bg-add bg-img"></view>
<view class="upload-txt">添加图片</view>
</view>
</qnupload>
</view>
</view>
<view class="block userinfo">
<view class="title flex-lr">
<view>顾客信息</view>
</view>
<view class="center">
<view class="item flex-lr">
<view class="item-label">买单顾客</view>
<view class="item-value">{{detail.rname}} {{util.reserveSexName(detail.sex)}}</view>
</view>
<view class="item flex-lr">
<view class="item-label">顾客电话</view>
<view class="item-value">{{detail.phone}}</view>
</view>
<view class="item flex-lr">
<view class="item-label">到店时间</view>
<view class="item-value">{{detail.rdateStr}}</view>
</view>
<view class="item flex-lr">
<view class="item-label">申请时间</view>
<view class="item-value">{{util.unixtoTime(detail.order_info.create_time,'YYYY-MM-DD HH:II')}}</view>
</view>
</view>
</view>
<view style="height:150rpx;width:100%;"> </view>
<view class="submit {{price?'active':''}}" bindtap="submit">发送给顾客</view>
<confirm-price id="confirm-price" price="{{price}}" bindevent="confirmPriceEvent"></confirm-price>
</block>
</view>
\ No newline at end of file
... ...
/* pack-book/pages/checkout/index.wxss */
page{
background:rgba(245,245,245,1);
}
.bg-img{
background-image: url("http://nosqn.colorcun.com/checkout/images/css_sprites.png");
zoom: 33.5%;
}
.bg-add {
width: 48px; height: 48px;
background: url('http://nosqn.colorcun.com/checkout/images/css_sprites.png') -141px -111px;
}
.bg-x2 {
width: 42px; height: 24px;
background: url('http://nosqn.colorcun.com/checkout/images/css_sprites.png') -265px -111px;
}
.bg-x1 {
width: 42px; height: 24px;
background: url('http://nosqn.colorcun.com/checkout/images/css_sprites.png') -141px -179px;
margin-left: 20rpx;
}
.bg-pay3 {
width: 165px; height: 81px;
background: url('http://nosqn.colorcun.com/checkout/images/css_sprites.png') -10px -10px;
}
.bg-pay2 {
width: 165px; height: 81px;
background: url('http://nosqn.colorcun.com/checkout/images/css_sprites.png') -195px -10px;
}
.bg-pay {
width: 111px; height: 99px;
background: url('http://nosqn.colorcun.com/checkout/images/css_sprites.png') -10px -111px;
}
.bg-c2 {
width: 30px; height: 30px;
background: url('http://nosqn.colorcun.com/checkout/images/css_sprites.png') -10px -230px;
}
.pay-image-view{
margin-top: 40rpx;
}
.pay-txt{
margin-top: 12rpx;
height:44rpx;
font-size:32rpx;
font-weight:500;
color:rgba(53,53,53,1);
line-height:44rpx;
}
.block{
background:rgba(250,250,250,1);
border-radius:10rpx;
width: calc(100% - 40rpx);
margin-top: 20rpx;
}
.block .title{
height: 116rpx;
line-height: 116rpx;
font-size:32rpx;
font-weight:500;
color:rgba(53,53,53,1);
padding: 0 20rpx;
box-sizing: border-box;
}
.orderRemark{
font-size:28rpx;
font-weight:500;
color:rgba(253,86,86,1);
}
.orderRemark-view{
width: calc(100% - 40rpx);
height:40rpx;
line-height:40rpx;
margin: 10rpx auto;
font-weight:500;
}
.block .center{
padding: 0 40rpx 36rpx;
background:rgba(255,255,255,1);
box-sizing: border-box;
position: relative;
}
.center .item{
padding-top: 24rpx;
height:40rpx;
font-size:28rpx;
font-weight:400;
color:rgba(112,112,112,1);
line-height:40rpx;
}
.item-value{
font-weight:500;
color:rgba(53,53,53,1);
}
.payinfo .item-value{
font-weight:400;
}
.pay-tips-icon{
position: absolute;
top:calc(50% - 84rpx);
left:calc(50% - 111rpx);
}
.order_info-price{
font-size:32rpx;
font-weight:500;
color:rgba(53,53,53,1);
}
.order_info-bill_list{
font-size:24rpx;
font-weight:500;
color:rgba(36,164,168,1);
height:34rpx;
line-height: 34rpx;
border-bottom: 2rpx solid #24A4A8;
}
.orderinput{
margin-top: 40rpx;
}
.orderinput .center{
padding-bottom: 0;
}
.orderinput .item{
font-size:32rpx;
font-weight:400;
height: 116rpx;
line-height: 116rpx;
box-sizing: border-box;
border-bottom: 2rpx solid rgba(238,238,238,1);
padding-top: 0;
}
.orderinput .auto-height,.userinfo .auto-height{
height: auto;
}
.orderinput .item:last-child{
border-bottom-width: 0;
}
.item-value-input{
text-align: right;
font-size:44rpx;
font-weight:500;
color:rgba(53,53,53,1);
}
.tabs-view{
font-size:32rpx;
font-weight:400;
color:rgba(53,53,53,1);
padding: 0 20rpx 36rpx;
}
.tabs-item{
line-height: 44rpx;
}
.userinfo .tabs-view{
font-size:28rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
padding: 24rpx 20rpx 0;
}
.userinfo .tabs-item{
line-height:40rpx;
}
.hasPrice{
position: absolute;
top:0;
right:30rpx;
height: 44rpx;
line-height: 44rpx;
}
.orderimage .center{
padding: 40rpx 0 36rpx 56rpx;
}
.submit{
width:calc(100% - 72rpx);
height:84rpx;
background:rgba(116,187,190,1);
border-radius:10rpx;
position: fixed;
left: 36rpx;
bottom: 40rpx;
font-size:34rpx;
font-weight:500;
color:rgba(254,254,254,1);
line-height:84rpx;
text-align: center;
}
.submit.active{
background:rgba(25,144,149,1);
}
@import "upload.wxss";
\ No newline at end of file
... ...
// pack-book/pages/checkout/index.js
import util from '../../../utils/util';
import App from '../../../utils/api';
import RS from '../../../utils/reserveStatus';
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.options=options
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
this.getDetail();
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
detail:null,
getDetail(hasCache=false){
App.Reserve.Detail({
openid: getApp().openid,
rid: this.options.rid
},hasCache).then(async res => {
this.detail=this.formatDatail(res.data)
this.detail.ddate_solt=Number(this.detail.ddate_solt);
let title=''
if(this.detail.order_info.status>1){
title='买单申请详情'
}
this.setData({
detail: this.detail,
title:title,
})
})
},
formatDatail(detail) {
detail=RS.reserve(detail);
let formatDate='YYYY-MM-DD '+detail.soltName
if(detail.type==1 && detail.is_set_ddate==1){
formatDate +=' HH:II'
}
detail.rdateStr = util.unixtoTime(detail.ddate, formatDate);
detail.orderRemark='';
if(detail.order_info){
if(detail.order_info.is_wine==1 || detail.order_info.is_pack==1){
detail.orderRemark='*顾客'
let orderRemark=[]
if(detail.order_info.is_wine==1){
orderRemark.push('有酒水要退')
}
if(detail.order_info.is_pack==1){
orderRemark.push('菜品需要打包')
}
detail.orderRemark+=orderRemark.join(',')
}
}
return detail;
},
displayTables(){
if(this.data.tabs){
this.setData({
tabs:'',
})
return;
}
let tables=this.detail.tables
let tabs={}
tables.some(t=>{
if(!tabs[t.tid]){
tabs[t.tid]=t.name
}else{
tabs[t.tid]+="、"+t.name
}
})
this.setData({
tabs:tabs,
})
},
})
\ No newline at end of file
... ...
{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle":"white",
"usingComponents": {
"nav":"/components/nav/nav",
"qnupload": "plugin://vktool/qnupload",
"confirm-price":"../../components/checkout/confirm-price"
}
}
\ No newline at end of file
... ...
<!--pack-book/pages/checkout/index.wxml-->
<wxs src="../../../utils/util.wxs" module="util" />
<nav hasHome backgroundColor="#199095" color="#fefefe">发票详情</nav>
<view class="pages flex-vc">
<view class="block userinfo">
<view class="center">
<view class="item {{tabs?'auto-height':''}}">
<view class="flex-lr" bindtap="{{detail.tables.length>1?'displayTables':''}}">
<view class="item-label">桌位信息</view>
<view class="item-value flex-rr">
<view wx:if="{{!tabs}}">【{{util.reserveTidName(detail.tables[0].tid)}}】{{detail.tables[0].name}}</view>
<view class="bg-img bg-{{tabs?'x2':'x1'}}" wx:if="{{detail.tables.length>1}}"></view>
</view>
</view>
<view class="tabs-view" wx:if="{{tabs}}">
<view class="tabs-item" wx:for="{{tabs}}" wx:key="tabs">【{{util.reserveTidName(index)}}】{{item}}</view>
</view>
</view>
</view>
</view>
<view class="block invoice">
<view class="title flex-lr">
<view class="Medium">发票信息</view>
</view>
<view class="center">
<view class="item flex-lr" style="align-items:flex-start">
<view class="item-label">名称</view>
<view class="item-value Medium">{{detail.invoice.title}}</view>
</view>
<view class="item flex-lr" wx:if="{{detail.invoice.taxnumber}}">
<view class="item-label">税号</view>
<view class="item-value Medium">{{detail.invoice.taxnumber}}</view>
</view>
<view class="item flex-lr" wx:if="{{detail.invoice.companyaddress}}"
style="align-items:flex-start" >
<view class="item-label">单位地址</view>
<view class="item-value">{{detail.invoice.companyaddress}}</view>
</view>
<view class="item flex-lr" wx:if="{{detail.invoice.telephone}}">
<view class="item-label">电话号码</view>
<view class="item-value">{{detail.invoice.telephone}}</view>
</view>
<view class="item flex-lr" wx:if="{{detail.invoice.bankname}}"
style="align-items:flex-start">
<view class="item-label">开户银行</view>
<view class="item-value">{{detail.invoice.bankname}}</view>
</view>
<view class="item flex-lr" wx:if="{{detail.invoice.bankaccount}}">
<view class="item-label">银行账户</view>
<view class="item-value">{{detail.invoice.bankaccount}}</view>
</view>
</view>
</view>
<view class="block userinfo">
<view class="title flex-lr">
<view class="Medium">顾客信息</view>
</view>
<view class="center">
<view class="item flex-lr">
<view class="item-label">买单顾客</view>
<view class="item-value">{{detail.rname}} {{util.reserveSexName(detail.sex)}}</view>
</view>
<view class="item flex-lr">
<view class="item-label">顾客电话</view>
<view class="item-value">{{detail.phone}}</view>
</view>
<view class="item flex-lr">
<view class="item-label">到店时间</view>
<view class="item-value">{{detail.rdateStr}}</view>
</view>
<view class="item flex-lr">
<view class="item-label">申请时间</view>
<view class="item-value">{{util.unixtoTime(detail.order_info.create_time,'YYYY-MM-DD HH:II')}}</view>
</view>
</view>
</view>
</view>
\ No newline at end of file
... ...
/* pack-book/pages/checkout/index.wxss */
page{
background:rgba(245,245,245,1);
}
.bg-img{
background-image: url("http://nosqn.colorcun.com/checkout/images/css_sprites.png");
zoom: 33.5%;
}
.bg-add {
width: 48px; height: 48px;
background: url('http://nosqn.colorcun.com/checkout/images/css_sprites.png') -141px -111px;
}
.bg-x2 {
width: 42px; height: 24px;
background: url('http://nosqn.colorcun.com/checkout/images/css_sprites.png') -265px -111px;
}
.bg-x1 {
width: 42px; height: 24px;
background: url('http://nosqn.colorcun.com/checkout/images/css_sprites.png') -141px -179px;
margin-left: 20rpx;
}
.bg-pay3 {
width: 165px; height: 81px;
background: url('http://nosqn.colorcun.com/checkout/images/css_sprites.png') -10px -10px;
}
.bg-pay2 {
width: 165px; height: 81px;
background: url('http://nosqn.colorcun.com/checkout/images/css_sprites.png') -195px -10px;
}
.bg-pay {
width: 111px; height: 99px;
background: url('http://nosqn.colorcun.com/checkout/images/css_sprites.png') -10px -111px;
}
.bg-c2 {
width: 30px; height: 30px;
background: url('http://nosqn.colorcun.com/checkout/images/css_sprites.png') -10px -230px;
}
.pay-image-view{
margin-top: 40rpx;
}
.pay-txt{
margin-top: 12rpx;
height:44rpx;
font-size:32rpx;
font-weight:500;
color:rgba(53,53,53,1);
line-height:44rpx;
}
.block{
background:rgba(250,250,250,1);
border-radius:10rpx;
width: calc(100% - 40rpx);
margin-top: 20rpx;
}
.block .title{
height: 116rpx;
line-height: 116rpx;
font-size:32rpx;
font-weight:500;
color:rgba(53,53,53,1);
padding: 0 20rpx;
box-sizing: border-box;
}
.orderRemark{
font-size:28rpx;
font-weight:500;
color:rgba(253,86,86,1);
}
.orderRemark-view{
width: calc(100% - 40rpx);
height:40rpx;
line-height:40rpx;
margin: 10rpx auto;
font-weight:500;
}
.block .center{
padding: 0 40rpx 36rpx;
background:rgba(255,255,255,1);
box-sizing: border-box;
position: relative;
}
.center .item{
padding-top: 24rpx;
font-size:28rpx;
font-weight:400;
color:rgba(112,112,112,1);
}
.item-label{
min-width: 150rpx;
}
.item-value{
font-weight:500;
color:rgba(53,53,53,1);
text-align: right;
}
.invoice .item-value{
font-size:28rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(112,112,112,1);
line-height:40rpx;
}
.invoice .item-value.Medium{
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(53,53,53,1);
}
.pay-tips-icon{
position: absolute;
top:calc(50% - 84rpx);
left:calc(50% - 111rpx);
}
.order_info-price{
font-size:32rpx;
font-weight:500;
color:rgba(53,53,53,1);
}
.order_info-bill_list{
font-size:24rpx;
font-weight:500;
color:rgba(36,164,168,1);
height:34rpx;
line-height: 34rpx;
border-bottom: 2rpx solid #24A4A8;
}
.orderinput{
margin-top: 40rpx;
}
.orderinput .center{
padding-bottom: 0;
}
.orderinput .item{
font-size:32rpx;
font-weight:400;
height: 116rpx;
line-height: 116rpx;
box-sizing: border-box;
border-bottom: 2rpx solid rgba(238,238,238,1);
padding-top: 0;
}
.orderinput .auto-height,.userinfo .auto-height{
height: auto;
}
.orderinput .item:last-child{
border-bottom-width: 0;
}
.item-value-input{
text-align: right;
font-size:44rpx;
font-weight:500;
color:rgba(53,53,53,1);
}
.tabs-view{
font-size:32rpx;
font-weight:400;
color:rgba(53,53,53,1);
padding: 0 20rpx 36rpx;
}
.tabs-item{
line-height: 44rpx;
}
.userinfo .tabs-view{
font-size:28rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
padding: 24rpx 20rpx 0;
}
.userinfo .tabs-item{
line-height:40rpx;
}
.hasPrice{
position: absolute;
top:0;
right:30rpx;
height: 44rpx;
line-height: 44rpx;
}
.orderimage .center{
padding: 40rpx 0 36rpx 56rpx;
}
\ No newline at end of file
... ...
.qnupload{
display: inline-block;
width: 180rpx;
height: 180rpx;
margin-right: 30rpx;
margin-bottom: 30rpx;
}
.upload{
border: 2px #E0E0E0 dashed ;
box-sizing: border-box;
position: relative;
width: 180rpx;
height: 180rpx;
}
.upload .image{
width: 180rpx;
height: 180rpx;
position: absolute;
top:0;
left: 0;
}
.uploaded{
border-width: 0;
}
.upload-txt{
height:34rpx;
font-size:24rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(153,153,153,1);
line-height:34rpx;
margin-top: 10rpx;
}
.image-delete{
right: 0;
top:0;
position: absolute;
width:40rpx;
height:40rpx;
background:rgba(13,13,13,0.5);
}
\ No newline at end of file
... ...
// pack-checkout/components/discount.js
import util from '../../utils/util'
import App from '../../utils/api'
Component({
/**
* 组件的属性列表
*/
properties: {
checkout:Object,
},
/**
* 组件的初始数据
*/
data: {
checkedNum:0,
display:false,
checkoutObj:null,
},
observers: {
'checkout': function(checkout) {
this.discountFormat(checkout)
}
},
/**
* 组件的方法列表
*/
methods: {
show(){
this.setData({
display:true,
})
},
hide(){
this.triggerEvent('event',{act:'reflush'});
setTimeout(()=>{
this.setData({
display:false,
})
},0)
},
discountFormat(checkout){
if(!checkout) return;
let num=0;
let disObj={}
let subsidy_price=0;
checkout.discount.forEach(q=>{
q.disabled=false
if(q.checked){
num++;
disObj[q.owner+'-'+q.receive_condition]=true
subsidy_price+=q.price/1
}
})
checkout.discount.forEach(q=>{
if(!q.checked && disObj[q.owner+'-'+q.receive_condition]){
q.disabled=true
}
})
checkout.subsidy_price=subsidy_price
this.setData({
checkedNum:num,
checkoutObj:checkout
})
console.log('discountFormat',checkout)
},
discountChecked(e) {
console.log('discountChecked', e)
let index = util.attr(e, 'index')
let checkout = this.data.checkout
if(checkout.discount[index].disabled) return false;
checkout.discount[index].checked = !checkout.discount[index].checked
this.discountFormat(checkout)
App.Customer.ChangeDiscountCombination({
id:checkout.id,
rel_id:checkout.discount[index].rel_id,
owner:checkout.discount[index].owner,
status:checkout.discount[index].checked?1:0,
}).then(()=>{
//this.triggerEvent('event',{act:'reflush'});
})
},
}
})
... ...
{
"component": true,
"usingComponents": {
"quan":"/components/reserve/seller/quan"
}
}
\ No newline at end of file
... ...
<!--pack-checkout/components/discount.wxml-->
<view class="mask" wx:if="{{display}}">
<view class="discount" catchtap="catchtap">
<view class="header flex-lr" bindtap="hide">
<view class=""></view>
<view class="title">红包</view>
<view class="close"></view>
</view>
<view class="tips">红包均为一次使用,不找零、不兑现,每次买单抵扣不超过消费总额</view>
<view class="content">
<view class="msg flex-ll">
你选中了<text class="light">{{checkedNum}}</text>个红包,共可抵扣<text class="light">¥{{checkoutObj.subsidy_price}}</text>
</view>
<view class="list">
<view class="quan" wx:for="{{checkoutObj.discount}}" wx:key="discount">
<quan quan="{{item}}" cla="{{item.disabled?'quan-disabled':''}}">
<radio data-index="{{index}}"
disabled="{{item.disabled}}"
checked="{{item.checked}}" color="#F05522"
bindtap="discountChecked"/>
</quan>
</view>
</view>
</view>
</view>
</view>
... ...
/* pack-checkout/components/discount.wxss */
@import "/app.wxss";
.discount{
width:100%;
background:rgba(255,255,255,1);
border-radius:40rpx 40rpx 0rpx 0rpx;
position: fixed;
bottom: 0;
left: 0;
padding-bottom: 40rpx;
padding-top: 20rpx;
}
.list{
max-height:930rpx;
overflow-y: auto;
box-sizing: border-box;
}
.header{
height:88rpx;
padding: 0 42rpx;
}
.title{
font-size:32rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(53,53,53,1);
line-height:88rpx;
}
.close{
width:28rpx;
height:29rpx;
background-size: 100% 100%;
background-image: url("http://nosqn.colorcun.com/sellerbaobao/close.png");
}
.tips{
height:50rpx;
background:rgba(255,222,185,0.5);
font-size:24rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(240,85,34,1);
line-height:50rpx;
padding-left: 16rpx;
}
.content{
padding: 30rpx 40rpx 0;
}
.msg{
height:40rpx;
font-size:28rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(53,53,53,1);
line-height:40rpx;
}
.light{
color:#F05522;
}
.quan{
margin-top: 20rpx;
}
... ...
// pack-checkout/components/jinduBar.js
Component({
/**
* 组件的属性列表
*/
properties: {
checkout:Object,
},
/**
* 组件的初始数据
*/
data: {
steps:[
{number:1,txt:'获取消费金额'},
{number:2,txt:'商家反馈消费金额'},
{number:3,txt:'提前买单'},
],
},
/**
* 组件的方法列表
*/
methods: {
}
})
... ...
{
"component": true,
"usingComponents": {}
}
\ No newline at end of file
... ...
<!--pack-checkout/components/jinduBar.wxml-->
<view class="jindu-view">
<view class="tips-info">3步轻松买单</view>
<view class="top flex-lr">
<view class="top-icon flex-vc {{index==0 || checkout.status>=index?'active':''}}" wx:for="{{steps}}" wx:key="key">
<view class="top-icon-txt flex-vc">{{item.number}}</view>
</view>
</view>
<view class="bottom flex-lr">
<view class="bottom-txt {{checkout.status>=index?'active':''}}" wx:for="{{steps}}" wx:key="key">{{item.txt}}</view>
</view>
</view>
... ...
/* pack-checkout/components/jinduBar.wxss */
@import "/app.wxss";
.jindu-view{
padding-top: 90rpx;
padding-bottom: 36rpx;
position: relative;
}
.tips-info{
width:238rpx;
height:50rpx;
position: absolute;
top:-4rpx;
left:calc(50% - 129rpx);
font-size:28rpx;
font-weight:500;
color:rgba(255,255,255,1);
line-height:50rpx;
text-align: center;
background-size: 100% 100%;
background-image: url("http://nosqn.colorcun.com/checkout/images/4.png");
}
.top{
height:50rpx;
position: relative;
}
.top:before{
display: block;
position: absolute;
height: 2rpx;
background-color: #E0E0E0;
top:25rpx;
left:0;
width: 100%;
content: "";
}
.top-icon{
width: 130rpx;
background-color: #fff;
position: relative;
}
.top-icon-txt{
width:50rpx;
height:50rpx;
border-radius:10rpx;
background:rgba(153,153,153,1);
font-size:28rpx;
font-weight:500;
color:rgba(255,255,255,1);
}
.active .top-icon-txt{
background:linear-gradient(180deg,rgba(227,191,131,1) 0%,rgba(211,157,92,1) 100%);
box-shadow:2rpx 2rpx 4rpx 0rpx rgba(179,124,54,1);
}
.bottom{
margin-top: 24rpx;
height: 40rpx;
font-size:28rpx;
font-weight:500;
color:rgba(153,153,153,1);
line-height:40rpx;
}
.bottom-txt{
text-align: center;
}
.bottom-txt:first-child{
text-align: left;
}
.bottom-txt:last-child{
text-align: right;
}
.bottom-txt.active{
color:rgba(38,38,40,1);
}
\ No newline at end of file
... ...
// pack-checkout/components/xfCard.js
import App from '../../utils/api'
Component({
/**
* 组件的属性列表
*/
properties: {
checkout:Object,
},
/**
* 组件的初始数据
*/
data: {
display:false,
},
/**
* 组件的方法列表
*/
methods: {
show(){
App.Customer.SetCardRel({
sid:this.data.checkout.sid,
//price:1,
rid:this.data.checkout.rid,
oid:this.data.checkout.id,
price:this.data.checkout.should_price,
receive_type:4,//任务领取
}).then(res=>{
if(res.data){
this.setData({
card:res.data,
display:true,
})
}
this.triggerEvent('event')
})
},
hide(){
this.setData({
display:false,
})
},
}
})
... ...
{
"component": true,
"usingComponents": {}
}
\ No newline at end of file
... ...
<!--pack-checkout/components/xfCard.wxml-->
<wxs src="../../utils/util.wxs" module="util" />
<view class="mask flex-vc" wx:if="{{display}}">
<view class="card" style="text-align: center;">
<view class="close" bindtap="hide"></view>
<view class="title">买单返利</view>
<view class="name">{{checkout.sellername}}</view>
<view class="tip">送您红包</view>
<view class="money flex-cc" style="align-items: flex-end;">
<view class="Semibold">{{util.toFixed(card.price,0)}}</view>
<view class="dot">元</view>
</view>
<view class="button" bindtap="hide">知道了</view>
</view>
</view>
... ...
/* pack-checkout/components/xfCard.wxss */
@import "/app.wxss";
.card{
width: 602rpx;
height: 686rpx;
background-image: url("http://nosqn.colorcun.com/sellerbaobao/baobao2.png");
background-size: 100% 100%;
position: relative;
}
.close{
background-image: url("http://nosqn.colorcun.com/sellerbaobao/close2.png");
background-size: 100% 100%;
width:48rpx;
height:48rpx;
position: absolute;
top:-36rpx;
right:-26rpx;
}
.title{
height:40rpx;
font-size:28rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(255,255,255,1);
line-height:40rpx;
margin-top: 128rpx;
}
.name{
height:44rpx;
font-size:32rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(187,113,50,1);
line-height:44rpx;
letter-spacing:1rpx;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
width: 250rpx;
margin: 36rpx auto 0;
}
.tip{
height:40rpx;
font-size:28rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(187,113,50,1);
line-height:40rpx;
letter-spacing:1rpx;
margin-top: 20rpx;
}
.money{
height:134rpx;
font-size:96rpx;
font-family:PingFangSC-Semibold,PingFang SC;
font-weight:600;
color:rgba(204,17,17,1);
line-height:134rpx;
}
.dot{
height:48rpx;
font-size:34rpx;
font-family:PingFangSC-Semibold,PingFang SC;
font-weight:600;
color:rgba(204,17,17,1);
line-height:48rpx;
margin-bottom: 24rpx;
margin-left: 10rpx;
}
.button{
height:48rpx;
font-size:34rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(187,80,50,1);
line-height:48rpx;
margin-top:118rpx;
}
... ...
// pack-activity/pages/index.js
import util from '../../utils/util';
import App from '../../utils/api';
Page({
/**
* 页面的初始数据
*/
data: {
checkout:null,
hasLoading:true,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.options=options
if(options.sid){
this.setData({
seller:{
id:options.sid
}
})
}
//this.GetBalance()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
this.GetCheckout()
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
this.GetOrderInfoStop()
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
this.GetOrderInfoStop()
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
GetCheckout(){
App.Customer.GetOrderInfo({rid:this.options.rid}).then(res=>{
let checkout=res.data
if(this.data.checkout && this.data.checkout.status>checkout.status) return '状态已变更';
if(checkout){
let remark=[]
if(res.data.is_wine>0){
remark.push('有剩余酒水要退')
}
if(res.data.is_pack>0){
remark.push('菜品打包')
}
checkout.remark=remark.join('、')
if(checkout.status>1){
this.GetOrderInfoStop()
}else{
this.GetOrderInfoRun()
}
if(checkout.discount && checkout.discount.length>0){
let subsidy_price=0
checkout.discount.forEach(q=>{
if(q.checked){
subsidy_price+=q.price/1
}
})
checkout.subsidy_price=subsidy_price.toFixed(2)
}
}
let obj={
checkout:checkout,
hasLoading:false,
}
if(!this.data.seller){
obj.seller={
id:checkout.sid
}
}
this.setData(obj)
})
},
is_wine:0,
is_pack:0,
checkoutData(e){
this.is_wine=0
this.is_pack=0
if(e.detail.value.length>0){
e.detail.value.forEach(k=>{
this[k]=1
})
}
console.log(e.detail.value,this.is_wine,this.is_pack)
},
checkoutInit(){
let params={
rid:this.options.rid,
sid:this.options.sid,
is_wine:this.is_wine,
is_pack:this.is_pack
}
App.Customer.InitOrder(params).then(res=>{
this.GetCheckout()
})
},
setInvoice(e){
let invoice={
rid:this.options.rid,
}
Object.keys(e.detail).forEach(key=>{
invoice[key.toLowerCase()]=e.detail[key]
})
App.Customer.SetInvoice(invoice).then(res=>{
setTimeout(()=>{
util.toast('发票已提交','none')
},300)
})
},
GetBalance(){//获得余额
App.User.GetBalance().then(res=>{
this.setData({
user:res.data
})
})
},
GetOrderInfoInterval:null,
GetOrderInfoRun(){
if(!this.GetOrderInfoInterval){
this.GetOrderInfoInterval=setInterval(()=>{
this.GetCheckout()
},8000)
}
},
GetOrderInfoStop(){
if(this.GetOrderInfoInterval){
clearInterval(this.GetOrderInfoInterval)
this.GetOrderInfoInterval=null
}
},
txSeller(){
this.selectComponent('#showModal').options({
header: '温馨提示',
body: '已为您催促商家,请耐心等待'
}).show();
App.PushMsg.SendUrgeMsg({rid:this.data.checkout.rid})
},
pay(){
//return this.selectComponent('#xfCard').show();
App.PayOnline.CombineTransactions({
rid:this.data.checkout.rid,
}).then(res=>{
if(res.ret==200){
res.data.timeStamp+=""
wx.requestPayment({
...res.data,
success:res=>{
this.selectComponent('#xfCard').show();
//this.GetCheckout()
this.setData({
[`checkout.status`]:3,
[`checkout.pay_time`]:parseInt(new Date()/1000),
})
},
})
}else{
util.toast(res.msg,'none')
this.GetCheckout()
}
}).catch(()=>{
util.toast('出错了,请重新尝试','none')
this.GetCheckout()
})
},
displayOrderImages(){
if(this.data.checkout.bill_list.length>0){
wx.previewImage({
urls:this.data.checkout.bill_list,
})
}
},
discountShow(){
if(this.data.checkout.discount.length>0){
this.selectComponent('#discount').show();
}
},
discountEvent(e){
console.log('discountEvent',e)
this.GetCheckout()
},
xfCardEvent(e){
this.setData({
[`checkout.status`]:3,
})
},
})
\ No newline at end of file
... ...
{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle":"black",
"usingComponents": {
"nav":"/components/nav/nav",
"showModal":"/components/tips/showModal/showModal",
"invoice":"/components/userinfo/invoice",
"subscribe":"/components/userinfo/subscribe",
"jinduBar":"../components/jinduBar",
"discount":"../components/discount",
"xfCard":"../components/xfCard",
"seller-discount":"/components/reserve/seller/discount"
}
}
\ No newline at end of file
... ...
<!--
此文件为开发者工具生成,生成时间: 2020/4/17 下午2:12:45
使用方法:
1. 在"pack-checkout\pages\index.wxml"中使用`include`指令引入此模板,
2. 在"pack-checkout\pages\index.wxss"中使用`import`指令引入"pack-checkout\pages\index.skeleton.wxss"
3. 书写对应的逻辑,来控制骨架屏的显示与隐藏
更多详细信息可以参考文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/skeleton.html
-->
<view class="sk-container">
<view is="components/nav/nav">
<view class="nav--nav-main-space" style="height: 64px;">
<view class="nav--nav-main" style="background-color: #ffffff;color:#000000;">
<view class="nav--nav" style="margin-top: 20px;">
<view class="nav--flex-lr nav--part" style="height: 44px; line-height: 44px">
<view class="nav--opt nav--flex-ll">
<view class="nav--back nav--flex-vc">
<image class="nav--back-image sk-image"></image>
</view>
</view>
<view class="nav--title sk-transparent sk-text-32-9545-629 sk-text" style="background-size: 32.0285% 2.75rem; background-position-x: 50%;">周到安排</view>
<view class="nav--opt">
<view></view>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="pages sk-image">
<view class="content">
<view is="pack-checkout/components/jinduBar">
<view class="jinduBar--jindu-view">
<view class="jinduBar--tips-info sk-transparent sk-image">3步轻松买单</view>
<view class="jinduBar--top jinduBar--flex-lr sk-pseudo sk-pseudo-circle">
<view class="jinduBar--top-icon jinduBar--flex-vc">
<view class="jinduBar--top-icon-txt jinduBar--flex-vc sk-transparent sk-text-14-2857-157 sk-text" style="background-size: 32.875% 1.225rem;">1</view>
</view>
<view class="jinduBar--top-icon jinduBar--flex-vc">
<view class="jinduBar--top-icon-txt jinduBar--flex-vc sk-transparent sk-text-14-2857-162 sk-text" style="background-size: 32.875% 1.225rem;">2</view>
</view>
<view class="jinduBar--top-icon jinduBar--flex-vc">
<view class="jinduBar--top-icon-txt jinduBar--flex-vc sk-transparent sk-text-14-2857-97 sk-text" style="background-size: 32.875% 1.225rem;">3</view>
</view>
</view>
<view class="jinduBar--bottom jinduBar--flex-lr">
<view class="jinduBar--bottom-txt sk-transparent sk-text-15-0000-926 sk-text" style="background-size: 100% 1.25rem;">获取消费金额</view>
<view class="jinduBar--bottom-txt sk-transparent sk-text-15-0000-606 sk-text" style="background-size: 100% 1.25rem; background-position-x: 50%;">商家反馈消费金额</view>
<view class="jinduBar--bottom-txt sk-transparent sk-text-15-0000-414 sk-text" style="background-size: 100% 1.25rem; background-position-x: 100%;">提前买单</view>
</view>
</view>
</view>
</view>
<checkbox-group>
<view class="content checkout">
<view class="title sk-transparent sk-text-32-5000-940 sk-text" style="border: none; background-size: 35.518% 2.5rem;">买单相关(可选)</view>
<view class="item flex-lr" style="border: none;">
<view class="sk-transparent sk-text-38-4058-984 sk-text" style="background-size: 100% 4.3125rem;">剩余酒水饮料需要退</view>
<checkbox color="#EFEFEF" value="is_wine"></checkbox>
</view>
<view class="item flex-lr" style="border: none;">
<view class="sk-transparent sk-text-38-4058-599 sk-text" style="background-size: 100% 4.3125rem;">菜品打包</view>
<checkbox color="#EFEFEF" value="is_pack"></checkbox>
</view>
</view>
</checkbox-group>
<view class="checkout-get">
<view class="checkout-button sk-transparent">
获取消费金额
<view class="checkout-button-money-tips sk-transparent sk-text-20-5882-11 sk-text" style="background-size: 82.4615% 1.0625rem; background-position-x: 50%;">18.80元红包待用</view>
</view>
</view>
</view>
<view is="components/tips/showModal/showModal" id="showModal">
<view class="showModal--mask showModal--flex-vc showModal--checkout" hidden="true">
<view class="showModal--showModal">
<view class="showModal--header sk-transparent sk-opacity">
确认信息
</view>
<view class="showModal--body sk-transparent sk-opacity">
确认信息
</view>
<view class="showModal--footer showModal--flex-cc"><button plain="true" class="showModal--button-none showModal--confirm showModal--bg-brown sk-transparent sk-button sk-pseudo sk-pseudo-circle" data-type="confirm" style="color: rgb(255, 255, 255); border: none;">知道了</button></view>
</view>
</view>
</view>
</view>
\ No newline at end of file
... ...
/*
此文件为开发者工具生成,生成时间: 2020/4/17 下午2:12:45
使用方法:参考 "pack-checkout\pages\index.skeleton.wxml"
*/
.sk-transparent {
color: transparent !important;
}
.sk-text-32-9545-629 {
background-image: linear-gradient(transparent 32.9545%, #EEEEEE 0%, #EEEEEE 67.0455%, transparent 0%) !important;
background-size: 100% 2.7500rem;
position: relative !important;
}
.sk-text {
background-origin: content-box !important;
background-clip: content-box !important;
background-color: transparent !important;
color: transparent !important;
background-repeat: repeat-y !important;
}
.sk-text-14-2857-157 {
background-image: linear-gradient(transparent 14.2857%, #EEEEEE 0%, #EEEEEE 85.7143%, transparent 0%) !important;
background-size: 100% 1.2250rem;
position: relative !important;
}
.sk-text-14-2857-162 {
background-image: linear-gradient(transparent 14.2857%, #EEEEEE 0%, #EEEEEE 85.7143%, transparent 0%) !important;
background-size: 100% 1.2250rem;
position: relative !important;
}
.sk-text-14-2857-97 {
background-image: linear-gradient(transparent 14.2857%, #EEEEEE 0%, #EEEEEE 85.7143%, transparent 0%) !important;
background-size: 100% 1.2250rem;
position: relative !important;
}
.sk-text-15-0000-926 {
background-image: linear-gradient(transparent 15.0000%, #EEEEEE 0%, #EEEEEE 85.0000%, transparent 0%) !important;
background-size: 100% 1.2500rem;
position: relative !important;
}
.sk-text-15-0000-606 {
background-image: linear-gradient(transparent 15.0000%, #EEEEEE 0%, #EEEEEE 85.0000%, transparent 0%) !important;
background-size: 100% 1.2500rem;
position: relative !important;
}
.sk-text-15-0000-414 {
background-image: linear-gradient(transparent 15.0000%, #EEEEEE 0%, #EEEEEE 85.0000%, transparent 0%) !important;
background-size: 100% 1.2500rem;
position: relative !important;
}
.sk-text-32-5000-940 {
background-image: linear-gradient(transparent 32.5000%, #EEEEEE 0%, #EEEEEE 67.5000%, transparent 0%) !important;
background-size: 100% 2.5000rem;
position: relative !important;
}
.sk-text-38-4058-984 {
background-image: linear-gradient(transparent 38.4058%, #EEEEEE 0%, #EEEEEE 61.5942%, transparent 0%) !important;
background-size: 100% 4.3125rem;
position: relative !important;
}
.sk-text-38-4058-599 {
background-image: linear-gradient(transparent 38.4058%, #EEEEEE 0%, #EEEEEE 61.5942%, transparent 0%) !important;
background-size: 100% 4.3125rem;
position: relative !important;
}
.sk-text-20-5882-11 {
background-image: linear-gradient(transparent 20.5882%, #EEEEEE 0%, #EEEEEE 79.4118%, transparent 0%) !important;
background-size: 100% 1.0625rem;
position: absolute !important;
}
.sk-opacity {
opacity: 0 !important;
}
.sk-button {
color: #EFEFEF !important;
background: #EFEFEF !important;
border: none !important;
box-shadow: none !important;
}
.sk-image {
background: #EFEFEF !important;
}
.sk-pseudo::before, .sk-pseudo::after {
background: #EFEFEF !important;
background-image: none !important;
color: transparent !important;
border-color: transparent !important;
}
.sk-pseudo-rect::before, .sk-pseudo-rect::after {
border-radius: 0 !important;
}
.sk-pseudo-circle::before, .sk-pseudo-circle::after {
border-radius: 50% !important;
}
.sk-container {
position: absolute;
overflow: hidden;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 1000000;
background-color: transparent;
}
... ...
<!--pack-activity/pages/index.wxml-->
<wxs src="../../utils/util.wxs" module="util" />
<block wx:if="{{hasLoading}}">
<include src="./index.skeleton.wxml"></include>
</block>
<nav hasHome>{{checkout.sellername||'周到安排'}}</nav>
<view class="pages">
<view class="content">
<jinduBar checkout="{{checkout}}"></jinduBar>
</view>
<block wx:if="{{checkout.status==1}}">
<view class="content checkout">
<view class="waiting-money flex-vc">
<icon type="waiting" size="47" color="#C0A369"/>
<view class="waiting-txt">商家处理中</view>
</view>
</view>
<view class="content invoice">
<view class="item flex-lr">
<view>发票</view>
<invoice bindevent="setInvoice">
<view class="flex-rr invoice-right">
<view class="title {{checkout.invoice?'active':''}}">{{checkout.invoice.title||'提前提交发票抬头'}}</view>
<view class="more"></view>
</view>
</invoice>
</view>
</view>
<subscribe ids="{{[1]}}">
<view class="checkout-get subscribe">点我,商家反馈金额后提醒我</view>
</subscribe>
<view class="checkout-get tx-seller" bindtap="txSeller">催一下商家</view>
</block>
<block wx:elif="{{checkout.status==2}}">
<view class="content money">
<view class="waiting-money flex-vc">
<icon type="waiting" size="47" color="#C0A369"/>
<view class="waiting-txt">待支付</view>
</view>
<view class="list flex-lr">
<view class="list-name">消费总额</view>
<view class="list-val">¥ {{checkout.price}}</view>
</view>
<view class="list flex-lr" bindtap="discountShow">
<view class="list-name">红  包</view>
<view class="list-val flex-rr">
-¥ {{checkout.subsidy_price}}
<view class="more" style="margin-left: 20rpx;" wx:if="{{checkout.discount.length>0}}"></view>
</view>
</view>
<view class="list flex-lr">
<view class="list-name">应付金额</view>
<view class="list-val should_price">¥{{checkout.should_price}}</view>
</view>
<view class="list flex-lr" wx:if="{{checkout.bill_list.length>0}}" bindtap="displayOrderImages">
<view class="list-name">消费清单</view>
<view class="list-val link">查看消费清单</view>
</view>
<view class="list flex-lr" style="align-items:flex-start;line-height: 60rpx;">
<view class="list-name">包间名称</view>
<view class="list-val">{{checkout.tablename}}</view>
</view>
<view class="list flex-lr" wx:if="{{checkout.remark}}">
<view class="list-name">备注信息</view>
<view class="list-val">{{checkout.remark}}</view>
</view>
<view class="checkout-get" bindtap="pay">立即支付{{checkout.should_price}}元</view>
</view>
<view class="money-tips">注:消费清单,离店时请到前台索要;</view>
</block>
<block wx:elif="{{checkout.status==3}}">
<view class="content money">
<view class="waiting-money flex-vc">
<icon type="success" size="47" color="#C8B16D"/>
<view class="waiting-txt">已买单</view>
</view>
<view class="list flex-lr">
<view class="list-name">消费总额</view>
<view class="list-val">¥ {{checkout.price}}</view>
</view>
<view class="list flex-lr">
<view class="list-name">红  包</view>
<view class="list-val">-¥ {{checkout.subsidy_price}}</view>
</view>
<view class="list flex-lr">
<view class="list-name">实付金额</view>
<view class="list-val should_price">¥{{checkout.should_price}}</view>
</view>
<view class="list flex-lr" wx:if="{{checkout.bill_list.length>0}}" bindtap="displayOrderImages">
<view class="list-name">消费清单</view>
<view class="list-val link">查看消费清单</view>
</view>
<view class="list flex-lr" style="align-items:flex-start;line-height: 60rpx;">
<view class="list-name">包间名称</view>
<view class="list-val">{{checkout.tablename}}</view>
</view>
<view class="list flex-lr" wx:if="{{checkout.remark}}">
<view class="list-name">备注信息</view>
<view class="list-val">{{checkout.remark}}</view>
</view>
<view class="list flex-lr pay-time">
<view class="list-name">买单时间</view>
<view class="list-val">{{util.unixtoTime(checkout.pay_time,'YYYY-MM-DD HH:II')}}</view>
</view>
</view>
<view class="content invoice" wx:if="{{checkout.invoice}}">
<view class="item flex-lr">
<view>发票</view>
<invoice bindevent="setInvoice">
<view class="invoice-right disabled">
<view class="invoice-title">{{checkout.invoice.title}}</view>
<view class="invoice-taxnumber">{{checkout.invoice.taxnumber}}</view>
</view>
</invoice>
</view>
</view>
</block>
<block wx:else="">
<checkbox-group bindchange="checkoutData">
<view class="content checkout">
<view class="title">买单相关(可选)</view>
<view class="item flex-lr">
<view>剩余酒水饮料需要退</view>
<checkbox color="#ffffff" value="is_wine"/>
</view>
<view class="item flex-lr">
<view>菜品打包</view>
<checkbox color="#ffffff" value="is_pack"/>
</view>
</view>
</checkbox-group>
<view class="checkout-get">
<subscribe ids="{{[1]}}" bindevent="checkoutInit">
<view class="checkout-button">
获取消费金额
<seller-discount id="seller-discount" seller="{{seller}}" wx:if="{{seller}}"
cla="checkout-button-money-tips detail_owner"></seller-discount>
</view>
</subscribe>
</view>
</block>
</view>
<showModal id="showModal" confirmText="知道了" bindshowModal="showModal" cla="checkout"></showModal>
<discount id="discount" checkout="{{checkout}}" bindevent="discountEvent"></discount>
<xfCard id="xfCard" checkout="{{checkout}}" bindevent="xfCardEvent"></xfCard>
... ...
/* pack-activity/pages/index.wxss */
@import "index.skeleton.wxss";
page{
background-color: #F5F5F5;
}
.pages{
padding: 204rpx 0 60rpx;
background-size: 100% auto;
background-repeat: no-repeat;
background-image: url("http://nosqn.colorcun.com/checkout/images/3.png");
}
.content{
width: calc(100% - 40rpx);
margin: 0 20rpx 0;
position: relative;
background-color: #fff;
background:rgba(255,255,255,1);
border-radius:10rpx;
padding: 0 40rpx;
box-sizing: border-box;
}
.checkout,.invoice,.money{
margin-top: 10rpx;
}
.title{
height: 80rpx;
box-sizing: border-box;
border-bottom: 1rpx solid #F5F5F5;
line-height: 80rpx;
font-size:28rpx;
font-weight:500;
color:rgba(153,153,153,1);
}
.item{
height: 138rpx;
box-sizing: border-box;
border-bottom: 1rpx solid #F5F5F5;
line-height: 138rpx;
font-size:32rpx;
font-weight:600;
color:rgba(53,53,53,1);
}
.item:last-child{
border-bottom-width: 0;
}
.checkout-get{
position: fixed;
bottom: 80rpx;
left: 38rpx;
width: calc(100% - 72rpx);
height: 80rpx;
line-height: 80rpx;
font-size:34rpx;
font-weight:400;
color:rgba(254,254,254,1);
background:rgba(36,35,32,1);
text-align: center;
}
.checkout-button{
width: 100%;
height: 80rpx;
line-height: 80rpx;
position: relative;
}
.checkout-get.subscribe{
bottom: 178rpx;
}
.checkout-get.tx-seller{
background: none;
border:2rpx solid rgba(38,38,40,1);
box-sizing: border-box;
color:rgba(38,38,40,1);
bottom: 80rpx;
}
.invoice-right .title{
font-size:32rpx;
font-weight:500;
color:rgba(153,153,153,1);
margin-right: 20rpx;
border-bottom-width: 0;
}
.invoice-right .title.active{
color:rgba(53,53,53,1);
}
.disabled .title{
height: 50rpx;
line-height: 50rpx;
text-align: right;
margin-right: 0;
}
.content.money{
padding-top: 27rpx;
padding-bottom: 27rpx;
}
.list{
line-height: 68rpx;
font-size:30rpx;
font-weight:500;
color:rgba(53,53,53,1);
}
.money-tips{
height:40rpx;
font-size:28rpx;
font-weight:500;
color:rgba(53,53,53,1);
line-height:40rpx;
margin-left: 40rpx;
margin-top: 20rpx;
padding-bottom: 140rpx;
}
.should_price{
color:rgba(224,32,32,1);
}
.pay-time{
border-top: 2rpx solid #F1F0F4;
margin-top: 20rpx;
padding-top: 20rpx;
}
/* 选中后的 对勾样式 (白色对勾 可根据UI需求自己修改) */
checkbox .wx-checkbox-input {
width: 48rpx;
height: 48rpx;
border-radius:8rpx;
border-width: 0;
margin: 0;
padding: 0;
background-image: url("http://nosqn.colorcun.com/checkout/images/checkbox.png");
background-size: 48rpx auto;
}
checkbox .wx-checkbox-input.wx-checkbox-input-checked{
background-position: 0 -48rpx;
}
checkbox .wx-checkbox-input.wx-checkbox-input-checked:before{
content: "";
}
.waiting-txt{
margin-top: 32rpx;
height:50rpx;
font-size:36rpx;
font-weight:500;
color:rgba(53,53,53,1);
line-height:50rpx;
}
.waiting-money{
height: 260rpx;
}
.money .checkout-get{
bottom: 66rpx;
}
.invoice-title,.invoice-taxnumber{
height:44rpx;
font-size:32rpx;
font-weight:500;
color:rgba(53,53,53,1);
line-height:44rpx;
text-align: right;
}
.list-name{
min-width: 150rpx;
}
.list-val{
text-align: right;
}
.link{
border-bottom: 2rpx solid #979797;
padding: 0 4rpx;
}
\ No newline at end of file
... ...
... ... @@ -3,7 +3,7 @@
<view class="cart" catchtap="catchtap">
<view class="cart-title flex-rr">
<view class="icon">
<image src="http://qn.colorcun.com/custom/lite-yd-cook/image/empty.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd-cook/image/empty.png"></image>
</view>
<view class="text" bindtap="RemoveCart">清空购物车</view>
</view>
... ...
... ... @@ -88,7 +88,7 @@
}
.cart-item .add{
background-color: #fefefe;
background-image: url("http://qn.colorcun.com/custom/lite-yd-cook/image/add.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd-cook/image/add.png");
background-size: 100%;
width: 40rpx;
height: 40rpx;
... ...
... ... @@ -14,7 +14,7 @@
</block>
<formids bindclick="close" class="menu-fixed">
<view>
<image src="http://qn.colorcun.com/custom/lite/image/menu-close-new.png" background-size="cover" class="menu-fixed-image-close"></image>
<image src="http://nosqn.colorcun.com/custom/lite/image/menu-close-new.png" background-size="cover" class="menu-fixed-image-close"></image>
</view>
</formids>
</view>
... ...
... ... @@ -18,7 +18,7 @@
<block wx:if="{{item_clear_num==0}}">
<image
class="avater"
src="http://qn.colorcun.com/custom/lite/image/clear.png"
src="http://nosqn.colorcun.com/custom/lite/image/clear.png"
style="width:41px;height:26px;margin-top:3px;position:relative;top:-2px;float:right;"
class="{{item.image?bg_white:bg_pink}}"/>
</block>
... ...
... ... @@ -199,7 +199,7 @@
}
.hasListModel .add{
background-color: #fefefe;
background-image: url("http://qn.colorcun.com/custom/lite-yd-cook/image/add.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd-cook/image/add.png");
background-size: 100%;
width: 40rpx;
height: 40rpx;
... ...
... ... @@ -4,7 +4,7 @@
<view hidden="{{hiddenFoodSpec}}" class="hiddenFoodSpec">
<view class="toast-mask flex-vc" bindtap="close">
<view class="toast-content" catchtap="catchtap">
<image class="toast-content-close" bindtap="close" src="http://qn.colorcun.com/custom/lite-yd-cook/image/close-cookbook.png" background-size="cover"></image>
<image class="toast-content-close" bindtap="close" src="http://nosqn.colorcun.com/custom/lite-yd-cook/image/close-cookbook.png" background-size="cover"></image>
<form bindsubmit="formSubmit">
<input value="{{cookbook_id}}" name="cookbookid" hidden="true"/>
<view class="toast-content-title">{{cookbook_name}}</view>
... ... @@ -38,7 +38,7 @@
<view hidden="{{hiddenFoodSpecReduce}}" class="hiddenFoodSpec">
<view class="reduce-mask flex-vc" bindtap="close">
<view class="reduce-conent" catchtap="catchtap">
<image class="toast-content-close" bindtap="close" src="http://qn.colorcun.com/custom/lite-yd-cook/image/close-cookbook.png" background-size="cover"></image>
<image class="toast-content-close" bindtap="close" src="http://nosqn.colorcun.com/custom/lite-yd-cook/image/close-cookbook.png" background-size="cover"></image>
<view class="reduce-content-title">{{item.name}}</view>
<view class="reduce-content-list">
<view class='reduce-content-large' wx:for="{{selectKind}}" wx:key="selectKind-key" wx:for-item="kindItem">
... ...
... ... @@ -185,7 +185,7 @@
.reduce-list-last{
width:40rpx;
height:40rpx;
background-image: url("http://qn.colorcun.com/custom/lite-yd-cook/image/add.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd-cook/image/add.png");
background-size: 100% 100%;
}
.reduce-close{
... ...
... ... @@ -53,7 +53,7 @@
width:64px;
}
.icon-membercard{
background: url(http://qn.colorcun.com/wechat/app/images/icon_card.jpg);
background: url(http://nosqn.colorcun.com/wechat/app/images/icon_card.jpg);
background-size: 100%; background-repeat: no-repeat;
height:100%;
}
... ...
... ... @@ -143,7 +143,7 @@ Page({
onShareAppMessage: function () {
return {
title:'一起来点菜啦!',
imageUrl:'http://qn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20191115114857.jpg',
imageUrl:'http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20191115114857.jpg',
}
},
formatCookList(list){
... ...
... ... @@ -36,14 +36,14 @@
<button class="share flex-vc button-none" open-type="share">
<view class="flex-vc">
<view class="icon">
<image src="http://qn.colorcun.com/custom/lite-yd-cook/image/share.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd-cook/image/share.png"></image>
</view>
<view class="text">一起点</view>
</view>
</button>
<view class="cart flex-ll" bindtap="dispalyCart">
<view class="icon">
<image src="http://qn.colorcun.com/custom/lite-yd-cook/image/cart-black.png"/>
<image src="http://nosqn.colorcun.com/custom/lite-yd-cook/image/cart-black.png"/>
<view class="dot" wx:if="{{orderItemCount>0}}">{{orderItemCount}}</view>
</view>
<view class="text Semibold">¥{{order.price}}</view>
... ...
... ... @@ -74,7 +74,7 @@ Page({
return {
title:'菜品已点好,快来看看都点了什么~',
path:util.http_build_query(options,'/pack-cookbook/pages/success'),
imageUrl:'http://qn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911151148571.jpg',
imageUrl:'http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911151148571.jpg',
}
},
... ...
... ... @@ -4,6 +4,11 @@
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"js-sha1": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/js-sha1/-/js-sha1-0.6.0.tgz",
"integrity": "sha512-01gwBFreYydzmU9BmZxpVk6svJJHrVxEN3IOiGl6VO93bVKYETJ0sIth6DASI6mIFdt7NmfX9UiByRzsYHGU9w=="
},
"mta-wechat-analysis": {
"version": "1.3.9",
"resolved": "https://registry.npmjs.org/mta-wechat-analysis/-/mta-wechat-analysis-1.3.9.tgz",
... ...
... ... @@ -13,6 +13,7 @@
"author": "",
"license": "ISC",
"dependencies": {
"js-sha1": "^0.6.0",
"mta-wechat-analysis": "^1.3.7"
}
}
... ...
... ... @@ -8,6 +8,7 @@
"nav":"/components/nav/nav",
"card":"/components/seller-card/seller-card",
"formids":"/components/formids/formids",
"userinfo-share": "/components/userinfo/share"
"userinfo-share": "/components/userinfo/share",
"activity-enter":"/components/activity/enter"
}
}
\ No newline at end of file
... ...
... ... @@ -46,4 +46,5 @@
</view>
</block>
</view>
<manager manager="{{detail}}" id="manager"></manager>
\ No newline at end of file
<manager manager="{{detail}}" id="manager"></manager>
<activity-enter floclass="detail_customer"></activity-enter>
\ No newline at end of file
... ...
... ... @@ -7,6 +7,7 @@
"nav":"/components/nav/nav",
"formids":"/components/formids/formids",
"a2l":"/components/tips/add-to-lite",
"activity-tips":"/components/activity/tips",
"userinfo-share": "/components/userinfo/share"
}
}
\ No newline at end of file
... ...
<!--pages/customer/detail_owner.wxml-->
<import src="../tpl/invitation"></import>
<nav backgroundColor="rgba(0,0,0,0)" hasHome style="position: fixed;z-index: 1;" class="navhome"></nav>
<view class="pages bg-{{options.tplid}} flex-vc" style="height:{{height}}px;" wx:if="{{options.tplid}}">
<view class="pages bg-{{options.tplid}} flex-vc" style="height:{{height}}px; padding-top: 120rpx;overflow-y: auto;" wx:if="{{options.tplid}}">
<template is="tpl-{{options.tplid}}" data="{{seller,options,hasOwner,animation,detail}}"></template>
<view class="opt-view flex-vc">
<view class="opt-view flex-vc" style="padding-bottom: 320rpx;">
<block wx:if="{{!detail.hasCanSuccess && detail.status!=4}}">
<userinfo class="button-none flex-vc" binduserinfo="confirmed" catchtap="catchtap">
<view class="buts-share animation customer"></view>
... ... @@ -13,19 +13,19 @@
</view>
<view class="opt-button flex-lr">
<view bindtap="gotoHome" class="dingbaojian flex-vc">
<image src="http://qn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20191114105901.png" class="icon"></image>
<image src="http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20191114105901.png" class="icon"></image>
<view class="text">订包间</view>
</view>
<view class="opt flex-cc">
<formids class="button-none flex-vc" bindclick="lookLocation">
<view class="opt-text flex-cc">
<image class="buts-dh" src="http://qn.colorcun.com/manager-invitation/wx2/%E4%B8%80%E9%94%AE%E5%AF%BC%E8%88%AA.png"></image>
<image class="buts-dh" src="http://nosqn.colorcun.com/manager-invitation/wx2/%E4%B8%80%E9%94%AE%E5%AF%BC%E8%88%AA.png"></image>
<view class="buts-text">一键导航</view>
</view>
</formids>
<userinfo-share class="button-none flex-vc" binduserinfo="toast">
<view class="opt-text flex-cc">
<image class="buts-sh" src="http://qn.colorcun.com/manager-invitation/wx2/%E8%BD%AC%E5%8F%91%E7%BB%99%E5%A5%BD%E5%8F%8B.png"></image>
<image class="buts-sh" src="http://nosqn.colorcun.com/manager-invitation/wx2/%E8%BD%AC%E5%8F%91%E7%BB%99%E5%A5%BD%E5%8F%8B.png"></image>
<view class="buts-text">转发给好友</view>
</view>
</userinfo-share>
... ... @@ -44,3 +44,4 @@
<template is="tpl-wenxin" data="{{...seller,options}}"></template>
</template>
<a2l bindshow="a2lshow" bindhide="a2lshow" key="INVIT"></a2l>
<activity-tips str="¥price" pos="pages/reserve/detail" cla="detail-invitation"></activity-tips>
\ No newline at end of file
... ...
... ... @@ -13,10 +13,10 @@ image{
}
.buts-share{
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E5%8F%91%E9%82%80%E8%AF%B7%E5%87%BD.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E5%8F%91%E9%82%80%E8%AF%B7%E5%87%BD.png");
}
.buts-share.customer{
background-image: url("http://qn.colorcun.com/manager-invitation/wx/%E7%A1%AE%E8%AE%A4%E6%94%B6%E5%88%B0.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx/%E7%A1%AE%E8%AE%A4%E6%94%B6%E5%88%B0.png");
}
.shangwu{
... ... @@ -28,12 +28,12 @@ image{
.shangwu .invit-logo.owner{
width: 380rpx;
height: 200rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92.png");
}
.shangwu .invit-logo.customer{
width: 352rpx;
height: 164rpx;
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/invit-logo.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/invit-logo.png");
}
... ... @@ -49,12 +49,12 @@ image{
.wenxin .invit-logo.owner{
width: 340rpx;
height: 184rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92-%E6%B8%A9%E9%A6%A8.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92-%E6%B8%A9%E9%A6%A8.png");
}
.wenxin .invit-logo.customer{
width: 344rpx;
height: 198rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/wx/%E9%82%80%E8%AF%B7%E5%87%BD.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx/%E9%82%80%E8%AF%B7%E5%87%BD.png");
}
.opt-button .dingbaojian{
... ... @@ -79,7 +79,7 @@ image{
margin-top: 8rpx;
}
.cancel-icon{
background-image: url("http://qn.colorcun.com/reserve/images/cancel-icon.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/cancel-icon.png");
background-size: 100% 100%;
width: 208rpx;
height: 172rpx;
... ...
... ... @@ -17,6 +17,7 @@ Page({
firstShowMsg:'',
rsl:[],//推荐商家
hasCancel:false, //取消预定效果
hasLoadedCheckout:false,
},
id: null,
tpls: TP.tpls(),
... ... @@ -126,6 +127,8 @@ Page({
firstShowMsg:firstShowMsg,
})
}
//this.GetBalance()//余额
this.GetCheckout()//账单
})
},
formatDatail(detail) {
... ... @@ -298,5 +301,35 @@ Page({
wx.setStorageSync('order', 'complete')
}
console.log(pages)
}
},
GetBalance(){//获得余额
App.User.GetBalance().then(res=>{
this.setData({
user:res.data
})
})
},
GetCheckout(){
App.Customer.GetOrderInfo({rid:this.options.id}).then(res=>{
this.setData({
checkout:res.data,
hasLoadedCheckout:true,
})
})
},
checkout(){
if(this.data.detail.status==0){
this.selectComponent('#showModal').options({
header: '商家未确认',
body: '确认后,到店消费可提前买单'
}).show();
}else{
wx.navigateTo({
url:util.http_build_query({
rid:this.data.detail.id,
sid:this.data.detail.sid
},'/pack-checkout/pages/index')
})
}
},
})
\ No newline at end of file
... ...
... ... @@ -12,6 +12,9 @@
"sb-tr":"/components/reserve/seller-box-transverse/seller-box",
"getpos":"/components/userinfo/getpos",
"as":"/components/actionSheet/index",
"subscribe": "/components/userinfo/subscribe"
"subscribe": "/components/userinfo/subscribe",
"activity-enter":"/components/activity/enter",
"showModal":"/components/tips/showModal/showModal",
"seller-discount":"/components/reserve/seller/discount"
}
}
\ No newline at end of file
... ...
... ... @@ -42,6 +42,19 @@
<subscribe class="flex-lr share-view subscribe" ids="{{[0]}}">
<view class="share-but">提醒我包间预订结果</view>
</subscribe>
<view class="flex-lr share-view-cookbook" wx:if="{{detail.seller.isopen_md==1}}">
<userinfo
binduserinfo="checkout"
share="{{detail}}"
share-act="invitation"
class="share-but-view">
<view class="share-but Regular">
提前买单
<seller-discount id="seller-discount" seller="{{detail.seller}}" wx:if="{{detail.seller}}"
cla="money-tips detail_owner"></seller-discount>
</view>
</userinfo>
</view>
</block>
<block wx:elif="{{detail.status==6}}">
<view class="icon">
... ... @@ -76,28 +89,44 @@
<view class="share-but Regular">发邀请函</view>
</userinfo-share>
</view>
<view class="flex-lr share-view-cookbook" wx:if="{{detail.seller.is_open_order==1 || detail.seller.is_open_wine==1}}">
<userinfo wx:if="{{detail.seller.is_open_wine==1}}"
binduserinfo="wineGo"
bindshare="share"
share="{{detail}}"
share-act="invitation"
class="share-but-view">
<view class="share-but Regular">订酒水</view>
</userinfo>
<userinfo wx:if="{{detail.seller.is_open_order==1}}"
binduserinfo="cookbook"
bindshare="share"
share="{{detail}}"
share-act="invitation"
class="share-but-view">
<view class="share-but Regular flex-cc" wx:if="{{detail.order && detail.order.cookbooklist.length>0}}">
<view>查看菜品</view>
<image class="order-cook" src="http://qn.colorcun.com/custom/lite-yd-cook/image/order-cook.png"></image>
</view>
<view class="share-but Regular" wx:else="">提前点餐</view>
</userinfo>
</view>
<block wx:if="{{(detail.seller.is_open_order==1 || detail.seller.is_open_wine==1 ) || (hasLoadedCheckout && detail.seller.isopen_md==1 && checkout.status!=3)}}">
<view class="flex-lr share-view-cookbook">
<userinfo wx:if="{{detail.seller.is_open_wine==1}}"
binduserinfo="wineGo"
bindshare="share"
share="{{detail}}"
share-act="invitation"
class="share-but-view">
<view class="share-but Regular">订酒水</view>
</userinfo>
<userinfo wx:if="{{detail.seller.is_open_order==1}}"
binduserinfo="cookbook"
bindshare="share"
share="{{detail}}"
share-act="invitation"
class="share-but-view">
<view class="share-but Regular flex-cc" wx:if="{{detail.order && detail.order.cookbooklist.length>0}}">
<view>查看菜品</view>
<image class="order-cook" src="http://nosqn.colorcun.com/custom/lite-yd-cook/image/order-cook.png"></image>
</view>
<view class="share-but Regular" wx:else="">提前点餐</view>
</userinfo>
<userinfo wx:if="{{detail.seller.isopen_md==1 && checkout.status!=3}}"
binduserinfo="checkout"
share="{{detail}}"
share-act="invitation"
class="share-but-view">
<view class="share-but Regular">
<view class="flex-cc">
<view class="checkout-icon checkout-icon-{{checkout.status}}" wx:if="{{checkout}}"></view>
提前买单
</view>
<seller-discount id="seller-discount" seller="{{detail.seller}}" wx:if="{{detail.seller}}"
cla="money-tips detail_owner"></seller-discount>
</view>
</userinfo>
</view>
</block>
</block>
<view style="height: 40rpx;"></view>
<card seller="{{detail.seller}}" detail="{{detail}}" bindevent="cardEvent"></card>
... ... @@ -133,7 +162,7 @@
</block>
<view style="margin-left: 12rpx;">等{{detail.customers.length}}人已参加</view>
</view>
<image src="http://qn.colorcun.com/custom/lite-yd/image/click.png" class="more"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/click.png" class="more"></image>
</view>
</formids>
</block>
... ... @@ -142,12 +171,40 @@
<view class="flex-rr">
<view class="item" bindtap="callSeller">联系商家</view>
<navigator url="./cancel?id={{detail.id}}"
wx:if="{{detail.hasRunning || detail.status==0}}"
wx:if="{{(detail.hasRunning || detail.status==0) && checkout.status!=3}}"
hover-class="navigator-hover">
<view class="item" >取消预订</view>
</navigator>
</view>
</view>
<block wx:if="{{checkout.status==3}}">
<view class="hr" style="margin-top: 78rpx;margin-bottom: 78rpx;"></view>
<view class="detail-info Medium" style="margin-top: 56rpx;">
<view class="flex-lr">
<view>实付金额</view>
<view class="detail-info-right" style="color:rgba(224,32,32,1);">¥{{checkout.should_price}}</view>
</view>
<view class="flex-lr" style="margin-top: 26rpx;">
<view></view>
<navigator url="/pack-checkout/pages/index?sid={{detail.seller.id}}&rid={{detail.id}}">
<view class="detail-info-right see-pics">查看消费详情</view>
</navigator>
</view>
</view>
</block>
<block wx:if="{{checkout.invoice}}">
<view class="hr" style="margin-top: 78rpx;margin-bottom: 78rpx;"></view>
<view class="detail-info Medium" style="margin-top: 56rpx;">
<view class="flex-lr">
<view>发票</view>
<view class="detail-info-right">{{checkout.invoice.title}}</view>
</view>
<view class="flex-lr" style="margin-top: 26rpx;">
<view></view>
<view class="detail-info-right">{{checkout.invoice.taxnumber}}</view>
</view>
</view>
</block>
<block wx:if="{{rsl.length>0}}">
<view class="line-push">为你推荐</view>
<view class="transverse-list">
... ... @@ -174,4 +231,6 @@
</view>
<manager manager="{{detail}}" id="manager"></manager>
<as id="as" items="{{detail.seller.seller_tel}}" bindclick="callSellerPhone">拨打电话</as>
<getpos bindpos="onpos" id="getpos" hasAllowFail hasAllowLoading="{{false}}"></getpos>
\ No newline at end of file
<getpos bindpos="onpos" id="getpos" hasAllowFail hasAllowLoading="{{false}}"></getpos>
<activity-enter floclass="detail_owner"></activity-enter>
<showModal id="showModal" confirmText="知道了" bindshowModal="showModal" cla="checkout"></showModal>
... ...
... ... @@ -45,9 +45,6 @@
width: 100%;
background-color: #262628;
}
.share-view-cookbook:last-child{
border-width: 0;
}
.share-view-cookbook{
margin-top: 0rpx;
margin-bottom: 20rpx;
... ... @@ -61,6 +58,7 @@
.share-but{
width: 100%;
text-align: center;
position: relative;
}
.seller{
... ... @@ -136,7 +134,7 @@
text-decoration: underline;
}
.line-push{
background-image: url("http://qn.colorcun.com/reserve/images/line-push.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/line-push.png");
width: 328rpx;
height: 42rpx;
background-size: 100% 24rpx;
... ... @@ -160,4 +158,28 @@
}
.share-view.subscribe{
margin-top: 24rpx;
}
.checkout-icon{
width: 32rpx;
height: 32rpx;
margin-right: 20rpx;
background-size: 100% 100%;
}
.checkout-icon-1{
background-image: url("http://nosqn.colorcun.com/checkout/images/2.png");
}
.checkout-icon-2{
background-image: url("http://nosqn.colorcun.com/checkout/images/1.png");
}
.checkout-icon-3{
background-image: url("http://nosqn.colorcun.com/checkout/images/1.png");
}
.see-pics{
height:42rpx;
font-size:30rpx;
font-weight:500;
color:rgba(53,53,53,1);
line-height:42rpx;
border-bottom: 2rpx solid #353535;
}
\ No newline at end of file
... ...
... ... @@ -19,18 +19,18 @@
</view>
<view class="bottom flex-lr" wx:if="{{true || !detail.hasOvered && !detail.hasCancel}}">
<view bindtap="gotoHome" class="dingbaojian flex-vc">
<image src="http://qn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20191114105901.png" class="icon"></image>
<image src="http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20191114105901.png" class="icon"></image>
<view class="text">订包间</view>
</view>
<formids bindclick="sendmsg" class="diancan" style="{{detail.seller.is_open_order!=1 && detail.seller.is_open_wine!=1?'width:100%;':''}}">
<view class="buts-text flex-cc">
<image src="http://qn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911141059011.png" class="icon"></image>
<image src="http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911141059011.png" class="icon"></image>
短信通知
</view>
</formids>
<userinfo binduserinfo="cookbook" class="diancan left-border" wx:if="{{detail.seller.is_open_order==1}}">
<view class="buts-text flex-cc">
<image src="http://qn.colorcun.com/manager-invitation/wx2/%E6%8F%90%E5%89%8D%E7%82%B9%E9%A4%90.png" class="icon"></image>
<image src="http://nosqn.colorcun.com/manager-invitation/wx2/%E6%8F%90%E5%89%8D%E7%82%B9%E9%A4%90.png" class="icon"></image>
提前点餐
</view>
</userinfo>
... ... @@ -38,7 +38,7 @@
<view class="vline" wx:if="{{detail.seller.is_open_order==1}}" ></view>
<formids bindclick="toast" class="jiushui">
<view class="buts-text flex-cc">
<image src="http://qn.colorcun.com/manager-invitation/wx2/%E8%87%AA%E5%B8%A6%E9%85%92%E6%B0%B4.png" class="icon"></image>
<image src="http://nosqn.colorcun.com/manager-invitation/wx2/%E8%87%AA%E5%B8%A6%E9%85%92%E6%B0%B4.png" class="icon"></image>
自带酒水
</view>
</formids>
... ...
... ... @@ -11,10 +11,10 @@ image{
height: 100%;
}
.buts-share{
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E5%8F%91%E9%82%80%E8%AF%B7%E5%87%BD.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E5%8F%91%E9%82%80%E8%AF%B7%E5%87%BD.png");
}
.buts-share.customer{
background-image: url("http://qn.colorcun.com/manager-invitation/wx/%E7%A1%AE%E8%AE%A4%E6%94%B6%E5%88%B0.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx/%E7%A1%AE%E8%AE%A4%E6%94%B6%E5%88%B0.png");
}
.shangwu{
... ... @@ -26,12 +26,12 @@ image{
.shangwu .invit-logo.owner{
width: 380rpx;
height: 200rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92.png");
}
.shangwu .invit-logo.customer{
width: 352rpx;
height: 164rpx;
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/invit-logo.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/invit-logo.png");
}
... ... @@ -47,12 +47,12 @@ image{
.wenxin .invit-logo.owner{
width: 340rpx;
height: 184rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92-%E6%B8%A9%E9%A6%A8.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92-%E6%B8%A9%E9%A6%A8.png");
}
.wenxin .invit-logo.customer{
width: 344rpx;
height: 198rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/wx/%E9%82%80%E8%AF%B7%E5%87%BD.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx/%E9%82%80%E8%AF%B7%E5%87%BD.png");
}
.bottom{
... ...
... ... @@ -12,7 +12,7 @@
-->
<block wx:if="{{total==0}}">
<view class="flex-vc empry">
<image src="http://qn.colorcun.com/custom/lite-online/image/follow-empty.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-online/image/follow-empty.png"></image>
<view class="Medium">暂无日程</view>
</view>
</block>
... ... @@ -25,12 +25,19 @@
<card hasListShare bindevent="gotoDetail"
seller="{{detail.seller}}" detail="{{detail}}">
<view slot="listshare" style="height:52rpx;line-height:52rpx;margin-top:4rpx;">
<userinfo wx:if="{{detail.hasOwner}}"
data-id="{{detail.id}}"
binduserinfo="gotoDetailHan">
<!--<view class="opt-button">{{detail.hasOwner?'邀请':'分享日程'}}</view>-->
<view class="opt-button">邀请同行好友</view>
</userinfo>
<view class="flex-rr" wx:if="{{detail.hasOwner}}">
<userinfo
data-id="{{detail.id}}"
binduserinfo="gotoDetailHan">
<!--<view class="opt-button">{{detail.hasOwner?'邀请':'分享日程'}}</view>-->
<view class="opt-button">邀请同行好友</view>
</userinfo>
<navigator
wx:if="{{detail.bill_status!=3 && detail.seller.isopen_md==1}}"
url="/pack-checkout/pages/index?rid={{detail.id}}&sid={{detail.seller.id}}">
<view class="opt-button">提前买单</view>
</navigator>
</view>
<userinfo-share wx:else="{{}}"
id="userinfo-share-{{detail.id}}"
binduserinfo="userinfo"
... ...
... ... @@ -16,7 +16,7 @@
</view>
</block>
<view wx:else="" class="history-is-empty flex-vc Medium">
<image src="http://qn.colorcun.com/custom/lite-yd/image/history-is-empty.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-yd/image/history-is-empty.png"></image>
<view>暂时还没有客户</view>
</view>
<view wx:if="{{!hasMore}}" class="row flex-vc">已经到底了</view>
... ...
/* pages/book/setting/index.wxss */
/*
http://qn.colorcun.com/custom/lite-yd/image/icon-zk.png
http://qn.colorcun.com/custom/lite-yd/image/icon-cz.png
http://nosqn.colorcun.com/custom/lite-yd/image/icon-zk.png
http://nosqn.colorcun.com/custom/lite-yd/image/icon-cz.png
*/
.pages{
width: 90%;
... ...
... ... @@ -7,13 +7,13 @@
<view class="opt flex-cc">
<formids class="button-none flex-vc" bindclick="lookLocation">
<view class="opt-text flex-cc">
<image class="buts-dh" src="http://qn.colorcun.com/manager-invitation/wx2/%E4%B8%80%E9%94%AE%E5%AF%BC%E8%88%AA.png"></image>
<image class="buts-dh" src="http://nosqn.colorcun.com/manager-invitation/wx2/%E4%B8%80%E9%94%AE%E5%AF%BC%E8%88%AA.png"></image>
<view class="buts-text">一键导航</view>
</view>
</formids>
<userinfo-share class="button-none flex-vc" binduserinfo="toast">
<view class="opt-text flex-cc">
<image class="buts-sh" src="http://qn.colorcun.com/manager-invitation/wx2/%E8%BD%AC%E5%8F%91%E7%BB%99%E5%A5%BD%E5%8F%8B.png"></image>
<image class="buts-sh" src="http://nosqn.colorcun.com/manager-invitation/wx2/%E8%BD%AC%E5%8F%91%E7%BB%99%E5%A5%BD%E5%8F%8B.png"></image>
<view class="buts-text">转发给好友</view>
</view>
</userinfo-share>
... ... @@ -72,7 +72,7 @@
<view class="flex-vc wenxin">
<view class="invit-logo {{hasOwner?'owner':'customer'}}"></view>
<view class="wenxin-mask">
<view class="wenxin-mask-bg" style="background-image: url({{image||'http://qn.colorcun.com/manager-invitation/wx/hunshazhao3.jpg'}})"></view>
<view class="wenxin-mask-bg" style="background-image: url({{image||'http://nosqn.colorcun.com/manager-invitation/wx/hunshazhao3.jpg'}})"></view>
<view class="wenxin-mask-img"></view>
</view>
<view class="wenxin-line"></view>
... ... @@ -81,7 +81,7 @@
<view class="content">{{name}}</view>
<view class="content">{{room}}</view>
<view class="content flex-cc addr" bindtap="lookLocation">
<image src="http://qn.colorcun.com/manager-invitation/wx/address.png" class="invit-addr"></image>
<image src="http://nosqn.colorcun.com/manager-invitation/wx/address.png" class="invit-addr"></image>
{{addr}}
</view>
</view>
... ...
... ... @@ -12,10 +12,10 @@ image{
}
.buts-share{
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E5%8F%91%E9%82%80%E8%AF%B7%E5%87%BD.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E5%8F%91%E9%82%80%E8%AF%B7%E5%87%BD.png");
}
.buts-share.customer{
background-image: url("http://qn.colorcun.com/manager-invitation/wx/%E7%A1%AE%E8%AE%A4%E6%94%B6%E5%88%B0.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx/%E7%A1%AE%E8%AE%A4%E6%94%B6%E5%88%B0.png");
}
.shangwu{
... ... @@ -27,12 +27,12 @@ image{
.shangwu .invit-logo.owner{
width: 380rpx;
height: 200rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92.png");
}
.shangwu .invit-logo.customer{
width: 352rpx;
height: 164rpx;
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/invit-logo.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/invit-logo.png");
}
... ... @@ -48,10 +48,10 @@ image{
.wenxin .invit-logo.owner{
width: 340rpx;
height: 184rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92-%E6%B8%A9%E9%A6%A8.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92-%E6%B8%A9%E9%A6%A8.png");
}
.wenxin .invit-logo.customer{
width: 344rpx;
height: 198rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/wx/%E9%82%80%E8%AF%B7%E5%87%BD.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx/%E9%82%80%E8%AF%B7%E5%87%BD.png");
}
... ...
... ... @@ -23,7 +23,7 @@ Page({
latitude:'',
longitude:'',
},
defImage:'http://qn.colorcun.com/manager-invitation/wx/upload2.jpg',
defImage:'http://nosqn.colorcun.com/manager-invitation/wx/upload2.jpg',
tpl:{},
timeStr:'',
searchlist:[],
... ...
... ... @@ -44,7 +44,7 @@
data-key="addr"
placeholder="请输入店铺地址" placeholder-class="placeholder-class"/>
<view class="caddr flex-rr" bindtap="onChangeAddress">
<image src="http://qn.colorcun.com/manager-invitation/wx/caddr.png" style="width: 28rpx; height: 36rpx;"></image>
<image src="http://nosqn.colorcun.com/manager-invitation/wx/caddr.png" style="width: 28rpx; height: 36rpx;"></image>
</view>
</view>
</view>
... ...
... ... @@ -25,11 +25,11 @@ page{
}
.steps .icon.home{
margin-right: 40rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/%E5%95%86%E5%AE%B6.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/%E5%95%86%E5%AE%B6.png");
}
.steps .icon.user{
margin-left: 20rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/%E9%A1%BE%E5%AE%A2.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/%E9%A1%BE%E5%AE%A2.png");
}
.steps .dot{
width: 12rpx;
... ...
... ... @@ -29,7 +29,7 @@
<template name="tpl-1">
<view class="flex-vc shangwu" bindtap="{{options.rid?'goEditor':''}}">
<view class="invit-logo">
<image src="http://qn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92.png"></image>
<image src="http://nosqn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92.png"></image>
<view class="quick-editor" wx:if="{{options.rid}}">修改内容</view>
</view>
<view class="shangwu-line"></view>
... ... @@ -74,11 +74,11 @@
<view class="wenxin-bottom"></view>
<view class="flex-vc wenxin" bindtap="{{options.rid?'goEditor':''}}">
<view class="invit-logo">
<image src="http://qn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92-%E6%B8%A9%E9%A6%A8.png"></image>
<image src="http://nosqn.colorcun.com/manager-invitation/wx2/%E9%A2%84%E8%AE%A2%E5%AE%89%E6%8E%92-%E6%B8%A9%E9%A6%A8.png"></image>
<view class="quick-editor" wx:if="{{options.rid}}">修改内容</view>
</view>
<view class="wenxin-mask">
<view class="wenxin-mask-bg" style="background-image: url({{image||'http://qn.colorcun.com/manager-invitation/wx/hunshazhao3.jpg'}})"></view>
<view class="wenxin-mask-bg" style="background-image: url({{image||'http://nosqn.colorcun.com/manager-invitation/wx/hunshazhao3.jpg'}})"></view>
<view class="wenxin-mask-img"></view>
</view>
<view class="wenxin-line"></view>
... ... @@ -87,7 +87,7 @@
<view class="content">{{name}}</view>
<view class="content">{{room}}</view>
<view class="content flex-cc addr">
<image src="http://qn.colorcun.com/manager-invitation/wx/address.png" class="invit-addr"></image>
<image src="http://nosqn.colorcun.com/manager-invitation/wx/address.png" class="invit-addr"></image>
{{addr}}
</view>
</view>
... ...
/* pages/book/setting/index.wxss */
/*
http://qn.colorcun.com/custom/lite-yd/image/icon-zk.png
http://qn.colorcun.com/custom/lite-yd/image/icon-cz.png
http://nosqn.colorcun.com/custom/lite-yd/image/icon-zk.png
http://nosqn.colorcun.com/custom/lite-yd/image/icon-cz.png
*/
.header{
background-color: #199095;
... ...
... ... @@ -14,7 +14,7 @@
data-key="address"
placeholder="请输入店铺地址" placeholder-class="placeholder-class"/>
<view class="caddr flex-rr" bindtap="onChangeAddress">
<image src="http://qn.colorcun.com/manager-invitation/wx/caddr.png" style="width: 28rpx; height: 36rpx;"></image>
<image src="http://nosqn.colorcun.com/manager-invitation/wx/caddr.png" style="width: 28rpx; height: 36rpx;"></image>
</view>
</view>
<view class="item flex-lr">
... ...
... ... @@ -13,7 +13,7 @@
</block>
</view>
<view class="pages flex-vc" wx:else="">
<image src="http://qn.colorcun.com/custom/lite-online/image/follow-empty.png" class="empty-image"></image>
<image src="http://nosqn.colorcun.com/custom/lite-online/image/follow-empty.png" class="empty-image"></image>
<view class="empty-text">您还没有添加工作店铺</view>
<formids url="./seller-editor" style="width: 110%">
<view class="create-but">立即添加</view>
... ...
... ... @@ -3,7 +3,7 @@
<view class="pages">
<view class="flex-vc empty" wx:if="{{sellers.length<1}}">
<block wx:if="{{!hasFirstShow}}">
<image src="http://qn.colorcun.com/custom/lite-online/image/follow-empty.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-online/image/follow-empty.png"></image>
<view>您还没有收藏任何餐厅哦</view>
</block>
</view>
... ...
... ... @@ -3,7 +3,7 @@
<view class="pages">
<view class="flex-vc empty" wx:if="{{sellersLength<1}}">
<block wx:if="{{!hasFirstShow}}">
<image src="http://qn.colorcun.com/custom/lite-online/image/follow-empty.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-online/image/follow-empty.png"></image>
<view class="text">您还没有留下足迹哦~</view>
<view class="goHome" bindtap="goHome">去首页逛逛</view>
</block>
... ... @@ -19,7 +19,7 @@
<view class="seller-item flex-ll" wx:for="{{group.sellers}}" wx:key="groupSellerskey" wx:for-item="seller"
bindtap="gotoDetail" data-sid="{{seller.id}}">
<image mode="aspectFill" class="image"
src="{{seller.seller_image?seller.seller_image+'?imageView2/2/w/320/interlace/0/q/100':'http://qn.colorcun.com/reserve/images/3x/%E6%9A%82%E6%97%A0.png'}}"></image>
src="{{seller.seller_image?seller.seller_image+'?imageView2/2/w/320/interlace/0/q/100':'http://nosqn.colorcun.com/reserve/images/3x/%E6%9A%82%E6%97%A0.png'}}"></image>
<view class="seller-item-info">
<view class="seller-item-name">{{seller.sellername}}</view>
<view class="seller-item-price" wx:if="{{seller.average>0}}">¥{{seller.average}}元/人</view>
... ...
... ... @@ -35,7 +35,7 @@ page{
z-index: 10;
}
.clean-img{
background-image: url("http://qn.colorcun.com/reserve/images/20191224153853.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/20191224153853.png");
background-size: 100% 100%;
width: 24rpx;
height: 24rpx;
... ... @@ -59,7 +59,7 @@ page{
margin: 0 auto;
}
.line-push{
background-image: url("http://qn.colorcun.com/reserve/images/line-push.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/line-push.png");
width: 328rpx;
height: 42rpx;
background-size: 100% 24rpx;
... ...
... ... @@ -29,6 +29,11 @@ Page({
hasManagerInvitation: true,
})
}
App.User.GetBalance().then(res=>{
this.setData({
user:res.data
})
})
})
},
... ... @@ -43,7 +48,11 @@ Page({
* 生命周期函数--监听页面显示
*/
onShow: function () {
App.User.GetBalance().then(res=>{
this.setData({
user:res.data
})
})
},
/**
... ...
... ... @@ -11,6 +11,20 @@
</view>
</view>
<view class="pages">
<view class="block-rev money flex-lr">
<navigator url="/pack-activity/pages/money" class="money-item">
<view class="flex-vc">
<view class="money-value">¥{{user.balance.price||0}}</view>
<view class="money-title">余额</view>
</view>
</navigator>
<navigator url="/pack-activity/pack/pack" class="money-item">
<view class="flex-vc">
<view class="money-value">{{user.card}}</view>
<view class="money-title">红包</view>
</view>
</navigator>
</view>
<view class="block-rev">
<navigator url="/pages/me/list">
<view class="title flex-lr">
... ...
... ... @@ -45,6 +45,7 @@ image{
border-radius:10rpx;
margin-bottom: 20rpx;
}
.block-rev .title{
box-sizing: border-box;
height: 100rpx;
... ... @@ -55,6 +56,9 @@ image{
font-size:30rpx;
font-weight:600;
}
.block-rev.money .title{
border-bottom-width: 0;
}
.block-rev .content{
height: 198rpx;
box-sizing: border-box;
... ... @@ -72,32 +76,32 @@ image{
margin-bottom: 20rpx;
}
.icon.o1{
background-image: url("http://qn.colorcun.com/custom/me/image/o1.png");
background-image: url("http://nosqn.colorcun.com/custom/me/image/o1.png");
}
.icon.o2{
background-image: url("http://qn.colorcun.com/custom/me/image/o2.png");
background-image: url("http://nosqn.colorcun.com/custom/me/image/o2.png");
}
.icon.o3{
background-image: url("http://qn.colorcun.com/custom/me/image/o3.png");
background-image: url("http://nosqn.colorcun.com/custom/me/image/o3.png");
}
.icon.o4{
background-image: url("http://qn.colorcun.com/custom/me/image/o4.png");
background-image: url("http://nosqn.colorcun.com/custom/me/image/o4.png");
}
.block-rev .picon{
width:38rpx;
height:38rpx;
}
.picon.p1{
background-image: url("http://qn.colorcun.com/custom/me/image/p1.png");
background-image: url("http://nosqn.colorcun.com/custom/me/image/p1.png");
}
.picon.p2{
background-image: url("http://qn.colorcun.com/custom/me/image/p2.png");
background-image: url("http://nosqn.colorcun.com/custom/me/image/p2.png");
}
.picon.p3{
background-image: url("http://qn.colorcun.com/custom/me/image/p3.png");
background-image: url("http://nosqn.colorcun.com/custom/me/image/p3.png");
}
.picon.p4{
background-image: url("http://qn.colorcun.com/reserve/images/201912241538531.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/201912241538531.png");
}
.block-rev .width3{
width: 75%;
... ... @@ -140,13 +144,42 @@ image{
width: 32rpx;
height:30rpx;
background-size: 100%;
background-image: url("http://qn.colorcun.com/custom/me/image/l1.png");
background-image: url("http://nosqn.colorcun.com/custom/me/image/l1.png");
margin-right: 20rpx;
}
.item-name .tuco{
width: 34rpx;
height:26rpx;
background-size: 100%;
background-image: url("http://qn.colorcun.com/custom/me/image/l2.png");
background-image: url("http://nosqn.colorcun.com/custom/me/image/l2.png");
margin-right: 20rpx;
}
.block-rev.money{
height: 160rpx;
}
.money-title{
height:40rpx;
font-size:28rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(136,136,136,1);
line-height:40rpx;
}
.money-value{
height:48rpx;
font-size:34rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(0,0,0,1);
line-height:48rpx;
}
.money-item{
width: 50%;
box-sizing: border-box;
height: 88rpx;
border-right: 2rpx solid #F5F5F5;
}
.money-item:last-child{
border-right-width: 0;
}
\ No newline at end of file
... ...
... ... @@ -9,7 +9,7 @@
<view class="page">
<block wx:if="{{list[tabType].length==0}}">
<view class="flex-vc empry">
<image src="http://qn.colorcun.com/reserve/images/order-empty.png"></image>
<image src="http://nosqn.colorcun.com/reserve/images/order-empty.png"></image>
<view class="Medium">暂无订单</view>
</view>
</block>
... ...
... ... @@ -110,7 +110,7 @@
}
.line-push{
background-image: url("http://qn.colorcun.com/reserve/images/line-push.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/line-push.png");
width: 328rpx;
height: 42rpx;
background-size: 100% 24rpx;
... ...
... ... @@ -41,7 +41,7 @@ Page({
seller.distanceStr=seller.distance+'米';
}
if(seller.envi_image.length<1){
seller.envi_image=['http://qn.colorcun.com/custom/lite-online/image/def-banner.png']
seller.envi_image=['http://nosqn.colorcun.com/custom/lite-online/image/def-banner.png']
}
this.setData({
seller:seller,
... ...
... ... @@ -2,7 +2,7 @@
<nav>更多优惠</nav>
<view class="pages">
<view class="title flex-ll Semibold">
<image src="http://qn.colorcun.com/custom/lite-online/image%E5%96%87%E5%8F%AD.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-online/image%E5%96%87%E5%8F%AD.png"></image>
优惠活动
</view>
<view class="activity" >
... ...
... ... @@ -9,7 +9,7 @@ Page({
* 页面的初始数据
*/
data: {
seller:{},
seller:null,
IsCollectionSeller:false,
pagesHeight:'auto',
current:0,
... ... @@ -74,7 +74,11 @@ Page({
}
}
if(seller.envi_image.length<1){
seller.envi_image=['http://qn.colorcun.com/custom/lite-online/image/def-banner.png']
seller.envi_image=['http://nosqn.colorcun.com/custom/lite-online/image/def-banner.png']
}else{
seller.envi_image.some((url,i)=>{
seller.envi_image[i]=url.replace('//qn.colorcun','//nosqn.colorcun')
})
}
if(seller.label_c.length>0) {
let label_cstr=[];
... ... @@ -83,6 +87,30 @@ Page({
})
seller.label_cstr=label_cstr.join(' | ')
}
if(seller.room_image.length>0){
seller.room_image.some((url,i)=>{
seller.room_image[i]=url.replace('//qn.colorcun','//nosqn.colorcun')
})
}
if(seller.dishes.length>0){
seller.dishes.some((dishes)=>{
if(dishes.image){
dishes.image=dishes.image.replace('//qn.colorcun','//nosqn.colorcun')
}
})
}
if(seller.card_info){
let xff=[]
seller.card_info.forEach(card=>{
seller['receive_condition_'+card.receive_condition]=true
if(card.receive_condition==2){
xff.push(`满${card.order_price}元返${card.price}元`)
}
})
if(xff.length>0){
seller.receive_condition_str=xff.join('/')
}
}
this.setData({
seller:seller,
hasOnlineReserve:seller.is_online_reserve==1,
... ... @@ -240,26 +268,38 @@ Page({
this.GetSellerDetail();
},
reviweBanner(){
let urls=[];
this.data.seller.envi_image.forEach(url=>{
if(url){
urls.push(url+'-zdmask')
}
})
wx.previewImage({
current:this.data.seller.envi_image[this.data.current],
urls:this.data.seller.envi_image
current:this.data.seller.envi_image[this.data.current]+'-zdmask',
urls:urls
})
},
reviweRoomImage(e){
let urls=[];
this.data.seller.room_image.forEach(url=>{
if(url){
urls.push(url+'-zdmask')
}
})
wx.previewImage({
current:util.attr(e,'current'),
urls:this.data.seller.room_image
current:util.attr(e,'current')+'-zdmask',
urls:urls
})
},
reviweDishesImage(e){
let urls=[];
this.data.seller.dishes.forEach(d=>{
if(d.image){
urls.push(d.image)
urls.push(d.image+'-zdmask')
}
})
wx.previewImage({
current:util.attr(e,'current'),
current:util.attr(e,'current')+'-zdmask',
urls:urls
})
},
... ...
... ... @@ -10,12 +10,13 @@
"as":"/components/actionSheet/index",
"nav":"/components/nav/nav",
"getpos":"/components/userinfo/getpos",
"discount":"/components/reserve/discount",
"discount":"/components/reserve/seller/discount",
"share":"/components/reserve/share/share",
"people":"/components/reserve/people/people",
"dur":"/components/reserve/dur/dur",
"calendar":"/components/reserve/week-calendar/week-calendar",
"section":"/components/reserve/section/section",
"select-room":"/components/reserve/select-room/select-room"
"activity-tips":"/components/activity/tips",
"section":"/components/reserve/section/section",
"select-room":"/components/reserve/select-room/select-room"
}
}
\ No newline at end of file
... ...
<!--pages/reserve/detail.wxml-->
<layout>
<nav hasHome>{{seller.sellername}}</nav>
<!-- 包间预定 -->
<view class="tabs flex-lr" wx:if="{{hasOnlineReserve}}">
<view class="tabs-item flex-vc" bindtap="switchTabs" data-act="detail">
<view class="tabs-item-text {{activeTab=='detail'?'active':''}}">餐厅详情</view>
</view>
<view class="tabs-item flex-vc" bindtap="switchTabs" data-act="reserve">
<view class="tabs-item-text {{activeTab=='reserve'?'active':''}}">包间预订</view>
<nav hasHome>{{seller.sellername}}</nav>
<!-- 包间预定 -->
<view class="tabs flex-lr" wx:if="{{hasOnlineReserve}}">
<view class="tabs-item flex-vc" bindtap="switchTabs" data-act="detail">
<view class="tabs-item-text {{activeTab=='detail'?'active':''}}">餐厅详情</view>
</view>
<view class="tabs-item flex-vc" bindtap="switchTabs" data-act="reserve">
<view class="tabs-item-text {{activeTab=='reserve'?'active':''}}">包间预订</view>
</view>
</view>
</view>
<view hidden="{{activeTab!='detail'}}">
<view class="seller-banner" style="{{pagesHeight!='auto'?'position: fixed;':''}}{{hasOnlineReserve?'margin-top: 80rpx;':''}}">
<swiper
indicator-dots="{{false}}" autoplay="{{false}}" circular="{{false}}" vertical="{{false}}"
interval="2000" duration="500"
previous-margin="{{0}}px" next-margin="{{0}}px"
current="{{current}}" bindchange="bindtransition" bindtap="reviweBanner">
<block wx:for="{{seller.envi_image}}" wx:key="sellers.key">
<swiper-item>
<image class="image" mode="aspectFill"
src="{{item}}?imageView2/2/w/860/interlace/0/q/100" ></image>
</swiper-item>
</block>
</swiper>
<view class="slogan" wx:if="{{seller.slogan}}">
<view class="slogan-view flex-ll">
<view class="dot"></view>
<view>{{seller.slogan}}</view>
<view hidden="{{activeTab!='detail'}}">
<view class="seller-banner" style="{{pagesHeight!='auto'?'position: fixed;':''}}{{hasOnlineReserve?'margin-top: 80rpx;':''}}">
<swiper
indicator-dots="{{false}}" autoplay="{{false}}" circular="{{false}}" vertical="{{false}}"
interval="2000" duration="500"
previous-margin="{{0}}px" next-margin="{{0}}px"
current="{{current}}" bindchange="bindtransition" bindtap="reviweBanner">
<block wx:for="{{seller.envi_image}}" wx:key="sellers.key">
<swiper-item>
<image class="image" mode="aspectFill"
src="{{item}}?imageView2/2/w/860/interlace/0/q/100" ></image>
</swiper-item>
</block>
</swiper>
<view class="slogan" wx:if="{{seller.slogan}}">
<view class="slogan-view flex-ll">
<view class="dot"></view>
<view>{{seller.slogan}}</view>
</view>
</view>
<view class="swiper-num" wx:if="{{seller.envi_image.length>0}}">{{currentView}} / {{seller.envi_image.length}}</view>
</view>
<view class="swiper-num" wx:if="{{seller.envi_image.length>0}}">{{currentView}} / {{seller.envi_image.length}}</view>
</view>
<view class="pages" style="height: {{pagesHeight}};overflow:{{pagesHeight=='auto'?'visible':'hidden'}}">
<view class="seller">
<view class="base">
<view class="name Semibold flex-lr">
<view class="name-info">{{seller.sellername}}
<view class="broad" wx:if="{{seller.brand}}">
<view class="broad-1"></view>
<view class="broad-2">{{seller.brand.name}}</view>
<view class="broad-3"></view>
<view class="pages" style="height: {{pagesHeight}};overflow:{{pagesHeight=='auto'?'visible':'hidden'}}">
<view class="seller">
<view class="base">
<view class="name Semibold flex-lr">
<view class="name-info">{{seller.sellername}}
<view class="broad" wx:if="{{seller.brand}}">
<view class="broad-1"></view>
<view class="broad-2">{{seller.brand.name}}</view>
<view class="broad-3"></view>
</view>
</view>
<view class="average" wx:if="{{seller.average>0}}">¥{{seller.average}}/人</view>
</view>
<view class="ping flex-ll">
<view class="item" wx:if="{{seller.cate.length>0}}">{{seller.cate[0]}}</view>
<view class="item" wx:if="{{seller.is_belt_wine!=0}}">{{seller.is_belt_wine==1?'不可带酒水':'可自带酒水'}}</view>
<view class="item" wx:if="{{seller.is_parking==1}}">停车场</view>
<view class="item" wx:if="{{seller.room_num>0}}">{{seller.room_num}}个包间</view>
</view>
<view class="label_c" wx:if="{{seller.label_cstr}}">
<text class="label_text" >{{seller.label_cstr}}</text>
</view>
<view class="average" wx:if="{{seller.average>0}}">¥{{seller.average}}/人</view>
</view>
<view class="ping flex-ll">
<view class="item" wx:if="{{seller.cate.length>0}}">{{seller.cate[0]}}</view>
<view class="item" wx:if="{{seller.is_belt_wine!=0}}">{{seller.is_belt_wine==1?'不可带酒水':'可自带酒水'}}</view>
<view class="item" wx:if="{{seller.is_parking==1}}">停车场</view>
<view class="item" wx:if="{{seller.room_num>0}}">{{seller.room_num}}个包间</view>
</view>
<view class="label_c" wx:if="{{seller.label_cstr}}">
<text class="label_text" >{{seller.label_cstr}}</text>
</view>
</view>
<view style="display:{{pagesHeight=='auto'?'block':'none'}}">
<view class="addr flex-lr" wx:if="{{hasOnlineReserve}}">
<view class="addr-view" bindtap="lookLocation">
<view class="addr-text flex-ll">
<image src="http://qn.colorcun.com/custom/lite-online/image/%E5%AE%9A%E4%BD%8D.png"></image>
<view class="text">{{seller.real_address||seller.map_address}}</view>
<view style="display:{{pagesHeight=='auto'?'block':'none'}}">
<view class="addr flex-lr" wx:if="{{hasOnlineReserve}}">
<view class="addr-view" bindtap="lookLocation">
<view class="addr-text flex-ll">
<image src="http://nosqn.colorcun.com/custom/lite-online/image/%E5%AE%9A%E4%BD%8D.png"></image>
<view class="text">{{seller.real_address||seller.map_address}}</view>
</view>
<view class="addr-long">{{seller.distanceStr?'距您'+seller.distanceStr:''}}</view>
</view>
<view class="addr-long">{{seller.distanceStr?'距您'+seller.distanceStr:''}}</view>
<view class="more more-phone" bindtap="reserveEvent" data-act="phone"></view>
</view>
<view class="more more-phone" bindtap="reserveEvent" data-act="phone"></view>
</view>
<view class="addr flex-lr" bindtap="lookLocation" wx:else="" >
<view class="addr-view">
<view class="addr-text flex-ll">
<image src="http://qn.colorcun.com/custom/lite-online/image/%E5%AE%9A%E4%BD%8D.png"></image>
<view class="text">{{seller.real_address||seller.map_address}}</view>
<view class="addr flex-lr" bindtap="lookLocation" wx:else="" >
<view class="addr-view">
<view class="addr-text flex-ll">
<image src="http://nosqn.colorcun.com/custom/lite-online/image/%E5%AE%9A%E4%BD%8D.png"></image>
<view class="text">{{seller.real_address||seller.map_address}}</view>
</view>
<view class="addr-long">{{seller.distanceStr?'距您'+seller.distanceStr:''}}</view>
</view>
<view class="addr-long">{{seller.distanceStr?'距您'+seller.distanceStr:''}}</view>
<view class="more more-addr"></view>
</view>
<view class="more more-addr"></view>
</view>
</view>
</view>
<view style="display:{{pagesHeight=='auto'?'block':'none'}}">
<view class="black20line"></view>
<view class="seller" wx:if="{{seller.activity.length>0}}">
<formids bindclick="showDiscount">
<view class="activity-view-easy flex-lr" >
<view style="display:{{pagesHeight=='auto'?'block':'none'}}" wx:if="{{seller}}">
<view class="black20line"></view>
<block wx:if="{{seller.isopen_md==1 || seller.card_info.length>0}}">
<view class="activity-view-easy flex-lr" bindtap="showDiscount">
<view class="activity-left flex-ll">
<view class="icon"></view>
<block wx:for="{{seller.activity}}"
wx:key="seller.activity.key"
wx:if="{{index<2}}">
<view class="discount" >{{item.title}}</view>
</block>
<view class="activity-view-tit">优惠</view>
<view class="activity-view-blk" wx:if="{{seller.receive_condition_1}}">进店赠红包</view>
<view class="activity-view-blk" wx:if="{{seller.receive_condition_2}}">消费赠红包</view>
<view class="activity-view-blk" wx:if="{{seller.isopen_md==1}}">平台红包</view>
</view>
<view class="flex-rr activity-right">
<view class="more-text">更多</view>
<view class="more"></view>
</view>
</view>
</formids>
<!--
<formids wx:if="{{seller.activity.length>0}}" bindclick="showDiscount">
<view class="activity-view" >
<view class="activity" >
<view class="flex-lr">
<view class="activity-left">
<view class="activity-first flex-ll" style="align-items: flex-start">
<image src="http://qn.colorcun.com/custom/lite-online/image%E5%96%87%E5%8F%AD.png"></image>
<view class="flex-cc discount" wx:for="{{seller.activity}}"
wx:key="seller.activity.key"
wx:if="{{index<2}}">
<view class="discount-left"></view>
<view class="discount-text">{{item.title}}</view>
<view class="discount-right"></view>
</view>
</view>
</view>
<view class="activity-right flex-rr Semibold">
<view></view>
<view class="more"></view>
</view>
</view>
<view class="activity-text">
该优惠仅适用于一键订平台预订客户
<view class="black20line"></view>
</block>
<block wx:if="{{seller.isopen_md!=1}}">
<view class="seller" >
<view class="activity-view-easy flex-lr" >
<view class="activity-left flex-ll">
<view class="icon"></view>
<view class="discount" >本店不可使用平台红包</view>
</view>
</view>
</view>
</formids>
-->
</view>
<view class="black20line" wx:if="{{seller.activity.length>0}}"></view>
<view class="block" wx:if="{{seller.room_image.length>0}}">
<view class="header flex-ll">
<view class="line"></view>
<view class="name">包间环境</view>
</view>
<scroll-view
scroll-x
class="baos"
scroll-into-view="{{toView}}"
scroll-top="{{scrollTop}}"
>
<view class="black20line"></view>
</block>
<view class="block" wx:if="{{seller.room_image.length>0}}">
<view class="header flex-ll">
<view class="line"></view>
<view class="name">包间环境</view>
</view>
<scroll-view
scroll-x
class="baos"
scroll-into-view="{{toView}}"
scroll-top="{{scrollTop}}"
>
<block wx:for="{{seller.room_image}}" wx:key="sellers.key">
<view class="image">
<image mode="aspectFill" bindtap="reviweRoomImage" data-current="{{item}}"
src="{{item}}?imageView2/2/w/640/interlace/0/q/100"></image>
</view>
</block>
<block wx:for="{{seller.room_image}}" wx:key="sellers.key">
<view class="image">
<image mode="aspectFill" bindtap="reviweRoomImage" data-current="{{item}}"
src="{{item}}?imageView2/2/w/640/interlace/0/q/100"></image>
</view>
</block>
</scroll-view>
</view>
<view class="block" wx:if="{{seller.dishes.length>0}}">
<view class="header flex-ll">
<view class="line"></view>
<view class="name">推荐菜品</view>
</scroll-view>
</view>
<scroll-view
scroll-x
class="cais"
scroll-into-view="{{toView}}"
scroll-top="{{scrollTop}}"
>
<block wx:for="{{seller.dishes}}" wx:key="sellers.key">
<view class="cais-views" wx:if="{{item.image}}">
<view class="image-view" >
<view class="image">
<image mode="aspectFill" bindtap="reviweDishesImage" data-current="{{item.image}}"
src="{{item.image}}?imageView2/2/w/640/interlace/0/q/100"></image>
<view class="block" wx:if="{{seller.dishes.length>0}}">
<view class="header flex-ll">
<view class="line"></view>
<view class="name">推荐菜品</view>
</view>
<scroll-view
scroll-x
class="cais"
scroll-into-view="{{toView}}"
scroll-top="{{scrollTop}}"
>
<block wx:for="{{seller.dishes}}" wx:key="sellers.key">
<view class="cais-views" wx:if="{{item.image}}">
<view class="image-view" >
<view class="image">
<image mode="aspectFill" bindtap="reviweDishesImage" data-current="{{item.image}}"
src="{{item.image}}?imageView2/2/w/640/interlace/0/q/100"></image>
</view>
<view class="text Semibold">{{item.name}}</view>
</view>
<view class="text Semibold">{{item.name}}</view>
</view>
</block>
</scroll-view>
<view class="cais-text">
<block wx:for="{{seller.dishes}}" wx:key="sellers.key">
<view wx:if="{{!item.image}}">{{item.name}}</view>
</block>
</view>
</block>
</scroll-view>
<view class="cais-text">
<block wx:for="{{seller.dishes}}" wx:key="sellers.key">
<view wx:if="{{!item.image}}">{{item.name}}</view>
</block>
</view>
</view>
</view>
</view>
<view class="footer flex-lr">
<view class="left flex-cc">
<formids class="flex-tb" url="/pages/customer/index">
<image src="http://qn.colorcun.com/custom/lite-online/image/%E9%A6%96%E9%A1%B5.png"></image>
<view class="text">首页</view>
</formids>
<userinfo class="follow flex-tb" binduserinfo="follow">
<image src="http://qn.colorcun.com/custom/lite-online/image/%E6%94%B6%E8%97%8F.png" wx:if="{{!IsCollectionSeller}}"></image>
<image src="http://qn.colorcun.com/custom/lite-online/image/%E5%B7%B2%E6%94%B6%E8%97%8F.png" wx:else=""></image>
<view class="text">收藏</view>
</userinfo>
</view>
<view class="reserve share flex-vc">
<userinfo class="flex-vc" style="width: 100%" binduserinfo="shareUserinfo">
<view class="text">分享</view>
</userinfo>
</view>
<view class="reserve reserve-click flex-vc">
<formids class="flex-vc" bindclick="reserveEvent" id="reserve-button">
<view class="text">{{hasOnlineReserve?'订包间':'联系餐厅'}}</view>
</formids>
<view class="footer flex-lr">
<view class="left flex-cc">
<formids class="flex-tb" url="/pages/customer/index">
<image src="http://nosqn.colorcun.com/custom/lite-online/image/%E9%A6%96%E9%A1%B5.png"></image>
<view class="text">首页</view>
</formids>
<userinfo class="follow flex-tb" binduserinfo="follow">
<image src="http://nosqn.colorcun.com/custom/lite-online/image/%E6%94%B6%E8%97%8F.png" wx:if="{{!IsCollectionSeller}}"></image>
<image src="http://nosqn.colorcun.com/custom/lite-online/image/%E5%B7%B2%E6%94%B6%E8%97%8F.png" wx:else=""></image>
<view class="text">收藏</view>
</userinfo>
</view>
<view class="reserve share flex-vc">
<userinfo class="flex-vc" style="width: 100%" binduserinfo="shareUserinfo">
<view class="text">分享</view>
</userinfo>
</view>
<view class="reserve reserve-click flex-vc">
<formids class="flex-vc" bindclick="reserveEvent" id="reserve-button">
<view class="text">{{hasOnlineReserve?'订包间':'联系餐厅'}}</view>
</formids>
</view>
</view>
<as id="as" items="{{seller.seller_tel}}" bindclick="reservePhone" hasTip="{{false}}"></as>
<getpos bindpos="onpos" id="getpos" hasAllowLoading="{{false}}"></getpos>
<share id="share" seller_id="{{seller.id}}" seller="{{seller}}" wx:if="{{seller.id}}"></share>
<!--
<activity-tips str="¥price" cla="reserve-detail" pos="pages/reserve/detail"></activity-tips>
-->
</view>
<as id="as" items="{{seller.seller_tel}}" bindclick="reservePhone" hasTip="{{false}}"></as>
<getpos bindpos="onpos" id="getpos" hasAllowLoading="{{false}}"></getpos>
<discount id="discount" seller="{{seller}}" bindhide="discountHide" bindshow="discountShow"></discount>
<share id="share" seller_id="{{seller.id}}" seller="{{seller}}" wx:if="{{seller.id}}"></share>
</view>
<view hidden="{{activeTab!='reserve'}}" wx:if="{{seller.id}}">
<view class="olreserve bg_white">
<calendar seller="{{seller}}" bindselectdate="selectdate" date="{{reserveDate}}"></calendar>
<view class="reserve-time Semibold">预订时段</view>
<section seller="{{seller}}" date="{{reserveDate}}" bind:selectsection="selectsection" section="{{reserveSection}}"></section>
<block wx:if="{{reserveSection}}">
<select-room seller="{{seller}}" date="{{reserveDate}}" section="{{reserveSection}}" seletroomlist="{{seletroomlist}}" bindchangeroom="selectroom"></select-room>
</block>
<view hidden="{{activeTab!='reserve'}}" wx:if="{{seller.id}}">
<view class="olreserve bg_white">
<calendar seller="{{seller}}" bindselectdate="selectdate" date="{{reserveDate}}"></calendar>
<view class="reserve-time Semibold">预订时段</view>
<section seller="{{seller}}" date="{{reserveDate}}" bind:selectsection="selectsection" section="{{reserveSection}}"></section>
<block wx:if="{{reserveSection}}">
<select-room seller="{{seller}}" date="{{reserveDate}}" section="{{reserveSection}}" seletroomlist="{{seletroomlist}}" bindchangeroom="selectroom"></select-room>
</block>
</view>
<view class="reserve-button-cover flex-cc">
<view class="white-font font32r reserve-button flex-cc" catchtap="complete">选好了</view>
</view>
</view>
<view class="reserve-button-cover flex-cc">
<view class="white-font font32r reserve-button flex-cc" catchtap="complete">选好了</view>
</view>
</view>
</layout>
\ No newline at end of file
</layout>
<discount id="discount" seller="{{seller}}" wx:if="{{seller}}" cla="{{activeTab=='reserve'?'seller-reserve':''}}"
bindevent="reserveEvent"
bindhide="discountHide"
bindshow="discountShow"></discount>
\ No newline at end of file
... ...
... ... @@ -69,29 +69,29 @@
line-height: 26rpx;
}
.peitao .icon.bao{
background-image: url("http://qn.colorcun.com/custom/lite-online/image/%E5%8C%85%E9%97%B4.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-online/image/%E5%8C%85%E9%97%B4.png");
}
.peitao .icon.ka{
background-image: url("http://qn.colorcun.com/custom/lite-online/image/%E5%8D%A1%E5%BA%A72.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-online/image/%E5%8D%A1%E5%BA%A72.png");
}
.peitao .icon.car{
background-image: url("http://qn.colorcun.com/custom/lite-online/image/%E5%81%9C%E8%BD%A6%E5%9C%BA2.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-online/image/%E5%81%9C%E8%BD%A6%E5%9C%BA2.png");
}
.peitao .icon.meal_fee{
background-image: url("http://qn.colorcun.com/reserve/images/3x/%E6%97%A0%E9%A4%90%E4%BD%8D%E8%B4%B9.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/3x/%E6%97%A0%E9%A4%90%E4%BD%8D%E8%B4%B9.png");
background-size: 24rpx 24rpx;
}
.peitao .icon.unsubscribe{
background-image: url("http://qn.colorcun.com/reserve/images/3x/%E9%9A%8F%E6%97%B6%E9%80%80.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/3x/%E9%9A%8F%E6%97%B6%E9%80%80.png");
background-size: 24rpx 24rpx;
}
.peitao .icon.minimum{
background-image: url("http://qn.colorcun.com/reserve/images/3x/%E6%97%A0%E6%9C%80%E4%BD%8E%E6%B6%88%E8%B4%B9.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/3x/%E6%97%A0%E6%9C%80%E4%BD%8E%E6%B6%88%E8%B4%B9.png");
background-size: 24rpx 24rpx;
}
.peitao .icon.belt{
background-image: url("http://qn.colorcun.com/reserve/images/3x/%E5%8F%AF%E8%87%AA%E5%B8%A6%E9%85%92%E6%B0%B4.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/3x/%E5%8F%AF%E8%87%AA%E5%B8%A6%E9%85%92%E6%B0%B4.png");
background-size: 24rpx 24rpx;
}
... ... @@ -290,10 +290,10 @@
padding: 28rpx 0;
}
.activity-left{
width: calc(100% - 120rpx);
width: calc(100% - 60rpx);
}
.activity-right{
min-width: 120rpx;
min-width: 60rpx;
color: #C0A369;
}
.activity-first{
... ... @@ -320,7 +320,7 @@
color: #C28C56;
}
.more{
background-image: url("http://qn.colorcun.com/reserve/images/m713.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/m713.png");
margin-left: 20rpx;
height: 26rpx;
width: 14rpx;
... ... @@ -335,13 +335,13 @@
text-overflow: ellipsis;
}
.discount .discount-left{
background-image: url("http://qn.colorcun.com/reserve/images/%E5%B7%A6%E8%BE%B9.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E5%B7%A6%E8%BE%B9.png");
width: 12rpx;
height: 40rpx;
background-size: 100% 100%;
}
.discount .discount-text{
background-image: url("http://qn.colorcun.com/reserve/images/%E4%B8%AD%E9%97%B4.jpg");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E4%B8%AD%E9%97%B4.jpg");
height: 40rpx;
min-width: 60rpx;
background-size: 100% 100%;
... ... @@ -350,7 +350,7 @@
padding: 0 10rpx;
}
.discount .discount-right{
background-image: url("http://qn.colorcun.com/reserve/images/%E5%8F%B3%E8%BE%B9.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E5%8F%B3%E8%BE%B9.png");
width: 12rpx;
height: 40rpx;
background-size: 100% 100%;
... ... @@ -397,7 +397,7 @@
text-overflow:ellipsis;
}
.more-addr{
background-image: url("http://qn.colorcun.com/reserve/images/m2.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/m2.png");
}
.average{
color: #C0A369;
... ... @@ -415,14 +415,14 @@
height: 28rpx;
}
.broad-1{
background-image: url("http://qn.colorcun.com/reserve/images/p0.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/p0.png");
width: 14rpx;
height: 34rpx;
background-size: 100% 100%;
float: left;
}
.broad-2{
background-image: url("http://qn.colorcun.com/reserve/images/p2.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/p2.png");
height: 34rpx;
background-size: 100% 100%;
font-size: 20rpx;
... ... @@ -431,7 +431,7 @@
float: left;
}
.broad-3{
background-image: url("http://qn.colorcun.com/reserve/images/p3.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/p3.png");
width: 14rpx;
height: 34rpx;
background-size: 100% 100%;
... ... @@ -459,7 +459,7 @@
line-height: 120rpx;
}
.activity-view-easy .icon{
background-image: url("http://qn.colorcun.com/reserve/images/ad2.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/ad2.png");
width: 30rpx;
height: 32rpx;
background-size: 100% 100%;
... ... @@ -472,6 +472,7 @@
padding-right: 20rpx;
padding-left: 20rpx;
margin-right: 0;
font-weight:500;
}
.activity-view-easy .discount:last-child{
border-right-width: 0;
... ... @@ -536,7 +537,7 @@
height: 70rpx;
background-size: 40rpx 36rpx;
background-position: center center;
background-image: url("http://qn.colorcun.com/reserve/images/sphone.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/sphone.png");
}
.reserve-button{
width:680rpx;
... ... @@ -553,3 +554,42 @@
bottom:0;
background: #fff;
}
.activity-view-tit{
height:42rpx;
font-size:30rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(53,53,53,1);
line-height:42rpx;
margin-right: 42rpx;
}
.activity-view-blk{
height:34rpx;
border-top:2rpx solid rgba(240,88,36,1);
border-bottom:2rpx solid rgba(240,88,36,1);
box-sizing: border-box;
font-size:24rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
color:rgba(240,88,36,1);
line-height:34rpx;
margin-right: 22rpx;
padding: 0 12rpx;
position: relative;
border-radius: 6rpx;
}
.activity-view-blk:before,.activity-view-blk:after{
background-size: 100% 100%;
width: 12rpx;
height: 34rpx;
background-image: url("http://nosqn.colorcun.com/sellerbaobao/left-1.png");
content: "";
position: absolute;
left:0;
top:-2rpx;
}
.activity-view-blk:after{
background-image: url("http://nosqn.colorcun.com/sellerbaobao/right-1.png");
right:0;
left:auto;
}
\ No newline at end of file
... ...
... ... @@ -3,7 +3,7 @@
<view class="pages">
<image class="banner"
src="http://qn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20191120112403.png"></image>
src="http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20191120112403.png"></image>
<view class="follow">
<view class="seller" wx:for="{{sellers}}" wx:key="sellers.key"
bindtap="gotoDetail" data-sid="{{item.id}}" wx:if="{{item.hasFollow}}">
... ...
... ... @@ -69,6 +69,7 @@ Page({
hasOnLoad:false,
hasGetLocation:false,//定位信息
hasAppHide:false,//app切至后台
param:{},
onLoad: async function (options) {
this.reportTime=new Date()
... ... @@ -509,7 +510,7 @@ Page({
}
let marker={
id: seller.id,
iconPath: "http://qn.colorcun.com/custom/lite-online/cates/circle1x5.png"+cates_version,
iconPath: "http://nosqn.colorcun.com/custom/lite-online/cates/circle1x5.png"+cates_version,
latitude: seller.lat,
longitude: seller.long,
width: 8,
... ... @@ -535,7 +536,7 @@ Page({
if(seller.mode.length>0){
seller.mode.forEach(x=>{
if(x.id==1){//大图标
marker.iconPath="http://qn.colorcun.com/custom/lite-online/cates/其他菜品.png";
marker.iconPath="http://nosqn.colorcun.com/custom/lite-online/cates/其他菜品.png";
if(seller.cate.length>0){
marker.iconPath=seller.cate[0].icon
}
... ... @@ -690,6 +691,7 @@ Page({
return;
}
let i=e.detail.current
if(typeof this.data.markers[i]=='undefined') return;
this.activeSellerID=this.data.markers[i].id
console.log('bindtransition',this.sellersNow,e.detail.current,this.sellersNow[e.detail.current],this.activeSellerID);
// this.activeSellerID=this.sellersNow[i];
... ... @@ -773,7 +775,7 @@ Page({
map=this.data.suggestion
mks.push({
id: 'location',
iconPath: "http://qn.colorcun.com/reserve/images/location.png"+cates_version,
iconPath: "http://nosqn.colorcun.com/reserve/images/location.png"+cates_version,
latitude: map.latitude,
longitude: map.longitude,
width: 20,
... ... @@ -782,7 +784,7 @@ Page({
}
mks.push({
id: 'locationMe',
iconPath: "http://qn.colorcun.com/reserve/images/lme.png"+cates_version,
iconPath: "http://nosqn.colorcun.com/reserve/images/lme.png"+cates_version,
latitude: this.user.latitude,
longitude: this.user.longitude,
width: 18,
... ...
... ... @@ -10,6 +10,7 @@
"a2l":"/components/tips/add-to-lite",
"ds":"/components/tips/discount",
"caixi":"/components/reserve/caixi",
"list":"/components/reserve/seller-box-transverse-cview/list"
"list":"/components/reserve/seller-box-transverse-cview/list",
"activity-enter":"/components/activity/enter"
}
}
\ No newline at end of file
... ...
... ... @@ -14,20 +14,21 @@
enable-scroll
enable-rotate
subkey="SDEBZ-I74W4-QLGUX-XXYXU-HIR23-3QFBJ"
layer-style="2"
style="width: 100%; height: {{map.height+60}}px;"></map>
<formids url="/pages/reserve/search" style="position: fixed;">
<cover-view
<view
class="flex-ll"
style="position:fixed;top:{{statusBarHeight}}px;left:0;height: {{titleBarHeight}}px; line-height: {{titleBarHeight}}px;">
<cover-view class="searchList flex-ll" catchtap="listShow">
<cover-image class="icon" src="http://qn.colorcun.com/reserve/images/hasList3.png"></cover-image>
<cover-view class="title">列表</cover-view>
</cover-view>
<cover-view class="searchAddr flex-ll">
<cover-image class="icon" src="http://qn.colorcun.com/custom/lite-online/image/search26.png"></cover-image>
<cover-view class="title">{{hasSuggestion?suggestion.title:'输入餐厅名或地名,快速订包间'}}</cover-view>
</cover-view>
</cover-view>
<view class="searchList flex-ll" catchtap="listShow">
<image class="icon" src="http://nosqn.colorcun.com/reserve/images/hasList3.png"></image>
<view class="title">列表</view>
</view>
<view class="searchAddr flex-ll">
<image class="icon" src="http://nosqn.colorcun.com/custom/lite-online/image/search26.png"></image>
<view class="title">{{hasSuggestion?suggestion.title:'输入餐厅名或地名,快速订包间'}}</view>
</view>
</view>
</formids>
</view>
<view class="seller-view {{(listMoreCount<1)?(hasSearchLimit?'disabled enabled':'disabled'):''}}">
... ... @@ -57,10 +58,12 @@
bindtap="tagsChange"
data-id="{{item.id}}">{{item.name}}</view>
</block>
<!--
<view class="fingSeller flex-ll" bindtap="findSeller">
<view class="icon"></view>
<view>查找餐厅</view>
</view>
-->
</view>
<view class="transverse-list">
<swiper
... ... @@ -126,9 +129,9 @@
</view>
</view>
</view>
<cover-view bindtap="moveToLocation" class="moveToLocation">
<cover-image src="http://qn.colorcun.com/reserve/images/golocal.png"></cover-image>
</cover-view>
<view bindtap="moveToLocation" class="moveToLocation">
<image src="http://nosqn.colorcun.com/reserve/images/golocal.png"></image>
</view>
<getpos bindpos="onpos" id="getpos"></getpos>
<seller-box id="seller-box" bindevent="sellerBoxEvent"></seller-box>
<cover-view class="tab-patch"></cover-view>
... ... @@ -139,4 +142,4 @@
<caixi multiArray="{{multiArray}}" multiIndex="{{multiIndex}}"
bindactive="caixiActive" id="caixi"
></caixi>
<fb></fb>
\ No newline at end of file
<activity-enter hasInHome></activity-enter>
\ No newline at end of file
... ...
... ... @@ -24,7 +24,7 @@ page{
width: 62rpx;
height: 62rpx;
}
.moveToLocation cover-image{
.moveToLocation image{
width: 62rpx;
height: 62rpx;
}
... ... @@ -78,7 +78,7 @@ page{
height: 40rpx;
}
.seller .empty .icon{
background-image: url("http://qn.colorcun.com/reserve/images/hasClick.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/hasClick.png");
background-size: 100% 100%;
width: 54rpx;
height: 56rpx;
... ... @@ -87,7 +87,7 @@ page{
right:40rpx;
}
.seller-last .empty .icon{
background-image: url("http://qn.colorcun.com/reserve/images/%E7%BC%A9%E6%94%BE.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E7%BC%A9%E6%94%BE.png");
background-size: 100% 100%;
width: 98rpx;
height: 76rpx;
... ... @@ -97,16 +97,16 @@ page{
}
.picker{
height: 30rpx;
line-height: 30rpx;
height: 50rpx;
line-height: 50rpx;
}
.picker .input{
height: 30rpx;
line-height: 30rpx;
height: 50rpx;
line-height: 50rpx;
margin-right: 10rpx;
}
.picker .more{
background-image: url("http://qn.colorcun.com/reserve/images/%E8%8F%9C%E7%B3%BB.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E8%8F%9C%E7%B3%BB.png");
width: 12rpx;
height: 16rpx;
min-width:12rpx;
... ... @@ -134,7 +134,7 @@ page{
right: 0;
bottom: 0;
left: 0;
background: url('http://qn.colorcun.com/reserve/images/find-black.png');
background: url('http://nosqn.colorcun.com/reserve/images/find-black.png');
background-size: 100% 100%;
opacity: 0.5;
}
... ... @@ -152,7 +152,7 @@ page{
width: 32rpx;
height: 30rpx;
margin-right: 6rpx;
background-image: url("http://qn.colorcun.com/reserve/images/find.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/find.png");
background-size: 100% 100%;
}
.enabled .fingSeller .icon:after{
... ... @@ -161,13 +161,13 @@ page{
}
.tags.active .picker .more{
background-image: url("http://qn.colorcun.com/reserve/images/%E8%8F%9C%E7%B3%BB%E9%80%89%E4%B8%AD.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E8%8F%9C%E7%B3%BB%E9%80%89%E4%B8%AD.png");
}
.disabled .picker .more{
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20190925174046.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20190925174046.png");
}
.enabled .picker .more{
background-image: url("http://qn.colorcun.com/reserve/images/%E8%8F%9C%E7%B3%BB%E9%80%89%E4%B8%AD.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E8%8F%9C%E7%B3%BB%E9%80%89%E4%B8%AD.png");
}
.searchAddr {
margin-left: 15rpx;
... ... @@ -224,7 +224,7 @@ page{
}
.empty-txt .seller .empty{
background-image: url("http://qn.colorcun.com/reserve/images/empty-seller.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/empty-seller.png");
background-size: 100% 100%;
border-left-width: 0;
margin: 0 auto;
... ... @@ -257,7 +257,7 @@ page{
box-sizing: border-box;
}
.info-button-gt{
background-image: url("http://qn.colorcun.com/reserve/images/gt-cheng.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/gt-cheng.png");
background-size: 100% 100%;
width: 10rpx;
height: 20rpx;
... ... @@ -268,26 +268,22 @@ page{
color:#fefefe;
}
.info-button.full .info-button-gt{
background-image: url("http://qn.colorcun.com/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20190925175650.png");
background-image: url("http://nosqn.colorcun.com/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20190925175650.png");
}
.transverse-search .tags{
height: 30rpx;
line-height: 30rpx;
/*background-color: #F0F0F9;*/
/*border-radius: 4rpx;*/
padding: 0 22rpx;
border-right:2rpx solid #E0E0E0;
}
.transverse-search .tags:first-child{
padding-left: 0;
height: 50rpx;
line-height: 50rpx;
background-color: #F0F0F9;
border-radius: 4rpx;
margin-right: 30rpx;
padding: 0 16rpx;
}
.transverse-search .tags:last-child{
margin-right: 0;
border-right-width:0;
}
.transverse-search .tags.active{
/*background:linear-gradient(to bottom ,#F4DAB9,#E9BE94);*/
color:#C0A369;
background:linear-gradient(to bottom ,#F4DAB9,#E9BE94);
color:#8B5318;
font-weight: 900;
}
... ...
... ... @@ -120,7 +120,7 @@ Page({
this.param={
lat_extend:mapParam.lat,
lng_extend:mapParam.lng,
keyword:mapParam.keyword,
keyword:mapParam.keyword.trim(),
offset:this.offset,
size:this.size,
distance:500000,
... ... @@ -128,6 +128,9 @@ Page({
if(mapParam.lat){
this.param.centre_pos=`${mapParam.lat},${mapParam.lng}`
}
if(mapParam.isopen_md){
this.param.isopen_md=1
}
}else{
//计算视窗中心
let map=JSON.parse(mapParam.map);
... ...
<!--pages/reserve/indexList.wxml-->
<nav>周到安排</nav>
<view class="header">
<!--
<view class="searchAddrView" bindtap="dispalySearchHow">
<view class="searchAddr flex-ll">
<image class="icon" src="http://qn.colorcun.com/reserve/images/find-black.png"></image>
<image class="icon" src="http://nosqn.colorcun.com/reserve/images/find-black.png"></image>
<input style="width: 100%;" placeholder="{{placeholder}}"
type="text" disabled
value="{{keyword}}"/>
</view>
</view>
<view class="transverse-search flex-lr {{hasDisabled?'disabled':''}}">
-->
<view class="transverse-search flex-ll {{hasDisabled?'disabled':''}}">
<view
bindtap="caixiShow"
class="tags {{multiIndex[0]>0?'active':''}}"
>
<view class="picker flex-cc">
<view class="picker flex-lr">
<view class="input">
<block wx:if="{{multiIndex[0]==0}}">菜系</block>
<block wx:else="">{{multiArray[0][multiIndex[0]]}}</block>
... ... @@ -32,7 +34,7 @@
<view class="pages">
<view class="flex-vc empty" wx:if="{{markers.length<1}}">
<block wx:if="{{!hasFirstShow}}">
<image src="http://qn.colorcun.com/custom/lite-online/image/follow-empty.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-online/image/follow-empty.png"></image>
<block wx:if="{{hasDisabled}}">
<view>该地区没有可供预订的餐厅,努力开通中</view>
</block>
... ...
... ... @@ -13,42 +13,36 @@
width: 100%;
margin: 0 auto;
font-size: 24rpx;
padding-left: 20rpx;
}
.transverse-search .tags{
height: 30rpx;
line-height: 30rpx;
/*background-color: #F0F0F9;*/
/*border-radius: 4rpx;*/
padding: 0 22rpx;
border-right:2rpx solid #E0E0E0;
text-align: center;
width: 25%;
box-sizing: border-box;
}
.transverse-search .tags:first-child{
padding-left: 0;
height: 50rpx;
line-height: 50rpx;
background-color: #F0F0F9;
border-radius: 4rpx;
margin-right: 30rpx;
padding: 0 16rpx;
}
.transverse-search .tags:last-child{
margin-right: 0;
border-right-width:0;
}
.transverse-search .tags.active{
/*background-color: #F4DAB9;*/
color:#C0A369;
background-color: #F4DAB9;
color:#8B5318;
font-weight: 900;
}
.picker{
height: 30rpx;
line-height: 30rpx;
height: 50rpx;
line-height: 50rpx;
}
.picker .input{
height: 30rpx;
line-height: 30rpx;
height: 50rpx;
line-height: 50rpx;
margin-right: 10rpx;
}
.picker .more{
background-image: url("http://qn.colorcun.com/reserve/images/%E8%8F%9C%E7%B3%BB.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E8%8F%9C%E7%B3%BB.png");
width: 12rpx;
height: 16rpx;
min-width:12rpx;
... ... @@ -57,14 +51,14 @@
color: #999;
}
.tags.active .picker .more{
background-image: url("http://qn.colorcun.com/reserve/images/%E8%8F%9C%E7%B3%BB%E9%80%89%E4%B8%AD.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E8%8F%9C%E7%B3%BB%E9%80%89%E4%B8%AD.png");
}
.disabled .picker .more{
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20190925174046.png");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20190925174046.png");
}
.pages{
width: 100%;
margin: 151rpx auto 0;
margin: 81rpx auto 0;
color:#fff;
font-size: 28rpx;
}
... ... @@ -146,7 +140,7 @@
z-index: 99;
}
.line-push{
background-image: url("http://qn.colorcun.com/reserve/images/line-push.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/line-push.png");
width: 328rpx;
height: 42rpx;
background-size: 100% 24rpx;
... ...
... ... @@ -2,14 +2,14 @@
<nav id="nav">搜索</nav>
<view class="searchAddrView" style="height: {{navHeight+40}}px;">
<view class="searchAddr flex-ll" style="margin-top: {{navHeight+5}}px;">
<image class="icon" src="http://qn.colorcun.com/custom/lite-online/image/search26.png"></image>
<image class="icon" src="http://nosqn.colorcun.com/custom/lite-online/image/search26.png"></image>
<input style="width: 100%;" placeholder="输入餐厅名或地名,快速订包间"
type="text" confirm-type="done"
focus
bindinput="getsuggest" value="{{keyword}}"/>
<image class="icon icon-del" wx:if="{{keyword.length>0}}"
catchtap="clearKeyword"
src="http://qn.colorcun.com/reserve/images/del.png"></image>
src="http://nosqn.colorcun.com/reserve/images/del.png"></image>
</view>
</view>
<view class="pages">
... ... @@ -28,7 +28,7 @@
<view wx:if="{{keyword.length>0}}">
<view class="flex-vc empty">
<block wx:if="{{!hasFirstShow}}">
<image src="http://qn.colorcun.com/custom/lite-online/image/follow-empty.png"></image>
<image src="http://nosqn.colorcun.com/custom/lite-online/image/follow-empty.png"></image>
<view class="empty-t1">抱歉,没有找到符合的内容</view>
<view class="empty-t2">试试搜搜别的</view>
</block>
... ...
... ... @@ -104,7 +104,7 @@
.history-empty{
width: 28rpx;
height: 28rpx;
background-image: url("http://qn.colorcun.com/reserve/images/empty.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/empty.png");
background-size: 100% 100%;
}
... ... @@ -127,7 +127,7 @@
}
.line-push{
background-image: url("http://qn.colorcun.com/reserve/images/line-push.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/line-push.png");
width: 328rpx;
height: 42rpx;
background-size: 100% 24rpx;
... ...
... ... @@ -34,7 +34,7 @@ page{
width: 40rpx;
height: 40rpx;
background-size: 100% 100%;
background-image: url("http://qn.colorcun.com/reserve/share/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201906251004333.png");
background-image: url("http://nosqn.colorcun.com/reserve/share/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201906251004333.png");
}
.save-but-text{
height:40rpx;
... ...
... ... @@ -42,7 +42,7 @@
<view class="flex-vc wenxin">
<view class="invit-logo {{hasOwner?'owner':'customer'}}"></view>
<view class="wenxin-mask">
<view class="wenxin-mask-bg" style="background-image: url({{image||'http://qn.colorcun.com/manager-invitation/wx/hunshazhao3.jpg'}})"></view>
<view class="wenxin-mask-bg" style="background-image: url({{image||'http://nosqn.colorcun.com/manager-invitation/wx/hunshazhao3.jpg'}})"></view>
<view class="wenxin-mask-img"></view>
</view>
<view class="wenxin-line"></view>
... ... @@ -51,7 +51,7 @@
<view class="content">{{name}}</view>
<view class="content">{{room}}</view>
<view class="content flex-cc addr" bindtap="lookLocation">
<image src="http://qn.colorcun.com/manager-invitation/wx/address.png" class="invit-addr"></image>
<image src="http://nosqn.colorcun.com/manager-invitation/wx/address.png" class="invit-addr"></image>
{{addr}}
</view>
</view>
... ...
.bg-1{
background-image: url("http://qn.colorcun.com/custom/lite-yd/image/invit-bg.jpg");
background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/invit-bg.jpg");
background-color: #353334;
color:#fefefe;
}
.bg-2{
background-image: url("http://qn.colorcun.com/manager-invitation/wx/%E5%BA%95%E9%83%A8.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx/%E5%BA%95%E9%83%A8.png");
background-color: #F4AFB2;
}
... ... @@ -16,7 +16,7 @@
background-size: 100%;
}
.shangwu-line{
background-image: url("http://qn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20191115114857.png");
background-image: url("http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20191115114857.png");
background-size: 100% 100%;
width: 604rpx;
height: 30rpx;
... ... @@ -39,12 +39,12 @@
background-size: 100%;
}
.seller .title-left{
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/line1.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/line1.png");
margin-right: 10rpx;
}
.seller .title-right{
margin-left: 10rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/line2.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/line2.png");
}
.seller .content{
margin-bottom: 60rpx;
... ... @@ -71,7 +71,7 @@
.editor{
height:80rpx;
width: 504rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E4%BF%AE%E6%94%B9%E5%86%85%E5%AE%B92.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E4%BF%AE%E6%94%B9%E5%86%85%E5%AE%B92.png");
background-size: 100%;
}
.shangwu{
... ... @@ -91,7 +91,7 @@
left:0;
width:100%;
height: 80rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/wx/%E9%A1%B6%E9%83%A8%E8%8A%B1%E8%BE%B9.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx/%E9%A1%B6%E9%83%A8%E8%8A%B1%E8%BE%B9.png");
background-size: 100%;
}
.wenxin-bottom{
... ... @@ -100,7 +100,7 @@
left:0;
width:100%;
height: 64rpx;
background-image: url("http://qn.colorcun.com/manager-invitation/wx/%E8%8A%B1%E8%BE%B9-%E5%BA%95%E9%83%A8.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx/%E8%8A%B1%E8%BE%B9-%E5%BA%95%E9%83%A8.png");
background-size: 100%;
}
.wenxin .invit-logo{
... ... @@ -119,14 +119,14 @@
height: 468rpx;
border-radius: 50%;
overflow: hidden;
background-image: url("http://qn.colorcun.com/manager-invitation/wx/hunshazhao3.jpg");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx/hunshazhao3.jpg");
background-size: cover;
}
.wenxin-mask-img{
position: absolute;
left: 0;
top:0;
background-image: url("http://qn.colorcun.com/manager-invitation/wx/%E8%8A%B1%E7%8E%AF%E7%A9%BA.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx/%E8%8A%B1%E7%8E%AF%E7%A9%BA.png");
width: 100%;
height: 520rpx;
background-size: 100%;
... ... @@ -136,14 +136,14 @@
width: 404rpx;
height: 42rpx;
background-size: 100%;
background-image: url("http://qn.colorcun.com/manager-invitation/wx/%E6%B0%B8%E7%BB%93%E5%90%8C%E5%BF%83-%E7%99%BD%E5%A4%B4%E5%81%95%E8%80%81.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx/%E6%B0%B8%E7%BB%93%E5%90%8C%E5%BF%83-%E7%99%BD%E5%A4%B4%E5%81%95%E8%80%81.png");
}
.wenxin-line{
margin-top: 10rpx;
width: 600rpx;
height: 30rpx;
background-size: 100% 100%;
background-image: url("http://qn.colorcun.com/manager-invitation/wx3/wx-line.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx3/wx-line.png");
}
.wenxin .seller{
margin-top: 10rpx;
... ... @@ -180,7 +180,7 @@
width: 560rpx;
height: 86rpx;
margin: 0 auto;
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E9%80%9A%E7%9F%A5%E5%AE%A2%E6%88%B72.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E9%80%9A%E7%9F%A5%E5%AE%A2%E6%88%B72.png");
background-size: 100%;
background-repeat: no-repeat;
background-position: center center;
... ... @@ -201,14 +201,14 @@
}
.title-addr{
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E5%9C%B0%E5%9D%80.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E5%9C%B0%E5%9D%80.png");
width: 22rpx;
height: 28rpx;
background-size: 100% 100%;
margin-right: 16rpx;
}
.title-more{
background-image: url("http://qn.colorcun.com/manager-invitation/wx2/%E7%AE%AD%E5%A4%B4.png");
background-image: url("http://nosqn.colorcun.com/manager-invitation/wx2/%E7%AE%AD%E5%A4%B4.png");
width: 14rpx;
height: 22rpx;
background-size: 100% 100%;
... ...
... ... @@ -29,7 +29,9 @@
"projectname": "c%E7%AB%AF%E9%A2%84%E5%AE%9A",
"isGameTourist": false,
"simulatorType": "wechat",
"simulatorPluginLibVersion": {},
"simulatorPluginLibVersion": {
"qywx_simulator_plugin": "1.2.0"
},
"condition": {
"search": {
"current": -1,
... ... @@ -95,7 +97,7 @@
"id": 6,
"name": "pages/customer/index",
"pathName": "pages/customer/index",
"query": "id=58295&fromid=1111&hasInvitation=2",
"query": "id=58295&fromid=1111&hasInvitation=1",
"scene": 1044,
"shareInfo": {
"groupName": "测试模拟群1",
... ... @@ -113,7 +115,7 @@
"id": 8,
"name": "邀请进入 pages/customer/index",
"pathName": "pages/customer/index",
"query": "id=9994&fromid=test&hasInvitation=1&hasSellerShare=1&tplid=1",
"query": "id=9995&fromid=test&hasInvitation=1&hasSellerShare=1&tplid=1",
"scene": 1001
},
{
... ... @@ -355,7 +357,7 @@
"id": 39,
"name": "pages/reserve/detail 在线订座 ",
"pathName": "pages/reserve/detail",
"query": "id=1",
"query": "id=1001",
"scene": null
},
{
... ... @@ -481,7 +483,7 @@
"id": 57,
"name": "pages/customer/detail_owner",
"pathName": "pages/customer/detail_owner",
"query": "id=58241&firstShowMsg=",
"query": "id=65337",
"scene": null
},
{
... ... @@ -502,7 +504,7 @@
"id": 60,
"name": "pack-book/pages/book/b_detail",
"pathName": "pack-book/pages/book/b_detail",
"query": "id=55330",
"query": "id=66723",
"scene": null
},
{
... ... @@ -595,6 +597,83 @@
"pathName": "pages/customer/cancel",
"query": "id=59102",
"scene": null
},
{
"id": 74,
"name": "pack-activity/pages/index",
"pathName": "pack-activity/pages/index",
"query": "id=2",
"scene": null
},
{
"id": -1,
"name": "pack-activity/pages/money",
"pathName": "pack-activity/pages/money",
"query": "",
"scene": null
},
{
"id": 76,
"name": "pages/customer/detail_owner",
"pathName": "pages/customer/detail_owner",
"query": "id=59113",
"scene": null
},
{
"id": -1,
"name": "pack-activity/pages/kefu",
"pathName": "pack-activity/pages/kefu",
"query": "",
"scene": null
},
{
"id": -1,
"name": "pack-activity/pages/yuding",
"pathName": "pack-activity/pages/yuding",
"query": "id=9994&fromid=test&hasInvitation=1&hasSellerShare=1&tplid=1",
"scene": null
},
{
"id": -1,
"name": "pack-activity/pages/rule",
"pathName": "pack-activity/pages/rule",
"query": "id=1",
"scene": null
},
{
"id": 80,
"name": "pack-checkout/pages/index",
"pathName": "pack-checkout/pages/index",
"query": "rid=64793&sid=80",
"scene": null
},
{
"id": 81,
"name": "pack-book/pages/checkout/index",
"pathName": "pack-book/pages/checkout/index",
"query": "rid=66283",
"scene": null
},
{
"id": 82,
"name": "pack-book/pages/checkout/invoice",
"pathName": "pack-book/pages/checkout/invoice",
"query": "rid=62346",
"scene": null
},
{
"id": -1,
"name": "pack-activity/pack/pack",
"pathName": "pack-activity/pack/pack",
"query": "",
"scene": null
},
{
"id": -1,
"name": "pack-activity/pack/list",
"pathName": "pack-activity/pack/list",
"query": "",
"scene": null
}
]
}
... ...
... ... @@ -9,7 +9,9 @@ const api_timeout = 2000; //接口超时时间,默认2s
import api from './api.url'
import uri_dc from './uri'
import bot from './rebot'
const sha1=require('js-sha1');
const JSEncrypt=require('./rsa');
//const JSEncrypt=require('./rsaJS');
const server_host = uri_dc.HOST__LINE;
class rpcm {
... ... @@ -136,9 +138,10 @@ function rpc(host = '', act, data = {}, fouce = false, header = {}, silence = tr
}
let stime = new Date();
wx.request({
url: host + act,
url: host + act+'&'+getSignQuery(),
method: 'POST',
data: data,
//data: data,
data: getRasData(data),
header: {
...header,
openid: openid,
... ... @@ -198,7 +201,9 @@ function rpc(host = '', act, data = {}, fouce = false, header = {}, silence = tr
if (wx.canIUse('reportPerformance')) {
wx.reportPerformance(1001, hs)
}
wx.hideLoading();
try{
wx.hideLoading();
} catch (e) {}
}
})
})
... ... @@ -280,14 +285,14 @@ function msgSecCheck(host,params){
'content-type': 'application/x-www-form-urlencoded'
},
success: res => {
if(res.data.data.errcode==0){
success()
}else{
if(res.data.data.errcode=='87014'){
fail()
}else{
success()
}
},
fail: res => {
fail()
success()
},
complete:res=>{
wx.hideLoading();
... ... @@ -295,4 +300,59 @@ function msgSecCheck(host,params){
})
})
}
function getSignQuery(){
let token='HY6FX#X5IXF%TRYnb9Yzfe9qgtSBBYib';
let timestamp=parseInt(new Date()/1000).toString()
let nonce=Math.random().toString(36).substr(2);
nonce+=Math.random().toString(36).substr(2)
nonce+=Math.random().toString(36).substr(2);
nonce=nonce.toUpperCase()
let singArr=[token,nonce,timestamp].sort()
//console.log('singStr',singArr)
let singStr=singArr.join('')
//console.log('singStr',singStr)
let sign=sha1(singStr)
return `timestamp=${timestamp}&nonce=${nonce}&signature=${sign}`
}
function getRasData(data=null){
//return data;
if(!data) return;
if(data.encrypt_data) delete data.encrypt_data
let public_cert=`-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAubITzkOkhsym+uFtxcBu
u97J/gL/N3IcijrwiLbUZ3Q51sdiM4WzH2bsjVwnCVeuAiCg97JrLcEllyFrg1jZ
qXUKO326cRBl97JGFS9DjKNFJj+ytnmRlPduJDyCtcsdesHKVVPsFliEmO5C35K4
5OTn5A0wTSbD9dHOFf9uWZDfdC90bVXt16FbgxaaPJ4E4C6RxPaILXTIMKpOyros
SuaAdVsw+lxqwe6ffan3MA12iL8rhFbnpQTQeRgQhBZZNY9OQYcc3U5dc5TwBGpa
eEFOg6e30rcRZe71oyoJy4+2QED+QOMOiDH7h0xOSGa+IAE8Nw4Ju57WfJqUKGaq
+wIDAQAB
-----END PUBLIC KEY-----`
JSEncrypt.setPublicKey(public_cert);
let test_data={
centre_pos: "39.62420161,118.1174469",
distance: 100000,
lat: 39.62420161,
lng: 118.1174469,
map: {
"errMsg":"getMapRegion:ok",
"southwest":{
"longitude":118.10940027295531,
"latitude":39.61686294801785
},
"northeast":{
"longitude":118.12549352704467,
"latitude":39.63153949379
},
"scale":15
},
offset: 0,
rows: 50,
}
test_data={"rid":"66723","openid":"oB-xJ5BjnTvdgQGLHsjioNHH0eE8"}
test_data=(JSON.stringify(test_data))
var encStr = JSEncrypt.encryptLong(test_data);
console.log(test_data,encStr)
data.encrypt_data=encStr
return data
}
export default __api();
\ No newline at end of file
... ...
... ... @@ -314,6 +314,7 @@ export default {
openid:'openid',
silence:false,
msgSecCheck:true,
//alias:'App.Customer.SetReserveInfotest'
},
//获得小程序码
... ... @@ -436,4 +437,63 @@ export default {
'App.Customer.SetReserveStatusByUser':{
openid:'openid',
},
//获取用户余额
'App.User.GetBalance':{
openid:'openid',
},
//获取用户余额
'App.User.GetConsume':{
openid:'openid',
},
//获取单个任务
'App.Task.GetTaskInfo':{
openid:'openid',
},
//获取用户任务列表
'App.Task.GetTaskInfos':{
openid:'openid',
},
//领取任务 aid tid
'App.Task.SetTaskInfo':{
openid:'openid',
},
//企业微信用的完成任务 aid tid
'App.Task.GetTaskByOpenid':{
openid:'openid',
},
//获取账单详情
'App.Customer.GetOrderInfo':null,
//初始化账单
'App.Customer.InitOrder':{
openid:'openid',
},
//用户发票关联账单、同时生成个人发票记录
'App.Customer.SetInvoice':{
openid:'openid',
},
//催促消息
'App.PushMsg.SendUrgeMsg':null,
//构造支付参数
'App.PayOnline.CombineTransactions':{
openid:'openid',
},
//商家确认账单操作
'App.Customer.UpdateOrderInfo':{
silence:false,
},
//进店领取红包
'App.Customer.SetCardRel':{
openid:'openid',
},
//根据不同状态获取用户对应的卡券列表
'App.Customer.GetUserCard':{
openid:'openid',
},
//根据账单ID,改变用户自主选择的卡券类型
'App.Customer.ChangeDiscountCombination':{
openid:'openid',
silence: false,
},
}
\ No newline at end of file
... ...
This diff could not be displayed because it is too large.
var e="0123456789abcdefghijklmnopqrstuvwxyz";function a(t){return e.charAt(t)}function i(t,e){return t&e}function u(t,e){return t|e}function r(t,e){return t^e}function n(t,e){return t&~e}function s(t){if(0==t)return-1;var e=0;return 0==(65535&t)&&(t>>=16,e+=16),0==(255&t)&&(t>>=8,e+=8),0==(15&t)&&(t>>=4,e+=4),0==(3&t)&&(t>>=2,e+=2),0==(1&t)&&++e,e}function o(t){for(var e=0;0!=t;)t&=t-1,++e;return e}var h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function c(t){var e,i,r="";for(e=0;e+3<=t.length;e+=3)i=parseInt(t.substring(e,e+3),16),r+=h.charAt(i>>6)+h.charAt(63&i);for(e+1==t.length?(i=parseInt(t.substring(e,e+1),16),r+=h.charAt(i<<2)):e+2==t.length&&(i=parseInt(t.substring(e,e+2),16),r+=h.charAt(i>>2)+h.charAt((3&i)<<4));0<(3&r.length);)r+="=";return r}function f(t){var e,i="",r=0,n=0;for(e=0;e<t.length&&"="!=t.charAt(e);++e){var s=h.indexOf(t.charAt(e));s<0||(0==r?(i+=a(s>>2),n=3&s,r=1):1==r?(i+=a(n<<2|s>>4),n=15&s,r=2):2==r?(i+=a(n),i+=a(s>>2),n=3&s,r=3):(i+=a(n<<2|s>>4),i+=a(15&s),r=0))}return 1==r&&(i+=a(n<<2)),i}var l,p=function(t,e){return(p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(t,e)};var g,d=function(t){var e;if(void 0===l){var i="0123456789ABCDEF",r=" \f\n\r\t \u2028\u2029";for(l={},e=0;e<16;++e)l[i.charAt(e)]=e;for(i=i.toLowerCase(),e=10;e<16;++e)l[i.charAt(e)]=e;for(e=0;e<r.length;++e)l[r.charAt(e)]=-1}var n=[],s=0,o=0;for(e=0;e<t.length;++e){var h=t.charAt(e);if("="==h)break;if(-1!=(h=l[h])){if(void 0===h)throw new Error("Illegal character at offset "+e);s|=h,2<=++o?(n[n.length]=s,o=s=0):s<<=4}}if(o)throw new Error("Hex encoding incomplete: 4 bits missing");return n},v={decode:function(t){var e;if(void 0===g){var i="= \f\n\r\t \u2028\u2029";for(g=Object.create(null),e=0;e<64;++e)g["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e)]=e;for(e=0;e<i.length;++e)g[i.charAt(e)]=-1}var r=[],n=0,s=0;for(e=0;e<t.length;++e){var o=t.charAt(e);if("="==o)break;if(-1!=(o=g[o])){if(void 0===o)throw new Error("Illegal character at offset "+e);n|=o,4<=++s?(r[r.length]=n>>16,r[r.length]=n>>8&255,r[r.length]=255&n,s=n=0):n<<=6}}switch(s){case 1:throw new Error("Base64 encoding incomplete: at least 2 bits missing");case 2:r[r.length]=n>>10;break;case 3:r[r.length]=n>>16,r[r.length]=n>>8&255}return r},re:/-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/,unarmor:function(t){var e=v.re.exec(t);if(e)if(e[1])t=e[1];else{if(!e[2])throw new Error("RegExp out of sync");t=e[2]}return v.decode(t)}},m=1e13,y=function(){function t(t){this.buf=[+t||0]}return t.prototype.mulAdd=function(t,e){var i,r,n=this.buf,s=n.length;for(i=0;i<s;++i)(r=n[i]*t+e)<m?e=0:r-=(e=0|r/m)*m,n[i]=r;0<e&&(n[i]=e)},t.prototype.sub=function(t){var e,i,r=this.buf,n=r.length;for(e=0;e<n;++e)(i=r[e]-t)<0?(i+=m,t=1):t=0,r[e]=i;for(;0===r[r.length-1];)r.pop()},t.prototype.toString=function(t){if(10!=(t||10))throw new Error("only base 10 is supported");for(var e=this.buf,i=e[e.length-1].toString(),r=e.length-2;0<=r;--r)i+=(m+e[r]).toString().substring(1);return i},t.prototype.valueOf=function(){for(var t=this.buf,e=0,i=t.length-1;0<=i;--i)e=e*m+t[i];return e},t.prototype.simplify=function(){var t=this.buf;return 1==t.length?t[0]:this},t}(),b="…",T=/^(\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/,S=/^(\d\d\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/;function E(t,e){return t.length>e&&(t=t.substring(0,e)+b),t}var w,D=function(){function i(t,e){this.hexDigits="0123456789ABCDEF",t instanceof i?(this.enc=t.enc,this.pos=t.pos):(this.enc=t,this.pos=e)}return i.prototype.get=function(t){if(void 0===t&&(t=this.pos++),t>=this.enc.length)throw new Error("Requesting byte offset "+t+" on a stream of length "+this.enc.length);return"string"==typeof this.enc?this.enc.charCodeAt(t):this.enc[t]},i.prototype.hexByte=function(t){return this.hexDigits.charAt(t>>4&15)+this.hexDigits.charAt(15&t)},i.prototype.hexDump=function(t,e,i){for(var r="",n=t;n<e;++n)if(r+=this.hexByte(this.get(n)),!0!==i)switch(15&n){case 7:r+=" ";break;case 15:r+="\n";break;default:r+=" "}return r},i.prototype.isASCII=function(t,e){for(var i=t;i<e;++i){var r=this.get(i);if(r<32||176<r)return!1}return!0},i.prototype.parseStringISO=function(t,e){for(var i="",r=t;r<e;++r)i+=String.fromCharCode(this.get(r));return i},i.prototype.parseStringUTF=function(t,e){for(var i="",r=t;r<e;){var n=this.get(r++);i+=n<128?String.fromCharCode(n):191<n&&n<224?String.fromCharCode((31&n)<<6|63&this.get(r++)):String.fromCharCode((15&n)<<12|(63&this.get(r++))<<6|63&this.get(r++))}return i},i.prototype.parseStringBMP=function(t,e){for(var i,r,n="",s=t;s<e;)i=this.get(s++),r=this.get(s++),n+=String.fromCharCode(i<<8|r);return n},i.prototype.parseTime=function(t,e,i){var r=this.parseStringISO(t,e),n=(i?T:S).exec(r);return n?(i&&(n[1]=+n[1],n[1]+=+n[1]<70?2e3:1900),r=n[1]+"-"+n[2]+"-"+n[3]+" "+n[4],n[5]&&(r+=":"+n[5],n[6]&&(r+=":"+n[6],n[7]&&(r+="."+n[7]))),n[8]&&(r+=" UTC","Z"!=n[8]&&(r+=n[8],n[9]&&(r+=":"+n[9]))),r):"Unrecognized time: "+r},i.prototype.parseInteger=function(t,e){for(var i,r=this.get(t),n=127<r,s=n?255:0,o="";r==s&&++t<e;)r=this.get(t);if(0===(i=e-t))return n?-1:0;if(4<i){for(o=r,i<<=3;0==(128&(+o^s));)o=+o<<1,--i;o="("+i+" bit)\n"}n&&(r-=256);for(var h=new y(r),a=t+1;a<e;++a)h.mulAdd(256,this.get(a));return o+h.toString()},i.prototype.parseBitString=function(t,e,i){for(var r=this.get(t),n="("+((e-t-1<<3)-r)+" bit)\n",s="",o=t+1;o<e;++o){for(var h=this.get(o),a=o==e-1?r:0,u=7;a<=u;--u)s+=h>>u&1?"1":"0";if(s.length>i)return n+E(s,i)}return n+s},i.prototype.parseOctetString=function(t,e,i){if(this.isASCII(t,e))return E(this.parseStringISO(t,e),i);var r=e-t,n="("+r+" byte)\n";(i/=2)<r&&(e=t+i);for(var s=t;s<e;++s)n+=this.hexByte(this.get(s));return i<r&&(n+=b),n},i.prototype.parseOID=function(t,e,i){for(var r="",n=new y,s=0,o=t;o<e;++o){var h=this.get(o);if(n.mulAdd(128,127&h),s+=7,!(128&h)){if(""===r)if((n=n.simplify())instanceof y)n.sub(80),r="2."+n.toString();else{var a=n<80?n<40?0:1:2;r=a+"."+(n-40*a)}else r+="."+n.toString();if(r.length>i)return E(r,i);n=new y,s=0}}return 0<s&&(r+=".incomplete"),r},i}(),x=function(){function c(t,e,i,r,n){if(!(r instanceof R))throw new Error("Invalid tag value.");this.stream=t,this.header=e,this.length=i,this.tag=r,this.sub=n}return c.prototype.typeName=function(){switch(this.tag.tagClass){case 0:switch(this.tag.tagNumber){case 0:return"EOC";case 1:return"BOOLEAN";case 2:return"INTEGER";case 3:return"BIT_STRING";case 4:return"OCTET_STRING";case 5:return"NULL";case 6:return"OBJECT_IDENTIFIER";case 7:return"ObjectDescriptor";case 8:return"EXTERNAL";case 9:return"REAL";case 10:return"ENUMERATED";case 11:return"EMBEDDED_PDV";case 12:return"UTF8String";case 16:return"SEQUENCE";case 17:return"SET";case 18:return"NumericString";case 19:return"PrintableString";case 20:return"TeletexString";case 21:return"VideotexString";case 22:return"IA5String";case 23:return"UTCTime";case 24:return"GeneralizedTime";case 25:return"GraphicString";case 26:return"VisibleString";case 27:return"GeneralString";case 28:return"UniversalString";case 30:return"BMPString"}return"Universal_"+this.tag.tagNumber.toString();case 1:return"Application_"+this.tag.tagNumber.toString();case 2:return"["+this.tag.tagNumber.toString()+"]";case 3:return"Private_"+this.tag.tagNumber.toString()}},c.prototype.content=function(t){if(void 0===this.tag)return null;void 0===t&&(t=1/0);var e=this.posContent(),i=Math.abs(this.length);if(!this.tag.isUniversal())return null!==this.sub?"("+this.sub.length+" elem)":this.stream.parseOctetString(e,e+i,t);switch(this.tag.tagNumber){case 1:return 0===this.stream.get(e)?"false":"true";case 2:return this.stream.parseInteger(e,e+i);case 3:return this.sub?"("+this.sub.length+" elem)":this.stream.parseBitString(e,e+i,t);case 4:return this.sub?"("+this.sub.length+" elem)":this.stream.parseOctetString(e,e+i,t);case 6:return this.stream.parseOID(e,e+i,t);case 16:case 17:return null!==this.sub?"("+this.sub.length+" elem)":"(no elem)";case 12:return E(this.stream.parseStringUTF(e,e+i),t);case 18:case 19:case 20:case 21:case 22:case 26:return E(this.stream.parseStringISO(e,e+i),t);case 30:return E(this.stream.parseStringBMP(e,e+i),t);case 23:case 24:return this.stream.parseTime(e,e+i,23==this.tag.tagNumber)}return null},c.prototype.toString=function(){return this.typeName()+"@"+this.stream.pos+"[header:"+this.header+",length:"+this.length+",sub:"+(null===this.sub?"null":this.sub.length)+"]"},c.prototype.toPrettyString=function(t){void 0===t&&(t="");var e=t+this.typeName()+" @"+this.stream.pos;if(0<=this.length&&(e+="+"),e+=this.length,this.tag.tagConstructed?e+=" (constructed)":!this.tag.isUniversal()||3!=this.tag.tagNumber&&4!=this.tag.tagNumber||null===this.sub||(e+=" (encapsulates)"),e+="\n",null!==this.sub){t+=" ";for(var i=0,r=this.sub.length;i<r;++i)e+=this.sub[i].toPrettyString(t)}return e},c.prototype.posStart=function(){return this.stream.pos},c.prototype.posContent=function(){return this.stream.pos+this.header},c.prototype.posEnd=function(){return this.stream.pos+this.header+Math.abs(this.length)},c.prototype.toHexString=function(){return this.stream.hexDump(this.posStart(),this.posEnd(),!0)},c.decodeLength=function(t){var e=t.get(),i=127&e;if(i==e)return i;if(6<i)throw new Error("Length over 48 bits not supported at position "+(t.pos-1));if(0===i)return null;for(var r=e=0;r<i;++r)e=256*e+t.get();return e},c.prototype.getHexStringValue=function(){var t=this.toHexString(),e=2*this.header,i=2*this.length;return t.substr(e,i)},c.decode=function(t){var r;r=t instanceof D?t:new D(t,0);var e=new D(r),i=new R(r),n=c.decodeLength(r),s=r.pos,o=s-e.pos,h=null,a=function(){var t=[];if(null!==n){for(var e=s+n;r.pos<e;)t[t.length]=c.decode(r);if(r.pos!=e)throw new Error("Content size is not correct for container starting at offset "+s)}else try{for(;;){var i=c.decode(r);if(i.tag.isEOC())break;t[t.length]=i}n=s-r.pos}catch(t){throw new Error("Exception while decoding undefined length content: "+t)}return t};if(i.tagConstructed)h=a();else if(i.isUniversal()&&(3==i.tagNumber||4==i.tagNumber))try{if(3==i.tagNumber&&0!=r.get())throw new Error("BIT STRINGs with unused bits cannot encapsulate.");h=a();for(var u=0;u<h.length;++u)if(h[u].tag.isEOC())throw new Error("EOC is not supposed to be actual content.")}catch(t){h=null}if(null===h){if(null===n)throw new Error("We can't skip over an invalid tag with undefined length at offset "+s);r.pos=s+Math.abs(n)}return new c(e,o,n,i,h)},c}(),R=function(){function t(t){var e=t.get();if(this.tagClass=e>>6,this.tagConstructed=0!=(32&e),this.tagNumber=31&e,31==this.tagNumber){for(var i=new y;e=t.get(),i.mulAdd(128,127&e),128&e;);this.tagNumber=i.simplify()}}return t.prototype.isUniversal=function(){return 0===this.tagClass},t.prototype.isEOC=function(){return 0===this.tagClass&&0===this.tagNumber},t}(),B=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],A=(1<<26)/B[B.length-1],O=function(){function b(t,e,i){null!=t&&("number"==typeof t?this.fromNumber(t,e,i):null==e&&"string"!=typeof t?this.fromString(t,256):this.fromString(t,e))}return b.prototype.toString=function(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var i,r=(1<<e)-1,n=!1,s="",o=this.t,h=this.DB-o*this.DB%e;if(0<o--)for(h<this.DB&&0<(i=this[o]>>h)&&(n=!0,s=a(i));0<=o;)h<e?(i=(this[o]&(1<<h)-1)<<e-h,i|=this[--o]>>(h+=this.DB-e)):(i=this[o]>>(h-=e)&r,h<=0&&(h+=this.DB,--o)),0<i&&(n=!0),n&&(s+=a(i));return n?s:"0"},b.prototype.negate=function(){var t=M();return b.ZERO.subTo(this,t),t},b.prototype.abs=function(){return this.s<0?this.negate():this},b.prototype.compareTo=function(t){var e=this.s-t.s;if(0!=e)return e;var i=this.t;if(0!=(e=i-t.t))return this.s<0?-e:e;for(;0<=--i;)if(0!=(e=this[i]-t[i]))return e;return 0},b.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+U(this[this.t-1]^this.s&this.DM)},b.prototype.mod=function(t){var e=M();return this.abs().divRemTo(t,null,e),this.s<0&&0<e.compareTo(b.ZERO)&&t.subTo(e,e),e},b.prototype.modPowInt=function(t,e){var i;return i=t<256||e.isEven()?new I(e):new N(e),this.exp(t,i)},b.prototype.clone=function(){var t=M();return this.copyTo(t),t},b.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},b.prototype.byteValue=function(){return 0==this.t?this.s:this[0]<<24>>24},b.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},b.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},b.prototype.toByteArray=function(){var t=this.t,e=[];e[0]=this.s;var i,r=this.DB-t*this.DB%8,n=0;if(0<t--)for(r<this.DB&&(i=this[t]>>r)!=(this.s&this.DM)>>r&&(e[n++]=i|this.s<<this.DB-r);0<=t;)r<8?(i=(this[t]&(1<<r)-1)<<8-r,i|=this[--t]>>(r+=this.DB-8)):(i=this[t]>>(r-=8)&255,r<=0&&(r+=this.DB,--t)),0!=(128&i)&&(i|=-256),0==n&&(128&this.s)!=(128&i)&&++n,(0<n||i!=this.s)&&(e[n++]=i);return e},b.prototype.equals=function(t){return 0==this.compareTo(t)},b.prototype.min=function(t){return this.compareTo(t)<0?this:t},b.prototype.max=function(t){return 0<this.compareTo(t)?this:t},b.prototype.and=function(t){var e=M();return this.bitwiseTo(t,i,e),e},b.prototype.or=function(t){var e=M();return this.bitwiseTo(t,u,e),e},b.prototype.xor=function(t){var e=M();return this.bitwiseTo(t,r,e),e},b.prototype.andNot=function(t){var e=M();return this.bitwiseTo(t,n,e),e},b.prototype.not=function(){for(var t=M(),e=0;e<this.t;++e)t[e]=this.DM&~this[e];return t.t=this.t,t.s=~this.s,t},b.prototype.shiftLeft=function(t){var e=M();return t<0?this.rShiftTo(-t,e):this.lShiftTo(t,e),e},b.prototype.shiftRight=function(t){var e=M();return t<0?this.lShiftTo(-t,e):this.rShiftTo(t,e),e},b.prototype.getLowestSetBit=function(){for(var t=0;t<this.t;++t)if(0!=this[t])return t*this.DB+s(this[t]);return this.s<0?this.t*this.DB:-1},b.prototype.bitCount=function(){for(var t=0,e=this.s&this.DM,i=0;i<this.t;++i)t+=o(this[i]^e);return t},b.prototype.testBit=function(t){var e=Math.floor(t/this.DB);return e>=this.t?0!=this.s:0!=(this[e]&1<<t%this.DB)},b.prototype.setBit=function(t){return this.changeBit(t,u)},b.prototype.clearBit=function(t){return this.changeBit(t,n)},b.prototype.flipBit=function(t){return this.changeBit(t,r)},b.prototype.add=function(t){var e=M();return this.addTo(t,e),e},b.prototype.subtract=function(t){var e=M();return this.subTo(t,e),e},b.prototype.multiply=function(t){var e=M();return this.multiplyTo(t,e),e},b.prototype.divide=function(t){var e=M();return this.divRemTo(t,e,null),e},b.prototype.remainder=function(t){var e=M();return this.divRemTo(t,null,e),e},b.prototype.divideAndRemainder=function(t){var e=M(),i=M();return this.divRemTo(t,e,i),[e,i]},b.prototype.modPow=function(t,e){var i,r,n=t.bitLength(),s=F(1);if(n<=0)return s;i=n<18?1:n<48?3:n<144?4:n<768?5:6,r=n<8?new I(e):e.isEven()?new P(e):new N(e);var o=[],h=3,a=i-1,u=(1<<i)-1;if(o[1]=r.convert(this),1<i){var c=M();for(r.sqrTo(o[1],c);h<=u;)o[h]=M(),r.mulTo(c,o[h-2],o[h]),h+=2}var f,l,p=t.t-1,g=!0,d=M();for(n=U(t[p])-1;0<=p;){for(a<=n?f=t[p]>>n-a&u:(f=(t[p]&(1<<n+1)-1)<<a-n,0<p&&(f|=t[p-1]>>this.DB+n-a)),h=i;0==(1&f);)f>>=1,--h;if((n-=h)<0&&(n+=this.DB,--p),g)o[f].copyTo(s),g=!1;else{for(;1<h;)r.sqrTo(s,d),r.sqrTo(d,s),h-=2;0<h?r.sqrTo(s,d):(l=s,s=d,d=l),r.mulTo(d,o[f],s)}for(;0<=p&&0==(t[p]&1<<n);)r.sqrTo(s,d),l=s,s=d,d=l,--n<0&&(n=this.DB-1,--p)}return r.revert(s)},b.prototype.modInverse=function(t){var e=t.isEven();if(this.isEven()&&e||0==t.signum())return b.ZERO;for(var i=t.clone(),r=this.clone(),n=F(1),s=F(0),o=F(0),h=F(1);0!=i.signum();){for(;i.isEven();)i.rShiftTo(1,i),e?(n.isEven()&&s.isEven()||(n.addTo(this,n),s.subTo(t,s)),n.rShiftTo(1,n)):s.isEven()||s.subTo(t,s),s.rShiftTo(1,s);for(;r.isEven();)r.rShiftTo(1,r),e?(o.isEven()&&h.isEven()||(o.addTo(this,o),h.subTo(t,h)),o.rShiftTo(1,o)):h.isEven()||h.subTo(t,h),h.rShiftTo(1,h);0<=i.compareTo(r)?(i.subTo(r,i),e&&n.subTo(o,n),s.subTo(h,s)):(r.subTo(i,r),e&&o.subTo(n,o),h.subTo(s,h))}return 0!=r.compareTo(b.ONE)?b.ZERO:0<=h.compareTo(t)?h.subtract(t):h.signum()<0?(h.addTo(t,h),h.signum()<0?h.add(t):h):h},b.prototype.pow=function(t){return this.exp(t,new V)},b.prototype.gcd=function(t){var e=this.s<0?this.negate():this.clone(),i=t.s<0?t.negate():t.clone();if(e.compareTo(i)<0){var r=e;e=i,i=r}var n=e.getLowestSetBit(),s=i.getLowestSetBit();if(s<0)return e;for(n<s&&(s=n),0<s&&(e.rShiftTo(s,e),i.rShiftTo(s,i));0<e.signum();)0<(n=e.getLowestSetBit())&&e.rShiftTo(n,e),0<(n=i.getLowestSetBit())&&i.rShiftTo(n,i),0<=e.compareTo(i)?(e.subTo(i,e),e.rShiftTo(1,e)):(i.subTo(e,i),i.rShiftTo(1,i));return 0<s&&i.lShiftTo(s,i),i},b.prototype.isProbablePrime=function(t){var e,i=this.abs();if(1==i.t&&i[0]<=B[B.length-1]){for(e=0;e<B.length;++e)if(i[0]==B[e])return!0;return!1}if(i.isEven())return!1;for(e=1;e<B.length;){for(var r=B[e],n=e+1;n<B.length&&r<A;)r*=B[n++];for(r=i.modInt(r);e<n;)if(r%B[e++]==0)return!1}return i.millerRabin(t)},b.prototype.copyTo=function(t){for(var e=this.t-1;0<=e;--e)t[e]=this[e];t.t=this.t,t.s=this.s},b.prototype.fromInt=function(t){this.t=1,this.s=t<0?-1:0,0<t?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},b.prototype.fromString=function(t,e){var i;if(16==e)i=4;else if(8==e)i=3;else if(256==e)i=8;else if(2==e)i=1;else if(32==e)i=5;else{if(4!=e)return void this.fromRadix(t,e);i=2}this.t=0,this.s=0;for(var r=t.length,n=!1,s=0;0<=--r;){var o=8==i?255&+t[r]:C(t,r);o<0?"-"==t.charAt(r)&&(n=!0):(n=!1,0==s?this[this.t++]=o:s+i>this.DB?(this[this.t-1]|=(o&(1<<this.DB-s)-1)<<s,this[this.t++]=o>>this.DB-s):this[this.t-1]|=o<<s,(s+=i)>=this.DB&&(s-=this.DB))}8==i&&0!=(128&+t[0])&&(this.s=-1,0<s&&(this[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),n&&b.ZERO.subTo(this,this)},b.prototype.clamp=function(){for(var t=this.s&this.DM;0<this.t&&this[this.t-1]==t;)--this.t},b.prototype.dlShiftTo=function(t,e){var i;for(i=this.t-1;0<=i;--i)e[i+t]=this[i];for(i=t-1;0<=i;--i)e[i]=0;e.t=this.t+t,e.s=this.s},b.prototype.drShiftTo=function(t,e){for(var i=t;i<this.t;++i)e[i-t]=this[i];e.t=Math.max(this.t-t,0),e.s=this.s},b.prototype.lShiftTo=function(t,e){for(var i=t%this.DB,r=this.DB-i,n=(1<<r)-1,s=Math.floor(t/this.DB),o=this.s<<i&this.DM,h=this.t-1;0<=h;--h)e[h+s+1]=this[h]>>r|o,o=(this[h]&n)<<i;for(h=s-1;0<=h;--h)e[h]=0;e[s]=o,e.t=this.t+s+1,e.s=this.s,e.clamp()},b.prototype.rShiftTo=function(t,e){e.s=this.s;var i=Math.floor(t/this.DB);if(i>=this.t)e.t=0;else{var r=t%this.DB,n=this.DB-r,s=(1<<r)-1;e[0]=this[i]>>r;for(var o=i+1;o<this.t;++o)e[o-i-1]|=(this[o]&s)<<n,e[o-i]=this[o]>>r;0<r&&(e[this.t-i-1]|=(this.s&s)<<n),e.t=this.t-i,e.clamp()}},b.prototype.subTo=function(t,e){for(var i=0,r=0,n=Math.min(t.t,this.t);i<n;)r+=this[i]-t[i],e[i++]=r&this.DM,r>>=this.DB;if(t.t<this.t){for(r-=t.s;i<this.t;)r+=this[i],e[i++]=r&this.DM,r>>=this.DB;r+=this.s}else{for(r+=this.s;i<t.t;)r-=t[i],e[i++]=r&this.DM,r>>=this.DB;r-=t.s}e.s=r<0?-1:0,r<-1?e[i++]=this.DV+r:0<r&&(e[i++]=r),e.t=i,e.clamp()},b.prototype.multiplyTo=function(t,e){var i=this.abs(),r=t.abs(),n=i.t;for(e.t=n+r.t;0<=--n;)e[n]=0;for(n=0;n<r.t;++n)e[n+i.t]=i.am(0,r[n],e,n,0,i.t);e.s=0,e.clamp(),this.s!=t.s&&b.ZERO.subTo(e,e)},b.prototype.squareTo=function(t){for(var e=this.abs(),i=t.t=2*e.t;0<=--i;)t[i]=0;for(i=0;i<e.t-1;++i){var r=e.am(i,e[i],t,2*i,0,1);(t[i+e.t]+=e.am(i+1,2*e[i],t,2*i+1,r,e.t-i-1))>=e.DV&&(t[i+e.t]-=e.DV,t[i+e.t+1]=1)}0<t.t&&(t[t.t-1]+=e.am(i,e[i],t,2*i,0,1)),t.s=0,t.clamp()},b.prototype.divRemTo=function(t,e,i){var r=t.abs();if(!(r.t<=0)){var n=this.abs();if(n.t<r.t)return null!=e&&e.fromInt(0),void(null!=i&&this.copyTo(i));null==i&&(i=M());var s=M(),o=this.s,h=t.s,a=this.DB-U(r[r.t-1]);0<a?(r.lShiftTo(a,s),n.lShiftTo(a,i)):(r.copyTo(s),n.copyTo(i));var u=s.t,c=s[u-1];if(0!=c){var f=c*(1<<this.F1)+(1<u?s[u-2]>>this.F2:0),l=this.FV/f,p=(1<<this.F1)/f,g=1<<this.F2,d=i.t,v=d-u,m=null==e?M():e;for(s.dlShiftTo(v,m),0<=i.compareTo(m)&&(i[i.t++]=1,i.subTo(m,i)),b.ONE.dlShiftTo(u,m),m.subTo(s,s);s.t<u;)s[s.t++]=0;for(;0<=--v;){var y=i[--d]==c?this.DM:Math.floor(i[d]*l+(i[d-1]+g)*p);if((i[d]+=s.am(0,y,i,v,0,u))<y)for(s.dlShiftTo(v,m),i.subTo(m,i);i[d]<--y;)i.subTo(m,i)}null!=e&&(i.drShiftTo(u,e),o!=h&&b.ZERO.subTo(e,e)),i.t=u,i.clamp(),0<a&&i.rShiftTo(a,i),o<0&&b.ZERO.subTo(i,i)}}},b.prototype.invDigit=function(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return 0<(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)?this.DV-e:-e},b.prototype.isEven=function(){return 0==(0<this.t?1&this[0]:this.s)},b.prototype.exp=function(t,e){if(4294967295<t||t<1)return b.ONE;var i=M(),r=M(),n=e.convert(this),s=U(t)-1;for(n.copyTo(i);0<=--s;)if(e.sqrTo(i,r),0<(t&1<<s))e.mulTo(r,n,i);else{var o=i;i=r,r=o}return e.revert(i)},b.prototype.chunkSize=function(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},b.prototype.toRadix=function(t){if(null==t&&(t=10),0==this.signum()||t<2||36<t)return"0";var e=this.chunkSize(t),i=Math.pow(t,e),r=F(i),n=M(),s=M(),o="";for(this.divRemTo(r,n,s);0<n.signum();)o=(i+s.intValue()).toString(t).substr(1)+o,n.divRemTo(r,n,s);return s.intValue().toString(t)+o},b.prototype.fromRadix=function(t,e){this.fromInt(0),null==e&&(e=10);for(var i=this.chunkSize(e),r=Math.pow(e,i),n=!1,s=0,o=0,h=0;h<t.length;++h){var a=C(t,h);a<0?"-"==t.charAt(h)&&0==this.signum()&&(n=!0):(o=e*o+a,++s>=i&&(this.dMultiply(r),this.dAddOffset(o,0),o=s=0))}0<s&&(this.dMultiply(Math.pow(e,s)),this.dAddOffset(o,0)),n&&b.ZERO.subTo(this,this)},b.prototype.fromNumber=function(t,e,i){if("number"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t,i),this.testBit(t-1)||this.bitwiseTo(b.ONE.shiftLeft(t-1),u,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(b.ONE.shiftLeft(t-1),this);else{var r=[],n=7&t;r.length=1+(t>>3),e.nextBytes(r),0<n?r[0]&=(1<<n)-1:r[0]=0,this.fromString(r,256)}},b.prototype.bitwiseTo=function(t,e,i){var r,n,s=Math.min(t.t,this.t);for(r=0;r<s;++r)i[r]=e(this[r],t[r]);if(t.t<this.t){for(n=t.s&this.DM,r=s;r<this.t;++r)i[r]=e(this[r],n);i.t=this.t}else{for(n=this.s&this.DM,r=s;r<t.t;++r)i[r]=e(n,t[r]);i.t=t.t}i.s=e(this.s,t.s),i.clamp()},b.prototype.changeBit=function(t,e){var i=b.ONE.shiftLeft(t);return this.bitwiseTo(i,e,i),i},b.prototype.addTo=function(t,e){for(var i=0,r=0,n=Math.min(t.t,this.t);i<n;)r+=this[i]+t[i],e[i++]=r&this.DM,r>>=this.DB;if(t.t<this.t){for(r+=t.s;i<this.t;)r+=this[i],e[i++]=r&this.DM,r>>=this.DB;r+=this.s}else{for(r+=this.s;i<t.t;)r+=t[i],e[i++]=r&this.DM,r>>=this.DB;r+=t.s}e.s=r<0?-1:0,0<r?e[i++]=r:r<-1&&(e[i++]=this.DV+r),e.t=i,e.clamp()},b.prototype.dMultiply=function(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},b.prototype.dAddOffset=function(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},b.prototype.multiplyLowerTo=function(t,e,i){var r=Math.min(this.t+t.t,e);for(i.s=0,i.t=r;0<r;)i[--r]=0;for(var n=i.t-this.t;r<n;++r)i[r+this.t]=this.am(0,t[r],i,r,0,this.t);for(n=Math.min(t.t,e);r<n;++r)this.am(0,t[r],i,r,0,e-r);i.clamp()},b.prototype.multiplyUpperTo=function(t,e,i){--e;var r=i.t=this.t+t.t-e;for(i.s=0;0<=--r;)i[r]=0;for(r=Math.max(e-this.t,0);r<t.t;++r)i[this.t+r-e]=this.am(e-r,t[r],i,0,0,this.t+r-e);i.clamp(),i.drShiftTo(1,i)},b.prototype.modInt=function(t){if(t<=0)return 0;var e=this.DV%t,i=this.s<0?t-1:0;if(0<this.t)if(0==e)i=this[0]%t;else for(var r=this.t-1;0<=r;--r)i=(e*i+this[r])%t;return i},b.prototype.millerRabin=function(t){var e=this.subtract(b.ONE),i=e.getLowestSetBit();if(i<=0)return!1;var r=e.shiftRight(i);B.length<(t=t+1>>1)&&(t=B.length);for(var n=M(),s=0;s<t;++s){n.fromInt(B[Math.floor(Math.random()*B.length)]);var o=n.modPow(r,this);if(0!=o.compareTo(b.ONE)&&0!=o.compareTo(e)){for(var h=1;h++<i&&0!=o.compareTo(e);)if(0==(o=o.modPowInt(2,this)).compareTo(b.ONE))return!1;if(0!=o.compareTo(e))return!1}}return!0},b.prototype.square=function(){var t=M();return this.squareTo(t),t},b.prototype.gcda=function(t,e){var i=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(i.compareTo(r)<0){var n=i;i=r,r=n}var s=i.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)e(i);else{s<o&&(o=s),0<o&&(i.rShiftTo(o,i),r.rShiftTo(o,r));var h=function(){0<(s=i.getLowestSetBit())&&i.rShiftTo(s,i),0<(s=r.getLowestSetBit())&&r.rShiftTo(s,r),0<=i.compareTo(r)?(i.subTo(r,i),i.rShiftTo(1,i)):(r.subTo(i,r),r.rShiftTo(1,r)),0<i.signum()?setTimeout(h,0):(0<o&&r.lShiftTo(o,r),setTimeout(function(){e(r)},0))};setTimeout(h,10)}},b.prototype.fromNumberAsync=function(t,e,i,r){if("number"==typeof e)if(t<2)this.fromInt(1);else{this.fromNumber(t,i),this.testBit(t-1)||this.bitwiseTo(b.ONE.shiftLeft(t-1),u,this),this.isEven()&&this.dAddOffset(1,0);var n=this,s=function(){n.dAddOffset(2,0),n.bitLength()>t&&n.subTo(b.ONE.shiftLeft(t-1),n),n.isProbablePrime(e)?setTimeout(function(){r()},0):setTimeout(s,0)};setTimeout(s,0)}else{var o=[],h=7&t;o.length=1+(t>>3),e.nextBytes(o),0<h?o[0]&=(1<<h)-1:o[0]=0,this.fromString(o,256)}},b}(),V=function(){function t(){}return t.prototype.convert=function(t){return t},t.prototype.revert=function(t){return t},t.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i)},t.prototype.sqrTo=function(t,e){t.squareTo(e)},t}(),I=function(){function t(t){this.m=t}return t.prototype.convert=function(t){return t.s<0||0<=t.compareTo(this.m)?t.mod(this.m):t},t.prototype.revert=function(t){return t},t.prototype.reduce=function(t){t.divRemTo(this.m,null,t)},t.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},t.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},t}(),N=function(){function t(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<t.DB-15)-1,this.mt2=2*t.t}return t.prototype.convert=function(t){var e=M();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&0<e.compareTo(O.ZERO)&&this.m.subTo(e,e),e},t.prototype.revert=function(t){var e=M();return t.copyTo(e),this.reduce(e),e},t.prototype.reduce=function(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e<this.m.t;++e){var i=32767&t[e],r=i*this.mpl+((i*this.mph+(t[e]>>15)*this.mpl&this.um)<<15)&t.DM;for(t[i=e+this.m.t]+=this.m.am(0,r,t,e,0,this.m.t);t[i]>=t.DV;)t[i]-=t.DV,t[++i]++}t.clamp(),t.drShiftTo(this.m.t,t),0<=t.compareTo(this.m)&&t.subTo(this.m,t)},t.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},t.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},t}(),P=function(){function t(t){this.m=t,this.r2=M(),this.q3=M(),O.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t)}return t.prototype.convert=function(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=M();return t.copyTo(e),this.reduce(e),e},t.prototype.revert=function(t){return t},t.prototype.reduce=function(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);0<=t.compareTo(this.m);)t.subTo(this.m,t)},t.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},t.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},t}();function M(){return new O(null)}function q(t,e){return new O(t,e)}(O.prototype.am=function(t,e,i,r,n,s){for(var o=16383&e,h=e>>14;0<=--s;){var a=16383&this[t],u=this[t++]>>14,c=h*a+u*o;n=((a=o*a+((16383&c)<<14)+i[r]+n)>>28)+(c>>14)+h*u,i[r++]=268435455&a}return n},w=28),O.prototype.DB=w,O.prototype.DM=(1<<w)-1,O.prototype.DV=1<<w;O.prototype.FV=Math.pow(2,52),O.prototype.F1=52-w,O.prototype.F2=2*w-52;var j,L,H=[];for(j="0".charCodeAt(0),L=0;L<=9;++L)H[j++]=L;for(j="a".charCodeAt(0),L=10;L<36;++L)H[j++]=L;for(j="A".charCodeAt(0),L=10;L<36;++L)H[j++]=L;function C(t,e){var i=H[t.charCodeAt(e)];return null==i?-1:i}function F(t){var e=M();return e.fromInt(t),e}function U(t){var e,i=1;return 0!=(e=t>>>16)&&(t=e,i+=16),0!=(e=t>>8)&&(t=e,i+=8),0!=(e=t>>4)&&(t=e,i+=4),0!=(e=t>>2)&&(t=e,i+=2),0!=(e=t>>1)&&(t=e,i+=1),i}O.ZERO=F(0),O.ONE=F(1);var K=function(){function t(){this.i=0,this.j=0,this.S=[]}return t.prototype.init=function(t){var e,i,r;for(e=0;e<256;++e)this.S[e]=e;for(e=i=0;e<256;++e)i=i+this.S[e]+t[e%t.length]&255,r=this.S[e],this.S[e]=this.S[i],this.S[i]=r;this.i=0,this.j=0},t.prototype.next=function(){var t;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,t=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=t,this.S[t+this.S[this.i]&255]},t}();var k,_,z=256,Z=null;if(null==Z){Z=[];var G=void(_=0);}function J(){if(null==k){for(k=new K;_<z;){var t=Math.floor(65536*Math.random());Z[_++]=255&t}for(k.init(Z),_=0;_<Z.length;++_)Z[_]=0;_=0}return k.next()}var X=function(){function t(){}return t.prototype.nextBytes=function(t){for(var e=0;e<t.length;++e)t[e]=J()},t}();var Q=function(){function t(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}return t.prototype.doPublic=function(t){return t.modPowInt(this.e,this.n)},t.prototype.doPrivate=function(t){if(null==this.p||null==this.q)return t.modPow(this.d,this.n);for(var e=t.mod(this.p).modPow(this.dmp1,this.p),i=t.mod(this.q).modPow(this.dmq1,this.q);e.compareTo(i)<0;)e=e.add(this.p);return e.subtract(i).multiply(this.coeff).mod(this.p).multiply(this.q).add(i)},t.prototype.setPublic=function(t,e){null!=t&&null!=e&&0<t.length&&0<e.length?(this.n=q(t,16),this.e=parseInt(e,16)):console.error("Invalid RSA public key")},t.prototype.encrypt=function(t){var e=function(t,e){if(e<t.length+11)return console.error("Message too long for RSA"),null;for(var i=[],r=t.length-1;0<=r&&0<e;){var n=t.charCodeAt(r--);n<128?i[--e]=n:127<n&&n<2048?(i[--e]=63&n|128,i[--e]=n>>6|192):(i[--e]=63&n|128,i[--e]=n>>6&63|128,i[--e]=n>>12|224)}i[--e]=0;for(var s=new X,o=[];2<e;){for(o[0]=0;0==o[0];)s.nextBytes(o);i[--e]=o[0]}return i[--e]=2,i[--e]=0,new O(i)}(t,this.n.bitLength()+7>>3);if(null==e)return null;var i=this.doPublic(e);if(null==i)return null;var r=i.toString(16);return 0==(1&r.length)?r:"0"+r},t.prototype.setPrivate=function(t,e,i){null!=t&&null!=e&&0<t.length&&0<e.length?(this.n=q(t,16),this.e=parseInt(e,16),this.d=q(i,16)):console.error("Invalid RSA private key")},t.prototype.setPrivateEx=function(t,e,i,r,n,s,o,h){null!=t&&null!=e&&0<t.length&&0<e.length?(this.n=q(t,16),this.e=parseInt(e,16),this.d=q(i,16),this.p=q(r,16),this.q=q(n,16),this.dmp1=q(s,16),this.dmq1=q(o,16),this.coeff=q(h,16)):console.error("Invalid RSA private key")},t.prototype.generate=function(t,e){var i=new X,r=t>>1;this.e=parseInt(e,16);for(var n=new O(e,16);;){for(;this.p=new O(t-r,1,i),0!=this.p.subtract(O.ONE).gcd(n).compareTo(O.ONE)||!this.p.isProbablePrime(10););for(;this.q=new O(r,1,i),0!=this.q.subtract(O.ONE).gcd(n).compareTo(O.ONE)||!this.q.isProbablePrime(10););if(this.p.compareTo(this.q)<=0){var s=this.p;this.p=this.q,this.q=s}var o=this.p.subtract(O.ONE),h=this.q.subtract(O.ONE),a=o.multiply(h);if(0==a.gcd(n).compareTo(O.ONE)){this.n=this.p.multiply(this.q),this.d=n.modInverse(a),this.dmp1=this.d.mod(o),this.dmq1=this.d.mod(h),this.coeff=this.q.modInverse(this.p);break}}},t.prototype.decrypt=function(t){var e=q(t,16),i=this.doPrivate(e);return null==i?null:function(t,e){var i=t.toByteArray(),r=0;for(;r<i.length&&0==i[r];)++r;if(i.length-r!=e-1||2!=i[r])return null;++r;for(;0!=i[r];)if(++r>=i.length)return null;var n="";for(;++r<i.length;){var s=255&i[r];s<128?n+=String.fromCharCode(s):191<s&&s<224?(n+=String.fromCharCode((31&s)<<6|63&i[r+1]),++r):(n+=String.fromCharCode((15&s)<<12|(63&i[r+1])<<6|63&i[r+2]),r+=2)}return n}(i,this.n.bitLength()+7>>3)},t.prototype.generateAsync=function(t,e,n){var s=new X,o=t>>1;this.e=parseInt(e,16);var h=new O(e,16),a=this,u=function(){var e=function(){if(a.p.compareTo(a.q)<=0){var t=a.p;a.p=a.q,a.q=t}var e=a.p.subtract(O.ONE),i=a.q.subtract(O.ONE),r=e.multiply(i);0==r.gcd(h).compareTo(O.ONE)?(a.n=a.p.multiply(a.q),a.d=h.modInverse(r),a.dmp1=a.d.mod(e),a.dmq1=a.d.mod(i),a.coeff=a.q.modInverse(a.p),setTimeout(function(){n()},0)):setTimeout(u,0)},i=function(){a.q=M(),a.q.fromNumberAsync(o,1,s,function(){a.q.subtract(O.ONE).gcda(h,function(t){0==t.compareTo(O.ONE)&&a.q.isProbablePrime(10)?setTimeout(e,0):setTimeout(i,0)})})},r=function(){a.p=M(),a.p.fromNumberAsync(t-o,1,s,function(){a.p.subtract(O.ONE).gcda(h,function(t){0==t.compareTo(O.ONE)&&a.p.isProbablePrime(10)?setTimeout(i,0):setTimeout(r,0)})})};setTimeout(r,0)};setTimeout(u,0)},t.prototype.sign=function(t,e,i){var r=function(t,e){if(e<t.length+22)return console.error("Message too long for RSA"),null;for(var i=e-t.length-6,r="",n=0;n<i;n+=2)r+="ff";return q("0001"+r+"00"+t,16)}((W[i]||"")+e(t).toString(),this.n.bitLength()/4);if(null==r)return null;var n=this.doPrivate(r);if(null==n)return null;var s=n.toString(16);return 0==(1&s.length)?s:"0"+s},t.prototype.verify=function(t,e,i){var r=q(e,16),n=this.doPublic(r);return null==n?null:function(t){for(var e in W)if(W.hasOwnProperty(e)){var i=W[e],r=i.length;if(t.substr(0,r)==i)return t.substr(r)}return t}(n.toString(16).replace(/^1f+00/,""))==i(t).toString()},t}();var W={md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",ripemd160:"3021300906052b2403020105000414"};var tt={};tt.lang={extend:function(t,e,i){if(!e||!t)throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");var r=function(){};if(r.prototype=e.prototype,t.prototype=new r,(t.prototype.constructor=t).superclass=e.prototype,e.prototype.constructor==Object.prototype.constructor&&(e.prototype.constructor=e),i){var n;for(n in i)t.prototype[n]=i[n];var s=function(){},o=["toString","valueOf"];try{/MSIE/.test(navigator.userAgent)&&(s=function(t,e){for(n=0;n<o.length;n+=1){var i=o[n],r=e[i];"function"==typeof r&&r!=Object.prototype[i]&&(t[i]=r)}})}catch(t){}s(t.prototype,i)}}};var et={};void 0!==et.asn1&&et.asn1||(et.asn1={}),et.asn1.ASN1Util=new function(){this.integerToByteHex=function(t){var e=t.toString(16);return e.length%2==1&&(e="0"+e),e},this.bigIntToMinTwosComplementsHex=function(t){var e=t.toString(16);if("-"!=e.substr(0,1))e.length%2==1?e="0"+e:e.match(/^[0-7]/)||(e="00"+e);else{var i=e.substr(1).length;i%2==1?i+=1:e.match(/^[0-7]/)||(i+=2);for(var r="",n=0;n<i;n++)r+="f";e=new O(r,16).xor(t).add(O.ONE).toString(16).replace(/^-/,"")}return e},this.getPEMStringFromHex=function(t,e){return hextopem(t,e)},this.newObject=function(t){var e=et.asn1,i=e.DERBoolean,r=e.DERInteger,n=e.DERBitString,s=e.DEROctetString,o=e.DERNull,h=e.DERObjectIdentifier,a=e.DEREnumerated,u=e.DERUTF8String,c=e.DERNumericString,f=e.DERPrintableString,l=e.DERTeletexString,p=e.DERIA5String,g=e.DERUTCTime,d=e.DERGeneralizedTime,v=e.DERSequence,m=e.DERSet,y=e.DERTaggedObject,b=e.ASN1Util.newObject,T=Object.keys(t);if(1!=T.length)throw"key of param shall be only one.";var S=T[0];if(-1==":bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:".indexOf(":"+S+":"))throw"undefined key: "+S;if("bool"==S)return new i(t[S]);if("int"==S)return new r(t[S]);if("bitstr"==S)return new n(t[S]);if("octstr"==S)return new s(t[S]);if("null"==S)return new o(t[S]);if("oid"==S)return new h(t[S]);if("enum"==S)return new a(t[S]);if("utf8str"==S)return new u(t[S]);if("numstr"==S)return new c(t[S]);if("prnstr"==S)return new f(t[S]);if("telstr"==S)return new l(t[S]);if("ia5str"==S)return new p(t[S]);if("utctime"==S)return new g(t[S]);if("gentime"==S)return new d(t[S]);if("seq"==S){for(var E=t[S],w=[],D=0;D<E.length;D++){var x=b(E[D]);w.push(x)}return new v({array:w})}if("set"==S){for(E=t[S],w=[],D=0;D<E.length;D++){x=b(E[D]);w.push(x)}return new m({array:w})}if("tag"==S){var R=t[S];if("[object Array]"===Object.prototype.toString.call(R)&&3==R.length){var B=b(R[2]);return new y({tag:R[0],explicit:R[1],obj:B})}var A={};if(void 0!==R.explicit&&(A.explicit=R.explicit),void 0!==R.tag&&(A.tag=R.tag),void 0===R.obj)throw"obj shall be specified for 'tag'.";return A.obj=b(R.obj),new y(A)}},this.jsonToASN1HEX=function(t){return this.newObject(t).getEncodedHex()}},et.asn1.ASN1Util.oidHexToInt=function(t){for(var e="",i=parseInt(t.substr(0,2),16),r=(e=Math.floor(i/40)+"."+i%40,""),n=2;n<t.length;n+=2){var s=("00000000"+parseInt(t.substr(n,2),16).toString(2)).slice(-8);if(r+=s.substr(1,7),"0"==s.substr(0,1))e=e+"."+new O(r,2).toString(10),r=""}return e},et.asn1.ASN1Util.oidIntToHex=function(t){var h=function(t){var e=t.toString(16);return 1==e.length&&(e="0"+e),e},e=function(t){var e="",i=new O(t,10).toString(2),r=7-i.length%7;7==r&&(r=0);for(var n="",s=0;s<r;s++)n+="0";i=n+i;for(s=0;s<i.length-1;s+=7){var o=i.substr(s,7);s!=i.length-7&&(o="1"+o),e+=h(parseInt(o,2))}return e};if(!t.match(/^[0-9.]+$/))throw"malformed oid string: "+t;var i="",r=t.split("."),n=40*parseInt(r[0])+parseInt(r[1]);i+=h(n),r.splice(0,2);for(var s=0;s<r.length;s++)i+=e(r[s]);return i},et.asn1.ASN1Object=function(){this.getLengthHexFromValue=function(){if(void 0===this.hV||null==this.hV)throw"this.hV is null or undefined.";if(this.hV.length%2==1)throw"value hex must be even length: n="+"".length+",v="+this.hV;var t=this.hV.length/2,e=t.toString(16);if(e.length%2==1&&(e="0"+e),t<128)return e;var i=e.length/2;if(15<i)throw"ASN.1 length too long to represent by 8x: n = "+t.toString(16);return(128+i).toString(16)+e},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return""}},et.asn1.DERAbstractString=function(t){et.asn1.DERAbstractString.superclass.constructor.call(this),this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=stohex(this.s)},this.setStringHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&("string"==typeof t?this.setString(t):void 0!==t.str?this.setString(t.str):void 0!==t.hex&&this.setStringHex(t.hex))},tt.lang.extend(et.asn1.DERAbstractString,et.asn1.ASN1Object),et.asn1.DERAbstractTime=function(t){et.asn1.DERAbstractTime.superclass.constructor.call(this),this.localDateToUTC=function(t){return utc=t.getTime()+6e4*t.getTimezoneOffset(),new Date(utc)},this.formatDate=function(t,e,i){var r=this.zeroPadding,n=this.localDateToUTC(t),s=String(n.getFullYear());"utc"==e&&(s=s.substr(2,2));var o=s+r(String(n.getMonth()+1),2)+r(String(n.getDate()),2)+r(String(n.getHours()),2)+r(String(n.getMinutes()),2)+r(String(n.getSeconds()),2);if(!0===i){var h=n.getMilliseconds();if(0!=h){var a=r(String(h),3);o=o+"."+(a=a.replace(/[0]+$/,""))}}return o+"Z"},this.zeroPadding=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join("0")+t},this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=stohex(t)},this.setByDateValue=function(t,e,i,r,n,s){var o=new Date(Date.UTC(t,e-1,i,r,n,s,0));this.setByDate(o)},this.getFreshValueHex=function(){return this.hV}},tt.lang.extend(et.asn1.DERAbstractTime,et.asn1.ASN1Object),et.asn1.DERAbstractStructured=function(t){et.asn1.DERAbstractString.superclass.constructor.call(this),this.setByASN1ObjectArray=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array=t},this.appendASN1Object=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array.push(t)},this.asn1Array=new Array,void 0!==t&&void 0!==t.array&&(this.asn1Array=t.array)},tt.lang.extend(et.asn1.DERAbstractStructured,et.asn1.ASN1Object),et.asn1.DERBoolean=function(){et.asn1.DERBoolean.superclass.constructor.call(this),this.hT="01",this.hTLV="0101ff"},tt.lang.extend(et.asn1.DERBoolean,et.asn1.ASN1Object),et.asn1.DERInteger=function(t){et.asn1.DERInteger.superclass.constructor.call(this),this.hT="02",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=et.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new O(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.bigint?this.setByBigInteger(t.bigint):void 0!==t.int?this.setByInteger(t.int):"number"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},tt.lang.extend(et.asn1.DERInteger,et.asn1.ASN1Object),et.asn1.DERBitString=function(t){if(void 0!==t&&void 0!==t.obj){var e=et.asn1.ASN1Util.newObject(t.obj);t.hex="00"+e.getEncodedHex()}et.asn1.DERBitString.superclass.constructor.call(this),this.hT="03",this.setHexValueIncludingUnusedBits=function(t){this.hTLV=null,this.isModified=!0,this.hV=t},this.setUnusedBitsAndHexValue=function(t,e){if(t<0||7<t)throw"unused bits shall be from 0 to 7: u = "+t;var i="0"+t;this.hTLV=null,this.isModified=!0,this.hV=i+e},this.setByBinaryString=function(t){var e=8-(t=t.replace(/0+$/,"")).length%8;8==e&&(e=0);for(var i=0;i<=e;i++)t+="0";var r="";for(i=0;i<t.length-1;i+=8){var n=t.substr(i,8),s=parseInt(n,2).toString(16);1==s.length&&(s="0"+s),r+=s}this.hTLV=null,this.isModified=!0,this.hV="0"+e+r},this.setByBooleanArray=function(t){for(var e="",i=0;i<t.length;i++)1==t[i]?e+="1":e+="0";this.setByBinaryString(e)},this.newFalseArray=function(t){for(var e=new Array(t),i=0;i<t;i++)e[i]=!1;return e},this.getFreshValueHex=function(){return this.hV},void 0!==t&&("string"==typeof t&&t.toLowerCase().match(/^[0-9a-f]+$/)?this.setHexValueIncludingUnusedBits(t):void 0!==t.hex?this.setHexValueIncludingUnusedBits(t.hex):void 0!==t.bin?this.setByBinaryString(t.bin):void 0!==t.array&&this.setByBooleanArray(t.array))},tt.lang.extend(et.asn1.DERBitString,et.asn1.ASN1Object),et.asn1.DEROctetString=function(t){if(void 0!==t&&void 0!==t.obj){var e=et.asn1.ASN1Util.newObject(t.obj);t.hex=e.getEncodedHex()}et.asn1.DEROctetString.superclass.constructor.call(this,t),this.hT="04"},tt.lang.extend(et.asn1.DEROctetString,et.asn1.DERAbstractString),et.asn1.DERNull=function(){et.asn1.DERNull.superclass.constructor.call(this),this.hT="05",this.hTLV="0500"},tt.lang.extend(et.asn1.DERNull,et.asn1.ASN1Object),et.asn1.DERObjectIdentifier=function(t){var h=function(t){var e=t.toString(16);return 1==e.length&&(e="0"+e),e},s=function(t){var e="",i=new O(t,10).toString(2),r=7-i.length%7;7==r&&(r=0);for(var n="",s=0;s<r;s++)n+="0";i=n+i;for(s=0;s<i.length-1;s+=7){var o=i.substr(s,7);s!=i.length-7&&(o="1"+o),e+=h(parseInt(o,2))}return e};et.asn1.DERObjectIdentifier.superclass.constructor.call(this),this.hT="06",this.setValueHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.setValueOidString=function(t){if(!t.match(/^[0-9.]+$/))throw"malformed oid string: "+t;var e="",i=t.split("."),r=40*parseInt(i[0])+parseInt(i[1]);e+=h(r),i.splice(0,2);for(var n=0;n<i.length;n++)e+=s(i[n]);this.hTLV=null,this.isModified=!0,this.s=null,this.hV=e},this.setValueName=function(t){var e=et.asn1.x509.OID.name2oid(t);if(""===e)throw"DERObjectIdentifier oidName undefined: "+t;this.setValueOidString(e)},this.getFreshValueHex=function(){return this.hV},void 0!==t&&("string"==typeof t?t.match(/^[0-2].[0-9.]+$/)?this.setValueOidString(t):this.setValueName(t):void 0!==t.oid?this.setValueOidString(t.oid):void 0!==t.hex?this.setValueHex(t.hex):void 0!==t.name&&this.setValueName(t.name))},tt.lang.extend(et.asn1.DERObjectIdentifier,et.asn1.ASN1Object),et.asn1.DEREnumerated=function(t){et.asn1.DEREnumerated.superclass.constructor.call(this),this.hT="0a",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=et.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new O(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.int?this.setByInteger(t.int):"number"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},tt.lang.extend(et.asn1.DEREnumerated,et.asn1.ASN1Object),et.asn1.DERUTF8String=function(t){et.asn1.DERUTF8String.superclass.constructor.call(this,t),this.hT="0c"},tt.lang.extend(et.asn1.DERUTF8String,et.asn1.DERAbstractString),et.asn1.DERNumericString=function(t){et.asn1.DERNumericString.superclass.constructor.call(this,t),this.hT="12"},tt.lang.extend(et.asn1.DERNumericString,et.asn1.DERAbstractString),et.asn1.DERPrintableString=function(t){et.asn1.DERPrintableString.superclass.constructor.call(this,t),this.hT="13"},tt.lang.extend(et.asn1.DERPrintableString,et.asn1.DERAbstractString),et.asn1.DERTeletexString=function(t){et.asn1.DERTeletexString.superclass.constructor.call(this,t),this.hT="14"},tt.lang.extend(et.asn1.DERTeletexString,et.asn1.DERAbstractString),et.asn1.DERIA5String=function(t){et.asn1.DERIA5String.superclass.constructor.call(this,t),this.hT="16"},tt.lang.extend(et.asn1.DERIA5String,et.asn1.DERAbstractString),et.asn1.DERUTCTime=function(t){et.asn1.DERUTCTime.superclass.constructor.call(this,t),this.hT="17",this.setByDate=function(t){this.hTLV=null,this.isModified=!0,this.date=t,this.s=this.formatDate(this.date,"utc"),this.hV=stohex(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,"utc"),this.hV=stohex(this.s)),this.hV},void 0!==t&&(void 0!==t.str?this.setString(t.str):"string"==typeof t&&t.match(/^[0-9]{12}Z$/)?this.setString(t):void 0!==t.hex?this.setStringHex(t.hex):void 0!==t.date&&this.setByDate(t.date))},tt.lang.extend(et.asn1.DERUTCTime,et.asn1.DERAbstractTime),et.asn1.DERGeneralizedTime=function(t){et.asn1.DERGeneralizedTime.superclass.constructor.call(this,t),this.hT="18",this.withMillis=!1,this.setByDate=function(t){this.hTLV=null,this.isModified=!0,this.date=t,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=stohex(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=stohex(this.s)),this.hV},void 0!==t&&(void 0!==t.str?this.setString(t.str):"string"==typeof t&&t.match(/^[0-9]{14}Z$/)?this.setString(t):void 0!==t.hex?this.setStringHex(t.hex):void 0!==t.date&&this.setByDate(t.date),!0===t.millis&&(this.withMillis=!0))},tt.lang.extend(et.asn1.DERGeneralizedTime,et.asn1.DERAbstractTime),et.asn1.DERSequence=function(t){et.asn1.DERSequence.superclass.constructor.call(this,t),this.hT="30",this.getFreshValueHex=function(){for(var t="",e=0;e<this.asn1Array.length;e++){t+=this.asn1Array[e].getEncodedHex()}return this.hV=t,this.hV}},tt.lang.extend(et.asn1.DERSequence,et.asn1.DERAbstractStructured),et.asn1.DERSet=function(t){et.asn1.DERSet.superclass.constructor.call(this,t),this.hT="31",this.sortFlag=!0,this.getFreshValueHex=function(){for(var t=new Array,e=0;e<this.asn1Array.length;e++){var i=this.asn1Array[e];t.push(i.getEncodedHex())}return 1==this.sortFlag&&t.sort(),this.hV=t.join(""),this.hV},void 0!==t&&void 0!==t.sortflag&&0==t.sortflag&&(this.sortFlag=!1)},tt.lang.extend(et.asn1.DERSet,et.asn1.DERAbstractStructured),et.asn1.DERTaggedObject=function(t){et.asn1.DERTaggedObject.superclass.constructor.call(this),this.hT="a0",this.hV="",this.isExplicit=!0,this.asn1Object=null,this.setASN1Object=function(t,e,i){this.hT=e,this.isExplicit=t,this.asn1Object=i,this.isExplicit?(this.hV=this.asn1Object.getEncodedHex(),this.hTLV=null,this.isModified=!0):(this.hV=null,this.hTLV=i.getEncodedHex(),this.hTLV=this.hTLV.replace(/^../,e),this.isModified=!1)},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.tag&&(this.hT=t.tag),void 0!==t.explicit&&(this.isExplicit=t.explicit),void 0!==t.obj&&(this.asn1Object=t.obj,this.setASN1Object(this.isExplicit,this.hT,this.asn1Object)))},tt.lang.extend(et.asn1.DERTaggedObject,et.asn1.ASN1Object);var it=function(i){function r(t){var e=i.call(this)||this;return t&&("string"==typeof t?e.parseKey(t):(r.hasPrivateKeyProperty(t)||r.hasPublicKeyProperty(t))&&e.parsePropertiesFrom(t)),e}return function(t,e){function i(){this.constructor=t}p(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}(r,i),r.prototype.parseKey=function(t){try{var e=0,i=0,r=/^\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\s*)+$/.test(t)?d(t):v.unarmor(t),n=x.decode(r);if(3===n.sub.length&&(n=n.sub[2].sub[0]),9===n.sub.length){e=n.sub[1].getHexStringValue(),this.n=q(e,16),i=n.sub[2].getHexStringValue(),this.e=parseInt(i,16);var s=n.sub[3].getHexStringValue();this.d=q(s,16);var o=n.sub[4].getHexStringValue();this.p=q(o,16);var h=n.sub[5].getHexStringValue();this.q=q(h,16);var a=n.sub[6].getHexStringValue();this.dmp1=q(a,16);var u=n.sub[7].getHexStringValue();this.dmq1=q(u,16);var c=n.sub[8].getHexStringValue();this.coeff=q(c,16)}else{if(2!==n.sub.length)return!1;var f=n.sub[1].sub[0];e=f.sub[0].getHexStringValue(),this.n=q(e,16),i=f.sub[1].getHexStringValue(),this.e=parseInt(i,16)}return!0}catch(t){return!1}},r.prototype.getPrivateBaseKey=function(){var t={array:[new et.asn1.DERInteger({int:0}),new et.asn1.DERInteger({bigint:this.n}),new et.asn1.DERInteger({int:this.e}),new et.asn1.DERInteger({bigint:this.d}),new et.asn1.DERInteger({bigint:this.p}),new et.asn1.DERInteger({bigint:this.q}),new et.asn1.DERInteger({bigint:this.dmp1}),new et.asn1.DERInteger({bigint:this.dmq1}),new et.asn1.DERInteger({bigint:this.coeff})]};return new et.asn1.DERSequence(t).getEncodedHex()},r.prototype.getPrivateBaseKeyB64=function(){return c(this.getPrivateBaseKey())},r.prototype.getPublicBaseKey=function(){var t=new et.asn1.DERSequence({array:[new et.asn1.DERObjectIdentifier({oid:"1.2.840.113549.1.1.1"}),new et.asn1.DERNull]}),e=new et.asn1.DERSequence({array:[new et.asn1.DERInteger({bigint:this.n}),new et.asn1.DERInteger({int:this.e})]}),i=new et.asn1.DERBitString({hex:"00"+e.getEncodedHex()});return new et.asn1.DERSequence({array:[t,i]}).getEncodedHex()},r.prototype.getPublicBaseKeyB64=function(){return c(this.getPublicBaseKey())},r.wordwrap=function(t,e){if(!t)return t;var i="(.{1,"+(e=e||64)+"})( +|$\n?)|(.{1,"+e+"})";return t.match(RegExp(i,"g")).join("\n")},r.prototype.getPrivateKey=function(){var t="-----BEGIN RSA PRIVATE KEY-----\n";return t+=r.wordwrap(this.getPrivateBaseKeyB64())+"\n",t+="-----END RSA PRIVATE KEY-----"},r.prototype.getPublicKey=function(){var t="-----BEGIN PUBLIC KEY-----\n";return t+=r.wordwrap(this.getPublicBaseKeyB64())+"\n",t+="-----END PUBLIC KEY-----"},r.hasPublicKeyProperty=function(t){return(t=t||{}).hasOwnProperty("n")&&t.hasOwnProperty("e")},r.hasPrivateKeyProperty=function(t){return(t=t||{}).hasOwnProperty("n")&&t.hasOwnProperty("e")&&t.hasOwnProperty("d")&&t.hasOwnProperty("p")&&t.hasOwnProperty("q")&&t.hasOwnProperty("dmp1")&&t.hasOwnProperty("dmq1")&&t.hasOwnProperty("coeff")},r.prototype.parsePropertiesFrom=function(t){this.n=t.n,this.e=t.e,t.hasOwnProperty("d")&&(this.d=t.d,this.p=t.p,this.q=t.q,this.dmp1=t.dmp1,this.dmq1=t.dmq1,this.coeff=t.coeff)},r}(Q),rt=function(){function t(t){t=t||{},this.default_key_size=parseInt(t.default_key_size,10)||1024,this.default_public_exponent=t.default_public_exponent||"010001",this.log=t.log||!1,this.key=null}return t.prototype.setKey=function(t){this.log&&this.key&&console.warn("A key was already set, overriding existing."),this.key=new it(t)},t.prototype.setPrivateKey=function(t){this.setKey(t)},t.prototype.setPublicKey=function(t){this.setKey(t)},t.prototype.decrypt=function(t){try{return this.getKey().decrypt(f(t))}catch(t){return!1}},t.prototype.encrypt=function(t){try{return c(this.getKey().encrypt(t))}catch(t){return!1}},t.prototype.sign=function(t,e,i){try{return c(this.getKey().sign(t,e,i))}catch(t){return!1}},t.prototype.verify=function(t,e,i){try{return this.getKey().verify(t,f(e),i)}catch(t){return!1}},t.prototype.getKey=function(t){if(!this.key){if(this.key=new it,t&&"[object Function]"==={}.toString.call(t))return void this.key.generateAsync(this.default_key_size,this.default_public_exponent,t);this.key.generate(this.default_key_size,this.default_public_exponent)}return this.key},t.prototype.getPrivateKey=function(){return this.getKey().getPrivateKey()},t.prototype.getPrivateKeyB64=function(){return this.getKey().getPrivateBaseKeyB64()},t.prototype.getPublicKey=function(){return this.getKey().getPublicKey()},t.prototype.getPublicKeyB64=function(){return this.getKey().getPublicBaseKeyB64()},t.version="3.0.0-rc.1",t}();
//#endregion BIT_OPERATIONS
var b64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var b64pad = "=";
function hex2b64(h) {
var i;
var c;
var ret = "";
for (i = 0; i + 3 <= h.length; i += 3) {
c = parseInt(h.substring(i, i + 3), 16);
ret += b64map.charAt(c >> 6) + b64map.charAt(c & 63);
}
if (i + 1 == h.length) {
c = parseInt(h.substring(i, i + 1), 16);
ret += b64map.charAt(c << 2);
}
else if (i + 2 == h.length) {
c = parseInt(h.substring(i, i + 2), 16);
ret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4);
}
while ((ret.length & 3) > 0) {
ret += b64pad;
}
return ret;
}
rt.prototype.encryptLong = function(string) {
var k = this.getKey();
try {
var lt = "";
var ct = "";
//RSA每次加密117bytes,需要辅助方法判断字符串截取位置
//1.获取字符串截取点
var bytes = new Array();
bytes.push(0);
var byteNo = 0;
var len,c;
len = string.length;
var temp = 0;
for(var i = 0; i < len; i++){
c = string.charCodeAt(i);
if(c >= 0x010000 && c <= 0x10FFFF){
byteNo += 4;
}else if(c >= 0x000800 && c <= 0x00FFFF){
byteNo += 3;
}else if(c >= 0x000080 && c <= 0x0007FF){
byteNo += 2;
}else{
byteNo += 1;
}
if((byteNo % 117) >= 114 || (byteNo % 117) == 0){
if(byteNo-temp >= 114){
bytes.push(i);
temp = byteNo;
}
}
}
//2.截取字符串并分段加密
if(bytes.length > 1){
for(var i=0;i< bytes.length-1; i++){
var str;
if(i == 0){
str = string.substring(0,bytes[i+1]+1);
}else{
str = string.substring(bytes[i]+1,bytes[i+1]+1);
}
var t1 = k.encrypt(str);
ct += t1;
};
if(bytes[bytes.length-1] != string.length-1){
var lastStr = string.substring(bytes[bytes.length-1]+1);
ct += k.encrypt(lastStr);
}
return hex2b64(ct);
}
var t = k.encrypt(string);
var y = hex2b64(t);
return y;
} catch (ex) {
console.log('encryptLong.ex',ex)
return false;
}
};
module.exports = new rt;
\ No newline at end of file
... ...
... ... @@ -7,8 +7,8 @@ let tpls=[
hasImage:false,
timeStr:'YYYY/MM/DD 星期WW HH:II',
timeStrSmart:['YYYY/MM/DD 星期WW','HH:II'],
shareFirstImage:'http://qn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911151148572.jpg',
shareImage:'http://qn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911151148573.jpg',
shareFirstImage:'http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911151148572.jpg',
shareImage:'http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911151148573.jpg',
shareFirstTitle:'用餐已为您安排,点击查看详情',
shareTitle:'您收到一个用餐邀请,点击快速导航',
},
... ... @@ -19,8 +19,8 @@ let tpls=[
hasImage:true,
timeStr:'YYYY年MM月DD日HH时II分',
timeStrSmart:['YYYY年MM月DD日','HH时II分'],
shareFirstImage:'http://qn.colorcun.com/manager-invitation/wx3/wx1.jpg',
shareImage:'http://qn.colorcun.com/manager-invitation/wx3/wx2.jpg',
shareFirstImage:'http://nosqn.colorcun.com/manager-invitation/wx3/wx1.jpg',
shareImage:'http://nosqn.colorcun.com/manager-invitation/wx3/wx2.jpg',
shareFirstTitle:'用餐已为您安排,点击查看详情',
shareTitle:'您收到一个用餐邀请,点击快速导航',
},
... ...
... ... @@ -61,6 +61,14 @@ module.exports = {
enspace={morning: 1, noon: 2, night: 3}[enspace]
return names[enspace]||names[4]
},
reserveTidName:function(enspace){
var names=['','散座','包间','卡座'];
return names[(enspace*1)]||''
},
reserveSexName:function(enspace){
var names=['','先生','女士',''];
return names[(enspace*1)]||''
},
getRoomName:function(rooms=[]){
if(rooms.length<1) return ""
var name=rooms[0].name
... ... @@ -88,4 +96,7 @@ module.exports = {
}
return '';
},
toFixed:function(num,limit){
return parseFloat(num).toFixed(limit)
},
};
\ No newline at end of file
... ...