更新mdh5页面

This commit is contained in:
yziiy
2025-08-14 17:27:36 +08:00
parent f66cc10bf2
commit 555e5d1052
16 changed files with 215 additions and 214 deletions

View File

@@ -60,5 +60,8 @@ img {
--warn-color:#F69627;
--font-button-color:#fff;
--font-button-size:24rpx;
--font-button-size-p:28rpx;
/* tab图标 */
--tab-url:url('https://vespa.qxmier.com/image/tabline.png');
}
</style>

View File

@@ -14,10 +14,6 @@
@click="toggleSort"
>
<text>时间</text>
<!-- <view class="sort-icon">
<text v-if="sortOrder === 'asc'"></text>
<text v-else-if="sortOrder === 'desc'"></text>
</view> -->
</view>
<view class="header-item">累计流水</view>
<view class="header-item">获得补贴</view>
@@ -33,7 +29,7 @@
<view class="row-item">{{ item.total_transaction }}</view>
<view class="row-item">{{ item.subsidy_amount }}</view>
<view class="row-item">
<text :class="'status-' + item.status">{{ item.status_str }}</text>
<text :class="`status-${item.status_str === '已发放' ? 0 : 1}`">{{ item.status_str }}</text>
</view>
</view>
@@ -202,13 +198,12 @@ export default {
}
.status-0 {
color: #FF9900;
color: #999;
}
.status-1 {
color: #19be6b;
color: var(--subss-color);
}
.status-2 {
color: #FA3534;
}

View File

@@ -155,7 +155,7 @@
transform: translateX(-50%);
width: 80%;
height: 16rpx;
background-image: url('@/static/image/propMall/tabline.png');
background-image: var(--tab-url);
background-repeat: no-repeat;
background-size: 100% 100%;
border-radius: 1px;

View File

