wgl 4 سال پیش
والد
کامیت
47f818fece

+ 2 - 2
.env.test

@@ -2,7 +2,7 @@ NODE_ENV=production
 VUE_APP_NODE_NAME=test
 OUT_PUT_NAME=test
 VUE_APP_LOCAL_STORAGE_PREFIX=test
-VUE_APP_BACKEND_URL=http://wisdomhouse.sudaonline.net/
+VUE_APP_BACKEND_URL=https://ykt-test.xiaoxinda.com/jp-housekeeper-server/
 #小鹏管家微信appid
-VUE_APP_WXAPPID=wx0b3c41a903053808
+VUE_APP_WXAPPID=wx7e70eb62a8459869
 VUE_APP_AUTH=

+ 2 - 1
package.json

@@ -17,7 +17,8 @@
 		"vconsole": "^3.3.4",
 		"vue": "^2.6.11",
 		"vue-router": "^3.2.0",
-		"vuex": "^3.4.0"
+		"vuex": "^3.4.0",
+		"weixin-js-sdk": "^1.6.0"
 	},
 	"devDependencies": {
 		"@vue/cli-plugin-babel": "~4.5.0",

+ 11 - 0
src/apis/common.js

@@ -0,0 +1,11 @@
+import request from '$project/utils/request'
+import Qs from 'qs';
+
+//上传图片
+export function uploadBase64(formData) {
+	return request({
+		url: '/mobile/personInfoApi/uploadBase64',
+		data: formData,
+		method: 'post',
+	})
+}

+ 6 - 7
src/apis/weixin.js

@@ -21,12 +21,11 @@ export function getDataByOpenId(params) {
 
 //获得配置
 export function getConfig() {
-	
 	return request({
-		url: '/wechat/getConfig'  ,
-		data: Qs.stringify({
-			url:escape(location.href.split('#')[0])
-		}),
-		method: 'post',
+		url: '/wechat/getConfig',
+		params: {
+			url: window.location.href.split('#')[0]
+		},
+		method: 'get',
 	})
-}
+}

+ 34 - 0
src/projects/business/apis/Master/attendance.js

@@ -0,0 +1,34 @@
+import request from '@/utils/request'
+import Qs from 'qs';
+
+/**
+ * 考勤相关
+ * @param params
+ */
+
+//
+export function pageList(params) {
+	return request({
+		url: '/mobile/workAttendance/pageList',
+		data: Qs.stringify(params),
+		method: 'post',
+	})
+}
+
+//提交
+export function postPatchCard(params) {
+	return request({
+		url: '/mobile/workAttendance/postPatchCard',
+		data: Qs.stringify(params),
+		method: 'post',
+	})
+}
+
+//获取时间段
+export function patchCard(params) {
+	return request({
+		url: '/mobile/workAttendance/patchCard',
+		data: Qs.stringify(params),
+		method: 'post',
+	})
+}

+ 0 - 38
src/projects/business/apis/Master/attendance/attendance.js

@@ -1,38 +0,0 @@
-import request from '@/utils/request'
-import Qs from 'qs';
-
-/**
- * 考勤相关
- * @param params
- */
-
-//
-export function pageList(params) {
-    return request({
-        url:  '/mobile/workAttendance/pageList',
-        data: Qs.stringify(params),
-        method: 'post',
-    })
-}
-
-//提交
-export function postPatchCard(params) {
-    return request({
-        url: '/mobile/workAttendance/postPatchCard',
-        data: Qs.stringify(params),
-        method: 'post',
-    })
-}
-
-
-//获取时间段
-export function patchCard(params) {
-    return request({
-        url: '/mobile/workAttendance/patchCard',
-        data: Qs.stringify(params),
-        method: 'post',
-    })
-}
-
-
-

+ 12 - 0
src/projects/business/apis/Master/index.js

@@ -0,0 +1,12 @@
+import request from '@/utils/request'
+import Qs from 'qs';
+
+
+//保存用户信息
+export function savePerson(params) {
+	return request({
+		url: '/mobile/personInfoApi/saveDetail',
+		data: Qs.stringify(params),
+		method: 'post',
+	})
+}

+ 1 - 1
src/projects/business/views/Common/Notice/Info.vue

@@ -69,7 +69,7 @@
 					this.isLoading = false;
 				}).catch(error => {
 					this.isLoading = false;
-					this.mui.toast(error);
+					mui.toast(error);
 				})
 			},
 			asynCallBack() {

+ 12 - 2
src/projects/business/views/Master/Center.vue

@@ -8,7 +8,7 @@
 					<div class="vongi-me-top">
 						<div class="flew-items">
 							<div class="mui-media-object mui-pull-left">
-								<img src="~$project/assets/img/02.jpg">
+								<img :src="person_data.faceImageUrl">
 							</div>
 							<h2>{{wellcomme}}{{person_data.name}}</h2>
 						</div>
@@ -63,6 +63,8 @@
 		</div>
 
 		<nav-menu :router="[{name:'Master'},{name:'MasterMessage'},{name:'MasterCenter'}]"></nav-menu>
+
+		<loading :visible="isLoading"></loading>
 	</div>
 </template>
 
@@ -86,6 +88,8 @@
 		data() {
 			return {
 				pageTitle: '个人中心',
+
+				isLoading: false,
 			}
 		},
 		created() {
@@ -100,7 +104,13 @@
 				})
 			},
 			asynCallBack() {
-
+				//如果用户信息不存在则跳转到注册信息
+				if (!this.person_data) {
+					this.$router.push({
+						name: 'MasterRegister',
+						query: {}
+					})
+				}
 			},
 		},
 		mounted() {

+ 96 - 3
src/projects/business/views/Master/EditInfo.vue

@@ -8,7 +8,8 @@
 				<form class="mui-input-group">
 					<div class="mui-input-row">
 						<label style="width: 40%">人脸识别照片</label>
-						<button id="showUserPicker" class="mui-btn mui-btn-block mui-navigate-right" type="button" style="width: 60%">
+						<button @click="chooseImage('faceImageUrl') " class="mui-btn mui-btn-block mui-navigate-right" type="button"
+						 style="width: 60%">
 							<img :src="person_data.faceImageUrl" />
 						</button>
 					</div>
@@ -32,10 +33,15 @@
 				<button type="submit" class="mui-btn mui-btn-primary" @click="save">保 存</button>
 			</div>
 		</div>
+
+		<loading :visible="isLoading"></loading>
 	</div>
 </template>
 
 <script>
+	import * as API_WeiXin from '$project/apis/weixin'
+	import * as API_Common from '$project/apis/common'
+	import * as API_Master from '@/apis/Master/index'
 	import Common from '$project/components/Common.vue'
 	import Loading from '$project/components/Loading.vue'
 	import TopHeader from '$project/components/TopHeader.vue'
@@ -43,6 +49,7 @@
 		mapGetters,
 		mapMutations
 	} from 'vuex'
