|
@@ -1,22 +1,339 @@
|
|
|
<template>
|
|
|
- <view>
|
|
|
-
|
|
|
+ <view class='content'>
|
|
|
+ <view class='wrap'>
|
|
|
+ <u--form :model="form" ref="uForm">
|
|
|
+ <u-form-item labelWidth='120' labelPosition='left' label="店铺名称">
|
|
|
+ <view style='text-align:right'>{{form.shopNames}}</view>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item labelWidth='120' labelPosition='left' label="团购标题">
|
|
|
+ <u-input inputAlign='right' border='none' placeholder='输入团购标题,不超过20个字' v-model="form.groupTitle" />
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item labelWidth='120' labelPosition='left' label="可供用餐人数">
|
|
|
+ <view class='flex align-item-center'>
|
|
|
+ <u-input inputAlign='right' border='none' placeholder='最少人数' v-model="form.leastPeople" />
|
|
|
+ <view>人~</view>
|
|
|
+ <u-input inputAlign='right' border='none' placeholder='最多人数' v-model="form.mostPeople" />
|
|
|
+ 人
|
|
|
+ </view>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item labelWidth='120' labelPosition='left' label="下单后随时退单">
|
|
|
+ <u-radio-group
|
|
|
+ v-model="form.chargeableFlag"
|
|
|
+ placement="row">
|
|
|
+ <u-radio activeColor="#5F7DE9" label="不接受" name='1' ></u-radio>
|
|
|
+ <u-radio activeColor="#5F7DE9" label="接受" name='0' ></u-radio>
|
|
|
+ </u-radio-group>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item labelWidth='140' labelPosition='left' label="活动结束后自动退单">
|
|
|
+ <u-radio-group
|
|
|
+ v-model="form.endChargeable"
|
|
|
+ placement="row">
|
|
|
+ <u-radio activeColor="#5F7DE9" label="不接受" name='1'></u-radio>
|
|
|
+ <u-radio activeColor="#5F7DE9" label="接受" name='0'></u-radio>
|
|
|
+ </u-radio-group>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item labelWidth='120' labelPosition='left' label="可团购总数量">
|
|
|
+ <u-input inputAlign='right' border='none' placeholder='输入团购套餐总数' v-model="form.totalQuantity" />
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item labelWidth='120' labelPosition='left' label="单人可团数量">
|
|
|
+ <u-radio-group
|
|
|
+ v-model="form.quantityLimited"
|
|
|
+ placement="row">
|
|
|
+ <u-radio activeColor="#5F7DE9" label="限量" name='1'></u-radio>
|
|
|
+ <u-radio activeColor="#5F7DE9" label="不限量" name='0'></u-radio>
|
|
|
+ </u-radio-group>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item v-if='form.quantityLimited==1' labelWidth='120' labelPosition='left' label="单人团购上限">
|
|
|
+ <u-input inputAlign='right' border='none' placeholder='输入单个用户最多可团购的数量' v-model="form.groupLimit" />
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item labelWidth='120' labelPosition='left' label="提前预约时间">
|
|
|
+ <view class='flex align-item-center'>
|
|
|
+ <u-input inputAlign='right' border='none' placeholder='提前预约时间' v-model="form.reservationTime" />小时
|
|
|
+ </view>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item labelWidth='120' labelPosition='left' label="活动开始日期">
|
|
|
+ <view style='text-align:right;' @click='selectTime(0)'>{{form.startDate?form.startDate:'活动开始日期'}}<image src="@/static/image/yjt.png" mode=""
|
|
|
+ style="margin-left:10rpx;width:12rpx;height: 21rpx;"></image></view>
|
|
|
+ </u-form-item>
|
|
|
+
|
|
|
+ <u-form-item labelWidth='120' labelPosition='left' label="活动结束日期">
|
|
|
+ <view style='text-align:right;' @click='selectTime1(1)'>{{form.endDate?form.endDate:'活动结束日期'}}<image src="@/static/image/yjt.png" mode=""
|
|
|
+ style="margin-left:10rpx;width:12rpx;height: 21rpx;"></image></view>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item labelWidth='120' labelPosition='top' label="不可用日期">
|
|
|
+ <view class='flex'>
|
|
|
+ <view v-for='item in weekList' class='week_item' :class='item.select?"active":""' @click='selectweek(item)'>{{item.value}}</view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item labelWidth='120' labelPosition='left' label="指定不可用日期">
|
|
|
+ <view style='text-align:right;' @click='show2 = true'>{{form.unavailableDay?'已选'+form.unavailableDay.length+'天':'已选0天'}}</view>
|
|
|
+ <!-- <view class='flex align-item-center'>
|
|
|
+ <u-input inputAlign='right' border='none' placeholder='提前预约时间' v-model="form.unavailableDay" />小时
|
|
|
+ </view> -->
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item labelWidth='120' labelPosition='left' label="餐位费">
|
|
|
+ <view class='flex align-item-center'>
|
|
|
+ <u-input inputAlign='right' border='none' placeholder='输入餐位费' v-model="form.spaceFee" />元/人
|
|
|
+ </view>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item labelWidth='120' labelPosition='left' label="商品打包外带">
|
|
|
+ <u-radio-group
|
|
|
+ v-model="form.packFlag"
|
|
|
+ placement="row">
|
|
|
+ <u-radio activeColor="#5F7DE9" label="不支持" name='1'></u-radio>
|
|
|
+ <u-radio activeColor="#5F7DE9" label="支持" name='0'></u-radio>
|
|
|
+ </u-radio-group>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item labelWidth='120' labelPosition='left' label="包间消费使用">
|
|
|
+ <u-radio-group
|
|
|
+ v-model="form.roomUsage"
|
|
|
+ placement="row">
|
|
|
+ <u-radio activeColor="#5F7DE9" label="不支持" name='1'></u-radio>
|
|
|
+ <u-radio activeColor="#5F7DE9" label="支持" name='0'></u-radio>
|
|
|
+ </u-radio-group>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item labelWidth='140' labelPosition='left' label="与店内其他优惠共享">
|
|
|
+ <u-radio-group
|
|
|
+ v-model="form.discountSharing"
|
|
|
+ placement="row">
|
|
|
+ <u-radio activeColor="#5F7DE9" label="不支持" name='1'></u-radio>
|
|
|
+ <u-radio activeColor="#5F7DE9" label="支持" name='0'></u-radio>
|
|
|
+ </u-radio-group>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item labelWidth='120' labelPosition='left' label="免费打包">
|
|
|
+ <u-radio-group
|
|
|
+ v-model="form.freePackaging"
|
|
|
+ placement="row">
|
|
|
+ <u-radio activeColor="#5F7DE9" label="不支持" name='1'></u-radio>
|
|
|
+ <u-radio activeColor="#5F7DE9" label="支持" name='0'></u-radio>
|
|
|
+ </u-radio-group>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item labelWidth='120' labelPosition='left' label="发票">
|
|
|
+ <u-radio-group
|
|
|
+ v-model="form.invoice"
|
|
|
+ placement="row">
|
|
|
+ <u-radio activeColor="#5F7DE9" label="不支持" name='1'></u-radio>
|
|
|
+ <u-radio activeColor="#5F7DE9" label="支持" name='0'></u-radio>
|
|
|
+ </u-radio-group>
|
|
|
+ </u-form-item>
|
|
|
+ </u--form>
|
|
|
+ <view>备注:如部分菜品因时令或其他不可抗因素导致无法提供,商家可用等价菜品替换,具体事宜与顾客协商决定。</view>
|
|
|
+ <view class="footer">
|
|
|
+ <button @click='next' class="submit">下一步</button>
|
|
|
+ </view>
|
|
|
+ <u-calendar @close='show = false' @confirm="confirm" :show="show"></u-calendar>
|
|
|
+ <u-calendar :minDate='minDate' @close='show1 = false' @confirm="confirm" :show="show1"></u-calendar>
|
|
|
+ <u-calendar :show="show2" mode="multiple" monthNum='12' :maxDate='maxDate' @close='show2 = false' @confirm="confirm1"></u-calendar>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+ var that
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
-
|
|
|
+ value:'',
|
|
|
+ show:false,
|
|
|
+ show1:false,
|
|
|
+ show2:false,
|
|
|
+ status:'',
|
|
|
+ minDate:'',
|
|
|
+ maxDate:'',
|
|
|
+ weekList:[
|
|
|
+ {value:'周一',select:false},
|
|
|
+ {value:'周二',select:false},
|
|
|
+ {value:'周三',select:false},
|
|
|
+ {value:'周四',select:false},
|
|
|
+ {value:'周五',select:false},
|
|
|
+ {value:'周六',select:false},
|
|
|
+ {value:'周日',select:false}],
|
|
|
+ form:{
|
|
|
+ chargeableFlag:"0",
|
|
|
+ endChargeable:"0",
|
|
|
+ quantityLimited:"0",
|
|
|
+ packFlag:"0",
|
|
|
+ roomUsage:"0",
|
|
|
+ discountSharing:"0",
|
|
|
+ freePackaging:"0",
|
|
|
+ invoice:"0",
|
|
|
+ },
|
|
|
}
|
|
|
},
|
|
|
- methods: {
|
|
|
+ onLoad(options) {
|
|
|
+ console.log(options)
|
|
|
+ that = this
|
|
|
+ var date = new Date().toISOString().slice(0, 10)
|
|
|
+ this.minDate=date
|
|
|
+ this.form.foodId=options.foodId
|
|
|
+ this.form.shopNames=options.shopNames
|
|
|
+ this.getTime()
|
|
|
+ },
|
|
|
+ onShow(){
|
|
|
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ getTime(){
|
|
|
+ var time = new Date();
|
|
|
+ time.setTime(time.getTime());
|
|
|
+ var s2 = time.getFullYear()+"-" + (time.getMonth()+1) + "-" + time.getDate();
|
|
|
+ var monthNum=6; //要减的月数(6)自己定义
|
|
|
+ var dateArr = s2.split('-'); //s2当前时间
|
|
|
+ var year = dateArr[0]; //获取当前日期的年份
|
|
|
+ var month = dateArr[1]; //获取当前日期的月份
|
|
|
+ var day = dateArr[2]; //获取当前日期的日
|
|
|
+ var days = new Date(year, month, 0);
|
|
|
+ days = days.getDate(); //获取当前日期中月的天数
|
|
|
+ var year2 = year;
|
|
|
+ var month2 = parseInt(month) + monthNum;
|
|
|
+ if (month2 <=0) {
|
|
|
+ year2 = parseInt(year2) - parseInt(month2 / 12 == 0 ? 1 : parseInt(month2) / 12);
|
|
|
+ month2 = 12 - (Math.abs(month2) % 12);
|
|
|
+ }
|
|
|
+ var day2 = day;
|
|
|
+ var days2 = new Date(year2, month2, 0);
|
|
|
+ days2 = days2.getDate();
|
|
|
+ if (day2 > days2) {
|
|
|
+ day2 = days2;
|
|
|
+ }
|
|
|
+ if (month2 < 10) {
|
|
|
+ month2 = '0' + month2;
|
|
|
+ }
|
|
|
+ var t2 = year2 + '-' + month2 + '-' + day2;
|
|
|
+ this.maxDate = t2
|
|
|
+ console.log(t2)
|
|
|
+ },
|
|
|
+ selectweek(item){
|
|
|
+ console.log(item)
|
|
|
+ item.select = !item.select
|
|
|
+ this.$forceUpdate()
|
|
|
+ var arr = this.weekList.filter((item)=>{return item.select == true})
|
|
|
+ console.log(arr)
|
|
|
+ var arr2=[]
|
|
|
+ for(var i=0;i<arr.length;i++){
|
|
|
+ arr2.push(arr[i].value)
|
|
|
+ }
|
|
|
+ this.form.unavailableDate=arr2.toString()
|
|
|
+ },
|
|
|
+ confirm1(e){
|
|
|
+ console.log(e)
|
|
|
+ console.log(e.sort( (a, b)=> {return a.localeCompare(b) // 按照升序排列
|
|
|
+ }))
|
|
|
+ var sortDate=e.sort( (a, b)=> {return a.localeCompare(b)})
|
|
|
+ this.form.unavailableDay=sortDate.toString() // 按照升序排列
|
|
|
+
|
|
|
+ this.show2 = false
|
|
|
+
|
|
|
+ },
|
|
|
+ confirm(e){
|
|
|
+ if(this.status==0){
|
|
|
+ this.form.startDate =e[0]
|
|
|
+ this.show = false
|
|
|
+ }else{
|
|
|
+ this.form.endDate =e[0]
|
|
|
+ this.show1 = false
|
|
|
+ }
|
|
|
+ console.log(e)
|
|
|
+ },
|
|
|
+ selectTime(status){
|
|
|
+ this.status=status
|
|
|
+ this.show = true
|
|
|
+ },
|
|
|
+ selectTime1(status){
|
|
|
+ this.status=status
|
|
|
+ this.show1 = true
|
|
|
+ },
|
|
|
+ next(){
|
|
|
+ var time = new Date();
|
|
|
+ var date=time.getFullYear()+"-" + ((time.getMonth()+1)>=10?(time.getMonth()+1):'0'+(time.getMonth()+1)) + "-" + time.getDate()
|
|
|
+ var s2 = new Date(date).getTime();
|
|
|
+ console.log(s2,date,this.form.startDate,new Date(this.form.startDate).getTime(),1111)
|
|
|
+ if(new Date(this.form.endDate).getTime()==s2){
|
|
|
+ uni.showToast({
|
|
|
+ icon: "none",
|
|
|
+ title: '结束日期不可晚于当天!',
|
|
|
+ duration: 3000
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(new Date(this.form.startDate).getTime()>new Date(this.form.endDate).getTime()){
|
|
|
+ uni.showToast({
|
|
|
+ icon: "none",
|
|
|
+ title: '开始日期不可晚于结束日期!',
|
|
|
+ duration: 3000
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ uni.setStorageSync('groupBuying',JSON.stringify(this.form))
|
|
|
+ uni.navigateTo({
|
|
|
+ url:'/pageA/enter/myCateringdustry/addGroupBuyingNext?foodId='+this.form.foodId
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 删除图片
|
|
|
+ deletePic(event,status) {
|
|
|
+ this[`fileList${event.name}`].splice(event.index, 1)
|
|
|
+ },
|
|
|
+ // 新增图片
|
|
|
+ async afterRead(event,status) {
|
|
|
+ // 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
|
|
|
+ let lists = [].concat(event.file)
|
|
|
+ let fileListLen = this[`fileList${event.name}`].length
|
|
|
+ lists.map((item) => {
|
|
|
+ this[`fileList${event.name}`].push({
|
|
|
+ ...item,
|
|
|
+ status: 'uploading',
|
|
|
+ message: '上传中'
|
|
|
+ })
|
|
|
+ })
|
|
|
+ for (let i = 0; i < lists.length; i++) {
|
|
|
+ const result = await this.uploadFilePromise(lists[i].url,status)
|
|
|
+
|
|
|
+ let item = this[`fileList${event.name}`][fileListLen]
|
|
|
+ this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
|
|
|
+ status: 'success',
|
|
|
+ message: '',
|
|
|
+ url: result
|
|
|
+ }))
|
|
|
+ fileListLen++
|
|
|
+ console.log(that.form, this[`fileList${event.name}`])
|
|
|
+
|
|
|
+ }
|
|
|
+ },
|
|
|
+ uploadFilePromise(res,status) {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ uploadImage(res, 'cardImages/',
|
|
|
+ result => {
|
|
|
+
|
|
|
+ that.form.dishImage = result
|
|
|
+ resolve(res)
|
|
|
+ }
|
|
|
+ )
|
|
|
+ })
|
|
|
+ },
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
-<style>
|
|
|
-
|
|
|
+<style lang='scss' scoped>
|
|
|
+ .wrap{
|
|
|
+ padding:20rpx;
|
|
|
+ }
|
|
|
+ /deep/.u-radio-group,/deep/.u-radio-group--row {
|
|
|
+ flex-direction: row-reverse !important;
|
|
|
+ .u-radio{
|
|
|
+ margin-left:10rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .week_item{
|
|
|
+ border:1px solid #999;
|
|
|
+ padding: 5rpx 10rpx;
|
|
|
+ margin: 10rpx;
|
|
|
+ border-radius: 10rpx;
|
|
|
+ }
|
|
|
+ .week_item.active{
|
|
|
+ background:#5F7DE9;
|
|
|
+ border: 1px solid #5F7DE9;
|
|
|
+ color:#fff;
|
|
|
+ }
|
|
|
</style>
|