不显示儿童测量
|
|
@ -0,0 +1,473 @@
|
||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<view class="content weightPages">
|
||||||
|
<view class="title" v-if="isConnection == 0">连接中,请稍后</view>
|
||||||
|
<view class="title" v-if="isConnection == 1">连接成功,请开始测量</view>
|
||||||
|
<view class="title" v-if="isConnection == 2" @click="openBluetoothAdapter">连接失败,点击重新连接</view>
|
||||||
|
<view class="text">{{text}}</view>
|
||||||
|
<view class="text">{{textH}}</view>
|
||||||
|
<view class="image">
|
||||||
|
<image src="/BLEPages/static/Hd01bt01.gif" v-if="type == 1"></image>
|
||||||
|
<image src="/BLEPages/static/Hd01bt02.gif" v-if="type == 2"></image>
|
||||||
|
</view>
|
||||||
|
<view class="tips">
|
||||||
|
<text>提示:</text>
|
||||||
|
<text>1.请确定设备是开机状态</text>
|
||||||
|
<text>2.请确定手机蓝牙、位置信息已打开</text>
|
||||||
|
<text>3.ios系统需打开设置—>应用—>微信里的蓝牙权限</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
mapState
|
||||||
|
} from "vuex";
|
||||||
|
var myTime;
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
text: "",
|
||||||
|
textH: "",
|
||||||
|
height: "",
|
||||||
|
weight: "",
|
||||||
|
imp: 0,
|
||||||
|
type: 1,
|
||||||
|
uuid1: "",
|
||||||
|
uuid2: "",
|
||||||
|
uuid3: "",
|
||||||
|
macAddr: "",
|
||||||
|
deviceId: "",
|
||||||
|
serviceId: "",
|
||||||
|
type30: false,
|
||||||
|
Unload: false,
|
||||||
|
isConnection: 0, //是否连接成功
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState(["user", "isConnected", "isBluetoothTyle", "appTheme"]),
|
||||||
|
info() {
|
||||||
|
return this.user
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onUnload: function() {
|
||||||
|
let that = this
|
||||||
|
if (!that.Unload) {
|
||||||
|
that.stopBluetoothDevicesDiscovery() //取消蓝牙搜索
|
||||||
|
clearTimeout(myTime);
|
||||||
|
that.closeBLEConnection()
|
||||||
|
that.closeBluetoothAdapter()
|
||||||
|
uni.switchTab({
|
||||||
|
url: "/pages/index/index"
|
||||||
|
})
|
||||||
|
console.log("返回首页")
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad(options) {
|
||||||
|
let that = this
|
||||||
|
// 导航栏颜色
|
||||||
|
uni.setNavigationBarColor({
|
||||||
|
frontColor: '#ffffff',
|
||||||
|
backgroundColor: this.appTheme,
|
||||||
|
})
|
||||||
|
//
|
||||||
|
that.text = ""
|
||||||
|
that.textH = ""
|
||||||
|
that.imp = 0
|
||||||
|
if (options && options.deviceId) {
|
||||||
|
that.deviceId = options.deviceId
|
||||||
|
that.closeBLEConnection()
|
||||||
|
that.closeBluetoothAdapter()
|
||||||
|
that.openBluetoothAdapter()
|
||||||
|
}
|
||||||
|
|
||||||
|
that.onBLEConnectionStateChange()
|
||||||
|
uni.onBluetoothAdapterStateChange(function(res) {
|
||||||
|
that.$store.commit("changeBluetooth", res.available);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
isConnected: function() {
|
||||||
|
let that = this
|
||||||
|
if (!that.isConnected) {
|
||||||
|
that.handleBack()
|
||||||
|
that.isConnection = 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
isBluetoothTyle: function() {
|
||||||
|
let that = this
|
||||||
|
if (!that.isBluetoothTyle) {
|
||||||
|
that.handleBack()
|
||||||
|
that.isConnection = 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 初始化蓝牙
|
||||||
|
openBluetoothAdapter() {
|
||||||
|
let that = this
|
||||||
|
that.type = 1
|
||||||
|
that.text = ""
|
||||||
|
that.textH = ""
|
||||||
|
uni.openBluetoothAdapter({
|
||||||
|
success: e => {
|
||||||
|
that.isConnection = 0
|
||||||
|
that.startBluetoothDeviceDiscovery()
|
||||||
|
},
|
||||||
|
fail: e => {
|
||||||
|
that.isConnection = 2
|
||||||
|
that.$tools.msg("请确定设备是开机状态、手机蓝牙权限已打开!")
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 开始搜寻附近的蓝牙外围设备
|
||||||
|
startBluetoothDeviceDiscovery() {
|
||||||
|
let that = this
|
||||||
|
uni.startBluetoothDevicesDiscovery({
|
||||||
|
allowDuplicatesKey: false,
|
||||||
|
interval: 500, //上报设备的间隔
|
||||||
|
services: [
|
||||||
|
"FFE0",
|
||||||
|
],
|
||||||
|
success: res => {
|
||||||
|
that.isConnection = 0
|
||||||
|
that.onBluetoothDeviceFound();
|
||||||
|
},
|
||||||
|
fail: res => {
|
||||||
|
that.isConnection = 2
|
||||||
|
that.$tools.msg("请确定设备是开机状态、手机蓝牙权限已打开!")
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 发现外围设备
|
||||||
|
*/
|
||||||
|
onBluetoothDeviceFound() {
|
||||||
|
var that = this;
|
||||||
|
that.isConnection = 0
|
||||||
|
uni.onBluetoothDeviceFound(res => {
|
||||||
|
res.devices.forEach(device => {
|
||||||
|
if (!device.name && !device.localName) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (device.name.indexOf('AiLink_') != -1 || (device.localName && device.localName
|
||||||
|
.indexOf('AiLink_') != -1)) {
|
||||||
|
clearTimeout(myTime);
|
||||||
|
let buff = device.advertisData.slice(-6)
|
||||||
|
device.mac = new Uint8Array(buff) // 保存广播数据中的mac地址,这是由于iOS不直接返回mac地址
|
||||||
|
let tempMac = Array.from(device.mac)
|
||||||
|
tempMac.reverse()
|
||||||
|
device.macAddr = that.$tools.ab2hex(tempMac, ':').toUpperCase()
|
||||||
|
if (device.deviceId.indexOf(that.deviceId) != -1 || device.macAddr.indexOf(that
|
||||||
|
.deviceId) != -1) {
|
||||||
|
that.stopBluetoothDevicesDiscovery()
|
||||||
|
that.macAddr = device.macAddr
|
||||||
|
that.deviceId = device.deviceId;
|
||||||
|
that.createBLEConnection()
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
that.handleMyTime()
|
||||||
|
},
|
||||||
|
handleMyTime() {
|
||||||
|
var that = this;
|
||||||
|
myTime = setTimeout(function() {
|
||||||
|
if (!that.macAddr) {
|
||||||
|
clearTimeout(myTime);
|
||||||
|
that.Unload = true
|
||||||
|
that.isConnection = 2
|
||||||
|
that.closeBLEConnection()
|
||||||
|
that.closeBluetoothAdapter()
|
||||||
|
}
|
||||||
|
}, 20000);
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 停止搜索蓝牙设备
|
||||||
|
*/
|
||||||
|
stopBluetoothDevicesDiscovery() {
|
||||||
|
uni.stopBluetoothDevicesDiscovery({
|
||||||
|
success: e => {
|
||||||
|
console.log("停止搜索蓝牙设备", e)
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 监听蓝牙连接状态
|
||||||
|
onBLEConnectionStateChange() {
|
||||||
|
let that = this
|
||||||
|
uni.onBLEConnectionStateChange(function(res) {
|
||||||
|
console.log("监听蓝牙连接状态", res.connected)
|
||||||
|
if (!res.connected) {
|
||||||
|
that.Unload = true
|
||||||
|
that.isConnection = 2
|
||||||
|
clearTimeout(myTime);
|
||||||
|
that.closeBLEConnection()
|
||||||
|
that.closeBluetoothAdapter()
|
||||||
|
}
|
||||||
|
that.$store.commit("changeConnected", res.connected);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 连接蓝牙
|
||||||
|
createBLEConnection() {
|
||||||
|
let that = this;
|
||||||
|
uni.createBLEConnection({
|
||||||
|
deviceId: that.deviceId,
|
||||||
|
success: res => {
|
||||||
|
that.isConnection = 0
|
||||||
|
that.getBLEDeviceServices();
|
||||||
|
},
|
||||||
|
fail: res => {
|
||||||
|
that.isConnection = 2
|
||||||
|
console.log("设备连接失败,请重新连接", res);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 获取设备的UUID
|
||||||
|
*/
|
||||||
|
getBLEDeviceServices() {
|
||||||
|
let serviceList = [];
|
||||||
|
let that = this;
|
||||||
|
uni.getBLEDeviceServices({
|
||||||
|
deviceId: that.deviceId,
|
||||||
|
success: res => {
|
||||||
|
console.log("获取设备的UUID成功", res)
|
||||||
|
serviceList = res.services;
|
||||||
|
for (let i = 0; i < serviceList.length; i++) {
|
||||||
|
let service = serviceList[i];
|
||||||
|
if (service.uuid.indexOf("FFE0") != -1) {
|
||||||
|
that.isConnection = 1
|
||||||
|
that.serviceId = service.uuid;
|
||||||
|
that.getBLEDeviceCharacteristics();
|
||||||
|
console.log("设备的FFE0的serviceId: " + that.serviceId);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: res => {
|
||||||
|
console.log('获取设备的UUID失败:', res)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 获取指定服务的特征值
|
||||||
|
*/
|
||||||
|
getBLEDeviceCharacteristics() {
|
||||||
|
let characteristicsList = [];
|
||||||
|
let that = this;
|
||||||
|
uni.getBLEDeviceCharacteristics({
|
||||||
|
deviceId: that.deviceId,
|
||||||
|
serviceId: that.serviceId,
|
||||||
|
success: res => {
|
||||||
|
console.log("服务的特征值成功", res)
|
||||||
|
for (let i = 0; i < res.characteristics.length; i++) {
|
||||||
|
let item = res.characteristics[i];
|
||||||
|
if (item.uuid.indexOf('0000FFE1') != -1) {
|
||||||
|
that.uuid1 = item.uuid //下发数据
|
||||||
|
} else if (item.uuid.indexOf('0000FFE2') != -1) {
|
||||||
|
that.uuid2 = item.uuid //监听数据
|
||||||
|
} else if (item.uuid.indexOf('0000FFE3') != -1) {
|
||||||
|
that.uuid3 = item.uuid //写入设置
|
||||||
|
}
|
||||||
|
}
|
||||||
|
uni.notifyBLECharacteristicValueChange({
|
||||||
|
deviceId: that.deviceId,
|
||||||
|
serviceId: that.serviceId,
|
||||||
|
characteristicId: that.uuid2,
|
||||||
|
state: true,
|
||||||
|
})
|
||||||
|
uni.notifyBLECharacteristicValueChange({
|
||||||
|
deviceId: that.deviceId,
|
||||||
|
serviceId: that.serviceId,
|
||||||
|
characteristicId: that.uuid3,
|
||||||
|
state: true,
|
||||||
|
})
|
||||||
|
// that.sendData()
|
||||||
|
uni.onBLECharacteristicValueChange(function(res) {
|
||||||
|
let value = that.$tools.ab2hex(res.value, "");
|
||||||
|
let num = value.substring(18, 19)
|
||||||
|
let dw = value.substring(19, 20)
|
||||||
|
let type = value.substring(8, 10)
|
||||||
|
let typeInfo = value.substring(10, 12)
|
||||||
|
console.log("单位", value, dw)
|
||||||
|
if (type == "10") {
|
||||||
|
let data = parseInt(value.substring(13, 18), 16)
|
||||||
|
let dw1 = "kg"
|
||||||
|
let dw2 = "kg"
|
||||||
|
if (dw == "1") {
|
||||||
|
dw1 = "斤"
|
||||||
|
dw2 = "jin"
|
||||||
|
}
|
||||||
|
if (dw == "4") {
|
||||||
|
dw1 = "st:lb"
|
||||||
|
dw2 = "st"
|
||||||
|
data = 1 * data + 5
|
||||||
|
}
|
||||||
|
if (dw == "6") {
|
||||||
|
dw1 = "lb"
|
||||||
|
dw2 = "lb"
|
||||||
|
}
|
||||||
|
if (num == "1") {
|
||||||
|
data = parseInt(value.substring(13, 18), 16) / 10
|
||||||
|
}
|
||||||
|
if (num == "2") {
|
||||||
|
data = parseInt(value.substring(13, 18), 16) / 100
|
||||||
|
}
|
||||||
|
if (num == "3") {
|
||||||
|
data = parseInt(value.substring(13, 18), 16) / 1000
|
||||||
|
}
|
||||||
|
if (typeInfo == "01") {
|
||||||
|
that.text = "您的实时体重是:" + data + dw1
|
||||||
|
}
|
||||||
|
if (typeInfo == "02") {
|
||||||
|
that.text = "您的体重是:" + data + dw1
|
||||||
|
that.weight = data + dw2
|
||||||
|
console.log("稳定体重:", value, that.weight)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (type == "14") {
|
||||||
|
that.height = parseInt(value.substring(10, 14), 16) / 10
|
||||||
|
that.textH = "您的身高是:" + that.height + "cm"
|
||||||
|
that.type = 2
|
||||||
|
console.log("稳定身高:", that.height)
|
||||||
|
}
|
||||||
|
if (type == "11") {
|
||||||
|
if (typeInfo == "03" || typeInfo == "04") {
|
||||||
|
that.imp = parseInt(value.substring(17, 22), 16)
|
||||||
|
}
|
||||||
|
console.log("阻抗:", typeInfo, parseInt(value.substring(17, 22), 16))
|
||||||
|
}
|
||||||
|
if (type == "30") {
|
||||||
|
console.log("测量完成", that.weight, that.imp, that.height)
|
||||||
|
|
||||||
|
if (!that.type30) {
|
||||||
|
if (that.imp == 0) {
|
||||||
|
uni.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: "体脂测量失败,是否保存本次测量结果?",
|
||||||
|
cancelText: "放弃",
|
||||||
|
confirmText: "保存",
|
||||||
|
success(res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
that.imp = 0
|
||||||
|
that.handleGetMeasure()
|
||||||
|
} else {
|
||||||
|
console.log("放弃保存")
|
||||||
|
that.Unload = true
|
||||||
|
that.closeBLEConnection()
|
||||||
|
that.closeBluetoothAdapter()
|
||||||
|
uni.switchTab({
|
||||||
|
url: "/pages/index/index"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
that.handleGetMeasure()
|
||||||
|
}
|
||||||
|
that.type30 = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
fail: res => {
|
||||||
|
console.log('获取特征值失败:', JSON.stringify(res))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 身高体重体脂模式
|
||||||
|
sendData() {
|
||||||
|
let that = this
|
||||||
|
let j = Number(26 + 3 + 6 + 1).toString(16)
|
||||||
|
let str = "A9002603060100" + j.substr(j.length - 2, 2) + "9A"
|
||||||
|
let buf = new Uint8Array(str.match(/[\da-f]{2}/gi).map(function(h) {
|
||||||
|
return parseInt(h, 16)
|
||||||
|
}))
|
||||||
|
uni.writeBLECharacteristicValue({
|
||||||
|
deviceId: that.deviceId,
|
||||||
|
serviceId: that.serviceId,
|
||||||
|
characteristicId: that.uuid1,
|
||||||
|
value: buf.buffer,
|
||||||
|
success: res => {
|
||||||
|
console.log('下发指令成功', res.errMsg)
|
||||||
|
},
|
||||||
|
fail: res => {
|
||||||
|
console.log("下发指令失败", res);
|
||||||
|
},
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 保存测量结果
|
||||||
|
handleGetMeasure() {
|
||||||
|
let that = this
|
||||||
|
that.$model.getmeasure({
|
||||||
|
weight: that.weight,
|
||||||
|
imp: that.imp,
|
||||||
|
ecode: that.macAddr,
|
||||||
|
height: that.height,
|
||||||
|
familyid: that.info.familyid,
|
||||||
|
}).then(res => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
that.$store.dispatch("getUserInfo", {
|
||||||
|
familyid: that.info.familyid,
|
||||||
|
});
|
||||||
|
that.$store.dispatch("getResult", {
|
||||||
|
birthday: that.info.birthday,
|
||||||
|
familyid: that.info.familyid,
|
||||||
|
height: that.height,
|
||||||
|
sex: that.info.sex,
|
||||||
|
});
|
||||||
|
that.$tools.msg("测量成功")
|
||||||
|
} else {
|
||||||
|
console.log("测量失败", res.message)
|
||||||
|
that.$tools.msg(res.message)
|
||||||
|
}
|
||||||
|
that.Unload = true
|
||||||
|
setTimeout(function() {
|
||||||
|
that.closeBLEConnection()
|
||||||
|
that.closeBluetoothAdapter()
|
||||||
|
uni.switchTab({
|
||||||
|
url: "/pages/index/index"
|
||||||
|
})
|
||||||
|
}, 200)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleBack(ind) {
|
||||||
|
let that = this
|
||||||
|
that.text = ""
|
||||||
|
that.textH = ""
|
||||||
|
that.Unload = true
|
||||||
|
that.stopBluetoothDevicesDiscovery() //取消蓝牙搜索
|
||||||
|
that.closeBLEConnection()
|
||||||
|
that.closeBluetoothAdapter()
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 断开蓝牙模块
|
||||||
|
*/
|
||||||
|
closeBluetoothAdapter() {
|
||||||
|
let that = this;
|
||||||
|
uni.closeBluetoothAdapter({
|
||||||
|
success: res => {
|
||||||
|
console.log('蓝牙模块关闭成功');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 断开蓝牙连接
|
||||||
|
*/
|
||||||
|
closeBLEConnection() {
|
||||||
|
var that = this;
|
||||||
|
uni.closeBLEConnection({
|
||||||
|
deviceId: that.deviceId,
|
||||||
|
success: res => {
|
||||||
|
console.log('断开蓝牙连接成功');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
</style>
|
||||||
|
|
@ -177,8 +177,7 @@
|
||||||
if (!device.name && !device.localName) {
|
if (!device.name && !device.localName) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (device.name.indexOf('ELS') != -1 || (device.localName && device.localName
|
if (device.name.indexOf('ELS') != -1 || (device.localName && device.localName.indexOf('PC') != -1)) {
|
||||||
.indexOf('PC') != -1)) {
|
|
||||||
clearTimeout(myTime);
|
clearTimeout(myTime);
|
||||||
let buff = device.advertisData.slice(-6)
|
let buff = device.advertisData.slice(-6)
|
||||||
device.mac = new Uint8Array(buff) // 保存广播数据中的mac地址,这是由于iOS不直接返回mac地址
|
device.mac = new Uint8Array(buff) // 保存广播数据中的mac地址,这是由于iOS不直接返回mac地址
|
||||||
|
|
|
||||||
|
|
@ -165,10 +165,19 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
|
||||||
icon {
|
image,icon {
|
||||||
font-size: 100px;
|
font-size: 100px;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
}
|
}
|
||||||
|
text{
|
||||||
|
width: 100%;
|
||||||
|
color: #666;
|
||||||
|
text-align: center;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.endtext {
|
.endtext {
|
||||||
|
|
@ -700,7 +709,7 @@
|
||||||
.blockC {
|
.blockC {
|
||||||
clear: both;
|
clear: both;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 250px;
|
height: 285px;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,363 +1,371 @@
|
||||||
@font-face {
|
/* @font-face {
|
||||||
font-family: 'iconfont'; /* Project id 2887906 */
|
font-family: 'iconfont'; /* Project id 2887906 */
|
||||||
src: url('https://at.alicdn.com/t/font_2887906_wl80j95s0c.woff2?t=1648878564422') format('woff2'),
|
/*src: url('https://at.alicdn.com/t/font_2887906_wl80j95s0c.woff2?t=1648878564422') format('woff2'),
|
||||||
url('https://at.alicdn.com/t/font_2887906_wl80j95s0c.woff?t=1648878564422') format('woff'),
|
url('https://at.alicdn.com/t/font_2887906_wl80j95s0c.woff?t=1648878564422') format('woff'),
|
||||||
url('https://at.alicdn.com/t/font_2887906_wl80j95s0c.ttf?t=1648878564422') format('truetype');
|
url('https://at.alicdn.com/t/font_2887906_wl80j95s0c.ttf?t=1648878564422') format('truetype');
|
||||||
|
} */
|
||||||
|
|
||||||
|
/* 在线链接服务仅供平台体验和调试使用,平台不承诺服务的稳定性,企业客户需下载字体包自行发布使用并做好备份。 */
|
||||||
|
@font-face {
|
||||||
|
font-family: 'iconfont';
|
||||||
|
/* Project id 4209383 */
|
||||||
|
src: url('https://at.alicdn.com/t/c/font_4209383_trk0ap2c0n.woff2?t=1692064993104') format('woff2'),
|
||||||
|
url('https://at.alicdn.com/t/c/font_4209383_trk0ap2c0n.woff?t=1692064993104') format('woff'),
|
||||||
|
url('https://at.alicdn.com/t/c/font_4209383_trk0ap2c0n.ttf?t=1692064993104') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
.iconfont {
|
.iconfont {
|
||||||
font-family: "iconfont" !important;
|
font-family: "iconfont" !important;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
-webkit-font-smoothing: antialiased;
|
-webkit-font-smoothing: antialiased;
|
||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-biaozhunhua:before {
|
.icon-biaozhunhua:before {
|
||||||
content: "\e60b";
|
content: "\e60b";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-shejiguifan:before {
|
.icon-shejiguifan:before {
|
||||||
content: "\e640";
|
content: "\e640";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-tizhongcheng:before {
|
.icon-tizhongcheng:before {
|
||||||
content: "\e63f";
|
content: "\e63f";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-baogao1:before {
|
.icon-baogao1:before {
|
||||||
content: "\e620";
|
content: "\e620";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-tizhong1:before {
|
.icon-tizhong1:before {
|
||||||
content: "\e616";
|
content: "\e616";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-sharpicons_checklist:before {
|
.icon-sharpicons_checklist:before {
|
||||||
content: "\e804";
|
content: "\e804";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-hengxian:before {
|
.icon-hengxian:before {
|
||||||
content: "\e657";
|
content: "\e657";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-lbm:before {
|
.icon-lbm:before {
|
||||||
content: "\e6b7";
|
content: "\e6b7";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-fatlevel:before {
|
.icon-fatlevel:before {
|
||||||
content: "\e63d";
|
content: "\e63d";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-fat_r:before {
|
.icon-fat_r:before {
|
||||||
content: "\e62d";
|
content: "\e62d";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-fat_w:before {
|
.icon-fat_w:before {
|
||||||
content: "\e78e";
|
content: "\e78e";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-bone:before {
|
.icon-bone:before {
|
||||||
content: "\e610";
|
content: "\e610";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-kcal:before {
|
.icon-kcal:before {
|
||||||
content: "\e60c";
|
content: "\e60c";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-visceral:before {
|
.icon-visceral:before {
|
||||||
content: "\e60d";
|
content: "\e60d";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-muscle:before {
|
.icon-muscle:before {
|
||||||
content: "\e60e";
|
content: "\e60e";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-body:before {
|
.icon-body:before {
|
||||||
content: "\e638";
|
content: "\e638";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-water:before {
|
.icon-water:before {
|
||||||
content: "\e651";
|
content: "\e651";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-muscleval:before {
|
.icon-muscleval:before {
|
||||||
content: "\e949";
|
content: "\e949";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-protein:before {
|
.icon-protein:before {
|
||||||
content: "\e94a";
|
content: "\e94a";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-proteinval:before {
|
.icon-proteinval:before {
|
||||||
content: "\e60f";
|
content: "\e60f";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-bodyage:before {
|
.icon-bodyage:before {
|
||||||
content: "\e6b2";
|
content: "\e6b2";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-height1:before {
|
.icon-height1:before {
|
||||||
content: "\e6eb";
|
content: "\e6eb";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-shang:before {
|
.icon-shang:before {
|
||||||
content: "\e68a";
|
content: "\e68a";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-xia:before {
|
.icon-xia:before {
|
||||||
content: "\e798";
|
content: "\e798";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-sfr:before {
|
.icon-sfr:before {
|
||||||
content: "\e617";
|
content: "\e617";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-yisheng3:before {
|
.icon-yisheng3:before {
|
||||||
content: "\e6a3";
|
content: "\e6a3";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-yisheng_1:before {
|
.icon-yisheng_1:before {
|
||||||
content: "\e633";
|
content: "\e633";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-switch-ON-copy-copy:before {
|
.icon-switch-ON-copy-copy:before {
|
||||||
content: "\fc23";
|
content: "\fc23";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-switch-ON-copy-copy1:before {
|
.icon-switch-ON-copy-copy1:before {
|
||||||
content: "\fc25";
|
content: "\fc25";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-shuzhuangtu:before {
|
.icon-shuzhuangtu:before {
|
||||||
content: "\e604";
|
content: "\e604";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-jilu:before {
|
.icon-jilu:before {
|
||||||
content: "\e69e";
|
content: "\e69e";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-lishixiao:before {
|
.icon-lishixiao:before {
|
||||||
content: "\e8bd";
|
content: "\e8bd";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-jiantou_xiangxia:before {
|
.icon-jiantou_xiangxia:before {
|
||||||
content: "\eb0a";
|
content: "\eb0a";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-jiantou_xiangshang:before {
|
.icon-jiantou_xiangshang:before {
|
||||||
content: "\eb0b";
|
content: "\eb0b";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-tizhong:before {
|
.icon-tizhong:before {
|
||||||
content: "\e682";
|
content: "\e682";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-jiaoxuepinggu-01:before {
|
.icon-jiaoxuepinggu-01:before {
|
||||||
content: "\e63b";
|
content: "\e63b";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-qiehuan1:before {
|
.icon-qiehuan1:before {
|
||||||
content: "\e7d7";
|
content: "\e7d7";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-head:before {
|
.icon-head:before {
|
||||||
content: "\e8d1";
|
content: "\e8d1";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-quxiao:before {
|
.icon-quxiao:before {
|
||||||
content: "\e664";
|
content: "\e664";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-fenxiang:before {
|
.icon-fenxiang:before {
|
||||||
content: "\e60a";
|
content: "\e60a";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-touxiang:before {
|
.icon-touxiang:before {
|
||||||
content: "\e61f";
|
content: "\e61f";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-pingtai:before {
|
.icon-pingtai:before {
|
||||||
content: "\f4ec";
|
content: "\f4ec";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-dianhuatianchong:before {
|
.icon-dianhuatianchong:before {
|
||||||
content: "\e678";
|
content: "\e678";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-xinxi:before {
|
.icon-xinxi:before {
|
||||||
content: "\e648";
|
content: "\e648";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-bianji3:before {
|
.icon-bianji3:before {
|
||||||
content: "\e62b";
|
content: "\e62b";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-gonglve:before {
|
.icon-gonglve:before {
|
||||||
content: "\f4e4";
|
content: "\f4e4";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-shoucang:before {
|
.icon-shoucang:before {
|
||||||
content: "\f4f8";
|
content: "\f4f8";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-pinglun:before {
|
.icon-pinglun:before {
|
||||||
content: "\f5b0";
|
content: "\f5b0";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-shijian-mianxing-0:before {
|
.icon-shijian-mianxing-0:before {
|
||||||
content: "\e6a2";
|
content: "\e6a2";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-hezuo:before {
|
.icon-hezuo:before {
|
||||||
content: "\f4e5";
|
content: "\f4e5";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-shouhou:before {
|
.icon-shouhou:before {
|
||||||
content: "\f5dd";
|
content: "\f5dd";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-pinglun-08:before {
|
.icon-pinglun-08:before {
|
||||||
content: "\fc1d";
|
content: "\fc1d";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-weixin:before {
|
.icon-weixin:before {
|
||||||
content: "\e637";
|
content: "\e637";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-QQ:before {
|
.icon-QQ:before {
|
||||||
content: "\e667";
|
content: "\e667";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-weight:before {
|
.icon-weight:before {
|
||||||
content: "\e62a";
|
content: "\e62a";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-height:before {
|
.icon-height:before {
|
||||||
content: "\e609";
|
content: "\e609";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-bmi:before {
|
.icon-bmi:before {
|
||||||
content: "\e785";
|
content: "\e785";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-shoucang1:before {
|
.icon-shoucang1:before {
|
||||||
content: "\e603";
|
content: "\e603";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-qiehuan:before {
|
.icon-qiehuan:before {
|
||||||
content: "\f4ee";
|
content: "\f4ee";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-yazi-copy:before {
|
.icon-yazi-copy:before {
|
||||||
content: "\f5b6";
|
content: "\f5b6";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-hear:before {
|
.icon-hear:before {
|
||||||
content: "\e8af";
|
content: "\e8af";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-zanwu:before {
|
.icon-zanwu:before {
|
||||||
content: "\e626";
|
content: "\e626";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-shuimian:before {
|
.icon-shuimian:before {
|
||||||
content: "\e959";
|
content: "\e959";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-wenjian-xinliweiji:before {
|
.icon-wenjian-xinliweiji:before {
|
||||||
content: "\e72d";
|
content: "\e72d";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-yundong:before {
|
.icon-yundong:before {
|
||||||
content: "\e810";
|
content: "\e810";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-yinshi2:before {
|
.icon-yinshi2:before {
|
||||||
content: "\e607";
|
content: "\e607";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-gerendingzhi:before {
|
.icon-gerendingzhi:before {
|
||||||
content: "\e605";
|
content: "\e605";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-top-chengchangquxian:before {
|
.icon-top-chengchangquxian:before {
|
||||||
content: "\e61e";
|
content: "\e61e";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-duibi2:before {
|
.icon-duibi2:before {
|
||||||
content: "\e6b8";
|
content: "\e6b8";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-tubiao--copy:before {
|
.icon-tubiao--copy:before {
|
||||||
content: "\ec58";
|
content: "\ec58";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-jilu1:before {
|
.icon-jilu1:before {
|
||||||
content: "\e686";
|
content: "\e686";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-xiangxia:before {
|
.icon-xiangxia:before {
|
||||||
content: "\e601";
|
content: "\e601";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-kongradio:before {
|
.icon-kongradio:before {
|
||||||
content: "\e602";
|
content: "\e602";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-radio:before {
|
.icon-radio:before {
|
||||||
content: "\e653";
|
content: "\e653";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-arrow-left:before {
|
.icon-arrow-left:before {
|
||||||
content: "\e685";
|
content: "\e685";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-arrow-down:before {
|
.icon-arrow-down:before {
|
||||||
content: "\e687";
|
content: "\e687";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-arrow-right:before {
|
.icon-arrow-right:before {
|
||||||
content: "\e688";
|
content: "\e688";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-tishi:before {
|
.icon-tishi:before {
|
||||||
content: "\e797";
|
content: "\e797";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-yazi:before {
|
.icon-yazi:before {
|
||||||
content: "\e612";
|
content: "\e612";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-shengao:before {
|
.icon-shengao:before {
|
||||||
content: "\e739";
|
content: "\e739";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-liangdu-:before {
|
.icon-liangdu-:before {
|
||||||
content: "\e606";
|
content: "\e606";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-aixin:before {
|
.icon-aixin:before {
|
||||||
content: "\f4cf";
|
content: "\f4cf";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-yqfqiehuan:before {
|
.icon-yqfqiehuan:before {
|
||||||
content: "\e61b";
|
content: "\e61b";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-female:before {
|
.icon-female:before {
|
||||||
content: "\e600";
|
content: "\e600";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-dangao:before {
|
.icon-dangao:before {
|
||||||
content: "\e608";
|
content: "\e608";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-quxian:before {
|
.icon-quxian:before {
|
||||||
content: "\e629";
|
content: "\e629";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-baogao:before {
|
.icon-baogao:before {
|
||||||
content: "\e630";
|
content: "\e630";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1,348 +1,353 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="container">
|
<view class="container">
|
||||||
<view class="slide-box" v-for="(item, index) in listData" :key="index">
|
<view class="slide-box" v-for="(item, index) in listData" :key="index">
|
||||||
<view class="slide-list" @touchstart="touchStart($event, index)" @touchend="touchEnd($event, index)"
|
<view class="slide-list" @touchstart="touchStart($event, index)" @touchend="touchEnd($event, index)"
|
||||||
@touchmove="touchMove($event, index)" @tap="recover(index)"
|
@touchmove="touchMove($event, index)" @tap="recover(index)"
|
||||||
:style="{ transform: 'translate3d(' + item.slide_x + 'px, 0, 0)' }">
|
:style="{ transform: 'translate3d(' + item.slide_x + 'px, 0, 0)' }">
|
||||||
<view class="now-message-info" hover-class="uni-item--hover" :style="{ width: windowWidth + 'px' }"
|
<view class="now-message-info" hover-class="uni-item--hover" :style="{ width: windowWidth + 'px' }"
|
||||||
@click="clickItemMethod(item)">
|
@click="clickItemMethod(item)">
|
||||||
<view class="list">
|
<view class="list">
|
||||||
<view class="item" :class="[type!=1?'leftChild':'']">
|
<view class="item" :class="[type!=1?'leftChild':'']">
|
||||||
<view class="time">
|
<view class="time">
|
||||||
<icon class="t-icon t-icon-shijian-mianxing-0"></icon>
|
<icon class="t-icon t-icon-shijian-mianxing-0"></icon>
|
||||||
<text>{{item.createtime}}</text>
|
<text>{{item.createtime}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view>{{item.weight}}<text>体重</text></view>
|
<view>{{item.weight}}<text>体重</text></view>
|
||||||
<view>{{item.bmi}}<text>BMI</text></view>
|
<view>{{item.bmi}}<text>BMI</text></view>
|
||||||
<view>{{item.fat_r}}<text>脂肪率</text></view>
|
<view>{{item.fat_r}}<text>脂肪率</text></view>
|
||||||
<icon class="iconfont icon-arrow-right"></icon>
|
<image src="../../static/arrow-right.png" class="iconfont"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="group-btn">
|
<view class="group-btn">
|
||||||
<view class="btn-div" v-for="(value, key) in button" :key="key" @click="clickMethod(item)"
|
<view class="btn-div" v-for="(value, key) in button" :key="key" @click="clickMethod(item)"
|
||||||
:style="{background: value.background}">
|
:style="{background: value.background}">
|
||||||
{{value.title}}
|
{{value.title}}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view style="clear:both"></view>
|
<view style="clear:both"></view>
|
||||||
</view>
|
</view>
|
||||||
<view class="list-item-border" v-if="border"></view>
|
<view class="list-item-border" v-if="border"></view>
|
||||||
</view>
|
</view>
|
||||||
<!-- <view class="endtext" v-if="!lastPage || page >= lastPage">—— 到底了,看看别的吧 ——</view> -->
|
<!-- <view class="endtext" v-if="!lastPage || page >= lastPage">—— 到底了,看看别的吧 ——</view> -->
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
/**
|
/**
|
||||||
* m-slide-list 滑动操作列表
|
* m-slide-list 滑动操作列表
|
||||||
* @description 滑动操作列表组件
|
* @description 滑动操作列表组件
|
||||||
* @tutorial https://ext.dcloud.net.cn/plugin?id=209
|
* @tutorial https://ext.dcloud.net.cn/plugin?id=209
|
||||||
* @property {Array} list 数据源,格式为:[{title: 'xxx', image:'xxx', surname: 'xxx',detail:'xxx', rightDetail: 'xxx', slide_x: 0},{title: 'xxx', image:'xxx', surname: 'xxx',detail:'xxx', rightDetail: 'xxx', slide_x: 0}]
|
* @property {Array} list 数据源,格式为:[{title: 'xxx', image:'xxx', surname: 'xxx',detail:'xxx', rightDetail: 'xxx', slide_x: 0},{title: 'xxx', image:'xxx', surname: 'xxx',detail:'xxx', rightDetail: 'xxx', slide_x: 0}]
|
||||||
* @property {Array} button 按钮数据源,格式为:[{title: 'xxx', background:'xxx'},{title: 'xxx', background:'xxx'}]
|
* @property {Array} button 按钮数据源,格式为:[{title: 'xxx', background:'xxx'},{title: 'xxx', background:'xxx'}]
|
||||||
* @property {Boolean} border 边框
|
* @property {Boolean} border 边框
|
||||||
*/
|
*/
|
||||||
export default {
|
export default {
|
||||||
name: 'mark-slide-list',
|
name: 'mark-slide-list',
|
||||||
props: {
|
props: {
|
||||||
list: { //数据list
|
list: { //数据list
|
||||||
type: Array,
|
type: Array,
|
||||||
default () {
|
default () {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
button: { //按钮数据list
|
button: { //按钮数据list
|
||||||
type: Array,
|
type: Array,
|
||||||
default () {
|
default () {
|
||||||
return [{
|
return [{
|
||||||
title: '删除',
|
title: '删除',
|
||||||
background: '#ff3b32'
|
background: '#ff3b32'
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
border: { //边框
|
border: { //边框
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
type: {
|
type: {
|
||||||
type: String,
|
type: String,
|
||||||
default: null
|
default: null
|
||||||
},
|
},
|
||||||
id: {
|
id: {
|
||||||
type: String,
|
type: String,
|
||||||
default: null
|
default: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
windowWidth() {
|
windowWidth() {
|
||||||
return uni.getSystemInfoSync().windowWidth;
|
return uni.getSystemInfoSync().windowWidth;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
listData: [],
|
listData: [],
|
||||||
start_slide_x: 0,
|
start_slide_x: 0,
|
||||||
btnWidth: 0,
|
btnWidth: 0,
|
||||||
startX: 0,
|
startX: 0,
|
||||||
LastX: 0,
|
LastX: 0,
|
||||||
startTime: 0,
|
startTime: 0,
|
||||||
itemIndex: 0,
|
itemIndex: 0,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.listData = this.clone(this.list)
|
this.listData = this.clone(this.list)
|
||||||
// this.getList(1)
|
// this.getList(1)
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
list: {
|
list: {
|
||||||
handler: function(val, oldval) {
|
handler: function(val, oldval) {
|
||||||
this.listData = this.clone(this.list)
|
this.listData = this.clone(this.list)
|
||||||
},
|
},
|
||||||
deep: true
|
deep: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
clone(data) {
|
clone(data) {
|
||||||
const type = typeof data
|
const type = typeof data
|
||||||
let obj;
|
let obj;
|
||||||
if (type === 'array') {
|
if (type === 'array') {
|
||||||
obj = [];
|
obj = [];
|
||||||
} else if (type === 'object') {
|
} else if (type === 'object') {
|
||||||
obj = {};
|
obj = {};
|
||||||
} else {
|
} else {
|
||||||
// 不再具有下一层次
|
// 不再具有下一层次
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
if (type === 'array') {
|
if (type === 'array') {
|
||||||
for (let i = 0, len = data.length; i < len; i++) {
|
for (let i = 0, len = data.length; i < len; i++) {
|
||||||
obj.push(this.clone(data[i]));
|
obj.push(this.clone(data[i]));
|
||||||
}
|
}
|
||||||
} else if (type === 'object') {
|
} else if (type === 'object') {
|
||||||
// 对原型上的方法也拷贝了....
|
// 对原型上的方法也拷贝了....
|
||||||
for (const key in data) {
|
for (const key in data) {
|
||||||
obj[key] = this.clone(data[key]);
|
obj[key] = this.clone(data[key]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return obj;
|
return obj;
|
||||||
},
|
},
|
||||||
|
|
||||||
// 滑动开始
|
// 滑动开始
|
||||||
touchStart(e, index) {
|
touchStart(e, index) {
|
||||||
if (this.itemIndex == index) {
|
if (this.itemIndex == index) {
|
||||||
this.itemIndex = index
|
this.itemIndex = index
|
||||||
}
|
}
|
||||||
//记录手指放上去的时间
|
//记录手指放上去的时间
|
||||||
this.startTime = e.timeStamp;
|
this.startTime = e.timeStamp;
|
||||||
//记录滑块的初始位置
|
//记录滑块的初始位置
|
||||||
this.start_slide_x = this.listData[index].slide_x;
|
this.start_slide_x = this.listData[index].slide_x;
|
||||||
// 按钮宽度
|
// 按钮宽度
|
||||||
//#ifdef MP-WEIXIN
|
//#ifdef MP-WEIXIN
|
||||||
uni.createSelectorQuery().in(this).selectAll('.group-btn').boundingClientRect(res => {
|
uni.createSelectorQuery().in(this).selectAll('.group-btn').boundingClientRect(res => {
|
||||||
if (res != null) {
|
if (res != null) {
|
||||||
this.btnWidth = res[index].width * -1;
|
this.btnWidth = res[index].width * -1;
|
||||||
}
|
}
|
||||||
}).exec();
|
}).exec();
|
||||||
//#endif
|
//#endif
|
||||||
//#ifdef H5 || APP-PLUS
|
//#ifdef H5 || APP-PLUS
|
||||||
uni.createSelectorQuery()
|
uni.createSelectorQuery()
|
||||||
.selectAll('.group-btn')
|
.selectAll('.group-btn')
|
||||||
.boundingClientRect()
|
.boundingClientRect()
|
||||||
.exec(res => {
|
.exec(res => {
|
||||||
if (res[0] != null) {
|
if (res[0] != null) {
|
||||||
this.btnWidth = res[0][index].width * -1;
|
this.btnWidth = res[0][index].width * -1;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
//#endif
|
//#endif
|
||||||
// 记录上一次开始时手指所处位置
|
// 记录上一次开始时手指所处位置
|
||||||
this.startX = e.touches[0].pageX;
|
this.startX = e.touches[0].pageX;
|
||||||
// 记录上一次手指位置
|
// 记录上一次手指位置
|
||||||
this.lastX = this.startX;
|
this.lastX = this.startX;
|
||||||
//初始化非当前滑动消息列的位置
|
//初始化非当前滑动消息列的位置
|
||||||
for (var i in this.listData) {
|
for (var i in this.listData) {
|
||||||
if (index != i) {
|
if (index != i) {
|
||||||
this.listData[i].slide_x = 0;
|
this.listData[i].slide_x = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 滑动中
|
// 滑动中
|
||||||
touchMove(e, index) {
|
touchMove(e, index) {
|
||||||
const endX = e.touches[0].pageX;
|
const endX = e.touches[0].pageX;
|
||||||
const distance = endX - this.lastX;
|
const distance = endX - this.lastX;
|
||||||
// 预测滑块所处位置
|
// 预测滑块所处位置
|
||||||
const duang = this.listData[index].slide_x + distance;
|
const duang = this.listData[index].slide_x + distance;
|
||||||
// 如果在可行区域内
|
// 如果在可行区域内
|
||||||
if (duang <= 0 && duang >= this.btnWidth) {
|
if (duang <= 0 && duang >= this.btnWidth) {
|
||||||
this.listData[index].slide_x = duang;
|
this.listData[index].slide_x = duang;
|
||||||
}
|
}
|
||||||
// 此处手指所处位置将成为下次手指移动时的上一次位置
|
// 此处手指所处位置将成为下次手指移动时的上一次位置
|
||||||
this.lastX = endX;
|
this.lastX = endX;
|
||||||
},
|
},
|
||||||
// 滑动结束
|
// 滑动结束
|
||||||
touchEnd(e, index) {
|
touchEnd(e, index) {
|
||||||
let distance = 10;
|
let distance = 10;
|
||||||
const endTime = e.timeStamp;
|
const endTime = e.timeStamp;
|
||||||
const x_end_distance = this.startX - this.lastX;
|
const x_end_distance = this.startX - this.lastX;
|
||||||
if (Math.abs(endTime - this.startTime) > 200) {
|
if (Math.abs(endTime - this.startTime) > 200) {
|
||||||
distance = this.btnWidth / -2;
|
distance = this.btnWidth / -2;
|
||||||
}
|
}
|
||||||
// 判断手指最终位置与手指开始位置的位置差距
|
// 判断手指最终位置与手指开始位置的位置差距
|
||||||
if (x_end_distance > distance) {
|
if (x_end_distance > distance) {
|
||||||
this.listData[index].slide_x = this.btnWidth;
|
this.listData[index].slide_x = this.btnWidth;
|
||||||
} else if (x_end_distance < distance * -1) {
|
} else if (x_end_distance < distance * -1) {
|
||||||
this.listData[index].slide_x = 0;
|
this.listData[index].slide_x = 0;
|
||||||
} else {
|
} else {
|
||||||
this.listData[index].slide_x = this.start_slide_x;
|
this.listData[index].slide_x = this.start_slide_x;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 点击回复原状
|
// 点击回复原状
|
||||||
recover(index) {
|
recover(index) {
|
||||||
this.listData[index].slide_x = 0;
|
this.listData[index].slide_x = 0;
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* 点击按钮触发事件
|
* 点击按钮触发事件
|
||||||
* @param {Object} item 列表数据
|
* @param {Object} item 列表数据
|
||||||
* @param {Object} buttonItem 按钮数据
|
* @param {Object} buttonItem 按钮数据
|
||||||
* @param {Object} index 列表数据key
|
* @param {Object} index 列表数据key
|
||||||
*/
|
*/
|
||||||
clickMethod(item) {
|
clickMethod(item) {
|
||||||
if (this.list.length == 1) {
|
if (this.list.length == 1) {
|
||||||
this.$tools.msg("只剩一条记录了,不可以删除!")
|
this.$tools.msg("只剩一条记录了,不可以删除!")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.$emit("changeDelete", item)
|
this.$emit("changeDelete", item)
|
||||||
},
|
},
|
||||||
// 详情
|
// 详情
|
||||||
clickItemMethod(item) {
|
clickItemMethod(item) {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: "/pageTwo/me/info?index=" + JSON.stringify(item)
|
url: "/pageTwo/me/info?index=" + JSON.stringify(item)
|
||||||
})
|
})
|
||||||
// this.$emit("click", item)
|
// this.$emit("click", item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.container {
|
.container {
|
||||||
.slide-box {
|
.slide-box {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
.list-item-border {
|
.list-item-border {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.slide-list {
|
.slide-list {
|
||||||
transition: all 100ms;
|
transition: all 100ms;
|
||||||
transition-timing-function: ease-out;
|
transition-timing-function: ease-out;
|
||||||
min-width: 200%;
|
min-width: 200%;
|
||||||
|
|
||||||
.now-message-info {
|
.now-message-info {
|
||||||
position: relative;
|
position: relative;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
clear: both;
|
clear: both;
|
||||||
padding: 0 30rpx;
|
padding: 0 30rpx;
|
||||||
background: #f7f7f7;
|
background: #f7f7f7;
|
||||||
float: left;
|
float: left;
|
||||||
|
|
||||||
.icon-image {
|
.icon-image {
|
||||||
border-radius: 10rpx;
|
border-radius: 10rpx;
|
||||||
width: 100rpx;
|
width: 100rpx;
|
||||||
height: 100rpx;
|
height: 100rpx;
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-circle {
|
.icon-circle {
|
||||||
background: #3396fb;
|
background: #3396fb;
|
||||||
border-radius: 100%;
|
border-radius: 100%;
|
||||||
width: 100rpx;
|
width: 100rpx;
|
||||||
height: 100rpx;
|
height: 100rpx;
|
||||||
line-height: 100rpx;
|
line-height: 100rpx;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.list-right {
|
.list-right {
|
||||||
float: left;
|
float: left;
|
||||||
margin-left: 25rpx;
|
margin-left: 25rpx;
|
||||||
margin-right: 30rpx;
|
margin-right: 30rpx;
|
||||||
|
|
||||||
.list-title {
|
.list-title {
|
||||||
width: 350rpx;
|
width: 350rpx;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
margin-bottom: 10rpx;
|
margin-bottom: 10rpx;
|
||||||
color: #333;
|
color: #333;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
-webkit-box-orient: vertical;
|
-webkit-box-orient: vertical;
|
||||||
-webkit-line-clamp: 1;
|
-webkit-line-clamp: 1;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.list-detail {
|
.list-detail {
|
||||||
width: 350rpx;
|
width: 350rpx;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #a9a9a9;
|
color: #a9a9a9;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
-webkit-box-orient: vertical;
|
-webkit-box-orient: vertical;
|
||||||
-webkit-line-clamp: 1;
|
-webkit-line-clamp: 1;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.list-right-1 {
|
.list-right-1 {
|
||||||
float: right;
|
float: right;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 30rpx;
|
right: 30rpx;
|
||||||
color: #a9a9a9;
|
color: #a9a9a9;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.group-btn {
|
.group-btn {
|
||||||
float: left;
|
float: left;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
min-width: 100rpx;
|
min-width: 100rpx;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-top: 6rpx;
|
margin-top: 6rpx;
|
||||||
|
|
||||||
.btn-div {
|
.btn-div {
|
||||||
height: 100rpx;
|
height: 100rpx;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 0 50rpx;
|
padding: 0 50rpx;
|
||||||
font-size: 34rpx;
|
font-size: 34rpx;
|
||||||
line-height: 100rpx;
|
line-height: 100rpx;
|
||||||
border-radius: 5px 0 0 5px;
|
border-radius: 5px 0 0 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.top {
|
.top {
|
||||||
background-color: #c4c7cd;
|
background-color: #c4c7cd;
|
||||||
}
|
}
|
||||||
|
|
||||||
.removeM {
|
.removeM {
|
||||||
background-color: #ff3b32;
|
background-color: #ff3b32;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.leftChild {
|
.leftChild {
|
||||||
view {
|
view {
|
||||||
width: 18%;
|
width: 18%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.time {
|
.time {
|
||||||
width: 32% !important;
|
width: 32% !important;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
|
||||||
|
.iconfont {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -1,441 +1,442 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="calendar-wrapper">
|
<view class="calendar-wrapper">
|
||||||
<view class="header">
|
<view class="header">
|
||||||
<view class="pre" @click="changeMonth('pre')">
|
<view class="pre" @click="changeMonth('pre')">
|
||||||
<icon class="iconfont icon-arrow-left"></icon>
|
<image src="../../static/arrow-left.png" class="iconfont"></image>
|
||||||
</view>
|
</view>
|
||||||
<view>{{y+'年'+formatNum(m)+'月'}}</view>
|
<view>{{y+'年'+formatNum(m)+'月'}}</view>
|
||||||
<view class="next" @click="changeMonth('next')">
|
<view class="next" @click="changeMonth('next')">
|
||||||
<icon class="iconfont icon-arrow-right"></icon>
|
<image src="../../static/arrow-right.png" class="iconfont"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="week">
|
<view class="week">
|
||||||
<view class="week-day" v-for="(item, index) in weekDay" :key="index">{{ item }}</view>
|
<view class="week-day" v-for="(item, index) in weekDay" :key="index">{{ item }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view :class="{ hide: !monthOpen }" class="content0" :style="{ height: height }">
|
<view :class="{ hide: !monthOpen }" class="content0" :style="{ height: height }">
|
||||||
<view :style="{ top: positionTop + 'rpx' }" class="days">
|
<view :style="{ top: positionTop + 'rpx' }" class="days">
|
||||||
<view class="item" v-for="(item, index) in dates" :key="index">
|
<view class="item" v-for="(item, index) in dates" :key="index">
|
||||||
<view class="day" @click="selectOne(item, $event)" :class="{
|
<view class="day" @click="selectOne(item, $event)" :class="{
|
||||||
choose: choose == `${item.year}-${item.month}-${item.date}`&&item.isCurM,
|
choose: choose == `${item.year}-${item.month}-${item.date}`&&item.isCurM,
|
||||||
nolm: !item.isCurM,
|
nolm: !item.isCurM,
|
||||||
today: isToday(item.year, item.month, item.date),
|
today: isToday(item.year, item.month, item.date),
|
||||||
isWorkDay: isWorkDay(item.year, item.month, item.date)
|
isWorkDay: isWorkDay(item.year, item.month, item.date)
|
||||||
}">
|
}">
|
||||||
{{ Number(item.date) }}
|
{{ Number(item.date) }}
|
||||||
</view>
|
</view>
|
||||||
<view class="markDay" v-if="isMarkDay(item.year, item.month, item.date)&&item.isCurM"></view>
|
<view class="markDay" v-if="isMarkDay(item.year, item.month, item.date)&&item.isCurM"></view>
|
||||||
<!-- <view class="today-text" v-if="isToday(item.year, item.month, item.date)">今</view> -->
|
<!-- <view class="today-text" v-if="isToday(item.year, item.month, item.date)">今</view> -->
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<image src="https://i.loli.net/2020/07/16/2MmZsucVTlRjSwK.png" mode="scaleToFill" v-if="collapsible"
|
<image src="https://i.loli.net/2020/07/16/2MmZsucVTlRjSwK.png" mode="scaleToFill" v-if="collapsible"
|
||||||
@click="toggle" class="weektoggle" :class="{ down: monthOpen }"></image>
|
@click="toggle" class="weektoggle" :class="{ down: monthOpen }"></image>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: 'ren-calendar',
|
name: 'ren-calendar',
|
||||||
props: {
|
props: {
|
||||||
// 星期几为第一天(0为星期日)
|
// 星期几为第一天(0为星期日)
|
||||||
weekstart: {
|
weekstart: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 0
|
default: 0
|
||||||
},
|
},
|
||||||
// 标记的日期
|
// 标记的日期
|
||||||
markDays: {
|
markDays: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: () => {
|
default: () => {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//是否展示月份切换按钮
|
//是否展示月份切换按钮
|
||||||
headerBar: {
|
headerBar: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
},
|
},
|
||||||
// 是否展开
|
// 是否展开
|
||||||
open: {
|
open: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
},
|
},
|
||||||
//是否可收缩
|
//是否可收缩
|
||||||
collapsible: {
|
collapsible: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
},
|
},
|
||||||
//未来日期是否不可点击
|
//未来日期是否不可点击
|
||||||
disabledAfter: {
|
disabledAfter: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
weektext: ['日', '一', '二', '三', '四', '五', '六'],
|
weektext: ['日', '一', '二', '三', '四', '五', '六'],
|
||||||
y: new Date().getFullYear(), // 年
|
y: new Date().getFullYear(), // 年
|
||||||
m: new Date().getMonth() + 1, // 月
|
m: new Date().getMonth() + 1, // 月
|
||||||
dates: [], // 当前月的日期数据
|
dates: [], // 当前月的日期数据
|
||||||
positionTop: 0,
|
positionTop: 0,
|
||||||
monthOpen: true,
|
monthOpen: true,
|
||||||
choose: '',
|
choose: '',
|
||||||
month: null,
|
month: null,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.dates = this.monthDay(this.y, this.m);
|
this.dates = this.monthDay(this.y, this.m);
|
||||||
!this.open && this.toggle();
|
!this.open && this.toggle();
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.y = new Date().getFullYear()
|
this.y = new Date().getFullYear()
|
||||||
this.m = new Date().getMonth() + 1
|
this.m = new Date().getMonth() + 1
|
||||||
this.month = this.$tools.getDate("m")
|
this.month = this.$tools.getDate("m")
|
||||||
this.choose = this.getToday().date;
|
this.choose = this.getToday().date;
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
// 顶部星期栏
|
// 顶部星期栏
|
||||||
weekDay() {
|
weekDay() {
|
||||||
return this.weektext.slice(this.weekstart).concat(this.weektext.slice(0, this.weekstart));
|
return this.weektext.slice(this.weekstart).concat(this.weektext.slice(0, this.weekstart));
|
||||||
},
|
},
|
||||||
height() {
|
height() {
|
||||||
return (this.dates.length / 7) * 80 + 'rpx';
|
return (this.dates.length / 7) * 80 + 'rpx';
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
formatNum(num) {
|
formatNum(num) {
|
||||||
let res = Number(num);
|
let res = Number(num);
|
||||||
return res < 10 ? '0' + res : res;
|
return res < 10 ? '0' + res : res;
|
||||||
},
|
},
|
||||||
getToday() {
|
getToday() {
|
||||||
let date = new Date();
|
let date = new Date();
|
||||||
let y = date.getFullYear();
|
let y = date.getFullYear();
|
||||||
let m = date.getMonth();
|
let m = date.getMonth();
|
||||||
let d = date.getDate();
|
let d = date.getDate();
|
||||||
let week = new Date().getDay();
|
let week = new Date().getDay();
|
||||||
let weekText = ['日', '一', '二', '三', '四', '五', '六'];
|
let weekText = ['日', '一', '二', '三', '四', '五', '六'];
|
||||||
let formatWeek = '星期' + weekText[week];
|
let formatWeek = '星期' + weekText[week];
|
||||||
let today = {
|
let today = {
|
||||||
date: y + '-' + this.formatNum(m + 1) + '-' + this.formatNum(d),
|
date: y + '-' + this.formatNum(m + 1) + '-' + this.formatNum(d),
|
||||||
week: formatWeek
|
week: formatWeek
|
||||||
};
|
};
|
||||||
return today;
|
return today;
|
||||||
},
|
},
|
||||||
// 获取当前月份数据
|
// 获取当前月份数据
|
||||||
monthDay(y, month) {
|
monthDay(y, month) {
|
||||||
let dates = [];
|
let dates = [];
|
||||||
let m = Number(month);
|
let m = Number(month);
|
||||||
let firstDayOfMonth = new Date(y, m - 1, 1).getDay(); // 当月第一天星期几
|
let firstDayOfMonth = new Date(y, m - 1, 1).getDay(); // 当月第一天星期几
|
||||||
let lastDateOfMonth = new Date(y, m, 0).getDate(); // 当月最后一天
|
let lastDateOfMonth = new Date(y, m, 0).getDate(); // 当月最后一天
|
||||||
let lastDayOfLastMonth = new Date(y, m - 1, 0).getDate(); // 上一月的最后一天
|
let lastDayOfLastMonth = new Date(y, m - 1, 0).getDate(); // 上一月的最后一天
|
||||||
let weekstart = this.weekstart == 7 ? 0 : this.weekstart;
|
let weekstart = this.weekstart == 7 ? 0 : this.weekstart;
|
||||||
let startDay = (() => {
|
let startDay = (() => {
|
||||||
// 周初有几天是上个月的
|
// 周初有几天是上个月的
|
||||||
if (firstDayOfMonth == weekstart) {
|
if (firstDayOfMonth == weekstart) {
|
||||||
return 0;
|
return 0;
|
||||||
} else if (firstDayOfMonth > weekstart) {
|
} else if (firstDayOfMonth > weekstart) {
|
||||||
return firstDayOfMonth - weekstart;
|
return firstDayOfMonth - weekstart;
|
||||||
} else {
|
} else {
|
||||||
return 7 - weekstart + firstDayOfMonth;
|
return 7 - weekstart + firstDayOfMonth;
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
let endDay = 7 - ((startDay + lastDateOfMonth) % 7); // 结束还有几天是下个月的
|
let endDay = 7 - ((startDay + lastDateOfMonth) % 7); // 结束还有几天是下个月的
|
||||||
if (endDay == 7) {
|
if (endDay == 7) {
|
||||||
endDay = 0;
|
endDay = 0;
|
||||||
}
|
}
|
||||||
for (let i = 1; i <= startDay; i++) {
|
for (let i = 1; i <= startDay; i++) {
|
||||||
dates.push({
|
dates.push({
|
||||||
date: this.formatNum(lastDayOfLastMonth - startDay + i),
|
date: this.formatNum(lastDayOfLastMonth - startDay + i),
|
||||||
day: weekstart + i - 1 || 7,
|
day: weekstart + i - 1 || 7,
|
||||||
month: m - 1 >= 0 ? this.formatNum(m - 1) : 12,
|
month: m - 1 >= 0 ? this.formatNum(m - 1) : 12,
|
||||||
year: m - 1 >= 0 ? y : y - 1
|
year: m - 1 >= 0 ? y : y - 1
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
for (let j = 1; j <= lastDateOfMonth; j++) {
|
for (let j = 1; j <= lastDateOfMonth; j++) {
|
||||||
dates.push({
|
dates.push({
|
||||||
date: this.formatNum(j),
|
date: this.formatNum(j),
|
||||||
day: (j % 7) + firstDayOfMonth - 1 || 7,
|
day: (j % 7) + firstDayOfMonth - 1 || 7,
|
||||||
month: this.formatNum(m),
|
month: this.formatNum(m),
|
||||||
year: y,
|
year: y,
|
||||||
isCurM: true //是否当前月份
|
isCurM: true //是否当前月份
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
for (let k = 1; k <= endDay; k++) {
|
for (let k = 1; k <= endDay; k++) {
|
||||||
dates.push({
|
dates.push({
|
||||||
date: this.formatNum(k),
|
date: this.formatNum(k),
|
||||||
day: (lastDateOfMonth + startDay + weekstart + k - 1) % 7 || 7,
|
day: (lastDateOfMonth + startDay + weekstart + k - 1) % 7 || 7,
|
||||||
month: m + 1 <= 11 ? this.formatNum(m + 1) : 0,
|
month: m + 1 <= 11 ? this.formatNum(m + 1) : 0,
|
||||||
year: m + 1 <= 11 ? y : y + 1
|
year: m + 1 <= 11 ? y : y + 1
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return dates;
|
return dates;
|
||||||
},
|
},
|
||||||
isWorkDay(y, m, d) {
|
isWorkDay(y, m, d) {
|
||||||
//是否工作日
|
//是否工作日
|
||||||
let ymd = `${y}/${m}/${d}`;
|
let ymd = `${y}/${m}/${d}`;
|
||||||
let formatDY = new Date(ymd.replace(/-/g, '/'));
|
let formatDY = new Date(ymd.replace(/-/g, '/'));
|
||||||
let week = formatDY.getDay();
|
let week = formatDY.getDay();
|
||||||
if (week == 0 || week == 6) {
|
if (week == 0 || week == 6) {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
isFutureDay(y, m, d) {
|
isFutureDay(y, m, d) {
|
||||||
//是否未来日期
|
//是否未来日期
|
||||||
let ymd = `${y}/${m}/${d}`;
|
let ymd = `${y}/${m}/${d}`;
|
||||||
let formatDY = new Date(ymd.replace(/-/g, '/'));
|
let formatDY = new Date(ymd.replace(/-/g, '/'));
|
||||||
let showTime = formatDY.getTime();
|
let showTime = formatDY.getTime();
|
||||||
let curTime = new Date().getTime();
|
let curTime = new Date().getTime();
|
||||||
if (showTime > curTime) {
|
if (showTime > curTime) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 标记日期
|
// 标记日期
|
||||||
isMarkDay(y, m, d) {
|
isMarkDay(y, m, d) {
|
||||||
let flag = false;
|
let flag = false;
|
||||||
for (let i = 0; i < this.markDays.length; i++) {
|
for (let i = 0; i < this.markDays.length; i++) {
|
||||||
let dy = `${y}-${m}-${d}`;
|
let dy = `${y}-${m}-${d}`;
|
||||||
if (this.markDays[i] == dy) {
|
if (this.markDays[i] == dy) {
|
||||||
flag = true;
|
flag = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return flag;
|
return flag;
|
||||||
},
|
},
|
||||||
isToday(y, m, d) {
|
isToday(y, m, d) {
|
||||||
let checkD = y + '-' + m + '-' + d;
|
let checkD = y + '-' + m + '-' + d;
|
||||||
let today = this.getToday().date;
|
let today = this.getToday().date;
|
||||||
if (checkD == today) {
|
if (checkD == today) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 展开收起
|
// 展开收起
|
||||||
toggle() {
|
toggle() {
|
||||||
this.monthOpen = !this.monthOpen;
|
this.monthOpen = !this.monthOpen;
|
||||||
if (this.monthOpen) {
|
if (this.monthOpen) {
|
||||||
this.positionTop = 0;
|
this.positionTop = 0;
|
||||||
} else {
|
} else {
|
||||||
let index = -1;
|
let index = -1;
|
||||||
this.dates.forEach((i, x) => {
|
this.dates.forEach((i, x) => {
|
||||||
this.isToday(i.year, i.month, i.date) && (index = x);
|
this.isToday(i.year, i.month, i.date) && (index = x);
|
||||||
});
|
});
|
||||||
this.positionTop = -((Math.ceil((index + 1) / 7) || 1) - 1) * 80;
|
this.positionTop = -((Math.ceil((index + 1) / 7) || 1) - 1) * 80;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 点击回调
|
// 点击回调
|
||||||
selectOne(i, event) {
|
selectOne(i, event) {
|
||||||
let date = `${i.year}-${i.month}-${i.date}`;
|
let date = `${i.year}-${i.month}-${i.date}`;
|
||||||
let selectD = new Date(date).getTime();
|
let selectD = new Date(date).getTime();
|
||||||
let curTime = new Date().getTime();
|
let curTime = new Date().getTime();
|
||||||
let week = new Date(date).getDay();
|
let week = new Date(date).getDay();
|
||||||
let weekText = ['日', '一', '二', '三', '四', '五', '六'];
|
let weekText = ['日', '一', '二', '三', '四', '五', '六'];
|
||||||
let formatWeek = '星期' + weekText[week];
|
let formatWeek = '星期' + weekText[week];
|
||||||
let response = {
|
let response = {
|
||||||
date: date,
|
date: date,
|
||||||
week: formatWeek
|
week: formatWeek
|
||||||
};
|
};
|
||||||
if (!i.isCurM) {
|
if (!i.isCurM) {
|
||||||
// console.log('不在当前月范围内');
|
// console.log('不在当前月范围内');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (selectD > curTime) {
|
if (selectD > curTime) {
|
||||||
if (this.disabledAfter) {
|
if (this.disabledAfter) {
|
||||||
console.log('未来日期不可选');
|
console.log('未来日期不可选');
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
this.choose = date;
|
this.choose = date;
|
||||||
this.$emit('onDayClick', response);
|
this.$emit('onDayClick', response);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.choose = date;
|
this.choose = date;
|
||||||
this.$emit('onDayClick', response);
|
this.$emit('onDayClick', response);
|
||||||
}
|
}
|
||||||
console.log(response);
|
console.log(response);
|
||||||
},
|
},
|
||||||
//改变年月
|
//改变年月
|
||||||
changYearMonth(y, m) {
|
changYearMonth(y, m) {
|
||||||
this.dates = this.monthDay(y, m);
|
this.dates = this.monthDay(y, m);
|
||||||
this.y = y;
|
this.y = y;
|
||||||
this.m = m;
|
this.m = m;
|
||||||
},
|
},
|
||||||
changeMonth(type) {
|
changeMonth(type) {
|
||||||
let that = this
|
let that = this
|
||||||
if (!uni.getStorageSync('token')) {
|
if (!uni.getStorageSync('token')) {
|
||||||
uni.redirectTo({
|
uni.redirectTo({
|
||||||
url: '/pageTwo/login/login'
|
url: '/pageTwo/login/login'
|
||||||
})
|
})
|
||||||
// that.$store.commit("changeUserLogin", true)
|
// that.$store.commit("changeUserLogin", true)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (type == 'pre') {
|
if (type == 'pre') {
|
||||||
if (that.m + 1 == 2) {
|
if (that.m + 1 == 2) {
|
||||||
that.m = 12;
|
that.m = 12;
|
||||||
that.y = that.y - 1;
|
that.y = that.y - 1;
|
||||||
} else {
|
} else {
|
||||||
that.m = that.m - 1;
|
that.m = that.m - 1;
|
||||||
}
|
}
|
||||||
that.month = this.$tools.getMonth(that.month, -1)
|
that.month = this.$tools.getMonth(that.month, -1)
|
||||||
that.$emit('onMonthClickPre', that.month)
|
that.$emit('onMonthClickPre', that.month)
|
||||||
} else {
|
} else {
|
||||||
if (this.m + 1 == 13) {
|
if (this.m + 1 == 13) {
|
||||||
this.m = 1;
|
this.m = 1;
|
||||||
this.y = this.y + 1;
|
this.y = this.y + 1;
|
||||||
} else {
|
} else {
|
||||||
this.m = this.m + 1;
|
this.m = this.m + 1;
|
||||||
}
|
}
|
||||||
that.month = this.$tools.getMonth(that.month, +1)
|
that.month = this.$tools.getMonth(that.month, +1)
|
||||||
that.$emit('onMonthClickPre', that.month)
|
that.$emit('onMonthClickPre', that.month)
|
||||||
}
|
}
|
||||||
this.dates = this.monthDay(this.y, this.m);
|
this.dates = this.monthDay(this.y, this.m);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.calendar-wrapper {
|
.calendar-wrapper {
|
||||||
color: #bbb7b7;
|
color: #bbb7b7;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
padding-bottom: 10rpx;
|
padding-bottom: 10rpx;
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
height: 88rpx;
|
height: 88rpx;
|
||||||
color: #42464A;
|
color: #42464A;
|
||||||
font-size: 32rpx;
|
font-size: 32rpx;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
|
|
||||||
.pre,
|
image {
|
||||||
.next {
|
color: $btncolor;
|
||||||
color: $btncolor;
|
font-size: 28rpx;
|
||||||
font-size: 28rpx;
|
width: 28rpx;
|
||||||
}
|
height: 28rpx;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.week {
|
.week {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
height: 80rpx;
|
height: 80rpx;
|
||||||
line-height: 80rpx;
|
line-height: 80rpx;
|
||||||
border-bottom: 1rpx solid rgba(255, 255, 255, 0.2);
|
border-bottom: 1rpx solid rgba(255, 255, 255, 0.2);
|
||||||
|
|
||||||
view {
|
view {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.content0 {
|
.content0 {
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
transition: height 0.4s ease;
|
transition: height 0.4s ease;
|
||||||
|
|
||||||
.days {
|
.days {
|
||||||
transition: top 0.3s;
|
transition: top 0.3s;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: block;
|
display: block;
|
||||||
height: 80rpx;
|
height: 80rpx;
|
||||||
line-height: 80rpx;
|
line-height: 80rpx;
|
||||||
width: calc(100% / 7);
|
width: calc(100% / 7);
|
||||||
|
|
||||||
.day {
|
.day {
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
width: 60rpx;
|
width: 60rpx;
|
||||||
height: 60rpx;
|
height: 60rpx;
|
||||||
line-height: 60rpx;
|
line-height: 60rpx;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
border-radius: 60rpx;
|
border-radius: 60rpx;
|
||||||
|
|
||||||
&.choose {
|
&.choose {
|
||||||
background-color: $btncolor;
|
background-color: $btncolor;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.nolm {
|
&.nolm {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
opacity: 0.3;
|
opacity: 0.3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.isWorkDay {
|
.isWorkDay {
|
||||||
color: #42464a;
|
color: #42464a;
|
||||||
}
|
}
|
||||||
|
|
||||||
.notSigned {
|
.notSigned {
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
width: 8rpx;
|
width: 8rpx;
|
||||||
height: 8rpx;
|
height: 8rpx;
|
||||||
background: #fa7268;
|
background: #fa7268;
|
||||||
border-radius: 10rpx;
|
border-radius: 10rpx;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.today {
|
.today {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background-color: #a8c0ff;
|
background-color: #a8c0ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.workDay {
|
.workDay {
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
width: 8rpx;
|
width: 8rpx;
|
||||||
height: 8rpx;
|
height: 8rpx;
|
||||||
background: #4d7df9;
|
background: #4d7df9;
|
||||||
border-radius: 10rpx;
|
border-radius: 10rpx;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markDay {
|
.markDay {
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
width: 8rpx;
|
width: 8rpx;
|
||||||
height: 8rpx;
|
height: 8rpx;
|
||||||
background: #fa7268;
|
background: #fa7268;
|
||||||
border-radius: 10rpx;
|
border-radius: 10rpx;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.hide {
|
.hide {
|
||||||
height: 80rpx !important;
|
height: 80rpx !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.weektoggle {
|
.weektoggle {
|
||||||
width: 85rpx;
|
width: 85rpx;
|
||||||
height: 32rpx;
|
height: 32rpx;
|
||||||
position: relative;
|
position: relative;
|
||||||
bottom: -42rpx;
|
bottom: -42rpx;
|
||||||
|
|
||||||
&.down {
|
&.down {
|
||||||
transform: rotate(180deg);
|
transform: rotate(180deg);
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -1,134 +1,139 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="wrapper" v-if="isedit">
|
<view class="wrapper" v-if="isedit">
|
||||||
<view class="bg" @click="onTap">
|
<view class="bg" @click="onTap">
|
||||||
<view class="edit" @click.stop>
|
<view class="edit" @click.stop>
|
||||||
<view class="title">
|
<view class="title">
|
||||||
健康资料
|
健康资料
|
||||||
</view>
|
</view>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<view class="editem">
|
<view class="editem">
|
||||||
<view class="name">性别</view>
|
<view class="name">性别</view>
|
||||||
<view class="radio mr-10" @click="selectsex(1)">
|
<view class="radio mr-10" @click="selectsex(1)">
|
||||||
<icon class="iconfont radioimg" :class="[info.sex==1?'icon-radio':'icon-kongradio']">
|
<image :src="info.sex==1?'../../static/radio.png':'../../static/icon-kongradio.png'"
|
||||||
</icon>
|
class="iconfont radioimg"></image>
|
||||||
<view class="ml-10">男</view>
|
<view class="ml-10">男</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="radio" @click="selectsex(2)">
|
<view class="radio" @click="selectsex(2)">
|
||||||
<icon class="iconfont radioimg" :class="[info.sex==2?'icon-radio':'icon-kongradio']">
|
<image :src="info.sex==2?'../../static/radio.png':'../../static/icon-kongradio.png'"
|
||||||
</icon>
|
class="iconfont radioimg"></image>
|
||||||
<view class="ml-10">女</view>
|
<view class="ml-10">女</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<view class="editem">
|
<view class="editem">
|
||||||
<view class="name">身高</view>
|
<view class="name">身高</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<input type="digit" v-model="info.height" placeholder="请输入身高" />cm
|
<input type="digit" v-model="info.height" placeholder="请输入身高" />cm
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="editem">
|
<view class="editem">
|
||||||
<view class="name">出生日期</view>
|
<view class="name">出生日期</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<picker mode="date" :end="endDate" class="f-r" :value="info.birthday" @change="onBirthdayArr">
|
<picker mode="date" :end="endDate" class="f-r" :value="info.birthday" @change="onBirthdayArr">
|
||||||
<view class="uni-input">{{info.birthday?info.birthday:"请选择"}}
|
<view class="uni-input">{{info.birthday?info.birthday:"请选择"}}
|
||||||
<icon class="iconfont icon-arrow-down"></icon>
|
<icon class="iconfont icon-arrow-down"></icon>
|
||||||
</view>
|
</view>
|
||||||
</picker>
|
</picker>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="tips">
|
<view class="tips">
|
||||||
请准确填写信息方便我们给您更精确的报告
|
请准确填写信息方便我们给您更精确的报告
|
||||||
</view>
|
</view>
|
||||||
<view class="btn mt-15" @click="handleCloseClick">保存信息</view>
|
<view class="btn mt-15" @click="handleCloseClick">保存信息</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {
|
import {
|
||||||
mapState
|
mapState
|
||||||
} from "vuex";
|
} from "vuex";
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
info: {
|
info: {
|
||||||
height: "",
|
height: "",
|
||||||
birthday: "",
|
birthday: "",
|
||||||
sex: 0,
|
sex: 0,
|
||||||
},
|
},
|
||||||
ageArr: [],
|
ageArr: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(["user", "isedit"]),
|
...mapState(["user", "isedit"]),
|
||||||
userInfo: function() {
|
userInfo: function() {
|
||||||
return this.user
|
return this.user
|
||||||
},
|
},
|
||||||
endDate() {
|
endDate() {
|
||||||
return this.$tools.getDate("start")
|
return this.$tools.getDate("start")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
var agedata = []
|
var agedata = []
|
||||||
for (var i = 12; i <= 80; i++) {
|
for (var i = 12; i <= 80; i++) {
|
||||||
agedata.push(i);
|
agedata.push(i);
|
||||||
}
|
}
|
||||||
this.ageArr = agedata
|
this.ageArr = agedata
|
||||||
this.info = this.user
|
this.info = this.user
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
onTap() {
|
onTap() {
|
||||||
// this.isHeight = false
|
// this.isHeight = false
|
||||||
// this.slideheight = this.userInfo.height
|
// this.slideheight = this.userInfo.height
|
||||||
// this.$store.commit("changeEdit", false);
|
// this.$store.commit("changeEdit", false);
|
||||||
},
|
},
|
||||||
// 性别切换
|
// 性别切换
|
||||||
selectsex(e) {
|
selectsex(e) {
|
||||||
this.info.sex = e
|
this.info.sex = e
|
||||||
},
|
},
|
||||||
// 出生日期
|
// 出生日期
|
||||||
onBirthdayArr(e) {
|
onBirthdayArr(e) {
|
||||||
this.info.birthday = e.target.value
|
this.info.birthday = e.target.value
|
||||||
},
|
},
|
||||||
// 提交、
|
// 提交、
|
||||||
handleCloseClick() {
|
handleCloseClick() {
|
||||||
let that = this
|
let that = this
|
||||||
if (!that.info.sex) {
|
if (!that.info.sex) {
|
||||||
that.$tools.msg("请选择性别")
|
that.$tools.msg("请选择性别")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!that.info.height) {
|
if (!that.info.height) {
|
||||||
that.$tools.msg("请选择身高")
|
that.$tools.msg("请选择身高")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!that.info.birthday) {
|
if (!that.info.birthday) {
|
||||||
that.$tools.msg("请选择出生日期")
|
that.$tools.msg("请选择出生日期")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
that.$store.commit("changeEdit", false);
|
that.$store.commit("changeEdit", false);
|
||||||
that.getResult()
|
that.getResult()
|
||||||
},
|
},
|
||||||
getResult() {
|
getResult() {
|
||||||
let that = this
|
let that = this
|
||||||
that.$model.getResult({
|
that.$model.getResult({
|
||||||
birthday: that.userInfo.birthday,
|
birthday: that.userInfo.birthday,
|
||||||
familyid: that.userInfo.familyid,
|
familyid: that.userInfo.familyid,
|
||||||
height: that.userInfo.height,
|
height: that.userInfo.height,
|
||||||
sex: that.userInfo.sex,
|
sex: that.userInfo.sex,
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
that.$store.commit('changeMeasureResult', res.data)
|
that.$store.commit('changeMeasureResult', res.data)
|
||||||
}
|
}
|
||||||
that.$store.dispatch("getUserInfo", {
|
that.$store.dispatch("getUserInfo", {
|
||||||
familyid: that.userInfo.familyid,
|
familyid: that.userInfo.familyid,
|
||||||
})
|
})
|
||||||
that.$store.dispatch("getFamilyList");
|
that.$store.dispatch("getFamilyList");
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
</style>
|
|
||||||
|
.radioimg{
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -57,7 +57,7 @@
|
||||||
"quickapp" : {},
|
"quickapp" : {},
|
||||||
/* 小程序特有相关 */
|
/* 小程序特有相关 */
|
||||||
"mp-weixin" : {
|
"mp-weixin" : {
|
||||||
"appid" : "wx80ee50db22dbbb2f",
|
"appid" : "wx856cb5f21789e382",
|
||||||
"setting" : {
|
"setting" : {
|
||||||
"urlCheck" : true,
|
"urlCheck" : true,
|
||||||
"minified" : true,
|
"minified" : true,
|
||||||
|
|
|
||||||
|
|
@ -1,332 +1,341 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="common">
|
<view class="common">
|
||||||
<view class="header" v-if="info" :style="{background:appTheme}">
|
<view class="header" v-if="info" :style="{background:appTheme}">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<image :src="info.headimg" class="image1" />
|
<image :src="info.headimg" class="image1" />
|
||||||
<view class="left_sm">
|
<view class="left_sm">
|
||||||
<view class="name">
|
<view class="name">
|
||||||
<view>{{info.name?info.name:""}}</view>
|
<view>{{info.name?info.name:""}}</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<view v-if="info.isself != 1" @click="deldet(Infoid)" class="guanliyuan">删除</view>
|
<view v-if="info.isself != 1" @click="deldet(Infoid)" class="guanliyuan">删除</view>
|
||||||
<view @click="editorInfo()" class="guanliyuan">编辑</view>
|
<view @click="editorInfo()" class="guanliyuan">编辑</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="mt-5">
|
<view class="mt-5">
|
||||||
<text>{{info.sex==0?'未知':info.sex==2?'女':'男'}}</text>
|
<text>{{info.sex==0?'未知':info.sex==2?'女':'男'}}</text>
|
||||||
<text>{{info.height}}cm</text>
|
<text>{{info.height}}cm</text>
|
||||||
<text>{{info.mage?info.mage:"0岁"}}</text>
|
<text>{{info.mage?info.mage:"0岁"}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<scroll-view scroll-y class="list ">
|
<scroll-view scroll-y class="list ">
|
||||||
<view class="history" v-if="ranklist.length">
|
<view class="history" v-if="ranklist.length">
|
||||||
<view class="list-item" v-for="(item ,index) in ranklist" :key="index">
|
<view class="list-item" v-for="(item ,index) in ranklist" :key="index">
|
||||||
<view class="item" @click="clickItemMethod(item)">
|
<view class="item" @click="clickItemMethod(item)">
|
||||||
<view class="time">
|
<view class="time">
|
||||||
<icon class="t-icon t-icon-shijian-mianxing-0"></icon>
|
<icon class="t-icon t-icon-shijian-mianxing-0"></icon>
|
||||||
<text>{{item.createtime}}</text>
|
<text>{{item.createtime}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view>{{item.weight}}<text>体重</text></view>
|
<view>{{item.weight}}<text>体重</text></view>
|
||||||
<view>{{item.bmi}}<text>BMI</text></view>
|
<view>{{item.bmi}}<text>BMI</text></view>
|
||||||
<view>{{item.fat_r}}<text>脂肪率</text></view>
|
<view>{{item.fat_r}}<text>脂肪率</text></view>
|
||||||
<icon class="iconfont icon-arrow-right"></icon>
|
<image src="../../static/arrow-right.png" class="iconfont2"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="endtext mb-15" v-if="!lastPage || page >= lastPage">—— 到底了,看看别的吧 ——</view>
|
<view class="endtext mb-15" v-if="!lastPage || page >= lastPage">—— 到底了,看看别的吧 ——</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="nolist" v-else>
|
<view class="nolist" v-else>
|
||||||
<icon class="iconfont icon-zanwu"></icon>
|
<!-- <icon class="iconfont icon-zanwu"></icon> -->
|
||||||
</view>
|
<image src="../../static/zanwu.png" class="iconfont"></image>
|
||||||
</scroll-view>
|
<text>暂无数据</text>
|
||||||
</view>
|
</view>
|
||||||
|
</scroll-view>
|
||||||
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {
|
import {
|
||||||
mapState
|
mapState
|
||||||
} from "vuex";
|
} from "vuex";
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
ranklist: [],
|
ranklist: [],
|
||||||
info: {},
|
info: {},
|
||||||
memberText: null,
|
memberText: null,
|
||||||
memberType: [],
|
memberType: [],
|
||||||
page: 1,
|
page: 1,
|
||||||
lastPage: '',
|
lastPage: '',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(["user", "appTheme"])
|
...mapState(["user", "appTheme"])
|
||||||
},
|
},
|
||||||
onLoad(option) {
|
onLoad(option) {
|
||||||
// 导航栏颜色
|
// 导航栏颜色
|
||||||
uni.setNavigationBarColor({
|
uni.setNavigationBarColor({
|
||||||
frontColor: '#ffffff',
|
frontColor: '#ffffff',
|
||||||
backgroundColor: this.appTheme,
|
backgroundColor: this.appTheme,
|
||||||
})
|
})
|
||||||
//
|
//
|
||||||
this.page = 1
|
this.page = 1
|
||||||
this.ranklist = []
|
this.ranklist = []
|
||||||
console.log("id", option)
|
console.log("id", option)
|
||||||
if (option.id) {
|
if (option.id) {
|
||||||
this.Infoid = option.id
|
this.Infoid = option.id
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
this.ranklist = []
|
this.ranklist = []
|
||||||
this.gethistory(this.Infoid)
|
this.gethistory(this.Infoid)
|
||||||
this.getHistoryList(this.Infoid)
|
this.getHistoryList(this.Infoid)
|
||||||
},
|
},
|
||||||
onReachBottom() {
|
onReachBottom() {
|
||||||
console.log(this.lastPage, this.page)
|
console.log(this.lastPage, this.page)
|
||||||
if (!this.lastPage || this.page >= this.lastPage) {
|
if (!this.lastPage || this.page >= this.lastPage) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '没有更多数据!',
|
title: '没有更多数据!',
|
||||||
icon: 'none'
|
icon: 'none'
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.page++
|
this.page++
|
||||||
this.getHistoryList(this.Infoid)
|
this.getHistoryList(this.Infoid)
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 历史记录
|
// 历史记录
|
||||||
getHistoryList(id) {
|
getHistoryList(id) {
|
||||||
this.$model.getHistoryList({
|
this.$model.getHistoryList({
|
||||||
familyId: id,
|
familyId: id,
|
||||||
pageNo: this.page,
|
pageNo: this.page,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
if (res.code != 0) {
|
if (res.code != 0) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.ranklist = this.ranklist.concat(res.data.rows)
|
this.ranklist = this.ranklist.concat(res.data.rows)
|
||||||
this.lastPage = res.data.totalpage
|
this.lastPage = res.data.totalpage
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 信息
|
// 信息
|
||||||
gethistory(id) {
|
gethistory(id) {
|
||||||
this.$model.getdetail({
|
this.$model.getdetail({
|
||||||
id: id
|
id: id
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
if (res.code != 0) {
|
if (res.code != 0) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.info = res.data
|
this.info = res.data
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 编辑
|
// 编辑
|
||||||
editorInfo() {
|
editorInfo() {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: "/pageTwo/me/adduser?familayData=" + JSON.stringify(this.info),
|
url: "/pageTwo/me/adduser?familayData=" + JSON.stringify(this.info),
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
//删除
|
//删除
|
||||||
deldet(id) {
|
deldet(id) {
|
||||||
let that = this
|
let that = this
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
title: '友情提示',
|
title: '友情提示',
|
||||||
content: '确定删除该成员吗',
|
content: '确定删除该成员吗',
|
||||||
success: function(res) {
|
success: function(res) {
|
||||||
if (res.confirm) {
|
if (res.confirm) {
|
||||||
that.$model.getdelete({
|
that.$model.getdelete({
|
||||||
id: id,
|
id: id,
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
if (res.code != 0) return
|
if (res.code != 0) return
|
||||||
that.$tools.msg("删除成功!");
|
that.$tools.msg("删除成功!");
|
||||||
that.getFamilyList()
|
that.getFamilyList()
|
||||||
})
|
})
|
||||||
} else if (res.cancel) {
|
} else if (res.cancel) {
|
||||||
that.$tools.msg("您已取消删除!");
|
that.$tools.msg("您已取消删除!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
getFamilyList() {
|
getFamilyList() {
|
||||||
let that = this
|
let that = this
|
||||||
that.$model.getFamilyList({}).then(res => {
|
that.$model.getFamilyList({}).then(res => {
|
||||||
that.$store.commit("changeFamilay", res)
|
that.$store.commit("changeFamilay", res)
|
||||||
that.$store.dispatch("getUserInfo", {
|
that.$store.dispatch("getUserInfo", {
|
||||||
familyid: res[0].familyid
|
familyid: res[0].familyid
|
||||||
})
|
})
|
||||||
uni.switchTab({
|
uni.switchTab({
|
||||||
url: '/pages/me/me'
|
url: '/pages/me/me'
|
||||||
});
|
});
|
||||||
}).catch(e => {})
|
}).catch(e => {})
|
||||||
},
|
},
|
||||||
// 详情
|
// 详情
|
||||||
clickItemMethod(item) {
|
clickItemMethod(item) {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: "/pageTwo/me/info?index=" + JSON.stringify(item)
|
url: "/pageTwo/me/info?index=" + JSON.stringify(item)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped="scoped" lang="scss">
|
<style scoped="scoped" lang="scss">
|
||||||
.list {
|
.list {
|
||||||
margin-top: 80px;
|
margin-top: 80px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.list-item {
|
.list-item {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin: 10px 0 15px;
|
margin: 10px 0 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
padding: 5px 10px;
|
padding: 5px 10px;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 32rpx;
|
font-size: 32rpx;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
margin-bottom: 30rpx;
|
margin-bottom: 30rpx;
|
||||||
line-height: 40rpx;
|
line-height: 40rpx;
|
||||||
|
|
||||||
text {
|
text {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
display: block;
|
display: block;
|
||||||
color: #666;
|
color: #666;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
view {
|
view {
|
||||||
width: 18%;
|
width: 18%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.time {
|
.time {
|
||||||
width: 32% !important;
|
width: 32% !important;
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
color: #666;
|
color: #666;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
|
||||||
image {
|
|
||||||
width: 40rpx;
|
|
||||||
height: 40rpx;
|
|
||||||
margin-right: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
text {
|
|
||||||
width: 100%;
|
|
||||||
font-size: 28rpx;
|
|
||||||
margin-top: 3px;
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
image {
|
||||||
|
width: 40rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
text {
|
||||||
.common {
|
width: 100%;
|
||||||
padding: 0 15px;
|
font-size: 28rpx;
|
||||||
min-height: calc(100vh - 90px);
|
margin-top: 3px;
|
||||||
height: 100%;
|
overflow: hidden;
|
||||||
}
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.header {
|
}
|
||||||
height: 90px;
|
|
||||||
background: $mainColor;
|
|
||||||
position: fixed;
|
|
||||||
top: 0rem;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
display: flex;
|
|
||||||
z-index: 99;
|
|
||||||
padding: 0 10px;
|
|
||||||
justify-content: space-between;
|
|
||||||
|
|
||||||
.left {
|
//
|
||||||
width: 100%;
|
.common {
|
||||||
display: flex;
|
padding: 0 15px;
|
||||||
justify-content: start;
|
min-height: calc(100vh - 90px);
|
||||||
align-items: center;
|
height: 100%;
|
||||||
position: relative;
|
}
|
||||||
|
|
||||||
.left_sm {
|
.header {
|
||||||
text-align: left;
|
height: 90px;
|
||||||
color: #FFFFFF;
|
background: $mainColor;
|
||||||
position: absolute;
|
position: fixed;
|
||||||
left: 60px;
|
top: 0rem;
|
||||||
top: 25px;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
|
display: flex;
|
||||||
|
z-index: 99;
|
||||||
|
padding: 0 10px;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
.name {
|
.left {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: start;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
position: relative;
|
||||||
|
|
||||||
text {
|
.left_sm {
|
||||||
display: inline-block;
|
text-align: left;
|
||||||
padding-right: 10px;
|
color: #FFFFFF;
|
||||||
font-size: 14px;
|
position: absolute;
|
||||||
}
|
left: 60px;
|
||||||
}
|
top: 25px;
|
||||||
|
right: 0;
|
||||||
|
|
||||||
.type,
|
.name {
|
||||||
.type2 {
|
width: 100%;
|
||||||
background: #fff;
|
display: flex;
|
||||||
text-align: center;
|
justify-content: space-between;
|
||||||
display: inline-block;
|
align-items: center;
|
||||||
padding: 0 3px !important;
|
}
|
||||||
font-size: 12px !important;
|
|
||||||
border-radius: 10px;
|
|
||||||
line-height: initial;
|
|
||||||
color: $btncolor;
|
|
||||||
}
|
|
||||||
|
|
||||||
.image1 {
|
text {
|
||||||
width: 50px;
|
display: inline-block;
|
||||||
height: 50px;
|
padding-right: 10px;
|
||||||
float: left;
|
font-size: 14px;
|
||||||
border-radius: 50%;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
p {
|
.type,
|
||||||
text-align: left;
|
.type2 {
|
||||||
margin-top: 5px;
|
background: #fff;
|
||||||
}
|
text-align: center;
|
||||||
}
|
display: inline-block;
|
||||||
|
padding: 0 3px !important;
|
||||||
|
font-size: 12px !important;
|
||||||
|
border-radius: 10px;
|
||||||
|
line-height: initial;
|
||||||
|
color: $btncolor;
|
||||||
|
}
|
||||||
|
|
||||||
.right {
|
.image1 {
|
||||||
display: flex;
|
width: 50px;
|
||||||
align-items: center;
|
height: 50px;
|
||||||
color: #fff;
|
float: left;
|
||||||
text-align: right;
|
border-radius: 50%;
|
||||||
font-size: 14px;
|
}
|
||||||
|
|
||||||
.guanliyuan {
|
p {
|
||||||
border: 1px solid #fff;
|
text-align: left;
|
||||||
padding: 2px 6px;
|
margin-top: 5px;
|
||||||
border-radius: 10px;
|
}
|
||||||
font-size: 12px;
|
}
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.leftChild {
|
.right {
|
||||||
width: 100% !important;
|
display: flex;
|
||||||
padding: 10px 0 !important;
|
align-items: center;
|
||||||
|
color: #fff;
|
||||||
|
text-align: right;
|
||||||
|
font-size: 14px;
|
||||||
|
|
||||||
view {
|
.guanliyuan {
|
||||||
min-width: auto !important;
|
border: 1px solid #fff;
|
||||||
}
|
padding: 2px 6px;
|
||||||
}
|
border-radius: 10px;
|
||||||
</style>
|
font-size: 12px;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.leftChild {
|
||||||
|
width: 100% !important;
|
||||||
|
padding: 10px 0 !important;
|
||||||
|
|
||||||
|
view {
|
||||||
|
min-width: auto !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconfont2 {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
<view>{{item.weight}}<text>体重</text></view>
|
<view>{{item.weight}}<text>体重</text></view>
|
||||||
<view>{{item.bmi}}<text>BMI</text></view>
|
<view>{{item.bmi}}<text>BMI</text></view>
|
||||||
<view>{{item.fat_r}}<text>脂肪率</text></view>
|
<view>{{item.fat_r}}<text>脂肪率</text></view>
|
||||||
<icon class="iconfont icon-arrow-right"></icon>
|
<image src="../../static/arrow-right.png" class="iconfont"></image>
|
||||||
</view>
|
</view>
|
||||||
</uni-swipe-action-item>
|
</uni-swipe-action-item>
|
||||||
</uni-swipe-action>
|
</uni-swipe-action>
|
||||||
|
|
@ -24,7 +24,8 @@
|
||||||
<view class="endtext" v-if="!lastPage || page >= lastPage">—— 到底了,看看别的吧 ——</view>
|
<view class="endtext" v-if="!lastPage || page >= lastPage">—— 到底了,看看别的吧 ——</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="nolist" v-if="!lastPage">
|
<view class="nolist" v-if="!lastPage">
|
||||||
<icon class="iconfont icon-zanwu"></icon>
|
<image src="../../static/zanwu.png" class="iconfont"></image>
|
||||||
|
<text>暂无数据</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -160,6 +161,11 @@
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,8 +39,7 @@
|
||||||
<view class="h5">{{ite.title}}</view>
|
<view class="h5">{{ite.title}}</view>
|
||||||
<view class="item">
|
<view class="item">
|
||||||
<view class="group" v-for="(it, id) in ite.data" :key="id" @click="Changeradio(it)">
|
<view class="group" v-for="(it, id) in ite.data" :key="id" @click="Changeradio(it)">
|
||||||
<icon class="iconfont radioimg" :class="[dasC.indexOf(it.val)!=-1?'icon-radio':'icon-kongradio']">
|
<image :src="dasC.indexOf(it.val)!=-1?'../../static/radio.png':'../../static/icon-kongradio.png'" class="iconfont radioimg"></image>
|
||||||
</icon>
|
|
||||||
<view>{{it.name}}</view>
|
<view>{{it.name}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -307,6 +307,14 @@
|
||||||
"enablePullDownRefresh": false,
|
"enablePullDownRefresh": false,
|
||||||
"navigationBarBackgroundColor": "#F9FAFC"
|
"navigationBarBackgroundColor": "#F9FAFC"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "child/BYHD02BT",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "",
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationBarBackgroundColor": "#F9FAFC"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}],
|
}],
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,7 @@
|
||||||
<!-- 成人 -->
|
<!-- 成人 -->
|
||||||
<view class="item">
|
<view class="item">
|
||||||
<view class="check">
|
<view class="check">
|
||||||
<icon class="iconfont" :class="isActive.indexOf(item.id)!=-1?'icon-radio':'icon-kongradio'">
|
<image :src="isActive.indexOf(item.id)!=-1?'../../static/radio.png':'../../static/icon-kongradio.png'" class="iconfont"></image>
|
||||||
</icon>
|
|
||||||
</view>
|
</view>
|
||||||
<view>{{item.height}}<text>身高</text></view>
|
<view>{{item.height}}<text>身高</text></view>
|
||||||
<view>{{item.weight}}<text>体重</text></view>
|
<view>{{item.weight}}<text>体重</text></view>
|
||||||
|
|
@ -30,7 +29,7 @@
|
||||||
<view>{{ite.weight}}<text>体重</text></view>
|
<view>{{ite.weight}}<text>体重</text></view>
|
||||||
<view>{{ite.bmi}}<text>BMI</text></view>
|
<view>{{ite.bmi}}<text>BMI</text></view>
|
||||||
<view class="check">
|
<view class="check">
|
||||||
<icon class="iconfont icon-quxiao"></icon>
|
<image src="../../static/quxiao.png" class="iconfont"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -31,9 +31,21 @@
|
||||||
</view>
|
</view>
|
||||||
<!-- 工具 -->
|
<!-- 工具 -->
|
||||||
<view class="tools_l">
|
<view class="tools_l">
|
||||||
<view v-for="(item,index) in toollist" :key="index" class="list" @click="clickTool(item.id)">
|
<view class="list" @click="clickTool(0)">
|
||||||
<image :src="item.icon"></image>
|
<image src="/static/tool1.png"></image>
|
||||||
<view class="text">{{item.title}}</view>
|
<view class="text">手动记录</view>
|
||||||
|
</view>
|
||||||
|
<view class="list" @click="clickTool(1)">
|
||||||
|
<image src="/static/tool2.png"></image>
|
||||||
|
<view class="text">体质评估</view>
|
||||||
|
</view>
|
||||||
|
<view class="list" @click="clickTool(2)" v-if="configBox.isshowchild">
|
||||||
|
<image src="/static/tool3.png"></image>
|
||||||
|
<view class="text">儿童测量</view>
|
||||||
|
</view>
|
||||||
|
<view class="list" @click="clickTool(3)">
|
||||||
|
<image src="/static/tool4.png"></image>
|
||||||
|
<view class="text">历史记录</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 客服 -->
|
<!-- 客服 -->
|
||||||
<message v-if="token&&configBox.serviceappid"></message>
|
<message v-if="token&&configBox.serviceappid"></message>
|
||||||
|
|
@ -127,7 +139,8 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view v-else class="nolist">
|
<view v-else class="nolist">
|
||||||
<icon class="iconfont icon-zanwu"></icon>
|
<image src="../../static/zanwu.png" class="iconfont"></image>
|
||||||
|
<text>暂无数据</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="introction" v-if="MeasureResult&&infoList.length">
|
<view class="introction" v-if="MeasureResult&&infoList.length">
|
||||||
|
|
@ -194,14 +207,6 @@
|
||||||
that.userId = options.userid
|
that.userId = options.userid
|
||||||
}
|
}
|
||||||
await that.login()
|
await that.login()
|
||||||
|
|
||||||
// let value = "a900260e1501003200000000021d03fa1600ae9a"
|
|
||||||
let value = "a900260710020064451100f99a"
|
|
||||||
let dw = value.substring(19, 20)
|
|
||||||
let type = value.substring(8, 10)
|
|
||||||
let typeInfo = value.substring(10, 12)
|
|
||||||
let weight = parseInt(value.substring(12, 18), 16)
|
|
||||||
console.log("value", type, typeInfo, weight, dw ,value.substring(12, 18))
|
|
||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
this.token = uni.getStorageSync('token')
|
this.token = uni.getStorageSync('token')
|
||||||
|
|
@ -381,16 +386,11 @@
|
||||||
uni.redirectTo({
|
uni.redirectTo({
|
||||||
url: '/pageTwo/login/login'
|
url: '/pageTwo/login/login'
|
||||||
})
|
})
|
||||||
// that.$store.commit("changeUserLogin", true)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
uni.openBluetoothAdapter({
|
uni.openBluetoothAdapter({
|
||||||
success: e => {
|
success: e => {
|
||||||
that.$store.commit("changeBluetooth", true);
|
that.$store.commit("changeBluetooth", true);
|
||||||
// if (that.devHomePram && that.devHomePram.t && that.devHomePram.sn) {
|
|
||||||
// that.$tools.handlePages(that.devHomePram.t, that.devHomePram.sn)
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: "/pages/search/devType"
|
url: "/pages/search/devType"
|
||||||
})
|
})
|
||||||
|
|
@ -510,16 +510,16 @@
|
||||||
title: '体质评估',
|
title: '体质评估',
|
||||||
id: 1
|
id: 1
|
||||||
},
|
},
|
||||||
{
|
|
||||||
icon: '/static/tool3.png',
|
|
||||||
title: '儿童测量',
|
|
||||||
id: 2
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
icon: '/static/tool4.png',
|
icon: '/static/tool4.png',
|
||||||
title: '历史记录',
|
title: '历史记录',
|
||||||
id: 3
|
id: 3
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
icon: '/static/tool3.png',
|
||||||
|
title: '儿童测量',
|
||||||
|
id: 2
|
||||||
|
}
|
||||||
|
|
||||||
],
|
],
|
||||||
checkList: [{
|
checkList: [{
|
||||||
|
|
|
||||||
615
pages/me/me.vue
|
|
@ -1,325 +1,326 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="content">
|
<view class="content">
|
||||||
<view class="header-con" :style="{background:appTheme}">
|
<view class="header-con" :style="{background:appTheme}">
|
||||||
<view class="header" v-if="token">
|
<view class="header" v-if="token">
|
||||||
<image :src="user.headimg" class="headimage" />
|
<image :src="user.headimg" class="headimage" />
|
||||||
<text>{{user.name||user.name}}</text>
|
<text>{{user.name||user.name}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="header2" v-else @click="handleLogin">
|
<view class="header2" v-else @click="handleLogin">
|
||||||
<view class="text"><text>登录</text>查看更多信息</view>
|
<view class="text"><text>登录</text>查看更多信息</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 列表 -->
|
<!-- 列表 -->
|
||||||
<view class="infolist">
|
<view class="infolist">
|
||||||
<view class="item borderRadius" @click="handleEditClick">
|
<view class="item borderRadius" @click="handleEditClick">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
性别
|
性别
|
||||||
</view>
|
</view>
|
||||||
<view class="right"><text>{{user.sex==0?"未知":user.sex==1?'男':'女'}}</text>
|
<view class="right"><text>{{user.sex==0?"未知":user.sex==1?'男':'女'}}</text>
|
||||||
<icon class="t-icon t-icon-bianji3"></icon>
|
<icon class="t-icon t-icon-bianji3"></icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="item borderRadius" @click="handleEditClick">
|
<view class="item borderRadius" @click="handleEditClick">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
年龄(岁)
|
年龄(岁)
|
||||||
</view>
|
</view>
|
||||||
<view class="right"><text>{{user.age?user.age:user.mage?user.mage:0}}</text>
|
<view class="right"><text>{{user.age?user.age:user.mage?user.mage:0}}</text>
|
||||||
<icon class="t-icon t-icon-bianji3"></icon>
|
<icon class="t-icon t-icon-bianji3"></icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="item borderRadius" @click="handleEditClick">
|
<view class="item borderRadius" @click="handleEditClick">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
身高(cm)
|
身高(cm)
|
||||||
</view>
|
</view>
|
||||||
<view class="right"><text>{{user.height?user.height:0}}</text>
|
<view class="right"><text>{{user.height?user.height:0}}</text>
|
||||||
<icon class="t-icon t-icon-bianji3"></icon>
|
<icon class="t-icon t-icon-bianji3"></icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<view class="wxlist borderRadius">
|
<view class="wxlist borderRadius">
|
||||||
<view class="list" @tap="navTo('/pageTwo/me/manage')">
|
<view class="list" @tap="navTo('/pageTwo/me/manage')">
|
||||||
<view class="item border-bottom">
|
<view class="item border-bottom">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<i class="t-icon t-icon-shoucang"></i>
|
<i class="t-icon t-icon-shoucang"></i>
|
||||||
<view class="name">成员管理</view>
|
<view class="name">成员管理</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<icon class="icon iconfont icon-arrow-right" color="#999"></icon>
|
<image src="../../static/arrow-right.png" class="iconfont"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<view class="list" @tap="navTo('/pageTwo/me/history')">
|
<view class="list" @tap="navTo('/pageTwo/me/history')">
|
||||||
<view class="item border-bottom">
|
<view class="item border-bottom">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<i class="t-icon t-icon-gonglve"></i>
|
<i class="t-icon t-icon-gonglve"></i>
|
||||||
<view class="name">历史记录</view>
|
<view class="name">历史记录</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<icon class="icon iconfont icon-arrow-right" color="#999"></icon>
|
<image src="../../static/arrow-right.png" class="iconfont"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<view class="list" @tap="navTo('/pageTwo/me/feedBack')">
|
<view class="list" @tap="navTo('/pageTwo/me/feedBack')">
|
||||||
<view class="item border-bottom">
|
<view class="item border-bottom">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<i class="t-icon t-icon-pinglun"></i>
|
<i class="t-icon t-icon-pinglun"></i>
|
||||||
<view class="name">意见反馈</view>
|
<view class="name">意见反馈</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<icon class="icon iconfont icon-arrow-right" color="#999"></icon>
|
<image src="../../static/arrow-right.png" class="iconfont"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<view class="list" @click="handleClick('device')">
|
<view class="list" @click="handleClick('device')">
|
||||||
<view class="item border-bottom">
|
<view class="item border-bottom">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<icon class="t-icon t-icon-shouhou"></icon>
|
<icon class="t-icon t-icon-shouhou"></icon>
|
||||||
<view class="name">设备管理</view>
|
<view class="name">设备管理</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<icon class="icon iconfont icon-arrow-right" color="#999"></icon>
|
<image src="../../static/arrow-right.png" class="iconfont"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<view class="list" @click="handleClick('adult')">
|
<view class="list" @click="handleClick('adult')" v-if="configBox.isshowchild">
|
||||||
<view class="item border-bottom">
|
<view class="item border-bottom">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<icon class="t-icon t-icon-hezuo"></icon>
|
<icon class="t-icon t-icon-hezuo"></icon>
|
||||||
<view class="name">儿童测量</view>
|
<view class="name">儿童测量</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<icon class="icon iconfont icon-arrow-right" color="#999"></icon>
|
<image src="../../static/arrow-right.png" class="iconfont"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="btn ml-15 mr-15" v-if="token" @click="handleOutLogin">退出登录</view>
|
<view class="btn ml-15 mr-15" v-if="token" @click="handleOutLogin">退出登录</view>
|
||||||
<SignUp></SignUp>
|
<SignUp></SignUp>
|
||||||
<userPopup></userPopup>
|
<userPopup></userPopup>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {
|
import {
|
||||||
mapState
|
mapState
|
||||||
} from "vuex";
|
} from "vuex";
|
||||||
import SignUp from '@/components/signup/signup.vue';
|
import SignUp from '@/components/signup/signup.vue';
|
||||||
import userPopup from '@/components/userLogin.vue'
|
import userPopup from '@/components/userLogin.vue'
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
token: null,
|
token: null,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
userPopup,
|
userPopup,
|
||||||
SignUp,
|
SignUp,
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(["user", "configBox", "appTheme"]),
|
...mapState(["user", "configBox", "appTheme"]),
|
||||||
},
|
},
|
||||||
onTabItemTap() {
|
onTabItemTap() {
|
||||||
this.$store.commit("changeEdit", false);
|
this.$store.commit("changeEdit", false);
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
// 导航栏颜色
|
// 导航栏颜色
|
||||||
uni.setNavigationBarColor({
|
uni.setNavigationBarColor({
|
||||||
frontColor: '#ffffff',
|
frontColor: '#ffffff',
|
||||||
backgroundColor: this.appTheme,
|
backgroundColor: this.appTheme,
|
||||||
})
|
})
|
||||||
//
|
//
|
||||||
this.token = uni.getStorageSync("token")
|
this.token = uni.getStorageSync("token")
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleLogin() {
|
handleLogin() {
|
||||||
if (!uni.getStorageSync('token')) {
|
if (!uni.getStorageSync('token')) {
|
||||||
uni.redirectTo({
|
uni.redirectTo({
|
||||||
url: '/pageTwo/login/login'
|
url: '/pageTwo/login/login'
|
||||||
})
|
})
|
||||||
// that.$store.commit("changeUserLogin", true)
|
// that.$store.commit("changeUserLogin", true)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleOutLogin() {
|
handleOutLogin() {
|
||||||
let that = this
|
let that = this
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
title: '友情提示',
|
title: '友情提示',
|
||||||
content: '是否退出登录?',
|
content: '是否退出登录?',
|
||||||
success: function(res) {
|
success: function(res) {
|
||||||
if (res.confirm) {
|
if (res.confirm) {
|
||||||
that.$model.getoutlogin({
|
that.$model.getoutlogin({
|
||||||
sessionid: uni.getStorageSync('sessionid')
|
sessionid: uni.getStorageSync('sessionid')
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
that.$tools.msg(res.message)
|
that.$tools.msg(res.message)
|
||||||
if (res.code != 0) return
|
if (res.code != 0) return
|
||||||
console.log('确定退出', res)
|
console.log('确定退出', res)
|
||||||
uni.clearStorageSync()
|
uni.clearStorageSync()
|
||||||
uni.setStorageSync('sessionid', null)
|
uni.setStorageSync('sessionid', null)
|
||||||
that.$store.commit("changeLogout", false);
|
that.$store.commit("changeLogout", false);
|
||||||
uni.reLaunch({
|
uni.reLaunch({
|
||||||
url: "/pages/index/index"
|
url: "/pages/index/index"
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
} else if (res.cancel) {
|
} else if (res.cancel) {
|
||||||
that.$tools.msg("您已取消操作!");
|
that.$tools.msg("您已取消操作!");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleClick(ind) {
|
handleClick(ind) {
|
||||||
let that = this
|
let that = this
|
||||||
if (!uni.getStorageSync('token')) {
|
if (!uni.getStorageSync('token')) {
|
||||||
uni.redirectTo({
|
uni.redirectTo({
|
||||||
url: '/pageTwo/login/login'
|
url: '/pageTwo/login/login'
|
||||||
})
|
})
|
||||||
// that.$store.commit("changeUserLogin", true)
|
// that.$store.commit("changeUserLogin", true)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (ind == 'adult' && that.configBox.referappid) {
|
if (ind == 'adult' && that.configBox.referappid) {
|
||||||
console.log("跳转儿童小程序", uni.getStorageSync('userid'))
|
console.log("跳转儿童小程序", uni.getStorageSync('userid'))
|
||||||
uni.navigateToMiniProgram({
|
uni.navigateToMiniProgram({
|
||||||
appId: that.configBox.referappid,
|
appId: that.configBox.referappid,
|
||||||
path: 'pages/index/index?userid=' + uni.getStorageSync('userid'),
|
path: 'pages/index/index?userid=' + uni.getStorageSync('userid'),
|
||||||
extraData: {},
|
extraData: {},
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (ind == 'device' && that.configBox.businessappid) {
|
if (ind == 'device' && that.configBox.businessappid) {
|
||||||
uni.navigateToMiniProgram({
|
uni.navigateToMiniProgram({
|
||||||
appId: that.configBox.businessappid,
|
appId: that.configBox.businessappid,
|
||||||
path: 'pages/index/index',
|
path: 'pages/index/index',
|
||||||
extraData: {},
|
extraData: {},
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
navTo(url) {
|
navTo(url) {
|
||||||
if (!uni.getStorageSync('token')) {
|
if (!uni.getStorageSync('token')) {
|
||||||
uni.redirectTo({
|
uni.redirectTo({
|
||||||
url: '/pageTwo/login/login'
|
url: '/pageTwo/login/login'
|
||||||
})
|
})
|
||||||
// that.$store.commit("changeUserLogin", true)
|
// that.$store.commit("changeUserLogin", true)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url
|
url
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleEditClick() {
|
handleEditClick() {
|
||||||
if (!uni.getStorageSync('token')) {
|
if (!uni.getStorageSync('token')) {
|
||||||
uni.redirectTo({
|
uni.redirectTo({
|
||||||
url: '/pageTwo/login/login'
|
url: '/pageTwo/login/login'
|
||||||
})
|
})
|
||||||
// that.$store.commit("changeUserLogin", true)
|
// that.$store.commit("changeUserLogin", true)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.$store.commit("changeEdit", true);
|
this.$store.commit("changeEdit", true);
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style scoped="scoped" lang="scss">
|
<style scoped="scoped" lang="scss">
|
||||||
.content {
|
.content {
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
margin-top: 110px;
|
margin-top: 110px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header-con {
|
.header-con {
|
||||||
height: 95px !important;
|
height: 95px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wxlist {
|
.wxlist {
|
||||||
height: auto;
|
height: auto;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
position: relative;
|
position: relative;
|
||||||
margin: 0 15px;
|
margin: 0 15px;
|
||||||
padding: 0 15px;
|
padding: 0 15px;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
width: auto;
|
width: auto;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 55px;
|
line-height: 55px;
|
||||||
height: 55px;
|
height: 55px;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
position: relative;
|
position: relative;
|
||||||
// border-bottom: 1px solid #dfdfdf;
|
// border-bottom: 1px solid #dfdfdf;
|
||||||
|
|
||||||
.left {
|
.left {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
.name {
|
.name {
|
||||||
float: left;
|
float: left;
|
||||||
color: #333;
|
color: #333;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 27px;
|
left: 27px;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.infolist {
|
.infolist {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin: 15px;
|
margin: 15px;
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
width: 30%;
|
width: 30%;
|
||||||
padding: 10px 0;
|
padding: 10px 0;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right {
|
.right {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
|
|
||||||
text {
|
text {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #666;
|
color: #666;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
|
|
||||||
icon {
|
|
||||||
position: absolute;
|
|
||||||
right: 7px;
|
|
||||||
bottom: 9px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn {
|
}
|
||||||
width: auto;
|
}
|
||||||
margin-top: 50px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/deep/ .header {
|
.btn {
|
||||||
justify-content: center;
|
width: auto;
|
||||||
flex-wrap: wrap;
|
margin-top: 50px;
|
||||||
margin-top: 0;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/deep/ .header text {
|
/deep/ .header {
|
||||||
background: inherit;
|
justify-content: center;
|
||||||
border: none;
|
flex-wrap: wrap;
|
||||||
width: 100%;
|
margin-top: 0;
|
||||||
display: block;
|
}
|
||||||
color: #fff;
|
|
||||||
text-align: center;
|
/deep/ .header text {
|
||||||
margin-right: 0;
|
background: inherit;
|
||||||
font-size: 16px;
|
border: none;
|
||||||
}
|
width: 100%;
|
||||||
</style>
|
display: block;
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
margin-right: 0;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconfont {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -40,7 +40,8 @@
|
||||||
:opts="{enableScroll:true,xAxis:{scrollShow:false,itemCount:3}}" :ontouch="true" />
|
:opts="{enableScroll:true,xAxis:{scrollShow:false,itemCount:3}}" :ontouch="true" />
|
||||||
</view>
|
</view>
|
||||||
<view class="nolist" v-else>
|
<view class="nolist" v-else>
|
||||||
<icon class="iconfont icon-zanwu"></icon>
|
<image src="../../static/zanwu.png" class="iconfont"></image>
|
||||||
|
<text>暂无数据</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
|
@ -261,7 +261,7 @@
|
||||||
},
|
},
|
||||||
cHeight: {
|
cHeight: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 400
|
default: 700
|
||||||
},
|
},
|
||||||
cWidth: {
|
cWidth: {
|
||||||
type: Number,
|
type: Number,
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 18 KiB |