Browse Source

Merge branch 'master' of http://git.dgtis.com/qxp/dorm-manager

wangjinbiao 5 years ago
parent
commit
e6c757e737
39 changed files with 1813 additions and 2 deletions
  1. 9 1
      dorm-manager-wx/app.json
  2. 38 0
      dorm-manager-wx/app.wxss
  3. BIN
      dorm-manager-wx/images/baobiaoguanli.png
  4. BIN
      dorm-manager-wx/images/clock.png
  5. BIN
      dorm-manager-wx/images/head.png
  6. BIN
      dorm-manager-wx/images/icon-message.png
  7. BIN
      dorm-manager-wx/images/icon-phone.png
  8. BIN
      dorm-manager-wx/images/query.png
  9. BIN
      dorm-manager-wx/images/visitorcheck.png
  10. BIN
      dorm-manager-wx/images/yujing-2.png
  11. 102 0
      dorm-manager-wx/pages/teacher/facephoto/facephoto.js
  12. 3 0
      dorm-manager-wx/pages/teacher/facephoto/facephoto.json
  13. 42 0
      dorm-manager-wx/pages/teacher/facephoto/facephoto.wxml
  14. 112 0
      dorm-manager-wx/pages/teacher/facephoto/facephoto.wxss
  15. 104 0
      dorm-manager-wx/pages/teacher/menu/menu.js
  16. 3 0
      dorm-manager-wx/pages/teacher/menu/menu.json
  17. 23 0
      dorm-manager-wx/pages/teacher/menu/menu.wxml
  18. 74 0
      dorm-manager-wx/pages/teacher/menu/menu.wxss
  19. 100 0
      dorm-manager-wx/pages/teacher/pass/pass.js
  20. 3 0
      dorm-manager-wx/pages/teacher/pass/pass.json
  21. 67 0
      dorm-manager-wx/pages/teacher/pass/pass.wxml
  22. 93 0
      dorm-manager-wx/pages/teacher/pass/pass.wxss
  23. 162 0
      dorm-manager-wx/pages/teacher/statistics/statistics.js
  24. 3 0
      dorm-manager-wx/pages/teacher/statistics/statistics.json
  25. 106 0
      dorm-manager-wx/pages/teacher/statistics/statistics.wxml
  26. 184 0
      dorm-manager-wx/pages/teacher/statistics/statistics.wxss
  27. 84 0
      dorm-manager-wx/pages/teacher/visitorcheck/visitorcheck.js
  28. 3 0
      dorm-manager-wx/pages/teacher/visitorcheck/visitorcheck.json
  29. 22 0
      dorm-manager-wx/pages/teacher/visitorcheck/visitorcheck.wxml
  30. 78 0
      dorm-manager-wx/pages/teacher/visitorcheck/visitorcheck.wxss
  31. 105 0
      dorm-manager-wx/pages/teacher/visitorcheckdetail/visitorcheckdetail.js
  32. 3 0
      dorm-manager-wx/pages/teacher/visitorcheckdetail/visitorcheckdetail.json
  33. 16 0
      dorm-manager-wx/pages/teacher/visitorcheckdetail/visitorcheckdetail.wxml
  34. 73 0
      dorm-manager-wx/pages/teacher/visitorcheckdetail/visitorcheckdetail.wxss
  35. 77 0
      dorm-manager-wx/pages/teacher/warning/warning.js
  36. 3 0
      dorm-manager-wx/pages/teacher/warning/warning.json
  37. 30 0
      dorm-manager-wx/pages/teacher/warning/warning.wxml
  38. 83 0
      dorm-manager-wx/pages/teacher/warning/warning.wxss
  39. 8 1
      dorm-manager-wx/project.config.json

+ 9 - 1
dorm-manager-wx/app.json

@@ -45,7 +45,15 @@
     "pages/student/application/application",
     "pages/student/facephoto/facephoto",
     "pages/student/statistics/statistics",
-    "pages/student/pass/pass"
+    "pages/student/pass/pass",
+
+    "pages/teacher/menu/menu",
+    "pages/teacher/visitorcheck/visitorcheck",
+    "pages/teacher/statistics/statistics",
+    "pages/teacher/pass/pass",
+    "pages/teacher/visitorcheckdetail/visitorcheckdetail",
+    "pages/teacher/warning/warning",
+    "pages/teacher/facephoto/facephoto"
   ],
   "window": {
     "navigationBarBackgroundColor": "#fff",

+ 38 - 0
dorm-manager-wx/app.wxss

@@ -20,4 +20,42 @@ image{
   height: 18rpx;
   margin: 0 20rpx;
   flex-shrink: 0;
+}
+
+.mycontainer {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0rpx 30rpx;
+  box-sizing: border-box;
+}
+
+.myhover{
+  opacity: 0.8;
+  transform: scale(0.95,0.95);
+}
+
+.my-column{
+  flex-direction: column;
+  display: flex;
+}
+
+.my-row{
+  flex-direction: row;
+  display: flex;
+}
+
+.my-flex-sb{
+  justify-content: space-between;
+}
+
+.my-align-c{
+  align-items: center;
+}
+
+.my-just-c{
+  justify-content: center;
 }

BIN
dorm-manager-wx/images/baobiaoguanli.png


BIN
dorm-manager-wx/images/clock.png


BIN
dorm-manager-wx/images/head.png


BIN
dorm-manager-wx/images/icon-message.png


BIN
dorm-manager-wx/images/icon-phone.png


BIN
dorm-manager-wx/images/query.png


BIN
dorm-manager-wx/images/visitorcheck.png


BIN
dorm-manager-wx/images/yujing-2.png


+ 102 - 0
dorm-manager-wx/pages/teacher/facephoto/facephoto.js

@@ -0,0 +1,102 @@
+const app = getApp()
+
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    isregiste: true,
+    arrayCollege: ['软件工程学院', '文学院', '法学院'],
+    indexCollege: 0,
+    arrayDept: ['计算机应用系', '文学系', '数学系'],
+    indexDept: 0,
+    arrayClass: ['一班', '二班', '三班'],
+    indexClass: 0,
+    list: [{
+      img: '/images/head.png',
+      name: '刘天仙',
+      address: '一号宿舍楼 502宿舍',
+      time: '2019-10-28 15:18'
+    }, {
+      img: '/images/head.png',
+      name: '陈方明',
+      address: '一号宿舍楼 508宿舍',
+      time: '2019-10-28 15:18'
+    }]
+  },
+
+  checkTab: function(e) {
+    const that = this;
+    that.setData({
+      isregiste: !that.data.isregiste
+    })
+  },
+
+  pickerChangeCollege: function(e) {
+    this.setData({
+      indexCollege: e.detail.value
+    })
+  },
+
+  pickerChangeDept: function(e) {
+    this.setData({
+      indexDept: e.detail.value
+    })
+  },
+
+  pickerChangeClass: function(e) {
+    this.setData({
+      indexClass: e.detail.value
+    })
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function(options) {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function() {
+
+  }
+})

