Compare commits

...

28 Commits

Author SHA1 Message Date
wx-jincw 5cfd9dbdd6 fix: 版本号更新
11 hours ago
wx-jincw 2608bb1245 Merge branch 'main' into property-only-app
2 weeks ago
wx-jincw fb9b718ad2 fix: 发版配置
3 weeks ago
wx-jincw f53b2baeee Merge branch 'main' into property-only-app
1 month ago
wx-jincw be946ea0a1 Merge branch 'main' into property-only-app
2 months ago
wx-jincw 927fb661bf fix: 版本号修改
2 months ago
wx-jincw 1ec1bb7223 fix: 合并冲突
2 months ago
wx-jincw b6dce6a46b fix: 页面优化
2 months ago
wx-jincw 16ec2d5e1f fix: json问题修复
2 months ago
wx-jincw b3f13b0e37 Merge branch 'main' into property-only-app
2 months ago
wx-jincw 0798071f52 fix: 关于我的页面调整
2 months ago
wx-jincw 529a69c773 fix: 领用显示优化
2 months ago
wx-jincw 82f5c0185c fix: 还原祈愿菜单
2 months ago
wx-jincw bbeb958cf2 fix: 物资领用
2 months ago
wx-jincw d90ff20875 feat: 物资领用
2 months ago
wx-jincw 86b51c1d23 feat: 每日菜单点赞点踩;bigint转字符串
2 months ago
zxf d8ec421905 feat:
2 months ago
wx-jincw ea76eb90e0 Merge branch 'main' into property-only-app
2 months ago
wx-jincw 504128821f Merge branch 'main' into property-only-app
2 months ago
wx-jincw 6c6f019e5b Merge branch 'main' into property-only-app
2 months ago
wx-jincw 0c83121224 Merge branch 'main' into property-only-app
2 months ago
wx-jincw f52d131945 Merge branch 'main' into property-only-app
3 months ago
wx-jincw 28d9b65d27 feat: app通知附件显示加载
3 months ago
wx-jincw 0176a9d2c0 Merge branch 'main' into property-only-app
3 months ago
wx-jincw 5a735d6f7b Merge branch 'main' into property-only-app
3 months ago
wx-jincw da1bd8069e feat: 派单记录显示
3 months ago
wx-jincw e20f33ddb8 Merge branch 'main' into property-only-app
3 months ago
wx-jincw 06f3335f8c fix: 手机号脱敏;关于我们,退出登录
3 months ago

