Commit 382194fc by crushh

update: dist

parent 994975ba
......@@ -566,7 +566,6 @@ img::after {
text-align: center;
color: #f5222d;
line-height: 24px;
margin-left: 6px;
cursor: pointer;
&:hover {
background: #f6e1e5;
......
......@@ -76,14 +76,16 @@ export default {
methods: {
submit() {
return new Promise(async resolve => {
const res = await this.$refs.defineTime.submit();
let arr = [];
if (!res) return;
res.timeRangeList.forEach(item => {
if (Object.keys(item).length) {
arr.push(`${item.startTime}-${item.endTime}`);
}
});
if (this.form.callFlag == 1) {
const res = await this.$refs.defineTime.submit();
if (!res) return;
res.timeRangeList.forEach(item => {
if (Object.keys(item).length) {
arr.push(`${item.startTime}-${item.endTime}`);
}
});
}
this.$refs.form.validate(val => {
if (val) {
const { callFlag, callTime, activeTime } = this.form;
......@@ -93,7 +95,7 @@ export default {
callFlag,
callTime
};
if (arr.length) {
if (callFlag == 1) {
obj.callTime = arr;
}
resolve(obj);
......
......@@ -156,19 +156,20 @@ export default {
methods: {
submit() {
return new Promise(async resolve => {
const res = await this.$refs.defineTime.submit();
let arr = [];
if (!res) return;
res.timeRangeList.forEach(item => {
if (Object.keys(item).length) {
arr.push(`${item.startTime}-${item.endTime}`);
}
});
if (this.form.callFlag == 1) {
const res = await this.$refs.defineTime.submit();
if (!res) return;
res.timeRangeList.forEach(item => {
if (Object.keys(item).length) {
arr.push(`${item.startTime}-${item.endTime}`);
}
});
}
this.$refs.form.validate(val => {
console.log(val);
if (val) {
const { birth_type, callFlag, birthDate1, birthDate2, callTime, birth_days } = this.form;
const obj = {
callFlag,
birth_type,
......@@ -185,7 +186,7 @@ export default {
obj.startDate = birthDate1[0];
obj.endDate = birthDate1[1];
}
if (arr.length) {
if (callFlag == 1) {
obj.callTime = arr;
}
if (birth_type != 3) {
......
......@@ -2,8 +2,8 @@
<div class="defineTime">
<p class="tips">自定义时段不少于4个小时</p>
<el-form :model="form" ref="defineTime">
<el-form-item class="mt10" v-for="(v, i) in form.timeRangeList" :key="i" :prop="'timeRangeList.' + i + '.timeRange'">
<div style="display: flex;align-items: center;">
<div class="flex" v-for="(v, i) in form.timeRangeList" :key="i">
<el-form-item class="mt10" :prop="'timeRangeList.' + i + '.startTime'" :rules="[{ validator: validateTime(i) }, { validator: validateStarTime(v, i) }]">
<el-time-select
placeholder="起始时间"
v-model="v.startTime"
......@@ -14,30 +14,33 @@
}"
>
</el-time-select>
<el-time-select placeholder="结束时间" v-model="v.endTime" :picker-options="endPickerOptions(v.startTime)"> </el-time-select>
<div class="delIcon" type="text" @click="delTimeRange(i)">
<i class="iconfont icon-Delete"></i>
</div>
</el-form-item>
<span style="margin: 10px 10px 0"></span>
<el-form-item class="mt10" :prop="'timeRangeList.' + i + '.endTime'" :rules="[{ validator: validateTime(i) }, { validator: validateEndTime(v, i) }]">
<el-time-select
placeholder="结束时间"
v-model="v.endTime"
:picker-options="{
start: '09:00',
step: '00:30',
end: '20:00'
}"
>
</el-time-select>
</el-form-item>
<div class="delIcon" style="margin: 10px 0 0 16px" type="text" @click="delTimeRange(i)">
<i class="iconfont icon-Delete"></i>
</div>
</el-form-item>
</div>
</el-form>
<el-button type="text" @click="addTimeRange"> <i class="iconfont icon-Plus"></i> 添加时间段 </el-button>
<el-button class="addTimeBtn" type="text" @click="addTimeRange"> <i class="iconfont icon-Plus"></i> 添加时间段 </el-button>
</div>
</template>
<script>
export default {
data() {
const validateTime = item => ({
required: true,
validator: (rule, _, cb) => {
// item 就是数据啦,可以校验了
cb();
}
});
return {
validateTime,
form: {
timeRangeList: [{}]
}
......@@ -61,15 +64,65 @@ export default {
}
}
},
computed: {
// pickerOptions() {
// console.log(this.form.timeRangeList);
// let endTime = this.form.timeRangeList.reduce((p, v) => (p.endTime < v.endTime ? v : p)).endTime;
// let obj = {
// start: '09:00',
// step: '00:30',
// end: '20:00'
// };
// endTime ? (obj.start = endTime) : '';
// return obj;
// }
},
methods: {
endPickerOptions(val) {
let endTime = this.form.timeRangeList.reduce((p, v) => (p.startTime < v.startTime ? v : p)).endTime;
console.log(endTime);
return {
start: '09:00',
step: '00:30',
end: '20:00',
minTime: val
validateTime(i) {
return (rule, value, callback) => {
const start = [];
const end = [];
const array = JSON.parse(JSON.stringify(this.form.timeRangeList));
const arr = array.sort((firstEl, secondEl) => {
return new Date(new Date().toLocaleDateString() + ' ' + firstEl.startTime).getTime() - new Date(new Date().toLocaleDateString() + ' ' + secondEl.startTime).getTime();
});
arr.forEach(item => {
start.push(item.startTime ? item.startTime : '');
end.push(item.endTime ? item.endTime : '');
});
for (let i = 1; i < start.length; i++) {
if (end[i - 1] && start[i] < end[i - 1]) {
callback(new Error('区间有交叉'));
return;
}
}
callback();
};
},
validateStarTime(v, i) {
let { startTime, endTime } = v;
return (rule, value, callback) => {
if (!startTime) {
callback(new Error(' '));
} else if (startTime >= endTime) {
callback(new Error('开始时间要小于结束时间'));
} else {
this.$refs.defineTime.clearValidate('timeRangeList.' + i + '.endTime');
callback();
}
};
},
validateEndTime(v, i) {
const { startTime, endTime } = v;
return (rule, value, callback) => {
if (!endTime) {
callback(new Error(' '));
} else if (endTime < startTime) {
callback(new Error('结束时间要大于开始时间'));
} else {
this.$refs.defineTime.clearValidate('timeRangeList.' + i + '.startTime');
callback();
}
};
},
// 删除兑换时段
......@@ -84,10 +137,35 @@ export default {
}
this.form.timeRangeList.push({});
},
// 提交时校验是否超过4小时
handleCallTime() {
let minutes = 0;
this.form.timeRangeList.forEach(item => {
let end = new Date(new Date().toLocaleDateString() + ' ' + item.endTime).getTime();
let start = new Date(new Date().toLocaleDateString() + ' ' + item.startTime).getTime();
console.log(start, end);
minutes = (end - start) / 60000 + minutes;
});
if (minutes < 240) {
this.$message.error('自定义时段不少于4个小时');
return;
}
},
submit() {
return new Promise(resolve => {
let minutes = 0;
this.form.timeRangeList.forEach(item => {
let end = new Date(new Date().toLocaleDateString() + ' ' + item.endTime).getTime();
let start = new Date(new Date().toLocaleDateString() + ' ' + item.startTime).getTime();
console.log(start, end);
minutes = (end - start) / 60000 + minutes;
});
if (minutes < 240) {
this.$message.error('自定义时段不少于4个小时');
resolve(false);
return;
}
this.$refs.defineTime.validate(val => {
console.log(val);
if (val) {
resolve(this.form);
} else {
......@@ -103,11 +181,20 @@ export default {
<style lang="scss" scoped>
.defineTime {
width: 400px;
// height: 164px;
background: #f7f8fa;
border-radius: 4px;
padding: 16px;
box-sizing: border-box;
.flex {
display: flex;
align-items: center;
}
/deep/ .el-date-editor.el-input {
width: 140px;
}
.addTimeBtn {
margin-top: 16px;
}
}
.tips {
font-size: 12px;
......
......@@ -174,6 +174,7 @@ export default {
}
}
},
currentTime: new Date(new Date().toLocaleDateString()).getTime()
};
},
......@@ -190,6 +191,8 @@ export default {
data(val) {
if (val) {
this.form = JSON.parse(JSON.stringify(val));
this.form[`holiday_date${this.form.holiday_type}`] = this.form.holiday_date;
this.form[`holiday_name${this.form.holiday_type}`] = this.form.holiday_name;
this.handleHolidayDay();
}
}
......@@ -256,16 +259,24 @@ export default {
this.selectedData = '';
this.visible = false;
},
getCurrentDate(time) {
let date = new Date().toLocaleDateString();
let currentdate = date + ' ' + time;
return new Date(currentdate).getTime();
},
submit() {
return new Promise(async resolve => {
const res = await this.$refs.defineTime.submit();
let arr = [];
if (!res) return;
res.timeRangeList.forEach(item => {
if (Object.keys(item).length) {
arr.push(`${item.startTime}-${item.endTime}`);
}
});
if (this.form.callFlag == 1) {
const res = await this.$refs.defineTime.submit();
if (!res) return;
res.timeRangeList.forEach(item => {
if (Object.keys(item).length) {
arr.push(`${item.startTime}-${item.endTime}`);
}
});
}
this.$refs.form.validate(val => {
if (val) {
const { callFlag, callTime, holiday_date1, holiday_type, holiday_name1, holiday_day, holiday_name2, holiday_date2 } = this.form;
......@@ -285,8 +296,7 @@ export default {
obj.holiday_name = holiday_name2;
obj.holiday_date = holiday_date2;
}
console.log(obj);
if (arr.length) {
if (callFlag == 1) {
obj.callTime = arr;
}
resolve(obj);
......
......@@ -576,7 +576,12 @@ export default {
const activeTimeData = await this.$refs[`activeTime${[1, 2].includes(this.form.scene) ? this.form.scene : ''}`].submit();
if (!activeTimeData) return;
console.log(activeTimeData);
const { startDate, endDate, callFlag, callTime, birth_type, birth_days, holiday_date, holiday_type, holiday_name } = activeTimeData;
if (new Date().getHours() >= 15 && new Date(startDate).getMonth() + 1 == new Date().getMonth() + 1 && new Date(startDate).getDate() == new Date().getDate()) {
this.$message.error('16:00之后不支持创建当天生效的活动');
return;
}
this.$refs.form.validate(async (val, obj) => {
console.log(val, obj);
if (val) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment