From 1c1dc56be93441e39da19d8de2e65ebb7f6704c2 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期一, 09 十二月 2024 23:06:54 +0800
Subject: [PATCH] ll
---
admin/.env | 4
h5/api/yw.js | 7 ++
h5/pages/polling/detail.vue | 9 +-
h5/pages/workOrder/detail.vue | 15 +++-
h5/utils/config.js | 5 -
h5/pages/operation/record.vue | 9 ++
h5/pages/operation/device.vue | 28 ++++++++-
h5/pages/operation/detail.vue | 5 +
h5/manifest.json | 4
h5/pages/login.vue | 7 +-
h5/pages/polling/task.vue | 75 ++++++++++++++++++++----
h5/pages/workOrder/list.vue | 2
12 files changed, 130 insertions(+), 40 deletions(-)
diff --git a/admin/.env b/admin/.env
index c471f0b..6aaad6a 100644
--- a/admin/.env
+++ b/admin/.env
@@ -3,8 +3,8 @@
# 璺敱鏂瑰紡
VUE_APP_ROUTER_MODE = 'hash'
-# 椤圭洰涓婁笅鏂囪矾寰� fn_admin/#/
-VUE_APP_CONTEXT_PATH = '/'
+# 椤圭洰涓婁笅鏂囪矾寰�
+VUE_APP_CONTEXT_PATH = '/fn_admin'
# 鎺ュ彛鍓嶇紑
VUE_APP_API_PREFIX = '/gateway_interface'
diff --git a/h5/api/yw.js b/h5/api/yw.js
index acce7d5..5e211b0 100644
--- a/h5/api/yw.js
+++ b/h5/api/yw.js
@@ -127,4 +127,11 @@
url: 'visitsAdmin/cloudService/business/category/page',
data
})
+}
+//
+export const getPointRecordByCode = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/business/ywPatrolTaskRecord/getPointRecordByCode',
+ data
+ })
}
\ No newline at end of file
diff --git a/h5/manifest.json b/h5/manifest.json
index b905047..4f22dff 100644
--- a/h5/manifest.json
+++ b/h5/manifest.json
@@ -129,9 +129,9 @@
"/gateway_interface" : {
// 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃
// "target" : "http://172.20.10.7:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
- "target" : "http://192.168.0.163:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+ // "target" : "http://192.168.0.163:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
// "target" : "http://10.50.250.253:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
- // "target" : "http://192.168.0.173/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+ "target" : "https://zhcg.fnwtzx.com/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
"changeOrigin" : true, // 鍏佽璺ㄥ煙
"pathRewrite" : {
"^/gateway_interface" : ""
diff --git a/h5/pages/login.vue b/h5/pages/login.vue
index bfa5c86..b742a89 100644
--- a/h5/pages/login.vue
+++ b/h5/pages/login.vue
@@ -45,8 +45,8 @@
code: ''
},
downTime: 0,
- // code: '011dfEkl2PzcFe4ZxSnl22NKXz4dfEkQ'
- code: ''
+ code: '111'
+ // code: ''
}
},
@@ -66,7 +66,8 @@
ywWxAuthorize({
code: code || this.code
}).then(res => {
- if (res.code === 200) {
+ if (res.code === 200) {
+ console.log('res', res);
that.$store.commit('setOpenId', res.data.openid)
if (res.data.token && res.data.token != '') {
that.$store.commit('setToken', res.data.token)
diff --git a/h5/pages/operation/detail.vue b/h5/pages/operation/detail.vue
index 0420d6b..51bafd8 100644
--- a/h5/pages/operation/detail.vue
+++ b/h5/pages/operation/detail.vue
@@ -2,7 +2,7 @@
<view>
<view class="content">
<view class="name_wrap">
- <view class="name">{{info.deviceName}}</view>
+ <view class="name">{{info.deviceName}} {{info.deviceCode || ''}}</view>
<view class="status" v-if="info.status == 0">姝e父</view>
<view class="status red" v-if="info.status == 1">鎹熷潖</view>
<view class="status red" v-if="info.status == 2">鎶ュ簾</view>
@@ -15,7 +15,7 @@
<view class="title">杩愮淮澶囨敞</view>
<view class="file_list">
<view class="file" v-for="item in info.multifileList">
- <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
+ <image v-if="item.type == 0" :src="item.fileurlFull" mode="aspectFill"></image>
<video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
</view>
</view>
@@ -99,6 +99,7 @@
}
image,video{
width: 156rpx;
+ height: 156rpx;
}
}
.desc{
diff --git a/h5/pages/operation/device.vue b/h5/pages/operation/device.vue
index d9b13df..b9a4c5f 100644
--- a/h5/pages/operation/device.vue
+++ b/h5/pages/operation/device.vue
@@ -6,7 +6,7 @@
<view class="line">
<view class="sel_wrap" @click="showModal = true">
<view class="left" :class="(param.deviceName || param.deviceCode) ? '' : 'placeholder9'">
- {{ (param.deviceName || param.deviceCode) ? `[${param.deviceCode}] ` + param.deviceName : '璇烽�夋嫨璁惧' }}
+ {{ (param.deviceName || param.deviceCode) ? param.deviceName ? `[${param.deviceCode}] ` + param.deviceName : `[${param.deviceCode}]` : '璇烽�夋嫨璁惧' }}
</view>
<u-icon name="arrow-right" color="#999999" size="17"></u-icon>
</view>
@@ -118,6 +118,25 @@
} = this
if (!param.deviceId) return this.showToast('璇峰厛閫夋嫨瑕佺淮鎶ょ殑璁惧')
+ if (param.status != 0) {
+ uni.showModal({
+ title: '娓╅Θ鎻愮ず',
+ content: '璁惧杩愮淮缁撴灉寮傚父锛屾槸鍚﹀墠寰�鎻愪氦宸ュ崟?',
+ success: function(res) {
+ if (res.confirm) {
+ this.handleP()
+ } else if (res.cancel) {}
+ }
+ });
+ }else{
+ this.handleP()
+ }
+ },
+ handleP() {
+ const {
+ param,
+ fileList
+ } = this
ywDeviceCreate({
...param,
userId: uni.getStorageSync('userInfo').id,
@@ -144,7 +163,7 @@
activeDevice
} = this
if (!activeDevice.id) return this.showToast('璇峰厛閫夋嫨璁惧')
- this.$set(this.param, 'deviceId', activeDevice.id)
+ this.$set(this.param, 'deviceId', activeDevice.id)
this.$set(this.param, 'deviceCode', activeDevice.code)
this.$set(this.param, 'deviceName', activeDevice.name)
this.showModal = false
@@ -413,7 +432,7 @@
// bottom: 68rpx;
// left: 40rpx;
width: 670rpx;
- height: 88rpx;
+ height: 88rpx;
margin-top: 80rpx;
background: $primaryColor;
box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 104, 255, 0.3);
@@ -458,8 +477,9 @@
}
.modal_list {
- height: calc(100% - 360rpx);
+ height: calc(100% - 360rpx);
margin-bottom: -20rpx;
+
.item {
display: flex;
align-items: center;
diff --git a/h5/pages/operation/record.vue b/h5/pages/operation/record.vue
index 45b95e1..94122b2 100644
--- a/h5/pages/operation/record.vue
+++ b/h5/pages/operation/record.vue
@@ -3,7 +3,7 @@
<view class="head_wrap">
<view class="search_wrap">
<image class="mr12 search" src="@/static/home/ic_search@2x.png" mode="widthFix"></image>
- <input v-model="param.deviceName" @confirm="getList()" type="text" placeholder="鎼滅储璁惧鍚嶇О/缂栧彿"
+ <input v-model="param.deviceName" @confirm="queryList" type="text" placeholder="鎼滅储璁惧鍚嶇О/缂栧彿"
placeholder-class="placeholder9" />
</view>
<view class="name_wrap" @click="handleMem">
@@ -75,7 +75,12 @@
})
},
- methods: {
+ methods: {
+ queryList() {
+ this.page = 1
+ this.list = []
+ this.getList()
+ },
getList() {
const {
page,
diff --git a/h5/pages/polling/detail.vue b/h5/pages/polling/detail.vue
index 41553c2..24b5721 100644
--- a/h5/pages/polling/detail.vue
+++ b/h5/pages/polling/detail.vue
@@ -78,9 +78,9 @@
this.id = option.id
this.getDetail()
},
- onShow() {
- this.getDetail()
- },
+ // onShow() {
+ // this.getDetail()
+ // },
methods: {
itemClick(item) {
if(!this.flag) return
@@ -94,7 +94,8 @@
} = this
ywPatrolDetail(id).then(res => {
this.info = res.data
- let time = new Date(res.data.startDate.slice(0, 10) + ' 00:00:00').getTime()
+ let time = new Date(res.data.startDate).getTime()
+ console.log('res.data.startDate', new Date().getTime());
this.flag = new Date().getTime() > time
})
ywPatrolTaskRecord({
diff --git a/h5/pages/polling/task.vue b/h5/pages/polling/task.vue
index e89f434..8298402 100644
--- a/h5/pages/polling/task.vue
+++ b/h5/pages/polling/task.vue
@@ -28,23 +28,23 @@
<!-- -->
<scroll-view scroll-y="true" class="scroll_Y" @scrolltolower="scrolltolower">
<view class="list">
- <view class="item" v-for="item in list" @click="itemClick(item)">
- <image v-if="item.status == 0 || item.status == 1" src="@/static/side/xunjianed.png" class="icon"></image>
- <image v-else src="@/static/side/xunjian.png" class="icon"></image>
+ <view class="item" v-for="item in list">
+ <image @click="itemClick(item)" v-if="item.status == 0 || item.status == 1" src="@/static/side/xunjianed.png" class="icon"></image>
+ <image @click="itemClick(item)" v-else src="@/static/side/xunjian.png" class="icon"></image>
<view class="content">
<view class="name_wrap line">
- <view class="name">{{item.planTitle}}</view>
- <view class="status" :class="{
+ <view class="name" @click="itemClick(item)">{{item.planTitle}}</view>
+ <view class="status" @click="itemClick(item)" :class="{
green: item.status == 1,
red: item.status == 2,
gray: item.status == 3 || item.status == 4
}">{{statusM[item.status]}}</view>
</view>
- <view class="line" v-if="item.startDate">浠诲姟鏃ユ湡锛歿{ item.startDate.slice(0, 11) }}</view>
- <view class="line">鎵ц鏃堕棿锛歿{ item.startDate.slice(11, 16) }} 鑷� {{ item.endDate.slice(11, 16) }}</view>
+ <view class="line" @click="itemClick(item)" v-if="item.startDate">浠诲姟鏃ユ湡锛歿{ item.startDate.slice(0, 11) }}</view>
+ <view class="line" @click="itemClick(item)">鎵ц鏃堕棿锛歿{ item.startDate.slice(11, 16) }} 鑷� {{ item.endDate.slice(11, 16) }}</view>
<view class="line">
- <view>瀹屾垚鎯呭喌锛歿{item.finishNum || 0}}/{{item.patrolNum}}</view>
- <view class="btn">
+ <view @click="itemClick(item)">瀹屾垚鎯呭喌锛歿{item.finishNum || 0}}/{{item.patrolNum}}</view>
+ <view v-if="param.queryStatus == '0,1'" class="btn" @click="openSc(item)">
<image src="@/static/side/ic_saoma@2x.png" class="saoma" mode=""></image>
<view>鎵爜宸℃</view>
</view>
@@ -54,14 +54,19 @@
</view>
</scroll-view>
- <!-- -->
+ <!-- -->
+
</view>
</template>
<script>
import {
- ywPatrolTaskPost
- } from '@/api'
+ ywPatrolTaskPost,
+ getPointRecordByCode
+ } from '@/api'
+ import {
+ Html5Qrcode
+ } from 'html5-qrcode';
export default {
data() {
return {
@@ -79,13 +84,57 @@
2: '宸茶秴鏈�',
3: '宸插畬鎴�',
4: '宸插彇娑�',
- }
+ },
+ html5Qrcode: null,
+ isScaning: false,
+ activeItem: {}
};
},
onLoad() {
this.getList()
},
methods: {
+ openSc(item) {
+ this.activeItem = item
+ this.isScaning = true;
+ Html5Qrcode.getCameras().then((devices) => {
+ if (devices && devices.length) {
+ this.html5Qrcode = new Html5Qrcode('reader');
+ this.html5Qrcode.start({
+ facingMode: 'environment'
+ }, {
+ focusMode: 'continuous', //璁剧疆杩炵画鑱氱劍妯″紡
+ fps: 5, //璁剧疆鎵爜璇嗗埆閫熷害
+ qrbox: 280 //璁剧疆浜岀淮鐮佹壂鎻忔澶у皬
+ },
+ (decodeText, decodeResult) => {
+ if (decodeText) { //杩欓噷decodeText灏辨槸閫氳繃鎵弿浜岀淮鐮佸緱鍒扮殑鍐呭
+ this.stopScan(); //鍏抽棴鎵爜鍔熻兘
+ getPointRecordByCode({
+ taskId: item.id,
+ pointCode: decodeText
+ }).then(ress=> {
+ if(ress.data){
+
+ }
+ })
+ }
+ },
+ (err) => {
+ // console.log(err); //閿欒淇℃伅
+ }
+ );
+ }
+ });
+ },
+
+ stopScan() {
+ console.log('鍋滄鎵爜')
+ this.isScaning = false;
+ if (this.html5Qrcode) {
+ this.html5Qrcode.stop();
+ }
+ },
scrolltolower() {
const {
total,
diff --git a/h5/pages/workOrder/detail.vue b/h5/pages/workOrder/detail.vue
index f1726d3..f26e85c 100644
--- a/h5/pages/workOrder/detail.vue
+++ b/h5/pages/workOrder/detail.vue
@@ -4,7 +4,7 @@
<view class="title">
<text>{{ info.projectName }}/{{ info.buildingName }}/{{info.roomNum || info.floorName}}</text>
<text class="status" v-if="info.dealStatus == 0">寰呭鐞�</text>
- <text class="status" v-if="info.dealStatus == 1">宸叉寚娲�</text>
+ <text class="status" v-if="info.dealStatus == 1">寰呭鐞�</text>
<text class="status gray" v-if="info.dealStatus == 2">宸插鐞�</text>
</view>
<view class="desc">{{ info.content }}</view>
@@ -58,8 +58,8 @@
</view>
</view>
<!-- -->
- <view class="btns" v-if="info.dealStatus == 0">
- <view class="btn">
+ <view class="btns" v-if="info.dealStatus == 0 || (info.dealUserId === userInfo.id && info.dealStatus == 1)">
+ <view class="btn" @click="handleCall">
<image src="@/static/side/phoneed.png" class="icon"></image>
<text>涓婃姤浜�</text>
</view>
@@ -135,7 +135,8 @@
info: {},
showUpload: false,
isShowHandle: false,
- isShowHandleDate: false,
+ isShowHandleDate: false,
+ userInfo: uni.getStorageSync('userInfo') || {},
handleParam: {},
dealFileList: []
};
@@ -159,6 +160,12 @@
uni.navigateBack()
}
})
+ },
+ handleCall() {
+ const { info } = this
+ uni.makePhoneCall({
+ phoneNumber: info.creatorMobile
+ });
},
getDetail() {
ywWorkorderD(this.id).then(res => {
diff --git a/h5/pages/workOrder/list.vue b/h5/pages/workOrder/list.vue
index 208af24..2da419f 100644
--- a/h5/pages/workOrder/list.vue
+++ b/h5/pages/workOrder/list.vue
@@ -73,7 +73,7 @@
page: 1,
};
},
- onShow() {
+ onLoad() {
this.getList()
},
methods: {
diff --git a/h5/utils/config.js b/h5/utils/config.js
index 9e2bd8f..49ff135 100644
--- a/h5/utils/config.js
+++ b/h5/utils/config.js
@@ -1,7 +1,6 @@
-
-// export const baseUrl = 'gateway_interface/'
+ export const baseUrl = 'gateway_interface/'
// export const baseUrl = 'http://192.168.0.173/gateway_interface/'
-export const baseUrl = 'https://zhcg.fnwtzx.com/gateway_interface/'
+// export const baseUrl = 'https://zhcg.fnwtzx.com/gateway_interface/'
export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`
export const uploadUrl = `${baseUrl}visitsAdmin/cloudService/public/uploadBatch`
--
Gitblit v1.9.3