8a216ef1 by lttnew

道馆页面

1 parent 55b06f5f
......@@ -3,7 +3,9 @@
"allow": [
"Bash(ls D:/ltt/ztx_wx_gzt/views/*/index.vue)",
"WebFetch(domain:minimax-algeng-chat-tts.oss-cn-wulanchabu.aliyuncs.com)",
"Bash(node -c pages/index/perfect.vue)"
"Bash(node -c pages/index/perfect.vue)",
"Bash(git checkout:*)",
"Bash(git restore:*)"
]
}
}
......
......@@ -114,20 +114,16 @@ function getInfo() {
app.globalData.deptType = user.dept.deptType
app.globalData.genFlag = user.dept.genFlag
app.globalData.changePassFlag = user.changePassFlag
switch (user.dept.deptType) {
case '1': // 中跆协
app.globalData.userType = '1'
break
case '2': // 省
case '3':
app.globalData.userType = '2'
break
case '6': // 道馆
app.globalData.userType = '4'
break
default: // 市、区
app.globalData.userType = '3'
break
// deptType: 1=中跆协, 2/3=省, 6=道馆, 其他=市区
const deptType = user.dept.deptType
if (deptType == '1' || deptType == 1) {
app.globalData.userType = '1'
} else if (deptType == '2' || deptType == '3' || deptType == 2 || deptType == 3) {
app.globalData.userType = '2'
} else if (deptType == '6' || deptType == 6) {
app.globalData.userType = '4'
} else {
app.globalData.userType = '3'
}
})
}
......
......@@ -25,6 +25,7 @@ page {
.w100{width: 100%!important;}
.mt0{margin-top: 0 !important;}
.mt10{margin-top: 10rpx !important;}
.ml10{margin-left: 10rpx !important;}
.mt20{margin-top: 20px !important;}
.must{color: #AD181F;font-size: 24rpx;}
.vipData .w50{width: 45%;}
......
......@@ -11,7 +11,7 @@
<view class="stat-value">{{ form.allFee || '0.00' }}<text class="stat-unit"></text></view>
</view>
<view class="stat-card">
<view class="stat-label">结算费用</view>
<view class="stat-label">服务费用</view>
<view class="stat-value text-red">{{ form.fee || '0.00' }}<text class="stat-unit"></text></view>
</view>
</view>
......
<template>
<view class="role-entry-page">
<!-- 全屏背景图 -->
<image :src="config.loginImage_api + '/fs/static/bg.png'" class="page-bg" mode="aspectFill"></image>
<image :src="config.loginImage_api + '/fs/static/dg/bg@3x.png'" class="page-bg" mode="aspectFill"></image>
<!-- 顶部 Logo 区域 -->
<view class="header-wrapper">
<view class="logo-box">
<image :src="config.loginImage_api + '/fs/static/wx_logo.png'" class="logo" mode="aspectFit"></image>
<image :src="config.loginImage_api + '/fs/static/dg/ztx_b.svg'" class="logo" mode="aspectFit"></image>
</view>
</view>
<!-- 功能按钮区域 -->
<view class="btn-container">
<view @click="goToPage('/personal/addVip_per')">
<image :src="config.loginImage_api + '/fs/static/btn01.png'" class="btn-item"></image>
<image :src="config.loginImage_api + '/fs/static/dg/btn01@3x.png'" class="btn-item"></image>
</view>
<view @click="goToPage('/personal/home')">
<image :src="config.loginImage_api + '/fs/static/btn02.png'" class="btn-item"></image>
<image :src="config.loginImage_api + '/fs/static/dg/btn02@3x.png'" class="btn-item"></image>
</view>
<view @click="goToPage('/login/loginC')">
<image :src="config.loginImage_api + '/fs/static/btn03.png'" class="btn-item"></image>
<image :src="config.loginImage_api + '/fs/static/dg/btn03@3x.png'" class="btn-item"></image>
</view>
</view>
......@@ -61,18 +61,22 @@ const goToPage = (url) => {
.header-wrapper {
text-align: center;
padding: 40rpx 0;
// padding: 40rpx 0;
border-radius: 16rpx;
margin-bottom: 40rpx;
margin-top: 100rpx;
}
.btn-container {
display: flex;
justify-content: space-between;
padding: 0 40rpx;
flex-direction: column;
align-items: center;
margin: 0 auto;
img, image {
width: 90px;
width: 509rpx;
height: 117rpx;
margin: 40rpx 0;
}
}
......
......@@ -92,12 +92,12 @@
<view class="popup-content">
<view class="popup-text">尊敬的用户,您好!</view>
<view class="popup-text">在开始注册团体会员前,请您提前准备好以下材料,以便顺利完成申请:</view>
<view class="popup-item">1. 单位营业执照</view>
<view class="popup-item"><text class="popup-num ml10">1.</text>单位营业执照</view>
<view class="popup-desc">请提供清晰的营业执照原件照片或扫描件(加盖公章更佳)</view>
<view class="popup-item">2. 法人身份证正反面照片</view>
<view class="popup-item"><text class="popup-tip">! </text><text class="popup-num"> 2.</text>法人身份证正反面照片</view>
<view class="popup-desc">请分别上传身份证正面及反面清晰照片</view>
<view class="popup-desc">确保信息完整、无遮挡、无模糊</view>
<view class="popup-item">3. 机构照片</view>
<view class="popup-item"><text class="popup-num ml10">3.</text>机构照片</view>
<view class="popup-desc">请提供体现单位实际经营或办公环境的照片1-2张</view>
<view class="popup-desc">如门头、办公场所、活动场地等(能展示机构真实存在即可)</view>
</view>
......@@ -609,6 +609,13 @@ function call(num) {
margin-bottom: 10rpx;
}
.popup-tip {
color: #C4121B;
font-weight: bold;
font-size: 32rpx;
width: 6rpx;
}
.popup-desc {
font-size: 24rpx;
color: #888;
......
<template>
<view v-if="isInit" class="page">
<!-- ==================== 道馆用户显示 ==================== -->
<view v-if="isDaoGuan" class="dao-guan-page">
<image :src="config.loginImage_api + '/fs/static/dg/home_bg.png'" class="bg-image" mode="aspectFill"></image>
<view class="header-bg">
<view class="loginOutIcon2" @click="goPath('/myCenter/index')">
<image :src="config.loginImage_api + '/fs/static/dg/icon01@3x.png'" class="switch-icon"></image>
</view>
<view class="welcome1" @click="goPath('/myCenter/index')">
<view class="flex f-a-c">
<!-- <view> -->
<text class="title-border"></text>
<text class="section-title">单位会员</text>
<!-- </view> -->
<!-- <image :src="config.loginImage_api + '/fs/static/dg/icon013@x.png'" class="switch-icon"></image> -->
</view>
<view class="sub-title">
<view class="mt10">会员名称&nbsp;&nbsp;会员所属道馆</view>
<view class="mt10">欢迎使用中跆协会员管理系统!</view>
</view>
</view>
<view class="unit-member-box">
<view class="unit-btn" @click="goPath('/myCenter/auth')">
<image :src="config.loginImage_api + '/fs/static/dg/icon02@3x.png'" class="btn-icon"></image><text>基本信息</text>
</view>
<view class="unit-btn" @click="goPath('/personalVip/payment')">
<image :src="config.loginImage_api + '/fs/static/dg/icon03@3x.png'" class="btn-icon"></image><text>认证缴费</text>
</view>
<view class="unit-btn" @click="goPath('/myCenter/reviewList')">
<image :src="config.loginImage_api + '/fs/static/dg/icon04@3x.png'" class="btn-icon"></image><text>认证详情</text>
</view>
<view class="unit-btn " @click="goPath('/myCenter/examPointApplyList')">
<image :src="config.loginImage_api + '/fs/static/dg/icon05@3x.png'" class="btn-icon"></image><text>考点申请</text>
</view>
<!-- <view class="unit-btn mt-20" @click="goPath('/myCenter/examPointApplyList')">
<image :src="config.loginImage_api + '/fs/static/dg/icon06@3x.png'" class="btn-icon"></image><text>考点详情</text>
</view> -->
<!-- <view class="unit-btn unit-btn-right" @click="switchAccount">
<image :src="config.loginImage_api + '/fs/static/dg/icon01@3x.png'" class="btn-icon"></image><text>切换账号</text>
</view> -->
</view>
</view>
<view class="section personal-section">
<view class="flex f-a-c"><text class="title-border"></text>
<text class="section-title">个人会员</text></view>
<view class="personal-member-box">
<view class="personal-btn" @click="goPath('/personalVip/addVip')">
<image :src="config.loginImage_api + '/fs/static/dg/home_btn01@3x.png'" class="circle-icon"></image><text>添加会员</text>
</view>
<view class="personal-btn" @click="goPath('/personalVip/payment')">
<image :src="config.loginImage_api + '/fs/static/dg/home_btn02@3x.png'" class="circle-icon"></image><text>会员缴费</text>
</view>
<view class="personal-btn" @click="goPath('/personalVip/list')">
<image :src="config.loginImage_api + '/fs/static/dg/home_btn03@3x.png'" class="circle-icon"></image><text>会员查询</text>
</view>
<view class="personal-btn" @click="goPath('/personalVip/mobilize')">
<image :src="config.loginImage_api + '/fs/static/dg/btn04@3x.png'" class="circle-icon"></image><text>会员调动</text>
</view>
</view>
</view>
<view class="section level-section">
<view class="flex f-a-c"><text class="title-border"></text>
<text class="section-title">级位管理</text></view>
<view class="level-list">
<view class="level-item" @click="goPath('/level/apply')">
<image :src="config.loginImage_api + '/fs/static/dg/icon07@3x.png'" class="level-icon"></image><text>级位考试</text><view class="arrow"></view>
</view>
<view class="level-item" @click="goPath('/personalVip/changeLevel')">
<image :src="config.loginImage_api + '/fs/static/dg/icon08@3x.png'" class="level-icon"></image><text>级位变更</text><view class="arrow"></view>
</view>
<view class="level-item" @click="goPath('/pages/index/msgList')">
<image :src="config.loginImage_api + '/fs/static/dg/icon09@3x.png'" class="level-icon"></image><text>通知公告</text><view class="arrow"></view>
</view>
<view class="level-item" @click="goPath('/myCenter/order?type=2')">
<image :src="config.loginImage_api + '/fs/static/dg/icon10@3x.png'" class="level-icon"></image><text>我的订单</text><view class="arrow"></view>
</view>
</view>
</view>
</view>
<!-- ==================== 非道馆用户显示原有内容 ==================== -->
<view v-else>
<view class="bgbg">
<view class="loginOutIcon" @click="loginOut">
<image :src="config.baseUrl_api + '/fs/static/switch.png'"></image>
......@@ -406,6 +487,7 @@
</view>
</view>
</uni-section>
</view>
</view>
</template>
......@@ -423,6 +505,7 @@ import {imag1, imag2, imag3, imag4, imag5, imag6} from '@/pages/index/image'
import {
ref,
computed,
getCurrentInstance
} from 'vue';
......@@ -438,6 +521,11 @@ let proId;
const svId = ref(null);
const numData = ref({});
// 是否是道馆用户
const isDaoGuan = computed(() => {
return userType.value == '4' || app.globalData.deptType == '6'
})
const messageList = ref([])
const newsList = ref([])
const isInit = ref(false)
......@@ -490,6 +578,21 @@ onLoad(option => {
});
// 切换账号
function switchAccount() {
uni.showModal({
title: '提示',
content: '确定要切换账号吗?',
success: function (res) {
if (res.confirm) {
uni.reLaunch({
url: '/login/login'
});
}
}
})
}
function loginOut() {
uni.showModal({
content: `确认退出吗?`,
......@@ -654,7 +757,9 @@ function goNewsDetail(n) {
:deep(.uni-section) {
background-color: transparent !important;
}
.mt-20{
margin-top: -20rpx;
}
.page {
width: 100vw;
overflow: hidden;
......@@ -672,13 +777,11 @@ function goNewsDetail(n) {
}
.welcome {
padding: 30rpx 55rpx;
padding: 30rpx ;
line-height: 48rpx;
font-size: 30rpx;
font-size: 32rpx;
text {
font-size: 28rpx;
}
}
.flexbox {
......@@ -756,17 +859,165 @@ function goNewsDetail(n) {
padding: 1rpx 0 0;
border-radius: 20rpx 20rpx 0rpx 0rpx;
box-sizing: border-box;
.girdBox {
top: 0;
padding: 0 0 15rpx;
border-bottom: 20rpx solid #ecf0f6
}
.ttt {
margin: 30rpx 0 20rpx;
padding: 0 20rpx 0;
}
}
/* ==================== 道馆用户样式 ==================== */
.dao-guan-page {
min-height: 100vh;
position: relative;
}
.bg-image {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
}
.title-border {
width: 10rpx;
height: 34rpx;
background: #FFDEE0;
border-radius: 5rpx;
margin-right: 16rpx;
margin-top: 6rpx;
}
.header-bg {
width: 100%;
padding: 60rpx 40rpx 40rpx;
color: #fff;
position: relative;
box-sizing: border-box;
.loginOutIcon2 {
position: absolute;
top: 150rpx;
right: 40rpx;
z-index: 10;
.switch-icon {
width: 50rpx;
height: 50rpx;
}
}
.welcome1 {
margin-top: 40rpx;
.sub-title {
font-size: 30rpx;
line-height: 48rpx;
}
}
.unit-member-box {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 24rpx;
margin-top: 40rpx;
.unit-btn {
width: 150rpx;
height: 130rpx;
background-color: #fff;
border-radius: 20rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
color: #1A1A1A;
font-size: 28rpx;
.btn-icon {
width: 50rpx;
height: 50rpx;
margin-bottom: 8rpx;
}
}
}
}
.section {
padding: 40rpx;
}
.section-title {
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-bottom: 20rpx;
}
.personal-section {
.personal-member-box {
display: flex;
justify-content: space-around;
.personal-btn {
display: flex;
flex-direction: column;
align-items: center;
color: #fff;
font-size: 28rpx;
.circle-icon {
width: 100rpx;
height: 100rpx;
margin-bottom: 12rpx;
}
}
}
}
.level-section {
.level-list {
display: flex;
flex-direction: column;
gap: 20rpx;
.level-item {
height: 90rpx;
border-radius: 45rpx;
display: flex;
align-items: center;
padding: 0 30rpx;
color: #fff;
font-size: 28rpx;
border: 1rpx solid #fff;
.level-icon {
width: 50rpx;
height: 50rpx;
margin-right: 20rpx;
}
.arrow {
margin-left: auto;
width: 16rpx;
height: 16rpx;
border-top: 2rpx solid #fff;
border-right: 2rpx solid #fff;
transform: rotate(45deg);
}
}
}
}
</style>
......
......@@ -17,7 +17,7 @@
<view class="step-text">审核详情</view>
</view>
</view>
<view class="tips-box">
<!-- <view class="tips-box">
<view class="tips-title">注意</view>
<view class="tips-content">
<view class="tips-line">尊敬的用户,您好!</view>
......@@ -31,7 +31,7 @@
<view class="tips-desc">请提供体现单位实际经营或办公环境的照片1-2张</view>
<view class="tips-desc">如门头、办公场所、活动场地等(能展示机构真实存在即可)</view>
</view>
</view>
</view> -->
<view class="page-content" style="padding: 0rpx 30rpx 30rpx;">
<!-- 步骤1:完善信息 -->
......@@ -467,8 +467,8 @@
// 审核状态样式
function getAuditStatusClass(status) {
if (status === 1) return 'status-pass'
if (status === 2) return 'status-reject'
if (status == 1) return 'status-pass'
if (status == 2) return 'status-reject'
return 'status-pending'
}
......
......@@ -263,15 +263,17 @@ const showConfirm = ref(false)
}
})
watch(() => perInfo.value?.perCode, (val) => {
if (val === undefined || val === null || val === '') {
// 标记是否已经弹出过绑定框(避免重复弹出)
let hasOpenedBindPopup = false
watch(() => perInfo.value, (newVal, oldVal) => {
console.log(444, newVal?.perCode)
// 只有当 perInfo 数据存在且 perCode 为空时才弹出
if (newVal && !newVal.perCode && !hasOpenedBindPopup) {
hasOpenedBindPopup = true
nextTick(() => {
// 延迟检查,确保数据已完全同步
setTimeout(() => {
if (!isBound.value) {
openBindPopup()
}
}, 500)
openBindPopup()
})
}
}, {
......@@ -623,19 +625,22 @@ const showConfirm = ref(false)
.card-btns {
position: absolute;
right: 30rpx;
bottom: 73rpx;
bottom: 80rpx;
z-index: 10;
display: flex;
gap: 16rpx;
}
.card-btn {
// background: rgba(255, 255, 255, 0.9);
background: rgba(255, 255, 255, 0.9);
border-radius: 30rpx;
padding: 12rpx 20rpx;
padding: 0rpx 20rpx;
padding-bottom: 5rpx;
}
.card-btn text {
height: 24rpx;
line-height: 24rpx;
font-size: 24rpx;
color: #C40F18;
}
......
......@@ -261,9 +261,6 @@ function previewImage(url) {
margin-bottom: 20rpx;
}
.list-item.success-row {
border-left: 6rpx solid #19be6b;
}
.item-header {
display: flex;
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!