+	import wx from 'weixin-js-sdk'
 	export default {
 		name: 'MasterEditInfo',
 		components: {
@@ -54,12 +61,17 @@
 			return {
 				pageTitle: '修改个人中心',
 
+				isLoading: false,
+
 				subForm: {
 					name: '',
 					phone: '',
 					idCard: '',
+					faceImageUrl: '',
 					wechatNoticeEnabled: true,
-				}
+				},
+
+				imgBase64: ''
 			}
 		},
 		created() {
@@ -70,14 +82,95 @@
 		methods: {
 			//保存
 			save() {
+				this.isLoading = true;
+				API_Master.savePerson(subForm).then(response => {
+					this.isLoading = false;
 
+					mui.toast('保存成功');
+					this.$router.push({
+						name: 'Master',
+						query: {}
+					})
+				}).catch(error => {
+					this.isLoading = false;
+					mui.toast(error);
+				})
+			},
+			//获取微信配置
+			getWxConfig() {
+				this.isLoading = true;
+				API_WeiXin.getConfig().then(response => {
+					var wxconfig = response.wxConfig;
+					console.log(wxconfig.nonceStr)
+					this.wxConfig = wxconfig;
+					wx.config({
+						debug: false, // 开启调试模式,
+						appId: wxconfig.appId, // 必填,企业号的唯一标识,此处填写企业号corpid
+						timestamp: wxconfig.timestamp, // 必填,生成签名的时间戳
+						nonceStr: wxconfig.nonceStr, // 必填,生成签名的随机串
+						signature: wxconfig.signature, // 必填,签名,见附录1
+						jsApiList: ['chooseImage', 'getLocalImgData'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
+					});
+
+					this.isLoading = false;
+				}).catch(error => {
+					this.isLoading = false;
+					mui.toast(error);
+				})
+			},
+			//微信选择图片
+			chooseImage(field) {
+				var _this = this;
+				wx.chooseImage({
+					count: 1,
+					sizeType: ['compressed'],
+					sourceType: ['album', 'camera'],
+					success: function(res) {
+						var localIds = res.localIds;
+						console.log(localIds);
+						wx.getLocalImgData({
+							localId: localIds[0],
+							success: function(res) {
+								var localData = res.localData;
+
+								if (localData.indexOf('data:image') != 0) {
+									//判断是否有这样的头部
+									localData = 'data:image/jpeg;base64,' + localData
+								}
+								localData = localData.replace(/\r|\n/g, '').replace('data:image/jgp', 'data:image/jpeg')
+								_this.imgBase64 = localData;
+								//显示裁剪图片
+								//_this.showCropper(field);
+								_this.uploadpic(field);
+							}
+						});
+					}
+				});
+			},
+			//上传图片
+			uploadpic() {
+				this.isLoading = true;
+				var _this = this;
+				var formData = new FormData();
+				formData.append('photoName', '1.jpg');
+				formData.append('photoBase64Data', this.imgBase64);
+
+				API_Common.uploadBase64(formData).then(response => {
+					this.isLoading = false;
+
+					this.subForm[field] = response;
+				}).catch(error => {
+					this.isLoading = false;
+					this.mui.toast(error);
+				})
 			},
 			asynCallBack() {
 
 			},
 		},
 		mounted() {
-
+			//获取微信配置
+			this.getWxConfig();
 		},
 		destroyed() {
 

+ 2 - 4
src/projects/business/views/Master/Home.vue

@@ -204,9 +204,7 @@
 
 			},
 		},
-		mounted() {
-
-		},
+		mounted() {},
 		destroyed() {
 
 		},
@@ -214,7 +212,7 @@
 			pageTitle: {
 				// getter
 				get: function() {
-					return this.company_data.name;
+					return this.company_data ? this.company_data.name : '小鹏管家';
 				},
 				// setter
 				set: function(newValue) {

+ 11 - 1
src/projects/business/views/Master/Message.vue

@@ -48,6 +48,8 @@
 		</div>
 
 		<nav-menu :router="[{name:'Master'},{name:'MasterMessage'},{name:'MasterCenter'}]"></nav-menu>
+
+		<loading :visible="isLoading"></loading>
 	</div>
 </template>
 
@@ -71,6 +73,8 @@
 		data() {
 			return {
 				pageTitle: '消息',
+
+				isLoading: false,
 			}
 		},
 		created() {
@@ -78,7 +82,13 @@
 		},
 		methods: {
 			asynCallBack() {
-
+				//如果用户信息不存在则跳转到注册信息
+				if (!this.person_data) {
+					this.$router.push({
+						name: 'MasterRegister',
+						query: {}
+					})
+				}
 			},
 		},
 		mounted() {

+ 5 - 0
yarn.lock

@@ -8385,6 +8385,11 @@ websocket-extensions@>=0.1.1:
   resolved "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
   integrity sha1-f4RzvIOd/YdgituV1+sHUhFXikI=
 
+weixin-js-sdk@^1.6.0:
+  version "1.6.0"
+  resolved "https://registry.npm.taobao.org/weixin-js-sdk/download/weixin-js-sdk-1.6.0.tgz#ff50484d8118ce1208f11248cf4a1c0831577514"
+  integrity sha1-/1BITYEYzhII8RJIz0ocCDFXdRQ=
+
 which-module@^2.0.0:
   version "2.0.0"
   resolved "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"