zhengkaixin há 2 anos atrás
pai
commit
7dfbdadf73

+ 11 - 1
src/projects/business/router-xsy/xsy.js

@@ -14,7 +14,17 @@ const routesXsy = [
 				path: 'approval',
 				component: () => import('../views-xsy/Layout.vue'),
 				children: [
-					 
+					//审批-统计
+					{
+						path: 'statistics',
+						name: 'XsyApprovalStatistics',
+						component: () => import('../views-xsy/Approval/Statistics.vue'),
+						meta: {
+							requireAuth: false,
+							role: [],
+							title: '申请统计',
+						}
+					}, 
 					//审批-个人
 					{
 						path: 'info',

+ 365 - 0
src/projects/business/views-xsy/Approval/Statistics.vue

@@ -0,0 +1,365 @@
+<template>
+	<div>
+		<common @asynCallBack="asynCallBack"></common>
+		<top-header :pageTitle="pageTitle" :routeName="'Master'"></top-header>
+
+		<div class="mui-content vongi-wordcard-sp vongi-zctj">
+			<div class="vongi-bagfff">
+				<div class="vongi-xzdw-search">
+					<input v-model="listForm.name" @keyup.enter="reloadSearchList" type="search" placeholder="请输入姓名或手机号查询">
+					<span class="mui-icon mui-icon-search"></span>
+				</div>
+			</div>
+			<div id="sliderSegmentedControl" class="mui-scroll-wrapper mui-slider-indicator mui-segmented-control mui-segmented-control-inverted">
+				<div class="mui-scroll">
+					<router-link :to="{name:'MasterCompanyRegisterExamine',query:{status:0,name:listForm.name}}" :class="'mui-control-item '+(listForm.status==0?'mui-active':'')">
+						<span class="fyy-badge">待处理<span class="mui-badge" v-if="firstRecordsTotal" v-text="firstRecordsTotal"></span></span>
+					</router-link>
+					<router-link :to="{name:'MasterCompanyRegisterExamine',query:{status:1,name:listForm.name}}" :class="'mui-control-item '+(listForm.status==1?'mui-active':'')">
+						已处理
+					</router-link>
+				</div>
+			</div>
+
+			<NullList :remark="'暂无审批记录'" v-if="!recordList.length"></NullList>
+
+			<div v-if="recordList.length" id="slider" class="mui-slider mui-fullscreen vongi-over">
+
+				<div class="mui-slider-group">
+
+					<div v-show="listForm.status==0" class="mui-slider-item mui-control-content">
+						<div class="mui-scroll-wrapper vongi-over-hei">
+							<div class="mui-scroll">
+								<form class="mui-input-group fyy-checkbox">
+									<div v-for="(item,index) in recordList" :key="item.id" class="mui-input-row mui-checkbox mui-left">
+										<router-link :to="{name:'MasterCompanyRegisterInfo',query:{id:item.id}}" class="mui-navigate-right">
+											<div class="mui-media-object mui-pull-left vongi-buka"><img :src="item.faceImageUrl"></div>
+											<div class="mui-media-body">
+												{{item.name}}
+												<p class='mui-ellipsis'>申请注册为<span class="colorfe616c" v-text="item.personRoleName"></span></p>
+												<p class='mui-ellipsis'>{{showTel(item.telephone)}}</p>
+												<h5 class="vongi-bksp-time" v-text="item.createTime.substr(5)"></h5>
+											</div>
+										</router-link>
+										<input name="checkbox" v-model="selectIdList" :value="item.id" type="checkbox">
+									</div>
+								</form>
+							</div>
+							<!---->
+						</div>
+					</div>
+
+					<div v-show="listForm.status==1" class="mui-slider-item mui-control-content">
+						<div class="mui-scroll-wrapper">
+							<div class="mui-scroll">
+								<ul class="mui-table-view mui-table-view-chevron">
+									<li v-for="(item,index) in recordList" :key="item.id" class="mui-table-view-cell mui-media">
+										<router-link :to="{name:'MasterCompanyRegisterInfo',query:{id:item.id}}" class="mui-navigate-right">
+											<div class="mui-media-object mui-pull-left vongi-buka"><img :src="item.faceImageUrl"></div>
+											<div class="mui-media-body">
+												{{item.name}}
+												<p class='mui-ellipsis' v-text="item.personRoleName"></p>
+												<p class='mui-ellipsis'>{{showTel(item.telephone)}}</p>
+											</div>
+											<button type="button" :class="'mui-btn mui-btn-success mui-btn-outlined '+(item.status>0?(item.status==1?'status_a':'status_r'):'')"
+											 v-text="item.statusN"></button>
+										</router-link>
+									</li>
+								</ul>
+							</div>
+						</div>
+					</div>
+
+				</div>
+			</div>
+
+			<div v-show="recordList.length>0 && listForm.status==0" class="fyy-bindfyy-btn">
+				<form class="mui-input-group">
+					<div class="mui-input-row mui-checkbox mui-left">
+						<label>全选</label>
+						<input v-model="allSelect" value="1" type="checkbox" @click="selectAll" :checked="recordList.length==selectIdList.length">
+					</div>
+				</form>
+				<button type="button" class="mui-btn mui-btn-danger" @click="openFrom('2')">拒绝</button>
+				<button type="button" class="mui-btn mui-btn-success" @click="openFrom('1')">同意</button>
+			</div>
+		</div>
+
+
+		<loading :visible="isLoading"></loading>
+	</div>
+</template>
+
+<script>
+	import * as API_Company from '@/apis/Master/company'
+	import Common from '$project/components/Common.vue'
+	import Loading from '$project/components/Loading.vue'
+	import TopHeader from '$project/components/TopHeader.vue'
+	import isReachBottom from '$project/utils/isReachBottom'
+	import {
+		mapGetters,
+		mapMutations
+	} from 'vuex'
+	import {
+		showTel,
+	} from '$project/utils'
+	import * as types from '$project/store/mutation-types'
+	import NullList from '$project/components/NullList.vue'
+	export default {
+		name: 'MasterCompanyRegisterExamine',
+		components: {
+			Common,
+			Loading,
+			TopHeader,
+			NullList
+		},
+		data() {
+			return {
+				pageTitle: '用户审核',
+
+				isLoading: false,
+
+				listForm: {
+					name: this.$route.query.name ? this.$route.query.name : '',
+					pageIndex: 1,
+					pageSize: 20,
+					totalPage: 1,
+					status: this.$route.query.status ? this.$route.query.status : 0,
+				},
+				recordList: [],
+				selectIdList: [],
+				allSelect: [],
+				subForm: {
+					ids: '',
+					content: '',
+					status: '',
+					deviceIds: '',
+					companyId: ''
+				},
+				firstRecordsTotal: 0,
+
+			}
+		},
+		created() {},
+		methods: {
+			showTel(tel){
+				return showTel(tel);
+			},
+			reloadSearchList() {
+				this.listForm.pageIndex = 1;
+				this.getList();
+			},
+			//获取列表
+			getList() {
+				this.isLoading = true;
+				API_Company.getApplyList(this.listForm).then(response => {
+					if (response) {
+						if (this.listForm.pageIndex == 1) {
+							this.recordList = response.data;
+							this.listForm.pageIndex = response.pageNumber;
+							this.listForm.totalPage = response.totalPage;
+						} else {
+							this.recordList = [
+								...this.recordList,
+								...response.data
+							];
+						}
+
+						if (this.listForm.status == 0) {
+							this.firstRecordsTotal = response.recordsTotal;
+						}
+					}
+
+					this.listForm.pageIndex++;
+					this.isLoading = false;
+				}).catch(error => {
+					this.isLoading = false;
+					mui.toast(error);
+				})
+			},
+			//下拉事件
+			handleScrool() {
+				if (isReachBottom()) {
+					console.log('到达底部')
+					if (this.listForm.pageIndex <= this.listForm.totalPage && this.isLoading == false) {
+						this.getList();
+					} else {
+						return;
+					}
+				}
+			},
+			//切换
+			reloadList(status) {
+				this.listForm.status = status;
+				this.listForm.pageIndex = 1;
+				this.getList();
+			},
+			//选择所有
+			selectAll() {
+				if (this.allSelect.length) {
+					this.selectIdList = [];
+				} else {
+					var selectIdList = [];
+					this.recordList.forEach(function(item, index) {
+						selectIdList.push(item.id);
+					})
+					this.selectIdList = selectIdList;
+				}
+			},
+			//显示内容表单
+			openFrom(status) {
+				if (!this.selectIdList.length) {
+					mui.toast('请选择要处理的信息');
+				} else {
+					this.subForm.status = status;
+					this.subForm.content = status == 1 ? '同意' : '拒绝';
+					this.doAction();
+				}
+			},
+			//检测表单
+			checkForm() {
+				if (!this.subForm.ids) {
+					mui.toast('请选择要处理的信息');
+					return false;
+				} else {
+					return true;
+				}
+			},
+			//同意拒绝
+			doAction() {
+				this.subForm.ids = this.selectIdList.join(',');
+				if (this.checkForm()) {
+					var _this = this;
+					var btnArray = ['否', '是'];
+					mui.confirm('是否' + _this.subForm.content + '所勾选的注册申请?', '提示', btnArray, function(e) {
+						if (e.index == 1) {
+							//同意
+							if (_this.subForm.status == 1) {
+								_this.set_register_examine_form(_this.subForm);
+								if (_this.hasSceneId1) {
+									_this.$router.push({
+										name: 'MasterCompanyRegisterSelectDepartment',
+									})
+								} else {
+									_this.$router.push({
+										name: 'MasterCompanyRegisterSelectDevice',
+										query: {
+											hasSceneId1: _this.hasSceneId1 ? '1' : '0',
+											hasSceneId4: _this.hasSceneId4 ? '1' : '0',
+										}
+									})
+								}
+							} else {
+								//拒绝
+								_this.isLoading = true;
+								API_Company.doApply(_this.subForm).then(response => {
+									_this.isLoading = false;
+									mui.toast('处理成功');
+									_this.listForm.pageIndex = 1;
+									_this.getList();
+								}).catch(error => {
+									_this.isLoading = false;
+									mui.toast(error);
+								})
+							}
+						}
+					})
+				}
+			},
+			asynCallBack() {
+
+			},
+			...mapMutations({
+				set_register_examine_form: types.SET_REGISTER_EXAMINE_FORM,
+			})
+		},
+		mounted() {
+			this.getList();
+			//监控下拉加载事件
+			var _this = this;
+			window.addEventListener('scroll', _this.handleScrool);
+		},
+		destroyed() {
+			//销毁监听事件
+			var _this = this;
+			window.removeEventListener('scroll', _this.handleScrool);
+		},
+		computed: {
+			hasSceneId1: {
+				// getter
+				get: function() {
+					for (var i = 0; i < this.recordList.length; i++) {
+						if (this.selectIdList.indexOf(this.recordList[i]['id']) > -1 && this.recordList[i]['sceneId'] == '1') {
+							return true;
+						}
+					}
+					return false;
+				},
+				// setter
+				set: function(newValue) {
+					console.log(newValue)
+				}
+			},
+			hasSceneId4: {
+				// getter
+				get: function() {
+					for (var i = 0; i < this.recordList.length; i++) {
+						if (this.selectIdList.indexOf(this.recordList[i]['id']) > -1 && this.recordList[i]['sceneId'] == '4') {
+							return true;
+						}
+					}
+					return false;
+				},
+				// setter
+				set: function(newValue) {
+					console.log(newValue)
+				}
+			},
+			...mapGetters({
+				openId: 'wx_openid',
+				token: 'token',
+			})
+		},
+		watch: {
+			//本页面监听到路由(参数)改变
+			'$route': function(to, from) {
+				this.reloadList(to.query.status ? to.query.status : 0)
+			}
+		},
+	}
+</script>
+
+<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;
+	}
+
+	/* .vongi-wordcard-sp .mui-fullscreen{
+		bottom: 50px;
+	}
+
+	.fyy-bindfyy-btn button {
+		width: 30%;
+	}
+
+	
+	.mui-segmented-control {
+		position: fixed;
+		top: 44px;
+		z-index: 99;
+		background-color: #eee;
+	}
+
+	.mui-fullscreen {
+		position: unset;
+		margin-top: 45px;
+	} */
+</style>

+ 9 - 2
src/projects/business/views/Master/Attendance/LeaveForm.vue

@@ -54,7 +54,7 @@
 				</div>
 			</div>
 
-			<div class="mui-content-padded">
+			<div class="mui-content-padded" v-if="tjForm.leaveType!=6" >
 				<h5>上传照片(最多上传5张照片)</h5>
 				<div class="fyy-upphoto">
 					<div class="mui-col-xs-3 fyy-upphoto-close" v-for="(item,index) in picList" :key="index">
@@ -67,7 +67,11 @@
 				</div>
 			</div>
 
-			<div class="mui-content-padded mui-h6">注:1、病假须上传医院证明。2、请假事由中须写明请假去向。</div>
+			<div class="mui-content-padded mui-h6">注:<br/>
+			1、病假须上传医院证明。<br/>
+			2、请假事由中须写明请假去向。<br/>
+			<span :style="tjForm.leaveType==6?'color:red':''" >3、丧假事由不需要上传照片,销假只需要上传火化纸质证明。</span><br/>
+			</div>
 			<div class="vongi-btn">
 				<button class="mui-btn "  style="width: 50%;" :class="examinePerson.name?'mui-btn-success':'mui-btn-grey'"  type="submit" @click="submit(0)">
 					<i icon="mui-icon mui-icon-compose"></i>保存草稿
@@ -378,6 +382,9 @@
 				this.tjForm.draft=status;
 				this.tjForm.reason = this.tjForm.reason ? this.tjForm.reason : this.reasonDefault;
 				if (this.checkFrom()) {
+					if(this.tjForm.leaveType==6){
+						this.picList=[]
+					}
 					this.tjForm.imageUrl = this.picList.join(',');
 					this.isLoading = true;
 					this.tjForm.days=this.daytime;