From 4e0403082a4e85be27e83a900f7cc301810c0bf0 Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Thu, 18 Apr 2024 17:33:01 +0800
Subject: [PATCH] 更新

---
 api/school/school.js                |   64 +++++++++
 pages/home/index.vue                |    7 
 pages.json                          |   14 +
 subPackage/workbench/views/cscj.vue |   56 +++++++
 subPackage/school/clockIn.vue       |  254 ++++++++++++++++++++++++++++++++++++
 5 files changed, 387 insertions(+), 8 deletions(-)

diff --git a/api/school/school.js b/api/school/school.js
new file mode 100644
index 0000000..5eebcfa
--- /dev/null
+++ b/api/school/school.js
@@ -0,0 +1,64 @@
+import http from '@/http/api.js'
+
+//新增护学打卡
+export const addClockIn = (data) => {
+	return http.request({
+		url: '/blade-nursingCheckIn/nursingCheckIn/save',
+		method: 'POST',
+		data: data
+	})
+}
+
+//添加居住证申请
+export const saveResideApply = (data) => {
+	return http.request({
+		url: '/blade-taskResidencePermitApply/taskResidencePermitApply/save',
+		method: 'POST',
+		data: data
+	})
+}
+
+//编辑居住证申请
+export const updateResideApply = (data) => {
+	return http.request({
+		url: '/blade-taskResidencePermitApply/taskResidencePermitApply/update',
+		method: 'POST',
+		data: data
+	})
+}
+
+
+
+
+//获取居住证申请详情
+export const getResideApplyDetail = (params) => {
+	return http.request({
+		url: '/blade-taskResidencePermitApply/taskResidencePermitApply/detail',
+		method: 'get',
+		params: {
+			...params
+		}
+	})
+}
+
+
+//审核居住证申请
+export const auditResideApply = (data) => {
+	return http.request({
+		url: '/blade-taskResidencePermitApply/taskResidencePermitApply/auditing',
+		method: 'POST',
+		data: data
+	})
+}
+
+
+//获取居住证申请提交记录列表
+export const getResideApplyRecord = (params) => {
+	return http.request({
+		url: '/blade-taskResidencePermitApply/taskResidencePermitApply/list',
+		method: 'get',
+		params: {
+			...params
+		}
+	})
+}
\ No newline at end of file
diff --git a/pages.json b/pages.json
index 05af079..7e1817c 100644
--- a/pages.json
+++ b/pages.json
@@ -1228,9 +1228,19 @@
 					"enablePullDownRefresh": false
 				}
 			}]
+		},
+		{
+			"root": "subPackage/school",
+			"pages": [{
+				"path": "clockIn",
+				"style": {
+					"navigationBarTitleText": "护学打卡 ",
+					"navigationBarBackgroundColor": "#fff",
+					"navigationBarTextStyle": "black",
+					"enablePullDownRefresh": false
+				}
+			}]
 		}
-
-
 	],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
diff --git a/pages/home/index.vue b/pages/home/index.vue
index c6d2167..e85f925 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -437,7 +437,12 @@
 								text: "居住证申请",
 								path: "/subPackage/reside/edit",
 								icon: "/static/icon/nav-13.png"
-							}
+							},
+							// {
+							// 	text: "护学打卡",
+							// 	path: "/subPackage/school/clockIn",
+							// 	icon: "/static/icon/nav-13.png"
+							// }
 						]
 					},
 
