完成退款项目
This commit is contained in:
parent
1d05f8ae3d
commit
c62203c57f
3
app.json
3
app.json
@ -24,7 +24,8 @@
|
|||||||
"pages/mine/mineAccount/mineMsgNotice/mineMsgNotice",
|
"pages/mine/mineAccount/mineMsgNotice/mineMsgNotice",
|
||||||
"pages/copyright/refund/refund",
|
"pages/copyright/refund/refund",
|
||||||
"pages/copyright/repair/repair",
|
"pages/copyright/repair/repair",
|
||||||
"pages/copyright/applyRepair/applyRepair"
|
"pages/copyright/applyRepair/applyRepair",
|
||||||
|
"pages/copyright/applyRefund/applyRefund"
|
||||||
],
|
],
|
||||||
"window": {
|
"window": {
|
||||||
"navigationBarTextStyle": "black",
|
"navigationBarTextStyle": "black",
|
||||||
|
3
app.wxss
3
app.wxss
@ -232,8 +232,9 @@
|
|||||||
.single-line-front {
|
.single-line-front {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
direction: rtl;
|
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
direction: rtl;
|
||||||
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.multiple-3-ellipsis {
|
.multiple-3-ellipsis {
|
||||||
|
@ -22,8 +22,10 @@ const apiPath = {
|
|||||||
canProRepairList: '/api/proj/correction/apply/listpage-proj-unapply/self', //可以补正的项目列表
|
canProRepairList: '/api/proj/correction/apply/listpage-proj-unapply/self', //可以补正的项目列表
|
||||||
cancelProPepair: '/api/proj/correction/apply/cancel/self/{projCorrectionApplyId}', //取消补正
|
cancelProPepair: '/api/proj/correction/apply/cancel/self/{projCorrectionApplyId}', //取消补正
|
||||||
applyProRepair: '/api/proj/correction/apply/save', //申请补正
|
applyProRepair: '/api/proj/correction/apply/save', //申请补正
|
||||||
|
refundProList: '/api/proj/refund/apply/listpage/self', //我的退款项目
|
||||||
|
canRefundProList: '/api/proj/refund/apply/listpage-proj-unapply/self', //可以退款的项目
|
||||||
|
applyRefundPro: '/api/proj/refund/apply/save', //申请退款
|
||||||
|
cancelRefundPro: '/api/proj/refund/apply/cancel/self/{projRefundApplyId}', //取消申请退款
|
||||||
}
|
}
|
||||||
class ProjectService {
|
class ProjectService {
|
||||||
//首页介绍数量
|
//首页介绍数量
|
||||||
@ -104,6 +106,22 @@ class ProjectService {
|
|||||||
static doGetCanProRepairList(data) {
|
static doGetCanProRepairList(data) {
|
||||||
return request(apiPath.canProRepairList, "GET", data)
|
return request(apiPath.canProRepairList, "GET", data)
|
||||||
}
|
}
|
||||||
|
//退款项目列表
|
||||||
|
static doGetMineRefundProList(data) {
|
||||||
|
return request(apiPath.refundProList, "GET", data)
|
||||||
|
}
|
||||||
|
static doGetCanRefundProList(data) {
|
||||||
|
return request(apiPath.canRefundProList, "GET", data)
|
||||||
|
}
|
||||||
|
//取消申请退款
|
||||||
|
static doCancelRefundPro(id) {
|
||||||
|
const path = apiPath.cancelRefundPro.replace('{projRefundApplyId}', id)
|
||||||
|
return request(path, "PUT")
|
||||||
|
}
|
||||||
|
//提交申请退款
|
||||||
|
static doApplyRefundPro(data) {
|
||||||
|
return request(apiPath.applyRefundPro, "POST", data)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default ProjectService;
|
export default ProjectService;
|
305
pages/copyright/applyRefund/applyRefund.js
Normal file
305
pages/copyright/applyRefund/applyRefund.js
Normal file
@ -0,0 +1,305 @@
|
|||||||
|
// pages/copyright/applyRepair/applyRepair.js
|
||||||
|
import {
|
||||||
|
uploadImgUrl
|
||||||
|
} from '../../../net/http'
|
||||||
|
import ProApi from '../../../net/api/projectApi'
|
||||||
|
const Cache = require('../../../utils/storage')
|
||||||
|
const data = require('../../../utils/data')
|
||||||
|
const app = getApp()
|
||||||
|
Page({
|
||||||
|
/**
|
||||||
|
* 页面的初始数据
|
||||||
|
*/
|
||||||
|
data: {
|
||||||
|
imgAssets: app.globalData.imgAssetsUrl,
|
||||||
|
msgHint: '',
|
||||||
|
msgType: '',
|
||||||
|
msgShow: false,
|
||||||
|
selPro: null,
|
||||||
|
selType: null,
|
||||||
|
files: [],
|
||||||
|
proList: [],
|
||||||
|
tempSelPro: null,
|
||||||
|
typeList: data.kindList,
|
||||||
|
showSelPro: false,
|
||||||
|
showSelType: false,
|
||||||
|
tempSelType: null,
|
||||||
|
remark: '',
|
||||||
|
proKeywords: '',
|
||||||
|
proPageData: {
|
||||||
|
page: 1,
|
||||||
|
rows: 10,
|
||||||
|
keywords: ''
|
||||||
|
},
|
||||||
|
listRefreshTrig: false,
|
||||||
|
loadingState: 'loading',
|
||||||
|
hasMore: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面加载
|
||||||
|
*/
|
||||||
|
onLoad(options) {
|
||||||
|
wx.setNavigationBarTitle({
|
||||||
|
title: '退款申请',
|
||||||
|
})
|
||||||
|
wx.setNavigationBarColor({
|
||||||
|
frontColor: '#000000', // 必写项,字体颜色仅支持#ffffff和#000000
|
||||||
|
backgroundColor: '#F0F0F0', // 传递的颜色值,仅支持十六进制颜色
|
||||||
|
animation: { // 可选项
|
||||||
|
duration: 500,
|
||||||
|
timingFunc: 'easeIn'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.setData({
|
||||||
|
selectFile: this.selectFile.bind(this),
|
||||||
|
uploadFile: this.uploadFile.bind(this)
|
||||||
|
})
|
||||||
|
//获取可以申请补正的列表
|
||||||
|
this.getCanRepairList(false)
|
||||||
|
},
|
||||||
|
inputKeywords(e) {
|
||||||
|
this.setData({
|
||||||
|
proKeywords: e.detail.value
|
||||||
|
})
|
||||||
|
},
|
||||||
|
clearSearch() {
|
||||||
|
this.setData({
|
||||||
|
proKeywords: ''
|
||||||
|
})
|
||||||
|
this.doRefreshList()
|
||||||
|
},
|
||||||
|
//搜索项目
|
||||||
|
doSearchKeyWord() {
|
||||||
|
this.doRefreshList()
|
||||||
|
},
|
||||||
|
doRefreshList() {
|
||||||
|
const _self = this
|
||||||
|
_self.setData({
|
||||||
|
listRefreshTrig: true,
|
||||||
|
loadingState: 'loading',
|
||||||
|
hasMore: true,
|
||||||
|
isLoadMore: false,
|
||||||
|
'proPageData.page': 1,
|
||||||
|
'proPageData.keywords': _self.data.proKeywords
|
||||||
|
})
|
||||||
|
_self.getCanRepairList(true)
|
||||||
|
},
|
||||||
|
doLoadMore() {
|
||||||
|
//判断是否正在加载中 与是否存在更多数据
|
||||||
|
const _self = this
|
||||||
|
if (_self.data.isLoadMore || !_self.data.hasMore) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_self.setData({
|
||||||
|
isLoadMore: true,
|
||||||
|
'proPageData.page': ++_self.data.proPageData.page,
|
||||||
|
'proPageData.keywords': _self.data.proKeywords
|
||||||
|
})
|
||||||
|
_self.getCanRepairList(false)
|
||||||
|
},
|
||||||
|
//获取可以补正的项目列表
|
||||||
|
getCanRepairList(isRefresh) {
|
||||||
|
const _self = this
|
||||||
|
_self.setData({
|
||||||
|
proList: isRefresh ? [] : _self.data.proList,
|
||||||
|
loadingState: isRefresh ? 'loading' : ''
|
||||||
|
})
|
||||||
|
ProApi.doGetCanRefundProList(_self.data.proPageData)
|
||||||
|
.then(res => {
|
||||||
|
console.log(res)
|
||||||
|
var status = 'success'
|
||||||
|
status = res.rows && res.rows.length > 0 ? 'success' : 'empty'
|
||||||
|
_self.setData({
|
||||||
|
loadingState: isRefresh ? status : '',
|
||||||
|
proList: _self.data.proList.concat(res.rows),
|
||||||
|
listRefreshTrig: false,
|
||||||
|
isLoadMore: false
|
||||||
|
})
|
||||||
|
_self.setData({
|
||||||
|
hasMore: _self.data.proList.length < res.total
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
_self.setData({
|
||||||
|
loadingState: 'error',
|
||||||
|
listRefreshTrig: false,
|
||||||
|
isLoadMore: false,
|
||||||
|
hasMore: true
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//显示补正软著选择
|
||||||
|
showSelProDialog() {
|
||||||
|
const _self = this
|
||||||
|
if (_self.data.proList.length <= 0) {
|
||||||
|
_self.getCanRepairList(true)
|
||||||
|
} else {
|
||||||
|
_self.setData({
|
||||||
|
showSelPro: true,
|
||||||
|
tempSelPro: _self.data.selPro
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
chooseType(e) {
|
||||||
|
this.setData({
|
||||||
|
tempSelType: e.currentTarget.dataset.value
|
||||||
|
})
|
||||||
|
},
|
||||||
|
choosePro(e) {
|
||||||
|
this.setData({
|
||||||
|
tempSelPro: e.currentTarget.dataset.value
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//关闭补正软件选择
|
||||||
|
closeDialog(e) {
|
||||||
|
this.setData({
|
||||||
|
showSelPro: false,
|
||||||
|
showSelType: false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
showSelTypeDialog() {
|
||||||
|
this.setData({
|
||||||
|
showSelType: true,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
confirmSelType() {
|
||||||
|
this.setData({
|
||||||
|
showSelType: false,
|
||||||
|
selType: this.data.tempSelType,
|
||||||
|
tempSelType: null
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//确定选择补正软著
|
||||||
|
confirmSelPro() {
|
||||||
|
this.setData({
|
||||||
|
showSelPro: false,
|
||||||
|
selPro: this.data.tempSelPro,
|
||||||
|
tempSelPro: null
|
||||||
|
})
|
||||||
|
},
|
||||||
|
inputRemark(e) {
|
||||||
|
this.setData({
|
||||||
|
remark: e.detail.value
|
||||||
|
})
|
||||||
|
},
|
||||||
|
deleteImage: function (e) {
|
||||||
|
var index = e.detail.index;
|
||||||
|
this.data.files.splice(index, 1);
|
||||||
|
},
|
||||||
|
previewImage(e) {
|
||||||
|
wx.previewImage({
|
||||||
|
current: e.currentTarget.id,
|
||||||
|
urls: this.data.files
|
||||||
|
})
|
||||||
|
},
|
||||||
|
selectFile(files) {
|
||||||
|
console.log('files', files)
|
||||||
|
},
|
||||||
|
uploadFile(files) {
|
||||||
|
console.log(files)
|
||||||
|
const tempFilePaths = files.tempFilePaths;
|
||||||
|
const token = Cache.get('token')
|
||||||
|
const header = {}
|
||||||
|
if (token) {
|
||||||
|
header.Auth = `Bearer ${token}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
var that = this
|
||||||
|
for (let i = 0; i < tempFilePaths.length; i++) {
|
||||||
|
wx.uploadFile({
|
||||||
|
url: uploadImgUrl,
|
||||||
|
header: header,
|
||||||
|
filePath: tempFilePaths[i],
|
||||||
|
name: 'image',
|
||||||
|
success(res) {
|
||||||
|
console.log(res)
|
||||||
|
let result = JSON.parse(res.data)
|
||||||
|
that.data.files.push(result.data)
|
||||||
|
},
|
||||||
|
fail(err) {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 文件上传的函数,返回一个promise
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
var result = {};
|
||||||
|
result['urls'] = tempFilePaths;
|
||||||
|
resolve(result);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//提交
|
||||||
|
doApply() {
|
||||||
|
const legal = this.checkParams()
|
||||||
|
if (legal) {
|
||||||
|
const _self = this
|
||||||
|
wx.showLoading({
|
||||||
|
title: '提交中...',
|
||||||
|
})
|
||||||
|
const ids = _self.data.files.map(item => item.fileId).join(',');
|
||||||
|
const data = {
|
||||||
|
projId: _self.data.selPro.projId,
|
||||||
|
refundReason: _self.data.remark,
|
||||||
|
refundVoucher: ids
|
||||||
|
}
|
||||||
|
ProApi.doApplyRefundPro(data)
|
||||||
|
.then(res => {
|
||||||
|
wx.hideLoading()
|
||||||
|
_self.setData({
|
||||||
|
msgHint: '提交成功,请耐心等待审核',
|
||||||
|
msgType: 'success',
|
||||||
|
msgShow: true
|
||||||
|
})
|
||||||
|
setTimeout(() => {
|
||||||
|
_self.backPageRefresh()
|
||||||
|
}, 2000);
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
wx.hideLoading()
|
||||||
|
_self.setData({
|
||||||
|
msgHint: err.msg ? err.msg : '提交失败,请稍后重试',
|
||||||
|
msgType: 'error',
|
||||||
|
msgShow: true
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//校验参数
|
||||||
|
checkParams() {
|
||||||
|
const _self = this
|
||||||
|
if (_self.data.selPro == null) {
|
||||||
|
_self.setData({
|
||||||
|
msgHint: '请选择退款软著',
|
||||||
|
msgType: 'error',
|
||||||
|
msgShow: true
|
||||||
|
})
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (_self.data.remark == '') {
|
||||||
|
_self.setData({
|
||||||
|
msgHint: '请输入退款原因',
|
||||||
|
msgType: 'error',
|
||||||
|
msgShow: true
|
||||||
|
})
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (_self.data.files.length <= 0) {
|
||||||
|
_self.setData({
|
||||||
|
msgHint: '请上传退款凭证',
|
||||||
|
msgType: 'error',
|
||||||
|
msgShow: true
|
||||||
|
})
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
},
|
||||||
|
backPageRefresh() {
|
||||||
|
const _self = this
|
||||||
|
let pages = getCurrentPages();
|
||||||
|
let beforePage = pages[pages.length - 2];
|
||||||
|
beforePage.doRefreshList()
|
||||||
|
wx.navigateBack()
|
||||||
|
}
|
||||||
|
})
|
9
pages/copyright/applyRefund/applyRefund.json
Normal file
9
pages/copyright/applyRefund/applyRefund.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"usingComponents": {
|
||||||
|
"mp-toptips": "weui-miniprogram/toptips/toptips",
|
||||||
|
"mp-half-screen-dialog": "weui-miniprogram/half-screen-dialog/half-screen-dialog",
|
||||||
|
"mp-uploader": "weui-miniprogram/uploader/uploader",
|
||||||
|
"container-loading": "/components/container-loading/container-loading",
|
||||||
|
"mp-loading": "weui-miniprogram/loading/loading"
|
||||||
|
}
|
||||||
|
}
|
80
pages/copyright/applyRefund/applyRefund.wxml
Normal file
80
pages/copyright/applyRefund/applyRefund.wxml
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
<!--pages/copyright/applyRepair/applyRepair.wxml-->
|
||||||
|
<view class="page-container">
|
||||||
|
<swiper indicator-dots style="height: 120rpx;" autoplay indicator-active-color="#fff">
|
||||||
|
<swiper-item>
|
||||||
|
<image src="{{imgAssets}}/banner_1.png" style="width: 100vw;height: 120rpx;"></image>
|
||||||
|
</swiper-item>
|
||||||
|
<swiper-item>
|
||||||
|
<image src="{{imgAssets}}/banner_2.png" style="width: 100vw;height: 120rpx;"></image>
|
||||||
|
</swiper-item>
|
||||||
|
</swiper>
|
||||||
|
<view class="apply-box">
|
||||||
|
<text class="label">申请退款</text>
|
||||||
|
<view class="apply-item-row mt-20 ml-10">
|
||||||
|
<view class="apply-title star" style="align-self: center;">退款软著</view>
|
||||||
|
<view class="apply-content" bind:tap="showSelProDialog">
|
||||||
|
<view class="{{selPro == null? 'text-hint':'text-sel'}}">{{selPro==null? '选择需要退款的软著' :selPro.projName}}</view>
|
||||||
|
<view class="icon-arrow-down-line" style="width: 24rpx;height: 24rpx;margin:0rpx 20rpx;"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="apply-item-column mt-20 ml-10">
|
||||||
|
<view class="apply-title star">退款原因</view>
|
||||||
|
<textarea bindinput="inputRemark" value="{{remark}}" placeholder="请输入退款原因" placeholder-style="font-size:28rpx;color:var(--text-gray-hint-color)" class="reason-content mt-10"></textarea>
|
||||||
|
</view>
|
||||||
|
<view class="apply-item-column mt-20 ml-10">
|
||||||
|
<view class="apply-title star">退款凭证</view>
|
||||||
|
<view>
|
||||||
|
<mp-uploader max-count="4" delete="true" select="{{selectFile}}" upload="{{uploadFile}}" bind:delete="deleteImage" files="{{files}}" title=""></mp-uploader>
|
||||||
|
</view>
|
||||||
|
<view class="hint">
|
||||||
|
*上传完整的补正通知书或者完整的补正通知书的截图,要求右上方的流水号和右下方的补正通知书的日期都得完整显示
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="bottom-fixed-footer">
|
||||||
|
<view class="bottom-btn-green" bind:tap="doApply">提交</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 补正软著列表 -->
|
||||||
|
<mp-half-screen-dialog show="{{showSelPro}}" bindclose="closeDialog">
|
||||||
|
<view slot="title">
|
||||||
|
<view class="search-container">
|
||||||
|
<input class="search-input" value="{{proKeywords}}" bindinput="inputKeywords" bindconfirm="doSearchKeyWord" type="text" confirm-type="search" placeholder="请输入项目名称" />
|
||||||
|
<view wx:if="{{proKeywords !=''}}" bind:tap="clearSearch" class="icon-clear" style="width: 20px;height: 20px;"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view slot="desc">
|
||||||
|
<view style="height: 600rpx;">
|
||||||
|
<container-loading loadingState="{{loadingState}}" style="height: 600rpx;" bindrefresh="doRefreshList">
|
||||||
|
<scroll-view scroll-y="{{true}}" style="height: 600rpx;" bindrefresherrefresh="doRefreshList" refresher-enabled refresher-triggered="{{listRefreshTrig}}" bindscrolltolower="doLoadMore" lower-threshold='50'>
|
||||||
|
<view class="pro-list-box">
|
||||||
|
<radio-group>
|
||||||
|
<block wx:for="{{proList}}" wx:key="index">
|
||||||
|
<view class="pro-list-item" bind:tap="" data-value="{{item}}">
|
||||||
|
<radio class="custom-radio" style="margin-left: 5px;" checked="{{tempSelPro.projId==item.projId}}"></radio>
|
||||||
|
<view class="pro-list-item-left" bind:tap="choosePro" data-value="{{item}}">
|
||||||
|
<view class="pro-list-item-left-title">
|
||||||
|
<view class="pro-list-name">{{item.projName}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="pro-list-item-left-footer">
|
||||||
|
<view class="pro-list-item-left-tag">{{item.applyContactName}}</view>
|
||||||
|
<view class="pro-list-item-left-tag">{{item.projContext}}</view>
|
||||||
|
<view class="pro-list-item-left-tag">{{item.gmtCreate}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
</radio-group>
|
||||||
|
<mp-loading show="{{isLoadMore}}" type="circle"></mp-loading>
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
||||||
|
</container-loading>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view slot="footer">
|
||||||
|
<view class="bottom-btn-green" bind:tap="confirmSelPro">确定</view>
|
||||||
|
</view>
|
||||||
|
</mp-half-screen-dialog>
|
||||||
|
|
||||||
|
<mp-toptips msg="{{msgHint}}" type="{{msgType}}" show="{{msgShow}}" :delay="2000"></mp-toptips>
|
236
pages/copyright/applyRefund/applyRefund.wxss
Normal file
236
pages/copyright/applyRefund/applyRefund.wxss
Normal file
@ -0,0 +1,236 @@
|
|||||||
|
/* pages/copyright/applyRepair/applyRepair.wxss */
|
||||||
|
.apply-box {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding: 30rpx;
|
||||||
|
background-color: var(--white-color);
|
||||||
|
border-radius: 5rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.label {
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.apply-item-row {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.apply-item-column {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.apply-title {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: var(--text-color);
|
||||||
|
flex: 0.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.apply-content {
|
||||||
|
font-size: 28rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-end;
|
||||||
|
flex: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reason-content {
|
||||||
|
border-radius: 10rpx;
|
||||||
|
border: 1rpx solid var(--divider-color);
|
||||||
|
height: 120rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
padding: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-hint {
|
||||||
|
color: var(--text-gray-hint-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-sel {
|
||||||
|
color: var(--text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.hint {
|
||||||
|
margin-top: 10rpx;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: var(--red-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pro-list-box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pro-list-item {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
background-color: var(--primary-color-light);
|
||||||
|
border-radius: 10rpx;
|
||||||
|
padding: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pro-list-item:nth-of-type(n+2) {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pro-list-item-left {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
flex: 1;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pro-list-item-left-title {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pro-list-item-left-footer {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pro-list-item-left-count {
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: var(--text-color);
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
margin-top: 4rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pro-list-item-left-tag {
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: var(--text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pro-list-name {
|
||||||
|
font-size: 26rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.search-container {
|
||||||
|
position: relative;
|
||||||
|
align-self: center;
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: var(--bg-gray-color);
|
||||||
|
padding: 5px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-input {
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: var(--text-color);
|
||||||
|
font-size: 28rpx;
|
||||||
|
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+');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* 上传图片 */
|
||||||
|
|
||||||
|
.weui-uploader {
|
||||||
|
margin-top: 10rpx;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weui-uploader__bd {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weui-uploader__hd {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weui-uploader__input-box {
|
||||||
|
width: 65px;
|
||||||
|
height: 65px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weui-uploader__file {
|
||||||
|
width: 65px;
|
||||||
|
height: 65px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weui-uploader__img {
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weui-uploader__overview {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 65vw;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weui-uploader__input-box {
|
||||||
|
background: white;
|
||||||
|
border: 1px solid var(--divider-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* 未选中状态 */
|
||||||
|
.custom-radio .wx-radio-input {
|
||||||
|
border-color: var(--primary-color);
|
||||||
|
/* 自定义未选中时的边框颜色 */
|
||||||
|
background-color: transparent;
|
||||||
|
width: 32rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 选中状态 */
|
||||||
|
.custom-radio .wx-radio-input.wx-radio-input-checked {
|
||||||
|
border-color: var(--primary-color);
|
||||||
|
/* 自定义选中时的边框颜色 */
|
||||||
|
background: linear-gradient(to right, var(--primary-color), var(--primary-color-light));
|
||||||
|
/* 自定义选中时的背景颜色 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 选中状态下的内部圆圈 */
|
||||||
|
.custom-radio .wx-radio-input.wx-radio-input-checked::before {
|
||||||
|
color: #fff;
|
||||||
|
/* 自定义选中时内部圆圈的颜色 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.weui-half-screen-dialog__bd {
|
||||||
|
padding-bottom: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weui-half-screen-dialog__ft {
|
||||||
|
padding: 0rpx 0rpx 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weui-half-screen-dialog__hd__side+.weui-half-screen-dialog__hd__main {
|
||||||
|
padding: 0 46rpx;
|
||||||
|
}
|
@ -1,66 +1,306 @@
|
|||||||
// pages/copyright/refund/refund.js
|
// pages/copyright/refund/refund.js
|
||||||
|
import ProApi from '../../../net/api/projectApi'
|
||||||
|
import {
|
||||||
|
previewUrl
|
||||||
|
} from '../../../net/http'
|
||||||
|
const app = getApp()
|
||||||
|
const jsonData = require('../../../utils/data')
|
||||||
|
const Cache = require('../../../utils/storage')
|
||||||
Page({
|
Page({
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 页面的初始数据
|
* 页面的初始数据
|
||||||
*/
|
*/
|
||||||
data: {
|
data: {
|
||||||
|
pageData: {
|
||||||
|
page: 1,
|
||||||
|
rows: 10,
|
||||||
|
applyStatus: '', //状态
|
||||||
|
projName: '' //项目名称
|
||||||
|
},
|
||||||
|
keywords: '',
|
||||||
|
stateList: jsonData.stateList,
|
||||||
|
selectState: '',
|
||||||
|
msgHint: '',
|
||||||
|
msgType: 'error',
|
||||||
|
msgShow: false,
|
||||||
|
loadingState: 'loading',
|
||||||
|
listRefreshTrig: false,
|
||||||
|
isLoadMore: false,
|
||||||
|
hasMore: true,
|
||||||
|
refundList: [],
|
||||||
|
slideBtns: app.globalData.cancelEditBtns,
|
||||||
|
showHint: false,
|
||||||
|
buttons: [{
|
||||||
|
text: '关闭'
|
||||||
|
}],
|
||||||
|
tempItem: null,
|
||||||
|
},
|
||||||
|
|
||||||
},
|
/**
|
||||||
|
* 生命周期函数--监听页面加载
|
||||||
/**
|
*/
|
||||||
* 生命周期函数--监听页面加载
|
onLoad(options) {
|
||||||
*/
|
wx.setNavigationBarTitle({
|
||||||
onLoad(options) {
|
title: '退款项目',
|
||||||
|
})
|
||||||
},
|
wx.setNavigationBarColor({
|
||||||
|
frontColor: '#000000', // 必写项,字体颜色仅支持#ffffff和#000000
|
||||||
/**
|
backgroundColor: '#F0F0F0', // 传递的颜色值,仅支持十六进制颜色
|
||||||
* 生命周期函数--监听页面初次渲染完成
|
animation: { // 可选项
|
||||||
*/
|
duration: 500,
|
||||||
onReady() {
|
timingFunc: 'easeIn'
|
||||||
|
}
|
||||||
},
|
})
|
||||||
|
this.getRefundList(true)
|
||||||
/**
|
},
|
||||||
* 生命周期函数--监听页面显示
|
//去退款
|
||||||
*/
|
applyRefund() {
|
||||||
onShow() {
|
wx.navigateTo({
|
||||||
|
url: '/pages/copyright/applyRefund/applyRefund',
|
||||||
},
|
})
|
||||||
|
},
|
||||||
/**
|
inputKeywords(e) {
|
||||||
* 生命周期函数--监听页面隐藏
|
this.setData({
|
||||||
*/
|
keywords: e.detail.value
|
||||||
onHide() {
|
})
|
||||||
|
},
|
||||||
},
|
clearSearch() {
|
||||||
|
this.setData({
|
||||||
/**
|
keywords: ''
|
||||||
* 生命周期函数--监听页面卸载
|
})
|
||||||
*/
|
this.doRefreshList()
|
||||||
onUnload() {
|
},
|
||||||
|
doSearchKeyWord() {
|
||||||
},
|
this.doRefreshList()
|
||||||
|
},
|
||||||
/**
|
chooseState(e) {
|
||||||
* 页面相关事件处理函数--监听用户下拉动作
|
const value = e.currentTarget.dataset.value
|
||||||
*/
|
this.setData({
|
||||||
onPullDownRefresh() {
|
selectState: value == this.data.selectState ? '' : value
|
||||||
|
})
|
||||||
},
|
this.doRefreshList()
|
||||||
|
},
|
||||||
/**
|
doRefreshList() {
|
||||||
* 页面上拉触底事件的处理函数
|
console.log('正在刷新...')
|
||||||
*/
|
const _self = this
|
||||||
onReachBottom() {
|
_self.setData({
|
||||||
|
listRefreshTrig: true,
|
||||||
},
|
loadingState: 'loading',
|
||||||
|
hasMore: true,
|
||||||
/**
|
'pageData.page': 1,
|
||||||
* 用户点击右上角分享
|
'pageData.projName': _self.data.keywords,
|
||||||
*/
|
'pageData.applyStatus': _self.data.selectState,
|
||||||
onShareAppMessage() {
|
isLoadMore: false
|
||||||
|
})
|
||||||
}
|
_self.getRefundList(true)
|
||||||
|
},
|
||||||
|
doLoadMore() {
|
||||||
|
//判断是否正在加载中 与是否存在更多数据
|
||||||
|
const _self = this
|
||||||
|
if (_self.data.isLoadMore || !_self.data.hasMore) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_self.setData({
|
||||||
|
isLoadMore: true,
|
||||||
|
'pageData.page': ++_self.data.pageData.page,
|
||||||
|
'pageData.projName': _self.data.keywords,
|
||||||
|
'pageData.applyStatus': _self.data.selectState,
|
||||||
|
})
|
||||||
|
_self.getRefundList(false)
|
||||||
|
},
|
||||||
|
getRefundList(isRefresh) {
|
||||||
|
const _self = this
|
||||||
|
_self.setData({
|
||||||
|
refundList: isRefresh ? [] : _self.data.refundList,
|
||||||
|
loadingState: isRefresh ? 'loading' : ''
|
||||||
|
})
|
||||||
|
ProApi.doGetMineRefundProList(_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 : '',
|
||||||
|
refundList: _self.data.refundList.concat(res.rows),
|
||||||
|
listRefreshTrig: false,
|
||||||
|
isLoadMore: false
|
||||||
|
})
|
||||||
|
_self.setData({
|
||||||
|
hasMore: _self.data.refundList.length < res.total
|
||||||
|
})
|
||||||
|
}, err => {
|
||||||
|
_self.setData({
|
||||||
|
loadingState: 'error',
|
||||||
|
listRefreshTrig: false,
|
||||||
|
isLoadMore: false,
|
||||||
|
hasMore: true
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
show(e) {
|
||||||
|
console.log('显示', e)
|
||||||
|
//判断状态
|
||||||
|
const _self = this
|
||||||
|
const value = e.currentTarget.dataset.value
|
||||||
|
const id = e.currentTarget.id
|
||||||
|
if (value.applyStatus != 'PENDING') {
|
||||||
|
//通过 或 取消 后不能撤销
|
||||||
|
const item = _self.selectComponent(`#${id}`)
|
||||||
|
if (item) {
|
||||||
|
item.setData({
|
||||||
|
show: false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
slideButtonTap(e) {
|
||||||
|
const index = e.detail.index
|
||||||
|
const item = e.currentTarget.dataset.value
|
||||||
|
console.log(e)
|
||||||
|
if (index == 0) {
|
||||||
|
//取消
|
||||||
|
this.showCancel(item)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
showCancel(item) {
|
||||||
|
const _self = this
|
||||||
|
wx.showModal({
|
||||||
|
title: '警告',
|
||||||
|
content: '您确定要撤销申请吗?',
|
||||||
|
complete: (res) => {
|
||||||
|
if (res.confirm) {
|
||||||
|
_self.doCancel(item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
doCancel(item) {
|
||||||
|
const _self = this
|
||||||
|
wx.showLoading({
|
||||||
|
title: '取消中...',
|
||||||
|
})
|
||||||
|
ProApi.doCancelRefundPro(item.projRefundApplyId)
|
||||||
|
.then(res => {
|
||||||
|
wx.hideLoading()
|
||||||
|
_self.setData({
|
||||||
|
msgType: 'success',
|
||||||
|
msgHint: '撤销成功',
|
||||||
|
msgShow: true
|
||||||
|
})
|
||||||
|
_self.doRefreshList()
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
wx.hideLoading()
|
||||||
|
_self.setData({
|
||||||
|
msgType: 'error',
|
||||||
|
msgHint: err.msg ? err.msg : '撤销失败,请稍后重试',
|
||||||
|
msgShow: true
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
showReason(e) {
|
||||||
|
const item = e.currentTarget.dataset.value
|
||||||
|
item.refundVoucherFileKVs.map(value => {
|
||||||
|
value.url = previewUrl + value.key
|
||||||
|
return value
|
||||||
|
})
|
||||||
|
const _self = this
|
||||||
|
_self.setData({
|
||||||
|
tempItem: item,
|
||||||
|
showHint: true
|
||||||
|
})
|
||||||
|
},
|
||||||
|
closeHint(e) {
|
||||||
|
this.setData({
|
||||||
|
showHint: false,
|
||||||
|
tempItem: null
|
||||||
|
})
|
||||||
|
},
|
||||||
|
previewImg(e) {
|
||||||
|
const _self = this
|
||||||
|
const current = e.currentTarget.dataset.value
|
||||||
|
//判断是pdf还是图片
|
||||||
|
if (current.value.toLowerCase().endsWith('.pdf')) {
|
||||||
|
//文件,下载文件
|
||||||
|
_self.doDownloadApprovePdf(current)
|
||||||
|
} else {
|
||||||
|
//图片
|
||||||
|
const urls = [current.url]
|
||||||
|
wx.previewImage({
|
||||||
|
urls: urls,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
doDownloadApprovePdf(item) {
|
||||||
|
const _self = this
|
||||||
|
_self.setData({
|
||||||
|
showHint: false
|
||||||
|
})
|
||||||
|
wx.showLoading({
|
||||||
|
title: '加载中...',
|
||||||
|
})
|
||||||
|
const token = Cache.get('token')
|
||||||
|
const header = {}
|
||||||
|
if (token) {
|
||||||
|
header.Auth = `Bearer ${token}`;
|
||||||
|
}
|
||||||
|
wx.downloadFile({
|
||||||
|
url: item.url,
|
||||||
|
header: header,
|
||||||
|
success: res => {
|
||||||
|
wx.hideLoading()
|
||||||
|
if (res.statusCode === 200) {
|
||||||
|
// 从响应头中获取文件名
|
||||||
|
let fileName = item.value;
|
||||||
|
if (fileName) {
|
||||||
|
// 保存文件时使用获取到的文件名
|
||||||
|
wx.getFileSystemManager().saveFile({
|
||||||
|
tempFilePath: res.tempFilePath,
|
||||||
|
filePath: wx.env.USER_DATA_PATH + '/' + fileName,
|
||||||
|
success: function (res) {
|
||||||
|
const savedFilePath = res.savedFilePath;
|
||||||
|
console.log('文件下载并保存成功', savedFilePath);
|
||||||
|
if (savedFilePath.endsWith(".txt")) {
|
||||||
|
wx.navigateTo({
|
||||||
|
url: '/pages/readTxt/readTxt?filePath=' + savedFilePath,
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
wx.openDocument({
|
||||||
|
filePath: savedFilePath,
|
||||||
|
showMenu: true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: function (err) {
|
||||||
|
console.error('文件保存失败', err);
|
||||||
|
_self.showErr('很抱歉,文件下载出现问题。建议您稍作等待,之后再尝试下载。')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
console.error('未从响应头中获取到文件名');
|
||||||
|
_self.showErr('很抱歉,文件下载出现问题。建议您稍作等待,之后再尝试下载。')
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
_self.showErr('很抱歉,文件下载出现问题。建议您稍作等待,之后再尝试下载。')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: err => {
|
||||||
|
_self.showErr('很抱歉,文件下载出现问题。建议您稍作等待,之后再尝试下载。')
|
||||||
|
console.log(`下载失败${err}`)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//显示错误信息
|
||||||
|
showErr(msg) {
|
||||||
|
const _self = this
|
||||||
|
_self.setData({
|
||||||
|
msgHint: msg,
|
||||||
|
msgType: 'error',
|
||||||
|
msgShow: true,
|
||||||
|
showDownloadDialog: false,
|
||||||
|
downloading: false,
|
||||||
|
downloadProgress: 0
|
||||||
|
})
|
||||||
|
}
|
||||||
})
|
})
|
@ -1,3 +1,9 @@
|
|||||||
{
|
{
|
||||||
"usingComponents": {}
|
"usingComponents": {
|
||||||
|
"mp-loading": "weui-miniprogram/loading/loading",
|
||||||
|
"container-loading": "/components/container-loading/container-loading",
|
||||||
|
"mp-toptips": "weui-miniprogram/toptips/toptips",
|
||||||
|
"mp-dialog": "weui-miniprogram/dialog/dialog",
|
||||||
|
"mp-slideview": "weui-miniprogram/slideview/slideview"
|
||||||
|
}
|
||||||
}
|
}
|
@ -1,2 +1,73 @@
|
|||||||
<!--pages/copyright/refund/refund.wxml-->
|
<view class="page-container">
|
||||||
<text>pages/copyright/refund/refund.wxml</text>
|
<view class="search-box">
|
||||||
|
<view class="search-input-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="applyRefund">申请退款</view>
|
||||||
|
</view>
|
||||||
|
<!-- 条件 -->
|
||||||
|
<view class="options-list-box">
|
||||||
|
<block wx:for="{{stateList}}" wx:key="index">
|
||||||
|
<view class="{{selectState==item.value ? 'options-tab-select':'options-tab-normal'}}" data-value="{{item.value}}" bind:tap="chooseState">{{item.title}}</view>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="content-container">
|
||||||
|
<container-loading loadingState="{{loadingState}}" style="height: 82vh;" bindrefresh="doRefreshList">
|
||||||
|
<scroll-view scroll-y="{{true}}" style="height: 82vh;padding-bottom: 40px;" bindrefresherrefresh="doRefreshList" refresher-enabled refresher-triggered="{{listRefreshTrig}}" bindscrolltolower="doLoadMore" lower-threshold='30'>
|
||||||
|
<view class="repair-list-box">
|
||||||
|
<block wx:for="{{refundList}}" wx:key="index">
|
||||||
|
<mp-slideview id="mp-slide-{{index}}" buttons="{{slideBtns}}" icon="{{true}}" data-value="{{item}}" bindshow="show" bindbuttontap="slideButtonTap" class="{{index > 0 ? 'mt-20':''}}">
|
||||||
|
<view class="repair-list-item">
|
||||||
|
<view class="repair-item-title-box" data-value="{{item}}" bind:tap="showReason">
|
||||||
|
<view class="repair-title-box">
|
||||||
|
<view class="{{tools.repairStatusColor(item.applyStatus)}} repair-status-content">{{tools.repairStatus(item.applyStatus)}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="repair-title-apply-time">{{item.gmtCreate}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="divider-v mt-20"></view>
|
||||||
|
<view class="repair-name-box mt-10" data-value="{{item}}" bind:tap="showReason">
|
||||||
|
<view class="repair-title-content">{{item.projName}}</view>
|
||||||
|
</view>
|
||||||
|
<view data-value="{{item}}" bind:tap="showReason" class="repair-reason-desc multiple-2-ellipsis">{{item.refundReason}}</view>
|
||||||
|
<view class="repair-footer-box">
|
||||||
|
<view class="repair-attr-box" data-value="{{item}}" bind:tap="showReason">
|
||||||
|
<view class="repair-attr-item">{{item.userInfoName}}</view>
|
||||||
|
<rich-text style="color:var(--red-color);font-weight: bold;" nodes="{{tools.moneyTxt(10,item.projPayment/100)}}"></rich-text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</mp-slideview>
|
||||||
|
</block>
|
||||||
|
<mp-loading show="{{isLoadMore}}" type="circle"></mp-loading>
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
||||||
|
</container-loading>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<mp-dialog show="{{showHint}}" buttons="{{buttons}}" bindbuttontap="closeHint">
|
||||||
|
<view class="approve-box">
|
||||||
|
<view class="approve-title">退款原因</view>
|
||||||
|
<view class="approve-content mt-10">{{tempItem.refundReason}}</view>
|
||||||
|
<view class="approve-title mt-10">退款凭证</view>
|
||||||
|
<view class="approve-img-box mt-10">
|
||||||
|
<block wx:for="{{tempItem.refundVoucherFileKVs}}" wx:key="index">
|
||||||
|
<view class="approve-img-item single-line" bind:tap="previewImg" data-value="{{item}}">
|
||||||
|
{{item.value}}
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
<view wx:if="{{tempItem.gmtReview !=''}}" class="approve-content-box">
|
||||||
|
<view class="approve-title mt-10">审核时间</view>
|
||||||
|
<view class="approve-content mt-10">{{tempItem.gmtReview}}</view>
|
||||||
|
<view class="approve-title mt-10">审核意见</view>
|
||||||
|
<view class="approve-content mt-10">{{tempItem.reviewReason}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</mp-dialog>
|
||||||
|
<!-- 下载dialog -->
|
||||||
|
|
||||||
|
<mp-toptips msg="{{msgHint}}" type="{{msgType}}" show="{{msgShow}}" :delay="2000"></mp-toptips>
|
||||||
|
<wxs src="../../../utils/comm.wxs" module="tools"></wxs>
|
@ -1 +1,640 @@
|
|||||||
/* pages/copyright/refund/refund.wxss */
|
.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: column;
|
||||||
|
box-sizing: border-box;
|
||||||
|
width: 100%;
|
||||||
|
padding: 20rpx 30rpx 0rpx 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-input-box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-container {
|
||||||
|
position: relative;
|
||||||
|
align-self: center;
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: var(--white-color);
|
||||||
|
padding: 5px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-input {
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: var(--text-color);
|
||||||
|
font-size: 28rpx;
|
||||||
|
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+');
|
||||||
|
}
|
||||||
|
|
||||||
|
.options-list-box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding-top: 30rpx;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.options-tab-select {
|
||||||
|
white-space: nowrap;
|
||||||
|
line-height: 17px;
|
||||||
|
border-radius: 2px;
|
||||||
|
border: 1rpx solid var(--primary-color-light);
|
||||||
|
background-color: var(--primary-color-light);
|
||||||
|
color: var(--text-brown-color);
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: center;
|
||||||
|
padding: 2px 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.options-tab-normal {
|
||||||
|
line-height: 17px;
|
||||||
|
border-radius: 2px;
|
||||||
|
border: 1rpx solid transparent;
|
||||||
|
color: rgba(154, 154, 154, 1);
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: center;
|
||||||
|
white-space: nowrap;
|
||||||
|
padding: 2px 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.add-btn {
|
||||||
|
border-radius: 8rpx;
|
||||||
|
background-color: var(--btn-green-color);
|
||||||
|
color: rgba(255, 255, 255, 1);
|
||||||
|
font-size: 28rpx;
|
||||||
|
text-align: center;
|
||||||
|
height: 50rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
line-height: 50rpx;
|
||||||
|
font-family: PingFangSC-regular;
|
||||||
|
padding: 5rpx 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.add-btn:active {
|
||||||
|
background-color: var(--btn-green-color-active);
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-container {
|
||||||
|
height: 82vh;
|
||||||
|
margin-top: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-btn {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 40rpx;
|
||||||
|
left: 0;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.repair-list-box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.repair-list-item {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
background-color: var(--white-color);
|
||||||
|
padding: 20rpx;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.repair-list-item:nth-of-type(n+2) {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.repair-item-title-box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.repair-title-box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.repair-name-box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.repair-title-content {
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.repair-reason-desc {
|
||||||
|
margin-top: 10rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: var(--text-gray-desc-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.repair-footer-box {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: flex-end;
|
||||||
|
}
|
||||||
|
|
||||||
|
.repair-attr-box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: baseline;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.repair-attr-item {
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: var(--text-brown-color);
|
||||||
|
background-color: var(--divider-color);
|
||||||
|
padding: 5rpx 15rpx;
|
||||||
|
border-radius: 5rpx;
|
||||||
|
line-height: 40rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.repair-attr-item:nth-of-type(n+2) {
|
||||||
|
margin-left: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.repair-title-apply-time {
|
||||||
|
font-size: 22rpx;
|
||||||
|
color: var(--text-gray-hint-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.repair-status-green {
|
||||||
|
background-color: var(--bg-green-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.repair-status-red {
|
||||||
|
background-color: var(--bg-red-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.repair-status-yellow {
|
||||||
|
background-color: var(--primary-color);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.repair-status-content {
|
||||||
|
padding: 2rpx 10rpx;
|
||||||
|
font-size: 22rpx;
|
||||||
|
border-radius: 5rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
line-height: 30rpx;
|
||||||
|
text-align: center;
|
||||||
|
color: var(--text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.repair-status-gray {
|
||||||
|
background-color: var(--bg-gray-deep-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.order-item {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
padding: 10rpx 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.record-title-box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
|
.record-options {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
|
.options-btn {
|
||||||
|
font-size: 24rpx;
|
||||||
|
line-height: 24rpx;
|
||||||
|
height: 24rpx;
|
||||||
|
padding: 10rpx 20rpx;
|
||||||
|
border-radius: 5rpx;
|
||||||
|
background-color: var(--btn-green-color);
|
||||||
|
color: var(--white-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.options-btn:active {
|
||||||
|
background-color: var(--btn-green-color-active);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.red:active {
|
||||||
|
background-color: var(--red-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.record-title-status {
|
||||||
|
font-size: 20rpx;
|
||||||
|
line-height: 24rpx;
|
||||||
|
height: 24rpx;
|
||||||
|
margin-top: 8rpx;
|
||||||
|
text-align: center;
|
||||||
|
padding: 5rpx;
|
||||||
|
min-width: 80rpx;
|
||||||
|
border-radius: 5rpx;
|
||||||
|
margin-right: 15rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.approve-box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.approve-title {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: var(--text-color);
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.approve-content-box {
|
||||||
|
margin-top: 10rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.approve-img-box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
margin-top: 15rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.approve-img-item {
|
||||||
|
font-size: 24rpx;
|
||||||
|
border-radius: 5rpx;
|
||||||
|
padding: 10rpx;
|
||||||
|
text-align: left;
|
||||||
|
background-color: var(--gray-bg-color);
|
||||||
|
width: 100%;
|
||||||
|
margin: 10rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.approve-img-item:nth-of-type(n+2) {
|
||||||
|
margin-top: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.approve-content {
|
||||||
|
font-size: 24rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
text-align: left;
|
||||||
|
color: var(--text-gray-desc-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.approve-hint {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: var(--text-gray-hint-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-yellow {
|
||||||
|
background-color: var(--primary-color);
|
||||||
|
color: var(--text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-gray {
|
||||||
|
background-color: var(--bg-gray-deep-color);
|
||||||
|
color: var(--text-gray-desc-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-green {
|
||||||
|
background-color: var(--bg-green-color);
|
||||||
|
color: #006400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-red {
|
||||||
|
background-color: var(--bg-red-color);
|
||||||
|
color: #8b0000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.record-title-name {
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: var(--text-color);
|
||||||
|
font-weight: bold;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.record-number {
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: var(--text-gray-desc-color);
|
||||||
|
margin-left: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.record-time {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.record-bottom-box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-time::before {
|
||||||
|
content: '';
|
||||||
|
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQ1ODEyODg5NzI5IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjM2MTgwIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Ik01MTMgMzMuMjJjLTI2NS4xIDAtNDgwIDIxNC45LTQ4MCA0ODBzMjE0LjkgNDgwIDQ4MCA0ODAgNDgwLTIxNC45IDQ4MC00ODAtMjE0LjktNDgwLTQ4MC00ODB6IG0yMDguOSA2NTIuNTljLTExLjA1IDE5LjEzLTM1LjUxIDI1LjY5LTU0LjY0IDE0LjY0TDQ3NC4xIDU4OC45M2MtMTMuMDYtNy41NC0yMC4yNi0yMS4zNC0xOS45OS0zNS40MiAwLTAuMTctMC4wMS0wLjM0LTAuMDEtMC41MVYzMjkuOTVjMC0yMi4wOSAxNy45MS00MCA0MC00MHM0MCAxNy45MSA0MCA0MHYyMDEuMjNsMTczLjE3IDk5Ljk4YzE5LjEyIDExLjA1IDI1LjY4IDM1LjUxIDE0LjYzIDU0LjY1eiIgZmlsbD0iI2RiZGJkYiIgcC1pZD0iMzYxODEiPjwvcGF0aD48L3N2Zz4=');
|
||||||
|
background-size: cover;
|
||||||
|
width: 28rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
margin-right: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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: var(--text-color);
|
||||||
|
font-size: 32rpx;
|
||||||
|
text-align: left;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: SourceHanSansSC-black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.service-desc {
|
||||||
|
padding: 0px 15px 15px 15px;
|
||||||
|
line-height: 20px;
|
||||||
|
color: var(--text-color);
|
||||||
|
font-size: 14px;
|
||||||
|
text-align: left;
|
||||||
|
font-family: SourceHanSansSC-regular;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit {
|
||||||
|
line-height: 20px;
|
||||||
|
border-radius: 4px;
|
||||||
|
background-color: var(--btn-green-color);
|
||||||
|
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: var(--btn-red-color);
|
||||||
|
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: var(--btn-red-color-active);
|
||||||
|
}
|
||||||
|
|
||||||
|
.options-box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit:active {
|
||||||
|
background-color: var(--btn-green-color-active);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.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: var(--text-color);
|
||||||
|
font-weight: 500;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-item-title:not(.no-after)::before {
|
||||||
|
content: "*";
|
||||||
|
color: var(--red-color);
|
||||||
|
font-size: 14px;
|
||||||
|
margin-left: 1px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-item-content {
|
||||||
|
flex: 1;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.confirm-btn {
|
||||||
|
background-color: var(--btn-green-color);
|
||||||
|
color: white;
|
||||||
|
font-size: 16px;
|
||||||
|
height: 70rpx;
|
||||||
|
line-height: 70rpx;
|
||||||
|
border-radius: 5px;
|
||||||
|
text-align: center;
|
||||||
|
width: 85vw !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.confirm-btn:active {
|
||||||
|
background-color: var(--btn-green-color-active);
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weui-half-screen-dialog__ft {
|
||||||
|
padding: 0rpx 0rpx 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weui-half-screen-dialog__bd {
|
||||||
|
padding-bottom: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weui-dialog__hd {
|
||||||
|
padding: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.download-item {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 10px;
|
||||||
|
background-color: var(--white-color);
|
||||||
|
border-radius: 5px;
|
||||||
|
height: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.download-item:nth-of-type(n+2) {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.download-item:last-child {
|
||||||
|
margin-bottom: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.download-title {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
padding: 10px;
|
||||||
|
width: 75px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.download-title-txt {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.download-btn-box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
height: 70px;
|
||||||
|
flex: .6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.download-btn {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
color: var(--text-color);
|
||||||
|
padding: 5px 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
border: 1px solid var(--divider-color);
|
||||||
|
width: 105px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.download-btn-txt {
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.download-btn:active {
|
||||||
|
background-color: var(--divider-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-table {
|
||||||
|
content: "";
|
||||||
|
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMzIgMzIiIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgc3R5bGU9IiIgZmlsdGVyPSJub25lIj4KICAgIAogICAgPGc+CiAgICA8cGF0aCBkPSJNMTYgMjFoLTR2Mmg0di0yek0xNyAyMWg0djJoLTR2LTJ6TTE2IDI2aC00di0yaDR2MnpNMTcgMjZoNHYtMmgtNHYyek0xNiAxOGgtNHYyaDR2LTJ6TTE3IDE4aDR2MmgtNHYtMnpNMTYgMTVoLTR2Mmg0di0yek0xNyAxNWg0djJoLTR2LTJ6TTE5IDN2Ni4wMDJjMCAxLjExMSAwLjg5OCAxLjk5OCAyLjAwNiAxLjk5OGg0Ljk5NHYxNy4wMDNjMCAxLjEwNy0wLjg5NCAxLjk5Ny0xLjk5NyAxLjk5N2gtMTUuMDA1Yy0xLjEwNyAwLTEuOTk3LTAuODk5LTEuOTk3LTIuMDA3di0yMi45ODVjMC0xLjEwOSAwLjg5OS0yLjAwNyAyLjAwOS0yLjAwN2g5Ljk5MXpNMjAgM3Y1Ljk5N2MwIDAuNTU0IDAuNDUxIDEuMDAzIDAuOTkxIDEuMDAzaDUuMDA5bC02LTd6TTExIDEzdjE0aDExdi0xNGgtMTF6IiBmaWxsPSJyZ2JhKDI1NSwxNjksMCwxKSI+PC9wYXRoPgogICAgPC9nPgogIDwvc3ZnPg==');
|
||||||
|
background-size: cover;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
width: 48px;
|
||||||
|
height: 48px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.icon-tool {
|
||||||
|
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSI2NCA2NCA4OTYgODk2IiB3aWR0aD0iNTIiIGhlaWdodD0iNTIiIHN0eWxlPSIiIGZpbHRlcj0ibm9uZSI+CiAgICAKICAgIDxnPgogICAgPHBhdGggZD0iTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTEzLjEgNTE4LjFsLTE5MiAxNjFjLTUuMiA0LjQtMTMuMS43LTEzLjEtNi4xdi02Mi43YzAtMi4zIDEuMS00LjYgMi45LTYuMUw0MjAuNyA1MTJsLTEwOS44LTkyLjJhNy42MyA3LjYzIDAgMCAxLTIuOS02LjFWMzUxYzAtNi44IDcuOS0xMC41IDEzLjEtNi4xbDE5MiAxNjAuOWMzLjkgMy4yIDMuOSA5LjEgMCAxMi4zek03MTYgNjczYzAgNC40LTMuNCA4LTcuNSA4aC0xODVjLTQuMSAwLTcuNS0zLjYtNy41LTh2LTQ4YzAtNC40IDMuNC04IDcuNS04aDE4NWM0LjEgMCA3LjUgMy42IDcuNSA4djQ4eiIgZmlsbD0icmdiYSg1MiwxMjQsMTc1LDEpIj48L3BhdGg+CiAgICA8L2c+CiAgPC9zdmc+');
|
||||||
|
background-size: cover;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
width: 42px;
|
||||||
|
height: 42px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.icon-source {
|
||||||
|
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSI2NCA2NCA4OTYgODk2IiB3aWR0aD0iNTIiIGhlaWdodD0iNTIiIHN0eWxlPSIiIGZpbHRlcj0ibm9uZSI+CiAgICAKICAgIDxnPgogICAgPHBhdGggZD0iTTkyOCAxNjFINjk5LjJjLTQ5LjEgMC05Ny4xIDE0LjEtMTM4LjQgNDAuN0w1MTIgMjMzbC00OC44LTMxLjNBMjU1LjIgMjU1LjIgMCAwIDAgMzI0LjggMTYxSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1NjhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjI4LjhjNDkuMSAwIDk3LjEgMTQuMSAxMzguNCA0MC43bDQ0LjQgMjguNmMxLjMuOCAyLjggMS4zIDQuMyAxLjNzMy0uNCA0LjMtMS4zbDQ0LjQtMjguNkM2MDIgODA3LjEgNjUwLjEgNzkzIDY5OS4yIDc5M0g5MjhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkzYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MDQgNTUzLjVjMCA0LjEtMy4yIDcuNS03LjEgNy41SDIxMS4xYy0zLjkgMC03LjEtMy40LTcuMS03LjV2LTQ1YzAtNC4xIDMuMi03LjUgNy4xLTcuNWgxODUuN2MzLjkgMCA3LjEgMy40IDcuMSA3LjV2NDV6bTAtMTQwYzAgNC4xLTMuMiA3LjUtNy4xIDcuNUgyMTEuMWMtMy45IDAtNy4xLTMuNC03LjEtNy41di00NWMwLTQuMSAzLjItNy41IDcuMS03LjVoMTg1LjdjMy45IDAgNy4xIDMuNCA3LjEgNy41djQ1em00MTYgMTQwYzAgNC4xLTMuMiA3LjUtNy4xIDcuNUg2MjcuMWMtMy45IDAtNy4xLTMuNC03LjEtNy41di00NWMwLTQuMSAzLjItNy41IDcuMS03LjVoMTg1LjdjMy45IDAgNy4xIDMuNCA3LjEgNy41djQ1em0wLTE0MGMwIDQuMS0zLjIgNy41LTcuMSA3LjVINjI3LjFjLTMuOSAwLTcuMS0zLjQtNy4xLTcuNXYtNDVjMC00LjEgMy4yLTcuNSA3LjEtNy41aDE4NS43YzMuOSAwIDcuMSAzLjQgNy4xIDcuNXY0NXoiIGZpbGw9InJnYmEoMTI5LDE3OSw1NSwxKSI+PC9wYXRoPgogICAgPC9nPgogIDwvc3ZnPg==');
|
||||||
|
background-size: cover;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
width: 42px;
|
||||||
|
height: 42px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hint {
|
||||||
|
font-size: 14px;
|
||||||
|
text-align: center;
|
||||||
|
color: var(--primary-color);
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
@ -178,7 +178,7 @@ Page({
|
|||||||
const _self = this
|
const _self = this
|
||||||
const value = e.currentTarget.dataset.value
|
const value = e.currentTarget.dataset.value
|
||||||
const id = e.currentTarget.id
|
const id = e.currentTarget.id
|
||||||
if (value.applyStatus == 'APPROVED' || value.applyStatus == 'CANCELED') {
|
if (value.applyStatus != 'PENDING') {
|
||||||
//通过 或 取消 后不能撤销
|
//通过 或 取消 后不能撤销
|
||||||
const item = _self.selectComponent(`#${id}`)
|
const item = _self.selectComponent(`#${id}`)
|
||||||
if (item) {
|
if (item) {
|
||||||
@ -199,6 +199,18 @@ Page({
|
|||||||
},
|
},
|
||||||
//取消
|
//取消
|
||||||
showCancel(item) {
|
showCancel(item) {
|
||||||
|
const _self = this
|
||||||
|
wx.showModal({
|
||||||
|
title: '警告',
|
||||||
|
content: '您确定要撤销申请吗?',
|
||||||
|
complete: (res) => {
|
||||||
|
if (res.confirm) {
|
||||||
|
_self.doCancel(item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
doCancel(item) {
|
||||||
const _self = this
|
const _self = this
|
||||||
wx.showLoading({
|
wx.showLoading({
|
||||||
title: '取消中...',
|
title: '取消中...',
|
||||||
|
@ -66,7 +66,7 @@
|
|||||||
<view class="approve-title mt-10">补正凭证</view>
|
<view class="approve-title mt-10">补正凭证</view>
|
||||||
<view class="approve-img-box mt-10">
|
<view class="approve-img-box mt-10">
|
||||||
<block wx:for="{{approveImgs}}" wx:key="index">
|
<block wx:for="{{approveImgs}}" wx:key="index">
|
||||||
<view class="approve-img-item single-line-front" bind:tap="previewImg" data-value="{{item}}">
|
<view class="approve-img-item single-line" bind:tap="previewImg" data-value="{{item}}">
|
||||||
{{item.value}}
|
{{item.value}}
|
||||||
</view>
|
</view>
|
||||||
</block>
|
</block>
|
||||||
|
@ -15,33 +15,33 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view> -->
|
</view> -->
|
||||||
<view style="margin-top: 10rpx;">
|
<view style="margin-top: 5rpx;">
|
||||||
<container-loading loadingState="{{loadingState}}">
|
<container-loading loadingState="{{loadingState}}">
|
||||||
<scroll-view scroll-y style="height: 83vh;" bindrefresherrefresh="doRefreshList" refresher-enabled refresher-triggered="{{listRefreshTrig}}" bindscrolltolower="doLoadMore" lower-threshold='40'>
|
<scroll-view scroll-y style="height: 80vh;" bindrefresherrefresh="doRefreshList" refresher-enabled refresher-triggered="{{listRefreshTrig}}" bindscrolltolower="doLoadMore" lower-threshold='40'>
|
||||||
<view class="order-list-box">
|
<view class="order-list-box">
|
||||||
<block wx:for="{{orderList}}" wx:key="index">
|
<block wx:for="{{orderList}}" wx:key="index">
|
||||||
<view class="order-list-item" bind:tap="checkItem" data-value="{{item}}">
|
<view class="order-list-item" bind:tap="checkItem" data-value="{{item}}">
|
||||||
<checkbox checked="{{item.checked}}" wx:if="{{currentStatus=='not'}}" class="custom-wx-checkbox"></checkbox>
|
<checkbox checked="{{item.checked}}" wx:if="{{currentStatus=='not'}}" class="custom-wx-checkbox"></checkbox>
|
||||||
<view class="order-list-item-content">
|
<view class="order-list-item-content">
|
||||||
<view class="order-item-time-box">
|
<view class="order-item-time-box">
|
||||||
<view class="time-content icon-time">{{item.reconciliationTime}}</view>
|
<view class="time-content icon-time">{{item.reconciliationTime}}</view>
|
||||||
<view class="{{tools.payWay(item.thirdParty)}} pay-icon-size"></view>
|
<view class="{{tools.payWay(item.thirdParty)}} pay-icon-size"></view>
|
||||||
</view>
|
</view>
|
||||||
<view class="order-item-title-box">
|
<view class="order-item-title-box">
|
||||||
<view class="success-time">到账时间:{{item.rechargeFinalTime}}</view>
|
<view class="success-time">到账时间:{{item.rechargeFinalTime}}</view>
|
||||||
<rich-text class="pay-money" nodes="{{tools.moneyTxt(10,item.rechargeMoney)}}"></rich-text>
|
<rich-text class="pay-money" nodes="{{tools.moneyTxt(10,item.rechargeMoney)}}"></rich-text>
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
</view>
|
||||||
</block>
|
</block>
|
||||||
<mp-loading show="{{isLoadMore}}" type="circle"></mp-loading>
|
<mp-loading show="{{isLoadMore}}" type="circle"></mp-loading>
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
</container-loading>
|
</container-loading>
|
||||||
</view>
|
</view>
|
||||||
<view class="bottom-footer">
|
<view class="bottom-fixed-footer">
|
||||||
<view class="money">开票金额:<text class="price">{{money}}元</text></view>
|
<view class="money">开票金额:<text class="price">{{money}}元</text></view>
|
||||||
<view class="confirm-btn" bind:tap="goMakeInvoice">去开票</view>
|
<view class="bottom-btn-green" bind:tap="goMakeInvoice">去开票</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<wxs src="../../../../utils/comm.wxs" module="tools"></wxs>
|
<wxs src="../../../../utils/comm.wxs" module="tools"></wxs>
|
||||||
|
@ -67,7 +67,8 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 10rpx 20rpx;
|
padding: 10rpx 20rpx;
|
||||||
}
|
}
|
||||||
.order-list-item:nth-of-type(n+2){
|
|
||||||
|
.order-list-item:nth-of-type(n+2) {
|
||||||
margin-top: 20rpx;
|
margin-top: 20rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -113,7 +114,7 @@
|
|||||||
.success-time {
|
.success-time {
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
padding-left: 5rpx;
|
padding-left: 5rpx;
|
||||||
color: var(--text-gray-desc-color);
|
color: var(--text-gray-hint-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-time::before {
|
.icon-time::before {
|
||||||
@ -165,9 +166,11 @@
|
|||||||
|
|
||||||
.money {
|
.money {
|
||||||
color: var(--text-brown-color);
|
color: var(--text-brown-color);
|
||||||
font-size: 20px;
|
font-size: 32rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
align-self: center;
|
||||||
|
margin-bottom: 15rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.price {
|
.price {
|
||||||
|
@ -13,8 +13,8 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="bottom-box">
|
<view class="bottom-fixed-footer">
|
||||||
<view class="green-bottom-btn" bind:tap="doUpdateInfo">保存</view>
|
<view class="bottom-btn-green" bind:tap="doUpdateInfo">保存</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<mp-toptips msg="{{errorHint}}" delay="2000" type="error" show="{{showError}}"></mp-toptips>
|
<mp-toptips msg="{{errorHint}}" delay="2000" type="error" show="{{showError}}"></mp-toptips>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
.info-container {
|
.info-container {
|
||||||
height: 100vh;
|
height: 90vh;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
|
@ -34,8 +34,8 @@
|
|||||||
</scroll-view>
|
</scroll-view>
|
||||||
</container-loading>
|
</container-loading>
|
||||||
</view>
|
</view>
|
||||||
<view class="bottom-btn">
|
<view class="bottom-fixed-footer">
|
||||||
<view class="confirm-btn" bind:tap="openMake">去开票</view>
|
<view class="bottom-btn-green" bind:tap="openMake">去开票</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<mp-toptips msg="{{msgHint}}" type="{{msgType}}" show="{{msgShow}}" :delay="2000"></mp-toptips>
|
<mp-toptips msg="{{msgHint}}" type="{{msgType}}" show="{{msgShow}}" :delay="2000"></mp-toptips>
|
||||||
|
Loading…
Reference in New Issue
Block a user