作者 lihongjuan

除螨

正在显示 79 个修改的文件 包含 2287 行增加0 行删除
//app.js
App({
onLaunch: function () {
// 展示本地存储能力
var logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
// 获取用户信息
wx.getSetting({
success: res => {
if (res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
wx.getUserInfo({
success: res => {
// 可以将 res 发送给后台解码出 unionId
this.globalData.userInfo = res.userInfo
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
if (this.userInfoReadyCallback) {
this.userInfoReadyCallback(res)
}
}
})
}
}
})
},
globalData: {
userInfo: null
}
})
\ No newline at end of file
... ...
{
"pages": [
"pages/homeindex/homeindex",
"pages/service/service",
"pages/mytaocan/mytaocan",
"pages/myservice/myservice",
"pages/membercenter/membercenter",
"pages/serviceexperience/serviceexperience",
"pages/serviceintro/serviceintro",
"pages/companyintro/companyintro",
"pages/myguanjia/myguanjia",
"pages/index/index",
"pages/logs/logs"
],
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#263472",
"navigationBarTitleText": "WeChat",
"navigationBarTextStyle": "white"
},
"sitemapLocation": "sitemap.json"
}
\ No newline at end of file
... ...
.register {
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 5;
}
\ No newline at end of file
... ...

347.6 KB

751 字节

972 字节

274 字节

663 字节