+ 3 - 0
dorm-manager-wx/pages/teacher/facephoto/facephoto.json

@@ -0,0 +1,3 @@
+{
+  "navigationBarTitleText": "人脸自助"
+}

+ 42 - 0
dorm-manager-wx/pages/teacher/facephoto/facephoto.wxml

@@ -0,0 +1,42 @@
+<!-- facephoto.wxml -->
+<view class="mycontainer" style="padding:0rpx;">
+  <view class="tab-item">
+    <view class="item {{isregiste?'item-checked':''}}" bindtap="checkTab">已注册(18)</view>
+    <view class="item {{isregiste?'':'item-checked'}}" bindtap="checkTab">未注册(22)</view>
+  </view>
+  <view class="picker-item">
+    <picker bindchange="pickerChangeCollege" value="{{indexCollege}}" range="{{arrayCollege}}">
+      <view class="weui-input" style="width:250rpx;">
+        <view class="span">{{arrayCollege[indexCollege]}}</view>
+        <image src='/images/jiantou-bottom.png' class="imgjt"></image>
+      </view>
+    </picker>
+    <picker bindchange="pickerChangeDept" value="{{indexDept}}" range="{{arrayDept}}">
+      <view class="weui-input" style="width:250rpx;">
+        <view class="span">{{arrayDept[indexDept]}}</view>
+        <image src='/images/jiantou-bottom.png' class="imgjt"></image>
+      </view>
+    </picker>
+    <picker bindchange="pickerChangeClass" value="{{indexClass}}" range="{{arrayClass}}">
+      <view class="weui-input" style="width:140rpx;">
+        <view class="span">{{arrayClass[indexClass]}}</view>
+        <image src='/images/jiantou-bottom.png' class="imgjt"></image>
+      </view>
+    </picker>
+  </view>
+  <scroll-view scroll-y='true'>
+    <block wx:for='{{list}}'>
+      <view class="list-item" hover-class="myhover" hover-start-time="50" hover-stay-time="50">
+        <image src="{{item.img}}" class="head-img"></image>
+        <view class="my-column my-flex-sb" style="height:150rpx;">
+          <view class="name">{{item.name}}</view>
+          <view class="address">
+          <image src="/images/dizhi.png" class="address-img"></image>
+          <view class="create-time">{{item.address}}</view>
+          </view>
+          <view class="create-time">注册时间:{{item.time}}</view>
+        </view>
+      </view>
+    </block>
+  </scroll-view>
+</view>

+ 112 - 0
dorm-manager-wx/pages/teacher/facephoto/facephoto.wxss