@ -8,8 +8,8 @@
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
//移动端商城API
// let domain = 'https://fzbfwy.com/mobile-api'
let domain = 'http://crmebxcx.test.jiutianda.cn'
let domain = 'https://fzbfwy.com/mobile-api'
// let domain = 'http://crmebxcx.test.jiutianda.cn'
module.exports = {
// 请求域名 格式: https://您的域名
@ -18,8 +18,8 @@ module.exports = {
// #ifdef MP
HTTP_REQUEST_URL: domain,
// #endif
HTTP_ADMIN_URL:'https://crmeb.test.jiutianda.cn',
// HTTP_ADMIN_URL:'https://fzbfwy.com/prod-api', //PC后台的API请求地址上传图片用,影响h5上传头像
// HTTP_ADMIN_URL:'https://crmeb.test.jiutianda.cn',
HTTP_ADMIN_URL:'https://fzbfwy.com/prod-api', //PC后台的API请求地址上传图片用,影响h5上传头像
// #ifdef H5
//H5接口是浏览器地址
// HTTP_REQUEST_URL: window.location.protocol+"//"+window.location.host,

File diff suppressed because it is too large Load Diff

@ -0,0 +1,188 @@
<template>
<view class="about-container">
<!-- <view class="header">
<view class="back" @click="goBack">
<text class="iconfont icon-xiangzuo"></text>
</view>
<view class="title">关于我们</view>
<view class="empty"></view>
</view> -->
<view class="content">
<view class="logo-section">
<image class="logo" src="/static/images/logo.png" mode="aspectFit"></image>
<view class="app-name">八方物业</view>
<view class="version">版本 {{appVersion}}</view>
</view>
<view class="info-section">
<!-- <view class="info-item">
<view class="info-label">公司名称</view>
<view class="info-value">...</view>
</view> -->
<!-- <view class="info-item">
<view class="info-label">联系电话</view>
<view class="info-value"></view>
</view> -->
<!-- <view class="info-item">
<view class="info-label">公司地址</view>
<view class="info-value">...</view>
</view> -->
<!-- <view class="info-item">
<view class="info-label">电子邮箱</view>
<view class="info-value"></view>
</view> -->
</view>
<!-- <view class="desc-section">
<view class="desc-title">关于八方物业</view>
<view class="desc-content">
我们是
</view>
</view> -->
<view class="copyright">
© 2026 八方物业. 保留所有权利
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
appVersion: uni.getAppBaseInfo().appVersion,
}
},
methods: {
goBack() {
uni.navigateBack();
}
}
}
</script>
<style lang="scss" scoped>
.about-container {
width: 100%;
min-height: 100vh;
background-color: #f5f5f5;
.header {
display: flex;
align-items: center;
justify-content: space-between;
height: 90rpx;
background-color: #409EFF;
padding: 0 30rpx;
.back {
width: 50rpx;
height: 50rpx;
display: flex;
align-items: center;
justify-content: center;
.iconfont {
font-size: 36rpx;
color: #fff;
}
}
.title {
font-size: 32rpx;
font-weight: 600;
color: #fff;
}
.empty {
width: 50rpx;
}
}
.content {
padding: 40rpx 30rpx;
.logo-section {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 50rpx;
.logo {
width: 160rpx;
height: 160rpx;
margin-bottom: 20rpx;
}
.app-name {
font-size: 36rpx;
font-weight: 600;
color: #333;
margin-bottom: 10rpx;
}
.version {
font-size: 24rpx;
color: #999;
}
}
.info-section {
background-color: #fff;
border-radius: 14rpx;
padding: 30rpx;
margin-bottom: 30rpx;
.info-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20rpx 0;
border-bottom: 1rpx solid #f2f2f2;
&:last-child {
border-bottom: none;
}
.info-label {
font-size: 28rpx;
color: #666;
}
.info-value {
font-size: 28rpx;
color: #333;
text-align: right;
flex: 1;
margin-left: 30rpx;
}
}
}
.desc-section {
background-color: #fff;
border-radius: 14rpx;
padding: 30rpx;
margin-bottom: 40rpx;
.desc-title {
font-size: 30rpx;
font-weight: 600;
color: #333;
margin-bottom: 20rpx;
}
.desc-content {
font-size: 26rpx;
color: #666;
line-height: 40rpx;
}
}
.copyright {
font-size: 24rpx;
color: #999;
text-align: center;
margin-top: 20rpx;
}
}
}
</style>

@ -132,6 +132,7 @@
<view class="menu-txt">通知公告</view>
</view>
</view>
<template v-if="false">
<!-- menu -->
<view class='nav acea-row' v-if="menus.length">
<block v-for="(item,index) in menus" :key="index">
@ -229,6 +230,7 @@
<text>我是有底线的</text>
</view>
</view>
</template>
</view>
</view>
</view>

@ -182,6 +182,7 @@ export default {
this.rankingDateRange.startDate = this.selectedDate;
this.rankingDateRange.endDate = this.selectedDate;
this.loadCanteens();
this.loadMealTypes();
this.loadPageData();
},
mounted() {
@ -270,10 +271,6 @@ export default {
groupMeals(list) {
//
const mealTypeDict = this.dict.get('meal_type') || [];
const mealTypeMap = {};
mealTypeDict.forEach(item => {
mealTypeMap[item.dictValue] = item.dictLabel;
});
//
const grouped = {};

@ -436,6 +436,16 @@ export default {
};
});
// yyyy-MM-dd HH:mm:ss
const now = new Date();
const year = now.getFullYear();
const month = String(now.getMonth() + 1).padStart(2, '0');
const day = String(now.getDate()).padStart(2, '0');
const hours = String(now.getHours()).padStart(2, '0');
const minutes = String(now.getMinutes()).padStart(2, '0');
const seconds = String(now.getSeconds()).padStart(2, '0');
const reportTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
const payload = {
// phone: this.form.phone.trim(),
faultDesc: this.form.faultDesc.trim(),
@ -443,7 +453,8 @@ export default {
houseId: this.selectedHouseId,
houseName: this.selectedHouseName,
files: imagefiles,
faultType: this.form.faultType
faultType: this.form.faultType,
reportTime: reportTime
};
try {

@ -13,8 +13,8 @@
请点击登录
</view>
<view class="name" v-if="uid">
{{userInfo.nickname}}
<view class="vip" v-if="userInfo.vip">
{{userInfo.nickname || '未设置用户名'}}
<view class="vip" v-if="showShop && userInfo.vip">
<image :src="userInfo.vipIcon" alt="">
<view style="margin-left: 10rpx;" class="vip-txt">{{userInfo.vipName || ''}}
</view>
@ -29,7 +29,7 @@
<view class="phone" v-if="!userInfo.phone && isLogin" @tap="bindPhone"></view>
</view>
</view>
<view class="num-wrapper">
<view class="num-wrapper" v-if="showShop">
<view class="num-item" @click="goMenuPage('/pages/users/user_money/index')">
<text class="num">{{userInfo.nowMoney && uid ?Number(userInfo.nowMoney).toFixed(2):0}}</text>
<view class="txt">余额</view>
@ -49,7 +49,7 @@
</view>
<!-- <view class="sign" @click="goSignIn"></view> -->
</view>
<view class="order-wrapper">
<view class="order-wrapper" v-if="showShop">
<view class="order-hd flex">
<view class="left">订单中心</view>
<navigator class="right flex" hover-class="none" url="/pages/users/order_list/index" open-type="navigate">
@ -70,7 +70,7 @@
</view>
</view>
</view>
<view class="contenBox">
<view class="contenBox" v-if="showShop">
<!-- 轮播 -->
<view class="slider-wrapper" v-if="imgUrls.length>0">
<swiper indicator-dots="true" :autoplay="autoplay" :circular="circular" :interval="interval"
@ -109,9 +109,13 @@
</view>
</view>
<!-- <image src="/static/images/support.png" alt="" class='support'> -->
<view class="uni-p-b-98"></view>
</view>
<!-- 关于我们 -->
<view class="aboutUs acea-row row-center-wrapper" @click="goAboutUs" style="margin-top: 30rpx; padding: 0 30rpx;">关于我们</view>
<!-- 退出登录 -->
<view v-if="uid" class="logOut acea-row row-center-wrapper" @click="outLogin" style="margin-top: 20rpx; padding: 0 30rpx;">退</view>
</scroll-view>
</view>
<!-- #ifdef MP -->
@ -135,17 +139,20 @@
toLogin
} from '@/libs/login.js';
import {
getCity
} from '@/api/api.js';
import {
mapGetters
} from "vuex";
// #ifdef H5
import Auth from '@/libs/wechat';
// #endif
// #ifdef MP
import authorize from '@/components/Authorize';
// #endif
getCity
} from '@/api/api.js';
import {
getLogout
} from '@/api/user.js';
import {
mapGetters
} from "vuex";
// #ifdef H5
import Auth from '@/libs/wechat';
// #endif
// #ifdef MP
import authorize from '@/components/Authorize';
// #endif
const app = getApp();
export default {
components: {
@ -156,6 +163,7 @@
computed: mapGetters(['isLogin', 'chatUrl', 'userInfo', 'uid']),
data() {
return {
showShop: false,
orderMenu: [{
img: '/static/images/order1.png',
title: '待付款',
@ -370,6 +378,36 @@
}); //
})
},
// 退
outLogin: function() {
let that = this;
uni.showModal({
title: '提示',
content: '确认退出登录?',
success: function(res) {
if (res.confirm) {
getLogout()
.then(res => {
that.$store.commit("LOGOUT");
uni.reLaunch({
url: '/pages/index/index'
});
})
.catch(err => {
console.log(err);
});
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
},
//
goAboutUs() {
uni.navigateTo({
url: '/pages/about/index'
});
},
maskPhone(phone) {
if (!phone) return '';
const phoneStr = String(phone);
@ -388,6 +426,7 @@
.bg {
position: absolute;
z-index: 0;
left: 0;
top: 0;
width: 100%;
@ -678,5 +717,26 @@
padding: 0 8rpx;
border: 1px solid #ee5a52;
}
.aboutUs,
.logOut {
position: relative;
font-size: 32rpx;
text-align: center;
width: 690rpx;
height: 90rpx;
border-radius: 45rpx;
margin: 30rpx auto 0 auto;
z-index: 1;
background: #f6f8fb;
color: #333;
border: 2rpx solid #dfe5ee !important;
}
.logOut {
color: #e34d59;
border-color: #f3c9cd !important;
background: #fff5f6;
}
}
</style>

@ -23,7 +23,7 @@
</navigator>
<navigator url="/pages/users/user_phone/index" hover-class="none" class="input" v-else>
<view class='input acea-row row-between-wrapper'>
<input type='text' disabled='true' name='phone' :value='userInfo.phone'
<input type='text' disabled='true' name='phone' :value='phoneDesensitization(userInfo.phone)'
class='id'></input>
<text class='iconfont icon-xiangyou'></text>
</view>
@ -112,6 +112,11 @@
}
},
methods: {
//
phoneDesensitization(phone) {
if (!phone) return '';
return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');
},
//
authColse: function(e) {
this.isShowAuth = e

Loading…
Cancel
Save