Kaynağa Gözat

工作台

master
yxq 3 hafta önce
ebeveyn
işleme
fee1678979
37 değiştirilmiş dosya ile 473 ekleme ve 177 silme
  1. +2
    -0
      monitorMobile/App.vue
  2. +1
    -1
      monitorMobile/common/mixins.vue
  3. +1
    -0
      monitorMobile/components/cell.vue
  4. +2
    -2
      monitorMobile/components/selectRadio.vue
  5. +3
    -3
      monitorMobile/components/selectSearch.vue
  6. +3
    -3
      monitorMobile/components/selectTree.vue
  7. +41
    -44
      monitorMobile/pages.json
  8. +0
    -53
      monitorMobile/pages/attendanceCall/index.vue
  9. +0
    -21
      monitorMobile/pages/home.vue
  10. +149
    -0
      monitorMobile/pages/work/index.vue
  11. +2
    -2
      monitorMobile/pages/work/passengerFlow/add.vue
  12. +0
    -0
      monitorMobile/pages/work/passengerFlow/detail.vue
  13. +4
    -4
      monitorMobile/pages/work/passengerFlow/index.vue
  14. +44
    -27
      monitorMobile/pages/work/returnBed/comfirm.vue
  15. +10
    -5
      monitorMobile/pages/work/returnBed/detail.vue
  16. +5
    -4
      monitorMobile/pages/work/returnBed/index.vue
  17. +183
    -0
      monitorMobile/pages/work/rollCall/detail.vue
  18. +23
    -8
      monitorMobile/pages/work/rollCall/index.vue
  19. BIN
      monitorMobile/static/image/tabbar/attendanceCall.png
  20. BIN
      monitorMobile/static/image/tabbar/attendanceCall_active.png
  21. BIN
      monitorMobile/static/image/tabbar/earlyWarning.png
  22. BIN
      monitorMobile/static/image/tabbar/earlyWarning_active.png
  23. BIN
      monitorMobile/static/image/tabbar/home_active.png
  24. BIN
      monitorMobile/static/image/tabbar/my_active.png
  25. BIN
      monitorMobile/static/image/tabbar/work.png
  26. BIN
      monitorMobile/static/image/tabbar/work_active.png
  27. BIN
      monitorMobile/static/image/test/image.png
  28. BIN
      monitorMobile/static/image/test/image1.png
  29. BIN
      monitorMobile/static/image/test/image2.png
  30. BIN
      monitorMobile/static/image/work/bg.png
  31. BIN
      monitorMobile/static/image/work/monitorManage.png
  32. BIN
      monitorMobile/static/image/work/more.png
  33. BIN
      monitorMobile/static/image/work/passengerFlow.png
  34. BIN
      monitorMobile/static/image/work/returnBed.png
  35. BIN
      monitorMobile/static/image/work/rollCall.png
  36. BIN
      monitorMobile/static/image/work/toRight.png
  37. BIN
      monitorMobile/static/image/work/toRight1.png

+ 2
- 0
monitorMobile/App.vue Dosyayı Görüntüle

@@ -19,6 +19,8 @@
}
uni-page-body{
height: 100%;
}
body{
background-color: #F6F8FA;
}
</style>

+ 1
- 1
monitorMobile/common/mixins.vue Dosyayı Görüntüle

@@ -91,7 +91,7 @@
content: content,
cancelText: "取消",
confirmText: "确认",
confirmColor: '#F2C827',
confirmColor: '#165DFF',
cancelColor: '#9E9E9E',
success: function (res) {
if (res.confirm) {


+ 1
- 0
monitorMobile/components/cell.vue Dosyayı Görüntüle

@@ -34,6 +34,7 @@
.u-cell {
background: #fff;
border-radius: 20rpx;
height: 90rpx;
}
.selectedBox{
display: flex;


+ 2
- 2
monitorMobile/components/selectRadio.vue Dosyayı Görüntüle

@@ -1,5 +1,5 @@
<template>
<view>
<view @touchmove.stop @touch.stop>
<myCell v-show="cellVisible" :title="title_" isLink :border="false" @click="show = true"></myCell>
<u-popup :show="show" mode="center" :round="10" @close="close" @open="open">
<u-radio-group v-model="value_" iconPlacement="right" placement="column" @change="change" borderBottom>
@@ -69,7 +69,7 @@
<style scoped lang="scss">
.u-radio-group {
width: 560rpx;
max-height: 680rpx;
height: 680rpx;
overflow-y: auto;
padding: 12rpx 32rpx 24rpx 32rpx;
.u-cell {


+ 3
- 3
monitorMobile/components/selectSearch.vue Dosyayı Görüntüle

@@ -1,5 +1,5 @@
<template>
<view>
<view @touchmove.stop @touch.stop>
<myCell v-show="cellVisible" :multiple="multiple" :cellValue="cellValue" :title="title_" isLink :border="false" @click="show = true">
</myCell>
<u-popup :show="show" mode="bottom" :closeable="true" :round="10" @close="close" @open="open">
@@ -143,8 +143,7 @@

.u-radio-group {
width: 92%;
max-height: 680rpx;
min-height: 360rpx;
height: 680rpx;
overflow-y: auto;
padding: 0 30rpx;

@@ -158,6 +157,7 @@
.u-checkbox-group {
width: 92%;
max-height: 680rpx;
min-height: 360rpx;
overflow-y: auto;
padding: 0 30rpx;



+ 3
- 3
monitorMobile/components/selectTree.vue Dosyayı Görüntüle

@@ -1,5 +1,5 @@
<template>
<view>
<view @touchmove.stop @touch.stop>
<myCell v-show="cellVisible" :title="title" isLink :border="false" @click="show = true"></myCell>
<u-popup :show="show" mode="bottom" :closeable="true" :round="10" @close="close" @open="open">
<view class="title">
@@ -213,7 +213,7 @@

.u-radio-group {
width: 92%;
max-height: 680rpx;
height: 680rpx;
overflow-y: auto;
padding: 0 30rpx;

@@ -226,7 +226,7 @@

.u-checkbox-group {
width: 92%;
max-height: 680rpx;
height: 680rpx;
overflow-y: auto;
padding: 0 30rpx;



+ 41
- 44
monitorMobile/pages.json Dosyayı Görüntüle

@@ -9,51 +9,45 @@
"borderStyle":"white",
"fontSize":"18rpx",
"list": [
{
"pagePath": "pages/home",
"iconPath": "/static/image/tabbar/home.png",
"selectedIconPath": "/static/image/tabbar/home.png",
"text": "首页"
},
{
"pagePath": "pages/attendanceCall/index",
"iconPath": "/static/image/tabbar/attendanceCall.png",
"selectedIconPath": "/static/image/tabbar/attendanceCall.png",
"text": "考勤点名"
},
{
"pagePath": "pages/earlyWarning/index",
"iconPath": "/static/image/tabbar/earlyWarning_active.png",
"iconPath": "/static/image/tabbar/earlyWarning.png",
"selectedIconPath": "/static/image/tabbar/earlyWarning_active.png",
"text": "预警巡警"
},
{
"pagePath": "pages/work/index",
"iconPath": "/static/image/tabbar/attendanceCall.png",
"selectedIconPath": "/static/image/tabbar/attendanceCall_active.png",
"text": "工作台"
},
{
"pagePath": "pages/my/index",
"iconPath": "/static/image/tabbar/my.png",
"selectedIconPath": "/static/image/tabbar/my.png",
"selectedIconPath": "/static/image/tabbar/my_active.png",
"text": "我的"
}
]
},
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
// 首页
// 工作台
{
"path": "pages/home",
"path": "pages/work/index",
"style": {
"navigationBarTitleText": "首页"
"navigationBarTitleText": "考勤点名",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
// 考勤点名
// 归寝
{
"path": "pages/attendanceCall/index",
"path": "pages/work/returnBed/index",
"style": {
"navigationBarTitleText": "考勤点名",
"enablePullDownRefresh": true
"navigationBarTitleText": "归寝"
}
},
// 归寝
{
"path" : "pages/attendanceCall/returnBed/detail",
"path" : "pages/work/returnBed/detail",
"style" :
{
"navigationBarTitleText": "查看详情",
@@ -61,16 +55,22 @@
}
},
{
"path" : "pages/attendanceCall/returnBed/comfirm",
"path" : "pages/work/returnBed/comfirm",
"style" :
{
"navigationBarTitleText": "归寝确认",
"enablePullDownRefresh": false
}
},
{
"path": "pages/work/passengerFlow/index",
"style": {
"navigationBarTitleText": "客流"
}
},
// 客流
{
"path" : "pages/attendanceCall/passengerFlow/detail",
"path" : "pages/work/passengerFlow/detail",
"style" :
{
"navigationBarTitleText": "分片详情",
@@ -78,31 +78,28 @@
}
},
{
"path" : "pages/attendanceCall/passengerFlow/add",
"path" : "pages/work/passengerFlow/add",
"style" :
{
"navigationBarTitleText": "新增查询",
"enablePullDownRefresh": false
}
},
// {
// "path": "pages/attendanceCall/rollCall/index",
// "style": {
// "navigationBarTitleText": "点名"
// }
// },
// {
// "path": "pages/attendanceCall/returnBed/index",
// "style": {
// "navigationBarTitleText": "归寝"
// }
// },
// {
// "path": "pages/attendanceCall/passengerFlow/index",
// "style": {
// "navigationBarTitleText": "客流"
// }
// },
// 点名
{
"path": "pages/work/rollCall/index",
"style": {
"navigationBarTitleText": "点名"
}
},
{
"path" : "pages/work/rollCall/detail",
"style" :
{
"navigationBarTitleText": "查看详情",
"enablePullDownRefresh": false
}
},
// 预警巡警
{
"path": "pages/earlyWarning/index",


+ 0
- 53
monitorMobile/pages/attendanceCall/index.vue Dosyayı Görüntüle

@@ -1,53 +0,0 @@
<template>
<view style="height: 100%;">
<u-tabs :list="tabsList" @click="tabsClick" :activeStyle="{
color: '#000000',
}" itemStyle="height:84rpx;width:33.33%;box-sizing:border-box;background:#fff;border-top:1rpx solid rgba(0,0,0,0.03)"></u-tabs>
<view style="height: calc(100% - 84rpx);">
<component :is="componentName" ref="pageComponent"/>
</view>
</view>
</template>

<script>
import passengerFlow from "./passengerFlow/index.vue"
import returnBed from "./returnBed/index.vue"
import rollCall from "./rollCall/index.vue"
export default {
components:{
passengerFlow,returnBed,rollCall
},
data() {
return {
tabsList: [{
name: "点名",
value: 'rollCall'
},
{
name: "归寝",
value: 'returnBed'
},
{
name: "客流",
value: 'passengerFlow'
},
],
componentName:'rollCall'
}
},
methods: {
tabsClick(item) {
this.componentName = item.value
}
},
onPullDownRefresh(){
this.$refs['pageComponent'].pullDownRefresh()
uni.stopPullDownRefresh()
}
}
</script>

<style>

</style>

+ 0
- 21
monitorMobile/pages/home.vue Dosyayı Görüntüle

@@ -1,21 +0,0 @@
<template>
<view>
首页
</view>
</template>

<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>

<style lang="scss" scoped>
</style>
<style>
</style>

+ 149
- 0
monitorMobile/pages/work/index.vue Dosyayı Görüntüle

@@ -0,0 +1,149 @@
<template>
<view class="page">
<view class="header">
工作台
</view>
<view class="card row" @click="NAV_TO('/pages/work/rollCall/index')">
<view class="title">点名</view>
<view class="des">通过人脸识别,提升学生点名效率</view>
<view class="imgBox">
<image src="/static/image/work/toRight1.png"></image>
</view>
<image src="/static/image/work/rollCall.png" class="modeLogo" mode=""></image>
</view>
<view class="gird">
<view class="card row1" @click="NAV_TO('/pages/work/returnBed/index')">
<view class="title">归寝</view>
<view class="des">查看归寝情况</view>
<view class="imgBox">
<image src="/static/image/work/toRight.png"></image>
</view>
<image src="/static/image/work/returnBed.png" class="modeLogo" mode=""></image>
</view>
<view class="card row1" @click="NAV_TO('/pages/work/passengerFlow/index')">
<view class="title">客流</view>
<view class="des">查看客流情况</view>
<view class="imgBox">
<image src="/static/image/work/toRight.png"></image>
</view>
<image src="/static/image/work/passengerFlow.png" class="modeLogo" mode=""></image>
</view>
<view class="card" @click="NAV_TO('/pages/work/rollCall/index')">
<view class="title">监控管理</view>
<view class="des">查看监控管理情况</view>
<view class="imgBox">
<image src="/static/image/work/toRight.png"></image>
</view>
<image src="/static/image/work/monitorManage.png" class="modeLogo" mode=""></image>
</view>
<view class="card">
<view class="title">更多功能</view>
<view class="des">敬请期待</view>
<image src="/static/image/work/more.png" class="modeLogo" mode=""></image>
</view>
</view>
</view>
</template>

<script>
export default {
data() {
return {
}
},
mounted(){
},
methods: {
},
}
</script>

<style lang="scss" scoped>
.header{
padding-top: 88rpx;
color: #fff;
font-size: 34rpx;
line-height: 88rpx;
font-weight: 700;
}
.page{
padding: 0 30rpx;
}
uni-page-body{
background-image: url('/static/image/work/bg.png');
background-position: top;
background-size: 100% auto;
background-repeat: no-repeat;
}
.card{
width: 100%;
height: 240rpx;
border-radius: 20rpx;
box-sizing: border-box;
padding: 40rpx;
position: relative;
margin-top: 26rpx;
box-shadow: 0 0 20rpx rgba(0,0,0,0.1);
.title{
color: #0670ED;
font-size: 34rpx;
font-weight: 700;
}
.des{
color: #0670ED;
opacity: 0.8;
font-size: 26rpx;
margin-top: 14rpx;
}
.imgBox{
margin-top: 30rpx;
uni-image{
height: 50rpx;
width: 76rpx;
}
}
.modeLogo{
width: 120rpx;
height: 120rpx;
position: absolute;
right: 30rpx;
bottom: 30rpx;
}
&.row{
background: linear-gradient(to right,#F1F7FF,#D0E5FF);
.modeLogo{
width: 160rpx;
height: 160rpx;
}
}
&.row1{
background: linear-gradient(to bottom,#F4F9FF,#FCFDFF);
}
}
.gird{
display: flex;
flex-wrap: wrap;
.card{
width:48.5%;
margin-right: 3%;
height: 300rpx;
background-color: #FEFEFF;
&:nth-child(2n){
margin-right: 0rpx;
}
&:last-child{
.title{
color: #999999;
}
.des{
color: #999999;
}
}
}
.imgBox{
margin-top: 80rpx;
}
}
</style>

monitorMobile/pages/attendanceCall/passengerFlow/add.vue → monitorMobile/pages/work/passengerFlow/add.vue Dosyayı Görüntüle

@@ -17,7 +17,7 @@
{{form.tick.length?form.tick.join('-'):'请选择'}}
</view>
<image style="width: 30rpx;height:30rpx;"
src="@/static/image/earlyWarning/calendar.png" mode=""></image>
src="@/static/image/earlyWarning/calendar.png" mode="aspectFill"></image>
</view>
</uni-datetime-picker>
</u-form-item>
@@ -62,7 +62,7 @@
},
methods: {
confirm(){
this.CONFIRM(`是否删除点名任务?`).then(()=>{
this.CONFIRM(`是否确认新增查询?`).then(()=>{
})
}

monitorMobile/pages/attendanceCall/passengerFlow/detail.vue → monitorMobile/pages/work/passengerFlow/detail.vue Dosyayı Görüntüle


monitorMobile/pages/attendanceCall/passengerFlow/index.vue → monitorMobile/pages/work/passengerFlow/index.vue Dosyayı Görüntüle

@@ -20,14 +20,14 @@
<view class="type">
<text>分片类型:<text style="color: #333;">小时</text></text>
<view class="peopleNum">
<image src="@/static/image/peopleNum.png" mode=""></image>
<image src="@/static/image/peopleNum.png" mode="aspectFill"></image>
<text>总人数:6</text>
</view>
</view>
</view>
<view class="bottom">
<view class="btn" @click="NAV_TO('./passengerFlow/detail')">
<image src="@/static/image/see.png" mode=""></image>
<image src="@/static/image/see.png" mode="aspectFill"></image>
<text>分片详情</text>
</view>
</view>
@@ -35,7 +35,7 @@
</u-list-item>
<u-loadmore :status="status" />
</u-list>
<image class="addBtn" @click="NAV_TO('./passengerFlow/add')" src="@/static/image/add.png" mode=""></image>
<image class="addBtn" @click="NAV_TO('./passengerFlow/add')" src="@/static/image/add.png" mode="aspectFill"></image>
</view>
</template>

@@ -161,7 +161,7 @@
}

uni-text {
font-size: 30rpx;
font-size: 28rpx;
}
}
}

monitorMobile/pages/attendanceCall/returnBed/comfirm.vue → monitorMobile/pages/work/returnBed/comfirm.vue Dosyayı Görüntüle

@@ -1,36 +1,42 @@
<template>
<view>
<view style="height: 100%;">
<view class="title">
<image src="@/static/image/home1.png" mode="" style="width: 40rpx;height: 40rpx;margin-right: 8rpx;"></image>
<image src="@/static/image/home1.png" mode="aspectFill" style="width: 40rpx;height: 40rpx;margin-right: 8rpx;">
</image>
寝室104
</view>
<view class="time">
2024年8月24日 18:00:00 ~ 18:59:00
</view>
<u-checkbox-group v-model="checkboxValue" class="list" placement="column">
<view v-for="(item, index) in list" :key="index" class="item">
<u-checkbox :name="item.name" shape="circle" label=""></u-checkbox>
<view class="right">
<image src="@/static/image/test/test.png" mode="" style="width: 160rpx;height: 160rpx;"></image>
<view class="des">
<view class="name">
杨云
</view>
<view class="depart">
系部:安环部
</view>
<view class="bottom">
<view class="major">专业:环艺</view>
<view class="class">班级:第二班</view>
<view style="height: calc(100% - 300rpx);overflow: auto;">
<u-checkbox-group v-model="checkboxValue" class="list" placement="column">
<view v-for="(item, index) in list" :key="index" class="item">
<u-checkbox :name="item.name" shape="circle" label=""></u-checkbox>
<view class="right">
<image src="@/static/image/test/test.png" mode="aspectFill" style="width: 160rpx;height: 160rpx;"></image>
<view class="des">
<view class="name">
杨云
</view>
<view class="depart">
系部:安环部
</view>
<view class="bottom">
<view class="major">专业:环艺</view>
<view class="class">班级:第二班</view>
</view>
</view>
</view>
</view>
</view>
</u-checkbox-group>
</u-checkbox-group>
</view>
<view class="returnConfirm">
<u-checkbox-group><u-checkbox shape="circle" label="全选" name="" @change="radioChange"></u-checkbox></u-checkbox-group>
<u-button @click="returnConfirm" type="primary" style="border-radius: 36rpx;height: 72rpx;margin-left:16rpx"
text="确定归寝(0)"></u-button>
<u-checkbox-group><u-checkbox shape="circle" label="全选" name=""
@change="radioChange"></u-checkbox></u-checkbox-group>
<view class="right">
<u-button @click="returnConfirm" type="primary"
style="border-radius: 36rpx;height: 72rpx;margin-left:16rpx" :text="`确定归寝(${checkboxValue.length})`"></u-button>
</view>
</view>
</view>
</view>
@@ -47,20 +53,23 @@
}, {
name: 3
}],
checkboxValue:[],
checkboxValue: [],
}
},
methods: {
radioChange(e){
if(e){
let ids = this.list.map(e=>e.name)
radioChange(e) {
if (e) {
let ids = this.list.map(e => e.name)
this.checkboxValue = ids
}else{
} else {
this.checkboxValue = []
}
},
returnConfirm() {
console.log(this.checkboxValue)
this.CONFIRM('是否确认归寝?').then(()=>{
})
}
}
}
@@ -133,5 +142,13 @@
.returnConfirm {
padding: 30rpx;
display: flex;
position: fixed;
bottom: 0rpx;
width: 100%;
box-sizing: border-box;

.right {
flex: 1;
}
}
</style>

monitorMobile/pages/attendanceCall/returnBed/detail.vue → monitorMobile/pages/work/returnBed/detail.vue Dosyayı Görüntüle

@@ -1,7 +1,7 @@
<template>
<view>
<view class="title">
<image src="@/static/image/home1.png" mode="" style="width: 40rpx;height: 40rpx;margin-right: 8rpx;">
<image src="@/static/image/home1.png" mode="aspectFill" style="width: 38rpx;height: 38rpx;margin-right: 8rpx;">
</image>
寝室104
</view>
@@ -11,7 +11,7 @@
<view class="list">
<view v-for="(item, index) in list" :key="index" class="item">
<view class="right">
<image src="@/static/image/test/test.png" mode="" style="width: 160rpx;height: 160rpx;"></image>
<image src="@/static/image/test/test.png" mode="aspectFill" style="width: 160rpx;height: 160rpx;"></image>
<view class="des">
<view class="top">
<view class="status">
@@ -38,7 +38,7 @@
<view class="list">
<view v-for="(item, index) in list" :key="index" class="item">
<view class="right">
<image src="@/static/image/test/test.png" mode="" style="width: 160rpx;height: 160rpx;"></image>
<image src="@/static/image/test/test.png" mode="aspectFill" style="width: 160rpx;height: 160rpx;"></image>
<view class="des">
<view class="top">
<view class="status error">
@@ -99,6 +99,9 @@
.list {
padding: 0 26rpx;
margin-bottom: 16rpx;
&:last-child{
padding-bottom: 60rpx;
}
.item {
display: flex;
margin-bottom: 28rpx;
@@ -126,8 +129,8 @@
display:flex;
.status{
display: inline-block;
font-size: 26rpx;
line-height: 1.5;
font-size: 24rpx;
line-height: 1.8;
background-color: #0FAF76;
color: #fff;
padding: 0 12rpx;
@@ -141,9 +144,11 @@

.depart {
margin-top: 28rpx;
font-size: 26rpx;
}

.bottom {
font-size: 26rpx;
margin-top: 18rpx;
display: flex;
justify-content: space-between;

monitorMobile/pages/attendanceCall/returnBed/index.vue → monitorMobile/pages/work/returnBed/index.vue Dosyayı Görüntüle

@@ -3,7 +3,7 @@
<view class="searchBox">
<selectRadio :value.sync="search.loudong" :options="[{value:1,label:'男生宿舍1号楼'},{value:2,label:'男生宿舍2号楼'},{value:3,label:'女生宿舍1号楼'},{value:4,label:'女生宿舍2号楼'}]"
title="楼栋" />
<selectSearch :value.sync="search.qinshi" :options="[{value:1,label:'qinshi1'},{value:2,label:'qinshi2'},{value:1,label:'qinshi1'},{value:2,label:'qinshi2'},{value:1,label:'qinshi1'},{value:2,label:'qinshi2'},{value:1,label:'qinshi1'},{value:2,label:'qinshi2'},{value:1,label:'qinshi1'},{value:2,label:'qinshi2'}]"
<selectSearch :value.sync="search.qinshi" :options="[{value:1,label:'寝室302'},{value:2,label:'寝室305'},{value:3,label:'寝室303'}]"
placeholder="请选择寝室" popupTitle="请选择寝室" search-placeholder="请输入寝室号"/>
</view>
<u-empty marginTop="100rpx" :show="false" mode="list" text="暂无数据"></u-empty>
@@ -13,7 +13,7 @@
<view class="row1">
<text class="room">寝室302</text>
<view class="peopleNum">
<image src="@/static/image/peopleNum.png" mode=""></image>
<image src="@/static/image/peopleNum.png" mode="aspectFill"></image>
<text>寝室人数:6</text>
</view>
</view>
@@ -23,11 +23,11 @@
</view>
<view class="bottom">
<view class="btn" @click="NAV_TO('./returnBed/detail')">
<image src="@/static/image/see.png" mode=""></image>
<image src="@/static/image/see.png" mode="aspectFill"></image>
<text>查看</text>
</view>
<view class="btn" @click="NAV_TO('./returnBed/comfirm')">
<image src="@/static/image/confirm.png" mode=""></image>
<image src="@/static/image/confirm.png" mode="aspectFill"></image>
<text>归寝确认</text>
</view>
</view>
@@ -122,6 +122,7 @@

.room {
font-size: 32rpx;
font-weight: 700;
}

.peopleNum {

+ 183
- 0
monitorMobile/pages/work/rollCall/detail.vue Dosyayı Görüntüle

@@ -0,0 +1,183 @@
<template>
<view style="height: 100%;">
<view class="title">
应到:8人
</view>
<view style="padding: 26rpx;overflow: hidden;">
<view class="cate">
<view class="cateList">
<view v-for="item in cateList" :class="{active:item.value == cate}" :key="item.value" class="item" @click="cateItemClick(item)">
{{item.label}}({{item.value}})
</view>
</view>
</view>
</view>
<view style="height:calc(100% - 200rpx);overflow: auto;">
<view class="list">
<view v-for="(item, index) in list" :key="index" class="item">
<view class="right">
<image src="@/static/image/test/image2.png" mode="aspectFill" style="width: 160rpx;height: 160rpx;"></image>
<view class="des">
<view class="top">
<view class="status" :style="{backgroundColor:cate == 1?'#0FAF76':cate == 2?'#EF2D2D':'#F49D19' }">
{{cateList.find(e=>e.value == cate).label}}
</view>
<view class="name">
杨云
</view>
</view>
<view class="depart">
系部:安环部
</view>
<view class="bottom">
<view class="major">专业:环艺</view>
<view class="class">班级:第二班</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>

<script>
export default {
data() {
return {
list: [{
name: 1
}, {
name: 2
}, {
name: 3
}],
cateList: [{
value: 1,
label: '实到'
},
{
value: 2,
label: '未到'
},
{
value: 3,
label: '趴桌子'
},
{
value: 4,
label: '玩手机'
},
{
value: 5,
label: '睡觉'
},
],
cate: 1,
checkboxValue: [],
}
},
methods: {
cateItemClick(item){
this.cate = item.value
}
}
}
</script>

<style scoped lang="scss">
.title {
display: flex;
color: #333333;
padding: 26rpx;
background: #fff;
border-top: 1rpx solid rgba(0, 0, 0, 0.03);
font-size: 30rpx;
}

.cate {
font-size: 30rpx;
overflow-x: auto;

.cateList {
display: flex;
width: auto;

.item {
background-color: #fff;
border-radius: 35rpx;
padding: 0 56rpx;
line-height: 70rpx;
margin-right: 30rpx;
white-space: nowrap;
color: #333;
&.active{
background-color: #2388FF;
color: #fff;
}
}
}
}

.list {
padding: 0 26rpx;
margin-bottom: 60rpx;

.item {
display: flex;
margin-bottom: 28rpx;

&:last-child {
margin-bottom: 0;
}

.right {
padding: 30rpx;
flex: 1;
background-color: #fff;
border-radius: 18rpx;
display: flex;

.des {
flex: 1;
padding-left: 24rpx;
font-size: 26rpx;
color: #333;

.top {
color: #333;
font-size: 32rpx;
display: flex;

.status {
display: inline-block;
font-size: 24rpx;
line-height: 1.8;
color: #fff;
padding: 0 12rpx;
border-radius: 8rpx;
margin-right: 12rpx;
}
}

.depart {
margin-top: 28rpx;
font-size: 26rpx;
}

.bottom {
font-size: 26rpx;
margin-top: 18rpx;
display: flex;
justify-content: space-between;

.major {}

.class {}
}
}
}
}
}
</style>

monitorMobile/pages/attendanceCall/rollCall/index.vue → monitorMobile/pages/work/rollCall/index.vue Dosyayı Görüntüle

@@ -2,14 +2,14 @@
<view style="height: 100%;">
<view class="topBox">
<view class="left">
<selectTree v-model="search.departCalss" :labels.sync="search.departCalssName" />
<selectTree v-model="search.departCalss" placeholder="全部班级" :labels.sync="search.departCalssName" />
</view>
<view class="right" @click="manageClick" :style="{color:isManage?'#EF2D2D':'#333'}">
<text>{{isManage?'取消管理':'批量管理'}}</text>
</view>
</view>
<u-empty marginTop="100rpx" :show="false" mode="list" text="暂无数据"></u-empty>
<u-list @scrolltolower="scrolltolower" style="height: calc(100% - 110rpx);">
<u-list @scrolltolower="scrolltolower" style="height: calc(100% - 110rpx);" :class="{isManage:isManage}">
<u-checkbox-group v-model="checkboxValue" placement="column">
<u-list-item v-for="(item, index) in list" :key="index">
<u-checkbox v-if="isManage" :name="item.name" shape="circle" label=""></u-checkbox>
@@ -26,26 +26,26 @@
</view>
</view>
<view class="bottom" v-show="!isManage">
<view class="btn" @click="NAV_TO('./passengerFlow/detail')">
<image src="@/static/image/see.png" mode=""></image>
<view class="btn" @click="NAV_TO('./rollCall/detail')">
<image src="@/static/image/see.png" mode="aspectFill"></image>
<text>查看</text>
</view>
<view class="btn" @click="NAV_TO('./passengerFlow/detail')">
<image src="@/static/image/earlyWarning/delete.png" mode=""></image>
<view class="btn" @click="del(item)">
<image src="@/static/image/earlyWarning/delete.png" mode="aspectFill"></image>
<text>删除</text>
</view>
</view>
</view>
</u-list-item>
</u-checkbox-group>
<u-loadmore :status="status" />
<u-loadmore :status="status"/>
<view class="bottomConfirm" v-if="isManage">
<u-checkbox-group><u-checkbox shape="circle" label="全选" name="" @change="radioChange"></u-checkbox></u-checkbox-group>
<u-button @click="confirm" type="primary" style="border-radius: 36rpx;height: 72rpx;margin-left:16rpx"
text="确定删除"></u-button>
</view>
</u-list>
<image class="addBtn" @click="NAV_TO('./passengerFlow/add')" src="@/static/image/add.png" mode=""></image>
<image v-if="!isManage" class="addBtn" @click="NAV_TO('./passengerFlow/add')" src="@/static/image/add.png" mode="aspectFill"></image>
</view>
</template>

@@ -108,6 +108,11 @@
this.checkboxValue = []
}
},
del(item){
this.CONFIRM(`是否删除[${item.name}]点名任务?`).then(()=>{
})
},
confirm(){
this.CONFIRM(`是否删除点名任务?`).then(()=>{
@@ -135,6 +140,11 @@
.bottomConfirm {
padding: 30rpx;
display: flex;
position: fixed;
bottom: 100rpx;
background-color: #fff;
width: 100%;
box-sizing: border-box;
}

.topBox {
@@ -155,6 +165,11 @@
padding: 0 26rpx;
}
}
.u-list.isManage{
padding-bottom: 120rpx;
box-sizing: border-box;
}

.u-list-item {
display: flex;

BIN
monitorMobile/static/image/tabbar/attendanceCall.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 80  |  Yükseklik: 80  |  Boyut: 1.2 KiB Genişlik: 80  |  Yükseklik: 80  |  Boyut: 1.1 KiB

BIN
monitorMobile/static/image/tabbar/attendanceCall_active.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 80  |  Yükseklik: 80  |  Boyut: 1.2 KiB

BIN
monitorMobile/static/image/tabbar/earlyWarning.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 80  |  Yükseklik: 80  |  Boyut: 1.2 KiB

BIN
monitorMobile/static/image/tabbar/earlyWarning_active.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 80  |  Yükseklik: 80  |  Boyut: 1.2 KiB Genişlik: 80  |  Yükseklik: 80  |  Boyut: 1.2 KiB

BIN
monitorMobile/static/image/tabbar/home_active.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 80  |  Yükseklik: 80  |  Boyut: 1.0 KiB

BIN
monitorMobile/static/image/tabbar/my_active.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 80  |  Yükseklik: 80  |  Boyut: 1011 B

BIN
monitorMobile/static/image/tabbar/work.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 80  |  Yükseklik: 80  |  Boyut: 894 B

BIN
monitorMobile/static/image/tabbar/work_active.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 80  |  Yükseklik: 80  |  Boyut: 904 B

BIN
monitorMobile/static/image/test/image.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 960  |  Yükseklik: 960  |  Boyut: 1.4 MiB

BIN
monitorMobile/static/image/test/image1.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 347  |  Yükseklik: 518  |  Boyut: 16 KiB

BIN
monitorMobile/static/image/test/image2.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 128  |  Yükseklik: 78  |  Boyut: 20 KiB

BIN
monitorMobile/static/image/work/bg.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 1500  |  Yükseklik: 1640  |  Boyut: 857 KiB

BIN
monitorMobile/static/image/work/monitorManage.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 254  |  Yükseklik: 240  |  Boyut: 51 KiB

BIN
monitorMobile/static/image/work/more.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 254  |  Yükseklik: 240  |  Boyut: 36 KiB

BIN
monitorMobile/static/image/work/passengerFlow.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 254  |  Yükseklik: 240  |  Boyut: 50 KiB

BIN
monitorMobile/static/image/work/returnBed.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 254  |  Yükseklik: 240  |  Boyut: 50 KiB

BIN
monitorMobile/static/image/work/rollCall.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 332  |  Yükseklik: 320  |  Boyut: 74 KiB

BIN
monitorMobile/static/image/work/toRight.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 152  |  Yükseklik: 100  |  Boyut: 1.9 KiB

BIN
monitorMobile/static/image/work/toRight1.png Dosyayı Görüntüle

Önce Sonra
Genişlik: 168  |  Yükseklik: 116  |  Boyut: 6.0 KiB

Yükleniyor…
İptal
Kaydet