@@ -0,0 +1,112 @@
+page {
+  background-color: #f2f2f2;
+}
+
+.tab-item {
+  width: 100%;
+  box-sizing: border-box;
+  background-color: #fff;
+  flex-direction: row;
+  display: flex;
+  justify-content: space-around;
+  align-items: center;
+}
+
+.tab-item .item {
+  height: 80rpx;
+  font-size: 32rpx;
+  flex-direction: row;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+.tab-item .item-checked {
+  color: #6784f4;
+  border-bottom: 2rpx #6784f4 solid;
+}
+
+.picker-item {
+  width: 100%;
+  background-color: #fff;
+  padding: 30rpx;
+  box-sizing: border-box;
+  flex-direction: row;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+
+.weui-input {
+  min-height: 60rpx;
+  flex-direction: row;
+  border: 2rpx solid #e5e5e5;
+  border-radius: 8rpx;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+
+.weui-input .span {
+  font-size: 24rpx;
+  color: #666;
+  margin-left: 16rpx;
+}
+
+.weui-input .imgjt {
+  width: 26rpx;
+  height: 14rpx;
+  margin-left: 20rpx;
+  margin-right: 16rpx;
+}
+
+scroll-view{
+  width: 100%;
+  height: 1000rpx;
+  box-sizing: border-box;
+  flex-direction: column;
+  display: flex;
+  padding: 20rpx 30rpx 0rpx 30rpx;
+}
+
+.list-item{
+  width: 100%;
+  height: 200rpx;
+  flex-direction: row;
+  display: flex;
+  align-items: center;
+  background-color: #fff;
+  border-radius: 10rpx;
+  margin-bottom: 20rpx;
+}
+
+.list-item .head-img{
+  width: 140rpx;
+  height: 140rpx;
+  border-radius: 50%;
+  margin-left: 50rpx;
+  margin-right: 50rpx;
+  border: 2rpx solid #e5e5e5;
+}
+
+.list-item .name{
+  font-size: 30rpx;
+  font-weight: 700;
+}
+
+.list-item .address{
+  flex-direction: row;
+  display: flex;
+  align-items: center;
+}
+
+.list-item .address-img{
+  width: 28rpx;
+  height: 30rpx;
+  margin-right: 10rpx;
+}
+
+.list-item .create-time{
+  font-size: 26rpx;
+  color: #666;
+}

+ 104 - 0
dorm-manager-wx/pages/teacher/menu/menu.js

@@ -0,0 +1,104 @@
+// pages/student/menu/menu.js
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    menu: [{
+        'title': '人脸自助',
+        imagename: 'facephoto',
+        left: '#fec38f',
+        right: '#ff8980'
+      },
+      {
+        'title': '访客审核',
+        imagename: 'visitorcheck',
+        left: '#bdc1ff',
+        right: '#ac8efd'
+      },
+      {
+        'title': '通行记录',
+        imagename: 'pass',
+        left: '#9fd9fc',
+        right: '#7abcf2'
+      },
+      {
+        'title': '考勤统计',
+        imagename: 'statistics',
+        left: '#ffca93',
+        right: '#fdb957'
+      }
+    ],
+    list: [{
+      'title': '预紧提醒',
+      nav: 'yujing-2',
+      url: 'warning'
+    }, {
+      'title': '报表管理',
+      nav: 'baobiaoguanli'
+    }, {
+      'title': '投诉建议',
+      nav: 'tousu'
+    }, {
+      'title': '报修管理',
+      nav: 'baoxiu'
+    }]
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function(options) {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function() {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage: function() {
+
+  }
+})

+ 3 - 0
dorm-manager-wx/pages/teacher/menu/menu.json

@@ -0,0 +1,3 @@
+{
+  "usingComponents": {}
+}

+ 23 - 0
dorm-manager-wx/pages/teacher/menu/menu.wxml

@@ -0,0 +1,23 @@
+<view class="menu">
+  <block wx:for='{{menu}}' wx:key='{{index}}'>
+    <navigator url="../{{item.imagename}}/{{item.imagename}}">
+      <view class="menu-list" style="background-image: linear-gradient(to right, {{item.left}} , {{item.right}});">
+        <image class="menu-icon" src='/images/{{item.imagename}}.png'></image>
+        <view class='menu-title'>{{item.title}}</view>
+      </view>
+    </navigator>
+  </block>
+</view>
+<view class="list">
+  <block wx:for='{{list}}' wx:key='{{index}}'>
+    <navigator url="../{{item.url}}/{{item.url}}">
+      <view class="line">
+        <view class="list-title">
+          <image src='/images/{{item.nav}}.png'></image>
+          <view>{{item.title}}</view>
+        </view>
+        <image src='/images/jiantou.png'></image>
+      </view>
+    </navigator>
+  </block>
+</view>

+ 74 - 0
dorm-manager-wx/pages/teacher/menu/menu.wxss

@@ -0,0 +1,74 @@
+/* pages/student/menu/menu.wxss */
+page{
+  background-color: #f5f5f5;
+}
+.menu{
+  width: 690rpx;
+  margin: 0 auto;
+  margin-top: 20rpx;
+  display: flex;
+  flex-wrap:wrap;
+  justify-content: center;
+  background: #fff;
+  border-radius: 10rpx;
+  padding: 20rpx 10rpx;
+}
+.menu-list{
+  width: 306rpx;
+  height: 110rpx;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  background: red;
+  margin: 10rpx;
+  border-radius: 10rpx;
+}
+.menu-icon{
+  width: 44rpx;
+  height: 44rpx;
+}
+.menu-title{
+  margin-left: 20rpx;
+  font-size: 34rpx;
+  color: #fff;
+}
+
+/* 列表 */
+.list{
+  margin-top: 20rpx;
+  width: 100%;
+  background: #fff;
+}
+.line{
+  margin: 0 auto;
+  width: 690rpx;
+  height: 110rpx;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  border-bottom: 1rpx solid #e5e5e5;
+}
+.line view{
+  font-size: 30rpx;
+  color:#333;
+}
+.line image{
+  width: 14rpx;
+  height: 26rpx;
+}
+.list :last-child .line {
+ border-bottom:none; 
+}
+.list-title{
+  display: flex;
+  height: 100%;
+  align-items: center;
+}
+.list-title image{
+  width: 36rpx;
+  height: 36rpx;
+  margin-left: 30rpx;
+}
+.list-title view{
+  margin-left: 10rpx;
+}

+ 100 - 0
dorm-manager-wx/pages/teacher/pass/pass.js

@@ -0,0 +1,100 @@
+const app=getApp();
+
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    userIndex:0,
+    userArray:['软件学院计算机系刘天仙','文学院哲学系陈方明'],
+    deviceIndex:0,
+    deviceArray:['1号楼东门','1号楼南门','2号楼南门'],
+    startDate: '2019-10-29',
+    endDate: '2019-10-29',
+    list: [{
+      img: '/images/head.png',
+      name: '刘天仙',
+      address: '一号宿舍楼 502宿舍',
+      time: '2019-10-28 15:18'
+    }, {
+      img: '/images/head.png',
+      name: '陈方明',
+      address: '一号宿舍楼 508宿舍',
+      time: '2019-10-28 15:18'
+    }]
+  },
+
+  bindUserChange: function (e) {
+    this.setData({
+      userIndex: e.detail.value
+    })
+  },
+
+  bindDeviceChange: function (e) {
+    this.setData({
+      deviceIndex: e.detail.value
+    })
+  },
+
+  bindStartDateChange: function (e) {
+    this.setData({
+      startDate: e.detail.value
+    })
+  },
+
+  bindendDateChange: function (e) {
+    this.setData({
+      endDate: e.detail.value
+    })
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {
+    
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function () {
+    
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function () {
+    
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function () {
+    
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function () {
+    
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function () {
+    
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function () {
+    
+  }
+})

+ 3 - 0
dorm-manager-wx/pages/teacher/pass/pass.json

@@ -0,0 +1,3 @@
+{
+  "navigationBarTitleText": "通行记录"
+}

+ 67 - 0
dorm-manager-wx/pages/teacher/pass/pass.wxml

@@ -0,0 +1,67 @@
+<!-- pass.wxml -->
+<view class="mycontainer" style="padding:0rpx;">
+  <view class="picker-item">
+    <view class="my-row my-align-c">
+      <view class="desc-t desc-c">选择人员</view>
+    </view>
+    <view class="my-row my-align-c">
+      <picker value="{{userIndex}}" range="{{userArray}}" bindchange="bindUserChange">
+        <view class="desc-t">
+          {{userArray[userIndex]}}
+        </view>
+      </picker>
+      <image src="/images/jiantou-bottom.png" class="icon-bottom"></image>
+    </view>
+  </view>
+  <view class="picker-item">
+    <view class="my-row my-align-c">
+      <view class="desc-t desc-c">选择设备</view>
+    </view>
+    <view class="my-row my-align-c">
+      <picker value="{{deviceIndex}}" range="{{deviceArray}}" bindchange="bindDeviceChange">
+        <view class="desc-t">
+          {{deviceArray[deviceIndex]}}
+        </view>
+      </picker>
+      <image src="/images/jiantou-bottom.png" class="icon-bottom"></image>
+    </view>
+  </view>
+  <view class="picker-item">
+    <view class="my-row my-align-c">
+      <view class="desc-t desc-c">选择时间</view>
+    </view>
+    <view class="my-row my-align-c">
+      <picker mode="date" value="{{startDate}}" start="2000-01-01" end="2099-12-31" bindchange="bindStartDateChange">
+        <view class="desc-t">
+          {{startDate}}至
+        </view>
+      </picker>
+      <picker mode="date" value="{{endDate}}" start="2000-01-01" end="2099-12-31" bindchange="bindendDateChange">
+        <view class="desc-t">
+          {{endDate}}
+        </view>
+      </picker>
+      <image src="/images/jiantou-bottom.png" class="icon-bottom"></image>
+    </view>
+  </view>
+  <scroll-view scroll-y='true'>
+    <block wx:for='{{list}}'>
+      <view class="list-item" hover-class="myhover" hover-start-time="50" hover-stay-time="50">
+        <image src="{{item.img}}" class="head-img"></image>
+        <view class="my-column my-flex-sb" style="height:150rpx;">
+          <view class="name">{{item.name}}</view>
+          <view class="address">
+            <image src="/images/clock.png" class="address-img"></image>
+            <view class="create-time">{{item.time}}</view>
+            <view class="normal" wx:if='{{index==0}}'>正常外出</view>
+            <view class="late" wx:if='{{index==1}}'>晚归</view>
+          </view>
+          <view class="address">
+            <image src="/images/dizhi.png" class="address-img"></image>
+            <view class="create-time">{{item.address}}</view>
+          </view>
+        </view>
+      </view>
+    </block>
+  </scroll-view>
+</view>

+ 93 - 0
dorm-manager-wx/pages/teacher/pass/pass.wxss

@@ -0,0 +1,93 @@
+page {
+  background-color: #f2f2f2;
+}
+
+.picker-item {
+  width: 100%;
+  height: 70rpx;
+  background-color: #fff;
+  flex-direction: row;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  box-sizing: border-box;
+  padding: 0rpx 30rpx;
+  border-bottom: 2rpx solid #f2f2f2;
+}
+
+.picker-item .desc-t {
+  font-size: 26rpx;
+}
+
+.picker-item .desc-c {
+  color: #666;
+}
+
+.picker-item .icon-bottom {
+  width: 26rpx;
+  height: 14rpx;
+  margin-left: 20rpx;
+}
+
+scroll-view {
+  width: 100%;
+  height: 996rpx;
+  box-sizing: border-box;
+  flex-direction: column;
+  display: flex;
+  padding: 20rpx 30rpx 0rpx 30rpx;
+}
+
+.list-item {
+  width: 100%;
+  height: 200rpx;
+  flex-direction: row;
+  display: flex;
+  align-items: center;
+  background-color: #fff;
+  border-radius: 10rpx;
+  margin-bottom: 20rpx;
+}
+
+.list-item .head-img {
+  width: 140rpx;
+  height: 140rpx;
+  border-radius: 50%;
+  margin-left: 50rpx;
+  margin-right: 50rpx;
+  border: 2rpx solid #e5e5e5;
+}
+
+.list-item .name {
+  font-size: 30rpx;
+  font-weight: 700;
+}
+
+.list-item .normal {
+  font-size: 26rpx;
+  color: #6282f3;
+  margin-left: 10rpx;
+}
+
+.list-item .late {
+  font-size: 26rpx;
+  color: red;
+  margin-left: 10rpx;
+}
+
+.list-item .address {
+  flex-direction: row;
+  display: flex;
+  align-items: center;
+}
+
+.list-item .address-img {
+  width: 28rpx;
+  height: 30rpx;
+  margin-right: 10rpx;
+}
+
+.list-item .create-time {
+  font-size: 26rpx;
+  color: #666;
+}

+ 162 - 0
dorm-manager-wx/pages/teacher/statistics/statistics.js

@@ -0,0 +1,162 @@
+const wxCharts = require('../../../utils/wxcharts.js');
+const data = require('../../../utils/util.js');
+const app = getApp()
+let ringChart = null;
+
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    startDate: '2019-10-29',
+    endDate: '2019-10-29',
+    scopeIndex: 0,
+    scopeArray: ['机械工程学院', '电子计算机系', '文学系'],
+    weiguiList: [{
+      name: '刘天仙',
+      build: '1号楼',
+      room: '1101',
+      num: '1',
+      time: ''
+    }, {
+      name: '陈方明',
+      build: '3号楼',
+      room: '1101',
+      num: '1',
+      time: ''
+    }, {
+      name: '刘天仙',
+      build: '1号楼',
+      room: '1101',
+      num: '1',
+      time: ''
+    }, {
+      name: '陈方明',
+      build: '3号楼',
+      room: '1101',
+      num: '1',
+      time: ''
+    }]
+  },
+
+  bindStartDateChange: function(e) {
+    this.setData({
+      startDate: e.detail.value
+    })
+  },
+
+  bindendDateChange: function(e) {
+    this.setData({
+      endDate: e.detail.value
+    })
+  },
+
+  bindScopeChange: function(e) {
+    this.setData({
+      scopeIndex: e.detail.value
+    })
+  },
+
+  getChart: function(e) {
+    ringChart = new wxCharts({
+      animation: true,
+      canvasId: 'ringCanvas',
+      type: 'ring',
+      extra: {
+        ringWidth: 10,
+        pie: {
+          offsetAngle: -40
+        }
+      },
+      title: {
+        name: '归勤率',
+        color: '#333',
+        fontSize: 15
+      },
+      subtitle: {
+        name: '98%',
+        color: '#6282f4',
+        fontSize: 18
+      },
+      series: [{
+        name: '归勤',
+        data: 90,
+        stroke: false,
+        color: '#6282f4'
+      }, {
+        name: '缺勤',
+        data: 10,
+        stroke: false,
+        color: '#ed5c68'
+      }],
+      disablePieStroke: true,
+      width: 160,
+      height: 160,
+      dataLabel: false,
+      legend: false,
+      background: '#fff',
+      padding: 0
+    });
+    ringChart.addEventListener('renderComplete', () => {
+      console.log('renderComplete');
+    });
+    setTimeout(() => {
+      ringChart.stopAnimation();
+    }, 500);
+  },
+
+  touchHandler: function(e) {
+    console.log(ringChart.getCurrentDataIndex(e));
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function(options) {
+    const that = this;
+    that.getChart();
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function() {
+
+  }
+})

+ 3 - 0
dorm-manager-wx/pages/teacher/statistics/statistics.json

@@ -0,0 +1,3 @@
+{
+  "navigationBarTitleText": "考勤记录"
+}

+ 106 - 0
dorm-manager-wx/pages/teacher/statistics/statistics.wxml

@@ -0,0 +1,106 @@
+<!-- statistics.wxml -->
+<view class="mycontainer" style="padding:0rpx;">
+  <view class="picker-item">
+    <view class="my-row my-align-c">
+      <image src="/images/data-icon.png" class="icon"></image>
+      <view class="desc-t">开始日期</view>
+    </view>
+    <view class="my-row my-align-c">
+      <picker mode="date" value="{{startDate}}" start="2000-01-01" end="2099-12-31" bindchange="bindStartDateChange">
+        <view class="desc-t">
+          {{startDate}}
+        </view>
+      </picker>
+      <image src="/images/jiantou-bottom.png" class="icon-bottom"></image>
+    </view>
+  </view>
+  <view class="picker-item">
+    <view class="my-row my-align-c">
+      <image src="/images/data-icon.png" class="icon"></image>
+      <view class="desc-t">结束日期</view>
+    </view>
+    <view class="my-row my-align-c">
+      <picker mode="date" value="{{endDate}}" start="2000-01-01" end="2099-12-31" bindchange="bindendDateChange">
+        <view class="desc-t">
+          {{endDate}}
+        </view>
+      </picker>
+      <image src="/images/jiantou-bottom.png" class="icon-bottom"></image>
+    </view>
+  </view>
+  <view class="picker-item">
+    <view class="my-row my-align-c">
+      <image src="/images/query.png" class="icon"></image>
+      <view class="desc-t">查询范围</view>
+    </view>
+    <view class="my-row my-align-c">
+      <picker value="{{scopeIndex}}" range="{{scopeArray}}" bindchange="bindScopeChange">
+        <view class="desc-t">
+          {{scopeArray[scopeIndex]}}
+        </view>
+      </picker>
+      <image src="/images/jiantou-bottom.png" class="icon-bottom"></image>
+    </view>
+  </view>
+  <view class="titlebar">
+    考勤统计
+  </view>
+  <view class="canvas-item">
+    <canvas canvas-id="ringCanvas" class="canvas" bindtouchstart="touchHandler"></canvas>
+    <view class="charts-right">
+      <view class="charts-line">
+        <view class="charts-icon1 charts-icon"></view>
+        <view class="charts-data">全员人数1324人</view>
+      </view>
+    </view>
+    <view class="bottom">
+      <view class="my-column my-align-c">
+        <view class="bottom-bigback1 item">0</view>
+        <view class="desc">无进出记录人员</view>
+      </view>
+      <view class="my-column my-align-c">
+        <view class="bottom-bigback2 item">1324</view>
+        <view class="desc">已出宿舍人员</view>
+      </view>
+      <view class="my-column my-align-c">
+        <view class="bottom-bigback3 item">1319</view>
+        <view class="desc">已归宿舍人员</view>
+      </view>
+    </view>
+    <view class="bottom" style="margin-top:30rpx;margin-bottom:30rpx;">
+      <view class="my-column my-align-c">
+        <view class="bottom-bigback4 item">69</view>
+        <view class="desc">晚归宿舍人员</view>
+      </view>
+      <view class="my-column my-align-c">
+        <view class="bottom-bigback5 item">5</view>
+        <view class="desc">未归宿舍人员</view>
+      </view>
+      <view class="my-column my-align-c">
+        <view class="bottom-bigback6 item">0</view>
+        <view class="desc">未出宿舍人员</view>
+      </view>
+    </view>
+  </view>
+  <view class="titlebar">
+    未归宿舍人员统计
+  </view>
+  <view class="weigui">
+    <view class="title-item">
+      <view class="name">姓名</view>
+      <view class="name">楼栋</view>
+      <view class="name">宿舍</view>
+      <view class="name">次数</view>
+      <view class="name">时间</view>
+    </view>
+    <block wx:for='{{weiguiList}}'>
+      <view class="item">
+        <view class="name">{{item.name}}</view>
+        <view class="name">{{item.build}}</view>
+        <view class="name">{{item.room}}</view>
+        <view class="name">{{item.num}}</view>
+        <view class="name">{{item.time}}</view>
+      </view>
+    </block>
+  </view>
+</view>

+ 184 - 0
dorm-manager-wx/pages/teacher/statistics/statistics.wxss

@@ -0,0 +1,184 @@
+page {
+  background-color: #f2f2f2;
+}
+
+.picker-item {
+  width: 100%;
+  height: 70rpx;
+  background-color: #fff;
+  flex-direction: row;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  box-sizing: border-box;
+  padding: 0rpx 30rpx;
+  border-bottom: 2rpx solid #f2f2f2;
+}
+
+.picker-item .icon {
+  width: 30rpx;
+  height: 30rpx;
+  margin-right: 20rpx;
+}
+
+.picker-item .desc-t {
+  font-size: 26rpx;
+}
+
+.picker-item .icon-bottom {
+  width: 26rpx;
+  height: 14rpx;
+  margin-left: 20rpx;
+}
+
+.titlebar {
+  width: 94%;
+  box-sizing: border-box;
+  font-size: 28rpx;
+  font-weight: 700;
+  border-left: 6rpx solid #6282f3;
+  margin-top: 30rpx;
+  margin-bottom: 30rpx;
+  padding-left: 10rpx;
+}
+
+.canvas-item {
+  width: 92%;
+  background-color: #fff;
+  border-radius: 10rpx;
+  position: relative;
+}
+
+.canvas-item .canvas {
+  width: 56%;
+  height: 160px;
+}
+
+.charts-right {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: space-around;
+  padding: 60rpx 0rpx;
+  position: absolute;
+  top: 20rpx;
+  right: 80rpx;
+}
+
+.charts-line {
+  display: flex;
+  align-items: center;
+  height: 30rpx;
+  font-size: 30rpx;
+  color: #333;
+}
+
+.charts-icon {
+  width: 16rpx;
+  height: 16rpx;
+  border-radius: 6rpx;
+}
+
+.charts-icon1 {
+  background: #6282f4;
+}
+
+.charts-data {
+  margin-left: 8rpx;
+}
+
+.bottom {
+  width: 100%;
+  box-sizing: border-box;
+  flex-direction: row;
+  display: flex;
+  justify-content: space-around;
+  align-items: center;
+  padding: 0rpx 36rpx;
+}
+
+.bottom .item {
+  width: 180rpx;
+  height: 130rpx;
+  flex-direction: row;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  border-radius: 30%;
+  color: #fff;
+  font-size: 34rpx;
+}
+
+.bottom .desc {
+  font-size: 26rpx;
+  margin-top: 20rpx;
+}
+
+.bottom-bigback1 {
+  background-image: linear-gradient(to right, #f08790, #ed626d);
+}
+
+.bottom-bigback2 {
+  background-image: linear-gradient(to right, #f9ba9f, #f39b76);
+}
+
+.bottom-bigback3 {
+  background-image: linear-gradient(to right, #8aa1f7, #6a88f4);
+}
+
+.bottom-bigback4 {
+  background-image: linear-gradient(to right, #9bcff7, #66b4f3);
+}
+
+.bottom-bigback5 {
+  background-image: linear-gradient(to right, #72e8cc, #4bdbba);
+}
+
+.bottom-bigback6 {
+  background-image: linear-gradient(to right, #bea8fd, #a082f4);
+}
+
+.weigui {
+  width: 92%;
+  flex-direction: column;
+  display: flex;
+  background-color: #fff;
+  border-radius: 10rpx;
+  margin-bottom: 30rpx;
+}
+
+.weigui .title-item {
+  width: 100%;
+  height: 70rpx;
+  flex-direction: row;
+  display: flex;
+  justify-content: space-around;
+  align-items: center;
+  background-color: #6282f3;
+  border-radius: 10rpx 10rpx 0rpx 0rpx;
+}
+
+.weigui .title-item .name {
+  font-size: 30rpx;
+  font-weight: 700;
+  color: #fff;
+}
+
+.weigui .item{
+  width: 100%;
+  height: 70rpx;
+  flex-direction: row;
+  display: flex;
+  justify-content: space-around;
+  align-items: center;
+  border-bottom: 2rpx solid #f2f2f2;
+}
+
+.weigui .item .name{
+  width: 130rpx;
+  font-size: 28rpx;
+  flex-direction: row;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}

+ 84 - 0
dorm-manager-wx/pages/teacher/visitorcheck/visitorcheck.js

@@ -0,0 +1,84 @@
+const app = getApp()
+
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    isregiste: true,
+    list: [{
+      img: '/images/head.png',
+      name: '刘天仙',
+      address: '一号宿舍楼 502宿舍',
+      time: '2019-10-28 15:18'
+    }, {
+      img: '/images/head.png',
+      name: '陈方明',
+      address: '一号宿舍楼 508宿舍',
+      time: '2019-10-28 15:18'
+    }]
+  },
+
+  checkTab: function(e) {
+    const that = this;
+    that.setData({
+      isregiste: !that.data.isregiste
+    })
+  },
+
+  todetail: function(e) {
+    wx.navigateTo({
+      url: '../visitorcheckdetail/visitorcheckdetail',
+    })
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function(options) {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function() {
+
+  }
+})

+ 3 - 0
dorm-manager-wx/pages/teacher/visitorcheck/visitorcheck.json

@@ -0,0 +1,3 @@
+{
+  "navigationBarTitleText": "访客审核"
+}

+ 22 - 0
dorm-manager-wx/pages/teacher/visitorcheck/visitorcheck.wxml

@@ -0,0 +1,22 @@
+<!-- visitorcheck.wxml -->
+<view class="mycontainer" style="padding:0rpx;">
+  <view class="tab-item">
+    <view class="item {{isregiste?'item-checked':''}}" bindtap="checkTab">未审核(18)</view>
+    <view class="item {{isregiste?'':'item-checked'}}" bindtap="checkTab">已审核(69)</view>
+  </view>
+  <scroll-view scroll-y='true'>
+    <block wx:for='{{list}}'>
+      <view class="list-item" hover-class="myhover" hover-start-time="50" hover-stay-time="50" bindtap="todetail">
+        <image src="{{item.img}}" class="head-img"></image>
+        <view class="my-column my-flex-sb" style="height:150rpx;">
+          <view class="name">{{item.name}}</view>
+          <view class="address">
+            <image src="/images/dizhi.png" class="address-img"></image>
+            <view class="create-time">{{item.address}}</view>
+          </view>
+          <view class="create-time">提交时间:{{item.time}}</view>
+        </view>
+      </view>
+    </block>
+  </scroll-view>
+</view>

+ 78 - 0
dorm-manager-wx/pages/teacher/visitorcheck/visitorcheck.wxss

@@ -0,0 +1,78 @@
+page {
+  background-color: #f2f2f2;
+}
+
+.tab-item {
+  width: 100%;
+  box-sizing: border-box;
+  background-color: #fff;
+  flex-direction: row;
+  display: flex;
+  justify-content: space-around;
+  align-items: center;
+}
+
+.tab-item .item {
+  height: 80rpx;
+  font-size: 32rpx;
+  flex-direction: row;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+.tab-item .item-checked {
+  color: #6784f4;
+  border-bottom: 2rpx #6784f4 solid;
+}
+
+scroll-view{
+  width: 100%;
+  height: 1124rpx;
+  box-sizing: border-box;
+  flex-direction: column;
+  display: flex;
+  padding: 20rpx 30rpx 0rpx 30rpx;
+}
+
+.list-item{
+  width: 100%;
+  height: 200rpx;
+  flex-direction: row;
+  display: flex;
+  align-items: center;
+  background-color: #fff;
+  border-radius: 10rpx;
+  margin-bottom: 20rpx;
+}
+
+.list-item .head-img{
+  width: 140rpx;
+  height: 140rpx;
+  border-radius: 50%;
+  margin-left: 50rpx;
+  margin-right: 50rpx;
+  border: 2rpx solid #e5e5e5;
+}
+
+.list-item .name{
+  font-size: 30rpx;
+  font-weight: 700;
+}
+
+.list-item .address{
+  flex-direction: row;
+  display: flex;
+  align-items: center;
+}
+
+.list-item .address-img{
+  width: 28rpx;
+  height: 30rpx;
+  margin-right: 10rpx;
+}
+
+.list-item .create-time{
+  font-size: 26rpx;
+  color: #666;
+}

+ 105 - 0
dorm-manager-wx/pages/teacher/visitorcheckdetail/visitorcheckdetail.js

@@ -0,0 +1,105 @@
+const app = getApp();
+
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    userInfo: {
+      photo: '',
+      name: '辽宁',
+      cardNum: '401311188603041535',
+      phone: '15838122222',
+      visitorName: '软件工程学院计算机系刘天仙',
+      type: '亲属',
+      buildNum: '一号宿舍楼',
+      roomNum: '502宿舍',
+      reason: '探亲'
+    },
+    list: []
+  },
+
+  getUserInfoArray: function(e) {
+    const that = this;
+    let userInfo = [];
+    userInfo.push({
+      key: '访客姓名:',
+      value: that.data.userInfo.name
+    }, {
+      key: '身份证号:',
+      value: that.data.userInfo.cardNum
+    }, {
+      key: '手机号:',
+      value: that.data.userInfo.phone
+    }, {
+      key: '被访人:',
+      value: that.data.userInfo.visitorName
+    }, {
+      key: '身份类型:',
+      value: that.data.userInfo.type
+    }, {
+      key: '访问楼栋:',
+      value: that.data.userInfo.buildNum
+    }, {
+      key: '访问宿舍:',
+      value: that.data.userInfo.roomNum
+    }, {
+      key: '访问原因:',
+      value: that.data.userInfo.reason
+    })
+    that.setData({
+      list: userInfo
+    })
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function(options) {
+    const that = this;
+    that.getUserInfoArray();
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function() {
+
+  }
+})

+ 3 - 0
dorm-manager-wx/pages/teacher/visitorcheckdetail/visitorcheckdetail.json

@@ -0,0 +1,3 @@
+{
+  "navigationBarTitleText": "访客审核"
+}

+ 16 - 0
dorm-manager-wx/pages/teacher/visitorcheckdetail/visitorcheckdetail.wxml

@@ -0,0 +1,16 @@
+<!-- visitorcheckdetail.wxml -->
+<view class="mycontainer">
+  <view class="list">
+    <image src="{{userInfo.photo!=''?userInfo.photo:'/images/default-urser.png'}}" class="head-img"></image>
+    <block wx:for='{{list}}'>
+      <view class="item">
+        <view class="key">{{item.key}}</view>
+        <view class="value">{{item.value}}</view>
+      </view>
+    </block>
+  </view>
+  <view class="btn-item">
+    <view class="btn approve" hover-class="myhover" hover-start-time="50" hover-stay-time="50">通过</view>
+    <view class="btn reject" hover-class="myhover" hover-start-time="50" hover-stay-time="50">驳回</view>
+  </view>
+</view>

+ 73 - 0
dorm-manager-wx/pages/teacher/visitorcheckdetail/visitorcheckdetail.wxss

@@ -0,0 +1,73 @@
+page {
+  background-color: #f2f2f2;
+}
+
+.list {
+  width: 100%;
+  flex-direction: column;
+  display: flex;
+  align-items: center;
+  background-color: #fff;
+  border-radius: 10rpx;
+}
+
+.list .head-img {
+  width: 180rpx;
+  height: 180rpx;
+  border-radius: 10rpx;
+  margin-top: 30rpx;
+  margin-bottom: 50rpx;
+}
+
+.list .item {
+  width: 80%;
+  flex-direction: row;
+  display: flex;
+  align-items: center;
+  margin-bottom: 20rpx;
+}
+
+.list .item .key {
+  width: 180rpx;
+  font-size: 30rpx;
+  margin-right: 10rpx;
+}
+
+.list .item .value {
+  font-size: 30rpx;
+  color: #666;
+}
+
+.btn-item{
+  width: 100%;
+  flex-direction: row;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  box-sizing: border-box;
+  padding: 0rpx 40rpx;
+  position: absolute;
+  bottom: 100rpx;
+}
+
+.btn-item .btn{
+  width: 300rpx;
+  height: 80rpx;
+  font-size: 30rpx;
+  border-radius: 10rpx;
+  flex-direction: row;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+.btn-item .approve{
+  background-color: #6282f3;
+  color: #fff;
+}
+
+.btn-item .reject{
+  background-color: #fff;
+  color: #6282f3;
+  border: 2rpx solid #6282f3;
+}

+ 77 - 0
dorm-manager-wx/pages/teacher/warning/warning.js

@@ -0,0 +1,77 @@
+const app = getApp();
+
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    tab: 1,
+    list: [{
+      img: '/images/head.png',
+      name: '刘天仙',
+      address: '一号宿舍楼 502宿舍'
+    }, {
+      img: '/images/head.png',
+      name: '陈方明',
+      address: '一号宿舍楼 508宿舍'
+    }]
+  },
+
+  checkTab: function(e) {
+    const that = this;
+    let type = e.currentTarget.dataset.type;
+    that.setData({
+      tab: type
+    })
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function(options) {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function() {
+
+  }
+})

+ 3 - 0
dorm-manager-wx/pages/teacher/warning/warning.json

@@ -0,0 +1,3 @@
+{
+  "navigationBarTitleText": "预警提醒"
+}

+ 30 - 0
dorm-manager-wx/pages/teacher/warning/warning.wxml

@@ -0,0 +1,30 @@
+<!-- warning.wxml -->
+<view class="mycontainer" style="padding:0rpx;">
+  <view class="tab-item">
+    <view class="item {{tab==1?'item-checked':''}}" bindtap="checkTab" data-type="1">一日未归</view>
+    <view class="item {{tab==2?'item-checked':''}}" bindtap="checkTab" data-type="2">三日未归</view>
+    <view class="item {{tab==3?'item-checked':''}}" bindtap="checkTab" data-type="3">五日未归</view>
+  </view>
+  <scroll-view scroll-y='true'>
+    <block wx:for='{{list}}'>
+      <view class="list-item">
+        <image src="{{item.img}}" class="head-img"></image>
+        <view class="my-column my-flex-sb" style="height:170rpx;">
+          <view class="name">{{item.name}}</view>
+          <view class="address">
+            <image src="/images/dizhi.png" class="address-img"></image>
+            <view class="create-time">{{item.address}}</view>
+          </view>
+          <view class="my-row my-flex-sb">
+            <view class="img-btn" hover-class="myhover" hover-start-time="50" hover-stay-time="50">
+              <image src="/images/icon-message.png" class="btn-img"></image>
+            </view>
+            <view class="img-btn" hover-class="myhover" hover-start-time="50" hover-stay-time="50">
+              <image src="/images/icon-phone.png" class="btn-img" style="margin-left:30rpx;"></image>
+            </view>
+          </view>
+        </view>
+      </view>
+    </block>
+  </scroll-view>
+</view>

+ 83 - 0
dorm-manager-wx/pages/teacher/warning/warning.wxss

@@ -0,0 +1,83 @@
+page {
+  background-color: #f2f2f2;
+}
+
+.tab-item {
+  width: 100%;
+  box-sizing: border-box;
+  background-color: #fff;
+  flex-direction: row;
+  display: flex;
+  justify-content: space-around;
+  align-items: center;
+}
+
+.tab-item .item {
+  height: 80rpx;
+  font-size: 32rpx;
+  flex-direction: row;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+.tab-item .item-checked {
+  color: #6784f4;
+  border-bottom: 2rpx #6784f4 solid;
+}
+
+scroll-view{
+  width: 100%;
+  height: 1124rpx;
+  box-sizing: border-box;
+  flex-direction: column;
+  display: flex;
+  padding: 20rpx 30rpx 0rpx 30rpx;
+}
+
+.list-item{
+  width: 100%;
+  height: 220rpx;
+  flex-direction: row;
+  display: flex;
+  align-items: center;
+  background-color: #fff;
+  border-radius: 10rpx;
+  margin-bottom: 20rpx;
+}
+
+.list-item .head-img{
+  width: 140rpx;
+  height: 140rpx;
+  border-radius: 50%;
+  margin-left: 50rpx;
+  margin-right: 50rpx;
+  border: 2rpx solid #e5e5e5;
+}
+
+.list-item .name{
+  font-size: 30rpx;
+  font-weight: 700;
+}
+
+.list-item .address{
+  flex-direction: row;
+  display: flex;
+  align-items: center;
+}
+
+.list-item .address-img{
+  width: 28rpx;
+  height: 30rpx;
+  margin-right: 10rpx;
+}
+
+.list-item .create-time{
+  font-size: 26rpx;
+  color: #666;
+}
+
+.list-item .btn-img{
+  width: 150rpx;
+  height: 50rpx;
+}

+ 8 - 1
dorm-manager-wx/project.config.json

@@ -42,7 +42,7 @@
 			"list": []
 		},
 		"miniprogram": {
-			"current": 33,
+			"current": 34,
 			"list": [
 				{
 					"id": 0,
@@ -281,6 +281,13 @@
 					"pathName": "pages/student/pass/pass",
 					"query": "",
 					"scene": null
+				},
+				{
+					"id": 34,
+					"name": "pages/teacher/menu/menu",
+					"pathName": "pages/teacher/menu/menu",
+					"query": "flag=1&preService=PERSON_ZT&code=31&titleName=其他",
+					"scene": null
 				}
 			]
 		}