From 4efeb31d5b4921d7e851c256009486ad86bc70e2 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Tue, 21 Jun 2022 09:14:57 +0800
Subject: [PATCH] 地址替换
---
pages/dispatch/dispatch.vue | 583 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 533 insertions(+), 50 deletions(-)
diff --git a/pages/dispatch/dispatch.vue b/pages/dispatch/dispatch.vue
index ac3b753..8b33dab 100644
--- a/pages/dispatch/dispatch.vue
+++ b/pages/dispatch/dispatch.vue
@@ -1,85 +1,568 @@
<template>
- <view class="container">
- <view class="service-box">
- <u-grid :col="4" :border="false">
- <u-grid-item bg-color="transparent" v-for="(item, index) in serviceButton" :key="index" @click="goBusinessPage(item.url,index)">
- <view class="service-item">
- <image :src="item.img" mode="widthFix" class="img"></image>
- <view class="name">{{ item.name }}</view>
+
+ <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>
- </u-grid-item>
- </u-grid>
+
+ </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>
- import {
- fakeServiceButton
- } from "@/api/mock/dispatch.js";
-
export default {
data() {
return {
- dataList:[],
- serviceButton: []
+
+ 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: {
- onLoad() {
- // 加载服务按钮数据
- fakeServiceButton().then(data => {
- this.serviceButton = data;
+ 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
+ }
+
+ }
});
},
- //页面跳转
- goBusinessPage(url,index){
+ 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:url
+ 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">
- .container {
- background-color: #f7f7f7;
- min-height: 100vh;
- overflow: hidden;
- }
- .service-box {
- background: #ffffff;
- border-radius: 20px 20px 20px 20px;
- margin: 30rpx 20rpx 0;
- padding: 0rpx 20rpx;
+ .page-container {
+ position: fixed;
+ display: block;
+ width: 100%;
+ max-height: 100vh;
- .service-item {
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- align-items: center;
+
+
+ .head {
+ position: relative;
+
+
width: 100%;
- height: 120rpx;
- font-size: 26rpx;
- font-family: PingFang SC;
- font-weight: 500;
- color: #585b61;
- .img {
- width: 70rpx;
- height: auto;
+
+ .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;
+
+ }
+
+ }
+
}
}
-</style>
+ .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>
--
Gitblit v1.9.3