|
|
@ -70,6 +70,13 @@ |
|
|
|
<view class="input-tip">请输入数字,支持小数点后两位</view> |
|
|
|
</uv-form-item> |
|
|
|
|
|
|
|
<!-- 8. 地块图片 --> |
|
|
|
<uv-form-item label="地块图片" labelWidth="250" prop="images" labelPosition="top" required> |
|
|
|
<view class="upload-tip">请上传地块现状照片,展示地块实际情况</view> |
|
|
|
<uv-upload customStyle="margin-top:20rpx;" :fileList="form.images" @afterRead="afterImageRead" @delete="deleteImagePic" name="1" |
|
|
|
multiple :maxCount="10"></uv-upload> |
|
|
|
</uv-form-item> |
|
|
|
|
|
|
|
<!-- 分类标识 --> |
|
|
|
<uv-form-item label="分类标识" prop="classId" @click="handleClass()"> |
|
|
|
<uv-input v-model="form.className" @click="handleClass()" disabled disabledColor="#ffffff" placeholder="选择分类标识" border="none"> |
|
|
@ -125,6 +132,7 @@ |
|
|
|
landArea: '', // 土地面积 |
|
|
|
videos: [], // 地块视频 |
|
|
|
price: '', // 价格 |
|
|
|
images: [], // 地块图片 |
|
|
|
description: '', // 地块介绍 |
|
|
|
longitude: '', // 经度 |
|
|
|
latitude: '', // 纬度 |
|
|
@ -155,6 +163,20 @@ |
|
|
|
{ required: true, message: '请输入价格', trigger: ['blur', 'change'] }, |
|
|
|
{ pattern: /^\d+(\.\d{1,2})?$/, message: '请输入正确的价格格式', trigger: ['blur', 'change'] } |
|
|
|
], |
|
|
|
images: [ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: '请上传地块图片', |
|
|
|
trigger: ['blur', 'change'], |
|
|
|
validator: (rule, value, callback) => { |
|
|
|
if (!value || value.length === 0) { |
|
|
|
callback(new Error('请上传地块图片')); |
|
|
|
} else { |
|
|
|
callback(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
], |
|
|
|
classId: [ |
|
|
|
{ required: true, message: '请选择分类标识', trigger: ['blur', 'change'] } |
|
|
|
] |
|
|
@ -290,16 +312,16 @@ |
|
|
|
for (let file of e.file) { |
|
|
|
try { |
|
|
|
// 创建视频元素来获取视频时长 |
|
|
|
const duration = await this.getVideoDuration(file.url) |
|
|
|
// const duration = await this.getVideoDuration(file.url) |
|
|
|
|
|
|
|
// 检查视频时长是否超过60秒 |
|
|
|
if (duration > 60) { |
|
|
|
uni.showToast({ |
|
|
|
title: '视频时长不能超过1分钟', |
|
|
|
icon: 'none' |
|
|
|
}) |
|
|
|
continue // 跳过这个视频 |
|
|
|
} |
|
|
|
// if (duration > 60) { |
|
|
|
// uni.showToast({ |
|
|
|
// title: '视频时长不能超过1分钟', |
|
|
|
// icon: 'none' |
|
|
|
// }) |
|
|
|
// continue // 跳过这个视频 |
|
|
|
// } |
|
|
|
|
|
|
|
// 上传视频 |
|
|
|
self.$Oss.ossUpload(file.url).then(url => { |
|
|
@ -359,6 +381,30 @@ |
|
|
|
this.debounceSaveFormData() |
|
|
|
}, |
|
|
|
|
|
|
|
// 地块图片上传 |
|
|
|
async afterImageRead(e) { |
|
|
|
let self = this |
|
|
|
e.file.forEach(file => { |
|
|
|
self.$Oss.ossUpload(file.url).then(url => { |
|
|
|
self.form.images.push({ |
|
|
|
url |
|
|
|
}) |
|
|
|
// 上传完成后保存表单数据 |
|
|
|
self.debounceSaveFormData() |
|
|
|
// 触发表单验证更新 |
|
|
|
self.$refs.form.validateField('images') |
|
|
|
}) |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
deleteImagePic(event) { |
|
|
|
this.form.images.splice(event.index, 1) |
|
|
|
// 删除后保存表单数据 |
|
|
|
this.debounceSaveFormData() |
|
|
|
// 触发表单验证更新 |
|
|
|
this.$refs.form.validateField('images') |
|
|
|
}, |
|
|
|
|
|
|
|
// 提交表单 |
|
|
|
submit() { |
|
|
|
this.$refs.form.validate().then(res => { |
|
|
@ -379,6 +425,14 @@ |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
if (this.form.images.length === 0) { |
|
|
|
uni.showToast({ |
|
|
|
title: '请上传地块图片', |
|
|
|
icon: 'none' |
|
|
|
}); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// 构建与index.vue兼容的提交参数 |
|
|
|
const params = { |
|
|
|
userId: uni.getStorageSync('userInfo')?.id || "", |
|
|
@ -422,7 +476,7 @@ |
|
|
|
timeGo: "", // 年限 - 经营性用地无此字段 |
|
|
|
title: `${this.form.type === 'rent' ? '出租' : '出让'}-经营性建设用地-${this.form.address.split('市')[1] || this.form.address}`, // 标题 - 自动生成 |
|
|
|
unit: this.form.type === 'rent' ? '元/亩/年' : '万元/亩', // 单位 |
|
|
|
image: "", // 图片 - 经营性用地无房屋照片 |
|
|
|
image: this.form.images.map(item => item.url).join(','), // 地块图片 |
|
|
|
iconImage: "", // 左上角图标 |
|
|
|
homeImage: this.form.propertyImages.map(item => item.url).join(','), // 产权证照片 |
|
|
|
homeMp4: this.form.videos.map(item => item.url).join(','), // 视频 |
|
|
|