From 53ae51f7111fe62f0011d304268cbfe1261b36f1 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Wed, 15 Nov 2023 08:37:30 +0800
Subject: [PATCH] fix:立行立改添加修改责任单位

---
 pages/actionChange/newPage/index.vue |  395 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 395 insertions(+), 0 deletions(-)

diff --git a/pages/actionChange/newPage/index.vue b/pages/actionChange/newPage/index.vue
new file mode 100644
index 0000000..5198746
--- /dev/null
+++ b/pages/actionChange/newPage/index.vue
@@ -0,0 +1,395 @@
+<template>
+	<view class="mianContent">
+		<p class="title">������������</p>
+		<u-form ref="uForm" label-width="80" :model="form" :rules="rules" :labelStyle="labelStyle">
+			<u-form-item border-bottom label="������������:" prop="escalationTime" required @click="showeEscalationTime = true">
+				<u-input v-model="form.escalationTime" border="none" disabled disabled-color="#ffffff" placeholder="���������"
+					type="select" />
+				<u-icon slot="right" name="arrow-right" />
+				<u-datetime-picker ref="datetimePicker" v-model="timeFormet" mode="date" :show="showeEscalationTime"
+					@confirm="checkTime" @cancel='showeEscalationTime=false' />
+			</u-form-item>
+			<u-form-item border-bottom label="������������:" prop="pollutePosition" required>
+				<u-input v-model="form.pollutePosition" border="none" placeholder="���������" type="text" />
+			</u-form-item>
+			<u-form-item border-bottom label="������������:" prop="unitId" required @click="
+					showCheckBox = true;
+					hideKeyboard('unitList', 'unitId');
+				">
+				<u--input v-model="form.unitId" border="none" disabled disabled-color="#ffffff" placeholder="���������" />
+				<u-icon slot="right" name="arrow-right" />
+			</u-form-item>
+			<u-form-item border-bottom label="������������:" prop="polluteType" required @click="
+					showCheckBox = true;
+					hideKeyboard('polluteList', 'polluteType');
+				">
+				<u-input v-model="form.polluteType" border="none" disabled disabled-color="#ffffff" placeholder="���������"
+					type="select" />
+				<u-icon slot="right" name="arrow-right" />
+			</u-form-item>
+			<u-form-item border="none" border-bottom label="������������:" prop="changeType" required>
+				<u-radio-group v-model="form.changeType" style="font-size: 13px;">
+					<u-radio :key="index" v-for="(item, index) in changeEnum" :customStyle="{marginRight: '16px'}"
+						:label="item.name" :name="item.value" />
+				</u-radio-group>
+			</u-form-item>
+			<u-form-item border-bottom label="������������:" placeholder="���������" required :disabled='Number(form.changeType)===1'>
+				<u-input v-model="form.changeDay" border="none" type="number" :disabled='Number(form.changeType)===1' />
+			</u-form-item>
+			<u-form-item border-bottom label="������������:" prop="escalationUnitId" required @click="
+					showCheckBox = true;
+					hideKeyboard('unitList', 'escalationUnitId');
+				">
+				<u-input v-model="form.escalationUnitId" border="none" disabled disabled-color="#ffffff"
+					placeholder="���������" type="select" />
+				<u-icon slot="right" name="arrow-right" />
+			</u-form-item>
+			<u-form-item border-bottom label="���������:" prop="escalationName" required>
+				<u-input v-model="form.escalationName" border="none" placeholder="���������" type="text" />
+			</u-form-item>
+			<u-form-item border-bottom label="������������:" prop="investigationType" required>
+				<u-radio-group v-model="form.investigationType" style="font-size: 13px;">
+					<u-radio :key="index" v-for="(item, index) in Dic.investigationEnum"
+						:customStyle="{marginRight: '16px'}" :label="item.name" :name="item.value" />
+				</u-radio-group>
+			</u-form-item>
+			<u-form-item border-bottom label="������������:" prop="keyPoint">
+				<u-checkbox-group v-model="form.keyPoint" placement='column' style="font-size: 13px;"
+					@change='changeKeyPoint'>
+					<u-checkbox :key="index" v-for="(item, index) in emphasisEnumlist"
+						:customStyle="{marginTop: '10px'}" shape="circle" :label="item.name" :name="item.value"
+						:disabled="item.disabled"></u-checkbox>
+				</u-checkbox-group>
+			</u-form-item>
+			<u-form-item border-bottom label="������������:" prop="problemDescribe" required>
+				<u--textarea v-model="form.problemDescribe" border="none" placeholder="���������������" />
+			</u-form-item>
+			<u-form-item border-bottom label="������������:">
+				<view class="fileBox">
+					<fileUpload :sys-code="sysCode" @handleFile="handleFile" />
+				</view>
+			</u-form-item>
+		</u-form>
+		<u-picker :show="showCheckBox" keyName="label" :columns="actionOptionList" @cancel="showCheckBox = false"
+			:default-selector="[0]" :immediateChange='true' @confirm="selectBack"></u-picker>
+		<!-- 	<u-action-sheet v-if="actionOptionList.length > 0" :actions="actionOptionList" :show="showCheckBox" title="���������"
+			@close="showCheckBox = false" @select="selectBack" /> -->
+		<view class="bunts">
+			<view class="but butRight">
+				<u-button shape="square" @click="close">������</u-button>
+			</view>
+			<view class="but butleft">
+				<u-button shape="square" type="primary" @click="submit">������</u-button>
+			</view>
+		</view>
+	</view>
+</template>
+<script>
+	import fileUpload from '../components/fileUpload.vue'
+	export default {
+		components: {
+			fileUpload
+		},
+		data() {
+			return {
+				sysCode: '1010201', //
+				showCheckBox: false,
+				labelStyle: {
+					fontSize: '30.77rpx'
+				},
+				showeEscalationTime: false,
+				actionOptionList: [],
+				rules: {
+					'unitId': {
+						required: true,
+						message: '���������',
+						trigger: ['blur', 'change']
+					},
+					'polluteType': {
+						required: true,
+						message: '���������',
+						trigger: ['blur', 'change']
+					},
+					'changeDay': {
+						required: true,
+						message: '���������',
+						trigger: ['blur', 'change']
+					},
+					'escalationName': {
+						required: true,
+						message: '���������',
+						trigger: ['blur']
+					},
+					'escalationUnitId': {
+						required: true,
+						message: '���������',
+						trigger: ['blur', 'change']
+					},
+					'escalationTime': {
+						required: true,
+						message: '���������',
+						trigger: ['blur']
+					},
+					'problemDescribe': {
+						required: true,
+						message: '���������',
+						trigger: ['blur']
+					},
+					'pollutePosition': {
+						required: true,
+						message: '���������',
+						trigger: ['blur']
+					},
+				},
+				currentKey: '',
+				Dic: [],
+				changeEnum: [],
+				timeFormet: Number(new Date()),
+				form: {
+					unitId: '',
+					polluteType: '',
+					changeType: '',
+					changeDay: '',
+					escalationName: '',
+					escalationUnitId: '',
+					escalationTime: '',
+					problemDescribe: '',
+					pollutePosition: '',
+					keyPoint: []
+				},
+				sumbitForm: {
+					unitId: '',
+					polluteType: '',
+					changeType: '',
+					changeDay: '',
+					escalationName: '',
+					escalationUnitId: '',
+					escalationTime: '',
+					problemDescribe: '',
+					pollutePosition: '',
+					keyPoint: null
+				},
+				unitList: [],
+				polluteList: [],
+				fileBaseList: [],
+				emphasisEnumlist: []
+			}
+		},
+		onReady() {
+			//onReady ���uni-app���������������������������
+			this.$refs.uForm.setRules(this.rules)
+		},
+		onShow() {
+			uni.hideTabBar()
+		},
+		created() {
+			this.getUnitList()
+			this.getContaminateList()
+		},
+		onBackPress(e) {
+			uni.navigateBack({
+				delta: 1, //������������������������������������������2
+			})
+			return false
+		},
+		methods: {
+			changeKeyPoint(name) {
+				if (name.length > 0) {
+					this.sumbitForm.keyPoint = name[0]
+					this.emphasisEnumlist.forEach(item => {
+						if (item.value === name[0]) {
+							item.disabled = false
+						} else {
+							item.disabled = true
+						}
+					})
+				} else {
+					this.emphasisEnumlist.forEach(item => {
+						item.disabled = false
+					})
+				}
+				console.log(this.emphasisEnumlist)
+			},
+			handleFile(data) {
+				console.log('datadata', data)
+				this.fileBaseList = data
+			},
+			close() {
+				uni.$emit('currIndex', {
+					data: {
+						index: '0',
+						showTabBar: true
+					}
+				})
+				uni.navigateBack({
+					delta: 1, //������������������������������������������2
+				})
+			},
+			hideKeyboard(data, key) {
+				this.actionOptionList = []
+				let list = this[data]
+				this.currentKey = key
+				list.forEach(item => {
+					item.label = item.dataValue || item.name || item.unitName
+					item.id = item.dataKey || item.value || item.unitId
+				})
+				console.log('list', list)
+				this.$set(this.actionOptionList, 0, list)
+			},
+			selectBack(e) {
+				console.log(e)
+				this.form[this.currentKey] = e.value[0].label
+				this.sumbitForm[this.currentKey] = e.value[0].id
+				console.log('this.form.changeType', this.currentKey)
+				if (Number(this.sumbitForm.changeType) !== 1) {
+					this.sumbitForm.changeDay = '0'
+					this.form.changeDay = '0'
+				} else {
+					this.sumbitForm.changeDay = ''
+					this.form.changeDay = ''
+				}
+				this.showCheckBox = false
+			},
+			checkTime(e) {
+				this.showeEscalationTime = false
+				let data = this.$utils.dateFormatter(e.value)
+				console.log('e.value', e.value)
+				this.form.escalationTime = data
+				this.sumbitForm.escalationTime = data
+			},
+			submit() {
+				this.$refs.uForm.validate().then(res => {
+					this.sumbitForm.problemDescribe = this.form.problemDescribe
+					this.sumbitForm.pollutePosition = this.form.pollutePosition
+					this.sumbitForm.changeDay = this.form.changeDay
+					this.sumbitForm.escalationName = this.form.escalationName
+					this.sumbitForm.investigationType = this.form.investigationType
+					this.sumbitForm.fileBaseList = this.fileBaseList
+					this.sumbitForm.changeType = this.form.changeType
+					this.sumbitForm.state = '20'
+					console.log('this.sumbitForm', this.sumbitForm)
+					this.$http.httpPost('/allocation/insert', {
+						...this.sumbitForm
+					}).then(res => {
+						uni.$u.toast('������������')
+						this.close()
+					})
+				}).catch(errors => {
+					uni.$u.toast('������������')
+				})
+			},
+			setDefaultValue() {
+				let time = new Date().getTime()
+				let data = this.$utils.dateFormatter(time)
+				this.form.escalationTime = data
+				this.sumbitForm.escalationTime = data
+				if (this.changeEnum.length > 0) {
+					this.form.changeType = this.changeEnum[0].value
+					this.sumbitForm.changeType = this.changeEnum[0].value
+				}
+				let userInfor = JSON.parse(uni.getStorageSync('userInfor') || '{}')
+				if (userInfor.unitId && this.unitList.length > 0) {
+					let data = this.unitList && this.unitList.find(a => Number(a.unitId) === Number(userInfor.unitId))
+						.unitName
+					this.form.unitId = data
+					this.sumbitForm.unitId = userInfor.unitId
+					this.form.escalationUnitId = data
+					this.sumbitForm.escalationUnitId = userInfor.unitId
+				}
+				this.form.escalationName = userInfor.userName || ''
+				this.sumbitForm.escalationName = userInfor.userName || ''
+				this.form.investigationType = 1
+				this.sumbitForm.investigationType = 1
+				console.log('this.sumbitForm', this.sumbitForm)
+			},
+			// ������������������list
+			getUnitList() {
+				this.$http.httpGet('/allocation/unit').then(res => {
+					this.unitList = res.data
+					this.Dic = JSON.parse(uni.getStorageSync('dict') || '[]')
+					this.changeEnum = this.Dic.changeEnum
+					this.changeEnum = this.Dic.changeEnum
+					this.emphasisEnumlist = this.Dic.emphasisEnum.map(item => {
+						item.disabled = false
+						return item
+					})
+					this.setDefaultValue()
+				})
+			},
+			getContaminateList() {
+				this.$http.httpGet('/allocation/contaminate').then(res => {
+					this.polluteList = res.data
+				})
+			},
+		},
+	}
+</script>
+<style scoped lang="scss">
+	uni-page-body {
+		padding-top: 10px;
+	}
+
+	.mianContent {
+		margin: 19.23rpx;
+		border-radius: 5px;
+		padding-bottom: 38.46rpx;
+
+		.title {
+			padding: 9.62rpx;
+			font-size: 16px;
+			font-weight: 700;
+			color: #101010;
+			border-bottom: 1px solid #bbb;
+		}
+
+		/deep/.u-form-item {
+			padding-left: 10px;
+		}
+
+		// /deep/.u-form-item__body {
+		// 	padding: 8px 0px !important;
+		// 	font-size: 15px !important;
+		// }
+		// /deep/.u-form-item__body__left__content__label,
+		// /deep/.u-input__content__field-wrapper__field,
+		// /deep/.u-radio__text {
+		// 	font-size: 15px !important;
+		// }
+	}
+
+	.bunts {
+		display: flex;
+		margin-top: 20px;
+		margin-bottom: 96.15rpx;
+		padding: 0 20px;
+		justify-content: center;
+
+		.but {
+			width: 50%;
+		}
+
+		.butRight {
+			padding-right: 20px;
+		}
+
+		.butleft {
+			padding-left: 20px;
+		}
+	}
+
+	.fileBox {
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		position: relative;
+		width: 100%;
+		height: 100%;
+		-webkit-box-orient: vertical;
+		-webkit-box-direction: normal;
+		-webkit-flex-direction: column;
+		flex-direction: column;
+		-webkit-box-pack: center;
+		-webkit-justify-content: center;
+		justify-content: center;
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.8.0