diff --git a/subPackage/school/clockIn.vue b/subPackage/school/clockIn.vue
new file mode 100644
index 0000000..93b6f48
--- /dev/null
+++ b/subPackage/school/clockIn.vue
@@ -0,0 +1,254 @@
+<template>
+	<view class="">
+		<view class="content bgc-ff">
+			<u-form labelPosition="left" :model="info" :rules="rules" ref="form" labelWidth="90"
+				:labelStyle="{fontSize:'28rpx'}">
+				<u-form-item label="家长姓名" prop="name" borderBottom ref="name" required>
+					<u-input v-model="info.name" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
+						inputAlign="right"></u-input>
+				</u-form-item>
+
+				<u-form-item label="家长手机号" prop="phone" borderBottom ref="phone" required>
+					<u-input v-model="info.phone" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
+						inputAlign="right"></u-input>
+				</u-form-item>
+				<u-form-item label="学生姓名" prop="realName" borderBottom ref="realName" required>
+					<u-input v-model="info.realName" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
+						inputAlign="right"></u-input>
+				</u-form-item>
+				<u-form-item label="学生班级" prop="gradeAndClass" borderBottom ref="gradeAndClass" required>
+					<u-input v-model="info.gradeAndClass" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
+						inputAlign="right"></u-input>
+				</u-form-item>
+				<u-form-item label="位置" prop="location" :borderBottom="false" required>
+					<view class="address-row flex">
+						<view class="address-content f-28" v-if="info.location">
+							{{info.location}}
+						</view>
+						<view class="address-content f-28 c-99" v-if="!info.location">
+							请选择地址
+						</view>
+						<view class="location-btn c-main f-24" @click="getLocation()">
+							获取地址
+						</view>
+					</view>
+					<!-- <u-input v-model="info.address" border="none"  placeholderClass="f-28 c-99"
+						inputAlign="right"    disabled  disabledColor="#fff">
+						<template slot="suffix">
+							<button class="location-btn c-main f-24"   @click="getLocation()">获取地址</button>
+						</template>
+					</u-input> -->
+				</u-form-item>
+			</u-form>
+		</view>
+
+		<view class="upload bgc-ff">
+			<view class="f-28 mb-20">照片</view>
+			<!-- <u-textarea v-model="info.remark" placeholder="请输入内容" border="none"
+				placeholderClass="c-99 f-26"></u-textarea> -->
+			<view class="mt-20">
+				<u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage"
+					:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple" :maxCount="uploadConfig.maxCount"
+					:capture="uploadConfig.capture" @afterRead="afterReadImg" @delete="deletePic">
+					<view class="upload-item upload-icon flex_base">
+						<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
+					</view>
+				</u-upload>
+			</view>
+		</view>
+
+
+		<button class="submit-btn" @click="sumitInfo">提交</button>
+		<!-- <button class="list-btn" @click="navigatorPage">我上报的事件</button> -->
+
+	</view>
+</template>
+
+<script>
+	import uploadMixin from "@/mixin/uploadMixin";
+	import {
+		addClockIn
+	} from "@/api/school/school.js";
+	export default {
+		mixins: [uploadMixin],
+		data() {
+			return {
+				info: {
+					realName: "",
+					phone: "",
+					remark: "",
+					type: -1,
+					address: "",
+					lat: "",
+					lng: ""
+				},
+				rules: {
+					'name': {
+						type: 'string',
+						required: true,
+						message: '请输入家长姓名',
+						trigger: ['blur', 'change']
+					},
+					'phone': [{
+							type: 'string',
+							required: true,
+							message: '请输入手机号',
+							trigger: ['blur', 'change']
+						},
+
+						{
+
+							validator: (rule, value, callback) => {
+								return uni.$u.test.mobile(value);
+							},
+							message: '手机号码不正确',
+							trigger: ['change', 'blur']
+
+						}
+
+					],
+					'location': {
+						type: 'string',
+						required: true,
+						message: '请选择地址',
+						trigger: ['blur', 'change']
+					},
+				},
+				desc: "",
+				title: "",
+				curSelectSite: {}
+			}
+		},
+		onLoad(option) {
+			if (option.type) {
+				this.info.type = option.type
+			}
+
+
+		},
+		// onShow() {
+		// 	this.curSelectSite = uni.getStorageSync('siteInfo')
+		// 	this.info.addressCode = this.curSelectSite.houseCode
+		// },
+		methods: {
+
+			getLocation() {
+				uni.chooseLocation({
+					success: (res) => {
+						this.$set(this.info, "location", res.address);
+						// this.$set(this.info, "lat", res.latitude);
+						// this.$set(this.info, "lng", res.longitude)
+					}
+				})
+			},
+
+
+			sumitInfo() {
+
+				this.$refs.form.validate().then(valid => {
+					if (this.form.images.length > 0) {
+						let urls = []
+						this.form.images.forEach(e => {
+							urls.push(e.name)
+						})
+						this.info.images = urls.join(",")
+					}
+					addClockIn(this.info).then(res => {
+						this.$showTips("提交成功", "success")
+						setTimeout(() => {
+							uni.navigateBack()
+						}, 300)
+					})
+				})
+			},
+			navigatorPage() {
+				let url = "/subPackage/bs/views/repairList" + "?title=" + this.title + "&type=" + this.info.type
+				this.$u.func.globalNavigator(url, "navTo")
+			}
+		}
+	}
+</script>
+
+<style lang="less">
+	page {
+		background-color: #F5F5F5;
+	}
+
+	.content {
+		margin: 20rpx 30rpx;
+		padding: 0 30rpx;
+	}
+
+	.site-box {
+		padding: 30rpx;
+		margin: 20rpx 30rpx;
+		border-radius: 4rpx;
+
+		.c-aa {
+			color: #aaa;
+		}
+
+		.address {
+			width: 60%;
+			margin-left: 25rpx;
+		}
+	}
+
+	.upload-item {
+		width: 140rpx;
+		height: 140rpx;
+		border: 1px solid #EEEEEE;
+	}
+
+	.upload {
+		margin: 0 30rpx;
+		padding: 30rpx;
+
+
+	}
+
+	.submit-btn {
+		width: 690rpx;
+		height: 78rpx;
+		line-height: 78rpx;
+		background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%);
+		border-radius: 8rpx 8rpx 8rpx 8rpx;
+		font-size: 32rpx;
+		color: #fff;
+		margin-top: 50rpx;
+	}
+
+	.list-btn {
+		width: 690rpx;
+		height: 78rpx;
+		line-height: 78rpx;
+		background: linear-gradient(163deg, #c7d7dc 0%, #c3cdd8 100%);
+		border-radius: 8rpx 8rpx 8rpx 8rpx;
+		font-size: 32rpx;
+		color: #fff;
+		margin-top: 50rpx;
+	}
+
+	.address-row {
+		flex: 1;
+		justify-content: flex-end;
+		align-items: center;
+	}
+
+	.address-content {
+		width: calc(100% - 116rpx - 20rpx);
+		margin-right: 20rpx;
+		text-align: right;
+	}
+
+	.location-btn {
+		width: 116rpx;
+		height: 46rpx;
+		line-height: 46rpx;
+		border-radius: 4rpx;
+		border: 1px solid currentColor;
+		padding: 0;
+		background-color: #fff;
+		text-align: center;
+	}
+</style>
\ No newline at end of file
diff --git a/subPackage/workbench/views/cscj.vue b/subPackage/workbench/views/cscj.vue
index 54b89de..e65389a 100644
--- a/subPackage/workbench/views/cscj.vue
+++ b/subPackage/workbench/views/cscj.vue
@@ -222,8 +222,6 @@
 
 
 				<view class="item">
-
-
 					<view class="flex j-c-s-b a-i-c">
 						<view class="box-title" style="width:50%;">
 							<box-title title="房东信息"></box-title>
@@ -236,8 +234,6 @@
 							</view>
 						</ocr-navigator>
 					</view>
-
-
 					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
 						label="姓名:" prop="landlordName">
 						<u--input border="none" v-model="form.placeExtEntity.landlordName" placeholder="请输入">
@@ -262,7 +258,57 @@
 					</u-form-item>
 				</view>
 
-
+				<view class="item" v-if="false">
+					<view class="flex j-c-s-b a-i-c">
+						<view class="box-title" style="width:50%;">
+							<box-title title="学校信息"></box-title>
+						</view>
+					</view>
+					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+						label="学生人数:" prop="studentNumber">
+						<u--input border="none" type="number" v-model="form.placeExtEntity.studentNumber"
+							placeholder="请输入">
+						</u--input>
+					</u-form-item>
+					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+						label="教职工人数:" prop="workersNumber">
+						<u--input border="none" type="number" v-model="form.placeExtEntity.workersNumber"
+							placeholder="请输入">
+						</u--input>
+					</u-form-item>
+					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+						label="专职保安:" prop="securityNumoer">
+						<u--input border="none" type="number" v-model="form.placeExtEntity.securityNumoer"
+							placeholder="请输入">
+						</u--input>
+					</u-form-item>
+					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+						label="专职门卫:" prop="gusrdNumber">
+						<u--input border="none" v-model="form.placeExtEntity.gusrdNumber" placeholder="请输入">
+						</u--input>
+					</u-form-item>
+					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+						label="专兼职保卫人员:" prop="temporarySecurityNumber">
+						<u--input border="none" v-model="form.placeExtEntity.temporarySecurityNumber" placeholder="请输入">
+						</u--input>
+					</u-form-item>
+					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+						label="走读/寄宿:" prop="daystudentsNumber">
+						<u--input border="none" v-model="form.placeExtEntity.daystudentsNumber" placeholder="请输入">
+						</u--input>
+					</u-form-item>
+					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+						label="住校生人数:" prop="residentialStudentsNumber">
+						<u--input border="none" v-model="form.placeExtEntity.residentialStudentsNumber"
+							placeholder="请输入">
+						</u--input>
+					</u-form-item>
+					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+						label="宿舍管理人员:" prop="housemasterNumber">
+						<u--input border="none" v-model="form.placeExtEntity.housemasterNumber" placeholder="请输入">
+						</u--input>
+					</u-form-item>
+				</view>
 
 
 				<view class="item pic" v-if="(currentId && form.images.length) || !currentId ">

--
Gitblit v1.9.3