From cef577c6928c961b4c3e2d97748a232aac64b903 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期二, 28 五月 2024 16:22:40 +0800
Subject: [PATCH] ''

---
 h5/pages/visitorApplication/visitorApplication.vue |    2 
 h5/pages/appointmentDetails/appointmentDetails.vue |  454 ++++++++++++++++++++++++++------------------------
 h5/pages/notice/notice.vue                         |   12 +
 h5/pages/login/login.vue                           |   12 
 h5/api/visitor.js                                  |    8 
 h5/pages/applicationRecord/applicationRecord.vue   |   47 +++-
 h5/static/redirect.html                            |    3 
 h5/store/index.js                                  |    2 
 8 files changed, 293 insertions(+), 247 deletions(-)

diff --git a/h5/api/visitor.js b/h5/api/visitor.js
index 68126fa..cf7dd8f 100644
--- a/h5/api/visitor.js
+++ b/h5/api/visitor.js
@@ -39,4 +39,12 @@
     method: 'post',
     data
   })
+}
+// 璁垮璁板綍璇︽儏
+export const getVisitedDetail = (data) => {
+  return http({
+    url: 'visitsAdmin/cloudService/web/visitor/detail',
+    method: 'get',
+    data
+  })
 }
\ No newline at end of file
diff --git a/h5/pages/applicationRecord/applicationRecord.vue b/h5/pages/applicationRecord/applicationRecord.vue
index 6c647ed..4c6b390 100644
--- a/h5/pages/applicationRecord/applicationRecord.vue
+++ b/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 || []
       })
     }
 
diff --git a/h5/pages/appointmentDetails/appointmentDetails.vue b/h5/pages/appointmentDetails/appointmentDetails.vue
index a58e09b..2787c8f 100644
--- a/h5/pages/appointmentDetails/appointmentDetails.vue
+++ b/h5/pages/appointmentDetails/appointmentDetails.vue
@@ -1,233 +1,247 @@
 <template>
-	<view class="box">
-		<view class="head_wrap head_success" v-if="info.status == 1"> 
-			<view class="h1">璁垮棰勭害瀹℃牳閫氳繃</view>
-			<view class="h2">鎮ㄧ殑鏉ヨ鐢宠宸插鏍搁�氳繃锛岃鍦ㄨ瀹㈡満绛惧埌鍏ュ巶銆傚閬囩壒娈婃儏鍐碉紝鍙仈绯昏璁夸汉鎴栧畨淇濅汉鍛�</view>
-		</view>
-		<view class="qr_wrap" v-if="info.status == 1">
-			<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="h1">璁垮棰勭害寰呭鏍�</view>
-			<view class="h2">鎮ㄧ殑棰勭害鍗曞凡鎻愪氦瀹℃牳锛岃绛夊緟琚浜哄鏍�</view>
-		</view>
-		<view class="head_wrap head_error" v-if="info.status == 3"> 
-			<view class="h1">璁垮棰勭害瀹℃牳涓嶉�氳繃</view>
-			<view class="h2">鎮ㄧ殑鏉ヨ鐢宠宸茶椹冲洖锛屽鏈夌枒闂紝鍙仈绯昏璁夸汉</view>
-		</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_item">
-				<view class="box_list_item_label">琚浜哄憳锛�</view>
-				<view class="box_list_item_val">{{info.visitUserName}}</view>
-			</view>
-			<!-- <view class="box_list_item">
+  <view class="box">
+    <view class="head_wrap head_success" v-if="info.status == 2">
+      <view class="h1">璁垮棰勭害瀹℃牳閫氳繃</view>
+      <view class="h2"
+        >鎮ㄧ殑鏉ヨ鐢宠宸插鏍搁�氳繃锛岃鍦ㄨ瀹㈡満绛惧埌鍏ュ巶銆傚閬囩壒娈婃儏鍐碉紝鍙仈绯昏璁夸汉鎴栧畨淇濅汉鍛�</view
+      >
+    </view>
+    <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 == 0">
+      <view class="h1">璁垮棰勭害寰呭鏍�</view>
+      <view class="h2">鎮ㄧ殑棰勭害鍗曞凡鎻愪氦瀹℃牳锛岃绛夊緟琚浜哄鏍�</view>
+    </view>
+    <view class="head_wrap head_error" v-if="info.status == 3">
+      <view class="h1">璁垮棰勭害瀹℃牳涓嶉�氳繃</view>
+      <view class="h2">鎮ㄧ殑鏉ヨ鐢宠宸茶椹冲洖锛屽鏈夌枒闂紝鍙仈绯昏璁夸汉</view>
+    </view>
+    <view class="box_list">
+      <view class="box_list_label">鎷滆淇℃伅</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.visitUserCompany
+          }}{{ info.visitUserName ? "-" + info.visitUserName : "" }}</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 class="box_list_item">
-				<view class="box_list_item_label">鎷滆浜嬬敱锛�</view>
-				<view class="box_list_item_val">{{info.visitReason}}</view>
-			</view>
-			<view class="box_list_item">
-				<view class="box_list_item_label">鎷滆鏃堕棿锛�</view>
-				<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>
-			<view class="box_list_item">
-				<view class="box_list_item_label">涓昏瀹細</view>
-				<view class="box_list_item_val">
-					{{info.name}} {{info.phone}}
-				</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>
-		</view>
-		<u-popup :show="show" mode="center" @close="close">
-			<view class="qrocde">
-				<canvas class="qrcode_img" canvas-id="img1"></canvas>
-			</view>
-		</u-popup>
-	</view>
+      <view class="box_list_item">
+        <view class="box_list_item_label">鎷滆浜嬬敱锛�</view>
+        <view class="box_list_item_val">{{ info.visitReason }}</view>
+      </view>
+      <view class="box_list_item">
+        <view class="box_list_item_label">鎷滆鏃堕棿锛�</view>
+        <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">{{ 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.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">
+        <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">
+      <view class="qrocde">
+        <canvas class="qrcode_img" canvas-id="img1"></canvas>
+      </view>
+    </u-popup>
+  </view>
 </template>
 
 <script>