@@ -50,7 +50,9 @@
{{item.updatetime}}
</view>
<!-- -->
<img v-if="item.is_deal === 2" style="width: 100rpx;height: 100rpx;position: absolute; right: 5%;bottom: 2%;" :src="icon" alt="" />
<img v-if="item.is_deal === 2"
style="width: 100rpx;height: 100rpx;position: absolute; right: 5%;bottom: 2%;"
:src="icon" alt="" />
</view>
</view>
</view>
@@ -66,7 +68,7 @@
<view class="footer-button flex-line" @click="operate(index)" v-for="(item,index) in footerList"
:key="index">
<view class="icon">
<uni-icons :type="item.icon" :color="footerIndex === index ? '#0DFFB9' : '#333'"
<uni-icons :type="item.icon" :color="footerIndex === index ? $config.BASR_COLOR : '#333'"
size="20"></uni-icons>
</view>
<view :class="footerIndex === index ? 'active' : ''" class="title ml-6 color-3 font-28 font-w400">
@@ -93,7 +95,7 @@
data() {
return {
logo,
icon:Icon,
icon: Icon,
footerList: [{
title: '意见反馈',
icon: 'mail-open'
@@ -154,9 +156,9 @@
this.dataList = []
this.getUserFeedList()
}
setTimeout(()=> {
setTimeout(() => {
this.footerIndex = index
},500)
}, 500)
},
async getUserFeedList() {
await http.get('/api/Suggest/my_suggest', {
@@ -255,16 +257,23 @@
width: 100vw;
min-height: 100vh;
background-color: #F8F8F8;
.text-content-image{
.text-content-image {
width: calc(100% - 260rpx);
position: relative;
display: inline-flex;flex-wrap: wrap;align-content: space-between;
display: inline-flex;
flex-wrap: wrap;
align-content: space-between;
}
.text-content{
.text-content {
width: 100%;
position: relative;
display: inline-flex;flex-wrap: wrap;align-content: space-between;
display: inline-flex;
flex-wrap: wrap;
align-content: space-between;
}
.footer {
width: 100%;
height: 98rpx;
@@ -287,7 +296,7 @@
}
.active {
color: #0DFFB9
color: var(--primary-color);
}
}
@@ -321,16 +330,19 @@
border-radius: 22rpx;
margin-bottom: 24rpx;
width: calc(100% - 48rpx);
.box-top-line{
.box-top-line {
width: 100%;
display: inline-flex;
justify-content: flex-start;
position: relative;
}
.new-box-image {
width: 240rpx;
height: 184rpx;
border-radius: 12rpx;
img {
border-radius: 12rpx;
}
@@ -361,7 +373,9 @@
.confirm-button {
width: 600rpx;
height: 84rpx;
background: #0DFFB9;
background: var(--primary-color);
font-size: var(--font-button-size);
color: var(--font-button-color);
border-radius: 106rpx;
display: inline-flex;
justify-content: center;

View File

@@ -80,7 +80,6 @@
<style lang="scss" scoped>
.view-page {
// padding: 32rpx;
width: 100vw;
min-height: 100vh;
background-color: #F8F8F8;
@@ -119,13 +118,7 @@
justify-items: center;
justify-content: space-evenly;
align-items: center;
// margin-top: ;
.help-box {
// display: inline-flex;
// flex-wrap: wrap;
// justify-items: center;
// justify-content: center;
// align-items: center;
text-align: center;
.help-icon {
width: 100rpx;

View File

@@ -1,6 +1,7 @@
<template>
<view class="view-page">
<navBar :style="{marginTop: `${statusBarHeight}${uni.getSystemInfoSync().platform === 'ios' ? 'px': 'dp'}`}" :navTitle="'举报'" bgColor="#fff" :emitBack="true" @backEvent="back">
<navBar :style="{marginTop: `${statusBarHeight}${uni.getSystemInfoSync().platform === 'ios' ? 'px': 'dp'}`}"
:navTitle="'举报'" bgColor="#fff" :emitBack="true" @backEvent="back">
</navBar>
<view class="content">
<uni-forms ref="baseForm" :modelValue="formData" label-position="top">
@@ -32,9 +33,9 @@
</view>
</view>
</view>
<uni-popup ref="message" type="message">
<uni-popup-message :type="msgType" :message="messageText" :duration="2000"></uni-popup-message>
</uni-popup>
<uni-popup ref="message" type="message">
<uni-popup-message :type="msgType" :message="messageText" :duration="2000"></uni-popup-message>
</uni-popup>
</view>
</template>
@@ -56,19 +57,19 @@
formData: {
content: ""
},
optionsProps:{
optionsProps: {
},
array: [],
typeList:[],
statusBarHeight:0,
typeList: [],
statusBarHeight: 0,
typeIndex: 0,
messageText: "",
msgType: "success"
}
},
watch:{
typeIndex(val){
watch: {
typeIndex(val) {
console.log(val)
}
},
@@ -77,7 +78,8 @@
const {
id,
fromType,
fromId,h
fromId,
h
} = options
this.optionsProps = {
id,
@@ -104,30 +106,37 @@
});
} else if (platform === 'android') {
window.Android.closeWeb();
}
},
async getTypeList(){
async getTypeList() {
http.get('/api/Report/report_type_list', {
token: uni.getStorageSync('token') ?? ''
}).then(response => {
const{code,data} = response
const {
code,
data
} = response
this.typeList = data
this.array = data.map(ele => {return ele.type})
this.array = data.map(ele => {
return ele.type
})
this.typeIndex = 0
})
},
bindPickerChange({detail}) {
bindPickerChange({
detail
}) {
// console.log()
this.typeIndex = detail.value
},
comfirm(){
comfirm() {
const formData = {
type_id:this.typeList[this.typeIndex].id,
type_id: this.typeList[this.typeIndex].id,
report_type: this.optionsProps.fromType || 1,
content:this.formData.content || '',
image:this.formData.image,
from_id:this.optionsProps.fromId || ""
content: this.formData.content || '',
image: this.formData.image,
from_id: this.optionsProps.fromId || ""
}
http.post('/api/Report/report', {
...formData,
@@ -144,7 +153,7 @@
this.msgType = 'success'
this.formData = {
content: "",
image:"",
image: "",
}
this.$refs.uploadImage.clearImage()
} else {
@@ -154,9 +163,11 @@
}
})
},
successUpload(list){
const imageList = list.map(ele => {return ele.tempFilePath})
if(imageList && imageList.length) {
successUpload(list) {
const imageList = list.map(ele => {
return ele.tempFilePath
})
if (imageList && imageList.length) {
this.formData.image = imageList.join(',')
} else {
this.formData.image = ""
@@ -191,10 +202,13 @@
padding: 21rpx;
border-radius: 14rpx;
}
.comfirmButton{
.comfirmButton {
width: 600rpx;
height: 84rpx;
background: #0DFFB9;
background: var(--primary-color);
font-size: var(--font-button-size);
color: var(--font-button-color);
border-radius: 106rpx;
justify-content: center;
}

View File

@@ -1,5 +1,5 @@
<template>
<view class="view-page" :style="backgroundStyle">
<view class="view-page" :style="{backgroundImage : `url('${ThemeData?.app_bg ?? $config.PRIMARY_BGURL}')`}">
<headerHeight />
<navBar :navTitle="'青少年模式'" :emitBack="true" @backEvent="back">
</navBar>
@@ -56,19 +56,6 @@ export default {
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%)'
}
}
}
},
onReachBottom() {
if (!this.loading && !this.noMore) {
this.getUnderageModeList(this.tabs[0].type)

View File

@@ -28,11 +28,6 @@
</view>
</view>
</view>
<!-- <uni-grid :column="3" :showBorder="false" :square="false">
<uni-grid-item class="decorate-box" @click="openPopup(item)" >
</uni-grid-item>
</uni-grid> -->
<view class="color-9" v-else style="text-align: center;font-size: 24rpx;">
暂无数据
</view>
@@ -105,14 +100,13 @@
</view>
<view class="button-footer">
<view class="pay-button" @click="toPay">
确认支付
</view>
</view>
</view>
</uni-popup>
</view>
<view v-else>
<!-- 请求出错啦 -->
</view>
</view>
</template>
@@ -163,15 +157,6 @@
value: ele.name
}
})
// Object.keys(data).forEach(ele => {
// // console.log(ele)
// const item = {
// type: +ele,
// value: data[ele]
// }
// list.push(item)
// })
// console.log(list)
}
// this.tabs = list
this.errorPage = false
@@ -184,17 +169,10 @@
});
},
async getDecorate(type) {
// let listData = []
http.get('/api/Decorate/get_decorate_list', {
token: uni.getStorageSync('token') ?? '',
type
}).then(response => {
// console.log(response.data)
// for (let i = 1; i <= 40; i++) {
// listData.push(...response.data)
// }
// this.listData =listData
// console.log(listData)
const {
data,
code
@@ -376,7 +354,7 @@
width: 686rpx;
height: 200rpx;
border-radius: 14rpx 14rpx 14rpx 14rpx;
background-image: url('@/static/image/swiper.png');
background-image: url('@/static/image/swipers.png');
background-repeat: no-repeat;
background-size: 100% 100%;
margin-bottom: 32rpx;
@@ -443,11 +421,12 @@
}
.active-menubox {
border: 0;
background-image: url('@/static/image/menuBg.png');
background: linear-gradient( 180deg, #FBFBFF 0%, #F7EBFF 100%);
border: 2rpx solid;
border-radius: 12rpx;
background-repeat: no-repeat;
background-size: 100% 100%;
color: #0DFFB9;
color: var(--primary-color);
}
@@ -484,7 +463,7 @@
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #0DFFB9;
color: var(--primary-color);
}
}
@@ -506,9 +485,16 @@
width: 376rpx;
height: 84rpx;
background-image: url('@/static/image/propMall/pay.png');
// background-image: url('@/static/image/propMall/pay.png');
background-repeat: no-repeat;
background-size: 100% 100%;
background: var(--primary-color);
color: var(--font-button-color);
font-size: var(--font-button-size-p);
border-radius: 106rpx;
display: inline-flex;
align-items: center;
justify-content: center;
}
}
}

View File

@@ -468,8 +468,8 @@
}
.confirm-button {
background: #0DFFB9;
color: #333;
background: var(--primary-color);
color: var(--font-button-color);
}
}
@@ -663,8 +663,6 @@
height: 84rpx;
border-radius: 106rpx;
line-height: 84rpx;
// background-color: #0DFFB9;
// color: #333;
background: var(--primary-color);
color: var(--font-button-color);
text-align: center;

View File

@@ -1,148 +1,155 @@
<template>
<view class="view-page" :style="{backgroundImage : `url('${ThemeData?.app_bg ?? $config.PRIMARY_BGURL}')`}">
<view class="view-page" :style="{ backgroundImage: `url('${ThemeData?.app_bg ?? $config.PRIMARY_BGURL}')` }">
<headerHeight />
<navBar :navTitle="`退出审核`">
</navBar>
<view class="content">
<view class="box-line flex-line w-fill" v-for="(ele,index) in dataList" >
<view class="box-line flex-line w-fill" v-for="(ele, index) in dataList">
<view class="flex-line">
<img style="width: 100rpx;height: 100rpx;border-radius: 50%;" :src="ele.avatar || logo" alt="" />
<view class="ml-20">
<view class="color-3 font-32 font-w500">
{{ele.nickname}}
{{ ele.nickname }}
</view>
<view class="color-6 font-24">
ID: {{ele.user_code}}
ID: {{ ele.user_code }}
</view>
</view>
</view>
<view>
<view :class="ele.status === 1 ? 'success-text' : 'error-text'" v-if="ele.status">
{{ele.status === 1 ? '已同意' : '已拒绝'}}
{{ ele.status === 1 ? '已同意' : '已拒绝' }}
</view>
<view class="flex-line" v-else>
<view class="no-button" @click="RefuseOrAgreeData(ele,2)">
<view class="no-button" @click="RefuseOrAgreeData(ele, 2)">
拒绝
</view>
<view class="agree-button" @click="RefuseOrAgreeData(ele,1)">
<view class="agree-button" @click="RefuseOrAgreeData(ele, 1)">
同意
</view>
</view>
</view>
</view>
</view>
<uni-popup ref="message" type="message">
<uni-popup-message :type="msgType" :message="messageText" :duration="2000"></uni-popup-message>
</uni-popup>
<uni-popup ref="message" type="message">
<uni-popup-message :type="msgType" :message="messageText" :duration="2000"></uni-popup-message>
</uni-popup>
</view>
</template>
<script>
import headerHeight from '@/component/headerHeight.vue';
import http from '@/until/http.js';
import logo from '@/static/image/logo.png';
import navBar from '@/component/nav.vue';
export default {
components: {
headerHeight,
navBar
},
data() {
return {
logo,
guildId: null,
msgType:"",
messageText:"",
dataList: [],
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')) {
import headerHeight from '@/component/headerHeight.vue';
import http from '@/until/http.js';
import logo from '@/static/image/logo.png';
import navBar from '@/component/nav.vue';
export default {
components: {
headerHeight,
navBar
},
data() {
return {
logo,
guildId: null,
msgType: "",
messageText: "",
dataList: [],
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 RefuseOrAgreeData(ele, type) {
const {
code,
data,
msg
} = await http.post('/api/Guild/quit_apply_audit', {
token: uni.getStorageSync('token') ?? '',
apply_id: ele.id,
type
})
if (code === 1) {
this.msgType = 'success'
this.messageText = `操作成功`
this.$refs.message.open()
this.getList()
} else {
this.messageText = msg
this.msgType = 'error'
this.$refs.message.open()
}
},
methods: {
async RefuseOrAgreeData(ele,type){
const {
code,
data,
msg
} = await http.post('/api/Guild/quit_apply_audit', {
token:uni.getStorageSync('token') ?? '',
apply_id:ele.id,
type
})
if(code === 1) {
this.msgType = 'success'
this.messageText = `操作成功`
this.$refs.message.open()
this.getList()
} else {
this.messageText = msg
this.msgType = 'error'
this.$refs.message.open()
}
},
async getList() {
const {
code,
data
} = await http.get('/api/Guild/quit_apply_list', this.searchParams)
if (code) {
this.dataList = data.list
}
async getList() {
const {
code,
data
} = await http.get('/api/Guild/quit_apply_list', this.searchParams)
if (code) {
this.dataList = data.list
}
}
}
}
</script>
<style scoped lang="scss">
.view-page {
min-height: 100vh;
font-family: Source Han Sans CN, Source Han Sans CN;
background-repeat: no-repeat;
background-size: 100% 100%;
.view-page {
min-height: 100vh;
font-family: Source Han Sans CN, Source Han Sans CN;
background-repeat: no-repeat;
background-size: 100% 100%;
.content {
padding: 0 24rpx;
width: calc(100vw - 48rpx);
height: calc(100vh - 67px);
.box-line{
justify-content: space-between;
margin-top: 24rpx;
.success-text{
color: #0DFFB9;
}
.error-text{
color: #FF8ACC;
}
.agree-button,.no-button{
width: 140rpx;
height: 48rpx;
background: #0DFFB9;
border-radius: 68rpx;
display: inline-flex;
justify-content: center;
align-items: center;
font-size: 24rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
}
.no-button{
background-color: #333333;
color:#fff;
margin-right: 24rpx;
}
.content {
padding: 0 24rpx;
width: calc(100vw - 48rpx);
height: calc(100vh - 67px);
.box-line {
justify-content: space-between;
margin-top: 24rpx;
.success-text {
color: var(--primary-color);
}
.error-text {
color: #FC8871;
}
.agree-button,
.no-button {
width: 140rpx;
height: 48rpx;
background: var(--primary-color);
color: var(--font-button-color);
border-radius: 68rpx;
display: inline-flex;
justify-content: center;
align-items: center;
font-size: 24rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
}
.no-button {
background-color: #333333;
color: #fff;
margin-right: 24rpx;
}
}
}
}
</style>

View File

@@ -12,7 +12,7 @@
</view>
<view style="width: 84rpx;" v-if="item.role === 'Owner' || item.role === 'Admin'">
<img v-if=" item.role === 'Owner'" src="@/static/image/union/ghz.png" alt="" />
<img v-if="item.role === 'Admin'" src="@/static/image/union/gly.png" alt="" />
<img v-if="item.role === 'Admin'" :src="$config.PRIMARY_BLYURL" alt="" />
</view>
<view class="ml-20 flex-line">
<span>{{item.nickname}}</span>

View File

@@ -18,7 +18,6 @@
{{data.name}}
</view>
<view class="font-28" :style="{'color' : data.status_str === '已发放' ? '#999' : '#DEB52E'}">
{{data.status_str}}
</view>
</view>
<view class="line">

View File

@@ -301,8 +301,8 @@
}
.confirm-button {
background: #0DFFB9;
color: #333;
background: var(--primary-color);
color: var(--font-button-color);
}
}

BIN
static/image/swipers.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

View File

@@ -2,12 +2,17 @@
//api 请求路径 本地
// http://chat.qxmier.com
// http://vschat.qxmier.com
const BASE_URL="http://chat.qxmier.com";
const BASE_URL="http://vschat.qxmier.com";
const PRIMARY_BGURL = "https://vespa.qxmier.com/image/fy_bg.jpg";
// 工会管理员
const PRIMARY_BLYURL = "https://vespa.qxmier.com/image/fy_gly.png";
//IM app_key
const IM_APP_TOKEN="67962a777e2b13bc6a4bde3ccd389d1e";
const BASR_COLOR = '#6C49E4';
export default {
BASE_URL,
IM_APP_TOKEN,
PRIMARY_BGURL
PRIMARY_BGURL,
PRIMARY_BLYURL,
BASR_COLOR
}

View File

@@ -1,9 +1,9 @@
// src/utils/http.js
import axios from 'axios';
// const {BASE_URL} from "@/until/config.js";
// 创建axios实例
const http = axios.create({
baseURL: 'https://chat.qxmier.com', // API的基础路径
baseURL: "http://vschat.qxmier.com", // API的基础路径
timeout: 5000 // 请求超时时间
});