fix: 合并master

This commit is contained in:
mayubo@gmail.com 2025-06-16 15:42:33 +08:00
commit 5c1458d5b8
32 changed files with 5026 additions and 3338 deletions

View File

@ -1,88 +0,0 @@
.title {
font-weight: bold;
font-size: 28rpx;
color: #222222;
margin-top: 30rpx;
margin-left: 20rpx;
}
.item {
margin: 0 50rpx;
height: 90rpx;
border-bottom: 1rpx solid #E6E6E6;
display: flex;
align-items: center;
justify-content: space-between;
}
.no-border {
border-bottom: none;
}
.left {
display: flex;
}
.left_pic {
width: 30rpx;
height: 30rpx;
margin-right: 20rpx;
}
.item_desc {
font-weight: 400;
font-size: 26rpx;
color: #999999;
}
.right_input {
flex: 1;
text-align: right;
}
.right_pic {
width: 40rpx;
height: 40rpx;
}
.line {
height: 20rpx;
background: #F9F9F9;
}
.tips {
padding: 30rpx 0 0 20rpx
}
.tip {
display: inline-block;
font-weight: 400;
font-size: 26rpx;
color: #FFFFFF;
background: #FF512A;
border-radius: 100rpx 100rpx 100rpx 100rpx;
padding: 4rpx 14rpx;
}
.desc {
font-weight: 400;
font-size: 24rpx;
color: #999999;
margin-top: 24rpx;
}
.desc:last-child {
margin-top: 20rpx;
}
.btn {
height: 80rpx;
line-height: 80rpx;
margin: 34rpx 50rpx 0;
font-weight: 400;
font-size: 36rpx;
color: #FFFFFF;
background: #FF512A;
border-radius: 100rpx 100rpx 100rpx 100rpx;
text-align: center;
}

View File

@ -1,119 +0,0 @@
<template>
<view class="container">
<view class="header">
<view class="title">车辆信息</view>
<view class="item">
<view class="left">
<view class="item_desc">车主姓名</view>
</view>
<input class="right_input" type="text" :value="name" data-name="name" @input="handerInputClick" placeholder="请输入车主姓名"/>
</view>
<view class="item">
<view class="left">
<view class="item_desc">车主电话</view>
</view>
<input class="right_input" type="number" maxlength="11" :value="phone" data-name="phone" @input="handerInputClick" placeholder="请输入车主电话"/>
</view>
<view class="item no-border">
<view class="left">
<view class="item_desc">车牌号</view>
</view>
<input class="right_input" type="text" :value="carNum" data-name="carNum" @input="handerInputClick" placeholder="请输入您的车牌号(例冀AXXXXX)"/>
</view>
<view class="btn" @click="headerSubmitClick">提交申请</view>
</view>
</view>
</template>
<script>
import { request } from '../../../utils';
import { apiArr } from '../../../api/community';
export default {
data() {
return {
pageTitle: '',
id: '', // id
name: '',
phone: '',
carNum: '',
}
},
methods: {
handerInputClick(e) {
console.log('112313131', e);
const { name } = e.currentTarget.dataset;
const { value } = e.detail;
this[name] = value.toUpperCase();
},
async headerSubmitClick() {
const {id, name, phone, carNum} = this;
if (name === '') {
uni.showToast({
title: '请输入车主姓名',
icon: 'none'
});
return
}
if (phone === '' || phone.length !== 11) {
uni.showToast({
title: `${phone.length !== 11 ? '请输入11位电话号码' : '请输入车主电话'}`,
icon: 'none'
});
return
}
if (carNum === '') {
uni.showToast({
title: '请输入您的车牌号',
icon: 'none'
});
return
}
const res = await request(apiArr.addCar, 'POST', {
car_number: carNum,
community_id: id,
contact_name: name,
mobile: phone,
}, { silent: true, nested: true});
console.log('ress', res);
if (res.error || res.errorCode) {
uni.showToast({
title: '添加车辆信息失败',
icon: 'none'
})
} else {
uni.showToast({
title: '添加车辆信息成功',
success() {
setTimeout(() => {
uni.navigateBack({
delta: 1
})
}, 1500)
}
})
}
},
},
onLoad(options) {
console.log('1111', options);
uni.setNavigationBarTitle({
title: options.title,
});
this.pageTitle = options.title;
this.id = Number(options.id);
},
}
</script>
<style>
@import url("./index.css");
</style>

View File