-	import wxcode from 'uniapp-qrcode'
-	import { visitorSubDetail } from '@/api'
+import wxcode from 'uniapp-qrcode'
+import { getVisitedDetail } from '@/api'
 
-	export default {
-		data() {
-			return {
-				info: {
-					status: 1
-				},
-				show: false
-			};
-		},
-		onLoad(option) {
-			// this.$u.api.detail({ id: option.id })
-			// visitorSubDetail({ id: option.id })
-			// 	.then(res => {
-			// 		if (res.code === 200) {
-			// 			this.info = res.data
-			// 			if (res.data.qrcode) {
-			// 				this.$nextTick(() => {
-			// 					wxcode.qrcode('img', res.data.qrcode, 320, 320)
-			// 				})
-			// 			}
-			// 		}
-			// 	})
-		},
-		methods: {
-			close() {
-				this.show = false
-			},
-			seeQrCode(code) {
-				if (code.qrcode) {
-					this.show = true
-					this.$nextTick(() => {
-						wxcode.qrcode('img1', code.qrcode, 300, 300)
-					})
-				} else {
-					uni.showToast({ title: '鏆傛棤浜岀淮鐮�', icon: 'none' })
-				}
-			}
-		}
-	}
+export default {
+  data() {
+    return {
+      info: {},
+      show: false
+    }
+  },
+  onLoad(option) {
+    this.getDetail(option.id)
+    // visitorSubDetail({ id: option.id })
+    // 	.then(res => {
+    // 		if (res.code === 200) {
+    // 			this.info = res.data
+    // 			if (res.data.qrcode) {
+    // 				this.$nextTick(() => {
+    // 					wxcode.qrcode('img', res.data.qrcode, 320, 320)
+    // 				})
+    // 			}
+    // 		}
+    // 	})
+
+  },
+  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) {
+        this.show = true
+        this.$nextTick(() => {
+          wxcode.qrcode('img1', code.qrcode, 300, 300)
+        })
+      } else {
+        uni.showToast({ title: '鏆傛棤浜岀淮鐮�', icon: 'none' })
+      }
+    }
+  }
+}
 </script>
 <style>
-	page {
-		background-color: #f7f7f7;
-	}
+page {
+  background-color: #f7f7f7;
+}
 </style>
 <style lang="scss" scoped>
