@@ -0,0 +1,120 @@ | |||
{ | |||
"http.proxy": "", | |||
"http.proxySupport": "override", | |||
"proxyType": "system", | |||
"setProxy": "", | |||
"systemProxyUrl": "", | |||
"workbench.colorTheme": "Sublime VSCode Theme", | |||
"workbench.colorThemeType": "dark", | |||
"typescript.tsdk": "E:\\TikTok DevTool\\@bytedminiprogram-ide\\resources\\app\\app.content\\dist\\assets\\business\\typescript\\lib", | |||
"files.associations": { | |||
"*.ttss": "css", | |||
"*.wxss": "css", | |||
"*.sjs": "javascript", | |||
"*.ttml": "ttml", | |||
"*.wxml": "ttml", | |||
"*.sk": "ttml" | |||
}, | |||
"files.exclude": { | |||
"**/.git": true, | |||
"**/.svn": true, | |||
"**/.hg": true, | |||
"**/CVS": true, | |||
"**/.DS_Store": true, | |||
"**/Thumbs.db": true, | |||
"**/.byte-ide": true | |||
}, | |||
"emmet.includeLanguages": { | |||
"sjs": "javascript" | |||
}, | |||
"security.workspace.trust.untrustedFiles": "open", | |||
"[jsonc]": { | |||
"editor.defaultFormatter": "HookyQR.beautify" | |||
}, | |||
"explorer.confirmDelete": false, | |||
"less.compile": { | |||
"compress": false, | |||
"out": true, | |||
"outExt": ".ttss" | |||
}, | |||
"[javascript]": { | |||
"editor.defaultFormatter": "HookyQR.beautify" | |||
}, | |||
"[json]": { | |||
"editor.defaultFormatter": "HookyQR.beautify" | |||
}, | |||
"editor.tokenColorCustomizations": { | |||
"keywords": { | |||
"foreground": "#FF0000", | |||
"fontStyle": "italic bold" | |||
}, | |||
"variables": { | |||
"foreground": "#ffffff", | |||
"fontStyle": "italic bold", | |||
}, | |||
//字符串 | |||
"strings": { | |||
"foreground": "#fbff00", | |||
"fontStyle": "italic" | |||
}, | |||
//函数 | |||
"functions": "#00ffff", | |||
//注释 | |||
"comments": "#969696", | |||
"types": "#00ff95" | |||
}, | |||
"editor.formatOnSave": true, | |||
"editor.wordWrap": "on", | |||
// 开启原生括号着色 | |||
"editor.bracketPairColorization.enabled": true, | |||
// 开启代码块边缘导轨线着色 | |||
"editor.guides.bracketPairs": "active", | |||
//覆盖当前所选颜色主题的颜色 | |||
"workbench.colorCustomizations": { | |||
//光标颜色 | |||
"editorCursor.foreground": "#00ff00", | |||
//编辑器背景色 | |||
"editor.background": "#00000025", | |||
//光标所在行边框颜色 | |||
//光标所在行背景颜色 | |||
"editor.lineHighlightBorder": "#ffffffa1", | |||
"editor.lineHighlightBackground": "#ffffff1e", | |||
//光标选中文本的背景颜色 | |||
//光标选中文本时匹配同类型的值的背景颜色 | |||
"editor.selectionBackground": "#ff0000c2", | |||
"editor.selectionHighlightBackground": "#00ffff80", | |||
//缩进参考线的颜色 | |||
"editorIndentGuide.activeBackground": "#f92672", | |||
//方括号出现意外的前景色 | |||
"editorBracketHighlight.unexpectedBracket.foreground": "#ff0000", | |||
//括号的前景色,需要启用括号对着色 | |||
"editorBracketHighlight.foreground1": "#ffff00", | |||
"editorBracketPairGuide.activeBackground1": "#ffff00", | |||
"editorBracketHighlight.foreground2": "#f92672", | |||
"editorBracketPairGuide.activeBackground2": "#f92672", | |||
"editorBracketHighlight.foreground3": "#00ffff", | |||
"editorBracketPairGuide.activeBackground3": "#00ffff", | |||
"editorBracketHighlight.foreground4": "#00ff00", | |||
"editorBracketPairGuide.activeBackground4": "#00ff00", | |||
"workbench.colorTheme": "Sublime VSCode Theme", | |||
"[Sublime VSCode Theme]": { | |||
"activityBar.activeBackground": "#ffffff1e", | |||
"activityBar.background": "#292b27", | |||
"activityBar.foreground": "#ffffff", | |||
"activityBar.activeBorder": "#ff0000", | |||
"activityBar.activeFocusBorder": "#ff0000", | |||
"breadcrumb.foreground": "#ffffff", | |||
"breadcrumb.background": "#1a1b18", | |||
"sideBar.background": "#1e1f1c", | |||
"sideBarSectionHeader.background": "#343532", | |||
"sideBarSectionHeader.foreground": "#fff", | |||
"sideBar.border": "#777777", | |||
"sideBar.foreground": "#fff", | |||
"list.hoverBackground": "#8a8a8a", | |||
"list.inactiveSelectionBackground": "#75715e", | |||
"editor.selectionBackground": "#ff0000", | |||
"editorGroupHeader.tabsBackground": "#141415" | |||
}, | |||
}, | |||
"editor.cursorBlinking": "smooth", | |||
} |
@@ -20,3 +20,7 @@ App({ | |||
}, | |||
statusBarHeight: 0, | |||
}) | |||
// 测试账号信息 | |||
// 18872592635 | |||
// 123456GD |
@@ -21,7 +21,9 @@ | |||
"pages/exchange/index", | |||
"pages/creditOperate/index", | |||
"pages/goHtml/goHtml", | |||
"pages/orderUrl/orderUrl" | |||
"pages/orderUrl/orderUrl", | |||
"pages/Appointment/appointment", | |||
"pages/appointDetail/appointDetail" | |||
], | |||
"window": { | |||
"backgroundTextStyle": "light", | |||
@@ -31,8 +33,7 @@ | |||
"color": "#9F9F9F", | |||
"selectedColor": "#52a0fd", | |||
"backgroundColor": "#fff", | |||
"list": [ | |||
{ | |||
"list": [{ | |||
"pagePath": "pages/main/main", | |||
"text": "首页", | |||
"iconPath": "assets/images/home-n.png", | |||
@@ -105,7 +105,7 @@ const func = { | |||
/** | |||
* 优惠券详情 | |||
*/ | |||
getCouponOrderDetail: function (couponOrderId) { | |||
getCouponOrderDetail: function (couponOrderId, couponTenantId) { | |||
return new Promise((resolve, reject) => { | |||
tt.request({ | |||
url: config.api.couponOrderDetail, | |||
@@ -115,7 +115,8 @@ const func = { | |||
}, | |||
method: "get", | |||
data: { | |||
couponOrderId: couponOrderId | |||
couponOrderId: couponOrderId, | |||
couponTenantId: couponTenantId | |||
}, | |||
success: function (res) { | |||
resolve(res.data) | |||
@@ -245,7 +246,7 @@ const func = { | |||
/** | |||
* 券核销 | |||
*/ | |||
couponOrderVerify: function (couponOrderId, verifyRemark) { | |||
couponOrderVerify: function (couponOrderId, couponTenantId, verifyRemark) { | |||
return new Promise((resolve, reject) => { | |||
tt.request({ | |||
url: config.api.couponOrderVerify, | |||
@@ -255,7 +256,8 @@ const func = { | |||
}, | |||
data: { | |||
couponOrderId: couponOrderId, | |||
verifyRemark: verifyRemark, | |||
couponTenantId: couponTenantId, | |||
verifyRemark: verifyRemark | |||
}, | |||
method: "POST", | |||
success: function (res) { | |||
@@ -274,7 +276,7 @@ const func = { | |||
* | |||
* @param {*换取openId} code | |||
*/ | |||
getOpenId: function (code,bUserId) { | |||
getOpenId: function (code, bUserId) { | |||
return new Promise((resolve, reject) => { | |||
tt.request({ | |||
url: config.api.getOpenId, | |||
@@ -285,7 +287,7 @@ const func = { | |||
data: { | |||
appId: config.weapp.appId, | |||
code: code, | |||
bUserId:bUserId | |||
bUserId: bUserId | |||
}, | |||
method: "POST", | |||
success: function (res) { | |||
@@ -325,8 +327,8 @@ const func = { | |||
}) | |||
}, | |||
/** | |||
* 获得手机号 | |||
*/ | |||
* 获得手机号 | |||
*/ | |||
getUserPhone: function (encryptedData, iv, superopenId, session_key) { | |||
return new Promise((resolve, reject) => { | |||
tt.request({ | |||
@@ -5,14 +5,14 @@ let url = extConfig.attr.configUrl; | |||
var apiPrefix = url + '/B'; | |||
let config = { | |||
apiPrefix:apiPrefix, | |||
apiPrefix: apiPrefix, | |||
api: { | |||
// 获取进件 页面地址 | |||
findTt: "/api/merchant/getTtReceiverUrl", | |||
/** | |||
* 接口用途:login | |||
*/ | |||
* 接口用途:login | |||
*/ | |||
login: '/api/user/login', | |||
/** | |||
* B端用户详情 | |||
@@ -118,13 +118,33 @@ let config = { | |||
*/ | |||
getMicroPayAmountOnDate: '/api/micropay/getMicroPayAmountOnDate', | |||
/** | |||
* 首页账单列表 | |||
*/ | |||
* 首页账单列表 | |||
*/ | |||
listBillOweAndWaitPay: "/api/bill/listBillOweAndWaitPay", | |||
/** | |||
* 账单 | |||
*/ | |||
listBill: "/api/bill/listBill", | |||
/** | |||
* 预约列表 | |||
*/ | |||
appointmentList: "/api/wxCouponOrderReservation/list", | |||
/** | |||
* 预约详情 | |||
*/ | |||
appointDetail: "/api/wxCouponOrderReservation/detail", | |||
/** | |||
* 核销 | |||
*/ | |||
verify: "/api/wxCouponOrderReservation/verify", | |||
/** | |||
* 预约确认 | |||
*/ | |||
appointConfirm: "/api/wxCouponOrderReservation/updateStatus", | |||
/** | |||
* 预约确认 | |||
*/ | |||
appointSetDate: "/api/wxCouponOrderReservation/update", | |||
/** | |||
* 获得openId | |||
*/ | |||
@@ -210,8 +230,8 @@ let config = { | |||
*/ | |||
getCreditList: "/api/credit/list", | |||
/** | |||
* 查询账户信息 | |||
*/ | |||
* 查询账户信息 | |||
*/ | |||
findAccountById: "/api/merchant/findAccountById", | |||
/** | |||
* 更新收款账户信息 | |||
@@ -306,12 +326,12 @@ let config = { | |||
*/ | |||
addbatch: "/api/wxCouponChannel/addbatch", | |||
/** | |||
* B端发卷-下架 | |||
*/ | |||
* B端发卷-下架 | |||
*/ | |||
soldOut: "/api/wxCouponChannel/update", | |||
/** | |||
* B端发卷-作废 | |||
*/ | |||
* B端发卷-作废 | |||
*/ | |||
cancellation: "/api/coupon/update", | |||
/** | |||
* B端发卷-查询审批历史记录 | |||
@@ -332,7 +352,7 @@ let config = { | |||
/** | |||
* 导出订单记录 | |||
*/ | |||
exportUrl: "/api/couponOrder/getVerifiedExportUrl", | |||
exportUrl: "/api/couponOrder/getVerifiedExportUrl", | |||
}, | |||
weapp: { | |||
@@ -345,6 +365,6 @@ let config = { | |||
for (var key in config.api) { | |||
config.api[key] = apiPrefix + config.api[key]; | |||
} | |||
console.log(config,"config"); | |||
console.log(config, "config"); | |||
module.exports = config; |
@@ -1,38 +1,35 @@ | |||
{ | |||
"ext": { | |||
"attr": { | |||
"configUrl": "https://b.malls.iformall.com", | |||
"datatowerurl": "https://mobile.malls.iformall.com" | |||
"configUrl": "https://btest.malls.iformall.com", | |||
"datatowerurl": "https://mobiletest.malls.iformall.com" | |||
}, | |||
"name": "富茂券商户端模板", | |||
"weappId": "tt7af40c49e5cd8d5001", | |||
"name": "富茂家政商户端", | |||
"weappId": "tt80b0f60d1f8c7bda01", | |||
"appVersion": "Btest.5.1.0" | |||
}, | |||
"debug": false, | |||
"tabBar": { | |||
"list": [{ | |||
"text": "首页", | |||
"iconPath": "assets/images/home-n.png", | |||
"pagePath": "pages/main/main", | |||
"selectedIconPath": "assets/images/home-y.png" | |||
}, { | |||
"text": "我的", | |||
"iconPath": "assets/images/user-n.png", | |||
"pagePath": "pages/user/user", | |||
"selectedIconPath": "assets/images/user-y.png" | |||
}], | |||
"color": "#9F9F9F", | |||
"selectedColor": "#52a0fd", | |||
"backgroundColor": "#fff", | |||
"list": [ | |||
{ | |||
"pagePath": "pages/main/main", | |||
"text": "首页", | |||
"iconPath": "assets/images/home-n.png", | |||
"selectedIconPath": "assets/images/home-y.png" | |||
}, | |||
{ | |||
"pagePath": "pages/user/user", | |||
"text": "我的", | |||
"iconPath": "assets/images/user-n.png", | |||
"selectedIconPath": "assets/images/user-y.png" | |||
} | |||
] | |||
"backgroundColor": "#fff" | |||
}, | |||
"window": { | |||
"backgroundTextStyle": "light", | |||
"navigationBarBackgroundColor": "#52A0FD" | |||
}, | |||
"extAppid": "tt7af40c49e5cd8d5001", | |||
"extAppid": "tt80b0f60d1f8c7bda01", | |||
"extEnable": true, | |||
"permission": { | |||
"scope.userLocation": { | |||
@@ -0,0 +1,198 @@ | |||
// c:\Users\Holy-Knight-IX\Desktop\Working Space\4.TikTok-MiniPro\ttb\pages\Appointment\appointment\appointment.js | |||
const config = require('../../config/config.js') | |||
const Http = require('../../utils/http.js') | |||
const HttpBasics = require('../../utils/HttpBasics.js') | |||
const util = require('../../utils/util') | |||
var app = getApp() | |||
Page({ | |||
data: { | |||
currentID: "", | |||
pickedTime: "", | |||
startTime: "开始时间", | |||
endTime: "结束时间", | |||
pageNum: 1, | |||
status: 0, | |||
list: [], | |||
Phone: '', | |||
}, | |||
onLoad(options) { | |||
this.getList() | |||
}, | |||
getList(status, startTime, endTime) { | |||
const that = this | |||
const data = { | |||
pageNum: this.data.pageNum, | |||
userPhone: this.data.Phone, | |||
pageSize: 200, | |||
} | |||
if (startTime && endTime) { | |||
data.serchStartDate = startTime | |||
data.serchEndDate = endTime | |||
} | |||
if (status || status === 0) { | |||
data.status = status | |||
} | |||
HttpBasics.get({ | |||
url: config.api.appointmentList, | |||
data | |||
}) | |||
.then(res => { | |||
console.log(res, 'res'); | |||
res.data.list.forEach(item => { | |||
const appointStart = util.timestampToTime(item.startDate, 'YYYY-MM-DD hh:mm:ss') | |||
const appointEnd = util.timestampToTime(item.endDate, 'hh:mm:ss') | |||
if (item.startDate && item.endDate) { | |||
item.appointTime = appointStart + ' - ' + appointEnd | |||
} else { | |||
item.appointTime = "暂无"; | |||
} | |||
}) | |||
that.setData({ | |||
list: res.data.list, | |||
}) | |||
}).catch(err => { | |||
console.log(err, 'err'); | |||
}) | |||
}, | |||
setNav(e) { | |||
const id = e.currentTarget.dataset.id | |||
this.setData({ | |||
currentID: id == this.data.currentID ? '' : id | |||
}) | |||
console.log(this.data.currentID, 'currentID'); | |||
}, | |||
setType(e) { | |||
const type = e.currentTarget.dataset.type | |||
this.setData({ | |||
currentID: '', | |||
}) | |||
if (type === 'X') { | |||
this.getList(false) | |||
} else if (type === 'Y') { | |||
this.getList(0) | |||
} else { | |||
this.getList(type * 1) | |||
} | |||
}, | |||
setStartTime(e) { | |||
console.log(e.detail.value, 'e'); | |||
this.setData({ | |||
startTime: e.detail.value | |||
}) | |||
}, | |||
setEndTime(e) { | |||
console.log(e.detail.value, 'e'); | |||
this.setData({ | |||
endTime: e.detail.value | |||
}) | |||
}, | |||
search() { | |||
if (this.data.startTime == '开始时间' || this.data.endTime == '结束时间') { | |||
return | |||
} | |||
const startTime = this.data.startTime + " 00:00:00" | |||
const endTime = this.data.endTime + " 23:59:59" | |||
this.getList(false, startTime, endTime) | |||
}, | |||
goDetail(e) { | |||
const id = e.currentTarget.dataset.id | |||
tt.navigateTo({ | |||
url: `/pages/appointDetail/appointDetail?id=${id}`, | |||
}); | |||
}, | |||
// 核销 | |||
goVerification(e) { | |||
let _this = this | |||
// console.log(id, shop); | |||
console.log(e); | |||
// const id = BigInt(e.currentTarget.dataset.id) | |||
const id = e.currentTarget.dataset.id | |||
console.log(typeof (id)); | |||
console.log(id); | |||
const shop = e.currentTarget.dataset.shop | |||
const data = { | |||
id | |||
} | |||
tt.showModal({ | |||
title: "提示", | |||
content: `当前正在核销【${shop}】的预约订单,请确认是否核销?`, | |||
showCancel: true, | |||
confirmText: "确认核销", | |||
confirmColor: "#52a0fd", | |||
cancelText: "返回", | |||
success(res) { | |||
if (res.confirm) { | |||
HttpBasics.post({ | |||
url: config.api.verify, | |||
data | |||
}).then(res => { | |||
console.log(res, 'res'); | |||
_this.getList() | |||
tt.showToast({ | |||
image: './../../assets/images/success.png', | |||
title: '核销成功', | |||
}) | |||
}).catch(err => { | |||
console.log(err, 'err'); | |||
tt.showToast({ | |||
image: './../../assets/images/fail.png', | |||
title: '核销失败', | |||
}) | |||
}) | |||
} | |||
if (res.cancel) { | |||
return | |||
} | |||
} | |||
}); | |||
}, | |||
// 解决数字丢失精度 | |||
parseBigNumber(numberStr) { | |||
let result = ''; | |||
let carry = 0; | |||
for (let i = numberStr.length - 1; i >= 0; i--) { | |||
const digit = Number(numberStr[i]); | |||
const sum = digit + carry; | |||
if (sum >= 10) { | |||
result = (sum - 10).toString() + result; | |||
carry = 1; | |||
} else { | |||
result = sum.toString() + result; | |||
carry = 0; | |||
} | |||
} | |||
if (carry === 1) { | |||
result = '1' + result; | |||
} | |||
return result; | |||
}, | |||
handleInput(e) { | |||
// console.log(e.detail.value); | |||
this.data.Phone = e.detail.value | |||
}, | |||
onShow() { | |||
this.getList() | |||
} | |||
}) |
@@ -0,0 +1,8 @@ | |||
{ | |||
"navigationBarTitleText": "预约管理", | |||
"enablePullDownRefresh": true, | |||
"backgroundTextStyle": "dark", | |||
"navigationBarTextStyle": "white", | |||
"navigationBarBackgroundColor": "#52A0FD", | |||
"usingComponents": {} | |||
} |
@@ -0,0 +1,65 @@ | |||
<view> | |||
<view class="input"> | |||
<input type="number" placeholder="手机号查询" bindinput="handleInput" value="{{Phone}}" /> | |||
<button type="default" size="default" bindtap="getList"> | |||
搜索 | |||
</button> | |||
</view> | |||
<view class="nav"> | |||
<view class="{{ currentID == 1 ? 'currentItem' : 'item' }}" bindtap="setNav" data-id="1"> | |||
<text>类型</text> | |||
<image mode="widthFix" src="../../assets/images/arrow.png"></image> | |||
</view> | |||
<view class="{{ currentID == 2 ? 'currentItem' : 'item' }}" bindtap="setNav" data-id="2"> | |||
<text>日期</text> | |||
<image mode="widthFix" src="../../assets/images/arrow.png"> | |||
</image> | |||
</view> | |||
</view> | |||
<view class="{{ currentID == 1 ? 'type active' : 'type' }}"> | |||
<view class="item" bindtap="setType" data-type="X">全部</view> | |||
<view class="item" bindtap="setType" data-type="Y">待确认</view> | |||
<view class="item" bindtap="setType" data-type="-1">未预约</view> | |||
<view class="item" bindtap="setType" data-type="5">已确认</view> | |||
<view class="item" bindtap="setType" data-type="8">已完成</view> | |||
</view> | |||
<view tt:if="{{ currentID == 2 }}" class="pickedTime"> | |||
<picker class="picker" mode="date" bindchange="setStartTime">{{ startTime }}</picker> 至 <picker class="picker" | |||
mode="date" bindchange="setEndTime">{{ endTime }}</picker> | |||
<button class="search" type="primary" bindtap="search">查询</button> | |||
</view> | |||
<view class="{{ currentID != 1 ? 'list active' : 'list' }}"> | |||
<view tt:if="{{ list.length > 0 }}" class="item" tt:for="{{ list }}"> | |||
<view class="head"> | |||
<view>券码:{{ item.couponOrderId }}</view> | |||
<view tt:if="{{ item.status == 0 }}" class="notice noAppoint">待确认</view> | |||
<view tt:if="{{ item.status == 1 }}" class="notice noAppoint">已取消</view> | |||
<view tt:if="{{ item.status == 3 }}" class="notice refund">已退款</view> | |||
<view tt:if="{{ item.status == 5 }}" class="notice confirm">已确认</view> | |||
<view tt:if="{{ item.status == '-1' }}" class="notice confirm">未预约</view> | |||
<view tt:if="{{ item.status == 8 }}" class="notice complete">已完成</view> | |||
<view tt:if="{{ item.status == 9 }}" class="notice complete">已评价</view> | |||
</view> | |||
<view class="body"> | |||
<view class="items">商品名称:{{ item.couponTitle }}</view> | |||
<view class="items">店铺名称:{{ item.reservationMerchantName }}</view> | |||
<view class="items">用户手机号码:{{ item.userPhone }}</view> | |||
<view class="items">服务预约时间:<text tt:if="{{ item.appointTime == '暂无' }}">暂无</text></view> | |||
<view tt:if="{{ item.appointTime != '暂无' }}" class="items">{{ item.appointTime }}</view> | |||
</view> | |||
<view class="footer"> | |||
<button type="primary" bindtap="goDetail" data-id="{{ item.id }}">详情</button> | |||
<button tt:if="{{item.status==-1||item.status==0||item.status==5||item.status==7}}" type="primary" | |||
bindtap="goVerification" data-id="{{ item.id }}" | |||
data-shop="{{ item.reservationMerchantName }}">核销</button> | |||
</view> | |||
</view> | |||
<view tt:if="{{ list.length == 0 }}" class="itemXX"> | |||
暂无记录 | |||
</view> | |||
</view> | |||
</view> |
@@ -0,0 +1,182 @@ | |||
.nav { | |||
display: flex; | |||
flex-wrap: wrap; | |||
justify-content: space-between; | |||
padding: 20rpx 150rpx; | |||
background-color: #f7f7f7; | |||
} | |||
.input { | |||
/* width: 100%; */ | |||
display: flex; | |||
justify-content: space-between; | |||
padding: 10rpx; | |||
height: 100rpx; | |||
} | |||
.input input { | |||
width: 70%; | |||
height: 60rpx; | |||
border: #52a0fd 1rpx solid; | |||
border-radius: 5rpx; | |||
padding: 20rpx; | |||
} | |||
.input button { | |||
width: 25%; | |||
height: 100rpx; | |||
} | |||
.nav .item image { | |||
position: relative; | |||
bottom: 5rpx; | |||
width: 30rpx; | |||
margin-left: 20rpx; | |||
} | |||
.nav .currentItem { | |||
color: #52a0fd; | |||
} | |||
.nav .currentItem image { | |||
position: relative; | |||
bottom: 5rpx; | |||
width: 30rpx; | |||
margin-left: 20rpx; | |||
transform: rotate(180deg); | |||
transition: all 0.3s; | |||
} | |||
.type { | |||
text-align: center; | |||
padding: 40rpx; | |||
transform: translateY(-150%); | |||
opacity: 0; | |||
transition: all 0.3s; | |||
background-color: #ffffff86; | |||
z-index: 99; | |||
} | |||
.type.active { | |||
transform: translateY(0); | |||
opacity: 1; | |||
} | |||
.type .item { | |||
color: #ffffff; | |||
background-color: #52a0fd; | |||
border-radius: 5rpx; | |||
padding: 10rpx 0; | |||
margin-bottom: 40rpx; | |||
} | |||
.type .item.center { | |||
margin: 30rpx 0; | |||
} | |||
.pickedTime { | |||
position: relative; | |||
bottom: 590rpx; | |||
text-align: center; | |||
} | |||
.pickedTime .picker { | |||
display: inline-block; | |||
background-color: #529ffd86; | |||
font-size: 30rpx; | |||
padding: 10rpx; | |||
border-radius: 10rpx; | |||
color: #ffffff; | |||
} | |||
.pickedTime .search { | |||
display: inline-block; | |||
width: 120rpx; | |||
height: 60rpx; | |||
line-height: 50rpx; | |||
padding: 5rpx; | |||
margin-left: 40rpx; | |||
} | |||
.list { | |||
position: relative; | |||
bottom: 590rpx; | |||
margin-top: 20rpx; | |||
z-index: -1; | |||
} | |||
.list.active { | |||
z-index: 1; | |||
} | |||
.list .item { | |||
width: 95%; | |||
border: 1px solid #ffffff93; | |||
margin: auto; | |||
overflow: hidden; | |||
background-color: #0000000a; | |||
border-radius: 20rpx; | |||
margin-bottom: 30rpx; | |||
} | |||
.list .itemXX { | |||
text-align: center; | |||
} | |||
.list .item .head { | |||
position: relative; | |||
padding: 20rpx; | |||
font-size: 30rpx; | |||
border-bottom: 1px solid #ffffffbb; | |||
} | |||
.notice { | |||
position: absolute; | |||
width: 250rpx; | |||
text-align: center; | |||
top: 28rpx; | |||
right: -80rpx; | |||
transform: rotate(45deg); | |||
font-size: 35rpx; | |||
} | |||
.notice.noAppoint { | |||
color: red; | |||
background-color: #ffcc66; | |||
} | |||
.notice.confirm { | |||
color: #ffffff; | |||
background-color: #ffcc66; | |||
} | |||
.notice.refund { | |||
color: #ffffff; | |||
background-color: #ff0000; | |||
} | |||
.notice.complete { | |||
color: #ffffff; | |||
background-color: #19be27; | |||
} | |||
.list .item .body { | |||
padding: 20rpx 20rpx; | |||
border-bottom: 1px solid #ffffffbb; | |||
} | |||
.list .item .body .items { | |||
margin-bottom: 10rpx; | |||
} | |||
.list .item .footer { | |||
display: flex; | |||
margin: 25rpx 0; | |||
padding: 0 170rpx; | |||
} | |||
.list .item .footer button { | |||
background-color: #52a0fd; | |||
} |
@@ -0,0 +1,261 @@ | |||
// c:\Users\Holy-Knight-IX\Desktop\Working Space\4.TikTok-MiniPro\ttb\pages\appointDetail\appointDetail.js | |||
const config = require('../../config/config.js') | |||
const Http = require('../../utils/http.js') | |||
const HttpBasics = require('../../utils/HttpBasics.js') | |||
const util = require('../../utils/util') | |||
var app = getApp() | |||
Page({ | |||
data: { | |||
id: "", | |||
detail: null, | |||
isShowBtns: true, | |||
isSetTime: false, | |||
isSetAddress: false, | |||
pickedDate: "请选择日期", | |||
pickedStartTime: "请选择", | |||
pickedEndTime: "请选择", | |||
startTime: "", | |||
endTime: "" | |||
}, | |||
onLoad(options) { | |||
console.log(options, 'options'); | |||
if (options.id) { | |||
this.setData({ | |||
id: options.id | |||
}) | |||
this.getDetail(options.id) | |||
} | |||
}, | |||
getDetail(id) { | |||
const that = this | |||
const data = { | |||
id | |||
} | |||
HttpBasics.get({ | |||
url: config.api.appointDetail, | |||
data | |||
}) | |||
.then(res => { | |||
console.log(res, 'res'); | |||
console.log(typeof (data.id)); | |||
const appointStart = util.timestampToTime(res.data.startDate, 'YYYY-MM-DD hh:mm:ss') | |||
const appointEnd = util.timestampToTime(res.data.endDate, 'hh:mm:ss') | |||
if (res.data.startDate && res.data.endDate) { | |||
res.data.appointTime = appointStart + ' - ' + appointEnd | |||
} else { | |||
res.data.appointTime = "暂无"; | |||
} | |||
that.setData({ | |||
detail: res.data, | |||
pickedDate: util.timestampToTime(res.data.startDate, 'YYYY-MM-DD') || '请选择日期', | |||
pickedStartTime: util.timestampToTime(res.data.startDate, 'hh:mm') || '请选择', | |||
pickedEndTime: util.timestampToTime(res.data.endDate, 'hh:mm') || '请选择', | |||
}) | |||
}).catch(err => { | |||
console.log(err, 'err'); | |||
}) | |||
}, | |||
back() { | |||
tt.navigateBack(); | |||
}, | |||
chooseDate(e) { | |||
console.log(e.detail.value, 'e'); | |||
this.setData({ | |||
pickedDate: e.detail.value | |||
}) | |||
}, | |||
chooseStartTime(e) { | |||
console.log(e.detail.value, 'e'); | |||
this.setData({ | |||
pickedStartTime: e.detail.value | |||
}) | |||
}, | |||
chooseEndTime(e) { | |||
console.log(e.detail.value, 'e'); | |||
this.setData({ | |||
pickedEndTime: e.detail.value | |||
}) | |||
}, | |||
cancel() { | |||
const that = this | |||
tt.showModal({ | |||
title: "提示", | |||
content: "是否与用户取得联系并取消确认?", | |||
showCancel: true, | |||
confirmText: "确认取消", | |||
confirmColor: "#52a0fd", | |||
cancelText: "返回", | |||
success(res) { | |||
if (res.confirm) { | |||
that.goChange(that.data.id, 0) | |||
} | |||
if (res.cancel) { | |||
return | |||
} | |||
} | |||
}); | |||
}, | |||
confirm() { | |||
const that = this | |||
tt.showModal({ | |||
title: "提示", | |||
content: "是否与用户取得联系并完成预约?", | |||
showCancel: true, | |||
confirmText: "确认完成", | |||
confirmColor: "#52a0fd", | |||
cancelText: "关闭", | |||
success(res) { | |||
if (res.confirm) { | |||
that.goChange(that.data.id, 5) | |||
} | |||
if (res.cancel) { | |||
return | |||
} | |||
} | |||
}); | |||
}, | |||
setDate() { | |||
const isSetTime = !this.data.isSetTime | |||
this.setData({ | |||
isSetTime, | |||
isSetAddress: false | |||
}) | |||
}, | |||
confirmDate() { | |||
const isSetTime = !this.data.isSetTime | |||
this.setData({ | |||
isSetTime, | |||
isSetAddress: false | |||
}) | |||
if (!isSetTime) { | |||
const tempData = this.data | |||
if (tempData.pickedDate == '请选择日期') { | |||
tt.showToast({ | |||
title: '请请选择日期!', | |||
icon: 'fail' | |||
}); | |||
return | |||
} | |||
if (tempData.pickedStartTime == '请选择') { | |||
tt.showToast({ | |||
title: '请起始时间!', | |||
icon: 'fail' | |||
}); | |||
return | |||
} | |||
if (tempData.pickedEndTime == '请选择') { | |||
tt.showToast({ | |||
title: '请结束时间!', | |||
icon: 'fail' | |||
}); | |||
return | |||
} | |||
const data = { | |||
id: this.data.detail.id, | |||
couponOrderId: this.data.detail.couponOrderId, | |||
startDate: tempData.pickedDate + " " + tempData.pickedStartTime + ":00", | |||
endDate: tempData.pickedDate + " " + tempData.pickedEndTime + ":00" | |||
} | |||
this.goSetDate(data) | |||
console.log(data, 'data'); | |||
} | |||
}, | |||
setAddress() { | |||
const isSetAddress = !this.data.isSetAddress | |||
this.setData({ | |||
isSetAddress, | |||
isSetTime: false | |||
}) | |||
}, | |||
settingAddress(e) { | |||
const detail = this.data.detail | |||
detail.detailedAddress = e.detail.value | |||
this.setData({ | |||
detail | |||
}) | |||
}, | |||
confirmAddress() { | |||
const isSetAddress = !this.data.isSetAddress | |||
this.setData({ | |||
isSetAddress, | |||
isSetTime: false | |||
}) | |||
const data = { | |||
id: this.data.detail.id, | |||
couponOrderId: this.data.detail.couponOrderId, | |||
detailedAddress: this.data.detail.detailedAddress, | |||
} | |||
this.goSetDate(data) | |||
}, | |||
goChange(id, status) { | |||
const data = { | |||
id, | |||
status | |||
} | |||
HttpBasics.post({ | |||
url: config.api.appointConfirm, | |||
data | |||
}) | |||
.then(res => { | |||
console.log(res, 'res'); | |||
tt.showToast({ | |||
title: status == 5 ? '确认成功!' : '取消成功!', | |||
icon: "success", | |||
duration: 2000 | |||
}); | |||
setTimeout(() => { | |||
tt.navigateBack(); | |||
}, 2000); | |||
}).catch(err => { | |||
console.log(err, 'err'); | |||
tt.showToast({ | |||
title: err.message, | |||
icon: "none" | |||
}); | |||
}) | |||
}, | |||
goSetDate(data) { | |||
const that = this | |||
HttpBasics.post({ | |||
url: config.api.appointSetDate, | |||
data | |||
}) | |||
.then(res => { | |||
console.log(res, 'res'); | |||
tt.showToast({ | |||
title: '修改成功!', | |||
icon: "success", | |||
duration: 2000 | |||
}); | |||
that.getDetail(that.data.id) | |||
}).catch(err => { | |||
console.log(err, 'err'); | |||
tt.showToast({ | |||
title: err.message, | |||
icon: "none" | |||
}); | |||
}) | |||
} | |||
}) |
@@ -0,0 +1,8 @@ | |||
{ | |||
"navigationBarTitleText": "预约详情", | |||
"enablePullDownRefresh": true, | |||
"backgroundTextStyle": "dark", | |||
"navigationBarTextStyle": "white", | |||
"navigationBarBackgroundColor": "#52A0FD", | |||
"usingComponents": {} | |||
} |
@@ -0,0 +1,55 @@ | |||
<!-- c:\Users\Holy-Knight-IX\Desktop\Working Space\4.TikTok-MiniPro\ttb\pages\appointDetail\appointDetail.ttml --> | |||
<view> | |||
<view class="card"> | |||
<view class="item">券码:{{ detail.couponOrderId }}</view> | |||
<view class="item">商品名称:{{ detail.couponTitle }}</view> | |||
<view class="item">店铺名称:{{ detail.reservationMerchantName }}</view> | |||
<view class="item">服务预约时间:{{ detail.appointTime }}<span | |||
tt:if="{{ detail.status == 0 || detail.status == 5 || detail.status == '-1' }}" class="edit" | |||
bindtap="setDate">修改</span></view> | |||
<view class="item">服务预约地址:<text class="lineHeight">{{ detail.userAddress }}</text></view> | |||
<view class="item">服务详细地址:<text class="lineHeight">{{ detail.detailedAddress }}</text><span | |||
tt:if="{{ detail.status == 0 || detail.status == 5 || detail.status == '-1' }}" class="edit" | |||
bindtap="setAddress">修改</span></view> | |||
<view class="item">用户手机号码:{{ detail.userPhone }}</view> | |||
<view class="item">备注:{{ detail.describeStr }}</view> | |||
</view> | |||
<view tt:if="{{ isSetTime }}"> | |||
<view class="datePickerFlex"> | |||
<picker mode="date" start="{{ startTime }}" end="{{ endTime }}" disabled="{{ !isShowBtns }}" | |||
bindchange='chooseDate'>选择服务日期:</picker> | |||
<picker mode="date" start="{{ startTime }}" end="{{ endTime }}" disabled="{{ !isShowBtns }}" | |||
bindchange='chooseDate' class="address"> | |||
{{ pickedDate }}</picker> | |||
</view> | |||
<view class="datePickerFlex"> | |||
<picker mode="time" disabled="{{ !isShowBtns }}" bindchange='chooseTime'>预计上门时间:</picker> | |||
<picker mode="time" disabled="{{ !isShowBtns }}" bindchange='chooseStartTime' class="address">{{ | |||
pickedStartTime | |||
}}</picker> | |||
- | |||
<picker mode="time" start="{{ pickedStartTime }}" disabled="{{ !isShowBtns }}" bindchange='chooseEndTime' | |||
class="address">{{ pickedEndTime }} | |||
</picker> | |||
</view> | |||
</view> | |||
<view tt:if="{{ isSetAddress }}"> | |||
<textarea class="detailedAddress" placeholder="请输入服务详细地址" bindinput="settingAddress" | |||
value="{{ detail.detailedAddress }}"></textarea> | |||
</view> | |||
<view class="{{ (isSetTime || isSetAddress) ? 'btns' : 'btns active' }}"> | |||
<block tt:if="{{ detail.status != 8 }}"> | |||
<button tt:if="{{ isSetTime }}" class="confirm" bindtap="confirmDate">确定预约时间</button> | |||
<button tt:if="{{ isSetAddress }}" class="confirm" bindtap="confirmAddress">确定详细地址</button> | |||
<button tt:if="{{ detail.status == 0 }}" class="confirm" bindtap="confirm">确认预约</button> | |||
<button tt:if="{{ detail.status == 5 }}" class="confirm" bindtap="cancel">取消确认</button> | |||
</block> | |||
</view> | |||
</view> |
@@ -0,0 +1,78 @@ | |||
/* c:\Users\Holy-Knight-IX\Desktop\Working Space\4.TikTok-MiniPro\ttb\pages\appointDetail\appointDetail.ttss */ | |||
.card { | |||
width: 95%; | |||
border: 1px solid #00000063; | |||
margin: 40rpx auto; | |||
padding: 20rpx; | |||
border-radius: 15rpx; | |||
box-sizing: border-box; | |||
} | |||
.card .item { | |||
margin-bottom: 20rpx; | |||
} | |||
.card .item .lineHeight { | |||
color: #52a0fd; | |||
} | |||
.btns { | |||
width: 95%; | |||
padding: 0 80rpx; | |||
box-sizing: border-box; | |||
margin: auto; | |||
} | |||
.btns.active { | |||
position: absolute; | |||
left: 50%; | |||
bottom: 110rpx; | |||
transform: translateX(-50%); | |||
} | |||
.btns .back { | |||
margin-bottom: 40rpx; | |||
} | |||
.btns .confirm { | |||
color: #ffffff; | |||
background-color: #52a0fd; | |||
margin-top: 40rpx; | |||
} | |||
.datePickerFlex { | |||
display: flex; | |||
justify-content: space-between; | |||
width: 85%; | |||
background-color: #f4f5f6; | |||
border-radius: 20rpx; | |||
padding: 30rpx; | |||
margin: 35rpx auto; | |||
} | |||
.address { | |||
color: #8a8a8a; | |||
} | |||
.edit { | |||
display: inline-block; | |||
width: 70rpx; | |||
height: 40rpx; | |||
line-height: 40rpx; | |||
font-size: 30rpx; | |||
color: #ffffff; | |||
text-align: center; | |||
background-color: #c85963; | |||
border-radius: 10rpx; | |||
padding: 2rpx 5rpx; | |||
margin-left: 20rpx; | |||
} | |||
.detailedAddress { | |||
width: 95%; | |||
padding: 20rpx; | |||
border-radius: 15rpx; | |||
box-sizing: border-box; | |||
border: 1px solid #00000063; | |||
margin: 0 auto; | |||
} |
@@ -1,18 +1,20 @@ | |||
<view class='forgetpwd'> | |||
<form bindsubmit='getYZM'> | |||
<view class='retrievepwd'> | |||
<view class='input01' tt:if="{{flags=='reset'}}">修改密码</view> | |||
<view class='input01' tt:else>找回密码</view> | |||
<view class='input02'>请填写你的手机号,我们会发送验证码验证身份</view> | |||
<view class='pho'> | |||
<input tt:if="{{phones}}" type='number' placeholder-style='color:#000;' placeholder='{{phones}}' maxlength='11' disabled /> | |||
<input tt:else type='number' placeholder-style='color:#bfbfbf;' placeholder='请输入手机号' maxlength='11' name='phone' /> | |||
<button form-type='submit' class='send' disabled='{{disabled}}' bindtap="send">{{time}}</button> | |||
</view> | |||
<view> | |||
<input type='number' placeholder-style='color:#bfbfbf;' placeholder='请输入验证码' name='yzm' /> | |||
</view> | |||
<form bindsubmit='getYZM'> | |||
<view class='retrievepwd'> | |||
<view class='input01' tt:if="{{flags=='reset'}}">修改密码</view> | |||
<view class='input01' tt:else>找回密码</view> | |||
<view class='input02'>请填写你的手机号,我们会发送验证码验证身份</view> | |||
<view class='pho'> | |||
<input tt:if="{{phones}}" type='number' placeholder-style='color:#000;' placeholder='{{phones}}' maxlength='11' | |||
disabled /> | |||
<input tt:else type='number' placeholder-style='color:#bfbfbf;' placeholder='请输入手机号' maxlength='11' | |||
name='phone' /> | |||
<button form-type='submit' class='send' disabled='{{disabled}}' bindtap="send">{{time}}</button> | |||
</view> | |||
<button form-type='submit' hover-class='active' bindtap='next'>下一步</button> | |||
</form> | |||
</view> | |||
<view> | |||
<input type='number' placeholder-style='color:#bfbfbf;' placeholder='请输入验证码' name='yzm' /> | |||
</view> | |||
</view> | |||
<button form-type='submit' hover-class='active' bindtap='next'>下一步</button> | |||
</form> | |||
</view> |
@@ -9,18 +9,20 @@ Page({ | |||
logo: '../../assets/images/logo.png', | |||
phone: '', | |||
pwd: '', | |||
status:'', | |||
status: '', | |||
showpass: "hidepass", | |||
focus:false, | |||
password: true | |||
focus: false, | |||
password: true, | |||
ifShowShop: false, | |||
merchantList: [] | |||
}, | |||
onLoad() { | |||
Common.getMallIcon() | |||
Common.getMallIcon() | |||
.then(data => { | |||
// debugge | |||
console.log(data,777) | |||
console.log(data, 777) | |||
this.setData({ | |||
logo: data.data&&data.data.mallImgUrl ? data.data.mallImgUrl : '../../assets/images/logo.png', | |||
logo: data.data && data.data.mallImgUrl ? data.data.mallImgUrl : '../../assets/images/logo.png', | |||
}) | |||
}) | |||
}, | |||
@@ -39,34 +41,43 @@ Page({ | |||
pwd: pwd | |||
}); | |||
} | |||
// 进入页面后清空bUserId | |||
HttpBasics.setBUserId(''); | |||
tt.setStorageSync("bUserId", ''); | |||
app.globalData.bUserId = ''; | |||
tt.setStorage({ | |||
key: 'bUserId', | |||
data: '', | |||
}) | |||
}, | |||
//显示具体的密码 | |||
showpassword:function(){ | |||
showpassword: function () { | |||
console.log(this.data.password); | |||
let that = this; | |||
if (that.data.password){ | |||
if (that.data.password) { | |||
that.setData({ | |||
password: false, | |||
focus:true | |||
focus: true | |||
}) | |||
}else{ | |||
} else { | |||
that.setData({ | |||
password: true, | |||
focus: true | |||
}) | |||
} | |||
}, | |||
ttLogin(flag){ | |||
ttLogin(flag) { | |||
let that = this; | |||
tt.login({ | |||
success: res => { | |||
Common.getSuperOpenId(res.code) | |||
.then(res => { | |||
console.log(res) | |||
if (res.data&& res.data.data&&res.data.data.openId){ | |||
if (res.data && res.data.data && res.data.data.openId) { | |||
app.globalData.superopenId = res.data.data.openId; | |||
} | |||
if (res.data && res.data.data && res.data.data.session_key){ | |||
if (res.data && res.data.data && res.data.data.session_key) { | |||
app.globalData.session_key = res.data.data.session_key; | |||
} | |||
if (res.data.code == 200) { | |||
@@ -75,14 +86,14 @@ Page({ | |||
ifAlBoss: true, | |||
status: "use" | |||
}) | |||
if (flag =='fromgetPhoneNumber'){ | |||
if (flag == 'fromgetPhoneNumber') { | |||
tt.navigateTo({ | |||
url: `/pages/datatower/datatower?superopenId=${app.globalData.superopenId}&phone=${app.globalData.phone}`, | |||
}) | |||
} | |||
} else { | |||
if (flag =='fromgetPhoneNumber'){ | |||
if (flag == 'fromgetPhoneNumber') { | |||
tt.showToast({ | |||
title: res.data.message, | |||
icon: "none", | |||
@@ -91,7 +102,7 @@ Page({ | |||
} | |||
} | |||
}).catch(error => { | |||
console.log(error,"error"); | |||
console.log(error, "error"); | |||
that.setData({ | |||
error: error.message | |||
}) | |||
@@ -99,14 +110,25 @@ Page({ | |||
} | |||
}) | |||
}, | |||
showpass: function () { | |||
let that = this; | |||
}, | |||
forgetPwd: function () { | |||
forgetPwd() { | |||
console.log('forgetPwd!!!!!!!'); | |||
tt.navigateTo({ | |||
url: '/pages/index/forgetpwd/forgetpwd', | |||
}) | |||
url: "/pages/forgetpwd/forgetpwd", | |||
success: (res) => { | |||
console.log(res, 'res'); | |||
}, | |||
fail: (res) => { | |||
console.log(res, 'res'); | |||
}, | |||
}); | |||
}, | |||
getLoginInfo(e) { | |||
var phoneReg = /^1[0|1|2|3|4|5|6|7|8|9]\d{9}$/; | |||
let { | |||
@@ -117,46 +139,64 @@ Page({ | |||
if (pwd != '') { | |||
Common.userLogin(phone, pwd, app.globalData.latitude, app.globalData.longitude) | |||
.then(res => { | |||
console.log(res); | |||
if (res.code == 200) { | |||
HttpBasics.setBUserId(res.data.bUserId); | |||
// 当logined为true时,正常进入商户 | |||
if (res.data && res.data.logined == true) { | |||
if (res.code == 200) { | |||
HttpBasics.setBUserId(res.data.bUserId); | |||
tt.setStorageSync("phone", phone); | |||
tt.setStorageSync("pwd", pwd); | |||
tt.setStorageSync("bUserId", res.data.bUserId); | |||
app.globalData.bUserId = res.data.bUserId; | |||
tt.setStorage({ | |||
key: 'bUserId', | |||
data: res.data.bUserId, | |||
}) | |||
tt.login({ | |||
success: function (res) { | |||
Common.getOpenId(res.code, app.globalData.bUserId) | |||
.then(res => { | |||
console.log(res, 888) | |||
app.globalData.openId = res.data.data.openId; | |||
app.globalData.token = res.data.data.token; | |||
HttpBasics.setToken(res.data.data.token); | |||
tt.setStorageSync("openId", res.data.data.openId); | |||
tt.setStorageSync("session_key", res.data.data.session_key); | |||
tt.showToast({ | |||
image: './../../assets/images/success.png', | |||
title: '登录成功', | |||
}) | |||
tt.switchTab({ | |||
url: '/pages/main/main', | |||
success(res) { | |||
console.log(`${res}`); | |||
}, | |||
fail(err) { | |||
console.log(err, `switchTab调用失败`); | |||
}, | |||
}) | |||
}) | |||
} | |||
}) | |||
} else { | |||
tt.showToast({ | |||
image: './../../assets/images/fail.png', | |||
title: res.message, | |||
icon: "none" | |||
}) | |||
} | |||
// 当logined为false时,选择商户 | |||
} else if (res.data && res.data.logined == false) { | |||
tt.setStorageSync("phone", phone); | |||
tt.setStorageSync("pwd", pwd); | |||
tt.setStorageSync("bUserId", res.data.bUserId); | |||
app.globalData.bUserId = res.data.bUserId; | |||
tt.setStorage({ | |||
key: 'bUserId', | |||
data: res.data.bUserId, | |||
}) | |||
tt.login({ | |||
success:function(res){ | |||
Common.getOpenId(res.code,app.globalData.bUserId) | |||
.then(res => { | |||
console.log(res,888) | |||
app.globalData.openId = res.data.data.openId; | |||
app.globalData.token = res.data.data.token; | |||
HttpBasics.setToken(res.data.data.token); | |||
tt.setStorageSync("openId", res.data.data.openId); | |||
tt.setStorageSync("session_key", res.data.data.session_key); | |||
tt.showToast({ | |||
image: './../../assets/images/success.png', | |||
title: '登录成功', | |||
}) | |||
tt.switchTab({ | |||
url: '/pages/main/main', | |||
success(res) { | |||
console.log(`${res}`); | |||
}, | |||
fail(err) { | |||
console.log(err,`switchTab调用失败`); | |||
}, | |||
}) | |||
}) | |||
} | |||
this.setData({ | |||
ifShowShop: true, | |||
merchantList: res.data.merchantList | |||
}) | |||
} else { | |||
console.log(res, 'res'); | |||
tt.showToast({ | |||
image:'./../../assets/images/fail.png', | |||
image: './../../assets/images/fail.png', | |||
title: res.message, | |||
icon: "none" | |||
}) | |||
@@ -169,13 +209,13 @@ Page({ | |||
icon: "none", | |||
}) | |||
} | |||
} else if(phone=="") { | |||
} else if (phone == "") { | |||
tt.showToast({ | |||
image: './../../assets/images/fail.png', | |||
title: '请输入手机号', | |||
icon: "none" | |||
}) | |||
}else{ | |||
} else { | |||
tt.showToast({ | |||
image: './../../assets/images/fail.png', | |||
title: '手机号有误', | |||
@@ -186,10 +226,16 @@ Page({ | |||
/** | |||
* 获得超级管理员手机号 | |||
*/ | |||
getPhoneNumber: function (e) { | |||
getPhoneNumber: function (e) { | |||
this.ttLogin("fromgetPhoneNumber"); | |||
if (app.globalData.superopenId && app.globalData.session_key){ | |||
let { encryptedData, iv } = { encryptedData: e.detail.encryptedData, iv: e.detail.iv }; | |||
if (app.globalData.superopenId && app.globalData.session_key) { | |||
let { | |||
encryptedData, | |||
iv | |||
} = { | |||
encryptedData: e.detail.encryptedData, | |||
iv: e.detail.iv | |||
}; | |||
if (encryptedData && iv) { | |||
Common.getUserPhone(encryptedData, iv, app.globalData.superopenId, app.globalData.session_key) | |||
.then(res => { | |||
@@ -200,12 +246,48 @@ Page({ | |||
}) | |||
} | |||
}) | |||
} | |||
} | |||
} | |||
}, | |||
goShop(e) { | |||
const id = e.currentTarget.dataset.id | |||
HttpBasics.setBUserId(id); | |||
tt.setStorageSync("bUserId", id); | |||
app.globalData.bUserId = id; | |||
tt.setStorage({ | |||
key: 'bUserId', | |||
data: id, | |||
}) | |||
tt.login({ | |||
success: function (res) { | |||
Common.getOpenId(res.code, app.globalData.bUserId) | |||
.then(res => { | |||
console.log(res, 888) | |||
app.globalData.openId = res.data.data.openId; | |||
app.globalData.token = res.data.data.token; | |||
HttpBasics.setToken(res.data.data.token); | |||
tt.setStorageSync("openId", res.data.data.openId); | |||
tt.setStorageSync("session_key", res.data.data.session_key); | |||
tt.showToast({ | |||
image: './../../assets/images/success.png', | |||
title: '登录成功', | |||
}) | |||
tt.switchTab({ | |||
url: '/pages/main/main', | |||
success(res) { | |||
console.log(`${res}`); | |||
}, | |||
fail(err) { | |||
console.log(err, `switchTab调用失败`); | |||
}, | |||
}) | |||
}) | |||
} | |||
}) | |||
}, | |||
/** | |||
* 用户点击右上角分享 | |||
*/ | |||
* 用户点击右上角分享 | |||
*/ | |||
onShareAppMessage: function (res) { | |||
let _this = this; | |||
return { | |||
@@ -2,29 +2,53 @@ | |||
<view class='logo'> | |||
<image src='{{logo}}' mode="widthFix"></image> | |||
</view> | |||
<form bindsubmit='getLoginInfo'> | |||
<form bindsubmit='getLoginInfo' tt:if="{{!ifShowShop}}"> | |||
<view class='login'> | |||
<view> | |||
<input type='number' name='phone' value='{{phone}}' placeholder='请输入手机号' placeholder-style='color:#BFBFBF;' maxlength='11' class='inp' /> | |||
</view> | |||
<input type='number' name='phone' value='{{phone}}' placeholder='请输入手机号' placeholder-style='color:#BFBFBF;' | |||
maxlength='11' class='inp' /> | |||
</view> | |||
<view> | |||
<input password='{{password}}' focus='{{focus}}' class='inp' placeholder='请输入密码' placeholder-style='color:#BFBFBF;' name='pwd' value='{{pwd}}' /> | |||
<image class='showpassword' bindtap='showpassword' src='../../assets/images/password.png' mode='widthFix'></image> | |||
<input password='{{password}}' focus='{{focus}}' class='inp' placeholder='请输入密码' | |||
placeholder-style='color:#BFBFBF;' name='pwd' value='{{pwd}}' /> | |||
<image class='showpassword' bindtap='showpassword' src='../../assets/images/password.png' mode='widthFix'> | |||
</image> | |||
</view> | |||
</view> | |||
<navigator url='../index/index' open-type='navigate' hover-class='none'> | |||
</navigator> | |||
<button form-type='submit' class='button' hover-class='active'>登录管理门店</button> | |||
<!-- <view class='forget clearfix'> | |||
<text class='fr' bindtap='forgetPwd'>忘记密码</text> | |||
</view> --> | |||
<view class='forget clearfix' bindtap='forgetPwd'> | |||
<text class='fr'>忘记密码</text> | |||
</view> | |||
<!-- <view> | |||
<button class="phone" tt:if="{{!ifAlBoss}}" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"><image class='adminlogo' src='../../assets/images/admin.png' mode='widthFix'></image>数据塔台</button> | |||
<button class="phone" tt:if="{{ifAlBoss}}" bindtap="getPhoneNumber"><image class='adminlogo' src='../../assets/images/admin.png' mode='widthFix'></image>数据塔台</button> | |||
</view> --> | |||
</form> | |||
<view class='defaultLogo'> | |||
<view class="page" tt:if="{{ifShowShop}}"> | |||
<view class="title">请选择要管理的门店</view> | |||
<view class="shopBox" tt:for="{{merchantList}}" tt:key="{{item.tenantId}}" bindtap="goShop" | |||
data-id="{{item.buUserId}}"> | |||
<view class="imgBox"> | |||
<image class="imgInside" src="{{item.imgUrl}}"></image> | |||
</view> | |||
<view class="infoBox"> | |||
<view class="shop">{{item.merchantName}}</view> | |||
<view class="mainShop">{{item.tenantName}}</view> | |||
<view class="address">{{}}</view> | |||
</view> | |||
</view> | |||
</view> | |||
<view class='defaultLogo' tt:if="{{merchantList.legth>2}}"> | |||
<text>POWERED BY IFORMALL</text> | |||
</view> | |||
<view class='defaultLogo2' tt:else> | |||
<text>POWERED BY IFORMALL</text> | |||
</view> | |||
</view> |
@@ -1,142 +1,238 @@ | |||
.adminlogo{ | |||
width: 100rpx; | |||
display: block; | |||
margin: 0 auto; | |||
} | |||
.logoin_wrap { | |||
width: 100%; | |||
display: flex; | |||
flex-direction: column; | |||
} | |||
.login { | |||
width: 100%; | |||
display: flex; | |||
flex-direction: column; | |||
position: relative; | |||
} | |||
.inp{ | |||
color: #666; | |||
} | |||
.login view { | |||
position: relative; | |||
width: 88%; | |||
display: flex; | |||
margin: 0 auto; | |||
height: 100rpx; | |||
line-height: 100rpx; | |||
border-bottom: 1rpx solid #DADADA; | |||
} | |||
.line { | |||
width: 2rpx; | |||
height: 22rpx; | |||
background: #d7d7d7; | |||
position: absolute; | |||
left: 20%; | |||
top: 38rpx; | |||
} | |||
.login view input { | |||
font-size: 34rpx; | |||
height: 100rpx; | |||
line-height: 100rpx; | |||
} | |||
.login view:nth-child(1) input { | |||
/* padding-left: 60rpx; */ | |||
font-size: 34rpx; | |||
height: 100rpx; | |||
line-height: 100rpx; | |||
} | |||
.eye{ | |||
display: inline-block; | |||
width: 50rpx; | |||
margin-top:26rpx; | |||
} | |||
.logo { | |||
width: 320rpx; | |||
margin: 100rpx auto 30rpx; | |||
} | |||
.logo image { | |||
display: block; | |||
width: 320rpx; | |||
} | |||
.button { | |||
background: #52A0FD; | |||
border-radius: 8rpx; | |||
color: #fff; | |||
margin-top: 8%; | |||
font-size: 36rpx; | |||
width: 90%; | |||
} | |||
.active{ | |||
opacity: .4; | |||
} | |||
.logoin_wrap navigator { | |||
display: block; | |||
width: 25%; | |||
margin: 0 auto; | |||
text-align: right; | |||
margin-top: 15rpx; | |||
} | |||
.logoin_wrap navigator text { | |||
display: block; | |||
text-align: center; | |||
/* padding-top: 1.5%; */ | |||
font-size: 26rpx; | |||
height: 45rpx; | |||
color: #404040; | |||
letter-spacing: 0; | |||
line-height: 45rpx; | |||
} | |||
.forget{ | |||
text-align: right; | |||
padding:0 40rpx; | |||
color: #999; | |||
margin-top: 20rpx; | |||
} | |||
.forget text{ | |||
font-size: 26rpx; | |||
} | |||
.defaultLogo{ | |||
position: absolute; | |||
bottom: 40rpx; | |||
left: 0; | |||
right: 0; | |||
margin: auto; | |||
} | |||
.defaultLogo text { | |||
display: block; | |||
text-align: center; | |||
color: #52A0FD; | |||
font-size: 22rpx; | |||
} | |||
.defaultLogo image { | |||
width: 200rpx; | |||
} | |||
.phone{ | |||
display: block!important; | |||
background: none!important; | |||
color: #999!important; | |||
font-size: 26rpx!important; | |||
padding: 0!important; | |||
margin-top: 40rpx!important; | |||
} | |||
button::after{ border: none; } | |||
.showpassword{ | |||
padding: 30rpx; | |||
width: 40rpx; | |||
position: absolute; | |||
z-index: 100; | |||
right: 20rpx; | |||
top: 0; | |||
bottom: 0; | |||
margin: auto; | |||
} | |||
.adminlogo { | |||
width: 100rpx; | |||
display: block; | |||
margin: 0 auto; | |||
} | |||
.logoin_wrap { | |||
position: relative; | |||
width: 100%; | |||
display: flex; | |||
flex-direction: column; | |||
} | |||
.login { | |||
width: 100%; | |||
display: flex; | |||
flex-direction: column; | |||
position: relative; | |||
} | |||
.inp { | |||
color: #666; | |||
} | |||
.login view { | |||
position: relative; | |||
width: 88%; | |||
display: flex; | |||
margin: 0 auto; | |||
height: 100rpx; | |||
line-height: 100rpx; | |||
border-bottom: 1rpx solid #DADADA; | |||
} | |||
.line { | |||
width: 2rpx; | |||
height: 22rpx; | |||
background: #d7d7d7; | |||
position: absolute; | |||
left: 20%; | |||
top: 38rpx; | |||
} | |||
.login view input { | |||
font-size: 34rpx; | |||
height: 100rpx; | |||
line-height: 100rpx; | |||
} | |||
.login view:nth-child(1) input { | |||
/* padding-left: 60rpx; */ | |||
font-size: 34rpx; | |||
height: 100rpx; | |||
line-height: 100rpx; | |||
} | |||
.eye { | |||
display: inline-block; | |||
width: 50rpx; | |||
margin-top: 26rpx; | |||
} | |||
.logo { | |||
width: 320rpx; | |||
margin: 100rpx auto 30rpx; | |||
} | |||
.logo image { | |||
display: block; | |||
width: 320rpx; | |||
} | |||
.button { | |||
background: #52A0FD; | |||
border-radius: 8rpx; | |||
color: #fff; | |||
margin-top: 8%; | |||
font-size: 36rpx; | |||
width: 90%; | |||
} | |||
.active { | |||
opacity: .4; | |||
} | |||
.logoin_wrap navigator { | |||
display: block; | |||
width: 25%; | |||
margin: 0 auto; | |||
text-align: right; | |||
margin-top: 15rpx; | |||
} | |||
.logoin_wrap navigator text { | |||
display: block; | |||
text-align: center; | |||
/* padding-top: 1.5%; */ | |||
font-size: 26rpx; | |||
height: 45rpx; | |||
color: #404040; | |||
letter-spacing: 0; | |||
line-height: 45rpx; | |||
} | |||
.forget { | |||
text-align: right; | |||
padding: 0 40rpx; | |||
color: #999; | |||
margin-top: 20rpx; | |||
} | |||
.forget text { | |||
font-size: 26rpx; | |||
} | |||
.defaultLogo { | |||
position: absolute; | |||
bottom: 40rpx; | |||
left: 0; | |||
right: 0; | |||
margin: auto; | |||
} | |||
.defaultLogo text { | |||
display: block; | |||
text-align: center; | |||
color: #52A0FD; | |||
font-size: 22rpx; | |||
} | |||
.defaultLogo image { | |||
width: 200rpx; | |||
} | |||
.defaultLogo2 { | |||
position: fixed; | |||
bottom: 40rpx; | |||
left: 0; | |||
right: 0; | |||
margin: auto; | |||
} | |||
.defaultLogo2 text { | |||
display: block; | |||
text-align: center; | |||
color: #52A0FD; | |||
font-size: 22rpx; | |||
} | |||
.defaultLogo2 image { | |||
width: 200rpx; | |||
} | |||
.phone { | |||
display: block !important; | |||
background: none !important; | |||
color: #999 !important; | |||
font-size: 26rpx !important; | |||
padding: 0 !important; | |||
margin-top: 40rpx !important; | |||
} | |||
button::after { | |||
border: none; | |||
} | |||
.showpassword { | |||
padding: 30rpx; | |||
width: 40rpx; | |||
position: absolute; | |||
z-index: 100; | |||
right: 20rpx; | |||
top: 0; | |||
bottom: 0; | |||
margin: auto; | |||
} | |||
.page { | |||
padding-left: 40rpx; | |||
padding-right: 40rpx; | |||
padding-bottom: 100rpx; | |||
} | |||
.page .logo { | |||
width: 320rpx; | |||
margin: 100rpx auto 15rpx; | |||
} | |||
.page .logo image { | |||
display: block; | |||
width: 320rpx; | |||
} | |||
.page .title { | |||
text-align: center; | |||
font-size: 35rpx; | |||
font-weight: 500; | |||
margin-bottom: 40rpx; | |||
} | |||
.page .shopBox { | |||
display: flex; | |||
padding: 20rpx; | |||
border: 1px solid #5e5e5e; | |||
border-radius: 15rpx; | |||
margin-bottom: 20rpx; | |||
} | |||
.page .shopBox .imgBox { | |||
width: 230rpx; | |||
height: 230rpx; | |||
margin-right: 30rpx; | |||
} | |||
.page .shopBox .imgBox .imgInside { | |||
width: 100%; | |||
height: 100%; | |||
} | |||
.page .shopBox .infoBox { | |||
padding-top: 5rpx; | |||
} | |||
.page .shopBox .infoBox .shop { | |||
font-size: 32rpx; | |||
font-weight: 600; | |||
margin-bottom: 70rpx; | |||
} | |||
.page .shopBox .infoBox .mainShop { | |||
font-size: 28rpx; | |||
font-weight: 600; | |||
margin-bottom: 32rpx; | |||
} | |||
.page .shopBox .infoBox .address { | |||
font-size: 23rpx; | |||
} |
@@ -0,0 +1,9 @@ | |||
// c:\Users\Holy-Knight-IX\Desktop\Working Space\4.TikTok-MiniPro\ttb\pages\index\pages\forgetpwd\forgetpwd.js | |||
Page({ | |||
data: { | |||
}, | |||
onLoad: function (options) { | |||
} | |||
}) |
@@ -0,0 +1,3 @@ | |||
{ | |||
"usingComponents": {} | |||
} |
@@ -0,0 +1,2 @@ | |||
<!-- c:\Users\Holy-Knight-IX\Desktop\Working Space\4.TikTok-MiniPro\ttb\pages\index\pages\forgetpwd\forgetpwd.ttml --> | |||
<text>c:\Users\Holy-Knight-IX\Desktop\Working Space\4.TikTok-MiniPro\ttb\pages\index\pages\forgetpwd\forgetpwd.ttml</text> |
@@ -0,0 +1 @@ | |||
/* c:\Users\Holy-Knight-IX\Desktop\Working Space\4.TikTok-MiniPro\ttb\pages\index\pages\forgetpwd\forgetpwd.ttss */ |
@@ -3,6 +3,7 @@ const Http = require('../../utils/http.js') | |||
const HttpBasics = require('../../utils/HttpBasics.js') | |||
const util = require('../../utils/util') | |||
const changeNum = require('../../utils/changeNum.js') | |||
import * as echarts from '../../ec-canvas/echarts'; | |||
var app = getApp() | |||
@@ -53,7 +54,7 @@ function setOption(chart, xdata, ydata) { | |||
}, | |||
axisLabel: { | |||
rotate: 40, | |||
formatter: function(a, b) { | |||
formatter: function (a, b) { | |||
return a | |||
} | |||
}, | |||
@@ -232,7 +233,7 @@ function getTabletListVerify() { | |||
}; | |||
Page({ | |||
data: { | |||
token:'', | |||
token: '', | |||
currentIndex: 0, | |||
userInfo: {}, | |||
recordMoney: 0, | |||
@@ -241,6 +242,11 @@ Page({ | |||
ec: { | |||
lazyLoad: true | |||
}, | |||
classIfyList2: [{ | |||
text: '服务预约', | |||
icon: 'iconfont icon-lingquanzhongxin', | |||
id: 9 | |||
}], | |||
classIfyList: [ | |||
// { | |||
// text: '收银台', | |||
@@ -287,10 +293,15 @@ Page({ | |||
// icon: 'iconfont icon-wuliu', | |||
// id: 8 | |||
// } | |||
{ | |||
text: '服务预约', | |||
icon: 'iconfont icon-lingquanzhongxin', | |||
id: 9 | |||
}, | |||
], | |||
amountMoney: '', | |||
djZmoney:'', | |||
djZmoney: '', | |||
writeOffMoney: '', | |||
getFullYear: new Date().getFullYear(), | |||
getMonth: new Date().getMonth() + 1, | |||
@@ -307,14 +318,15 @@ Page({ | |||
ecScatter: { | |||
lazyLoad: true | |||
}, | |||
djArr:[], | |||
djMoney:[], | |||
count:'' | |||
djArr: [], | |||
djMoney: [], | |||
count: '' | |||
}, | |||
//获取商户信息 | |||
getUserInfo() { | |||
return new Promise((resolve, reject) => { | |||
Http.getRequest(config.api.userDetail, app.globalData.token, '', {}, (res) => { | |||
app.globalData.isAdmin = res.data.is_admin; | |||
resolve(res.data); | |||
}) | |||
}) | |||
@@ -355,7 +367,7 @@ Page({ | |||
}) | |||
}) | |||
}, | |||
onPullDownRefresh: function() { | |||
onPullDownRefresh: function () { | |||
let that = this; | |||
// that.getUnverifiedAmountOnDate() | |||
// that.getVerifiedAmountOnDate(); | |||
@@ -386,9 +398,10 @@ Page({ | |||
this.getUserInfo().then(res => { | |||
this.setData({ | |||
userInfo: res, | |||
userInfoLoadIf:true | |||
userInfoLoadIf: true | |||
}) | |||
app.globalData.merchant = res; | |||
tt.setNavigationBarTitle({ | |||
title: res.mall_name + "(" + res.merchant_name + ")" | |||
}) | |||
@@ -398,7 +411,7 @@ Page({ | |||
/** | |||
* gotolook | |||
*/ | |||
gotobill: function(e) { | |||
gotobill: function (e) { | |||
console.log(e) | |||
let owe = e.currentTarget.dataset.data.owe; | |||
let status = e.currentTarget.dataset.data.status; | |||
@@ -505,14 +518,18 @@ Page({ | |||
tt.navigateTo({ | |||
url: '/pages/marktingsettlement/marktingsettlement', | |||
}) | |||
}else if(id==7){//用户发卷 | |||
} else if (id == 7) { //用户发卷 | |||
tt.navigateTo({ | |||
url: '/pages/sendDiscounts/sendDiscounts', | |||
}) | |||
} else if (id == 8) {//商品配送 | |||
} else if (id == 8) { //商品配送 | |||
tt.navigateTo({ | |||
url: '/pages/delivery/delivery', | |||
}) | |||
} else if (id == 9) { //服务预约 | |||
tt.navigateTo({ | |||
url: '/pages/Appointment/appointment', | |||
}) | |||
} | |||
}, | |||
toTran(e) { | |||
@@ -545,7 +562,7 @@ Page({ | |||
currentIndex: 0 | |||
}) | |||
}, | |||
getpaybill: function() { | |||
getpaybill: function () { | |||
let that = this; | |||
that.getUserInfo().then(res => { | |||
Http.postRequest(config.api.listBillOweAndWaitPay, app.globalData.token, '', { | |||
@@ -553,7 +570,8 @@ Page({ | |||
tenantId: res.tenant_id, | |||
}, (res) => { | |||
console.log(res); | |||
if (res) { | |||
if (res && res.data) { | |||
res.data.map(file => { | |||
if (file.starttime && file.endtime) { | |||
file.end = file.starttime.substring(0, 7).replace(/-/g, ".") + "-" + file.endtime.substring(0, 7).replace(/-/g, "."); | |||
@@ -565,22 +583,22 @@ Page({ | |||
}) | |||
that.setData({ | |||
billList: res.data, | |||
djArr : res.data.filter(item => item.status == 2), | |||
djArr: res.data.filter(item => item.status == 2), | |||
}) | |||
that.data.djMoney = that.data.djArr.map(item => parseInt(item.owe / 100)) | |||
let money = 0 | |||
that.data.djMoney.filter(function (item, index) { | |||
money += item; | |||
}) | |||
}) | |||
that.setData({ | |||
djZmoney: changeNum.changePeoNumber(money) | |||
djZmoney: changeNum.changePeoNumber(money) | |||
}) | |||
} | |||
}) | |||
}) | |||
}, | |||
getTabletListVerify: function() { | |||
getTabletListVerify: function () { | |||
let that = this; | |||
getTabletListVerify() | |||
.then(res => { | |||
@@ -602,7 +620,7 @@ Page({ | |||
/** | |||
* 交易 | |||
*/ | |||
getTabletListOrder: function() { | |||
getTabletListOrder: function () { | |||
let that = this; | |||
getTabletListOrder() | |||
.then(res => { | |||
@@ -684,7 +702,7 @@ Page({ | |||
url: `/pages/record/list/index`, | |||
}) | |||
}, | |||
// checkuserstatus() { | |||
// let _this = this; | |||
// HttpBasics.get({ | |||
@@ -701,5 +719,4 @@ Page({ | |||
// }); | |||
// }, | |||
}) | |||
}) |
@@ -1,8 +1,8 @@ | |||
<view class='firstPage'> | |||
<view class='fix'> | |||
<image src='../../assets/images/bannerbg.png'></image> | |||
<view class='writeOff writeOff1'> | |||
<!-- <view class='topBox clearfix' tt:if="{{djArr.length>0||count > 0}}" > | |||
<view class='fix'> | |||
<image src='../../assets/images/bannerbg.png'></image> | |||
<view class='writeOff writeOff1'> | |||
<!-- <view class='topBox clearfix' tt:if="{{djArr.length>0||count > 0}}" > | |||
<view class='left fl' > | |||
<text>待缴账单</text> | |||
<text>{{djArr.length}}</text> | |||
@@ -14,79 +14,93 @@ | |||
<text>¥{{amountMoney/100}}</text> | |||
</view> | |||
</view> --> | |||
<!-- tt:if="{{djArr.length == 0 && count == 0}}" --> | |||
<view class='topBox2 clearfix' > | |||
<view class='imgBox'> | |||
<image src='{{userInfo.merchant_img_url}}' mode='{{widthFix}}' ></image> | |||
</view> | |||
<text class='name'>{{userInfo.mall_name}}({{userInfo.merchant_name}})</text> | |||
<!-- tt:if="{{djArr.length == 0 && count == 0}}" --> | |||
<view class='topBox2 clearfix'> | |||
<view class='imgBox'> | |||
<image src='{{userInfo.merchant_img_url}}' mode='{{widthFix}}'></image> | |||
</view> | |||
<text class='name'>{{userInfo.mall_name}}({{userInfo.merchant_name}})</text> | |||
</view> | |||
</view> | |||
<view class='location'> | |||
<view class='message' tt:if="{{billList.length>0}}"> | |||
<image src='../../assets/images/mess.png' mode='widthFix'></image> | |||
<text>{{billList.length}}</text> | |||
</view> | |||
<swiper tt:if="{{billList.length>0}}" current='{{currentIndex}}' class="swiper_container" vertical="true" autoplay="true" circular="true" interval="3000"> | |||
<block tt:for="{{billList}}" tt:key="index"> | |||
<swiper-item bindtap="gotobill" data-data='{{item}}' data-id='{{item.id}}'> | |||
<view class="swiper_item clearfix"> | |||
<text tt:if="{{item.status=='1'}}" class="state1 fl">欠缴</text> | |||
<text tt:if="{{item.status=='2'}}" class="state2 fl">待缴</text> | |||
<text class="fl billtype">{{item.name}}{{item.end}}</text> | |||
<text class="fl">{{item.owe/100}}元</text> | |||
</view> | |||
</swiper-item> | |||
</block> | |||
</swiper> | |||
</view> | |||
<view class='location'> | |||
<view class='message' tt:if="{{billList.length>0}}"> | |||
<image src='../../assets/images/mess.png' mode='widthFix'></image> | |||
<text>{{billList.length}}</text> | |||
</view> | |||
<view class='writeOff'> | |||
<view class='classification clearfix' tt:if="{{userInfoLoadIf}}"> | |||
<view tt:for='{{classIfyList}}' tt:if="{{!(item.id==4&&userInfo.creditLocked==1)}}" tt:key='{{index}}'> | |||
<view hover-class='active' style='background:{{item.bg}}' bindtap='toWriteoff' data-id='{{item.id}}'> | |||
<icon class='{{item.icon}}'></icon> | |||
<swiper tt:if="{{billList.length>0}}" current='{{currentIndex}}' class="swiper_container" vertical="true" | |||
autoplay="true" circular="true" interval="3000"> | |||
<block tt:for="{{billList}}" tt:key="index"> | |||
<swiper-item bindtap="gotobill" data-data='{{item}}' data-id='{{item.id}}'> | |||
<view class="swiper_item clearfix"> | |||
<text tt:if="{{item.status=='1'}}" class="state1 fl">欠缴</text> | |||
<text tt:if="{{item.status=='2'}}" class="state2 fl">待缴</text> | |||
<text class="fl billtype">{{item.name}}{{item.end}}</text> | |||
<text class="fl">{{item.owe/100}}元</text> | |||
</view> | |||
<text>{{item.text}}</text> | |||
</swiper-item> | |||
</block> | |||
</swiper> | |||
</view> | |||
<view class='writeOff'> | |||
<view class='classification clearfix' tt:if="{{userInfoLoadIf&&userInfo.is_admin!=4}}"> | |||
<view tt:for='{{classIfyList}}' tt:if="{{!(item.id==4&&userInfo.creditLocked==1)}}"> | |||
<!-- <view tt:for='{{classIfyList}}' tt:if="{{false}}" tt:key='{{index}}'> --> | |||
<view hover-class='active' style='background:{{item.bg}}' bindtap='toWriteoff' data-id='{{item.id}}'> | |||
<icon class='{{item.icon}}'></icon> | |||
</view> | |||
<text>{{item.text}}</text> | |||
</view> | |||
</view> | |||
<view class='jiaoyi jiaoyi1 jiaoyi2' hover-class='actives' bindtap='toTran' data-type='0'> | |||
<view class='toTransaction'> | |||
<view> | |||
<text>交易记录</text> | |||
</view> | |||
<view>今日交易额:{{amountMoney/100}}元 | |||
<image class='iconfonts' src='../../assets/images/jian.png' mode="widthFix"></image> | |||
<view class='classification clearfix' tt:if="{{userInfoLoadIf&&userInfo.is_admin==4}}"> | |||
<view tt:for='{{classIfyList2}}' tt:if="{{!(item.id==4&&userInfo.creditLocked==1)}}"> | |||
<!-- <view tt:for='{{classIfyList}}' tt:if="{{false}}" tt:key='{{index}}'> --> | |||
<view hover-class='active' style='background:{{item.bg}}' bindtap='toWriteoff' data-id='{{item.id}}'> | |||
<icon class='{{item.icon}}'></icon> | |||
</view> | |||
<text>{{item.text}}</text> | |||
</view> | |||
</view> | |||
</view> | |||
<view tt:if="{{userInfo.is_admin!=4}}" class='jiaoyi jiaoyi1 jiaoyi2' hover-class='actives' bindtap='toTran' | |||
data-type='0'> | |||
<view class='toTransaction'> | |||
<view> | |||
<text>交易记录</text> | |||
</view> | |||
<!-- <view class='transaction' tt:if="{{ifShowChart!='show'}}"> | |||
<view>今日交易额:{{amountMoney/100}}元 | |||
<image class='iconfonts' src='../../assets/images/jian.png' mode="widthFix"></image> | |||
</view> | |||
</view> | |||
<!-- <view class='transaction' tt:if="{{ifShowChart!='show'}}"> | |||
<ec-canvas id="mychart-jiaoyi" canvas-id="mychart-multi-bar" ec="{{ ecBar }}"></ec-canvas> | |||
</view> --> | |||
<view class='transaction' tt:if="{{ifShowChart=='show'}}"> | |||
<image class='img' src='../../assets/images/nothave01.png' mode='widthFix'></image> | |||
<view class="nothave">暂无数据</view> | |||
</view> | |||
<view class='transaction' tt:if="{{ifShowChart=='show'}}"> | |||
<image class='img' src='../../assets/images/nothave01.png' mode='widthFix'></image> | |||
<view class="nothave">暂无数据</view> | |||
</view> | |||
<view class='jiaoyi' hover-class='actives' bindtap='toTran' data-type='1'> | |||
<view class='toTransaction'> | |||
<view> | |||
<text>核销记录</text> | |||
</view> | |||
<view>今日核销额:{{writeOffMoney/100}}元 | |||
<image class='iconfonts' src='../../assets/images/jian.png' mode="widthFix"></image> | |||
</view> | |||
</view> | |||
<view tt:if="{{userInfo.is_admin!=4}}" class='jiaoyi' hover-class='actives' bindtap='toTran' data-type='1'> | |||
<view class='toTransaction'> | |||
<view> | |||
<text>核销记录</text> | |||
</view> | |||
<view>今日核销额:{{writeOffMoney/100}}元 | |||
<image class='iconfonts' src='../../assets/images/jian.png' mode="widthFix"></image> | |||
</view> | |||
<!-- <view class='transaction' tt:if="{{ifShowChart1!='show'}}"> | |||
</view> | |||
<!-- <view class='transaction' tt:if="{{ifShowChart1!='show'}}"> | |||
<ec-canvas id="mychart-hexiao" canvas-id="mychart-multi-scatter" ec="{{ ecScatter }}"></ec-canvas> | |||
</view> | |||
<view class='transaction' tt:if="{{ifShowChart1=='show'}}"> | |||
<image class='img' src='../../assets/images/nothave02.png' mode='widthFix'></image> | |||
<view class="nothave1">暂无数据</view> | |||
</view> --> | |||
</view> | |||
<!-- <view class='jiaoyi jiaoyi1' hover-class='actives' bindtap='toRecord' data-type='0'> | |||
</view> | |||
<!-- <view class='jiaoyi jiaoyi1' hover-class='actives' bindtap='toRecord' data-type='0'> | |||
<view class='toTransaction'> | |||
<view> | |||
<text>收银记录</text> | |||
@@ -103,4 +117,4 @@ | |||
<view class="nothave2">暂无数据</view> | |||
</view> | |||
</view> --> | |||
</view> | |||
</view> |
@@ -15,25 +15,25 @@ Page({ | |||
flagdate: null, | |||
list: [], | |||
tabTxt: [{ | |||
title: '全部', | |||
idss: 0 | |||
}, | |||
{ | |||
title: '日期', | |||
idss: 1 | |||
}, | |||
{ | |||
title: '类型', | |||
idss: 2 | |||
}, | |||
{ | |||
title: '状态', | |||
idss: 3 | |||
}, | |||
{ | |||
title: '来源', | |||
idss: 4 | |||
} | |||
title: '全部', | |||
idss: 0 | |||
}, | |||
{ | |||
title: '日期', | |||
idss: 1 | |||
}, | |||
{ | |||
title: '类型', | |||
idss: 2 | |||
}, | |||
{ | |||
title: '状态', | |||
idss: 3 | |||
}, | |||
{ | |||
title: '来源', | |||
idss: 4 | |||
} | |||
], | |||
showList: null, | |||
loading: "", | |||
@@ -43,37 +43,36 @@ Page({ | |||
hasMore: false, //加载更多按钮 | |||
moreTxt: '点击加载更多', | |||
dataNull: true, | |||
status:'', | |||
type:'', | |||
source:'', | |||
status: '', | |||
type: '', | |||
source: '', | |||
date: "", | |||
date2: "", | |||
idss: 0, | |||
subsidy:'', | |||
subsidy: '', | |||
pageNum: 1, //第几页 | |||
height: null, | |||
billtypes: [{ | |||
name: '自主结算', | |||
billTypeValue: 1, | |||
id: 1 | |||
}, | |||
{ | |||
name: '微信分账', | |||
billTypeValue: 2, | |||
id: 2 | |||
} | |||
name: '自主结算', | |||
billTypeValue: 1, | |||
id: 1 | |||
}, | |||
{ | |||
name: '微信分账', | |||
billTypeValue: 2, | |||
id: 2 | |||
} | |||
], | |||
statustypes: [ | |||
{ | |||
name: '未结算', | |||
status: 0, | |||
id: 0 | |||
}, | |||
{ | |||
name: '已结算', | |||
status: 1, | |||
id: 1 | |||
} | |||
statustypes: [{ | |||
name: '未结算', | |||
status: 0, | |||
id: 0 | |||
}, | |||
{ | |||
name: '已结算', | |||
status: 1, | |||
id: 1 | |||
} | |||
], | |||
//结算来源 | |||
auditWayOptions: [ | |||
@@ -132,7 +131,7 @@ Page({ | |||
idss: e.target.dataset.idss || e.currentTarget.dataset.idss, | |||
pageNum: 1 | |||
}) | |||
if (e.currentTarget.dataset.idss===0){ | |||
if (e.currentTarget.dataset.idss === 0) { | |||
this.setData({ | |||
source: '', | |||
type: '', | |||
@@ -144,14 +143,14 @@ Page({ | |||
this.getTotleData() | |||
} | |||
var data = [true, true, true, true, true], | |||
index = e.currentTarget.dataset.index; | |||
index = e.currentTarget.dataset.index; | |||
data[index] = !that.data.tab[index]; | |||
that.setData({ | |||
tab: data | |||
}) | |||
}, | |||
bindDateChange1: function (e) { | |||
if (new Date(e.detail.value).getTime() > new Date(this.data.date2).getTime()){ | |||
if (new Date(e.detail.value).getTime() > new Date(this.data.date2).getTime()) { | |||
tt.showToast({ | |||
title: '抱歉,开始日期不能大于结束日期', | |||
icon: 'none', | |||
@@ -178,19 +177,19 @@ Page({ | |||
date2: e.detail.value | |||
}) | |||
}, | |||
search(e){ | |||
search(e) { | |||
console.log(e.currentTarget.dataset.ids) | |||
let type = e.currentTarget.dataset.ids; | |||
if(type==0){ | |||
if (type == 0) { | |||
this.setData({ | |||
source:'', | |||
type:'', | |||
status:'', | |||
date:'', | |||
date2:'' | |||
source: '', | |||
type: '', | |||
status: '', | |||
date: '', | |||
date2: '' | |||
}) | |||
} else if(type == 1){ | |||
if(!this.data.date){ | |||
} else if (type == 1) { | |||
if (!this.data.date) { | |||
tt.showToast({ | |||
title: '抱歉请选择开始日期', | |||
icon: 'none', | |||
@@ -198,7 +197,7 @@ Page({ | |||
mask: false | |||
}); | |||
return; | |||
} else if (!this.data.date2){ | |||
} else if (!this.data.date2) { | |||
tt.showToast({ | |||
title: '抱歉请选择结束日期', | |||
icon: 'none', | |||
@@ -209,7 +208,7 @@ Page({ | |||
} | |||
} else if (type == 2) { | |||
this.setData({ | |||
type:e.currentTarget.dataset.id | |||
type: e.currentTarget.dataset.id | |||
}) | |||
} else if (type == 3) { | |||
console.log(e.currentTarget.dataset.id) | |||
@@ -259,22 +258,22 @@ Page({ | |||
}) | |||
console.log(arr, 888888888888) | |||
}, | |||
getTotleData(){ | |||
getTotleData() { | |||
let _this = this; | |||
Http.get({ | |||
url: config.api.getSubsidySummary, | |||
data: { | |||
startdate: this.data.date?this.data.date + " 00:00:00":'', | |||
enddate: this.data.date2?this.data.date2 + " 23:59:59":'', | |||
source: this.data.source, | |||
type: this.data.type, | |||
status: this.data.status | |||
} | |||
}) | |||
url: config.api.getSubsidySummary, | |||
data: { | |||
startdate: this.data.date ? this.data.date + " 00:00:00" : '', | |||
enddate: this.data.date2 ? this.data.date2 + " 23:59:59" : '', | |||
source: this.data.source, | |||
type: this.data.type, | |||
status: this.data.status | |||
} | |||
}) | |||
.then(res => { | |||
console.log(res,777) | |||
console.log(res, 777) | |||
_this.setData({ | |||
subsidy: Number(Number(res.data.subsidy)/100).toFixed(2) | |||
subsidy: Number(Number(res.data.subsidy) / 100).toFixed(2) | |||
}) | |||
tt.stopPullDownRefresh(); | |||
}) | |||
@@ -291,17 +290,17 @@ Page({ | |||
getList: function (page) { | |||
let _this = this; | |||
Http.get({ | |||
url: config.api.getSubsidyList, | |||
data: { | |||
pageNum: page, | |||
pageSize: 10, | |||
startdate: this.data.date ? this.data.date + " 00:00:00" : '', | |||
enddate: this.data.date2 ? this.data.date2 + " 23:59:59" : '', | |||
source: this.data.source, | |||
type: this.data.type, | |||
status: this.data.status | |||
} | |||
}) | |||
url: config.api.getSubsidyList, | |||
data: { | |||
pageNum: page, | |||
pageSize: 10, | |||
startdate: this.data.date ? this.data.date + " 00:00:00" : '', | |||
enddate: this.data.date2 ? this.data.date2 + " 23:59:59" : '', | |||
source: this.data.source, | |||
type: this.data.type, | |||
status: this.data.status | |||
} | |||
}) | |||
.then(res => { | |||
tt.stopPullDownRefresh(); | |||
let data = res.data.list; | |||
@@ -316,7 +315,7 @@ Page({ | |||
item.createDate01 = util.formatTime(item.createDate, 'yyyy-MM-dddd hh:mm:ss') | |||
item.sourceStr = this.data.auditWayOptions.filter(e => e.value == item.source).length > 0 ? this.data.auditWayOptions.filter(e => e.value == item.source)[0].name : ''; | |||
item.typeStr = this.data.billtypes.filter(e => e.id == item.type).length > 0 ? this.data.billtypes.filter(e => e.id == item.type)[0].name : ''; | |||
item.statusStr = item.status===0?'未结算' : "已结算"; | |||
item.statusStr = item.status === 0 ? '未结算' : "已结算"; | |||
allBillList.map((item02, index02) => { | |||
if (item02.id == item.id) { | |||
haveIf = true; | |||
@@ -326,7 +325,7 @@ Page({ | |||
allBillList.push(item) | |||
} | |||
}) | |||
console.log(allBillList,444) | |||
console.log(allBillList, 444) | |||
if (res.data.pages <= page) { | |||
_this.setData({ | |||
allBillList, | |||
@@ -12,19 +12,22 @@ Page({ | |||
data: { | |||
}, | |||
gotoSaoyiSao: function () {//扫码核销、识别会员码 | |||
gotoSaoyiSao: function () { //扫码核销、识别会员码 | |||
tt.setStorageSync("verifyRemark", 12) | |||
tt.scanCode({ | |||
success: function(val) { | |||
success: function (val) { | |||
console.log(val.result); | |||
if (util.isJSON(val.result)) { | |||
let value = JSON.parse(val.result); | |||
console.log(value, 'value'); | |||
if (value.END == 'C' && value.TYPE == 'couponorder' && value.ID.length >= 18) { | |||
Http.getRequest(config.api.couponOrderDetail, app.globalData.token, '加载中', { | |||
couponOrderId: value.ID | |||
couponOrderId: value.ID, | |||
couponTenantId: value.couponTenantId | |||
}, (res) => { | |||
tt.setStorageSync("verifyRemark", 12) | |||
tt.setStorageSync("couponOrderId", value.ID) | |||
tt.setStorageSync("couponTenantId", value.couponTenantId) | |||
if (res.code == 200) { | |||
tt.navigateTo({ | |||
url: `/pages/writeoffPage/writeoffPage` | |||
@@ -71,7 +74,7 @@ Page({ | |||
}) | |||
} | |||
}, | |||
fail:function(){ | |||
fail: function () { | |||
tt.showToast({ | |||
title: '请扫描正确的二维码', | |||
icon: 'none', | |||
@@ -81,12 +84,11 @@ Page({ | |||
}) | |||
}, | |||
// 跳转到手动核销 | |||
aoto: function() { | |||
aoto: function () { | |||
tt.setStorageSync("verifyRemark", 11) | |||
tt.setStorageSync | |||
tt.navigateTo({ | |||
url: '/pages/write0ff/write0ff', | |||
}) | |||
}, | |||
}) | |||
}) |
@@ -37,23 +37,23 @@ Page({ | |||
pageSize: 8, | |||
}, (res) => { | |||
console.log(res) | |||
if(res.data.list &&res.data.list.list.length &&res.data.list.list.length > 0){ | |||
if (res.data.list && res.data.list.list.length && res.data.list.list.length > 0) { | |||
res.data && res.data.list.list.map(file => { | |||
file.expiredTime = format.formatTime(file.expiredTime, 'yyyy-MM-dddd hh:mm:ss') | |||
file.createDate = format.formatTime(file.createDate, 'yyyy-MM-dddd hh:mm:ss') | |||
file.updateDate = format.formatTime(file.updateDate, 'yyyy-MM-dddd hh:mm:ss') | |||
file.ids = file.id.slice(0,4)+`******`+file.id.slice(14) | |||
file.ids = file.id.slice(0, 4) + `******` + file.id.slice(14) | |||
dataList.push(file) | |||
}) | |||
} | |||
console.log(dataList,"dataList"); | |||
console.log(dataList, "dataList"); | |||
this.setData({ | |||
list: dataList, | |||
hide: res.data.list.list == 0 ? true : false | |||
}) | |||
console.log(this.data.list) | |||
resolve(res) | |||
}) | |||
@@ -67,16 +67,16 @@ Page({ | |||
pageSize: 10, | |||
}, (res) => { | |||
console.log(res) | |||
if(res.data.list &&res.data.list.list.length &&res.data.list.list.length > 0){ | |||
if (res.data.list && res.data.list.list.length && res.data.list.list.length > 0) { | |||
res.data && res.data.list.list.map(file => { | |||
file.expiredTime = format.formatTime(file.expiredTime, 'yyyy-MM-dddd hh:mm:ss') | |||
file.createDate = format.formatTime(file.createDate, 'yyyy-MM-dddd hh:mm:ss') | |||
file.updateDate = format.formatTime(file.updateDate, 'yyyy-MM-dddd hh:mm:ss') | |||
file.ids = file.id.slice(0,4)+`******`+file.id.slice(14) | |||
file.ids = file.id.slice(0, 4) + `******` + file.id.slice(14) | |||
dataList.push(file) | |||
}) | |||
} | |||
this.setData({ | |||
list: dataList, | |||
hide: res.data.list.list == 0 ? true : false | |||
@@ -100,7 +100,7 @@ Page({ | |||
nowDateTime: nowTime | |||
}) | |||
this.getList(e.type, page, nowTime) | |||
if (e.type == '0') { // 交易流水 | |||
if (e.type == '0') { // 交易流水 | |||
this.setData({ | |||
flag: true, | |||
text: '未核销', | |||
@@ -111,8 +111,7 @@ Page({ | |||
tt.setNavigationBarTitle({ | |||
title: '交易记录', | |||
}) | |||
} | |||
else { // 核销 | |||
} else { // 核销 | |||
this.setData({ | |||
flag: false, | |||
text: '已核销', | |||
@@ -154,7 +153,7 @@ Page({ | |||
// 退券退款申请成功 | |||
tt.showToast({ | |||
title: res.message, | |||
image:'../../static/images/success.png' | |||
image: '../../static/images/success.png' | |||
}) | |||
setTimeout(() => { | |||
tt.switchTab({ | |||
@@ -165,10 +164,10 @@ Page({ | |||
tt.showModal({ | |||
title: '错误', | |||
content: res.message, | |||
showCancel:false | |||
showCancel: false | |||
}) | |||
} | |||
}, (err) =>{ | |||
}, (err) => { | |||
console.log("err", err) | |||
tt.showModal({ | |||
title: '错误', | |||
@@ -186,7 +185,7 @@ Page({ | |||
this.setData({ | |||
dateTime: e.detail.value, | |||
dataList: [], | |||
list:[] | |||
list: [] | |||
}) | |||
page = 1 | |||
this.setData({ | |||
@@ -6,30 +6,30 @@ const Http = require('../../utils/HttpBasics.js') | |||
Page({ | |||
data: { | |||
cashOutOpenHeadImg:"",//用户头像 | |||
cashOutOpenNickName:"",//用户名 | |||
cashOutCount: "",//当日已提现次数 | |||
cashOutOpenHeadImg: "", //用户头像 | |||
cashOutOpenNickName: "", //用户名 | |||
cashOutCount: "", //当日已提现次数 | |||
cashOutNumber: "", // 可提现余额 | |||
cashOutSupport: "",// 1 - 支持提现 0-不支持提现 | |||
cashOutLimit: "",// 当日提现次数限制 | |||
cashOutSupport: "", // 1 - 支持提现 0-不支持提现 | |||
cashOutLimit: "", // 当日提现次数限制 | |||
city: '', | |||
userInfo: {}, | |||
flag: 'hidden', | |||
isSet:false, | |||
isSet: false, | |||
haveData: false, | |||
ttBalanceUrl:"",//余额链接 | |||
ttImportUrl:"",//进件链接 | |||
ttBalanceUrl: "", //余额链接 | |||
ttImportUrl: "", //进件链接 | |||
}, | |||
toDetail() { | |||
tt.navigateTo({ | |||
url: `./signInDetail/signInDetail?userInfo=${this.data.userInfo}` | |||
}) | |||
}, | |||
phone(e){ | |||
phone(e) { | |||
tt.makePhoneCall({ | |||
phoneNumber: e.currentTarget.dataset.phone | |||
phoneNumber: e.currentTarget.dataset.phone | |||
}) | |||
}, | |||
toExit() { | |||
@@ -51,21 +51,21 @@ Page({ | |||
console.log(that.data.flag) | |||
}, | |||
//获取提现信息 | |||
getTx(){ | |||
getTx() { | |||
Http.get({ | |||
url: config.api.balance | |||
}).then(res=>{ | |||
}).then(res => { | |||
console.log(111) | |||
this.setData({ | |||
cashOutCount: res.data.cashOutCount,//当日已提现次数 | |||
cashOutCount: res.data.cashOutCount, //当日已提现次数 | |||
cashOutNumber: res.data.cashOutNumber, // 可提现余额 | |||
cashOutSupport: res.data.cashOutSupport,// 1 - 支持提现 0-不支持提现 | |||
cashOutLimit: res.data.cashOutLimit,// 当日提现次数限制 | |||
cashOutSupport: res.data.cashOutSupport, // 1 - 支持提现 0-不支持提现 | |||
cashOutLimit: res.data.cashOutLimit, // 当日提现次数限制 | |||
withdrawNun: res.data.cashOutLimit - res.data.cashOutCount, | |||
cashOutOpenHeadImg: res.data.cashOutOpenHeadImg, | |||
cashOutOpenNickName: res.data.cashOutOpenNickName | |||
}) | |||
}).catch(err=>{ | |||
}).catch(err => { | |||
// tt.showToast({ | |||
// title: err.message, | |||
// icon:"none", | |||
@@ -73,10 +73,10 @@ Page({ | |||
// }) | |||
}) | |||
}, | |||
onLoad(){ | |||
onLoad() { | |||
// this.findJurisdiction() | |||
}, | |||
onShow(){ | |||
onShow() { | |||
// this.getTx() | |||
app.globalData.userInfo().then(res => { | |||
this.setData({ | |||
@@ -86,9 +86,10 @@ Page({ | |||
// this.setData({ | |||
// appVersion:appVersion | |||
// }) | |||
console.log(app.globalData.isAdmin); | |||
}, | |||
//提现按钮 | |||
withdraw(){ | |||
withdraw() { | |||
console.log(this.data.cashOutOpenNickName) | |||
tt.navigateTo({ | |||
url: `/pages/withdraw/withdraw?money=${this.data.cashOutNumber}&userTop=${this.data.cashOutOpenHeadImg}&userName=${this.data.cashOutOpenNickName}`, | |||
@@ -97,7 +98,7 @@ Page({ | |||
/** | |||
* 查询是否有修改账户权限 | |||
*/ | |||
findJurisdiction(){ | |||
findJurisdiction() { | |||
Http.get({ | |||
url: config.api.permitModifiy, | |||
}).then(res => { | |||
@@ -121,26 +122,26 @@ Page({ | |||
}) | |||
}, | |||
goWebView(e){ | |||
goWebView(e) { | |||
tt.showLoading({ | |||
title: "获取中!", | |||
}); | |||
let type = e.currentTarget.dataset.type | |||
this.findAccountById(this.data.userInfo.merchant_id,type) | |||
this.findAccountById(this.data.userInfo.merchant_id, type) | |||
}, | |||
/** | |||
* 查询收款账户状态 | |||
*/ | |||
findAccountById(merchant_id,type){ | |||
findAccountById(merchant_id, type) { | |||
Http.get({ | |||
url: config.api.findTt, | |||
data:{ | |||
data: { | |||
id: merchant_id, | |||
urlType:type | |||
urlType: type | |||
} | |||
}).then(res=>{ | |||
}).then(res => { | |||
tt.hideLoading() | |||
console.log(); | |||
/** | |||
@@ -150,7 +151,7 @@ Page({ | |||
*/ | |||
tt.setClipboardData({ | |||
data: res.data, | |||
success: function() { | |||
success: function () { | |||
tt.showToast({ | |||
title: '复制成功 请到浏览器打开', | |||
icon: "none", | |||
@@ -158,12 +159,12 @@ Page({ | |||
}) | |||
} | |||
}) | |||
}).catch(err=>{ | |||
}).catch(err => { | |||
tt.hideLoading() | |||
tt.showToast({ | |||
title: err.message, | |||
icon:"none", | |||
duration:2000 | |||
icon: "none", | |||
duration: 2000 | |||
}) | |||
}) | |||
} |
@@ -1,18 +1,18 @@ | |||
<view> | |||
<view class='mine'> | |||
<image class='img' src='../../assets/images/bannerbg.png' mode="widthFix"></image> | |||
<!-- bindtap='toDetail' --> | |||
<view class='header' > | |||
<view> | |||
<image src='{{userInfo.merchant_img_url}}' mode='{{widthFix}}'></image> | |||
</view> | |||
<view> | |||
<text>{{userInfo.mall_name}}({{userInfo.merchant_name}})</text> | |||
<text>{{userInfo.phone}}</text> | |||
</view> | |||
<!-- <image class='imgs' src='../../assets/images/jian.png' mode="widthFix"></image> --> | |||
<view class='mine'> | |||
<image class='img' src='../../assets/images/bannerbg.png' mode="widthFix"></image> | |||
<!-- bindtap='toDetail' --> | |||
<view class='header'> | |||
<view> | |||
<image src='{{userInfo.merchant_img_url}}' mode='{{widthFix}}'></image> | |||
</view> | |||
<view> | |||
<text>{{userInfo.mall_name}}({{userInfo.merchant_name}})</text> | |||
<text>{{userInfo.phone}}</text> | |||
</view> | |||
<!-- <view class="withdrawBox" tt:if="{{cashOutSupport==1}}"> | |||
<!-- <image class='imgs' src='../../assets/images/jian.png' mode="widthFix"></image> --> | |||
</view> | |||
<!-- <view class="withdrawBox" tt:if="{{cashOutSupport==1}}"> | |||
<view class="textBox"> | |||
<view class="balanceTitle">账户余额</view> | |||
@@ -23,46 +23,43 @@ | |||
<button class="operationBut" bindtap="withdraw" tt:if="{{withdrawNun>0}}">提现到零钱</button> | |||
<button class="noOperationBut" tt:if="{{withdrawNun<=0}}">提现次数已耗尽</button> | |||
</view> --> | |||
<view class='section'> | |||
<view class='section'> | |||
<!-- <navigator url='/pages/withdrawRecord/withdrawRecord' open-type='navigate' hover-class='none' tt:if="{{cashOutSupport==1}}"> | |||
<view> | |||
<text>提现记录</text> | |||
<image class='imgs' src='../../assets/images/jian.png' mode="widthFix"></image> | |||
</view> | |||
</navigator> --> | |||
<navigator url='/pages/forgetpwd/forgetpwd?flags=reset' open-type='navigate' hover-class='none'> | |||
<view> | |||
<text>修改密码</text> | |||
<image class='imgs' src='../../assets/images/jian.png' mode="widthFix"></image> | |||
</view> | |||
</navigator> | |||
<navigator url='/pages/orderUrl/orderUrl' open-type='navigate' hover-class='none' tt:if="{{userInfo.user_is_admin==1}}"> | |||
<view> | |||
<text>导出核销记录</text> | |||
<image class='imgs' src='../../assets/images/jian.png' mode="widthFix"></image> | |||
</view> | |||
</navigator> | |||
<!-- <view bindtap="mode" data-type="{{1}}"> | |||
<text>导出交易订单记录</text> | |||
<navigator url='/pages/forgetpwd/forgetpwd?flags=reset' open-type='navigate' hover-class='none'> | |||
<view> | |||
<text>修改密码</text> | |||
<image class='imgs' src='../../assets/images/jian.png' mode="widthFix"></image> | |||
</view> --> | |||
<view bindtap="goWebView" tt:if="{{userInfo.user_is_admin}}" data-type="{{1}}"> | |||
<text>开通收款账户</text> | |||
<text>点击复制链接</text> | |||
</view> | |||
</navigator> | |||
<view bindtap="goWebView" tt:if="{{userInfo.user_is_admin}}" data-type="{{2}}"> | |||
<text>账户余额</text> | |||
<text>点击复制链接</text> | |||
<navigator url='/pages/orderUrl/orderUrl' open-type='navigate' hover-class='none' | |||
tt:if="{{userInfo.user_is_admin==1&&userInfo.is_admin!=4}}"> | |||
<view> | |||
<text>导出核销记录</text> | |||
<image class='imgs' src='../../assets/images/jian.png' mode="widthFix"></image> | |||
</view> | |||
</navigator> | |||
<!-- <view bindtap="mode" data-type="{{1}}"> | |||
<text>导出交易订单记录</text> | |||
<image class='imgs' src='../../assets/images/jian.png' mode="widthFix"></image> | |||
</view> --> | |||
<view bindtap="goWebView" tt:if="{{userInfo.user_is_admin&&userInfo.is_admin!=4}}" data-type="{{1}}"> | |||
<text>开通收款账户</text> | |||
<text>点击复制链接</text> | |||
</view> | |||
<view bindtap="goWebView" tt:if="{{userInfo.user_is_admin&&userInfo.is_admin!=4}}" data-type="{{2}}"> | |||
<text>账户余额</text> | |||
<text>点击复制链接</text> | |||
</view> | |||
<!-- <navigator url='/pages/accountManagement/index?merchant_id={{userInfo.merchant_id}}&merchant_name={{userInfo.merchant_name}}&phone={{userInfo.phone}}' open-type='navigate' hover-class='none'> | |||
<!-- <navigator url='/pages/accountManagement/index?merchant_id={{userInfo.merchant_id}}&merchant_name={{userInfo.merchant_name}}&phone={{userInfo.phone}}' open-type='navigate' hover-class='none'> | |||
<view> | |||
<text>收款账户管理</text> | |||
<text tt:if="{{!isSet}}">未添加</text> | |||
@@ -83,24 +80,25 @@ | |||
</view> | |||
</navigator> --> | |||
<navigator url='/pages/creditOperate/index' open-type='navigate' hover-class='none'> | |||
<view> | |||
<text>积分操作记录</text> | |||
<image class='imgs' src='../../assets/images/jian.png' mode="widthFix"></image> | |||
</view> | |||
</navigator> | |||
<navigator tt:if="{{!(userInfo.is_admin==4)}}" url='/pages/creditOperate/index' open-type='navigate' | |||
hover-class='none'> | |||
<view> | |||
<text>积分操作记录</text> | |||
<image class='imgs' src='../../assets/images/jian.png' mode="widthFix"></image> | |||
</view> | |||
</navigator> | |||
<view bindtap='phone' data-phone='{{userInfo.service_phone}}'> | |||
<text>客服电话</text> | |||
<text>{{userInfo.service_phone}}</text> | |||
</view> | |||
</view> | |||
<view bindlongtap='showVersion' class='version'> | |||
<!-- <view tt:if="{{flag=='show'}}">版本号:{{appVersion}}</view> --> | |||
<view tt:if="{{flag=='hidden'}}"></view> | |||
<view bindtap='phone' data-phone='{{userInfo.service_phone}}'> | |||
<text>客服电话</text> | |||
<text>{{userInfo.service_phone}}</text> | |||
</view> | |||
<button class='exit' bindtap='toExit' hover-class='active'>退出登录</button> | |||
</view> | |||
</view> | |||
<view bindlongtap='showVersion' class='version'> | |||
<!-- <view tt:if="{{flag=='show'}}">版本号:{{appVersion}}</view> --> | |||
<view tt:if="{{flag=='hidden'}}"></view> | |||
</view> | |||
<button class='exit' bindtap='toExit' hover-class='active'>退出登录</button> | |||
</view> | |||
</view> |
@@ -1,18 +1,19 @@ | |||
<!-- <button type="primary" bindtap="getNetWorkType">获取网络类型</button> | |||
<button type="primary" bindtap="getSystemInfo">获取设备信息</button> --> | |||
<form > | |||
<view class='write0ff'> | |||
<view> | |||
<text>券码</text> | |||
<text class='line'></text> | |||
<!-- <text class='search' bindtap='search' style='color:{{val == "请输券码"?"#ccc":"#666"}};font-size:{{val == "请输券码"?"30rpx":"30rpx"}}'>{{val}}</text> --> | |||
<input class='search' bindinput="setVale" type='number' maxlength='20' focus value='{{inputValue}}' placeholder='请输入券码' placeholder-style='color:#BFBFBF;' /> | |||
<!-- <text hover-class='actives' class='iconfont icon-fangdajing' data-id='{{list.id}}'></text> --> | |||
<!-- <button form-type='submit' hover-class='actives' class='iconfont icon-fangdajing' data-id='{{list.id}}'></button> --> | |||
<view class='iconfont icon-fangdajing' bindtap="toWriteoffPage"></view> | |||
</view> | |||
<!-- <view class='softkey' tt:if='{{flag}}'> | |||
<form> | |||
<view class='write0ff'> | |||
<view> | |||
<text>券码</text> | |||
<text class='line'></text> | |||
<!-- <text class='search' bindtap='search' style='color:{{val == "请输券码"?"#ccc":"#666"}};font-size:{{val == "请输券码"?"30rpx":"30rpx"}}'>{{val}}</text> --> | |||
<input class='search' bindinput="setVale" type='number' maxlength='20' focus value='{{inputValue}}' | |||
placeholder='只能输入当前商场的券码' placeholder-style='color:#BFBFBF;' /> | |||
<!-- <text hover-class='actives' class='iconfont icon-fangdajing' data-id='{{list.id}}'></text> --> | |||
<!-- <button form-type='submit' hover-class='actives' class='iconfont icon-fangdajing' data-id='{{list.id}}'></button> --> | |||
<view class='iconfont icon-fangdajing' bindtap="toWriteoffPage"></view> | |||
</view> | |||
<!-- <view class='softkey' tt:if='{{flag}}'> | |||
<view> | |||
<text tt:for='{{keyBordList}}' tt:key='{{index}}' hover-class='active' bindtap='onClick' data-val='{{item}}'>{{item.num}}</text> | |||
<text hover-class='active' class='iconfont icon-yincangjianpan hideKey' bindtap='hideKey'></text> | |||
@@ -23,5 +24,5 @@ | |||
<text hover-class='active' class='sure' bindtap='toWriteoffPage'>确定</text> | |||
</view> | |||
</view> --> | |||
</view> | |||
</form> | |||
</view> | |||
</form> |
@@ -1,4 +1,3 @@ | |||
const config = require('../../config/config.js') | |||
const Common = require('../../common/common.js') | |||
const format = require('../../utils/util.js') | |||
@@ -8,12 +7,12 @@ Page({ | |||
val: '请输入券码', | |||
couponOrderId: null, | |||
couponOrderDetail: null, | |||
statusImg: '', | |||
statusImg: '', | |||
statusText: '', | |||
flag: false, | |||
detail: '', | |||
remark: '', | |||
contentType: 0, | |||
contentType: 0, | |||
}, | |||
rule() { | |||
@@ -24,108 +23,108 @@ Page({ | |||
onLoad(options) { | |||
if (tt.getStorageSync("couponOrderId")) { | |||
this.setData({ | |||
couponOrderId: tt.getStorageSync("couponOrderId") | |||
couponOrderId: tt.getStorageSync("couponOrderId"), | |||
couponTenantId: tt.getStorageSync("couponTenantId") | |||
}) | |||
this.detailInfo(tt.getStorageSync("couponOrderId")) | |||
this.detailInfo(tt.getStorageSync("couponOrderId"), tt.getStorageSync("couponTenantId")) | |||
} | |||
}, | |||
detailInfo(couponOrderId) { | |||
detailInfo(couponOrderId, couponTenantId) { | |||
var that = this; | |||
Common.getCouponOrderDetail(couponOrderId) | |||
.then(res => { | |||
console.log(res,"res123") | |||
if (res.code == 200) { | |||
this.setData({ | |||
contentType: res.data.contentType ? res.data.contentType : 0 | |||
}) | |||
console.log(this.data.contentType) | |||
if (res.data.contentType != undefined && res.data.contentType == 1) { | |||
Common.getHtml(couponOrderId).then(res => { | |||
if (res.data.html && res.data.html != '') { | |||
app.globalData.curHtml = decodeURI(res.data.html); | |||
} | |||
Common.getCouponOrderDetail(couponOrderId, couponTenantId) | |||
.then(res => { | |||
console.log(res, "res123") | |||
if (res.code == 200) { | |||
this.setData({ | |||
contentType: res.data.contentType ? res.data.contentType : 0 | |||
}) | |||
} | |||
res.data.createDate = format.formatTime(res.data.createDate, 'yyyy-MM-dddd hh:mm:ss') | |||
res.data.expiredTime = format.formatTime(res.data.expiredTime, 'yyyy-MM-dddd hh:mm:ss') | |||
switch (res.data.couponOrderStatus) { | |||
case 0: | |||
//待使用 | |||
that.setData({ | |||
statusText: '未核销', | |||
flag: true | |||
}) | |||
break; | |||
case 1: | |||
//已核销 | |||
that.setData({ | |||
statusImg: '/static/images/use.png', | |||
statusText: '已核销', | |||
flag: false | |||
}) | |||
break; | |||
case 2: | |||
that.setData({ | |||
statusImg: '/static/images/beOverdue.png', | |||
statusText: '已过期', | |||
flag: false | |||
}) | |||
//已过期 | |||
break; | |||
case 3: | |||
that.setData({ | |||
statusImg: '/static/images/refund.png', | |||
statusText: '已退款', | |||
flag: false | |||
}) | |||
//已作废 | |||
break; | |||
default: | |||
tt.showToast({ | |||
title: '数据有误', | |||
image:'../../static/images/fail.png' | |||
console.log(this.data.contentType) | |||
if (res.data.contentType != undefined && res.data.contentType == 1) { | |||
Common.getHtml(couponOrderId).then(res => { | |||
if (res.data.html && res.data.html != '') { | |||
app.globalData.curHtml = decodeURI(res.data.html); | |||
} | |||
}) | |||
} | |||
res.data.createDate = format.formatTime(res.data.createDate, 'yyyy-MM-dddd hh:mm:ss') | |||
res.data.expiredTime = format.formatTime(res.data.expiredTime, 'yyyy-MM-dddd hh:mm:ss') | |||
switch (res.data.couponOrderStatus) { | |||
case 0: | |||
//待使用 | |||
that.setData({ | |||
statusText: '未核销', | |||
flag: true | |||
}) | |||
break; | |||
case 1: | |||
//已核销 | |||
that.setData({ | |||
statusImg: '/static/images/use.png', | |||
statusText: '已核销', | |||
flag: false | |||
}) | |||
break; | |||
case 2: | |||
that.setData({ | |||
statusImg: '/static/images/beOverdue.png', | |||
statusText: '已过期', | |||
flag: false | |||
}) | |||
//已过期 | |||
break; | |||
case 3: | |||
that.setData({ | |||
statusImg: '/static/images/refund.png', | |||
statusText: '已退款', | |||
flag: false | |||
}) | |||
//已作废 | |||
break; | |||
default: | |||
tt.showToast({ | |||
title: '数据有误', | |||
image: '../../static/images/fail.png' | |||
}) | |||
} | |||
console.log(res) | |||
console.log("我是请求回来的数据") | |||
that.setData({ | |||
couponOrderDetail: res.data | |||
}) | |||
} else { | |||
tt.reLaunch({ | |||
url: 'pages/main/writeoffPage/errorPage/errorPage', | |||
}) | |||
} | |||
console.log(res) | |||
console.log("我是请求回来的数据") | |||
that.setData({ | |||
couponOrderDetail: res.data | |||
}) | |||
} else { | |||
tt.reLaunch({ | |||
url: 'pages/main/writeoffPage/errorPage/errorPage', | |||
}) | |||
} | |||
}) | |||
}) | |||
}, | |||
user() { | |||
console.log(tt.getStorageSync("verifyRemark")) | |||
// return | |||
Common.couponOrderVerify(this.data.couponOrderId, tt.getStorageSync("verifyRemark")) | |||
.then(res => { | |||
console.log(res) | |||
if (res.code == 200) { | |||
tt.redirectTo({ | |||
url: '../success/success', | |||
}) | |||
}else{ | |||
Common.couponOrderVerify(this.data.couponOrderId, this.data.couponTenantId, tt.getStorageSync("verifyRemark")) | |||
.then(res => { | |||
console.log(res) | |||
if (res.code == 200) { | |||
tt.redirectTo({ | |||
url: '../success/success', | |||
}) | |||
} else { | |||
tt.showModal({ | |||
title: '抱歉', | |||
content: res.message, | |||
showCancel: false | |||
}) | |||
} | |||
}) | |||
.catch(error => { | |||
console.log(error) | |||
tt.showModal({ | |||
title: '抱歉', | |||
content: res.message, | |||
showCancel:false | |||
content: error.message, | |||
showCancel: false | |||
}) | |||
} | |||
}) | |||
.catch(error=>{ | |||
console.log(error) | |||
tt.showModal({ | |||
title: '抱歉', | |||
content: error.message, | |||
showCancel: false | |||
}) | |||
}) | |||
}, | |||
reBuck() { | |||
tt.switchTab({ | |||
@@ -1,6 +1,6 @@ | |||
{ | |||
"setting": { | |||
"urlCheck": true, | |||
"urlCheck": false, | |||
"es6": true, | |||
"newFeature": false, | |||
"postcss": false, | |||
@@ -16,17 +16,7 @@ | |||
"condition": { | |||
"miniprogram": { | |||
"current": -1, | |||
"list": [ | |||
{ | |||
"id": 1637139224806, | |||
"name": "11", | |||
"pathName": "pages/orderUrl/orderUrl", | |||
"query": "", | |||
"scene": "990001", | |||
"launchFrom": "scan", | |||
"location": "qr_code" | |||
} | |||
] | |||
"list": [] | |||
} | |||
} | |||
} | |||
} |
@@ -0,0 +1,27 @@ | |||
{ | |||
"condition": { | |||
"miniprogram": { | |||
"current": -1, | |||
"list": [ | |||
{ | |||
"id": 1687232092199, | |||
"name": "pages/Appointment/appointment", | |||
"pathName": "pages/Appointment/appointment", | |||
"query": "", | |||
"scene": "990001", | |||
"launchFrom": "scan", | |||
"location": "qr_code" | |||
}, | |||
{ | |||
"id": 1687252858255, | |||
"name": "pages/appointDetail/appointDetail", | |||
"pathName": "pages/appointDetail/appointDetail", | |||
"query": "id=831011125579538432", | |||
"scene": "990001", | |||
"launchFrom": "scan", | |||
"location": "qr_code" | |||
} | |||
] | |||
} | |||
} | |||
} |
@@ -8,10 +8,11 @@ function convertUTCTimeToLocalTime(UTCDateString) { | |||
if (!UTCDateString) { | |||
return '-'; | |||
} | |||
function formatFunc(str) { //格式化显示 | |||
function formatFunc(str) { //格式化显示 | |||
return str > 9 ? str : '0' + str | |||
} | |||
var date2 = new Date(UTCDateString); //这步是关键 | |||
var date2 = new Date(UTCDateString); //这步是关键 | |||
var year = date2.getFullYear(); | |||
var mon = formatFunc(date2.getMonth() + 1); | |||
var day = formatFunc(date2.getDate()); | |||
@@ -20,7 +21,7 @@ function convertUTCTimeToLocalTime(UTCDateString) { | |||
hour = hour >= 24 ? hour - 24 : hour; | |||
hour = formatFunc(hour); | |||
var min = formatFunc(date2.getMinutes()); | |||
var dateStr = ' ' + hour + ':' + min ; | |||
var dateStr = ' ' + hour + ':' + min; | |||
return dateStr; | |||
} | |||
@@ -29,15 +30,15 @@ function convertUTCTimeToLocalTime(UTCDateString) { | |||
// return new Date(+new Date(dateee) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, ''); | |||
// } | |||
function moodsText(Num){//人气值处理 Num人气值 返回字符串 处理到万位 | |||
function moodsText(Num) { //人气值处理 Num人气值 返回字符串 处理到万位 | |||
let sing = "" | |||
if(Num>10000){ | |||
sing = (Num/10000).toFixed(2)+"w" | |||
}else{ | |||
sing =Num | |||
} | |||
return sing | |||
if (Num > 10000) { | |||
sing = (Num / 10000).toFixed(2) + "w" | |||
} else { | |||
sing = Num | |||
} | |||
return sing | |||
} | |||
const formatTime = (date, fmt) => { | |||
@@ -69,9 +70,9 @@ const formatTime = (date, fmt) => { | |||
if (new RegExp("(" + k + ")").test(fmt)) | |||
fmt = fmt.replace( | |||
RegExp.$1, | |||
RegExp.$1.length == 1 | |||
? o[k] | |||
: ("00" + o[k]).substr(("" + o[k]).length) | |||
RegExp.$1.length == 1 ? | |||
o[k] : | |||
("00" + o[k]).substr(("" + o[k]).length) | |||
); | |||
return fmt; | |||
} catch (error) { | |||
@@ -97,6 +98,61 @@ function barc(id, code, width, height) { | |||
); | |||
} | |||
/** | |||
* @description 根据时间戳获取时间 | |||
* @param {*} timestamp 必传,number类型,时间戳数据(10位及以下,10位至13位);若不传,则返回:“无时间戳” | |||
* @param {*} format 选传,string类型,提供以下时间格式:YYYY-MM-DD hh:mm:ss、YYYY/MM/DD hh:mm:ss、YYYY.MM.DD hh:mm:ss、YYYY MM DD hh:mm:ss、YYYY年MM月DD日 hh:mm:ss、YYYY-MM-DD、YYYY/MM/DD、YYYY.MM.DD、YYYY MM DD、YYYY年MM月DD日、hh:mm:ss、hh:mm;若不传,则默认为:YYYY-MM-DD | |||
* @returns 根据要求的时间格式 | |||
* @version V 1.0, Created by YWQ, 2022.10.20 | |||
*/ | |||
function timestampToTime(timestamp, format) { | |||
if (!timestamp) return false | |||
//时间戳为10位需*1000,时间戳为13位不需乘1000 | |||
const length = timestamp ? timestamp.length : '' | |||
if (length <= 10) { | |||
var date = new Date(timestamp * 1000) | |||
} else { | |||
var date = new Date(timestamp) | |||
} | |||
let Y = String(date.getFullYear()) | |||
let M = String(date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) | |||
let D = String(date.getDate() + 1 < 10 ? '0' + (date.getDate()) : date.getDate()) | |||
let h = String(date.getHours() + 1 < 10 ? '0' + (date.getHours()) : date.getHours()) | |||
let m = String(date.getMinutes() + 1 < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) | |||
let s = String(date.getSeconds() + 1 < 10 ? '0' + (date.getSeconds()) : date.getSeconds()) | |||
// return Y + M + D + h + m + s | |||
if (format == "YYYY-MM-DD hh:mm:ss") { | |||
return Y + "-" + M + "-" + D + " " + h + ":" + m + ":" + s | |||
} else if (format == "YYYY/MM/DD hh:mm:ss") { | |||
return Y + "/" + M + "/" + D + " " + h + ":" + m + ":" + s | |||
} else if (format == "YYYY.MM.DD hh:mm:ss") { | |||
return Y + "." + M + "." + D + " " + h + ":" + m + ":" + s | |||
} else if (format == "YYYY MM DD hh:mm:ss") { | |||
return Y + " " + M + " " + D + " " + h + ":" + m + ":" + s | |||
} else if (format == "YYYY年MM月DD日 hh:mm:ss") { | |||
return Y + "年" + M + "月" + D + "日" + " " + h + ":" + m + ":" + s | |||
} else if (format == "YYYY-MM-DD") { | |||
return Y + "-" + M + "-" + D | |||
} else if (format == "YYYY/MM/DD") { | |||
return Y + "/" + M + "/" + D | |||
} else if (format == "YYYY.MM.DD") { | |||
return Y + "." + M + "." + D | |||
} else if (format == "YYYY MM DD") { | |||
return Y + " " + M + " " + D | |||
} else if (format == "YYYY年MM月DD日") { | |||
return Y + "年" + M + "月" + D + "日" | |||
} else if (format == "hh:mm:ss") { | |||
return h + ":" + m + ":" + s | |||
} else if (format == "hh:mm") { | |||
return h + ":" + m | |||
} else { | |||
return Y + "-" + M + "-" + D | |||
} | |||
} | |||
function qrc(id, code, width, height) { | |||
qrcode.api.draw(code, { | |||
ctx: tt.createCanvasContext(id), | |||
@@ -137,20 +193,20 @@ function timechuo(startTime) { | |||
var minute = Math.floor(runTime / 60); | |||
var runTime = runTime % 60; | |||
var second = runTime; | |||
if (day && !year && !month){ | |||
if (day && !year && !month) { | |||
return (day + '天' + hour + "小时" + minute + "分钟") | |||
} else if (month && !year){ | |||
return ((month*30+day) +'天' + hour + "小时" + minute + "分钟") | |||
} else if (month && !year) { | |||
return ((month * 30 + day) + '天' + hour + "小时" + minute + "分钟") | |||
} else if (year) { | |||
return ((year*365 + month*30+ day) + '天' + hour + "小时" + minute + "分钟") | |||
}else{ | |||
return ((year * 365 + month * 30 + day) + '天' + hour + "小时" + minute + "分钟") | |||
} else { | |||
return (hour + "小时" + minute + "分钟") | |||
} | |||
} | |||
//计算时间差 | |||
function timecha(endTime,startTime) { | |||
function timecha(endTime, startTime) { | |||
var s1 = new Date(endTime.replace(/-/g, "/")); | |||
var s2 = new Date(startTime.replace(/-/g, "/")); | |||
var runTime = parseInt((s1.getTime() - s2.getTime()) / 1000); | |||
@@ -165,8 +221,9 @@ function timecha(endTime,startTime) { | |||
var minute = Math.floor(runTime / 60); | |||
var runTime = runTime % 60; | |||
var second = runTime; | |||
return (month+"月"+day+"天"+hour+"小时"+minute+"分钟") | |||
return (month + "月" + day + "天" + hour + "小时" + minute + "分钟") | |||
} | |||
function isJSON(str) { | |||
if (typeof str == 'string') { | |||
console.log("string") | |||
@@ -202,6 +259,7 @@ module.exports = { | |||
// fmtDate: fmtDate, | |||
timechuo: timechuo, | |||
timecha: timecha, | |||
moodsText:moodsText, | |||
convertUTCTimeToLocalTime: convertUTCTimeToLocalTime | |||
}; | |||
moodsText: moodsText, | |||
convertUTCTimeToLocalTime: convertUTCTimeToLocalTime, | |||
timestampToTime: timestampToTime | |||
}; |