// pages/companyintro/companyintro.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
\ No newline at end of file
... ...
{
"navigationBarTitleText": "公司简介"
}
\ No newline at end of file
... ...
<view class="top">
<image src="/img/headimg.png"></image>
<view class="topimg">
<image src="/img/banner.png"></image>
</view>
</view>
<view class="textbox">
<view class="textboxword">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar sic tempor. Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus pronin sapien nunc accuan eget.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar sic tempor. Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus pronin sapien nunc accuan eget.
</view>
<view class="textboximg">
<image src="/img/people.png"></image>
</view>
</view>
... ...
.top{
width:750rpx;
height:288rpx;
font-size: 0;
position: relative
}
image{
width:100%;
height:100%;
}
.topimg{
width:686rpx;
height:324rpx;
font-size: 0;
position: absolute;
bottom:-68rpx;
left:32rpx;
}
.textbox{
margin-top:100rpx;
padding: 0 32rpx;
box-sizing: border-box;
}
.textboxword{
color:#707070;
font-size: 28rpx;
line-height: 1.5;
}
.textboximg{
width:686rpx;
height:116rpx;
font-size: 0;
margin:32rpx auto 0;
}
\ No newline at end of file
... ...
// pages/homeindex/homeindex.js
Page({
/**
* 页面的初始数据
*/
data: {
imgUrls: [
'/img/banner.png',
'/img/banner.png',
'/img/banner.png',
'/img/banner.png'
],
indicatorDots: false,
autoplay: false,
interval: 2000,
duration: 1000,
currentSwiper: 0,
currentpage:1
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
// 公司简介
company(){
wx.navigateTo({
url: '/pages/companyintro/companyintro',
})
},
// 服务介绍
serviceinto(){
wx.navigateTo({
url: '/pages/serviceintro/serviceintro',
})
},
// 服务体验
serviceexperience(){
wx.navigateTo({
url: '/pages/serviceexperience/serviceexperience',
})
},
// 会员中心
vipmember(){
wx.navigateTo({
url: '/pages/membercenter/membercenter',
})
},
swiperChange: function (e) {
this.setData({
currentSwiper: e.detail.current,
currentpage: e.detail.current+1
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
\ No newline at end of file
... ...
{
"navigationBarTitleText": "润保家除螨服务中心"
}
\ No newline at end of file
... ...
<view class="headimg">
<image src="/img/headimg.png"></image>
<view class="logo">
<image src="/img/logo.png"></image>
</view>
<view class="swiperbox">
<view class="swiper_image">
<swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}" class="swiper_item_img" bindchange="swiperChange">
<block wx:for="{{imgUrls}}" wx:key="doct">
<swiper-item>
<image src="{{item}}" data-index='{{index}}' class="slide-image" bindtap='viewImg' width="355" height="150" />
</swiper-item>
</block>
</swiper>
<!-- <view class="dots">
<block wx:for="{{imgUrls}}" wx:key="">
<view class="dot{{index == currentSwiper ? ' active' : ''}}"></view>
</block>
</view> -->
<view class="swiperdot">{{currentpage}}/{{imgUrls.length}}</view>
</view>
</view>
</view>
<view class="headwhite"></view>
<view class="boximg">
<view class="topbox">
<view class="topboxleft" bindtap="company">
<image src="/img/company.png"></image>
<view class="textbox">
<view class="textboxtop">Company profile</view>
<view class="textboxbottom">公司简介</view>
</view>
<view class="yourow">
<image src="/img/row.png"></image>
</view>
</view>
<view class="topboxright" bindtap="serviceinto">
<image src="/img/intro.png"></image>
<view class="servicetext">
<view class="serviceword">Service</view>
<view class="serviceword">introduction</view>
<view class="serviceword">服务介绍</view>
</view>
<view class="yourow">
<image src="/img/row.png"></image>
</view>
</view>
</view>
<view class="topbox xiabox">
<view class="topboxright" bindtap="serviceexperience">
<image src="/img/fuwu.png"></image>
<view class="servicetext">
<view class="serviceword">Service</view>
<view class="serviceword">experience</view>
<view class="serviceword">服务体验</view>
</view>
<view class="yourow">
<image src="/img/row.png"></image>
</view>
</view>
<view class="topboxleft" bindtap="vipmember">
<image src="/img/member.png"></image>
<view class="textbox">
<view class="textboxtop">Member Center</view>
<view class="textboxbottom">会员中心</view>
</view>
<view class="yourow">
<image src="/img/row.png"></image>
</view>
</view>
</view>
</view>
<view class="bottomimg">
<image src="/img/bottom.png"></image>
</view>
\ No newline at end of file
... ...
page {
background: #ececec;
}
.headimg {
width: 750rpx;
height: 288rpx;
font-size: 0;
position: relative;
}
image {
width: 100%;
height: 100%;
}
.logo {
width: 215rpx;
height: 75rpx;
font-size: 0;
position: absolute;
top: 40rpx;
left: 50%;
transform: translateX(-50%);
}
.swiperbox {
width: 686rpx;
height: 324rpx;
position: absolute;
bottom: -200rpx;
left: 50%;
transform: translateX(-50%);
}
/* 轮播图 */
.swiper_image {
width: 686rpx;
height: 324rpx;
font-size: 0;
position: relative;
box-shadow: 0px -1px 6px 0px rgba(212, 137, 96, 0.11);
}
.swiper_item_img {
border-radius: 10rpx;
height: 324rpx;
}
.swiper_image image {
width: 100%;
height: 100%;
}
.swiper_item_img swiper-item {
width: 686rpx;
height: 300rpx;
box-shadow: 0px -1px 6px 0px rgba(212, 137, 96, 0.11);
display: felx;
align-items: center;
justify-content: center;
}
.swiper_item_img swiper-item image {
width: 100%;
height: 100%;
}
.dots {
/* width: 156rpx; */
height: 36rpx;
display: flex;
flex-direction: row;
position: absolute;
justify-content: center;
left: 0;
right: 0;
bottom: 20rpx;
}
/*未选中时的小圆点样式 */
.dot {
width: 20rpx;
height: 20rpx;
border-radius: 50%;
margin-right: 26rpx;
background-color: #b9c0f7;
}
/*选中以后的小圆点样式 */
.active {
width: 16rpx;
height: 16rpx;
border-radius: 50%;
background-color: #ffa942;
border: 3rpx solid #fff;
}
.headwhite {
width: 750rpx;
height: 228rpx;
background: #fff;
}
.swiperdot {
color: #fff;
font-size: 28rpx;
position: absolute;
bottom: 20rpx;
right: 20rpx;
}
.topbox {
display: flex;
align-items: center;
justify-content: space-between;
}
.topboxleft {
width: 412rpx;
height: 244rpx;
font-size: 0;
position: relative
}
.topboxright{
width:244rpx;
height:244rpx;
font-size:0;
position: relative
}
.boximg{
padding: 34rpx 32rpx;
box-sizing: border-box
}
.textbox{
position:absolute;
top:64rpx;
left:32rpx;
}
.servicetext{
position: absolute;
top:42rpx;
left:24rpx;
}
.textboxtop{
color:#FFFFFF;
font-size: 32rpx;
font-weight: bold;
}
.textboxbottom{
color:#FFFFFF;
font-size: 32rpx;
font-weight: bold;
margin-top:10rpx;
}
.serviceword{
color:#FFFFFF;
font-size: 32rpx;
font-weight: bold;
margin-bottom:10rpx;
}
.xiabox{
margin-top:30rpx;
}
.yourow{
width:39rpx;
height:7rpx;
font-size: 0;
position: absolute;
bottom:20rpx;
right:10rpx;
}
.bottomimg{
width:750rpx;
height:90rpx;
font-size: 0;
position: fixed;
bottom:0;
left:0;
}
\ No newline at end of file
... ...
//index.js
//获取应用实例
const app = getApp()
Page({
data: {
motto: 'Hello World',
userInfo: {},
hasUserInfo: false,
canIUse: wx.canIUse('button.open-type.getUserInfo')
},
//事件处理函数
bindViewTap: function() {
wx.navigateTo({
url: '../logs/logs'
})
},
onLoad: function () {
if (app.globalData.userInfo) {
this.setData({
userInfo: app.globalData.userInfo,
hasUserInfo: true
})
} else if (this.data.canIUse){
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
app.userInfoReadyCallback = res => {
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
} else {
// 在没有 open-type=getUserInfo 版本的兼容处理
wx.getUserInfo({
success: res => {
app.globalData.userInfo = res.userInfo
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
})
}
},
getUserInfo: function(e) {
console.log(e)
app.globalData.userInfo = e.detail.userInfo
this.setData({
userInfo: e.detail.userInfo,
hasUserInfo: true
})
}
})
... ...
{
"usingComponents": {}
}
\ No newline at end of file
... ...
<!--index.wxml-->
<view class="container">
<view class="userinfo">
<button wx:if="{{!hasUserInfo && canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button>
<block wx:else>
<image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image>
<text class="userinfo-nickname">{{userInfo.nickName}}</text>
</block>
</view>
<view class="usermotto">
<text class="user-motto">{{motto}}</text>
</view>
</view>
... ...
/**index.wxss**/
.userinfo {
display: flex;
flex-direction: column;
align-items: center;
}
.userinfo-avatar {
width: 128rpx;
height: 128rpx;
margin: 20rpx;
border-radius: 50%;
}
.userinfo-nickname {
color: #aaa;
}
.usermotto {
margin-top: 200px;
}
\ No newline at end of file
... ...
//logs.js
const util = require('../../utils/util.js')
Page({
data: {
logs: []
},
onLoad: function () {
this.setData({
logs: (wx.getStorageSync('logs') || []).map(log => {
return util.formatTime(new Date(log))
})
})
}
})
... ...
{
"navigationBarTitleText": "查看启动日志",
"usingComponents": {}
}
\ No newline at end of file
... ...
<!--logs.wxml-->
<view class="container log-list">
<block wx:for="{{logs}}" wx:for-item="log">
<text class="log-item">{{index + 1}}. {{log}}</text>
</block>
</view>
... ...
.log-list {
display: flex;
flex-direction: column;
padding: 40rpx;
}
.log-item {
margin: 10rpx;
}
... ...
// pages/membercenter/membercenter.js
Page({
/**
* 页面的初始数据
*/
data: {
yuyuecancel:false,
yuyuesuccess:false
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
cancelyuyue(){
this.setData({
yuyuecancel:false
})
},
sure(){
this.setData({
yuyuesuccess:false
})
},
// 我的套餐
mytaocan(){
wx.navigateTo({
url: '/pages/mytaocan/mytaocan',
})
},
// 我的服务
myservice(){
console.log(999)
wx.navigateTo({
url: '/pages/myservice/myservice',
})
},
// 我的管家
myguanjia(){
wx.navigateTo({
url: '/pages/myguanjia/myguanjia',
})
},
// 投诉建议
advice(){
wx.navigateTo({
url: '/pages/service/service',
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
\ No newline at end of file
... ...
{
"navigationBarTitleText": "会员中心"
}
\ No newline at end of file
... ...
<view class="experiencetop">
<image src="/img/headimg.png"></image>
<view class="login">
<view class="loginleft">
<image src="/img/morenhead.png"></image>
</view>
<view class="loginright">登录</view>
</view>
<view class="servicebox">
<view class="servicelsit">
<view class="servicelistitem" bindtap="mytaocan">
<view class="servicelsitleft">
<image src="/img/memberservice.png"></image>
</view>
<view class="servicelistright">
<view class="rightword">我的套餐</view>
<view class="rightrow">
<image src="/img/yourow.png"></image>
</view>
</view>
</view>
<view class="servicelistitem" bindtap="myservice">
<view class="servicelsitleft">
<image src="/img/memberfuwu.png"></image>
</view>
<view class="servicelistright">
<view class="rightword">我的服务</view>
<view class="rightrow">
<image src="/img/yourow.png"></image>
</view>
</view>
</view>
<view class="servicelistitem" bindtap="myguanjia">
<view class="servicelsitleft">
<image src="/img/memberguanjia.png"></image>
</view>
<view class="servicelistright">
<view class="rightword">我的管家</view>
<view class="rightrow">
<image src="/img/yourow.png"></image>
</view>
</view>
</view>
<view class="servicelistitem" bindtap="advice">
<view class="servicelsitleft">
<image src="/img/membertaocan.png"></image>
</view>
<view class="servicelistright">
<view class="rightword">投诉建议</view>
<view class="rightrow">
<image src="/img/yourow.png"></image>
</view>
</view>
</view>
<view class="queren">一键预约</view>
</view>
</view>
</view>
<!-- 是否预约 -->
<view class="register" wx:if="{{yuyuecancel}}">
<view class="yuyuewrap">
<view class="yuyuewraptop">您确定要进行预约服务吗?</view>
<view class="yuyuebottom">
<view class="yuyuebottomleft" bindtap="cancelyuyue">取消</view>
<view class="yuyuebottomright">确定</view>
</view>
</view>
</view>
<!-- 预约成功 -->
<view class="register" wx:if="{{yuyuesuccess}}">
<view class="yuyuewrap">
<view class="yuyuecheng">预约成功</view>
<view class="yuyuechengword">润宝家将尽快与您电话联系</view>
<view class="yuyuesure" bindtap="sure">确定</view>
</view>
</view>
\ No newline at end of file
... ...
.experiencetop {
width: 750rpx;
height: 318rpx;
font-size: 0;
position: relative
}
image {
width: 100%;
height: 100%;
}
.share {
width: 52rpx;
height: 52rpx;
font-size: 0;
position: absolute;
top: 12rpx;
right: 36rpx;
}
.servicetext {
color: #fff;
font-size: 28rpx;
position: absolute;
top: 98rpx;
left: 32rpx;
line-height: 1.5;
}
.serviceboxtext {
color: #06121e;
font-size: 40rpx;
text-align: center;
font-weight: bold;
margin-top: 42rpx;
}
.servicebox {
width: 686rpx;
height: 748rpx;
background: rgba(255, 255, 255, 1);
box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.16);
opacity: 1;
position: absolute;
top:262rpx;
left: 32rpx;
}
.servicelsit {
padding: 0 84rpx;
box-sizing: border-box;
}
.servicelistitem {
display: flex;
align-items: center;
margin-top: 56rpx;
padding-bottom: 42rpx;
box-sizing: border-box;
border-bottom: 1rpx solid #f5f5f5;
}
.servicelsitleft {
width: 40rpx;
height: 40rpx;
font-size: 0;
}
.servicelistright {
width: 431rpx;
color: #bdc4ce;
font-size: 28rpx;
margin-left: 50rpx;
}
.entertext {
color: #bdc4ce;
font-size: 28rpx;
}
.servicelistright {
display: flex;
align-items: center;
justify-content: space-between;
}
.rightword {
color: #06121E;
font-size: 28rpx;
}
.rightrow {
width: 25rpx;
height: 25rpx;
font-size: 0;
}
.queren {
width: 516rpx;
height: 80rpx;
background: rgba(39, 53, 116, 1);
box-shadow: 0rpx 6rpx 6rpx rgba(0, 0, 0, 0.16);
opacity: 1;
color:#fff;
font-size: 28rpx;
text-align: center;
line-height: 80rpx;
margin-top:50rpx;
}
.login{
display:flex;
align-items: center
}
.login{
display:flex;
align-items: center;
position: absolute;
top:50rpx;
left:32rpx;
}
.loginleft{
width:140rpx;
height:140rpx;
font-size: 0;
border-radius: 50%
}
.loginright{
color:#FFFFFF;
font-size: 36rpx;
margin-left:32rpx;
}
.yuyuewrap{
width:600rpx;
height:312rpx;
background: #fff;
position: absolute;
top:50%;
left:50%;
transform: translate(-50%,-50%)
}
.yuyuebottom{
display:flex;
align-items: center;
position: absolute;
bottom:0;
left:0
}
.yuyuebottomleft{
width:300rpx;
height:80rpx;
background: #BDC4CE;
color:#fff;
font-size: 28rpx;
text-align: center;
line-height:80rpx;
}
.yuyuebottomright{
width:301rpx;
height:80rpx;
background: #273574;
color:#fff;
font-size: 28rpx;
text-align: center;
line-height: 80rpx;
}
.yuyuewraptop{
color:#273574;
font-size: 32rpx;
text-align: center;
margin-top:92rpx;
font-weight: bold;
}
.yuyuesure{
width:600rpx;
height:80rpx;
background: #273574;
color:#fff;
text-align: center;
line-height: 80rpx;
position: absolute;
bottom:0;
left:0;
}
.yuyuecheng{
color:#263472;
font-size: 36rpx;
text-align: center;
font-weight: bold;
margin-top:58rpx;
}
.yuyuechengword{
color:#06121E;
font-size: 28rpx;
text-align: center;
margin-top:24rpx;
}
\ No newline at end of file
... ...
// pages/myguanjia/myguanjia.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
\ No newline at end of file
... ...
{
"navigationBarTitleText": ""
}
\ No newline at end of file
... ...
<view class="guanback">
<image src="/img/bac.png"></image>
<view class="guanjiabox">
<view class="phoneimg">
<image src="/img/phone.png"></image>
</view>
<view class="hotline">管家热线:15694875615</view>
<view class="boda">点击号码拨打管家电话</view>
</view>
</view>
\ No newline at end of file
... ...
page {
width: 100%;
height: 100%;
overflow-y: hidden;
}
.guanback {
width: 100%;
height: 100%;
position: relative;
}
image {
width: 100%;
height: 100%;
}
.phoneimg {
width: 204rpx;
height: 204rpx;
font-size: 0;
margin-top:50rpx;
}
.guanjiabox {
width: 450rpx;
height: 700rpx;
display: flex;
flex-direction: column;
align-items: center;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.hotline{
width:440rpx;
height:72rpx;
background: #fff;
line-height: 72rpx;
text-align: center;
color:#27336C;
font-size: 32rpx;
margin-top:106rpx;
font-weight: bold;
}
.boda{
color:#FFFFFF;
font-size: 28rpx;
margin-top:30rpx;
}
\ No newline at end of file
... ...
// pages/myservice/myservice.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
\ No newline at end of file
... ...
{
"navigationBarTitleText": "我的服务"
}
\ No newline at end of file
... ...
<view class="servicetop">
<image src="/img/headimg.png"></image>
</view>
<view class="servicebox">
<view class="serviceboxitem">
<view class="serviceitemtop">2019-10-10 20:30:30</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">服务单号:</view>
<view class="serviceitemlistright">L548796631457</view>
</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">服务项目:</view>
<view class="serviceitemlistright">别墅除螨</view>
</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">服务人员:</view>
<view class="serviceitemlistright">李功虎师傅</view>
</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">服务评价:</view>
<view class="serviceitemlistright">A</view>
</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">备注:</view>
<view class="serviceitemlistright">xxxxxxxx</view>
</view>
</view>
<view class="serviceboxitem">
<view class="serviceitemtop">2019-10-10 20:30:30</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">服务单号:</view>
<view class="serviceitemlistright">L548796631457</view>
</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">服务项目:</view>
<view class="serviceitemlistright">别墅除螨</view>
</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">服务人员:</view>
<view class="serviceitemlistright">李功虎师傅</view>
</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">服务评价:</view>
<view class="serviceitemlistright">A</view>
</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">备注:</view>
<view class="serviceitemlistright">xxxxxxxx</view>
</view>
</view>
<view class="serviceboxitem">
<view class="serviceitemtop">2019-10-10 20:30:30</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">服务单号:</view>
<view class="serviceitemlistright">L548796631457</view>
</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">服务项目:</view>
<view class="serviceitemlistright">别墅除螨</view>
</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">服务人员:</view>
<view class="serviceitemlistright">李功虎师傅</view>
</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">服务评价:</view>
<view class="serviceitemlistright">A</view>
</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">备注:</view>
<view class="serviceitemlistright">xxxxxxxx</view>
</view>
</view>
<view class="serviceboxitem">
<view class="serviceitemtop">2019-10-10 20:30:30</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">服务单号:</view>
<view class="serviceitemlistright">L548796631457</view>
</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">服务项目:</view>
<view class="serviceitemlistright">别墅除螨</view>
</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">服务人员:</view>
<view class="serviceitemlistright">李功虎师傅</view>
</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">服务评价:</view>
<view class="serviceitemlistright">A</view>
</view>
<view class="serviceitemlist">
<view class="serviceitemlistleft">备注:</view>
<view class="serviceitemlistright">xxxxxxxx</view>
</view>
</view>
</view>
\ No newline at end of file
... ...
.servicetop {
width: 750rpx;
height: 288rpx;
font-size: 0;
position: fixed;
top:0;
left:0
}
image {
width: 100%;
height: 100%;
}
.servicebox {
width: 686rpx;
position: absolute;
top: 32rpx;
left: 32rpx;
overflow-y: scroll;
}
.serviceboxitem {
width: 686rpx;
background: rgba(255, 255, 255, 1);
box-shadow: 0rpx 6rpx 12rpx rgba(0, 0, 0, 0.16);
opacity: 1;
padding: 0 0 42rpx;
box-sizing: border-box;
margin-bottom:24rpx;
}
.serviceitemtop {
padding: 32rpx 38rpx;
box-sizing: border-box;
border-bottom: 1rpx solid #f5f5f5;
color: #8c9198;
font-size: 28rpx;
}
.serviceitemlist{
display:flex;
align-items: center;
padding: 26rpx 38rpx 0;
box-sizing: border-box;
}
.serviceitemlistleft{
width:168rpx;
color:#06121E;
font-size: 28rpx;
}
.serviceitemlistright{
color:#8C9198;
font-size: 28rpx;
margin-left:40rpx;
}
\ No newline at end of file
... ...
// pages/mytaocan/mytaocan.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
\ No newline at end of file
... ...
{
"navigationBarTitleText": "我的套餐"
}
\ No newline at end of file
... ...
<view class="experiencetop">
<image src="/img/headimg.png"></image>
<view class="taocanbox">
<view class="taocanboxitem">
<view class="taocanboxitemleft">
<image src="/img/ren.png"></image>
</view>
<view class="taocanboxitemright">李宝杰</view>
</view>
<view class="taocanboxitem">
<view class="taocanboxitemleft">
<image src="/img/bigphone.png"></image>
</view>
<view class="taocanboxitemright">15888888888</view>
</view>
<view class="taocanboxitem">
<view class="taocanboxitemleft">
<image src="/img/house.png"></image>
</view>
<view class="taocanboxitemright">天津市西青区南山公寓4号楼5门311</view>
</view>
<view class="taocanboxitem">
<view class="taocanboxitemleft">
<image src="/img/mark.png"></image>
</view>
<view class="taocanboxitemright">备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注</view>
</view>
</view>
</view>
<view class="orderlist">
<view class="orderlisthead">
<view class="orderlistheaditem left">套餐订单编号</view>
<view class="orderlistheaditem middle">购买服务内容</view>
<view class="orderlistheaditem right">购买次数</view>
</view>
<view class="orderbox">
<view class="orderboxitem">
<view class="boxitemleft">No.5565890</view>
<view class="boxitemmiddle">内容内容内容内容 内容内容内容内容
</view>
<view class="boxitemright">3</view>
</view>
<view class="orderboxitem">
<view class="boxitemleft">No.5565890</view>
<view class="boxitemmiddle">内容内容内容内容 内容内容内容内容
</view>
<view class="boxitemright">3</view>
</view>
<view class="orderboxitem">
<view class="boxitemleft">No.5565890</view>
<view class="boxitemmiddle">内容内容内容内容 内容内容内容内容
</view>
<view class="boxitemright">3</view>
</view>
<view class="orderboxitem">
<view class="boxitemleft">No.5565890</view>
<view class="boxitemmiddle">内容内容内容内容 内容内容内容内容
</view>
<view class="boxitemright">3</view>
</view>
<view class="orderboxitem">
<view class="boxitemleft">No.5565890</view>
<view class="boxitemmiddle">内容内容内容内容 内容内容内容内容
</view>
<view class="boxitemright">3</view>
</view>
</view>
</view>
\ No newline at end of file
... ...
.experiencetop {
width: 750rpx;
height: 318rpx;
font-size: 0;
position: relative;
}
image {
width: 100%;
height: 100%;
}
.taocanbox {
width: 686rpx;
height: 660rpx;
position: absolute;
left: 32rpx;
top: 32rpx;
background: rgba(255, 255, 255, 1);
box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.16);
opacity: 1;
padding: 0 34rpx;
box-sizing: border-box;
}
.taocanboxitem{
display:flex;
align-items: center;
border-bottom:1rpx solid #f5f5f5;
padding: 44rpx 0;
box-sizing: border-box;
}
.taocanboxitemleft{
width:52rpx;
height:52rpx;
font-size: 0
}
.taocanboxitemright{
width:560rpx;
color:#8C9198;
font-size: 28rpx;
margin-left:18rpx;
}
.orderlist{
margin-top:450rpx;
padding: 0 32rpx;
box-sizing: border-box;
margin-bottom:50rpx;
}
.orderlisthead{
display:flex;
align-items: center;
justify-content: space-between;
color:#06121E;
font-size: 28rpx;
font-weight: bold;
border-bottom:1rpx solid #273574;
padding-bottom: 24rpx;
box-sizing: border-box;
}
.left{
width:168rpx;
}
.middle{
width:168rpx;
}
.right{
width:112rpx;
}
.orderboxitem{
display:flex;
align-items: center;
justify-content: space-between;
color:#06121E;
font-size: 24rpx;
text-align: center;
padding: 24rpx 0;
box-sizing: border-box;
border-bottom:1rpx solid #f5f5f5;
}
.boxitemleft{
width:168rpx;
text-align: center;
}
.boxitemmiddle{
width:168rpx;
text-align: center;
}
.boxitemright{
width:112rpx;
text-align: center;
}
\ No newline at end of file
... ...
// pages/service/service.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
\ No newline at end of file
... ...
{
"navigationBarTitleText": "意见反馈"
}
\ No newline at end of file
... ...
<view class="service">
<textarea placeholder='请输入您的意见和建议' placeholder-class='entertext'/>
</view>
<view class="subadvice">提交建议</view>
... ...
.service {
width: 602rpx;
height: 704rpx;
margin: 78rpx auto 0;
background: #f9f9f9;
}
.service textarea {
width: 100%;
height: 100%;
padding: 24rpx;
box-sizing: border-box;
color: #bdc4ce;
font-size: 28rpx;
}
.entertext {
color: #bdc4ce;
font-size: 28rpx;
}
.subadvice {
width: 600rpx;
height: 80rpx;
background: rgba(39, 53, 116, 1);
box-shadow: 0rpx 6rpx 6rpx rgba(0, 0, 0, 0.16);
opacity: 1;
color:#F9F9F9;
font-size: 28rpx;
text-align: center;
line-height: 80rpx;
margin:136rpx auto 0;
}
... ...
// pages/serviceexperience/serviceexperience.js
Page({
/**
* 页面的初始数据
*/
data: {
region: ['北京市', '北京市', '东城区'],
place:'请选择省市区'
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
bindRegionChange: function (e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({
region: e.detail.value,
place:e.detail.value[0] + e.detail.value[1] + e.detail.value[2]
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
\ No newline at end of file
... ...
{
"navigationBarTitleText": "服务体验"
}
\ No newline at end of file
... ...
<view class="experiencetop">
<image src="/img/experience.png"></image>
<view class="share">
<image class="shareimg" src="/img/share.png"></image>
</view>
<view class="servicetext">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proingravida dolor sit amet lacus accumsan et viverra commodo. Proin sodales pulvinar sic tempor. Sociis natoque bibendum laoreet. Proin gravida dolor sit amet lacus
accumsan et viverra justo commodo.
</view>
<view class="servicebox">
<view class="serviceboxtext">预约免费清洁除螨服务</view>
<view class="servicelsit">
<view class="servicelistitem">
<view class="servicelsitleft">
<image src="/img/renyuan.png"></image>
</view>
<view class="servicelistright">
<input placeholder='请输入您的姓名' placeholder-class='entertext' />
</view>
</view>
<view class="servicelistitem">
<view class="servicelsitleft">
<image src="/img/shouji.png"></image>
</view>
<view class="servicelistright">
<input placeholder='请输入您的手机号' placeholder-class='entertext' />
</view>
</view>
<picker mode="region" bindchange="bindRegionChange" value="{{region}}" custom-item="{{customItem}}">
<!-- <view class="picker">
当前选择:{{region[0]}},{{region[1]}},{{region[2]}}
</view> -->
<view class="servicelistitem">
<view class="servicelsitleft">
<image src="/img/map.png"></image>
</view>
<view class="servicelistright">
<view class="rightword">{{place}}</view>
<view class="rightrow">
<image src="/img/xiasanjiao.png"></image>
</view>
</view>
</view>
</picker>
<view class="servicelistitem">
<view class="servicelsitleft">
<image src="/img/index.png"></image>
</view>
<view class="servicelistright">
<input placeholder='请输入详细地址' placeholder-class='entertext' />
</view>
</view>
<view class="queren">确认</view>
</view>
</view>
</view>
\ No newline at end of file
... ...
.experiencetop {
width: 750rpx;
height: 492rpx;
font-size: 0;
}
image {
width: 100%;
height: 100%;
}
.share {
width: 52rpx;
height: 52rpx;
font-size: 0;
position: absolute;
top: 12rpx;
right: 36rpx;
}
.servicetext {
color: #fff;
font-size: 28rpx;
position: absolute;
top: 98rpx;
left: 32rpx;
line-height: 1.5;
}
.serviceboxtext {
color: #06121e;
font-size: 40rpx;
text-align: center;
font-weight: bold;
margin-top: 42rpx;
}
.servicebox {
width: 686rpx;
height: 748rpx;
background: rgba(255, 255, 255, 1);
box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.16);
opacity: 1;
position: absolute;
bottom: 65rpx;
left: 32rpx;
}
.servicelsit {
padding: 0 84rpx;
box-sizing: border-box;
}
.servicelistitem {
display: flex;
align-items: center;
margin-top: 56rpx;
padding-bottom: 8rpx;
box-sizing: border-box;
border-bottom: 1rpx solid #f5f5f5;
}
.servicelsitleft {
width: 56rpx;
height: 56rpx;
font-size: 0;
}
.servicelistright {
width: 389rpx;
color: #bdc4ce;
font-size: 28rpx;
margin-left: 50rpx;
}
.entertext {
color: #bdc4ce;
font-size: 28rpx;
}
.servicelistright {
display: flex;
align-items: center;
justify-content: space-between;
}
.rightword {
color: #bdc4ce;
font-size: 28rpx;
}
.rightrow {
width: 15rpx;
height: 15rpx;
font-size: 0;
}
.queren {
width: 516rpx;
height: 80rpx;
background: rgba(39, 53, 116, 1);
box-shadow: 0rpx 6rpx 6rpx rgba(0, 0, 0, 0.16);
opacity: 1;
color:#fff;
font-size: 28rpx;
text-align: center;
line-height: 80rpx;
margin-top:50rpx;
}
... ...
// pages/serviceintro/serviceintro.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
\ No newline at end of file
... ...
{
"navigationBarTitleText": "服务介绍"
}
\ No newline at end of file
... ...
<view class="top">
<image src="/img/headimg.png"></image>
<view class="topimg">
<image src="/img/banner.png"></image>
</view>
</view>
<view class="textbox">
<view class="textboxword">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar sic tempor. Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus pronin sapien nunc accuan eget.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar sic tempor. Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus pronin sapien nunc accuan eget.
</view>
<view class="textboximg">
<image src="/img/people.png"></image>
</view>
</view>
... ...
.top{
width:750rpx;
height:288rpx;
font-size: 0;
position: relative
}
image{
width:100%;
height:100%;
}
.topimg{
width:686rpx;
height:324rpx;
font-size: 0;
position: absolute;
bottom:-68rpx;
left:32rpx;
}
.textbox{
margin-top:100rpx;
padding: 0 32rpx;
box-sizing: border-box;
}
.textboxword{
color:#707070;
font-size: 28rpx;
line-height: 1.5;
}
.textboximg{
width:686rpx;
height:116rpx;
font-size: 0;
margin:32rpx auto 0;
}
\ No newline at end of file
... ...
{
"description": "项目配置文件",
"packOptions": {
"ignore": []
},
"setting": {
"urlCheck": true,
"es6": true,
"postcss": true,
"minified": true,
"newFeature": true,
"autoAudits": false
},
"compileType": "miniprogram",
"libVersion": "2.10.0",
"appid": "wx1f51f42105b63343",
"projectname": "chuman",
"debugOptions": {
"hidedInDevtools": []
},
"isGameTourist": false,
"simulatorType": "wechat",
"simulatorPluginLibVersion": {},
"condition": {
"search": {
"current": -1,
"list": []
},
"conversation": {
"current": -1,
"list": []
},
"plugin": {
"current": -1,
"list": []
},
"game": {
"currentL": -1,
"list": []
},
"miniprogram": {
"current": 0,
"list": [
{
"id": -1,
"name": "会员中心",
"pathName": "pages/membercenter/membercenter",
"scene": null
}
]
}
}
}
\ No newline at end of file
... ...
{
"desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
"rules": [{
"action": "allow",
"page": "*"
}]
}
\ No newline at end of file
... ...
const formatTime = date => {
const year = date.getFullYear()
const month = date.getMonth() + 1
const day = date.getDate()
const hour = date.getHours()
const minute = date.getMinutes()
const second = date.getSeconds()
return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}
const formatNumber = n => {
n = n.toString()
return n[1] ? n : '0' + n
}
module.exports = {
formatTime: formatTime
}
... ...