|
|
- <template>
- <view class="page">
- <navbar title="发布" leftClick @leftClick="$utils.navigateBack" />
-
- <view class="form">
-
- <view class="form-sheet-cell">
- <view class="label">
- 师傅头像
- </view>
- <view class="images box">
- <uv-upload
- :fileList="imageTitle"
- :maxCount="1"
- multiple
- width="150rpx"
- height="150rpx"
- name="imageTitle"
- @delete="deleteImage"
- @afterRead="afterRead"
- :previewFullImage="true"></uv-upload>
- </view>
- </view>
-
- <view class="form-sheet-cell">
- <view class="label">
- 师傅名称
- </view>
- <input placeholder="请输入师傅名称" v-model="form.title" />
- </view>
-
- <view class="form-sheet-cell">
- <view class="label">
- 起点
- </view>
- <input placeholder="请输入起点" v-model="form.startAddress" />
- </view>
-
- <view class="form-sheet-cell">
- <view class="label">
- 终点
- </view>
- <input placeholder="请输入终点" v-model="form.endAddress" />
- </view>
-
- <view class="form-sheet-cell"
- @click="$refs.datetimePicker.open()">
- <view class="label">
- 出发时间
- </view>
- <input placeholder="请选择出发时间"
- disabled
- v-model="form.startTime" />
- </view>
-
- <view class="form-sheet-cell">
- <view class="label">
- 车辆座位
- </view>
- <!-- <input placeholder="请输入车辆座位" v-model="form.num" /> -->
- <uv-number-box v-model="form.num"></uv-number-box>
- </view>
-
-
-
- <view class="form-sheet-cell">
- <view class="label">
- 师傅电话
- </view>
- <input placeholder="请输入师傅电话" v-model="form.phone" />
- </view>
-
-
- <!-- <view class="form-sheet-cell">
- <view class="label">
- 网约证书
- </view>
- <view class="images box">
- <uv-upload
- :fileList="titleDetails"
- :maxCount="1"
- multiple
- width="150rpx"
- height="150rpx"
- name="titleDetails"
- @delete="deleteImage"
- @afterRead="afterRead"
- :previewFullImage="true"></uv-upload>
- </view>
- </view> -->
-
- <view class="form-sheet-cell">
- <view class="label">
- 车型
- </view>
- <input placeholder="请输入车型" v-model="form.catType" />
- </view>
-
- <view class="form-sheet-cell">
- <view class="label">
- 车牌号
- </view>
- <input placeholder="请输入车牌号" v-model="form.catNo" />
- </view>
-
- <view class="form-sheet-cell">
- <view class="label">
- 车辆照片与网约证书
- </view>
- <view class="images box">
- <uv-upload
- :fileList="catImage"
- :maxCount="2"
- multiple
- width="150rpx"
- height="150rpx"
- name="catImage"
- @delete="deleteImage"
- @afterRead="afterRead"
- :previewFullImage="true"></uv-upload>
- </view>
- </view>
-
- <view class="content-input">
- <uv-textarea
- v-model="form.titleDetails"
- :maxlength="200"
- autoHeight
- count
- style="min-height: 400rpx;"
- placeholder="途径地点说明"></uv-textarea>
- </view>
-
-
- <view class="uni-color-btn"
- @click="submit">
- 发布
- </view>
- </view>
-
- <uv-datetime-picker
- ref="datetimePicker"
- v-model="dateTime"
- mode="datetime"
- @confirm="confirmTime">
- </uv-datetime-picker>
-
-
- </view>
- </template>
-
- <script>
- import Position from '@/utils/position.js'
- import { mapState } from 'vuex'
- export default {
- data() {
- return {
- imageTitle : [],//师傅头像
- titleDetails : [],//网约证书
- catImage : [],//车辆照片
- form : {
- num : 2,
- startTime : '',
- },
- dateTime : new Date().getTime(),
- }
- },
- onLoad() {
- },
- computed : {
- ...mapState(['cityList', 'category']),
- },
- methods: {
- deleteImage(e){
- this[e.name].splice(e.index, 1)
- },
- afterRead(e){
- let self = this
- e.file.forEach(file => {
- self.$Oss.ossUpload(file.url).then(url => {
- self[e.name].push({
- url
- })
- })
- })
- },
- // 提交
- submit(){
-
- this.form.imageTitle = this.imageTitle.map(n => n.url).join(',')
- this.form.catImage = this.catImage.map(n => n.url).join(',')
-
- if (this.$utils.verificationAll(this.form, {
- imageTitle: '请上传师傅头像',
- title : '请输入师傅名称',
- startAddress : '请输入起点',
- endAddress : '请输入终点',
- startTime : '请选择出发时间',
- num : '请选择车辆座位',
- phone : '请输入师傅电话',
- catType : '请输入车型',
- catNo : '请输入车牌号',
- catImage : '请上传车辆照片与网约证书',
- titleDetails : '请输入途径地点说明',
- })) {
- return
- }
-
-
- this.$api('publishCar', this.form, res => {
- if(res.code == 200){
- uni.showToast({
- title: '发布成功!',
- icon: 'none'
- })
-
- setTimeout(uni.navigateBack, 1000, -1)
- }
- })
- },
- confirmTime(e){
- this.form.startTime = this.$dayjs(e.value).format('YYYY-MM-DD HH:mm:ss')
- },
- }
- }
- </script>
-
- <style scoped lang="scss">
- .page{
- background-color: #fff;
- min-height: 100vh;
- box-sizing: border-box;
- color: #333333;
- font-size: 28rpx;
- /deep/ text{
- font-size: 28rpx !important;
- }
- input{
- width: 450rpx;
- }
- .form{
- padding: 30rpx;
- .help-issue {
- margin: 20rpx;
- }
- .title-input{
- border: 1px solid $uni-color;
- width: 100%;
- border-radius: 10rpx;
- padding: 10rpx 20rpx;
- box-sizing: border-box;
- height: 65rpx;
- }
- .form-sheet-cell{
- display: flex;
- background-color: #fff;
- padding: 20rpx 30rpx;
- align-items: center;
- .label{
- width: 160rpx;
- }
- .price{
- display: flex;
- text-align: center;
- input{
- width: 150rpx;
- border: 1px solid $uni-color;
- margin: 0 10rpx;
- }
- }
- .right-icon{
- margin-left: auto;
- }
- }
- }
-
- .category{
- padding: 20rpx;
- .title{
- // font-weight: 900;
- // font-size: 30rpx;
- }
- .tagList{
- display: flex;
- flex-wrap: wrap;
- padding: 10rpx 0;
- view{
- background: rgba($uni-color, 0.1);
- padding: 10rpx 20rpx;
- margin: 10rpx;
- border-radius: 10rpx;
- font-size: 26rpx;
- }
- .act{
- color: #fff;
- background: $uni-color;
- }
- }
- }
- }
- </style>
|