发票信息
This commit is contained in:
parent
25816b0373
commit
268d49ec3c
99
app.json
99
app.json
@ -1,50 +1,53 @@
|
||||
{
|
||||
"pages": [
|
||||
"pages/mainPage/mainPage",
|
||||
"pages/login/login",
|
||||
"pages/index/index",
|
||||
"pages/mine/mineIndex/mine",
|
||||
"pages/copyright/createProjectInfo/createProjectInfo",
|
||||
"pages/copyright/createBuy/createBuy",
|
||||
"pages/copyright/payment/payment",
|
||||
"pages/mine/mineAccount/mineCoupons/mineCoupons",
|
||||
"pages/copyright/publicPay/publicPay",
|
||||
"pages/copyright/common/payState",
|
||||
"pages/readTxt/readTxt",
|
||||
"pages/mine/mineAccount/mineInfo/mineInfo",
|
||||
"pages/mine/mineAccount/mineOrder/mineOrder",
|
||||
"pages/mine/mineAccount/mineContact/mineContact",
|
||||
"pages/treaty/rule/rule",
|
||||
"pages/mine/mineAccount/minePayRecord/minePayRecord"
|
||||
],
|
||||
"window": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "AI喵著",
|
||||
"navigationBarBackgroundColor": "#ffffff"
|
||||
},
|
||||
"tabBar": {
|
||||
"custom": true,
|
||||
"color": "#515151",
|
||||
"selectedColor": "#FE9944",
|
||||
"list": [{
|
||||
"pagePath": "pages/index/index",
|
||||
"text": "首页",
|
||||
"iconPath": "/static/images/ic_home_normal.png",
|
||||
"selectedIconPath": "/static/images/ic_home_select.png"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/mine/mineIndex/mine",
|
||||
"text": "我的",
|
||||
"iconPath": "/static/images/ic_mine_normal.png",
|
||||
"selectedIconPath": "/static/images/ic_mine_select.png"
|
||||
}
|
||||
]
|
||||
},
|
||||
"style": "v2",
|
||||
"componentFramework": "glass-easel",
|
||||
"sitemapLocation": "sitemap.json",
|
||||
"lazyCodeLoading": "requiredComponents",
|
||||
"useExtendedLib": {
|
||||
"weui": true
|
||||
}
|
||||
"pages": [
|
||||
"pages/mainPage/mainPage",
|
||||
"pages/login/login",
|
||||
"pages/index/index",
|
||||
"pages/mine/mineIndex/mine",
|
||||
"pages/copyright/createProjectInfo/createProjectInfo",
|
||||
"pages/copyright/createBuy/createBuy",
|
||||
"pages/copyright/payment/payment",
|
||||
"pages/mine/mineAccount/mineCoupons/mineCoupons",
|
||||
"pages/copyright/publicPay/publicPay",
|
||||
"pages/copyright/common/payState",
|
||||
"pages/readTxt/readTxt",
|
||||
"pages/mine/mineAccount/mineInfo/mineInfo",
|
||||
"pages/mine/mineAccount/mineOrder/mineOrder",
|
||||
"pages/mine/mineAccount/mineContact/mineContact",
|
||||
"pages/treaty/rule/rule",
|
||||
"pages/mine/mineAccount/minePayRecord/minePayRecord",
|
||||
"pages/mine/mineAccount/mineInvoice/mineInvoice",
|
||||
"pages/mine/mineAccount/invoiceInfo/invoiceInfo"
|
||||
],
|
||||
"window": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "AI喵著",
|
||||
"navigationBarBackgroundColor": "#ffffff"
|
||||
},
|
||||
"tabBar": {
|
||||
"custom": true,
|
||||
"color": "#515151",
|
||||
"selectedColor": "#FE9944",
|
||||
"list": [
|
||||
{
|
||||
"pagePath": "pages/index/index",
|
||||
"text": "首页",
|
||||
"iconPath": "/static/images/ic_home_normal.png",
|
||||
"selectedIconPath": "/static/images/ic_home_select.png"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/mine/mineIndex/mine",
|
||||
"text": "我的",
|
||||
"iconPath": "/static/images/ic_mine_normal.png",
|
||||
"selectedIconPath": "/static/images/ic_mine_select.png"
|
||||
}
|
||||
]
|
||||
},
|
||||
"style": "v2",
|
||||
"componentFramework": "glass-easel",
|
||||
"sitemapLocation": "sitemap.json",
|
||||
"lazyCodeLoading": "requiredComponents",
|
||||
"useExtendedLib": {
|
||||
"weui": true
|
||||
}
|
||||
}
|
4
app.wxss
4
app.wxss
@ -47,6 +47,10 @@ page {
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
.ml-5 {
|
||||
margin-left: 5rpx;
|
||||
}
|
||||
|
||||
.ml-10 {
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
|
@ -14,6 +14,10 @@ Component({
|
||||
coupons: {
|
||||
type: Object,
|
||||
value: null
|
||||
},
|
||||
couponsList: {
|
||||
type: Array,
|
||||
value: null
|
||||
}
|
||||
},
|
||||
data: {
|
||||
@ -36,17 +40,17 @@ Component({
|
||||
},
|
||||
lifetimes: {
|
||||
ready() {
|
||||
const _self = this
|
||||
const systemInfo = wx.getWindowInfo()
|
||||
this.setData({
|
||||
screenHeight: systemInfo.windowHeight,
|
||||
screenWidth: systemInfo.windowWidth
|
||||
})
|
||||
var phoneHeight = Math.floor(systemInfo.screenWidth / 750 * 100) / 100 //1rpx 是0.52px
|
||||
this.setData({
|
||||
'content.top': _self.data.top * phoneHeight,
|
||||
'content.left': _self.data.left * phoneHeight
|
||||
})
|
||||
// const _self = this
|
||||
// const systemInfo = wx.getWindowInfo()
|
||||
// this.setData({
|
||||
// screenHeight: systemInfo.windowHeight,
|
||||
// screenWidth: systemInfo.windowWidth
|
||||
// })
|
||||
// var phoneHeight = Math.floor(systemInfo.screenWidth / 750 * 100) / 100 //1rpx 是0.52px
|
||||
// this.setData({
|
||||
// 'content.top': _self.data.top * phoneHeight,
|
||||
// 'content.left': _self.data.left * phoneHeight
|
||||
// })
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
@ -2,28 +2,35 @@
|
||||
<view class="ad-container" animation="{{animation}}" style="left: {{initPosition.left}};top:{{initPosition.top}}">
|
||||
<view class="ic-close close-icon" bind:tap="onClose"></view>
|
||||
<view class="image-box">
|
||||
<view class="ad-bg"></view>
|
||||
<view class="ad-content">
|
||||
<view class="price-box">
|
||||
<view class="p-icon">¥</view>
|
||||
<view class="p-content">{{coupons.amount/100}}</view>
|
||||
<image src="https://www.aimzhu.com/miniapp-assets/ad_background.png" mode="scaleToFill" class="ad-coupons-box-bg"></image>
|
||||
<view class="ad-coupons-container">
|
||||
<scroll-view scroll-y style="height: {{couponsList.length>1 ? '550rpx' :'350rpx'}};">
|
||||
<view class="ad-coupons-list-box">
|
||||
<block wx:for="{{couponsList}}" wx:key="index">
|
||||
<view class="ad-coupons-item">
|
||||
<image src="https://www.aimzhu.com/miniapp-assets/ad_item_bg.png" style="width: 100%;height:100%;" mode="scaleToFill"></image>
|
||||
<view class="ad-coupons-item-content">
|
||||
<view class="ad-coupons-item-price">
|
||||
<rich-text nodes="{{tools.coverTxt(item.amount/100)}}"></rich-text>
|
||||
</view>
|
||||
<view class="ad-coupons-item-desc">
|
||||
<view class="ad-coupons-item-desc-title">{{item.title}}</view>
|
||||
<view class="ad-coupons-item-desc-time">{{item.useGmtStart}}至{{item.useGmtEnd}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<view class="custom-checkbox-group" bindtap="toggleCheck">
|
||||
<view class="custom-checkbox {{checked ? 'checked' : ''}}">
|
||||
<text wx:if="{{checked}}">✓</text>
|
||||
</view>
|
||||
<view style="margin-left: 5px;margin-top: 1px;">今日不再显示</view>
|
||||
</view>
|
||||
<view class="ad-desc-box">
|
||||
<text class="ad-desc">{{coupons.title}}</text>
|
||||
<view class="ad-period">期限:{{coupons.useGmtStart}}至{{coupons.useGmtEnd}}</view>
|
||||
</view>
|
||||
<!-- <view class="ad-icon-box">
|
||||
<view class="ad-ic-up-circle ad-icon-size"></view>
|
||||
<view class="ad-ic-down-circle ad-icon-size"></view>
|
||||
</view> -->
|
||||
<view class="btn" bind:tap="onFurl">收下优惠卷</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="custom-checkbox-group" bindtap="toggleCheck">
|
||||
<view class="custom-checkbox {{checked ? 'checked' : ''}}">
|
||||
<text wx:if="{{checked}}">✓</text>
|
||||
</view>
|
||||
<view style="margin-left: 5px;margin-top: 1px;">今日不再显示</view>
|
||||
</view>
|
||||
<view class="btn" bind:tap="onFurl">收下优惠卷</view>
|
||||
</view>
|
||||
</view>
|
||||
<wxs src="../../utils/comm.wxs" module="tools"></wxs>
|
@ -63,12 +63,7 @@
|
||||
}
|
||||
|
||||
|
||||
.image-box {
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
|
||||
.ad-content {
|
||||
position: absolute;
|
||||
@ -85,6 +80,116 @@
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.ad-coupons-box {
|
||||
position: absolute;
|
||||
height: 500rpx;
|
||||
width: 83vw;
|
||||
top: 80rpx;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.ad-coupons-list-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.ad-coupons-item-bg {
|
||||
background-position: center;
|
||||
background-size: contain;
|
||||
background-repeat: no-repeat;
|
||||
background-image: url('https://www.aimzhu.com/miniapp-assets/ad_item_bg.png');
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.ad-coupons-item-content {
|
||||
position: absolute;
|
||||
display: flex;
|
||||
top: 55rpx;
|
||||
left: 0;
|
||||
flex-direction: row;
|
||||
width: 100%;
|
||||
height: 77%;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.ad-coupons-item-price-box {
|
||||
padding: 5rpx;
|
||||
color: #000000;
|
||||
font-size: 40rpx;
|
||||
font-weight: bold;
|
||||
align-items: baseline;
|
||||
justify-content: center;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.ad-coupons-item-desc {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.ad-coupons-item-price {
|
||||
flex: 0.5;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
font-size: 60rpx;
|
||||
font-weight: bold;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.ad-coupons-item-price-icon {
|
||||
font-size: 20rpx;
|
||||
}
|
||||
|
||||
|
||||
.ad-coupons-item-desc-title {
|
||||
font-size: 32rpx;
|
||||
margin-left: 5px;
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
width: 28vw;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.ad-coupons-item-desc-time {
|
||||
font-size: 18rpx;
|
||||
margin-left: 5px;
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
width: 29vw;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.ad-coupons-item {
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 500rpx;
|
||||
height: 240rpx;
|
||||
}
|
||||
|
||||
.ad-coupons-item:nth-of-type(n+2) {
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
|
||||
.price-box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
@ -137,15 +242,15 @@
|
||||
}
|
||||
|
||||
.btn {
|
||||
border-radius: 14px;
|
||||
border-radius: 50rpx;
|
||||
background-color: rgba(255, 169, 0, 1);
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-size: 28rpx;
|
||||
text-align: center;
|
||||
font-family: PingFangSC-regular;
|
||||
margin-top: 20px;
|
||||
padding: 10px;
|
||||
margin-top: 20rpx;
|
||||
padding: 10rpx;
|
||||
width: 55vw;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.close-btn {
|
||||
@ -187,11 +292,27 @@
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.ad-bg {
|
||||
width: 600rpx;
|
||||
height: 600rpx;
|
||||
background-position: center;
|
||||
background-size: contain;
|
||||
background-repeat: no-repeat;
|
||||
background-image: url('https://www.aimzhu.com/miniapp-assets/ad_bg.png');
|
||||
.image-box {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 652rpx;
|
||||
height: 774rpx;
|
||||
}
|
||||
|
||||
/* 图片背景 */
|
||||
.ad-coupons-box-bg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
/* 内容 */
|
||||
.ad-coupons-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
61
net/api/invoiceApi.js
Normal file
61
net/api/invoiceApi.js
Normal file
@ -0,0 +1,61 @@
|
||||
import {
|
||||
request
|
||||
} from "../http";
|
||||
const Cache = require('../../utils/storage');
|
||||
// 公共API
|
||||
const apiPath = {
|
||||
mineInvoiceList: '/api/invoice-config/listpage/{userId}', //我的开票信息
|
||||
saveInvoiceInfo: '/api/invoice-config/save/{userId}', //保存开票信息
|
||||
updateInvoiceInfo: '/api/invoice-config/update/{invoiceId}', //修改开票信息
|
||||
deleteInvoiceInfo: '/api/invoice-config/remove/{ids}', //删除开票信息
|
||||
mineInvoiceRecordList: '/api/invoicerecharge/listpage/{userId}', //我的开票记录
|
||||
saveInvoiceRecord: '/api/invoicerecharge/save/{userId}', // 保存开票申请
|
||||
updateInvoiceRecord: '/api/invoicerecharge/save/{userId}', //修改开票申请
|
||||
cancelInvoiceRecord: '/api/invoicerecharge/cancel/{invoiceRechargeId}', //取消开票申请
|
||||
}
|
||||
|
||||
class InvoiceApi {
|
||||
static userId = Cache.get('userId')
|
||||
//我的开票信息
|
||||
static doGetMineInvoiceList(data) {
|
||||
const path = apiPath.mineInvoiceList.replace('{userId}', this.userId)
|
||||
return request(path, "GET", data, null, 'plug')
|
||||
}
|
||||
//保存我的开票信息
|
||||
static doSaveMineInvoiceInfo(data) {
|
||||
const path = apiPath.saveInvoiceInfo.replace('{userId}', this.userId)
|
||||
return request(path, "POST", data, null, 'plug')
|
||||
}
|
||||
//编辑开票信息
|
||||
static doUpdateMineInvoiceInfo(id, data) {
|
||||
const path = apiPath.updateInvoiceInfo.replace('{invoiceId}', id)
|
||||
return request(path, "PUT", data, null, 'plug')
|
||||
}
|
||||
//删除开票信息
|
||||
static doDelMineInvoiceInfo(id) {
|
||||
const path = apiPath.deleteInvoiceInfo.replace('{ids}', id)
|
||||
return request(path, "DELETE", null, null, 'plug')
|
||||
}
|
||||
//开票申请列表
|
||||
static doGetInvoiceRecordList(data) {
|
||||
const path = apiPath.mineInvoiceRecordList.replace('{userId}', this.userId)
|
||||
return request(path, "GET", data, null, 'plug')
|
||||
}
|
||||
//取消开票申请
|
||||
static doCancelInvoiceRecord(id) {
|
||||
const path = apiPath.cancelInvoiceRecord.replace('{invoiceRechargeId}', id)
|
||||
return request(path, "DELETE", null, null, 'plug')
|
||||
}
|
||||
//提交开票申请
|
||||
static doSaveInvoiceRecord(data) {
|
||||
const path = apiPath.saveInvoiceRecord.replace('{userId}', this.userId)
|
||||
return request(path, "POST", data, null, 'plug')
|
||||
}
|
||||
//修改开票申请
|
||||
static doUpdateInvoiceRecord(data) {
|
||||
const path = apiPath.updateInvoiceRecord.replace('{userId}', this.userId)
|
||||
return request(path, 'PUT', data, null, 'plug')
|
||||
}
|
||||
}
|
||||
|
||||
export default InvoiceApi;
|
@ -19,7 +19,7 @@ const apiPath = {
|
||||
delContact: '/api/proj-contact/remove/{ids}', //删除联系人
|
||||
canClaimsCoupons: '/api/coupon/list-can-claim', //获取可以申领的优惠卷
|
||||
saveCoupons: '/api/coupon/user/save', //领取优惠卷
|
||||
minePayRecord: '/api/account/listpage-item/self'
|
||||
minePayRecord: '/api/account/listpage-item/self',
|
||||
}
|
||||
class UserService {
|
||||
static doLogin(data) {
|
||||
|
@ -2,6 +2,7 @@ const Cache = require('../utils/storage');
|
||||
// 定义api服务地址
|
||||
// const baseUrl = 'https://www.xzszwhy.cn/daqi/app';
|
||||
const operatorUrl = 'https://www.aimzhu.com/operator';
|
||||
const operatorPlug = 'https://www.aimzhu.com/operator-plugin'
|
||||
// const operatorUrl = 'https://www.aimzhu.com/operator';
|
||||
const copyrightUrl = 'https://www.aimzhu.com/copyright';
|
||||
const uploadImgUrl = copyrightUrl + '/api/file/v2/upload-image'
|
||||
@ -33,6 +34,8 @@ function request(url, method = "GET", data = {}, params = {}, project = "copyrig
|
||||
baseUrl = copyrightUrl
|
||||
} else if (project == 'online') {
|
||||
baseUrl = 'https://www.aimzhu.com/operator'
|
||||
} else if (project == 'plug') {
|
||||
baseUrl = operatorPlug
|
||||
}
|
||||
return new Promise(function (resolve, reject) {
|
||||
wx.request({
|
||||
|
@ -117,6 +117,17 @@ Page({
|
||||
_self.doGetClaimsCoupons()
|
||||
}
|
||||
this.countViewHeight()
|
||||
this.getMineInfo()
|
||||
},
|
||||
//获取我的个人信息
|
||||
getMineInfo() {
|
||||
UserApi.doGetMineAccount()
|
||||
.then(res => {
|
||||
Cache.set('userId', res.userId)
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err)
|
||||
})
|
||||
},
|
||||
onShow() {
|
||||
const pages = getCurrentPages();
|
||||
@ -157,7 +168,7 @@ Page({
|
||||
.then(res => {
|
||||
if (res && res.length > 0) {
|
||||
_self.setData({
|
||||
tempCoupons: res[0],
|
||||
tempCoupons: res,
|
||||
showAd: true
|
||||
})
|
||||
}
|
||||
@ -540,10 +551,13 @@ Page({
|
||||
wx.showLoading({
|
||||
title: '领取中...',
|
||||
})
|
||||
const coupons = {
|
||||
couponId: _self.data.tempCoupons.couponId
|
||||
}
|
||||
UserApi.doSaveCoupons(coupons)
|
||||
const requests = _self.data.tempCoupons.map(item => {
|
||||
const coupons = {
|
||||
couponId: _self.data.tempCoupons.couponId
|
||||
}
|
||||
return UserApi.doSaveCoupons(coupons)
|
||||
})
|
||||
Promise.all(requests)
|
||||
.then(res => {
|
||||
wx.hideLoading()
|
||||
_self.setData({
|
||||
|
@ -162,5 +162,5 @@
|
||||
<down-progress isShow="{{downloading}}" progress="{{downloadProgress}}"></down-progress>
|
||||
<mp-toptips ext-class="custom-tips" msg="{{errorHint}}" type="error" show="{{showError}}"></mp-toptips>
|
||||
<mp-toptips ext-class="custom-tips" msg="{{successHint}}" delay="2000" type="success" show="{{showSuccess}}"></mp-toptips>
|
||||
<ad-popup coupons="{{tempCoupons}}" bindclose="doCloseAd" bindfurl="doFurlCoupons" visible="{{showAd}}"></ad-popup>
|
||||
<ad-popup couponsList="{{tempCoupons}}" bindclose="doCloseAd" bindfurl="doFurlCoupons" visible="{{showAd}}"></ad-popup>
|
||||
<wxs src="../../utils/comm.wxs" module="tools"></wxs>
|
337
pages/mine/mineAccount/invoiceInfo/invoiceInfo.js
Normal file
337
pages/mine/mineAccount/invoiceInfo/invoiceInfo.js
Normal file
@ -0,0 +1,337 @@
|
||||
// pages/mine/mineAccount/invoiceInfo/invoiceInfo.js
|
||||
import InvoiceApi from '../../../../net/api/invoiceApi'
|
||||
import {
|
||||
isValidPhone
|
||||
} from '../../../../utils/validator'
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
keywords: '',
|
||||
pageData: {
|
||||
page: 1,
|
||||
rows: 10,
|
||||
keywords: ''
|
||||
},
|
||||
msgShow: false,
|
||||
msgHint: '',
|
||||
msgType: 'error',
|
||||
loadingState: 'loading',
|
||||
listRefreshTrig: false,
|
||||
isLoadMore: false,
|
||||
hasMore: true,
|
||||
createDialog: false,
|
||||
title: '开票信息',
|
||||
isCreate: true, //区别是创建 or 编辑
|
||||
companyName: '', //公司名称
|
||||
companyAddress: '', //公司地址
|
||||
companyPhone: '', //公司电话
|
||||
companyBank: '', //公司开户行
|
||||
bankNum: '', //开户行账号
|
||||
tinNum: '', //纳税人识别号
|
||||
btnTxt: '提交',
|
||||
invoiceInfoList: [], //开票信息列表
|
||||
tempItem: null,
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad(options) {
|
||||
wx.setNavigationBarTitle({
|
||||
title: '开票信息',
|
||||
})
|
||||
wx.setNavigationBarColor({
|
||||
frontColor: '#000000', // 必写项,字体颜色仅支持#ffffff和#000000
|
||||
backgroundColor: '#F0F0F0', // 传递的颜色值,仅支持十六进制颜色
|
||||
animation: { // 可选项
|
||||
duration: 500,
|
||||
timingFunc: 'easeIn'
|
||||
}
|
||||
})
|
||||
this.doRefreshList()
|
||||
},
|
||||
inputKeywords(e) {
|
||||
this.setData({
|
||||
keywords: e.detail.value
|
||||
})
|
||||
},
|
||||
//清除搜索内容
|
||||
clearSearch() {
|
||||
const _self = this
|
||||
_self.setData({
|
||||
keywords: ''
|
||||
})
|
||||
_self.doRefreshList()
|
||||
},
|
||||
//发起搜索
|
||||
doSearchKeyWord() {
|
||||
const _self = this
|
||||
_self.doRefreshList()
|
||||
},
|
||||
doGetInvoiceInfoList(isRefresh) {
|
||||
const _self = this
|
||||
_self.setData({
|
||||
invoiceInfoList: isRefresh ? [] : _self.data.invoiceInfoList,
|
||||
loadingState: isRefresh ? 'loading' : ''
|
||||
})
|
||||
InvoiceApi.doGetMineInvoiceList(_self.data.pageData)
|
||||
.then(res => {
|
||||
console.log(res)
|
||||
var status = 'success'
|
||||
status = res.rows && res.rows.length > 0 ? 'success' : 'empty'
|
||||
_self.setData({
|
||||
loadingState: isRefresh ? status : '',
|
||||
invoiceInfoList: _self.data.invoiceInfoList.concat(res.rows),
|
||||
listRefreshTrig: false,
|
||||
isLoadMore: false
|
||||
})
|
||||
_self.setData({
|
||||
hasMore: _self.data.invoiceInfoList.length < res.total
|
||||
})
|
||||
}, err => {
|
||||
_self.setData({
|
||||
loadingState: 'error',
|
||||
listRefreshTrig: false,
|
||||
isLoadMore: false,
|
||||
hasMore: true
|
||||
})
|
||||
})
|
||||
},
|
||||
doRefreshList() {
|
||||
console.log('正在刷新...')
|
||||
const _self = this
|
||||
_self.setData({
|
||||
listRefreshTrig: true,
|
||||
loadingState: 'loading',
|
||||
hasMore: true,
|
||||
'pageData.page': 1,
|
||||
'pageData.keywords': _self.data.keywords,
|
||||
isLoadMore: false
|
||||
})
|
||||
_self.doGetInvoiceInfoList(true)
|
||||
},
|
||||
doLoadMore() {
|
||||
//判断是否正在加载中 与是否存在更多数据
|
||||
const _self = this
|
||||
if (_self.data.isLoadMore || !_self.data.hasMore) {
|
||||
return
|
||||
}
|
||||
_self.setData({
|
||||
isLoadMore: true,
|
||||
'pageData.page': ++_self.data.pageData.page,
|
||||
'pageData.keywords': _self.data.keywords
|
||||
})
|
||||
_self.doGetInvoiceInfoList(false)
|
||||
},
|
||||
inputCompanyName(e) {
|
||||
this.setData({
|
||||
companyName: e.detail.value
|
||||
})
|
||||
},
|
||||
inputTinNum(e) {
|
||||
this.setData({
|
||||
tinNum: e.detail.value
|
||||
})
|
||||
},
|
||||
inputAddress(e) {
|
||||
this.setData({
|
||||
companyAddress: e.detail.value
|
||||
})
|
||||
},
|
||||
inputPhone(e) {
|
||||
this.setData({
|
||||
companyPhone: e.detail.value
|
||||
})
|
||||
},
|
||||
inputBank(e) {
|
||||
this.setData({
|
||||
companyBank: e.detail.value
|
||||
})
|
||||
},
|
||||
inputBankNum(e) {
|
||||
this.setData({
|
||||
bankNum: e.detail.value
|
||||
})
|
||||
},
|
||||
showCreateDialog() {
|
||||
this.setData({
|
||||
title: '开票信息',
|
||||
isCreate: true,
|
||||
createDialog: !this.data.createDialog
|
||||
})
|
||||
},
|
||||
//显示编辑
|
||||
showEditDialog(e) {
|
||||
const _self = this
|
||||
const item = e.currentTarget.dataset.value
|
||||
_self.setData({
|
||||
tempItem: item,
|
||||
companyName: item.invoiceName,
|
||||
tinNum: item.invoiceNumber,
|
||||
companyAddress: item.invoiceOrgaddress,
|
||||
companyPhone: item.invoiceOrgtel,
|
||||
companyBank: item.invoiceBank,
|
||||
bankNum: item.invoiceBanknumber,
|
||||
isCreate: false,
|
||||
createDialog: true
|
||||
})
|
||||
},
|
||||
//删除
|
||||
showDelDialog(e) {
|
||||
wx.showModal({
|
||||
title: '警告',
|
||||
content: '您确定要删除该开票信息吗?',
|
||||
complete: (res) => {
|
||||
if (res.confirm) {
|
||||
this.doDeleteInvoiceInfo(e)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
//删除开票信息
|
||||
doDeleteInvoiceInfo(e) {
|
||||
const item = e.currentTarget.dataset.value
|
||||
const _self = this
|
||||
wx.showLoading({
|
||||
title: '删除中...',
|
||||
})
|
||||
InvoiceApi.doDelMineInvoiceInfo(item.invoiceId)
|
||||
.then(res => {
|
||||
wx.hideLoading()
|
||||
_self.setData({
|
||||
msgHint: '删除成功',
|
||||
msgType: 'success',
|
||||
msgShow: true
|
||||
})
|
||||
_self.doRefreshList()
|
||||
})
|
||||
.catch(err => {
|
||||
wx.hideLoading()
|
||||
_self.setData({
|
||||
msgHint: err.msg ? err.msg : '删除失败,请稍后重试',
|
||||
msgType: 'error',
|
||||
msgShow: true
|
||||
})
|
||||
})
|
||||
},
|
||||
//编辑开票信息
|
||||
editInvoiceInfo() {
|
||||
const isLegl = this.checkParams()
|
||||
if (isLegl) {
|
||||
const _self = this
|
||||
wx.showLoading({
|
||||
title: '修改中...',
|
||||
})
|
||||
const data = _self.buildParams()
|
||||
InvoiceApi.doUpdateMineInvoiceInfo(_self.data.tempItem.invoiceId, data)
|
||||
.then(res => {
|
||||
wx.hideLoading()
|
||||
_self.setData({
|
||||
tempItem: null,
|
||||
msgType: 'success',
|
||||
msgHint: '修改开票信息成功',
|
||||
msgShow: true,
|
||||
companyName: '',
|
||||
tinNum: '',
|
||||
companyAddress: '',
|
||||
companyPhone: '',
|
||||
companyBank: '',
|
||||
bankNum: '',
|
||||
isCreate: true,
|
||||
createDialog: false
|
||||
})
|
||||
_self.doRefreshList()
|
||||
})
|
||||
.catch(err => {
|
||||
wx.hideLoading()
|
||||
_self.setData({
|
||||
msgType: 'error',
|
||||
msgHint: err.msg ? err.msg : '修改开票信息失败,请稍后重试',
|
||||
msgShow: true
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
buildParams() {
|
||||
const _self = this
|
||||
const data = {
|
||||
invoiceType: "企业",
|
||||
invoiceName: _self.data.companyName,
|
||||
invoiceNumber: _self.data.tinNum,
|
||||
invoiceOrgaddress: _self.data.companyAddress,
|
||||
invoiceOrgtel: _self.data.companyPhone,
|
||||
invoiceBank: _self.data.companyBank,
|
||||
invoiceBanknumber: _self.data.bankNum,
|
||||
}
|
||||
return data
|
||||
},
|
||||
//新增开票信息
|
||||
saveInvoiceInfo() {
|
||||
const _self = this
|
||||
var isLegal = _self.checkParams()
|
||||
if (isLegal) {
|
||||
wx.showLoading({
|
||||
title: '提交中...',
|
||||
})
|
||||
const data = _self.buildParams()
|
||||
InvoiceApi.doSaveMineInvoiceInfo(data)
|
||||
.then(res => {
|
||||
wx.hideLoading()
|
||||
_self.setData({
|
||||
msgType: 'success',
|
||||
msgHint: '新增开票信息成功',
|
||||
msgShow: true,
|
||||
companyName: '',
|
||||
tinNum: '',
|
||||
companyAddress: '',
|
||||
companyPhone: '',
|
||||
companyBank: '',
|
||||
bankNum: '',
|
||||
createDialog: false
|
||||
})
|
||||
_self.doRefreshList()
|
||||
})
|
||||
.catch(err => {
|
||||
wx.hideLoading()
|
||||
_self.setData({
|
||||
msgType: 'error',
|
||||
msgHint: err.msg ? err.msg : '新增开票信息失败,请稍后重试',
|
||||
msgShow: true
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
checkParams() {
|
||||
var _self = this
|
||||
if (_self.data.companyName == '') {
|
||||
_self.setData({
|
||||
msgType: 'error',
|
||||
msgHint: '请输入公司名称',
|
||||
msgShow: true
|
||||
})
|
||||
return false
|
||||
}
|
||||
if (_self.data.tinNum == '') {
|
||||
_self.setData({
|
||||
msgType: 'error',
|
||||
msgHint: '请输入纳税人识别号',
|
||||
msgShow: true
|
||||
})
|
||||
return false
|
||||
}
|
||||
if (_self.data.companyPhone != '') {
|
||||
if (!isValidPhone(_self.data.companyPhone)) {
|
||||
_self.setData({
|
||||
msgType: 'error',
|
||||
msgHint: '公司电话号码有误,请核查',
|
||||
msgShow: true
|
||||
})
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
})
|
8
pages/mine/mineAccount/invoiceInfo/invoiceInfo.json
Normal file
8
pages/mine/mineAccount/invoiceInfo/invoiceInfo.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
"mp-half-screen-dialog": "weui-miniprogram/half-screen-dialog/half-screen-dialog",
|
||||
"mp-loading": "weui-miniprogram/loading/loading",
|
||||
"container-loading": "/components/container-loading/container-loading",
|
||||
"mp-toptips": "weui-miniprogram/toptips/toptips"
|
||||
}
|
||||
}
|
77
pages/mine/mineAccount/invoiceInfo/invoiceInfo.wxml
Normal file
77
pages/mine/mineAccount/invoiceInfo/invoiceInfo.wxml
Normal file
@ -0,0 +1,77 @@
|
||||
<view class="page-container">
|
||||
<view class="search-box">
|
||||
<view class="search-container">
|
||||
<input class="search-input" value="{{keywords}}" bindinput="inputKeywords" bindconfirm="doSearchKeyWord" type="text" confirm-type="search" placeholder="搜索" />
|
||||
<view wx:if="{{keywords !=''}}" bind:tap="clearSearch" class="icon-clear" style="width: 20px;height: 20px;"></view>
|
||||
</view>
|
||||
<view class="add-btn" bind:tap="showCreateDialog">新建</view>
|
||||
</view>
|
||||
<view class="content-container">
|
||||
<container-loading loadingState="{{loadingState}}" style="height: 85vh;" bindrefresh="doRefreshList">
|
||||
<scroll-view scroll-y="{{true}}" style="height: 85vh;padding-bottom: 40px;" bindrefresherrefresh="doRefreshList" refresher-enabled refresher-triggered="{{listRefreshTrig}}" bindscrolltolower="doLoadMore" lower-threshold='30'>
|
||||
<view class="order-box">
|
||||
<block wx:for="{{invoiceInfoList}}" wx:key="index">
|
||||
<view class="order-item">
|
||||
<view class="contact-desc">
|
||||
<view class="contact-icon">
|
||||
<view class="ic-user" style="width: 24px;height: 24px;"></view>
|
||||
<view class="ml-10 name">{{item.invoiceName}}</view>
|
||||
</view>
|
||||
<view class="options-box">
|
||||
<view class="edit" bind:tap="showEditDialog" data-value="{{item}}">编辑</view>
|
||||
<view class="del" bind:tap="showDelDialog" data-value="{{item}}">删除</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="service-desc ml-10">纳税识别号:{{item.invoiceNumber}}</view>
|
||||
<view class="service-desc ml-10">企业电话:{{item.invoiceOrgtel}}</view>
|
||||
<view class="service-desc ml-5" wx:if="{{item.invoiceOrgaddress != ''}}">
|
||||
<view class="icon-yellow-location" style="width: 32rpx;height: 32rpx;"></view>
|
||||
<view class="ml-10">{{item.invoiceOrgaddress}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
<mp-loading show="{{isLoadMore}}" type="circle"></mp-loading>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</container-loading>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 新增 -->
|
||||
<mp-half-screen-dialog show="{{createDialog}}">
|
||||
<view slot="title">{{title}}</view>
|
||||
<view slot="desc">
|
||||
<view class="form-box">
|
||||
<view class="form-item">
|
||||
<view class="form-item-title">公司名称</view>
|
||||
<input confirm-type="next" type="text" adjust-position="{{true}}" cursor-spacing="{{50}}" value="{{companyName}}" placeholder="请输入公司名称" class="form-item-content" bindinput="inputCompanyName" />
|
||||
</view>
|
||||
<view class="form-item">
|
||||
<view class="form-item-title">纳税人识别号</view>
|
||||
<input confirm-type="next" type="text" adjust-position="{{true}}" cursor-spacing="{{50}}" value="{{tinNum}}" placeholder="请输入纳税人识别号" class="form-item-content" bindinput="inputTinNum" />
|
||||
</view>
|
||||
<view class="form-item">
|
||||
<view class="form-item-title no-after" style="padding-left: 16rpx;">公司地址</view>
|
||||
<input confirm-type="next" type="text" adjust-position="{{true}}" cursor-spacing="{{50}}" value="{{companyAddress}}" placeholder="请输入公司地址" class="form-item-content" bindinput="inputAddress" />
|
||||
</view>
|
||||
<view class="form-item">
|
||||
<view class="form-item-title no-after" style="padding-left: 16rpx;">公司电话</view>
|
||||
<input confirm-type="next" type="text" adjust-position="{{true}}" cursor-spacing="{{50}}" value="{{companyPhone}}" placeholder="请输入公司电话" class="form-item-content" bindinput="inputPhone" />
|
||||
</view>
|
||||
<view class="form-item">
|
||||
<view class="form-item-title no-after" style="padding-left: 16rpx;">开户行</view>
|
||||
<input confirm-type="next" type="text" adjust-position="{{true}}" cursor-spacing="{{50}}" value="{{companyBank}}" placeholder="请输入开户行" class="form-item-content" bindinput="inputBank" />
|
||||
</view>
|
||||
<view class="form-item">
|
||||
<view class="form-item-title no-after" style="padding-left: 16rpx;">开户行账号</view>
|
||||
<input confirm-type="next" type="text" adjust-position="{{true}}" cursor-spacing="{{50}}" value="{{bankNum}}" placeholder="请输入开户行账号" class="form-item-content" bindinput="inputBankNum" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view slot="footer">
|
||||
<button wx:if="{{isCreate}}" class="confirm-btn" bind:tap="saveInvoiceInfo">{{btnTxt}}</button>
|
||||
<button wx:if="{{!isCreate}}" class="confirm-btn" bind:tap="editInvoiceInfo">{{btnTxt}}</button>
|
||||
</view>
|
||||
</mp-half-screen-dialog>
|
||||
|
||||
<mp-toptips msg="{{msgHint}}" type="{{msgType}}" show="{{msgShow}}" delay="{{2000}}"></mp-toptips>
|
261
pages/mine/mineAccount/invoiceInfo/invoiceInfo.wxss
Normal file
261
pages/mine/mineAccount/invoiceInfo/invoiceInfo.wxss
Normal file
@ -0,0 +1,261 @@
|
||||
/* pages/mine/mineAccount/mineInvoice/mineInvoice.wxss */
|
||||
page {
|
||||
background: linear-gradient(to bottom, #F0F0F0, #FFFFFF);
|
||||
background-size: 100% 100vh;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.ic-user {
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQzOTg4MzkwNjkwIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjM0MDkiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiAxMDI0QzIyOS4yMDUzMzMgMTAyNCAwIDc5NC43OTQ2NjcgMCA1MTJTMjI5LjIwNTMzMyAwIDUxMiAwczUxMiAyMjkuMjA1MzMzIDUxMiA1MTItMjI5LjIwNTMzMyA1MTItNTEyIDUxMnogbTAtNDk2LjQ2OTMzM2ExNzAuNjY2NjY3IDE3MC42NjY2NjcgMCAxIDAgMC0zNDEuMzMzMzM0IDE3MC42NjY2NjcgMTcwLjY2NjY2NyAwIDAgMCAwIDM0MS4zMzMzMzR6IG0yNjMuNzY1MzMzIDI2My43MjI2NjZhMjYzLjc2NTMzMyAyNjMuNzY1MzMzIDAgMSAwLTUyNy41MzA2NjYgMGg1MjcuNTMwNjY2eiIgcC1pZD0iMzQxMCIgZmlsbD0iIzEyOTZkYiI+PC9wYXRoPjwvc3ZnPg==');
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
|
||||
.search-box {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
align-self: center;
|
||||
width: 96vw;
|
||||
}
|
||||
|
||||
.search-container {
|
||||
position: relative;
|
||||
align-self: center;
|
||||
border-radius: 5px;
|
||||
background-color: rgba(255, 255, 255, 1);
|
||||
font-family: -regular;
|
||||
margin: 10px 15px;
|
||||
padding: 5px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.search-input {
|
||||
box-sizing: border-box;
|
||||
color: rgba(16, 16, 16, 1);
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.search-input::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
margin-top: -1px;
|
||||
background-size: cover;
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSI2NCA2NCA4OTYgODk2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTkiIHN0eWxlPSIiIGZpbHRlcj0ibm9uZSI+CiAgICAKICAgIDxnPgogICAgPHBhdGggZD0iTTkwOS42IDg1NC41TDY0OS45IDU5NC44QzY5MC4yIDU0Mi43IDcxMiA0NzkgNzEyIDQxMmMwLTgwLjItMzEuMy0xNTUuNC04Ny45LTIxMi4xLTU2LjYtNTYuNy0xMzItODcuOS0yMTIuMS04Ny45cy0xNTUuNSAzMS4zLTIxMi4xIDg3LjlDMTQzLjIgMjU2LjUgMTEyIDMzMS44IDExMiA0MTJjMCA4MC4xIDMxLjMgMTU1LjUgODcuOSAyMTIuMUMyNTYuNSA2ODAuOCAzMzEuOCA3MTIgNDEyIDcxMmM2NyAwIDEzMC42LTIxLjggMTgyLjctNjJsMjU5LjcgMjU5LjZhOC4yIDguMiAwIDAgMCAxMS42IDBsNDMuNi00My41YTguMiA4LjIgMCAwIDAgMC0xMS42ek01NzAuNCA1NzAuNEM1MjggNjEyLjcgNDcxLjggNjM2IDQxMiA2MzZzLTExNi0yMy4zLTE1OC40LTY1LjZDMjExLjMgNTI4IDE4OCA0NzEuOCAxODggNDEyczIzLjMtMTE2LjEgNjUuNi0xNTguNEMyOTYgMjExLjMgMzUyLjIgMTg4IDQxMiAxODhzMTE2LjEgMjMuMiAxNTguNCA2NS42UzYzNiAzNTIuMiA2MzYgNDEycy0yMy4zIDExNi4xLTY1LjYgMTU4LjR6IiBmaWxsPSJyZ2JhKDIwNCwyMDQsMjA0LDEpIj48L3BhdGg+CiAgICA8L2c+CiAgPC9zdmc+');
|
||||
}
|
||||
|
||||
.add-btn {
|
||||
border-radius: 4px;
|
||||
background-color: rgba(50, 112, 255, 1);
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
font-family: PingFangSC-regular;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
.add-btn:active {
|
||||
background-color: rgba(50, 112, 255, .7);
|
||||
}
|
||||
|
||||
.content-container {
|
||||
height: 82vh;
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
.bottom-btn {
|
||||
position: fixed;
|
||||
bottom: 40rpx;
|
||||
left: 0;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.order-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.order-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: white;
|
||||
border-radius: 10px;
|
||||
width: 94vw;
|
||||
}
|
||||
|
||||
.order-item:nth-of-type(n+2) {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.contact-desc {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.contact-icon {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.name {
|
||||
line-height: 32rpx;
|
||||
flex: 1;
|
||||
color: rgba(0, 0, 0, 1);
|
||||
font-size: 28rpx;
|
||||
text-align: left;
|
||||
font-weight: bold;
|
||||
font-family: SourceHanSansSC-black;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.service-desc {
|
||||
padding: 5rpx 15rpx 15rpx 30rpx;
|
||||
line-height: 26rpx;
|
||||
color: rgba(122, 122, 122, 1);
|
||||
font-size: 26rpx;
|
||||
text-align: left;
|
||||
font-family: SourceHanSansSC-regular;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.edit {
|
||||
line-height: 20px;
|
||||
border-radius: 4px;
|
||||
background-color: rgba(122, 196, 131, 0.42);
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 28rpx;
|
||||
text-align: center;
|
||||
font-family: PingFangSC-regular;
|
||||
padding: 5rpx 10rpx;
|
||||
}
|
||||
|
||||
.del {
|
||||
line-height: 20px;
|
||||
border-radius: 4px;
|
||||
background-color: rgba(247, 49, 42, 0.42);
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 28rpx;
|
||||
text-align: center;
|
||||
font-family: PingFangSC-regular;
|
||||
padding: 5rpx 10rpx;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.del:active {
|
||||
background-color: rgba(247, 49, 42, 0.7);
|
||||
}
|
||||
|
||||
.options-box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-wrap: nowrap;
|
||||
min-width: 170rpx;
|
||||
}
|
||||
|
||||
.edit:active {
|
||||
background-color: rgba(122, 196, 131, 0.6);
|
||||
}
|
||||
|
||||
|
||||
.form-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: flex-start;
|
||||
font-size: 14px;
|
||||
width: 100vw;
|
||||
}
|
||||
|
||||
.form-item {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
width: 80vw;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.form-item-title {
|
||||
flex: .5;
|
||||
font-size: 14px;
|
||||
color: black;
|
||||
font-weight: 500;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.form-item-title:not(.no-after)::before {
|
||||
content: "*";
|
||||
color: red;
|
||||
font-size: 14px;
|
||||
margin-left: 1px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.form-item-content {
|
||||
flex: 1;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.confirm-btn {
|
||||
background-color: #FFA900;
|
||||
color: white;
|
||||
font-size: 16px;
|
||||
height: 70rpx;
|
||||
line-height: 70rpx;
|
||||
border-radius: 5px;
|
||||
width: 85vw !important;
|
||||
padding: 0rpx;
|
||||
}
|
||||
|
||||
.confirm-btn:active {
|
||||
background-color: #ffaa0083;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__ft {
|
||||
padding: 0rpx 0rpx 40rpx;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__bd {
|
||||
padding-bottom: 40rpx;
|
||||
}
|
@ -310,7 +310,7 @@ Page({
|
||||
_self.setData({
|
||||
isLoadMore: true,
|
||||
'pageData.page': ++_self.data.pageData.page,
|
||||
keywords: _self.data.keywords
|
||||
'pageData.keywords': _self.data.keywords
|
||||
})
|
||||
_self.doGetMineContactList(false)
|
||||
},
|
||||
|
102
pages/mine/mineAccount/mineInvoice/mineInvoice.js
Normal file
102
pages/mine/mineAccount/mineInvoice/mineInvoice.js
Normal file
@ -0,0 +1,102 @@
|
||||
// pages/mine/mineAccount/mineInvoice/mineInvoice.js
|
||||
import InvoiceApi from '../../../../net/api/invoiceApi'
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
keywords: '',
|
||||
pageData: {
|
||||
page: 1,
|
||||
rows: 10,
|
||||
keywords: ''
|
||||
},
|
||||
msgShow: false,
|
||||
msgHint: '',
|
||||
msgType: 'error',
|
||||
loadingState: 'loading',
|
||||
listRefreshTrig: false,
|
||||
isLoadMore: false,
|
||||
hasMore: true,
|
||||
recordList: [], //开票记录
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad(options) {
|
||||
wx.setNavigationBarTitle({
|
||||
title: '发票管理',
|
||||
})
|
||||
wx.setNavigationBarColor({
|
||||
frontColor: '#000000', // 必写项,字体颜色仅支持#ffffff和#000000
|
||||
backgroundColor: '#F0F0F0', // 传递的颜色值,仅支持十六进制颜色
|
||||
animation: { // 可选项
|
||||
duration: 500,
|
||||
timingFunc: 'easeIn'
|
||||
}
|
||||
})
|
||||
this.doRefreshList()
|
||||
},
|
||||
openInvoiceInfo() {
|
||||
wx.navigateTo({
|
||||
url: '/pages/mine/mineAccount/invoiceInfo/invoiceInfo',
|
||||
})
|
||||
},
|
||||
doRefreshList() {
|
||||
console.log('正在刷新...')
|
||||
const _self = this
|
||||
_self.setData({
|
||||
listRefreshTrig: true,
|
||||
loadingState: 'loading',
|
||||
hasMore: true,
|
||||
'pageData.page': 1,
|
||||
'pageData.keywords': _self.data.keywords,
|
||||
isLoadMore: false
|
||||
})
|
||||
_self.doGetInvoiceRecordList(true)
|
||||
},
|
||||
doLoadMore() {
|
||||
//判断是否正在加载中 与是否存在更多数据
|
||||
const _self = this
|
||||
if (_self.data.isLoadMore || !_self.data.hasMore) {
|
||||
return
|
||||
}
|
||||
_self.setData({
|
||||
isLoadMore: true,
|
||||
'pageData.page': ++_self.data.pageData.page,
|
||||
'pageData.keywords': _self.data.keywords
|
||||
})
|
||||
_self.doGetInvoiceRecordList(false)
|
||||
},
|
||||
doGetInvoiceRecordList(isRefresh) {
|
||||
const _self = this
|
||||
_self.setData({
|
||||
recordList: isRefresh ? [] : _self.data.recordList,
|
||||
loadingState: isRefresh ? 'loading' : ''
|
||||
})
|
||||
InvoiceApi.doGetInvoiceRecordList(_self.data.pageData)
|
||||
.then(res => {
|
||||
console.log(res)
|
||||
var status = 'success'
|
||||
status = res.rows && res.rows.length > 0 ? 'success' : 'empty'
|
||||
_self.setData({
|
||||
loadingState: isRefresh ? status : '',
|
||||
recordList: _self.data.recordList.concat(res.rows),
|
||||
listRefreshTrig: false,
|
||||
isLoadMore: false
|
||||
})
|
||||
_self.setData({
|
||||
hasMore: _self.data.recordList.length < res.total
|
||||
})
|
||||
}, err => {
|
||||
_self.setData({
|
||||
loadingState: 'error',
|
||||
listRefreshTrig: false,
|
||||
isLoadMore: false,
|
||||
hasMore: true
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
8
pages/mine/mineAccount/mineInvoice/mineInvoice.json
Normal file
8
pages/mine/mineAccount/mineInvoice/mineInvoice.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
"mp-half-screen-dialog": "weui-miniprogram/half-screen-dialog/half-screen-dialog",
|
||||
"mp-loading": "weui-miniprogram/loading/loading",
|
||||
"container-loading": "/components/container-loading/container-loading",
|
||||
"mp-toptips": "weui-miniprogram/toptips/toptips"
|
||||
}
|
||||
}
|
69
pages/mine/mineAccount/mineInvoice/mineInvoice.wxml
Normal file
69
pages/mine/mineAccount/mineInvoice/mineInvoice.wxml
Normal file
@ -0,0 +1,69 @@
|
||||
<view class="page-container">
|
||||
<view class="search-box">
|
||||
<view class="search-container">
|
||||
<input class="search-input" value="{{keywords}}" bindinput="inputKeywords" bindconfirm="doSearchKeyWord" type="text" confirm-type="search" placeholder="搜索" />
|
||||
<view wx:if="{{keywords !=''}}" bind:tap="clearSearch" class="icon-clear" style="width: 20px;height: 20px;"></view>
|
||||
</view>
|
||||
<view class="add-btn" bind:tap="openInvoiceInfo">开票信息</view>
|
||||
</view>
|
||||
<view class="content-container">
|
||||
<container-loading loadingState="{{loadingState}}" style="height: 85vh;" bindrefresh="doRefreshList">
|
||||
<scroll-view scroll-y="{{true}}" style="height: 85vh;padding-bottom: 40px;" bindrefresherrefresh="doRefreshList" refresher-enabled refresher-triggered="{{listRefreshTrig}}" bindscrolltolower="doLoadMore" lower-threshold='30'>
|
||||
<!-- <view class="order-box">
|
||||
<block wx:for="{{invoiceList}}" wx:key="index">
|
||||
<view class="order-item">
|
||||
<view class="contact-desc">
|
||||
<view class="contact-icon">
|
||||
<view class="ic-user" style="width: 24px;height: 24px;"></view>
|
||||
<view class="ml-10 name">{{item.name}}</view>
|
||||
</view>
|
||||
<view>{{item.phone}}</view>
|
||||
<view class="options-box">
|
||||
<view class="edit" bind:tap="showEditDialog" data-value="{{item}}">编辑</view>
|
||||
<view class="del" bind:tap="showDelDialog" data-value="{{item}}">删除</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="service-desc ml-10">{{item.company}}</view>
|
||||
<view class="service-desc ml-10">专属客服 : {{item.csaNo}}</view>
|
||||
</view>
|
||||
</block>
|
||||
<mp-loading show="{{isLoadMore}}" type="circle"></mp-loading>
|
||||
</view> -->
|
||||
</scroll-view>
|
||||
</container-loading>
|
||||
</view>
|
||||
<view class="bottom-btn">
|
||||
<view class="confirm-btn">去开票</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 新增 -->
|
||||
<!-- <mp-half-screen-dialog show="{{showCreateContact}}">
|
||||
<view slot="title">{{title}}</view>
|
||||
<view slot="desc">
|
||||
<view class="form-box">
|
||||
<view class="form-item">
|
||||
<view class="form-item-title">姓名</view>
|
||||
<input adjust-position="{{true}}" cursor-spacing="{{50}}" value="{{contactName}}" placeholder="请输入姓名" class="form-item-content" bindinput="inputContactName" />
|
||||
</view>
|
||||
<view class="form-item">
|
||||
<view class="form-item-title">联系电话</view>
|
||||
<input adjust-position="{{true}}" cursor-spacing="{{50}}" value="{{contactPhone}}" placeholder="请输入联系电话" class="form-item-content" bindinput="inputContactPhone" />
|
||||
</view>
|
||||
<view class="form-item">
|
||||
<view class="form-item-title no-after" style="padding-left: 16rpx;">联系邮箱</view>
|
||||
<input adjust-position="{{true}}" cursor-spacing="{{50}}" value="{{contactEmail}}" placeholder="请输入联系邮箱" class="form-item-content" bindinput="inputContactEmail" />
|
||||
</view>
|
||||
<view class="form-item">
|
||||
<view class="form-item-title no-after" style="padding-left: 16rpx;">公司</view>
|
||||
<input adjust-position="{{true}}" cursor-spacing="{{50}}" value="{{contactCompany}}" placeholder="请输入公司名称" class="form-item-content" bindinput="inputContactCompany" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view slot="footer">
|
||||
<button wx:if="{{isCreate}}" class="confirm-btn" bind:tap="doSaveContact">{{btnTxt}}</button>
|
||||
<button wx:if="{{!isCreate}}" class="confirm-btn" bind:tap="doEditContact">{{btnTxt}}</button>
|
||||
</view>
|
||||
</mp-half-screen-dialog> -->
|
||||
|
||||
<mp-toptips msg="{{msgHint}}" type="{{msgType}}" show="{{msgShow}}" :delay="2000"></mp-toptips>
|
251
pages/mine/mineAccount/mineInvoice/mineInvoice.wxss
Normal file
251
pages/mine/mineAccount/mineInvoice/mineInvoice.wxss
Normal file
@ -0,0 +1,251 @@
|
||||
/* pages/mine/mineAccount/mineInvoice/mineInvoice.wxss */
|
||||
page {
|
||||
background: linear-gradient(to bottom, #F0F0F0, #FFFFFF);
|
||||
background-size: 100% 100vh;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.ic-user {
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQzOTg4MzkwNjkwIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjM0MDkiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiAxMDI0QzIyOS4yMDUzMzMgMTAyNCAwIDc5NC43OTQ2NjcgMCA1MTJTMjI5LjIwNTMzMyAwIDUxMiAwczUxMiAyMjkuMjA1MzMzIDUxMiA1MTItMjI5LjIwNTMzMyA1MTItNTEyIDUxMnogbTAtNDk2LjQ2OTMzM2ExNzAuNjY2NjY3IDE3MC42NjY2NjcgMCAxIDAgMC0zNDEuMzMzMzM0IDE3MC42NjY2NjcgMTcwLjY2NjY2NyAwIDAgMCAwIDM0MS4zMzMzMzR6IG0yNjMuNzY1MzMzIDI2My43MjI2NjZhMjYzLjc2NTMzMyAyNjMuNzY1MzMzIDAgMSAwLTUyNy41MzA2NjYgMGg1MjcuNTMwNjY2eiIgcC1pZD0iMzQxMCIgZmlsbD0iIzEyOTZkYiI+PC9wYXRoPjwvc3ZnPg==');
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
|
||||
.search-box {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
align-self: center;
|
||||
width: 96vw;
|
||||
}
|
||||
|
||||
.search-container {
|
||||
position: relative;
|
||||
align-self: center;
|
||||
border-radius: 5px;
|
||||
background-color: rgba(255, 255, 255, 1);
|
||||
font-family: -regular;
|
||||
margin: 10px 15px;
|
||||
padding: 5px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.search-input {
|
||||
box-sizing: border-box;
|
||||
color: rgba(16, 16, 16, 1);
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.search-input::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
margin-top: -1px;
|
||||
background-size: cover;
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSI2NCA2NCA4OTYgODk2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTkiIHN0eWxlPSIiIGZpbHRlcj0ibm9uZSI+CiAgICAKICAgIDxnPgogICAgPHBhdGggZD0iTTkwOS42IDg1NC41TDY0OS45IDU5NC44QzY5MC4yIDU0Mi43IDcxMiA0NzkgNzEyIDQxMmMwLTgwLjItMzEuMy0xNTUuNC04Ny45LTIxMi4xLTU2LjYtNTYuNy0xMzItODcuOS0yMTIuMS04Ny45cy0xNTUuNSAzMS4zLTIxMi4xIDg3LjlDMTQzLjIgMjU2LjUgMTEyIDMzMS44IDExMiA0MTJjMCA4MC4xIDMxLjMgMTU1LjUgODcuOSAyMTIuMUMyNTYuNSA2ODAuOCAzMzEuOCA3MTIgNDEyIDcxMmM2NyAwIDEzMC42LTIxLjggMTgyLjctNjJsMjU5LjcgMjU5LjZhOC4yIDguMiAwIDAgMCAxMS42IDBsNDMuNi00My41YTguMiA4LjIgMCAwIDAgMC0xMS42ek01NzAuNCA1NzAuNEM1MjggNjEyLjcgNDcxLjggNjM2IDQxMiA2MzZzLTExNi0yMy4zLTE1OC40LTY1LjZDMjExLjMgNTI4IDE4OCA0NzEuOCAxODggNDEyczIzLjMtMTE2LjEgNjUuNi0xNTguNEMyOTYgMjExLjMgMzUyLjIgMTg4IDQxMiAxODhzMTE2LjEgMjMuMiAxNTguNCA2NS42UzYzNiAzNTIuMiA2MzYgNDEycy0yMy4zIDExNi4xLTY1LjYgMTU4LjR6IiBmaWxsPSJyZ2JhKDIwNCwyMDQsMjA0LDEpIj48L3BhdGg+CiAgICA8L2c+CiAgPC9zdmc+');
|
||||
}
|
||||
|
||||
.add-btn {
|
||||
border-radius: 4px;
|
||||
background-color: rgba(50, 112, 255, 1);
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
font-family: PingFangSC-regular;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
.add-btn:active {
|
||||
background-color: rgba(50, 112, 255, .7);
|
||||
}
|
||||
|
||||
.content-container {
|
||||
height: 82vh;
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
.bottom-btn {
|
||||
position: fixed;
|
||||
bottom: 40rpx;
|
||||
left: 0;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.order-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.order-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: white;
|
||||
border-radius: 10px;
|
||||
width: 94vw;
|
||||
}
|
||||
|
||||
.order-item:nth-of-type(n+2) {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.contact-desc {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
padding: 15px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.contact-icon {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.name {
|
||||
line-height: 23rpx;
|
||||
color: rgba(0, 0, 0, 1);
|
||||
font-size: 32rpx;
|
||||
text-align: left;
|
||||
font-weight: bold;
|
||||
font-family: SourceHanSansSC-black;
|
||||
}
|
||||
|
||||
.service-desc {
|
||||
padding: 0px 15px 15px 15px;
|
||||
line-height: 20px;
|
||||
color: rgba(0, 0, 0, 1);
|
||||
font-size: 14px;
|
||||
text-align: left;
|
||||
font-family: SourceHanSansSC-regular;
|
||||
}
|
||||
|
||||
.edit {
|
||||
line-height: 20px;
|
||||
border-radius: 4px;
|
||||
background-color: rgba(122, 196, 131, 0.42);
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 28rpx;
|
||||
text-align: center;
|
||||
font-family: PingFangSC-regular;
|
||||
padding: 5rpx 10rpx;
|
||||
}
|
||||
|
||||
.del {
|
||||
line-height: 20px;
|
||||
border-radius: 4px;
|
||||
background-color: rgba(247, 49, 42, 0.42);
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 28rpx;
|
||||
text-align: center;
|
||||
font-family: PingFangSC-regular;
|
||||
padding: 5rpx 10rpx;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.del:active {
|
||||
background-color: rgba(247, 49, 42, 0.7);
|
||||
}
|
||||
|
||||
.options-box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.edit:active {
|
||||
background-color: rgba(122, 196, 131, 0.6);
|
||||
}
|
||||
|
||||
|
||||
.form-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: flex-start;
|
||||
font-size: 14px;
|
||||
width: 100vw;
|
||||
}
|
||||
|
||||
.form-item {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
width: 80vw;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.form-item-title {
|
||||
flex: .3;
|
||||
font-size: 14px;
|
||||
color: black;
|
||||
font-weight: 500;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.form-item-title:not(.no-after)::before {
|
||||
content: "*";
|
||||
color: red;
|
||||
font-size: 14px;
|
||||
margin-left: 1px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.form-item-content {
|
||||
flex: 1;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.confirm-btn {
|
||||
background-color: #FFA900;
|
||||
color: white;
|
||||
font-size: 16px;
|
||||
height: 70rpx;
|
||||
line-height: 70rpx;
|
||||
border-radius: 5px;
|
||||
text-align: center;
|
||||
width: 85vw !important;
|
||||
}
|
||||
|
||||
.confirm-btn:active {
|
||||
background-color: #ffaa0083;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__ft {
|
||||
padding: 0rpx 0rpx 40rpx;
|
||||
}
|
||||
|
||||
.weui-half-screen-dialog__bd {
|
||||
padding-bottom: 40rpx;
|
||||
}
|
@ -31,29 +31,33 @@ Page({
|
||||
materialCount: 0,
|
||||
accountInfo: {},
|
||||
menuList: [{
|
||||
"icon": "ic-user",
|
||||
"title": "个人信息",
|
||||
"path": "/pages/mine/mineAccount/mineInfo/mineInfo"
|
||||
icon: "ic-user",
|
||||
title: "个人信息",
|
||||
path: "/pages/mine/mineAccount/mineInfo/mineInfo"
|
||||
}, {
|
||||
"icon": "ic-pay-record",
|
||||
"title": "资金流水",
|
||||
"path": "/pages/mine/mineAccount/minePayRecord/minePayRecord"
|
||||
icon: 'ic-invoice-info',
|
||||
title: '开票信息',
|
||||
path: '/pages/mine/mineAccount/invoiceInfo/invoiceInfo'
|
||||
}, {
|
||||
"icon": "ic-order",
|
||||
"title": "我的订单",
|
||||
"path": "/pages/mine/mineAccount/mineOrder/mineOrder"
|
||||
icon: "ic-pay-record",
|
||||
title: "资金流水",
|
||||
path: "/pages/mine/mineAccount/minePayRecord/minePayRecord"
|
||||
}, {
|
||||
"icon": "ic-invoice",
|
||||
"title": "发票管理",
|
||||
"path": ""
|
||||
icon: "ic-order",
|
||||
title: "我的订单",
|
||||
path: "/pages/mine/mineAccount/mineOrder/mineOrder"
|
||||
}, {
|
||||
"icon": "ic-contact",
|
||||
"title": "产权联系人",
|
||||
"path": "/pages/mine/mineAccount/mineContact/mineContact"
|
||||
icon: "ic-invoice",
|
||||
title: "发票管理",
|
||||
path: "/pages/mine/mineAccount/mineInvoice/mineInvoice"
|
||||
}, {
|
||||
"icon": "ic-unbind",
|
||||
"title": "微信解绑",
|
||||
"path": ""
|
||||
icon: "ic-contact",
|
||||
title: "产权联系人",
|
||||
path: "/pages/mine/mineAccount/mineContact/mineContact"
|
||||
}, {
|
||||
icon: "ic-unbind",
|
||||
title: "微信解绑",
|
||||
path: ""
|
||||
}],
|
||||
buttons: [{
|
||||
text: '知道了'
|
||||
@ -314,12 +318,7 @@ Page({
|
||||
itemClick(e) {
|
||||
const path = e.currentTarget.dataset.path
|
||||
const title = e.currentTarget.dataset.title
|
||||
if (title == '发票管理') {
|
||||
this.setData({
|
||||
showHint: true,
|
||||
hintTxt: `鉴于功能特性,需在电脑端完成操作。请打开浏览器,登录网址${copyrightUrl},进行后续操作。`
|
||||
})
|
||||
} else if (title == '微信解绑') {
|
||||
if (title == '微信解绑') {
|
||||
this.unbindPhone()
|
||||
} else {
|
||||
wx.navigateTo({
|
||||
|
@ -269,6 +269,14 @@
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.ic-invoice-info {
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQ1NzM3NDQ3MTAwIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQ0MTMiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiA1MTJtLTQ3NS40Mjg1NzEgMGE0NzUuNDI4NTcxIDQ3NS40Mjg1NzEgMCAxIDAgOTUwLjg1NzE0MiAwIDQ3NS40Mjg1NzEgNDc1LjQyODU3MSAwIDEgMC05NTAuODU3MTQyIDBaIiBmaWxsPSIjN0U0RkZGIiBwLWlkPSI0NDE0Ij48L3BhdGg+PHBhdGggZD0iTTY1Ni4wOTE0MjkgNDIyLjc2NTcxNGExNi43NDk3MTQgMTYuNzQ5NzE0IDAgMCAxIDE3LjE4ODU3MSAxNS43OTg4NTd2MzA0LjM0NzQyOWE2LjU4Mjg1NyA2LjU4Mjg1NyAwIDAgMS0zLjUxMDg1NyA1LjQ4NTcxNCA3LjE2OCA3LjE2OCAwIDAgMS02LjcyOTE0MyAwYy0zLjgwMzQyOS0yLjQxMzcxNC02NC4yMTk0MjktMzcuODE0ODU3LTY0LjIxOTQyOS0zNy44MTQ4NTdhMTQuNDA5MTQzIDE0LjQwOTE0MyAwIDAgMC0xNC4xMTY1NzEgMGwtNjUuMTcwMjg2IDM3LjUyMjI4NmExNy41NTQyODYgMTcuNTU0Mjg2IDAgMCAxLTcuNjggMS4yNDM0MjggMjAuMjYwNTcxIDIwLjI2MDU3MSAwIDAgMS04LjA0NTcxNC0xLjI0MzQyOGwtNjEuOTUyLTM2Ljg2NGExNC40MDkxNDMgMTQuNDA5MTQzIDAgMCAwLTE0LjExNjU3MSAwbC0yMy40MDU3MTUgMTMuNDU4Mjg2LTE1Ljc5ODg1NyA5LjA2OTcxNC0yNi42MjQgMTUuMjg2ODU3YTguMjY1MTQzIDguMjY1MTQzIDAgMCAxLTcuMzE0Mjg2LTAuMzY1NzE0IDcuNjA2ODU3IDcuNjA2ODU3IDAgMCAxLTMuODc2NTcxLTUuNzc4Mjg2VjQzOS4wNzY1NzFhMTYuMDkxNDI5IDE2LjA5MTQyOSAwIDAgMSA1LjEyLTExLjYyOTcxNCAxNy42Mjc0MjkgMTcuNjI3NDI5IDAgMCAxIDEyLjE0MTcxNC00Ljc1NDI4NnogbS00Ny4wMzA4NTggMTQ4LjE4NzQyOUg0MTQuOTM5NDI5YTE1Ljk0NTE0MyAxNS45NDUxNDMgMCAwIDAtMTYuMDkxNDI5IDE1LjUwNjI4NmMwIDguNTU3NzE0IDcuMjQxMTQzIDE1LjQzMzE0MyAxNi4wOTE0MjkgMTUuNTc5NDI4aDE5NC4xMjExNDJjNS44NTE0MjkgMC4wNzMxNDMgMTEuMzM3MTQzLTIuODUyNTcxIDE0LjMzNi03LjY4YTE0LjkyMTE0MyAxNC45MjExNDMgMCAwIDAgMC0xNS43MjU3MTQgMTYuNDU3MTQzIDE2LjQ1NzE0MyAwIDAgMC0xNC4zMzYtNy42OHogbTAtNzAuNDM2NTcySDQxNC45Mzk0MjlhMTYuNDU3MTQzIDE2LjQ1NzE0MyAwIDAgMC0xNC4zMzYgNy42OCAxNC45MjExNDMgMTQuOTIxMTQzIDAgMCAwIDAgMTUuNzI1NzE1YzIuOTk4ODU3IDQuODI3NDI5IDguNDg0NTcxIDcuNzUzMTQzIDE0LjMzNiA3LjY4aDE5NC4xMjExNDJjNS44NTE0MjkgMC4wNzMxNDMgMTEuMzM3MTQzLTIuOTI1NzE0IDE0LjMzNi03LjY4YTE0LjkyMTE0MyAxNC45MjExNDMgMCAwIDAgMC0xNS43MjU3MTUgMTYuNDU3MTQzIDE2LjQ1NzE0MyAwIDAgMC0xNC4zMzYtNy42OHpNNzI0LjExNDI4NiAzNDIuMjM1NDI5YzE0LjExNjU3MSAwIDI1LjYgMTAuOTcxNDI5IDI1LjYgMjQuMzU2NTcxdjExMS45MDg1NzFhMjUuNTI2ODU3IDI1LjUyNjg1NyAwIDAgMS0yNS42IDI0LjQyOTcxNWgtMzMuNTcyNTcyVjQ0Mi41MTQyODZoMS45NzQ4NTdhMjAuMzMzNzE0IDIwLjMzMzcxNCAwIDAgMCAyMC40OC0xOS43NDg1NzIgMjAuMzMzNzE0IDIwLjMzMzcxNCAwIDAgMC0yMC40OC0xOS44OTQ4NTdIMzMxLjQ4MzQyOWEyMC45OTIgMjAuOTkyIDAgMCAwLTE4LjIxMjU3MiA5Ljg3NDI4NiAxOS4wMTcxNDMgMTkuMDE3MTQzIDAgMCAwIDAgMTkuOTY4IDIwLjk5MiAyMC45OTIgMCAwIDAgMTguMjg1NzE0IDkuODAxMTQzaDEuOTAxNzE1djYwLjQxNmgtMzMuNjQ1NzE1YTI1LjA4OCAyNS4wODggMCAwIDEtMjUuNTI2ODU3LTI0LjQyOTcxNXYtMTExLjkwODU3MWMwLTEzLjQ1ODI4NiAxMS40ODM0MjktMjQuMzU2NTcxIDI1LjYtMjQuMzU2NTcxeiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iNDQxNSI+PC9wYXRoPjwvc3ZnPg==');
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.ic-unbind {
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQ1NDAwMzc2MjkxIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjYwMTgiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PHBhdGggZD0iTTUxMiA5ODRDMjUxLjc1IDk4NCAzOS45OSA3NzIuMjYgMzkuOTkgNTEyUzI1MS43NSA0MCA1MTIgNDBzNDcyLjAxIDIxMS43NCA0NzIuMDEgNDcyUzc3Mi4yNSA5ODQgNTEyIDk4NHoiIGZpbGw9IiNGRkY4RUYiIHAtaWQ9IjYwMTkiPjwvcGF0aD48cGF0aCBkPSJNNTEyIDgwQzI3My44MiA4MCA3OS45NyAyNzMuNzkgNzkuOTcgNTEyczE5My44NCA0MzIgNDMyLjAyIDQzMiA0MzIuMDMtMTkzLjc5IDQzMi4wMy00MzJDOTQ0LjAzIDI3My43OSA3NTAuMTggODAgNTEyIDgweiBtMC04MGMyODIuNzggMCA1MTIgMjI5LjIzIDUxMiA1MTJzLTIyOS4yMiA1MTItNTEyIDUxMlMwIDc5NC43NyAwIDUxMiAyMjkuMjIgMCA1MTIgMHoiIGZpbGw9IiNGRkE3MzgiIHAtaWQ9IjYwMjAiPjwvcGF0aD48cGF0aCBkPSJNMjc4LjYzIDI3OC42NmMyNy4zNC0yNy4yOSA3MS43My0yNy4yOSA5OS4wMiAwbDM2Ny43MiAzNjcuNjljMjcuMjkgMjcuMjkgMjcuMjkgNzEuNyAwIDk5LTI3LjM0IDI3LjI5LTcxLjczIDI3LjI5LTk5LjAyIDBsLTM2Ny43Mi0zNjcuN2MtMjcuMjktMjcuMjktMjcuMjktNzEuNyAwLTk4Ljk5eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iNjAyMSI+PC9wYXRoPjxwYXRoIGQ9Ik03MTcuMDYgNzE3LjA2YzExLjcyLTExLjY5IDExLjcyLTMwLjczIDAtNDIuNDJsLTM2Ny42Ny0zNjcuN2MtMTEuNzMtMTEuNy0zMC43Ny0xMS43LTQyLjQ1IDAtMTEuNjcgMTEuNy0xMS43MyAzMC43MyAwIDQyLjQzbDM2Ny42NyAzNjcuNjljMTEuNzMgMTEuNyAzMC43NyAxMS43IDQyLjQ1IDB6IG01Ni41NyA1Ni41N2MtNDIuOTYgNDIuOTYtMTEyLjU5IDQyLjk2LTE1NS41NSAwbC0zNjcuNzItMzY3LjdjLTQyLjk2LTQyLjk2LTQyLjk2LTExMi42MSAwLTE1NS41NiA0Mi45Ni00Mi45NiAxMTIuNTktNDIuOTYgMTU1LjU1IDBsMzY3LjcyIDM2Ny42OWM0Mi45NiA0Mi45NyA0Mi45NiAxMTIuNjIgMCAxNTUuNTd6IiBmaWxsPSIjRkZBNzM4IiBwLWlkPSI2MDIyIj48L3BhdGg+PHBhdGggZD0iTTczMC41MiAzOTguNzZsLTMzOS40IDMzOS40MWMtNy41MyA3LjUtMTcuNjYgMTEuNzEtMjguMzEgMTEuNzEtMTAuNiAwLTIwLjc5LTQuMjEtMjguMjYtMTEuNzFsLTQyLjQ1LTQyLjQyYy0zLjY5LTMuNzEtNi42Ni04LjEzLTguNjUtMTIuOTgtMi00Ljg1LTMuMDctMTAuMDUtMy4wNy0xNS4zczEuMDgtMTAuNDYgMy4wNy0xNS4zMWMyLTQuODUgNC45Ny05LjI2IDguNjUtMTIuOThsMzM5LjQtMzM5LjQxYzMuNzQtMy43MSA4LjE0LTYuNjYgMTMtOC42N2EzOS45NzQgMzkuOTc0IDAgMCAxIDE1LjMxLTMuMDRjNS4yMiAwIDEwLjQ0IDEuMDMgMTUuMzEgMy4wNCA0Ljg2IDIuMDEgOS4yNyA0Ljk2IDEyLjk1IDguNjdsNDIuNDUgNDIuNDNjNy40OCA3LjUgMTEuNzMgMTcuNjggMTEuNzMgMjguMjggMCAxMC42MS00LjI1IDIwLjc4LTExLjczIDI4LjI4eiIgZmlsbD0iI0ZGRjhFRiIgcC1pZD0iNjAyMyI+PC9wYXRoPjxwYXRoIGQ9Ik03MTMuMTYgMzcxLjQxbC0zMzkuNCAzMzkuNDFjLTcuNTMgNy41MS0xNy42NiAxMS43Mi0yOC4zMSAxMS43Mi0xMC42IDAtMjAuNzktNC4yMi0yOC4yNi0xMS43MmEzOS44OCAzOS44OCAwIDAgMS0xMS43My0yOC4yOGMwLTEwLjYxIDQuMi0yMC43OCAxMS43My0yOC4yOGwzMzkuNC0zMzkuNDFjNy41My03LjQ1IDE3LjY2LTExLjYyIDI4LjI2LTExLjU5IDEwLjU1IDAuMDIgMjAuNjggNC4yNCAyOC4yMSAxMS43MmEzOS45MDUgMzkuOTA1IDAgMCAxIDExLjY3IDI4LjJjMC4wNiAxMC41Ni00LjE0IDIwLjcyLTExLjU3IDI4LjIzeiIgZmlsbD0iI0ZGQTczOCIgcC1pZD0iNjAyNCI+PC9wYXRoPjwvc3ZnPg==');
|
||||
background-repeat: no-repeat;
|
||||
|
@ -5,5 +5,5 @@
|
||||
"compileHotReLoad": true,
|
||||
"urlCheck": false
|
||||
},
|
||||
"libVersion": "3.7.12"
|
||||
"libVersion": "3.5.8"
|
||||
}
|
@ -97,3 +97,9 @@
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.icon-yellow-location {
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQ1NzQzODkzOTMwIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjUxMzEiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUzNi4yMTcgOTAuNjljLTE2OC4wMjcgMC0zMDIuNTI0IDEzNC40OTctMzAyLjUyNCAzMDIuNTI0IDAgMTIwLjk2MSA4Ny4wNTYgMjE1LjA5NSAxODEuMTkxIDMzNi4wNTUgMzIuNzg2IDQ1Ljk0OSA1OC44NjYgOTEuOSA5Mi4wMjMgMTUwLjI2OCAxLjc0IDMuMTA1IDMuOTc0IDUuOTYxIDYuNTgyIDguMzIxIDUuNTg4IDUuMDkxIDEyLjA0NyA5LjQzOCAyMi43MjYgOS40Mzh2MGMxMS40MjUgMCAxOC4wMDctNC44NDQgMjMuODQ0LTEwLjQzMiAxLjk4Ni0xLjg2MiAzLjcyNi00LjA5OCA1LjIxNy02LjMzNCAzMy4xNTgtNTIuNDA5IDU5LjM2Mi05OC40ODEgOTIuMjczLTE0NC41NTYgOTQuMTM1LTEyNy42NjYgMTgxLjE5MS0yMjEuODAxIDE4MS4xOTEtMzQyLjc2MSAwLTE2OC4wMjctMTM0LjQ5Ny0zMDIuNTI0LTMwMi41MjQtMzAyLjUyNHYwek01MzYuMjE3IDQ5NC4wNTVjLTUzLjc3NCAwLTEwMC44NDItNDAuMzYyLTEwMC44NDItMTAwLjg0MnM0MC4zNjItMTAwLjg0MiAxMDAuODQyLTEwMC44NDJjNTMuNzc0IDAgMTAwLjg0MiA0MC4zNjIgMTAwLjg0MiAxMDAuODQyIDAgNTMuNzc0LTQwLjM2MiAxMDAuODQyLTEwMC44NDIgMTAwLjg0MnYweiIgcC1pZD0iNTEzMiIgZmlsbD0iI0ZFOTk0NCI+PC9wYXRoPjxwYXRoIGQ9Ik01MzYuMjE3IDc3MC42MjRjLTE0MC4zMzQgMC0yNTQuMDkxIDUzLjUyNS0yNTQuMDkxIDExOS40N3MxMTMuNzU3IDExOS40NyAyNTQuMDkxIDExOS40NyAyNTQuMDkxLTUzLjUyNSAyNTQuMDkxLTExOS40Ny0xMTMuNzU3LTExOS40Ny0yNTQuMDkxLTExOS40N3pNNTM2LjIxNyA5MzguNjUxYy0xMDUuNTYxIDAtMTkxLjAwMy0zNy41MDUtMTkxLjAwMy03OC43MzVzODUuNTY2LTc0Ljg4NiAxOTEuMDAzLTc0Ljg4NiAxOTEuMDAzIDMzLjUzMiAxOTEuMDAzIDc0Ljg4Ni04NS41NjYgNzguNzM1LTE5MS4wMDMgNzguNzM1eiIgcC1pZD0iNTEzMyIgZmlsbD0iI0ZFOTk0NCI+PC9wYXRoPjwvc3ZnPg==');
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
}
|
@ -36,6 +36,10 @@ var payTypeSign = function (type) {
|
||||
}
|
||||
return typeStr
|
||||
}
|
||||
var coverTxt = function (price) {
|
||||
// return '<span style=" height: 172rpx;line-height: 172rpx;color: #000000;font-size: 60rpx;font-weight: bold;width: 50rpx;"><span style="font-size:10px;">¥</span>' + price + '</span>'
|
||||
return '<span style="font-size:12px;">¥</span>' + price
|
||||
}
|
||||
var payType = function (type) {
|
||||
// 充值1|支出2|提现3|系统扣款4|订单收入5|付款6)
|
||||
var typeStr = '支出'
|
||||
@ -236,5 +240,6 @@ module.exports = {
|
||||
payType: payType,
|
||||
payTypeColor: payTypeColor,
|
||||
payTypeSign: payTypeSign,
|
||||
payTypeFontSize: payTypeFontSize
|
||||
payTypeFontSize: payTypeFontSize,
|
||||
coverTxt: coverTxt
|
||||
};
|
@ -1,6 +1,16 @@
|
||||
// 手机号验证
|
||||
const isValidPhone = (phone) => {
|
||||
return /^1[3-9]\d{9}$/.test(phone);
|
||||
// 手机号码正则
|
||||
const mobilePattern = /^1[3-9]\d{9}$/;
|
||||
// 固定电话正则
|
||||
const landlinePattern = /^(0\d{2,3})[- ]?\d{7,8}$/;
|
||||
if (mobilePattern.test(phone)) {
|
||||
return true
|
||||
} else if (landlinePattern.test(phone)) {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
};
|
||||
|
||||
// 邮箱验证
|
||||
|
Loading…
Reference in New Issue
Block a user