This commit is contained in:
yziiy
2025-08-13 10:39:47 +08:00
parent da65fde285
commit 125ab7ab9d
22 changed files with 3684 additions and 1045 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
node_modules/

72
App.vue
View File

@@ -1,38 +1,54 @@
<script> <script>
export default { import http from '@/until/http.js';
onLaunch: function() { export default {
// console.warn('当前组件仅支持 uni_modules 目录结构 ,请升级 HBuilderX 到 3.1.0 版本以上!') onLaunch: function () {
console.log('App Launch') this.getInfo()
},
onHide: function () {
uni.removeStorageSync('Theme_Data')
},
methods: {
async getInfo() {
http.get('/api/Theme/get_theme_data').then(response => {
const {
data,
code
} = response
if(code) {
if(data) {
uni.setStorageSync('Theme_Data',JSON.stringify(data))
} else {
uni.setStorageSync('Theme_Data','')
}
}
}).catch(error => {
uni.setStorageSync('Theme_Data','')
});
}, },
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
} }
}
</script> </script>
<style lang="scss"> <style lang="scss">
@import '@/static/public.css'; @import '@/static/public.css';
/*每个页面公共css */ /*每个页面公共css */
@import '@/uni_modules/uni-scss/index.scss'; @import '@/uni_modules/uni-scss/index.scss';
/* #ifndef APP-NVUE */ /* #ifndef APP-NVUE */
@import '@/static/customicons.css'; @import '@/static/customicons.css';
body { body {
background-color: transparent !important; background-color: transparent !important;
} }
// 设置整个项目的背景色 // 设置整个项目的背景色
page { page {
background-color: transparent !important; background-color: transparent !important;
font-family: Source Han Sans CN, Source Han Sans CN; font-family: Source Han Sans CN, Source Han Sans CN;
} }
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: cover; object-fit: cover;
} }
</style> </style>

View File

@@ -10,6 +10,14 @@
"backgroundColor": "#00000000", "backgroundColor": "#00000000",
"webview": { "webview": {
"transparent": "always" // 确保 Webview 透明 "transparent": "always" // 确保 Webview 透明
},
"packOptions": {
"ignore":[
{
"type":"folder",
"value":"node_modules"
}
]
}, },
/* 5+App */ /* 5+App */
"usingComponents": true, "usingComponents": true,

View File