-	.box {
-		width: 100%;
-		.qrocde {
-			width: 300rpx;
-			height: 300rpx;
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			.qrcode_img {
-				width: 100%;
-				height: 100%;
-			}
-		}
-		.qr_wrap{
-			background-color: #fff;
-			text-align: center;
-			.box_head_qrcode {
-				width: 320rpx;
-				height: 320rpx;
-			}
-			.text{
-				font-size: 30rpx;
-				color: #279BAA;
-				padding: 20rpx 0 30rpx;
-			}
-		}
-		.head_wrap{
-			padding: 30px;
-			
-			.h1{
-				margin-bottom: 16rpx;
-				font-weight: 600;
-				font-size: 36rpx;
-			}
-			.h2{
-				font-weight: 400;
-				font-size: 26rpx;
-			}
-		}	
-		.head_padding{
-			background: #279BAA;
-			.h1{
-				color: #FFFFFF;
-			}
-			.h2{
-				color: #FFFFFF;
-			}
-		}
-		.head_error{
-			background: #FDEDED;
-			.h1{
-				color: #ED4545;
-			}
-			.h2{
-				color: #333333;
-			}
-		}
-		.head_success{
-			background: #E8F4F6;
-			.h1{
-				color: #279BAA;
-			}
-			.h2{
-				color: #333333;
-			}
-		}
-		.box_list {
-			width: 100%;
-			margin-top: 20rpx;
-			background-color: #ffffff;
-			padding: 40rpx 30rpx;
-			box-sizing: border-box;
-			.box_list_tips {
-				width: 100%;
-				height: 52rpx;
-				padding: 0 20rpx;
-				box-sizing: border-box;
-				line-height: 52rpx;
-				background-color: rgba(224, 49, 42, 0.06);
-				font-weight: 400;
-				font-size: 24rpx;
-				color: #E0312A;
-				border-radius: 4rpx;
-				margin: 30rpx 0;
-			}
-			.box_list_label {
-				font-size: 32rpx;
-				font-weight: 500;
-				color: #222222;
-			}
-			.box_list_item {
-				width: 100%;
-				display: flex;
-				align-items: center;
-				margin-top: 30rpx;
-				.box_list_item_label {
-					flex-shrink: 0;
-					font-size: 28rpx;
-					font-family: PingFangSC, PingFang SC;
-					font-weight: 400;
-					color: #666666;
-				}
-				.box_list_item_val {
-					font-size: 28rpx;
-					font-family: PingFangSC, PingFang SC;
-					font-weight: 400;
-					color: #333333;
-					display: flex;
-					align-items: center;
-					.box_list_item_val_btn {
-						width: 140rpx;
-						margin-left: 15rpx;
-					}
-				}
-			}
-		}
-	}
+.box {
+  width: 100%;
+  .qrocde {
+    width: 300rpx;
+    height: 300rpx;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    .qrcode_img {
+      width: 100%;
+      height: 100%;
+    }
+  }
+  .qr_wrap {
+    background-color: #fff;
+    text-align: center;
+    .box_head_qrcode {
+      width: 320rpx;
+      height: 320rpx;
+			margin: 20rpx auto;
+    }
+    .text {
+      font-size: 30rpx;
+      color: #279baa;
+      padding: 20rpx 0 30rpx;
+    }
+  }
+  .head_wrap {
+    padding: 30px;
+
+    .h1 {
+      margin-bottom: 16rpx;
+      font-weight: 600;
+      font-size: 36rpx;
+    }
+    .h2 {
+      font-weight: 400;
+      font-size: 26rpx;
+    }
+  }
+  .head_padding {
+    background: #279baa;
+    .h1 {
+      color: #ffffff;
+    }
+    .h2 {
+      color: #ffffff;
+    }
+  }
+  .head_error {
+    background: #fdeded;
+    .h1 {
+      color: #ed4545;
+    }
+    .h2 {
+      color: #333333;
+    }
+  }
+  .head_success {
+    background: #e8f4f6;
+    .h1 {
+      color: #279baa;
+    }
+    .h2 {
+      color: #333333;
+    }
+  }
+  .box_list {
+    width: 100%;
+    margin-top: 20rpx;
+    background-color: #ffffff;
+    padding: 40rpx 30rpx;
+    box-sizing: border-box;
+    .box_list_tips {
+      width: 100%;
+      height: 52rpx;
+      padding: 0 20rpx;
+      box-sizing: border-box;
+      line-height: 52rpx;
+      background-color: rgba(224, 49, 42, 0.06);
+      font-weight: 400;
+      font-size: 24rpx;
+      color: #e0312a;
+      border-radius: 4rpx;
+      margin: 30rpx 0;
+    }
+    .box_list_label {
+      font-size: 32rpx;
+      font-weight: 500;
+      color: #222222;
+    }
+    .box_list_item {
+      width: 100%;
+      display: flex;
+      align-items: center;
+      margin-top: 30rpx;
+      .box_list_item_label {
+        flex-shrink: 0;
+        font-size: 28rpx;
+        font-family: PingFangSC, PingFang SC;
+        font-weight: 400;
+        color: #666666;
+      }
+      .box_list_item_val {
+        font-size: 28rpx;
+        font-family: PingFangSC, PingFang SC;
+        font-weight: 400;
+        color: #333333;
+        display: flex;
+        align-items: center;
+        .box_list_item_val_btn {
+          width: 140rpx;
+          margin-left: 15rpx;
+        }
+      }
+    }
+  }
+}
 </style>
diff --git a/h5/pages/login/login.vue b/h5/pages/login/login.vue
index 2cb32c7..732caac 100644
--- a/h5/pages/login/login.vue
+++ b/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);
       })
     }
diff --git a/h5/pages/notice/notice.vue b/h5/pages/notice/notice.vue
index ddd051b..b114ef8 100644
--- a/h5/pages/notice/notice.vue
+++ b/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({
diff --git a/h5/pages/visitorApplication/visitorApplication.vue b/h5/pages/visitorApplication/visitorApplication.vue
index e838995..6478aba 100644
--- a/h5/pages/visitorApplication/visitorApplication.vue
+++ b/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;" />
diff --git a/h5/redirect.html b/h5/static/redirect.html
similarity index 73%
rename from h5/redirect.html
rename to h5/static/redirect.html
index e445f88..1b107f5 100644
--- a/h5/redirect.html
+++ b/h5/static/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>
diff --git a/h5/store/index.js b/h5/store/index.js
index a363be0..bd9028ab 100644
--- a/h5/store/index.js
+++ b/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',

--
Gitblit v1.9.3