套餐包使用记录

This commit is contained in:
itgaojian163 2025-07-21 15:16:34 +08:00
parent 4e9fe10da5
commit ceb138ec07
39 changed files with 2065 additions and 757 deletions

View File

@ -18,6 +18,7 @@ const apiPath = {
updateInvoiceRecord: '/api/invoicerecharge/update/{invoiceRechargeId}', //修改开票申请
cancelInvoiceRecord: '/api/invoicerecharge/cancel/{invoiceRechargeId}', //取消开票申请
dicByPId: '/api/data/listbyparentid/{pId}', //数据字典
minePackageUseDetail: '/app/packageorderitem/listpagerelease/{id}', //我的套餐包使用详情
}
class InvoiceApi {
@ -104,6 +105,12 @@ class InvoiceApi {
invoiceRechargeId: id
});
}
//套餐包使用详情
static doGetMinePackageUseDetail(id, data) {
return this.requestHandler(apiPath.minePackageUseDetail, "GET", data, {
id: id
})
}
}
export default InvoiceApi;

View File

@ -26,10 +26,11 @@ const apiPath = {
mineMsgNotice: '/api/user-msg/listpage-simple/self', //获取消息通知
readMsgNotice: '/api/user-msg/update-read/self', //标记读取消息
deleteMsgNotice: '/api/user-msg/remove/self/{ids}', //删除消息通知
minePackageRecord: '/api/proj/servicepkg/packageorder/listpage/self', //我充值的套餐包列表
}
class UserApi {
static doGetVerifyCode(phone) {
const path = apiPath.verifyCode.replace('{phone}', phone)
const path = apiPath.verifyCode.replace('{phone}', phone)
return request(path, "GET", null, null, 'operator', false)
}
static doLoginVerifyCode(data) {
@ -111,6 +112,10 @@ class UserApi {
const path = apiPath.deleteMsgNotice.replace('{ids}', id)
return request(path, 'DELETE')
}
//我的套餐包列表
static doGetMinePackageRecord(data) {
return request(apiPath.minePackageRecord, "GET", data)
}
}
export default UserApi;

View File

@ -1,7 +1,7 @@
// 定义api服务地址
// 定义api服务地址
// const appUrl = 'https://www.aimzhu.com'
const appUrl = 'http://121.36.71.250:58038'
const appUrl = 'https://www.aimzhu.com'
// const appUrl = 'http://121.36.71.250:58038'
const prewBaseUrl = ''
const operatorUrl = appUrl + '/operator'
const operatorPlug = appUrl + '/operator-plugin'

View File

@ -220,34 +220,44 @@
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path" : "pages/shop/orderDetail/orderDetail",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/shop/addAssigneeInfo/addAssigneeInfo",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/shop/addReplenishStuff/addReplenishStuff",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/shop/replenishStuffDetail/replenishStuffDetail",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path": "pages/shop/orderDetail/orderDetail",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/shop/addAssigneeInfo/addAssigneeInfo",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/shop/addReplenishStuff/addReplenishStuff",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/shop/replenishStuffDetail/replenishStuffDetail",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/mine/mineAccount/minePackageRecord/minePackageRecord",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": true
}
},
{
"path": "pages/mine/mineAccount/minePackageRecordDetail/minePackageRecordDetail",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": true
}
}
],
"globalStyle": {
@ -258,8 +268,8 @@
},
"tabBar": {
"color": "#515151",
"selectedColor": "#FE9944",
"height": "70px",
"selectedColor": "#FE9944",
"height": "70px",
"list": [{
"pagePath": "pages/index/home",
"text": "首页",

View File

@ -108,10 +108,10 @@
},
onLoad() {
//
// set('token',
// 'WWZRMmsySWJib2hKQUZVVzdYdjFBS3RGRko5UzVVb1dWdm1SZUVxVnUycVhTeDFtN0Q2aHcyTXlwVFRXUTJZM2I5eWRjc2VXK0lLd2d2Z1pCSndydFZQYjZ6ejIyakd6czV4UVF2V3hSRUxsNWZlOStITjhTU1JWdXNWWExIeTloNHNsVkdPMWQ3Q0JGamNhSnpSNXhVVXN5Wnk1NmpnOGNsckxueHNiZFBVdlU3NGpkZDRHMTQrc1pYTGlyZ1c3MnprdFRvTUhWODhJR2M1THhObkN4NGpKZk9sUmVJcTJqYTBZalp0YkNxRU5aNjA3WklLQnRTMVdEdXg0NW1tMEV5V3RSSEEvV0M2ZmFoRWtzRGRoZkd0ZUcyZ2pKRFYwa3YxYThDZm53ZGE5bTBYKzgrVm8yV1h1aTdVU2FQbVAwbFZ6TnhobkxvNGswMWlsMGtiSVNBPT0='
// )
// set('userId', 'c2438eb8-2685-49a9-bf02-5111a5192d96')
set('token',
'WWZRMmsySWJib2hKQUZVVzdYdjFBS3RGRko5UzVVb1dWdm1SZUVxVnUycVhTeDFtN0Q2aHcyTXlwVFRXUTJZM2I5eWRjc2VXK0lLd2d2Z1pCSndydFZQYjZ6ejIyakd6czV4UVF2V3hSRUxsNWZlOStITjhTU1JWdXNWWExIeTloNHNsVkdPMWQ3Q0JGamNhSnpSNXhVVXN5Wnk1NmpnOGNsckxueHNiZFBVdlU3NGpkZDRHMTQrc1pYTGlyZ1c3MnprdFRvTUhWODhJR2M1THhObkN4NGpKZk9sUmVJcTJqYTBZalp0YkNxRU5aNjA3WklLQnRTMVdEdXg0NW1tMEV5V3RSSEEvV0M2ZmFoRWtzRGRoZkd0ZUcyZ2pKRFYwa3YxYThDZm53ZGE5bTBYKzgrVm8yV1h1aTdVU2FQbVAwbFZ6TnhobkxvNGswMWlsMGtiSVNBPT0='
)
set('userId', 'c2438eb8-2685-49a9-bf02-5111a5192d96')
// set('token',
// 'NjBIOFRORDcraDc4U1RsUTI4a3B5em50VVVzclp2QjdFWDV2dVJJc0VLL3Fhazd0bjZPaU9Tc3E1cHc2cmYyZTc0Y2FITTdRR0pMTk1xaVRHM0I1d0NiTnJ4b1BVSVNtUFl4SlFtR1g2M0tCQTc2TXM4L3d4ZVhwM09VREN0bDMrTXNoa0trWDR1eG5PdG84OXZ4UVE0dDhRUDdQRk1Qd2N0ZWVLSzJaZzBkZ0RhQS84M3B5WDN1aGlEdWQwR3BIZ24vWDBUWmhrNUZiQkJPUDJKQngyL002Rm5aOG5JZ01HTldoNmJnRGxqOFhjNDhjMmxvVnJDV3JSWlo4dHIydHBRU3FEN3htVjVHZlhueUFjRHlpSVZEd0JJZVJWa3NVMFNlVkNWR2dSZHg4RXFsSkttc05WTDhBN014R3dVRUdIclNZN0UwSm9zdUZ3T052MTRmWmhwRmZhWTJsbURCZ0RlTDFLeHZWWDQ0PQ=='
// )
@ -120,8 +120,8 @@
// set('token','NjBIOFRORDcraDc4U1RsUTI4a3B5em50VVVzclp2QjdFWDV2dVJJc0VLL3Fhazd0bjZPaU9Tc3E1cHc2cmYyZTc0Y2FITTdRR0pMTk1xaVRHM0I1d0NiTnJ4b1BVSVNtUFl4SlFtR1g2M0tCQTc2TXM4L3d4ZVhwM09VREN0bDMrTXNoa0trWDR1eG5PdG84OXZ4UVE0dDhRUDdQRk1Qd2N0ZWVLSzJaZzBkRXRJMFE0NDZpVUp0azVyUHRkekJrWXU2SlJFNE1VWHJVNWozazJ2cHJtK241TDhhYWhnNHRkM1ZHR1g5MVd4aDFRMkgyS1BrSWo2RmlUZk5nQW1scm5Xd0NlNUs4S1cwZ2VjYURodEsraGEyYk8vSDlXYk0zRXkzTG5XYnBac1BrN0ZTTGdyR21XMkM2bUhEUzhBQ1RHVWh6YnFjVkJKNFlDcXpqZVM0THhHNG5hR3ZtWDQxY1dobnk1OWpVcEtzPQ==')
// set('userId', '3e256f41-d838-40ac-acbc-ada0ef039cbd')
//158
set('token','aGh2UkUyWTBMbFh5dlV2WXJRci9pQ3hFVEpweGF4MjZiNjdIbVBjOFNkc0Q0Y2dEYTVMa29naU1pdS9Kb1dmZEc5d2w5cEdkSTJWNnFZdkZVYUtkaUhVck1RbWtCK0Rpa3NRT0w3N3RVenMwcUliK3IvZ1BFa2lQR2REZ3FZaHE5Sm1QdkJHWTJMRmFZQzBmQmVpTERFL3ZrM0phUE1icy80THJrM3BkRU9qU0xzakVJQ1IzN0xGbHA2SzFIcktnQk1oZFVpR3M4Qy96Q2o2VDJQZjdacW9SL01qQTNLcDRpemdsSXc4Y1RpYjNKS3NOamRPZitCSlE3akRjN3FnSWcxUmVuSktRSWhzZzNUT1I3R0luVm1CaWN3Uzg0cTJUdTJudm9Xdk5GNlhCbXdxc1hBT3d4VGxEQll4MGRDSzJpaG9FT014bzcrNnV1SVc3NkxXcGNCNm51dDVJWG5YRnE4bjMxRUxqdnIwPQ==')
set('userId','8ed7c4f7-1ddf-4618-aa6b-0e08cbd2ec1b')
// set('token','aGh2UkUyWTBMbFh5dlV2WXJRci9pQ3hFVEpweGF4MjZiNjdIbVBjOFNkc0Q0Y2dEYTVMa29naU1pdS9Kb1dmZEc5d2w5cEdkSTJWNnFZdkZVYUtkaUhVck1RbWtCK0Rpa3NRT0w3N3RVenMwcUliK3IvZ1BFa2lQR2REZ3FZaHE5Sm1QdkJHWTJMRmFZQzBmQmVpTERFL3ZrM0phUE1icy80THJrM3BkRU9qU0xzakVJQ1IzN0xGbHA2SzFIcktnQk1oZFVpR3M4Qy96Q2o2VDJQZjdacW9SL01qQTNLcDRpemdsSXc4Y1RpYjNKS3NOamRPZitCSlE3akRjN3FnSWcxUmVuSktRSWhzZzNUT1I3R0luVm1CaWN3Uzg0cTJUdTJudm9Xdk5GNlhCbXdxc1hBT3d4VGxEQll4MGRDSzJpaG9FT014bzcrNnV1SVc3NkxXcGNCNm51dDVJWG5YRnE4bjMxRUxqdnIwPQ==')
// set('userId','8ed7c4f7-1ddf-4618-aa6b-0e08cbd2ec1b')
// setTimeout(() => {
// uni.switchTab({
// url: '/pages/index/home'

View File

@ -0,0 +1,336 @@
<template>
<view class="page-container">
<!-- #ifdef MP-TOUTIAO || MP-WEIXIN -->
<ContainerLoading :loadingVisible="loadingState" style="height: 90vh;" @doRefresh="doRefreshList">
<!-- #endif -->
<!-- #ifdef MP-BAIDU -->
<ContainerLoading :loadingVisible="loadingState" style="height: 90vh;" @doRefresh="doRefreshList">
<!-- #endif -->
<!-- <scroll-view scroll-y style="height: 90vh;" :lower-threshold="100" refresher-background="#FFFFFF00"
@scrolltolower="doLoadMore"> -->
<view class="order-box">
<block v-for="(item,index) in packageList" :key="index">
<view class="package-content">
<!-- 标题和标签 -->
<view class="package-header">
<text class="package-title">{{item.packageName}}</text>
<text
class="package-tag">{{item.packageInfoAppDTO.packageType=='MATERIAL'?'写材料':'全托管'}}</text>
</view>
<!-- 价格和有效期 -->
<view class="package-info">
<rich-text class="package-price"
:nodes="moneyTxt(12,14,item.packageTotalMoney/100)"></rich-text>
<text class="package-validity"
v-if="item.packageExpireTime != ''">有效期至:{{item.packageExpireTime}}</text>
</view>
<!-- 次数信息 -->
<view class="package-counts">
<view class="package-counts-item">
<text class="counts-label">剩余次数:</text>
<text class="counts-value mr-10">{{item.packageTotalSurplusCount}}</text>
<text class="counts-label">总次数:</text>
<text class="counts-value">{{item.packageTotalCount}}</text>
</view>
<view class="package-counts-item">
<text class="counts-label">下单时间:</text>
<text class="counts-label">{{item.gmtCreate}}</text>
</view>
</view>
<!-- 操作按钮 -->
<view class="package-actions">
<view class="action-button mr-10" :data-item="item" @click="goCreate">去使用
</view>
<view class="action-button" :data-item="item" @click="goDetail">查看详情</view>
</view>
</view>
</block>
<uni-load-more :status="hasMore"></uni-load-more>
</view>
<!-- </scroll-view> -->
<!-- #ifdef MP-TOUTIAO || MP-WEIXIN -->
</ContainerLoading>
<!-- #endif -->
<!-- #ifdef MP-BAIDU-->
</ContainerLoading>
<!--#endif -->
<uni-popup type="message" ref="msg">
<uni-popup-message :type="msgType" :message="msgHint" :duration="2000"></uni-popup-message>
</uni-popup>
</view>
</template>
<script>
import ContainerLoading from '@/components/container-loading.vue'
import ProApi from '@/common/js/net/projectApi.js'
import UserApi from '@/common/js/net/UserApi.js'
import {
moneyTxt
} from '@/common/js/conver.js'
export default {
components: {
ContainerLoading
},
setup() {},
data() {
return {
packageList: [], //
loadingState: 'loading',
isLoadMore: false,
listRefreshTrig: false,
pageData: {
page: 1,
rows: 10,
},
hasMore: 'more',
msgHint: '',
msgType: 'error',
msgShow: false,
urgent: false,
allPrice: 0,
materialPrice: 0
};
},
onLoad(options) {
uni.setNavigationBarTitle({
title: "套餐包",
});
uni.setNavigationBarColor({
frontColor: "#000000",
backgroundColor: "#F0F0F0",
animation: {
duration: 500,
timingFunc: "easeIn",
},
});
this.doGetPrice()
this.doRefreshList()
},
onPullDownRefresh() {
this.doRefreshList()
uni.stopPullDownRefresh()
},
onReachBottom() {
this.doLoadMore()
},
methods: {
moneyTxt,
//
goCreate(e) {
const _self = this
const item = e.currentTarget.dataset.item
if (item.packageTotalSurplusCount > 0) {
const price = item.packageInfoAppDTO.packageType == "MATERIAL" ? _self.materialPrice : _self
.allPrice
uni.redirectTo({
url: '/pages/copyright/createProjectInfo/createProjectInfo?type=' + item.packageInfoAppDTO
.packageType + '&price=' + price + '&isUrgent=false&pId=' + item.packageInfoId,
})
} else {
_self.msgHint = '该套餐包已无剩余次数'
_self.msgType = 'error'
_self.$refs.msg.open()
}
},
//
goDetail(e) {
const item = e.currentTarget.dataset.item
uni.navigateTo({
url: '/pages/mine/mineAccount/minePackageRecordDetail/minePackageRecordDetail?id=' + item
.modifier + '&oId=' + item.packageOrderId
})
},
doGetPrice() {
uni.showLoading({
title: '加载中...',
})
const _self = this
ProApi.doGetPrice()
.then(res => {
uni.hideLoading()
console.log(res)
res.projTypes.forEach(el => {
if (el.type == 'ALL') {
_self.allPrice = el.price
} else if (el.type == 'MATERIAL') {
_self.materialPrice = el.price
}
});
_self.urgent = res.additional.urgent
})
.catch(err => {
uni.hideLoading()
_self.msgHint = '数据有误,请刷新页面'
_self.msgType = 'error'
_self.$refs.msg.open()
})
},
//
doRefreshList() {
console.log('正在刷新...')
const _self = this
_self.listRefreshTrig = true
_self.loadingState = 'loading'
_self.hasMore = 'more'
_self.pageData.page = 1
_self.isLoadMore = false
_self.doGetMinePackageList(true)
},
//
doLoadMore() {
//
const _self = this
if (_self.isLoadMore || _self.hasMore == 'noMore') {
return
}
_self.isLoadMore = true
_self.pageData.page = ++_self.pageData.page
_self.doGetMinePackageList(false)
},
// isRefresh false true
doGetMinePackageList(isRefresh) {
const _self = this
_self.packageList = isRefresh ? [] : _self.packageList
_self.loadingState = isRefresh ? 'loading' : ''
UserApi.doGetMinePackageRecord(_self.pageData)
.then(res => {
uni.stopPullDownRefresh()
console.log(res)
var status = 'success'
status = res.rows && res.rows.length > 0 ? 'success' : 'empty'
_self.loadingState = isRefresh ? status : ''
_self.packageList = _self.packageList.concat(res.rows)
_self.listRefreshTrig = false
_self.isLoadMore = false
_self.hasMore = _self.packageList.length < res.total ? 'more' : 'noMore'
})
.catch(err => {
uni.stopPullDownRefresh()
_self.loadingState = 'error'
_self.listRefreshTrig = false
_self.isLoadMore = false
_self.hasMore = 'more'
})
},
},
};
</script>
<style lang="scss" scoped>
.content-container {
height: 93vh;
}
.order-box {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
}
.order-item {
display: flex;
flex-direction: column;
border-radius: 10px;
width: 94vw;
}
/* 内容区域 */
.package-content {
display: flex;
flex-direction: column;
background-color: #fff;
border-radius: 12rpx;
box-shadow: 0 1rpx 2rpx rgba(0, 0, 0, 0.02);
width: 95%;
padding: 16rpx;
}
.package-content:nth-of-type(n+2) {
margin-top: 20rpx;
}
/* 标题和标签 */
.package-header {
display: flex;
justify-content: space-between;
align-items: center;
}
.package-title {
font-size: 28rpx;
font-weight: bold;
color: #333;
}
.package-tag {
background-color: #f0f9ff;
color: #0084ff;
font-size: 24rpx;
border-radius: 32rpx;
padding: 0rpx 20rpx;
}
/* 价格和有效期 */
.package-info {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 10rpx;
}
.package-price {
font-size: 32rpx;
font-weight: bold;
color: $red-color;
}
.package-validity {
font-size: 24rpx;
color: #999;
}
/* 次数信息 */
.package-counts {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-top: 10rpx;
}
.counts-label {
font-size: 24rpx;
color: #999;
}
.counts-value {
font-size: 24rpx;
color: #333;
}
/* 操作按钮 */
.package-actions {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-top: 20rpx;
}
.action-button {
padding: 8rpx 24rpx;
font-size: 24rpx;
line-height: 40rpx;
flex: 1;
text-align: center;
background-color: $gray-color-light;
}
</style>

View File

@ -0,0 +1,276 @@
<template>
<view class="page-container">
<!-- #ifdef MP-TOUTIAO || MP-WEIXIN -->
<ContainerLoading :loadingVisible="loadingState" style="height: 90vh;" @doRefresh="doRefreshList">
<!-- #endif -->
<!-- #ifdef MP-BAIDU -->
<ContainerLoading :loadingVisible="loadingState" style="height: 90vh;" @doRefresh="doRefreshList">
<!-- #endif -->
<view class="order-box">
<block v-for="(item,index) in packageList" :key="index">
<view class="package-content">
<!-- 标题和标签 -->
<view class="package-header">
<text class="package-title">{{item.orderTitle}}</text>
<text class="package-tag">{{item.mode=='1'?'退回':'使用'}}</text>
</view>
<view class="package-counts">
<view class="counts-label">{{item.description}}</view>
</view>
<!-- 次数信息 -->
<view class="package-counts">
<view class="package-counts-item">
<text class="counts-label">剩余数量:</text>
<text class="counts-value mr-10">{{item.itemCount}}</text>
<text class="counts-label">使用数量:</text>
<text class="counts-value">{{item.itemUseCount}}</text>
</view>
<view class="package-counts-item">
<text class="counts-label">创建时间:</text>
<text class="counts-label">{{item.gmtCreate}}</text>
</view>
</view>
</view>
</block>
<uni-load-more :status="hasMore"></uni-load-more>
</view>
<!-- #ifdef MP-TOUTIAO || MP-WEIXIN -->
</ContainerLoading>
<!-- #endif -->
<!-- #ifdef MP-BAIDU -->
</ContainerLoading>
<!-- #endif -->
<uni-popup type="message" ref="msg">
<uni-popup-message :type="msgType" :message="msgHint" :duration="2000"></uni-popup-message>
</uni-popup>
</view>
</template>
<script>
import ContainerLoading from '@/components/container-loading.vue'
import InvoiceApi from '@/common/js/net/InvoiceApi';
export default {
components: {
ContainerLoading
},
setup() {},
data() {
return {
packageList: [], //使
pageData: {
page: 1,
rows: 10,
packageOrderId: 0
}, //
loadingState: 'loading', //
listRefreshTrig: false, //list
isLoadMore: false, //
hasMore: 'more', //
msgType: 'error',
msgHint: '',
id: '',
};
},
onLoad(options) {
uni.setNavigationBarTitle({
title: "详情",
});
uni.setNavigationBarColor({
frontColor: "#000000",
backgroundColor: "#F0F0F0",
animation: {
duration: 500,
timingFunc: "easeIn",
},
});
const _self = this
let id = options.id
let orderId = options.oId
this.id = id
this.pageData.packageOrderId = orderId
if (this.id !== undefined && this.id !== '' && this.pageData.packageOrderId !== undefined && this.pageData
.packageOrderId !== '') {
this.doRefreshList()
} else {
setTimeout(() => {
_self.doBackPage()
}, 1000)
this.loadingState = 'error'
}
},
onPullDownRefresh() {
this.doRefreshList()
uni.stopPullDownRefresh()
},
onReachBottom() {
this.doLoadMore()
},
methods: {
doBackPage() {
this.msgHint = '数据有误,请稍后重试'
this.msgType = 'error'
this.$refs.msg.open()
setTimeout(() => {
uni.navigateBack()
}, 1200)
},
//
doRefreshList() {
console.log('正在刷新...')
const _self = this
_self.listRefreshTrig = true
_self.loadingState = 'loading'
_self.hasMore = 'more'
_self.pageData.page = 1
_self.isLoadMore = false
_self.doGetMinePackageList(true)
},
//
doLoadMore() {
//
const _self = this
if (_self.isLoadMore || _self.hasMore == 'noMore') {
return
}
_self.isLoadMore = true
_self.pageData.page = ++_self.pageData.page
_self.doGetMinePackageList(false)
},
// isRefresh false true
doGetMinePackageList(isRefresh) {
const _self = this
_self.packageList = isRefresh ? [] : _self.packageList
_self.loadingState = isRefresh ? 'loading' : ''
InvoiceApi.doGetMinePackageUseDetail(_self.id, _self.pageData)
.then(res => {
console.log(res)
uni.stopPullDownRefresh()
var status = 'success'
status = res.rows && res.rows.length > 0 ? 'success' : 'empty'
_self.loadingState = isRefresh ? status : ''
_self.packageList = _self.packageList.concat(res.rows)
_self.listRefreshTrig = false
_self.isLoadMore = false
_self.hasMore = _self.packageList.length < res.total ? 'more' : 'noMore'
})
.catch(err => {
uni.stopPullDownRefresh()
_self.loadingState = 'error'
_self.listRefreshTrig = false
_self.isLoadMore = false
_self.hasMore = 'more'
})
}
},
};
</script>
<style lang="scss" scoped>
.order-box {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
}
.order-item {
display: flex;
flex-direction: column;
border-radius: 10px;
width: 94vw;
}
/* 内容区域 */
.package-content {
display: flex;
flex-direction: column;
background-color: #fff;
border-radius: 12rpx;
box-shadow: 0 1rpx 2rpx rgba(0, 0, 0, 0.02);
width: 95%;
padding: 16rpx;
}
.package-content:nth-of-type(n+2) {
margin-top: 20rpx;
}
/* 标题和标签 */
.package-header {
display: flex;
justify-content: space-between;
align-items: center;
}
.package-title {
font-size: 28rpx;
font-weight: bold;
color: #333;
}
.package-tag {
background-color: #f0f9ff;
color: #0084ff;
font-size: 24rpx;
border-radius: 32rpx;
padding: 0rpx 20rpx;
}
/* 价格和有效期 */
.package-info {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 10rpx;
}
.package-price {
font-size: 32rpx;
font-weight: bold;
color: $red-color;
}
.package-validity {
font-size: 24rpx;
color: #999;
}
/* 次数信息 */
.package-counts {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-top: 10rpx;
}
.counts-label {
font-size: 24rpx;
color: #999;
}
.counts-value {
font-size: 24rpx;
color: #333;
}
/* 操作按钮 */
.package-actions {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-top: 20rpx;
}
.action-button {
padding: 8rpx 24rpx;
font-size: 24rpx;
line-height: 40rpx;
flex: 1;
text-align: center;
background-color: $gray-color-light;
}
</style>

View File

@ -178,16 +178,19 @@
},
//
openCreate(e) {
const _self = this;
const type = e.currentTarget.dataset.type;
const count = type === 'ALL' ? _self.allCount : _self.materialCount;
if (count > 0) {
_self.doGetPackage(type);
} else {
_self.msgType = 'error';
_self.msgTxt = '您的账户当前无套餐包,为正常使用请及时充值。';
_self.$refs.msg.open();
}
uni.navigateTo({
url: '/pages/mine/mineAccount/minePackageRecord/minePackageRecord'
})
// const _self = this;
// const type = e.currentTarget.dataset.type;
// const count = type === 'ALL' ? _self.allCount : _self.materialCount;
// if (count > 0) {
// _self.doGetPackage(type);
// } else {
// _self.msgType = 'error';
// _self.msgTxt = '使';
// _self.$refs.msg.open();
// }
},
//
doCoupons() {

View File

@ -1,8 +1,8 @@
{
"hash": "888c36c4",
"configHash": "4e2775ba",
"hash": "f1f0f80c",
"configHash": "e0e1a99f",
"lockfileHash": "17210979",
"browserHash": "f87888d8",
"browserHash": "9e73fc62",
"optimized": {},
"chunks": {}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"version":3,"file":"mainUrl.js","sources":["common/js/net/mainUrl.js"],"sourcesContent":["// 定义api服务地址\r\n// 定义api服务地址\r\n// const appUrl = 'https://www.aimzhu.com'\r\nconst appUrl = 'http://121.36.71.250:58038'\r\nconst prewBaseUrl = ''\r\nconst operatorUrl = appUrl + '/operator'\r\nconst operatorPlug = appUrl + '/operator-plugin'\r\nconst copyrightUrl = appUrl + '/copyright'\r\nconst aiShopUrl = appUrl + '/aishop'\r\nconst uploadImgUrl = copyrightUrl + '/api/file/v2/upload-image'\r\nconst previewUrl = copyrightUrl + '/route/file/v2/download/true/'\r\nconst imgAssets = appUrl + '/miniapp-assets'\r\nconst sImgPrefix = aiShopUrl + '/route/file/download/true/'\r\nconst upShopImgUrl = aiShopUrl + '/api/file/v2/upload-image'\r\nconst upShopFileUrl = aiShopUrl + '/api/file/v2/upload-file'\r\nexport {\r\n\toperatorUrl,\r\n\toperatorPlug,\r\n\tuploadImgUrl,\r\n\tpreviewUrl,\r\n\tcopyrightUrl,\r\n\taiShopUrl,\r\n\timgAssets,\r\n\tappUrl,\r\n\tsImgPrefix,\r\n\tupShopImgUrl,\r\n\tupShopFileUrl\r\n}"],"names":[],"mappings":";AAGK,MAAC,SAAS;AAEV,MAAC,cAAc,SAAS;AACxB,MAAC,eAAe,SAAS;AACzB,MAAC,eAAe,SAAS;AACzB,MAAC,YAAY,SAAS;AACtB,MAAC,eAAe,eAAe;AAC/B,MAAC,aAAa,eAAe;AAC7B,MAAC,YAAY,SAAS;AACtB,MAAC,aAAa,YAAY;AAC1B,MAAC,eAAe,YAAY;AAC5B,MAAC,gBAAgB,YAAY;;;;;;;;;;;;"}
{"version":3,"file":"mainUrl.js","sources":["common/js/net/mainUrl.js"],"sourcesContent":["// 定义api服务地址\r\n// 定义api服务地址\r\nconst appUrl = 'https://www.aimzhu.com'\r\n// const appUrl = 'http://121.36.71.250:58038'\r\nconst prewBaseUrl = ''\r\nconst operatorUrl = appUrl + '/operator'\r\nconst operatorPlug = appUrl + '/operator-plugin'\r\nconst copyrightUrl = appUrl + '/copyright'\r\nconst aiShopUrl = appUrl + '/aishop'\r\nconst uploadImgUrl = copyrightUrl + '/api/file/v2/upload-image'\r\nconst previewUrl = copyrightUrl + '/route/file/v2/download/true/'\r\nconst imgAssets = appUrl + '/miniapp-assets'\r\nconst sImgPrefix = aiShopUrl + '/route/file/download/true/'\r\nconst upShopImgUrl = aiShopUrl + '/api/file/v2/upload-image'\r\nconst upShopFileUrl = aiShopUrl + '/api/file/v2/upload-file'\r\nexport {\r\n\toperatorUrl,\r\n\toperatorPlug,\r\n\tuploadImgUrl,\r\n\tpreviewUrl,\r\n\tcopyrightUrl,\r\n\taiShopUrl,\r\n\timgAssets,\r\n\tappUrl,\r\n\tsImgPrefix,\r\n\tupShopImgUrl,\r\n\tupShopFileUrl\r\n}"],"names":[],"mappings":";AAEK,MAAC,SAAS;AAGV,MAAC,cAAc,SAAS;AACxB,MAAC,eAAe,SAAS;AACzB,MAAC,eAAe,SAAS;AACzB,MAAC,YAAY,SAAS;AACtB,MAAC,eAAe,eAAe;AAC/B,MAAC,aAAa,eAAe;AAC7B,MAAC,YAAY,SAAS;AACtB,MAAC,aAAa,YAAY;AAC1B,MAAC,eAAe,YAAY;AAC5B,MAAC,gBAAgB,YAAY;;;;;;;;;;;;"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -41,6 +41,8 @@ if (!Math) {
"./pages/shop/addAssigneeInfo/addAssigneeInfo.js";
"./pages/shop/addReplenishStuff/addReplenishStuff.js";
"./pages/shop/replenishStuffDetail/replenishStuffDetail.js";
"./pages/mine/mineAccount/minePackageRecord/minePackageRecord.js";
"./pages/mine/mineAccount/minePackageRecordDetail/minePackageRecordDetail.js";
}
const _sfc_main = {
onLaunch: function() {

View File

@ -37,7 +37,9 @@
"pages/shop/orderDetail/orderDetail",
"pages/shop/addAssigneeInfo/addAssigneeInfo",
"pages/shop/addReplenishStuff/addReplenishStuff",
"pages/shop/replenishStuffDetail/replenishStuffDetail"
"pages/shop/replenishStuffDetail/replenishStuffDetail",
"pages/mine/mineAccount/minePackageRecord/minePackageRecord",
"pages/mine/mineAccount/minePackageRecordDetail/minePackageRecordDetail"
],
"window": {
"navigationBarTextStyle": "black",

View File

@ -36,8 +36,10 @@ const apiPath = {
//修改开票申请
cancelInvoiceRecord: "/api/invoicerecharge/cancel/{invoiceRechargeId}",
//取消开票申请
dicByPId: "/api/data/listbyparentid/{pId}"
dicByPId: "/api/data/listbyparentid/{pId}",
//数据字典
minePackageUseDetail: "/app/packageorderitem/listpagerelease/{id}"
//我的套餐包使用详情
};
class InvoiceApi {
// 通用请求方法
@ -105,6 +107,12 @@ class InvoiceApi {
invoiceRechargeId: id
});
}
//套餐包使用详情
static doGetMinePackageUseDetail(id, data) {
return this.requestHandler(apiPath.minePackageUseDetail, "GET", data, {
id
});
}
}
_replacePathParams = new WeakSet();
replacePathParams_fn = function(path, params) {

View File

@ -41,8 +41,10 @@ const apiPath = {
//获取消息通知
readMsgNotice: "/api/user-msg/update-read/self",
//标记读取消息
deleteMsgNotice: "/api/user-msg/remove/self/{ids}"
deleteMsgNotice: "/api/user-msg/remove/self/{ids}",
//删除消息通知
minePackageRecord: "/api/proj/servicepkg/packageorder/listpage/self"
//我充值的套餐包列表
};
class UserApi {
static doGetVerifyCode(phone) {
@ -128,6 +130,10 @@ class UserApi {
const path = apiPath.deleteMsgNotice.replace("{ids}", id);
return common_js_net_http.request(path, "DELETE");
}
//我的套餐包列表
static doGetMinePackageRecord(data) {
return common_js_net_http.request(apiPath.minePackageRecord, "GET", data);
}
}
exports.UserApi = UserApi;
//# sourceMappingURL=../../../../.sourcemap/mp-baidu/common/js/net/UserApi.js.map

View File

@ -1,5 +1,5 @@
"use strict";
const appUrl = "http://121.36.71.250:58038";
const appUrl = "https://www.aimzhu.com";
const operatorUrl = appUrl + "/operator";
const operatorPlug = appUrl + "/operator-plugin";
const copyrightUrl = appUrl + "/copyright";

File diff suppressed because it is too large Load Diff

View File

@ -27,8 +27,11 @@ const _sfc_main = {
};
},
onLoad() {
common_js_cache_storage.set("token", "aGh2UkUyWTBMbFh5dlV2WXJRci9pQ3hFVEpweGF4MjZiNjdIbVBjOFNkc0Q0Y2dEYTVMa29naU1pdS9Kb1dmZEc5d2w5cEdkSTJWNnFZdkZVYUtkaUhVck1RbWtCK0Rpa3NRT0w3N3RVenMwcUliK3IvZ1BFa2lQR2REZ3FZaHE5Sm1QdkJHWTJMRmFZQzBmQmVpTERFL3ZrM0phUE1icy80THJrM3BkRU9qU0xzakVJQ1IzN0xGbHA2SzFIcktnQk1oZFVpR3M4Qy96Q2o2VDJQZjdacW9SL01qQTNLcDRpemdsSXc4Y1RpYjNKS3NOamRPZitCSlE3akRjN3FnSWcxUmVuSktRSWhzZzNUT1I3R0luVm1CaWN3Uzg0cTJUdTJudm9Xdk5GNlhCbXdxc1hBT3d4VGxEQll4MGRDSzJpaG9FT014bzcrNnV1SVc3NkxXcGNCNm51dDVJWG5YRnE4bjMxRUxqdnIwPQ==");
common_js_cache_storage.set("userId", "8ed7c4f7-1ddf-4618-aa6b-0e08cbd2ec1b");
common_js_cache_storage.set(
"token",
"WWZRMmsySWJib2hKQUZVVzdYdjFBS3RGRko5UzVVb1dWdm1SZUVxVnUycVhTeDFtN0Q2aHcyTXlwVFRXUTJZM2I5eWRjc2VXK0lLd2d2Z1pCSndydFZQYjZ6ejIyakd6czV4UVF2V3hSRUxsNWZlOStITjhTU1JWdXNWWExIeTloNHNsVkdPMWQ3Q0JGamNhSnpSNXhVVXN5Wnk1NmpnOGNsckxueHNiZFBVdlU3NGpkZDRHMTQrc1pYTGlyZ1c3MnprdFRvTUhWODhJR2M1THhObkN4NGpKZk9sUmVJcTJqYTBZalp0YkNxRU5aNjA3WklLQnRTMVdEdXg0NW1tMEV5V3RSSEEvV0M2ZmFoRWtzRGRoZkd0ZUcyZ2pKRFYwa3YxYThDZm53ZGE5bTBYKzgrVm8yV1h1aTdVU2FQbVAwbFZ6TnhobkxvNGswMWlsMGtiSVNBPT0="
);
common_js_cache_storage.set("userId", "c2438eb8-2685-49a9-bf02-5111a5192d96");
this.isRememberPhone = common_js_cache_storage.get("isRemember", false);
this.phoneNumber = common_js_cache_storage.get("loginPhone", "");
},

View File

@ -0,0 +1,118 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量同时无需 import 这个文件
*/
/* 颜色变量 */
/* 底部tabbar */
/* 我的页面账户信息背景 */
/* 主题色 */
/* 页面背景色 */
/* 文字颜色 */
/* 背景棕色 */
/* 按钮颜色 */
.content-container.data-v-67d8ce1a {
height: 93vh;
}
.order-box.data-v-67d8ce1a {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
}
.order-item.data-v-67d8ce1a {
display: flex;
flex-direction: column;
border-radius: 10px;
width: 94vw;
}
/* 内容区域 */
.package-content.data-v-67d8ce1a {
display: flex;
flex-direction: column;
background-color: #fff;
border-radius: 12rpx;
box-shadow: 0 1rpx 2rpx rgba(0, 0, 0, 0.02);
width: 95%;
padding: 16rpx;
}
.package-content.data-v-67d8ce1a:nth-of-type(n+2) {
margin-top: 20rpx;
}
/* 标题和标签 */
.package-header.data-v-67d8ce1a {
display: flex;
justify-content: space-between;
align-items: center;
}
.package-title.data-v-67d8ce1a {
font-size: 28rpx;
font-weight: bold;
color: #333;
}
.package-tag.data-v-67d8ce1a {
background-color: #f0f9ff;
color: #0084ff;
font-size: 24rpx;
border-radius: 32rpx;
padding: 0rpx 20rpx;
}
/* 价格和有效期 */
.package-info.data-v-67d8ce1a {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 10rpx;
}
.package-price.data-v-67d8ce1a {
font-size: 32rpx;
font-weight: bold;
color: #FF0000;
}
.package-validity.data-v-67d8ce1a {
font-size: 24rpx;
color: #999;
}
/* 次数信息 */
.package-counts.data-v-67d8ce1a {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-top: 10rpx;
}
.counts-label.data-v-67d8ce1a {
font-size: 24rpx;
color: #999;
}
.counts-value.data-v-67d8ce1a {
font-size: 24rpx;
color: #333;
}
/* 操作按钮 */
.package-actions.data-v-67d8ce1a {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-top: 20rpx;
}
.action-button.data-v-67d8ce1a {
padding: 8rpx 24rpx;
font-size: 24rpx;
line-height: 40rpx;
flex: 1;
text-align: center;
background-color: #eeeeee;
}

View File

@ -0,0 +1,204 @@
"use strict";
const common_vendor = require("../../../../common/vendor.js");
const common_js_net_projectApi = require("../../../../common/js/net/projectApi.js");
const common_js_net_UserApi = require("../../../../common/js/net/UserApi.js");
const common_js_conver = require("../../../../common/js/conver.js");
const ContainerLoading = () => "../../../../components/container-loading.js";
const _sfc_main = {
components: {
ContainerLoading
},
setup() {
},
data() {
return {
packageList: [],
//联系人列表
loadingState: "loading",
isLoadMore: false,
listRefreshTrig: false,
pageData: {
page: 1,
rows: 10
},
hasMore: "more",
msgHint: "",
msgType: "error",
msgShow: false,
urgent: false,
allPrice: 0,
materialPrice: 0
};
},
onLoad(options) {
common_vendor.index.setNavigationBarTitle({
title: "套餐包"
});
common_vendor.index.setNavigationBarColor({
frontColor: "#000000",
backgroundColor: "#F0F0F0",
animation: {
duration: 500,
timingFunc: "easeIn"
}
});
this.doGetPrice();
this.doRefreshList();
},
onPullDownRefresh() {
this.doRefreshList();
common_vendor.index.stopPullDownRefresh();
},
onReachBottom() {
this.doLoadMore();
},
methods: {
moneyTxt: common_js_conver.moneyTxt,
//创建
goCreate(e) {
const _self = this;
const item = e.currentTarget.dataset.item;
if (item.packageTotalSurplusCount > 0) {
const price = item.packageInfoAppDTO.packageType == "MATERIAL" ? _self.materialPrice : _self.allPrice;
common_vendor.index.redirectTo({
url: "/pages/copyright/createProjectInfo/createProjectInfo?type=" + item.packageInfoAppDTO.packageType + "&price=" + price + "&isUrgent=false&pId=" + item.packageInfoId
});
} else {
_self.msgHint = "该套餐包已无剩余次数";
_self.msgType = "error";
_self.$refs.msg.open();
}
},
//详情
goDetail(e) {
const item = e.currentTarget.dataset.item;
common_vendor.index.navigateTo({
url: "/pages/mine/mineAccount/minePackageRecordDetail/minePackageRecordDetail?id=" + item.modifier + "&oId=" + item.packageOrderId
});
},
doGetPrice() {
common_vendor.index.showLoading({
title: "加载中..."
});
const _self = this;
common_js_net_projectApi.ProApi.doGetPrice().then((res) => {
common_vendor.index.hideLoading();
common_vendor.index.__f__("log", "at pages/mine/mineAccount/minePackageRecord/minePackageRecord.vue:155", res);
res.projTypes.forEach((el) => {
if (el.type == "ALL") {
_self.allPrice = el.price;
} else if (el.type == "MATERIAL") {
_self.materialPrice = el.price;
}
});
_self.urgent = res.additional.urgent;
}).catch((err) => {
common_vendor.index.hideLoading();
_self.msgHint = "数据有误,请刷新页面";
_self.msgType = "error";
_self.$refs.msg.open();
});
},
//刷新列表
doRefreshList() {
common_vendor.index.__f__("log", "at pages/mine/mineAccount/minePackageRecord/minePackageRecord.vue:174", "正在刷新...");
const _self = this;
_self.listRefreshTrig = true;
_self.loadingState = "loading";
_self.hasMore = "more";
_self.pageData.page = 1;
_self.isLoadMore = false;
_self.doGetMinePackageList(true);
},
//加载更多
doLoadMore() {
const _self = this;
if (_self.isLoadMore || _self.hasMore == "noMore") {
return;
}
_self.isLoadMore = true;
_self.pageData.page = ++_self.pageData.page;
_self.doGetMinePackageList(false);
},
//获取我的联系人列表 isRefresh false 加载更多 true 刷新
doGetMinePackageList(isRefresh) {
const _self = this;
_self.packageList = isRefresh ? [] : _self.packageList;
_self.loadingState = isRefresh ? "loading" : "";
common_js_net_UserApi.UserApi.doGetMinePackageRecord(_self.pageData).then((res) => {
common_vendor.index.stopPullDownRefresh();
common_vendor.index.__f__("log", "at pages/mine/mineAccount/minePackageRecord/minePackageRecord.vue:202", res);
var status = "success";
status = res.rows && res.rows.length > 0 ? "success" : "empty";
_self.loadingState = isRefresh ? status : "";
_self.packageList = _self.packageList.concat(res.rows);
_self.listRefreshTrig = false;
_self.isLoadMore = false;
_self.hasMore = _self.packageList.length < res.total ? "more" : "noMore";
}).catch((err) => {
common_vendor.index.stopPullDownRefresh();
_self.loadingState = "error";
_self.listRefreshTrig = false;
_self.isLoadMore = false;
_self.hasMore = "more";
});
}
}
};
if (!Array) {
const _easycom_uni_load_more2 = common_vendor.resolveComponent("uni-load-more");
const _component_ContainerLoading = common_vendor.resolveComponent("ContainerLoading");
const _easycom_uni_popup_message2 = common_vendor.resolveComponent("uni-popup-message");
const _easycom_uni_popup2 = common_vendor.resolveComponent("uni-popup");
(_easycom_uni_load_more2 + _component_ContainerLoading + _easycom_uni_popup_message2 + _easycom_uni_popup2)();
}
const _easycom_uni_load_more = () => "../../../../uni_modules/uni-load-more/components/uni-load-more/uni-load-more.js";
const _easycom_uni_popup_message = () => "../../../../uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.js";
const _easycom_uni_popup = () => "../../../../uni_modules/uni-popup/components/uni-popup/uni-popup.js";
if (!Math) {
(_easycom_uni_load_more + _easycom_uni_popup_message + _easycom_uni_popup)();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.f($data.packageList, (item, index, i0) => {
return common_vendor.e({
a: index,
b: common_vendor.t(item.packageName),
c: common_vendor.t(item.packageInfoAppDTO.packageType == "MATERIAL" ? "写材料" : "全托管"),
d: $options.moneyTxt(12, 14, item.packageTotalMoney / 100),
e: item.packageExpireTime != ""
}, item.packageExpireTime != "" ? {
f: common_vendor.t(item.packageExpireTime)
} : {}, {
g: common_vendor.t(item.packageTotalSurplusCount),
h: common_vendor.t(item.packageTotalCount),
i: common_vendor.t(item.gmtCreate),
j: item,
k: item
});
}),
b: common_vendor.o((...args) => $options.goCreate && $options.goCreate(...args)),
c: common_vendor.o((...args) => $options.goDetail && $options.goDetail(...args)),
d: common_vendor.p({
status: $data.hasMore
}),
e: common_vendor.j({
"doRefresh": common_vendor.o($options.doRefreshList)
}),
f: common_vendor.p({
loadingVisible: $data.loadingState
}),
g: common_vendor.p({
type: $data.msgType,
message: $data.msgHint,
duration: 2e3
}),
h: common_vendor.sr("msg", "67d8ce1a-2"),
i: common_vendor.p({
type: "message"
})
};
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-67d8ce1a"]]);
swan.createPage(MiniProgramPage);
//# sourceMappingURL=../../../../../.sourcemap/mp-baidu/pages/mine/mineAccount/minePackageRecord/minePackageRecord.js.map

View File

@ -0,0 +1,11 @@
{
"component": true,
"navigationBarTitleText": "",
"enablePullDownRefresh": true,
"usingComponents": {
"container-loading": "../../../../components/container-loading",
"uni-load-more": "../../../../uni_modules/uni-load-more/components/uni-load-more/uni-load-more",
"uni-popup-message": "../../../../uni_modules/uni-popup/components/uni-popup-message/uni-popup-message",
"uni-popup": "../../../../uni_modules/uni-popup/components/uni-popup/uni-popup"
}
}

View File

@ -0,0 +1 @@
<view class="page-container data-v-67d8ce1a"><container-loading s-if="{{f}}" class="data-v-67d8ce1a" u-s="{{['d']}}" style="height:90vh" binddoRefresh="__e" u-i="67d8ce1a-0" eO="{{e}}" u-p="{{f}}"><view class="order-box data-v-67d8ce1a"><block s-for="item in a trackBy item.a"><view class="package-content data-v-67d8ce1a"><view class="package-header data-v-67d8ce1a"><text class="package-title data-v-67d8ce1a">{{item.b}}</text><text class="package-tag data-v-67d8ce1a">{{item.c}}</text></view><view class="package-info data-v-67d8ce1a"><rich-text class="package-price data-v-67d8ce1a" nodes="{{item.d}}"></rich-text><text s-if="{{item.e}}" class="package-validity data-v-67d8ce1a">有效期至:{{item.f}}</text></view><view class="package-counts data-v-67d8ce1a"><view class="package-counts-item data-v-67d8ce1a"><text class="counts-label data-v-67d8ce1a">剩余次数:</text><text class="counts-value mr-10 data-v-67d8ce1a">{{item.g}}</text><text class="counts-label data-v-67d8ce1a">总次数:</text><text class="counts-value data-v-67d8ce1a">{{item.h}}</text></view><view class="package-counts-item data-v-67d8ce1a"><text class="counts-label data-v-67d8ce1a">下单时间:</text><text class="counts-label data-v-67d8ce1a">{{item.i}}</text></view></view><view class="package-actions data-v-67d8ce1a"><view class="action-button mr-10 data-v-67d8ce1a" data-item="{{item.j}}" bindtap="{{b}}">去使用 </view><view class="action-button data-v-67d8ce1a" data-item="{{item.k}}" bindtap="{{c}}">查看详情</view></view></view></block><uni-load-more s-if="{{d}}" class="data-v-67d8ce1a" u-i="67d8ce1a-1,67d8ce1a-0" u-p="{{d}}"></uni-load-more></view></container-loading><uni-popup s-if="{{i}}" class="r data-v-67d8ce1a" u-s="{{['d']}}" u-r="msg" u-i="67d8ce1a-2" u-p="{{i}}"><uni-popup-message s-if="{{g}}" class="data-v-67d8ce1a" u-i="67d8ce1a-3,67d8ce1a-2" u-p="{{g}}"></uni-popup-message></uni-popup></view>

View File

@ -0,0 +1,115 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量同时无需 import 这个文件
*/
/* 颜色变量 */
/* 底部tabbar */
/* 我的页面账户信息背景 */
/* 主题色 */
/* 页面背景色 */
/* 文字颜色 */
/* 背景棕色 */
/* 按钮颜色 */
.order-box.data-v-dc59bd9b {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
}
.order-item.data-v-dc59bd9b {
display: flex;
flex-direction: column;
border-radius: 10px;
width: 94vw;
}
/* 内容区域 */
.package-content.data-v-dc59bd9b {
display: flex;
flex-direction: column;
background-color: #fff;
border-radius: 12rpx;
box-shadow: 0 1rpx 2rpx rgba(0, 0, 0, 0.02);
width: 95%;
padding: 16rpx;
}
.package-content.data-v-dc59bd9b:nth-of-type(n+2) {
margin-top: 20rpx;
}
/* 标题和标签 */
.package-header.data-v-dc59bd9b {
display: flex;
justify-content: space-between;
align-items: center;
}
.package-title.data-v-dc59bd9b {
font-size: 28rpx;
font-weight: bold;
color: #333;
}
.package-tag.data-v-dc59bd9b {
background-color: #f0f9ff;
color: #0084ff;
font-size: 24rpx;
border-radius: 32rpx;
padding: 0rpx 20rpx;
}
/* 价格和有效期 */
.package-info.data-v-dc59bd9b {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 10rpx;
}
.package-price.data-v-dc59bd9b {
font-size: 32rpx;
font-weight: bold;
color: #FF0000;
}
.package-validity.data-v-dc59bd9b {
font-size: 24rpx;
color: #999;
}
/* 次数信息 */
.package-counts.data-v-dc59bd9b {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-top: 10rpx;
}
.counts-label.data-v-dc59bd9b {
font-size: 24rpx;
color: #999;
}
.counts-value.data-v-dc59bd9b {
font-size: 24rpx;
color: #333;
}
/* 操作按钮 */
.package-actions.data-v-dc59bd9b {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-top: 20rpx;
}
.action-button.data-v-dc59bd9b {
padding: 8rpx 24rpx;
font-size: 24rpx;
line-height: 40rpx;
flex: 1;
text-align: center;
background-color: #eeeeee;
}

View File

@ -0,0 +1,170 @@
"use strict";
const common_vendor = require("../../../../common/vendor.js");
const common_js_net_InvoiceApi = require("../../../../common/js/net/InvoiceApi.js");
const ContainerLoading = () => "../../../../components/container-loading.js";
const _sfc_main = {
components: {
ContainerLoading
},
setup() {
},
data() {
return {
packageList: [],
//套餐包使用详情列表
pageData: {
page: 1,
rows: 10,
packageOrderId: 0
},
//检索参数
loadingState: "loading",
//加载状态
listRefreshTrig: false,
//list刷新状态
isLoadMore: false,
//加载更多的状态
hasMore: "more",
//是否有更多数据
msgType: "error",
msgHint: "",
id: ""
};
},
onLoad(options) {
common_vendor.index.setNavigationBarTitle({
title: "详情"
});
common_vendor.index.setNavigationBarColor({
frontColor: "#000000",
backgroundColor: "#F0F0F0",
animation: {
duration: 500,
timingFunc: "easeIn"
}
});
const _self = this;
let id = options.id;
let orderId = options.oId;
this.id = id;
this.pageData.packageOrderId = orderId;
if (this.id !== void 0 && this.id !== "" && this.pageData.packageOrderId !== void 0 && this.pageData.packageOrderId !== "") {
this.doRefreshList();
} else {
setTimeout(() => {
_self.doBackPage();
}, 1e3);
this.loadingState = "error";
}
},
onPullDownRefresh() {
this.doRefreshList();
common_vendor.index.stopPullDownRefresh();
},
onReachBottom() {
this.doLoadMore();
},
methods: {
doBackPage() {
this.msgHint = "数据有误,请稍后重试";
this.msgType = "error";
this.$refs.msg.open();
setTimeout(() => {
common_vendor.index.navigateBack();
}, 1200);
},
//刷新列表
doRefreshList() {
common_vendor.index.__f__("log", "at pages/mine/mineAccount/minePackageRecordDetail/minePackageRecordDetail.vue:119", "正在刷新...");
const _self = this;
_self.listRefreshTrig = true;
_self.loadingState = "loading";
_self.hasMore = "more";
_self.pageData.page = 1;
_self.isLoadMore = false;
_self.doGetMinePackageList(true);
},
//加载更多
doLoadMore() {
const _self = this;
if (_self.isLoadMore || _self.hasMore == "noMore") {
return;
}
_self.isLoadMore = true;
_self.pageData.page = ++_self.pageData.page;
_self.doGetMinePackageList(false);
},
//获取我的联系人列表 isRefresh false 加载更多 true 刷新
doGetMinePackageList(isRefresh) {
const _self = this;
_self.packageList = isRefresh ? [] : _self.packageList;
_self.loadingState = isRefresh ? "loading" : "";
common_js_net_InvoiceApi.InvoiceApi.doGetMinePackageUseDetail(_self.id, _self.pageData).then((res) => {
common_vendor.index.__f__("log", "at pages/mine/mineAccount/minePackageRecordDetail/minePackageRecordDetail.vue:146", res);
common_vendor.index.stopPullDownRefresh();
var status = "success";
status = res.rows && res.rows.length > 0 ? "success" : "empty";
_self.loadingState = isRefresh ? status : "";
_self.packageList = _self.packageList.concat(res.rows);
_self.listRefreshTrig = false;
_self.isLoadMore = false;
_self.hasMore = _self.packageList.length < res.total ? "more" : "noMore";
}).catch((err) => {
common_vendor.index.stopPullDownRefresh();
_self.loadingState = "error";
_self.listRefreshTrig = false;
_self.isLoadMore = false;
_self.hasMore = "more";
});
}
}
};
if (!Array) {
const _easycom_uni_load_more2 = common_vendor.resolveComponent("uni-load-more");
const _component_ContainerLoading = common_vendor.resolveComponent("ContainerLoading");
const _easycom_uni_popup_message2 = common_vendor.resolveComponent("uni-popup-message");
const _easycom_uni_popup2 = common_vendor.resolveComponent("uni-popup");
(_easycom_uni_load_more2 + _component_ContainerLoading + _easycom_uni_popup_message2 + _easycom_uni_popup2)();
}
const _easycom_uni_load_more = () => "../../../../uni_modules/uni-load-more/components/uni-load-more/uni-load-more.js";
const _easycom_uni_popup_message = () => "../../../../uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.js";
const _easycom_uni_popup = () => "../../../../uni_modules/uni-popup/components/uni-popup/uni-popup.js";
if (!Math) {
(_easycom_uni_load_more + _easycom_uni_popup_message + _easycom_uni_popup)();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.f($data.packageList, (item, index, i0) => {
return {
a: index,
b: common_vendor.t(item.orderTitle),
c: common_vendor.t(item.mode == "1" ? "退回" : "使用"),
d: common_vendor.t(item.description),
e: common_vendor.t(item.itemCount),
f: common_vendor.t(item.itemUseCount),
g: common_vendor.t(item.gmtCreate)
};
}),
b: common_vendor.p({
status: $data.hasMore
}),
c: common_vendor.j({
"doRefresh": common_vendor.o($options.doRefreshList)
}),
d: common_vendor.p({
loadingVisible: $data.loadingState
}),
e: common_vendor.p({
type: $data.msgType,
message: $data.msgHint,
duration: 2e3
}),
f: common_vendor.sr("msg", "dc59bd9b-2"),
g: common_vendor.p({
type: "message"
})
};
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-dc59bd9b"]]);
swan.createPage(MiniProgramPage);
//# sourceMappingURL=../../../../../.sourcemap/mp-baidu/pages/mine/mineAccount/minePackageRecordDetail/minePackageRecordDetail.js.map

View File

@ -0,0 +1,11 @@
{
"component": true,
"navigationBarTitleText": "",
"enablePullDownRefresh": true,
"usingComponents": {
"container-loading": "../../../../components/container-loading",
"uni-load-more": "../../../../uni_modules/uni-load-more/components/uni-load-more/uni-load-more",
"uni-popup-message": "../../../../uni_modules/uni-popup/components/uni-popup-message/uni-popup-message",
"uni-popup": "../../../../uni_modules/uni-popup/components/uni-popup/uni-popup"
}
}

View File

@ -0,0 +1 @@
<view class="page-container data-v-dc59bd9b"><container-loading s-if="{{d}}" class="data-v-dc59bd9b" u-s="{{['d']}}" style="height:90vh" binddoRefresh="__e" u-i="dc59bd9b-0" eO="{{c}}" u-p="{{d}}"><view class="order-box data-v-dc59bd9b"><block s-for="item in a trackBy item.a"><view class="package-content data-v-dc59bd9b"><view class="package-header data-v-dc59bd9b"><text class="package-title data-v-dc59bd9b">{{item.b}}</text><text class="package-tag data-v-dc59bd9b">{{item.c}}</text></view><view class="package-counts data-v-dc59bd9b"><view class="counts-label data-v-dc59bd9b">{{item.d}}</view></view><view class="package-counts data-v-dc59bd9b"><view class="package-counts-item data-v-dc59bd9b"><text class="counts-label data-v-dc59bd9b">剩余数量:</text><text class="counts-value mr-10 data-v-dc59bd9b">{{item.e}}</text><text class="counts-label data-v-dc59bd9b">使用数量:</text><text class="counts-value data-v-dc59bd9b">{{item.f}}</text></view><view class="package-counts-item data-v-dc59bd9b"><text class="counts-label data-v-dc59bd9b">创建时间:</text><text class="counts-label data-v-dc59bd9b">{{item.g}}</text></view></view></view></block><uni-load-more s-if="{{b}}" class="data-v-dc59bd9b" u-i="dc59bd9b-1,dc59bd9b-0" u-p="{{b}}"></uni-load-more></view></container-loading><uni-popup s-if="{{g}}" class="r data-v-dc59bd9b" u-s="{{['d']}}" u-r="msg" u-i="dc59bd9b-2" u-p="{{g}}"><uni-popup-message s-if="{{e}}" class="data-v-dc59bd9b" u-i="dc59bd9b-3,dc59bd9b-2" u-p="{{e}}"></uni-popup-message></uni-popup></view>

View File

@ -94,16 +94,9 @@ const _sfc_main = {
},
//跳转创建
openCreate(e) {
const _self = this;
const type = e.currentTarget.dataset.type;
const count = type === "ALL" ? _self.allCount : _self.materialCount;
if (count > 0) {
_self.doGetPackage(type);
} else {
_self.msgType = "error";
_self.msgTxt = "您的账户当前无套餐包,为正常使用请及时充值。";
_self.$refs.msg.open();
}
common_vendor.index.navigateTo({
url: "/pages/mine/mineAccount/minePackageRecord/minePackageRecord"
});
},
//跳转优惠卷
doCoupons() {
@ -127,7 +120,7 @@ const _sfc_main = {
const _self = this;
common_js_net_projectApi.ProApi.doGetPrice().then((res) => {
common_vendor.index.hideLoading();
common_vendor.index.__f__("log", "at pages/mine/mineIndex/mineIndex.vue:215", res);
common_vendor.index.__f__("log", "at pages/mine/mineIndex/mineIndex.vue:218", res);
res.projTypes.forEach((el) => {
if (el.type == "ALL") {
_self.allPrice = el.price;
@ -175,7 +168,7 @@ const _sfc_main = {
_self.allCount = res.ALL;
_self.materialCount = res.MATERIAL;
}).catch((err) => {
common_vendor.index.__f__("log", "at pages/mine/mineIndex/mineIndex.vue:270", err);
common_vendor.index.__f__("log", "at pages/mine/mineIndex/mineIndex.vue:273", err);
_self.allCount = 0;
_self.materialCount = 0;
_self.msgType = "error";
@ -197,7 +190,7 @@ const _sfc_main = {
};
common_js_net_projectApi.ProApi.doGetPackageList(data).then((res) => {
common_vendor.index.hideLoading();
common_vendor.index.__f__("log", "at pages/mine/mineIndex/mineIndex.vue:293", res.rows);
common_vendor.index.__f__("log", "at pages/mine/mineIndex/mineIndex.vue:296", res.rows);
if (res.rows && res.rows.length > 0) {
const packageId = res.rows[0].packageInfoId;
const price = type == "ALL" ? _self.allPrice : _self.materialPrice;

View File

@ -6,14 +6,9 @@
"ignore": []
},
"enhance": true,
"ignorePrefixCss": false,
"quickPreview": true
"ignorePrefixCss": false
},
"selected": -2,
"forceChanged": {
"quickPreview": true,
"originMode": "optiAmd"
}
"selected": -3
},
"host": "baiduboxapp",
"projectname": "ts_aimz",
@ -21,10 +16,7 @@
"autoAudits": false,
"urlCheck": false
},
"swan": {
"baiduboxapp": {
"swanJsVersion": "3.970.2",
"extensionJsVersion": "1.21.2"
}
"preview": {
"packageId": 1209242
}
}

View File

@ -138,7 +138,7 @@ function uploadCloudFiles(files, max = 5, onUploadProgress) {
const index = self.files.findIndex((v) => v.uuid === fileItem.uuid);
fileItem.url = "";
delete fileItem.errMsg;
common_vendor.nr.uploadFile({
common_vendor.tr.uploadFile({
filePath: fileItem.path,
cloudPath: fileItem.cloudPath,
fileType: fileItem.fileType,

View File

@ -166,9 +166,9 @@ const _sfc_main = {
}
},
created() {
if (!(common_vendor.nr.config && common_vendor.nr.config.provider)) {
if (!(common_vendor.tr.config && common_vendor.tr.config.provider)) {
this.noSpace = true;
common_vendor.nr.chooseAndUploadFile = uni_modules_uniFilePicker_components_uniFilePicker_chooseAndUploadFile.chooseAndUploadFile;
common_vendor.tr.chooseAndUploadFile = uni_modules_uniFilePicker_components_uniFilePicker_chooseAndUploadFile.chooseAndUploadFile;
}
this.form = this.getForm("uniForms");
this.formItem = this.getForm("uniFormsItem");
@ -268,7 +268,7 @@ const _sfc_main = {
*/
chooseFiles() {
const _extname = uni_modules_uniFilePicker_components_uniFilePicker_utils.get_extname(this.fileExtname);
common_vendor.nr.chooseAndUploadFile({
common_vendor.tr.chooseAndUploadFile({
type: this.fileMediatype,
compressed: false,
sizeType: this.sizeType,
@ -492,7 +492,7 @@ const _sfc_main = {
fileList = {
fileList: [].concat(fileList)
};
const urls = await common_vendor.nr.getTempFileURL(fileList);
const urls = await common_vendor.tr.getTempFileURL(fileList);
return urls.fileList[0].tempFileURL || "";
},
/**