@@ -127,7 +127,6 @@
id id
} = options } = options
uni.setStorageSync('token', id) uni.setStorageSync('token', id)
// this.statusBarHeight = h
this.errorPage = id ? false : true this.errorPage = id ? false : true
}, },
onReachBottom() { onReachBottom() {

View File

@@ -1,5 +1,5 @@
<template> <template>
<view class="view-page"> <view class="view-page" :style="{backgroundImage : `url('${ThemeData?.app_bg ?? 'https://vespa.qxmier.com/image/bg.png'}')`}">
<!-- <headerHeight /> --> <!-- <headerHeight /> -->
<navBar :style="{marginTop: `${statusBarHeight}${uni.getSystemInfoSync().platform === 'ios' ? 'px': 'dp'}`}" :navTitle="'帮助与反馈'" :emitBack="true" @backEvent="back"> <navBar :style="{marginTop: `${statusBarHeight}${uni.getSystemInfoSync().platform === 'ios' ? 'px': 'dp'}`}" :navTitle="'帮助与反馈'" :emitBack="true" @backEvent="back">
</navBar> </navBar>
@@ -100,6 +100,7 @@
limit: 10, limit: 10,
typeData: null, typeData: null,
typeId: null, typeId: null,
ThemeData:null
} }
}, },
onLoad(options) { onLoad(options) {
@@ -110,6 +111,9 @@
if (uni.getStorageSync('token')) this.getHelpList() if (uni.getStorageSync('token')) this.getHelpList()
this.statusBarHeight = h this.statusBarHeight = h
uni.setStorageSync('BarHeight', h) uni.setStorageSync('BarHeight', h)
if(uni.getStorageSync('Theme_Data')) {
this.ThemeData = JSON.parse(uni.getStorageSync('Theme_Data'))
}
}, },
methods: { methods: {
async getHelpList() { async getHelpList() {
@@ -220,7 +224,6 @@
// padding: 32rpx; // padding: 32rpx;
width: 100vw; width: 100vw;
height: 100vh; height: 100vh;
background-image: url('@/static/image/help/bg.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;

View File

@@ -54,15 +54,6 @@
} = options } = options
if (id) this.getDetail(id) if (id) this.getDetail(id)
}, },
// onShow() {
// if(uni.getStorageSync('statusBarHeight')) {
// this.statusBarHeight = uni.getStorageSync('statusBarHeight')
// } else {
// const systemInfo = uni.getSystemInfoSync(); // 获取系统信息
// this.statusBarHeight = systemInfo.statusBarHeight
// uni.setStorageSync('statusBarHeight', this.statusBarHeight)
// }
// },
methods: { methods: {
getDetail(id) { getDetail(id) {
http.get('/api/Help/help_detail', { http.get('/api/Help/help_detail', {

View File

@@ -1,5 +1,5 @@
<template> <template>
<view class="view-page"> <view class="view-page" :style="backgroundStyle">
<headerHeight /> <headerHeight />
<navBar :navTitle="'青少年模式'" :emitBack="true" @backEvent="back"> <navBar :navTitle="'青少年模式'" :emitBack="true" @backEvent="back">
</navBar> </navBar>
@@ -9,13 +9,13 @@
</NavigationTabs> </NavigationTabs>
</view> </view>
<view class=""> <view class="">
<view class="flex-line flex-spaceB w-fill new-box" v-for="(item,index) in dataList" :key="index"> <view class="flex-line flex-spaceB w-fill new-box" v-for="(item, index) in dataList" :key="index">
<view class=""> <view class="">
<view class="color-3 font-32 font-w500"> <view class="color-3 font-32 font-w500">
{{item.title}} {{ item.title }}
</view> </view>
<view class="color-6 mt-24 font-28 font-w400 multi-line"> <view class="color-6 mt-24 font-28 font-w400 multi-line">
{{item.introduced}} {{ item.introduced }}
</view> </view>
</view> </view>
<view class="new-box-image"> <view class="new-box-image">
@@ -30,148 +30,165 @@
</template> </template>
<script> <script>
import http from '@/until/http.js'; import http from '@/until/http.js';
import headerHeight from '@/component/headerHeight.vue'; import headerHeight from '@/component/headerHeight.vue';
import navBar from '@/component/nav.vue'; import navBar from '@/component/nav.vue';
import NavigationTabs from '@/component/tab.vue'; import NavigationTabs from '@/component/tab.vue';
export default { export default {
components: { components: {
headerHeight, headerHeight,
navBar, navBar,
NavigationTabs NavigationTabs
}, },
data() { data() {
return { return {
errorPage: true, errorPage: true,
currentIndex: 0, currentIndex: 0,
pageConfig: { pageConfig: {
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
total: 0 total: 0
},
loading: false,
noMore: false,
tabs: [],
dataList: []
}
},
onReachBottom() {
if (!this.loading && !this.noMore) {
this.getUnderageModeList(this.tabs[0].type)
}
},
onLoad(options) {
this.errorPage = true
this.dataList = []
const {
id
} = options
uni.setStorageSync('token', id)
if (uni.getStorageSync('token')) this.getUnderageTypeList()
},
methods: {
back() {
this.closeWeb()
}, },
closeWeb() { loading: false,
const platform = uni.getSystemInfoSync().platform; noMore: false,
if (platform === 'ios') { tabs: [],
window.webkit.messageHandlers.nativeHandler.postMessage({ dataList: [],
'action': 'closeWeb' ThemeData: null
}); }
} else if (platform === 'android') { },
window.Android.closeWeb(); computed: {
backgroundStyle() {
if (this.ThemeData.app_bg) {
return {
backgroundImage: `url(${this.ThemeData.app_bg})`
}
} else {
return {
background: 'linear-gradient(180deg, #B3FAEB 2%, #FFFFFF 40%)'
} }
},
async getUnderageTypeList() {
http.get('/api/Usermode/getUnderageTypeList', {
token: uni.getStorageSync('token') ?? ''
}).then(response => {
const {
data,
code
} = response
if (code) {
this.tabs = data.map(ele => {
return {
type: ele.id,
value: ele.type_name
}
})
}
this.errorPage = false
this.$nextTick(() => {
this.getUnderageModeList(this.tabs[0].type)
})
}).catch(error => {
this.tabs = []
this.errorPage = true
});
},
async getUnderageModeList(type) {
http.get('/api/Usermode/getUnderageModeList', {
token: uni.getStorageSync('token') ?? '',
type: type,
page: this.pageConfig.currentPage,
page_limit: this.pageConfig.pageSize
}).then(response => {
const {
code,
data
} = response
if (code) {
this.pageConfig.total = data.total
this.loading = false
const newData = data.data || []
if (newData.length === 0) {
this.noMore = true
return
}
this.dataList = [...this.dataList, ...newData]
this.pageConfig.currentPage++
if (this.dataList.length === this.pageConfig.total) {
this.noMore = true
return
}
}
})
},
handleTabChange(data) {
this.dataList = []
this.noMore = false
this.loading = false
this.pageConfig.currentPage = 1
this.pageConfig.pageSize = 10
this.getUnderageModeList(data.tab.type)
} }
} }
},
onReachBottom() {
if (!this.loading && !this.noMore) {
this.getUnderageModeList(this.tabs[0].type)
}
},
onLoad(options) {
this.errorPage = true
this.dataList = []
const {
id
} = options
uni.setStorageSync('token', id)
if (uni.getStorageSync('token')) this.getUnderageTypeList()
if (uni.getStorageSync('Theme_Data')) {
this.ThemeData = JSON.parse(uni.getStorageSync('Theme_Data'))
}
},
methods: {
back() {
this.closeWeb()
},
closeWeb() {
const platform = uni.getSystemInfoSync().platform;
if (platform === 'ios') {
window.webkit.messageHandlers.nativeHandler.postMessage({
'action': 'closeWeb'
});
} else if (platform === 'android') {
window.Android.closeWeb();
}
},
async getUnderageTypeList() {
http.get('/api/Usermode/getUnderageTypeList', {
token: uni.getStorageSync('token') ?? ''
}).then(response => {
const {
data,
code
} = response
if (code) {
this.tabs = data.map(ele => {
return {
type: ele.id,
value: ele.type_name
}
})
}
this.errorPage = false
this.$nextTick(() => {
this.getUnderageModeList(this.tabs[0].type)
})
}).catch(error => {
this.tabs = []
this.errorPage = true
});
},
async getUnderageModeList(type) {
http.get('/api/Usermode/getUnderageModeList', {
token: uni.getStorageSync('token') ?? '',
type: type,
page: this.pageConfig.currentPage,
page_limit: this.pageConfig.pageSize
}).then(response => {
const {
code,
data
} = response
if (code) {
this.pageConfig.total = data.total
this.loading = false
const newData = data.data || []
if (newData.length === 0) {
this.noMore = true
return
}
this.dataList = [...this.dataList, ...newData]
this.pageConfig.currentPage++
if (this.dataList.length === this.pageConfig.total) {
this.noMore = true
return
}
}
})
},
handleTabChange(data) {
this.dataList = []
this.noMore = false
this.loading = false
this.pageConfig.currentPage = 1
this.pageConfig.pageSize = 10
this.getUnderageModeList(data.tab.type)
}
} }
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.view-page { .view-page {
// padding: 32rpx; // padding: 32rpx;
background: linear-gradient(180deg, #B3FAEB 2%, #FFFFFF 40%); background: linear-gradient(180deg, #B3FAEB 2%, #FFFFFF 40%);
background-size: 100% 100%; background-size: 100% 100%;
min-height: 100vh; min-height: 100vh;
.content-view { .content-view {
padding: 0 32rpx; padding: 0 32rpx;
} }
.new-box { .new-box {
margin-top: 32rpx; margin-top: 32rpx;
.new-box-image { .new-box-image {
width: 240rpx; width: 240rpx;
height: 144rpx; height: 144rpx;
border-radius: 12rpx;
img {
border-radius: 12rpx; border-radius: 12rpx;
img {
border-radius: 12rpx;
}
} }
} }
} }
}
</style> </style>

View File

@@ -1,5 +1,5 @@
<template> <template>
<view class="view-page"> <view class="view-page" :style="{backgroundImage : `url('${ThemeData?.app_bg ?? 'https://vespa.qxmier.com/image/bg.png'}')`}">
<!-- <headerHeight /> --> <!-- <headerHeight /> -->
<navBar :style="{marginTop: `${statusBarHeight}${uni.getSystemInfoSync().platform === 'ios' ? 'px': 'dp'}`}" :navTitle="`关于我们`" :emitBack="true" @backEvent="back"> <navBar :style="{marginTop: `${statusBarHeight}${uni.getSystemInfoSync().platform === 'ios' ? 'px': 'dp'}`}" :navTitle="`关于我们`" :emitBack="true" @backEvent="back">
</navBar> </navBar>
@@ -20,7 +20,8 @@
}, },
data() { data() {
return { return {
statusBarHeight:0 statusBarHeight:0,
ThemeData:null
} }
}, },
onLoad(options) { onLoad(options) {
@@ -29,6 +30,9 @@
} = options } = options
this.currentIndex = type !== undefined ? +type : 0 this.currentIndex = type !== undefined ? +type : 0
this.statusBarHeight = h this.statusBarHeight = h
if(uni.getStorageSync('Theme_Data')) {
this.ThemeData = JSON.parse(uni.getStorageSync('Theme_Data'))
}
}, },
methods: { methods: {
back() { back() {
@@ -52,7 +56,7 @@
.view-page { .view-page {
min-height: 100vh; min-height: 100vh;
font-family: Source Han Sans CN, Source Han Sans CN; font-family: Source Han Sans CN, Source Han Sans CN;
background-image: url('@/static/image/help/bg.png'); // background-image: url('@/static/image/help/bg.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
img{ img{

View File

@@ -1,5 +1,5 @@
<template> <template>
<view class="view-page"> <view class="view-page" :style="{backgroundImage : `url('${ThemeData?.app_bg ?? 'https://vespa.qxmier.com/image/bg.png'}')`}">
<navBar :navTitle="`规则说明`" :style="{'margin-top' : `${statusBarHeight || 0}px`}"> <navBar :navTitle="`规则说明`" :style="{'margin-top' : `${statusBarHeight || 0}px`}">
</navBar> </navBar>
<view class="dec-view" v-if="flagIndex !== null"> <view class="dec-view" v-if="flagIndex !== null">
@@ -18,7 +18,8 @@
data() { data() {
return { return {
statusBarHeight:0, statusBarHeight:0,
flagIndex:null flagIndex:null,
ThemeData:null
} }
}, },
onLoad(options) { onLoad(options) {
@@ -27,6 +28,9 @@
} = options } = options
this.flagIndex = +flag this.flagIndex = +flag
this.statusBarHeight = h this.statusBarHeight = h
if(uni.getStorageSync('Theme_Data')) {
this.ThemeData = JSON.parse(uni.getStorageSync('Theme_Data'))
}
} }
} }
</script> </script>
@@ -35,7 +39,7 @@
.view-page { .view-page {
min-height: 100vh; min-height: 100vh;
font-family: Source Han Sans CN, Source Han Sans CN; font-family: Source Han Sans CN, Source Han Sans CN;
background-image: url('@/static/image/help/bg.png'); // background-image: url('@/static/image/help/bg.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
img{ img{

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,6 @@
<template> <template>
<view class="view-page"> <view class="view-page"
:style="{ backgroundImage: `url('${ThemeData?.app_bg ?? 'https://vespa.qxmier.com/image/bg.png'}')` }">
<headerHeight /> <headerHeight />
<navBar :navTitle="`退出审核`"> <navBar :navTitle="`退出审核`">
</navBar> </navBar>
@@ -58,6 +59,7 @@
guild_id: 0, guild_id: 0,
token: uni.getStorageSync('token') ?? '' token: uni.getStorageSync('token') ?? ''
}, },
ThemeData:null
} }
}, },
onLoad(options) { onLoad(options) {
@@ -66,6 +68,9 @@
} = options } = options
this.searchParams.guild_id = id this.searchParams.guild_id = id
if (id) this.getList() if (id) this.getList()
if (uni.getStorageSync('Theme_Data')) {
this.ThemeData = JSON.parse(uni.getStorageSync('Theme_Data'))
}
}, },
methods: { methods: {
async RefuseOrAgreeData(ele,type){ async RefuseOrAgreeData(ele,type){
@@ -106,7 +111,6 @@
.view-page { .view-page {
min-height: 100vh; min-height: 100vh;
font-family: Source Han Sans CN, Source Han Sans CN; font-family: Source Han Sans CN, Source Han Sans CN;
background-image: url('@/static/image/help/bg.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;

View File

@@ -1,5 +1,6 @@
<template> <template>
<view class="view-page"> <view class="view-page"
:style="{ backgroundImage: `url('${ThemeData?.app_bg ?? 'https://vespa.qxmier.com/image/bg.png'}')` }">
<headerHeight /> <headerHeight />
<navBar :navTitle="`历史记录`"> <navBar :navTitle="`历史记录`">
</navBar> </navBar>
@@ -10,82 +11,86 @@
</template> </template>
<script> <script>
import headerHeight from '@/component/headerHeight.vue'; import headerHeight from '@/component/headerHeight.vue';
import http from '@/until/http.js'; import http from '@/until/http.js';
import navBar from '@/component/nav.vue'; import navBar from '@/component/nav.vue';
import tableView from '@/component/newTable.vue' import tableView from '@/component/newTable.vue'
export default { export default {
components: { components: {
headerHeight, headerHeight,
navBar, navBar,
tableView tableView
}, },
data() { data() {
return { return {
guildId: null, guildId: null,
dataList: [], dataList: [],
pageConfig:{ pageConfig: {
currentPage:1, currentPage: 1,
pageSize:10 pageSize: 10
}, },
searchParams: { searchParams: {
guild_id: 0, guild_id: 0,
token: uni.getStorageSync('token') ?? '' token: uni.getStorageSync('token') ?? ''
}, },
} ThemeData: null
}, }
onLoad(options) { },
onLoad(options) {
const {
id
} = options
this.searchParams.guild_id = id
if (id) this.getList()
if (uni.getStorageSync('Theme_Data')) {
this.ThemeData = JSON.parse(uni.getStorageSync('Theme_Data'))
}
},
methods: {
async getList() {
const { const {
id code,
} = options data
this.searchParams.guild_id = id } = await http.get('/api/Guild/guild_subsidy_list', {
if (id) this.getList() ...this.searchParams,
}, page: this.pageConfig.currentPage,
methods: { page_limit: this.pageConfig.pageSize,
async getList() { })
const { if (code) {
code, this.pageConfig.total = data.count
data this.loading = false
} = await http.get('/api/Guild/guild_subsidy_list', { const newData = data.list || []
...this.searchParams, if (newData.length === 0) {
page: this.pageConfig.currentPage, this.noMore = true
page_limit: this.pageConfig.pageSize, return
})
if (code) {
this.pageConfig.total = data.count
this.loading = false
const newData = data.list || []
if (newData.length === 0) {
this.noMore = true
return
}
if (this.dataList.length === this.pageConfig.total) {
this.noMore = true
return
}
this.dataList = [...this.dataList, ...newData]
this.pageConfig.currentPage++
} }
if (this.dataList.length === this.pageConfig.total) {
this.noMore = true
return
}
this.dataList = [...this.dataList, ...newData]
this.pageConfig.currentPage++
} }
} }
} }
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.view-page { .view-page {
min-height: 100vh; min-height: 100vh;
font-family: Source Han Sans CN, Source Han Sans CN; font-family: Source Han Sans CN, Source Han Sans CN;
background-image: url('@/static/image/help/bg.png'); // background-image: url('@/static/image/help/bg.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
.content { .content {
padding: 0 24rpx; padding: 0 24rpx;
width: calc(100vw - 48rpx); width: calc(100vw - 48rpx);
height: calc(100vh - 67px); height: calc(100vh - 67px);
background: #FFFFFF; background: #FFFFFF;
border-radius: 32rpx 32rpx 0rpx 0rpx; border-radius: 32rpx 32rpx 0rpx 0rpx;
}
} }
}
</style> </style>

View File

@@ -1,5 +1,5 @@
<template> <template>
<view class="view-page"> <view class="view-page" :style="{backgroundImage : `url('${ThemeData?.app_bg ?? 'https://vespa.qxmier.com/image/bg.png'}')`}">
<navBar :style="{marginTop: `${statusBarHeight}${uni.getSystemInfoSync().platform === 'ios' ? 'px': 'dp'}`}" <navBar :style="{marginTop: `${statusBarHeight}${uni.getSystemInfoSync().platform === 'ios' ? 'px': 'dp'}`}"
:navTitle="'公会中心'" :emitBack="true" @backEvent="back"> :navTitle="'公会中心'" :emitBack="true" @backEvent="back">
<template #rightView> <template #rightView>
@@ -90,7 +90,8 @@
isMerber: null, isMerber: null,
listData: [], listData: [],
UnionByUser: null, UnionByUser: null,
statusBarHeight: 0 statusBarHeight: 0,
ThemeData:null
} }
}, },
onLoad(options) { onLoad(options) {
@@ -105,6 +106,9 @@
} }
this.statusBarHeight = h this.statusBarHeight = h
uni.setStorageSync('BarHeight', h) uni.setStorageSync('BarHeight', h)
if(uni.getStorageSync('Theme_Data')) {
this.ThemeData = JSON.parse(uni.getStorageSync('Theme_Data'))
}
}, },
onReachBottom() { onReachBottom() {
if (!this.loading && !this.noMore) { if (!this.loading && !this.noMore) {
@@ -247,7 +251,7 @@
// min-height: 100vh; // min-height: 100vh;
min-height: 100vh; min-height: 100vh;
font-family: Source Han Sans CN, Source Han Sans CN; font-family: Source Han Sans CN, Source Han Sans CN;
background-image: url('@/static/image/help/bg.png'); // background-image: url('@/static/image/help/bg.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;

View File

@@ -1,5 +1,5 @@
<template> <template>
<view class="view-page"> <view class="view-page" :style="{backgroundImage : `url('${ThemeData?.app_bg ?? 'https://vespa.qxmier.com/image/bg.png'}')`}">
<!-- <headerHeight /> --> <!-- <headerHeight /> -->
<navBar :navTitle="'查看成员'" :style="{marginTop: `${statusBarHeight}${uni.getSystemInfoSync().platform === 'ios' ? 'px': 'dp'}`}"> <navBar :navTitle="'查看成员'" :style="{marginTop: `${statusBarHeight}${uni.getSystemInfoSync().platform === 'ios' ? 'px': 'dp'}`}">
</navBar> </navBar>
@@ -51,7 +51,8 @@
}, },
loading:false, loading:false,
noMore:true, noMore:true,
dataList: [] dataList: [],
ThemeData:null
} }
}, },
onLoad(options) { onLoad(options) {
@@ -62,6 +63,9 @@
this.guildId = guildId this.guildId = guildId
this.statusBarHeight = h || uni.getStorageSync('BarHeight') this.statusBarHeight = h || uni.getStorageSync('BarHeight')
if(this.guildId) this.getList() if(this.guildId) this.getList()
if (uni.getStorageSync('Theme_Data')) {
this.ThemeData = JSON.parse(uni.getStorageSync('Theme_Data'))
}
}, },
methods: { methods: {
jumpHomePage(data){ jumpHomePage(data){
@@ -130,7 +134,6 @@
return return
} }
} }
console.log(this.dataList)
}, },
} }
} }
@@ -141,7 +144,7 @@
// padding: 32rpx; // padding: 32rpx;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
background-image: url('@/static/image/help/bg.png'); // background-image: url('@/static/image/help/bg.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
min-height: 100vh; min-height: 100vh;

View File

@@ -1,5 +1,5 @@
<template> <template>
<view class="view-page"> <view class="view-page" :style="{backgroundImage : `url('${ThemeData?.app_bg ?? 'https://vespa.qxmier.com/image/bg.png'}')`}">
<headerHeight /> <headerHeight />
<navBar :navTitle="`${ leaderStatus ? '公会房间及流水' : '公会房间'}`"> <navBar :navTitle="`${ leaderStatus ? '公会房间及流水' : '公会房间'}`">
<template #rightView> <template #rightView>
@@ -85,7 +85,8 @@
}, },
leaderStatus: null, leaderStatus: null,
flowDetail: null, flowDetail: null,
flowList:[] flowList:[],
ThemeData:null
} }
}, },
onLoad(options) { onLoad(options) {
@@ -99,6 +100,9 @@
this.searchParams.end_time = this.formatDate(new Date()) this.searchParams.end_time = this.formatDate(new Date())
this.searchParams.guild_id = id this.searchParams.guild_id = id
if (id) this.getFlow() if (id) this.getFlow()
if (uni.getStorageSync('Theme_Data')) {
this.ThemeData = JSON.parse(uni.getStorageSync('Theme_Data'))
}
}, },
onReachBottom() { onReachBottom() {
if (!this.loading && !this.noMore) { if (!this.loading && !this.noMore) {

View File

@@ -1,5 +1,5 @@
<template> <template>
<view class="view-page"> <view class="view-page" :style="{backgroundImage : `url('${ThemeData?.app_bg ?? 'https://vespa.qxmier.com/image/bg.png'}')`}">
<!-- <headerHeight /> --> <!-- <headerHeight /> -->
<navBar :style="{marginTop: `${statusBarHeight}${uni.getSystemInfoSync().platform === 'ios' ? 'px': 'dp'}`}" :navTitle="'群聊设置'" :emitBack="true" @backEvent="back"> <navBar :style="{marginTop: `${statusBarHeight}${uni.getSystemInfoSync().platform === 'ios' ? 'px': 'dp'}`}" :navTitle="'群聊设置'" :emitBack="true" @backEvent="back">
</navBar> </navBar>
@@ -91,6 +91,7 @@
}, },
statusBarHeight:0, statusBarHeight:0,
placeholderStyle: "color:321;font-size:14px", placeholderStyle: "color:321;font-size:14px",
ThemeData:null
} }
}, },
onLoad(options) { onLoad(options) {
@@ -104,6 +105,9 @@
this.getInfo() this.getInfo()
} }
this.statusBarHeight = h || uni.getStorageSync('BarHeight') this.statusBarHeight = h || uni.getStorageSync('BarHeight')
if(uni.getStorageSync('Theme_Data')) {
this.ThemeData = JSON.parse(uni.getStorageSync('Theme_Data'))
}
}, },
methods:{ methods:{
// 关闭当前公会中心页面 // 关闭当前公会中心页面
@@ -203,7 +207,7 @@
// padding: 32rpx; // padding: 32rpx;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
background-image: url('@/static/image/help/bg.png'); // background-image: url('@/static/image/help/bg.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
min-height: 100vh; min-height: 100vh;

View File

@@ -1,5 +1,5 @@
<template> <template>
<view class="view-page"> <view class="view-page" :style="{backgroundImage : `url('${ThemeData?.app_bg ?? 'https://vespa.qxmier.com/image/bg.png'}')`}">
<headerHeight /> <headerHeight />
<navBar :navTitle="`公会补贴`"> <navBar :navTitle="`公会补贴`">
<template #rightView> <template #rightView>
@@ -56,6 +56,7 @@
guild_id: 0, guild_id: 0,
token: uni.getStorageSync('token') ?? '', token: uni.getStorageSync('token') ?? '',
}, },
ThemeData:null
} }
}, },
onLoad(options) { onLoad(options) {
@@ -66,6 +67,9 @@
this.leaderStatus = +leader this.leaderStatus = +leader
this.searchParams.guild_id = id this.searchParams.guild_id = id
if (id) this.getSubsidy() if (id) this.getSubsidy()
if(uni.getStorageSync('Theme_Data')) {
this.ThemeData = JSON.parse(uni.getStorageSync('Theme_Data'))
}
}, },
methods: { methods: {
// //
@@ -89,7 +93,7 @@
.view-page { .view-page {
min-height: 100vh; min-height: 100vh;
font-family: Source Han Sans CN, Source Han Sans CN; font-family: Source Han Sans CN, Source Han Sans CN;
background-image: url('@/static/image/help/bg.png'); // background-image: url('@/static/image/help/bg.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
.content-view{ .content-view{

View File

@@ -1,10 +1,10 @@
<template> <template>
<view class="view-page"> <view class="view-page"
:style="{ backgroundImage: `url('${ThemeData?.app_bg ?? 'https://vespa.qxmier.com/image/bg.png'}')` }">
<headerHeight /> <headerHeight />
<navBar :navTitle="`公会成员`"> <navBar :navTitle="`公会成员`">
<template #rightView> <template #rightView>
<view class="icon-right flex-line" <view class="icon-right flex-line" v-if="leaderStatus" @click="application">
v-if="leaderStatus" @click="application">
<view class="font-24" style="color:#333;white-space: nowrap"> <view class="font-24" style="color:#333;white-space: nowrap">
退出审核 退出审核
</view> </view>
@@ -14,8 +14,7 @@
<view class="content_view"> <view class="content_view">
<view v-if="leaderStatus"> <view v-if="leaderStatus">
<uni-datetime-picker style="background-color: #f8f8f8;" start-placeholder="开始时间" :end="currentDate" <uni-datetime-picker style="background-color: #f8f8f8;" start-placeholder="开始时间" :end="currentDate"
end-placeholder="结束时间" v-model="dateSearch" type="range" rangeSeparator="至" end-placeholder="结束时间" v-model="dateSearch" type="range" rangeSeparator="至" @change="changeDate" />
@change="changeDate" />
</view> </view>
<view class="header-view" v-if="flowDetail && leaderStatus"> <view class="header-view" v-if="flowDetail && leaderStatus">
<view class="flex-line flow-view w-fill flex-spaceB"> <view class="flex-line flow-view w-fill flex-spaceB">
@@ -24,7 +23,7 @@
</view> </view>
</view> </view>
<view class="flowNumber"> <view class="flowNumber">
{{flowDetail.total_consumption}} {{ flowDetail.total_consumption }}
</view> </view>
</view> </view>
<view class="room-list flex-line mt-24" v-if="dataList && dataList.length"> <view class="room-list flex-line mt-24" v-if="dataList && dataList.length">
@@ -42,10 +41,10 @@
</view> </view>
<view class="ml-20"> <view class="ml-20">
<view class="color-3 font-32 font-w500"> <view class="color-3 font-32 font-w500">
{{data.nickname}} {{ data.nickname }}
</view> </view>
<view class="color-6 font-24" style="margin-top: 12rpx;"> <view class="color-6 font-24" style="margin-top: 12rpx;">
ID:{{data.user_code}} ID:{{ data.user_code }}
</view> </view>
</view> </view>
</view> </view>
@@ -54,7 +53,7 @@
<img src="@/static/image/union/flowIcon.png" alt="" /> <img src="@/static/image/union/flowIcon.png" alt="" />
</view> </view>
<view class="ml-20"> <view class="ml-20">
{{data.total_consumption || 0}} {{ data.total_consumption || 0 }}
</view> </view>
</view> </view>
</view> </view>
@@ -78,7 +77,7 @@
温馨提示 温馨提示
</view> </view>
<view class="color-3 font-24 messageContent"> <view class="color-3 font-24 messageContent">
{{messageContent}} {{ messageContent }}
</view> </view>
<view class="popup_button flex-line"> <view class="popup_button flex-line">
<view class="close_button flex-line" @click="closePopup"> <view class="close_button flex-line" @click="closePopup">
@@ -95,300 +94,305 @@
</template> </template>
<script> <script>
import headerHeight from '@/component/headerHeight.vue'; import headerHeight from '@/component/headerHeight.vue';
import navBar from '@/component/nav.vue'; import navBar from '@/component/nav.vue';
import http from '@/until/http.js'; import http from '@/until/http.js';
import logo from '@/static/image/logo.png' import logo from '@/static/image/logo.png'
export default { export default {
components: { components: {
headerHeight, headerHeight,
navBar navBar
}, },
data() { data() {
return { return {
dateSearch: [new Date(),new Date()], dateSearch: [new Date(), new Date()],
currentDate: +new Date(), currentDate: +new Date(),
logo, logo,
loading: false, loading: false,
noMore: false, noMore: false,
detailData: null, detailData: null,
pageConfig: { pageConfig: {
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
total: 0 total: 0
}, },
searchParams: { searchParams: {
guild_id: 0, guild_id: 0,
start_time: '', start_time: '',
end_time: '', end_time: '',
token: uni.getStorageSync('token') ?? '', token: uni.getStorageSync('token') ?? '',
page: 1, page: 1,
page_size: 20 page_size: 20
}, },
leaderStatus: null, leaderStatus: null,
flowDetail: null, flowDetail: null,
msgType: '', msgType: '',
messageText: '', messageText: '',
messageContent: '', messageContent: '',
dataList: [], dataList: [],
currentUserData: null currentUserData: null,
} ThemeData: null
}, }
onLoad(options) { },
const { onLoad(options) {
id, const {
leader id,
} = options leader
} = options
this.leaderStatus = +leader this.leaderStatus = +leader
this.searchParams.guild_id = id this.searchParams.guild_id = id
this.searchParams.start_time = this.formatDate(new Date()) this.searchParams.start_time = this.formatDate(new Date())
this.searchParams.end_time = this.formatDate(new Date()) this.searchParams.end_time = this.formatDate(new Date())
if (id) this.getList() if (id) this.getList()
if (uni.getStorageSync('Theme_Data')) {
this.ThemeData = JSON.parse(uni.getStorageSync('Theme_Data'))
}
},
onReachBottom() {
if (!this.loading && !this.noMore) {
this.getList()
}
},
methods: {
application() {
uni.navigateTo({
url: `/pages/union/exitApplication?id=${this.searchParams.guild_id}`
});
}, },
onReachBottom() { formatDate(timestamp) {
if (!this.loading && !this.noMore) { const date = new Date(timestamp);
this.getList() const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始需+1
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
},
// 获取成员列表
async getList() {
const {
code,
data
} = await http.get('/api/Guild/get_guild_member_list', {
...this.searchParams,
page: this.pageConfig.currentPage,
page_limit: this.pageConfig.pageSize,
})
if (code) {
this.flowDetail = data
this.pageConfig.total = data.count
this.loading = false
const newData = data.list || []
if (newData.length === 0) {
this.noMore = true
return
}
this.dataList = [...this.dataList, ...newData]
this.pageConfig.currentPage++
if (this.dataList.length === this.pageConfig.total) {
this.noMore = true
return
}
} }
}, },
methods: { // 日期范围
application(){ changeDate(date) {
uni.navigateTo({ this.searchParams.start_time = date.length ? date[0] : ''
url: `/pages/union/exitApplication?id=${this.searchParams.guild_id}` this.searchParams.end_time = date.length ? date[1] : ''
this.getList()
},
// 踢出公会
kickGuild(userData) {
this.currentUserData = userData
this.messageContent = `亲爱的会长,您当前操作将踢出该成员,是否继续?`
this.$refs.popup.open('center')
},
jumpHomePage(data) {
const platform = uni.getSystemInfoSync().platform;
if (platform === 'ios') {
window.webkit.messageHandlers.nativeHandler.postMessage({
'action': 'jumpWebPage',
'data': {
userId: data.user_id
}
}); });
}, } else if (platform === 'android') {
formatDate(timestamp) { window.Android.jumpWebPage(data.user_id);
const date = new Date(timestamp);
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始需+1
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
},
// 获取成员列表
async getList() {
const {
code,
data
} = await http.get('/api/Guild/get_guild_member_list', {
...this.searchParams,
page: this.pageConfig.currentPage,
page_limit: this.pageConfig.pageSize,
})
if (code) {
this.flowDetail = data
this.pageConfig.total = data.count
this.loading = false
const newData = data.list || []
if (newData.length === 0) {
this.noMore = true
return
}
this.dataList = [...this.dataList, ...newData]
this.pageConfig.currentPage++
if (this.dataList.length === this.pageConfig.total) {
this.noMore = true
return
}
}
},
// 日期范围
changeDate(date) {
this.searchParams.start_time = date.length ? date[0] : ''
this.searchParams.end_time = date.length ? date[1] : ''
this.getList()
},
// 踢出公会
kickGuild(userData) {
this.currentUserData = userData
this.messageContent = `亲爱的会长,您当前操作将踢出该成员,是否继续?`
this.$refs.popup.open('center')
},
jumpHomePage(data){
const platform = uni.getSystemInfoSync().platform;
if (platform === 'ios') {
window.webkit.messageHandlers.nativeHandler.postMessage({
'action': 'jumpWebPage',
'data': {
userId: data.user_id
}
});
} else if (platform === 'android') {
window.Android.jumpWebPage(data.user_id);
}
},
confirmPopup() {
this.kickUser()
},
closePopup() {
this.currentUserData = null
this.messageContent = ""
this.$refs.popup.close()
},
async kickUser() {
http.post('/api/Guild/kick_guild_member', {
guild_id: this.currentUserData.guild_id,
user_id: this.currentUserData.user_id,
token: uni.getStorageSync('token') ?? ''
}).then(response => {
const {
data,
code,
msg
} = response
if (code) {
this.msgType = 'success'
this.messageText = `操作成功`
this.$refs.message.open()
this.dataList = []
this.pageConfig.currentPage = 1
this.getList()
} else {
this.messageText = msg
this.msgType = 'error'
this.$refs.message.open()
}
this.currentUserData = null
this.closePopup()
})
} }
},
confirmPopup() {
this.kickUser()
},
closePopup() {
this.currentUserData = null
this.messageContent = ""
this.$refs.popup.close()
},
async kickUser() {
http.post('/api/Guild/kick_guild_member', {
guild_id: this.currentUserData.guild_id,
user_id: this.currentUserData.user_id,
token: uni.getStorageSync('token') ?? ''
}).then(response => {
const {
data,
code,
msg
} = response
if (code) {
this.msgType = 'success'
this.messageText = `操作成功`
this.$refs.message.open()
this.dataList = []
this.pageConfig.currentPage = 1
this.getList()
} else {
this.messageText = msg
this.msgType = 'error'
this.$refs.message.open()
}
this.currentUserData = null
this.closePopup()
})
} }
} }
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.view-page { .view-page {
// padding: 24rpx 32rpx; // padding: 24rpx 32rpx;
min-height: 100vh; min-height: 100vh;
font-family: Source Han Sans CN, Source Han Sans CN; font-family: Source Han Sans CN, Source Han Sans CN;
background-image: url('@/static/image/help/bg.png'); // background-image: url('@/static/image/help/bg.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
.content_view { .content_view {
padding: 0 24rpx; padding: 0 24rpx;
}
.popup_view {
width: 550rpx;
// height: 40vh;
background-color: #fff;
border-radius: 32rpx;
padding: 32rpx;
.popup_title {
text-align: center;
} }
.popup_view { .messageContent {
width: 550rpx; margin: 24rpx 0;
// height: 40vh;
background-color: #fff;
border-radius: 32rpx;
padding: 32rpx;
.popup_title {
text-align: center;
}
.messageContent {
margin: 24rpx 0;
}
.popup_button {
margin-top: 24rpx;
width: 100%;
justify-content: space-around;
.close_button,
.confirm-button {
width: 200rpx;
height: 84rpx;
background: #F3F3F3;
border-radius: 106rpx;
color: #999999;
justify-content: center;
}
.confirm-button {
background: #0DFFB9;
color: #333;
}
}
} }
.header-view { .popup_button {
padding: 24rpx;
margin-top: 24rpx; margin-top: 24rpx;
background-image: url('/static/image/union/flowbg.png');
background-repeat: no-repeat;
background-size: 100% 100%;
height: 152rpx;
.flow-view {
font-weight: 400;
font-size: 24rpx;
}
.flowNumber {
font-weight: 500;
font-size: 40rpx;
color: #004D3C;
margin-top: 24rpx;
}
}
.room-list {
flex-wrap: wrap;
width: 100%; width: 100%;
justify-content: space-around;
.operate_button { .close_button,
border-top: 1rpx solid #E2E2E2; .confirm-button {
margin-top: 24rpx; width: 200rpx;
padding-top: 24rpx; height: 84rpx;
background: #F3F3F3;
.button { border-radius: 106rpx;
padding: 12rpx 24rpx; color: #999999;
background-color: #333; justify-content: center;
display: inline-flex;
border-radius: 32rpx;
}
} }
.room-line { .confirm-button {
width: 100%; background: #0DFFB9;
// background-color: #004D3C; color: #333;
margin-bottom: 24rpx;
padding: 24rpx;
border-radius: 10rpx;
background-color: #fff;
.flowIcon {
width: 48rpx;
height: 48rpx;
}
.head-portrait {
width: 100rpx;
height: 100rpx;
border-radius: 50%;
img {
border-radius: 50%;
}
}
.head-portrait-view {
position: relative;
.tip {
position: absolute;
bottom: 0;
left: 5rpx;
right: 0;
width: 96rpx;
height: 26rpx;
border-radius: 0;
img {
width: 100%;
height: 100%;
}
}
}
} }
} }
} }
.header-view {
padding: 24rpx;
margin-top: 24rpx;
background-image: url('/static/image/union/flowbg.png');
background-repeat: no-repeat;
background-size: 100% 100%;
height: 152rpx;
.flow-view {
font-weight: 400;
font-size: 24rpx;
}
.flowNumber {
font-weight: 500;
font-size: 40rpx;
color: #004D3C;
margin-top: 24rpx;
}
}
.room-list {
flex-wrap: wrap;
width: 100%;
.operate_button {
border-top: 1rpx solid #E2E2E2;
margin-top: 24rpx;
padding-top: 24rpx;
.button {
padding: 12rpx 24rpx;
background-color: #333;
display: inline-flex;
border-radius: 32rpx;
}
}
.room-line {
width: 100%;
// background-color: #004D3C;
margin-bottom: 24rpx;
padding: 24rpx;
border-radius: 10rpx;
background-color: #fff;
.flowIcon {
width: 48rpx;
height: 48rpx;
}
.head-portrait {
width: 100rpx;
height: 100rpx;
border-radius: 50%;
img {
border-radius: 50%;
}
}
.head-portrait-view {
position: relative;
.tip {
position: absolute;
bottom: 0;
left: 5rpx;
right: 0;
width: 96rpx;
height: 26rpx;
border-radius: 0;
img {
width: 100%;
height: 100%;
}
}
}
}
}
}
</style> </style>

View File

@@ -0,0 +1,15 @@
{
"hash": "96b05207",
"configHash": "39eff31f",
"lockfileHash": "49722671",
"browserHash": "70bba2b6",
"optimized": {
"axios": {
"src": "../../../../../node_modules/axios/index.js",
"file": "axios.js",
"fileHash": "193883d4",
"needsInterop": false
}
},
"chunks": {}
}

2534
unpackage/dist/cache/.vite/deps/axios.js vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,3 @@
{
"type": "module"
}