Selaa lähdekoodia

修改带缓存了

xiaocao 5 kuukautta sitten
vanhempi
säilyke
0eff8ab878

+ 1 - 0
.gitignore

@@ -3,3 +3,4 @@
 
 /unpackage/
 /unpackage/dist/
+.history

+ 2 - 2
common/config.js

@@ -4,8 +4,8 @@
 
 const config = {
 	// DEVE_URL: "http://cht320621.gnway.cc:22075",
-	// DEVE_URL: "http://192.168.16.9:9002",
-	DEVE_URL: "https://zhijidaouniapp.dianjingkeji.net/prod-api",
+	DEVE_URL: "http://192.168.16.9:9002",
+	// DEVE_URL: "https://zhijidaouniapp.dianjingkeji.net/prod-api",
 	// PRODUCT_URL: "http://localhost:8085",
 	PRODUCT_URL: "https://api.ndtk.site/api",
 	IMG_URL: 'https://abinmalm.oss-cn-shenzhen.aliyuncs.com/icon/',

+ 12 - 1
config/api.js

@@ -41,7 +41,18 @@ prefix = ''
 export const getDept = (data) => http.get(prefix + '/system/info/deptList?parentId=' + data.parentId)
 export const selectUser = (data) => http.get(prefix + '/system/info/selectUser?deptId=' + data.deptId)
 export const addVisit = (data) => http.post(prefix + '/system/info/addVisit', data) // 提交访客申请
-export const getVisitList = (data) => http.get(prefix + '/system/info/list' + (data.visitStatus ? '?visitStatus=' + data.visitStatus + '&userId=' + data.userId : '?userId=' + data.userId)) // 获取访客记录列表
+
+export const getVisitList = (data) => {
+	const queryString = [
+		data.userId && `userId=${encodeURIComponent(data.userId)}`,
+		data.visitStatus && `visitStatus=${encodeURIComponent(data.visitStatus)}`
+	].filter(Boolean).join('&');
+	
+	const url = prefix + '/system/info/list' + (queryString ? '?' + queryString : '');
+	
+	return http.get(url);
+};
+// export const getVisitList = (data) => http.get(prefix + '/system/info/list' + (data.visitStatus ? '?visitStatus=' + data.visitStatus + '&userId=' + data.userId : '?userId=' + data.userId)) // 获取访客记录列表
 export const updateVisitInfo = (data) => http.get(prefix + '/system/info/updateVisitInfo'+'?id=' + data.id + '&visitStatus=' + data.visitStatus)  // 更新访客状态(通过/拒绝)
 // export const getFeedback = (data) => http.get(prefix + '/blade-feedback/getFeedback')
 // export const feedbackSave = (params) => http.post(prefix + '//blade-feedback/save', params) // 意见反馈

+ 17 - 8
pages/index/index.vue

@@ -204,7 +204,8 @@
 			}
 		},
 		onLoad(options) {
-			console.log(uni.getStorageSync("user"), "usususuus")
+			// 页面加载,该钩子被调用时
+			console.log("加载记录页面", "usususuus")
 			// 获取传递过来的参数
 			if (options.type) {
 				this.type = options.type;
@@ -522,6 +523,8 @@
 
 		// 提交表单
 		async submitForm() {
+
+
 			if (!this.validateForm()) {
 				return;
 			}
@@ -556,13 +559,14 @@
 			// 构建提交数据
 			const submitData = {
 				visitDate: this.formData.visitTime, // 访问时间
-				userId: this.formData.employeeId, // 员工id(从选择的员工中获取user_id)
+				// userId: this.formData.employeeId, // 员工id(从选择的员工中获取user_id)后端不用了
 				empName: this.formData.employeeName, // 访问部门人(员工姓名)
-				visDept: this.formData.visitorCompany, // 访客单位
+				visDept: this.formData.department, // 访客部门
 				visitPerson: this.formData.visitorName, // 访客姓名
 				visitorTel: this.formData.visitorPhone, // 访客手机
 				visitorNum: (validAccompanyPersons.length + 1).toString(), // 访问人数(访客+随行人员)
 				visitReson: this.formData.visitReason, // 访问事由
+				// visDept: this.formData.visitorCompany, // 访客单位  后端没有给
 				accPerson: JSON.stringify(validAccompanyPersons) // 随行人员转为JSON字符串
 			};
 
@@ -575,11 +579,12 @@
 
 				// 检查返回结果(支持 code === 200 或 code === "200")
 				if (response && (response.code === 200 || response.code === "200")) {
-					uni.showToast({
-						title: response.msg || '操作成功',
-						icon: 'success',
-						duration: 2000
-					});
+					//提示提交成功
+					// uni.showToast({
+					// 	title: response.msg || '操作成功',
+					// 	icon: 'success',
+					// 	duration: 2000
+					// });
 					this.$refs.successPopup.open();
 					// 延迟返回上一页
 					// setTimeout(() => {
@@ -622,8 +627,12 @@
 
 			// 显示二维码
 			showQRCode() {
+				console.log('提交关注-跳转');
 				this.$refs.successPopup.close();
 				// this.$refs.qrcodePopup.open();
+				uni.switchTab({
+					url: '/pages/tabbar/visitor'
+				});
 			},
 
 			// 关闭二维码弹框

+ 60 - 11
pages/tabbar/my.vue

@@ -34,13 +34,13 @@
 					</view>
 					<view class="login-button" @tap="goLogin">
 						<text class="login-text">点击登录</text>
-						<text class="login-arrow">></text>
+						<text class="login-arrow"></text>
 					</view>
 				</view>
 			</view>
-			<view v-if="isLogin" class="edit-button" @tap="goUserDetail">
-				<text class="edit-text">编辑</text>
-			</view>
+<!--			<view v-if="isLogin" class="edit-button" @tap="goUserDetail">-->
+<!--				<text class="edit-text">编辑</text>-->
+<!--			</view>-->
 
 			<!-- 退出登录按钮 -->
 			<view v-if="isLogin" class="logout-button" @tap="handlerLogout">
@@ -59,9 +59,9 @@
 </template>
 
 <script>
-	import {
-		getUserInfo,
-	} from '../../config/api';
+import {
+	getUserInfo, wxLogin,
+} from '../../config/api';
 	import {
 		mapActions,
 		mapGetters
@@ -144,11 +144,60 @@
 
 
 			// 登录处理
-			goLogin() {
+		 async goLogin() {
+				console.log(this.isLogin)
 				if (!this.isLogin) {
-					uni.navigateTo({
-						url: '/pagesA/public/login'
-					});
+					try {
+						// 1. 尝试微信授权登录
+						const loginRes = await new Promise((resolve, reject) => {
+							uni.login({
+								provider: 'weixin',
+								success: (res) => {
+									if (res.code) {
+										resolve(res); // 成功获取 code
+									} else {
+										reject(new Error('未获取到微信授权码'));
+									}
+								},
+								fail: (err) => {
+									reject(new Error('微信授权失败'));
+								}
+							});
+						});
+
+						// 2. 调用微信登录接口
+						const wxRes = await wxLogin({ code: loginRes.code });
+						console.log('微信登录成功:', wxRes);
+
+						// 3. 登录成功后的逻辑(如存储用户信息、跳转首页等)
+						if (wxRes && wxRes.message === "登录成功"&& wxRes.user) {
+							uni.setStorageSync('user', wxRes.data);
+							if (wxRes.user) {
+								uni.setStorageSync('user', wxRes.user);
+							}
+							// 更新store状态
+							this.$store.commit('isLogin', true);
+							this.isEmployeeLogin = true
+            this.getUserInfo()
+							// uni.switchTab({
+							// 	url: '/pages/tabbar/home' // 替换为实际首页路径
+							// });
+						} else {
+							throw new Error('微信登录接口返回异常');
+						}
+
+					} catch (error) {
+						console.error('登录失败:', error);
+
+						// 4. 微信授权或登录失败,跳转到手机号登录页
+						uni.navigateTo({
+							url: '/pagesA/public/phone-login'
+						});
+					}
+
+					// uni.navigateTo({
+					// 	url: '/pagesA/public/login'
+					// });
 				} else {
 					this.$route('/pagesA/public/login');
 				}

+ 81 - 15
pages/tabbar/visitor.vue

@@ -4,9 +4,9 @@
 		<template v-if="!isEmployeeLogin">
 			<!-- 未登录状态 -->
 			<view class="no-login">
-				<image src="/static/images/no-login.png" mode="aspectFit" class="no-login-image"></image>
+<!--				<image src="/static/images/no-login.png" mode="aspectFit" class="no-login-image"></image>-->
 				<text class="no-login-text">请使用员工账号登录</text>
-				<button class="login-btn" @click="goToLogin">登录</button>
+				<button class="login-btn" @click="goToLogin">授权登录</button>
 			</view>
 		</template>
 		<template v-else>
@@ -55,7 +55,7 @@
 		mapGetters
 	} from 'vuex';
 	import {
-		getVisitList
+		getVisitList, wxLogin
 	} from '@/config/api.js';
 
 	export default {
@@ -67,7 +67,7 @@
 				loadMoreStatus: 'loadmore', // loadmore, loading, nomore
 				params: {
 					current: 1,
-					size: 10,
+					size: 10000,
 				},
 				hasMore: true,
 				isEmployeeLogin: false // 是否是员工登录
@@ -81,6 +81,7 @@
 		},
 
 		onShow() {
+			console.log('onShow-----',this.isEmployeeLogin);
 			// 每次显示页面时检查登录状态
 			this.checkEmployeeLogin();
 			if (this.isEmployeeLogin) {
@@ -158,10 +159,26 @@
 
 
 					// 调用接口获取数据
-					const response = await getVisitList({
-						userId: 100,
-						// visitStatus: this.visitStatus || '0' // 可以根据需要传递状态参数,空字符串表示获取所有状态
-					});
+					const user = uni.getStorageSync('user');
+
+					let  data={}
+
+					// if  (user.userId=='1') {
+					//
+					// }else{
+					// data.userId = user.userId
+					// }
+					// if  (this.visitStatus) {
+					//
+					// }
+
+					const response = await getVisitList(
+
+							{
+						userId: user.userId, // 从缓存获取用户ID
+						// visitStatus: this.visitStatus  // 传递状态参数
+					}
+					);
 
 					console.log('访客列表接口返回:', response);
 
@@ -181,15 +198,16 @@
 							return {
 								id: item.id,
 								employeeName: item.empName, // 对接人(员工姓名)
-								visitReason: item.visitReson, // 访问事由
+								visitReason: item.visitReson || item.visitReason, // 兼容字段拼写问题
 								status: statusMap[item.visitStatus] || '未知', // 状态
 								visitDate: item.visitDate, // 访问时间
 								visitorName: item.visitPerson, // 访客姓名
-								visitorCompany: item.visDept, // 访客单位
+								visDept: item.visDept, // 部门
 								visitorPhone: item.visitorTel, // 访客电话
 								visitorNum: item.visitorNum, // 访客人数
 								accPerson: item.accPerson, // 随行人员(JSON字符串)
 								createTime: createTime,
+								// visitorCompany: item.visDept, // 访客单位
 								// 格式化显示用的字段
 								date: this.$u.timeFormat(createTime, 'dd'),
 								year: this.$u.timeFormat(createTime, 'yyyy/mm'),
@@ -238,11 +256,59 @@
 			},
 
 			// 跳转到登录页面
-			goToLogin() {
-				uni.navigateTo({
-					url: '/pagesA/public/phone-login'
-				});
-			},
+			async goToLogin() {
+				try {
+					// 1. 尝试微信授权登录
+					const loginRes = await new Promise((resolve, reject) => {
+						uni.login({
+							provider: 'weixin',
+							success: (res) => {
+								if (res.code) {
+									resolve(res); // 成功获取 code
+								} else {
+									reject(new Error('未获取到微信授权码'));
+								}
+							},
+							fail: (err) => {
+								reject(new Error('微信授权失败'));
+							}
+						});
+					});
+
+					// 2. 调用微信登录接口
+					const wxRes = await wxLogin({ code: loginRes.code });
+					console.log('微信登录成功:', wxRes);
+					if (wxRes.openid) {
+						uni.setStorageSync('openid', wxRes.openid);
+					}
+					// 3. 登录成功后的逻辑(如存储用户信息、跳转首页等)
+					if (wxRes && wxRes.message === "登录成功"&& wxRes.user) {
+						uni.setStorageSync('user', wxRes.data);
+						if (wxRes.user) {
+							uni.setStorageSync('user', wxRes.user);
+						}
+						// 更新store状态
+						this.$store.commit('isLogin', true);
+						this.isEmployeeLogin = true
+						this.getList(true)
+						// uni.switchTab({
+						// 	url: '/pages/tabbar/home' // 替换为实际首页路径
+						// });
+					} else {
+						throw new Error('微信登录接口返回异常');
+					}
+
+				} catch (error) {
+					console.error('登录失败:', error);
+
+					// 4. 微信授权或登录失败,跳转到手机号登录页
+					uni.navigateTo({
+						url: '/pagesA/public/phone-login'
+					});
+				}
+			}
+
+
 		}
 	};
 </script>

+ 29 - 1
pagesA/public/login.vue

@@ -374,15 +374,43 @@
 			handleBrowse() {
 				// 直接返回首页
 				uni.switchTab({
-					url: '/pages/index/index'
+					url: '/pages/tabbar/visitor'
 				});
 			},
 
 			// 跳转到手机登录页面
 			handlePhoneLogin() {
+				// uni.login(
+				// 		{
+				// 			provider: 'weixin',
+				// 			success: (loginRes) => {
+				// 				console.log(loginRes.code, "code")
+				// 				wxLogin({
+				// 					code: loginRes.code
+				// 				}).then(loginData => {
+				// 					console.log('登录响应:', loginData);
+				// 					this.saveLoginDataAndRedirect(loginData);
+				// 				}).catch(error => {})
+				// 			}
+				// 		}
+				// )
+				//
+				// let  openId=uni.getStorageSync('openid')
+				// if (openId) {
+				// 	wxLogin({openId})
+				// }else {
+				//
+				// }
+
+
+
 				uni.navigateTo({
 					url: '/pagesA/public/phone-login'
 				});
+
+
+
+
 			},
 
 			// 保存登录数据并跳转

+ 67 - 35
pagesA/public/phone-login.vue

@@ -8,8 +8,10 @@
 			<!-- 账号输入框 -->
 			<view class="input-group">
 				<text class="input-label">账号</text>
-				<u-input v-model="account" placeholder="请输入手机号码" :border="false" class="input-field" type="number"
-					maxlength="11"></u-input>
+<!--				<u-input v-model="account" placeholder="请输入手机号码" :border="false" class="input-field" type="number"-->
+<!--					maxlength="11"></u-input>-->
+				<u-input v-model="account" placeholder="请输入账号" :border="false" class="input-field"
+				         ></u-input>
 			</view>
 
 			<!-- 密码输入框 -->
@@ -21,8 +23,12 @@
 
 			<!-- 登录按钮 -->
 			<button class="login-btn" @tap="handleLogin">
-				<text>确定</text>
+				<text>登录</text>
 			</button>
+
+<!--			<button class="login-btn" @tap="handleLogin1">-->
+<!--				<text>授权</text>-->
+<!--			</button>-->
 		</view>
 	</view>
 </template>
@@ -69,51 +75,64 @@
 					});
 					
 					// 第一步:手机号登录 (system/info/login)
+					// let params = {
+					// 	"username": this.account,
+					// 	"password": this.password,
+					// 	// "wxid": "3"
+					// }
+					// const phoneRes = await phoneLogin(params);
+					// console.log(phoneRes, "手机号登录成功")
+					//
+					// // 保存手机号登录返回的token
+					// uni.setStorageSync('access_token', phoneRes.token);
+					//
+					// // 保存用户信息到缓存
+					// if (phoneRes.user) {
+					// 	uni.setStorageSync('user', phoneRes.user);
+					// }
+
+					// 第二步:微信登录 (system/link/login)
+					// const loginRes = await this.wxLoginPromise();
+					// console.log('微信登录凭证code:', loginRes.code);
+
+
+					// const wxRes = await wxLogin({
+					// 	code: loginRes.code
+					// });
+					// console.log('微信登录响应:', wxRes);
+
+				let	openId =uni.getStorageSync('openid')
+				if(!openId){
+					const loginRes = await this.wxLoginPromise();
+	        console.log('微信登录凭证code:', loginRes.code);
+				}
 					let params = {
 						"username": this.account,
 						"password": this.password,
-						"wxid": "3"
+						"wxid":  openId
 					}
 					const phoneRes = await phoneLogin(params);
 					console.log(phoneRes, "手机号登录成功")
-
-					// 保存手机号登录返回的token
-					uni.setStorageSync('access_token', phoneRes.token);
-					
-					// 保存用户信息到缓存
-					if (phoneRes.user) {
-						uni.setStorageSync('user', phoneRes.user);
-					}
-
-					// 第二步:微信登录 (system/link/login)
-					const loginRes = await this.wxLoginPromise();
-					console.log('微信登录凭证code:', loginRes.code);
-
-					const wxRes = await wxLogin({
-						code: loginRes.code
-					});
-					console.log('微信登录响应:', wxRes);
-
 					// 保存微信登录返回的openid
-					if (wxRes.openid) {
-						uni.setStorageSync('openid', wxRes.openid);
+					if (openId) {
+						uni.setStorageSync('openid', openId);
 					}
 
 					// 如果微信登录返回了新的token,也保存
-					const wxToken = wxRes.token || wxRes.access_token;
-					if (wxToken) {
-						uni.setStorageSync('access_token', wxToken);
-						uni.setStorageSync('token', wxToken);
-					}
+					// const wxToken = wxRes.token || wxRes.access_token;
+					// if (wxToken) {
+					// 	uni.setStorageSync('access_token', wxToken);
+					// 	uni.setStorageSync('token', wxToken);
+					// }
 
 					// 如果微信登录返回了用户信息,也保存
-					if (wxRes.user) {
-						uni.setStorageSync('user', wxRes.user);
+					if (phoneRes.user) {
+						uni.setStorageSync('user', phoneRes.user);
 					}
 
 					// 保存完整的微信登录数据
-					if (wxRes) {
-						uni.setStorageSync('loginData', wxRes);
+					if (phoneRes) {
+						uni.setStorageSync('loginData', phoneRes);
 					}
 
 					// 更新store状态
@@ -130,7 +149,7 @@
 					// 登录成功后的跳转
 					setTimeout(() => {
 						uni.switchTab({
-							url: '/pages/index/index'
+							url: '/pages/tabbar/visitor'
 						});
 					}, 1000);
 					
@@ -143,7 +162,20 @@
 					});
 				}
 			},
-			
+
+			handleLogin1(){
+				uni.login({
+					provider: 'weixin',
+					success: (res) => {
+					wxLogin({code:res.code})
+				},
+					fail: (err) => reject(new Error('获取登录凭证失败'))
+				});
+
+			},
+
+
+
 			// 微信登录 Promise 封装
 			wxLoginPromise() {
 				return new Promise((resolve, reject) => {

BIN
static/iconfont.ttf


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
static/js/area.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
static/js/city.js


+ 0 - 1
static/js/province.js

@@ -1 +0,0 @@
-var provinceData=[{"label":"北京市","value":"11"},{"label":"天津市","value":"12"},{"label":"河北省","value":"13"},{"label":"山西省","value":"14"},{"label":"内蒙古自治区","value":"15"},{"label":"辽宁省","value":"21"},{"label":"吉林省","value":"22"},{"label":"黑龙江省","value":"23"},{"label":"上海市","value":"31"},{"label":"江苏省","value":"32"},{"label":"浙江省","value":"33"},{"label":"安徽省","value":"34"},{"label":"福建省","value":"35"},{"label":"江西省","value":"36"},{"label":"山东省","value":"37"},{"label":"河南省","value":"41"},{"label":"湖北省","value":"42"},{"label":"湖南省","value":"43"},{"label":"广东省","value":"44"},{"label":"广西壮族自治区","value":"45"},{"label":"海南省","value":"46"},{"label":"重庆市","value":"50"},{"label":"四川省","value":"51"},{"label":"贵州省","value":"52"},{"label":"云南省","value":"53"},{"label":"西藏自治区","value":"54"},{"label":"陕西省","value":"61"},{"label":"甘肃省","value":"62"},{"label":"青海省","value":"63"},{"label":"宁夏回族自治区","value":"64"},{"label":"新疆维吾尔自治区","value":"65"},{"label":"台湾","value":"66"},{"label":"香港","value":"67"},{"label":"澳门","value":"68"}];export default provinceData;

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä