h5/api/visitor.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
h5/pages/applicationRecord/applicationRecord.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
h5/pages/appointmentDetails/appointmentDetails.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
h5/pages/login/login.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
h5/pages/notice/notice.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
h5/pages/visitorApplication/visitorApplication.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
h5/static/redirect.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
h5/store/index.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
h5/api/visitor.js
@@ -40,3 +40,11 @@ data }) } // 访客记å½è¯¦æ export const getVisitedDetail = (data) => { return http({ url: 'visitsAdmin/cloudService/web/visitor/detail', method: 'get', data }) } h5/pages/applicationRecord/applicationRecord.vue
@@ -9,34 +9,30 @@ </view> </scroll-view> <view class="box_list"> <view class="box_list_item" v-for="(item, index) in 3" :key="index"> <view @click="handleDetail(item.id)" class="box_list_item" v-for="(item, index) in list" :key="index"> <view class="box_list_item_head"> <text>䏿©å¯çå³å¡å ¥åç³è¯·</text> <text class="loading">å¾ å®¡æ ¸</text> <text>{{ item.name }}çå³å¡å ¥åç³è¯·</text> <text class="loading">{{ statusMap[item.status] }}</text> </view> <view class="box_list_item_nr"> <view class="box_list_item_nr_item"> <text>被访é®äººï¼</text> <text>人äºé¨-çäºè</text> <text>{{ item.receptMemberDepartment }}-{{ item.receptMemberName }}</text> </view> <view class="box_list_item_nr_item"> <text>è¿åæ¶é´ï¼</text> <text>12-12 09:00</text> <text>{{ item.starttime }}</text> </view> <view class="box_list_item_nr_item"> <text>ç¦»åæ¶é´ï¼</text> <text>12-12 12:00</text> </view> <view class="box_list_item_nr_item"> <text>å ¥å人æ°ï¼</text> <text>10</text> <text>{{ item.endtime }}</text> </view> <view class="box_list_item_nr_item"> <text>æ¥è®¿äºç±ï¼</text> <text>ä¸å¡æ¥å¾</text> <text>{{ item.reason }}</text> </view> <view class="box_list_item_nr_x"></view> <view class="box_list_item_nr_text"> 2023-12-12 09:00æäº¤ </view> <view class="box_list_item_nr_text">{{ item.createDate }} æäº¤</view> </view> </view> </view> @@ -49,22 +45,41 @@ data() { return { pagination: { page: 1, page: 0, capacity: 10 }, list: [] list: [], statusMap: { 0: 'å¾ å®¡æ ¸', 1: 'å·²æäº¤', 2: 'å®¡æ ¸éè¿', 3: 'å®¡æ ¸ä¸éè¿', 4: 'åæ¶', 5: 'ä¸åæå', 6: 'ä¸å失败', } } }, onLoad() { this.getList() }, methods: { handleDetail(id) { uni.navigateTo({ url: "/pages/appointmentDetails/appointmentDetails?id="+ id }) }, getList() { const { pagination } = this getVisitedRecord({ pageWrap: { ...pagination } ...pagination, model: { openid: this.$store.state.openId } , }).then(res => { this.list = res.data this.list = res.data.records || [] }) } h5/pages/appointmentDetails/appointmentDetails.vue
@@ -1,14 +1,16 @@ <template> <view class="box"> <view class="head_wrap head_success" v-if="info.status == 1"> <view class="head_wrap head_success" v-if="info.status == 2"> <view class="h1">访客é¢çº¦å®¡æ ¸éè¿</view> <view class="h2">æ¨çæ¥è®¿ç³è¯·å·²å®¡æ ¸éè¿ï¼è¯·å¨è®¿å®¢æºç¾å°å ¥åãå¦éç¹æ®æ åµï¼å¯è系被访人æå®ä¿äººå</view> <view class="h2" >æ¨çæ¥è®¿ç³è¯·å·²å®¡æ ¸éè¿ï¼è¯·å¨è®¿å®¢æºç¾å°å ¥åãå¦éç¹æ®æ åµï¼å¯è系被访人æå®ä¿äººå</view > </view> <view class="qr_wrap" v-if="info.status == 1"> <view class="qr_wrap" v-if="info.status == 2"> <canvas class="box_head_qrcode" canvas-id="img"></canvas> <view class="text">使ç¨è®¿å®¢æºæ«ç ç¾å°</view> </view> <view class="head_wrap head_padding" v-if="info.status == 2"> <view class="head_wrap head_padding" v-if="info.status == 0"> <view class="h1">访客é¢çº¦å¾ å®¡æ ¸</view> <view class="h2">æ¨çé¢çº¦åå·²æäº¤å®¡æ ¸ï¼è¯·çå¾ è¢«è®¿äººå®¡æ ¸</view> </view> @@ -18,10 +20,15 @@ </view> <view class="box_list"> <view class="box_list_label">æè®¿ä¿¡æ¯</view> <view class="box_list_tips" v-if="info.status === 2">è¯·æ³¨ææ¥çåºå ¥é¨ç¦ä¸åæ åµï¼å¦è¥ä¸å失败ééæ°ç³è¯·</view> <view class="box_list_tips" v-if="info.status == 6 || info.status == 3" >è¯·æ³¨ææ¥çåºå ¥é¨ç¦ä¸åæ åµï¼å¦è¥ä¸å失败ééæ°ç³è¯·</view > <view class="box_list_item"> <view class="box_list_item_label">被访人åï¼</view> <view class="box_list_item_val">{{info.visitUserName}}</view> <view class="box_list_item_val" >{{ info.visitUserCompany }}{{ info.visitUserName ? "-" + info.visitUserName : "" }}</view > </view> <!-- <view class="box_list_item"> <view class="box_list_item_label">车çå·ï¼</view> @@ -36,23 +43,20 @@ <view class="box_list_item_val">{{info.visitTime}}</view> </view> <view class="box_list_item"> <view class="box_list_item_label">访é®é¨ç¦ï¼</view> <view class="box_list_item_val" v-if="info.doorGroupName && info.doorGroupName.length > 0">{{info.doorGroupName.join('ã')}}</view> <view class="box_list_item_label">访客信æ¯ï¼</view> <view class="box_list_item_val">{{ info.name }} {{ info.phone }}</view> </view> <view class="box_list_item"> <view class="box_list_item_label">主访客ï¼</view> <view class="box_list_item_val"> {{info.name}} {{info.phone}} <view class="box_list_item_label">æ½å·¥äººåï¼</view> <view class="box_list_item_val">{{ info.type == 0 ? 'å¦' : 'æ¯'}}</view> </view> <view class="box_list_item" v-if="info.type == '1'"> <view class="box_list_item_label">æ½å·¥å 容ï¼</view> <view class="box_list_item_val">{{ info.constructionReason}}</view> </view> <view class="box_list_item" v-for="(item, index) in info.withVisitsList" :key="index"> <view class="box_list_item_label">é访人å{{index + 1}}ï¼</view> <view class="box_list_item_val"> {{item.name}} {{item.phone}} <view class="box_list_item_val_btn" v-if="[2,5,7,8,9].includes(item.status)"> <u-button text="æ¥çäºç»´ç " size="mini" @click="seeQrCode(item)" type="primary"></u-button> </view> </view> <view class="box_list_item"> <view class="box_list_item_label">éè¡è½¦è¾ï¼</view> <view class="box_list_item_val">{{ info.carNos }}</view> </view> </view> <u-popup :show="show" mode="center" @close="close"> @@ -65,19 +69,17 @@ <script> import wxcode from 'uniapp-qrcode' import { visitorSubDetail } from '@/api' import { getVisitedDetail } from '@/api' export default { data() { return { info: { status: 1 }, info: {}, show: false }; } }, onLoad(option) { // this.$u.api.detail({ id: option.id }) this.getDetail(option.id) // visitorSubDetail({ id: option.id }) // .then(res => { // if (res.code === 200) { @@ -89,10 +91,21 @@ // } // } // }) }, methods: { close() { this.show = false }, getDetail(id) { getVisitedDetail({ id }).then(res => { this.info = res.data if (res.data.qrcode) { this.$nextTick(() => { wxcode.qrcode('img', res.data.qrcode, 320, 320) }) } }) }, seeQrCode(code) { if (code.qrcode) { @@ -132,10 +145,11 @@ .box_head_qrcode { width: 320rpx; height: 320rpx; margin: 20rpx auto; } .text{ font-size: 30rpx; color: #279BAA; color: #279baa; padding: 20rpx 0 30rpx; } } @@ -153,27 +167,27 @@ } } .head_padding{ background: #279BAA; background: #279baa; .h1{ color: #FFFFFF; color: #ffffff; } .h2{ color: #FFFFFF; color: #ffffff; } } .head_error{ background: #FDEDED; background: #fdeded; .h1{ color: #ED4545; color: #ed4545; } .h2{ color: #333333; } } .head_success{ background: #E8F4F6; background: #e8f4f6; .h1{ color: #279BAA; color: #279baa; } .h2{ color: #333333; @@ -194,7 +208,7 @@ background-color: rgba(224, 49, 42, 0.06); font-weight: 400; font-size: 24rpx; color: #E0312A; color: #e0312a; border-radius: 4rpx; margin: 30rpx 0; } h5/pages/login/login.vue
@@ -62,14 +62,10 @@ title: 'å¯ç ä¸è½ä¸ºç©º', icon: 'none' }) const appID = 'wx4d7c10bdec51942b' const AppSecret = '922c93596d134fedf5bd22a9354b3bfe' // const scope = 'snsapi_userinfo' let uri = encodeURIComponent('https://xiaopiqiu2.natapp1.cc') let authURL = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appID}&redirect_uri=${uri}&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect` window.location.href = authURL loginPost(form).then(res => { loginPost({ ...form, openId: this.$store.state.openId }).then(res => { console.log('res', res); }) } h5/pages/notice/notice.vue
@@ -25,8 +25,20 @@ }, onLoad() { this.getInfo() if(!this.$store.state.openId){ this.initToken() } }, methods: { initToken() { const appID = 'wxac2a80c2144c4ee0' // const AppSecret = '922c93596d134fedf5bd22a9354b3bfe' let uri = encodeURIComponent('http://xiaopiqiu2.natapp1.cc/static/redirect.html') let authURL = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appID}&redirect_uri=${uri}&response_type=code&scope=snsapi_base&state=123#wechat_redirect` window.location.href = authURL }, getInfo() { // å ¥åºé¡»ç¥è¯¦æ getSystemDictData({ h5/pages/visitorApplication/visitorApplication.vue
@@ -83,7 +83,7 @@ <view v-if="form1.type == '1'" class="list_item"> <view class="list_item_label"> <text>æ½å·¥å 容</text> <text>*</text> <!-- <text>*</text> --> </view> <view class="list_item_content"> <input type="text" v-model="form1.constructionReason" placeholder="请è¾å ¥æ½å·¥å 容" placeholder-style="color: #999999;" /> h5/static/redirect.html
ÎļþÃû´Ó h5/redirect.html ÐÞ¸Ä @@ -6,7 +6,8 @@ <script> var p = location.href.split("?") // window.location.href = 'https://dmtest.ahapp.net/hsvisit_h5/#/pages/notice/notice?' + p[1] window.location.href = 'http://facepay.huasunsolar.com/h5/#/pages/notice/notice?' + p[1] alert(p[1]) // window.location.href = 'http://xiaopiqiu2.natapp1.cc/#/pages/staff/index?' + p[1] </script> </head> <body> h5/store/index.js
@@ -18,7 +18,7 @@ const store = new Vuex.Store({ state: { openId: openId || '', openId: openId || '061kuG0006hxcS13TT200w9VIp4kuG09', member: member || null, statusbarHeight: statusbarHeight || '0', navHeight: navHeight || '0',