艺易修小程序24.08.21
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

199 lines
4.3 KiB

<!-- 结单 -->
<template>
<view class="finish">
<!-- <navbar title="结单" :leftClick="leftClick"></navbar> -->
<uv-form labelPosition="top" :model="form" :rules="rules" ref="form" labelWidth="140">
<uv-form-item label="处理结果" prop="form.successTitle">
<uv-input @focus="processingPickerOpen" placeholder="请选择处理结果" v-model="form.successTitle"
:fontSize="30"></uv-input>
</uv-form-item>
<uv-form-item label="收费金额" prop="form.successPrice">
<uv-input placeholder="请输入收费金额" type="number" v-model="form.successPrice" :fontSize="30"></uv-input>
</uv-form-item>
<uv-form-item label="处理说明" prop="form.sucessText">
<uv-textarea v-model="form.sucessText" :maxlength="200" :height="120" count
placeholder="请输入处理说明"></uv-textarea>
</uv-form-item>
<uv-form-item label="照片" prop="form.successImage">
<view class="image-list">
<view @click="openImageMenu(index)" v-for="(item,index) in form.successImage" :key="index"
class="image-item">
<image :src="item" mode="widthFix"></image>
</view>
<view v-if="form.successImage.length < maxUpload" @click="uploadImage" class="upload">
<uv-icon name="camera-fill" color="#3c9cff" size="50"></uv-icon>
</view>
</view>
</uv-form-item>
<uv-button type="primary" text="结单" shape="circle" customStyle="margin-top: 10px"
@click="submit"></uv-button>
<!-- 选择完成状态 -->
<uv-picker ref="processing" :columns="processingList" :itemHeight="100" :round="20" keyName="label"
title="选择处理结果" @confirm="floorConfirm"></uv-picker>
<!-- 图片操作菜单 -->
<uv-action-sheet ref="actionSheet" :actions="list" :round="20" cancelText="取消" title="图片操作"
@select="selectImageSheet"> </uv-action-sheet>
</uv-form>
</view>
</template>
<script>
import navbar from '../../components/base/navbar.vue'
export default {
name: 'Finish',
components: {
navbar
},
data() {
return {
form: {
successTitle: '',
successPrice: '',
sucessText: '',
successImage: []
},
rules: {
},
processingList: [
[{
id: 0,
label: '已处理'
},
{
id: 1,
label: '未处理'
}
]
],
maxUpload: 4,
currentIndex: 0,
list: [ //图片操作菜单操作项
{
name: '查看图片',
id: 0
},
{
name: '删除图片',
id: 1
}
],
}
},
onLoad: function(options) {
this.form.id = options.orderId || ''
},
methods: {
//返回
leftClick() {
uni.switchTab({
url: '/pages/repairList/repairList'
})
},
//打开处理结果
processingPickerOpen() {
this.$refs.processing.open();
},
//用户选择了处理结果
floorConfirm(floor) {
this.form.successTitle = floor.value[0].label
},
//上传图片
uploadImage() {
let self = this
this.$Oss.ossUploadImage({
success(res) {
self.form.successImage.push(res)
}
})
},
//打开图片操作菜单
openImageMenu(index) {
this.currentIndex = index
this.$refs.actionSheet.open();
},
//用户选择了图片操作选项
selectImageSheet(imageSheet) {
let {
id
} = imageSheet
if (id) {
this.deleteImageAsList()
} else {
this.viewImageAsList()
}
},
//查看图片
viewImageAsList() {
this.$utils.previewImage({
current: this.currentIndex,
urls: this.form.images
})
},
//删除图片
deleteImageAsList() {
this.form.images = this.form.images.filter((_, index) => {
return index != this.currentIndex
})
},
//结单
submit() {
this.form.successImage = this.form.successImage.join(',')
this.$api('editSchoolOrderSuccess', this.form, res => {
if (res.code == 200) {
console.log(res);
}
})
}
}
}
</script>
<style>
.finish {
width: 96%;
margin: 0rpx auto;
}
.image-list {
width: 100%;
display: flex;
flex-wrap: wrap;
padding-top: 20rpx;
}
.image-item,
.upload {
display: flex;
align-items: center;
justify-content: center;
width: 24%;
height: 174rpx;
background: #f8f8f8;
margin-left: 1%;
border-radius: 15rpx;
overflow: hidden;
margin-bottom: 20rpx;
;
}
.image-item image {
width: 100%;
}
</style>