From 9ce28811e94fa042adb7cabe6581b0393c6d576d Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期一, 09 十二月 2024 18:17:11 +0800
Subject: [PATCH] ll
---
h5/pages.json | 2
h5/pages/workOrder/edit.vue | 15
h5/utils/config.js | 6
h5/pages/operation/record.vue | 2
h5/api/staff.js | 10
h5/pages/operation/device.vue | 22 +
h5/pages/index.vue | 7
h5/pages/login.vue | 496 +++++++++++++++++++++++++-------------------
admin/src/views/workorder/components/OperaYwWorkorderWindow.vue | 56 ++--
h5/pages/workOrder/list.vue | 2
10 files changed, 352 insertions(+), 266 deletions(-)
diff --git a/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue
index b524ba3..4f8ce99 100644
--- a/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue
+++ b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue
@@ -142,35 +142,35 @@
this.getCate()
// 鏂板缓
if (target == null) {
+ this.form = {
+ id: null,
+ editDate: '',
+ floor: '',
+ title: '',
+ remark: '',
+ status: '',
+ sortnum: '',
+ content: '',
+ getDate: '',
+ projectId: '',
+ buildingId: '',
+ floorId: '',
+ roomId: '',
+ userId: '',
+ submitDate: '',
+ cateId: '',
+ areaType: '0',
+ code: '',
+ dealStatus: '',
+ dispatchUserId: '',
+ dispatchDate: '',
+ dispatchInfo: '',
+ dealUserId: '',
+ dealDate: '',
+ dealInfo: '',
+ dealType: ''
+ }
this.$nextTick(() => {
- this.$refs.form = {
- id: null,
- editDate: '',
- floor: '',
- title: '',
- remark: '',
- status: '',
- sortnum: '',
- content: '',
- getDate: '',
- projectId: '',
- buildingId: '',
- floorId: '',
- roomId: '',
- userId: '',
- submitDate: '',
- cateId: '',
- areaType: '0',
- code: '',
- dealStatus: '',
- dispatchUserId: '',
- dispatchDate: '',
- dispatchInfo: '',
- dealUserId: '',
- dealDate: '',
- dealInfo: '',
- dealType: ''
- }
this.buildList = []
this.roomList = []
this.levelList = []
diff --git a/h5/api/staff.js b/h5/api/staff.js
index b77655f..491ab58 100644
--- a/h5/api/staff.js
+++ b/h5/api/staff.js
@@ -15,6 +15,14 @@
data
})
}
+// 鎺堟潈
+export const ywWxAuthorize = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/web/visitor/ywWxAuthorize',
+ method: 'get',
+ data
+ })
+}
export const findInternalList = (data) => {
return http({
url: 'visitsAdmin/cloudService/system/user/findInternalList',
@@ -31,7 +39,7 @@
// loginout
export const logoutPost = (data) => {
return http({
- url: '/logout',
+ url: 'logout',
method: 'post',
data
})
diff --git a/h5/pages.json b/h5/pages.json
index e1958a5..d255e6d 100644
--- a/h5/pages.json
+++ b/h5/pages.json
@@ -87,7 +87,7 @@
],
"globalStyle": {
"navigationBarTextStyle": "black",
- "navigationBarTitleText": "",
+ "navigationStyle": "custom",
"navigationBarBackgroundColor": "#ffffff",
"backgroundColor": "#ffffff"
},
diff --git a/h5/pages/index.vue b/h5/pages/index.vue
index 8232d81..9d3409d 100644
--- a/h5/pages/index.vue
+++ b/h5/pages/index.vue
@@ -74,12 +74,13 @@
url: item.url
})
},
- loginOut() {
- this.$store.commit('empty')
+ loginOut() {
logoutPost()
+ this.$store.commit('empty')
uni.redirectTo({
url: '/pages/login'
- })
+ })
+ // window.location.href= 'https://zhcg.fnwtzx.com/fn_h5'
},
}
diff --git a/h5/pages/login.vue b/h5/pages/login.vue
index 4c32dbc..bfa5c86 100644
--- a/h5/pages/login.vue
+++ b/h5/pages/login.vue
@@ -1,213 +1,283 @@
-<template>
- <view class="login">
- <view class="login_title">娆㈣繋鐧诲綍</view>
- <view class="login_title login_title2">闃滃畞鏂囦綋涓績</view>
- <view class="login_list">
- <view class="login_list_item">
- <image src="@/static/login_ic_phone@2x.png" mode="widthFix" />
- <input v-model="form.phone" maxlength="18" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
- </view>
-<!-- <view class="login_list_item">
- <image src="@/static/login_ic_password@2x.png" mode="widthFix" />
- <input v-model="form.password" type="password" placeholder="瀵嗙爜" />
- </view> -->
- <view class="login_list_item">
- <image src="@/static/login_ic_password@2x.png" mode="widthFix"></image>
- <input v-model="form.code" placeholder="璇疯緭鍏ラ獙璇佺爜" type="text" />
- <view v-if="downTime == 0" class="btn" @click="sendSms">鑾峰彇楠岃瘉鐮�</view>
- <view v-else class="btn gray">{{ downTime }}</view>
- </view>
- </view>
- <view class="login_btn">
- <view class="login_btn_n" @click="onLogin">鐧诲綍</view>
- </view>
- </view>
-</template>
-
-<script>
-import { loginPost, getUserInfo, sendSMsPost } from '@/api'
-import { mapState, mapMutations } from 'vuex'
-export default {
- name: 'login',
-
- data() {
- return {
- form: {
- phone: '18888888888',
- code: '1'
- },
- downTime: 0
- }
- },
-
- onLoad() {
- },
- onBackPress(options) {
- uni.redirectTo({
- url: '/pages/login/login'
- })
- return true
- },
- methods: {
- ...mapMutations(["setToken", "setUserInfo"]),
- sendSms() {
- this.downTime = 60
- let timer = setInterval(() => {
- if(this.downTime == 0) return clearInterval(timer)
- this.downTime = this.downTime - 1
- }, 1000)
- const { form } = this
- sendSMsPost({
- phone: form.phone,
- type: 0
- }).then(res => {
- this.showToast('鐭俊鍙戦�佹垚鍔�')
- })
- },
- onLogin() {
- const { form, ProtocolFlag } = this
- // if (!ProtocolFlag) return uni.showToast({
- // title: '璇峰厛闃呰骞跺悓鎰忕敤鎴峰崗璁�',
- // icon: 'none'
- // })
- if (!form.phone) return uni.showToast({
- title: '鎵嬫満鍙蜂笉鑳戒负绌�',
- icon: 'none'
- })
- if (!form.code) return uni.showToast({
- title: '楠岃瘉鐮佷笉鑳戒负绌�',
- icon: 'none'
- })
- loginPost({
- ...form,
- openId: this.$store.state.openId
- }).then(res => {
- if (res.code === 200) {
- this.setToken(res.data)
- this.showToast('鐧诲綍鎴愬姛')
- getUserInfo().then(ress => {
- this.setUserInfo(ress.data)
- uni.redirectTo({
- url: "/pages/index"
- })
- })
- }
- })
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-.login {
- width: 100%;
- height: 100vh;
- display: flex;
- padding-top: 130rpx;
- box-sizing: border-box;
- align-items: center;
- flex-direction: column;
- background: linear-gradient( 180deg, #C5DDFF 0%, #FFFFFF 100%);
- .login_title {
- font-weight: 500;
- font-size: 52rpx;
- color: #222222;
- margin-top: 180rpx;
- width: 100%;
- padding-left: 60rpx;
- }
- .login_title2{
- margin-top: 10rpx;
- margin-bottom: 80rpx;
- }
- .login_list {
- width: 100%;
- padding: 0 60rpx;
- box-sizing: border-box;
- .login_list_item {
- width: 100%;
- border-radius: 50rpx;
- height: 98rpx;
- padding: 0 40rpx;
- box-sizing: border-box;
- background: #ffffff;
- margin-bottom: 40rpx;
- display: flex;
- align-items: center;
- justify-content: space-between;
- &:last-child {
- margin-bottom: 0 !important;
- }
- image {
- flex-shrink: 0;
- width: 40rpx;
- height: 40rpx;
- }
- .btn{
- width: 145rpx;
- color: $primaryColor;
- text-align: center;
- }
- .gray{
- color: #999999;
- }
- input {
- flex: 1;
- height: 100%;
- color: #666666;
- margin-left: 24rpx;
- border: none;
- }
- }
- }
- .login_btn {
- width: 100%;
- padding: 0 60rpx;
- box-sizing: border-box;
- margin-top: 60rpx;
- .for_psd {
- color: $uni-color-primary;
- width: 140rpx;
- text-align: center;
- margin: 40rpx auto;
- }
- .login_btn_n {
- width: 100%;
- height: 98rpx;
- background: $uni-color-primary;
- box-shadow: 0rpx 12rpx 24rpx 0rpx rgba(39, 155, 170, 0.2);
- display: flex;
- align-items: center;
- justify-content: center;
- color: #ffffff;
- border-radius: 50rpx;
- font-weight: 500;
- font-size: 32rpx;
- }
- }
- .deal_wrap {
- position: absolute;
- width: 100%;
- left: 0;
- text-align: center;
- bottom: 88rpx;
- display: flex;
- justify-content: center;
- align-items: center;
- .deal {
- color: $uni-color-primary;
- }
- .checked {
- width: 48rpx;
- margin-right: 12rpx;
- }
- }
-}
-.modal {
- width: 690rpx;
- min-height: 920rpx;
- max-height: 720px;
- border-radius: 24rpx;
- padding: 32rpx;
-}
-</style>
+<template>
+ <view class="login">
+ <view class="login_title">娆㈣繋鐧诲綍</view>
+ <view class="login_title login_title2">闃滃畞鏂囦綋涓績</view>
+ <view class="login_list">
+ <view class="login_list_item">
+ <image src="@/static/login_ic_phone@2x.png" mode="widthFix" />
+ <input v-model="form.phone" maxlength="18" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
+ </view>
+ <!-- <view class="login_list_item">
+ <image src="@/static/login_ic_password@2x.png" mode="widthFix" />
+ <input v-model="form.password" type="password" placeholder="瀵嗙爜" />
+ </view> -->
+ <view class="login_list_item">
+ <image src="@/static/login_ic_password@2x.png" mode="widthFix"></image>
+ <input v-model="form.code" placeholder="璇疯緭鍏ラ獙璇佺爜" type="text" />
+ <view v-if="downTime == 0" class="btn" @click="sendSms">鑾峰彇楠岃瘉鐮�</view>
+ <view v-else class="btn gray">{{ downTime }}</view>
+ </view>
+ </view>
+ <view class="login_btn">
+ <view class="login_btn_n" @click="onLogin">鐧诲綍</view>
+ </view>
+ </view>
+</template>
+
+<script>
+ import {
+ loginPost,
+ getUserInfo,
+ sendSMsPost,
+ ywWxAuthorize
+ } from '@/api'
+ import {
+ mapState,
+ mapMutations
+ } from 'vuex'
+ export default {
+ name: 'login',
+
+ data() {
+ return {
+ form: {
+ phone: '',
+ code: ''
+ },
+ downTime: 0,
+ // code: '011dfEkl2PzcFe4ZxSnl22NKXz4dfEkQ'
+ code: ''
+ }
+ },
+
+ onShow() {
+ // return
+ var that = this
+ let url = window.location.href
+ if (url.indexOf('code=') !== -1 || this.code) {
+ let code = ''
+ const query = url.split('?')
+ for (const q of query) {
+ if (q.indexOf('code=') !== -1) {
+ let statusIndex = q.indexOf('&state')
+ code = q.substring(q.indexOf('code=') + 5, statusIndex)
+ }
+ }
+ ywWxAuthorize({
+ code: code || this.code
+ }).then(res => {
+ if (res.code === 200) {
+ that.$store.commit('setOpenId', res.data.openid)
+ if (res.data.token && res.data.token != '') {
+ that.$store.commit('setToken', res.data.token)
+ getUserInfo().then(ress => {
+ that.$store.commit('setUserInfo', ress.data)
+ })
+ setTimeout(() => {
+ uni.redirectTo({
+ url: "/pages/index"
+ })
+ }, 300)
+ }
+ }
+ })
+ } else {
+ let url = 'https://zhcg.fnwtzx.com/yunwei_h5'
+ const appID = 'wx95ac1efb67f0330d'
+ let uri = encodeURIComponent(url)
+ let authURL =
+ `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appID}&redirect_uri=${uri}&response_type=code&scope=snsapi_base#wechat_redirect`
+ window.location.href = authURL
+ }
+
+ },
+ // onBackPress(options) {
+ // uni.redirectTo({
+ // url: '/pages/login/login'
+ // })
+ // return true
+ // },
+ methods: {
+ ...mapMutations(["setToken", "setUserInfo"]),
+ onLogin() {
+ const {
+ form,
+ ProtocolFlag
+ } = this
+ if (!form.phone) return uni.showToast({
+ title: '鎵嬫満鍙蜂笉鑳戒负绌�',
+ icon: 'none'
+ })
+ if (!form.code) return uni.showToast({
+ title: '楠岃瘉鐮佷笉鑳戒负绌�',
+ icon: 'none'
+ })
+
+ loginPost({
+ ...form,
+ openid: this.$store.state.openId
+ }).then(res => {
+ if (res.code === 200) {
+ this.setToken(res.data)
+ this.showToast('鐧诲綍鎴愬姛')
+ getUserInfo().then(ress => {
+ this.setUserInfo(ress.data)
+ uni.redirectTo({
+ url: "/pages/index"
+ })
+ })
+ }
+ })
+
+
+
+ },
+ sendSms() {
+ this.downTime = 60
+ let timer = setInterval(() => {
+ if (this.downTime == 0) return clearInterval(timer)
+ this.downTime = this.downTime - 1
+ }, 1000)
+ const {
+ form
+ } = this
+ sendSMsPost({
+ phone: form.phone,
+ type: 0
+ }).then(res => {
+ this.showToast('鐭俊鍙戦�佹垚鍔�')
+ })
+ },
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .login {
+ width: 100%;
+ height: 100vh;
+ display: flex;
+ padding-top: 130rpx;
+ box-sizing: border-box;
+ align-items: center;
+ flex-direction: column;
+ background: linear-gradient(180deg, #C5DDFF 0%, #FFFFFF 100%);
+
+ .login_title {
+ font-weight: 500;
+ font-size: 52rpx;
+ color: #222222;
+ margin-top: 180rpx;
+ width: 100%;
+ padding-left: 60rpx;
+ }
+
+ .login_title2 {
+ margin-top: 10rpx;
+ margin-bottom: 80rpx;
+ }
+
+ .login_list {
+ width: 100%;
+ padding: 0 60rpx;
+ box-sizing: border-box;
+
+ .login_list_item {
+ width: 100%;
+ border-radius: 50rpx;
+ height: 98rpx;
+ padding: 0 40rpx;
+ box-sizing: border-box;
+ background: #ffffff;
+ margin-bottom: 40rpx;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ &:last-child {
+ margin-bottom: 0 !important;
+ }
+
+ image {
+ flex-shrink: 0;
+ width: 40rpx;
+ height: 40rpx;
+ }
+
+ .btn {
+ width: 145rpx;
+ color: $primaryColor;
+ text-align: center;
+ }
+
+ .gray {
+ color: #999999;
+ }
+
+ input {
+ flex: 1;
+ height: 100%;
+ color: #666666;
+ margin-left: 24rpx;
+ border: none;
+ }
+ }
+ }
+
+ .login_btn {
+ width: 100%;
+ padding: 0 60rpx;
+ box-sizing: border-box;
+ margin-top: 60rpx;
+
+ .for_psd {
+ color: $uni-color-primary;
+ width: 140rpx;
+ text-align: center;
+ margin: 40rpx auto;
+ }
+
+ .login_btn_n {
+ width: 100%;
+ height: 98rpx;
+ background: $uni-color-primary;
+ box-shadow: 0rpx 12rpx 24rpx 0rpx rgba(39, 155, 170, 0.2);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: #ffffff;
+ border-radius: 50rpx;
+ font-weight: 500;
+ font-size: 32rpx;
+ }
+ }
+
+ .deal_wrap {
+ position: absolute;
+ width: 100%;
+ left: 0;
+ text-align: center;
+ bottom: 88rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ .deal {
+ color: $uni-color-primary;
+ }
+
+ .checked {
+ width: 48rpx;
+ margin-right: 12rpx;
+ }
+ }
+ }
+
+ .modal {
+ width: 690rpx;
+ min-height: 920rpx;
+ max-height: 720px;
+ border-radius: 24rpx;
+ padding: 32rpx;
+ }
+</style>
\ No newline at end of file
diff --git a/h5/pages/operation/device.vue b/h5/pages/operation/device.vue
index 80b70b1..d9b13df 100644
--- a/h5/pages/operation/device.vue
+++ b/h5/pages/operation/device.vue
@@ -5,8 +5,8 @@
<view class="la"><text class="red">*</text>閫夋嫨璁惧</view>
<view class="line">
<view class="sel_wrap" @click="showModal = true">
- <view class="left" :class="param.deviceName ? '' : 'placeholder9'">
- {{ param.deviceName ? param.deviceName : '璇烽�夋嫨璁惧' }}
+ <view class="left" :class="(param.deviceName || param.deviceCode) ? '' : 'placeholder9'">
+ {{ (param.deviceName || param.deviceCode) ? `[${param.deviceCode}] ` + param.deviceName : '璇烽�夋嫨璁惧' }}
</view>
<u-icon name="arrow-right" color="#999999" size="17"></u-icon>
</view>
@@ -144,7 +144,8 @@
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
},
@@ -261,7 +262,7 @@
},
(decodeText, decodeResult) => {
if (decodeText) { //杩欓噷decodeText灏辨槸閫氳繃鎵弿浜岀淮鐮佸緱鍒扮殑鍐呭
- this.action(decodeText) //瀵逛簩缁寸爜閫昏緫澶勭悊
+ this.$set(this.param, 'deviceCode', decodeText)
this.stopScan(); //鍏抽棴鎵爜鍔熻兘
}
},
@@ -408,11 +409,12 @@
}
.sub_btn {
- position: fixed;
- bottom: 68rpx;
- left: 40rpx;
+ // position: fixed;
+ // 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);
border-radius: 44rpx;
@@ -456,8 +458,8 @@
}
.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 14fc07e..45b95e1 100644
--- a/h5/pages/operation/record.vue
+++ b/h5/pages/operation/record.vue
@@ -118,7 +118,7 @@
<style lang="scss" scoped>
.main_app {
- padding: 0 30rpx;
+ padding: 30rpx;
}
.head_wrap {
diff --git a/h5/pages/workOrder/edit.vue b/h5/pages/workOrder/edit.vue
index 4225aa1..3e0c34d 100644
--- a/h5/pages/workOrder/edit.vue
+++ b/h5/pages/workOrder/edit.vue
@@ -142,7 +142,11 @@
const {
param,
fileList
- } = this
+ } = this
+ if (!param.projectId) return this.showToast('璇烽�夋嫨瀹屾暣鐨勫尯鍩�')
+ if (!param.buildingId) return this.showToast('璇烽�夋嫨瀹屾暣鐨勫尯鍩�')
+ if (!param.floorName && !param.roomNum) return this.showToast('璇烽�夋嫨瀹屾暣鐨勫尯鍩�')
+ if (!param.cateName) return this.showToast('璇烽�夋嫨宸ュ崟鍒嗙被')
ywWorkorderCreate({
...param,
// roomId: '',
@@ -445,11 +449,12 @@
}
.sub_btn {
- position: fixed;
- bottom: 68rpx;
- left: 40rpx;
+ // position: fixed;
+ // 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);
border-radius: 44rpx;
diff --git a/h5/pages/workOrder/list.vue b/h5/pages/workOrder/list.vue
index d2114af..208af24 100644
--- a/h5/pages/workOrder/list.vue
+++ b/h5/pages/workOrder/list.vue
@@ -139,7 +139,7 @@
<style lang="scss" scoped>
.main_app {
- padding: 0 30rpx;
+ padding: 30rpx;
}
.tabs {
diff --git a/h5/utils/config.js b/h5/utils/config.js
index d6d6ee5..9e2bd8f 100644
--- a/h5/utils/config.js
+++ b/h5/utils/config.js
@@ -1,7 +1,7 @@
-
-export const baseUrl = 'gateway_interface/'
+
+// export const baseUrl = 'gateway_interface/'
// export const baseUrl = 'http://192.168.0.173/gateway_interface/'
-// export const baseUrl = 'http://10.50.250.253:8088/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