hz-zhhq-app/pages/malfunc-repair/malfunc-repair.vue

1182 lines
29 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="hzIndex">
<hzHeader title="服务报修"></hzHeader>
<view class="container hzContent">
<view class="main">
<view class="tab-box">
<view class="tab-item" :class="currentTabIndex == 0 ? 'active_tab' : ''"
@click="currentTabIndex = 0">
{{pageTitle[faultType]}}服务
<view class="tabBottom" v-if="currentTabIndex == 0"></view>
</view>
<view class="tab-item" :class="currentTabIndex == 1 ? 'active_tab' : ''"
@click="currentTabIndex = 1">
{{pageTitle[faultType]}}记录
<view class="tabBottom" v-if="currentTabIndex == 1"></view>
</view>
</view>
<view class="content" v-if="currentTabIndex == 0">
<view class="interviewee">
<!-- <view class="footer" style="margin-top: 0px;margin-bottom: 20upx;border-radius: 10upx;">
<text v-if="faultType==0" style="font-weight: 600;font-size: 28upx;">
如您有水、电、门、窗等维修需求,请在下方填报相关信息。如有必要,可提交现场照片,谢谢配合,我们将竭诚为您服务。
</text>
<text v-if="faultType!=0" style="font-weight: 600;font-size: 28upx;">
如您有绿植养护、保洁服务、会议服务等服务事项需求,请在下方填报相关信息。如有必要,可提交现场照片,谢谢配合,我们将竭诚为您服务。
</text>
</view> -->
<!-- <view class="radio">
<view class="r-div">
<text class="input_left">{{pageTitle[faultType]}}项目</text>
</view>
<view class="radiolist" style="border-top:0.5px solid #eeeeee">
<view style="border-top: none;border-bottom: 0.5px solid #eeeeee;" class=""
@click="showradio(index)" v-for="(item, index) in firstRepairItems" :key="index"
:class="[firstIndex == index ? 'showcolor' : '']">
<p class="item_title">{{ item.name }}</p>
<span class="item_more">{{ item.sub_name }}</span>
<image src="/static/imgs/handel.png" v-if="firstIndex == index" />
</view>
</view>
</view> -->
<view class="card-box">
<view class="dateTit">
<view class="leftIcon">
</view>
<text
style="font-size:32upx;color:#333;font-weight: 600;">{{pageTitle[faultType]}}项目</text>
</view>
<view class="barber">
<view class="barber-box">
<view class="barber-item" :class="firstIndex == index ? 'barberactive' : ''"
:key="index" @click="showradio(index)"
v-for="(item, index) in firstRepairItems">
{{item.name}}
</view>
</view>
</view>
</view>
<view class="form-box card-box">
<view class="form-item">
<text class="label">问题小项<text class="required">*</text></text>
<view class="ipt-box select">
<image class="arrow" src="/static/icons/right-arrow.png" mode=""></image>
<picker class="picker" v-if="secondRepairItems.length > 0"
:range="secondRepairItems" @change="changeSecondRepairItems" range-key="name">
<view>{{ secondRepairItems[secondIndex].name }}</view>
</picker>
</view>
</view>
<view class="form-item flex-colum">
<text class="label">问题描述</text>
<view class="ipt-box"><input class="top-t" v-model="formDesc" placeholder="请输入问题描述"
type="text" maxlength="50" /></view>
</view>
</view>
<view class="form-box card-box">
<view class="form-item">
<text class="label">{{pageTitle[faultType]}}区域<text class="required">*</text></text>
<view class="ipt-box select">
<image class="arrow" src="/static/icons/right-arrow.png" mode=""></image>
<picker class="picker" v-if="places.length > 0" :range="places"
@change="changePlace" range-key="name">
<view>{{ places[placeIndex].name }}</view>
</picker>
</view>
</view>
<view class="form-item">
<text class="label">楼层<text class="required">*</text></text>
<view class="ipt-box"><input class="top-t" v-model="repairFloor" placeholder="请输入楼层"
maxlength="50" /></view>
</view>
<view class="form-item">
<text class="label">房号</text>
<view class="ipt-box"><input class="top-t" v-model="repairRoomNo"
placeholder="请输入房号(选填)" maxlength="50" /></view>
</view>
</view>
<view class="form-box card-box">
<view class="form-item flex-colum">
<text class="label" style="width: 100%;">{{pageTitle[faultType]}}图片<text
style="color: #CACACA;">最多上传3张</text></text>
<view class="pic">
<view class="img-box">
<view class="img-item" v-for="(item, index) in imgs" :key="index">
<image class="remove-btn" @click="removeImg(index)"
src="/static/icons/delete-icon.png" mode=""></image>
<image class="img" :src="item.replace(/[\r\n]/g,'')" mode=""></image>
</view>
<view class="img-item upload-btn" @click="chooseImg()" v-if="imgs.length < 3">
<image class="img" src="/static/imgs/tianjia-img.png" mode=""></image>
</view>
</view>
</view>
<view style="font-size: 28rpx;font-weight: 600;color: red;border-bottom: 1px solid #eee;">互联网信息系统严禁存储、传输、处理涉及国家秘密企业秘密以及敏感信息,违者将严肃问责追责!</view>
</view>
</view>
</view>
<view class="footer-btn" style="background-color: #fff;" @click="submit">
<view class="btn">提交</view>
</view>
</view>
<!-- <view class="occupied"></view> -->
<!-- </view> -->
<!-- 检查列表 -->
<view v-if="currentTabIndex == 1">
<view class="list-box" v-if="repair.length > 0">
<view class="detail-box" v-for="(item, i) in repair" :key="i">
<view class="detail_header" @click="details(item)">
<image class="blueSign" src="@/static/haircut/bx.png" mode=""></image>
<text class="font-tilte">{{pageTitle[faultType]}}服务</text>
<text v-if="item.reply_flag =='0'" class="font-result">未回复</text><!-- statusred -->
<text v-if="item.reply_flag =='1'" class="font-result"
style="color: #FB8107;background: #FFEFE3;">已回复</text>
<text v-if="item.reply_flag =='2'" class="font-result" style="color: green;">已办结</text>
</view>
<view class="detail_msg">
<!-- <view class="info-item" @click="details(item)">
<text>部门:</text>
<text class="infoSpan">{{ item.repair_dept_name }}</text>
</view>
<view class="info-item" @click="details(item)">
<text>报修人:</text>
<text class="infoSpan">{{ item.repair_person_name }}</text>
</view>
<view class="info-item" @click="details(item)">
<text>联系方式:</text>
<text class="infoSpan">{{ item.repair_person_phone }}</text>
</view> -->
<!-- <view class="info-item">
<text>报修地点:</text>
<text class="infoSpan">{{ item.repair_place }}</text>
</view> -->
<view class="info-item" @click="details(item)">
<text>{{pageTitle[faultType]}}项目:</text>
<text class="infoSpan">{{item.repair_option_name}}</text>
</view>
<view v-if="item.repair_option_sub" class="info-item" @click="details(item)">
<text>问题小项:</text>
<text class="infoSpan">{{ item.repair_option_sub_name}}</text>
</view>
<view v-if="item.fault_detail" class="info-item" @click="details(item)">
<text>问题描述:</text>
<text class="infoSpan">{{ item.fault_detail }}</text>
</view>
<view class="info-item" @click="details(item)">
<text>{{pageTitle[faultType]}}位置:</text>
<text
class="infoSpan">{{item.repair_place+" "+(item.repair_floor||'')+(item.repair_room_no?"-"+item.repair_room_no+'':'')}}</text>
</view>
<!-- <view class="info-item" @click="details(item)">
<text>是否紧急:</text>
<text class="infoSpan">{{ urgents[item.urgent]}}</text>
</view>
-->
<view class="info-item" @click="details(item)">
<text>{{pageTitle[faultType]}}时间:</text>
<text class="infoSpan">{{ item.repair_time}}</text>
</view>
<view v-if="item.reply_flag=='1'" class="info-item" @click="details(item)">
<text>回复时间:</text>
<text class="infoSpan">{{ formatDate(item.reply_date,'dateTime')}}</text>
</view>
<!-- <view class="info-item" style="width: 100%;text-align: center;" @click="details(item)">
<text style="width: 100%;color: #4db4ea;">点击查看详情及回复</text>
</view> -->
<view style="display: flex;flex-direction: row;justify-self: end;">
<view class="comment-btn" v-if="item.is_evaluate == 0 && item.reply_flag =='2'"
@click="goEvaluatePage(item.id)">评价</view>
<view class="comment-btn bg-ccc" v-if="item.is_evaluate != 0">已评价</view>
<view class="comment-btn" style="width: 268upx;margin-left: 28upx;"
@click="details(item)">查看详情及回复
</view>
</view>
</view>
</view>
</view>
<content-none v-else :padTop="20"></content-none>
</view>
<load-more v-if="currentTabIndex == 1" :loadingType="loadingType"
:contentText="contentText"></load-more>
<canvas style="width: 300px; height: 300px;" canvas-id="convertImgToBase64"></canvas>
<!-- <view class="common-shade box box-center box-align-center" v-if="showAlert" @click="showAlert=false" >
<view style="background: white;height: 160upx;width: 100%;border-radius: 10upx 10upx 0upx 0upx;position: absolute;bottom: 0upx;">
<view @click="photo" style="border-bottom: 1px solid #000000; border-radius: 10upx 10upx 0upx 0upx; height: 80upx;line-height: 80upx;text-align: center;">
拍摄
</view>
<view @click="getImage" style="height: 80upx;line-height: 80upx;text-align: center;">
从相册选择
</view>
</view>
</view> -->
</view>
</view>
</view>
</template>
<script>
import {
saveFaultRepairInfo,
getMyFaultRepairList,
getAllDept,
getFaultRepairByParentCode
} from '@/common/api.js';
import {
callbackRequest,
getStorage,
alertTip,
convertImgToBase64,
formatDate,
wxSdk,
uploadImg
} from '@/common/util.js';
import loadMore from '@/components/loadMore.vue';
import contentNone from '@/components/contentNone.vue';
import {
pathToBase64
} from '@/js_sdk/mmmm-image-tools/index.js';
export default {
components: {
loadMore,
contentNone
},
data() {
return {
formatDate: formatDate,
//分页
page: 1,
pageSize: 10,
loadingType: 0, //0-loading前1-loading中2-没有更多了
contentText: {
contentdown: '上拉加载更多',
contentrefresh: '正在加载...',
contentnomore: '没有更多数据了'
},
places: [{
id: '1',
name: '科技楼'
}, {
id: '2',
name: '调度楼'
}, {
id: '3',
name: '后勤楼'
}, {
id: '4',
name: '会议中心'
}, {
id: '5',
name: '青年公寓'
}], //, { id: '4', name: '丽景酒店' }, { id: '5', name: '其它' }
deptList: [],
placeIndex: 0,
departmentIndex: 0,
userInfo: getStorage('userInfo'),
entryOrderPic: [],
showIndex: 0,
currentTabIndex: 0,
repair: [],
formBxwz: '',
formDesc: '',
formName: getStorage('userInfo').userName,
formTelp: getStorage('userInfo').telnumber,
imgs: [],
imgsId: [],
index: 0,
firstRepairItems: [],
firstIndex: 0,
secondRepairItems: [],
secondIndex: 0,
repairFloor: '',
repairRoomNo: '',
urgents: ['不紧急', '紧急'],
urgentIndex: 0,
faultType: 0,
pageTitle: ['报修', '报事'],
submitFlag: true,
showAlert: false,
};
},
watch: {
currentTabIndex: function(newVal, oldVal) {
if (newVal == 1) {
this.page = 1;
this.loadingType = 0;
this.dataList();
} else {
this.getDepartment();
}
}
},
onLoad(option) {
this.currentTabIndex = option.currentTabIndex || 0;
this.faultType = option.faultType || 0;
// 部门
},
onShow() {
this.getFirstRepairItems();
if (this.currentTabIndex == 0) {
//this.getDepartment();
} else {
this.page = 1;
this.loadingType = 0;
this.dataList();
}
},
methods: {
//获取一级维修项目
getFirstRepairItems() {
let params = {
method: getFaultRepairByParentCode,
data: {
parentCode: '0',
itemType: this.faultType
}
};
callbackRequest(params).then(res => {
res = res.data;
if (res.returnCode == 1) {
this.firstRepairItems = res.returnData;
this.getSecondRepairItems();
} else {
alertTip(res.returnMsg);
}
});
},
getSecondRepairItems() {
this.secondIndex = 0;
var parentCode = this.firstRepairItems[this.firstIndex].code;
let params = {
method: getFaultRepairByParentCode,
data: {
parentCode: parentCode,
itemType: this.faultType
}
};
callbackRequest(params).then(res => {
res = res.data;
if (res.returnCode == 1) {
if (res.returnData.length > 0) {
this.secondRepairItems = res.returnData;
} else {
this.secondRepairItems = [{
id: '',
name: '请直接描述'
}]
}
} else {
alertTip(res.returnMsg);
}
});
},
dataList() {
let params = {
method: getMyFaultRepairList,
data: {
userId: this.userInfo.id,
pageNum: this.page,
pageSize: this.pageSize,
faultType: this.faultType,
isInspection: 0
}
};
callbackRequest(params).then(res => {
res = res.data;
if (res.returnCode == 1) {
if (this.page == 1) {
this.repair = res.returnData || [];
} else {
if (res.returnData.length > 0) {
this.repair = this.repair.concat(res.returnData);
this.loadingType = 0;
} else {
this.loadingType = 2;
}
}
} else {
alertTip(res.returnMsg);
}
});
},
submit() {
// var regPhone = /^1[3|4|5|6|7|8|9]\d{9}$/;
// if (!regPhone.test(this.formTelp)) {
// alertTip('请输入正确的手机号');
// return false;
// }
// if (!this.formBxwz) {
// alertTip('请输入详细位置');
// return false;
// }
if (!this.submitFlag) {
return false;
}
this.submitFlag = false;
if (!this.formDesc) {
alertTip('请输入问题描述');
return false;
}
if (!this.repairFloor) {
alertTip('请输入楼层');
return false;
}
let params = {
method: saveFaultRepairInfo,
data: {
userId: this.userInfo.id,
// repairDeptId:this.deptList[this.departmentIndex].id,
// repairDeptName:this.deptList[this.departmentIndex].name,
repairPersonId: this.userInfo.id,
repairPersonName: this.formName,
repairOption: this.firstRepairItems[this.firstIndex].code,
repairOptionSub: this.secondRepairItems[this.secondIndex].code,
repairAddr: this.formBxwz, //详细地址
faultDetail: this.formDesc,
faultPic1: this.imgsId[0],
faultPic2: this.imgsId[1],
faultPic3: this.imgsId[2],
repairPlace: this.places[this.placeIndex].name,
repairPersonPhone: this.formTelp,
urgent: this.urgentIndex,
repairFloor: this.repairFloor,
repairRoomNo: this.repairRoomNo,
faultType: this.faultType
}
};
callbackRequest(params).then(res => {
res = res.data;
if (res.returnCode == 1) {
alertTip(res.returnMsg);
setTimeout(_ => {
this.repair = [];
this.imgs = [];
this.imgsId = []
this.showIndex = 0;
this.currentTabIndex = 1;
this.formBxwz = '';
this.formDesc = '';
this.submitFlag = true;
}, 2000);
} else {
alertTip(res.returnMsg);
this.submitFlag = true;
}
});
},
showradio: function(index) {
var self = this;
self.firstIndex = index;
this.getSecondRepairItems();
},
//上传图片
async chooseImg() {
let chec = 0;
let sty = [];
let _this = this;
uni.showActionSheet({
itemList: ['拍照', '相册'],
success: function(resp) {
chec = resp.tapIndex;
if (chec == 0) {
sty = ['camera']; //从相册相机选择
} else {
sty = ['album']; //从相册相机选择
}
uni.chooseImage({
count: 3,
sizeType: ['compressed'],
sourceType: sty,
quality: 1,
success: async function(res) {
let resData = res.tempFilePaths;
for (let i = 0; i < resData.length; i++) {
if (_this.imgs.length > 3) {
break;
}
uni.getImageInfo({
src: resData[i],
success: async (path) => {
convertImgToBase64(path.path,
async function(base64) {
if (_this.imgs.length <
3) {
// _this.imgs.push(base64);
uni.showLoading({
title: '图片上传中'
})
let blength =
base64.length;
let glength = 7500;
if (blength <=
glength) {
let uploadParam = {
base64: base64,
userId: getStorage(
'userInfo'
)
.userId +
i,
groupEnd: '1'
}
await uploadImg
(
uploadParam
)
.then(
resu => {
resu =
resu
.data;
uni
.hideLoading();
if (resu
.returnCode !=
1
) {
alertTip
(resu
.returnMsg
);
} else {
_this
.imgs
.push(
base64
);
_this
.imgsId
.push(
resu
.returnData +
".jpg"
);
}
});
} else {
let fnum =
parseInt(
blength /
glength
);
for (let j =
1; j <
fnum +
1; j++) {
if (j ==
fnum) {
let groupBase =
base64
.slice(
(j -
1
) *
glength
);
console
.log(
groupBase
.length,
"groupBaselength"
);
let uploadParam = {
base64: groupBase,
userId: getStorage(
'userInfo'
)
.userId +
i,
groupEnd: '1'
}
await uploadImg
(
uploadParam
)
.then(
resu => {
resu =
resu
.data;
if (resu
.returnCode ==
1
) {
_this
.imgs
.push(
base64
);
_this
.imgsId
.push(
resu
.returnData +
".jpg"
);
} else {
uni
.hideLoading();
alertTip
(resu
.returnMsg
);
return;
}
}
);
} else {
let groupBase =
base64
.slice(
(j -
1
) *
glength,
glength *
j
);
let uploadParam = {
base64: groupBase,
userId: getStorage(
'userInfo'
)
.userId +
i,
groupEnd: '0'
}
await uploadImg
(
uploadParam
)
.then(
resu => {
resu =
resu
.data;
if (resu
.returnCode ==
1
) {} else {
uni
.hideLoading();
alertTip
(resu
.returnMsg
);
return;
}
}
);
}
}
uni
.hideLoading();
}
}
});
},
});
}
}
});
},
fail: function(resp) {
console.log(resp.errMsg);
}
});
},
//删除图片
removeImg(index) {
this.imgs.splice(index, 1);
this.imgsId.splice(index, 1);
},
getDepartment() {
let data = {
method: getAllDept,
data: {}
};
callbackRequest(data).then(res => {
console.log(res);
if (res.data.returnCode == 1) {
this.deptList = res.data.returnData;
for (var i = 0; i < this.deptList.length; i++) {
if (this.deptList[i].id == getStorage('userInfo').deptId) {
this.departmentIndex = i;
}
}
}
});
},
navTo(url) {
uni.navigateTo({
url
});
},
goEvaluatePage(id) {
if (this.faultType == 1) {
uni.navigateTo({
url: `/pages/malfunc-repair/malfunc-evaluate?type=9&typeId=${id}`
});
} else {
uni.navigateTo({
url: `/pages/malfunc-repair/malfunc-evaluate?type=6&typeId=${id}`
});
}
},
changePlace(e) {
this.placeIndex = e.detail.value;
},
changeSecondRepairItems(e) {
this.secondIndex = e.detail.value;
},
changeUrgent(e) {
this.urgentIndex = e.detail.value;
},
details: function(item) {
uni.navigateTo({
url: '/pages/malfunc-repair/repair-details-my?id=' + item.id
});
},
//选择部门
changeDepartment(f) {
this.departmentIndex = f.detail.value;
},
},
onReachBottom() {
if (this.loadingType !== 0 || this.currentTabIndex == 0) {
return;
}
this.loadingType = 1;
this.page = this.page + 1;
this.dataList();
},
};
</script>
<style lang="scss">
@import url('../../static/css/repair/malfunction-repair.css');
@import '@/static/css/common.scss';
.nolist {
font-size: 30upx;
color: #797979;
text-align: center;
margin-top: 20upx;
}
.container {
margin-top: 150upx;
.main {
.tab-box {
width: 80%;
display: flex;
font-size: 32upx;
color: #555555;
margin: 0 24upx;
.active_tab {
font-weight: 800;
}
.tab-item {
width: 40%;
.tabBottom {
width: 28%;
height: 4upx;
border-radius: 5px;
background-image: linear-gradient(to right, #64E182, #1CA7B2);
}
}
}
}
.interviewee {
padding: 24upx;
}
}
.list-box {
margin: 24upx;
.detail-box {
// margin-top: 10upx;
margin-bottom: 24upx;
background: #ffffff;
border-radius: 20upx;
padding: 24upx;
}
.detail_header {
padding: 15upx 0upx;
border-bottom: 1px solid #eee;
display: flex;
flex-direction: row;
align-items: center;
position: relative;
}
.detail_header .blueSign {
width: 48upx;
height: 48upx;
}
.detail_header .font-tilte {
display: inline-block;
font-weight: bold;
font-size: 18px;
color: #333333;
margin-left: 16upx;
}
.detail_header .font-result {
display: inline-block;
position: absolute;
width: 80*2upx;
height: 28*2upx;
right: 0upx;
background: #C1EFEA;
border-radius: 15px 15px 15px 15px;
font-size: 28upx;
color: #0DB0A7;
text-align: center;
line-height: 28*2upx;
}
.detail_msg {
display: grid;
margin-top: 20upx;
}
.detail_msg .info-item {
font-size: 28upx;
color: #999999;
margin-bottom: 10upx;
font-size: 28upx;
line-height: 50upx;
text {
display: inline-block;
width: 140upx;
}
.infoSpan {
width: auto;
font-size: 28upx;
color: #666;
float: right;
}
}
.detail_msg .info-item:nth-of-type(6) {
padding-bottom: 24upx;
border-bottom: 1px solid #EBEFF7;
}
.detail_msg .info-item:last-child {
padding-bottom: 24upx;
border-bottom: 0px solid #000;
}
.comment-btn {
margin-top: 24upx;
width: 84*2upx;
height: 32*2upx;
border-radius: 16*2upx;
border: 1px solid #0DB0A7;
font-size: 28upx;
color: #0DB0A7;
line-height: 32*2upx;
text-align: center;
min-width: 140upx;
justify-self: end;
}
.bg-ccc {
border-color: #CACACA;
color: #CACACA;
background-color: #fff !important;
}
}
.statusgr {
float: right;
margin-right: 30upx;
color: #00c277;
}
.statusred {
float: right;
margin-right: 30upx;
color: red;
}
.pic {
padding-left: unset;
}
.img-box {
overflow: hidden;
padding-top: 20rpx;
padding-bottom: 10rpx;
.img-item {
float: left;
width: 67*2upx;
height: 67*2upx;
background: #E6E8EE;
border-radius: 5*2upx;
// margin: 0 20upx 20upx 0upx;
position: relative;
display: flex;
align-items: center;
justify-content: center;
.img {
display: block;
width: 100%;
height: 100%;
}
.remove-btn {
position: absolute;
top: -18upx;
right: -18upx;
width: 44upx;
height: 44upx;
z-index: 2;
}
}
.upload-btn {
.img {
width: 60upx;
height: 60upx;
}
}
}
.detail_msg .info-item {
font-size: 28upx;
margin-right: 30upx;
text {
display: inline-block;
width: 140upx;
}
.infoSpan {
width: auto;
font-size: 28upx;
color: #666;
float: right;
}
}
.form-box {
margin-top: 24upx;
padding: 0 24upx;
.form-item {
overflow: hidden;
border-bottom: 1px solid #EBEFF7;
padding: 26upx 0;
.label {
float: left;
width: 150upx;
font-size: 28upx;
color: #555555;
font-weight: 400;
line-height: 50upx;
}
.ipt-box {
margin-left: 150upx;
input {
width: 100%;
height: 50upx;
line-height: 50upx;
font-size: 26upx;
color: #999;
}
}
.select {
.arrow {
float: right;
width: 16upx;
height: 29upx;
margin-top: 10upx;
}
.picker {
height: 50upx;
line-height: 50upx;
font-size: 26upx;
color: #666;
margin-left: 10upx;
}
}
}
.form-item:last-child {
border-bottom: 1px solid rgba(0, 0, 0, 0);
}
.flex-colum {
display: flex;
flex-direction: column;
.ipt-box {
margin-left: unset;
width: 100%;
height: 110px;
background: #F2F6FA;
border-radius: 8px 8px 8px 8px;
// margin-left: 24upx;
margin-top: 24upx;
padding-top: 12upx;
padding-left: 12upx;
}
}
}
.common-shade {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
background: rgba(0, 0, 0, 0.7);
z-index: 99;
}
.box {
display: flex;
display: -webkit-flex;
}
.box-row-reverse {
flex-direction: row;
}
/*上下排列*/
.box-column {
flex-direction: column;
}
/*上下排列*/
.box-left {
justify-content: flex-start;
}
/*居右*/
.box-right {
justify-content: flex-end;
}
/*居左*/
.box-center {
justify-content: center;
}
/*居中*/
.box-between {
justify-content: space-between;
}
/*两端对齐*/
.box-align-center {
align-items: center;
}
.box-wrap {
flex-wrap: wrap;
}
.dateTit {
width: 100%;
display: flex;
align-items: center;
// margin-left: 16upx;
image {
width: 35upx;
height: 35upx;
margin-right: 10upx;
}
.leftIcon {
width: 8upx;
height: 30upx;
background-image: linear-gradient(to bottom, #82E7B3, #94B8EF);
border-radius: 5px;
margin-right: 10upx;
}
}
.barber {
margin-top: 32upx;
// margin-left: 24upx;
border-bottom: 1px solid #eee;
.barber-box {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: center;
.barber-item {
width: 100*2upx;
height: 38*2upx;
background: #F2F6FA;
border-radius: 4*2upx;
border: 1px solid #F2F6FA;
line-height: 38*2upx;
color: #555555;
text-align: center;
font-size: 28upx;
margin-left: 28upx;
margin-top: 24upx;
}
.barber-item:nth-of-type(3n-2) {
margin-left: 0;
}
.barberactive {
background: #EDFCF7;
border: 1px solid #00ADA6;
color: #0DB0A7;
}
}
}
</style>