wgl hace 4 años
padre
commit
bae55b3d60

+ 11 - 2
src/components/TopHeader.vue

@@ -1,6 +1,6 @@
 <template>
 	<header :class="'mui-bar mui-bar-nav '+headerClass" :style="headerStyle">
-		<h1 class="mui-title" v-text="pageTitle"></h1>
+		<a class="mui-title">{{pageTitle}}<span v-if="titleDownShow" @click="downAction" class="mui-icon mui-icon-arrowdown"></span></a>
 		<a v-if="leftShow" class="mui-icon mui-icon-left-nav mui-pull-left" :routeName="routeName" @click="goBack"></a>
 		<a v-if="rightLink.show" @click="doRightLink" class="fyy-bar mui-pull-right">
 			<span :class="'mui-icon iconfont '+rightLink.icon" :style="rightLink.style">
@@ -55,7 +55,16 @@
 			systemMessageNum: {
 				require: false,
 				default: 0
+			},
+			titleDownShow:{
+				require: false,
+				default: false,
+			},
+			downAction:{
+				require: false,
+				type: Function,
 			}
+			
 		},
 		methods: {
 			//返回上一层
@@ -67,7 +76,7 @@
 				} else {
 					this.$router.go(-1);
 				}
-			}
+			},
 		},
 	}
 </script>

+ 18 - 0
src/projects/business/apis/HouseKeeper/admin.js

@@ -36,3 +36,21 @@ export function queryUnmeasureGroupList(params) {
 		method: 'post',
 	})
 }
+
+//获取管理员的公司列表
+export function getCompanyList(params) {
+	return request({
+		url: '/mobile/personDeviceLogApi/queryCompanyList',
+		data: Qs.stringify(params),
+		method: 'post',
+	})
+}
+
+//切换当前管理的单位
+export function switchCompany(params) {
+	return request({
+		url: '/mobile/personInfoApi/switchCompany',
+		data: Qs.stringify(params),
+		method: 'post',
+	})
+}

+ 7 - 7
src/projects/business/views/HouseKeeper/Admin/Attendance/List.vue

@@ -1,6 +1,6 @@
 <template>
-<div>
-    <header class="mui-bar mui-bar-nav">
+	<div>
+		<header class="mui-bar mui-bar-nav">
 			<h1 class="mui-title">考勤统计</h1>
 			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
 		</header>
@@ -31,7 +31,7 @@
 						<li class="mui-table-view-cell">
 							姓名
 							<div class="mui-media-body">
-								<button type="button" class="mui-btn  mui-btn-royal mui-btn-outlined">补  卡</button>
+								<button type="button" class="mui-btn  mui-btn-royal mui-btn-outlined">补 卡</button>
 								<span class="colorf8b155">迟到</span>
 							</div>
 						</li>
@@ -64,12 +64,12 @@
 						<li class="mui-table-view-cell">
 							姓名
 							<div class="mui-media-body">
-								<button type="button" class="mui-btn  mui-btn-royal mui-btn-outlined">补  卡</button>
+								<button type="button" class="mui-btn  mui-btn-royal mui-btn-outlined">补 卡</button>
 								<span class="colorf8b155">迟到</span>
 							</div>
 						</li>
 						<li class="mui-table-view-cell">
-						    姓名
+							姓名
 							<div class="mui-media-body">
 								<button type="button" class="mui-btn  mui-btn-primary mui-btn-outlined">设备打卡</button>
 								<span class="colorfe616c">缺卡</span>
@@ -79,7 +79,7 @@
 				</li>
 			</ul>
 		</div>
-</div>
+	</div>
 </template>
 
 <script>
@@ -88,5 +88,5 @@
 <style scoped src="$project/assets/css/sczpfyy.css"></style>
 <style scoped src="$project/assets/css/xpwyfyy.css"></style>
 <style src="$project/assets/css/iconfont.css"></style>
-<style>
+<style scoped>
 </style>

+ 8 - 8
src/projects/business/views/HouseKeeper/Admin/Attendance/OutsideInfo.vue

@@ -1,6 +1,6 @@
 <template>
-<div>
-    <header class="mui-bar mui-bar-nav">
+	<div>
+		<header class="mui-bar mui-bar-nav">
 			<h1 class="mui-title">异地打卡详情</h1>
 			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
 		</header>
@@ -44,16 +44,16 @@
 						<div class="mui-media-body">相关照片</div>
 						<span class="vongi-yddk-dat-photo flew">
 							<div class="mui-col-xs-3">
