This commit is contained in:
SelfRidicule 2024-07-29 17:40:03 +08:00
parent 6f051773c8
commit ff5629e553
8 changed files with 449 additions and 155 deletions

View File

@ -75,7 +75,8 @@
"pages/meeting/meetingRoom/meetingService/meetingService",
"pages/reportRepair/repairIndex/index",
"pages/reportRepair/repairAdd/add",
"pages/reportRepair/repairRecord/reportPerson/record"
"pages/reportRepair/repairRecord/reportPerson/record",
"pages/reportRepair/repairDetail/detail"
],
"window": {
"backgroundTextStyle": "light",

View File

@ -0,0 +1,67 @@
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
IMG_NAME: app.IMG_NAME,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

@ -0,0 +1,6 @@
{
"navigationStyle": "custom",
"usingComponents": {
"van-icon": "@vant/weapp/icon/index"
}
}

View File

@ -0,0 +1,85 @@
<view class="containerView public">
<view class="topHead">
<view class="navigatorView">
<view class="backView">
<van-icon name="arrow-left" color="#ffffff" size="30rpx"/>
<view class="label">返回</view>
</view>
<view class="title">详情</view>
</view>
<view class="contentView">
<view class="label1">处理完成</view>
<view class="label2">您的报修工单已经处理完成</view>
</view>
</view>
<view class="mainView">
<view class="statusView">
<view class="view1">
<view class="label">处理完成:</view>
<view class="name">王帅</view>
<view class="tag">工单流转</view>
</view>
<view class="time">2024-10-10 12:12:00</view>
<view class="leftImg" style="background: no-repeat center/cover url({{IMG_NAME + '/profile/static/index/banner/1.jpg'}});"></view>
</view>
<view class="reportView">
<view class="topTitle">报修信息</view>
<view class="selfLine"></view>
<view class="itemView">
<view class="label">设备名称</view>
<view class="content">320828282828320828282828320828282828320828282828v</view>
</view>
<view class="itemView">
<view class="label">设备地址</view>
<view class="content">302会议室</view>
</view>
<view class="itemView">
<view class="label">维修描述</view>
<view class="content">电脑蓝屏</view>
</view>
<view class="itemView">
<view class="label">损坏凭证</view>
<view class="content">
<view wx:for="{{10}}" class="imgView" style="background: no-repeat center/cover url({{IMG_NAME + '/profile/static/index/banner/1.jpg'}});"></view>
</view>
</view>
<view class="itemView">
<view class="label">报修人</view>
<view class="content">13652025563</view>
</view>
<view class="itemView">
<view class="label">报修时间</view>
<view class="content">2024-06-10 23:59:59</view>
</view>
</view>
<view class="reportView">
<view class="topTitle">维修反馈</view>
<view class="selfLine"></view>
<view class="itemView">
<view class="label">维修人</view>
<view class="content">王强</view>
</view>
<view class="itemView">
<view class="label">维修说明</view>
<view class="content">已更换部件,维修完成</view>
</view>
<view class="itemView">
<view class="label">维修凭证</view>
<view class="content">
<view wx:for="{{3}}" class="imgView" style="background: no-repeat center/cover url({{IMG_NAME + '/profile/static/index/banner/1.jpg'}});"></view>
</view>
</view>
</view>
</view>
<view class="bottomFixView">
<view class="contactBtn">联系维修人员</view>
<view class="evaluateBtn">评价</view>
</view>
</view>

View File

@ -0,0 +1,213 @@
.containerView.public {
background: none;
}
.elHidden {
visibility: hidden;
}
.selfLine {
height: 2rpx;
background: rgb(126, 126, 126, 0.2);
}
.topHead {
position: relative;
height: 400rpx;
background: #2b2d3d;
}
.topHead .navigatorView {
position: absolute;
left: 0;
top: 120rpx;
width: 100%;
box-sizing: border-box;
padding: 0 30rpx;
}
.topHead .navigatorView .backView {
display: flex;
justify-content: flex-start;
align-items: center;
}
.topHead .navigatorView .backView .label {
color: white;
font-size: 28rpx;
line-height: 1;
margin-left: 8rpx;
}
.topHead .navigatorView .title {
position: absolute;
top: 14rpx;
left: 50%;
transform: translateX(-50%);
font-size: 32rpx;
color: #FFFFFF;
line-height: 1rpx;
}
.topHead .contentView {
position: absolute;
left: 30rpx;
bottom: 80rpx;
}
.topHead .contentView .label1 {
font-size: 28rpx;
color: white;
line-height: 1;
}
.topHead .contentView .label2 {
font-size: 24rpx;
color: white;
line-height: 1;
margin-top: 20rpx;
}
.mainView {
position: relative;
box-sizing: border-box;
margin: -20rpx 20rpx 20rpx;
z-index: 999;
}
.mainView .statusView {
box-sizing: border-box;
padding: 30rpx 20rpx 40rpx 100rpx;
background: white;
border-radius: 8rpx;
line-height: 1;
}
.mainView .statusView .view1 {
display: flex;
justify-content: flex-start;
align-items: center;
}
.mainView .statusView .view1 .label {
font-size: 28rpx;
font-weight: bold;
}
.mainView .statusView .view1 .name {
font-size: 28rpx;
margin-left: 20rpx;
}
.mainView .statusView .view1 .tag {
margin-left: auto;
font-size: 24rpx;
color: gray;
}
.mainView .statusView .time {
margin-top: 20rpx;
}
.mainView .statusView .leftImg {
position: absolute;
top: 26rpx;
left: 20rpx;
width: 60rpx;
height: 60rpx;
border-radius: 8rpx;
}
.mainView .reportView {
margin-top: 20rpx;
padding-bottom: 60rpx;
border-radius: 8rpx;
background: white;
}
.mainView .reportView .topTitle {
padding: 30rpx;
font-size: 28rpx;
font-weight: bold;
}
.mainView .reportView .itemView {
display: flex;
justify-content: flex-start;
align-items: flex-start;
margin-top: 30rpx;
padding: 0 30rpx;
}
.mainView .reportView .itemView .label{
flex-shrink: 0;
width: 200rpx;
font-size: 30rpx;
color: gray;
}
.mainView .reportView .itemView .content{
font-size: 30rpx;
word-break: break-all;
}
.mainView .reportView .itemView .content .imgView{
width: 100rpx;
height: 100rpx;
margin-right: 10rpx;
margin-bottom: 10rpx;
display: inline-block;
vertical-align: middle;
}
.bottomFixView{
position: fixed;
z-index: 999;
left: 0;
bottom: 0;
height: 140rpx;
width: 100vw;
border-top: 1rpx solid rgb(126, 126, 126, 0.2);
background: white;
display: flex;
justify-content: flex-end;
align-items: center;
}
.bottomFixView .evaluateBtn{
box-sizing: border-box;
border-radius: 6rpx;
width: 160rpx;
height: 70rpx;
margin-right: 30rpx;
display: flex;
justify-content: center;
align-items: center;
background: #579ff8;
font-size: 30rpx;
color: white;
}
.bottomFixView .contactBtn{
box-sizing: border-box;
border-radius: 6rpx;
border: 2rpx solid rgb(126, 126, 126, 0.2);
width: 220rpx;
height: 70rpx;
margin-right: 30rpx;
display: flex;
justify-content: center;
align-items: center;
background: white;
font-size: 28rpx;
color: gray;
}

View File

@ -323,6 +323,12 @@ Page({
});
},
jumpDetail(){
wx.navigateTo({
url: '/pages/reportRepair/repairDetail/detail',
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/

View File

@ -1,33 +1,20 @@
<view class="containerView public">
<van-tabs bind:click="tabClickSwitch" color="#4e96f8" border animated title-active-color="black" title-inactive-color="gray">
<van-tab title="全部">
<view class="itemView" wx:for="{{reservationDataList}}" wx:for-item="item" wx:key="*this">
<view class="headView">
<view class="number">{{item.title}}</view>
<view class="status" style="color: {{item.statusColor}};">{{item.statusName}}</view>
</view>
<view class="contentView" bind:tap="jumpMeetingDetail" data-id="{{item.id}}">
<image class="img" src="{{IMG_NAME + item.roomContent.indoorPicUrlFirst}}" mode="aspectFill"></image>
<view class="msgView">
<view class="title">{{item.roomContent.capacityNum}}人间 | {{item.roomContent.roomName}} | {{item.roomContent.buildingName}}</view>
<view class="name">预约人: {{item.createBy}}</view>
<view class="time">{{item.timeSlot}}</view>
<view class="itemView" wx:for="{{3}}" wx:for-item="item" wx:key="*this" bind:tap="jumpDetail">
<view class="topTitle">301空调坏了</view>
<view class="centerView">
<view class="showImg" style="background: no-repeat center/cover url({{IMG_NAME + '/profile/static/index/banner/1.jpg'}});"></view>
<view class="rightView">
<view class="labelContent">维修单号20111101001002011110100100201111</view>
<view class="labelContent">维修单号2011110100100</view>
<view class="labelContent">维修单号2011110100100</view>
</view>
</view>
<view class="priceView">
<view class="cancelContent" wx:if="{{item.statusValue == 4 && item.cancelResaon}}">取消原因: {{item.cancelResaon}}</view>
<!-- <view class="priceContent">
<view class="name">总价:</view>
<view class="price">¥{{item.orderMoney}}</view>
</view> -->
</view>
<view class="btnView">
<!-- <view class="btn" wx:if="{{item.showPay}}" bind:tap="jumpPay" data-id="{{item.id}}">去支付</view> -->
<view class="btn" wx:if="{{item.showInvite}}">去邀请
<button class="shareBtn" open-type="share" data-id="{{item.id}}">转发</button>
</view>
<view class="btn" wx:if="{{item.showCancel}}" bind:tap="cancelOrder" data-id="{{item.id}}">取消预约</view>
<view class="btn" wx:if="{{item.showDetail}}" bind:tap="jumpMeetingDetail" data-id="{{item.id}}">查看详情</view>
<view class="bottomLine"></view>
<view class="bottomView">
<view class="status">已完成</view>
<view class="evaluate">评价</view>
</view>
</view>
<view class="loadAllLine" wx:if="{{reservationIsDataAll}}">
@ -36,23 +23,7 @@
</van-tab>
<van-tab title="处理中">
<view class="itemView" wx:for="{{participateDataList}}" wx:for-item="item" wx:key="*this" bind:tap="jumpParticipateDetail" data-id="{{item.id}}">
<view class="headView">
<view class="number">{{item.title}}</view>
<view class="status" style="color: {{item.statusColor}};">{{item.statusName}}</view>
</view>
<view class="contentView">
<image class="img" src="{{IMG_NAME + item.roomContent.indoorPicUrlFirst}}" mode="aspectFill"></image>
<view class="msgView">
<view class="title">{{item.roomContent.capacityNum}}人间 | {{item.roomContent.roomName}} | {{item.roomContent.buildingName}}</view>
<view class="name">预约人: {{item.createBy}}</view>
<view class="time">{{item.timeSlot}}</view>
</view>
</view>
</view>
<view class="loadAllLine" wx:if="{{participateIsDataAll}}">
<van-divider class="van-divider" customStyle="font-size: 26rpx;" contentPosition="center">数据已全部加载</van-divider>
</view>
</van-tab>
<van-tab title="待评价">

View File

@ -5,130 +5,75 @@
.itemView {
background: white;
margin: 30rpx 20rpx;
margin: 20rpx 20rpx;
padding: 30rpx 20rpx;
/* box-shadow: rgba(210,210,210,0.5) 0px 3.752px 3.752px 0px; */
border-radius: 8rpx;
box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 0px 0.5px inset;
box-sizing: border-box;
}
.itemView .headView {
.itemView .topTitle {
font-size: 28rpx;
font-weight: bold;
}
.itemView .centerView {
display: flex;
justify-content: flex-start;
align-items: center;
margin-top: 20rpx;
}
.itemView .centerView .showImg {
width: 200rpx;
height: 120rpx;
border-radius: 8rpx;
flex-shrink: 0;
}
.itemView .centerView .rightView {
margin-left: 20rpx;
flex: 1;
overflow: hidden;
}
.itemView .centerView .rightView .labelContent {
line-height: 1;
margin-top: 10rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: break-all;
}
.itemView .centerView .rightView .labelContent:first-of-type {
margin-top: 0;
}
.itemView .bottomLine {
height: 2rpx;
background: rgb(126, 126, 126, 0.2);
margin: 30rpx 0;
}
.bottomView {
display: flex;
justify-content: space-between;
align-items: center;
}
.itemView .headView .number {
flex: 1;
margin-right: 30rpx;
font-size: 26rpx;
text-overflow: ellipsis;
overflow: hidden;
word-break: break-all;
white-space: nowrap;
}
.itemView .headView .status {
font-size: 26rpx;
color: #4e96f8;
margin-right: 20rpx;
}
.itemView .contentView {
box-sizing: border-box;
border-radius: 10rpx;
width: 100%;
margin-top: 20rpx;
padding: 30rpx 20rpx;
display: flex;
justify-content: flex-start;
align-items: center;
background: #f2f2f2;
}
.itemView .contentView .img {
border-radius: 10rpx;
width: 200rpx;
height: 110rpx;
}
.itemView .contentView .msgView {
flex: 1;
margin-left: 20rpx;
word-break: break-all;
}
.itemView .contentView .msgView .title {
.bottomView .status {
font-size: 28rpx;
line-height: 1;
}
.itemView .contentView .msgView .name,
.itemView .contentView .msgView .time {
.bottomView .evaluate {
font-size: 24rpx;
color: gray;
margin-top: 6rpx;
}
.itemView .priceView {
display: flex;
justify-content: flex-end;
align-items: center;
margin: 30rpx 0;
}
.itemView .priceView .cancelContent {
flex: 1;
margin-right: 40rpx;
font-size: 26rpx;
color: #7F7F7F;
text-overflow: ellipsis;
overflow: hidden;
word-break: break-all;
white-space: nowrap;
}
.itemView .priceView .priceContent {
display: flex;
justify-content: flex-start;
align-items: center;
}
.itemView .priceView .priceContent .name {
font-size: 26rpx;
}
.itemView .priceView .priceContent .price {
font-size: 28rpx;
font-weight: bold;
color: red;
margin-left: 10rpx;
}
.itemView .btnView {
display: flex;
justify-content: flex-end;
align-items: center;
}
.itemView .btnView .btn {
border: 1px solid #4e96f8;
position: relative;
border-radius: 10rpx;
margin-left: 16rpx;
padding: 10rpx 24rpx;
font-size: 24rpx;
color: #4e96f8;
}
.shareBtn {
position: absolute;
z-index: 1;
width: 100%;
height: 100%;
left: 0;
top: 0;
opacity: 0;
color: #ffffff;
padding: 10rpx 36rpx;
background: #ee6f2e;
}
.loadAllLine {