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