<template>
|
|
<view class="page-container" style="height: 100%; position: relative;">
|
<view class="head top-absolute">
|
<u-navbar :is-fixed="false" :border-bottom="false" :is-back="false" title=""
|
:background="{ background: '#0BB9C8' }">
|
<view class="nav-wrap">
|
|
<view style="position: relative;">
|
|
<view class="btn-return-box">
|
<view class="btn-return">
|
<i class="uni-btn-icon" @click="goReturnPage"
|
style="color: rgb(255, 255, 255); font-size: 27px;"></i>
|
</view>
|
</view>
|
|
<span class="header-title">调度指令</span>
|
|
<u-icon v-if="$store.state.UserData.rname[0].indexOf('保安') == -1" @click="goToAddPage" top='4'
|
class="header-add" name="plus" color="#fff">
|
</u-icon>
|
|
</view>
|
|
</view>
|
</u-navbar>
|
</view>
|
<view class="head">
|
<u-navbar :is-fixed="false" :border-bottom="false" :is-back="false" title=""
|
:background="{ background: '#0BB9C8' }">
|
<view class="nav-wrap">
|
|
<view style="position: relative;">
|
|
<view class="btn-return-box">
|
<view class="btn-return">
|
<i class="uni-btn-icon" @click="goReturnPage"
|
style="color: rgb(255, 255, 255); font-size: 27px;"></i>
|
</view>
|
</view>
|
|
<span class="header-title">调度指令</span>
|
|
<u-icon @click="goToAddPage" top='4' class="header-add" name="plus" color="#fff">
|
</u-icon>
|
|
</view>
|
|
</view>
|
</u-navbar>
|
</view>
|
|
<view class="wrapper">
|
|
<view class="body">
|
|
<view class="body-content">
|
|
<u-tabs :list="list" :is-scroll="false" :current="current" active-color="#14B9C8"
|
inactive-color="#595959" height="100" @change="change"></u-tabs>
|
|
<u-search v-model='keyValue' placeholder='请输入指令内容' shape="round" class="u-search"
|
input-align="center" height="70" @search='searchValue' @custom='searchValue' @clear='clearValue'
|
@change='changeValue'>
|
</u-search>
|
|
<view v-show="current == 0 && newsList.length > 0">
|
<view class="inTmain" v-for="(item,index) in newsList">
|
<u-card :title="item.content" @click="goDetail(item)">
|
<view class="" slot="body">
|
<view>
|
<view style="margin-bottom: 10px;" class="u-body-item-title u-line-2">
|
发送指令人:{{item.sendName}}</view>
|
</view>
|
<view>
|
<view class="u-body-item-title u-line-2">接受指令人:{{item.receiveName}}</view>
|
</view>
|
</view>
|
<view class="" slot="foot">
|
</u-icon>发送指令时间:{{item.sendTime}}</view>
|
</u-card>
|
</view>
|
<u-loadmore class='msg' :status="status" />
|
</view>
|
|
<view v-show="current == 1 && newsList.length > 0">
|
<view class="inTmain" v-for="(item,index) in newsList">
|
<u-card :title="item.content" @click="goDetail(item)">
|
<view class="" slot="body">
|
<view>
|
<view style="margin-bottom: 10px;" class="u-body-item-title u-line-2">
|
发送指令人:{{item.sendName}}</view>
|
</view>
|
<view>
|
<view class="u-body-item-title u-line-2">接受指令人:{{item.receiveName}}</view>
|
</view>
|
</view>
|
<view class="" slot="foot">
|
</u-icon>发送指令时间:{{item.sendTime}}</view>
|
</u-card>
|
</view>
|
<u-loadmore class='msg' :status="status" />
|
</view>
|
|
<view class="msg" v-show='newsList.length == 0'>
|
暂无数据
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
</view>
|
|
</template>
|
|
<script>
|
export default {
|
data() {
|
return {
|
|
list: [],
|
|
current: 0,
|
|
dataList: [],
|
newsList: [],
|
|
status: 'loadmore',
|
keyValue: '',
|
|
dataList: [],
|
newsList: [],
|
pagelist: 0,
|
pages: 0,
|
flag: true,
|
|
pullDown: false
|
|
};
|
},
|
onLoad() {
|
|
if (this.$store.state.UserData.rname[0] == '保安') {
|
|
this.list = [{
|
name: '接收指令查询'
|
}]
|
|
this.getSend();
|
|
} else if (this.$store.state.UserData.rname[0] == '保安公司管理员') {
|
|
this.list = [{
|
name: '接收指令查询'
|
}]
|
|
this.getSend();
|
|
} else {
|
this.list = [{
|
name: '下发指令查询'
|
}, {
|
name: '接收指令查询'
|
}]
|
|
this.getReceive()
|
}
|
|
},
|
onReachBottom() {
|
var that = this;
|
|
if (that.flag == false) {
|
that.status = 'nomore';
|
return
|
}
|
// 后续将改为与后端联动
|
that.status = 'loading';
|
|
setTimeout(() => {
|
if (that.current == 0) {
|
that.getReceive();
|
} else {
|
that.getSend();
|
}
|
}, 1000);
|
},
|
|
onPullDownRefresh: function() {
|
var that = this;
|
|
this.pullDown = true;
|
this.pagelist = 0;
|
this.pages = 0;
|
this.flag = true;
|
this.dataList = [];
|
this.newsList = [];
|
this.status = 'loading';
|
this.keyValue = '';
|
setTimeout(() => {
|
if (that.current == 0) {
|
that.getReceive();
|
} else {
|
that.getSend();
|
}
|
}, 1000)
|
|
},
|
mounted() {
|
},
|
methods: {
|
getReceive() {
|
var that = this;
|
|
if (that.pagelist < that.pages || that.pagelist == 0) {
|
that.pagelist++
|
} else if (that.pagelist == that.pages) {
|
that.flag = false
|
that.status = 'nomore';
|
return
|
}
|
|
uni.request({
|
url: this.$store.state.piAPI + "/directive/page?sendDirectiveId=" + this.$store.state
|
.puserID,
|
method: "get",
|
data: {
|
current: that.pagelist,
|
size: 10
|
},
|
success: (res) => {
|
that.pages = res.data.data.pages;
|
|
var resdata = res.data.data.records;
|
|
if (this.pullDown == true) {
|
this.pullDown = false;
|
uni.stopPullDownRefresh();
|
}
|
|
if (resdata.length == 0) {
|
that.flag = false
|
that.status = 'nomore';
|
return
|
} else {
|
resdata.forEach(item => {
|
that.newsList.push(item)
|
that.dataList.push(item)
|
})
|
}
|
|
if (that.pagelist == that.pages) {
|
that.flag = false
|
that.status = 'nomore';
|
return
|
}
|
|
}
|
});
|
},
|
getSend() {
|
var that = this;
|
|
if (that.pagelist < that.pages || that.pagelist == 0) {
|
that.pagelist++
|
} else if (that.pagelist == that.pages) {
|
that.flag = false
|
that.status = 'nomore';
|
return
|
}
|
|
uni.request({
|
url: this.$store.state.piAPI + "/directive/page?receiveDirectiveIds=" + this.$store.state.puserID,
|
method: "get",
|
data: {
|
current: that.pagelist,
|
size: 10
|
},
|
success: (res) => {
|
that.pages = res.data.data.pages;
|
|
var resdata = res.data.data.records;
|
|
if (this.pullDown == true) {
|
this.pullDown = false;
|
uni.stopPullDownRefresh();
|
}
|
|
if (resdata.length == 0) {
|
that.flag = false
|
that.status = 'nomore';
|
return
|
} else {
|
resdata.forEach(item => {
|
that.newsList.push(item)
|
that.dataList.push(item)
|
})
|
}
|
|
if (that.pagelist == that.pages) {
|
that.flag = false
|
that.status = 'nomore';
|
return
|
}
|
|
}
|
});
|
},
|
goDetail(item) {
|
uni.navigateTo({
|
url: './lookDetail?detailData=' + JSON.stringify(item)
|
});
|
},
|
change(index) {
|
if (this.current == index) return;
|
this.dataList = [];
|
this.newsList = [];
|
this.pagelist = 0;
|
this.pages = 0;
|
this.flag = true;
|
this.current = index;
|
if (index == 0) {
|
this.getReceive();
|
} else {
|
this.getSend();
|
}
|
},
|
searchValue(value) {
|
var that = this;
|
var str = value.replace(/\s*/g, "");
|
if (str == '') {
|
return
|
} else {
|
that.newsList = [];
|
|
if (that.current == 0) {
|
uni.request({
|
url: this.$store.state.piAPI + "/directive/page?receiveDirectiveIds=" + this.$store
|
.state
|
.puserID,
|
method: "get",
|
data: {
|
current: 1,
|
size: 999999,
|
content: str
|
},
|
success: (res) => {
|
var resdata = res.data.data.records;
|
|
resdata.forEach(item => {
|
that.newsList.push(item)
|
})
|
|
}
|
});
|
} else {
|
uni.request({
|
url: this.$store.state.piAPI + "/directive/page?sendDirectiveId=" + this.$store.state
|
.puserID,
|
method: "get",
|
data: {
|
current: 1,
|
size: 999999,
|
content: str
|
},
|
success: (res) => {
|
var resdata = res.data.data.records;
|
|
resdata.forEach(item => {
|
that.newsList.push(item)
|
})
|
|
}
|
});
|
}
|
|
that.flag = false
|
that.status = 'nomore';
|
}
|
},
|
clearValue() {
|
this.keyValue = ''
|
this.newsList = [];
|
|
this.dataList.forEach(item => {
|
this.newsList.push(item)
|
})
|
|
if (this.pagelist < this.pages) {
|
this.flag = true;
|
this.status = 'loading';
|
} else {
|
this.flag = false;
|
this.status = 'nomore';
|
}
|
},
|
changeValue(value) {
|
if (value == '') {
|
this.newsList = [];
|
|
this.dataList.forEach(item => {
|
this.newsList.push(item)
|
})
|
|
if (this.pagelist < this.pages) {
|
this.flag = true;
|
this.status = 'loading';
|
} else {
|
this.flag = false;
|
this.status = 'nomore';
|
}
|
}
|
},
|
goReturnPage() {
|
uni.switchTab({
|
url: '/pages/home/home'
|
});
|
},
|
goToAddPage() {
|
uni.navigateTo({
|
url: './imgissue'
|
});
|
},
|
}
|
};
|
</script>
|
|
<style lang="scss">
|
.page-container {
|
position: fixed;
|
display: block;
|
width: 100%;
|
max-height: 100vh;
|
|
|
|
.head {
|
position: relative;
|
|
|
width: 100%;
|
|
|
.nav-wrap {
|
width: 100%;
|
height: 44px;
|
line-height: 30px;
|
padding: 7px 3px;
|
height: calc(44px + constant(safe-area-inset-top));
|
height: calc(44px + env(safe-area-inset-top));
|
color: rgb(255, 255, 255);
|
|
.btn-return-box {
|
display: flex;
|
align-items: center;
|
font-size: 16px;
|
box-sizing: border-box;
|
|
.btn-return {
|
position: relative;
|
width: auto;
|
margin: 0 2px;
|
word-break: keep-all;
|
white-space: pre;
|
cursor: pointer;
|
}
|
}
|
|
.header-title {
|
position: absolute;
|
top: 0;
|
left: 0;
|
right: 0;
|
bottom: 0;
|
margin: auto;
|
width: 60%;
|
font-weight: 700;
|
line-height: 30px;
|
font-size: 16px;
|
opacity: 1;
|
text-overflow: ellipsis;
|
text-align: center;
|
min-width: 1em;
|
}
|
|
.header-add {
|
position: absolute;
|
top: 0;
|
left: auto;
|
right: 10px;
|
bottom: 0;
|
margin: auto;
|
display: inline-block;
|
font: normal normal normal 14px/1 unibtn;
|
text-rendering: auto;
|
-webkit-font-smoothing: antialiased;
|
font-size: 24px;
|
}
|
}
|
|
}
|
|
.top-absolute {
|
position: fixed;
|
top: 0;
|
left: 0;
|
z-index: 101;
|
}
|
|
.wrapper {
|
|
width: 100%;
|
display: block;
|
height: calc(100% - 44px);
|
height: calc(100% - 44px - constant(safe-area-inset-top));
|
height: calc(100% - 44px - env(safe-area-inset-top));
|
|
.body {
|
width: 100%;
|
height: 100%;
|
overflow-x: hidden;
|
overflow-y: auto;
|
|
.body-content {
|
height: auto;
|
|
}
|
|
}
|
|
}
|
}
|
|
.u-card-wrap {
|
background-color: $u-bg-color;
|
padding: 1px;
|
}
|
|
.u-body-item {
|
font-size: 32rpx;
|
color: #333;
|
padding: 20rpx 10rpx;
|
}
|
|
.u-body-item image {
|
width: 120rpx;
|
flex: 0 0 120rpx;
|
height: 120rpx;
|
border-radius: 8rpx;
|
margin-left: 12rpx;
|
}
|
|
.u-search {
|
padding: 20rpx 30rpx 0 30rpx;
|
}
|
|
.inTmain {}
|
|
.msg {
|
height: 72rpx;
|
line-height: 72rpx;
|
text-align: center;
|
color: #999;
|
}
|
</style>
|