Files
xdd-uniapp-new/pkg_join/views/travelResidence.vue
T

934 lines
28 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<view class="container">
<view class="v12-pa-2 reason-box" v-if="form.reviewStatus === 2">
驳回原因: {{ form.reviewMsg }}
</view>
<view class="v12-pa-2 reason-box" v-if="form.isDraft === 0 && form.reviewStatus !== 1 &&form.reviewStatus === 0">
审核中
</view>
<view class="form-item">
<view class="title">
<text class="required">* </text>
名称:
</view>
<view class="input">
<u-textarea
border="none"
:disabled="form.isDraft === 0 && (form.reviewStatus === 0 || form.reviewStatus === 1)"
placeholder="请输入名称"
:placeholder-style="inputPlaceholderStyle"
v-model="form.name"
/>
</view>
</view>
<view class="form-item v12-mt-2">
<view class="title">
<text class="required">* </text>
营业执照名称:
</view>
<view class="input">
<u-textarea
border="none"
:disabled="form.isDraft === 0 && (form.reviewStatus === 0 || form.reviewStatus === 1)"
placeholder="请输入营业执照名称"
:placeholder-style="inputPlaceholderStyle"
v-model="form.businessLicense"
autoHeight
/>
</view>
</view>
<view class="form-item v12-mt-2 v12-d-flex v12-justify-start">
<view>
<view class="title">
<text class="required">* </text>
主图:
</view>
<view class="input">
<u-upload
:fileList="coverImg.filter(item => item.url)"
:disabled="form.isDraft === 0 && (coverImg.length > 0 || form.reviewStatus === 0 || form.reviewStatus === 1)"
:deletable="form.isDraft === 1 || (form.reviewStatus !== 0 && form.reviewStatus !== 1)"
:maxCount="1"
count="1"
name="coverImg"
multiple
@afterRead="afterRead($event, 'coverImg')"
@delete="deletePic($event, 'coverImg')"
></u-upload>
</view>
</view>
<view class="v12-ml-2">
<view class="title">
<text class="required">* </text>
头像:
</view>
<view class="input">
<u-upload
:fileList="avatarImg.filter(item => item.url)"
:disabled="form.isDraft === 0 && (avatarImg.length > 0 || form.reviewStatus === 0 || form.reviewStatus === 1)"
:deletable="form.isDraft === 1 || (form.reviewStatus !== 0 && form.reviewStatus !== 1)"
:maxCount="1"
count="1"
name="avatarImg"
multiple
@afterRead="afterRead($event, 'avatarImg')"
@delete="deletePic($event, 'avatarImg')"
></u-upload>
</view>
</view>
</view>
<view class="form-item v12-mt-2">
<view class="title">
<text class="required">* </text>
轮播图:
</view>
<view class="input">
<u-upload
:fileList="bannerImg"
:disabled="form.isDraft === 0 && (bannerImg.length > 8 || form.reviewStatus === 0 || form.reviewStatus === 1)"
:deletable="form.isDraft === 1 || (form.reviewStatus !== 0 && form.reviewStatus !== 1)"
:maxCount="9"
count="9"
name="bannerImg"
multiple
@afterRead="afterRead($event, 'bannerImg')"
@delete="deletePic($event, 'bannerImg')"
></u-upload>
</view>
</view>
<view class="form-item v12-mt-2">
<view class="title">
视频:
</view>
<view class="input">
<u-upload
v-if="videos.length === 0"
accept="video"
multiple
:max-count="1"
:fileList="videos"
:disabled="form.isDraft === 0 && (videos.length > 0 || form.reviewStatus === 0 || form.reviewStatus === 1)"
:deletable="form.isDraft === 1 || (form.reviewStatus !== 0 && form.reviewStatus !== 1)"
:maxCount="1"
count="9"
name="bannerImg"
:previewFullImage="true"
@afterRead="afterRead($event, 'videos', 'video')"
@delete="deletePic($event, 'videos')"
></u-upload>
<view v-else class="video-wrapper">
<video
:src="videos[0].url"
:poster="videos[0].url + '?vframe/jpg/offset/1'"
:controls="false"
play-btn-position="center"
class="video-item"
/>
<view
v-if="form.isDraft === 1 || (form.reviewStatus !== 0 && form.reviewStatus !== 1)"
class="delete-badge"
@click.stop="deleteVideo(0)"
>
x
</view>
</view>
</view>
</view>
<view class="form-item v12-mt-2 v12-d-flex v12-justify-start v12-align-center">
<view class="title">
<text class="required">* </text>
公司名称
</view>
<view class="v12-ml-2" style="flex: 1;">
<input
type="text"
:placeholder-style="inputPlaceholderStyle"
:disabled="form.isDraft === 0 && (form.reviewStatus === 0 || form.reviewStatus === 1)"
placeholder="请输入公司名称"
v-model="form.companyName"
/>
</view>
</view>
<view class="form-item v12-mt-2 v12-d-flex v12-justify-start v12-align-center">
<view class="title">
<text class="required">* </text>
简介
</view>
<view class="v12-ml-2" style="flex: 1;">
<input
type="text"
:disabled="form.isDraft === 0 && (form.reviewStatus === 0 || form.reviewStatus === 1)"
:placeholder-style="inputPlaceholderStyle"
placeholder="请输入公司简介"
v-model="form.intro"
/>
</view>
</view>
<u-divider></u-divider>
<view @click="showTimePicker" class="form-item v12-mt-2 v12-d-flex v12-justify-start v12-align-center">
<view class="title">
<text class="required">* </text>
营业时间
</view>
<view class="v12-ml-2">
<view color="#999999" :text="`${form.serviceTime || '起始时间'} - ${form.serviceEndTime || '结束时间'}`">
<text :style="{'color': form.serviceTime? '#333' : '#999999'}">{{form.serviceTime || '起始时间'}}</text> - <text :style="{'color': form.serviceEndTime? '#333' : '#999999'}">{{form.serviceEndTime || '结束时间'}}</text>
</view>
<tpf-time-range
startTime="00:00"
endTime="23:59"
:disabled="form.isDraft === 0 && (form.reviewStatus === 0 || form.reviewStatus === 1)"
:startDefaultTime="form.serviceTime"
:endDefaultTime="form.serviceEndTime"
ref="TimePickerPopupRef"
@timeRange="timeRange"
>
</tpf-time-range>
</view>
</view>
<u-divider></u-divider>
<view class="form-item v12-mt-2 v12-d-flex v12-justify-start v12-align-center">
<view class="title">
<text class="required">* </text>
省市区
</view>
<view class="v12-ml-2 one-t" style="flex: 1;">
<CitySelect
ref="cityselect"
:disabled="form.isDraft === 0 && (form.reviewStatus === 0 || form.reviewStatus === 1)"
:defaultValue="form.area || '请选择'"
:items="district"
@callback="resultCity"
/>
</view>
</view>
<u-divider></u-divider>
<view class="form-item v12-mt-2 v12-d-flex v12-justify-start v12-align-center">
<view class="title">
<text class="required">* </text>
详细地址
</view>
<view class="v12-ml-2" style="flex: 1;">
<input
:placeholder-style="inputPlaceholderStyle"
:disabled="form.isDraft === 0 && (form.reviewStatus === 0 || form.reviewStatus === 1)"
type="text"
placeholder="请输入详细地址"
v-model="form.address"
/>
</view>
</view>
<u-divider></u-divider>
<view @click="chooLocation" class="form-item v12-mt-2 v12-d-flex v12-justify-start v12-align-center">
<view class="title">
<text class="required">* </text>
地理定位
</view>
<view class="v12-ml-2" style="flex: 1;">
<u--text v-if="form.position" :text="form.position"></u--text>
<u--text v-else text="请选择" color="#c0c4cc"></u--text>
</view>
</view>
<u-divider></u-divider>
<view class="form-item v12-mt-2 v12-d-flex v12-justify-start v12-align-center">
<view class="title">
<text class="required">* </text>
商家电话
</view>
<view class="v12-ml-2" style="flex: 1;">
<u-input
type="text"
:placeholder-style="inputPlaceholderStyle"
:disabled="form.isDraft === 0 && (form.reviewStatus === 0 || form.reviewStatus === 1)"
placeholder="请输入商家电话"
v-model="form.phone"
maxlength="11"
border="none"
>
<template slot="suffix" >
<u-code
v-if="form.isDraft === 1 || (form.reviewStatus !== 0 && form.reviewStatus !== 1)"
ref="uCode"
@change="codeChange"
seconds="30"
changeText="X秒重新获取"
></u-code>
<u-button
v-if="form.isDraft === 1 || (form.reviewStatus !== 0 && form.reviewStatus !== 1)"
@tap="getCode"
:text="tips"
type="success"
color="#4A97FC"
></u-button>
</template>
</u-input>
</view>
</view>
<u-divider></u-divider>
<view class="form-item v12-mt-2 v12-d-flex v12-justify-start v12-align-center">
<view class="title">
<text class="required">* </text>
填写验证码
</view>
<view class="v12-ml-2" style="flex: 1;">
<input
type="text"
:placeholder-style="inputPlaceholderStyle"
:disabled="form.isDraft === 0 && (form.reviewStatus === 0 || form.reviewStatus === 1)"
placeholder="请输入验证码"
v-model="form.captcha"
/>
</view>
</view>
<u-divider></u-divider>
<view class="form-item v12-mt-2 v12-d-flex v12-justify-start v12-align-center">
<view class="title">
<text class="required">* </text>
商家微信
</view>
<view class="v12-ml-2" style="flex: 1;">
<input
type="text"
:placeholder-style="inputPlaceholderStyle"
placeholder="请输入微信号"
v-model="form.wechat"
:disabled="form.isDraft === 0 && (form.reviewStatus === 0 || form.reviewStatus === 1)"
/>
</view>
</view>
<u-divider></u-divider>
<view class="form-item v12-mt-2">
<view class="title">
<text class="required">* </text>
文化:
</view>
<view class="input">
<u-upload
:fileList="cultureImg"
:disabled="form.isDraft === 0 && (form.reviewStatus === 0 || form.reviewStatus === 1) || cultureImg.length > 98"
:deletable="form.isDraft === 1 || (form.reviewStatus !== 0 && form.reviewStatus !== 1)"
:maxCount="99"
count="99"
name="cultureImg"
multiple
@afterRead="afterRead($event, 'cultureImg')"
@delete="deletePic($event, 'cultureImg')"
></u-upload>
</view>
</view>
<view class="form-item v12-mt-2">
<view class="title">
<text class="required">* </text>
资质:
</view>
<view class="input">
<u-upload
:fileList="qualificationImg"
:disabled="form.isDraft === 0 && (form.reviewStatus === 0 || form.reviewStatus === 1) || qualificationImg.length > 98"
:deletable="form.isDraft === 1 || (form.reviewStatus !== 0 && form.reviewStatus !== 1)"
:maxCount="99"
count="99"
name="qualificationImg"
multiple
@afterRead="afterRead($event, 'qualificationImg')"
@delete="deletePic($event, 'qualificationImg')"
></u-upload>
</view>
</view>
<view v-if="form.isDraft === 0 && form.reviewStatus !== 1">
<view class="v12-primary v12-white-text submit-btn" @click="submitForm" :style="{'background': form.reviewStatus === 0 ? '#FA979F !important' : '#4A97FC'}">
{{ form.reviewStatus === 0 ? '撤销申请' : form.reviewStatus === 2 ? '重新提交' : '提交审核' }}
</view>
</view>
<view v-if="form.isDraft === 1">
<view class="v12-primary v12-white-text submit-btn" @click="submitForm">
{{ '提交审核' }}
</view>
</view>
<u-popup :show="show" mode="center" round="10" @close="show=false"
>
<view class="popup-body">
<view class="tc bold">入驻申请须知</view>
<view class="content">
<rich-text :nodes="notice" />
</view>
<view class="agree-box v12-mb-2">
<checkbox-group @change="changeAgree">
<label>
<checkbox value="yes" style="transform:scale(0.8)"/>
</label>
<text>我已仔细阅读并同意</text>
</checkbox-group>
</view>
<u-button
type="error"
text="确定"
:disabled="!isAgree"
@click="save"
/>
</view>
</u-popup>
</view>
</template>
<script>
import CitySelect from '@/components/CitySelect'
import {getCity, registerVerify} from '@/api/user'
import {
chooseImage,
uploadVideo,
uploadImage
} from '@/utils'
import {
getShopData,
getTravelInfo,
saveTravel,
saveTravelDraft,
revokeTravel
} from '@/api/join'
export default {
components: {
CitySelect
},
data() {
return {
isAgree: false,
show: false,
notice: '',
tips: '获取验证码',
inputPlaceholderStyle: {
fontSize: '32rpx'
},
coverImg: [],
avatarImg: [],
// 轮播图
bannerImg: [],
videos: [],
district: [],
// 文化图片
cultureImg: [],
// 资质图片
qualificationImg: [],
partnerId: 0,
captcha: '',
form: {
/**
*
travelInfo object 旅居管家基本信息
|- name string 名称
|- cover string 主图
|- avatar string 头像
|- companyName string 公司名称
|- video string 视频
|- banner string 轮播图(逗号分隔字符串)
|- serviceTime string 营业开始时间
|- serviceEndTime string 营业结束时间
|- provinceId int 省份ID
|- provinceName string 省份名称
|- cityId int 城市ID
|- cityName string 城市名称
|- areaId int 区域ID
|- areaName string 区域名称
|- address string 详细地址
|- longitude number 经度
|- latitude number 纬度
|- contact string 联系人
|- phone string 联系方式
|- wechat string 联系微信
|- culture string 文化(逗号分隔字符串)
|- qualification string 资质(逗号分隔字符串)
*
*/
captcha: '',
name: '',
cover: '',
avatar: '',
companyName: '',
video: '',
banner: '',
serviceTime: '00:00',
serviceEndTime: '23:59',
provinceId: 0,
provinceName: '',
cityId: 0,
cityName: '',
areaId: 0,
areaName: '',
address: '',
longitude: 0,
latitude: 0,
contact: '',
phone: '',
wechat: '',
culture: '',
qualification: '',
reviewMsg: ''
}
}
},
onLoad(opts) {
this.partnerId = opts.partnerId
this.queryCity()
getShopData().then(({data}) => {
this.notice = data.merchantApplyNotice
this.initInfo()
})
},
// onShow() {
// },
onUnload() {
this.saveDraft()
},
onHide() {
// if (this.form.isDraft === 0 && (this.form.reviewStatus === 0 || this.form.reviewStatus === 1)) {
// return
// }
this.saveDraft()
},
methods: {
changeAgree(e) {
this.isAgree = e.detail.value.includes('yes')
},
save() {
this.show = false
},
/**
* 字符串转换为数组
* @param {string} str 字符串
* @param {string} split 分隔符
* @returns {array} 数组
*/
stringToMapArr(str, split = ',') {
return str.split(split).map(item => ({url: item}))
},
/**
* 保存草稿
*/
saveDraft() {
this.form.cover = this.coverImg.filter(item => item.url).map(item => item.url).join(',')
this.form.avatar = this.avatarImg.filter(item => item.url).map(item => item.url).join(',')
this.form.banner = this.bannerImg.filter(item => item.url).map(item => item.url).join(',')
this.form.video = this.videos.filter(item => item.url).map(item => item.url).join(',')
this.form.culture = this.cultureImg.filter(item => item.url).map(item => item.url).join(',')
this.form.qualification = this.qualificationImg.filter(item => item.url).map(item => item.url).join(',')
const params = {
travelInfo: {...this.form},
partnerId: this.partnerId,
captcha: this.form.captcha
}
saveTravelDraft(params).then(res => {
if (res.status === 200) {
// uni.$u.toast('草稿保存成功')
}
}).catch(err => {
uni.$u.toast(err.msg)
})
},
/**
* 初始化信息
*/
initInfo() {
getTravelInfo().then(res => {
if(res.data.isDraft === null || res.data.isDraft === 1) {
this.show = true
}
const {travelInfo} = res.data || {}
if (res.status === 200) {
this.form = {...this.form, ...travelInfo}
this.coverImg = travelInfo.cover ? this.stringToMapArr(travelInfo.cover) : []
this.avatarImg = travelInfo.avatar ? this.stringToMapArr(travelInfo.avatar) : []
this.bannerImg = travelInfo.banner ? this.stringToMapArr(travelInfo.banner) : []
this.videos = travelInfo.video ? this.stringToMapArr(travelInfo.video) : []
this.cultureImg = travelInfo.culture ? this.stringToMapArr(travelInfo.culture) : []
this.qualificationImg = travelInfo.qualification ? this.stringToMapArr(travelInfo.qualification) : []
this.form.reviewStatus = res.data.reviewStatus
this.form.reviewMsg = res.data.reviewMsg
this.form.isDraft = res.data.isDraft
this.form.latitude = travelInfo.latitude || 0
this.form.longitude = travelInfo.longitude || 0
this.form.position = this.$forceToDecimal(travelInfo.longitude, 6) + ',' + this.$forceToDecimal(travelInfo.latitude, 6)
this.form.area = `${this.form.provinceName || ''} ${this.form.cityName || ''} ${this.form.areaName || ''}`.trim()
this.captcha = travelInfo.captcha
}
}).catch(err => {
// uni.$u.toast(err.msg)
})
},
/**
* 撤销申请
*/
revokeTravel() {
uni.showModal({
title: '提示',
content: '确定撤销申请吗?',
success: (res) => {
if (res.confirm) {
revokeTravel().then(res => {
if (res.status === 200) {
uni.$u.toast('撤销申请成功')
this.initInfo()
}
}).catch(err => {
uni.$u.toast(err.msg)
})
}
}
})
},
/**
* 提交表单
*/
submitForm() {
if(this.form.reviewStatus === 0 && this.form.isDraft === 0 && this.form.reviewStatus !== 1) {
this.revokeTravel()
return
}
if(this.form.isDraft === 0 && (this.form.reviewStatus === 0 || this.form.reviewStatus === 1)) return
this.form.cover = this.coverImg.filter(item => item.url).map(item => item.url).join(',')
this.form.avatar = this.avatarImg.filter(item => item.url).map(item => item.url).join(',')
this.form.banner = this.bannerImg.filter(item => item.url).map(item => item.url).join(',')
this.form.video = this.videos.filter(item => item.url).map(item => item.url).join(',')
this.form.culture = this.cultureImg.filter(item => item.url).map(item => item.url).join(',')
this.form.qualification = this.qualificationImg.filter(item => item.url).map(item => item.url).join(',')
if (!this.form.name) {
uni.$u.toast('请输入名称')
return
}
if (!this.form.businessLicense) {
uni.$u.toast('请输入营业执照名称')
return
}
if (!this.form.cover) {
uni.$u.toast('请上传主图')
return
}
if (!this.form.avatar) {
uni.$u.toast('请上传头像')
return
}
if (!this.form.companyName) {
uni.$u.toast('请输入公司名称')
return
}
if (!this.form.intro) {
uni.$u.toast('请输入公司简介')
return
}
if (!this.form.banner) {
uni.$u.toast('请上传轮播图')
return
}
// 请选择营业时间
if (!this.form.serviceTime) {
uni.$u.toast('请选择营业开始时间')
return
}
if (!this.form.serviceEndTime) {
uni.$u.toast('请选择营业结束时间')
return
}
// 请选择省市区
if (!this.form.provinceId) {
uni.$u.toast('请选择省份')
return
}
if (!this.form.cityId) {
uni.$u.toast('请选择城市')
return
}
if (!this.form.areaId) {
uni.$u.toast('请选择区域')
return
}
if (!this.form.address) {
uni.$u.toast('请输入详细地址')
return
}
// 请选择物理位置
if (!this.form.longitude) {
uni.$u.toast('请选择地理定位')
return
}
if (!this.form.latitude) {
uni.$u.toast('请选择地理定位')
return
}
if (!this.form.culture) {
uni.$u.toast('请上传文化')
return
}
if (!this.form.qualification) {
uni.$u.toast('请上传资质')
return
}
if (!this.form.phone) {
uni.$u.toast('请输入手机号')
return
}
if (!this.form.wechat) {
uni.$u.toast('请输入联系微信')
return
}
const params = {
travelInfo: {...this.form},
partnerId: this.partnerId,
captcha: this.form.captcha
}
saveTravel(params).then(res => {
if (res.status === 200) {
uni.showToast({
title: '您的入驻申请已提交成功,请耐心等待审核',
icon: 'none',
success: () => {
this.initInfo();
this.show = false;
}
})
}
}).catch(err => {
uni.$u.toast(err.msg)
})
},
/**
* 获取验证码
*/
getCode() {
// if (this.reviewing) return
if (!this.form.phone) {
uni.$u.toast('请输入手机号')
return
}
if (this.form.phone.length !== 11) {
uni.$u.toast('请输入11位手机号')
return
}
if (this.$refs.uCode.canGetCode) {
uni.showLoading({
title: '正在获取验证码'
})
registerVerify({
phone: this.form.phone,
type: 'merchantTravelApply'
}).then(() => {
uni.hideLoading()
// 这里此提示会被this.start()方法中的提示覆盖
uni.$u.toast('验证码已发送')
// 通知验证码组件内部开始倒计时
this.$refs.uCode.start()
}).catch(err => {
uni.hideLoading()
uni.$u.toast(err.msg)
})
} else {
uni.$u.toast('倒计时结束后再发送')
}
},
/**
* 验证码按钮回调
*/
codeChange(text) {
this.tips = text
},
/**
* 选择位置
*/
chooLocation() {
if(this.form.isDraft === 0 && (this.form.reviewStatus === 0 || this.form.reviewStatus === 1)) return
uni.chooseLocation({
success: (res) => {
console.log(res)
this.form.address = res.address
this.form.longitude = this.$forceToDecimal(res.longitude, 6)
this.form.latitude = this.$forceToDecimal(res.latitude, 6)
this.form.position = this.$forceToDecimal(res.longitude, 6) + ',' + this.$forceToDecimal(res.latitude, 6)
}
})
},
/**
* 选择城市回调
* @param {object} e - 事件对象
*/
resultCity(values) {
const address = {
province: values.province.name || '',
city: values.city.name || '',
district: values.district.name || '',
provinceId: values.province.id,
cityId: values.city.id,
areaId: values.district.id
}
this.form.area = `${address.province || ''} ${address.city || ''} ${address.district || ''}`
this.form.areaName = address.district || ''
this.form.provinceName = address.province || ''
this.form.cityName = address.city || ''
this.form.provinceId = address.provinceId
this.form.cityId = address.cityId
this.form.areaId = address.areaId
},
/**
* 选择城市
*/
queryCity() {
getCity().then(({data}) => {
this.district = data
})
},
/**
* 显示时间选择器
*/
showTimePicker() {
if(this.form.isDraft === 0 && (this.form.reviewStatus === 0 || this.form.reviewStatus === 1)) {
return
}
this.$refs.TimePickerPopupRef.open()
},
/**
* 选择时间范围
* @param {array} e - 时间范围数组,包含开始时间和结束时间
*/
timeRange(e) {
this.form.serviceTime = e[0]
this.form.serviceEndTime = e[1]
this.$forceUpdate()
},
/**
* 选择图片
* @param {string} imgField - 图片字段名
*/
chooseImage(imgField) {
chooseImage(img => {
this.form[imgField] = img;
})
},
/**
* 上传图片或视频
* @param {object} e - 事件对象
* @param {string} imgField - 图片字段名
* @param {string} type - 类型('video'或'image'
*/
afterRead(e, imgField, type) {
const uploadFunc = type == 'video' ? uploadVideo : uploadImage;
if(e.file.length > 0) {
e.file.forEach(item => {
if(!item.url) return
uploadFunc(item.url, img => {
if(!img) return
this[imgField].push({url: img});
console.log(this[imgField], imgField);
})
})
}
},
/**
* 删除视频(右上角角标)
* @param {number} index - 视频索引
*/
deleteVideo(index) {
if(this.form.isDraft === 0 && (this.form.reviewStatus === 0 || this.form.reviewStatus === 1)) return
uni.showModal({
title: '确认删除',
content: '确定删除该视频?',
success: (res) => {
if (res.confirm) {
this.deletePic({ index }, 'videos')
}
}
})
},
/**
* 删除图片或视频
* @param {object} e - 事件对象
* @param {string} imgField - 图片字段名
*/
deletePic(e, imgField) {
this[imgField].splice(e.index, 1);
console.log(this[imgField]);
}
}
}
</script>
<style scoped lang="scss">
.popup-body {
width: 80vw;
height: 80vh;
padding: 30rpx;
overflow: hidden;
}
.popup-body .content {
height: 52vh;
overflow-y: auto;
margin: 30rpx 0;
}
.popup-body .agree-box {
margin: 60rpx 0;
font-size: 28rpx;
color: #666;
}
.popup-body {
.title {
line-height: 80rpx;
text-align: center;
}
}
.container {
padding: 20rpx;
background: #fff;
}
.title {
font-size: 32rpx;
font-weight: 500;
color: #333;
}
.required {
color: #C52733;
}
.input{
margin-top: 20rpx;
}
.submit-btn{
width: 100%;
height: 100rpx;
text-align: center;
line-height: 100rpx;
}
.reason-box{
background: rgba(255,160,167,0.39);
border-radius: 8rpx;
color: #C52733;
font-size: 30rpx;
margin-bottom: 20rpx;
}
.title{
white-space: nowrap;
}
.video-item{
width: 160rpx;
height: 160rpx;
}
.video-wrapper{
position: relative;
display: inline-block;
}
.delete-badge{
position: absolute;
top: 0rpx;
right: 0rpx;
background: #000;
color: #fff;
padding: 2rpx 8rpx;
border-radius: 0 0 0rpx 200rpx;
font-size: 22rpx;
z-index: 10;
text-align: center;
}
</style>
<style>
.input .u-textarea{
background-color: #F3F3F3 !important;
}
</style>