| | |
| | | <view class="content">
|
| | | <view class="head">
|
| | | <view>{{item.pointName}}</view>
|
| | | <view class="status" :class="{ gray: item.status == 1 }">{{ item.status == 1 ? '已巡检' : '待巡检' }}</view>
|
| | | <view class="status" :class="{ gray: item.status == 1 }"> |
| | | <image v-if="item.status == 1" src="@/static/plan_ic_finish@2x.png" class="icon" mode=""></image> |
| | | <text>{{ item.status == 1 ? '已巡检' : '待巡检' }}</text> |
| | | </view>
|
| | | </view>
|
| | | <template v-if="item.status == 1">
|
| | | <view class="line">
|
| | | <view class="la">巡检结果:</view>
|
| | | <view class="val" :class="{ red: item.dealStatus == 1 }">{{ item.dealStatus == 0 ? '正常' : '异常' }}</view>
|
| | | <view class="val" :class="{ red: item.dealStatus == 1 }">{{ item.dealStatus == 0 ? '正常' : item.dealStatus == 1 ? '异常' : '-' }}</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="la">巡检时间:</view>
|
| | | <view class="val">{{item.dealDate}}</view>
|
| | | <view class="val"> |
| | | <text>{{item.dealDate}}</text> |
| | | <text @click="detailClick(item)" v-if="item.status == 1" class="detail">查看详情</text> |
| | | </view>
|
| | | </view>
|
| | | </template>
|
| | | <view class="desc" v-else>{{item.content}}</view>
|
| | |
| | | <view class="sub_btn">扫码巡检</view>
|
| | | </view> |
| | | <!-- --> |
| | | |
| | | <view class="reader-box" @click="stopScan" v-if="isScaning"> |
| | | <view class="reader" id="reader"></view> |
| | | </view>
|
| | |
| | | id: '',
|
| | | info: {},
|
| | | list: [],
|
| | | flag: false,
|
| | | flag: false, |
| | | userInfo: uni.getStorageSync('userInfo') || {},
|
| | | statusM: [{
|
| | | color: '#4593f7',
|
| | | name: '待开始'
|
| | |
| | | },
|
| | | ],
|
| | | html5Qrcode: null,
|
| | | isScaning: false,
|
| | | isScaning: false, |
| | | |
| | | |
| | | };
|
| | | },
|
| | | onLoad(option) {
|
| | | this.id = option.id
|
| | | // this.getDetail()
|
| | | },
|
| | | onShow() {
|
| | | this.getDetail()
|
| | | },
|
| | | // onShow() {
|
| | | // this.getDetail()
|
| | | // },
|
| | | methods: {
|
| | | openSc() {
|
| | | this.isScaning = true;
|
| | |
| | | },
|
| | | (decodeText, decodeResult) => {
|
| | | if (decodeText) { //这里decodeText就是通过扫描二维码得到的内容
|
| | | this.stopScan(); //关闭扫码功能
|
| | | this.stopScan(); //关闭扫码功能 |
| | | const index = decodeText.indexOf('ywid') |
| | | let pointCode = decodeText.slice(index + 5)
|
| | | getPointRecordByCode({
|
| | | taskId: this.id,
|
| | | pointCode: decodeText
|
| | | pointCode
|
| | | }).then(ress => {
|
| | | if (ress.data) {
|
| | | uni.navigateTo({
|
| | |
| | | if (this.html5Qrcode) {
|
| | | this.html5Qrcode.stop();
|
| | | }
|
| | | },
|
| | | }, |
| | | |
| | | itemClick(item) {
|
| | | if (!this.flag) return
|
| | | uni.navigateTo({
|
| | | url: '/pages/polling/point?id=' + item.id
|
| | | })
|
| | | }, |
| | | detailClick(item) { |
| | | uni.navigateTo({ |
| | | url: '/pages/polling/point?id=' + item.id |
| | | }) |
| | | },
|
| | | getDetail() {
|
| | | const {
|
| | |
| | | ywPatrolDetail(id).then(res => {
|
| | | this.info = res.data
|
| | | let time = new Date(res.data.startDate).getTime()
|
| | | console.log('res.data.startDate', new Date().getTime());
|
| | | this.flag = new Date().getTime() > time
|
| | | console.log('res.data.startDate', new Date().getTime()); |
| | | if(res.data.userIds.indexOf(this.userInfo.id) > -1){ |
| | | this.flag = new Date().getTime() > time && (this.info.status == 0 || this.info.status == 1 || this.info.status == 2) |
| | | }
|
| | | })
|
| | | ywPatrolTaskRecord({
|
| | | capacity: 999,
|
| | |
| | | margin-bottom: 20rpx;
|
| | |
|
| | | .la {
|
| | | color: #666666;
|
| | | color: #666666; |
| | | |
| | | }
|
| | | }
|
| | |
|
| | | .list {
|
| | | height: calc(100vh - 720rpx);
|
| | | overflow: auto;
|
| | |
|
| | | height: calc(100vh - 490rpx);
|
| | | overflow: auto; |
| | | padding-bottom: 160rpx;
|
| | | .item {
|
| | | width: 690rpx;
|
| | | height: 188rpx;
|
| | |
| | | margin-bottom: 20rpx;
|
| | |
|
| | | .line {
|
| | | margin-bottom: 10rpx;
|
| | | margin-bottom: 10rpx; |
| | | width: 100%; |
| | | .val{ |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | flex: 1; |
| | | .detail{ |
| | | color: $primaryColor; |
| | | font-size: 26rpx; |
| | | } |
| | | }
|
| | | }
|
| | |
|
| | | .icon {
|
| | |
| | | margin-bottom: 16rpx;
|
| | |
|
| | | .status {
|
| | | offset-anchor: 28rpx;
|
| | | font-size: 28rpx;
|
| | | color: $primaryColor;
|
| | | font-weight: 400;
|
| | | font-weight: 400; |
| | | display: flex; |
| | | align-items: center; |
| | | .icon{ |
| | | width: 40rpx; |
| | | height: 40rpx; |
| | | // border-radius: 50%; |
| | | // overflow: hidden; |
| | | background: none; |
| | | } |
| | | |
| | | }
|
| | |
|
| | | .gray {
|