5.8
This commit is contained in:
commit
3a7aeb5b0a
5
App.vue
5
App.vue
@ -29,4 +29,9 @@
|
|||||||
height: 20rpx;
|
height: 20rpx;
|
||||||
background: #F9F9F9;
|
background: #F9F9F9;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
page{
|
||||||
|
font-size: 28rpx;
|
||||||
|
padding-bottom: 120rpx;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
5
api/area.js
Normal file
5
api/area.js
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
export const apiArr = {
|
||||||
|
city: '/citys/s/list', // 获取省份列表
|
||||||
|
area: '/citys/c/list', // 获取城市列表
|
||||||
|
business: '/citys/x/list', // 获取区县列表
|
||||||
|
}
|
||||||
11
api/communityService.js
Normal file
11
api/communityService.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
export const apiArr = {
|
||||||
|
getCateList: '/wechat/appoints/get-cate-list', // 获取同城服务分类列表
|
||||||
|
serverInfo: '/wechat/appoints/get-one', // 获取同城服务详情
|
||||||
|
getAllList: '/wechat/appoints/get-all-list', // 跟据不同的id 查分类
|
||||||
|
getHotCate: '/wechat/appoints/get-hot-cate', //获取热门上门服务
|
||||||
|
submitServer: '/wechat/appoint-orders/now', // 预约服务
|
||||||
|
createServerOrder: '/wechat/appoint-orders/create', // 创建上门服务订单
|
||||||
|
getCurrentShopMsg: '/wechat/water/device/shop-info', // 获取商家支付信息
|
||||||
|
getShopList: '/wechat/get-shop-list', // 获取商家列表
|
||||||
|
getGoodsDesc: "/wechat/shop/shop_info", //商家详情
|
||||||
|
}
|
||||||
20
api/user.js
Normal file
20
api/user.js
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
export const apiArr = {
|
||||||
|
getAllList:' /wechat/appoints/get-all-list', // 上门服务商品列表
|
||||||
|
revoke: '/wechat/appoint-orders/revoke', // 取消订单
|
||||||
|
getOne: '/wechat/appoint-orders/get-one', // 订单详情
|
||||||
|
create: '/wechat/appoint-orders/create', // 订单提交
|
||||||
|
getOrdersAllList: '/wechat/appoint-orders/get-all-list', // 查询这个登录人的所有订单
|
||||||
|
signCycle: '/wechat/sign/sign-cycle', // 签到周期详情
|
||||||
|
signList: '/wechat/sign/sign-list', // 获取签到记录列表
|
||||||
|
sign: '/wechat/sign/sign', // 积分签到
|
||||||
|
signIntegral: '/wechat/sign/integral', // 查询账户积分
|
||||||
|
signInfo: '/wechat/sign/info', // 获取签到详情
|
||||||
|
addr: '/wechat/mpusers/addr', // 获取地址信息
|
||||||
|
setAddr: '/wechat/mpusers/set-addr',// 修改地址接口
|
||||||
|
avatar: '/wechat/mpusers/avatar', // 上传头像
|
||||||
|
modifyPass: '/wechat/mpusers/modify-pass', // 修改登录密码
|
||||||
|
payPass: '/wechat/mpusers/pay-pass', // 设置支付密码
|
||||||
|
couponList: '/wechat/discuss/list', // 获取优惠券列表
|
||||||
|
getUserCommunity:"/wechat/community/owner/mylist",//获取用户社区信息
|
||||||
|
createQrcode: '/wechat/water/device/qr-code', //获取小程序码
|
||||||
|
};
|
||||||
11
components/areaPopup/areaPopup.css
Normal file
11
components/areaPopup/areaPopup.css
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
.popup_title {
|
||||||
|
display: flex;
|
||||||
|
margin: 20rpx 30rpx 0;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
.popup_label {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
.color_blue {
|
||||||
|
color: #576b95;
|
||||||
|
}
|
||||||
158
components/areaPopup/areaPopup.vue
Normal file
158
components/areaPopup/areaPopup.vue
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<u-popup
|
||||||
|
:show="show"
|
||||||
|
closeOnClickOverlay
|
||||||
|
round="20rpx"
|
||||||
|
@close="onClose"
|
||||||
|
>
|
||||||
|
<view>
|
||||||
|
<view class="popup_title">
|
||||||
|
<view class="popup_label" @click="onClose">取消</view>
|
||||||
|
<view class="popup_label color_blue" @click="onOk">确认</view>
|
||||||
|
</view>
|
||||||
|
<!-- indicator-style="height: 50px;" style="width: 100%; height: 500rpx;" -->
|
||||||
|
<picker-view indicator-style="height: 50px;" style="width: 100%; height: 400rpx;" :value="value" @change="bindChange">
|
||||||
|
<picker-view-column>
|
||||||
|
<view v-for="(item, index) in provList" :key="index" style="line-height: 50px; text-align: center;">{{item.name}}</view>
|
||||||
|
</picker-view-column>
|
||||||
|
<picker-view-column>
|
||||||
|
<view v-for="(item, index) in defaultCity" :key="index" style="line-height: 50px; text-align: center;">{{item.name}}</view>
|
||||||
|
</picker-view-column>
|
||||||
|
<picker-view-column>
|
||||||
|
<view v-for="(item, index) in defaultDist" :key="index" style="line-height: 50px; text-align: center;">{{item.business_name}}</view>
|
||||||
|
</picker-view-column>
|
||||||
|
</picker-view>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
apiArr
|
||||||
|
} from '../../api/area';
|
||||||
|
import { request } from '../../utils';
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
show: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
required: true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
provList: [], // 省
|
||||||
|
cityList: [], //市
|
||||||
|
distList: [], // 区
|
||||||
|
|
||||||
|
defaultCity: [], // 默认展示的市区数据
|
||||||
|
defaultDist: [], // 默认展示的县/区数据
|
||||||
|
|
||||||
|
confirmProv: {}, // 默认选中省
|
||||||
|
confirmCity: {}, // 默认选中市
|
||||||
|
confirmDist: {}, // 默认选中区/县
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
// 获取省份信息
|
||||||
|
async getProvList () {
|
||||||
|
const res = await request(apiArr.city, 'POST', {}, { silent: false });
|
||||||
|
return res;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取市区信息
|
||||||
|
async getCityList () {
|
||||||
|
const res = await request(apiArr.area, 'POST', {}, { silent: false });
|
||||||
|
return res;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取 县/区 信息
|
||||||
|
async getDistList () {
|
||||||
|
const res = await request(apiArr.business, 'POST', {}, { silent: false });
|
||||||
|
return res;
|
||||||
|
},
|
||||||
|
|
||||||
|
async init() {
|
||||||
|
uni.showLoading({
|
||||||
|
title: '加载中',
|
||||||
|
mask: true
|
||||||
|
});
|
||||||
|
try {
|
||||||
|
const [provRes, cityRes, distRes] = await Promise.all([
|
||||||
|
this.getProvList(),
|
||||||
|
this.getCityList(),
|
||||||
|
this.getDistList(),
|
||||||
|
])
|
||||||
|
|
||||||
|
uni.hideLoading();
|
||||||
|
// 默认展示第一条数据 的市区 和 城区
|
||||||
|
let defaultCity = cityRes.rows.filter((item) => {
|
||||||
|
return item.city_id === provRes.rows[0].city_id
|
||||||
|
});
|
||||||
|
let defaultDist = distRes.rows.filter((item) => {
|
||||||
|
return item.area_id === cityRes.rows[0].area_id
|
||||||
|
});
|
||||||
|
|
||||||
|
this.provList = provRes?.rows; // 全部省信息
|
||||||
|
this.cityList = cityRes?.rows; // 全部市信息
|
||||||
|
this.distList = distRes?.rows; // 全部区信息
|
||||||
|
|
||||||
|
this.defaultCity = defaultCity; // 默认展示 市区
|
||||||
|
this.defaultDist = defaultDist; // 默认展示 县/区
|
||||||
|
|
||||||
|
this.confirmProv = provRes.rows[0];
|
||||||
|
this.confirmCity = defaultCity[0];
|
||||||
|
this.confirmDist = defaultDist[0];
|
||||||
|
} catch (error) {
|
||||||
|
uni.hideLoading();
|
||||||
|
console.log('获取省市区信息异常', error);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 切换省市区时联动改变参数值
|
||||||
|
bindChange (e) {
|
||||||
|
console.log('[1231331], e', e);
|
||||||
|
const {value } = e.detail;
|
||||||
|
const {provList, cityList, distList} = this;
|
||||||
|
|
||||||
|
// 每次切换时,根据当前点击的省过滤出所属市区,并且变化县/区
|
||||||
|
let newCrty = cityList.filter((item) => item.city_id === provList[value[0]].city_id);
|
||||||
|
let newDist = distList.filter((item) => item.area_id === newCrty[value[1]].area_id);
|
||||||
|
|
||||||
|
this.defaultCity = newCrty;
|
||||||
|
this.defaultDist = newDist;
|
||||||
|
|
||||||
|
// 更改默认选中数据
|
||||||
|
this.confirmProv = provList[value[0]];
|
||||||
|
this.confirmCity = newCrty[value[1]];
|
||||||
|
this.confirmDist = newDist[value[2]];
|
||||||
|
},
|
||||||
|
|
||||||
|
// 关闭弹窗
|
||||||
|
onClose() {
|
||||||
|
this.$emit('close');
|
||||||
|
},
|
||||||
|
|
||||||
|
// 点击确定传递当前选中省市区信息给父方法
|
||||||
|
onOk() {
|
||||||
|
const { confirmProv, confirmCity, confirmDist } = this;
|
||||||
|
this.$emit('selectArea', {confirmProv, confirmCity, confirmDist});
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
mounted() {
|
||||||
|
this.init();
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import url('./areaPopup.css');
|
||||||
|
</style>
|
||||||
89
components/nav/nav.css
Normal file
89
components/nav/nav.css
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
|
||||||
|
.foot-fixed {
|
||||||
|
position: fixed;
|
||||||
|
bottom: -1px;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
z-index: 999;
|
||||||
|
width: 100%;
|
||||||
|
background: #ffffff;
|
||||||
|
border-top: 1px solid #E8E8E8;
|
||||||
|
box-shadow: 0 0 3px rgba(0,0,0,0.1);
|
||||||
|
}
|
||||||
|
.foot-fixed .foot-item {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.foot-fixed .foot-item {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.foot-fixed .foot-item {
|
||||||
|
width: 20%;
|
||||||
|
float: left;
|
||||||
|
text-align: center;
|
||||||
|
color: #777;
|
||||||
|
padding: 5px 0 10px;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
color: #666;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
.foot-fixed .foot-item .foot-icon {
|
||||||
|
width: 24px;
|
||||||
|
height: 26px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
.foot-fixed .foot-item .foot-label {
|
||||||
|
margin: 5px 0;
|
||||||
|
}
|
||||||
|
.foot-fixed .foot-item .foot-label {
|
||||||
|
height: 15px;
|
||||||
|
line-height: 15px;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
.foot-fixed .foot-item span {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* 自定义导航栏 */
|
||||||
|
.nav-box {
|
||||||
|
box-sizing: border-box;
|
||||||
|
width: 100%;
|
||||||
|
/* position: relative; */
|
||||||
|
/* position: fixed; */
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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-size: 32rpx;
|
||||||
|
letter-spacing: 2rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-box .nav-bar-title {
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
@ -1,20 +1,97 @@
|
|||||||
<template>
|
<template>
|
||||||
<view>123
|
<view class="foot-fixed">
|
||||||
|
<view v-for="(item, index) in navList" :key='index'>
|
||||||
|
<view id="navIndex" :style="{width:foot_width}" @click="jump" :data-idx="index" :data-url="item.url"
|
||||||
|
class="foot-item">
|
||||||
|
<image class="foot-icon" :src="item.photo" mode=""></image>
|
||||||
|
<text class="foot-label" id="navIndexLabel">{{item.nav_name}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name:"tes",
|
name: "nav",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
navList: [],
|
||||||
|
foot_width: '20%',
|
||||||
};
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getFootnav() {
|
||||||
|
let _that = this;
|
||||||
|
uni.request({
|
||||||
|
url: 'https://zhsq.hshuishang.com/Miniapi/Index/footer_nav_list',
|
||||||
|
method: 'post',
|
||||||
|
header: {
|
||||||
|
'Content-type': 'application/x-www-form-urlencoded'
|
||||||
|
},
|
||||||
|
data: {},
|
||||||
|
dataType: 'json',
|
||||||
|
success: (result) => {
|
||||||
|
result.data[0].url = "/pages/index/index"
|
||||||
|
result.data[1].url = "/pages/device/device"
|
||||||
|
result.data[2].nav_name = "手机通行"
|
||||||
|
result.data[2].url = "/pages/phoneGo/phoneGo"
|
||||||
|
|
||||||
|
result.data[3].url = `packages/community/index/index`
|
||||||
|
result.data[4].url = "/pages/user/index"
|
||||||
|
|
||||||
|
result.data.splice(1, 2);
|
||||||
|
let footWidth = (100 / result.data.length).toFixed(2) + '%';
|
||||||
|
this.navList = result.data;
|
||||||
|
this.foot_width = footWidth;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
//暂未开通
|
||||||
|
NotOpen() {
|
||||||
|
uni.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '此功能暂未开通!',
|
||||||
|
showCancel: false,
|
||||||
|
complete: (res) => {
|
||||||
|
if (res.cancel) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
jump(e) {
|
||||||
|
const ctoken = uni.getStorageSync('ctoken');
|
||||||
|
const authen = ['/pages/index/index', '/pages/user/index'];
|
||||||
|
// 除首页及个人中心页不需要鉴定ctoken, 其他tab页均需存在登录态才可访问
|
||||||
|
if (authen.includes(e.currentTarget.dataset.url)) {
|
||||||
|
uni.redirectTo({
|
||||||
|
url: e.currentTarget.dataset.url,
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!ctoken) {
|
||||||
|
uni.redirectTo({
|
||||||
|
url: '/pages/login/login',
|
||||||
|
})
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
uni.redirectTo({
|
||||||
|
url: e.currentTarget.dataset.url,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getFootnav();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
@import url("./nav.css");
|
||||||
</style>
|
</style>
|
||||||
@ -16,8 +16,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { onLoad } from 'uview-ui/libs/mixin/mixin';
|
|
||||||
import { apiArr } from '../../api/community';
|
import { apiArr } from '../../api/community';
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@ -102,7 +102,7 @@
|
|||||||
this.chooseClick(e);
|
this.chooseClick(e);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
NavgateTo(`/community/communityDetail/index?title=${item.name}&id=${item.community_id}`, { isLogin: false })
|
NavgateTo(`/packages/community/communityDetail/index?title=${item.name}&id=${item.community_id}`, { isLogin: false })
|
||||||
},
|
},
|
||||||
|
|
||||||
//选择小区
|
//选择小区
|
||||||
|
|||||||
272
js_sdk/wa-permission/permission.js
Normal file
272
js_sdk/wa-permission/permission.js
Normal file
@ -0,0 +1,272 @@
|
|||||||
|
/**
|
||||||
|
* 本模块封装了Android、iOS的应用权限判断、打开应用权限设置界面、以及位置系统服务是否开启
|
||||||
|
*/
|
||||||
|
|
||||||
|
var isIos
|
||||||
|
// #ifdef APP-PLUS
|
||||||
|
isIos = (plus.os.name == "iOS")
|
||||||
|
// #endif
|
||||||
|
|
||||||
|
// 判断推送权限是否开启
|
||||||
|
function judgeIosPermissionPush() {
|
||||||
|
var result = false;
|
||||||
|
var UIApplication = plus.ios.import("UIApplication");
|
||||||
|
var app = UIApplication.sharedApplication();
|
||||||
|
var enabledTypes = 0;
|
||||||
|
if (app.currentUserNotificationSettings) {
|
||||||
|
var settings = app.currentUserNotificationSettings();
|
||||||
|
enabledTypes = settings.plusGetAttribute("types");
|
||||||
|
console.log("enabledTypes1:" + enabledTypes);
|
||||||
|
if (enabledTypes == 0) {
|
||||||
|
console.log("推送权限没有开启");
|
||||||
|
} else {
|
||||||
|
result = true;
|
||||||
|
console.log("已经开启推送功能!")
|
||||||
|
}
|
||||||
|
plus.ios.deleteObject(settings);
|
||||||
|
} else {
|
||||||
|
enabledTypes = app.enabledRemoteNotificationTypes();
|
||||||
|
if (enabledTypes == 0) {
|
||||||
|
console.log("推送权限没有开启!");
|
||||||
|
} else {
|
||||||
|
result = true;
|
||||||
|
console.log("已经开启推送功能!")
|
||||||
|
}
|
||||||
|
console.log("enabledTypes2:" + enabledTypes);
|
||||||
|
}
|
||||||
|
plus.ios.deleteObject(app);
|
||||||
|
plus.ios.deleteObject(UIApplication);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 判断定位权限是否开启
|
||||||
|
function judgeIosPermissionLocation() {
|
||||||
|
var result = false;
|
||||||
|
var cllocationManger = plus.ios.import("CLLocationManager");
|
||||||
|
var status = cllocationManger.authorizationStatus();
|
||||||
|
result = (status != 2)
|
||||||
|
console.log("定位权限开启:" + result);
|
||||||
|
// 以下代码判断了手机设备的定位是否关闭,推荐另行使用方法 checkSystemEnableLocation
|
||||||
|
/* var enable = cllocationManger.locationServicesEnabled();
|
||||||
|
var status = cllocationManger.authorizationStatus();
|
||||||
|
console.log("enable:" + enable);
|
||||||
|
console.log("status:" + status);
|
||||||
|
if (enable && status != 2) {
|
||||||
|
result = true;
|
||||||
|
console.log("手机定位服务已开启且已授予定位权限");
|
||||||
|
} else {
|
||||||
|
console.log("手机系统的定位没有打开或未给予定位权限");
|
||||||
|
} */
|
||||||
|
plus.ios.deleteObject(cllocationManger);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 判断麦克风权限是否开启
|
||||||
|
function judgeIosPermissionRecord() {
|
||||||
|
var result = false;
|
||||||
|
var avaudiosession = plus.ios.import("AVAudioSession");
|
||||||
|
var avaudio = avaudiosession.sharedInstance();
|
||||||
|
var permissionStatus = avaudio.recordPermission();
|
||||||
|
console.log("permissionStatus:" + permissionStatus);
|
||||||
|
if (permissionStatus == 1684369017 || permissionStatus == 1970168948) {
|
||||||
|
console.log("麦克风权限没有开启");
|
||||||
|
} else {
|
||||||
|
result = true;
|
||||||
|
console.log("麦克风权限已经开启");
|
||||||
|
}
|
||||||
|
plus.ios.deleteObject(avaudiosession);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 判断相机权限是否开启
|
||||||
|
function judgeIosPermissionCamera() {
|
||||||
|
var result = false;
|
||||||
|
var AVCaptureDevice = plus.ios.import("AVCaptureDevice");
|
||||||
|
var authStatus = AVCaptureDevice.authorizationStatusForMediaType('vide');
|
||||||
|
console.log("authStatus:" + authStatus);
|
||||||
|
if (authStatus == 3) {
|
||||||
|
result = true;
|
||||||
|
console.log("相机权限已经开启");
|
||||||
|
} else {
|
||||||
|
console.log("相机权限没有开启");
|
||||||
|
}
|
||||||
|
plus.ios.deleteObject(AVCaptureDevice);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 判断相册权限是否开启
|
||||||
|
function judgeIosPermissionPhotoLibrary() {
|
||||||
|
var result = false;
|
||||||
|
var PHPhotoLibrary = plus.ios.import("PHPhotoLibrary");
|
||||||
|
var authStatus = PHPhotoLibrary.authorizationStatus();
|
||||||
|
console.log("authStatus:" + authStatus);
|
||||||
|
if (authStatus == 3) {
|
||||||
|
result = true;
|
||||||
|
console.log("相册权限已经开启");
|
||||||
|
} else {
|
||||||
|
console.log("相册权限没有开启");
|
||||||
|
}
|
||||||
|
plus.ios.deleteObject(PHPhotoLibrary);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 判断通讯录权限是否开启
|
||||||
|
function judgeIosPermissionContact() {
|
||||||
|
var result = false;
|
||||||
|
var CNContactStore = plus.ios.import("CNContactStore");
|
||||||
|
var cnAuthStatus = CNContactStore.authorizationStatusForEntityType(0);
|
||||||
|
if (cnAuthStatus == 3) {
|
||||||
|
result = true;
|
||||||
|
console.log("通讯录权限已经开启");
|
||||||
|
} else {
|
||||||
|
console.log("通讯录权限没有开启");
|
||||||
|
}
|
||||||
|
plus.ios.deleteObject(CNContactStore);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 判断日历权限是否开启
|
||||||
|
function judgeIosPermissionCalendar() {
|
||||||
|
var result = false;
|
||||||
|
var EKEventStore = plus.ios.import("EKEventStore");
|
||||||
|
var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(0);
|
||||||
|
if (ekAuthStatus == 3) {
|
||||||
|
result = true;
|
||||||
|
console.log("日历权限已经开启");
|
||||||
|
} else {
|
||||||
|
console.log("日历权限没有开启");
|
||||||
|
}
|
||||||
|
plus.ios.deleteObject(EKEventStore);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 判断备忘录权限是否开启
|
||||||
|
function judgeIosPermissionMemo() {
|
||||||
|
var result = false;
|
||||||
|
var EKEventStore = plus.ios.import("EKEventStore");
|
||||||
|
var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(1);
|
||||||
|
if (ekAuthStatus == 3) {
|
||||||
|
result = true;
|
||||||
|
console.log("备忘录权限已经开启");
|
||||||
|
} else {
|
||||||
|
console.log("备忘录权限没有开启");
|
||||||
|
}
|
||||||
|
plus.ios.deleteObject(EKEventStore);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Android权限查询
|
||||||
|
function requestAndroidPermission(permissionID) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
plus.android.requestPermissions(
|
||||||
|
[permissionID], // 理论上支持多个权限同时查询,但实际上本函数封装只处理了一个权限的情况。有需要的可自行扩展封装
|
||||||
|
function(resultObj) {
|
||||||
|
var result = 0;
|
||||||
|
for (var i = 0; i < resultObj.granted.length; i++) {
|
||||||
|
var grantedPermission = resultObj.granted[i];
|
||||||
|
console.log('已获取的权限:' + grantedPermission);
|
||||||
|
result = 1
|
||||||
|
}
|
||||||
|
for (var i = 0; i < resultObj.deniedPresent.length; i++) {
|
||||||
|
var deniedPresentPermission = resultObj.deniedPresent[i];
|
||||||
|
console.log('拒绝本次申请的权限:' + deniedPresentPermission);
|
||||||
|
result = 0
|
||||||
|
}
|
||||||
|
for (var i = 0; i < resultObj.deniedAlways.length; i++) {
|
||||||
|
var deniedAlwaysPermission = resultObj.deniedAlways[i];
|
||||||
|
console.log('永久拒绝申请的权限:' + deniedAlwaysPermission);
|
||||||
|
result = -1
|
||||||
|
}
|
||||||
|
resolve(result);
|
||||||
|
// 若所需权限被拒绝,则打开APP设置界面,可以在APP设置界面打开相应权限
|
||||||
|
// if (result != 1) {
|
||||||
|
// gotoAppPermissionSetting()
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
function(error) {
|
||||||
|
console.log('申请权限错误:' + error.code + " = " + error.message);
|
||||||
|
resolve({
|
||||||
|
code: error.code,
|
||||||
|
message: error.message
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 使用一个方法,根据参数判断权限
|
||||||
|
function judgeIosPermission(permissionID) {
|
||||||
|
if (permissionID == "location") {
|
||||||
|
return judgeIosPermissionLocation()
|
||||||
|
} else if (permissionID == "camera") {
|
||||||
|
return judgeIosPermissionCamera()
|
||||||
|
} else if (permissionID == "photoLibrary") {
|
||||||
|
return judgeIosPermissionPhotoLibrary()
|
||||||
|
} else if (permissionID == "record") {
|
||||||
|
return judgeIosPermissionRecord()
|
||||||
|
} else if (permissionID == "push") {
|
||||||
|
return judgeIosPermissionPush()
|
||||||
|
} else if (permissionID == "contact") {
|
||||||
|
return judgeIosPermissionContact()
|
||||||
|
} else if (permissionID == "calendar") {
|
||||||
|
return judgeIosPermissionCalendar()
|
||||||
|
} else if (permissionID == "memo") {
|
||||||
|
return judgeIosPermissionMemo()
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 跳转到**应用**的权限页面
|
||||||
|
function gotoAppPermissionSetting() {
|
||||||
|
if (isIos) {
|
||||||
|
var UIApplication = plus.ios.import("UIApplication");
|
||||||
|
var application2 = UIApplication.sharedApplication();
|
||||||
|
var NSURL2 = plus.ios.import("NSURL");
|
||||||
|
// var setting2 = NSURL2.URLWithString("prefs:root=LOCATION_SERVICES");
|
||||||
|
var setting2 = NSURL2.URLWithString("app-settings:");
|
||||||
|
application2.openURL(setting2);
|
||||||
|
|
||||||
|
plus.ios.deleteObject(setting2);
|
||||||
|
plus.ios.deleteObject(NSURL2);
|
||||||
|
plus.ios.deleteObject(application2);
|
||||||
|
} else {
|
||||||
|
// console.log(plus.device.vendor);
|
||||||
|
var Intent = plus.android.importClass("android.content.Intent");
|
||||||
|
var Settings = plus.android.importClass("android.provider.Settings");
|
||||||
|
var Uri = plus.android.importClass("android.net.Uri");
|
||||||
|
var mainActivity = plus.android.runtimeMainActivity();
|
||||||
|
var intent = new Intent();
|
||||||
|
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
|
||||||
|
var uri = Uri.fromParts("package", mainActivity.getPackageName(), null);
|
||||||
|
intent.setData(uri);
|
||||||
|
mainActivity.startActivity(intent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查系统的设备服务是否开启
|
||||||
|
// var checkSystemEnableLocation = async function () {
|
||||||
|
function checkSystemEnableLocation() {
|
||||||
|
if (isIos) {
|
||||||
|
var result = false;
|
||||||
|
var cllocationManger = plus.ios.import("CLLocationManager");
|
||||||
|
var result = cllocationManger.locationServicesEnabled();
|
||||||
|
console.log("系统定位开启:" + result);
|
||||||
|
plus.ios.deleteObject(cllocationManger);
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
var context = plus.android.importClass("android.content.Context");
|
||||||
|
var locationManager = plus.android.importClass("android.location.LocationManager");
|
||||||
|
var main = plus.android.runtimeMainActivity();
|
||||||
|
var mainSvr = main.getSystemService(context.LOCATION_SERVICE);
|
||||||
|
var result = mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER);
|
||||||
|
console.log("系统定位开启:" + result);
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
judgeIosPermission: judgeIosPermission,
|
||||||
|
requestAndroidPermission: requestAndroidPermission,
|
||||||
|
checkSystemEnableLocation: checkSystemEnableLocation,
|
||||||
|
gotoAppPermissionSetting: gotoAppPermissionSetting
|
||||||
|
}
|
||||||
@ -57,7 +57,7 @@
|
|||||||
},
|
},
|
||||||
"oauth" : {
|
"oauth" : {
|
||||||
"weixin" : {
|
"weixin" : {
|
||||||
"appid" : "wx48c8154de6cc8b36",
|
"appid" : "wxb4018c78fa143450",
|
||||||
"UniversalLinks" : ""
|
"UniversalLinks" : ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,8 +27,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { request, NavgateTo } from '../../utils';
|
import { request } from '../../../utils';
|
||||||
import { apiArr } from '../../api/community';
|
import { apiArr } from '../../../api/community';
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -62,8 +62,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { request, picUrl, NavgateTo } from '../../utils';
|
import { request, picUrl, NavgateTo } from '../../../utils';
|
||||||
import { apiArr } from '../../api/community';
|
import { apiArr } from '../../../api/community';
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -82,7 +82,6 @@
|
|||||||
typeName:"",//业主 家属 租户 访客
|
typeName:"",//业主 家属 租户 访客
|
||||||
room_id:"",
|
room_id:"",
|
||||||
|
|
||||||
show:false,
|
|
||||||
columns:[
|
columns:[
|
||||||
[
|
[
|
||||||
{text:"业主",type:1},
|
{text:"业主",type:1},
|
||||||
@ -101,10 +100,10 @@
|
|||||||
const { type } = e.currentTarget.dataset;
|
const { type } = e.currentTarget.dataset;
|
||||||
|
|
||||||
if(type == '1'){
|
if(type == '1'){
|
||||||
NavgateTo(`/community/chooseMsg/index?type=${type}&id=${this.communityId}`, {isLogin: false});
|
NavgateTo(`/packages/community/chooseMsg/index?type=${type}&id=${this.communityId}`, {isLogin: false});
|
||||||
}else{
|
}else{
|
||||||
if(this.FacId){
|
if(this.FacId){
|
||||||
NavgateTo(`/community/chooseMsg/index?type=${type}&id=${this.communityId}&FacId=${this.FacId}`, {isLogin: false});
|
NavgateTo(`/packages/community/chooseMsg/index?type=${type}&id=${this.communityId}&FacId=${this.FacId}`, {isLogin: false});
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
@ -23,8 +23,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { request, picUrl, NavgateTo } from '../../utils';
|
import { request } from '../../../utils';
|
||||||
import { apiArr } from '../../api/community';
|
import { apiArr } from '../../../api/community';
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -57,8 +57,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { request, picUrl, NavgateTo } from '../../utils';
|
import { request, picUrl, NavgateTo } from '../../../utils';
|
||||||
import { apiArr } from '../../api/community';
|
import { apiArr } from '../../../api/community';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data () {
|
data () {
|
||||||
@ -68,7 +68,7 @@
|
|||||||
navList: [
|
navList: [
|
||||||
{
|
{
|
||||||
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_345.png',
|
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/_assets/Group_345.png',
|
||||||
url: '/community/applyOwer/index',
|
url: '/packages/community/applyOwer/index',
|
||||||
desc: '申请业主'
|
desc: '申请业主'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -165,8 +165,8 @@
|
|||||||
}
|
}
|
||||||
console.log('newInfo', newInfo);
|
console.log('newInfo', newInfo);
|
||||||
let navList = this.navList
|
let navList = this.navList
|
||||||
navList[0].url = `/community/applyOwer/index?id=${Number(id)}&title=${res.name}`;
|
navList[0].url = `/packages/community/applyOwer/index?id=${Number(id)}&title=${res.name}`;
|
||||||
navList[1].url = `/community/mycar/index?id=${Number(id)}&title=${res.name}`;
|
navList[1].url = `/packages/community/mycar/index?id=${Number(id)}&title=${res.name}`;
|
||||||
this.info = newInfo;
|
this.info = newInfo;
|
||||||
this.navList = navList;
|
this.navList = navList;
|
||||||
|
|
||||||
@ -195,7 +195,7 @@
|
|||||||
|
|
||||||
// 通知栏点击跳转
|
// 通知栏点击跳转
|
||||||
headerTipsClick() {
|
headerTipsClick() {
|
||||||
NavgateTo(`/community/notice/index?id=${this.id}&title=${this.pageTitle}`, { isLogin: false })
|
NavgateTo(`/packages/community/notice/index?id=${this.id}&title=${this.pageTitle}`, { isLogin: false })
|
||||||
},
|
},
|
||||||
|
|
||||||
// 宫格item点击
|
// 宫格item点击
|
||||||
@ -209,11 +209,11 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
repair(){
|
repair(){
|
||||||
NavgateTo(`/community/oneRepair/index`, {isLogin: false })
|
NavgateTo(`/packages/community/oneRepair/index`, {isLogin: false })
|
||||||
},
|
},
|
||||||
|
|
||||||
ReparirList(){
|
ReparirList(){
|
||||||
NavgateTo(`/community/repairList/index?id=${this.id}&title=${this.info.name}`, {isLogin: false })
|
NavgateTo(`/packages/community/repairList/index?id=${this.id}&title=${this.info.name}`, {isLogin: false })
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
@ -5,8 +5,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { request, picUrl, NavgateTo } from '../../utils';
|
import { request } from '../../../utils';
|
||||||
import { apiArr } from '../../api/community';
|
import { apiArr } from '../../../api/community';
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -24,8 +24,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { request, picUrl, uniqueByField } from '../../utils';
|
import { request, picUrl, uniqueByField } from '../../../utils';
|
||||||
import { apiArr } from '../../api/community';
|
import { apiArr } from '../../../api/community';
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -63,9 +63,6 @@
|
|||||||
if(options?.types == 2){
|
if(options?.types == 2){
|
||||||
this.init(options?.type || '');
|
this.init(options?.type || '');
|
||||||
}else{
|
}else{
|
||||||
// this.init(options?.type || '');
|
|
||||||
// return
|
|
||||||
// // 临时调init , 后续接口好了改回去
|
|
||||||
this.getUserCommunity()
|
this.getUserCommunity()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -31,8 +31,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { request, NavgateTo } from '../../utils';
|
import { request, NavgateTo } from '../../../utils';
|
||||||
import { apiArr } from '../../api/community';
|
import { apiArr } from '../../../api/community';
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -108,7 +108,7 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
addCar(){
|
addCar(){
|
||||||
NavgateTo(`/community/addCar/index?title=${this.title}&id=${this.id}`, {isLogin: false})
|
NavgateTo(`/packages/community/addCar/index?title=${this.title}&id=${this.id}`, {isLogin: false})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
@ -25,8 +25,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { request, picUrl, NavgateTo } from '../../utils';
|
import { request, NavgateTo } from '../../../utils';
|
||||||
import { apiArr } from '../../api/community';
|
import { apiArr } from '../../../api/community';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
@ -65,7 +65,7 @@
|
|||||||
headerNoticeClick(event) {
|
headerNoticeClick(event) {
|
||||||
console.log('12313', event);
|
console.log('12313', event);
|
||||||
const { item } = event.currentTarget.dataset;
|
const { item } = event.currentTarget.dataset;
|
||||||
NavgateTo(`/community/desc/desc?id=${item.news_id}&title=${item.title}`, {isLogin: false})
|
NavgateTo(`/packages/community/desc/desc?id=${item.news_id}&title=${item.title}`, {isLogin: false})
|
||||||
},
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
@ -122,10 +122,10 @@
|
|||||||
NavgateTo,
|
NavgateTo,
|
||||||
upload,
|
upload,
|
||||||
isPhone,
|
isPhone,
|
||||||
} from '../../utils';
|
} from '../../../utils';
|
||||||
import {
|
import {
|
||||||
apiArr
|
apiArr
|
||||||
} from '../../api/community';
|
} from '../../../api/community';
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -176,18 +176,18 @@
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
chooseCom(){
|
chooseCom(){
|
||||||
NavgateTo(`/community/index/index?joinType=3`, { isLogin: false })
|
NavgateTo(`/packages/community/index/index?joinType=3`, { isLogin: false })
|
||||||
},
|
},
|
||||||
|
|
||||||
chooseFac(e){
|
chooseFac(e){
|
||||||
console.log('eeee', e);
|
console.log('eeee', e);
|
||||||
const { type } = e.currentTarget.dataset;
|
const { type } = e.currentTarget.dataset;
|
||||||
if(type == '1'){
|
if(type == '1'){
|
||||||
NavgateTo(`/community/chooseMsg/index?type=${type}&id=${this.CommunityInfo.id}`, { isLogin: false });
|
NavgateTo(`/packages/community/chooseMsg/index?type=${type}&id=${this.CommunityInfo.id}`, { isLogin: false });
|
||||||
}else{
|
}else{
|
||||||
console.log(this.FacId);
|
console.log(this.FacId);
|
||||||
if(this.FacId){
|
if(this.FacId){
|
||||||
NavgateTo(`/community/chooseMsg/index?type=${type}&id=${this.CommunityInfo.id}&FacId=${this.FacId}`, { isLogin: false });
|
NavgateTo(`/packages/community/chooseMsg/index?type=${type}&id=${this.CommunityInfo.id}&FacId=${this.FacId}`, { isLogin: false });
|
||||||
}else{
|
}else{
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '请先选择楼宇号',
|
title: '请先选择楼宇号',
|
||||||
74
packages/community/ownerList/index.css
Normal file
74
packages/community/ownerList/index.css
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
.search {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
background: #F9F9F9;
|
||||||
|
padding: 30rpx 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sear_icon {
|
||||||
|
width: 30rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchIpt {
|
||||||
|
width: 710rpx;
|
||||||
|
height: 54rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 100rpx 100rpx 100rpx 100rpx;
|
||||||
|
margin: 0 auto;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 0 24rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchIpt input {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.OwnerItem {
|
||||||
|
padding: 30rpx 20rpx;
|
||||||
|
border-bottom: 1rpx solid #E6E6E6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Name {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #000000;
|
||||||
|
margin-bottom: 12rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rows {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #999999;
|
||||||
|
margin-bottom: 16rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rows_tit {
|
||||||
|
min-width: 4em;
|
||||||
|
margin-right: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rows_con {
|
||||||
|
color: #222222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.time {
|
||||||
|
color: #999999;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.state1 {
|
||||||
|
color: #D5AC66;
|
||||||
|
}
|
||||||
|
|
||||||
|
.state2 {
|
||||||
|
color: #07c160;
|
||||||
|
}
|
||||||
|
|
||||||
|
.state3 {
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
118
packages/community/ownerList/index.vue
Normal file
118
packages/community/ownerList/index.vue
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
<template>
|
||||||
|
<view class="box">
|
||||||
|
<view class="search">
|
||||||
|
<view class="searchIpt">
|
||||||
|
<input type="text" placeholder="社区名称/业主姓名/业主手机" placeholder-style="color: #999999;font-size: 24rpx;"
|
||||||
|
:value="search" @input="search" />
|
||||||
|
<image class="sear_icon" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/water_filter/dervice/deriveSearch.png"
|
||||||
|
mode="" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="OwnerItem" v-for="(item, index ) in list" :key="index">
|
||||||
|
<view class="Name">{{item.name}}</view>
|
||||||
|
<view class="rows">
|
||||||
|
<view class="rows_tit">申请手机</view>
|
||||||
|
<view class="rows_con">{{item.mobile}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="rows">
|
||||||
|
<view class="rows_tit">入住小区</view>
|
||||||
|
<view class="rows_con">{{item.community.name}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="rows">
|
||||||
|
<view class="rows_tit">申请类型</view>
|
||||||
|
<view class="rows_con" v-if="item.type == 1">业主</view>
|
||||||
|
<view class="rows_con" v-if="item.type == 2">家属</view>
|
||||||
|
<view class="rows_con" v-if="item.type == 3">租客</view>
|
||||||
|
<view class="rows_con" v-if="item.type == 4">访客</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="rows">
|
||||||
|
<view class="rows_tit">楼宇号</view>
|
||||||
|
<view class="rows_con">{{item.facility.name}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="rows">
|
||||||
|
<view class="rows_tit">房屋号</view>
|
||||||
|
<view class="rows_con">{{item.room.name}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="rows">
|
||||||
|
<view class="rows_tit">创建时间</view>
|
||||||
|
<view class="rows_con time">2025-03-24 15:20</view>
|
||||||
|
</view>
|
||||||
|
<view class="rows">
|
||||||
|
<view class="rows_tit">申请状态</view>
|
||||||
|
<view class="rows_con state1" v-if="item.audit === 1">待审核</view>
|
||||||
|
<view class="rows_con state2" v-if="item.audit === 2">已通过</view>
|
||||||
|
<view class="rows_con state3" v-if="item.audit === 3">未通过</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { request } from '../../../utils';
|
||||||
|
import { apiArr } from '../../../api/community';
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
search: "",
|
||||||
|
page_num: 1,
|
||||||
|
page_size: 10,
|
||||||
|
list: [],
|
||||||
|
flag: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
search(e) {
|
||||||
|
console.log('1231313', e);
|
||||||
|
this.search = e.detail.value;
|
||||||
|
this.list = [];
|
||||||
|
this.page_num = 1;
|
||||||
|
this.flag = false;
|
||||||
|
this.init();
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
async init() {
|
||||||
|
const { page_num, page_size, list, search } = this;
|
||||||
|
let param = {
|
||||||
|
page_num,
|
||||||
|
page_size,
|
||||||
|
};
|
||||||
|
if (search !== '') {
|
||||||
|
param = {
|
||||||
|
page_num,
|
||||||
|
page_size,
|
||||||
|
name: search,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
const res = await request(apiArr.ownerList, 'POST', param);
|
||||||
|
let flag = false
|
||||||
|
if (res.rows.length == page_size) {
|
||||||
|
flag = true
|
||||||
|
} else {
|
||||||
|
flag = false
|
||||||
|
}
|
||||||
|
this.list = list.concat(res.rows || []);
|
||||||
|
this.page_num = page_num + 1;
|
||||||
|
this.flag = flag;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
uni.setNavigationBarTitle({
|
||||||
|
title: '我的申请',
|
||||||
|
});
|
||||||
|
this.init();
|
||||||
|
},
|
||||||
|
|
||||||
|
onReachBottom() {
|
||||||
|
if(this.flag){
|
||||||
|
this.init()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import url("./index.css");
|
||||||
|
</style>
|
||||||
@ -34,10 +34,10 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { request, picUrl, NavgateTo } from '../../utils';
|
import { request, picUrl } from '../../../utils';
|
||||||
import {
|
import {
|
||||||
apiArr
|
apiArr
|
||||||
} from '../../api/community';
|
} from '../../../api/community';
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -45,8 +45,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { request, picUrl, NavgateTo } from '../../utils';
|
import { request, NavgateTo } from '../../../utils';
|
||||||
import { apiArr } from '../../api/community';
|
import { apiArr } from '../../../api/community';
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -82,11 +82,11 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
headerRepairClick(e){
|
headerRepairClick(e){
|
||||||
NavgateTo(`/community/oneRepair/index`, { isLogin: false })
|
NavgateTo(`/packages/community/oneRepair/index`, { isLogin: false })
|
||||||
},
|
},
|
||||||
headerRepairDetailClick(e){
|
headerRepairDetailClick(e){
|
||||||
const { id } = e.currentTarget.dataset
|
const { id } = e.currentTarget.dataset
|
||||||
NavgateTo(`/community/repairDetail/index?id=${id}&title=${this.title}`, { isLogin: false })
|
NavgateTo(`/packages/community/repairDetail/index?id=${id}&title=${this.title}`, { isLogin: false })
|
||||||
},
|
},
|
||||||
|
|
||||||
changeTab(e){
|
changeTab(e){
|
||||||
336
packages/communityService/index/index.css
Normal file
336
packages/communityService/index/index.css
Normal file
@ -0,0 +1,336 @@
|
|||||||
|
image {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.swiper {
|
||||||
|
width: 710rpx;
|
||||||
|
height: 300rpx;
|
||||||
|
margin: 0 auto;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.swiper .swiper {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.swiper image {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabList {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin-top: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabItem {
|
||||||
|
display: flex;
|
||||||
|
width: 20%;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
margin-bottom: 46rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabImg {
|
||||||
|
height: 54rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabName {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #222222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tit {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #222222;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
padding-top: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.serviceTag {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 0 20rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
padding-bottom: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.serviceTagItem {
|
||||||
|
width: 345rpx;
|
||||||
|
height: 150rpx;
|
||||||
|
background: linear-gradient(148deg, #FFF4EA 0%, #FFE1C5 100%);
|
||||||
|
border-radius: 30rpx 30rpx 30rpx 30rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding-left: 28rpx;
|
||||||
|
padding-top: 37rpx;
|
||||||
|
position: relative;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item2 {
|
||||||
|
background: linear-gradient(167deg, #FFF3F3 0%, #FFD5D5 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.item3 {
|
||||||
|
background: linear-gradient(145deg, #FFFDF5 0%, #FFF7D0 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.item4 {
|
||||||
|
background: linear-gradient(143deg, #F8F8F8 0%, #EAEAEA 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.serviceTagItem_name {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.serviceTagItem_img1 {
|
||||||
|
width: 158rpx;
|
||||||
|
height: 131rpx;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0rpx;
|
||||||
|
right: 4rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.serviceTagItem_img2 {
|
||||||
|
width: 154rpx;
|
||||||
|
height: 130.6rpx;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0rpx;
|
||||||
|
right: 0rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.serviceTagItem_img3 {
|
||||||
|
height: 140rpx;
|
||||||
|
width: 178rpx;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0rpx;
|
||||||
|
right: 0rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.serviceTagItem_img4 {
|
||||||
|
width: 204rpx;
|
||||||
|
height: 68rpx;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 10rpx;
|
||||||
|
right: 0rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabs {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
padding-top: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabs .tab {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #555555;
|
||||||
|
margin-right: 70rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabs .active {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 32rpx;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabs .active::after {
|
||||||
|
content: '';
|
||||||
|
width: 127rpx;
|
||||||
|
height: 10rpx;
|
||||||
|
background: #FF512A;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
bottom: -10rpx;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabs .active::before {
|
||||||
|
width: 127rpx;
|
||||||
|
height: 10rpx;
|
||||||
|
filter: blur(6.599999904632568rpx);
|
||||||
|
background: #FF5D73;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
bottom: -10rpx;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.list {
|
||||||
|
margin-top: 36rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_tit {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin: 0 20rpx;
|
||||||
|
margin-bottom: 32rpx;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_tit_left {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_tit_right {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #D5AC66;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_tit_right image {
|
||||||
|
width: 12rpx;
|
||||||
|
height: 22rpx;
|
||||||
|
margin-left: 8rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scrollView {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
white-space: nowrap;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_goodsItem {
|
||||||
|
display: inline-block;
|
||||||
|
width: 223rpx;
|
||||||
|
margin-right: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_goodsItem_tit {
|
||||||
|
width: 100%;
|
||||||
|
height: 161rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_goodsItem_name {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #222222;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
margin-left: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_goodsItem_msg {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 22rpx;
|
||||||
|
color: #FF512A;
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-end;
|
||||||
|
margin-top: 6rpx;
|
||||||
|
margin-left: 13rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_goodsItem_msg view {
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 36rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_goodsItem_msg text {
|
||||||
|
font-size: 22rpx;
|
||||||
|
color: #FF512A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_goodsList {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 0 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list_item {
|
||||||
|
padding-bottom: 32rpx;
|
||||||
|
border-bottom: 1rpx solid #E6E6E6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.no_border {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.merchantList {
|
||||||
|
margin: 0 20rpx;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.merchantItem {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 30rpx 0;
|
||||||
|
border-bottom: 1rpx solid #E6E6E6;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.merchantItem_right {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
width: 150rpx;
|
||||||
|
height: 50rpx;
|
||||||
|
background: #D5AC66;
|
||||||
|
border-radius: 100rpx 100rpx 100rpx 100rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.merchantItem_left {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.merchantItem_left_img {
|
||||||
|
width: 180rpx;
|
||||||
|
height: 180rpx;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.merchantItem_left_msg_tit {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.merchantItem_left_msg_add {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #999999;
|
||||||
|
margin-top: 14rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.merchantItem_left_msg_msg {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 22rpx;
|
||||||
|
color: #FF512A;
|
||||||
|
background: #FFF0ED;
|
||||||
|
padding: 2rpx;
|
||||||
|
margin-top: 16rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.merchantItem_left_msg_tag {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #999999;
|
||||||
|
margin-top: 18rpx;
|
||||||
|
}
|
||||||
337
packages/communityService/index/index.vue
Normal file
337
packages/communityService/index/index.vue
Normal file
@ -0,0 +1,337 @@
|
|||||||
|
<template>
|
||||||
|
<view class="headlth">
|
||||||
|
<view class="swiper">
|
||||||
|
<swiper>
|
||||||
|
<swiper-item>
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/door_img.png" mode="" />
|
||||||
|
</swiper-item>
|
||||||
|
</swiper>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="tabList">
|
||||||
|
<view class="tabItem" v-for="(item, index ) in cateList" :key="index" @click="jump(item.cate_id)">
|
||||||
|
<view class="tabImg">
|
||||||
|
<image :src="item.photo" mode="heightFix" />
|
||||||
|
</view>
|
||||||
|
<view class="tabName">
|
||||||
|
{{item.cate_name}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="gray"></view>
|
||||||
|
|
||||||
|
<view class="tit">
|
||||||
|
热门服务
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="serviceTag">
|
||||||
|
<view class="serviceTagItem" @click="jump">
|
||||||
|
<view class="serviceTagItem_name">家政保洁</view>
|
||||||
|
<view class="serviceTagItem_img1">
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/hot1.png" mode="widthFix" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="serviceTagItem item2" @click="jump">
|
||||||
|
<view class="serviceTagItem_name">专业保姆</view>
|
||||||
|
<view class="serviceTagItem_img2">
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/hot2.png" mode="widthFix" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="serviceTagItem item3" @click="jump">
|
||||||
|
<view class="serviceTagItem_name">家电维修</view>
|
||||||
|
<view class="serviceTagItem_img3">
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/hot3.png" mode="widthFix" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="serviceTagItem item4" @click="jump">
|
||||||
|
<view class="serviceTagItem_name">搬家拉货</view>
|
||||||
|
<view class="serviceTagItem_img4">
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/hot4.png" mode="widthFix" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="gray"></view>
|
||||||
|
|
||||||
|
<view class="tabs">
|
||||||
|
<view :class="['tab', tabIndex == '0' ? 'active' : '']" @click="changeTab" data-tab="0">服务列表</view>
|
||||||
|
<view :class="['tab', tabIndex == '1' ? 'active' : '']" @click="changeTab" data-tab="1">商户列表</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="list" v-if="tabIndex == 0">
|
||||||
|
<view :class="['list_item', index === serverList.length - 1 && 'no_border']" v-for="(item, index) in serverList" :key="index">
|
||||||
|
<view class="item_tit">
|
||||||
|
<view class="item_tit_left">{{item.cate_name}}</view>
|
||||||
|
<view class="item_tit_right" @click="jump(item.cate_id)">
|
||||||
|
更多
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/water_filter/filter_more.png" mode="" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="item_goodsList">
|
||||||
|
<scroll-view scroll-x="true" class="scrollView">
|
||||||
|
<view class="item_goodsItem" v-for="(items, index) in item.appoints" :key="index" @click.stop="headerItemClick" :data-id="items.appoint_id">
|
||||||
|
<view class="item_goodsItem_tit">
|
||||||
|
<image :src="items.photo" mode="aspectFill" />
|
||||||
|
</view>
|
||||||
|
<view class="item_goodsItem_name">{{items.title}}</view>
|
||||||
|
<view class="item_goodsItem_msg">
|
||||||
|
¥
|
||||||
|
<view>{{items.price}}</view>
|
||||||
|
<text>/{{items.unit}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="merchantList" v-if="tabIndex == 1">
|
||||||
|
<view class="merchantItem" v-for="(item, index) in goodsList" :key="index" @click="headerShopClick(item.shop_id)">
|
||||||
|
<view class="merchantItem_left">
|
||||||
|
<view class="merchantItem_left_img">
|
||||||
|
<image :src="item.photo" mode="widthFix" />
|
||||||
|
</view>
|
||||||
|
<view class="merchantItem_left_msg">
|
||||||
|
<view class="merchantItem_left_msg_tit">{{item.shop_name}}</view>
|
||||||
|
<view class="merchantItem_left_msg_add">{{item.addr}}</view>
|
||||||
|
<view class="merchantItem_left_msg_msg">中国领先的高科技医疗设备研...</view>
|
||||||
|
<view class="merchantItem_left_msg_tag">{{item.tags}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="merchantItem_right" @click.stop="call(item.tel)">
|
||||||
|
电话询价
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<nav-footer />
|
||||||
|
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { NavgateTo, picUrl, request } from '../../../utils/index';
|
||||||
|
import { apiArr } from '../../../api/communityService';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
tabList:[{
|
||||||
|
name:"服务中心",
|
||||||
|
img:'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/door_icon1.png',
|
||||||
|
url:"../ServiceMore/ServiceMore",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name:"家政保洁",
|
||||||
|
img:'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/door_icon2.png',
|
||||||
|
url:"../ServiceMore/ServiceMore",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name:"衣物洗护",
|
||||||
|
img:'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/door_icon3.png',
|
||||||
|
url:"../ServiceMore/ServiceMore",
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name:"家电维修",
|
||||||
|
img:'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/door_icon4.png',
|
||||||
|
url:"../ServiceMore/ServiceMore",
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name:"跑腿服务",
|
||||||
|
img:'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/door_icon5.png',
|
||||||
|
url:"../ServiceMore/ServiceMore",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name:"养车用车",
|
||||||
|
img:'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/door_icon6.png',
|
||||||
|
url:"../ServiceMore/ServiceMore",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name:"保姆月嫂",
|
||||||
|
img:'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/door_icon7.png',
|
||||||
|
url:"../ServiceMore/ServiceMore",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name:"家电清洗",
|
||||||
|
img:'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/door_icon8.png',
|
||||||
|
url:"../ServiceMore/ServiceMore",
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name:"搬家拉货",
|
||||||
|
img:'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/door_icon9.png',
|
||||||
|
url:"../ServiceMore/ServiceMore",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name:"家装维修",
|
||||||
|
img:'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/door_icon10.png',
|
||||||
|
url:"../ServiceMore/ServiceMore",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
tabIndex:"0",
|
||||||
|
page_num:1,
|
||||||
|
page_size:10,
|
||||||
|
flag:false,
|
||||||
|
flag2:false,
|
||||||
|
serverList:[],//服务列表
|
||||||
|
cateList:[],
|
||||||
|
flag:false,
|
||||||
|
HotCate:'',
|
||||||
|
|
||||||
|
goodsList:[],//商家列表
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async getCateList() {
|
||||||
|
const res = await request(apiArr.getCateList, 'POST', {
|
||||||
|
page_num: this.page_num,
|
||||||
|
page_size: this.page_size,
|
||||||
|
area: uni.getStorageSync('city')
|
||||||
|
})
|
||||||
|
let flag = false
|
||||||
|
console.log(res, 'res');
|
||||||
|
if (res.rows && res.rows.length == this.page_size) {
|
||||||
|
flag = true
|
||||||
|
} else {
|
||||||
|
flag = false
|
||||||
|
}
|
||||||
|
res.rows && res.rows.forEach(item => {
|
||||||
|
item.photo = item.photo ? picUrl + item.photo : '';
|
||||||
|
item.appoints.forEach(items => {
|
||||||
|
items.photo = picUrl + items.photo
|
||||||
|
})
|
||||||
|
})
|
||||||
|
console.log(res, 'reresss');
|
||||||
|
this.serverList = this.serverList.concat(res.rows || []);
|
||||||
|
this.cateList = res.rows || [];
|
||||||
|
this.flag = flag;
|
||||||
|
this.page_num = this.page_num + 1;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 热门服务模块, 目前改接口并未使用,热门模块写死展示
|
||||||
|
async getHotCate(){
|
||||||
|
const res = await request(apiArr.getHotCate, 'POST', {});
|
||||||
|
console.log('getHotCategetHotCate', res);
|
||||||
|
this.HotCate = res;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取同城服务列表
|
||||||
|
async getAllList(){
|
||||||
|
const res = await request(apiArr.getAllList, 'POST', {
|
||||||
|
cate_id: 0,
|
||||||
|
page_num: 1,
|
||||||
|
page_size: 50,
|
||||||
|
area: uni.getStorageSync('city')
|
||||||
|
})
|
||||||
|
|
||||||
|
let flag = false
|
||||||
|
if(res.rows && res.rows.length == this.page_size){
|
||||||
|
flag = true
|
||||||
|
}else{
|
||||||
|
flag = false
|
||||||
|
}
|
||||||
|
if(res.rows){
|
||||||
|
res.rows.forEach(item=>{
|
||||||
|
item.photo = picUrl + item.photo
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.tabList = res.rows;
|
||||||
|
this.flag = flag;
|
||||||
|
this.page_num = this.page_num + 1;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取商家列表
|
||||||
|
async getShopList(){
|
||||||
|
const res = await request(apiArr.getShopList, 'POST', {
|
||||||
|
page_num: this.page_num,
|
||||||
|
page_size: this.page_size
|
||||||
|
});
|
||||||
|
if(res?.list){
|
||||||
|
let flag2 = false
|
||||||
|
if(res.list.length == this.page_size){
|
||||||
|
flag2 = true
|
||||||
|
}else{
|
||||||
|
flag2 = false
|
||||||
|
}
|
||||||
|
res.list.forEach(item=>{
|
||||||
|
item.photo = picUrl + item.photo
|
||||||
|
});
|
||||||
|
this.goodsList = this.goodsList.concat(res.list || []);
|
||||||
|
this.flag2 = flag2;
|
||||||
|
this.page_num = this.page_num + 1;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
jump(id){
|
||||||
|
NavgateTo(`/packages/communityService/serviceMore/index?id=${id}`, { isLogin: false });
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
// tab 切换
|
||||||
|
changeTab(e){
|
||||||
|
const { tab } = e.currentTarget.dataset;
|
||||||
|
this.tabIndex = tab;
|
||||||
|
this.page_num = 1;
|
||||||
|
this.flag = false;
|
||||||
|
this.flag2 = false;
|
||||||
|
this.serverList = [];
|
||||||
|
this.goodsList = [];
|
||||||
|
|
||||||
|
if(tab == 0){
|
||||||
|
this.getCateList()
|
||||||
|
}else{
|
||||||
|
this.getShopList()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
headerItemClick(e) {
|
||||||
|
const { id } = e.currentTarget.dataset;
|
||||||
|
NavgateTo(`/packages/communityService/reservation/index?id=${id}`, {isLogin: false });
|
||||||
|
},
|
||||||
|
|
||||||
|
headerShopClick(id){
|
||||||
|
NavgateTo(`/packages/communityService/shopDetail/index?id=${id}`, { isLogin: false });
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
call(e){
|
||||||
|
console.log('11111', e);
|
||||||
|
uni.makePhoneCall({
|
||||||
|
phoneNumber: e,
|
||||||
|
fail(err) {
|
||||||
|
console.log('取消拨打', err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.getCateList(); // 获取同城服务分类列表
|
||||||
|
this.getAllList(); // 获取同城服务列表
|
||||||
|
this.getHotCate(); // 热门服务模块
|
||||||
|
this.getShopList(); // 获取商家列表
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
if(this.tabIndex == 0){
|
||||||
|
if(this.flag){
|
||||||
|
this.getCateList()
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(this.flag2){
|
||||||
|
this.getShopList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import url("./index.css");
|
||||||
|
</style>
|
||||||
110
packages/communityService/reservation/index.css
Normal file
110
packages/communityService/reservation/index.css
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
image {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box {
|
||||||
|
padding-bottom: 160rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reservation_img {
|
||||||
|
width: 750rpx;
|
||||||
|
height: 502rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reservation_img image {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Tit {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 40rpx;
|
||||||
|
color: #000000;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-top: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.money {
|
||||||
|
display: flex;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #FF512A;
|
||||||
|
align-items: center;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.money view {
|
||||||
|
font-size: 60rpx;
|
||||||
|
margin-top: -19rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.money text {
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin: 0 40rpx;
|
||||||
|
padding-top: 30rpx;
|
||||||
|
padding-bottom: 16rpx;
|
||||||
|
border-bottom: 1rpx solid #E6E6E6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row_tit {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row_con {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #222222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.none {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gray {
|
||||||
|
margin-top: 14rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Tit2 {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #222222;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.server {
|
||||||
|
margin: 0 40rpx;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
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;
|
||||||
|
position: fixed;
|
||||||
|
left: 50rpx;
|
||||||
|
right: 50rpx;
|
||||||
|
bottom: 50rpx;
|
||||||
|
}
|
||||||
115
packages/communityService/reservation/index.vue
Normal file
115
packages/communityService/reservation/index.vue
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
<template>
|
||||||
|
<view class="box">
|
||||||
|
<view class="reservation_img">
|
||||||
|
<image :src="info.photo" mode="" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="Tit">{{info.title}}</view>
|
||||||
|
<view class="money">
|
||||||
|
¥
|
||||||
|
<view>{{info.price}}</view>
|
||||||
|
<text>/ {{info.unit}}</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="row">
|
||||||
|
<view class="row_tit">服务类别</view>
|
||||||
|
<view class="row_con">{{info.type_name}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="row">
|
||||||
|
<view class="row_tit">营业时间</view>
|
||||||
|
<view class="row_con">{{info.biz_time}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="row none">
|
||||||
|
<view class="row_tit">联系人</view>
|
||||||
|
<view class="row_con">{{info.user_name}}</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<view class="gray"></view>
|
||||||
|
|
||||||
|
<view class="Tit2">商家信息</view>
|
||||||
|
<view class="row">
|
||||||
|
<view class="row_tit">提供商家</view>
|
||||||
|
<view class="row_con">{{info.shop_name}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="row">
|
||||||
|
<view class="row_tit">联系电话</view>
|
||||||
|
<view class="row_con" @click="call">{{info.user_mobile}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="row none">
|
||||||
|
<view class="row_tit">商家地址</view>
|
||||||
|
<view class="row_con">{{info.shop_addr}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="gray"></view>
|
||||||
|
<view class="Tit2">服务详情</view>
|
||||||
|
<view class="server">
|
||||||
|
{{info.intro}}
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="btn" @click="reservation">
|
||||||
|
立即预约
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
apiArr
|
||||||
|
} from '../../../api/communityService';
|
||||||
|
import {
|
||||||
|
NavgateTo,
|
||||||
|
picUrl,
|
||||||
|
request
|
||||||
|
} from '../../../utils';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
id: "",
|
||||||
|
info: "",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
async init(id) {
|
||||||
|
const res = await request(apiArr.serverInfo, 'POST', {
|
||||||
|
appoint_id: Number(id)
|
||||||
|
});
|
||||||
|
const newRes = {
|
||||||
|
...res,
|
||||||
|
photo: picUrl + res.photo,
|
||||||
|
}
|
||||||
|
|
||||||
|
uni.setNavigationBarTitle({
|
||||||
|
title: res.title,
|
||||||
|
})
|
||||||
|
this.info = newRes;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 拨打电话
|
||||||
|
call() {
|
||||||
|
let that = this
|
||||||
|
uni.makePhoneCall({
|
||||||
|
phoneNumber: this.info.user_mobile,
|
||||||
|
fail(err) {
|
||||||
|
console.log('取消拨打', err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
reservation() {
|
||||||
|
NavgateTo(`/packages/communityService/reservationApply/index?id=${this.id}`, {isLogin: false });
|
||||||
|
},
|
||||||
|
},
|
||||||
|
onLoad(options) {
|
||||||
|
this.id = options.id;
|
||||||
|
this.init(options.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import url("./index.css");
|
||||||
|
</style>
|
||||||
172
packages/communityService/reservationApply/index.css
Normal file
172
packages/communityService/reservationApply/index.css
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
image {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tit {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #222222;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin: 0 50rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
border-bottom: 1rpx solid #E6E6E6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row_tit {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row_tit image {
|
||||||
|
width: 30rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row_con {
|
||||||
|
text-align: right;
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-end;
|
||||||
|
justify-content: flex-end;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row_con image {
|
||||||
|
height: 26rpx;
|
||||||
|
width: 14rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.none {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row_tit2 {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row_tit2 image {
|
||||||
|
width: 30rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row_tit2 input {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.doorToDoor {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 54rpx;
|
||||||
|
margin-right: 54rpx;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 30rpx 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.doorToDoor_tit {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #222222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.doorToDoor_con {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.selectItem {
|
||||||
|
display: flex;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #222222;
|
||||||
|
margin-left: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cir {
|
||||||
|
width: 30rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
border: 1rpx solid #555555;
|
||||||
|
margin-right: 16rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.active {
|
||||||
|
background-color: #ff512a;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.agree {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 54rpx;
|
||||||
|
padding: 30rpx 0;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #FF512A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
width: 650rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
background: #FF512A;
|
||||||
|
border-radius: 100rpx 100rpx 100rpx 100rpx;
|
||||||
|
margin: 0 auto;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popBox {
|
||||||
|
height: 60vh;
|
||||||
|
width: 80vw;
|
||||||
|
padding: 30rpx;
|
||||||
|
position: relative;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
padding-bottom: 100rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tit2 {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #222222;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.know {
|
||||||
|
width: 400rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
background-color: #FF512A;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 32rpx;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
bottom: 20rpx;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
}
|
||||||
392
packages/communityService/reservationApply/index.vue
Normal file
392
packages/communityService/reservationApply/index.vue
Normal file
@ -0,0 +1,392 @@
|
|||||||
|
<template>
|
||||||
|
<view class="container">
|
||||||
|
<view class="box">
|
||||||
|
<view class="tit">请填写预约信息</view>
|
||||||
|
<view class="row none" v-if="isreal == 1">
|
||||||
|
<view class="row_tit">
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/reser_icon1.png" mode="" />
|
||||||
|
请选择上门时间
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="row_con" @click="changeShow">
|
||||||
|
{{time}}
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/water_filter/filter_more.png" mode="" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="row none" v-if="isreal == 2">
|
||||||
|
<view class="row_tit">
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/reser_icon2.png" mode="" />
|
||||||
|
请选择服务时间
|
||||||
|
</view>
|
||||||
|
<view class="row_con" @click="changeShow2">
|
||||||
|
{{serTime}}
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/water_filter/filter_more.png" mode="" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="gray"></view>
|
||||||
|
<view class="row">
|
||||||
|
<view class="row_tit">
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/reser_icon3.png" mode="" />
|
||||||
|
联系人姓名
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="row_con">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
placeholder="请填写联系人姓名"
|
||||||
|
placeholder-style="font-size: 26rpx;color: #999999;"
|
||||||
|
:value="name"
|
||||||
|
data-name='name'
|
||||||
|
@input="headerInputClick"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view class="row">
|
||||||
|
<view class="row_tit">
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/reser_icon4.png" mode="" />
|
||||||
|
联系人电话
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="row_con">
|
||||||
|
<input
|
||||||
|
type="number"
|
||||||
|
maxlength="11"
|
||||||
|
placeholder="请填写联系人电话"
|
||||||
|
placeholder-style="font-size: 26rpx;color: #999999;"
|
||||||
|
:value="phone"
|
||||||
|
data-name='phone'
|
||||||
|
@input="headerInputClick"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="row">
|
||||||
|
<view class="row_tit">
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/reser_icon5.png" mode="" />
|
||||||
|
请选择服务地址
|
||||||
|
</view>
|
||||||
|
<view class="row_con" @click="changeArea">
|
||||||
|
|
||||||
|
{{citys}}
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/water_filter/filter_more.png" mode="" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="row none">
|
||||||
|
<view class="row_tit">
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/reser_icon5.png" mode="" />
|
||||||
|
详细地址
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="row_con">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
placeholder="请填写详细地址"
|
||||||
|
placeholder-style="font-size: 26rpx;color: #999999;"
|
||||||
|
:value="add"
|
||||||
|
data-name='add'
|
||||||
|
@input="headerInputClick"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="gray"></view>
|
||||||
|
<view class="doorToDoor">
|
||||||
|
<view class="doorToDoor_tit">是否上门服务</view>
|
||||||
|
<view class="selectItem" @click="changeCir(1)">
|
||||||
|
<view :class="['cir', isreal == 1 ? 'active' : '']"></view>
|
||||||
|
是
|
||||||
|
</view>
|
||||||
|
<view class="selectItem" @click="changeCir(2)">
|
||||||
|
<view :class="['cir', isreal == 2 ? 'active' : '']"></view>
|
||||||
|
否
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="gray"></view>
|
||||||
|
<view class="row none">
|
||||||
|
<view class="row_tit2">
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/reser_icon6.png" mode="" />
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
placeholder="给商家捎句话"
|
||||||
|
placeholder-style="font-size: 26rpx;color: #999999;"
|
||||||
|
:value="msg"
|
||||||
|
data-name='msg'
|
||||||
|
@input="headerInputClick"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="gray"></view>
|
||||||
|
|
||||||
|
<view class="agree">
|
||||||
|
<view :class="['cir', agree ? 'active' : '']" @click="changeAgree"></view>
|
||||||
|
|
||||||
|
<view @click="changeShow3">
|
||||||
|
我已阅读并同意服务合同中的内容
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="btn" @click="submit">提交申请 </view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<u-datetime-picker
|
||||||
|
:show="show"
|
||||||
|
mode="datetime"
|
||||||
|
:closeOnClickOverlay="true"
|
||||||
|
:minDate="minDate"
|
||||||
|
:formatter="formatter"
|
||||||
|
@confirm="onInput"
|
||||||
|
@cancel="onClose"
|
||||||
|
@close="onClose"
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
<areaPopup :show="show2" @selectArea='headerAreaClick' @close='onClose' />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<u-popup :show="show3" mode="center" @close="onClose" round="20rpx" closeOnClickOverlay>
|
||||||
|
<view class="pop_body">
|
||||||
|
<view class="popBox">
|
||||||
|
<view class="tit2">服务声明</view>
|
||||||
|
乙方指定的家政服务人员须遵守以下行为准则:
|
||||||
|
1)遵守国家各项法律、法规和社会公德;执行《公民道德建设实施纲要》,自尊自强,爱岗敬业;遵守企业各项规章制度,维护经营者和甲方的合法权益。
|
||||||
|
2)遵守职业道德,尊重甲方生活习俗,主动适应甲方,视甲方如亲人,不虐待所照看的老、幼、病、残人员;不泄露甲方隐私;不参与甲方家庭及邻里的矛盾纠纷,不传闲话,以免激化矛盾;不向甲方借钱或索要财物;在离开甲方家庭时,要主动打开自己的包裹让其检查,以示尊重。
|
||||||
|
3)遵守合同条款,不无故违约,不无故要求换户或不辞而别。如与甲方发生矛盾,出现甲方侵犯家政服务人员合法权益,或变更服务地址、服务工种等,无论何种原因家政服务人员均应先行告知经营者,不要擅自处理。
|
||||||
|
4)努力学习服务技能,完成经营者和甲方安排的工作任务。对不会使用的器具,未经经营者指导和甲方允许不要使用。未经甲方同意不使用其通讯工具和电脑等设备。
|
||||||
|
5)保证自身和甲方的安全。不要与异性成、青年人同居一室;不带亲朋好友在甲方家中停留或食宿;不擅自外出或夜不归宿,如有特殊情况不能按时返回,要征得甲方同意;要注意防火、防盗。
|
||||||
|
第九条 服务人员仪态仪表 乙方指定的家政服务人员须遵守以下仪态仪表要求: (1)讲究个人卫生,着装整洁大方,不能过于随意,不穿紧身衣裤或过于暴露的服装。 (2)佩戴饰物要适当,不浓妆艳抹,不留长指甲和涂指甲油。
|
||||||
|
3)言谈举止大方得体,与甲方交流时要正视对方,不要左顾右盼,不能双臂交叉或双手插在兜里。
|
||||||
|
</view>
|
||||||
|
<view class="know" @click="onClose">我已知晓</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
apiArr
|
||||||
|
} from '../../../api/communityService';
|
||||||
|
import {
|
||||||
|
request,
|
||||||
|
isPhone
|
||||||
|
} from '../../../utils';
|
||||||
|
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
time: "", //上门时间
|
||||||
|
serTime: "", //服务时间
|
||||||
|
name: "", //姓名
|
||||||
|
phone: "", //电话
|
||||||
|
citys: "", //服务地址
|
||||||
|
add: "", //详细地址
|
||||||
|
isreal: 1, //是否上门
|
||||||
|
|
||||||
|
msg: "", //信息
|
||||||
|
id: "",
|
||||||
|
agree: false, //是否阅读同意
|
||||||
|
type: "1", //1上门时间 2服务时间
|
||||||
|
info: "",
|
||||||
|
|
||||||
|
GoodsMsg: "", //商户信息
|
||||||
|
orderMsg: "",
|
||||||
|
|
||||||
|
show: false,
|
||||||
|
show2: false,
|
||||||
|
show3: false,
|
||||||
|
minDate: new Date().getTime(),
|
||||||
|
formatter(type, value) {
|
||||||
|
if (type === 'year') {
|
||||||
|
return `${value}年`;
|
||||||
|
}
|
||||||
|
if (type === 'month') {
|
||||||
|
return `${value}月`;
|
||||||
|
}
|
||||||
|
if (type === 'day') {
|
||||||
|
return `${value}日`;
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async init(id) {
|
||||||
|
const res = await request(apiArr.serverInfo, 'POST', {
|
||||||
|
appoint_id: Number(id)
|
||||||
|
});
|
||||||
|
this.info = res;
|
||||||
|
uni.setNavigationBarTitle({
|
||||||
|
title: res.title
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
changeShow() {
|
||||||
|
this.show = !this.show;
|
||||||
|
this.type = 1;
|
||||||
|
},
|
||||||
|
|
||||||
|
//
|
||||||
|
changeShow2() {
|
||||||
|
this.show = !this.show;
|
||||||
|
this.type = 2;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 关闭弹窗选择器
|
||||||
|
onClose(){
|
||||||
|
this.show = false;
|
||||||
|
this.show2 = false;
|
||||||
|
this.show3 = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 时间选择器点击确定
|
||||||
|
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', time, 'type', this.type);
|
||||||
|
this.show = false;
|
||||||
|
if(this.type == 1){
|
||||||
|
this.time = time;
|
||||||
|
}else{
|
||||||
|
this.serTime = time;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// input 输入框输入值、
|
||||||
|
headerInputClick(e) {
|
||||||
|
console.log('eeee', e)
|
||||||
|
const { name } = e.currentTarget.dataset;
|
||||||
|
const { value } = e.detail;
|
||||||
|
this[name] = value;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 地址选择弹窗
|
||||||
|
changeArea(){
|
||||||
|
this.show2 = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
headerAreaClick(data) {
|
||||||
|
console.log('接受参数值', data);
|
||||||
|
this.citys = `${data.confirmProv.name}${data.confirmCity.area_name}${data.confirmDist.business_name}`;
|
||||||
|
this.show2 = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
changeCir(e){
|
||||||
|
this.isreal = e
|
||||||
|
},
|
||||||
|
|
||||||
|
// 打开服务合同弹窗
|
||||||
|
changeShow3(){
|
||||||
|
this.show3 = true
|
||||||
|
},
|
||||||
|
|
||||||
|
// 同意服务合同
|
||||||
|
changeAgree(){
|
||||||
|
this.agree = !this.agree;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
async submit() {
|
||||||
|
console.log('他啥都', this);
|
||||||
|
if(this.isreal == '1'){
|
||||||
|
if(!this.time){
|
||||||
|
uni.showToast({
|
||||||
|
title: '请选择上门时间',
|
||||||
|
icon:"none"
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(!this.serTime){
|
||||||
|
uni.showToast({
|
||||||
|
title: '请选择服务时间',
|
||||||
|
icon:"none"
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!this.name){
|
||||||
|
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.citys){
|
||||||
|
uni.showToast({
|
||||||
|
title: '请选择服务地址',
|
||||||
|
icon:"none"
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if(!this.add){
|
||||||
|
uni.showToast({
|
||||||
|
title: '请填写详细地址',
|
||||||
|
icon:"none"
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if(!this.agree){
|
||||||
|
uni.showToast({
|
||||||
|
title: '请阅读合同内容',
|
||||||
|
icon:"none"
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let svctime
|
||||||
|
if(this.isreal == '1'){
|
||||||
|
svctime = this.time
|
||||||
|
}else{
|
||||||
|
svctime = this.serTime
|
||||||
|
}
|
||||||
|
uni.showLoading({
|
||||||
|
title: '申请中...',
|
||||||
|
mask:true
|
||||||
|
})
|
||||||
|
const res = await request(apiArr.createServerOrder, 'POST', {
|
||||||
|
addr: this.citys + this.add,
|
||||||
|
appoint_id: this.info.appoint_id,
|
||||||
|
capon_id: 0,
|
||||||
|
cate_id: this.info.cate_id,
|
||||||
|
name: this.name,
|
||||||
|
order_type: this.type,
|
||||||
|
shop_id: this.info.shop_id,
|
||||||
|
svctime,
|
||||||
|
tel: this.phone
|
||||||
|
}, { silent: false });
|
||||||
|
console.log('12332322', res);
|
||||||
|
this.orderMsg = res;
|
||||||
|
// that.getGoodsMsg()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad(options) {
|
||||||
|
this.id = options.id;
|
||||||
|
this.init(options.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import url("./index.css");
|
||||||
|
</style>
|
||||||
154
packages/communityService/serviceMore/index.css
Normal file
154
packages/communityService/serviceMore/index.css
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
.tabList {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin-top: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabItem {
|
||||||
|
display: flex;
|
||||||
|
width: 20%;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
margin-bottom: 46rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabImg {
|
||||||
|
height: 54rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabName {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #222222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tit {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #222222;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
padding-top: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.serverMore {
|
||||||
|
background-color: #fff;
|
||||||
|
padding-bottom: 60rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.serverList {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 0 52rpx;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
padding-bottom: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.serverItem {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #222222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.serverItem_img {
|
||||||
|
height: 54rpx;
|
||||||
|
margin-bottom: 16rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.List {
|
||||||
|
padding: 0 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 30rpx 0;
|
||||||
|
border-bottom: 1rpx solid #E6E6E6;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_left {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_left_msg_money {
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.item_right {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
width: 150rpx;
|
||||||
|
height: 50rpx;
|
||||||
|
background: #D5AC66;
|
||||||
|
border-radius: 100rpx 100rpx 100rpx 100rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.item_left_img {
|
||||||
|
width: 180rpx;
|
||||||
|
height: 180rpx;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_left_msg_tit {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #000000;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_left_msg_time {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #999999;
|
||||||
|
margin-top: 14rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_left_msg_money {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 22rpx;
|
||||||
|
color: #FF512A;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_left_msg_money view {
|
||||||
|
font-size: 36rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phone {
|
||||||
|
width: 40rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
background: #FFF2DA;
|
||||||
|
border-radius: 50%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phone image {
|
||||||
|
width: 24rpx;
|
||||||
|
height: 24rpx;
|
||||||
|
}
|
||||||
89
packages/communityService/serviceMore/index.vue
Normal file
89
packages/communityService/serviceMore/index.vue
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
<template>
|
||||||
|
<view class="serverMore">
|
||||||
|
<view class="tabList">
|
||||||
|
<view class="tabItem" v-for="(item, index) in serverList" :key="index" @click="getList2(item.cate_id)">
|
||||||
|
<view class="tabImg">
|
||||||
|
<image :src="item.photo" mode="" />
|
||||||
|
</view>
|
||||||
|
<view class="tabName">{{item.cate_name}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="gray"></view>
|
||||||
|
<view class="List">
|
||||||
|
<view class="item" v-for="(item, index) in tabList" :key="index">
|
||||||
|
<view class="item_left">
|
||||||
|
<view class="item_left_img">
|
||||||
|
<image :src="item.photo" mode="widthFix" />
|
||||||
|
</view>
|
||||||
|
<view class="item_left_msg">
|
||||||
|
<view class="item_left_msg_tit">
|
||||||
|
{{item.title}}
|
||||||
|
<view class="phone" @click="call">
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/doorToDoor/phone.png" mode="widthFix" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="item_left_msg_time">服务时间:{{item.biz_time}}</view>
|
||||||
|
<view class="item_left_msg_money">
|
||||||
|
¥ <view>{{item.price}}</view>/{{item.unit}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="item_right" @click="reservation(item.appoint_id)">
|
||||||
|
预约
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { apiArr } from '../../../api/communityService';
|
||||||
|
import { picUrl, request } from '../../../utils';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
flag: false,
|
||||||
|
cateid: "",
|
||||||
|
page_num: 1,
|
||||||
|
page_size: 10,
|
||||||
|
serverList: [],
|
||||||
|
tabList: [],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async getCateList(id) {
|
||||||
|
const res = await request(apiArr.getAllList, 'POST', {
|
||||||
|
cate_id: Number(id),
|
||||||
|
page_num: 1,
|
||||||
|
page_size: 50
|
||||||
|
})
|
||||||
|
let flag = false
|
||||||
|
if (res.rows && res.rows.length == this.page_size) {
|
||||||
|
flag = true
|
||||||
|
} else {
|
||||||
|
flag = false
|
||||||
|
}
|
||||||
|
res.rows && res.rows.forEach(item => {
|
||||||
|
item.photo = picUrl + item.photo
|
||||||
|
item.cate.photo = picUrl + item.cate.photo
|
||||||
|
})
|
||||||
|
console.log(res, 'ssss');
|
||||||
|
this.tabList = this.tabList.concat(res.rows || []);
|
||||||
|
this.flag = flag;
|
||||||
|
this.page_num = this.page_num + 1;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
onLoad(options) {
|
||||||
|
|
||||||
|
this.cateid = options.id;
|
||||||
|
// that.getDoorToDoorList()
|
||||||
|
this.getCateList(options.id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import url("./index.css");
|
||||||
|
</style>
|
||||||
185
packages/communityService/shopDetail/index.css
Normal file
185
packages/communityService/shopDetail/index.css
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
image {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner {
|
||||||
|
width: 710rpx;
|
||||||
|
height: 300rpx;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
margin: 0 auto;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner_pic {
|
||||||
|
width: 710rpx;
|
||||||
|
height: 300rpx;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tit {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 40rpx;
|
||||||
|
color: #000000;
|
||||||
|
margin-top: 40rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
padding-bottom: 30rpx;
|
||||||
|
border-bottom: 1rpx solid #E6E6E6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.msg_left_1 {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.msg_left_2 {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.msg_left_1 image {
|
||||||
|
width: 30rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.msg_left_2 image {
|
||||||
|
width: 30rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.msg_left_1 view {
|
||||||
|
border-radius: 100rpx 100rpx 100rpx 100rpx;
|
||||||
|
border: 1rpx solid #D5AC66;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 22rpx;
|
||||||
|
color: #D5AC66;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
padding: 2rpx 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.msg {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin: 0 20rpx;
|
||||||
|
margin-right: 48rpx;
|
||||||
|
margin-top: 28rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.msg_right {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.msg_right image {
|
||||||
|
width: 60rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.msg_right2 {
|
||||||
|
margin-left: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 22rpx;
|
||||||
|
color: #FF512A;
|
||||||
|
background: #FFD8D0;
|
||||||
|
border-radius: 100rpx 100rpx 100rpx 100rpx;
|
||||||
|
border: 1rpx solid #FF512A;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 2rpx 10rpx;
|
||||||
|
margin-left: 18rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.imgList {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin: 30rpx 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.imgList image {
|
||||||
|
width: 120rpx;
|
||||||
|
height: 120rpx;
|
||||||
|
border-radius: 30rpx 30rpx 30rpx 30rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subtit {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #000000;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subCon {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #222222;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subCon view {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #999999;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.payList {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
margin-top: 60rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.payBtn {
|
||||||
|
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-bottom: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.payBtn2 {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #FF512A;
|
||||||
|
width: 650rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
border-radius: 100rpx 100rpx 100rpx 100rpx;
|
||||||
|
border: 1rpx solid #FF512A;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
99
packages/communityService/shopDetail/index.vue
Normal file
99
packages/communityService/shopDetail/index.vue
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
<template>
|
||||||
|
<view class="box">
|
||||||
|
<view class="banner">
|
||||||
|
<image class="banner_pic" :src="info.photo" mode="" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="tit">{{info.shop_name}}</view>
|
||||||
|
<view class="msg">
|
||||||
|
<view class="msg_left">
|
||||||
|
<view class="msg_left_1">
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/kitchen/kitchen_time.png" mode="" />
|
||||||
|
{{info.opening_time}}-{{info.closing_time}}
|
||||||
|
<view>{{info.is_open === 1 ? '营业' :'停业'}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="msg_left_2">
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/kitchen/kitchen_add.png" mode="" />
|
||||||
|
{{info.addr}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="msg_right">
|
||||||
|
<view class="msg_right1" @click="call">
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/kitchen/kitchen_phone.png" mode="" />
|
||||||
|
电话
|
||||||
|
</view>
|
||||||
|
<view class="msg_right2" @click="handleOptionClick">
|
||||||
|
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/kitchen/kitchen_add.png" mode="" />
|
||||||
|
导航
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="imgList">
|
||||||
|
<image v-for="(item, index) in info.picList" :key="index" :data-pic="item" @click="headerPicClick" :src="item" mode="aspectFill" />
|
||||||
|
</view>
|
||||||
|
<view class="gray"></view>
|
||||||
|
|
||||||
|
<view class="gray"></view>
|
||||||
|
|
||||||
|
<view class="subtit">公告</view>
|
||||||
|
<view class="subCon">{{info.presentation}}</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { picUrl, request } from '../../../utils';
|
||||||
|
import { apiArr } from '../../../api/communityService';
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
id: "",
|
||||||
|
info: ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async init(id) {
|
||||||
|
const res = await request(apiArr.getGoodsDesc, 'POST', {
|
||||||
|
shop_id: Number(id)
|
||||||
|
})
|
||||||
|
const newRes = {
|
||||||
|
...res,
|
||||||
|
photo: picUrl + res.photo
|
||||||
|
};
|
||||||
|
uni.setNavigationBarTitle({
|
||||||
|
title: res.shop_name
|
||||||
|
});
|
||||||
|
this.info = newRes;
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
// 拨打电话
|
||||||
|
call() {
|
||||||
|
let that = this
|
||||||
|
uni.makePhoneCall({
|
||||||
|
phoneNumber: this.info.tel,
|
||||||
|
fail(err) {
|
||||||
|
console.log('取消拨打', err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 导航
|
||||||
|
handleOptionClick() {
|
||||||
|
uni.openLocation({
|
||||||
|
latitude: Number(this.info.lat),
|
||||||
|
longitude: Number(this.info.lng),
|
||||||
|
name: this.info.shop_name,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
onLoad(options) {
|
||||||
|
this.id = options.id;
|
||||||
|
this.init(options.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import url("./index.css");
|
||||||
|
</style>
|
||||||
73
packages/user/index/index.css
Normal file
73
packages/user/index/index.css
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
.header {
|
||||||
|
margin-left: 20rpx;
|
||||||
|
color: #222222;
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.item{
|
||||||
|
display:flex;
|
||||||
|
border-bottom:1px solid #e6e6e6;
|
||||||
|
height: 90rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 52rpx;
|
||||||
|
margin-right: 48rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-left {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.item-title {
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
.item-icon {
|
||||||
|
width: 30rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-right {
|
||||||
|
/* flex: 1; */
|
||||||
|
text-align: right;
|
||||||
|
font-size: 26rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #222222;
|
||||||
|
}
|
||||||
|
.right-icon {
|
||||||
|
width: 40rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
}
|
||||||
|
.item-right-icon {
|
||||||
|
width: 13rpx;
|
||||||
|
height: 26rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TODO: 为什么不生效? */
|
||||||
|
.not-border{
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
.item:last-child{
|
||||||
|
border-bottom:none
|
||||||
|
}
|
||||||
|
.line {
|
||||||
|
background: #F9F9F9;
|
||||||
|
height: 20rpx;
|
||||||
|
}
|
||||||
|
.desc {
|
||||||
|
font-size: 26rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #FF512A;
|
||||||
|
}
|
||||||
|
.quit_login {
|
||||||
|
margin: 10rpx 50rpx 0;
|
||||||
|
background: #FF512A;
|
||||||
|
border-radius: 100rpx 100rpx 100rpx 100rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 36rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 80rpx;
|
||||||
|
}
|
||||||
134
packages/user/index/index.vue
Normal file
134
packages/user/index/index.vue
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
<template>
|
||||||
|
<view class="container">
|
||||||
|
<view class="item" data-url="/packages/user/uploadAvatar/index" data-title="上传头像" @click="handleSelectClick">
|
||||||
|
<view class="item-left">
|
||||||
|
<image class="item-icon" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/Group_422.png" />
|
||||||
|
<view class="item-title">上传头像</view>
|
||||||
|
</view>
|
||||||
|
<van-icon name="arrow" color="#D5AC66" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="item">
|
||||||
|
<view class="item-left">
|
||||||
|
<image class="item-icon" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/Classroom.png" />
|
||||||
|
<view class="item-title">当前账户</view>
|
||||||
|
</view>
|
||||||
|
<view class="item-right">{{userInfo.user_name}}</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="item" data-url="/packages/user/resetPwd/index" data-title="修改登录密码" data-type="login"
|
||||||
|
@click="handleSelectClick">
|
||||||
|
<view class="item-left">
|
||||||
|
<image class="item-icon" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/Group_423.png" />
|
||||||
|
<view class="item-title">修改登录密码</view>
|
||||||
|
</view>
|
||||||
|
<van-icon name="arrow" color="#D5AC66" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="item not-border" data-url="/packages/user/resetPwd/index" data-title="修改支付密码" data-type="pay"
|
||||||
|
@click="handleSelectClick">
|
||||||
|
<view class="item-left">
|
||||||
|
<image class="item-icon" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/Group_424.png" />
|
||||||
|
<view class="item-title">修改支付密码</view>
|
||||||
|
</view>
|
||||||
|
<van-icon name="arrow" color="#D5AC66" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 灰色分割线 -->
|
||||||
|
<view class="line"></view>
|
||||||
|
<view class="item not-border">
|
||||||
|
<view class="item-left">
|
||||||
|
<image class="item-icon" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/Group_425.png" />
|
||||||
|
<view class="item-title">绑定手机</view>
|
||||||
|
</view>
|
||||||
|
<view class="item-right desc">{{phoneNum}}</view>
|
||||||
|
</view>
|
||||||
|
<button class="quit_login" @click="handleQuitLoginClick">退出登录</button>
|
||||||
|
|
||||||
|
<nav-footer />
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { NavgateTo, request } from '../../../utils/index';
|
||||||
|
import { apiArr } from '../../../api/login';
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
userInfoList: [{
|
||||||
|
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/Group_422.png',
|
||||||
|
desc: '上传头像',
|
||||||
|
url: "/packages/user/uploadAvatar/index",
|
||||||
|
isShowPic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/Classroom.png',
|
||||||
|
desc: '当前账户',
|
||||||
|
url: "",
|
||||||
|
text: "微信用户"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/Group_423.png',
|
||||||
|
desc: '修改登录密码',
|
||||||
|
type: 'login',
|
||||||
|
url: "/packages/user/resetPwd/index",
|
||||||
|
isShowPic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
pic: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/Group_424.png',
|
||||||
|
desc: '修改支付密码',
|
||||||
|
type: 'pay',
|
||||||
|
url: "/packages/user/resetPwd/index",
|
||||||
|
isShowPic: true,
|
||||||
|
isLast: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
userInfo: {},
|
||||||
|
phoneNum: uni.getStorageSync('phone'),
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async init() {
|
||||||
|
const res = await request(apiArr.loginInfo, 'POST', {});
|
||||||
|
this.userInfo = res;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 跳转指定页面url
|
||||||
|
handleSelectClick(event) {
|
||||||
|
const { url, title, type } = event.currentTarget.dataset
|
||||||
|
if (!url) return;
|
||||||
|
NavgateTo(`${url}?title=${title}&type=${type}`, { isLogin: false })
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退出登录
|
||||||
|
*/
|
||||||
|
handleQuitLoginClick() {
|
||||||
|
console.log('退出登录');
|
||||||
|
uni.removeStorageSync('ctoken');
|
||||||
|
uni.removeStorageSync('userId');
|
||||||
|
uni.removeStorageSync('phone');
|
||||||
|
uni.removeStorageSync('device_id');
|
||||||
|
uni.removeStorageSync('dealerId');
|
||||||
|
uni.removeStorageSync('is_deal');
|
||||||
|
uni.removeStorageSync('is_dev');
|
||||||
|
uni.removeStorageSync('is_shop');
|
||||||
|
uni.removeStorageSync('openId');
|
||||||
|
uni.removeStorageSync('shopArea');
|
||||||
|
uni.removeStorageSync('shopId');
|
||||||
|
uni.reLaunch({
|
||||||
|
url: '/pages/index/index'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
onLoad() {
|
||||||
|
this.init();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import url("./index.css");
|
||||||
|
</style>
|
||||||
111
packages/user/marketing/index.css
Normal file
111
packages/user/marketing/index.css
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
.container {
|
||||||
|
height: 100vh;
|
||||||
|
background: linear-gradient(to bottom, #FFE7E1, #FFFFFF);
|
||||||
|
/* background-attachment: fixed; */
|
||||||
|
background-size: cover;
|
||||||
|
padding-top: 20rpx;
|
||||||
|
padding-bottom: 20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 头部 */
|
||||||
|
.header {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 25rpx;
|
||||||
|
margin-top: 83rpx;
|
||||||
|
margin-bottom: 52rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 头像 */
|
||||||
|
.left {
|
||||||
|
display: flex;
|
||||||
|
width: 120rpx;
|
||||||
|
height: 120rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
overflow: hidden;
|
||||||
|
background-color: #FF7354;
|
||||||
|
margin-right: 30rpx;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
pointer-events: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 头像图片 */
|
||||||
|
.avatar {
|
||||||
|
width: 60%;
|
||||||
|
height: 55%;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
pointer-events: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user_name {
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #000000;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 14rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.share_poster {
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
padding: 5rpx 14rpx 7rpx 15rpx;
|
||||||
|
background-color: #FF9077;
|
||||||
|
border-radius: 100rpx 100rpx 100rpx 100rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-between;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 30rpx 30rpx 30rpx 30rpx;
|
||||||
|
margin: 0 15rpx 41rpx 25rpx;
|
||||||
|
padding: 43rpx 44rpx 47rpx 34rpx;
|
||||||
|
}
|
||||||
|
.item {
|
||||||
|
flex: 1 0 calc(33.333% - 10px);
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 50rpx;
|
||||||
|
}
|
||||||
|
.has-margin-bottom {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
.text {
|
||||||
|
font-size: 40rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #222222;
|
||||||
|
margin-bottom: 14rpx;
|
||||||
|
}
|
||||||
|
.desc {
|
||||||
|
font-size: 26rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navigation {
|
||||||
|
margin-left: 22rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.order {
|
||||||
|
margin-top: 24rpx;
|
||||||
|
}
|
||||||
|
.nav_icon {
|
||||||
|
width: 50rpx;
|
||||||
|
height: 50rpx;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
.grid-text {
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.uicon-volume {
|
||||||
|
font-size: 28rpx !important;
|
||||||
|
}
|
||||||
|
.u-grid-item {
|
||||||
|
margin-bottom: 43rpx;
|
||||||
|
}
|
||||||
132
packages/user/marketing/index.vue
Normal file
132
packages/user/marketing/index.vue
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
<template>
|
||||||
|
<view class="container">
|
||||||
|
<view class="header">
|
||||||
|
<view class="left">
|
||||||
|
<image class="avatar" :src="userInfo.img"></image>
|
||||||
|
</view>
|
||||||
|
<view class="right">
|
||||||
|
<view class="user_name" @click="handleUserInfoClick">
|
||||||
|
{{ userInfo.user_name ? userInfo.user_name : '微信用户' }}
|
||||||
|
(ID:{{userInfo.user_id}})
|
||||||
|
</view>
|
||||||
|
<view class="share_poster" @click="handleShareClick">推广海报</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 推广下级 -->
|
||||||
|
<view class="main">
|
||||||
|
<view class="item">
|
||||||
|
<view class="text">{{0}}</view>
|
||||||
|
<view class="desc">累计推广下级</view>
|
||||||
|
</view>
|
||||||
|
<view class="item">
|
||||||
|
<view class="text">{{0}}</view>
|
||||||
|
<view class="desc">累计邀请业主</view>
|
||||||
|
</view>
|
||||||
|
<view class="item">
|
||||||
|
<view class="text">{{0}}</view>
|
||||||
|
<view class="desc">累计推广订单</view>
|
||||||
|
</view>
|
||||||
|
<view class="item has-margin-bottom">
|
||||||
|
<view class="text">{{0}}</view>
|
||||||
|
<view class="desc">今日推广下级</view>
|
||||||
|
</view>
|
||||||
|
<view class="item has-margin-bottom">
|
||||||
|
<view class="text">{{0}}</view>
|
||||||
|
<view class="desc">今日邀请业主</view>
|
||||||
|
</view>
|
||||||
|
<view class="item has-margin-bottom">
|
||||||
|
<view class="text">{{0}}</view>
|
||||||
|
<view class="desc">今日推广订单</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="navigation">功能管理</view>
|
||||||
|
<view class="order">
|
||||||
|
<!-- 功能列表 -->
|
||||||
|
<u-grid col="4" :border="false" >
|
||||||
|
<u-grid-item @click="headerOrderClick(item)" v-for="(item, index) in functional_List" :key="index">
|
||||||
|
<image class="nav_icon" :src="item.image" mode=""></image>
|
||||||
|
<text class="grid-text">{{item.name}}</text>
|
||||||
|
</u-grid-item>
|
||||||
|
</u-grid>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<nav-footer />
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { NavgateTo, picUrl, request } from '../../../utils';
|
||||||
|
import { apiArr } from '../../../api/login';
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
functional_List: [{
|
||||||
|
"image": "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/Group_25.png",
|
||||||
|
"name": "推广海报",
|
||||||
|
"url": "/packages/user/share/index",
|
||||||
|
"type": "h5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"image": "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/Group_26.png",
|
||||||
|
"name": "我的下级",
|
||||||
|
"url": "",
|
||||||
|
"type": "h5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"image": "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/Group_35.png",
|
||||||
|
"name": "下级订单",
|
||||||
|
"url": "",
|
||||||
|
"type": "h5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"image": "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/Group_30.png",
|
||||||
|
"name": "联系平台",
|
||||||
|
"url": "",
|
||||||
|
"type": "h5"
|
||||||
|
},
|
||||||
|
],
|
||||||
|
userInfo: {},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async init() {
|
||||||
|
const res = await request(apiArr.loginInfo, 'POST', {});
|
||||||
|
const newRes = {
|
||||||
|
...res,
|
||||||
|
img: picUrl + res.img || 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/person/Group_309.png',
|
||||||
|
}
|
||||||
|
this.userInfo = newRes;
|
||||||
|
},
|
||||||
|
|
||||||
|
handleUserInfoClick() {
|
||||||
|
NavgateTo('/packages/user/index/index', { isLogin: false })
|
||||||
|
},
|
||||||
|
handleShareClick() {
|
||||||
|
NavgateTo('/packages/user/share/index', { isLogin: false })
|
||||||
|
},
|
||||||
|
|
||||||
|
headerOrderClick(event) {
|
||||||
|
console.log('11111', event)
|
||||||
|
const { url } = event;
|
||||||
|
if (!url) {
|
||||||
|
uni.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '此功能暂未开通!',
|
||||||
|
showCancel: false,
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
NavgateTo(url, { isLogin: false })
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.init();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import url("./index.css");
|
||||||
|
</style>
|
||||||
86
packages/user/points/index.css
Normal file
86
packages/user/points/index.css
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
.points-overview {
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
padding: 40rpx 20rpx 30rpx;
|
||||||
|
height: 185rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.points-overview__content {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.points-overview__label {
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.points-overview__num {
|
||||||
|
margin-top: 10rpx;
|
||||||
|
margin-left: 12rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 64rpx;
|
||||||
|
line-height: 75rpx;
|
||||||
|
color: #FF512A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.points-overview__action {
|
||||||
|
flex-shrink: 1;
|
||||||
|
padding: 5rpx 22rpx;
|
||||||
|
width: max-content;
|
||||||
|
height: max-content;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
background-color: rgba(255, 81, 42, 0.1);
|
||||||
|
white-space: nowrap;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.points-overview__desc {
|
||||||
|
margin-right: 10rpx;
|
||||||
|
font-size: 26rpx;
|
||||||
|
line-height: 30rpx;
|
||||||
|
color: #FF512A;
|
||||||
|
white-space: nowrap;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.block-divider {
|
||||||
|
width: 100%;
|
||||||
|
height: 20rpx;
|
||||||
|
background-color: #F9F9F9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.record-list {
|
||||||
|
padding: 0 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.record-list-item {
|
||||||
|
padding: 30rpx 0;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.record-list-item__content {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.record-list-item__label {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.record-list-item__num {
|
||||||
|
flex-shrink: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.record-list-item__datetime {
|
||||||
|
margin-top: 10rpx;
|
||||||
|
font-size: 22rpx;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.record-list-item + .record-list-item {
|
||||||
|
border-top: 1px solid #E6E6E6;
|
||||||
|
}
|
||||||
84
packages/user/points/index.vue
Normal file
84
packages/user/points/index.vue
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
<template>
|
||||||
|
<view class="container">
|
||||||
|
<view class="points-overview">
|
||||||
|
<view class="points-overview__content">
|
||||||
|
<view class="points-overview__label">账户积分</view>
|
||||||
|
<view class="points-overview__num">{{ pointsNum }}</view>
|
||||||
|
</view>
|
||||||
|
<navigator class="points-overview__action" url="/packages/user/pointsRule/index">
|
||||||
|
<text class="points-overview__desc">积分规则</text>
|
||||||
|
<image
|
||||||
|
style="width: 12rpx; height: 22rpx;"
|
||||||
|
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/more.primary.12x22.png"
|
||||||
|
>
|
||||||
|
</image>
|
||||||
|
</navigator >
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="block-divider"></view>
|
||||||
|
|
||||||
|
<view class="record-list">
|
||||||
|
<view
|
||||||
|
v-for="(item, index ) in records"
|
||||||
|
:key="index"
|
||||||
|
class="record-list-item"
|
||||||
|
>
|
||||||
|
<view class="record-list-item__content">
|
||||||
|
<view class="record-list-item__label">{{ item.source }}</view>
|
||||||
|
<view class="record-list-item__num">+{{ item.integral }}</view>
|
||||||
|
</view>
|
||||||
|
<view class="record-list-item__datetime">{{ item.create_time }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<nav-footer />
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { request } from '../../../utils';
|
||||||
|
import { apiArr } from '../../../api/user';
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
count: 0,
|
||||||
|
records: [],
|
||||||
|
pointsNum: 0,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async init () {
|
||||||
|
uni.showLoading({
|
||||||
|
title: '加载中',
|
||||||
|
})
|
||||||
|
const res = await request(apiArr.signIntegral,"POST", {});
|
||||||
|
this.pointsNum = res.integral;
|
||||||
|
await this.getSignCycle();
|
||||||
|
},
|
||||||
|
|
||||||
|
async getSignCycle () {
|
||||||
|
const res = await request(apiArr.signCycle, 'POST', {});
|
||||||
|
const { start_time, end_time, day_num } = res;
|
||||||
|
this.getSignList(start_time, end_time, day_num)
|
||||||
|
},
|
||||||
|
|
||||||
|
async getSignList(startTime, endTime, dayNum) {
|
||||||
|
const res = await request(apiArr.signList, 'POST', {
|
||||||
|
page_num: 1,
|
||||||
|
page_size: dayNum,
|
||||||
|
sign_date: [startTime, endTime]
|
||||||
|
});
|
||||||
|
uni.hideLoading();
|
||||||
|
this.records = res.rows;
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.init();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import url("./index.css");
|
||||||
|
</style>
|
||||||
23
packages/user/pointsRule/index.css
Normal file
23
packages/user/pointsRule/index.css
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
.desc-doc {
|
||||||
|
padding: 30rpx 28rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desc-title {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 36rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-content {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #555;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-content--grey {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
44
packages/user/pointsRule/index.vue
Normal file
44
packages/user/pointsRule/index.vue
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
<template>
|
||||||
|
<view class="desc-doc">
|
||||||
|
<view class="desc-title">积分兑换规则</view>
|
||||||
|
<view class="section">
|
||||||
|
<view class="section-title">一. 积分获取:</view>
|
||||||
|
<view class="section-content">1、完成购物。在平台进行消费支付可,即可获得官方商城积分,10元可换取1积分;订单支付成功后到账;</view>
|
||||||
|
<view class="section-content">2、平台签到赠送积分。</view>
|
||||||
|
</view>
|
||||||
|
<view class="section">
|
||||||
|
<view class="section-title">二. 兑换规则</view>
|
||||||
|
<view class="section-content">积分可在官方商城兑换商品:</view>
|
||||||
|
<view class="section-content section-content--grey">· 折扣券——官方商城定期推出积分兑换折扣卷活动,兑换折扣卷后需在有效期内使用,有效期及使用规则请见折扣卷详情;
|
||||||
|
</view>
|
||||||
|
<view class="section-content section-content--grey">· 其他——有效期及使用规则请见商品详情;</view>
|
||||||
|
<view class="section-content">
|
||||||
|
兑换后会扣减“兑换积分”,兑换的礼券及兑换积分不能退回;同类礼券每笔订单限使用一张,仅限本ID使用,不能折算为现金、也不能再次兑换为积分;已兑换的礼券可在“我的账户 我的积分”的明细中查询。兑换礼券均有有效期,请及时使用。
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<nav-footer />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import url("./index.css");
|
||||||
|
</style>
|
||||||
128
packages/user/pointsSign/index.css
Normal file
128
packages/user/pointsSign/index.css
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
.container {
|
||||||
|
width: 750rpx;
|
||||||
|
height: 902rpx;
|
||||||
|
background: linear-gradient(0deg, rgba(255,182,92,0) 0%, #ED7554 80%);
|
||||||
|
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
||||||
|
}
|
||||||
|
.header {
|
||||||
|
margin-top: 57rpx;
|
||||||
|
margin-left: 34rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
.left_detail {
|
||||||
|
border-radius: 100rpx 100rpx 100rpx 100rpx;
|
||||||
|
background: rgba(255,255,255,0.2);
|
||||||
|
overflow: auto;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
padding-right: 24rpx;
|
||||||
|
}
|
||||||
|
.gold_icon {
|
||||||
|
width: 48rpx;
|
||||||
|
height: 48rpx;
|
||||||
|
margin: 8rpx 20rpx 8rpx 17rpx;
|
||||||
|
}
|
||||||
|
.points {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 40rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
margin-right: 25rpx;
|
||||||
|
}
|
||||||
|
.tomorrow_sign {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
.right_desc {
|
||||||
|
text-align: right;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 80rpx;
|
||||||
|
background: linear-gradient(90.00002264849354deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0) 100%);
|
||||||
|
}
|
||||||
|
.rigth_icon {
|
||||||
|
width: 408rpx;
|
||||||
|
height: 94rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.main {
|
||||||
|
/* width: 100%; */
|
||||||
|
background: url('https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/Rectangle_112.png');
|
||||||
|
border-radius: 30px 30px 30px 30px;
|
||||||
|
border: 1px solid #FFFFFF;
|
||||||
|
padding: 25rpx 20rpx 0;
|
||||||
|
margin-top: 22rpx;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.center_icon {
|
||||||
|
width: 382rpx;
|
||||||
|
height: 283rpx;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: -173rpx;
|
||||||
|
}
|
||||||
|
.center_header {
|
||||||
|
width: 710rpx;
|
||||||
|
display: inline-flex;
|
||||||
|
background: #FCF7DD;
|
||||||
|
border-radius: 30rpx 30rpx 30rpx 30rpx;
|
||||||
|
}
|
||||||
|
.signed {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #222222;
|
||||||
|
margin: 36rpx 0 36rpx 46rpx;
|
||||||
|
}
|
||||||
|
.center_time {
|
||||||
|
font-weight: 400;
|
||||||
|
color: #D5AC66;
|
||||||
|
margin: 36rpx 28rpx 36rpx 163rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
.points_detail {
|
||||||
|
margin-top: 40rpx;
|
||||||
|
width: 750rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
.day_detail {
|
||||||
|
width: 90rpx;
|
||||||
|
margin-right: 10rpx;
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
}
|
||||||
|
.item {
|
||||||
|
background: #FFECE7;
|
||||||
|
border-radius: 10rpx 10rpx 10rpx 10rpx;
|
||||||
|
width: 90rpx;
|
||||||
|
height: 110rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.red_border {
|
||||||
|
border: 1rpx solid #FF512A;
|
||||||
|
|
||||||
|
}
|
||||||
|
.points_time {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #000000;
|
||||||
|
text-align: center;
|
||||||
|
margin: 11rpx 0 11rpx;
|
||||||
|
}
|
||||||
|
.points_icon {
|
||||||
|
width: 40rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
.day_time {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #000000;
|
||||||
|
margin-top: 10rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.color_red {
|
||||||
|
color: #FF512A;
|
||||||
|
}
|
||||||
300
packages/user/pointsSign/index.vue
Normal file
300
packages/user/pointsSign/index.vue
Normal file
@ -0,0 +1,300 @@
|
|||||||
|
<template>
|
||||||
|
<view class="container" :style="{paddingTop: top + 'px'}">
|
||||||
|
<u-navbar title="签到积分" leftIconColor="#FFFFFF" titleStyle="color: #FFFFFF" bgColor="transparent" leftIconSize="20px"
|
||||||
|
:autoBack="true" />
|
||||||
|
|
||||||
|
<view class="header">
|
||||||
|
<view class="header_left">
|
||||||
|
<view class="left_detail" @click="headerPointsClick">
|
||||||
|
<image class="gold_icon"
|
||||||
|
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/401463152_31.png" mode="" />
|
||||||
|
<text class="points">{{pointsNum}}</text>
|
||||||
|
<u-icon color="#FFFFFF" name="arrow-right" />
|
||||||
|
</view>
|
||||||
|
<view class="tomorrow_sign">明日签到+1</view>
|
||||||
|
</view>
|
||||||
|
<view class="header_right">
|
||||||
|
<image class="rigth_icon" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/QIANDAO.png"
|
||||||
|
mode="" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="main">
|
||||||
|
<image class="center_icon" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/Group_311.png"
|
||||||
|
mode="" />
|
||||||
|
<view class="center_header">
|
||||||
|
<view class="signed">本期已签到<text>{{checkedData}}</text>天</view>
|
||||||
|
<view class="center_time">{{starteTime}}~{{endTime}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="points_detail">
|
||||||
|
<view class="day_detail" v-for="(item, index) in pointsList" :key="index" @click="headerSignClick">
|
||||||
|
<view :class="['item', item.today && 'red_border']">
|
||||||
|
<view v-if="item.isSign" :class="['points_time', !item.isSign && 'color_red']">{{item.time}}</view>
|
||||||
|
<view v-if="!item.isSign" :class="['points_time', !item.isSign && 'color_red']">+{{item.points}}</view>
|
||||||
|
<image class="points_icon" v-if="item.isSign"
|
||||||
|
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/Group_518.png" mode="" />
|
||||||
|
<image class="points_icon" wx:else
|
||||||
|
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/401463152_31.png" mode="" />
|
||||||
|
</view>
|
||||||
|
<view class="day_time">{{index +1}}天</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<footer />
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
request,
|
||||||
|
menuButtonInfo,
|
||||||
|
NavgateTo
|
||||||
|
} from '../../../utils';
|
||||||
|
import {
|
||||||
|
apiArr
|
||||||
|
} from '../../../api/user';
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
top: 0,
|
||||||
|
starteTime: '',
|
||||||
|
endTime: '',
|
||||||
|
points: [{
|
||||||
|
time: '01.29',
|
||||||
|
state: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+2',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+3',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+4',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+5',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+6',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+7',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+1',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+2',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+3',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+4',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+5',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+6',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+7',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+1',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+2',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+3',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+4',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+5',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+6',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+7',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+1',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+2',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+3',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+4',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+5',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+6',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+7',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+1',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: '+2',
|
||||||
|
state: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
pointsList: [],
|
||||||
|
checkedData: 0,
|
||||||
|
pointsNum: 0,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async getIntegral() {
|
||||||
|
const res = await request(apiArr.signIntegral, 'POST', {});
|
||||||
|
this.pointsNum = res.integral
|
||||||
|
},
|
||||||
|
|
||||||
|
async init() {
|
||||||
|
uni.showLoading({
|
||||||
|
title: '加载中',
|
||||||
|
mask: true,
|
||||||
|
})
|
||||||
|
this.getIntegral();
|
||||||
|
const res = await request(apiArr.signCycle, 'POST', {});
|
||||||
|
const {
|
||||||
|
start_time,
|
||||||
|
end_time,
|
||||||
|
day_num
|
||||||
|
} = res;
|
||||||
|
const starteTime = start_time.substring(0, 10);
|
||||||
|
const endTime = end_time.substring(0, 10);
|
||||||
|
|
||||||
|
|
||||||
|
this.starteTime = starteTime;
|
||||||
|
this.endTime = endTime;
|
||||||
|
await this.getGridList(starteTime, day_num);
|
||||||
|
await this.getSignList(starteTime, endTime, day_num);
|
||||||
|
|
||||||
|
uni.hideLoading();
|
||||||
|
},
|
||||||
|
|
||||||
|
getGridList(startTime, dayNum) {
|
||||||
|
// 获取当前日期
|
||||||
|
const today = new Date();
|
||||||
|
|
||||||
|
const year = today.getFullYear();
|
||||||
|
const month = String(today.getMonth() + 1).padStart(2, '0'); // 月份从0开始,所以需要+1
|
||||||
|
const day = String(today.getDate()).padStart(2, '0');
|
||||||
|
const todayString = `${year}-${month}-${day}`;
|
||||||
|
|
||||||
|
|
||||||
|
// 将日期字符串转换为 Date 对象
|
||||||
|
const startDate = new Date(startTime);
|
||||||
|
|
||||||
|
const dayList = Array.from({
|
||||||
|
length: dayNum
|
||||||
|
}, (_, index) => {
|
||||||
|
// 创建一个新的 Date 对象,表示当前的天数
|
||||||
|
const currentDate = new Date(startDate);
|
||||||
|
currentDate.setDate(startDate.getDate() + index);
|
||||||
|
|
||||||
|
const currentDateString = currentDate.toISOString().split('T')[0]; // 格式化为 YYYY-MM-DD
|
||||||
|
|
||||||
|
|
||||||
|
// 检查当前日期是否是今天
|
||||||
|
const isToday = currentDateString === todayString;
|
||||||
|
|
||||||
|
// 格式化当前日期为 MM.DD
|
||||||
|
const formattedDate = (`0${currentDate.getMonth() + 1}`).slice(-2) + '.' + (`0${currentDate.getDate()}`)
|
||||||
|
.slice(-2);
|
||||||
|
return {
|
||||||
|
time: formattedDate,
|
||||||
|
date: currentDateString,
|
||||||
|
points: 1,
|
||||||
|
today: isToday,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.pointsList = dayList;
|
||||||
|
},
|
||||||
|
|
||||||
|
async getSignList(startTime, endTime, dayNum) {
|
||||||
|
const res = await request(apiArr.signList, 'POST', {
|
||||||
|
page_num: 1,
|
||||||
|
page_size: dayNum,
|
||||||
|
sign_date: [startTime, endTime]
|
||||||
|
});
|
||||||
|
const newRes = res.rows.map((item) => {
|
||||||
|
return {
|
||||||
|
...item,
|
||||||
|
day: item.day.substring(0, 10),
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const updatedList = this.pointsList.map(item => {
|
||||||
|
// 使用 some 检查 已签到列表 中是否有匹配的日期
|
||||||
|
const isSign = newRes.some(dayObj => dayObj.day === item.date);
|
||||||
|
|
||||||
|
// 返回一个新的对象,包含原始字段和已签到的 isSign 字段
|
||||||
|
return {
|
||||||
|
...item,
|
||||||
|
isSign: isSign
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
this.checkedData = res.total;
|
||||||
|
this.pointsList = updatedList;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
headerPointsClick() {
|
||||||
|
NavgateTo('/packages/user/points/index', { isLogin: false })
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
const meun = menuButtonInfo();
|
||||||
|
this.top = meun.height + meun.top;
|
||||||
|
this.init();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import url("./index.css");
|
||||||
|
</style>
|
||||||
19
packages/user/resetPwd/constant.js
Normal file
19
packages/user/resetPwd/constant.js
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
// 修改密码页面参数类型
|
||||||
|
export const pageOptionType = {
|
||||||
|
pay: {
|
||||||
|
title: '已绑定手机号',
|
||||||
|
defultDesc: '请输入绑定手机号',
|
||||||
|
subTitle: '支付密码',
|
||||||
|
defultSubDesc: '请输入支付密码',
|
||||||
|
type: 'pay',
|
||||||
|
btnText: '设置',
|
||||||
|
},
|
||||||
|
login: {
|
||||||
|
title: '新设密码',
|
||||||
|
defultDesc: '请输入新密码',
|
||||||
|
subTitle: '确认密码',
|
||||||
|
defultSubDesc: '请再次输入密码',
|
||||||
|
type: 'login',
|
||||||
|
btnText: '修改',
|
||||||
|
}
|
||||||
|
};
|
||||||
38
packages/user/resetPwd/index.css
Normal file
38
packages/user/resetPwd/index.css
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
.item{
|
||||||
|
display:flex;
|
||||||
|
border-bottom:1px solid #e6e6e6;
|
||||||
|
height: 90rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin: 36rpx 50rpx 30rpx;
|
||||||
|
}
|
||||||
|
.item-title {
|
||||||
|
font-weight: 400;
|
||||||
|
color: #999999;
|
||||||
|
font-size: 26rpx;
|
||||||
|
}
|
||||||
|
.input-desc {
|
||||||
|
font-size: 26rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.tips {
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #222222;
|
||||||
|
font-weight: 400;
|
||||||
|
margin: 0 14rpx 40rpx 50rpx;
|
||||||
|
}
|
||||||
|
.desc {
|
||||||
|
color: #FF512A;
|
||||||
|
}
|
||||||
|
.submit_reset {
|
||||||
|
margin: 0 50rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
line-height: 80rpx;
|
||||||
|
background: #FF512A;
|
||||||
|
border-radius: 100rpx 100rpx 100rpx 100rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 36rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
151
packages/user/resetPwd/index.vue
Normal file
151
packages/user/resetPwd/index.vue
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
<template>
|
||||||
|
<view class="container">
|
||||||
|
<view class="item">
|
||||||
|
<view class="item-title">{{content.title}}</view>
|
||||||
|
<!-- 修改支付密码输入框 -->
|
||||||
|
<input v-if="content.type === 'pay'" class="input-desc" :value="cellPhone" type="number" maxlength="11" data-name='phone' @input="handerChangeClick" :placeholder='content.defultDesc' />
|
||||||
|
|
||||||
|
<!-- 修改登录密码输入框 -->
|
||||||
|
<input v-if="content.type === 'login'" class="input-desc" password :value="cellPhone" data-name='phone' @input="handerChangeClick" :placeholder='content.defultDesc' />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="item">
|
||||||
|
<view class="item-title">{{content.subTitle}}</view>
|
||||||
|
<input class="input-desc" :value="passWord" data-name='pwd' password @input="handerChangeClick" :placeholder="content.defultSubDesc" />
|
||||||
|
</view>
|
||||||
|
<view class="tips">
|
||||||
|
<text class="desc">提示:</text>
|
||||||
|
如果您是微信登录的账户,请直接填写新密码,然后点击确认修改即可设置登录密码
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 修改支付密码禁用规则: 手机号不存在 或者 手机号不足11位 或者 密码不存在 则禁止点击 -->
|
||||||
|
<button
|
||||||
|
v-if="content.type === 'pay'"
|
||||||
|
class="submit_reset"
|
||||||
|
:disabled='!cellPhone || cellPhone.length !== 11 || !passWord'
|
||||||
|
@click="handleSubmit"
|
||||||
|
>
|
||||||
|
确认{{content.btnText}}
|
||||||
|
</button>
|
||||||
|
<!-- 修改登录密码禁用规则:新密码不存在 或者 确认密码不存在 则禁止点击 -->
|
||||||
|
<button
|
||||||
|
v-if="content.type === 'login'"
|
||||||
|
class="submit_reset"
|
||||||
|
:disabled='!cellPhone || !passWord'
|
||||||
|
@click="handleSubmit"
|
||||||
|
>
|
||||||
|
确认{{content.btnText}}
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<nav-footer />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { request } from '../../../utils/index';
|
||||||
|
import { pageOptionType } from './constant';
|
||||||
|
import { apiArr } from '../../../api/user';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
cellPhone: null,
|
||||||
|
passWord: null,
|
||||||
|
type: '',
|
||||||
|
content:{},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 修改输入框值
|
||||||
|
handerChangeClick(event) {
|
||||||
|
const {value} = event.detail;
|
||||||
|
const {name} = event.currentTarget.dataset;
|
||||||
|
if (name === 'phone') {
|
||||||
|
this.cellPhone = value;
|
||||||
|
};
|
||||||
|
if (name === 'pwd') {
|
||||||
|
this.passWord = value;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
// 提交修改
|
||||||
|
async handleSubmit() {
|
||||||
|
/**
|
||||||
|
* 参数场景说明:
|
||||||
|
* 修改登录密码页面时,cellPhone 是新设密码,passWord 是确认密码
|
||||||
|
* 修改支付密码页面时,cellPhone 是已绑定手机号,passWord 是支付密码
|
||||||
|
*/
|
||||||
|
const {cellPhone, passWord, type} = this;
|
||||||
|
|
||||||
|
if (type === 'login') {
|
||||||
|
if (cellPhone !== passWord) {
|
||||||
|
uni.showToast({
|
||||||
|
title: '新密码与确认密码不一致',
|
||||||
|
icon: 'none',
|
||||||
|
duration: 2000
|
||||||
|
});
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const res = await request(apiArr.modifyPass, "POST", {
|
||||||
|
new_password: cellPhone,
|
||||||
|
conform_password: passWord,
|
||||||
|
});
|
||||||
|
|
||||||
|
uni.showToast({
|
||||||
|
title: '修改登录密码成功',
|
||||||
|
icon: 'success',
|
||||||
|
success () {
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
}, 2000)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if (type === 'pay') {
|
||||||
|
const res = await request(apiArr.payPass, "POST", {
|
||||||
|
mobile: cellPhone,
|
||||||
|
pay_password: passWord,
|
||||||
|
});
|
||||||
|
|
||||||
|
uni.showToast({
|
||||||
|
title: '设置支付密码成功',
|
||||||
|
icon: 'success',
|
||||||
|
success () {
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
}, 2000)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
onLoad(options) {
|
||||||
|
// 基于父页面传递参数设置页面名称
|
||||||
|
uni.setNavigationBarTitle({
|
||||||
|
title: options.title
|
||||||
|
});
|
||||||
|
|
||||||
|
// 根据父页面传递type参数映射页面渲染参数
|
||||||
|
this.content = pageOptionType[options.type];
|
||||||
|
this.type = options.type;
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import url("./index.css");
|
||||||
|
</style>
|
||||||
52
packages/user/share/index.css
Normal file
52
packages/user/share/index.css
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
.container {
|
||||||
|
width: 754rpx;
|
||||||
|
height: 1334rpx;
|
||||||
|
overflow-x: hidden;
|
||||||
|
/* position: relative; */
|
||||||
|
background: url('https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/Group_756.png');
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
.icon {
|
||||||
|
width: 752rpx;
|
||||||
|
height: 1334rpx;
|
||||||
|
z-index: -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main {
|
||||||
|
width: 100%;
|
||||||
|
position: absolute;
|
||||||
|
top: 886rpx;
|
||||||
|
z-index: 10;
|
||||||
|
}
|
||||||
|
.qrcode {
|
||||||
|
width: 255rpx;
|
||||||
|
height: 255rpx;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
.qrcode_pic {
|
||||||
|
width: 255rpx;
|
||||||
|
height: 255rpx;
|
||||||
|
background: #D9D9D9;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
.desc {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
.share_btn {
|
||||||
|
margin-top: 39rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
}
|
||||||
|
.save {
|
||||||
|
display: inline-flex;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #FF512A;
|
||||||
|
border-radius: 100rpx 100rpx 100rpx 100rpx;
|
||||||
|
border: 1rpx solid #FF512A;
|
||||||
|
padding: 10rpx 70rpx;
|
||||||
|
}
|
||||||
156
packages/user/share/index.vue
Normal file
156
packages/user/share/index.vue
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
<template>
|
||||||
|
<view class="container">
|
||||||
|
<view class="main">
|
||||||
|
<view class="qrcode">
|
||||||
|
<image class="qrcode_pic" :src="imagePath" mode="widthFix" />
|
||||||
|
</view>
|
||||||
|
<view class="desc">扫码体验小程序</view>
|
||||||
|
<view class="share_btn">
|
||||||
|
<view class="save" @click="headerQrcodeClick">保存二维码</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
picUrl,
|
||||||
|
request
|
||||||
|
} from '../../../utils';
|
||||||
|
import {
|
||||||
|
apiArr
|
||||||
|
} from '../../../api/user';
|
||||||
|
import permision from "../../../js_sdk/wa-permission/permission.js"
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
imagePath: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/test_qrcode.jpg',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async init() {
|
||||||
|
const res = await request(apiArr.createQrcode, 'POST', {
|
||||||
|
page: '/page/index/index',
|
||||||
|
scene: `device=${wx.getStorageSync('device_id')}`
|
||||||
|
});
|
||||||
|
let img = picUrl + res.data;
|
||||||
|
console.log('img', img)
|
||||||
|
this.imagePath = img;
|
||||||
|
},
|
||||||
|
|
||||||
|
headerQrcodeClick() {
|
||||||
|
console.log('2');
|
||||||
|
const that = this;
|
||||||
|
uni.downloadFile({
|
||||||
|
url: that.imagePath, // 网络图片地址
|
||||||
|
success: async (res) => {
|
||||||
|
console.log('11312312313', res);
|
||||||
|
if (res.statusCode === 200) {
|
||||||
|
const tempFilePath = res.tempFilePath; // 获取临时文件路径
|
||||||
|
const systemInfo = uni.getSystemInfoSync();
|
||||||
|
console.log('获取当前设备信息', systemInfo); //TODO: 代验证 ios 安卓是否可保存
|
||||||
|
if (systemInfo.uniPlatform === 'mp-weixin') {
|
||||||
|
// 2. 检查用户授权
|
||||||
|
uni.getSetting({
|
||||||
|
success(settingRes) {
|
||||||
|
console.log('查询授权状态')
|
||||||
|
if (!settingRes.authSetting['scope.writePhotosAlbum']) {
|
||||||
|
// 未授权,请求授权
|
||||||
|
uni.authorize({
|
||||||
|
scope: 'scope.writePhotosAlbum',
|
||||||
|
success() {
|
||||||
|
// 授权成功,保存图片
|
||||||
|
that.saveImageToAlbum(tempFilePath);
|
||||||
|
},
|
||||||
|
fail(err) {
|
||||||
|
console.log('131111', err)
|
||||||
|
// 授权失败,提示用户手动打开授权
|
||||||
|
uni.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '需要授权保存图片到相册,请手动打开授权设置',
|
||||||
|
success(modalRes) {
|
||||||
|
if (modalRes.confirm) {
|
||||||
|
uni.openSetting(); // 打开授权设置页面
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// 已授权,保存图片
|
||||||
|
that.saveImageToAlbum(tempFilePath);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail(err) {
|
||||||
|
console.log('检查用户授权错误', err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (systemInfo.osName === 'ios') {
|
||||||
|
const result = await permision.judgeIosPermission("photoLibrary");
|
||||||
|
if (result == 1) {
|
||||||
|
// strStatus = "已获得授权"
|
||||||
|
that.saveImageToAlbum(tempFilePath);
|
||||||
|
} else if (result == 0) {
|
||||||
|
// strStatus = "未获得授权"
|
||||||
|
permision.gotoAppPermissionSetting()
|
||||||
|
} else {
|
||||||
|
// strStatus = "被永久拒绝权限";
|
||||||
|
permision.gotoAppPermissionSetting()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (systemInfo.osName === 'android') {
|
||||||
|
const res = await permision.requestAndroidPermission('android.permission.WRITE_EXTERNAL_STORAGE');
|
||||||
|
if (result == 1) {
|
||||||
|
// strStatus = "已获得授权"
|
||||||
|
that.saveImageToAlbum(tempFilePath);
|
||||||
|
} else if (result == 0) {
|
||||||
|
// strStatus = "未获得授权"
|
||||||
|
permision.gotoAppPermissionSetting()
|
||||||
|
} else {
|
||||||
|
// strStatus = "被永久拒绝权限"
|
||||||
|
permision.gotoAppPermissionSetting()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail() {
|
||||||
|
uni.showToast({
|
||||||
|
title: '图片下载失败',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
saveImageToAlbum(tempFilePath) {
|
||||||
|
uni.saveImageToPhotosAlbum({
|
||||||
|
filePath: tempFilePath,
|
||||||
|
success() {
|
||||||
|
uni.showToast({
|
||||||
|
title: '保存成功',
|
||||||
|
icon: 'success'
|
||||||
|
});
|
||||||
|
},
|
||||||
|
fail() {
|
||||||
|
uni.showToast({
|
||||||
|
title: '保存失败',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
// this.init();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import url("./index.css");
|
||||||
|
</style>
|
||||||
49
packages/user/uploadAvatar/index.css
Normal file
49
packages/user/uploadAvatar/index.css
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
.upload {
|
||||||
|
margin: 164rpx auto 58rpx;
|
||||||
|
width: 200rpx;
|
||||||
|
height: 200rpx;
|
||||||
|
background: #F9F9F9;
|
||||||
|
border-radius: 20rpx 20rpx 20rpx 20rpx;
|
||||||
|
border: 1rpx solid #999999;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.upload_img {
|
||||||
|
width: 200rpx;
|
||||||
|
height: 200rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.no_border {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.add {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
width: 46rpx;
|
||||||
|
height: 4rpx;
|
||||||
|
background: #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
width: 4rpx;
|
||||||
|
height: 46rpx;
|
||||||
|
background: #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tips {
|
||||||
|
text-align: center;
|
||||||
|
margin: 0 auto;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desc {
|
||||||
|
color: #FF512A;
|
||||||
|
}
|
||||||
87
packages/user/uploadAvatar/index.vue
Normal file
87
packages/user/uploadAvatar/index.vue
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
<template>
|
||||||
|
<view class="container">
|
||||||
|
<view :class="['upload', picUrl && 'no_border' ]" @click="headerUploadClick">
|
||||||
|
|
||||||
|
<view v-if="!picUrl">
|
||||||
|
<view class="add"></view>
|
||||||
|
<view class="column"></view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<image v-if="picUrl" class="upload_img" :src="picUrl" mode="" />
|
||||||
|
</view>
|
||||||
|
<view class="tips">
|
||||||
|
<text class="desc">提示:</text>
|
||||||
|
建议大小300*300像素的图片
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<nav-footer />
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { request, upload, picUrl as imageUrl } from '../../../utils/index';
|
||||||
|
import { apiArr } from '../../../api/user';
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
picUrl: '',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
headerUploadClick() {
|
||||||
|
let _this = this;
|
||||||
|
wx.showLoading({
|
||||||
|
title: '上传中',
|
||||||
|
})
|
||||||
|
uni.chooseMedia({
|
||||||
|
count: 1,
|
||||||
|
success(res) {
|
||||||
|
console.log('123131', res);
|
||||||
|
const tempFilePaths = res.tempFiles;
|
||||||
|
|
||||||
|
// 调用公共上传图片方法
|
||||||
|
upload(tempFilePaths[0].tempFilePath,(res)=>{
|
||||||
|
let datas = JSON.parse(res)
|
||||||
|
console.log(datas.data);
|
||||||
|
let url = imageUrl + datas.data.path
|
||||||
|
_this.picUrl = url;
|
||||||
|
|
||||||
|
// 调用业务接口提交图片
|
||||||
|
request(apiArr.avatar, "POST", {
|
||||||
|
avatar: datas.data.path
|
||||||
|
}, { silent: false, nested: true }).then((res) => {
|
||||||
|
uni.hideLoading();
|
||||||
|
uni.showToast({
|
||||||
|
title: '上传头像成功',
|
||||||
|
icon: 'success',
|
||||||
|
mask: true,
|
||||||
|
success() {
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
}, 1500)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
fail(err) {
|
||||||
|
console.log('拉起上传图片失败', err);
|
||||||
|
uni.hideLoading();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import url("./index.css");
|
||||||
|
</style>
|
||||||
146
pages.json
146
pages.json
@ -3,8 +3,10 @@
|
|||||||
{
|
{
|
||||||
"path": "pages/index/index",
|
"path": "pages/index/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "uni-app",
|
"navigationStyle": "custom",
|
||||||
"navigationStyle": "custom"
|
"usingComponents": {
|
||||||
|
"nav-footer": "/components/nav/nav"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -14,17 +16,25 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path" : "pages/webview/webview",
|
"path": "pages/shopcity/shopcity",
|
||||||
"style" :
|
"style": {
|
||||||
{
|
"navigationBarTitleText": ""
|
||||||
"navigationBarTitleText" : ""
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path" : "pages/shopcity/shopcity",
|
"path": "pages/webview/webview",
|
||||||
"style" :
|
"style": {
|
||||||
{
|
"navigationBarTitleText": ""
|
||||||
"navigationBarTitleText" : ""
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "",
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"usingComponents": {
|
||||||
|
"nav-footer": "/components/nav/nav"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -84,7 +94,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"root": "community",
|
"root": "packages/community",
|
||||||
"pages": [{
|
"pages": [{
|
||||||
"path": "index/index",
|
"path": "index/index",
|
||||||
"style": {
|
"style": {
|
||||||
@ -154,6 +164,11 @@
|
|||||||
"style": {
|
"style": {
|
||||||
"navigationBarBackgroundColor": "#F9F9F9"
|
"navigationBarBackgroundColor": "#F9F9F9"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "ownerList/index",
|
||||||
|
"style": {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -172,6 +187,115 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"root": "packages/user",
|
||||||
|
"pages": [{
|
||||||
|
"path": "index/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "账户信息",
|
||||||
|
"navigationBarBackgroundColor": "#F9F9F9",
|
||||||
|
"usingComponents": {
|
||||||
|
"nav-footer": "/components/nav/nav"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "uploadAvatar/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "上传头像",
|
||||||
|
"navigationBarBackgroundColor": "#F9F9F9",
|
||||||
|
"usingComponents": {
|
||||||
|
"nav-footer": "/components/nav/nav"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "resetPwd/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarBackgroundColor": "#F9F9F9",
|
||||||
|
"usingComponents": {
|
||||||
|
"nav-footer": "/components/nav/nav"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "points/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "积分",
|
||||||
|
"usingComponents": {
|
||||||
|
"nav-footer": "/components/nav/nav"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pointsSign/index",
|
||||||
|
"style": {
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"usingComponents": {
|
||||||
|
"nav-footer": "/components/nav/nav"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pointsRule/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "积分规则",
|
||||||
|
"usingComponents": {
|
||||||
|
"nav-footer": "/components/nav/nav"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "marketing/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "营销推广",
|
||||||
|
"usingComponents": {
|
||||||
|
"nav-footer": "/components/nav/nav"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "share/index",
|
||||||
|
"style": {
|
||||||
|
"navigationStyle": "custom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"root": "packages/communityService",
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"path": "index/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "社区服务",
|
||||||
|
"usingComponents": {
|
||||||
|
"nav-footer": "/components/nav/nav"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "shopDetail/index",
|
||||||
|
"style": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "serviceMore/index",
|
||||||
|
"style": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "reservation/index",
|
||||||
|
"style": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "reservationApply/index",
|
||||||
|
"style": {
|
||||||
|
"usingComponents": {
|
||||||
|
"areaPopup": "/components/areaPopup/areaPopup"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
@ -41,7 +41,6 @@
|
|||||||
|
|
||||||
<view class="cirList">
|
<view class="cirList">
|
||||||
<view :class="['cir', currentIdx == index ? 'active' : '']" v-for="(item, index) in bannerList" :key="index">
|
<view :class="['cir', currentIdx == index ? 'active' : '']" v-for="(item, index) in bannerList" :key="index">
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -117,9 +116,10 @@
|
|||||||
<view class="empty" v-if="current != 0 && current != 1">
|
<view class="empty" v-if="current != 0 && current != 1">
|
||||||
<van-empty description="暂无内容" />
|
<van-empty description="暂无内容" />
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- <Footer /> -->
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
@ -141,8 +141,13 @@
|
|||||||
apiArr as apiArr2
|
apiArr as apiArr2
|
||||||
} from '../../api/doorToDoor.js'
|
} from '../../api/doorToDoor.js'
|
||||||
|
|
||||||
|
import nav from '../../components/nav/nav'; //1.导入组件
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
components: {
|
||||||
|
nav
|
||||||
|
}, //2.注册组件
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
s: uni.getSystemInfoSync().statusBarHeight, // 状态栏高度
|
s: uni.getSystemInfoSync().statusBarHeight, // 状态栏高度
|
||||||
@ -223,49 +228,26 @@
|
|||||||
// name:"官方商城",
|
// name:"官方商城",
|
||||||
// url:"/packages/official/index/index"
|
// url:"/packages/official/index/index"
|
||||||
// },
|
// },
|
||||||
]
|
],
|
||||||
|
title: 'Hello',
|
||||||
|
currentCity: "",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
|
||||||
meth1() {
|
|
||||||
console.log(1);
|
|
||||||
uni.navigateTo({
|
|
||||||
url: '/kitchen/index/index',
|
|
||||||
success: res => {},
|
|
||||||
fail: () => {},
|
|
||||||
complete: () => {}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
meth2() {
|
|
||||||
console.log(2);
|
|
||||||
uni.navigateTo({
|
|
||||||
url: '/reservation/index/index',
|
|
||||||
success: res => {},
|
|
||||||
fail: () => {},
|
|
||||||
complete: () => {}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
meth3() {
|
|
||||||
NavgateTo('/pages/login/login', {
|
|
||||||
isLogin: false
|
|
||||||
})
|
|
||||||
},
|
|
||||||
meth4() {
|
|
||||||
NavgateTo('/community/index/index', {
|
|
||||||
isLogin: false
|
|
||||||
})
|
|
||||||
},
|
|
||||||
meth5() {
|
|
||||||
NavgateTo('/shopWrite/index/index', {
|
|
||||||
isLogin: false
|
|
||||||
})
|
|
||||||
},
|
|
||||||
meth6() {
|
|
||||||
NavgateTo('/shopWrite/list/index', {
|
|
||||||
isLogin: false
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
|
onShow() {
|
||||||
|
|
||||||
|
if (uni.getStorageSync('city')) {
|
||||||
|
this.currentCity = {
|
||||||
|
city: uni.getStorageSync('city')
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
uni.setStorageSync('city', uni.getStorageSync('Usercity'))
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
methods: {
|
||||||
swipers(e) {
|
swipers(e) {
|
||||||
this.currentIdx = e.detail.current
|
this.currentIdx = e.detail.current
|
||||||
},
|
},
|
||||||
@ -314,6 +296,9 @@
|
|||||||
} else {
|
} else {
|
||||||
flag = false;
|
flag = false;
|
||||||
}
|
}
|
||||||
|
res.rows.forEach(item=>{
|
||||||
|
item.pic = this.picUrl + item.pic
|
||||||
|
})
|
||||||
that.CommunityList = that.CommunityList.concat(res.rows || []);
|
that.CommunityList = that.CommunityList.concat(res.rows || []);
|
||||||
that.flag = flag;
|
that.flag = flag;
|
||||||
that.page_num = that.page_num + 1;
|
that.page_num = that.page_num + 1;
|
||||||
|
|||||||
150
pages/user/index.css
Normal file
150
pages/user/index.css
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
.conatiner {
|
||||||
|
height: 100%;
|
||||||
|
background: linear-gradient(to bottom, #FFE7E1, #FFFFFF);
|
||||||
|
background-attachment: fixed;
|
||||||
|
background-size: cover;
|
||||||
|
padding-top: 20rpx;
|
||||||
|
padding-bottom: 20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 头部 */
|
||||||
|
.header {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 25rpx;
|
||||||
|
/* margin-top: 83rpx; */
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
/* 头像 */
|
||||||
|
.avatar-container {
|
||||||
|
display: flex;
|
||||||
|
width: 120rpx;
|
||||||
|
height: 120rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
overflow: hidden;
|
||||||
|
background-color: #FF7354;
|
||||||
|
margin-right: 30rpx;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
pointer-events: auto;
|
||||||
|
}
|
||||||
|
/* 头像图片 */
|
||||||
|
.avatar {
|
||||||
|
/* width: 100%;
|
||||||
|
height: 100%; */
|
||||||
|
width: 73rpx;
|
||||||
|
height: 69rpx;
|
||||||
|
/* margin-bottom: 20rpx; */
|
||||||
|
pointer-events: auto;
|
||||||
|
border-radius: 50%;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
/* 登录/注册 */
|
||||||
|
.login-btn {
|
||||||
|
font-size: 36rpx;
|
||||||
|
pointer-events: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
margin-bottom: 21rpx;
|
||||||
|
}
|
||||||
|
.order {
|
||||||
|
margin-top: 24rpx;
|
||||||
|
}
|
||||||
|
.nav_icon {
|
||||||
|
width: 50rpx;
|
||||||
|
height: 50rpx;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
.grid-text {
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item {
|
||||||
|
display: flex;
|
||||||
|
width: 48%;
|
||||||
|
height: 150rpx;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
justify-content: left;
|
||||||
|
align-items: center;
|
||||||
|
/* padding-left: 28rpx; */
|
||||||
|
}
|
||||||
|
|
||||||
|
.item1 {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
width: 100%;
|
||||||
|
height: 220rpx;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
align-items: center;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-owner {
|
||||||
|
margin:0 116rpx 0 116rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-icon {
|
||||||
|
width: 150rpx;
|
||||||
|
height: 98rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-icon1 {
|
||||||
|
width: 150rpx;
|
||||||
|
height: 120rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-img {
|
||||||
|
display: flex;
|
||||||
|
width: 72rpx;
|
||||||
|
height: 72rpx;
|
||||||
|
flex-direction: column;
|
||||||
|
margin-bottom: 28rpx;
|
||||||
|
margin-left: 17%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-content {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding-left: 28rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-item {
|
||||||
|
font-size: 26rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-title {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 5rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-subtitle {
|
||||||
|
font-size: 20rpx;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navigation {
|
||||||
|
margin-top: 29rpx;
|
||||||
|
margin-left: 22rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.uicon-volume {
|
||||||
|
font-size: 28rpx !important;
|
||||||
|
}
|
||||||
|
.u-grid-item {
|
||||||
|
margin-bottom: 43rpx;
|
||||||
|
}
|
||||||
333
pages/user/index.vue
Normal file
333
pages/user/index.vue
Normal file
@ -0,0 +1,333 @@
|
|||||||
|
<template>
|
||||||
|
<view class="conatiner" :style="{paddingTop: top + 'px'}">
|
||||||
|
<view class="header" @click="toLogin">
|
||||||
|
<view class="avatar-container">
|
||||||
|
<image class="avatar"
|
||||||
|
:src="userInfo.userPic || 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/person/Group_309.png'"
|
||||||
|
mode="" />
|
||||||
|
</view>
|
||||||
|
<view class="login-btn">{{userInfo.user_name ? userInfo.user_name : '登录/注册'}}</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="section">
|
||||||
|
<view class="item" @click="handlePointsClick">
|
||||||
|
<view class="item-content">
|
||||||
|
<text class="item-title">积分</text>
|
||||||
|
<text class="item-subtitle">我的剩余积分</text>
|
||||||
|
</view>
|
||||||
|
<image class="item-icon" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/person/5bf7d7dca1ff7_1.png">
|
||||||
|
</image>
|
||||||
|
</view>
|
||||||
|
<view class="item" @click="handleSignClick">
|
||||||
|
<view class="item-content">
|
||||||
|
<text class="item-title">每日签到</text>
|
||||||
|
<text class="item-subtitle">签到获取积分</text>
|
||||||
|
</view>
|
||||||
|
<image class="item-icon1" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/person/Group_311.png" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 我的社区、申请业主、我的设备 -->
|
||||||
|
<view class="section">
|
||||||
|
<view class="item1">
|
||||||
|
<view class="item_device" @click="handleCommunityClick">
|
||||||
|
<image class="icon-community icon-img"
|
||||||
|
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/person/Group_16.png"></image>
|
||||||
|
<text class="community-title title-item">我的社区</text>
|
||||||
|
</view>
|
||||||
|
<view class="item_device" @click="handleApplyOwnerClick">
|
||||||
|
<image class="icon-owner icon-img" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/person/Frame.png" />
|
||||||
|
<text class="owner-title title-item">申请业主</text>
|
||||||
|
</view>
|
||||||
|
<view class="item_device" @click="handleFacilityClick">
|
||||||
|
<image class="icon-device icon-img" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/person/Frame_1.png"/>
|
||||||
|
<text class="device-title title-item">我的设备</text>
|
||||||
|
</view>
|
||||||
|
<view class="item_device" @click="handleMeApplyClick">
|
||||||
|
<image class="icon-device icon-img" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/Group_905.png"/>
|
||||||
|
<text class="device-title title-item">我的申请</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 我的订单 -->
|
||||||
|
<view class="navigation">我的订单</view>
|
||||||
|
<view class="order">
|
||||||
|
<u-grid col="4" :border="false" >
|
||||||
|
<u-grid-item @click="headerOrderClick(item)" v-for="(item, index) in order_List" :key="index">
|
||||||
|
<image class="nav_icon" :src="item.image" mode=""></image>
|
||||||
|
<text class="grid-text">{{item.name}}</text>
|
||||||
|
</u-grid-item>
|
||||||
|
</u-grid>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 功能服务 -->
|
||||||
|
<view class="navigation">功能服务</view>
|
||||||
|
<view class="order">
|
||||||
|
<u-grid col="4" :border="false" >
|
||||||
|
<u-grid-item @click="headerGridItemClick(item)" v-for="(item, index) in functional_List" :key="index">
|
||||||
|
<image class="nav_icon" :src="item.image" mode=""></image>
|
||||||
|
<text class="grid-text">{{item.name}}</text>
|
||||||
|
</u-grid-item>
|
||||||
|
</u-grid>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
<view v-if="!isShop">
|
||||||
|
<view class="navigation">商家服务</view>
|
||||||
|
<view class="order">
|
||||||
|
<u-grid col="4" :border="false" >
|
||||||
|
<u-grid-item @click="headerGridItemClick(item)" v-for="(item, index) in shopServer" :key="index">
|
||||||
|
<image class="nav_icon" :src="item.image" mode=""></image>
|
||||||
|
<text class="grid-text">{{item.name}}</text>
|
||||||
|
</u-grid-item>
|
||||||
|
</u-grid>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<nav-footer />
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { apiArr } from '../../api/login';
|
||||||
|
import { menuButtonInfo, NavgateTo, picUrl, request } from '../../utils/index';
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
top: 0,
|
||||||
|
order_List: [{
|
||||||
|
image: "https://zhsq.hshuishang.com/Public/img/common/order12.png",
|
||||||
|
name: "物业账单",
|
||||||
|
type: "h5",
|
||||||
|
url: "",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
image: "https://zhsq.hshuishang.com/Public/img/common/order04.png",
|
||||||
|
name: "社区服务",
|
||||||
|
type: "h5",
|
||||||
|
url: "/packages/communityService/index/index",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
image: "https://zhsq.hshuishang.com/Public/img/common/order11.png",
|
||||||
|
name: "商家优惠",
|
||||||
|
type: "h5",
|
||||||
|
url: "",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
image: "https://zhsq.hshuishang.com/Public/img/common/order08.png",
|
||||||
|
name: "积分商城",
|
||||||
|
type: "h5",
|
||||||
|
url: "",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
image: "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/orderIcon_1.png",
|
||||||
|
name: "社区健康",
|
||||||
|
type: "h5",
|
||||||
|
url: "",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
image: "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/orderIcon_2.png",
|
||||||
|
name: "生活缴费",
|
||||||
|
type: "h5",
|
||||||
|
url: "",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
image: "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/orderIcon_3.png",
|
||||||
|
name: "社区商城",
|
||||||
|
type: "h5",
|
||||||
|
url: "",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
image: "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/User/_assets/orderIcon_4.png",
|
||||||
|
name: "周边商超",
|
||||||
|
type: "h5",
|
||||||
|
url: "",
|
||||||
|
},
|
||||||
|
|
||||||
|
],
|
||||||
|
functional_List: [{
|
||||||
|
"image": "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/person/Group_25.png",
|
||||||
|
"name": "生活缴费",
|
||||||
|
"url": "",
|
||||||
|
"type": "h5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"image": "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/person/Group_26.png",
|
||||||
|
"name": "优惠卡券",
|
||||||
|
// "url": "/packages/user/coupon/index",
|
||||||
|
"type": "h5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"image": "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/person/Group_35.png",
|
||||||
|
"name": "我的卡券",
|
||||||
|
"url": "",
|
||||||
|
"type": "h5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"image": "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/person/Group_30.png",
|
||||||
|
"name": "营销推广",
|
||||||
|
"url": "/packages/user/marketing/index",
|
||||||
|
"type": "h5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"image": "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/person/Group_27.png",
|
||||||
|
"name": "个人设置",
|
||||||
|
"url": "/packages/user/index/index",
|
||||||
|
"type": "h5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"image": "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/person/Group_29.png",
|
||||||
|
"name": "平台客服",
|
||||||
|
"url": "/packages/WaterPurifier/pages/Addfriend/Addfriend",
|
||||||
|
"type": "h5"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"image": "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/repairList.png",
|
||||||
|
"name": "报修列表",
|
||||||
|
"url": "/packages/OneRepair/pages/OwnerRepairList/OwnerRepairList",
|
||||||
|
"type": "h5"
|
||||||
|
},
|
||||||
|
|
||||||
|
],
|
||||||
|
shopServer: [{
|
||||||
|
image: "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/Group_774.png",
|
||||||
|
name: "订单核销",
|
||||||
|
type: "",
|
||||||
|
url: "/shopWrite/index/index",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
image: "https://wechat-img-file.oss-cn-beijing.aliyuncs.com/Group_774.png",
|
||||||
|
name: "核销列表",
|
||||||
|
type: "",
|
||||||
|
url: "/shopWrite/list/index",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
userInfo: {},
|
||||||
|
isShop: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
// 头像点击
|
||||||
|
toLogin() {
|
||||||
|
NavgateTo('/packages/user/index/index', { isLogin: false });
|
||||||
|
},
|
||||||
|
|
||||||
|
// 积分跳转
|
||||||
|
handlePointsClick() {
|
||||||
|
NavgateTo('/packages/user/points/index', { isLogin: false });
|
||||||
|
},
|
||||||
|
|
||||||
|
// 每日签到跳转
|
||||||
|
handleSignClick() {
|
||||||
|
NavgateTo('/packages/user/pointsSign/index', { isLogin: false });
|
||||||
|
},
|
||||||
|
|
||||||
|
// 我的社区跳转
|
||||||
|
handleCommunityClick(){
|
||||||
|
NavgateTo('/packages/community/index/index', { isLogin: false})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 申请业主跳转
|
||||||
|
handleApplyOwnerClick(){
|
||||||
|
NavgateTo(`/packages/community/index/index?types=2`, { isLogin: false})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 我的设备跳转
|
||||||
|
handleFacilityClick() {
|
||||||
|
this.NotOpen();
|
||||||
|
},
|
||||||
|
|
||||||
|
// 我的申请跳转
|
||||||
|
handleMeApplyClick() {
|
||||||
|
NavgateTo(`/packages/community/ownerList/index`, { isLogin: false})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 我的订单跳转
|
||||||
|
headerOrderClick(event) {
|
||||||
|
console.log('123133131', event);
|
||||||
|
if(!event.url) {
|
||||||
|
this.NotOpen();
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
if (!uni.getStorageSync('city')) {
|
||||||
|
wx.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '请先选择您的城市',
|
||||||
|
confirmText:"去选择",
|
||||||
|
complete: (res) => {
|
||||||
|
if (res.cancel) {}
|
||||||
|
if (res.confirm) {
|
||||||
|
NavgateTo( '/pages/index/shopcity', {isLogin: false})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
console.log('选择城市');
|
||||||
|
NavgateTo( `${event.url}`, {isLogin: false})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 功能服务跳转
|
||||||
|
headerGridItemClick(event) {
|
||||||
|
if (!event.url) {
|
||||||
|
this.NotOpen();
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 如果点击为平台客服则允许跳转
|
||||||
|
if (event.url === '/packages/WaterPurifier/pages/Addfriend/Addfriend') {
|
||||||
|
NavgateTo( event.url, { isLogin: false})
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (event.url) {
|
||||||
|
NavgateTo( event.url, { isLogin: false})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 暂未开通服务弹窗
|
||||||
|
NotOpen() {
|
||||||
|
uni.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '此功能暂未开通!',
|
||||||
|
showCancel: false,
|
||||||
|
complete: (res) => {
|
||||||
|
if (res.cancel) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
async getUserInfo() {
|
||||||
|
const isCtoken = uni.getStorageSync('ctoken');
|
||||||
|
if (!isCtoken) return;
|
||||||
|
const res = await request(apiArr.loginInfo, 'POST', {});
|
||||||
|
const newUserInfo = {
|
||||||
|
...res,
|
||||||
|
userPic: res.img ? `${picUrl}${res.img}` : 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/person/Group_309.png'
|
||||||
|
};
|
||||||
|
this.userInfo = newUserInfo;
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
const meun = menuButtonInfo();
|
||||||
|
this.top = meun.height + meun.top;
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow() {
|
||||||
|
console.log('111');
|
||||||
|
this.getUserInfo();
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import url("./index.css");
|
||||||
|
</style>
|
||||||
28
project.config.json
Normal file
28
project.config.json
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"appid": "wx03cc6c9d66213d37",
|
||||||
|
"compileType": "miniprogram",
|
||||||
|
"libVersion": "3.8.3",
|
||||||
|
"packOptions": {
|
||||||
|
"ignore": [],
|
||||||
|
"include": []
|
||||||
|
},
|
||||||
|
"setting": {
|
||||||
|
"coverView": true,
|
||||||
|
"es6": true,
|
||||||
|
"postcss": true,
|
||||||
|
"minified": true,
|
||||||
|
"enhance": true,
|
||||||
|
"showShadowRootInWxmlPanel": true,
|
||||||
|
"packNpmRelationList": [],
|
||||||
|
"babelSetting": {
|
||||||
|
"ignore": [],
|
||||||
|
"disablePlugins": [],
|
||||||
|
"outputPath": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"condition": {},
|
||||||
|
"editorSetting": {
|
||||||
|
"tabIndent": "insertSpaces",
|
||||||
|
"tabSize": 2
|
||||||
|
}
|
||||||
|
}
|
||||||
7
project.private.config.json
Normal file
7
project.private.config.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
|
||||||
|
"projectname": "uniapp-ZHSQ",
|
||||||
|
"setting": {
|
||||||
|
"compileHotReLoad": true
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
{"version":3,"sources":["uni-app:///main.js"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":";;;;;;;;;;;;;AAAA;AAGA;AACA;AAHA;AACAA,EAAE,CAACC,iCAAiC,GAAGC,mBAAmB;AAG1DC,UAAU,CAACC,cAAI,CAAC,C","file":"kitchen/index.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './kitchen/index.vue'\ncreatePage(Page)"],"sourceRoot":""}
|
|
||||||
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
{"version":3,"sources":["uni-app:///main.js"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":";;;;;;;;;;;;;AAAA;AAGA;AACA;AAHA;AACAA,EAAE,CAACC,iCAAiC,GAAGC,mBAAmB;AAG1DC,UAAU,CAACC,gBAAI,CAAC,C","file":"kitchen/kitchen.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './kitchen/kitchen.vue'\ncreatePage(Page)"],"sourceRoot":""}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
{"version":3,"sources":["uni-app:///main.js"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":";;;;;;;;;;;;;AAAA;AAGA;AACA;AAHA;AACAA,EAAE,CAACC,iCAAiC,GAAGC,mBAAmB;AAG1DC,UAAU,CAACC,cAAI,CAAC,C","file":"kitchen/kitchen/index.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './kitchen/kitchen/index.vue'\ncreatePage(Page)"],"sourceRoot":""}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
{"version":3,"sources":["uni-app:///main.js"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":";;;;;;;;;;;;;AAAA;AAGA;AACA;AAHA;AACAA,EAAE,CAACC,iCAAiC,GAAGC,mBAAmB;AAG1DC,UAAU,CAACC,cAAI,CAAC,C","file":"kitchen/kitchen/index/index.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './kitchen/kitchen/index/index.vue'\ncreatePage(Page)"],"sourceRoot":""}
|
|
||||||
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
{"version":3,"sources":["uni-app:///main.js"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":";;;;;;;;;;;;;AAAA;AAGA;AACA;AAHA;AACAA,EAAE,CAACC,iCAAiC,GAAGC,mBAAmB;AAG1DC,UAAU,CAACC,cAAI,CAAC,C","file":"reservation/index.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './reservation/index.vue'\ncreatePage(Page)"],"sourceRoot":""}
|
|
||||||
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
{"version":3,"sources":["uni-app:///main.js",null,"webpack:///D:/projection/Hbuilder/uniapp-ZHSQ/reservation/index/index/index.vue?fdd0","webpack:///D:/projection/Hbuilder/uniapp-ZHSQ/reservation/index/index/index.vue?816f","webpack:///D:/projection/Hbuilder/uniapp-ZHSQ/reservation/index/index/index.vue?b627","uni-app:///kitchen/kitchen/index/index.vue"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page","data","methods"],"mappings":";;;;;;;;;;;;;AAAA;AAGA;AACA;AAHA;AACAA,EAAE,CAACC,iCAAiC,GAAGC,mBAAmB;AAG1DC,UAAU,CAACC,cAAI,CAAC,C;;;;;;;;;;;;;ACLhB;AAAA;AAAA;AAAA;AAAA;AAAkH;AAClH;AACyD;AACL;;;AAGpD;AAC8K;AAC9K,gBAAgB,6KAAU;AAC1B,EAAE,2EAAM;AACR,EAAE,gFAAM;AACR,EAAE,yFAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,oFAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACtBf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAAypB,CAAgB,+mBAAG,EAAC,C;;;;;;;;;;;;;;;;;;;;;;;;eCO7qB;EACAC;IACA,QAEA;EACA;EACAC,UAEA;AACA;AAAA,2B","file":"reservation/index/index/index.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './reservation/index/index/index.vue'\ncreatePage(Page)","import { render, staticRenderFns, recyclableRender, components } from \"./index.vue?vue&type=template&id=bf8d3a12&\"\nvar renderjs\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../下载目录/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"reservation/index/index/index.vue\"\nexport default component.exports","export * from \"-!../../../../../../下载目录/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../下载目录/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--17-0!../../../../../../下载目录/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!../../../../../../下载目录/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../下载目录/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../下载目录/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./index.vue?vue&type=template&id=bf8d3a12&\"","var components\nvar render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!../../../../../../下载目录/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../../下载目录/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--13-1!../../../../../../下载目录/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../下载目录/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../下载目录/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../下载目录/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../../下载目录/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--13-1!../../../../../../下载目录/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../下载目录/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../下载目录/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./index.vue?vue&type=script&lang=js&\"","<template>\n\t<view>\n\t\t\n\t</view>\n</template>\n\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\t\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\t\n\t\t}\n\t}\n</script>\n\n<style>\n\n</style>\n"],"sourceRoot":""}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
{"version":3,"sources":["uni-app:///main.js"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":";;;;;;;;;;;;;AAAA;AAGA;AACA;AAHA;AACAA,EAAE,CAACC,iCAAiC,GAAGC,mBAAmB;AAG1DC,UAAU,CAACC,aAAI,CAAC,C","file":"reservation/page1/page1.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './reservation/page1/page1.vue'\ncreatePage(Page)"],"sourceRoot":""}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
{"version":3,"sources":["uni-app:///main.js"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":";;;;;;;;;;;;;AAAA;AAGA;AACA;AAHA;AACAA,EAAE,CAACC,iCAAiC,GAAGC,mBAAmB;AAG1DC,UAAU,CAACC,oBAAI,CAAC,C","file":"reservation/reservation.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './reservation/reservation.vue'\ncreatePage(Page)"],"sourceRoot":""}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
{"version":3,"sources":["uni-app:///main.js"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":";;;;;;;;;;;;;AAAA;AAGA;AACA;AAHA;AACAA,EAAE,CAACC,iCAAiC,GAAGC,mBAAmB;AAG1DC,UAAU,CAACC,cAAI,CAAC,C","file":"reservation/reservation/index.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './reservation/reservation/index.vue'\ncreatePage(Page)"],"sourceRoot":""}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
{"version":3,"sources":["uni-app:///main.js"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":";;;;;;;;;;;;;AAAA;AAGA;AACA;AAHA;AACAA,EAAE,CAACC,iCAAiC,GAAGC,mBAAmB;AAG1DC,UAAU,CAACC,cAAI,CAAC,C","file":"subPackages/kitchen/index/index.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './subPackages/kitchen/index/index.vue'\ncreatePage(Page)"],"sourceRoot":""}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
{"version":3,"sources":["uni-app:///main.js"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":";;;;;;;;;;;;;AAAA;AAGA;AACA;AAHA;AACAA,EAAE,CAACC,iCAAiC,GAAGC,mBAAmB;AAG1DC,UAAU,CAACC,cAAI,CAAC,C","file":"subPackages/reservation/index/index.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './subPackages/reservation/index/index.vue'\ncreatePage(Page)"],"sourceRoot":""}
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
31
unpackage/dist/dev/mp-weixin/app.json
vendored
31
unpackage/dist/dev/mp-weixin/app.json
vendored
@ -2,8 +2,9 @@
|
|||||||
"pages": [
|
"pages": [
|
||||||
"pages/index/index",
|
"pages/index/index",
|
||||||
"pages/login/login",
|
"pages/login/login",
|
||||||
|
"pages/shopcity/shopcity",
|
||||||
"pages/webview/webview",
|
"pages/webview/webview",
|
||||||
"pages/shopcity/shopcity"
|
"pages/user/index"
|
||||||
],
|
],
|
||||||
"subPackages": [
|
"subPackages": [
|
||||||
{
|
{
|
||||||
@ -24,7 +25,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"root": "community",
|
"root": "packages/community",
|
||||||
"pages": [
|
"pages": [
|
||||||
"index/index",
|
"index/index",
|
||||||
"communityDetail/index",
|
"communityDetail/index",
|
||||||
@ -36,7 +37,8 @@
|
|||||||
"repairList/index",
|
"repairList/index",
|
||||||
"repairDetail/index",
|
"repairDetail/index",
|
||||||
"chooseMsg/index",
|
"chooseMsg/index",
|
||||||
"addCar/index"
|
"addCar/index",
|
||||||
|
"ownerList/index"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -45,6 +47,29 @@
|
|||||||
"index/index",
|
"index/index",
|
||||||
"list/index"
|
"list/index"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"root": "packages/user",
|
||||||
|
"pages": [
|
||||||
|
"index/index",
|
||||||
|
"uploadAvatar/index",
|
||||||
|
"resetPwd/index",
|
||||||
|
"points/index",
|
||||||
|
"pointsSign/index",
|
||||||
|
"pointsRule/index",
|
||||||
|
"marketing/index",
|
||||||
|
"share/index"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"root": "packages/communityService",
|
||||||
|
"pages": [
|
||||||
|
"index/index",
|
||||||
|
"shopDetail/index",
|
||||||
|
"serviceMore/index",
|
||||||
|
"reservation/index",
|
||||||
|
"reservationApply/index"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"window": {
|
"window": {
|
||||||
|
|||||||
@ -286,4 +286,8 @@ image {
|
|||||||
height: 20rpx;
|
height: 20rpx;
|
||||||
background: #F9F9F9;
|
background: #F9F9F9;
|
||||||
}
|
}
|
||||||
|
page{
|
||||||
|
font-size: 28rpx;
|
||||||
|
padding-bottom: 120rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
1110
unpackage/dist/dev/mp-weixin/common/vendor.js
vendored
1110
unpackage/dist/dev/mp-weixin/common/vendor.js
vendored
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user