-								<img src="~$project/assets/img/zhaop1.jpg" width="100%"/>
+								<img src="~$project/assets/img/zhaop1.jpg" width="100%" />
 							</div>
 							<div class="mui-col-xs-3">
-								<img src="~$project/assets/img/zhaop1.jpg" width="100%"/>
+								<img src="~$project/assets/img/zhaop1.jpg" width="100%" />
 							</div>
 							<div class="mui-col-xs-3">
-								<img src="~$project/assets/img/zhaop1.jpg" width="100%"/>
+								<img src="~$project/assets/img/zhaop1.jpg" width="100%" />
 							</div>
 							<div class="mui-col-xs-3">
-								<img src="~$project/assets/img/zhaop1.jpg" width="100%"/>
+								<img src="~$project/assets/img/zhaop1.jpg" width="100%" />
 							</div>
 						</span>
 					</li>
@@ -85,7 +85,7 @@
 				</ul>
 			</div>
 		</div>
-</div>
+	</div>
 </template>
 
 <script>
@@ -94,5 +94,5 @@
 <style scoped src="$project/assets/css/sczpfyy.css"></style>
 <style scoped src="$project/assets/css/xpwyfyy.css"></style>
 <style src="$project/assets/css/iconfont.css"></style>
-<style>
+<style scoped>
 </style>

+ 156 - 1
src/projects/business/views/HouseKeeper/Admin/Attendance/SupplementInfo.vue

@@ -1,8 +1,163 @@
 <template>
+	<div>
+		<common @asynCallBack="asynCallBack"></common>
+		<top-header :pageTitle="pageTitle"></top-header>
+
+		<div class="mui-content vongi-wordcard">
+			<div class="mui-content-padded vongi-wordcard-top">
+				<div class="mui-media-object mui-pull-left">
+					<img :src="detail.faceImageUrl" v-image-preview>
+				</div>
+				<div class="mui-media-body">
+					{{detail.personName}}
+					<p class='mui-ellipsis'><span class="colorfe616c">{{detail.typeN}}</span>申请</p>
+				</div>
+				<button type="button" :class="'mui-btn mui-btn-success mui-btn-outlined '+(detail.status>0?(detail.status==1?'status_a':'status_r'):'')">
+					{{detail.status>0?(detail.status==1?'已同意':'已拒绝'):'未审核'}}
+				</button>
+			</div>
+
+			<div class="mui-content-padded vongi-wordcard-center">
+				<ul class="mui-table-view">
+					<li class="mui-table-view-cell mui-media">
+						<div class="mui-media-body">申请类型</div>
+						<span v-text="detail.typeN"></span>
+					</li>
+					<li class="mui-table-view-cell mui-media">
+						<div class="mui-media-body">所在部门</div>
+						<span v-text="detail.companyName"></span>
+					</li>
+					<li class="mui-table-view-cell mui-media">
+						<div class="mui-media-body">申请班次</div>
+						<span class="colorf6f448" v-text="detail.fillAttendanceDayAndTime"></span>
+					</li>
+					<li class="mui-table-view-cell mui-media">
+						<div class="mui-media-body">申请时间</div>
+						<span v-text="detail.createTime"></span>
+					</li>
+					<li class="mui-table-view-cell mui-media">
+						<div class="mui-media-body">申请理由</div>
+						<span class="colorf8b155" v-text="detail.content"></span>
+					</li>
+					<li class="mui-table-view-cell mui-media">
+						<div class="mui-media-body">相关照片</div>
+					</li>
+					<li class="mui-table-view-cell mui-media fyy-upphoto">
+						<div class="mui-col-xs-3" v-for="(item,index) in picList">
+							<img :src="item" v-image-preview />
+						</div>
+					</li>
+				</ul>
+			</div>
+			<div class="mui-content-padded vongi-wordcard-center">
+				<h5>审批意见</h5>
+				<ul class="mui-table-view">
+					<li class="mui-table-view-cell mui-media">
+						审批人:
+						<span v-text="detail.approvalPersonName"></span>
+					</li>
+					<li class="mui-table-view-cell mui-media">
+						审批编号:
+						<span v-text="detail.approvalNo"></span>
+					</li>
+					<li class="mui-table-view-cell mui-media">
+						<span class="colorf8b155" v-text="detail.approvalContent"></span>
+					</li>
+				</ul>
+			</div>
+		</div>
+
+		<loading :visible="isLoading"></loading>
+	</div>
 </template>
 
 <script>
