diff --git a/api/api.js b/api/api.js
index 8ce5cd6..2df6a65 100644
--- a/api/api.js
+++ b/api/api.js
@@ -6,7 +6,7 @@ let limit = {}
let debounce = {}
const models = ['login', 'index', 'bookshelf', 'my_book', 'comment', 'task'
-, 'order', 'writer']
+, 'order', 'writer', 'achievement']
const config = {
// 示例
diff --git a/api/fetch.js b/api/fetch.js
index 6443777..6f6d5d6 100644
--- a/api/fetch.js
+++ b/api/fetch.js
@@ -1,20 +1,20 @@
import api from './api.js'
const fetch = (key, data = {}, transform = true, loadingTitle) => {
- return new Promise(resolve => {
-
- const callback = (res) => {
- if (!transform) {
- resolve(res)
- return
- }
- if (res.code == 200) {
- resolve(res.result)
- }
- }
+ return new Promise(resolve => {
- api(key, data, callback, loadingTitle)
- })
+ const callback = (res) => {
+ if (!transform) {
+ resolve(res)
+ return
+ }
+ if (res.code == 200) {
+ resolve(res.result)
+ }
+ }
+
+ api(key, data, callback, loadingTitle)
+ })
}
-export default fetch
+export default fetch
\ No newline at end of file
diff --git a/api/http.js b/api/http.js
index bc01a4c..d9dc4a4 100644
--- a/api/http.js
+++ b/api/http.js
@@ -37,7 +37,7 @@ function http(uri, data, callback, method = 'GET', showLoading, title) {
res.data.message == '操作失败,用户不存在!'){
store.commit('logout', '登录过期了,你可以停留在此页面或去重新登录')
console.error('登录过期');
- utils.toLogin()
+ // utils.toLogin()
}
if(res.statusCode == 200 && res.data.code != 200
diff --git a/api/model/achievement.js b/api/model/achievement.js
new file mode 100644
index 0000000..3b40e48
--- /dev/null
+++ b/api/model/achievement.js
@@ -0,0 +1,22 @@
+
+const api = {
+ // 设置读者成就等级名称
+ setAchievementName: {
+ url: '/all_achievement/setAchievementName',
+ method: 'GET',
+ auth: true,
+ },
+ // 根据用户标识和书籍标识查询该用户的成就等级
+ getAchievement: {
+ url: '/all_achievement/getAchievement',
+ method: 'GET',
+ auth: true,
+ },
+ // 获取读者成就列表
+ getAchievementList: {
+ url: '/all_achievement/getAchievementList',
+ method: 'GET',
+ },
+}
+
+export default api
\ No newline at end of file
diff --git a/api/model/index.js b/api/model/index.js
index d7d9ea1..6c674c1 100644
--- a/api/model/index.js
+++ b/api/model/index.js
@@ -7,17 +7,6 @@ const api = {
method: 'GET',
auth: true,
},
- // 根据用户标识和书籍标识查询该用户的成就等级
- getAchievement: {
- url: '/all_index/getAchievement',
- method: 'GET',
- auth: true,
- },
- // 获取读者成就列表
- getAchievementList: {
- url: '/all_index/getAchievementList',
- method: 'GET',
- },
// 获取首页banner
getBanner: {
url: '/all_index/getBanner',
@@ -84,12 +73,6 @@ const api = {
method: 'GET',
auth: true,
},
- // 设置读者成就等级名称
- setAchievementName: {
- url: '/all_index/setAchievementName',
- method: 'GET',
- auth: true,
- },
// 订阅章节
subscribeBook: {
url: '/all_index/subscribeBook',
diff --git a/pages/index/bookshelf.vue b/pages/index/bookshelf.vue
index 747fee4..662f076 100644
--- a/pages/index/bookshelf.vue
+++ b/pages/index/bookshelf.vue
@@ -171,7 +171,7 @@
activeTab: 'read',
isEditMode: false,
selectedItems: [], // 统一选中项
- mixinsListApi : 'getReadBookPage',
+ mixinsListApi : '',
apiMap : {
read : 'getReadBookPage',
work : 'getMyBookPage',
@@ -196,20 +196,11 @@
},
onShow() {
- // 检查是否需要弹窗
- const pages = getCurrentPages();
- const current = pages[pages.length - 1];
- if (current.options && current.options.fromPublish === '1') {
- this.activeTab = 'work';
- uni.showToast({
- title: '发布成功',
- icon: 'success'
- });
- // 移除参数,防止返回时重复弹窗
- delete current.options.fromPublish;
+ // this.isEditMode = false;
+ // this.selectedItems = [];
+ if(this.isLogin){
+ this.mixinsListApi = this.apiMap[tab]
}
- this.isEditMode = false;
- this.selectedItems = [];
},
onUnload() {
// 移除事件监听
@@ -220,7 +211,9 @@
switchTab(tab) {
this.activeTab = tab;
- this.mixinsListApi = this.apiMap[tab]
+ if(this.isLogin){
+ this.mixinsListApi = this.apiMap[tab]
+ }
this.list = []
diff --git a/pages/index/category.vue b/pages/index/category.vue
index 2d9ed6c..62d419e 100644
--- a/pages/index/category.vue
+++ b/pages/index/category.vue
@@ -33,14 +33,14 @@
@change="change">
-
+
-
+
@@ -66,7 +66,7 @@
},
data() {
return {
- mixinsListApi: '',
+ mixinsListApi: 'getRecommendList',
current : 0,
currentChildren : 0,
categoryList: [],
diff --git a/pages/index/center.vue b/pages/index/center.vue
index 22bf6ec..5e0a98c 100644
--- a/pages/index/center.vue
+++ b/pages/index/center.vue
@@ -152,13 +152,11 @@
\ No newline at end of file
diff --git a/pages_order/auth/Modifyinformation.vue b/pages_order/auth/Modifyinformation.vue
index 7512289..ba5bd32 100644
--- a/pages_order/auth/Modifyinformation.vue
+++ b/pages_order/auth/Modifyinformation.vue
@@ -82,7 +82,7 @@
},
getPhone(e) {
this.$api('bindPhone', {
- phoneCode: e.detail.code
+ code: e.detail.code
}, res => {
if (res.code == 200) {
let phoneObj = JSON.parse(res.result)
diff --git a/pages_order/auth/wxUserInfo.vue b/pages_order/auth/wxUserInfo.vue
index 6b64099..8133c4e 100644
--- a/pages_order/auth/wxUserInfo.vue
+++ b/pages_order/auth/wxUserInfo.vue
@@ -90,7 +90,7 @@
},
getPhone(e){
this.$api('bindPhone', {
- phoneCode : e.detail.code
+ code : e.detail.code
}, res => {
if(res.code == 200){
let phoneObj = JSON.parse(res.result)
diff --git a/pages_order/comment/myComment.vue b/pages_order/comment/myComment.vue
index 9832832..4e09944 100644
--- a/pages_order/comment/myComment.vue
+++ b/pages_order/comment/myComment.vue
@@ -3,55 +3,45 @@
@@ -117,78 +92,4 @@
font-weight: 500;
margin-bottom: 16rpx;
}
-
- .comment-card {
- display: flex;
- align-items: flex-start;
- margin-bottom: 32rpx;
- }
-
- .avatar {
- width: 56rpx;
- height: 56rpx;
- border-radius: 50%;
- margin-right: 16rpx;
- flex-shrink: 0;
- }
-
- .comment-main {
- flex: 1;
- display: flex;
- flex-direction: column;
- }
-
- .comment-header {
- display: flex;
- align-items: center;
- gap: 12rpx;
- margin-bottom: 4rpx;
- }
-
- .username {
- font-size: 26rpx;
- color: #222;
- font-weight: 500;
- }
-
- .from {
- font-size: 22rpx;
- color: #bdbdbd;
- }
-
- .comment-content {
- font-size: 26rpx;
- color: #333;
- margin-bottom: 12rpx;
- }
-
- .comment-footer {
- display: flex;
- align-items: center;
- font-size: 22rpx;
- color: #bdbdbd;
- justify-content: space-between;
- padding-right: 8rpx;
- }
-
- .comment-time {
- color: #bdbdbd;
- }
-
- .reply-btn-wrap {
- display: flex;
- align-items: center;
- cursor: pointer;
- }
-
- .reply-btn {
- color: #223a6b;
- font-weight: 500;
- margin-left: 0;
- font-size: 24rpx;
- }
-
- .history-section {
- margin-top: 24rpx;
- }
\ No newline at end of file
diff --git a/pages_order/components/comment/myCommentItem.vue b/pages_order/components/comment/myCommentItem.vue
new file mode 100644
index 0000000..755d700
--- /dev/null
+++ b/pages_order/components/comment/myCommentItem.vue
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages_order/novel/Giftbox.vue b/pages_order/novel/Giftbox.vue
index dc6b771..bd49e4a 100644
--- a/pages_order/novel/Giftbox.vue
+++ b/pages_order/novel/Giftbox.vue
@@ -20,12 +20,15 @@
- {{ gift.emoji }}
+
+
+
- {{ gift.name }}
+ {{ gift.title }}
- x{{ gift.count }}
- {{ gift.price }}豆豆
+
+ {{ gift.integerPrice }}豆豆
@@ -146,9 +149,9 @@
},
buyGift() {
// 跳转到礼物购买页面,并传递选中礼物信息
- const gift = this.gifts[this.selectedIndex]
+ const gift = this.list[this.selectedIndex]
uni.navigateTo({
- url: `/pages_order/novel/Giftpurchases?name=${encodeURIComponent(gift.name)}&price=${gift.price}&count=${this.buyCount}`
+ url: `/pages_order/novel/Giftpurchases?&id=${gift.id}&count=${this.buyCount}`
})
},
},
@@ -199,6 +202,10 @@
.gift-emoji {
font-size: 56rpx;
+ image{
+ width: 80rpx;
+ height: 80rpx;
+ }
}
.gift-name {
diff --git a/pages_order/novel/Giftpurchases.vue b/pages_order/novel/Giftpurchases.vue
index 3453389..61ea321 100644
--- a/pages_order/novel/Giftpurchases.vue
+++ b/pages_order/novel/Giftpurchases.vue
@@ -1,278 +1,336 @@
-
-
-
-
-
-
-
- 礼物购买
-
- 礼物名称
- {{ giftName }}
-
-
-
- * 购买数量
-
-
-
-
- 支付方式
-
-
- 账户余额:{{ balance }} 豆豆
-
-
-
-
-
- 订单信息
-
- 内容
-
-
- 合计:
- {{ totalPrice.toFixed(2) }} 元
-
-
-
-
-
-
- 请仔细核查并确认相关信息。因用户个人疏忽导致的充值错误,需由用户自行承担。一旦完成充值,概不退换。
-
-
-
-
-
+
+
+
+
+
+
+
+ 礼物购买
+
+ 礼物名称
+ {{ detail.title }}
+
+
+
+ * 购买数量
+
+
+
+
+ 支付方式
+
+
+ 账户余额:{{ userInfo.integerPrice }} 豆豆
+
+
+
+
+
+ 订单信息
+
+ 内容
+
+
+ 合计:
+ {{ totalPrice.toFixed(2) }} 元
+
+
+
+
+
+
+
+ 请仔细核查并确认相关信息。因用户个人疏忽导致的充值错误,需由用户自行承担。一旦完成充值,概不退换。
+
+
+
+
+
+ .gift-purchase-page {
+ min-height: 100vh;
+ background: #f8f8f8;
+ padding-bottom: 120rpx;
+ }
+
+ .card {
+ background: #fff;
+ border-radius: 18rpx;
+ margin: 24rpx 16rpx 0 16rpx;
+ padding: 24rpx 24rpx 10rpx 24rpx;
+ box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.03);
+ }
+
+ .card-title {
+ font-size: 24rpx;
+ font-weight: bold;
+ color: #222;
+ margin-bottom: 18rpx;
+ }
+
+ .row {
+ display: flex;
+ align-items: center;
+ margin-bottom: 16rpx;
+ }
+
+ .label {
+ color: #888;
+ font-size: 26rpx;
+ width: 160rpx;
+ }
+
+ .label.required {
+ color: #222;
+ font-weight: 500;
+ }
+
+ .value {
+ color: #222;
+ font-size: 26rpx;
+ }
+
+ .input {
+ flex: 1;
+ border: none;
+ border-bottom: 1rpx solid #eee;
+ font-size: 26rpx;
+ padding: 8rpx 0;
+ background: transparent;
+ outline: none;
+ }
+
+ .order-card {
+ border-radius: 20px;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
+ padding: 24px 20px 16px 20px;
+ margin: 16px;
+ position: relative;
+ }
+
+ .order-title {
+ font-size: 18px;
+ font-weight: bold;
+ color: #222;
+ margin-bottom: 12px;
+ }
+
+ .order-content {
+ color: #bbb;
+ font-size: 15px;
+ margin-bottom: 8px;
+ }
+
+ .row.total-row {
+ display: flex;
+ align-items: center;
+ margin-bottom: 0;
+ }
+
+ .order-total-label {
+ color: #222;
+ font-size: 18px;
+ font-weight: 500;
+ }
+
+ .order-total {
+ color: #222;
+ font-size: 18px;
+ font-weight: 500;
+ margin-left: 8px;
+ }
+
+ .order-total-highlight {
+ color: #ff7e00;
+ font-size: 18px;
+ font-weight: bold;
+ margin: 0 2px;
+ }
+
+ .order-divider {
+ width: 100%;
+ height: 1px;
+ background: #f2f2f2;
+ margin-top: 16px;
+ }
+
+ .tip-text {
+ color: #bbb;
+ font-size: 22rpx;
+ margin: 32rpx 32rpx 0 32rpx;
+ line-height: 1.6;
+ }
+
+ .footer-bar {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 90rpx;
+ background: #fff;
+ padding: 24rpx 32rpx 32rpx 32rpx;
+ box-shadow: 0 -2rpx 10rpx rgba(0, 0, 0, 0.05);
+ z-index: 10;
+ }
+
+ .buy-btn {
+ width: 100%;
+ background: #223a7a;
+ color: #fff;
+ font-size: 32rpx;
+ border-radius: 32rpx;
+ height: 88rpx;
+ line-height: 88rpx;
+ border: none;
+ font-weight: 500;
+ }
+
+ .card.gift-card {
+ border-radius: 20px;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
+ padding: 24px 20px 16px 20px;
+ margin: 16px;
+ position: relative;
+ }
+
+ .card-title {
+ font-size: 18px;
+ font-weight: bold;
+ color: #222;
+ margin-bottom: 12px;
+ }
+
+ .form-row {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ min-height: 36px;
+ padding: 0;
+ margin-top: 5rpx;
+
+ }
+
+ .form-label {
+ color: #888;
+ font-size: 14px;
+ margin-bottom: 9px;
+ font-weight: 400;
+ margin-top: 5px;
+
+ }
+
+ .form-label.required {
+ color: #222;
+ font-weight: 500;
+ display: flex;
+ align-items: center;
+ }
+
+ .star {
+ color: #e94f7a;
+ margin-right: 2px;
+ font-size: 16px;
+ }
+
+ .form-value {
+ color: #0e0e0e;
+ font-size: 14px;
+ font-weight: 600;
+ margin-bottom: 2px;
+ }
+
+ .form-input {
+ flex: 1;
+ border: none;
+ background: transparent;
+ font-size: 14px;
+ outline: none;
+ padding: 0;
+ color: #222;
+ }
+
+ .divider {
+ height: 1px;
+ background: #f2f2f2;
+ margin: 0 0 0 0;
+ border: none;
+ }
+
+ .balance {
+ color: #0e0e0e;
+ font-size: 14px;
+ margin: 0 0 8px 0;
+ }
+
+ .bean {
+ color: #222;
+ font-weight: 600;
+ }
+
\ No newline at end of file
diff --git a/pages_order/novel/novelDetail.vue b/pages_order/novel/novelDetail.vue
index 48aaf0a..c8e240b 100644
--- a/pages_order/novel/novelDetail.vue
+++ b/pages_order/novel/novelDetail.vue
@@ -204,9 +204,13 @@
}) {
this.id = id
this.queryParams.bookId = id
+ },
+ onShow() {
this.getDateil()
- this.getAchievement()
this.getBookCatalogList()
+ if(this.isLogin){
+ this.getAchievement()
+ }
},
methods: {
updateVote() {