Browse Source

add device manage

voice
刘嘉炜 4 years ago
parent
commit
1565b873ca
  1. 1
      README.md
  2. 2
      src/App.vue
  3. 31
      src/pages.json
  4. 12
      src/pages/index/index.vue
  5. 65
      src/subpackage/device/components/device_name/device_name.vue
  6. 48
      src/subpackage/device/components/store_name/store_name.vue
  7. 180
      src/subpackage/device/pages/device_manage/device_manage.vue
  8. 62
      src/subpackage/device/pages/index/index.vue
  9. 95
      src/subpackage/device/pages/sell_box_test/sell_box_test.vue
  10. 145
      src/subpackage/device/pages/switch_manage/switch_manage.vue
  11. BIN
      src/subpackage/device/static/images/arrow_b2.png

1
README.md

@ -40,3 +40,4 @@ npm run build:mp-weixin
### [蓝湖](https://lanhuapp.com/web/#/item/project/board?pid=9ab56cc5-0b3b-4a9c-8cd0-0cf57751010a)
*分包情况下,H5无法编译image的绝对路径,相对路径正常*

2
src/App.vue

@ -3,7 +3,9 @@
import util from './utils/util';
export default {
onLaunch: function() {
// #ifndef H5
this.updateManager();
// #endif
},
methods: {
isLogin(){

31
src/pages.json

@ -162,6 +162,37 @@
}
],
"subpackages": [
{
"root": "subpackage/device",
"pages": [
{
"path": "pages/index/index",
"style" : {
"navigationBarTitleText": "欧轩智能商家助手"
}
},
{
"path": "pages/switch_manage/switch_manage",
"style" : {
"navigationBarTitleText": "开关管理"
}
},
{
"path": "pages/device_manage/device_manage",
"style" : {
"navigationBarTitleText": "设备管理"
}
},
{
"path": "pages/sell_box_test/sell_box_test",
"style" : {
"navigationBarTitleText": "售货柜管理"
}
}
]
}
],
"globalStyle": {
"navigationBarTextStyle": "white",
"navigationBarTitleText": "欧轩智能商家助手",

12
src/pages/index/index.vue

@ -122,11 +122,16 @@
},
];
const app = getApp();
//#ifndef H5
const uniGetSetting = util.promisify(uni.getSetting);
const uniLogin = util.promisify(uni.login);
const uniGetUserInfo= util.promisify(uni.getUserInfo);
const app = getApp();
const APPID = uni.getAccountInfoSync().miniProgram.appId;
//#endif
export default {
computed: {
@ -140,7 +145,9 @@
}
},
async onLoad() {
// #ifndef H5
try{
util.showLoad();
await this.checkUserAuthor();
util.hideLoad();
@ -153,10 +160,13 @@
util.showNone(err.message || '身份校验失败!');
console.log('onLoad err',err);
}
// #endif
},
onShow(){
// #ifndef MP-WEIXIN
let { indexData } = this;
if(JSON.stringify(indexData)!='{}'&&!!app.isLogin())this.getIndexInfo();
// #endif
},
methods: {
toNoticeList(){

65
src/subpackage/device/components/device_name/device_name.vue

@ -0,0 +1,65 @@
<template>
<view class="device-name">
<image class="dn-logo"></image>
<view class="dn-content">
<view class="dc-store-name">文字文字文字文字文字文字文字</view>
<view class="dc-name">
<image class="dn-ico"></image>
<text class="dn-txt">文字文字文字文字文字文字文字-01</text>
</view>
</view>
</view>
</template>
<script>
export default {
}
</script>
<style lang="scss">
@import '~style/public.scss';
.device-name{
padding: 26upx 22upx;
background-color: #fff;
display: flex;
.dn-logo{
flex-shrink: 0;
flex-grow: 0;
margin-right: 12upx;
width: 72upx;
height: 72upx;
background-color: skyblue;
}
.dn-content{
flex-grow: 1;
min-width: 0;
.dc-store-name{
flex-grow: 1;
margin-bottom: 6upx;
line-height: 40upx;
font-size: 28upx;
color: #333;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.dc-name{
flex-grow: 1;
line-height: 40upx;
font-size: 28upx;
color: #9a9a9d;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
.dn-ico{
margin-right: 12upx;
width: 28upx;
height: 28upx;
background-color: skyblue;
}
}
}
}
</style>

48
src/subpackage/device/components/store_name/store_name.vue

@ -0,0 +1,48 @@
<template>
<view class="store-name">
<image class="sn-logo"></image>
<view class="sn-txt">欧轩智能羽毛球馆(番禺店) </view>
<image class="sn-arrow" mode="aspectFit" src="../../static/images/arrow_b2.png"></image>
</view>
</template>
<script>
export default {
}
</script>
<style>
.store-name{
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 40upx;
height: 108upx;
background-color: #fff;
}
.sn-logo{
flex-grow: 0;
flex-shrink: 0;
margin-right: 20upx;
width: 52upx;
height: 52upx;
background-color: skyblue;
}
.sn-txt{
flex-grow: 1;
line-height: 40upx;
font-size: 28upx;
color: #1a1a1a;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.sn-arrow{
flex-shrink: 0;
flex-grow: 0;
margin-left: 20upx;
width: 28upx;
height: 28upx;
}
</style>

180
src/subpackage/device/pages/device_manage/device_manage.vue

@ -0,0 +1,180 @@
<template>
<view class="device-manage">
<store-name></store-name>
<view class="dm-tit">售货柜管理</view>
<view class="dm-list">
<view class="dl-item" v-for="i in 10" :key="i">
<view class="di-header">
<image></image>
<view class="dh-name">欧轩智能测试柜-01</view>
<view class="dh-test-btn">
<image></image>
<view>测试</view>
</view>
</view>
<view class="di-section">
<view class="ds-stock">
<view>库存<text class="active">充足</text></view>
<view>补货</view>
</view>
<view class="ds-contral">
<view>
设备<text class="active">离线</text>
</view>
<view>更新</view>
<view class="active">
<text>开启售货</text>
<image></image>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import store_name from '../../components/store_name/store_name';
export default {
components: {
'store-name': store_name
}
}
</script>
<style lang="scss">
@import '~style/public.scss';
.dm-tit{
padding: 50upx 40upx 30upx;
line-height: 60upx;
font-weight: 500;
font-size: 44upx;
color: #333;
}
.dm-list{
padding: 0 40upx;
.dl-item{
margin-bottom: 30upx;
background-color: #fff;
}
.di-header{
padding: 24upx 20upx;
display: flex;
justify-content: space-between;
border-bottom: 2upx solid #D8D8D8;
>image{
flex-shrink: 0;
flex-grow: 0;
margin-right: 20upx;
width: 80upx;
height: 80upx;
background-color: skyblue;
}
.dh-name{
flex-grow: 1;
font-size: 32upx;
line-height: 44upx;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.dh-test-btn{
flex-shrink: 0;
margin-left: 20upx;
>image{
display: block;
margin: 0 auto 8upx;
width: 36upx;
height: 36upx;
background-color: grey;
}
>view{
text-align: center;
line-height: 34upx;
font-size: 24upx;
color: #666;
}
}
}
.di-section{
padding: 30upx 20upx;
.ds-stock{
margin-bottom: 40upx;
@include centerFlex(space-between);
>view{
&:first-child{
font-size: 26upx;
line-height: 36upx;
color: #9A9A9D;
>text{
color: #EA5061;
&.active{
color: $themeColor;
}
}
}
&:nth-child(2){
width: 140upx;
height: 56upx;
text-align: center;
line-height: 56upx;
font-size: 28upx;
color: #fff;
border-radius: 10upx;
background-color: $themeColor;
}
}
}
.ds-contral{
@include centerFlex(space-between);
>view{
&:first-child{
font-size: 26upx;
line-height: 36upx;
color: #9A9A9D;
>text{
color: #333333;
&.active{
color: $themeColor;
}
}
}
&:nth-child(2){
margin-left: 28upx;
width: 116upx;
height: 46upx;
line-height: 42upx;
text-align: center;
border: 2upx solid $themeColor;
border-radius: 25upx;
font-size: 24upx;
color: $themeColor;
}
&:nth-child(3){
padding: 0 18upx;
height: 56upx;
line-height: 52upx;
text-align: center;
font-size: 28upx;
color: $themeColor;
border: 2upx solid $themeColor;
border-radius: 10upx;
>image{
margin-left: 6upx;
vertical-align: middle;
width: 32upx;
height: 32upx;
background-color: red;
}
&.active{
border-color: #EA5061;
color: #EA5061;
}
}
}
}
}
}
</style>

62
src/subpackage/device/pages/index/index.vue

@ -0,0 +1,62 @@
<template>
<view class="index-container">
<store-name></store-name>
<view class="ic-section">
<view class="is-list">
<view class="il-item" v-for="i in 15" :key="i">
<view><image></image></view>
<view>照明</view>
</view>
</view>
</view>
</view>
</template>
<script>
import store_name from '../../components/store_name/store_name';
export default {
components: {
'store-name': store_name
}
}
</script>
<style lang="scss">
@import '~style/public.scss';
.ic-section{
padding: 60upx 30upx 0;
.is-list{
display: flex;
flex-wrap: wrap;
.il-item{
margin-bottom: 60upx;
flex-shrink: 0;
flex-grow: 0;
width: 25%;
>view{
&:first-child{
margin: 0 auto 18upx;
width: 108upx;
height: 108upx;
border-radius: 30upx;
background-color: #fff;
@include centerFlex(center);
>image{
width: 80upx;
height: 80upx;
background-color: skyblue;
}
}
&:nth-child(2){
padding: 0 10upx;
line-height: 40upx;
text-align: center;
font-size: 28upx;
color: #333;
@include textHide(1);
}
}
}
}
}
</style>

95
src/subpackage/device/pages/sell_box_test/sell_box_test.vue

@ -0,0 +1,95 @@
<template>
<view class="sell-box-test">
<device-name></device-name>
<view class="sbt-tit">测试货道</view>
<view class="sbt-tip">您可自定义测试某个货道也可以批量测试所有货道</view>
<view class="sbt-section">
<view class="ss-item">
<view class="si-tit">批量测试货道</view>
<view class="si-ipt"><input placeholder="请输入运行圈数" /></view>
<view class="si-btn" hover-class="hover-active">执行</view>
</view>
<view class="ss-item">
<view class="si-tit">自定义测试</view>
<picker><view class="si-ipt"><input placeholder="请选择货道编号" disabled/><image></image></view></picker>
<view class="si-ipt"><input placeholder="请输入运行圈数" /></view>
<view class="si-btn" hover-class="hover-active">执行</view>
</view>
</view>
</view>
</template>
<script>
import device_name from '../../components/device_name/device_name';
export default {
components: {
'device-name': device_name
}
}
</script>
<style lang="scss">
@import '~style/public.scss';
.sbt-tit{
padding: 40upx 40upx 20upx;
line-height: 60upx;
font-size: 44upx;
font-weight: 500;
color: #333;
}
.sbt-tip{
padding-left: 40upx;
margin-bottom: 40upx;
font-size: 28upx;
line-height: 40upx;
color: #9a9a9d;
}
.sbt-section{
padding: 0 24upx;
.ss-item{
margin-bottom: 20upx;
padding: 40upx 50upx 60upx;
border-radius: 10upx;
background-color: #fff;
>picker{
width: 100%;
}
.si-tit{
font-size: 28upx;
line-height: 40upx;
color: #333;
}
.si-ipt{
margin-top: 40upx;
padding: 0 20upx;
height: 112upx;
border: 2upx solid #D8D8D8;
border-radius: 10upx;
@include centerFlex(center);
>input{
flex-grow: 1;
font-size: 28upx;
color: #333;
}
>image{
flex-shrink: 0;
margin-left: 20upx;
width: 40upx;
height: 40upx;
background-color: #333;
}
}
.si-btn{
margin-top: 40upx;
height: 112upx;
line-height: 112upx;
text-align: center;
border-radius: 10upx;
font-size: 32upx;
background-color: $themeColor;
color: #fff;
}
}
}
</style>

145
src/subpackage/device/pages/switch_manage/switch_manage.vue

@ -0,0 +1,145 @@
<template>
<view class="switch-manage">
<store-name></store-name>
<view class="sm-tit">照明管理</view>
<view class="sm-list">
<view class="sl-item" v-for="i in 5" :key="i">
<view class="si-top">
<image></image>
<view class="st-right">
<view class="sr-name">大堂</view>
<view class="sr-bot">
<view>
<text>设备在线</text>
</view>
<image></image>
</view>
</view>
</view>
<view class="si-bottom">
<view>
<image></image>
<view></view>
</view>
<view>
<image></image>
<view></view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import store_name from '../../components/store_name/store_name';
export default {
components: {
'store-name': store_name
}
}
</script>
<style lang="scss">
@import '~style/public.scss';
.sm-tit{
padding-left: 40upx;
padding-top: 52upx;
padding-bottom: 30upx;
line-height: 60upx;
font-size: 44upx;
font-weight: 500;
color: #333;
}
.sm-list{
padding: 0 32upx;
display: flex;
justify-content: space-between;
flex-wrap: wrap ;
.sl-item{
margin-bottom: 30upx;
width: 328upx;
height: 350upx;
border-radius: 10upx;
background-color: #fff;
.si-top{
padding: 20upx 20upx 30upx;
border-bottom: 2upx solid #F2F2F7;
display: flex;
flex-wrap: nowrap;
>image{
flex-shrink: 0;
flex-grow: 0;
margin-right: 20upx;
width: 80upx;
height: 80upx;
background-color: skyblue;
}
.st-right{
flex-grow: 1;
>.sr-name{
margin-bottom: 8upx;
line-height: 44upx;
font-size: 32upx;
color: #333;
@include textHide(1);
}
.sr-bot{
display: flex;
align-items: center;
>view{
margin-right: 8upx;
padding: 0 12upx;
font-size: 20upx;
line-height: 28upx;
border-radius: 28upx;
border: 2upx solid #9A9A9D;
&::before{
content: '';
margin-right: 12upx;
margin-top: -4upx;
display: inline-block;
vertical-align: middle;
width: 8upx;
height: 8upx;
border-radius: 50%;
background-color: $themeColor;
}
}
>image{
flex-shrink: 0;
flex-grow: 0;
width: 32upx;
height: 32upx;
background-color: skyblue;
}
}
}
}
.si-bottom{
padding-top: 30upx;
display: flex;
justify-content: center;
>view{
flex-shrink: 0;
flex-grow: 0;
width: 50%;
background-color: skyblue;
>image{
display: block;
margin: 0 auto 20upx;
width: 100upx;
height: 100upx;
background-color: red;
}
>view{
font-size: 24upx;
line-height: 34upx;
text-align: center;
color: #9a9a9d;
}
}
}
}
}
</style>

BIN
src/subpackage/device/static/images/arrow_b2.png

After

Width: 40  |  Height: 40  |  Size: 251 B

Loading…
Cancel
Save