From 52d463e03c1f074099ed8e8a6b7c3ddde52d2708 Mon Sep 17 00:00:00 2001 From: quanyawei <401863037@qq.com> Date: Fri, 27 Oct 2023 14:50:28 +0800 Subject: [PATCH] fix:小程序初版 --- pages/actionChange/newPage/index.vue | 597 +++++++++++++++++++++++++++-------------------------------- 1 files changed, 273 insertions(+), 324 deletions(-) diff --git a/pages/actionChange/newPage/index.vue b/pages/actionChange/newPage/index.vue index e33c5bf..e84ee88 100644 --- a/pages/actionChange/newPage/index.vue +++ b/pages/actionChange/newPage/index.vue @@ -1,173 +1,61 @@ <template> <view class="mianContent"> <p class="title">������������</p> - <u-form - ref="uForm" - label-width="65" - :model="form" - :rules="rules" - > - <u-form-item - border-bottom - label="������������:" - prop="unitId" - required - @click=" + <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--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=" + <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-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 - @click=" + <u-form-item border="none" border-bottom label="������������:" prop="changeType" required @click=" showCheckBox = true; hideKeyboard('changeEnum', 'changeType'); - " - > - <u-input - v-model="form.changeType" - border="none" - disabled - disabled-color="#ffffff" - placeholder="���������" - type="select" - /> + "> + <u-input v-model="form.changeType" 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="������������:" - placeholder="���������" - required - > + <u-form-item border-bottom label="������������:" placeholder="���������" required> <u-input v-model="form.changeDay" border="none" type="number" /> </u-form-item> - <u-form-item - border-bottom - label="������������:" - prop="escalationUnitId" - required - @click=" + <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-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 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-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" - :custom-style="{marginRight: '8px'}" - :label="item.name" - :name="item.value" - /> + <u-radio :key="index" v-for="(item, index) in Dic.investigationEnum" + :custom-style="{marginRight: '8px'}" :label="item.name" :name="item.value" /> </u-radio-group> </u-form-item> - <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" - /> - </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="problemDescribe" - required - > + <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="������������:"> @@ -176,185 +64,230 @@ </view> </u-form-item> </u-form> - <u-action-sheet - v-if="actionOptionList.length > 0" - :actions="actionOptionList" - :show="showCheckBox" - title="���������" - @close="showCheckBox = false" - @select="selectBack" - /> + <u-picker :show="showCheckBox" keyName="label" :columns="actionOptionList" @cancel="showCheckBox = false" + @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"> - <u-button shape="square" @click="close">������</u-button> - <u-button shape="square" type="primary" @click="submit">������</u-button> + <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, - showeEscalationTime: false, - actionOptionList: [], - rules: { - 'unitId': { - required: true, - message: '���������', - trigger: ['blur', 'change'] - }, - 'polluteType': { - required: true, - message: '���������', - trigger: ['blur', 'change'] - }, - 'changeType': { - 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: this.$storage.getJson('dict'), - changeEnum: [], - timeFormet: Number(new Date()), - form: { - unitId: '', - polluteType: '', - changeType: '', - changeDay: '', - escalationName: '', - escalationUnitId: '', - escalationTime: '', - problemDescribe: '', - pollutePosition: '', - }, - sumbitForm: { - unitId: '', - polluteType: '', - changeType: '', - changeDay: '', - escalationName: '', - escalationUnitId: '', - escalationTime: '', - problemDescribe: '', - pollutePosition: '', - }, - unitList: [], - polluteList: [], - fileBaseList: [], - } - }, - onReady() { - //onReady ���uni-app��������������������������� - this.$refs.uForm.setRules(this.rules) - }, - onShow(){ - uni.hideTabBar() - }, - created() { - this.changeEnum = this.Dic.changeEnum - this.getUnitList() - this.getContaminateList() - }, - methods: { - handleFile(data){ - this.fileBaseList=data + import fileUpload from '../components/fileUpload.vue' + export default { + components: { + fileUpload }, - close(){ - uni.reLaunch({ - url: '/pages/actionChange/agencyPage/index', + 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'] + }, + 'changeType': { + 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: '', + }, + sumbitForm: { + unitId: '', + polluteType: '', + changeType: '', + changeDay: '', + escalationName: '', + escalationUnitId: '', + escalationTime: '', + problemDescribe: '', + pollutePosition: '', + }, + unitList: [], + polluteList: [], + fileBaseList: [], + } + }, + 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 }, - hideKeyboard(data, key) { - this.actionOptionList = [] - let list = this[data] - - this.currentKey = key - list.forEach((item)=> { - item.name = item.dataValue || item.name || item.unitName - item.value = item.dataKey || item.value|| item.unitId - }) - - this.actionOptionList = list - }, - selectBack(e) { - this.form[this.currentKey] = e.name - this.sumbitForm[this.currentKey] = e.value - - }, - checkTime(e) { - this.showeEscalationTime = false - let data = this.$utils.dateFormatter(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.fileBaseList=this.fileBaseList - this.sumbitForm.state='10' - console.log('this.sumbitForm', this.sumbitForm) - this.$http.httpPost('/allocation/insert', {...this.sumbitForm}).then((res)=> { - uni.$u.toast('������������') - this.close() + methods: { + handleFile(data) { + this.fileBaseList = data + }, + close() { + uni.$emit('currIndex', { + data: { + index: '0', + showTabBar: true + } }) - }).catch(errors=> { - uni.$u.toast('������������') - }) + 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 + 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.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].name + 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.name || '' + this.sumbitForm.escalationName = userInfor.name || '' + 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.setDefaultValue() + }) + }, + getContaminateList() { + this.$http.httpGet('/allocation/contaminate').then(res => { + this.polluteList = res.data + }) + }, }, - // ������������������list - getUnitList() { - this.$http.httpGet('/allocation/unit').then((res)=> { - this.unitList = res.data - }) - }, - getContaminateList() { - this.$http.httpGet('/allocation/contaminate').then((res)=> { - this.polluteList = res.data - }) - }, - }, -} + } </script> - <style scoped lang="scss"> uni-page-body { padding-top: 10px; @@ -363,6 +296,8 @@ .mianContent { margin: 19.23rpx; border-radius: 5px; + padding-bottom: 38.46rpx; + .title { padding: 9.62rpx; font-size: 16px; @@ -375,24 +310,38 @@ padding-left: 10px; } - /deep/.u-form-item__body { - padding: 5px 0px !important; - font-size: 13px!important; - } - /deep/.u-form-item__body__left__content__label,/deep/.u-input__content__field-wrapper__field,/deep/.u-radio__text{ - font-size: 13px!important; - } + // /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-bottom: 20px; - .u-button { - width: 288.46rpx; + padding: 0 20px; + justify-content: center; + + .but { + width: 50%; + } + + .butRight { + padding-right: 20px; + } + + .butleft { + padding-left: 20px; } } - .fileBox{ + + .fileBox { display: -webkit-box; display: -webkit-flex; display: flex; -- Gitblit v1.8.0