@ -1,85 +1,101 @@
.title {
font-weight: bold;
font-size: 28rpx;
color: #222222;
margin-top: 30rpx;
margin-left: 20rpx;
}
.item {
margin: 0 50rpx;
height: 90rpx;
border-bottom: 1rpx solid #E6E6E6;
display: flex;
align-items: center;
justify-content: space-between;
}
.left {
display: flex;
}
.left_pic {
width: 30rpx;
height: 30rpx;
margin-right: 20rpx;
}
.item_desc {
font-weight: 400;
font-size: 26rpx;
color: #999999;
}
.right_input {
flex: 1;
text-align: right;
}
.right_pic {
width: 40rpx;
height: 40rpx;
}
.line {
height: 20rpx;
background: #F9F9F9;
}
.tips {
padding: 30rpx 0 0 20rpx
}
.tip {
display: inline-block;
font-weight: 400;
font-size: 26rpx;
color: #FFFFFF;
background: #FF512A;
border-radius: 100rpx 100rpx 100rpx 100rpx;
padding: 4rpx 14rpx;
}
.desc {
font-weight: 400;
font-size: 24rpx;
color: #999999;
margin-top: 24rpx;
}
.desc:last-child {
margin-top: 20rpx;
}
.btn {
height: 80rpx;
line-height: 80rpx;
margin: 80rpx 50rpx 0;
font-weight: 400;
font-size: 36rpx;
color: #FFFFFF;
background: #FF512A;
border-radius: 100rpx 100rpx 100rpx 100rpx;
text-align: center;
page {
background-color: #FFFFFF;
min-height: calc(100vh - 120rpx);
}
.container_body {
height: 100%;
}
.container {
height: 100%;
}
.title {
font-weight: bold;
font-size: 28rpx;
color: #222222;
margin-top: 30rpx;
margin-left: 20rpx;
}
.right_pic {
width: 40rpx;
height: 40rpx;
}
.line {
height: 20rpx;
background: #F9F9F9;
}
.tips {
font-size: 26rpx;
color: #999999;
margin: 0 80rpx;
}
.desc {
font-weight: 400;
font-size: 24rpx;
color: #999999;
margin-top: 24rpx;
}
.desc:last-child {
margin-top: 20rpx;
}
.btn {
height: 80rpx;
line-height: 80rpx;
margin: 80rpx 50rpx 0;
font-weight: 400;
font-size: 36rpx;
color: #FFFFFF;
background: #FF512A;
border-radius: 100rpx 100rpx 100rpx 100rpx;
text-align: center;
}
image {
width: 100%;
height: 100%;
object-fit: cover;
}
.userAva {
width: 180rpx;
height: 180rpx;
border-radius: 50%;
overflow: hidden;
margin: 0 auto;
margin-top: 12rpx;
}
.Name {
font-size: 40rpx;
color: #000000;
text-align: center;
margin-top: 20rpx;
margin-bottom: 78rpx;
}
.item {
margin-top: 40rpx;
margin: 0 80rpx;
border-bottom: 1rpx solid #EBEBEB;
padding-bottom: 10rpx;
margin-bottom: 40rpx;
}
.label {
font-size: 32rpx;
color: #000000;
margin-bottom: 10rpx;
}

View File

@ -1,236 +1,112 @@
<template>
<view class="container_body">
<view class="container">
<view class="header">
<view class="title">请填写基本信息</view>
<view class="item">
<view class="left">
<image class="left_pic" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/apply_icon1.png" mode="heightFix"/>
<view class="item_desc">入驻小区</view>
</view>
<input :value="communityName" class="right_input" disabled type="text" placeholder="请输入入驻小区名称"/>
</view>
<view class="item">
<view class="left">
<image class="left_pic" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/apply_icon2.png" mode="heightFix"/>
<view class="item_desc">楼宇号</view>
</view>
<input class="right_input" :value="FacName" disabled type="text" placeholder="请选择楼宇号" @click.stop="choose" data-type="1"/>
</view>
<view class="item">
<view class="left">
<image class="left_pic" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/apply_icon3.png" mode="heightFix"/>
<view class="item_desc">房间号</view>
</view>
<input class="right_input" :value="RoomName" disabled type="text" placeholder="请选择房间" @click.stop="choose" data-type="2"/>
</view>
<view class="item">
<view class="left">
<image class="left_pic" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/apply_icon4.png" mode="heightFix"/>
<view class="item_desc">类型</view>
</view>
<input class="right_input" type="text" placeholder="请选择入驻类型" @click="changeShow" disabled :value="typeName"/>
</view>
<view class="item">
<view class="left">
<image class="left_pic" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/apply_icon5.png" mode="heightFix"/>
<view class="item_desc">您的姓名</view>
</view>
<input class="right_input" type="text" :value="name" data-name='name' @input="headerInputChange" placeholder="请输入您的姓名"/>
</view>
<view class="item">
<view class="left">
<image class="left_pic" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/apply_icon6.png" mode="heightFix"/>
<view class="item_desc">手机号码</view>
</view>
<input class="right_input" type="number" maxlength="11" :value="phone" data-name='phone' @input="headerInputChange" placeholder="请输入您的手机号"/>
</view>
<view class="line"></view>
<view class="tips ">
<view class="tip">小提示</view>
<view class="desc">请您一定要认真填写相关信息</view>
<view class="desc">若查无房屋号请联系物业运营人员添加</view>
</view>
<view class="btn" @click="submit">提交申请</view>
</view>
</view>
<u-picker :show="show" :columns="columns" keyName="text" @confirm='confirm' @close='onClose' @cancel='onClose' closeOnClickOverlay ></u-picker>
</view>
</template>
<script>
import { request, picUrl, NavgateTo } from '../../../utils';
import { apiArr } from '../../../api/community';
export default {
data() {
return {
show:false, //
FacName:"",
FacId:"",
RoomName:"",
RoomId:"",
communityName:"",
communityId:"",
name:"",
phone:"",
type:"",// 访
typeName:"",// 访
room_id:"",
columns:[
[
{text:"业主",type:1},
{text:"家属",type:2},
{text:"租户",type:3},
{text:"访客",type:4},
]
]
}
},
methods: {
choose(e){
console.log('eee' ,e);
const { type } = e.currentTarget.dataset;
if(type == '1'){
NavgateTo(`/packages/community/chooseMsg/index?type=${type}&id=${this.communityId}`);
}else{
if(this.FacId){
NavgateTo(`/packages/community/chooseMsg/index?type=${type}&id=${this.communityId}&FacId=${this.FacId}`);
}else{
uni.showToast({
title: '请先选择楼宇号',
icon:"none"
})
}
}
},
changeShow(){
this.show = !this.show;
},
onClose() {
this.show = false;
},
confirm(e){
console.log('eee', e);
this.typeName = e.value[0].text;
this.type = e.value[0].type;
this.show = false;
},
// input
headerInputChange(e){
console.log('eeee', e);
const { name } = e.currentTarget.dataset;
this[name] = e.detail.value;
},
async submit(){
if(!this.FacName){
uni.showToast({
title: '请选择楼宇号',
icon:"none"
})
return
}
if(!this.RoomName){
uni.showToast({
title: '请选择房间号',
icon:"none"
})
return
}
if(!this.type){
uni.showToast({
title: '请选择类型',
icon:"none"
})
return
}
if(!this.name){
uni.showToast({
title: '请填写姓名',
icon:"none"
})
return
}
if(!this.phone){
uni.showToast({
title: '请填写手机号',
icon:"none"
})
return
}
const res = await request(apiArr.apply, 'POST', {
community_id: Number(this.communityId),
facility_id: Number(this.FacId),
mobile: this.phone,
name: this.name,
room_id: Number(this.RoomId),
type: Number(this.type),
face: ''
}, { silent: true, nested: true})
// if(res.msg = ''){ msg code
if (res.code == 1) {
uni.showToast({
title: res.msg,
icon:"none"
})
uni.removeStorage('FacName');
uni.removeStorage('FacId');
uni.removeStorage('RoomName');
uni.removeStorage('RoomId');
setTimeout(()=>{
uni.navigateBack({delta:1})
},1500)
} else {
uni.showToast({
title: '申请失败',
icon:"none"
})
};
},
},
onLoad(options) {
console.log('1231213313', options)
uni.setNavigationBarTitle({
title: options.title,
})
this.communityName = options.title;
this.communityId = options.id;
},
onShow() {
let RoomName = uni.getStorageSync('RoomName');
let RoomId = uni.getStorageSync('RoomId');
let FacName = uni.getStorageSync('FacName');
let FacId = uni.getStorageSync('FacId');
this.RoomName = RoomName;
this.RoomId = RoomId;
this.FacName = FacName;
this.FacId = FacId;
},
}
</script>
<style>
@import url("./index.css");
</style>
<template>
<view class="container_body">
<view class="container">
<div class="userAva">
<image src="http://192.168.0.172:5500/com_MsgImg1.png" alt="" mode="aspectFill" />
</div>
<div class="Name">MarrekoZhang</div>
<view class="item">
<view class="label">
<view class="item_desc">房产</view>
</view>
<input :value="communityName" @click="chooseMsg" class="right_input" disabled type="text" placeholder="请选择您要入驻的房产" />
</view>
<view class="item">
<view class="label">
<view class="item_desc">姓名</view>
</view>
<input :value="communityName" class="right_input" type="text" placeholder="请输入您的姓名" />
</view>
<view class="item">
<view class="label">
<view class="item_desc">手机</view>
</view>
<input :value="communityName" class="right_input" type="text" placeholder="请选择您的手机号" />
</view>
<view class="item">
<view class="label">
<view class="item_desc">身份</view>
</view>
<input :value="communityName" class="right_input" type="text" placeholder="请输入您的身份" />
</view>
<view class="tips ">
注意业主为在物业登记在册的人员需经过物业审
核确认后即可成为该房产的业主如需帮助可与物
业或平台联系
</view>
<view class="btn" @click="submit">确定</view>
</view>
<u-picker :show="show" :columns="columns" keyName="text" @confirm='confirm' @close='onClose' @cancel='onClose'
closeOnClickOverlay></u-picker>
</view>
</template>
<script>
import { request, picUrl, NavgateTo } from '../../../utils';
import { apiArr } from '../../../api/community';
export default {
data() {
return {
show: false, //
columns: [
[
{ text: "业主", type: 1 },
{ text: "家属", type: 2 },
{ text: "租户", type: 3 },
{ text: "访客", type: 4 },
]
]
}
},
methods: {
changeShow() {
this.show = !this.show;
},
onClose() {
this.show = false;
},
confirm(e) {
console.log('eee', e);
this.typeName = e.value[0].text;
this.type = e.value[0].type;
this.show = false;
},
chooseMsg(){
uni.navigateTo({
url:"../chooseMsg/index"
})
},
},
onLoad(options) {
},
onShow() {
},
}
</script>
<style>
@import url("./index.css");
</style>

View File

@ -1,17 +1,88 @@
.title {
font-weight: bold;
font-size: 28rpx;
color: #222222;
margin-top: 30rpx;
margin-left: 20rpx;
}
.item {
margin: 0 50rpx;
height: 90rpx;
border-bottom: 1rpx solid #E6E6E6;
display: flex;
align-items: center;
justify-content: space-between;
}
image {
width: 100%;
height: 100%;
}
.searchBox {
width: 710rpx;
height: 70rpx;
background: #F6F6FA;
border-radius: 100rpx 100rpx 100rpx 100rpx;
margin: 0 auto;
margin-top: 30rpx;
display: flex;
align-items: center;
padding: 0 30rpx;
}
.searchBox image {
width: 30rpx;
height: 30rpx;
margin-right: 16rpx;
}
.searchBox input {
flex: 1;
}
.communityItem {
box-sizing: border-box;
margin: 0 20rpx;
padding: 30rpx 0;
border-bottom: 1rpx solid #EBEBEB;
display: flex;
}
.communityItem_img {
width: 180rpx;
height: 160rpx;
border-radius: 20rpx 20rpx 20rpx 20rpx;
margin-right: 20rpx;
}
.communityItem_msg {
flex: 1;
display: flex;
align-items: center;
}
.communityItem_msg_title {
font-size: 32rpx;
color: #222222;
}
.communityItem_msg_addr {
font-size: 26rpx;
color: #999999;
height: 72rpx;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
margin-top: 20rpx;
}
.communityItem_msg_more {
width: 16rpx;
height: 30rpx;
margin-left: 110rpx;
}
.addBtn {
font-size: 36rpx;
color: #FFFFFF;
width: 600rpx;
height: 90rpx;
background: linear-gradient(91deg, #FF7658 0%, #FF370B 100%);
border-radius: 100rpx 100rpx 100rpx 100rpx;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: center;
margin-top: 30rpx;
}
/* .communityItem的最后一个 */
.communityList .communityItem:last-child {
border-bottom: none;
}

View File

@ -1,125 +1,65 @@
<template>
<view class="container">
<view class="header" v-if="type == '1'">
<view class="title">社区楼宇信息</view>
<view class="item" v-for="(item, index) in facList" :key="index" :data-id="item.facility_id" :data-name="item.name" @click="chooseFac">
<view class="left">
{{item.name}}
</view>
</view>
</view>
<view class="header" v-if="type == '2'">
<view class="title">房间列表</view>
<view class="item" v-for="(item, index ) in RoomList" :key="index" :data-id="item.room_id" :data-name="item.name" @click="chooseRoom">
<view class="left">
{{item.name}}
<!-- {{item.location}} -->
</view>
</view>
</view>
</view>
</template>
<script>
import { request } from '../../../utils';
import { apiArr } from '../../../api/community';
export default {
data() {
return {
type:"",
communityId:"",
facList:[],
flag:false,
page_num:1,
page_size:10,
RoomList:[],
FacId:"",
}
},
methods: {
async getFacList(id){
const res = await request(apiArr.getFacilityList, 'POST', {
community_id:Number(id)
});
console.log('12313131', res);
this.facList = res?.rows || [];
},
async getRoomList(id, facId){
const res = await request(apiArr.getRoomList, "POST", {
facility_id: Number(facId),
community_id: Number(id),
page_num: this.page_num,
page_size: this.page_size
})
console.log('getRoomList res', res);
if(res?.rows){
let flag = false
if(res.rows.length == this.page_size){
flag = true
}else{
flag = false
}
this.flag = flag;
this.RoomList = this.RoomList.concat(res?.rows || []);
this.page_num = this.page_num + 1;
}
},
//
chooseFac(e){
let that= this
let FacName = e.currentTarget.dataset.name
let FacId = e.currentTarget.dataset.id
uni.setStorageSync('FacName', FacName)
uni.setStorageSync('FacId', FacId)
//
uni.navigateBack({
delta: 1
});
},
//
chooseRoom(e){
let that= this
let RoomName = e.currentTarget.dataset.name
let RoomId = e.currentTarget.dataset.id
uni.setStorageSync('RoomName', RoomName)
uni.setStorageSync('RoomId', RoomId)
uni.navigateBack({
delta: 1
});
},
},
onLoad(options){
this.communityId = options.id;
this.type = options.type;
this.FacId = options.FacId;
if(options.type == '1'){
this.getFacList(options.id)
}else{
this.getRoomList(options.id, options.FacId)
}
},
onReachBottom() {
if(this.flag){
that.getRoomList()
}
},
}
</script>
<style>
@import url("./index.css");
</style>
<template>
<view class="container">
<div class="searchBox">
<img src="http://192.168.0.172:5500/com_communitySearchIcon.png" alt="" />
<input placeholder="请输入小区名称" type="text">
</div>
<div class="communityList">
<div class="communityItem" v-for="item in 5" @click="chooseCommunityInfo">
<div class="communityItem_img">
<img src="http://192.168.0.172:5500/com_act2Img.png" alt="" />
</div>
<div class="communityItem_msg">
<div>
<div class="communityItem_msg_title">岸芷汀兰(东区)</div>
<div class="communityItem_msg_addr">
河北省衡水市桃城区红旗大街与河
阳路交叉口西北300米东车辆入口
</div>
</div>
<div class="communityItem_msg_more">
<img src="http://192.168.0.172:5500/com_communityMore.png" alt="" />
</div>
</div>
</div>
</div>
<div class="addBtn">新建小区</div>
</view>
</template>
<script>
import { request } from '../../../utils';
import { apiArr } from '../../../api/community';
export default {
data() {
return {
}
},
methods: {
chooseCommunityInfo() {
uni.navigateTo({
url: '../chooseMsgInfo/index'
});
}
},
onLoad(options) {
},
onReachBottom() {
},
}
</script>
<style>
@import url("./index.css");
</style>

View File

@ -0,0 +1,278 @@
image {
width: 100%;
height: 100%;
}
.searchBox image {
width: 30rpx;
height: 30rpx;
margin-right: 16rpx;
}
.searchBox input {
flex: 1;
}
.communityItem {
box-sizing: border-box;
margin: 0 20rpx;
padding: 30rpx 0;
display: flex;
}
.communityItem_img {
width: 180rpx;
height: 160rpx;
border-radius: 20rpx 20rpx 20rpx 20rpx;
margin-right: 20rpx;
}
.communityItem_msg {
flex: 1;
display: flex;
align-items: center;
}
.communityItem_msg_title {
font-size: 32rpx;
color: #222222;
}
.communityItem_msg_addr {
font-size: 26rpx;
color: #999999;
height: 72rpx;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
margin-top: 20rpx;
}
.communityItem_msg_more {
width: 16rpx;
height: 30rpx;
margin-left: 110rpx;
}
.addBtn {
font-size: 36rpx;
color: #FFFFFF;
width: 600rpx;
height: 90rpx;
background: linear-gradient(91deg, #FF7658 0%, #FF370B 100%);
border-radius: 100rpx 100rpx 100rpx 100rpx;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: center;
margin-top: 30rpx;
}
.line {
height: 20rpx;
width: 100%;
background: #F6F6FA;
}
.chooseTit {
font-size: 36rpx;
color: #222222;
font-weight: 700;
padding-left: 20rpx;
padding-top: 30rpx;
}
.communityInfoList {
padding: 0 20rpx;
margin-top: 30rpx;
display: flex;
flex-wrap: wrap;
}
.communityInfo {
font-size: 28rpx;
color: #222222;
border-radius: 10rpx 10rpx 10rpx 10rpx;
border: 1rpx solid #222222;
padding: 10rpx 26rpx;
margin-bottom: 20rpx;
margin-right: 10rpx;
}
.communityInfo:nth-child(4n) {
margin-right: 0;
}
.communityInfo2 {
font-size: 28rpx;
color: #222222;
border-radius: 10rpx 10rpx 10rpx 10rpx;
border: 1rpx solid #222222;
padding: 10rpx 0;
margin-bottom: 20rpx;
margin-right: 10rpx;
width: 170rpx;
text-align: center;
box-sizing: border-box;
}
.communityInfo2:nth-child(4n) {
margin-right: 0;
}
.active {
border: 1rpx solid #FF370B;
position: relative;
}
.active::after {
content: '✔️';
font-size: 14rpx;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
position: absolute;
right: 0rpx;
bottom: 0rpx;
background-color: #FF370B;
width: 23rpx;
height: 24rpx;
border-top-left-radius: 40rpx;
}
.addCommunityBtn {
font-weight: normal;
font-size: 36rpx;
color: #FFFFFF;
width: 600rpx;
height: 90rpx;
background: linear-gradient(91deg, #FF7658 0%, #FF370B 100%);
border-radius: 100rpx 100rpx 100rpx 100rpx;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto;
margin-top: 60rpx;
}
.header {
display: flex;
align-items: center;
padding-left: 20rpx;
}
.item {
margin-top: 40rpx;
margin: 0 80rpx;
border-bottom: 1rpx solid #EBEBEB;
padding-bottom: 10rpx;
margin-bottom: 40rpx;
margin-top: 40rpx;
}
.label {
font-size: 32rpx;
color: #000000;
margin-bottom: 10rpx;
font-weight: 700;
}
.tip {
font-size: 26rpx;
color: #999999;
margin: 0 80rpx;
}
.dialog {
height: 100vh;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
z-index: 1000;
}
.dialogCon {
margin-top: -40rpx;
border-radius: 20rpx 20rpx 20rpx 20rpx;
background: #FFFFFF;
width: 500rpx;
padding: 40rpx 28rpx;
box-sizing: border-box;
}
.dialogCon_Tit {
font-size: 30rpx;
color: #222222;
font-weight: 700;
}
.dialogCon_Con {
font-size: 26rpx;
color: #222222;
margin-top: 14rpx;
}
.dialogCon_BtnList {
display: flex;
align-items: center;
justify-content: center;
margin-top: 40rpx;
}
.dialogCon_BtnList1 {
width: 170rpx;
height: 52rpx;
background: #D9D9D9;
border-radius: 100rpx 100rpx 100rpx 100rpx;
font-size: 28rpx;
color: #222222;
display: flex;
align-items: center;
justify-content: center;
margin-right: 50rpx;
}
.dialogCon_BtnList2 {
display: flex;
align-items: center;
justify-content: center;
width: 170rpx;
height: 52rpx;
background: #FF370B;
border-radius: 100rpx 100rpx 100rpx 100rpx;
font-size: 28rpx;
color: #FFFFFF;
}
.dialogCon_room {
font-size: 30rpx;
color: #FF370B;
margin-top: 20rpx;
text-align: center;
}
.dialogCon_room1 {
font-size: 36rpx;
color: #FF370B;
margin-top: 20rpx;
text-align: center;
font-weight: 700;
}
.dialogCon_room2 {
font-size: 30rpx;
text-align: center;
color: #FF370B;
}

View File

@ -0,0 +1,337 @@
<template>
<view class="container">
<div class="header" :style="{ paddingTop: top + 'px', height: localHeight + 'px' }">
<u-icon bold color="#000" size="40" name="arrow-left" @click="back"></u-icon>
</div>
<div class="communityList">
<div class="communityItem">
<div class="communityItem_img">
<image mode="aspectFill" src="http://192.168.0.172:5500/com_act2Img.png" alt="" />
</div>
<div class="communityItem_msg">
<div>
<div class="communityItem_msg_title">岸芷汀兰(东区)</div>
<div class="communityItem_msg_addr">
河北省衡水市桃城区红旗大街与河
阳路交叉口西北300米东车辆入口
</div>
</div>
<div class="communityItem_msg_more">
<image src="http://192.168.0.172:5500/com_communityMore.png" alt="" />
</div>
</div>
</div>
</div>
<div class="line"></div>
<div v-if="step == '0' && type == '0'">
<div class="chooseTit">请选择楼栋</div>
<div class="communityInfoList">
<template v-for="(item, index) in 11">
<div :class="active == index ? 'communityInfo active' : 'communityInfo'" @click="choseTower">
1栋2单元
</div>
</template>
</div>
<div class="addCommunityBtn" @click="addCommunity">
新建楼栋
</div>
</div>
<div v-if="step == '0' && type == '1'">
<div class="chooseTit">新建楼栋</div>
<view class="item">
<view class="label">
<view class="item_desc">楼栋号</view>
</view>
<input class="right_input" type="text" placeholder="请输入楼栋号" />
</view>
<view class="item">
<view class="label">
<view class="item_desc">单元号</view>
</view>
<input class="right_input" type="text" placeholder="请输入单元号" />
</view>
<div class="tip">注意新建的楼栋号需经物业或平台的核实后自动建 如核实未通过将会创建失败</div>
<div class="addCommunityBtn" @click="saveCommunity">
确定
</div>
</div>
<div v-if="step == '1' && type == '0'">
<div class="chooseTit">请选择楼层1栋3单元</div>
<div class="communityInfoList">
<template v-for="(item, index) in 11">
<div :class="active == index ? 'communityInfo2 active' : 'communityInfo2'" @click="choseFloor">
{{ index + 1 }}
</div>
</template>
</div>
<div class="addCommunityBtn" @click="addCommunity">
新建楼层
</div>
</div>
<div v-if="step == '1' && type == '1'">
<div class="chooseTit">新建楼层</div>
<view class="item">
<view class="label">
<view class="item_desc">楼层</view>
</view>
<input class="right_input" type="text" placeholder="请输入楼层(仅为数字)" />
</view>
<div class="tip">注意新建的楼栋号需经物业或平台的核实后自动建 如核实未通过将会创建失败</div>
<div class="addCommunityBtn" @click="saveFloor">
确定
</div>
</div>
<div v-if="step == '2' && type == '0'">
<div class="chooseTit">请选择房间1栋3单元/2</div>
<div class="communityInfoList">
<template v-for="(item, index) in 11">
<div :class="active == index ? 'communityInfo2 active' : 'communityInfo2'" @click="choseRoom">
201
</div>
</template>
</div>
<div class="addCommunityBtn" @click="addRoom">
新建房间号
</div>
</div>
<div v-if="step == '2' && type == '1'">
<div class="chooseTit">新建房间号</div>
<view class="item">
<view class="label">
<view class="item_desc">房间号</view>
</view>
<input class="right_input" type="text" placeholder="请输入房间号" />
</view>
<div class="tip">注意新建的楼栋号需经物业或平台的核实后自动建 如核实未通过将会创建失败</div>
<div class="addCommunityBtn" @click="saveRoom">
确定
</div>
</div>
<!-- 创建 -->
<div class="dialog" v-if="show1" @click="cancel1">
<div class="dialogCon">
<div class="dialogCon_Tit">
您是要创建{{ createName }}
</div>
<div class="dialogCon_Con">
新建的楼层需经物业或平台的核实 后才会创建成功如核实未通过 将会创建失败
</div>
<div class="dialogCon_BtnList">
<div class="dialogCon_BtnList1" @click="cancel1">取消</div>
<div class="dialogCon_BtnList2" @click="confirm1">确定</div>
</div>
</div>
</div>
<!-- 已存在 -->
<div class="dialog" v-if="show2" @click="cancel2">
<div class="dialogCon">
<div class="dialogCon_Con">
您输入的楼层已存在 <br>
您是否确认入住{{ createName}}
</div>
<div class="dialogCon_BtnList">
<div class="dialogCon_BtnList1" @click="cancel2">取消</div>
<div class="dialogCon_BtnList2" @click="confirm2">确定</div>
</div>
</div>
</div>
<!-- 最后创建房间并入住 -->
<div class="dialog" v-if="show3" @click="cancel3">
<div class="dialogCon">
<div class="dialogCon_Tit">
您是要创建并入驻
</div>
<div class="dialogCon_room">
{{ createName }}
</div>
<div class="dialogCon_Con">
新建的楼层需经物业或平台的核实 后才会创建成功如核实未通过 将会创建失败
</div>
<div class="dialogCon_BtnList">
<div class="dialogCon_BtnList1" @click="cancel3">取消</div>
<div class="dialogCon_BtnList2" @click="confirm3">确定</div>
</div>
</div>
</div>
<!-- 最后入驻 -->
<div class="dialog" v-if="show4" @click="cancel4">
<div class="dialogCon">
<div class="dialogCon_Tit">
您是要创建并入驻
</div>
<div class="dialogCon_room1">
岸芷汀兰(东区)
</div>
<div class="dialogCon_room2">
{{ createName }}
</div>
<div class="dialogCon_BtnList">
<div class="dialogCon_BtnList1" @click="cancel4">取消</div>
<div class="dialogCon_BtnList2" @click="confirm4">确定</div>
</div>
</div>
</div>
</view>
</template>
<script>
import { apiArr } from '../../../api/community';
import {
request,
picUrl,
uniqueByField,
menuButtonInfo
} from '../../../utils';
export default {
data() {
return {
localHeight: "",
top: "",
active: "1",
step: "0",
type: "0", //1 0
createName: "8层",
show1: false, //
show2: false,
show3: false,
show4: true,
}
},
methods: {
//
addCommunity() {
this.type = "1"
},
//
saveCommunity() {
let that = this
uni.showModal({
title: `您是要创建:${this.step}`,
content: '新建的楼栋号需经物业或平台的核 实后才会创建成功。如核实未通过, 将会创建失败!',
success: function (res) {
if (res.confirm) {
console.log('用户点击确定');
that.type = "0"
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
},
//
choseTower() {
this.step = "1"
},
//
saveFloor() {
this.type = "0"
},
//
choseFloor() {
this.step = "2"
},
//
choseRoom() {
this.step = "3"
},
saveRoom() {
this.type = "0"
},
back() {
if (this.step == "0") {
if (this.type == "1") {
return this.type = "0"
}
uni.navigateBack({
delta: 1
})
}
if (this.step == "1") {
if (this.type == "1") {
return this.type = "0"
}
this.step = "0"
}
if (this.step == "2") {
if (this.type == "1") {
return this.type = "0"
}
this.step = "1"
}
if (this.step == "3") {
if (this.type == "1") {
return this.type = "0"
}
this.step = "2"
}
},
cancel4(){
this.show4 = false
},
confirm4(){
},
cancel3(){
this.show3 = false
},
confirm3(){},
cancel2(){
this.show2 = false
},
confirm2(){},
cancel1(){
this.show1 = false
},
confirm1(){},
},
onLoad(options) {
const meun = menuButtonInfo();
this.top = meun.top;
// this.top = meun.height + meun.top;
this.localHeight = meun.height;
},
onReachBottom() {
},
}
</script>
<style>
@import url("./index.css");
</style>

View File

@ -1,87 +1,777 @@
.banner {
width: 710rpx;
height: 300rpx;
border-radius: 0rpx 0rpx 0rpx 0rpx;
margin: 30rpx auto 0;
}
.banner_item {
width: 710rpx;
height: 300rpx;
}
.nav {
margin: 48rpx 20rpx 0;
}
.sub_nav {
display: flex;
flex-wrap: wrap;
margin: 30rpx 20rpx 0;
justify-content: right;
}
.sub_nav_item {
width: 345rpx;
background: #FFF5E2;
border-radius: 30rpx 30rpx 30rpx 30rpx;
margin-right: 15rpx;
}
.wy_pay {
background: #FFF4EF;
margin-right: 0;
}
.wy_pay2 {
background: #FFFCEB;
margin-right: 20rpx;
margin-top: 20rpx;
}
.tel_leave {
background: #F5F5F5;
margin-top: 20rpx;
margin-right: 0;
}
.sub_nav_item_desc {
margin: 29rpx 0 0 39rpx;
font-weight: bold;
font-size: 28rpx;
color: #222222;
}
.sub_nav_item_right {
display: flex;
justify-content: flex-end;
}
.sub_nav_item_pic {
width: 90rpx;
height: 90rpx;
margin: 0 15rpx 19rpx 0;
}
.line {
height: 20rpx;
background: #F9F9F9;
border-radius: 0rpx 0rpx 0rpx 0rpx;
}
.main {
margin: 30rpx 20rpx 0;
}
.grid_Pic {
width: 54rpx;
height: 46rpx;
margin-bottom: 20rpx;
}
.uicon-volume {
font-size: 28rpx !important;
}
.u-grid-item {
margin-bottom: 43rpx;
page {
background-color: #F6F6FA;
}
.container {
display: flex;
flex-direction: column;
min-height: calc(100vh - 120rpx);
width: 100%;
}
.searchBox {
display: flex;
align-items: center;
padding: 0 20rpx;
/* margin-top: 35rpx; */
justify-content: space-between;
background-color: #fff;
}
.searchBox_add {
display: flex;
align-items: center;
font-weight: 400;
font-size: 30rpx;
color: #000000;
}
.searchBox_add image {
width: 30rpx;
height: 30rpx;
margin-right: 16rpx;
}
.myRealEstate {
font-weight: 700;
padding-top: 36rpx;
font-weight: normal;
font-size: 36rpx;
color: #222222;
text-align: center;
background-color: #fff;
padding-bottom: 22rpx;
}
.myRealEstate .btn {
width: 600rpx;
height: 90rpx;
background: linear-gradient(91deg, #FF7658 0%, #FF370B 100%);
border-radius: 100rpx 100rpx 100rpx 100rpx;
font-weight: normal;
font-size: 36rpx;
color: #FFFFFF;
font-weight: 700;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto;
margin-top: 30rpx;
}
.nearby {
padding: 0 20rpx;
margin-top: 20rpx;
background-color: #fff;
padding-top: 20rpx;
box-sizing: border-box;
flex: 1;
}
.nearbyTit {
display: flex;
justify-content: space-between;
}
.nearbyTit_left {
font-size: 36rpx;
color: #222222;
font-weight: 700;
}
.nearbyTit_right {
font-size: 26rpx;
color: #999999;
display: flex;
align-items: center;
}
.nearbyTit_right image {
width: 30rpx;
height: 30rpx;
}
.empty {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-weight: normal;
font-size: 28rpx;
color: #999999;
margin-top: 110rpx;
width: 100%;
}
.empty image {
width: 366rpx;
height: 226rpx;
margin-bottom: 27rpx;
}
.communityItem {
border-bottom: 1rpx solid #EBEBEB;
margin-top: 32rpx;
}
.communityItem_msg {
font-size: 26rpx;
color: #999999;
margin-top: 20rpx;
padding-bottom: 30rpx;
}
.communityItem_Box {
display: flex;
}
.communityItem_Box_left {
width: 180rpx;
overflow: hidden;
height: 180rpx;
border-radius: 20rpx 20rpx 20rpx 20rpx;
margin-right: 20rpx;
}
.communityItem_Box_left image {
width: 100%;
height: 100%;
}
.communityItem_Box_right {
flex: 1;
}
.communityItem_Box_right_tit {
font-size: 32rpx;
color: #222222;
margin-bottom: 8rpx;
}
.communityItem_Box_right_com {
font-size: 26rpx;
color: #555555;
margin-top: 8rpx;
height: 72rpx;
line-height: 36rpx;
-webkit-line-clamp: 2;
/* 限制显示 2 行 */
-webkit-box-orient: vertical;
/* 垂直排列 */
overflow: hidden;
/* 超出部分隐藏 */
text-overflow: ellipsis;
display: -webkit-box;
}
.communityItem_Box_right_msg {
margin-top: 14rpx;
}
.communityItem_Box_right_msg_right {
width: 140rpx;
height: 40rpx;
background: #FF370B;
border-radius: 100rpx 100rpx 100rpx 100rpx;
font-size: 26rpx;
color: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
}
.communityItem_Box_right_msg {
display: flex;
align-items: center;
justify-content: space-between;
}
.communityItem_Box_right_msg_left {
display: flex;
align-items: center;
}
.communityItem_Box_right_msg_left1 {
width: 110rpx;
height: 40rpx;
background: rgba(255, 81, 42, 0.1);
border-radius: 100rpx 100rpx 100rpx 100rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 22rpx;
color: #555555;
margin-right: 20rpx;
}
.communityItem_Box_right_msg_left1 image {
width: 24rpx;
height: 24rpx;
margin-right: 10rpx;
}
.communityItem_Box_right_msg_left2 {
width: 110rpx;
height: 40rpx;
background: #FFF2DA;
border-radius: 100rpx 100rpx 100rpx 100rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 22rpx;
color: #555555;
}
.communityItem_Box_right_msg_left2 image {
width: 24rpx;
height: 24rpx;
margin-right: 10rpx;
}
.myRealEstateEmpty {
display: flex;
}
.myRealEstates {
width: 710rpx;
height: 200rpx;
margin: 0 auto;
position: relative;
}
.myRealEstates image {
width: 100%;
height: 100%;
object-fit: cover;
position: absolute;
z-index: 1;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.name {
font-size: 50rpx;
color: #FFFFFF;
text-shadow: 0px 2px 2px rgba(0, 0, 0, 0.6);
text-align: center;
position: relative;
z-index: 2;
padding-top: 24rpx;
}
.Visitor {
font-weight: normal;
font-size: 24rpx;
color: #FFFFFF;
width: 380rpx;
display: flex;
align-items: center;
justify-content: center;
height: 52rpx;
margin: 0 auto;
margin-top: 30rpx;
position: relative;
z-index: 2;
background: rgba(0, 0, 0, 0.3);
border-radius: 10rpx 10rpx 10rpx 10rpx;
}
.Announcement {
width: 710rpx;
height: 60rpx;
background: #F4F4F4;
border-radius: 10rpx 10rpx 10rpx 10rpx;
margin: 0 auto;
box-sizing: border-box;
padding: 14rpx 20rpx;
display: flex;
margin-top: 22rpx;
display: flex;
align-items: center;
flex: 1;
}
.Announcement image {
width: 149.55rpx;
height: 31rpx;
}
.line {
width: 2rpx;
height: 30rpx;
background-color: #999999;
margin-left: 23rpx;
}
.Announcement .msg {
display: flex;
justify-content: space-between;
align-items: center;
flex: 1;
margin-left: 23rpx;
font-weight: normal;
font-size: 26rpx;
color: #555555;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.Announcement .msg image {
width: 26rpx;
height: 26rpx;
}
.navList {
background-color: #fff;
padding-top: 30rpx;
display: flex;
padding: 0 20rpx;
box-sizing: border-box;
justify-content: space-between;
}
.navItem {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #222222;
}
.navItem image {
margin-bottom: 10rpx;
width: 90rpx;
height: 90rpx;
}
.tabList {
display: flex;
align-items: center;
justify-content: space-between;
background-color: #fff;
padding: 0 20rpx;
padding-top: 30rpx;
}
.tabItem {
width: 226rpx;
height: 120rpx;
box-sizing: border-box;
padding-top: 7rpx;
padding-left: 18rpx;
font-weight: normal;
font-size: 28rpx;
color: #FF370B;
}
.tabItem1 {
background: url(http://192.168.0.172:5500/com_tabBg1.png);
background-size: cover;
}
.tabItem2 {
background: url(http://192.168.0.172:5500/com_tabBg2.png);
background-size: cover;
}
.tabItem3 {
background: url(http://192.168.0.172:5500/com_tabBg3.png);
background-size: cover;
}
.nearbyTit {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 20rpx;
padding-top: 30rpx;
font-weight: normal;
font-size: 36rpx;
color: #222222;
background-color: #fff;
}
.nearbyTit .more {
font-size: 26rpx;
color: #FF370B;
}
.nearbyList {
background-color: #fff;
display: flex;
justify-content: space-between;
padding: 0 20rpx;
}
.nearbyList .emptys {
display: flex;
flex-direction: column;
font-size: 28rpx;
color: #999999;
align-items: center;
justify-content: center;
margin-top: 75rpx;
}
.nearbyList .emptys image {
width: 360rpx;
height: 222rpx;
}
.nearbyList .emptys .emptysBtn {
font-size: 36rpx;
color: #FFFFFF;
width: 600rpx;
height: 90rpx;
background: linear-gradient(91deg, #FF7658 0%, #FF370B 100%);
border-radius: 100rpx 100rpx 100rpx 100rpx;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: center;
margin-top: 60rpx;
margin-bottom: 50rpx;
}
.tabCard {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 20rpx;
margin-top: 16rpx;
}
.tabCardItem {
font-size: 30rpx;
color: #222222;
position: relative;
}
.active {
position: relative;
color: #222222;
font-weight: 700;
}
.active::after {
content: '';
width: 52rpx;
height: 22rpx;
background: url(http://192.168.0.172:5500/com_active.png);
background-size: cover;
position: absolute;
left: 50%;
bottom: -20rpx;
transform: translateX(-50%);
}
.emptyAdd {
font-size: 36rpx;
color: #FFFFFF;
width: 600rpx;
height: 90rpx;
background: linear-gradient(91deg, #FF7658 0%, #FF370B 100%);
border-radius: 100rpx 100rpx 100rpx 100rpx;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: center;
margin-top: 60rpx;
margin-bottom: 40rpx;
}
.nearbyList_left,
.nearbyList_right {
margin-top: 20rpx;
padding-bottom: 20rpx;
}
.nearbyList_leftItem {
height: 230rpx;
width: 350rpx;
margin-bottom: 18rpx;
}
.nearbyList_leftItem image {
width: 100%;
height: 100%;
}
.nearbyList_rightItem {
width: 345rpx;
height: 148rpx;
margin-bottom: 20rpx;
}
.nearbyList_rightItem image {
width: 100%;
height: 100%;
}
.MsgList {
display: flex;
justify-content: space-between;
padding: 0 18rpx;
}
.MsgList_left,
.MsgList_right {
width: 345rpx;
margin-top: 46rpx;
}
.MsgList_leftItem {
border-radius: 20rpx 20rpx 20rpx 20rpx;
width: 345rpx;
height: auto;
padding-bottom: 20rpx;
background: #FFFFFF;
box-shadow: 0rpx 4rpx 4rpx 0rpx rgba(0, 0, 0, 0.05);
margin-bottom: 20rpx;
}
.MsgList_rightItem {
border-radius: 20rpx 20rpx 20rpx 20rpx;
width: 345rpx;
height: auto;
padding-bottom: 20rpx;
background: #FFFFFF;
box-shadow: 0rpx 4rpx 4rpx 0rpx rgba(0, 0, 0, 0.05);
margin-bottom: 20rpx;
}
.MsgList_leftItemImg,
.MsgList_rightItemImg {
width: 345rpx;
object-fit: cover;
height: auto;
display: block;
margin-bottom: 20rpx;
}
.MsgList_leftItemImg image,
.MsgList_rightItemImg image {
width: 100%;
height: auto;
display: block;
}
.MsgList_leftItemName {
font-size: 30rpx;
color: #222222;
margin-top: 20rpx;
line-height: 40rpx;
height: 80rpx;
/* 两行溢出隐藏 */
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
box-sizing: border-box;
padding: 0 14rpx;
}
.MsgList_leftItemMsg {
display: flex;
align-items: center;
margin-top: 7rpx;
box-sizing: border-box;
padding-left: 18rpx;
}
.MsgList_leftItemMsg_like {
display: flex;
align-items: center;
font-size: 22rpx;
color: #999999;
margin-right: 30rpx;
}
.MsgList_leftItemMsg_like image {
width: 22rpx;
height: 20rpx;
margin-right: 7rpx;
}
.MsgList_rightItemName {
font-size: 30rpx;
color: #222222;
margin-top: 20rpx;
line-height: 40rpx;
height: 80rpx;
/* 两行溢出隐藏 */
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
box-sizing: border-box;
padding: 0 14rpx;
}
.act1 {
display: flex;
width: 100%;
justify-content: space-between;
}
.act2 {
background-color: #fff;
margin-top: 20rpx;
}
.act2Item {
display: flex;
border-bottom: 1rpx solid #EBEBEB;
padding: 32rpx 20rpx;
}
.act2Item_left {
width: 180rpx;
height: 180rpx;
border-radius: 20rpx;
overflow: hidden;
margin-right: 20rpx;
}
.act2Item_left image {
width: 100%;
height: 100%;
}
.act2Item_right_Name {
font-size: 30rpx;
color: #000000;
line-height: 40rpx;
height: 80rpx;
/* 两行溢出隐藏 */
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
}
.act2Item_right_Msg {
font-size: 24rpx;
color: #999999;
margin-top: 7rpx;
}
.act2Item_right_Msg span {
color: #FF8520;
}
.act2Item_right_Btn_right {
font-size: 26rpx;
color: #FFFFFF;
width: 140rpx;
height: 40rpx;
background: #FF370B;
border-radius: 100rpx 100rpx 100rpx 100rpx;
display: flex;
align-items: center;
justify-content: center;
}
.act2Item_right_Btn_left {
display: flex;
font-size: 24rpx;
color: #222222;
align-items: center;
}
.act2Item_right_Btn_left image {
width: 80rpx;
height: 24rpx;
margin-right: 5rpx;
}
.act2Item_right_Btn_left span {
font-size: 36rpx;
color: #FF370B;
}
.act2Item_right_Btn {
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 12rpx;
}
.act4{
margin-top: 20rpx;
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: space-between;
}
.act4Item {
border-radius: 20rpx 20rpx 20rpx 20rpx;
width: 345rpx;
height: 512rpx;
background: #FFFFFF;
box-shadow: 0rpx 4rpx 4rpx 0rpx rgba(0, 0, 0, 0.05);
margin-bottom: 20rpx;
}
.act4Img {
width: 345rpx;
height: 300rpx;
}
.act4Name {
font-size: 30rpx;
color: #222222;
line-height: 40rpx;
height: 80rpx;
/* 两行溢出隐藏 */
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
box-sizing: border-box;
padding: 0 14rpx;
margin-top: 20rpx;
}
.act4Msg {
font-size: 24rpx;
color: #999999;
display: flex;
padding: 0 14rpx;
box-sizing: border-box;
margin-top: 10rpx;
}
.act4Msg span {
color: #FF8520;
}
.act4Price {
font-weight: 400;
font-size: 36rpx;
color: #FF370B;
display: flex;
align-items: center;
padding: 0 14rpx;
margin-top: 20rpx;
box-sizing: border-box;
}
.act4Price span{
font-size: 24rpx;
color: #222222;
}

View File

@ -1,248 +1,360 @@
<template>
<view class="container">
<u-notice-bar v-if="tipsList.length !== 0" :text="tipsList[0].title" :fontSize='28' @click="headerTipsClick" />
<view v-if="info.swiperList && info.swiperList.length !== 0">
<swiper class="banner" indicator-dots autoplay circular>
<swiper-item v-for="(item, index) in info.swiperList" :key="index">
<image class="banner_item" :src="item" mode="aspectFill" />
</swiper-item>
</swiper>
</view>
<view class="nav">
<u-grid col="4" :border="false">
<u-grid-item
v-for="(item, index) in navList"
@click="headerNavClick(item)"
:key="index"
>
<image class="grid_Pic" :src="item.pic" mode=""></image>
<text>{{item.desc}}</text>
</u-grid-item>
</u-grid>
</view>
<view class="line"></view>
<view class="sub_nav">
<view class="sub_nav_item" @click="repair">
<view class="sub_nav_item_desc">报事保修</view>
<view class="sub_nav_item_right">
<image class="sub_nav_item_pic" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group%203022.png" mode=""/>
</view>
</view>
<view class="sub_nav_item wy_pay" @click="NotOpen">
<view class="sub_nav_item_desc">物业缴费</view>
<view class="sub_nav_item_right">
<image class="sub_nav_item_pic" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_366.png" mode=""/>
</view>
</view>
<view class="sub_nav_item wy_pay2" @click="ReparirList">
<view class="sub_nav_item_desc">报修列表</view>
<view class="sub_nav_item_right">
<image class="sub_nav_item_pic" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/indexSubcontract/_assets/Repairwithone.png" mode=""/>
</view>
</view>
<view v-if="!isJoin" class="sub_nav_item tel_leave" @click="NotOpen">
<view class="sub_nav_item_desc">手机通行</view>
<view class="sub_nav_item_right">
<image class="sub_nav_item_pic" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_302.png" mode=""/>
</view>
</view>
</view>
</view>
</template>
<script>
import { request, picUrl, NavgateTo } from '../../../utils';
import { apiArr } from '../../../api/community';
export default {
data () {
return {
pageTitle: '',
id: '', // id
navList: [
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_345.png',
url: '/packages/community/applyOwer/index',
desc: '申请业主'
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_346.png',
desc: '我的车辆'
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_348.png',
desc: '社区活动'
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_347.png',
desc: '呼叫管家'
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_350.png',
desc: '访客登记'
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_351.png',
desc: '便民信息'
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_352.png',
desc: '物业缴费'
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_356.png',
desc: '便捷挪车'
},
],
mainList: [
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_349.png',
desc: '报事报修',
url:"/community/oneRepair/index"
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_350.png',
desc: '访客登记'
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_351.png',
desc: '便民信息'
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_352.png',
desc: '物业缴费'
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_353.png',
desc: '生活缴费'
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_354.png',
desc: '社区投票'
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_355.png',
desc: '租售信息'
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_356.png',
desc: '便捷挪车'
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_357.png',
desc: '一键报警'
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_358.png',
desc: '更多服务'
},
],
info: {},
tipsList: [],
isJoin: false, //
}
},
onLoad (options) {
this.pageTitle = options.title;
this.id = Number(options.id);
this.init(options.id);
},
methods: {
async getInfo (id) {
const res = await request(apiArr.info, "POST", {
community_id: Number(id)
}, { silent: false });
return res;
},
async getIsJoin (id) {
const res = await request(apiArr.isJoin, "POST", {
community_id: Number(id)
}, { silent: false });
return res;
},
async init(id) {
uni.showLoading({
title: '加载中',
mask: true
})
const [res, isJoinRes] = await Promise.all([
this.getInfo(id),
this.getIsJoin(id),
])
const newInfo = {
...res,
swiperList: res?.swiper_img ? res?.swiper_img.split(',').map((item) => picUrl+item): [],
}
console.log('newInfo', newInfo);
let navList = this.navList
navList[0].url = `/packages/community/applyOwer/index?id=${Number(id)}&title=${res.name}`;
navList[1].url = `/packages/community/mycar/index?id=${Number(id)}&title=${res.name}`;
this.info = newInfo;
this.navList = navList;
this.isJoin = isJoinRes.is_join;
uni.hideLoading();
uni.setNavigationBarTitle({
title: newInfo.name,
})
//
const tipsRes = await request(apiArr.tipsList, 'POST', {
community_id: Number(id),
page_num: 1,
page_size: 10,
})
this.tipsList = tipsRes?.rows || []
},
NotOpen() {
uni.showModal({
title: '提示',
content: '此功能暂未开通!',
showCancel: false,
})
return
},
//
headerTipsClick() {
NavgateTo(`/packages/community/notice/index?id=${this.id}&title=${this.pageTitle}`, { isLogin: false })
},
// item
headerNavClick(event) {
const { pageTitle } = this;
if(!event.url) {
this.NotOpen();
return
}
NavgateTo( `${event.url}?title=${pageTitle}`)
},
repair(){
NavgateTo(`/packages/community/oneRepair/index`)
},
ReparirList(){
NavgateTo(`/packages/community/repairList/index?id=${this.id}&title=${this.info.name}`)
},
},
}
</script>
<style>
@import url("./index.css");
<template>
<view class="container">
<view class="searchBox" :style="{ height: localHeight + 'px', paddingTop: top + 'px' }">
<view class="searchBox_add">
<img src="http://192.168.0.172:5500/com_communityIcon.png" alt="" />
我的房产
</view>
</view>
<div class="myRealEstate">
<div class="myRealEstates">
<image src="http://192.168.0.172:5500/com_communityNav.png" mode="aspectFill"></image>
<div class="name">滏阳锦苑</div>
<div class="Visitor">访客身份 点击立即入驻本社区</div>
</div>
<div class="Announcement">
<image src="http://192.168.0.172:5500/com_Announcement.png" mode="aspectFill"></image>
<div class="line"></div>
<div class="msg" @click="notice">
<div>asdasdasd</div>
<image src="http://192.168.0.172:5500/com_more.png" mode="aspectFill"></image>
</div>
</div>
</div>
<div class="navList">
<div class="navItem">
<image src="http://192.168.0.172:5500/com_NavIcon1.png" mode="aspectFill"></image>
物业服务
</div>
<div class="navItem" @click="repair">
<image src="http://192.168.0.172:5500/com_NavIcon2.png" mode="aspectFill"></image>
在线报修
</div>
<div class="navItem">
<image src="http://192.168.0.172:5500/com_NavIcon3.png" mode="aspectFill"></image>
物业缴费
</div>
<div class="navItem">
<image src="http://192.168.0.172:5500/com_NavIcon4.png" mode="aspectFill"></image>
物业公积
</div>
<div class="navItem">
<image src="http://192.168.0.172:5500/com_NavIcon5.png" mode="aspectFill"></image>
社区管家
</div>
<div class="navItem" @click="mores">
<image src="http://192.168.0.172:5500/com_NavIconMore.png" mode="aspectFill"></image>
更多
</div>
</div>
<div class="tabList">
<div class="tabItem tabItem1">
门禁通行
</div>
<div class="tabItem tabItem2">
人人爱净水
</div>
<div class="tabItem tabItem3">
馒头领取
</div>
</div>
<div class="nearbyTit">
<div>周边补贴公积金商家</div>
<div class="more">更多>>></div>
</div>
<div class="nearbyList">
<div class="emptys" v-if="false">
<image src="http://192.168.0.172:5500/com_nearbyList_empty.png" mode="aspectFill"></image>
周边暂无补贴公积金商家
<div class="emptysBtn">
商户申请入驻
</div>
</div>
<div class="nearbyList_left">
<div class="nearbyList_leftItem">
<image src="http://192.168.0.172:5500/com_nearbyImg1.png" mode="aspectFill"></image>
</div>
<div class="nearbyList_leftItem">
<image src="http://192.168.0.172:5500/com_nearbyImg1.png" mode="aspectFill"></image>
</div>
</div>
<div class="nearbyList_right">
<div class="nearbyList_rightItem">
<image src="http://192.168.0.172:5500/com_nearbyImg2.png" mode="aspectFill"></image>
</div>
<div class="nearbyList_rightItem">
<image src="http://192.168.0.172:5500/com_nearbyImg2.png" mode="aspectFill"></image>
</div>
<div class="nearbyList_rightItem">
<image src="http://192.168.0.172:5500/com_nearbyImg2.png" mode="aspectFill"></image>
</div>
</div>
</div>
<div class="tabCard">
<div @click="changeTab" data-active="0" :class="active == 0 ? 'active tabCardItem' : 'tabCardItem'">社区互动
</div>
<div @click="changeTab" data-active="1" :class="active == 1 ? 'active tabCardItem' : 'tabCardItem'">社区团购
</div>
<div @click="changeTab" data-active="2" :class="active == 2 ? 'active tabCardItem' : 'tabCardItem'">上门服务
</div>
<div @click="changeTab" data-active="3" :class="active == 3 ? 'active tabCardItem' : 'tabCardItem'">本地优选
</div>
</div>
<div class="MsgList">
<div v-if="active == 0" class="act1">
<div class="empty" >
<image src="http://192.168.0.172:5500/com_empty.png" mode="aspectFill"></image>
暂无信息
<div class="emptyAdd">发布社区互动信息</div>
</div>
<div class="MsgList_left" v-if="false">
<div class="MsgList_leftItem">
<div class="MsgList_leftItemImg">
<image src="http://192.168.0.172:5500/com_MsgImg1.png" mode="widthFix"></image>
</div>
<div class="MsgList_leftItemName">我家的小猫丢了谁看见了请联系我~</div>
<div class="MsgList_leftItemMsg">
<div class="MsgList_leftItemMsg_like">
<image src="http://192.168.0.172:5500/com_likeIcon.png" mode="aspectFill"></image>
134
</div>
<div class="MsgList_leftItemMsg_like">
<image src="http://192.168.0.172:5500/com_comIcon.png" mode="aspectFill"></image>
134
</div>
<div class="MsgList_leftItemMsg_like">
<image src="http://192.168.0.172:5500/com_shareIcon.png" mode="aspectFill"></image>
134
</div>
</div>
</div>
</div>
<div class="MsgList_right" v-if="false">
<div class="MsgList_rightItem">
<div class="MsgList_rightItemImg">
<image src="http://192.168.0.172:5500/com_MsgImg2.png" mode="widthFix"></image>
</div>
<div class="MsgList_rightItemName">
这几天准备去春游小区有人一起去么
</div>
<div class="MsgList_leftItemMsg">
<div class="MsgList_leftItemMsg_like">
<image src="http://192.168.0.172:5500/com_likeIcon.png" mode="aspectFill"></image>
134
</div>
<div class="MsgList_leftItemMsg_like">
<image src="http://192.168.0.172:5500/com_comIcon.png" mode="aspectFill"></image>
134
</div>
<div class="MsgList_leftItemMsg_like">
<image src="http://192.168.0.172:5500/com_shareIcon.png" mode="aspectFill"></image>
134
</div>
</div>
</div>
<div class="MsgList_rightItem">
<div class="MsgList_rightItemName">
这几天准备去春游小区有人一起去么
</div>
<div class="MsgList_leftItemMsg">
<div class="MsgList_leftItemMsg_like">
<image src="http://192.168.0.172:5500/com_likeIcon.png" mode="aspectFill"></image>
134
</div>
<div class="MsgList_leftItemMsg_like">
<image src="http://192.168.0.172:5500/com_comIcon.png" mode="aspectFill"></image>
134
</div>
<div class="MsgList_leftItemMsg_like">
<image src="http://192.168.0.172:5500/com_shareIcon.png" mode="aspectFill"></image>
134
</div>
</div>
</div>
</div>
</div>
<div v-if="active == 1" class="act2">
<div class="empty" >
<image src="http://192.168.0.172:5500/com_empty.png" mode="aspectFill"></image>
暂无信息
<div class="emptyAdd">发布社区互动信息</div>
</div>
<div class="act2Item" v-for="itme in 3">
<div class="act2Item_left">
<image src="http://192.168.0.172:5500/com_act2Img.png" mode="widthFix"></image>
</div>
<div class="act2Item_right">
<div class="act2Item_right_Name">约1.7~2.3/ 软糯甜香新鲜水果 玉米</div>
<div class="act2Item_right_Msg">
本社区已抢购 <span>1536</span>
</div>
<div class="act2Item_right_Btn">
<div class="act2Item_right_Btn_left">
<image src="http://192.168.0.172:5500/com_act2Ms.png" mode="widthFix"></image>
<span>5.58</span>
</div>
<div class="act2Item_right_Btn_right">
立即抢购
</div>
</div>
</div>
</div>
</div>
<div v-if="active == 2" class="act2">
<div class="empty" >
<image src="http://192.168.0.172:5500/com_empty.png" mode="aspectFill"></image>
暂无信息
<div class="emptyAdd">发布社区互动信息</div>
</div>
<div class="act2Item" v-for="itme in 3">
<div class="act2Item_left">
<image src="http://192.168.0.172:5500/com_act2Img.png" mode="widthFix"></image>
</div>
<div class="act2Item_right">
<div class="act2Item_right_Name">约1.7~2.3/ 软糯甜香新鲜水果 玉米</div>
<div class="act2Item_right_Msg">
本社区已抢购 <span>1536</span>
</div>
<div class="act2Item_right_Btn">
<div class="act2Item_right_Btn_left">
<span>5.58</span>
/
</div>
<div class="act2Item_right_Btn_right">
立即预定
</div>
</div>
</div>
</div>
</div>
<div v-if="active == 3" class="act4">
<div class="act4Item" v-for="itme in 4">
<div class="act4Img">
<image src="http://192.168.0.172:5500/com_act2Img.png" mode="aspectFill"></image>
</div>
<div class="act4Name">
舒克小苏打牙膏洁白细护120G
</div>
<div class="act4Msg">
本社区已抢购 <span>1536</span>
</div>
<div class="act4Price">
<span></span>
99.00
</div>
</div>
</div>
</div>
</view>
</template>
<script>
import {
request,
picUrl,
uniqueByField,
menuButtonInfo
} from '../../../utils';
import {
apiArr
} from '../../../api/community';
export default {
data() {
return {
top: "",
localHeight: "",
active: 0
}
},
onLoad(options) {
const meun = menuButtonInfo();
this.top = meun.top;
// this.top = meun.height + meun.top;
this.localHeight = meun.height;
},
methods: {
changeTab(e) {
const active = e.currentTarget.dataset.active;
this.active = active;
},
mores() {
uni.navigateTo({
url: '../serverList/index'
})
},
notice(){
uni.navigateTo({
url: '../notice/index'
})
},
repair(){
uni.navigateTo({
url: '../repairList/index'
})
},
},
}
</script>
<style>
@import url("./index.css");
</style>

View File

@ -1,51 +0,0 @@
<template>
<view class="container">
<rich-text :nodes="tipsInfo.details"/>
</view>
</template>
<script>
import { request } from '../../../utils';
import { apiArr } from '../../../api/community';
export default {
data() {
return {
tipsInfo: {}
}
},
methods: {
decodeHTMLEntities(html) {
const entities = {
'&lt;': '<',
'&gt;': '>',
'&amp;': '&',
'&quot;': '"',
'&apos;': "'",
'&#39;': "'",
'&#x2F;': '/',
};
return html.replace(/&(lt|gt|amp|quot|apos|#39|#x2F);/g, (match) => entities[match] || match);
},
},
onLoad(options) {
let _this = this;
console.log('13212313', options);
uni.setNavigationBarTitle({
title: options.title,
})
request(apiArr.oneTips, 'POST', {
news_id: Number(options.id),
}).then((res) => {
const decodedString = _this.decodeHTMLEntities(res.details);
res.details = decodedString;
this.tipsInfo = res;
})
},
}
</script>
<style>
</style>

View File

@ -1,12 +1,322 @@
.container {
background: #F9F9F9;
overflow: hidden;
}
.banner {
margin: 0 20rpx;
}
.main {
background: #FFFFFF;
/* margin-bottom: 82rpx; */
min-height: calc( 100vh - 180rpx - 82rpx);
page {
background-color: #F6F6FA;
}
.container {
display: flex;
flex-direction: column;
min-height: calc(100vh - 120rpx);
width: 100%;
}
.searchBox {
display: flex;
align-items: center;
padding: 0 20rpx;
/* margin-top: 35rpx; */
justify-content: space-between;
background-color: #fff;
}
.searchBox_add {
display: flex;
align-items: center;
font-weight: 400;
font-size: 30rpx;
color: #000000;
}
.searchBox_add2{
font-size: 36rpx;
font-weight: 700;
}
.searchBox_add image {
width: 30rpx;
height: 30rpx;
margin-right: 16rpx;
}
.myRealEstate {
font-weight: 700;
padding-top: 36rpx;
font-weight: normal;
font-size: 36rpx;
color: #222222;
text-align: center;
background-color: #fff;
padding-bottom: 40rpx;
}
.myRealEstate .btn {
width: 600rpx;
height: 90rpx;
background: linear-gradient(91deg, #FF7658 0%, #FF370B 100%);
border-radius: 100rpx 100rpx 100rpx 100rpx;
font-weight: normal;
font-size: 36rpx;
color: #FFFFFF;
font-weight: 700;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto;
margin-top: 30rpx;
}
.nearby {
padding: 0 20rpx;
margin-top: 20rpx;
background-color: #fff;
padding-top: 20rpx;
box-sizing: border-box;
flex: 1;
}
.nearbyTit {
display: flex;
justify-content: space-between;
}
.nearbyTit_left {
font-size: 36rpx;
color: #222222;
font-weight: 700;
}
.nearbyTit_right {
font-size: 26rpx;
color: #999999;
display: flex;
align-items: center;
}
.nearbyTit_right image {
width: 30rpx;
height: 30rpx;
margin-right: 10rpx;
}
.empty {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-weight: normal;
font-size: 28rpx;
color: #999999;
margin-top: 110rpx;
}
.empty image {
width: 366rpx;
height: 226rpx;
margin-bottom: 27rpx;
}
.communityItem {
border-bottom: 1rpx solid #EBEBEB;
margin-top: 32rpx;
}
.communityItem_msg {
font-size: 26rpx;
color: #999999;
margin-top: 20rpx;
padding-bottom: 30rpx;
}
.communityItem_Box {
display: flex;
}
.communityItem_Box_left {
width: 180rpx;
overflow: hidden;
height: 180rpx;
border-radius: 20rpx 20rpx 20rpx 20rpx;
margin-right: 20rpx;
}
.communityItem_Box_left image {
width: 100%;
height: 100%;
}
.communityItem_Box_right {
flex: 1;
}
.communityItem_Box_right_tit {
font-size: 32rpx;
color: #222222;
margin-bottom: 8rpx;
}
.communityItem_Box_right_com {
font-size: 26rpx;
color: #555555;
margin-top: 8rpx;
height: 72rpx;
line-height: 36rpx;
-webkit-line-clamp: 2;
/* 限制显示 2 行 */
-webkit-box-orient: vertical;
/* 垂直排列 */
overflow: hidden;
/* 超出部分隐藏 */
text-overflow: ellipsis;
display: -webkit-box;
}
.communityItem_Box_right_msg {
margin-top: 14rpx;
}
.communityItem_Box_right_msg_right {
width: 140rpx;
height: 40rpx;
background: #FF370B;
border-radius: 100rpx 100rpx 100rpx 100rpx;
font-size: 26rpx;
color: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
}
.communityItem_Box_right_msg {
display: flex;
align-items: center;
justify-content: space-between;
}
.communityItem_Box_right_msg_left {
display: flex;
align-items: center;
}
.communityItem_Box_right_msg_left1 {
width: 110rpx;
height: 40rpx;
background: rgba(255, 81, 42, 0.1);
border-radius: 100rpx 100rpx 100rpx 100rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 22rpx;
color: #555555;
margin-right: 20rpx;
}
.communityItem_Box_right_msg_left1 image {
width: 24rpx;
height: 24rpx;
margin-right: 10rpx;
}
.communityItem_Box_right_msg_left2 {
width: 110rpx;
height: 40rpx;
background: #FFF2DA;
border-radius: 100rpx 100rpx 100rpx 100rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 22rpx;
color: #555555;
}
.communityItem_Box_right_msg_left2 image {
width: 24rpx;
height: 24rpx;
margin-right: 10rpx;
}
.myRealEstates {
width: 710rpx;
height: 200rpx;
margin: 0 auto;
position: relative;
}
.myRealEstates image {
width: 100%;
height: 100%;
object-fit: cover;
position: absolute;
z-index: 1;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.name {
font-size: 50rpx;
color: #FFFFFF;
text-shadow: 0px 2px 2px rgba(0, 0, 0, 0.6);
text-align: center;
position: relative;
z-index: 2;
padding-top: 24rpx;
}
.Visitor {
font-weight: normal;
font-size: 24rpx;
color: #FFFFFF;
width: 380rpx;
display: flex;
align-items: center;
justify-content: center;
height: 52rpx;
margin: 0 auto;
margin-top: 30rpx;
position: relative;
z-index: 2;
background: rgba(0, 0, 0, 0.3);
border-radius: 10rpx 10rpx 10rpx 10rpx;
}
.Householder {
font-weight: normal;
font-size: 24rpx;
color: #FFFFFF;
white-space: nowrap;
padding: 9rpx 36rpx;
margin: 0 auto;
margin-top: 30rpx;
position: relative;
z-index: 2;
background: rgba(0, 0, 0, 0.3);
border-radius: 10rpx 10rpx 10rpx 10rpx;
display: inline-block;
}
.addRealEstateList{
height: auto;
background-color: #fff;
padding-bottom: 40rpx;
margin-bottom: 20rpx;
}
.addRealEstate {
margin-top: 54rpx;
font-size: 36rpx;
color: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
width: 600rpx;
height: 90rpx;
background: linear-gradient(91deg, #FF7658 0%, #FF370B 100%);
border-radius: 100rpx 100rpx 100rpx 100rpx;
margin: 0 auto;
}

View File

@ -1,186 +1,139 @@
<template>
<view class="container">
<search @search="headerSearch" />
<view v-if="pageType">
<swiper class="banner" indicator-dots autoplay circular>
<swiper-item v-for="(item, index) in bannerList" :key="index">
<image class="banner_item" :src="item.pic" mode="" />
</swiper-item>
</swiper>
</view>
<view class="main">
<tabularCard
v-for="(item,index) in list"
:key="index"
:item="item"
:type="pageType"
:isLast="index === list.length -1"
:joinType="joinType"
@chooseCommunity="chooseCommunity"
/>
</view>
<nav-footer />
</view>
</template>
<script>
import { request, picUrl, uniqueByField } from '../../../utils';
import { apiArr } from '../../../api/community';
export default {
data() {
return {
pageType: 2,
page_num: 1,
page_size: 10,
list: [],
bannerList: [{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_62.png'
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_62.png'
},
{
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_62.png'
},
],
blurdesc: '', //
flag: false,
choose: true,
joinType: "2"
}
},
onLoad(options) {
console.log('1231', options);
//
uni.setNavigationBarTitle({
title: options.title || '社区列表'
})
this.pageType = options?.type || '';
this.joinType = options?.joinType || '2'
// types === 2
if(options?.types == 2){
this.init(options?.type || '');
}else{
this.getUserCommunity()
}
},
methods: {
//
headerSearch(item) {
console.log('1', item);
let value = item.detail.__args__[0].value;
console.log('12112313221', value)
this.blurdesc = value;
this.page_num = 1;
this.flag = false,
this.list = [],
this.init();
},
async init(type) {
console.log('12313', this);
const {
list,
page_num,
page_size,
blurdesc
} = this;
let url;
// type
if (type) {
url = 'bianming'
} else {
url = apiArr.list
}
const res = await request(url, 'POST', {
page_num,
page_size,
name: blurdesc || ''
});
console.log('11231321', res);
let flag = false;
if (res?.rows && res?.rows?.length == this.page_size) {
flag = true
} else {
flag = false
}
res?.rows && res?.rows.forEach(item => {
item.pic = picUrl + item.pic
});
console.log('变更后的', res);
this.list = list.concat(res.rows || []),
this.page_num = this.page_num + 1;
this.flag = flag;
},
async getUserCommunity() {
const { page_num, page_size, blurdesc } = this;
let param = {
page_num,
page_size,
};
if (blurdesc !== '') {
param = {
page_num,
page_size,
name: blurdesc,
};
}
const res = await request(apiArr.getUserCommunity, 'POST', param);
console.log('reeee', res);
let communityList = []
if(res?.rows){
communityList = uniqueByField(res.rows,'community_id')
}
communityList = communityList.map( item => item.community)
if(communityList.length == 0){
this.init(this.pageType || '');
}else{
communityList.forEach(item => {
item.pic = picUrl + item.pic
});
console.log('变更后的', communityList);
this.list = communityList;
}
},
chooseCommunity(e){
console.log(e,'eeeee');
return;
// let community_id = e.detail
const pages = getCurrentPages();
if (pages.length < 2) return; //
const prevPage = pages[pages.length - 2]; //
// updateData
if (prevPage.updateData) {
prevPage.updateData(e.detail);
}
},
},
onReachBottom() {
if (this.flag) {
this.init(this.pageType);
};
},
}
</script>
<style>
@import url("./index.css");
<template>
<view class="container">
<view class="addRealEstateList" :style="{paddingTop: 54 + top + 'px'}">
<div class="addRealEstate" @click="apply">
申请入驻 / 新增房产
</div>
</view>
<view class="searchBox" :style="{height: localHeight + 'px',paddingTop: top + 'px'}" v-if="false">
<view class="searchBox_add">
<img src="http://192.168.0.172:5500/com_communityIcon.png" alt="" />
我的房产
</view>
</view>
<view class="searchBox" >
<view class="searchBox_add2">
我的房产
</view>
</view>
<div class="myRealEstate">
<div class="myRealEstateEmpty" v-if="false">
抱歉您尚未绑定任何房产
<div class="btn" @click="apply">
商户申请入驻
</div>
</div>
<div class="myRealEstates">
<image src="http://192.168.0.172:5500/com_communityNav.png" mode="aspectFill"></image>
<div class="name">滏阳锦苑</div>
<div class="Visitor" v-if="false">访客身份 点击立即入驻本社区</div>
<div class="Householder">
3号楼 2单元 17 1706 | 1 | 物业公积金55.68
</div>
</div>
</div>
<div class="nearby">
<div class="nearbyTit">
<div class="nearbyTit_left">附近已开通的小区</div>
<div class="nearbyTit_right">
<image src="http://192.168.0.172:5500/com_searchIcon.png" alt="" mode="aspectFill" />
搜索
</div>
</div>
<div class="empty" v-if="false">
<image src="http://192.168.0.172:5500/com_empty.png" alt="" mode="aspectFill" />
暂无信息
</div>
<div class="communityList">
<div class="communityItem" v-for="item in 3">
<div class="communityItem_Box">
<div class="communityItem_Box_left">
<image src="http://192.168.0.172:5500/test.png" alt="" mode="aspectFill" />
</div>
<div class="communityItem_Box_right">
<div class="communityItem_Box_right_tit">滏阳锦苑</div>
<div class="communityItem_Box_right_com">物业公司河北锦绣繁华物业管理有限公司物 业管理有限公司</div>
<div class="communityItem_Box_right_msg">
<div class="communityItem_Box_right_msg_left">
<div class="communityItem_Box_right_msg_left1">
<image src="http://192.168.0.172:5500/com_navigationIcon.png" mode="aspectFill"></image>
导航
</div>
<div class="communityItem_Box_right_msg_left2">
<image src="http://192.168.0.172:5500/com_phoneIconIcon.png" mode="aspectFill"></image>
电话
</div>
</div>
<div class="communityItem_Box_right_msg_right" @click="desc">进入小区</div>
</div>
</div>
</div>
<div class="communityItem_msg">
河北省衡水市桃城区红旗大街与河阳路交叉口西北300米东车辆入口
</div>
</div>
</div>
</div>
</view>
</template>
<script>
import {
request,
picUrl,
uniqueByField,
menuButtonInfo
} from '../../../utils';
import {
apiArr
} from '../../../api/community';
export default {
data() {
return {
top: "",
localHeight: "",
}
},
onLoad(options) {
const meun = menuButtonInfo();
this.top = meun.top;
// this.top = meun.height + meun.top;
this.localHeight = meun.height;
},
methods: {
desc(){
uni.navigateTo({
url:"../communityDetail/index"
})
},
apply(){
uni.navigateTo({
url:"../applyOwer/index"
})
},
},
}
</script>
<style>
@import url("./index.css");
</style>

View File

@ -1,73 +1,385 @@
.container {
background: #F9F9F9;
overflow: hidden;
}
.main {
margin-top: 7rpx;
margin-bottom: 50rpx;
background: #FFFFFF;
}
.item {
height: 129rpx;
display: flex;
align-items: center;
margin: 0 20rpx;
border-bottom: 1rpx solid #E6E6E6;
}
.no_border {
border-bottom: none;
}
.left_pic {
width: 60rpx;
height: 60rpx;
margin-right: 21rpx;
}
.center {
width: 428rpx;
}
.title {
white-space: nowrap; /* 强制文本在一行内显示 */
overflow: hidden; /* 隐藏超出容器的文本 */
text-overflow: ellipsis;
font-weight: 400;
font-size: 26rpx;
color: #222222;
}
.center_bottom {
margin-top: 10rpx;
display: flex;
justify-content: space-between;
}
.center_bottom_item {
display: flex;
align-items: center;
}
.center_bottom_item_pic {
width: 24rpx;
height: 24rpx;
margin-right: 10rpx;
}
.center_bottom_item_desc {
font-weight: 400;
font-size: 22rpx;
color: #999999;
}
.right {
flex: 1;
display: flex;
justify-content: flex-end;
}
.right_pic {
width: 12rpx;
height: 26rpx;
margin-right: 21rpx;
page {
background-color: #F6F6FA;
}
.container {
display: flex;
flex-direction: column;
min-height: calc(100vh - 120rpx);
width: 100%;
}
.searchBox {
display: flex;
align-items: center;
padding: 0 20rpx;
/* margin-top: 35rpx; */
justify-content: space-between;
background-color: #fff;
}
.searchBox_add {
display: flex;
align-items: center;
font-weight: 400;
font-size: 30rpx;
color: #000000;
}
.searchBox_add image {
width: 30rpx;
height: 30rpx;
margin-right: 16rpx;
}
.myRealEstate {
font-weight: 700;
padding-top: 36rpx;
font-weight: normal;
font-size: 36rpx;
color: #222222;
text-align: center;
background-color: #fff;
padding-bottom: 27rpx;
}
.myRealEstate .btn {
width: 600rpx;
height: 90rpx;
background: linear-gradient(91deg, #FF7658 0%, #FF370B 100%);
border-radius: 100rpx 100rpx 100rpx 100rpx;
font-weight: normal;
font-size: 36rpx;
color: #FFFFFF;
font-weight: 700;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto;
margin-top: 30rpx;
}
.nearby {
padding: 0 20rpx;
margin-top: 20rpx;
background-color: #fff;
padding-top: 20rpx;
box-sizing: border-box;
flex: 1;
}
.nearbyTit {
display: flex;
justify-content: space-between;
}
.nearbyTit_left {
font-size: 36rpx;
color: #222222;
font-weight: 700;
}
.nearbyTit_right {
font-size: 26rpx;
color: #999999;
display: flex;
align-items: center;
}
.nearbyTit_right image {
width: 30rpx;
height: 30rpx;
}
.empty {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-weight: normal;
font-size: 28rpx;
color: #999999;
margin-top: 110rpx;
width: 100%;
}
.empty image {
width: 366rpx;
height: 226rpx;
margin-bottom: 27rpx;
}
.communityItem {
border-bottom: 1rpx solid #EBEBEB;
margin-top: 32rpx;
}
.communityItem_msg {
font-size: 26rpx;
color: #999999;
margin-top: 20rpx;
padding-bottom: 30rpx;
}
.communityItem_Box {
display: flex;
}
.communityItem_Box_left {
width: 180rpx;
overflow: hidden;
height: 180rpx;
border-radius: 20rpx 20rpx 20rpx 20rpx;
margin-right: 20rpx;
}
.communityItem_Box_left image {
width: 100%;
height: 100%;
}
.communityItem_Box_right {
flex: 1;
}
.communityItem_Box_right_tit {
font-size: 32rpx;
color: #222222;
margin-bottom: 8rpx;
}
.communityItem_Box_right_com {
font-size: 26rpx;
color: #555555;
margin-top: 8rpx;
height: 72rpx;
line-height: 36rpx;
-webkit-line-clamp: 2;
/* 限制显示 2 行 */
-webkit-box-orient: vertical;
/* 垂直排列 */
overflow: hidden;
/* 超出部分隐藏 */
text-overflow: ellipsis;
display: -webkit-box;
}
.communityItem_Box_right_msg {
margin-top: 14rpx;
}
.communityItem_Box_right_msg_right {
width: 140rpx;
height: 40rpx;
background: #FF370B;
border-radius: 100rpx 100rpx 100rpx 100rpx;
font-size: 26rpx;
color: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
}
.communityItem_Box_right_msg {
display: flex;
align-items: center;
justify-content: space-between;
}
.communityItem_Box_right_msg_left {
display: flex;
align-items: center;
}
.communityItem_Box_right_msg_left1 {
width: 110rpx;
height: 40rpx;
background: rgba(255, 81, 42, 0.1);
border-radius: 100rpx 100rpx 100rpx 100rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 22rpx;
color: #555555;
margin-right: 20rpx;
}
.communityItem_Box_right_msg_left1 image {
width: 24rpx;
height: 24rpx;
margin-right: 10rpx;
}
.communityItem_Box_right_msg_left2 {
width: 110rpx;
height: 40rpx;
background: #FFF2DA;
border-radius: 100rpx 100rpx 100rpx 100rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 22rpx;
color: #555555;
}
.communityItem_Box_right_msg_left2 image {
width: 24rpx;
height: 24rpx;
margin-right: 10rpx;
}
.myRealEstateEmpty {
display: flex;
}
.myRealEstates {
width: 710rpx;
height: 200rpx;
margin: 0 auto;
position: relative;
}
.myRealEstates image {
width: 100%;
height: 100%;
object-fit: cover;
position: absolute;
z-index: 1;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.name {
font-size: 50rpx;
color: #FFFFFF;
text-shadow: 0px 2px 2px rgba(0, 0, 0, 0.6);
text-align: center;
position: relative;
z-index: 2;
padding-top: 24rpx;
}
.Visitor {
font-weight: normal;
font-size: 24rpx;
color: #FFFFFF;
width: 380rpx;
display: flex;
align-items: center;
justify-content: center;
height: 52rpx;
margin: 0 auto;
margin-top: 30rpx;
position: relative;
z-index: 2;
background: rgba(0, 0, 0, 0.3);
border-radius: 10rpx 10rpx 10rpx 10rpx;
}
.tabList {
display: flex;
align-items: center;
justify-content: space-between;
padding: 20rpx;
box-sizing: border-box;
width: 100%;
font-weight: normal;
font-size: 30rpx;
color: #222222;
background-color: #f6f6fa;
}
.active {
position: relative;
color: #222222;
font-weight: 700;
}
.active::after {
content: '';
width: 52rpx;
height: 22rpx;
background: url(http://192.168.0.172:5500/com_active.png);
background-size: cover;
position: absolute;
left: 50%;
bottom: -20rpx;
transform: translateX(-50%);
}
.ConList{
background-color: #fff;
}
.ConItem {
display: flex;
padding: 30rpx 0;
margin: 0 20rpx;
box-sizing: border-box;
border-bottom: 1rpx solid #EBEBEB;;
}
.ConItem_left {
width: 180rpx;
height: 160rpx;
margin-right: 20rpx;
}
.ConItem_right {
flex: 1;
}
.ConItem_right_tit {
font-size: 32rpx;
color: #222222;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.ConItem_right_time {
font-size: 26rpx;
color: #999999;
margin-top: 10rpx;
}
.ConItem_right_msg {
display: flex;
align-items: center;
margin-top: 30rpx;
}
.ConItem_right_msg2 {
font-weight: normal;
font-size: 24rpx;
color: #FFFFFF;
width: 80rpx;
height: 36rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 24rpx;
color: #FFFFFF;
border-radius: 5rpx 5rpx 5rpx 5rpx;
background: #FF370B;
margin-right: 13rpx;
}
.ConItem_right_msg1 {
width: 80rpx;
height: 36rpx;
background: #D9D9D9;
border-radius: 5rpx 5rpx 5rpx 5rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 24rpx;
color: #222222;
}

View File

@ -1,104 +1,99 @@
<template>
<view class="container">
<view class="main">
<view :class="['item', index === tipsList.length - 1 && 'no_border']" v-for="(item, index ) in tipsList" :key="index" :data-item="item" @click="headerNoticeClick">
<image class="left_pic" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/ConvenServer/_assets/Group_476.png" mode=""/>
<view class="center">
<view class="title">{{item.title}}</view>
<view class="center_bottom">
<view class="center_bottom_item">
<image class="center_bottom_item_pic" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/location.png" mode=""/>
<view class="center_bottom_item_desc">{{title}}</view>
</view>
<view class="center_bottom_item">
<image class="center_bottom_item_pic" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Alarm-clock.png" mode=""/>
<view class="center_bottom_item_desc">{{item.intro}}</view>
</view>
</view>
</view>
<view class="right">
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/more.primary.12x22.png" mode="" class="right_pic"/>
</view>
</view>
</view>
</view>
</template>
<script>
import { request, NavgateTo } from '../../../utils';
import { apiArr } from '../../../api/community';
export default {
data() {
return {
isOnshow: false,
noticeList: [],
page_num: 1,
tipsList: [],
title: '',
id: '',
}
},
methods: {
async init(id) {
const res = await request(apiArr.tipsList, 'POST', {
community_id: Number(id),
page_num: this.page_num || 1,
page_size: 10,
});
let flag = false;
if (res?.rows && res?.rows?.length == this.page_size) {
flag = true
} else {
flag = false
}
console.log('ressss', res);
this.tipsList = this.tipsList.concat(res?.rows || []);
this.page_num = this.page_num + 1;
this.flag = flag;
this.isOnshow = true;
},
headerNoticeClick(event) {
const { item } = event.currentTarget.dataset;
NavgateTo(`/packages/community/desc/desc?id=${item.news_id}&title=${item.title}`)
},
},
onLoad(options) {
//
uni.setNavigationBarTitle({
title: options.title,
})
this.title = options?.title;
this.id = options?.id;
this.init(options.id);
},
onShow() {
if (this.isOnshow) {
this.page_num = 1;
this.tipsList = [];
this.flag = false;
this.init(this.id);
}
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
if (this.flag) {
this.init(this.id);
}
},
}
</script>
<style>
@import url("./index.css");
</style>
<template>
<view class="container">
<view class="searchBox" :style="{ height: localHeight + 'px', paddingTop: top + 'px' }">
<view class="searchBox_add">
<u-icon bold color="#000" size="40" name="arrow-left" @click="back"></u-icon>
</view>
</view>
<div class="myRealEstate">
<div class="myRealEstates">
<image src="http://192.168.0.172:5500/com_communityNav.png" mode="aspectFill"></image>
<div class="name">滏阳锦苑</div>
<div class="Visitor">访客身份 点击立即入驻本社区</div>
</div>
</div>
<div class="tabList">
<div @click="changeTab(0)" :class="active == 0 ? 'active' : ''">全部公告</div>
<div @click="changeTab(1)" :class="active == 1 ? 'active' : ''">安全消防</div>
<div @click="changeTab(2)" :class="active == 2 ? 'active' : ''">小区通知</div>
<div @click="changeTab(3)" :class="active == 3 ? 'active' : ''">社区活动</div>
<div @click="changeTab(4)" :class="active == 4 ? 'active' : ''">党建</div>
</div>
<div class="ConList">
<div class="ConItem" v-for="item in 3" @click="desc">
<div class="ConItem_left">
<image src="http://192.168.0.172:5500/com_act2Img.png" mode="aspectFill"></image>
</div>
<div class="ConItem_right">
<div class="ConItem_right_tit">关于小区停车场治理通告</div>
<div class="ConItem_right_time">2025年5月27日 11:14:29</div>
<div class="ConItem_right_msg">
<div class="ConItem_right_msg2">
最新
</div>
<div class="ConItem_right_msg1">
置顶
</div>
</div>
</div>
</div>
</div>
</view>
</template>
<script>
import {
request,
picUrl,
uniqueByField,
menuButtonInfo
} from '../../../utils';
import {
apiArr
} from '../../../api/community';
export default {
data() {
return {
top: "",
localHeight: "",
active: 0
}
},
onLoad(options) {
const meun = menuButtonInfo();
this.top = meun.top;
// this.top = meun.height + meun.top;
this.localHeight = meun.height;
},
methods: {
changeTab(index) {
this.active = index;
},
back() {
uni.navigateBack({
delta: 1
});
},
desc(){
uni.navigateTo({
url: '../noticeDesc/index'
});
},
},
}
</script>
<style>
@import url("./index.css");
</style>

View File

@ -0,0 +1,306 @@
page {
background-color: #F6F6FA;
}
.container {
display: flex;
flex-direction: column;
min-height: calc(100vh - 120rpx);
width: 100%;
}
.searchBox {
display: flex;
align-items: center;
padding: 0 20rpx;
/* margin-top: 35rpx; */
justify-content: space-between;
background-color: #fff;
}
.searchBox_add {
display: flex;
align-items: center;
font-weight: 400;
font-size: 30rpx;
color: #000000;
}
.searchBox_add image {
width: 30rpx;
height: 30rpx;
margin-right: 16rpx;
}
.myRealEstate {
font-weight: 700;
padding-top: 36rpx;
font-weight: normal;
font-size: 36rpx;
color: #222222;
text-align: center;
background-color: #fff;
padding-bottom: 27rpx;
}
.myRealEstate .btn {
width: 600rpx;
height: 90rpx;
background: linear-gradient(91deg, #FF7658 0%, #FF370B 100%);
border-radius: 100rpx 100rpx 100rpx 100rpx;
font-weight: normal;
font-size: 36rpx;
color: #FFFFFF;
font-weight: 700;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto;
margin-top: 30rpx;
}
.nearby {
padding: 0 20rpx;
margin-top: 20rpx;
background-color: #fff;
padding-top: 20rpx;
box-sizing: border-box;
flex: 1;
}
.nearbyTit {
display: flex;
justify-content: space-between;
}
.nearbyTit_left {
font-size: 36rpx;
color: #222222;
font-weight: 700;
}
.nearbyTit_right {
font-size: 26rpx;
color: #999999;
display: flex;
align-items: center;
}
.nearbyTit_right image {
width: 30rpx;
height: 30rpx;
}
.empty {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-weight: normal;
font-size: 28rpx;
color: #999999;
margin-top: 110rpx;
width: 100%;
}
.empty image {
width: 366rpx;
height: 226rpx;
margin-bottom: 27rpx;
}
.communityItem {
border-bottom: 1rpx solid #EBEBEB;
margin-top: 32rpx;
}
.communityItem_msg {
font-size: 26rpx;
color: #999999;
margin-top: 20rpx;
padding-bottom: 30rpx;
}
.communityItem_Box {
display: flex;
}
.communityItem_Box_left {
width: 180rpx;
overflow: hidden;
height: 180rpx;
border-radius: 20rpx 20rpx 20rpx 20rpx;
margin-right: 20rpx;
}
.communityItem_Box_left image {
width: 100%;
height: 100%;
}
.communityItem_Box_right {
flex: 1;
}
.communityItem_Box_right_tit {
font-size: 32rpx;
color: #222222;
margin-bottom: 8rpx;
}
.communityItem_Box_right_com {
font-size: 26rpx;
color: #555555;
margin-top: 8rpx;
height: 72rpx;
line-height: 36rpx;
-webkit-line-clamp: 2;
/* 限制显示 2 行 */
-webkit-box-orient: vertical;
/* 垂直排列 */
overflow: hidden;
/* 超出部分隐藏 */
text-overflow: ellipsis;
display: -webkit-box;
}
.communityItem_Box_right_msg {
margin-top: 14rpx;
}
.communityItem_Box_right_msg_right {
width: 140rpx;
height: 40rpx;
background: #FF370B;
border-radius: 100rpx 100rpx 100rpx 100rpx;
font-size: 26rpx;
color: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
}
.communityItem_Box_right_msg {
display: flex;
align-items: center;
justify-content: space-between;
}
.communityItem_Box_right_msg_left {
display: flex;
align-items: center;
}
.communityItem_Box_right_msg_left1 {
width: 110rpx;
height: 40rpx;
background: rgba(255, 81, 42, 0.1);
border-radius: 100rpx 100rpx 100rpx 100rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 22rpx;
color: #555555;
margin-right: 20rpx;
}
.communityItem_Box_right_msg_left1 image {
width: 24rpx;
height: 24rpx;
margin-right: 10rpx;
}
.communityItem_Box_right_msg_left2 {
width: 110rpx;
height: 40rpx;
background: #FFF2DA;
border-radius: 100rpx 100rpx 100rpx 100rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 22rpx;
color: #555555;
}
.communityItem_Box_right_msg_left2 image {
width: 24rpx;
height: 24rpx;
margin-right: 10rpx;
}
.myRealEstateEmpty {
display: flex;
}
.myRealEstates {
width: 710rpx;
height: 200rpx;
margin: 0 auto;
position: relative;
}
.myRealEstates image {
width: 100%;
height: 100%;
object-fit: cover;
position: absolute;
z-index: 1;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.name {
font-size: 50rpx;
color: #FFFFFF;
text-shadow: 0px 2px 2px rgba(0, 0, 0, 0.6);
text-align: center;
position: relative;
z-index: 2;
padding-top: 24rpx;
}
.Visitor {
font-weight: normal;
font-size: 24rpx;
color: #FFFFFF;
width: 380rpx;
display: flex;
align-items: center;
justify-content: center;
height: 52rpx;
margin: 0 auto;
margin-top: 30rpx;
position: relative;
z-index: 2;
background: rgba(0, 0, 0, 0.3);
border-radius: 10rpx 10rpx 10rpx 10rpx;
}
.Tit {
font-size: 40rpx;
color: #222222;
text-align: center;
margin-top: 20rpx;
margin-bottom: 5rpx;
}
.subTit {
font-size: 24rpx;
color: #999999;
text-align: center;
margin-bottom: 30rpx;
}
.Con{
padding: 0 20rpx;
box-sizing: border-box;
}

View File

@ -0,0 +1,72 @@
<template>
<view class="container">
<view class="searchBox" :style="{ height: localHeight + 'px', paddingTop: top + 'px' }">
<view class="searchBox_add">
<u-icon bold color="#000" size="40" name="arrow-left" @click="back"></u-icon>
</view>
</view>
<div class="myRealEstate">
<div class="myRealEstates">
<image src="http://192.168.0.172:5500/com_communityNav.png" mode="aspectFill"></image>
<div class="name">滏阳锦苑</div>
<div class="Visitor">访客身份 点击立即入驻本社区</div>
</div>
</div>
<div class="Tit">再生资源回收让我们一起行动起来</div>
<div class="subTit">衡水繁花似锦物业管理有限公司 2025年6月6日10:37:27</div>
<div class="Con">
再生资源回收是一项对我们社会和小区都有益的活动通过回收再利用废纸废金属废塑料废玻璃和废电子产品等再生资源我们不仅可以保护环境还能为我们的小区带来诸多好处
</div>
</view>
</template>
<script>
import {
request,
picUrl,
uniqueByField,
menuButtonInfo
} from '../../../utils';
import {
apiArr
} from '../../../api/community';
export default {
data() {
return {
top: "",
localHeight: "",
active: 0
}
},
onLoad(options) {
const meun = menuButtonInfo();
this.top = meun.top;
// this.top = meun.height + meun.top;
this.localHeight = meun.height;
},
methods: {
changeTab(index) {
this.active = index;
},
back() {
uni.navigateBack({
delta: 1
});
},
},
}
</script>
<style>
@import url("./index.css");
</style>

View File

@ -1,208 +1,222 @@
.box {
background-color: #fff;
}
.nav-box {
box-sizing: border-box;
width: 100%;
z-index: 2;
background: #F9F9F9;
padding-bottom: 25rpx;
}
.nav-box .nav-bar {
display: flex;
align-items: center;
}
.nav-box .nav-bar .nav-bar-left,
.nav-box .nav-bar .nav-bar-right {
padding: 0 20rpx;
min-width: 36rpx;
}
.nav-box .nav-bar .nav-bar-left van-icon {
vertical-align: sub;
color: #333333;
}
.nav-box .nav-bar .nav-bar-title {
flex: 1;
text-align: center;
font-weight: 400;
font-size: 36rpx;
color: #000000;
}
.nav-box .nav-bar-title {}
.information {
padding-top: 30rpx;
padding-left: 20rpx;
padding-right: 20rpx;
}
.information .title {
font-weight: bold;
font-size: 32rpx;
color: #222222;
margin-bottom: 25rpx;
}
.information_row {
padding-top: 30rpx;
padding-bottom: 30rpx;
border-bottom: 2rpx solid #E6E6E6;
display: flex;
align-items: center;
justify-content: space-between;
}
.information_tit {
font-weight: 400;
font-size: 26rpx;
color: #999999;
}
.information_ipt {
font-weight: 400;
font-size: 26rpx;
text-align: right;
color: #222222;
}
.information_ipt_pla {
font-weight: 400;
font-size: 26rpx;
color: #999999;
text-align: right;
}
.noneBorder {
border-bottom: none !important;
position: relative;
}
.gray {
height: 20rpx;
background-color: #F9F9F9;
}
.containerMsg {
padding-top: 30rpx;
padding-bottom: 30rpx;
}
.containerMsg .title {
font-weight: 400;
font-size: 26rpx;
color: #222222;
}
.uploadImg {
padding-top: 30rpx;
padding-left: 20rpx;
padding-right: 20rpx;
padding-bottom: 30rpx;
}
.uploadImg .title {
font-weight: 400;
font-size: 26rpx;
color: #222222;
}
.btn {
font-weight: 400;
font-size: 36rpx;
color: #FFFFFF;
width: 650rpx;
height: 80rpx;
background: #FF512A;
border-radius: 100rpx 100rpx 100rpx 100rpx;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto;
margin-top: 40rpx;
}
.sucess {
display: flex;
flex-direction: column;
justify-content: center;
}
.sucess #sucess {
width: 250rpx;
height: 257rpx;
margin: 0 auto;
margin-top: 185rpx;
}
.sucess_msgTit {
font-weight: 400;
font-size: 36rpx;
color: #222222;
margin-top: 45rpx;
text-align: center;
}
.sucess_msg {
font-weight: 400;
font-size: 28rpx;
color: #999999;
margin-top: 30rpx;
text-align: center;
}
.sucess #msg {
/* width: 186rpx; */
/* height: 33rpx; */
margin: 0 auto;
margin-top: 73rpx;
font-weight: 400;
font-size: 26rpx;
color: #FF512A;
text-decoration: underline;
/* line-height: 30rpx; */
}
.van-cell {
padding: 0 !important;
margin-top: 10rpx !important;
}
.van-field__control--textarea {
/* height:238rpx !important; */
}
.rows {
display: flex;
justify-content: space-between;
align-items: center;
padding: 30rpx 0;
margin: 0 20rpx;
border-bottom: 1rpx solid #E6E6E6 ;
}
.rows_tit{
font-weight: 400;
font-size: 26rpx;
color: #222222;
}
.rows .rows_con{
flex: 1;
text-align: right;
}
.timeBox{
display: flex;
align-items: center;
flex: 1;
justify-content: flex-end;
page {
background-color: #f6f7fb;
}
.searchBox {
padding-bottom: 24rpx;
background-color: #fff;
}
.searchBox_add {
height: 100%;
width: 100%;
display: flex;
}
.searchBox_left {
flex: 1;
display: flex;
align-items: center;
padding-left: 20rpx;
}
.searchBox_mid {
flex: 1;
font-size: 40rpx;
color: #222222;
text-align: center;
display: flex;
align-items: center;
justify-content: center;
}
.searchBox_right {
flex: 1;
}
.repairMsg {
margin: 30rpx 20rpx 20rpx;
box-sizing: border-box;
padding: 25rpx 20rpx;
border-radius: 20rpx 20rpx 20rpx 20rpx;
background-color: #fff;
}
.repairTit {
font-size: 32rpx;
color: #222222;
display: flex;
box-sizing: border-box;
margin-bottom: 27rpx;
}
.repairTit span {
color: #FF0000;
font-size: 32rpx;
}
.label {
font-size: 28rpx;
color: #999999;
}
.roomList {
display: flex;
flex-wrap: wrap;
align-items: center;
margin-top: 20rpx;
}
.roomItem {
width: 276rpx;
height: 54rpx;
background: #FFF5F5;
border-radius: 10rpx 10rpx 10rpx 10rpx;
border: 1rpx solid #FF370B;
display: flex;
align-items: center;
justify-content: center;
font-size: 28rpx;
color: #222222;
margin-right: 30rpx;
margin-bottom: 28rpx;
}
.roomItem:nth-child(2n) {
margin-right: 0;
}
.row {
display: flex;
padding-top: 30rpx;
}
.row_label {
font-size: 28rpx;
color: #999999;
width: 180rpx;
}
.row_con {
padding-bottom: 30rpx;
box-sizing: border-box;
border-bottom: 1rpx solid #EBEBEB;
flex: 1;
display: flex;
justify-content: space-between;
}
.active {
position: relative;
}
.active::after {
content: '';
position: absolute;
right: 0;
bottom: -2rpx;
width: 30rpx;
height: 30rpx;
background: url(http://192.168.0.172:5500/com_activeIcon.png);
background-size: 100% 100%;
}
.noneBorder .row_con {
border-bottom: none;
}
.repairMedia {
width: 710rpx;
height: 336rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
margin: 0 auto;
margin-top: 20rpx;
box-sizing: border-box;
padding: 30rpx 20rpx;
}
.u-upload {
width: 120rpx !important;
height: 120rpx !important;
background: #F6F7FB !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
border-radius: 10rpx 10rpx 10rpx 10rpx !important;
border: 1rpx solid #D1D1D1 !important;
}
.u-upload__button {
width: 100% !important;
height: 100% !important;
margin-right: 0 !important;
margin-bottom: 0 !important;
}
.u-upload__wrap {
width: 100% !important;
height: 100% !important;
}
.df {
display: flex;
align-items: center;
padding-top: 0;
margin-bottom: 30rpx;
}
.imgCon {
font-size: 18rpx;
color: #222222;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 120rpx;
height: 120rpx;
}
.imgCon image {
width: 34rpx;
height: 34rpx;
margin-bottom: 8rpx;
}
.videoCon {
width: 120rpx;
height: 120rpx;
font-size: 18rpx;
color: #222222;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.videoCon image {
width: 40rpx;
height: 26rpx;
margin-bottom: 8rpx;
}
.btn {
font-size: 36rpx;
color: #FFFFFF;
width: 600rpx;
height: 90rpx;
background: linear-gradient(91deg, #FF7658 0%, #FF370B 100%);
border-radius: 100rpx 100rpx 100rpx 100rpx;
margin: 0 auto;
margin-top: 65rpx;
display: flex;
align-items: center;
justify-content: center;
}
page{
padding-bottom: 0;
}

View File

@ -1,422 +1,185 @@
<template>
<view class="container">
<view class="box">
<!-- 报修 -->
<view v-if="sucess">
<view class="rows">
<view class="rows_tit">报修小区</view>
<view class="rows_con">
<input type="text" placeholder="请选择报修小区" disabled @click="chooseCom" :value="CommunityInfo.name" />
</view>
</view>
<view class="rows">
<view class="rows_tit">楼宇号</view>
<view class="rows_con">
<input type="text" :value="FacName" placeholder="请选择楼宇号" @click="chooseFac" data-type="1" disabled />
</view>
</view>
<view class="rows">
<view class="rows_tit">房间号</view>
<view class="rows_con">
<input type="text" :value="RoomName" placeholder="请选择房间号" @click="chooseFac" data-type="2" disabled />
</view>
</view>
<view class="rows">
<view class="rows_tit">提交类型</view>
<view class="rows_con">
<input type="text" :value="currentType.text" placeholder="请选择提交类型" @click="changeShow" disabled />
</view>
</view>
<view class="rows">
<view class="rows_tit">报修人</view>
<view class="rows_con">
<input type="text" placeholder="请输入报修人" :value="Name" data-name='Name' @input="headerInputClick" />
</view>
</view>
<view class="rows">
<view class="rows_tit">报修人电话</view>
<view class="rows_con">
<input type="number" maxlength="11" placeholder="请输入报修人电话" :value="Phone" data-name='Phone' @input="headerInputClick" />
</view>
</view>
<view class="information">
<view class="containerMsg" v-if="currentType.value && currentType.value == 1">
<view class="title">报修内容</view>
<u--textarea :value="Msg" @input="headerInputClick2" data-name="Msg" placeholder="请输入留言" maxlength='50' count border="none" />
</view>
<view class="containerMsg" v-if="currentType.value && currentType.value == 2">
<view class="title">意见反馈</view>
<u-textarea :value="Msg" @input="headerInputClick2" data-name="Msg" autoHeight placeholder="请输入留言" maxlength='50' count border="none" />
</view>
<view class="gray"></view>
<view class="uploadImg">
<view class="title">图片上传</view>
<view style="margin-top: 20rpx;">
<u-upload
:fileList="fileList"
maxCount="6"
@beforeRead="beforeRead"
@afterRead="beforeRead"
@delete="deleteImg"
uploadIcon="plus"
/>
</view>
</view>
<view class="gray"></view>
<view class="information_row noneBorder">
<view class="information_tit">期望上门时间</view>
<view class="timeBox" @click="switchShow">
<view class="information_ipt" v-if="time">
{{time}}
</view>
<u-icon name="arrow-right" size="32" color="#D5AC66" />
</view>
</view>
</view>
<view class="btn" @click="submit">提交</view>
</view>
<!-- 报修成功 -->
<view v-if="!sucess" class="sucess">
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/water_filter/maintenance_sucess.png"
mode="widthFix" id="sucess" />
<view class="sucess_msgTit">提交成功</view>
<view class="sucess_msg">1条报修内容已提交成功</view>
<!-- <image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/water_filter/maintennace_msg.png" mode="widthFix" id="msg"/> -->
<!-- <view id="msg" bind:tap="desc">
查看报修详情>>
</view> -->
</view>
</view>
<u-datetime-picker
:show="DoorTimeShow"
mode="datetime"
:minDate="minDate"
:formatter="formatter"
@confirm="onInput"
@cancel="onClose"
/>
<u-picker :show="show" :columns="columns" keyName="name" @confirm="confirm" @cancel="onClose" />
</view>
</template>
<script>
import {
request,
picUrl,
NavgateTo,
upload,
isPhone,
} from '../../../utils';
import {
apiArr
} from '../../../api/community';
export default {
data() {
return {
value: '',
fileList: [],
fileList2: [],
CommunityInfo: {}, //
FacId: "", //
FacName: "",
RoomId: "",
RoomName: "",
Name: "", //
Phone: "", //
Msg: "", //
time: "", //
DoorTimeShow: false,
sucess: true, //
minDate: new Date().getTime(),
formatter(type, value) {
if (type === 'year') {
return `${value}`;
}
if (type === 'month') {
return `${value}`;
}
if (type === 'day') {
return `${value}`;
}
return value;
},
columns: [
[{
name: "报事报修",
type: 1
},
{
name: "意见反馈",
type: 2
},
]
],
show: false,
currentType: {}
}
},
methods: {
chooseCom(){
NavgateTo(`/packages/community/index/index?joinType=3`)
},
chooseFac(e){
console.log('eeee', e);
const { type } = e.currentTarget.dataset;
if(type == '1'){
NavgateTo(`/packages/community/chooseMsg/index?type=${type}&id=${this.CommunityInfo.id}`);
}else{
console.log(this.FacId);
if(this.FacId){
NavgateTo(`/packages/community/chooseMsg/index?type=${type}&id=${this.CommunityInfo.id}&FacId=${this.FacId}`);
}else{
uni.showToast({
title: '请先选择楼宇号',
icon:"none"
})
}
}
},
changeShow(){
this.show = true;
},
confirm(e){
console.log('eee', e)
let pickerValue = {
text: e.value[0].name,
value: e.value[0].type
}
this.currentType = pickerValue;
this.Msg = '',
this.show = false;
},
onClose(){
this.show = false;
this.DoorTimeShow = false;
},
//
beforeRead(e){
console.log(e);
let that = this
upload(e.file.url,(res)=>{
let datas = JSON.parse(res)
console.log(datas.data);
let url = picUrl + datas.data.path
let fileList = this.fileList
let fileList2 = this.fileList2
let obj = {
url:url,
name:'avatar'
}
let obj2 = {
url:datas.data.path,
name:'avatar'
}
fileList.push(obj);
fileList2.push(obj2);
this.fileList = fileList;
this.fileList2 = fileList2;
})
},
switchShow(){
this.DoorTimeShow = true;
},
headerInputClick(e) {
console.log('e', e);
const { name } = e.currentTarget.dataset;
const { value } = e.detail;
this[name] = value;
},
headerInputClick2(e) {
this.Msg = e;
},
onInput(event){
const date = new Date(event.value); // Date
const year = date.getFullYear(); //
const month = date.getMonth() + 1; // 0 +1
const day = date.getDate(); //
const hours =date.getHours()
const minutes = date.getMinutes();
const time = `${year}-${month}-${day} ${hours}:${minutes}`;
console.log(time);
this.time = time;
this.DoorTimeShow = false;
},
async submit(){
console.log('123131', this);
if(!this.CommunityInfo.name){
uni.showToast({
title: '请选择小区',
icon:"none"
})
return
}
if(!this.FacName){
uni.showToast({
title: '请选择楼宇号',
icon:"none"
})
return
}
if(!this.RoomName){
uni.showToast({
title: '请选择楼宇号',
icon:"none"
})
return
}
if(!this.Name){
uni.showToast({
title: '请输入报修人',
icon:"none"
})
return
}
if(!this.currentType){
uni.showToast({
title: '请选择提交类型',
icon:"none"
})
return
}
if(!this.Phone){
uni.showToast({
title: '请输入报修人电话',
icon:"none"
})
return
}
if(!isPhone(this.Phone)){
uni.showToast({
title: '请输入正确电话号',
icon:"none"
})
return
}
if(!this.Msg){
uni.showToast({
title: '请填写报修内容/意见反馈',
icon:"none"
})
return
}
if(this.fileList2.length === 0){
uni.showToast({
title: '请上传图片信息',
icon:"none"
})
return
}
if(!this.time){
uni.showToast({
title: '请选择上门时间',
icon:"none"
})
return
}
let photos = this.fileList2.map(item=>item.url).join(',');
const res = await request(apiArr.submit, 'POST', {
community_id: this.CommunityInfo.id,
facility_id: this.FacId,
room_id: this.RoomId,
hope_order_time: this.time,
mobile: this.Phone,
user_name: this.Name,
photos,
title: this.currentType.text,
current_remark: '',
details: this.Msg,
type: this.currentType.value,
}, {silent: true, nested: true});
console.log('1231', res);
if(res.code == 1){
// if(res.msg == ''){
uni.showToast({
title: '创建反馈信息成功' || res.msg,
icon:"none"
})
this.sucess = !this.sucess;
uni.removeStorageSync('FacName');
uni.removeStorageSync('FacId');
uni.removeStorageSync('RoomName');
uni.removeStorageSync('RoomId');
uni.removeStorageSync('currentCommunity');
uni.removeStorageSync('currentCommunityId');
}
},
},
onLoad(options) {
},
onShow() {
let RoomName = uni.getStorageSync('RoomName')
let RoomId = uni.getStorageSync('RoomId')
let FacName = uni.getStorageSync('FacName')
let FacId = uni.getStorageSync('FacId')
let currentCommunity = uni.getStorageSync('currentCommunity')
let currentCommunityId = uni.getStorageSync('currentCommunityId')
let CommunityInfo = {
id: currentCommunityId,
name: currentCommunity
};
this.RoomName = RoomName;
this.RoomId = RoomId;
this.FacName = FacName;
this.FacId = FacId;
this.CommunityInfo = CommunityInfo;
},
}
</script>
<style>
@import url("./index.css");
<template>
<div class="container">
<div class="searchBox" :style="{ height: localHeight + 'px', paddingTop: top + 'px' }">
<div class="searchBox_add">
<div class="searchBox_left">
<u-icon bold color="#000" size="40" name="arrow-left" @click="back"></u-icon>
</div>
<div class="searchBox_mid">报修信息</div>
<div class="searchBox_right"></div>
</div>
</div>
<div class="repairMsg">
<div class="repairTit">
<span>*</span>报修信息
</div>
<div class="label">选择房源信息</div>
<div class="roomList">
<div :class="active == '1'?'roomItem active':'roomItem'" @click="changeAct(1)">1号楼1单位101</div>
<div :class="active == '2'?'roomItem active':'roomItem'" @click="changeAct(2)">1号楼1单位101</div>
<div :class="active == '3'?'roomItem active':'roomItem'" @click="changeAct(3)">1号楼1单位101</div>
<div :class="active == '4'?'roomItem active':'roomItem'" @click="changeAct(4)">1号楼1单位101</div>
</div>
<div class="row">
<div class="row_label">报修类型</div>
<div class="row_con" @click="chose">
<input type="text" placeholder="请选择报修类型" disabled>
<u-icon bold color="#999999" size="30" name="arrow-right"></u-icon>
</div>
</div>
<div class="row">
<div class="row_label">问题描述</div>
<div class="row_con">
<input type="text" placeholder="请描述故障">
</div>
</div>
<div class="row">
<div class="row_label">联系人</div>
<div class="row_con">
<input type="text" placeholder="请输入您的姓名">
</div>
</div>
<div class="row">
<div class="row_label">联系电话</div>
<div class="row_con">
<input type="text" placeholder="请输入您的联系方式">
</div>
</div>
<div class="row noneBorder">
<div class="row_label">上门时间</div>
<div class="row_con" @click="choseTime">
<input type="text" placeholder="请选择上门时间" disabled>
<u-icon bold color="#999999" size="30" name="arrow-right"></u-icon>
</div>
</div>
</div>
<div class="repairMedia">
<div class="row df">
<div class="row_label">上传图片</div>
<div class="row_con2">
<u-upload :fileList="imgList" @afterRead="afterReadImg" @delete="deletePic" name="1" multiple
:maxCount="10">
<div class="imgCon">
<image src="http://192.168.0.172:5500/com_imageImg.png" mode="widthFix"></image>
上传图片
</div>
</u-upload>
</div>
</div>
<div class="row df">
<div class="row_label">上传视频</div>
<div class="row_con2">
<u-upload :fileList="videoList" @afterRead="afterReadVideo" @delete="deletePic" name="1"
:maxCount="1" accept="video">
<div class="videoCon">
<image src="http://192.168.0.172:5500/com_videoImg.png" mode="widthFix"></image>
上传视频
</div>
</u-upload>
</div>
</div>
</div>
<u-picker :show="show" :columns="columns" @confirm="confirm1" @cancel="cancel1"></u-picker>
<u-datetime-picker :show="show2" v-model="time" mode="datetime" @confirm="confirm2"
@cancel="cancel2"></u-datetime-picker>
<div class="btn">确认报修</div>
</div>
</template>
<script>
import {
request,
picUrl,
NavgateTo,
upload,
isPhone,
menuButtonInfo
} from '../../../utils';
import {
apiArr
} from '../../../api/community';
export default {
data() {
return {
active:"1",
top: "",
localHeight: "",
columns: ["家具维修"],
show: false,
show2: false,
time: new Date().getTime(),
imgList: [],
videoList: [],
}
},
methods: {
back() {
uni.navigateBack({
delta: 1
});
},
chose() {
console.log(123);
this.show = true;
},
cancel1() {
this.show = false;
},
confirm1(e) {
console.log(e);
this.show = false;
},
choseTime() {
this.show2 = true;
},
cancel2() {
this.show2 = false;
},
confirm2(e) {
console.log(e);
this.show2 = false;
},
afterReadImg(e){
console.log(e);
console.log(123);
},
afterReadVideo(){},
changeAct(e){
this.active = e;
},
},
onLoad(options) {
const meun = menuButtonInfo();
this.top = meun.top;
this.localHeight = meun.height;
},
onShow() {
},
}
</script>
<style>
@import url("./index.css");
</style>

View File

@ -1,306 +1,119 @@
.box {
background-color: #F9F9F9;
min-height: 100vh;
}
.nav-box {
box-sizing: border-box;
width: 100%;
z-index: 2;
background: #F9F9F9;
padding-bottom: 25rpx;
}
.nav-box .nav-bar {
display: flex;
align-items: center;
}
.nav-box .nav-bar .nav-bar-left,
.nav-box .nav-bar .nav-bar-right {
padding: 0 20rpx;
min-width: 36rpx;
}
.nav-box .nav-bar .nav-bar-left van-icon {
vertical-align: sub;
color: #333333;
}
.nav-box .nav-bar .nav-bar-title {
flex: 1;
text-align: center;
font-weight: 400;
font-size: 36rpx;
color: #000000;
}
.tabItem {
font-weight: 400;
font-size: 28rpx;
color: #555555;
flex: 1;
display: flex;
align-items: center;
justify-content: center;
}
.active {
position: relative;
font-weight: bold;
font-size: 32rpx;
color: #222222;
}
.active::after {
content: '';
width: 130rpx;
height: 10rpx;
background: #FF512A;
border-radius: 0rpx 0rpx 0rpx 0rpx;
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: -8rpx;
}
.active::before {
content: '';
width: 120rpx;
height: 4rpx;
background: #FF5D73;
border-radius: 0rpx 0rpx 0rpx 0rpx;
filter: blur(12rpx);
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: -18rpx;
}
.InfoMsg {
background-color: #fff;
margin-bottom: 20rpx;
}
.InfoMsg {
padding-left: 20rpx;
padding-right: 20rpx;
padding-top: 30rpx;
padding-bottom: 4rpx;
}
.InfoMsg_tit {
font-weight: bold;
font-size: 32rpx;
color: #222222;
margin-bottom: 40rpx;
}
.InfoMsg_info {
display: flex;
align-items: center;
font-weight: 400;
font-size: 26rpx;
color: #999999;
margin-bottom: 30rpx;
}
.InfoMsg_info text {
color: #222222;
margin-left: 30rpx;
}
.InfoItem {
background-color: #fff;
padding-top: 30rpx;
padding-left: 20rpx;
padding-right: 20rpx;
padding-bottom: 30rpx;
}
.InfoItem_tit {
font-weight: bold;
font-size: 32rpx;
color: #222222;
margin-bottom: 40rpx;
}
.InfoItem_msg {
display: flex;
font-weight: 400;
font-size: 26rpx;
white-space: nowrap;
margin-bottom: 30rpx;
color: #222222;
}
.InfoItem_msg:last-child {
margin-bottom: 0;
}
.InfoItem_msg text {
color: #999999;
width: 140rpx;
}
.maintenance_progress {
background-color: #fff;
padding: 60rpx 20rpx;
box-sizing: border-box;
box-sizing: border-box;
}
.progress {
width: 100%;
height: 100%;
background: rgba(249, 249, 249, 0.6);
border-radius: 30rpx 30rpx 30rpx 30rpx;
margin: 0 auto;
padding-left: 80rpx;
padding-top: 60rpx;
padding-bottom: 66rpx;
}
.progress_step_cir {
width: 28rpx;
height: 28rpx;
background: rgba(255, 81, 42, 0.2);
border-radius: 0rpx 0rpx 0rpx 0rpx;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
margin-right: 30rpx;
}
.progress_step_cir2 {
width: 18rpx;
height: 18rpx;
background: #FF512A;
border-radius: 50%;
box-sizing: border-box;
}
.progress_step_time {
font-weight: 400;
font-size: 28rpx;
color: #222222;
position: relative;
display: flex;
align-items: center;
}
.progress_step_msg {
font-weight: 400;
font-size: 24rpx;
color: #FF512A;
border-left: 2rpx dashed #C4C4C4;
padding-left: 44rpx;
box-sizing: border-box;
margin-left: 14rpx;
margin-top: 6rpx;
margin-bottom: 12rpx;
padding-top: 16rpx;
padding-bottom: 45rpx;
}
.progress_step_msg2 {
font-weight: 400;
font-size: 24rpx;
color: #555555;
border-left: 2rpx dashed #C4C4C4;
padding-left: 44rpx;
box-sizing: border-box;
margin-left: 14rpx;
margin-top: 6rpx;
margin-bottom: 12rpx;
padding-top: 16rpx;
padding-bottom: 45rpx;
}
.progress_step_person {
width: 498rpx;
height: 143rpx;
background: #FFECE7;
border-radius: 20rpx 20rpx 20rpx 20rpx;
margin-top: 20rpx;
display: flex;
align-items: center;
justify-content: space-between;
padding-right: 30rpx;
padding-left: 40rpx;
}
.personAva {
width: 76rpx;
height: 76rpx;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
background-color: #fff;
margin-right: 20rpx;
}
.personAva image {
width: 59rpx;
height: 59rpx;
}
.personCall {
width: 36rpx;
height: 36rpx;
}
.personCall image {
width: 100%;
height: 100%;
}
.personInfo_name {
font-weight: 400;
font-size: 28rpx;
color: #222222;
display: flex;
align-items: center;
}
.personInfo_name text {
margin-right: 10rpx;
}
.personInfo_name image {
width: 20rpx;
height: 20rpx;
margin-right: 3rpx;
}
.personInfo_phone {
font-weight: 400;
font-size: 22rpx;
color: #999999;
}
.progress_step_person_left {
display: flex;
align-items: center;
}
.imgList {
display: flex;
align-items: center;
flex-wrap: wrap;
}
.imgList image {
width: 120rpx !important;
height: 120rpx !important;
margin-right: 20rpx;
margin-bottom: 20rpx;
page {
background-color: #f6f7fb;
}
.searchBox {
padding-bottom: 24rpx;
background-color: #fff;
}
.searchBox_add {
height: 100%;
width: 100%;
display: flex;
}
.searchBox_left {
flex: 1;
display: flex;
align-items: center;
padding-left: 20rpx;
}
.searchBox_mid {
flex: 1;
font-size: 40rpx;
color: #222222;
text-align: center;
display: flex;
align-items: center;
justify-content: center;
}
.searchBox_right {
flex: 1;
}
.repairMsg {
margin: 20rpx;
box-sizing: border-box;
padding: 25rpx 20rpx;
border-radius: 20rpx 20rpx 20rpx 20rpx;
background-color: #fff;
}
page {
padding-bottom: 60rpx;
}
.orderItemTit {
display: flex;
background: linear-gradient(304deg, #FFFFFF 0%, #FFF6E6 100%);
border-radius: 20rpx 20rpx 0rpx 0rpx;
height: 85rpx;
justify-content: space-between;
padding: 0 20rpx;
align-items: center;
box-sizing: border-box;
}
.orderItemTit_state1 {
background: linear-gradient(304deg, #FFFFFF 0%, #FFF6E6 100%);
}
.orderItemTit_state2 {
background: linear-gradient(280deg, #FFFFFF 0%, #FFE7E7 100%);
}
.orderItemTit_state3 {
background: linear-gradient(290deg, #FFFFFF 0%, #EDEDED 100%);
}
.orderItemTit_state4 {
background: linear-gradient(280deg, #FFFFFF 0%, #FFE7E7 100%);
}
.row {
display: flex;
padding: 0 20rpx;
justify-content: center;
padding-top: 30rpx;
}
.row_label {
font-size: 28rpx;
color: #999999;
width: 190rpx;
}
.row_con {
font-size: 28rpx;
color: #222222;
padding-bottom: 30rpx;
border-bottom: 1rpx solid #EBEBEB;
flex: 1;
display: flex;
align-items: center;
flex-wrap: wrap;
}
.row_con image {
width: 120rpx;
height: 120rpx;
border-radius: 10rpx 10rpx 10rpx 10rpx;
margin-right: 20rpx;
}
.noneBor{
border-bottom: none;
}
.df{
display: flex;
align-items: center;
}

View File

@ -1,91 +1,176 @@
<template>
<view class="box">
<view class="tabList">
</view>
<!-- 维修进度 -->
<!-- 维修详情 -->
<view class="InfoList">
<view class="InfoMsg">
<view class="InfoMsg_tit">基本信息</view>
<view class="InfoMsg_info">联系人: <text>{{info.user_name}}</text> </view>
<view class="InfoMsg_info">联系电话: <text>{{info.mobile}}</text> </view>
<view class="InfoMsg_info">期望上门时间: <text>{{info.hope_order_time}}</text> </view>
</view>
<view class="InfoItem">
<view class="InfoItem_tit">报修内容</view>
<!-- <view class="InfoItem_msg"><text>故障描述</text>净水机不出水</view> -->
<view class="InfoItem_msg"><text>故障小区</text> {{info.community.name}}/{{info.facility.name }}/{{info.room.name}}
</view>
<view class="InfoItem_msg"><text>报修内容</text>
{{Info.details}}
</view>
<view class="InfoItem_msg"><text>故障图片</text>
<view class="imgList">
<image :src="item" mode='' v-for="(item, index) in imgList" @click="lookMore" :data-url="item" :key="index" />
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import { request, picUrl } from '../../../utils';
import {
apiArr
} from '../../../api/community';
export default {
data() {
return {
id: "",
info: "",
imgList: []
}
},
methods: {
async init() {
const res = await request(apiArr.getInfoById, 'POST', {
feed_id: this.id
});
let imgList = []
imgList = this.processApiData(res.photos);
this.info = res;
this.imgList = imgList;
},
lookMore(e) {
uni.previewImage({
urls: this.imgList,
current: e.currentTarget.dataset.url
})
},
processApiData(apiData) {
let arr = apiData.split(',');
console.log('123131 arr', arr);
for (let index = 0; index < arr.length; index++) {
arr[index] = picUrl + arr[index]
}
return arr
},
},
onLoad(options) {
this.id = Number(options.id);
uni.setNavigationBarTitle({
title: options.title,
});
this.init()
},
}
</script>
<style>
@import url("./index.css");
<template>
<div class="container">
<div class="searchBox" :style="{ height: localHeight + 'px', paddingTop: top + 'px' }">
<div class="searchBox_add">
<div class="searchBox_left">
<u-icon bold color="#000" size="40" name="arrow-left" @click="back"></u-icon>
</div>
<div class="searchBox_mid">报修信息</div>
<div class="searchBox_right"></div>
</div>
</div>
<div class="repairMsg">
<div class="orderItemTit orderItemTit_state1" v-if="false">
<div class="orderItemTit_left">工单编号123456789145</div>
<div class="orderItemTit_right">2025-06-04 16:27:35</div>
</div>
<div class="orderItemTit orderItemTit_state2" v-if="true">
<div class="orderItemTit_left">工单编号123456789145</div>
<div class="orderItemTit_right">2025-06-04 16:27:35</div>
</div>
<div class="orderItemTit orderItemTit_state3" v-if="false">
<div class="orderItemTit_left">工单编号123456789145</div>
<div class="orderItemTit_right">2025-06-04 16:27:35</div>
</div>
<div class="orderItemTit orderItemTit_state4" v-if="false">
<div class="orderItemTit_left">工单编号123456789145</div>
<div class="orderItemTit_right">2025-06-04 16:27:35</div>
</div>
<div class="row">
<div class="row_label">小区房源名称</div>
<div class="row_con">世纪名城1号楼1单元101</div>
</div>
<div class="row">
<div class="row_label">报修类型</div>
<div class="row_con">家具维修</div>
</div>
<div class="row">
<div class="row_label">问题描述</div>
<div class="row_con">门坏了</div>
</div>
<div class="row">
<div class="row_label">联系人</div>
<div class="row_con">高尚</div>
</div>
<div class="row">
<div class="row_label">联系电话</div>
<div class="row_con">15901518415</div>
</div>
<div class="row">
<div class="row_label">上门时间</div>
<div class="row_con">2025-06-12 12:00</div>
</div>
</div>
<div class="repairMsg">
<div class="row">
<div class="row_label df">图片</div>
<div class="row_con">
<image v-for="item in 3" src="http://192.168.0.172:5500/com_communityNav.png" mode="aspectFill">
</image>
</div>
</div>
<div class="row">
<div class="row_label df">视频</div>
<div class="row_con">
<image src="http://192.168.0.172:5500/com_communityNav.png" mode="aspectFill"></image>
</div>
</div>
<div class="row">
<div class="row_label">指派时间</div>
<div class="row_con noneBor">2025-06-12 12:00</div>
</div>
</div>
<div class="repairMsg">
<div class="row">
<div class="row_label">维修师傅</div>
<div class="row_con">
刘师傅
</div>
</div>
<div class="row">
<div class="row_label">师傅手机号</div>
<div class="row_con">
13445667552
</div>
</div>
<div class="row">
<div class="row_label">师傅工号</div>
<div class="row_con noneBor">123456789</div>
</div>
</div>
<div class="repairMsg">
<div class="row">
<div class="row_label df">维修图片</div>
<div class="row_con">
<image v-for="item in 3" src="http://192.168.0.172:5500/com_communityNav.png" mode="aspectFill">
</image>
</div>
</div>
<div class="row">
<div class="row_label df">维修视频</div>
<div class="row_con">
<image src="http://192.168.0.172:5500/com_communityNav.png" mode="aspectFill"></image>
</div>
</div>
<div class="row">
<div class="row_label">维修描述</div>
<div class="row_con noneBor">大门坏了文案文案文案文案</div>
</div>
</div>
</div>
</template>
<script>
import {
request,
picUrl,
NavgateTo,
upload,
isPhone,
menuButtonInfo
} from '../../../utils';
import {
apiArr
} from '../../../api/community';
export default {
data() {
return {
active: "1",
top: "",
localHeight: "",
}
},
methods: {
back() {
uni.navigateBack({
delta: 1
});
},
changeAct(e) {
this.active = e;
},
},
onLoad(options) {
const meun = menuButtonInfo();
this.top = meun.top;
this.localHeight = meun.height;
},
onShow() {
},
}
</script>
<style>
@import url("./index.css");
</style>

View File

@ -1,215 +1,161 @@
.box {
background-color: #F9F9F9;
display: flex;
flex-direction: column;
min-height: 90vh;
}
.nav-box {
box-sizing: border-box;
width: 100%;
z-index: 2;
background: #F9F9F9;
padding-bottom: 25rpx;
}
.nav-box .nav-bar {
display: flex;
align-items: center;
}
.nav-box .nav-bar .nav-bar-left,
.nav-box .nav-bar .nav-bar-right {
padding: 0 20rpx;
min-width: 36rpx;
}
.nav-box .nav-bar .nav-bar-left van-icon {
vertical-align: sub;
color: #333333;
}
.nav-box .nav-bar .nav-bar-title {
flex: 1;
text-align: center;
font-weight: 400;
font-size: 36rpx;
color: #000000;
}
.nav-bar-right {
display: none;
}
.van-tab {
font-size: 28rpx !important;
color: #555555 !important;
}
.tabList {
display: flex;
align-items: center;
margin-left: 20rpx;
background-color: #fff;
padding-top: 40rpx;
padding-bottom: 20rpx;
box-sizing: border-box;
}
.tabItem {
font-weight: 400;
font-size: 28rpx;
color: #555555;
margin-right: 70rpx;
}
.active {
position: relative;
font-weight: bold;
}
.active::after {
content: '';
width: 64rpx;
height: 10rpx;
background: #FF512A;
border-radius: 0rpx 0rpx 0rpx 0rpx;
position: absolute;
left: 50%;
bottom: -8rpx;
transform: translateX(-50%);
}
.active::before {
content: '';
width: 54rpx;
height: 4rpx;
background: #FF5D73;
border-radius: 0rpx 0rpx 0rpx 0rpx;
filter: blur(12rpx);
position: absolute;
left: 50%;
bottom: -18rpx;
transform: translateX(-50%);
}
.recordList {
background-color: #fff;
padding-top: 10rpx;
}
.recordItem {
display: flex;
align-items: center;
justify-content: center;
margin-left: 20rpx;
margin-right: 20rpx;
padding-top: 30rpx;
padding-bottom: 30rpx;
border-bottom: 2rpx solid #E6E6E6;
}
.recordItem_img {
width: 180rpx;
height: 180rpx;
border-radius: 30rpx 30rpx 30rpx 30rpx;
overflow: hidden;
}
.recordItem_img image {
width: 100%;
height: 100%;
}
.recordItem_Msg {
display: flex;
align-items: center;
justify-content: space-between;
flex: 1;
margin-left: 30rpx;
}
.recordItem_Msg_right_state1 {
width: 150rpx;
height: 50rpx;
background: #999999;
border-radius: 100rpx 100rpx 100rpx 100rpx;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
}
.recordItem_Msg_right_state2 {
width: 150rpx;
height: 50rpx;
background: #FF512A;
border-radius: 100rpx 100rpx 100rpx 100rpx;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
}
.recordItem_Msg_right_state3 {
width: 150rpx;
height: 50rpx;
background: #D5AC66;
border-radius: 100rpx 100rpx 100rpx 100rpx;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
}
.recordItem_Msg_left {
flex: 1;
}
.recordItem_Msg_left_tit {
font-weight: 400;
font-size: 32rpx;
color: #000000;
margin-bottom: 10rpx;
}
.recordItem_Msg_left_msg {
font-weight: 400;
font-size: 24rpx;
color: #999999;
}
.recordItem:last-child {
border-bottom: none;
}
.btn {
width: 650rpx;
height: 80rpx;
background: #FF512A;
border-radius: 100rpx 100rpx 100rpx 100rpx;
font-weight: 400;
font-size: 36rpx;
color: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto;
margin-top: 10px;
margin-bottom: 40rpx;
position: fixed;
left: 0;
right: 0;
bottom: 0;
z-index: 9;
}
.emplty {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
margin-top: 20rpx;
.searchBox {
padding-bottom: 24rpx;
background-color: #fff;
}
.searchBox_add {
height: 100%;
width: 100%;
display: flex;
}
.searchBox_left {
flex: 1;
display: flex;
align-items: center;
padding-left: 20rpx;
}
.searchBox_mid {
flex: 1;
font-size: 40rpx;
color: #222222;
text-align: center;
display: flex;
align-items: center;
justify-content: center;
}
.searchBox_right {
flex: 1;
}
.tabList {
display: flex;
align-items: center;
justify-content: space-between;
margin: 0 20rpx;
padding-top: 38rpx;
padding-bottom: 26rpx;
}
.tab {
font-size: 30rpx;
color: #222222;
}
.tab span {
color: 30rpx;
}
.active {
font-weight: 700;
position: relative;
}
.active::after {
content: '';
width: 52rpx;
height: 22rpx;
background: url(http://192.168.0.172:5500/com_active.png);
background-size: cover;
position: absolute;
left: 50%;
bottom: -20rpx;
transform: translateX(-50%);
}
.orderList {
margin-top: 20rpx;
}
.orderItem {
width: 710rpx;
height: 435rpx;
background-color: #fff;
margin: 0 auto;
border-radius: 20rpx;
}
page {
background-color: #f6f7fb;
min-height: 100vh;
padding: 0;
}
.orderItemTit {
display: flex;
background: linear-gradient(304deg, #FFFFFF 0%, #FFF6E6 100%);
border-radius: 20rpx 20rpx 0rpx 0rpx;
width: 710rpx;
height: 85rpx;
justify-content: space-between;
padding: 0 20rpx;
align-items: center;
box-sizing: border-box;
}
.orderItemTit_state1{
background: linear-gradient(304deg, #FFFFFF 0%, #FFF6E6 100%);
}
.orderItemTit_state2{
background: linear-gradient( 280deg, #FFFFFF 0%, #FFE7E7 100%);
}
.orderItemTit_state3{
background: linear-gradient( 290deg, #FFFFFF 0%, #EDEDED 100%);
}
.orderItemTit_state4{
background: linear-gradient( 280deg, #FFFFFF 0%, #FFE7E7 100%);
}
.orderItemTit_left {
font-size: 28rpx;
color: #222222;
font-weight: 600;
}
.orderItemTit_right {
font-size: 24rpx;
color: #999999;
}
.orderItem_row {
display: flex;
align-items: center;
padding: 0 20rpx;
box-sizing: border-box;
font-size: 26rpx;
color: #999999;
margin-top: 20rpx;
justify-content: space-between;
}
.orderItem_row_label {
width: 200rpx;
}
.orderItem_row_state {
font-size: 28rpx;
color: #FFA600;
font-weight: 600;
}
.df {
display: flex;
align-items: center;
justify-content: space-between;
}
.addBtn {
font-size: 36rpx;
color: #FFFFFF;
width: 600rpx;
height: 90rpx;
background: linear-gradient(91deg, #FF7658 0%, #FF370B 100%);
border-radius: 100rpx 100rpx 100rpx 100rpx;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto;
margin-top: 200rpx;
}

View File

@ -1,116 +1,121 @@
<template>
<view class="box">
<view class="tabList">
<view :class="['tabItem', status == 0 ? 'active' : '']" @click="changeTab" data-index="0">全部</view>
<view :class="['tabItem', status == 1 ? 'active' : '']" @click="changeTab" data-index="1">待处理</view>
<view :class="['tabItem', status == 2 ? 'active' : '']" @click="changeTab" data-index="2">处理中</view>
<view :class="['tabItem', status == 3 ? 'active' : '']" @click="changeTab" data-index="3">已完成</view>
</view>
<view class="recordList" v-if="list.length != 0">
<view class="recordItem" v-for="(item, index) in list" @click="headerRepairDetailClick" :data-id="item.feed_id">
<view class="recordItem_Msg">
<view class="recordItem_Msg_left">
<view class="recordItem_Msg_left_tit">{{item.details}}</view>
<view class="recordItem_Msg_left_msg">
联系人{{item.user_name}}
</view>
<view class="recordItem_Msg_left_msg">
联系人电话{{item.mobile}}
</view>
<view class="recordItem_Msg_left_msg">
期望上门{{item.hope_order_time}}
</view>
<view class="recordItem_Msg_left_msg">
提交时间{{item.create_time}}
</view>
</view>
<!-- <view class="recordItem_Msg_right_state1" wx:if="{{item.status == 0}}">待处理</view>
<view class="recordItem_Msg_right_state2" wx:if="{{item.status == 1}}">已完成</view>
<view class="recordItem_Msg_right_state3" wx:if="{{item.status == 2}}">处理中</view> -->
</view>
</view>
</view>
<view v-if="list.length == 0" class="emplty">
<u-empty iconSize="180" textSize='28' text="暂无内容" />
</view>
<view class="btn" @click="headerRepairClick">我要报修</view>
</view>
</template>
<script>
import { request, NavgateTo } from '../../../utils';
import { apiArr } from '../../../api/community';
export default {
data() {
return {
page_num: 1,
page_size: 10,
flag: false,
list: [],
id: "",
title: '',
status: 0
}
},
methods: {
async init() {
const res = await request(apiArr.getListByRepair, 'POST', {
community_id: this.id,
page_num: this.page_num,
page_size: this.page_size,
status: this.status
})
if (res.rows) {
let flag = false
if (res.rows.length == this.page_size) {
flag = true
} else {
flag = false
}
this.flag = flag;
this.page_num = this.page_num + 1;
this.list = this.list.concat(res.rows || []);
}
},
headerRepairClick(e){
NavgateTo(`/packages/community/oneRepair/index`)
},
headerRepairDetailClick(e){
const { id } = e.currentTarget.dataset
NavgateTo(`/packages/community/repairDetail/index?id=${id}&title=${this.title}`)
},
changeTab(e){
this.status = Number(e.currentTarget.dataset.index);
this.flag = false;
this.page_num = 1;
this.list = [];
this.init()
},
},
onLoad(options) {
this.id = Number(options.id);
this.title = options.title;
uni.setNavigationBarTitle({
title: options.title,
});
this.init()
},
}
</script>
<style>
@import url("./index.css");
<template>
<view class="box">
<div class="searchBox" :style="{ height: localHeight + 'px', paddingTop: top + 'px' }">
<div class="searchBox_add">
<div class="searchBox_left">
<u-icon bold color="#000" size="40" name="arrow-left" @click="back"></u-icon>
</div>
<div class="searchBox_mid">我的报修</div>
<div class="searchBox_right"></div>
</div>
</div>
<div class="tabList">
<div :class="active == '1' ? 'tab active' : 'tab'">待指派 <span>(1)</span></div>
<div :class="active == '2' ? 'tab active' : 'tab'">进行中 <span>(1)</span></div>
<div :class="active == '3' ? 'tab active' : 'tab'">已作废 <span>(1)</span></div>
<div :class="active == '4' ? 'tab active' : 'tab'">已完成 <span>(1)</span></div>
</div>
<div class="orderList">
<div class="orderItem" @click="desc">
<div class="orderItemTit orderItemTit_state1" v-if="false">
<div class="orderItemTit_left">工单编号123456789145</div>
<div class="orderItemTit_right">2025-06-04 16:27:35</div>
</div>
<div class="orderItemTit orderItemTit_state2" v-if="true">
<div class="orderItemTit_left">工单编号123456789145</div>
<div class="orderItemTit_right">2025-06-04 16:27:35</div>
</div>
<div class="orderItemTit orderItemTit_state3" v-if="false">
<div class="orderItemTit_left">工单编号123456789145</div>
<div class="orderItemTit_right">2025-06-04 16:27:35</div>
</div>
<div class="orderItemTit orderItemTit_state4" v-if="false">
<div class="orderItemTit_left">工单编号123456789145</div>
<div class="orderItemTit_right">2025-06-04 16:27:35</div>
</div>
<div class="orderItem_row">
<div class="df">
<div class="orderItem_row_label">小区房源名称</div>
<div class="orderItem_row_con">世纪名城1号楼1单元101</div>
</div>
<div class="orderItem_row_state">
待指派
</div>
</div>
<div class="orderItem_row">
<div class="orderItem_row_label">报修类型</div>
<div class="orderItem_row_con">家具维修</div>
</div>
<div class="orderItem_row">
<div class="orderItem_row_label">问题描述</div>
<div class="orderItem_row_con">门坏了</div>
</div>
<div class="orderItem_row">
<div class="orderItem_row_label">上门时间</div>
<div class="orderItem_row_con">2025-06-12 12:00</div>
</div>
<div class="orderItem_row">
<div class="orderItem_row_label">联系人</div>
<div class="orderItem_row_con">高尚</div>
</div>
<div class="orderItem_row">
<div class="orderItem_row_label">联系人手机号</div>
<div class="orderItem_row_con">15901518415</div>
</div>
</div>
</div>
<div class="addBtn" @click="oneRepair">
在线报修
</div>
</view>
</template>
<script>
import { request, NavgateTo, menuButtonInfo } from '../../../utils';
import { apiArr } from '../../../api/community';
export default {
data() {
return {
top: "",
localHeight: "",
active: "1"
}
},
methods: {
oneRepair(){
uni.navigateTo({
url: '../oneRepair/index'
});
},
desc(){
uni.navigateTo({
url: '../repairDetail/index'
});
},
},
onLoad(options) {
const meun = menuButtonInfo();
this.top = meun.top;
this.localHeight = meun.height;
},
}
</script>
<style>
@import url("./index.css");
</style>

View File

@ -0,0 +1,126 @@
image {
width: 100%;
height: 100%;
}
.tabList1 {
margin-top: 30rpx;
}
.Tit {
margin-left: 20rpx;
font-size: 36rpx;
color: #222222;
font-weight: 700;
}
.functionList {
display: flex;
align-items: center;
flex-wrap: wrap;
padding: 0 40rpx;
}
.functionItem {
display: flex;
flex-direction: column;
align-items: center;
width: 148rpx;
margin-right: 30rpx;
margin-bottom: 36rpx;
}
.functionItem image {
height: 67rpx;
}
.functionItemName {
font-size: 30rpx;
color: #000000;
margin-top: 14rpx;
}
.functionItem:nth-child(4n) {
margin-right: 0;
}
.line {
height: 20rpx;
width: 100%;
background: #F6F6FA;
}
.tabList2 {
padding-top: 30rpx;
}
.Tit span {
font-size: 26rpx;
color: #222222;
margin-left: 20rpx;
font-weight: 400;
}
.tabList {
display: flex;
align-items: center;
justify-content: space-between;
background-color: #fff;
padding: 0 20rpx;
padding-top: 30rpx;
flex-wrap: wrap;
}
.tabItem {
width: 226rpx;
height: 120rpx;
box-sizing: border-box;
padding-top: 7rpx;
padding-left: 18rpx;
font-weight: normal;
font-size: 28rpx;
color: #FF370B;
margin-bottom: 30rpx;
}
.tabItem1 {
background: url(http://192.168.0.172:5500/com_tabBg1.png);
background-size: cover;
}
.tabItem2 {
background: url(http://192.168.0.172:5500/com_tabBg2.png);
background-size: cover;
}
.tabItem3 {
background: url(http://192.168.0.172:5500/com_tabBg3.png);
background-size: cover;
}
.tabList3 {
padding-top: 30rpx;
}
.tabList3 .Tit {
margin-bottom: 30rpx;
}
.tabList4 {
padding-top: 30rpx;
}
.tabList4 .Tit {
margin-bottom: 30rpx;
}
.tabList5 {
padding-top: 30rpx;
}
.tabList5 .Tit {
margin-bottom: 30rpx;
}

View File

@ -0,0 +1,250 @@
<template>
<view class="container">
<div class="tabList1">
<div class="Tit">物业导航</div>
<div class="functionList">
<div class="functionItem" v-for="item in functionList" @click="desc(item)">
<image mode="heightFix" :src="item.icon" />
<div class="functionItemName">{{ item.name }}</div>
</div>
</div>
</div>
<div class="line"></div>
<div class="tabList2">
<div class="Tit">特色主题 <span>本小区已开通的特色服务</span></div>
<div class="tabList">
<div class="tabItem tabItem1">
门禁通行
</div>
<div class="tabItem tabItem2">
人人爱净水
</div>
<div class="tabItem tabItem3">
馒头领取
</div>
<div class="tabItem tabItem3">
健康驿站
</div>
</div>
</div>
<div class="line"></div>
<div class="tabList3">
<div class="Tit">上门服务</div>
<div class="functionList">
<div class="functionItem" v-for="item in localList" @click="desc(item)">
<image mode="heightFix" :src="item.icon" />
<div class="functionItemName">{{ item.name }}</div>
</div>
</div>
</div>
<div class="line"></div>
<div class="tabList4">
<div class="Tit">电商购物</div>
<div class="functionList">
<div class="functionItem" v-for="item in shopList" @click="desc(item)">
<image mode="heightFix" :src="item.icon" />
<div class="functionItemName">{{ item.name }}</div>
</div>
</div>
</div>
<div class="line"></div>
<div class="tabList5">
<div class="Tit">积分卡券</div>
<div class="functionList">
<div class="functionItem" v-for="item in shopList" @click="desc(item)">
<image mode="heightFix" :src="item.icon" />
<div class="functionItemName">{{ item.name }}</div>
</div>
</div>
</div>
</view>
</template>
<script>
import { request } from '../../../utils';
import { apiArr } from '../../../api/community';
export default {
data() {
return {
functionList: [
{
icon: "http://192.168.0.172:5500/com_serverIcon1.png",
name: "业主入驻",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_serverIcon2.png",
name: "我的房产",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_serverIcon3.png",
name: "生活缴费",
url: "weixin://dl/business/?t=WvQ1ZJv0J5Z"
},
{
icon: "http://192.168.0.172:5500/com_serverIcon4.png",
name: "便民服务",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_serverIcon5.png",
name: "物业公积金",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_serverIcon6.png",
name: "社区互动",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_serverIcon7.png",
name: "物业公积金",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_serverIcon8.png",
name: "物业服务",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_serverIcon9.png",
name: "报事报修",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_serverIcon10.png",
name: "物业缴费",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_serverIcon11.png",
name: "纠纷调解",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_serverIcon12.png",
name: "社区管家",
url: ""
},
],
localList: [
{
icon: "http://192.168.0.172:5500/com_localIcon1.png",
name: "美食",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_localIcon2.png",
name: "家教",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_localIcon3.png",
name: "超市",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_localIcon4.png",
name: "健身",
url: ""
},
],
shopList: [
{
icon: "http://192.168.0.172:5500/com_shopIcon1.png",
name: "电商购物",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_shopIcon2.png",
name: "社区团购",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_shopIcon3.png",
name: "本地优选",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_shopIcon4.png",
name: "社区拼团",
url: ""
},
],
cardList: [
{
icon: "http://192.168.0.172:5500/com_cardIcon1.png",
name: "我的积分",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_cardIcon2.png",
name: "积分兑换",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_cardIcon3.png",
name: "我的优惠卡",
url: ""
},
{
icon: "http://192.168.0.172:5500/com_cardIcon4.png",
name: "我的会员卡",
url: ""
},
]
}
},
methods: {
desc(e) {
if (e.url && e.url.startsWith('weixin://')) {
// UniApp
if (uni.getSystemInfoSync().platform === 'android') {
plus.runtime.openURL(e.url, function (err) {
uni.showToast({
title: '跳转失败,请手动打开微信',
icon: 'none'
});
});
} else {
// iOS使universal link
uni.showModal({
title: '提示',
content: '请在微信中打开生活缴费功能',
confirmText: '打开微信',
success(res) {
if (res.confirm) {
plus.runtime.openURL('weixin://');
}
}
});
}
} else {
console.log(e);
//
}
},
},
onLoad(options) {
},
onReachBottom() {
},
}
</script>
<style>
@import url("./index.css");
</style>

View File

@ -121,10 +121,9 @@
"pages": [{
"path": "index/index",
"style": {
"navigationBarTitleText": "社区列表",
"navigationStyle": "custom",
"usingComponents": {
"tabularCard": "/components/tabularCard/tabularCard",
"search": "/components/search/search",
"nav-footer": "/components/nav/nav"
}
}
@ -132,25 +131,29 @@
{
"path": "communityDetail/index",
"style": {
"navigationStyle": "custom",
"navigationBarBackgroundColor": "#F9F9F9"
}
},
{
"path": "notice/index",
"style": {
"navigationBarTitleText": ""
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "desc/desc",
"path": "noticeDesc/index",
"style": {
"navigationBarTitleText": ""
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "applyOwer/index",
"style": {
"navigationBarTitleText": ""
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#fff"
}
},
{
@ -162,31 +165,45 @@
{
"path": "oneRepair/index",
"style": {
"navigationBarTitleText": "报事报修"
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "repairList/index",
"style": {
"navigationBarTitleText": ""
"navigationStyle": "custom",
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#F9F9F9"
}
},
{
"path": "repairDetail/index",
"style": {
"navigationBarTitleText": ""
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "chooseMsg/index",
"style": {
"navigationBarTitleText": ""
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#fff"
}
},
{
"path": "addCar/index",
"path": "chooseMsgInfo/index",
"style": {
"navigationBarBackgroundColor": "#F9F9F9"
"navigationStyle": "custom",
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#fff"
}
},
{
"path": "serverList/index",
"style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#fff"
}
},
{

File diff suppressed because one or more lines are too long

View File

@ -42,14 +42,15 @@
"index/index",
"communityDetail/index",
"notice/index",
"desc/desc",
"noticeDesc/index",
"applyOwer/index",
"mycar/index",
"oneRepair/index",
"repairList/index",
"repairDetail/index",
"chooseMsg/index",
"addCar/index",
"chooseMsgInfo/index",
"serverList/index",
"ownerList/index"
]
},

View File

@ -1,259 +1,259 @@
@charset "UTF-8";
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
@charset "UTF-8";
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
/* 注意要写在第一行同时给style标签加入lang="scss"属性 */
.u-line-1 {
display: -webkit-box !important;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
-webkit-line-clamp: 1;
.u-line-1 {
display: -webkit-box !important;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical !important;
}
.u-line-2 {
display: -webkit-box !important;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
-webkit-line-clamp: 2;
.u-line-2 {
display: -webkit-box !important;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical !important;
}
.u-line-3 {
display: -webkit-box !important;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
-webkit-line-clamp: 3;
.u-line-3 {
display: -webkit-box !important;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical !important;
}
.u-line-4 {
display: -webkit-box !important;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
-webkit-line-clamp: 4;
.u-line-4 {
display: -webkit-box !important;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical !important;
}
.u-line-5 {
display: -webkit-box !important;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
-webkit-line-clamp: 5;
.u-line-5 {
display: -webkit-box !important;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
-webkit-line-clamp: 5;
-webkit-box-orient: vertical !important;
}
.u-border {
border-width: 0.5px !important;
border-color: #dadbde !important;
.u-border {
border-width: 0.5px !important;
border-color: #dadbde !important;
border-style: solid;
}
.u-border-top {
border-top-width: 0.5px !important;
border-color: #dadbde !important;
.u-border-top {
border-top-width: 0.5px !important;
border-color: #dadbde !important;
border-top-style: solid;
}
.u-border-left {
border-left-width: 0.5px !important;
border-color: #dadbde !important;
.u-border-left {
border-left-width: 0.5px !important;
border-color: #dadbde !important;
border-left-style: solid;
}
.u-border-right {
border-right-width: 0.5px !important;
border-color: #dadbde !important;
.u-border-right {
border-right-width: 0.5px !important;
border-color: #dadbde !important;
border-right-style: solid;
}
.u-border-bottom {
border-bottom-width: 0.5px !important;
border-color: #dadbde !important;
.u-border-bottom {
border-bottom-width: 0.5px !important;
border-color: #dadbde !important;
border-bottom-style: solid;
}
.u-border-top-bottom {
border-top-width: 0.5px !important;
border-bottom-width: 0.5px !important;
border-color: #dadbde !important;
border-top-style: solid;
.u-border-top-bottom {
border-top-width: 0.5px !important;
border-bottom-width: 0.5px !important;
border-color: #dadbde !important;
border-top-style: solid;
border-bottom-style: solid;
}
.u-reset-button {
padding: 0;
background-color: transparent;
font-size: inherit;
line-height: inherit;
.u-reset-button {
padding: 0;
background-color: transparent;
font-size: inherit;
line-height: inherit;
color: inherit;
}
.u-reset-button::after {
.u-reset-button::after {
border: none;
}
.u-hover-class {
.u-hover-class {
opacity: 0.7;
}
.u-primary-light {
.u-primary-light {
color: #ecf5ff;
}
.u-warning-light {
.u-warning-light {
color: #fdf6ec;
}
.u-success-light {
.u-success-light {
color: #f5fff0;
}
.u-error-light {
.u-error-light {
color: #fef0f0;
}
.u-info-light {
.u-info-light {
color: #f4f4f5;
}
.u-primary-light-bg {
.u-primary-light-bg {
background-color: #ecf5ff;
}
.u-warning-light-bg {
.u-warning-light-bg {
background-color: #fdf6ec;
}
.u-success-light-bg {
.u-success-light-bg {
background-color: #f5fff0;
}
.u-error-light-bg {
.u-error-light-bg {
background-color: #fef0f0;
}
.u-info-light-bg {
.u-info-light-bg {
background-color: #f4f4f5;
}
.u-primary-dark {
.u-primary-dark {
color: #398ade;
}
.u-warning-dark {
.u-warning-dark {
color: #f1a532;
}
.u-success-dark {
.u-success-dark {
color: #53c21d;
}
.u-error-dark {
.u-error-dark {
color: #e45656;
}
.u-info-dark {
.u-info-dark {
color: #767a82;
}
.u-primary-dark-bg {
.u-primary-dark-bg {
background-color: #398ade;
}
.u-warning-dark-bg {
.u-warning-dark-bg {
background-color: #f1a532;
}
.u-success-dark-bg {
.u-success-dark-bg {
background-color: #53c21d;
}
.u-error-dark-bg {
.u-error-dark-bg {
background-color: #e45656;
}
.u-info-dark-bg {
.u-info-dark-bg {
background-color: #767a82;
}
.u-primary-disabled {
.u-primary-disabled {
color: #9acafc;
}
.u-warning-disabled {
.u-warning-disabled {
color: #f9d39b;
}
.u-success-disabled {
.u-success-disabled {
color: #a9e08f;
}
.u-error-disabled {
.u-error-disabled {
color: #f7b2b2;
}
.u-info-disabled {
.u-info-disabled {
color: #c4c6c9;
}
.u-primary {
.u-primary {
color: #3c9cff;
}
.u-warning {
.u-warning {
color: #f9ae3d;
}
.u-success {
.u-success {
color: #5ac725;
}
.u-error {
.u-error {
color: #f56c6c;
}
.u-info {
.u-info {
color: #909399;
}
.u-primary-bg {
.u-primary-bg {
background-color: #3c9cff;
}
.u-warning-bg {
.u-warning-bg {
background-color: #f9ae3d;
}
.u-success-bg {
.u-success-bg {
background-color: #5ac725;
}
.u-error-bg {
.u-error-bg {
background-color: #f56c6c;
}
.u-info-bg {
.u-info-bg {
background-color: #909399;
}
.u-main-color {
.u-main-color {
color: #303133;
}
.u-content-color {
.u-content-color {
color: #606266;
}
.u-tips-color {
.u-tips-color {
color: #909193;
}
.u-light-color {
.u-light-color {
color: #c0c4cc;
}
.u-safe-area-inset-top {
padding-top: 0;
padding-top: constant(safe-area-inset-top);
.u-safe-area-inset-top {
padding-top: 0;
padding-top: constant(safe-area-inset-top);
padding-top: env(safe-area-inset-top);
}
.u-safe-area-inset-right {
padding-right: 0;
padding-right: constant(safe-area-inset-right);
.u-safe-area-inset-right {
padding-right: 0;
padding-right: constant(safe-area-inset-right);
padding-right: env(safe-area-inset-right);
}
.u-safe-area-inset-bottom {
padding-bottom: 0;
padding-bottom: constant(safe-area-inset-bottom);
.u-safe-area-inset-bottom {
padding-bottom: 0;
padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);
}
.u-safe-area-inset-left {
padding-left: 0;
padding-left: constant(safe-area-inset-left);
.u-safe-area-inset-left {
padding-left: 0;
padding-left: constant(safe-area-inset-left);
padding-left: env(safe-area-inset-left);
}
::-webkit-scrollbar {
display: none;
width: 0 !important;
height: 0 !important;
-webkit-appearance: none;
::-webkit-scrollbar {
display: none;
width: 0 !important;
height: 0 !important;
-webkit-appearance: none;
background: transparent;
}
}

View File

@ -21730,94 +21730,7 @@ exports.default = _default;
/* 657 */,
/* 658 */,
/* 659 */,
/* 660 */
/*!************************************************************************************!*\
!*** D:/project/uniapp-ZHSQ/uni_modules/uview-ui/components/u-notice-bar/props.js ***!
\************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(uni) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = {
props: {
// 显示的内容,数组
text: {
type: [Array, String],
default: uni.$u.props.noticeBar.text
},
// 通告滚动模式row-横向滚动column-竖向滚动
direction: {
type: String,
default: uni.$u.props.noticeBar.direction
},
// direction = row时是否使用步进形式滚动
step: {
type: Boolean,
default: uni.$u.props.noticeBar.step
},
// 是否显示左侧的音量图标
icon: {
type: String,
default: uni.$u.props.noticeBar.icon
},
// 通告模式link-显示右箭头closable-显示右侧关闭图标
mode: {
type: String,
default: uni.$u.props.noticeBar.mode
},
// 文字颜色,各图标也会使用文字颜色
color: {
type: String,
default: uni.$u.props.noticeBar.color
},
// 背景颜色
bgColor: {
type: String,
default: uni.$u.props.noticeBar.bgColor
},
// 水平滚动时的滚动速度即每秒滚动多少px(px),这有利于控制文字无论多少时,都能有一个恒定的速度
speed: {
type: [String, Number],
default: uni.$u.props.noticeBar.speed
},
// 字体大小
fontSize: {
type: [String, Number],
default: uni.$u.props.noticeBar.fontSize
},
// 滚动一个周期的时间长单位ms
duration: {
type: [String, Number],
default: uni.$u.props.noticeBar.duration
},
// 是否禁止用手滑动切换
// 目前HX2.6.11只支持App 2.5.5+、H5 2.5.5+、支付宝小程序、字节跳动小程序
disableTouch: {
type: Boolean,
default: uni.$u.props.noticeBar.disableTouch
},
// 跳转的页面路径
url: {
type: String,
default: uni.$u.props.noticeBar.url
},
// 页面跳转的类型
linkType: {
type: String,
default: uni.$u.props.noticeBar.linkType
}
}
};
exports.default = _default;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
/***/ }),
/* 660 */,
/* 661 */,
/* 662 */,
/* 663 */,
@ -21929,143 +21842,7 @@ exports.default = _default;
/* 673 */,
/* 674 */,
/* 675 */,
/* 676 */
/*!**********************************************************************************!*\
!*** D:/project/uniapp-ZHSQ/uni_modules/uview-ui/components/u-textarea/props.js ***!
\**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(uni) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = {
props: {
// 输入框的内容
value: {
type: [String, Number],
default: uni.$u.props.textarea.value
},
// 输入框为空时占位符
placeholder: {
type: [String, Number],
default: uni.$u.props.textarea.placeholder
},
// 指定placeholder的样式类注意页面或组件的style中写了scoped时需要在类名前写/deep/
placeholderClass: {
type: String,
default: uni.$u.props.input.placeholderClass
},
// 指定placeholder的样式
placeholderStyle: {
type: [String, Object],
default: uni.$u.props.input.placeholderStyle
},
// 输入框高度
height: {
type: [String, Number],
default: uni.$u.props.textarea.height
},
// 设置键盘右下角按钮的文字仅微信小程序App-vue和H5有效
confirmType: {
type: String,
default: uni.$u.props.textarea.confirmType
},
// 是否禁用
disabled: {
type: Boolean,
default: uni.$u.props.textarea.disabled
},
// 是否显示统计字数
count: {
type: Boolean,
default: uni.$u.props.textarea.count
},
// 是否自动获取焦点nvue不支持H5取决于浏览器的实现
focus: {
type: Boolean,
default: uni.$u.props.textarea.focus
},
// 是否自动增加高度
autoHeight: {
type: Boolean,
default: uni.$u.props.textarea.autoHeight
},
// 如果textarea是在一个position:fixed的区域需要显示指定属性fixed为true
fixed: {
type: Boolean,
default: uni.$u.props.textarea.fixed
},
// 指定光标与键盘的距离
cursorSpacing: {
type: Number,
default: uni.$u.props.textarea.cursorSpacing
},
// 指定focus时的光标位置
cursor: {
type: [String, Number],
default: uni.$u.props.textarea.cursor
},
// 是否显示键盘上方带有”完成“按钮那一栏,
showConfirmBar: {
type: Boolean,
default: uni.$u.props.textarea.showConfirmBar
},
// 光标起始位置自动聚焦时有效需与selection-end搭配使用
selectionStart: {
type: Number,
default: uni.$u.props.textarea.selectionStart
},
// 光标结束位置自动聚焦时有效需与selection-start搭配使用
selectionEnd: {
type: Number,
default: uni.$u.props.textarea.selectionEnd
},
// 键盘弹起时,是否自动上推页面
adjustPosition: {
type: Boolean,
default: uni.$u.props.textarea.adjustPosition
},
// 是否去掉 iOS 下的默认内边距,只微信小程序有效
disableDefaultPadding: {
type: Boolean,
default: uni.$u.props.textarea.disableDefaultPadding
},
// focus时点击页面的时候不收起键盘只微信小程序有效
holdKeyboard: {
type: Boolean,
default: uni.$u.props.textarea.holdKeyboard
},
// 最大输入长度,设置为 -1 的时候不限制最大长度
maxlength: {
type: [String, Number],
default: uni.$u.props.textarea.maxlength
},
// 边框类型surround-四周边框bottom-底部边框
border: {
type: String,
default: uni.$u.props.textarea.border
},
// 用于处理或者过滤输入框内容的方法
formatter: {
type: [Function, null],
default: uni.$u.props.textarea.formatter
},
// 是否忽略组件内对文本合成系统事件的处理
ignoreCompositionEvent: {
type: Boolean,
default: true
}
}
};
exports.default = _default;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
/***/ }),
/* 676 */,
/* 677 */,
/* 678 */,
/* 679 */,
@ -23318,79 +23095,7 @@ exports.default = _default;
/* 746 */,
/* 747 */,
/* 748 */,
/* 749 */
/*!***************************************************************************************!*\
!*** D:/project/uniapp-ZHSQ/uni_modules/uview-ui/components/u-column-notice/props.js ***!
\***************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(uni) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = {
props: {
// 显示的内容,字符串
text: {
type: [Array],
default: uni.$u.props.columnNotice.text
},
// 是否显示左侧的音量图标
icon: {
type: String,
default: uni.$u.props.columnNotice.icon
},
// 通告模式link-显示右箭头closable-显示右侧关闭图标
mode: {
type: String,
default: uni.$u.props.columnNotice.mode
},
// 文字颜色,各图标也会使用文字颜色
color: {
type: String,
default: uni.$u.props.columnNotice.color
},
// 背景颜色
bgColor: {
type: String,
default: uni.$u.props.columnNotice.bgColor
},
// 字体大小单位px
fontSize: {
type: [String, Number],
default: uni.$u.props.columnNotice.fontSize
},
// 水平滚动时的滚动速度即每秒滚动多少px(px),这有利于控制文字无论多少时,都能有一个恒定的速度
speed: {
type: [String, Number],
default: uni.$u.props.columnNotice.speed
},
// direction = row时是否使用步进形式滚动
step: {
type: Boolean,
default: uni.$u.props.columnNotice.step
},
// 滚动一个周期的时间长单位ms
duration: {
type: [String, Number],
default: uni.$u.props.columnNotice.duration
},
// 是否禁止用手滑动切换
// 目前HX2.6.11只支持App 2.5.5+、H5 2.5.5+、支付宝小程序、字节跳动小程序
disableTouch: {
type: Boolean,
default: uni.$u.props.columnNotice.disableTouch
}
}
};
exports.default = _default;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
/***/ }),
/* 749 */,
/* 750 */,
/* 751 */,
/* 752 */,
@ -23398,63 +23103,7 @@ exports.default = _default;
/* 754 */,
/* 755 */,
/* 756 */,
/* 757 */
/*!************************************************************************************!*\
!*** D:/project/uniapp-ZHSQ/uni_modules/uview-ui/components/u-row-notice/props.js ***!
\************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(uni) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = {
props: {
// 显示的内容,字符串
text: {
type: String,
default: uni.$u.props.rowNotice.text
},
// 是否显示左侧的音量图标
icon: {
type: String,
default: uni.$u.props.rowNotice.icon
},
// 通告模式link-显示右箭头closable-显示右侧关闭图标
mode: {
type: String,
default: uni.$u.props.rowNotice.mode
},
// 文字颜色,各图标也会使用文字颜色
color: {
type: String,
default: uni.$u.props.rowNotice.color
},
// 背景颜色
bgColor: {
type: String,
default: uni.$u.props.rowNotice.bgColor
},
// 字体大小单位px
fontSize: {
type: [String, Number],
default: uni.$u.props.rowNotice.fontSize
},
// 水平滚动时的滚动速度即每秒滚动多少px(rpx),这有利于控制文字无论多少时,都能有一个恒定的速度
speed: {
type: [String, Number],
default: uni.$u.props.rowNotice.speed
}
}
};
exports.default = _default;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
/***/ }),
/* 757 */,
/* 758 */,
/* 759 */,
/* 760 */,

View File

@ -1,3 +1,4 @@
<<<<<<< HEAD
{
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"projectname": "uniapp-ZHSQ",
@ -17,4 +18,12 @@
]
}
}
=======
{
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"projectname": "uniapp-ZHSQ",
"setting": {
"compileHotReLoad": true
}
>>>>>>> 121f7dc398a1c6254ecb995a9ed19a1617ed422c
}

View File

@ -1,80 +1,80 @@
@charset "UTF-8";
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
@charset "UTF-8";
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
@font-face {
font-family: 'uicon-iconfont';
@font-face {
font-family: 'uicon-iconfont';
src: url("https://at.alicdn.com/t/font_2225171_8kdcwk4po24.ttf") format("truetype");
}
.u-icon.data-v-2ee87dc9 {
display: flex;
.u-icon.data-v-2ee87dc9 {
display: flex;
align-items: center;
}
.u-icon--left.data-v-2ee87dc9 {
flex-direction: row-reverse;
.u-icon--left.data-v-2ee87dc9 {
flex-direction: row-reverse;
align-items: center;
}
.u-icon--right.data-v-2ee87dc9 {
flex-direction: row;
.u-icon--right.data-v-2ee87dc9 {
flex-direction: row;
align-items: center;
}
.u-icon--top.data-v-2ee87dc9 {
flex-direction: column-reverse;
.u-icon--top.data-v-2ee87dc9 {
flex-direction: column-reverse;
justify-content: center;
}
.u-icon--bottom.data-v-2ee87dc9 {
flex-direction: column;
.u-icon--bottom.data-v-2ee87dc9 {
flex-direction: column;
justify-content: center;
}
.u-icon__icon.data-v-2ee87dc9 {
font-family: uicon-iconfont;
position: relative;
display: flex;
flex-direction: row;
.u-icon__icon.data-v-2ee87dc9 {
font-family: uicon-iconfont;
position: relative;
display: flex;
flex-direction: row;
align-items: center;
}
.u-icon__icon--primary.data-v-2ee87dc9 {
.u-icon__icon--primary.data-v-2ee87dc9 {
color: #3c9cff;
}
.u-icon__icon--success.data-v-2ee87dc9 {
.u-icon__icon--success.data-v-2ee87dc9 {
color: #5ac725;
}
.u-icon__icon--error.data-v-2ee87dc9 {
.u-icon__icon--error.data-v-2ee87dc9 {
color: #f56c6c;
}
.u-icon__icon--warning.data-v-2ee87dc9 {
.u-icon__icon--warning.data-v-2ee87dc9 {
color: #f9ae3d;
}
.u-icon__icon--info.data-v-2ee87dc9 {
.u-icon__icon--info.data-v-2ee87dc9 {
color: #909399;
}
.u-icon__img.data-v-2ee87dc9 {
height: auto;
.u-icon__img.data-v-2ee87dc9 {
height: auto;
will-change: transform;
}
.u-icon__label.data-v-2ee87dc9 {
.u-icon__label.data-v-2ee87dc9 {
line-height: 1;
}
}