From 5b426c8bb73408fc358155882cbaebfeb803d6fa Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Fri, 19 Apr 2024 17:44:21 +0800
Subject: [PATCH] 更新

---
 subPackage/school/trouble.vue |  265 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 264 insertions(+), 1 deletions(-)

diff --git a/subPackage/school/trouble.vue b/subPackage/school/trouble.vue
index 02409e3..565c6fd 100644
--- a/subPackage/school/trouble.vue
+++ b/subPackage/school/trouble.vue
@@ -1,8 +1,271 @@
 <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="类型:" labelWidth="100" prop="type" :required="isRequired">
+					<u-radio-group v-model="info.type">
+						<u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList" :key="index"
+							:label="item.name" :name="item.id">
+						</u-radio>
+					</u-radio-group>
+
+				</u-form-item>
+
+				<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-item label="描述" prop="describe" borderBottom ref="describe" required>
+					<u-textarea v-model="info.describe" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
+						inputAlign="right"></u-textarea>
+				</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: {
+					name: "",
+					phone: "",
+					location: "",
+					gradeAndClass: ""
+				},
+				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: {},
+				statusList: [{
+						name: "隐患",
+						id: 1
+					},
+					{
+						name: "矛盾",
+						id: 2
+					}
+				],
+			}
+		},
+		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>
+<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

--
Gitblit v1.9.3