From 7bfef7997fe201d70299fe0fdc2e04280ce0d5aa Mon Sep 17 00:00:00 2001
From: Sliverber <2622874537@qq.com>
Date: Mon, 25 Mar 2024 19:46:07 +0800
Subject: [PATCH] 11
---
common/http.interceptor.js | 36 +--
pages.json | 168 +++++++-----
pages/device/index.vue | 229 ++++++++++++++++
pages/index/index.vue | 435 ++++++++++++++++++++-----------
pages/login/login.vue | 10 +-
pages/opinion/index.vue | 260 ++++++++++++++++++
pages/shebei/sbdetail.vue | 56 ++--
pages/shebei/setting.vue | 2 +-
pages/tj.vue | 288 ++++++++++++--------
pages/userpage/cbRecord.vue | 6 +-
pages/userpage/chongzhi.vue | 22 +-
pages/userpage/glRecord.vue | 2 +-
pages/userpage/order_detail.vue | 213 ++++++++-------
pages/userpage/shouzhi.vue | 29 ++-
pages/userpage/switchs.vue | 58 +++++
pages/userpage/userSet.vue | 26 +-
pages/wifilist/connect/index.vue | 123 +++++++++
pages/wifilist/index.vue | 142 ++++++++++
static/dianbiao.png | Bin 0 -> 3123 bytes
static/gjsb.png | Bin 0 -> 36616 bytes
static/pz.png | Bin 0 -> 958 bytes
static/pzs.png | Bin 0 -> 1418 bytes
static/qiehuan.png | Bin 0 -> 1464 bytes
static/sm.png | Bin 0 -> 1149 bytes
static/txx.jpg | Bin 0 -> 226180 bytes
static/wifi/gx.png | Bin 0 -> 679 bytes
static/wifi/pwd.png | Bin 0 -> 873 bytes
static/wifi/redian.png | Bin 0 -> 1240 bytes
static/wifi/wifi1.png | Bin 0 -> 1190 bytes
29 files changed, 1619 insertions(+), 486 deletions(-)
create mode 100644 pages/device/index.vue
create mode 100644 pages/opinion/index.vue
create mode 100644 pages/userpage/switchs.vue
create mode 100644 pages/wifilist/connect/index.vue
create mode 100644 pages/wifilist/index.vue
create mode 100644 static/dianbiao.png
create mode 100644 static/gjsb.png
create mode 100644 static/pz.png
create mode 100644 static/pzs.png
create mode 100644 static/qiehuan.png
create mode 100644 static/sm.png
create mode 100644 static/txx.jpg
create mode 100644 static/wifi/gx.png
create mode 100644 static/wifi/pwd.png
create mode 100644 static/wifi/redian.png
create mode 100644 static/wifi/wifi1.png
diff --git a/common/http.interceptor.js b/common/http.interceptor.js
index 146db5e..f07521f 100644
--- a/common/http.interceptor.js
+++ b/common/http.interceptor.js
@@ -20,7 +20,7 @@ const install = (Vue, vm) => {
// },
// });
Vue.prototype.$u.http.setConfig({
- baseUrl: 'http://192.168.2.87/dev-api',
+ baseUrl: 'https://znb.ccttiot.com/dev-api',
loadingText: '努力加载中~',
loadingTime: 800,
// 设置自定义头部content-type
@@ -81,29 +81,29 @@ const install = (Vue, vm) => {
// })
// // return res.result;
// }
- if(res.code == 30003) {
+ if(res.code == 401) {
// res为服务端返回值,可能有code,result等字段
// 这里对res.result进行返回,将会在this.$u.post(url).then(res => {})的then回调中的res的到
// 如果配置了originalData为true,请留意这里的返回值
-
+
// return res.result;
-
- uni.login({
- success: function(ret) {
- console.log("main.js==>res", ret)
- vm.$u.post('/user/login',{"js_code": ret.code}).then(res=>{
- if (res.code == 10003) {
- // console.log("新用户登录")
- uni.setStorageSync('token', res.data);
+
+ // uni.login({
+ // success: function(ret) {
+ // console.log("main.js==>res", ret)
+ // vm.$u.post('/user/login',{"js_code": ret.code}).then(res=>{
+ // if (res.code == 10003) {
+ // // console.log("新用户登录")
+ // uni.setStorageSync('token', res.data);
- } else if (res.code == 200) {
- // console.log("老用户登录",res.data)
- uni.setStorageSync('token', res.data);
+ // } else if (res.code == 200) {
+ // // console.log("老用户登录",res.data)
+ // uni.setStorageSync('token', res.data);
- }
- });
- }
- });
+ // }
+ // });
+ // }
+ // });
}
return res;
diff --git a/pages.json b/pages.json
index 3c3eecb..2b9f72d 100644
--- a/pages.json
+++ b/pages.json
@@ -2,7 +2,7 @@
"easycom": {
"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
},
- "lazyCodeLoading": "requiredComponents",
+ "lazyCodeLoading": "requiredComponents",
"pages": [{
"path": "pages/index/index",
"style": {
@@ -14,9 +14,38 @@
}
},
{
- "path" : "pages/tj",
- "style" :
- {
+ "path": "pages/device/index",
+ "style": {
+ "navigationBarTitleText": "添加设备",
+ "enablePullDownRefresh": false,
+ "navigationBarBackgroundColor": "#3996FD",
+ "navigationBarTextStyle": "#FFFFFF",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/wifilist/index",
+ "style": {
+ "navigationBarTitleText": "添加设备",
+ "enablePullDownRefresh": false,
+ "navigationBarBackgroundColor": "#3996FD",
+ "navigationBarTextStyle": "#FFFFFF",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/wifilist/connect/index",
+ "style": {
+ "navigationBarTitleText": "添加设备",
+ "enablePullDownRefresh": false,
+ "navigationBarBackgroundColor": "#3996FD",
+ "navigationBarTextStyle": "#FFFFFF",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/tj",
+ "style": {
"navigationBarTitleText": "我的",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3996FD",
@@ -25,19 +54,37 @@
}
},
{
- "path" : "pages/upload/upload",
- "style" :
- {
- "navigationBarTitleText": "上传",
- "enablePullDownRefresh": false,
- "navigationStyle": "custom"
- }
-
+ "path": "pages/opinion/index",
+ "style": {
+ "navigationBarTitleText": "",
+ "enablePullDownRefresh": false,
+ "navigationBarBackgroundColor": "#3996FD",
+ "navigationBarTextStyle": "#FFFFFF",
+ "navigationStyle": "custom"
+ }
},
{
- "path" : "pages/my",
- "style" :
- {
+ "path": "pages/userpage/switchs",
+ "style": {
+ "navigationBarTitleText": "",
+ "enablePullDownRefresh": false,
+ "navigationBarBackgroundColor": "#3996FD",
+ "navigationBarTextStyle": "#FFFFFF",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/upload/upload",
+ "style": {
+ "navigationBarTitleText": "上传",
+ "enablePullDownRefresh": false,
+ "navigationStyle": "custom"
+ }
+
+ },
+ {
+ "path": "pages/my",
+ "style": {
"navigationBarTitleText": "我的",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3996FD",
@@ -46,9 +93,8 @@
}
},
{
- "path" : "pages/userpage/chongzhi",
- "style" :
- {
+ "path": "pages/userpage/chongzhi",
+ "style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
@@ -56,9 +102,8 @@
}
},
{
- "path" : "pages/userpage/shouzhi",
- "style" :
- {
+ "path": "pages/userpage/shouzhi",
+ "style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
@@ -66,9 +111,8 @@
}
},
{
- "path" : "pages/shebei/ewm",
- "style" :
- {
+ "path": "pages/shebei/ewm",
+ "style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
@@ -76,9 +120,8 @@
}
},
{
- "path" : "pages/shebei/fenzu",
- "style" :
- {
+ "path": "pages/shebei/fenzu",
+ "style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
@@ -86,9 +129,8 @@
}
},
{
- "path" : "pages/shebei/setting",
- "style" :
- {
+ "path": "pages/shebei/setting",
+ "style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
@@ -96,9 +138,8 @@
}
},
{
- "path" : "pages/userpage/fztx",
- "style" :
- {
+ "path": "pages/userpage/fztx",
+ "style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
@@ -106,9 +147,8 @@
}
},
{
- "path" : "pages/shebei/eletj",
- "style" :
- {
+ "path": "pages/shebei/eletj",
+ "style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
@@ -116,9 +156,8 @@
}
},
{
- "path" : "pages/shebei/sbdetail",
- "style" :
- {
+ "path": "pages/shebei/sbdetail",
+ "style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
@@ -126,9 +165,8 @@
}
},
{
- "path" : "pages/userpage/skzh",
- "style" :
- {
+ "path": "pages/userpage/skzh",
+ "style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
@@ -136,9 +174,8 @@
}
},
{
- "path" : "pages/userpage/bdcard",
- "style" :
- {
+ "path": "pages/userpage/bdcard",
+ "style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
@@ -146,9 +183,8 @@
}
},
{
- "path" : "pages/userpage/order_detail",
- "style" :
- {
+ "path": "pages/userpage/order_detail",
+ "style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
@@ -156,9 +192,8 @@
}
},
{
- "path" : "pages/userpage/cbRecord",
- "style" :
- {
+ "path": "pages/userpage/cbRecord",
+ "style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
@@ -166,9 +201,8 @@
}
},
{
- "path" : "pages/userpage/czRecord",
- "style" :
- {
+ "path": "pages/userpage/czRecord",
+ "style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
@@ -176,9 +210,8 @@
}
},
{
- "path" : "pages/userpage/glRecord",
- "style" :
- {
+ "path": "pages/userpage/glRecord",
+ "style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
@@ -186,9 +219,8 @@
}
},
{
- "path" : "pages/userpage/userSet",
- "style" :
- {
+ "path": "pages/userpage/userSet",
+ "style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
@@ -196,9 +228,8 @@
}
},
{
- "path" : "pages/userpage/czindex",
- "style" :
- {
+ "path": "pages/userpage/czindex",
+ "style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#4473f6",
"enablePullDownRefresh": false,
@@ -206,15 +237,14 @@
}
},
{
- "path" : "pages/login/login",
- "style" :
- {
- "navigationBarTitleText" : "",
- "enablePullDownRefresh" : false,
+ "path": "pages/login/login",
+ "style": {
+ "navigationBarTitleText": "",
+ "enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}
-
+
],
// "subPackages": [{
diff --git a/pages/device/index.vue b/pages/device/index.vue
new file mode 100644
index 0000000..914d7ed
--- /dev/null
+++ b/pages/device/index.vue
@@ -0,0 +1,229 @@
+
+
+
+
+ 设备列表
+ 正在扫描蓝牙设备......
+
+
+
+
+
+
+
+
+ 智能电表
+
+
+ MAC号: TMTM2152354
+
+
+
+ 连接
+
+
+
+
+
+
+
+
+
+ 温馨提示
+
+ 无法扫描到附近设备:
+ 1.确保待连接设备在附近且蓝牙处于打开状态。
+ 2.确保设备未与其他设备进行蓝牙连接。
+ 确保设备未被添加过。
+ ...
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 48f5812..86fd254 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -3,13 +3,14 @@
-
+
设备
+
@@ -23,7 +24,7 @@
{{ deviceInfo.deviceName }}
- 电表号:{{ deviceInfo.deviceId }}
+ 电表号:{{ deviceInfo.deviceId }}
在线
离线
@@ -40,15 +41,15 @@
- 150KWH
+ {{deviceInfo.totalElectriQuantity}}KWH
- 总电量
+ 总用电量
- 0.5元/度
+ {{deviceInfo.price}}元/度
电价
@@ -78,24 +79,30 @@
其他
-
+
异常
-
+
+
+
+
+ 抄表
+
+
@@ -104,21 +111,24 @@
-
+
+
-
+
{{item}}
-
+
+
-
+
-
-
-
-
+
+
+
+
{{item.deviceName}}电表
@@ -134,7 +144,7 @@
-
+
@@ -148,9 +158,10 @@
-
+
-
+
+
@@ -160,12 +171,22 @@
扫码添加
-
+
添加方式
需要添加设备后方可使用
+
+
+
+
+
@@ -177,48 +198,59 @@
return {
bgc: {
backgroundColor: "#F7FAFE",
-
+
},
- deviceInfo:{},
- loadings:false,
- info:'',
- tittxt:"首页",
+ deviceInfo: {},
+ loadings: false,
+ info: '',
+ tittxt: "首页",
titlist: [
- "全部",
- "电表",
- "水表",
-
- ],
- curtitidx:0,
- background: ['color1', 'color2', 'color3'],
- indicatorDots: true,
- autoplay: true,
- interval: 2000,
- duration: 500,
- deviceList:[],
- userType:''
+ "全部",
+ "电表",
+ "水表",
+
+ ],
+ curtitidx: 0,
+ background: ['color1', 'color2', 'color3'],
+ indicatorDots: true,
+ autoplay: true,
+ interval: 2000,
+ duration: 500,
+ deviceList: [],
+ userType: '',
+ addflag: false,
+ sbflag: true,
+ show: false
}
},
onLoad() {
- if(uni.getStorageSync('userType')){
-
-
- this.userType=uni.getStorageSync('userType')
- if(this.userType=='01'){
- this.getDeviceList()
- }else if(this.userType=='00'){
- this.getdevice()
- }
-
- }else{
- this.getuserinfo()
- }
-
-
-
-
+ this.logins()
+
+
+
},
methods: {
+ logins(){
+ if (uni.getStorageSync('userType')) {
+ this.userType = uni.getStorageSync('userType')
+ this.userType='01'
+ if (this.userType == '01') {
+ this.getDeviceList()
+ } else if (this.userType == '00') {
+ this.getdevice()
+ }
+ } else {
+
+ }
+ this.getuserinfo()
+ },
+ // 点击搜索附近设备进行跳转
+ btnserch() {
+ uni.navigateTo({
+ url: '/pages/device/index'
+ })
+ },
+
async initChart() {
let value = 100;
let value2 = this.deviceInfo.surplusElectriQuantity
@@ -341,79 +373,120 @@
return chart
},
// 获取设备详情
- getDevice(){
+ getDevice() {
this.$u.get("app/device/1").then((res) => {
-
-
-
-
- // this.$forceUpdate()
+ // this.$forceUpdate()
if (res.code == 200) {
- this.deviceInfo=res.data
-
- this.loadings=true
+ this.deviceInfo = res.data
+ console.log(this.deviceInfo, 1111);
+ this.loadings = true
}
});
-
+
},
- getuserinfo(){
+ getuserinfo() {
this.$u.get("/app/user/userInfo").then((res) => {
-
-
-
-
- // this.$forceUpdate()
+ // this.$forceUpdate()
if (res.code == 200) {
-
- uni.setStorageSync('userType',res.data.userType)
- this.userType=res.data.userType
- if(this.userType=='01'){
+
+ uni.setStorageSync('userType', res.data.userType)
+ this.userType = res.data.userType
+ if (this.userType == '01') {
this.getDeviceList()
- }else if(this.userType=='00'){
+ } else if (this.userType == '00') {
this.getdevice()
}
-
+
+ }else{
+ this.jmlogin()
}
});
},
- getDeviceList(){
-
+ jmlogin(){
+ let taht =this
+ wx.login({
+ success(res) {
+ if (res.code) {
+ console.log('登录!', res);
+ let data = {
+ wxOpenId: res.code,
+
+ };
+ taht.$u.post('/app/auth/wxLogin',data).then(res=>{
+ if (res.code == 10003) {
+ uni.navigateTo({
+ url:'/pages/login/login'
+ })
+
+ } else if (res.code == 200) {
+ // console.log("老用户登录",res.data)
+ uni.setStorageSync('token', res.token);
+ taht.logins()
+ }
+ });
+ }
+ },
+
+ });
+ },
+ getDeviceList() {
this.$u.get("/app/device/list").then((res) => {
-
- // this.$forceUpdate()
+ // this.$forceUpdate()
if (res.code == 200) {
- this.deviceList=res.rows
+ this.deviceList = res.rows
+ console.log(this.deviceList, '10101010');
+ if (this.deviceList == '') {
+ this.addflag = true
+ this.sbflag = false
+ } else {
+ this.addflag = false
+ this.sbflag = true
+ }
+ // this.addflag = false
+ // this.sbflag = true
- }
+ }
});
-
+
},
- swiperchange(e){
- this.curtitidx=e.detail.current
- console.log(e,'aaaa');
+ swiperchange(e) {
+ this.curtitidx = e.detail.current
+ console.log(e, 'aaaa');
},
- getdevice(){
+ getdevice() {
this.$u.get("/app/device/tenant").then((res) => {
- this.deviceInfo=res.data
+ this.deviceInfo = res.rows[0]
this.initChart()
});
},
- changeidx(index){
- this.curtitidx=index
+ changeidx(index) {
+ this.curtitidx = index
},
- toewm(){
+ toewm() {
uni.navigateTo({
- url:"/pages/shebei/ewm"
+ url: "/pages/shebei/ewm"
})
},
- toydfx(){
+ toydfx() {
uni.navigateTo({
- url:"/pages/shebei/eletj"
+ url: "/pages/shebei/eletj"
})
},
- todetail(id){
+ todetail(id) {
uni.navigateTo({
- url:"/pages/shebei/sbdetail?id="+id
+ url: "/pages/shebei/sbdetail?id=" + id
+ })
+ },
+ // 跳转到抄表
+ tochaobiao(){
+ uni.navigateTo({
+ url:'/pages/userpage/cbRecord'
+ })
+ },
+ // 点击切换设备
+ switchs(){
+ uni.navigateTo({
+ url:'/pages/userpage/switchs'
})
}
}
@@ -426,22 +499,25 @@
}
.page {
- .noDevice{
+ .noDevice {
margin-top: 432rpx;
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
- .img_box{
+
+ .img_box {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: center;
- image{
+
+ image {
width: 252rpx;
height: 252rpx;
}
- .tps{
+
+ .tps {
margin-top: 4rpx;
width: 100%;
text-align: center;
@@ -450,8 +526,8 @@
color: #BDBCBC;
}
}
-
- .addbutn{
+
+ .addbutn {
margin-top: 32rpx;
display: flex;
align-items: center;
@@ -460,12 +536,13 @@
height: 96rpx;
background: #8883F0;
border-radius: 16rpx;
-
+
font-weight: 500;
font-size: 36rpx;
color: #FFFFFF;
}
- .tip{
+
+ .tip {
margin-top: 30rpx;
width: 100%;
text-align: center;
@@ -474,6 +551,7 @@
color: #BDBCBC;
}
}
+
.zhuhu {
margin-top: 20rpx;
padding: 0 40rpx;
@@ -501,7 +579,11 @@
.right {
margin-right: 56rpx;
-
+ .imgs{
+ width: 94rpx;
+ height: 94rpx;
+ vertical-align: bottom;
+ }
.img1 {
width: 76rpx;
height: 76rpx;
@@ -576,6 +658,7 @@
.bot_left {
width: 210rpx;
height: 190.14rpx;
+ margin-right: 34rpx;
.echarts {
width: 210rpx;
@@ -631,6 +714,7 @@
display: flex;
flex-wrap: nowrap;
justify-content: space-around;
+ text-align: center;
.cont {
width: 110rpx;
@@ -644,6 +728,7 @@
font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
font-weight: 400;
color: #262B37;
+ width: 110rpx;
}
.bot {
@@ -679,15 +764,16 @@
margin-top: 32rpx;
display: flex;
flex-wrap: nowrap;
- justify-content: space-around;
-
+ // justify-content: space-around;
+ padding-left: 96rpx;
+ box-sizing: border-box;
.cont {
- width: 112rpx;
+ width: 100rpx;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
-
+ margin-right: 92rpx;
.top {
image {
width: 56rpx;
@@ -724,79 +810,93 @@
color: #FFFFFF;
}
}
-
- .fd{
+
+ .fd {
margin-top: 20rpx;
padding: 0 40rpx;
padding-bottom: 200rpx;
height: 100%;
- .fd_top{
+
+ .fd_top {
display: flex;
flex-wrap: nowrap;
// justify-content: space-between;
align-items: center;
- .fd_tit{
+
+ .fd_tit {
// width: 40%;
-
+
margin-right: 20rpx;
font-size: 36rpx;
font-weight: 400;
color: #95989D;
}
- .act1{
+
+ .act1 {
color: #000000;
}
- .fd_set{
+
+ .fd_set {
margin-left: auto;
+ font-size: 60rpx;
}
}
- .swiper{
- .swiper-item{
-
+
+ .swiper {
+ .swiper-item {
+
height: 100%;
- .card_box{
+
+ .card_box {
margin-top: 34rpx;
display: flex;
flex-wrap: wrap;
- .card{
+
+ .card {
display: flex;
// align-items: center;
margin-top: 20rpx;
width: 658rpx;
height: 282rpx;
background: #fff;
- box-shadow: 0rpx 16rpx 40rpx 0rpx rgba(255,255,255,0);
+ box-shadow: 0rpx 16rpx 40rpx 0rpx rgba(255, 255, 255, 0);
border-radius: 24rpx 24rpx 24rpx 24rpx;
- .card_left{
+
+ .card_left {
width: 310rpx;
margin-top: 46rpx;
margin-left: 50rpx;
- .card_left_tit{
+
+ .card_left_tit {
font-size: 44rpx;
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
font-weight: 500;
color: #8883F0;
}
- .card_left_sta{
-
- margin-top: 15rpx;
- display: flex;
- flex-wrap: nowrap;
- align-items: center;
- image{
- width: 23.32rpx;
- height: 36.47rpx;
-
+
+ .card_left_sta {
+
+ margin-top: 15rpx;
+ display: flex;
+ flex-wrap: nowrap;
+ align-items: center;
+
+ image {
+ width: 23.32rpx;
+ height: 36.47rpx;
+
+ }
+
+ .sta_txt {
+ margin-left: 15rpx;
+ color: #262B37;
+ font-size: 24rpx;
+ font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
+ font-weight: 400;
+ }
}
- .sta_txt{
- margin-left: 15rpx;
- color: #262B37;
- font-size: 24rpx;
- font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
- font-weight: 400;
- }
- }
- .card_left_no{
+
+ .card_left_no {
margin-top: 15rpx;
font-size: 24rpx;
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
@@ -804,20 +904,57 @@
color: #95989D;
}
}
- .card_right{
+
+ .card_right {
margin-top: 60rpx;
margin-left: auto;
margin-right: 94rpx;
- image{
+
+ image {
width: 63.04rpx;
- height:167.48rpx ;
+ height: 167.48rpx;
}
}
}
}
}
}
-
+
+ }
+ }
+
+ .popup-content {
+ text-align: center;
+
+ text {
+ display: block;
+ }
+
+ .add {
+ margin-top: 10rpx;
+ font-size: 36rpx;
+ color: #000000;
+ line-height: 80rpx;
+ }
+
+ .saoma {
+ margin-top: 68rpx;
+ font-size: 40rpx;
+ color: #000000;
+ line-height: 54rpx;
+ border: 1px solid #ccc;
+ padding: 30rpx 0;
+ box-sizing: border-box;
+ }
+
+ .sousuo {
+ margin-top: 46rpx;
+ font-size: 40rpx;
+ color: #000000;
+ line-height: 54rpx;
+ border: 1px solid #ccc;
+ padding: 30rpx 0;
+ box-sizing: border-box;
}
}
\ No newline at end of file
diff --git a/pages/login/login.vue b/pages/login/login.vue
index 52d03b5..2ccbf5f 100644
--- a/pages/login/login.vue
+++ b/pages/login/login.vue
@@ -53,9 +53,9 @@
this.chooseType=false
this.login=true
if(num==1){
- this.usertype='00'
- }else{
this.usertype='01'
+ }else{
+ this.usertype='00'
}
},
getPhoneNumber(e) {
@@ -106,9 +106,9 @@
async ceshi() {
this.$u.get("/app/user/userInfo").then((res) => {
console.log('进入跳转');
- // uni.switchTab({
- // url: '/pages/index/index'
- // })
+ uni.switchTab({
+ url: '/pages/index/index'
+ })
});
},
}
diff --git a/pages/opinion/index.vue b/pages/opinion/index.vue
new file mode 100644
index 0000000..b4c95ef
--- /dev/null
+++ b/pages/opinion/index.vue
@@ -0,0 +1,260 @@
+
+
+
+
+
+ 反馈类型 ✲
+
+
+
+ 功能异常
+
+
+ 意见与建议
+ ✔
+
+
+ 其他
+
+
+
+
+
+
+ 问题描述 ✲
+
+
+ 请详细描述您的问题或建议
+
+ {{ currentCount }}/500
+
+
+
+
+
+ 上传图片
+
+
+
+
+ 上传问题图片可以让问题快速解决哦!
+
+
+
+
+ 联系方式
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/shebei/sbdetail.vue b/pages/shebei/sbdetail.vue
index a8916b0..9f52c26 100644
--- a/pages/shebei/sbdetail.vue
+++ b/pages/shebei/sbdetail.vue
@@ -40,15 +40,15 @@
- 150KWH
+ {{deviceInfo.totalElectriQuantity}}KWH
- 总电量
+ 总用电量
- 0.5元/度
+ {{deviceInfo.price}}元/度
电价
@@ -78,19 +78,19 @@
其他
-
+
抄表
-
+
归零
-
+
@@ -106,21 +106,18 @@
-
+
房租提醒
-
+
设置
-
-
-
@@ -276,7 +273,7 @@
// console.log( this.$refs.chartRef,'1111');
const chart = await this.$refs.chart.init(echarts);
- console.log(option);
+ console.log(option,11);
chart.setOption(option)
// chart.resize({
// width: uni.upx2px(210), // Convert 210rpx to pixels
@@ -288,15 +285,12 @@
// 获取设备详情
getDevice(id){
this.$u.get("/app/device/"+id).then((res) => {
-
-
-
-
// this.$forceUpdate()
if (res.code == 200) {
this.deviceInfo=res.data
- console.log(this.deviceInfo.deviceId,'resres');
+ console.log(this.deviceInfo,'resres');
this.loadings=true
+ this.initChart()
}
});
@@ -324,6 +318,29 @@
})
},
+ // 其他部分 点击进行跳转
+ topage(num){
+ if(num == 0){
+ uni.navigateTo({ //抄表
+ url:'/pages/userpage/cbRecord'
+ })
+ }else if(num == 1){ //归零
+ uni.navigateTo({
+ url:'/pages/userpage/glRecord'
+ })
+ }else if(num == 2){ //异常
+
+ }else if(num == 3){
+ uni.navigateTo({ //房租提醒
+ url:'/pages/userpage/fztx'
+ })
+ }else if(num == 4){ //设置
+ uni.navigateTo({
+ url:'/pages/userpage/userSet'
+ })
+ }
+ }
+
}
}
@@ -436,7 +453,7 @@
.bot_left {
width: 210rpx;
height: 190.14rpx;
-
+ margin-right: 34rpx;
.echarts {
width: 210rpx;
height: 190.14rpx;
@@ -498,8 +515,9 @@
flex-wrap: wrap;
align-items: center;
justify-content: center;
-
+ text-align: center;
.top {
+ width: 110rpx;
font-size: 32rpx;
font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
font-weight: 400;
diff --git a/pages/shebei/setting.vue b/pages/shebei/setting.vue
index c32a210..f12c932 100644
--- a/pages/shebei/setting.vue
+++ b/pages/shebei/setting.vue
@@ -124,7 +124,7 @@
bgc: {
backgroundColor: "#F7FAFE",
},
- showloading: true,
+ showloading: false,
showfz: false,
show: true,
list: [{
diff --git a/pages/tj.vue b/pages/tj.vue
index abdcc04..e304379 100644
--- a/pages/tj.vue
+++ b/pages/tj.vue
@@ -4,28 +4,30 @@
统计
-
- 2024年01月
+
+
+
+
+ {{yeartime.year + '年' + yeartime.month + '月'}}
本月用电量(度)
- 25.36
+ {{quantity}}
-
-
+
- 2023年04月
+ {{yeartime.year + '年' + yeartime.month + '月' + item.createDay + '日'}}
- 5.30 度
+ {{item.recharge}}元
@@ -42,7 +44,23 @@
},
data() {
return {
-
+ params: {
+ year: true,
+ month: true,
+ day: false,
+ hour: false,
+ minute: false,
+ second: false
+ },
+ show: false,
+ yeartime: {
+ year: '',
+ month: ''
+ },
+ timelist: '',
+ quantity: 0, //电量
+ chartData: [],
+ chartday:[]
}
},
onLoad() {
@@ -51,124 +69,177 @@
// this.initChart()
// }, 300);
// this.initChart()
+
+ // 首次加载页面给现在的时间
+ const now = new Date();
+ this.yeartime.year = now.getFullYear()
+ this.yeartime.month = now.getMonth() + 1
+ this.gettime()
},
+ onShow() {
+
+ },
+
methods: {
- generateWaveData(length) {
- const data = [];
- for (let i = 0; i < length; i++) {
- const y = Math.sin((i / (length - 1)) * Math.PI * 2); // 正弦函数生成波浪形状的y值
- data.push((y + 1) * 50); // 映射到0-100的范围
- }
- return data;
+ // 点击获取时间
+ confirm(e) {
+ this.yeartime = e
+ this.gettime()
},
+ // 进行获取用电量请求
+ gettime() {
+ let data = {
+ year: this.yeartime.year,
+ month: this.yeartime.month,
+ groupBy: 'create_day'
+ }
+ this.$u.get('app/bill/landlordCount', data).then((res) => {
+ if (res.code == 200) {
+ this.timelist = res.data
+ this.chartData = this.timelist.map(item => item.recharge / 0.5)
+ this.chartday = this.timelist.map(item => item.createDay + '日')
+ console.log('用电' +this.chartData,'时间' + this.chartday)
+ // 求用电总度数
+ this.quantity = 0
+ for (let i = 0; i < this.timelist.length; i++) {
+ this.quantity += this.timelist[i].recharge / 0.5
+ }
+ return this.quantity
+ }
+ })
+ },
+
+
+ generateWaveData(length) {
+ const data = []
+ for (let i = 0; i < length; i++) {
+ const y = Math.sin((i / (length - 1)) * Math.PI * 2) // 正弦函数生成波浪形状的y值
+ data.push((y + 1) * 50) // 映射到0-100的范围
+ }
+ return data
+ },
+
async initChart() {
console.log('111111');
// let _this = this
-
- const option = {
- grid: {
- left: 50,
- right: 10,
- top: 10,
- bottom: 30,
- },
- xAxis: {
- type: 'category',
- boundaryGap: false,
- axisLine: {
- show: false,
- },
- axisTick: {
- show: false,
- },
- axisLabel: {
- show: true,
- color: '#fff',
- fontSize: 11,
- rotate: 0,
- },
- splitLine: {
- show: false,
- },
- data: ['1日', '2日', '3日', '4日', '5日', '6日', '7日'],
- },
- yAxis: {
- show: true,
- axisLine: {
- show: false,
- },
- axisTick: {
- show: false,
- },
- axisLabel: {
- show: true,
- color: '#fff',
- fontSize: 11,
- formatter: function (value) {
- // 保留两位小数,没有小数时显示00
- return value+'.00'+ '度'
- },
- },
- splitLine: {
- show: false,
- },
- },
- visualMap: {
- type: 'piecewise',
- show: false,
- dimension: 0,
- seriesIndex: 0,
- pieces: [{
- gt: 1,
- lt: 3,
- color: 'rgba(0, 0, 180, 0.4)',
- },
- {
- gt: 5,
- lt: 7,
- color: 'rgba(0, 0, 180, 0.4)',
- },
- ],
- },
- series: [{
- type: 'line',
- smooth: 0.6,
- symbol: 'none',
- lineStyle: {
- color: '#E0DBFF',
- width: 4,
- },
- areaStyle: {
- normal: {
- color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
- offset: 0,
- color: '#B4B0F7'
- }, ]),
- },
- },
- data: [20.00, 56.00, 30.00, 58.00, 25.00, 30.00, 45.00],
- }],
- };
- // console.log( this.$refs.chartRef,'1111');
- const chart = await this.$refs.chart.init(echarts);
- console.log(option);
+ const option = {
+ grid: {
+ left: 60,
+ right: 10,
+ top: 10,
+ bottom: 30,
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ axisLine: {
+ show: false,
+ },
+ axisTick: {
+ show: false,
+ },
+ axisLabel: {
+ show: true,
+ color: '#fff',
+ fontSize: 11,
+ rotate: 0,
+ },
+ splitLine: {
+ show: false,
+ },
+ data: ['1日', '2日', '3日', '4日', '5日', '6日', '7日'],
+ },
+ yAxis: {
+ show: true,
+ axisLine: {
+ show: false,
+ },
+ axisTick: {
+ show: false,
+ },
+ axisLabel: {
+ show: true,
+ color: '#fff',
+ fontSize: 11,
+ formatter: function(value) {
+ // 保留两位小数,没有小数时显示00
+ return value + '.00' + '度'
+ },
+ },
+ splitLine: {
+ show: false,
+ },
+ },
+ visualMap: {
+ type: 'piecewise',
+ show: false,
+ dimension: 0,
+ seriesIndex: 0,
+ pieces: [{
+ gt: 1,
+ lt: 3,
+ color: 'rgba(0, 0, 180, 0.4)',
+ },
+ {
+ gt: 5,
+ lt: 7,
+ color: 'rgba(0, 0, 180, 0.4)',
+ },
+ ],
+ },
+ series: [{
+ type: 'line',
+ smooth: 0.6,
+ symbol: 'none',
+ lineStyle: {
+ color: '#E0DBFF',
+ width: 4,
+ },
+ areaStyle: {
+ normal: {
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ offset: 0,
+ color: '#B4B0F7'
+ }, ]),
+ },
+ },
+ data:[10,20,30,50,20,10,60],
+ }],
+ };
+ const chart = await this.$refs.chart.init(echarts)
+ console.log(option,'111');
+ // 给折线图赋值
+ option.series[0].data = this.chartData
+ option.xAxis.data = this.chartday
chart.setOption(option)
- return chart
- },
+ return chart
+ },
+
}
}
+
\ No newline at end of file
diff --git a/pages/userpage/shouzhi.vue b/pages/userpage/shouzhi.vue
index c7b497e..a7c5d46 100644
--- a/pages/userpage/shouzhi.vue
+++ b/pages/userpage/shouzhi.vue
@@ -4,17 +4,17 @@
height='36'>
-
+
用户充值
- 2023-12-11 15:12:11
+ {{item.createTime}}
- +220.00度
+ +{{item.money / item.unitPrice}}度
- ¥60.00
+ ¥{{item.money}}
@@ -33,14 +33,29 @@
bgc: {
backgroundColor: "#F7FAFE",
},
- obj:{}
+ obj:{},
+ list:''
}
},
onLoad() {
-
+ this.getList()
},
methods: {
-
+ // 请求收支列表
+ getList(){
+ this.$u.get("/app/bill/list").then((res) => {
+ if (res.code == 200) {
+ this.list = res.rows
+ console.log(this.list,'000');
+ }
+ });
+ },
+ // 点击查询收支详情
+ btndetail(id){
+ uni.navigateTo({
+ url:'/pages/userpage/order_detail?id=' + id
+ })
+ }
}
}
diff --git a/pages/userpage/switchs.vue b/pages/userpage/switchs.vue
new file mode 100644
index 0000000..5b04f8c
--- /dev/null
+++ b/pages/userpage/switchs.vue
@@ -0,0 +1,58 @@
+
+
+
+
+ 点击切换设备
+ +
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/userpage/userSet.vue b/pages/userpage/userSet.vue
index 9d0386a..94bae78 100644
--- a/pages/userpage/userSet.vue
+++ b/pages/userpage/userSet.vue
@@ -88,7 +88,7 @@
- 当前为房东模式
+ 当前为{{mode}}
@@ -123,7 +123,7 @@
-
+
退出登录
@@ -150,10 +150,30 @@
label: '用户模式'
}
],
+ mode:'房东模式',
}
},
methods: {
-
+ // 点击更换用户模式
+ confirm(e){
+ // console.log(e);
+ this.mode = e[0].label
+ this.gettype()
+ },
+ // 请求修改用户类型
+ gettype() {
+ let type = ''
+ if(this.mode == '房东模式'){
+ type = '01'
+ }else if(this.mode == '用户模式'){
+ type = '00'
+ }
+ this.$u.put('/app/user/changeType?userType=' + type).then((res) => {
+ if (res.code == 200) {
+ console.log(res)
+ }
+ })
+ },
}
}
diff --git a/pages/wifilist/connect/index.vue b/pages/wifilist/connect/index.vue
new file mode 100644
index 0000000..439c538
--- /dev/null
+++ b/pages/wifilist/connect/index.vue
@@ -0,0 +1,123 @@
+
+
+
+
+ WiFi选择
+ 请输入您的WiFi网络详细信息
+
+
+
+
+ WiFi路网名称
+
+
+
+
+
+ 密码
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/wifilist/index.vue b/pages/wifilist/index.vue
new file mode 100644
index 0000000..e4350c8
--- /dev/null
+++ b/pages/wifilist/index.vue
@@ -0,0 +1,142 @@
+
+
+
+
+ WiFi选择
+ 请选择您需要连接的wifi名称
+
+
+
+
+
+
+ Device-2215
+ connected
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/static/dianbiao.png b/static/dianbiao.png
new file mode 100644
index 0000000000000000000000000000000000000000..4c14bf08667ba48e192001ea1f19e18a6a19b2e8
GIT binary patch
literal 3123
zcmV-349xS1P)K00001b5ch_0Itp)
z=>Px=?MXyIR9Htu~)4lGm4!kPicoO#op)e{Q*b*q99hZ0r|Vc+TEeZjx7n-Hr%xj`6~m3|*YMiw
z{{uG|g*r5lPNtAqn8)hM8s-+}A$E7OvQ#WV0t5C}liR6qa}C|%dl
z>2|QczmLU5^4^DTw}+uQgs%G#jYJ?JIgzTWVs3U8Vtf0xtW>HHLLd=OAQ%cjRW<%h
z2iL0OO+zRY;t-}%2`^FMP=vn_g4UD}LIJx@2YXB>
z^iS~j-k;=*^O?(687Wg!QHWZtE@>O8s?a8QwTUsoMm$r1cb(!)*U6YGy=~Krp0jKR
zKA#Se&ljYsXbg0^nYS&-+p(u)RH1JasEUf$um2Zfa}f~sUB`iI0e+t!ndv2HLWj?<
zL+tJCOWStX0zE`Vg)-hdos&^|7lIRU>G`j~A4oyfRm9f;GaJOxY6d6QP9maDL8ma5
zN@Y13SqKDza2%VBYpMcOQ@J1}2gez}*Pr_#zLWh=jj~=JoFHZCRn4761L^CQQNk;Z~_4xqTB7sY&MI&(TDEyAruTl(-lU8
z3WYOI9uO8O46f^VI3+mIizyHcspkJa%30
zoEGKk8x0^@t(JW0rJvxt-+ciDEum@%1_Lnq1}w*dDm18y!hE2qIw#D-8K91n=V2T8
zy-!`h0}tE>(Qdcpx4!i>EhL(K7Q^D%H<-Kmljd0
zHDFl|R##V0uh&uD+r!q@5i|~(sO(p8^w=?U+D&Y4@8Bmd{}f;P!k^%=M<1p{b>%<*
z)3f;M-+hDo6p@ND&a#KmF?moNDOuzAN+}?TfLxd3JuoeN@lT)dj2ea^pLyna{QWnd
z!ja8Q2*&{w<^NR^Epq2ENs>o49^I6yRea*YBi{DOC?)CAH=oA6ci)5ReuWEQE&fT8_aioX
z>cmM%*eDiqSX()ad_IdrA_>QFVe~tQPbX0-7m=RNz%)&SLP6wwk==2Sod+4;6
zs9vupzyHEzPSkz(ybsM*0|CDe=5Pd`u6fK(4N%iynj-`Pehi1E_ihfkja!zBw$a0b
z5B@G5J3ofh3ol;A*T399KU2Tf#dNw%Ga(VbL=RjX#t58^w}90{T_TiKTLCo
z^}}nh?7_sS3F#{1c0$Y!I1aJ8?KM12gKRd@DwGfi1u!&v2(2GMp;U%tTihKonFY+u
zq~N&b#OR21XqKhnJapZUN~HqFwPBeiPThSkdi4g{w|8K*nt-O@H_n`c&;y*Xu|i_Z
zTDCDUYN3$N;?^e?5a%y^64C{R-7bcPfk-rp#kF-Ps>TVU9Vv>+
zMr~)j{k~zNUaR7VFFp@l*RZ$0kGqKnsuj%4%-~}WKE(W4sq8a{4u?bBcmMq?B3^s#
zH9YaeALH3)pTqk4Vb3U$^uVyWd$yVlΝ`q&f*PT4XAg0IBVro!dyK)11t`y)q}1
zTJpt<7xA^P{S7N>+wFTs`#lT2ZWsUh(q)9gVU~@w$lBT}>Wv1@oOuNO!GJxbkfc&6
z7>2>sRxX!Wz8_j%!SNF(yqJEKehH06oHmls|
zM*R^K-N&Km9Mtih?>vKxfBqMU#}n@v?R8C%ntu7^mv~TENH3yXEW#X(I2@n(gU{j@
z2d|)MR`93~s~1Kj9Kr{Db!gohHa0dfJstCmQj6}ihw%9V
zXf_*6X{0s?f0Ph9kHup6&;F~p(s&(7-z;W>kK*P*5F-cpWV#Ep-9&nR0f|K113wuh
zzEs3}l6;~*-WAakvCFLDDQFhQir~h_2a^`bpbbE~JMSw}fG6F5PTb~H0PgF}awAc}>uym8|uLxi?YH`i)4)ao@vBT-aqRZPcX
z$Yd6|_m@f~96o%Q@1c9Qwzl98_(2MAetsUuj%`8Qx^-Ljx&~KCuV?Uzxm=dLrgK`z
zaUGqM5qiBIg252iH7!8c
zZ8lr{9d%HuH1br}d~j*FVEL|LAu|hc&}d8Yh&tvZ=EUx-AI2?(iJKV3<9ko#Ns7OB
zPKTlh=7MM}L^$n9+j7PX?ulCOHAyKM^Q1X>!^m)Hk@t+U5>&h?B@zwNbW)Sj_4>?M
zfqP!D6%Q)jK<14?6D@k@kT%h@G@s7Rr)b`<^1w^tAQ+5{HU8L|0Laa9i>XK$^YJOrGn%F&o84jB`|S^Y
zh+EA;vks#_K&{nBI+Z{$;HU1$y)3gd53#>TM)TY;-+1c=oaik4a)6_U7T`K2G7HPd
z=5|r9H*nXfdw3qWcKr%=b0u_a1wlw0%FHqyk{rq`&C&KNGM6iI_O^F&XiF6#UB`N6
z20qO}G&+q!v53Agz}D7rRwU)UBCfu(jqV5t`*fV#Jj8Ptam3Q{JVYU1mic^%V@c|+
zykAEm5kq=*2DUY1Y18ZXVOtV2GqWs;DIxWP7Mkro(sL;!<5A8lO*c#AX?C|DE0sF`
zI1r-2${YdoE=WEC&R8rAha+f;22EGF$9rR?0$2DE)JcFy9(ETNW+AFHMjmvSM08Rp
z*(|WN$-}Rr3XIGVup%z1$b!d**Gg2qF8X8V62o`Zf@QLI!{twq@uhmmo>}&u4
N002ovPDHLkV1f%J>!bhx
literal 0
HcmV?d00001
diff --git a/static/gjsb.png b/static/gjsb.png
new file mode 100644
index 0000000000000000000000000000000000000000..beb5292d38b80df509b12bec1bd3e9f98da76a1a
GIT binary patch
literal 36616
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
literal 0
HcmV?d00001
diff --git a/static/pz.png b/static/pz.png
new file mode 100644
index 0000000000000000000000000000000000000000..4a92232153d00088436e658f49828c93c8ad036e
GIT binary patch
literal 958
zcmV;v13~Px&cu7P-R9HvNnBQw0RTRh1+1a>RsP-q+sFXnIL(|d}S`>@E6nqjYKExt@k@g|x
zO)I!8o0;=HGpkwcQw^d4@kvn9KcEKj5AdNxizfD=v`96UZcCHa+DS=H=PtWt8(NrY
z*)SJ&cVN%G_jAwr&OP@YrmhCyB{Lgi=1a-*HvnEBqA@eOrm9~6*hEAhnc07;+5qqj
z5&1-90Hpm3BJu_X2Ex(N(R%>KiKvu(CIH+~)ry&IAfi(MmH>d6e-V+h4u#!U^2bRc
zasW%+fa~=fhT(7!1i!U_qA1$Ey1KeoM9!=iz@z4I-YyghyIUU0O9OC<0qg^CJ`Yg7
z@4xPVA^=X9xoE7a?~2Ixd7x3%H}j^Uh{wmrch>9mi+S*nh`g3R4FPx`z}I>35P-w^
z(-44d0Ge4n1famo$IR^6NAz>Tb9s_Gk=H8edv?aj^2Z6=~^%>0&!e71IC04@!U
zmCNP0QmNd^0>&cpv8sNarc>K1e-hDoGjkb!#Pw@58XFfE7mI^~gG(;MtLnEz^qiR;
z@I3FZ@B5e1j30*KtC=)3F)^`ud3kw8L|%3iw7vB+5yi|rPejMfYzV;L0DdK+5oR7v
zo48%p;HjypKDVkgD_9HUl3}S-`m$QBUhec4k(
zWA|bJyw}&)ceYlmU9H#aFRrYt97^k<)_EvPa$O6=%uNw-r^pA*0TI!U$^Q0lRv-ZT
zpGre6WaV=Cbfr?c(jijSo6Tl(`{d+g`~*PJQvo?q&(F`#v|)ZXv*U@@ov2%YS%Fk_
zD#uwOVZ+-b<|^0^9G
z=3LfmQ3Dus2eeOAwbtv&(u|)J96ohGJ5=?rG#z?v1K^!beP{!K+r6GJ&G;>#AP7G6
zJnu@DB$#IKv^GHy93`R~VHp1OU?1{*e@_%ee*oA^M9$y>fbX2pi0A|}|05z_Rjbvl
zrBdkwX1?ui9PS9bu&@xcb5W~`l3WHtclZ;LfSKK8K#8c3q(T9(>dJVo>^C$tgxT5I
gE&cud2RkLb``o+Wc_u$tM*si-07*qoM6N<$f}x?yMgRZ+
literal 0
HcmV?d00001
diff --git a/static/pzs.png b/static/pzs.png
new file mode 100644
index 0000000000000000000000000000000000000000..059b60b4185201e8fbd136d556d37af05e8c5e36
GIT binary patch
literal 1418
zcmV;51$Fv~P)Px)L`g(JRCr$PoLy*KMHI*X=kC@NvDiu#^+5%t24cZt-uhsrfr=kkAA%8zR)mTm
zRKa3PHuwH#S<#>nB}FPew4h=o1uF^)#V;sYK~cd_Mf@l}D3V|U%0_8++_T;r*LC-@
zyYB2Z+qrMaotZo5w`b1z-1CEBJzTV
zQ|H$-#@t^jm2UBH>cGk6a#v@w*?kg4(VU1}LbB8kL!y&52uVxQdr%#!9!`p@c{mN=
z7-R1B!>Iur4L2T+htqlv^PZE!jO0NdkbSmleOPG??>XLcTK62UbJ7E{*Ex;&_*8y2
zdXCP~20^gdTD!KHXdog#hhg|}Gi5tfre`|G7!z4**@__|G7?46JFV3Dzh!%p%1NFq
zF9W?va!)e`kkpC)uSnk4O!-cgaSn&%Y7yCOtsRUzy}E4ZSP%rmVHkeej3LGttzQ6e
zBrd-wA}6f1FY6LYGi|g}#wi>H1K=|N>j8XO)xpyw?`*ciB(DN+u&R7k7a#!~C3$zV
z?X*(Pxy~`hY_-n{09}*+JP3l9(mcx;b643L4+FTE
z)t0Gmi^y^dZzg%b}s4YX^6AQ-Dn)iGFwb65j$T)r3+(AcBFyg%W@>HOhLCNtb<
z$mue*wf1PT??<&q*~4xYk)77suN}j2JD<~NSg8mE@RNw_kD|z=jR%r%0XReQ_UdwR
zkap%d`Yfl}Dg}=O`UeU=d0H-_QF>xFE`f-7Nmk~wLWCz<_ZpyjNNuHF?
z=Wi^(KwjTLBXlP4co>GW9c=SoO*zk2t~%b0c0HUF${tQS9Je~B8}9G&8P2nn%g(!Q
z+rvpA?BO(k(>0yr+WlR$@3WOpE_Z+Wt+VdReQx@%a>+GoMQ@PhUt$Sic=aBq!
zVPWCIsi~=C2Se*E^;r#)=j-I0egJ!FX=!PsP$=kptiQ?xNN%v!9+P;#-5Vso^JM-e
z;J+(R@q~Onzp*k$?Y*Tjfn_)(FE190zxz{A{()5u=WzgA&(-sDNL~bBAApHu9jx}`
zrDv_Ry65g5k{_NcL#}-4iLTA-sY}OZXJ>cM%*-rRULR@!=s`pJzw!nn-Q!!i^vJ5D
zLcakcsoQ*YGsB*0o9n`H
Y3$IX4esUeebN~PV07*qoM6N<$g7|E?Q2+n{
literal 0
HcmV?d00001
diff --git a/static/qiehuan.png b/static/qiehuan.png
new file mode 100644
index 0000000000000000000000000000000000000000..dda75445337090e5c84e6955fc3e95c287af582a
GIT binary patch
literal 1464
zcmV;p1xNacP)Px)a!Eu%RA@u(nQLqmRTRhnXJ(f!UFeP$B8UZBJ^&vOv8@p#7?D?s8lun$Y9J<(
z@WF&cnr^%7cGxX_B*sJ&6C@ZT4>7HviCTH6i39