Browse Source

登录权限优化

master
xuhuajiao 1 month ago
parent
commit
92e63d9fa7
  1. 53
      pages/home/home.vue
  2. 21
      pages/lendCar/lendCar.vue
  3. 12
      pages/login/login.vue
  4. 32
      pages/user/user.vue
  5. 11
      subpkg/pages/activity-detail/activity-detail.vue
  6. 4
      subpkg/pages/activity-list/activity-list.vue
  7. 3
      subpkg/pages/book-detail/book-detail.vue
  8. 3
      subpkg/pages/reader-card/reader-card.vue

53
pages/home/home.vue

@ -38,10 +38,10 @@
<swiper class="banner-swiper" interval="3000" circular :vertical="false" :indicator-dots="true" :autoplay="true">
<swiper-item>
<image data-post-id="3" src="https://qiniu.aiyxlib.com/1605060269830"></image>
<image data-post-id="3" src="https://mmbiz.qpic.cn/mmbiz_jpg/bVyA57fUOMicbQqItawJwQlR2oCoYql1icEbuH45ibSAzZsk2T3aDbUOIdMyOOc2CzkYouok0El5u5U3LONACaeNw/640?wx_fmt=jpeg&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=1"></image>
</swiper-item>
<swiper-item>
<image data-post-id="4" src="https://qiniu.aiyxlib.com/1605060269830"></image>
<image data-post-id="4" src="https://mmbiz.qpic.cn/sz_mmbiz_gif/tuyGibvSXrsqqiaNpAFJ7lbfGL5vibHtUdV5SUk1RWnlq3QqDe9liaWhdS91L0orEsFxZMiaHOFxDOzINmkiby24fYmmWstiayUgywfVia1pwMcNpBA/640?wx_fmt=gif&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=3"></image>
</swiper-item>
</swiper>
@ -355,9 +355,7 @@ export default {
},
//
onToLendCar() {
uni.switchTab({
url: "/pages/lendCar/lendCar"
});
this.checkBindAndNavigate("/pages/lendCar/lendCar", "请您绑定读者证", true);
},
//
toCheckLogin() {
@ -371,15 +369,27 @@ export default {
})
},
toActivityList(){
uni.navigateTo({
url: "/subpkg/pages/activity-list/activity-list"
})
this.checkBindAndNavigate("/subpkg/pages/activity-list/activity-list", "请您绑定读者证");
},
toBorrowPage(index) {
if (this.isBindLibraryCard) {
uni.setStorageSync('switch_tab_index', index);
uni.navigateTo({
url: '/subpkg/pages/myLending/myLending'
});
} else {
uni.showModal({
title: '提示',
content: '请您绑定读者证',
confirmText: '去绑定',
cancelText: '取消',
success: (res) => {
if (res.confirm) {
uni.navigateTo({ url: "/pages/login/login" });
}
}
});
}
},
toBorrowCar() {
uni.switchTab({
@ -387,9 +397,7 @@ export default {
});
},
toFeedback() {
uni.navigateTo({
url: '/subpkg/pages/feedback-list/feedback-list'
});
this.checkBindAndNavigate("/subpkg/pages/feedback-list/feedback-list", "请您绑定读者证");
},
//
toLibraryCard() {
@ -404,9 +412,28 @@ export default {
},
//
onToUser() {
uni.switchTab({
url: "/pages/user/user"
this.checkBindAndNavigate("/pages/user/user", "请您绑定读者证", true);
},
checkBindAndNavigate(url, message, isSwitchTab = false) {
if (this.isBindLibraryCard) {
if (isSwitchTab) {
uni.switchTab({ url });
} else {
uni.navigateTo({ url });
}
} else {
uni.showModal({
title: '提示',
content: message,
confirmText: '去绑定',
cancelText: '取消',
success: (res) => {
if (res.confirm) {
uni.navigateTo({ url: "/pages/login/login" });
}
}
});
}
},
showQrcode(bindValue) {
this.qrcodeText = bindValue;

21
pages/lendCar/lendCar.vue

@ -79,7 +79,28 @@ export default {
sm4Key: res.data.sm4_key?.context || '',
opuser: res.data.op_user?.context || 'JH001',
};
const currentReaderCard = await getCurrentReaderCard();
if (currentReaderCard) {
this.isBindLibraryCard = true;
this.getLendingList();
} else {
this.isBindLibraryCard = false;
this.bookList = [];
uni.showModal({
title: '提示',
content: '请您绑定读者证',
confirmText: '去绑定',
cancelText: '取消',
success: (res) => {
if (res.confirm) {
uni.navigateTo({ url: "/pages/login/login" });
} else {
uni.switchTab({ url: "/pages/home/home" });
}
}
});
}
} catch (err) {}
},

12
pages/login/login.vue

@ -81,9 +81,9 @@ export default {
//
uni.uploadFile({
url: config.baseUrl +'/api/fileRelevant/uploadWxAvatarImg', //
url: config.baseUrl +'/api/fileRelevant/uploadWxAvatarImg',
filePath: tempFilePath,
name: 'file', //
name: 'file',
header: {
"Content-Type": "multipart/form-data"
},
@ -93,9 +93,9 @@ export default {
try {
const data = JSON.parse(res.data);
console.log('解析成功:', data)
realAvatar = data.data || data.url || ''; //
realAvatar = data.data || data.url || '';
} catch (e) {
realAvatar = res.data; // URL
realAvatar = res.data;
}
if (realAvatar) {
console.log("永久头像URL:", realAvatar);
@ -161,7 +161,7 @@ export default {
queryvalue: this.queryvalue,
rdpasswd: this.rdpasswd,
};
// 420703GD0000748
// {"code":200,"message":"","data":"{\"messagelist\":[{\"code\":\"R00138\",\"message\":\"\"}],\"success\":false}","timestamp":1778154499544}
// {"code":200,"message":"","data":"{\"success\":true,\"pagedata\":[{\"rdClusterCode\":null,\"rdlib\":\"GD\",\"rdid\":\"420105198509200438\",\"rdcfstate\":1}]}","timestamp":1778154647854}
@ -251,7 +251,7 @@ export default {
} catch (err) {
console.error('绑定流程异常:', err)
uni.hideLoading();
uni.showToast({ title: '网络异常或绑定失败', icon: 'none' });
uni.showToast({ title: err || '绑定失败', icon: 'none' });
}
}
}

32
pages/user/user.vue

@ -39,16 +39,6 @@
<text class="left-txt">解绑读者证</text>
</view>
</view>
<view>
<uni-popup ref="alertDialog" type="dialog">
<uni-popup-dialog
type="info" cancelText="取消" confirmText="确定"
title="提示" content="请您绑定读者证!"
@confirm="dialogConfirm" @close="dialogClose">
</uni-popup-dialog>
</uni-popup>
</view>
</view>
</template>
@ -140,7 +130,17 @@ export default {
const readerList = await getReaderCardList();
if (readerList.length === 0) {
this.dialogToggle();
uni.showModal({
title: '提示',
content: '请您绑定读者证',
confirmText: '去绑定',
cancelText: '取消',
success: (res) => {
if (res.confirm) {
uni.navigateTo({ url: "/pages/login/login" });
}
}
});
return;
}
@ -164,16 +164,6 @@ export default {
}
},
dialogToggle() {
this.$refs.alertDialog.open();
},
dialogConfirm() {
uni.navigateTo({ url: "/pages/login/login" });
},
dialogClose() {},
urlToBase64(url) {
return new Promise((resolve, reject) => {
uni.request({

11
subpkg/pages/activity-detail/activity-detail.vue

@ -25,10 +25,10 @@
<uni-icons custom-prefix="iconfont" type="icon-fenxiang01" size="20"></uni-icons>
<text>分享</text>
</button>
<button class="handle-btn" @click="toggleCollect">
<!-- <button class="handle-btn" @click="toggleCollect">
<uni-icons :type="isCollected ? 'heart-filled' : 'heart'" size="20" color="#ff4444"></uni-icons>
<text>{{ isCollected ? '已收藏' : '收藏' }}</text>
</button>
</button> -->
</view>
<button class="join-btn" :class="detail.status === 0 ? 'disabled-btn' : ''">
{{ detail.status === 1 ? '我要参加' : '活动结束' }}
@ -63,11 +63,12 @@ export default {
// ======================================
// 1. content <image src="@/static/..."> <img>
// ======================================
const localImgReg = /<image\s+src="@\/static\/([^"]+)"[^>]*>/gi;
const localImgReg = /<image[^>]*\s+src\s*=\s*['"]@\/static\/([^'"]+)['"][^>]*>/gi;
content = content.replace(localImgReg, (match, path) => {
const imgPath = path.startsWith('/') ? path : '/' + path;
return `
<div style="text-align:center; margin:12px 0;">
<img src="/static/${path}" style="width:90%; border-radius:8px;">
<img src="/static${imgPath}" style="width:90%; border-radius:8px;">
</div>
`;
});
@ -75,7 +76,7 @@ export default {
// ======================================
// 2. https://mmbiz.qpic.cn
// ======================================
const httpImgReg = /https:\/\/mmbiz\.qpic\.cn[^ \n\r]+/g;
const httpImgReg = /https:\/\/mmbiz\.qpic\.cn[^ \n\r'"]+/g;
content = content.replace(httpImgReg, url => {
return `
<div style="text-align:center; margin:12px 0;">

4
subpkg/pages/activity-list/activity-list.vue

@ -18,14 +18,14 @@
<text>{{ item.time }}</text>
</view>
</view>
<!-- <button
<button
class="activity-btn"
:class="item.status === 0 ? 'disabled-btn' : ''"
type="primary"
:disabled="item.status === 0"
>
{{ item.status === 1 ? '立即参加' : '活动结束' }}
</button> -->
</button>
</view>
</view>

3
subpkg/pages/book-detail/book-detail.vue

@ -54,7 +54,8 @@
</view>
<view>
<text class="info-item-title">所在馆</text>
<text>{{ item.orglib || '葛店图书馆'}}</text>
<!-- item.orglib || '葛店经济技术开发区图书馆' -->
<text>葛店经济技术开发区图书馆</text>
</view>
<view>
<text class="info-item-title">当前馆藏地</text>

3
subpkg/pages/reader-card/reader-card.vue

@ -72,7 +72,7 @@ import {
FetchSetDefaultReadCard,
FetchUnbindReadCard
} from '@/api/user';
import { getReaderCardList, getOpenId, setCurrentReaderCard, STORAGE_KEYS } from '@/utils/storage';
import { getReaderCardList, getOpenId, setCurrentReaderCard, clearReaderCardCache, STORAGE_KEYS } from '@/utils/storage';
export default {
data() {
@ -224,6 +224,7 @@ export default {
}
if (this.cardList.length === 0) {
clearReaderCardCache();
setTimeout(() => uni.navigateBack(), 1500);
}
}

Loading…
Cancel
Save