+	import * as API_Attendance from '@/apis/Master/attendance'
+	import Common from '$project/components/Common.vue'
+	import Loading from '$project/components/Loading.vue'
+	import TopHeader from '$project/components/TopHeader.vue'
+	import {
+		mapGetters,
+		mapMutations
+	} from 'vuex'
+	export default {
+		name: 'HouseKeeperAdminAttendanceSupplementInfo',
+		components: {
+			Common,
+			Loading,
+			TopHeader
+		},
+		data() {
+			return {
+				pageTitle: '补卡详情',
+
+				isLoading: false,
+
+				subForm: {
+					id: this.$route.query.id
+				},
+				detail: {},
+			}
+		},
+		created() {
+
+		},
+		methods: {
+			//获取详情
+			getDetail() {
+				this.isLoading = true;
+				API_Attendance.getApplyInfo(this.subForm).then(response => {
+
+					this.detail = response;
+
+					this.isLoading = false;
+				}).catch(error => {
+					this.isLoading = false;
+					mui.toast(error);
+				})
+			},
+			asynCallBack() {
+
+			},
+		},
+		mounted() {
+			//获取详情
+			this.getDetail();
+		},
+		destroyed() {},
+		computed: {
+			picList: {
+				// getter
+				get: function() {
+					if (this.detail && this.detail.fillAttendanceFilesUrl) {
+						return this.detail.fillAttendanceFilesUrl.split(',');
+					} else {
+						return [];
+					}
+				},
+				// setter
+				set: function(newValue) {
+					console.log(newValue)
+				}
+			},
+			...mapGetters({
+				openId: 'wx_openid',
+				token: 'token',
+			})
+		}
+	}
 </script>
 
-<style>
+<style scoped src="$project/assets/css/xpwyfyy.css"></style>
+<style src="$project/assets/css/iconfont.css"></style>
+<style scoped>
+	.status_r {
+		color: #fe616c !important;
+		border: 1px solid #fe616c !important;
+	}
+
+	.status_a {
+		color: #05c8af !important;
+		border: 1px solid #05c8af !important;
+	}
 </style>

+ 110 - 1
src/projects/business/views/HouseKeeper/Admin/Attendance/TemperatureInfo.vue

@@ -1,8 +1,117 @@
 <template>
+	<div>
+		<common @asynCallBack="asynCallBack"></common>
+		<top-header :pageTitle="pageTitle" :rightLink="rightLink" :doRightLink="doRightLink"></top-header>
+
+		<div class="mui-content fyy-detail-content mui-fullscreen">
+			<div class="mui-content-padded fyynew-detail">
+				<div class="fyynew-detail-photo">
+					<div class="fyynew-detail-region">
+						<img :src="detail.faceImage">
+					</div>
+				</div>
+				<div class="fyynew-detail-title" :style="detail.fever?'background: rgba(254,97,108,0.6);':'background: rgba(5,200,175,0.6);'"
+				 v-text="detail.fever?'检测异常':'检测正常'"></div>
+				<div class="fyynew-detail-wendu" :style="'background-color:'+detail.fever?'#fe616c':'#05c8af'" v-text="detail.temperature"></div>
+				<div class="fyynew-detail-text">
+					<h4 v-text="detail.personName"></h4>
+					<ul class="mui-table-view fyy-view">
+						<li class="mui-table-view-cell">
+							<label>检测时间</label>
+							<span v-text="detail.recordTime"></span>
+						</li>
+						<li class="mui-table-view-cell">
+							<label>设备名称</label>
+							<span v-text="detail.deviceName"></span>
+						</li>
+					</ul>
+				</div>
+			</div>
+		</div>
+
+		<loading :visible="isLoading"></loading>
+	</div>
 </template>
 
 <script>
+	import * as API_Health from '@/apis/Common/health'
+	import Common from '$project/components/Common.vue'
+	import Loading from '$project/components/Loading.vue'
+	import TopHeader from '$project/components/TopHeader.vue'
+	import {
+		mapGetters,
+		mapMutations
+	} from 'vuex'
+	export default {
+		name: 'HouseKeeperAdminAttendanceTemperatureInfo',
+		components: {
+			Common,
+			Loading,
+			TopHeader
+		},
+		data() {
+			return {
+				pageTitle: '详情',
+
+				isLoading: false,
+
+				rightLink: {
+					show: true,
+					icon: 'icon-tongji',
+					style: 'font-size:14px',
+					title: '健康统计'
+				},
+
+				detail: {},
+
+				subForm: {
+					id: this.$route.query.id
+				},
+			}
+		},
+		created() {
+
+		},
+		methods: {
+			//获取详情
+			getInfo() {
+				this.isLoading = true;
+				API_Health.getTemperatureInfo(this.subForm).then(response => {
+					this.detail = response;
+					this.isLoading = false;
+				}).catch(error => {
+					this.isLoading = false;
+					mui.toast(error);
+				})
+			},
+			//右上角点击事件
+			doRightLink() {
+				this.$router.push({
+					name: 'CommonHealthCert',
+					query: {
+						personId: this.detail.personId
+					}
+				})
+			},
+			asynCallBack() {},
+		},
+		mounted() {
+			this.getInfo();
+		},
+		destroyed() {},
+		computed: {
+			...mapGetters({
+				openId: 'wx_openid',
+				token: 'token',
+				person_data: 'person_data',
+				company_data: 'company_data',
+			})
+		}
+	}
 </script>
 
