Compare commits

...

2 Commits

Author SHA1 Message Date
yziiy
125ab7ab9d 更新 2025-08-13 10:39:47 +08:00
yziiy
da65fde285 更新 2025-08-13 09:34:51 +08:00
23 changed files with 3685 additions and 1046 deletions

1
.gitignore vendored Normal file
View File

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

72
App.vue
View File

@@ -1,38 +1,54 @@
<script>
export default {
onLaunch: function() {
// console.warn('当前组件仅支持 uni_modules 目录结构 ,请升级 HBuilderX 到 3.1.0 版本以上!')
console.log('App Launch')
import http from '@/until/http.js';
export default {
onLaunch: function () {
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>
<style lang="scss">
@import '@/static/public.css';
/*每个页面公共css */
@import '@/uni_modules/uni-scss/index.scss';
/* #ifndef APP-NVUE */
@import '@/static/customicons.css';
@import '@/static/public.css';
/*每个页面公共css */
@import '@/uni_modules/uni-scss/index.scss';
/* #ifndef APP-NVUE */
@import '@/static/customicons.css';
body {
background-color: transparent !important;
}
body {
background-color: transparent !important;
}
// 设置整个项目的背景色
page {
background-color: transparent !important;
font-family: Source Han Sans CN, Source Han Sans CN;
}
// 设置整个项目的背景色
page {
background-color: transparent !important;
font-family: Source Han Sans CN, Source Han Sans CN;
}
img {
width: 100%;
height: 100%;
object-fit: cover;
}
img {
width: 100%;
height: 100%;
object-fit: cover;
}
</style>

View File

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

2
package-lock.json generated
View File

@@ -1,5 +1,5 @@
{
"name": "yusheng-H5",
"name": "yusheng-h5",
"lockfileVersion": 3,
"requires": true,
"packages": {

View File

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

View File

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

View File

@@ -54,15 +54,6 @@
} = options
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: {
getDetail(id) {
http.get('/api/Help/help_detail', {

View File

@@ -1,5 +1,5 @@
<template>
<view class="view-page">
<view class="view-page" :style="backgroundStyle">
<headerHeight />
<navBar :navTitle="'青少年模式'" :emitBack="true" @backEvent="back">
</navBar>
@@ -9,13 +9,13 @@
</NavigationTabs>
</view>
<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="color-3 font-32 font-w500">
{{item.title}}
{{ item.title }}
</view>
<view class="color-6 mt-24 font-28 font-w400 multi-line">
{{item.introduced}}
{{ item.introduced }}
</view>
</view>
<view class="new-box-image">
@@ -30,148 +30,165 @@
</template>
<script>
import http from '@/until/http.js';
import headerHeight from '@/component/headerHeight.vue';
import navBar from '@/component/nav.vue';
import NavigationTabs from '@/component/tab.vue';
export default {
components: {
headerHeight,
navBar,
NavigationTabs
},
data() {
return {
errorPage: true,
currentIndex: 0,
pageConfig: {
pageSize: 10,
currentPage: 1,
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()
import http from '@/until/http.js';
import headerHeight from '@/component/headerHeight.vue';
import navBar from '@/component/nav.vue';
import NavigationTabs from '@/component/tab.vue';
export default {
components: {
headerHeight,
navBar,
NavigationTabs
},
data() {
return {
errorPage: true,
currentIndex: 0,
pageConfig: {
pageSize: 10,
currentPage: 1,
total: 0
},
closeWeb() {
const platform = uni.getSystemInfoSync().platform;
if (platform === 'ios') {
window.webkit.messageHandlers.nativeHandler.postMessage({
'action': 'closeWeb'
});
} else if (platform === 'android') {
window.Android.closeWeb();
loading: false,
noMore: false,
tabs: [],
dataList: [],
ThemeData: null
}
},
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>
<style lang="scss" scoped>
.view-page {
// padding: 32rpx;
background: linear-gradient(180deg, #B3FAEB 2%, #FFFFFF 40%);
background-size: 100% 100%;
min-height: 100vh;
.view-page {
// padding: 32rpx;
background: linear-gradient(180deg, #B3FAEB 2%, #FFFFFF 40%);
background-size: 100% 100%;
min-height: 100vh;
.content-view {
padding: 0 32rpx;
}
.content-view {
padding: 0 32rpx;
}
.new-box {
margin-top: 32rpx;
.new-box {
margin-top: 32rpx;
.new-box-image {
width: 240rpx;
height: 144rpx;
.new-box-image {
width: 240rpx;
height: 144rpx;
border-radius: 12rpx;
img {
border-radius: 12rpx;
img {
border-radius: 12rpx;
}
}
}
}
}
</style>

View File

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

View File

@@ -1,5 +1,5 @@
<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>
<view class="dec-view" v-if="flagIndex !== null">
@@ -18,7 +18,8 @@
data() {
return {
statusBarHeight:0,
flagIndex:null
flagIndex:null,
ThemeData:null
}
},
onLoad(options) {
@@ -27,6 +28,9 @@
} = options
this.flagIndex = +flag
this.statusBarHeight = h
if(uni.getStorageSync('Theme_Data')) {
this.ThemeData = JSON.parse(uni.getStorageSync('Theme_Data'))
}
}
}
</script>
@@ -35,7 +39,7 @@
.view-page {
min-height: 100vh;
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-size: 100% 100%;
img{

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
<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'}`}"
:navTitle="'公会中心'" :emitBack="true" @backEvent="back">
<template #rightView>
@@ -90,7 +90,8 @@
isMerber: null,
listData: [],
UnionByUser: null,
statusBarHeight: 0
statusBarHeight: 0,
ThemeData:null
}
},
onLoad(options) {
@@ -105,6 +106,9 @@
}
this.statusBarHeight = h
uni.setStorageSync('BarHeight', h)
if(uni.getStorageSync('Theme_Data')) {
this.ThemeData = JSON.parse(uni.getStorageSync('Theme_Data'))
}
},
onReachBottom() {
if (!this.loading && !this.noMore) {
@@ -247,7 +251,7 @@
// min-height: 100vh;
min-height: 100vh;
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-size: 100% 100%;

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,10 +1,10 @@
<template>
<view class="view-page">
<view class="view-page"
:style="{ backgroundImage: `url('${ThemeData?.app_bg ?? 'https://vespa.qxmier.com/image/bg.png'}')` }">
<headerHeight />
<navBar :navTitle="`公会成员`">
<template #rightView>
<view class="icon-right flex-line"
v-if="leaderStatus" @click="application">
<view class="icon-right flex-line" v-if="leaderStatus" @click="application">
<view class="font-24" style="color:#333;white-space: nowrap">
退出审核
</view>
@@ -14,8 +14,7 @@
<view class="content_view">
<view v-if="leaderStatus">
<uni-datetime-picker style="background-color: #f8f8f8;" start-placeholder="开始时间" :end="currentDate"
end-placeholder="结束时间" v-model="dateSearch" type="range" rangeSeparator="至"
@change="changeDate" />
end-placeholder="结束时间" v-model="dateSearch" type="range" rangeSeparator="至" @change="changeDate" />
</view>
<view class="header-view" v-if="flowDetail && leaderStatus">
<view class="flex-line flow-view w-fill flex-spaceB">
@@ -24,7 +23,7 @@
</view>
</view>
<view class="flowNumber">
{{flowDetail.total_consumption}}
{{ flowDetail.total_consumption }}
</view>
</view>
<view class="room-list flex-line mt-24" v-if="dataList && dataList.length">
@@ -42,10 +41,10 @@
</view>
<view class="ml-20">
<view class="color-3 font-32 font-w500">
{{data.nickname}}
{{ data.nickname }}
</view>
<view class="color-6 font-24" style="margin-top: 12rpx;">
ID:{{data.user_code}}
ID:{{ data.user_code }}
</view>
</view>
</view>
@@ -54,7 +53,7 @@
<img src="@/static/image/union/flowIcon.png" alt="" />
</view>
<view class="ml-20">
{{data.total_consumption || 0}}
{{ data.total_consumption || 0 }}
</view>
</view>
</view>
@@ -78,7 +77,7 @@
温馨提示
</view>
<view class="color-3 font-24 messageContent">
{{messageContent}}
{{ messageContent }}
</view>
<view class="popup_button flex-line">
<view class="close_button flex-line" @click="closePopup">
@@ -95,300 +94,305 @@
</template>
<script>
import headerHeight from '@/component/headerHeight.vue';
import navBar from '@/component/nav.vue';
import http from '@/until/http.js';
import logo from '@/static/image/logo.png'
export default {
components: {
headerHeight,
navBar
},
data() {
return {
dateSearch: [new Date(),new Date()],
currentDate: +new Date(),
logo,
loading: false,
noMore: false,
detailData: null,
pageConfig: {
pageSize: 10,
currentPage: 1,
total: 0
},
searchParams: {
guild_id: 0,
start_time: '',
end_time: '',
token: uni.getStorageSync('token') ?? '',
page: 1,
page_size: 20
},
leaderStatus: null,
flowDetail: null,
msgType: '',
messageText: '',
messageContent: '',
dataList: [],
currentUserData: null
}
},
onLoad(options) {
const {
id,
leader
} = options
import headerHeight from '@/component/headerHeight.vue';
import navBar from '@/component/nav.vue';
import http from '@/until/http.js';
import logo from '@/static/image/logo.png'
export default {
components: {
headerHeight,
navBar
},
data() {
return {
dateSearch: [new Date(), new Date()],
currentDate: +new Date(),
logo,
loading: false,
noMore: false,
detailData: null,
pageConfig: {
pageSize: 10,
currentPage: 1,
total: 0
},
searchParams: {
guild_id: 0,
start_time: '',
end_time: '',
token: uni.getStorageSync('token') ?? '',
page: 1,
page_size: 20
},
leaderStatus: null,
flowDetail: null,
msgType: '',
messageText: '',
messageContent: '',
dataList: [],
currentUserData: null,
ThemeData: null
}
},
onLoad(options) {
const {
id,
leader
} = options
this.leaderStatus = +leader
this.searchParams.guild_id = id
this.searchParams.start_time = this.formatDate(new Date())
this.searchParams.end_time = this.formatDate(new Date())
if (id) this.getList()
this.leaderStatus = +leader
this.searchParams.guild_id = id
this.searchParams.start_time = this.formatDate(new Date())
this.searchParams.end_time = this.formatDate(new Date())
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() {
if (!this.loading && !this.noMore) {
this.getList()
formatDate(timestamp) {
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
}
}
},
methods: {
application(){
uni.navigateTo({
url: `/pages/union/exitApplication?id=${this.searchParams.guild_id}`
// 日期范围
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
}
});
},
formatDate(timestamp) {
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()
})
} 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()
})
}
}
}
</script>
<style scoped lang="scss">
.view-page {
// padding: 24rpx 32rpx;
min-height: 100vh;
font-family: Source Han Sans CN, Source Han Sans CN;
background-image: url('@/static/image/help/bg.png');
background-repeat: no-repeat;
background-size: 100% 100%;
.view-page {
// padding: 24rpx 32rpx;
min-height: 100vh;
font-family: Source Han Sans CN, Source Han Sans CN;
// background-image: url('@/static/image/help/bg.png');
background-repeat: no-repeat;
background-size: 100% 100%;
.content_view {
padding: 0 24rpx;
.content_view {
padding: 0 24rpx;
}
.popup_view {
width: 550rpx;
// height: 40vh;
background-color: #fff;
border-radius: 32rpx;
padding: 32rpx;
.popup_title {
text-align: center;
}
.popup_view {
width: 550rpx;
// 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;
}
}
.messageContent {
margin: 24rpx 0;
}
.header-view {
padding: 24rpx;
.popup_button {
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%;
justify-content: space-around;
.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;
}
.close_button,
.confirm-button {
width: 200rpx;
height: 84rpx;
background: #F3F3F3;
border-radius: 106rpx;
color: #999999;
justify-content: center;
}
.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%;
}
}
}
.confirm-button {
background: #0DFFB9;
color: #333;
}
}
}
.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>

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"
}