<template> <view class="wrap"> <view class="form"> <u--form :model="form" ref="uForm" labelWidth="80"> <!-- 企业名称 --> <u-form-item label="企业名称" prop="name" borderBottom> <u-input v-model="form.name" border="none" placeholder="请输入" /> </u-form-item> <!-- 企业类型 --> <u-form-item label="企业类型" prop="type" borderBottom @tap="showType = true;"> <u--input v-model="form.type" placeholder="请选择" border="none"></u--input> <u-icon slot="right" name="arrow-right"></u-icon> </u-form-item> <!-- 企业地址 --> <u-form-item label="企业地址" prop="addr" borderBottom> <u-input v-model="form.addr" border="none" placeholder="请输入" /> </u-form-item> <!-- 企业简介 --> <u-form-item label="企业简介" prop="info" borderBottom> <u--textarea v-model="form.info" placeholder="请输入" border="none" count="true"></u--textarea> </u-form-item> <!-- 企业照片 --> <u-form-item label="企业照片" borderBottom> <u-upload :fileList="form.photo" @afterRead="addPhoto" @delete="delPhoto" multiple :maxCount="6"></u-upload> </u-form-item> <!-- 环保负责人 --> <u-form-item label="环保负责人" prop="manager" borderBottom> <u-input v-model="form.manager" border="none" placeholder="请输入" /> </u-form-item> <!-- 联系方式 --> <u-form-item label="联系方式" prop="phone" borderBottom> <u-input v-model="form.phone" border="none" placeholder="请输入" /> </u-form-item> <!-- 成立时间 --> <u-form-item label="成立时间" prop="regtime" borderBottom @tap="showRegtime = true"> <u-datetime-picker :show="showRegtime" v-model="defTime" mode="date" @confirm="regtime" @cancel="showRegtime = false"></u-datetime-picker> <u-input :value="form.regtime" border="none" placeholder="请输入" /> <u-icon slot="right" name="arrow-right"></u-icon> </u-form-item> <u-form-item label="zzlx" prop="hblicense" borderBottom labelPosition="top"> <u-input v-model="form.hblicense" border="none" placeholder="请输入" /> </u-form-item> <u-form-item label="bh" prop="pwlicense" borderBottom labelPosition="top"> <u-input v-model="form.pwlicense" border="none" placeholder="请输入" /> </u-form-item> <u-form-item label="bh" prop="pwlicense" borderBottom labelPosition="top"> <u-input v-model="form.pwlicense" border="none" placeholder="请输入" /> </u-form-item> </u--form> <!-- <view v-if='isEdit'> <view class="" v-for="zz in zzlist" :key="zz.uid" @tap="edit(zz)"> <view class=""> <label for="">zzlx</label><text>{{zz.zzlx}}</text> </view> </view> </view> --> <!-- <u--form :model="zzform" v-else> <u-form-item label="zzlx" prop="hblicense" borderBottom labelPosition="top"> <u-input v-model="form.hblicense" border="none" placeholder="请输入" /> </u-form-item> <u-form-item label="bh" prop="pwlicense" borderBottom labelPosition="top"> <u-input v-model="form.pwlicense" border="none" placeholder="请输入" /> </u-form-item> <u-form-item label="sj" prop="pwlicense" borderBottom labelPosition="top"> <u-input v-model="form.pwlicense" border="none" placeholder="请输入" /> </u-form-item> <u-form-item> <button @tap='savazz'>save</button> </u-form-item> </u--form> --> <u-action-sheet :show="showType" :actions="types" title="请选择企业类型" @close="showType = false" @select="typeSelect"> </u-action-sheet> </view> <u-button @tap="submit">提交</u-button> </view> </template> <script> export default { data() { return { form: { name: '', // 企业名称 type: '', // 企业类型 info: '', // 企业地址 addr: '', // 企业简介 photo: [], // 企业照片 manager: '', // 环保负责人 phone: '', // 联系方式 regtime: '', // 成立时间 hblicense: '', // 环保许可证 pwlicense: '', // 排污许可证 }, defTime: Number(new Date()), // 初始化日期 showType: false, showRegtime: false, types: [{ name: '小型', }, { name: '中型', }, { name: '大型', }, ], rules: { name: { required: true, message: '请输入企业名称', trigger: ['blur'] }, type: { type: 'string', required: true, message: '请选择企业类型', trigger: ['blur'] }, info: { type: 'string', min: 3, required: true, message: '不低于3个字', trigger: ['change'] }, addr: { required: true, message: '请输入企业地址', trigger: ['blur'] }, manager: { required: true, message: '请输入环保负责人', trigger: ['blur'] }, phone: { required: true, message: '请输入联系方式', trigger: ['blur'] }, }, zzform: {}, zzList: [], isEdit: false } }, methods: { // 提交数据 submit() { this.$refs.uForm.validate().then(res => { uni.$u.toast('校验通过') // 提交时上传照片 this.uploadPhoto(this.form.photo) }).catch(errors => { uni.$u.toast('校验失败') }) }, // 企业成立时间 regtime(e) { this.form.regtime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd'); this.showRegtime = false }, // 选择企业类型 typeSelect(e) { this.form.type = e.name this.$refs.uForm.validateField('type') }, // 新增图片 addPhoto(e) { this.form.photo = e.file.map(item => { return { url: item.url } }); }, // 删除图片 delPhoto(e) { this.form.photo.splice(e.index, 1); }, // 提交时上传图片 async uploadPhoto(photo) { // 遍历图片数组并上传每张图片 for (let i = 0; i < photo.length; i++) { try { // 获取每张图片的 URL const url = photo[i].url; const res = await uni.$u.http.upload('http://192.168.2.101:8080/api/common_file/upload', { filePath: url, name: 'file', }); console.log(`照片 ${i + 1} 上传结果`, res); } catch (err) { console.log(`上传照片 ${i + 1} 失败`, err); } } }, savazz() { const data = this.zzform data.uid = '' this.zzList.push(data) } }, onReady() { //如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。 this.$refs.uForm.setRules(this.rules) }, } </script> <style lang="scss"> .wrap { background-color: #F9F9F9; min-height: 100vh; .form { padding: 48rpx; .u-textarea { background-color: inherit; padding: 0; } } } </style>