-<style>
+<style scoped src="$project/assets/css/xpwyfyy.css"></style>
+<style scoped src="$project/assets/css/sczpfyy.css"></style>
+<style src="$project/assets/css/iconfont.css"></style>
+<style scoped>
 </style>

+ 4 - 4
src/projects/business/views/HouseKeeper/Admin/Health/Archives.vue

@@ -1,6 +1,6 @@
 <template>
-<div>
-    <header class="mui-bar mui-bar-nav">
+	<div>
+		<header class="mui-bar mui-bar-nav">
 			<h1 class="mui-title">健康档案</h1>
 			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
 		</header>
@@ -53,8 +53,8 @@
 			<a class="mui-active">按学号排序</a>
 			<a class="">按拼音排序</a>
 		</div>
-		</div>
-</div>
+	</div>
+	</div>
 </template>
 
 <script>

+ 53 - 3
src/projects/business/views/HouseKeeper/Admin/Home.vue

@@ -1,8 +1,8 @@
 <template>
 	<div>
-		<common @asynCallBack="asynCallBack"></common>
+		<common ref="common" @asynCallBack="asynCallBack"></common>
 		<top-header :pageTitle="pageTitle" headerClass="vongi-bar" :rightLink="rightLink" :doRightLink="doRightLink"
-		 :leftShow="false"></top-header>
+		 :leftShow="false" :titleDownShow="true" :downAction="downAction"></top-header>
 
 		<div class="mui-content margin49">
 			<div class="vongi-icons">
@@ -110,6 +110,8 @@
 </template>
 
 <script>
+	require('$project/assets/js/mui.picker.min.js');
+	import * as API_Admin from '@/apis/HouseKeeper/admin'
 	import Common from '$project/components/Common.vue'
 	import Loading from '$project/components/Loading.vue'
 	import TopHeader from '$project/components/TopHeader.vue'
@@ -134,21 +136,68 @@
 					style: 'font-size:14px;color:#fff;',
 					title: '公司管理员'
 				},
+				companyList: [],
 			}
 		},
 		created() {
 
 		},
 		methods: {
+			//获取公司列表
+			getCompanyList() {
+				this.isLoading = true;
+				API_Admin.getCompanyList().then(response => {
+					this.isLoading = false;
+
+					let companyList = [];
+					response.list.forEach(function(item, index) {
+						companyList.push({
+							value: item.id,
+							text: item.name
+						})
+					})
+					this.companyList = companyList;
+
+				}).catch(error => {
+					this.isLoading = false;
+					mui.toast(error);
+				})
+			},
+			//切换公司选择
+			downAction() {
+				var picker = new mui.PopPicker();
+				picker.setData(this.companyList);
+				var _this = this;
+				picker.show(function(selectItems) {
+					_this.switchCompany(selectItems[0].value);
+				})
+			},
+			//切换当前公司
+			switchCompany(companyId) {
+				this.isLoading = true;
+				API_Admin.switchCompany({
+					companyId: companyId
+				}).then(response => {
+					this.isLoading = false;
+					this.$refs.common.getDataByOpenId()
+
+				}).catch(error => {
+					this.isLoading = false;
+					mui.toast(error);
+				})
+			},
 			//右上角点击事件
 			doRightLink() {
-
+				window.location.href = '../home/#/role?project=business&exchange=1'
 			},
 			asynCallBack() {
 
 			},
 		},
 		mounted() {
+			//获取公司列表
+			this.getCompanyList()
+
 			var gallery = mui('.mui-slider');
 			var slider = gallery.slider({
 				interval: 2000, //自动轮播周期,若为0则不自动播放,默认为0;
@@ -181,5 +230,6 @@
 
 <style scoped src="$project/assets/css/xpgj.css"></style>
 <style src="$project/assets/css/iconfont.css"></style>
+<style src="$project/assets/css/mui.picker.min.css"></style>
 <style scoped>
 </style>