发布进行中,添加门店弹窗中

master
Sigo 4 years ago
parent 2ab4982b9a
commit 37ab37774a

@ -0,0 +1,64 @@
<template>
<el-dialog :close-on-click-modal="false" v-dialogDrag title="适用门店" :visible.sync="dialogVisible" width="600px">
<el-table :data="list" max-height="600" v-loading="listLoading" :element-loading-text="elementLoadingText" @select="handleSelect" @row-click="handleSelect" @row-dblclick="confirm">
<el-table-column align="center" width="60" type="selection"></el-table-column>
<el-table-column align="center" width="100" prop="storeNum" label="门店编码"></el-table-column>
<el-table-column align="center" min-width="120" prop="storeName" label="门店名称"></el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="close"> </el-button>
<el-button size="mini" type="primary" @click="confirm">
</el-button>
</span>
</el-dialog>
</template>
<script>
import { organizations } from "@/api/storeManage.js";
export default {
data() {
return {
//
list: [],
listLoading: false,
elementLoadingText: '正在加载...',
//
mulSelect: [],
dialogVisible: true,
};
},
created() {
this.fetchData()
},
methods: {
// ======================== ======================== //
//
show(list) {
this.dialogVisible = true
this.fetchData()
},
close() {
this.list = Array.from([]);
this.mulSelect = Array.from([]);
this.dialogVisible = false
},
// ======================== ======================== //
async fetchData() {
organizations().then((res) => {
console.log('res', res);
})
},
// ======================== ======================== //
handleSelect(row) {
console.log('row', row);
},
//
confirm() {
}
},
};
</script>
<style>
</style>

@ -11,34 +11,50 @@
<el-input-number v-model="form.couponNumber" :min="1" :precision="0" label="优惠券数量" style="width:100%"></el-input-number>
</el-form-item>
<el-form-item label="优惠方式" prop="couponType">
<el-radio v-model="form.couponType" :label="0"></el-radio>
<el-radio v-model="form.couponType" :label="1"></el-radio>
<el-radio v-model="form.couponType" :label="2"></el-radio>
<el-radio-group v-model="form.couponType" @change="handleChange($event===0?['fullKimsMoney']:$event===1?['fullDiscountMoney']:false)">
<el-radio v-model="form.couponType" :label="0"></el-radio>
<el-radio v-model="form.couponType" :label="1"></el-radio>
<el-radio v-model="form.couponType" :label="2"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item prop="fullKimsMoney" v-if="form.couponType===0">
<el-input-number class="hideBtn" v-model="form.fullKimsMoney" :min="1" :precision="0" placeholder="抵扣金额"></el-input-number>
</el-form-item>
<el-form-item prop="fullDiscountMoney" v-if="form.couponType===1">
<el-input-number class="hideBtn" v-model="form.fullDiscountMoney" :min="1" :max="100" :precision="0" placeholder="折扣(%)"></el-input-number>
</el-form-item>
<el-form-item label="优惠限制" prop="serviceConditions">
<el-radio v-model="form.serviceConditions" :label="0"></el-radio>
<el-radio v-model="form.serviceConditions" :label="1"></el-radio>
<el-radio-group v-model="form.serviceConditions">
<el-radio v-model="form.serviceConditions" :label="0"></el-radio>
<el-radio v-model="form.serviceConditions" :label="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.serviceConditions===0" prop="fullReductionMoney">
<amount-input ref="fullReductionMoney" @amount="handleAmount" name="fullReductionMoney" placeholder="满减金额(满多少可以减)"></amount-input>
<el-input-number class="hideBtn" v-model="form.fullReductionMoney" :min="1" :precision="2" placeholder="满减金额(满多少可以减)"></el-input-number>
</el-form-item>
<el-form-item label="适用门店" prop="suitableStore">
<el-radio v-model="form.suitableStore" :label="0"></el-radio>
<el-radio v-model="form.suitableStore" :label="1"></el-radio>
<el-radio-group v-model="form.suitableStore">
<el-radio v-model="form.suitableStore" :label="0"></el-radio>
<el-radio v-model="form.suitableStore" :label="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.suitableStore===1" prop="useStoreList">
<el-button type="primary" size="mini">选择门店</el-button>
</el-form-item>
<el-form-item label="适用项目" prop="suitableProject">
<el-radio v-model="form.suitableProject" :label="0"></el-radio>
<el-radio v-model="form.suitableProject" :label="1"></el-radio>
<el-radio-group v-model="form.suitableProject">
<el-radio v-model="form.suitableProject" :label="0"></el-radio>
<el-radio v-model="form.suitableProject" :label="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.suitableProject===1" prop="projectList">
<el-button type="primary" size="mini">选择项目</el-button>
</el-form-item>
<el-form-item label="有效方式" prop="indateType">
<el-radio v-model="form.indateType" :label="0"></el-radio>
<el-radio v-model="form.indateType" :label="1"></el-radio>
<el-radio-group v-model="form.indateType" @change="handleChange($event===0?['startDay','endDay']:$event===1?['fixDate']:false)">
<el-radio v-model="form.indateType" :label="0"></el-radio>
<el-radio v-model="form.indateType" :label="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.indateType===0" prop="startDay">
<el-input v-model.trim="form.startDay" placeholder="领取后多少天生效"></el-input>
@ -46,19 +62,21 @@
<el-form-item v-if="form.indateType===0" prop="endDay">
<el-input v-model.trim="form.endDay" placeholder="生效后多少天内有效"></el-input>
</el-form-item>
<el-form-item v-if="form.indateType===1" prop="startDate">
<el-date-picker v-model="form.fixDate" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="截止日期" value-format="yyyy-MM-dd">
<el-form-item v-if="form.indateType===1" prop="fixDate">
<el-date-picker v-model="form.fixDate" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="截止日期" value-format="yyyy-MM-dd 00:00:00" @change="handleChange(['fixDate'],true)">
</el-date-picker>
</el-form-item>
<el-form-item label="分享提成规则" prop="shareCommissionRules">
<el-radio v-model="form.shareCommissionRules" :label="0"></el-radio>
<el-radio v-model="form.shareCommissionRules" :label="1">(%)</el-radio>
<el-radio-group v-model="form.shareCommissionRules" @change="handleChange($event===0?['fixedAmount']:$event===1?['orderCommission']:false)">
<el-radio v-model="form.shareCommissionRules" :label="0"></el-radio>
<el-radio v-model="form.shareCommissionRules" :label="1">(%)</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.shareCommissionRules===0" prop="fixedAmount">
<amount-input ref="fixedAmount" @amount="handleAmount" name="fixedAmount" placeholder="固定提成(元)"></amount-input>
<el-input-number class="hideBtn" v-model="form.fixedAmount" :min="1" :precision="2" placeholder="固定提成(元)"></el-input-number>
</el-form-item>
<el-form-item v-if="form.shareCommissionRules===1" prop="orderCommission">
<amount-input ref="orderCommission" @amount="handleAmount" name="orderCommission" placeholder="单据金额抽成(%)"></amount-input>
<el-input-number class="hideBtn" v-model="form.orderCommission" :min="1" :max="100" :precision="0" placeholder="单据金额抽成(%)"></el-input-number>
</el-form-item>
<el-form-item label="活动图片" prop="imageUrl">
<active-img ref="activeImg" @active-img="handleImage"></active-img>
@ -75,15 +93,16 @@
</div>
</el-col>
</el-row>
<Store ref="Store" @call-back-store="callBackStore"></Store>
</div>
</template>
<script>
import AmountInput from '@/components/AmountInput/index'
import ActiveImg from './activeImg'
import Store from '@/components/mulStore/index'
export default {
name: 'Form',
components: { AmountInput, ActiveImg },
components: { ActiveImg, Store },
data() {
return {
form: {
@ -102,6 +121,12 @@ export default {
couponType: [
{ required: true, message: '请选择优惠方式', trigger: ['blur', 'change'] },
],
fullKimsMoney: [
{ required: true, message: '请输入抵扣金额', trigger: 'blur' },
],
fullDiscountMoney: [
{ required: true, message: '请输入折扣(%)', trigger: 'blur' },
],
fullReductionMoney: [
{ required: true, message: '请输入满减金额', trigger: 'blur' },
],
@ -114,6 +139,9 @@ export default {
indateType: [
{ required: true, message: '请选择有效方式', trigger: ['blur', 'change'] },
],
fixDate: [
{ required: true, message: '请选择有效日期', trigger: ['blur', 'change'] },
],
startDay: [
{ required: true, message: '请输入多少天', trigger: 'blur' },
],
@ -123,6 +151,12 @@ export default {
shareCommissionRules: [
{ required: true, message: '请选择分享提成规则', trigger: ['blur', 'change'] },
],
fixedAmount: [
{ required: true, message: '请输入固定金额', trigger: 'blur' },
],
orderCommission: [
{ required: true, message: '请输入单据金额抽成(%', trigger: 'blur' },
],
imageUrl: [{ required: true, message: '请上传活动图片', trigger: ['blur', 'change'] }],
},
}
@ -133,7 +167,10 @@ export default {
handleNext() {
this.$refs.form.validate((valid) => {
if (valid) {
this.$emit('next', 2, this.form)
let form = Object.assign({}, this.form);
delete form.fixDate
delete form.imageUrl
this.$emit('next', 2, form)
} else {
return false
}
@ -141,43 +178,48 @@ export default {
},
//
resetForm() {
let form = Object.assign({}, this.form);
if (form.serviceConditions === 0) {
this.$refs.fullReductionMoney.reset()
}
if (shareCommissionRules === 0) {
this.$refs.fixedAmount.reset()
}
if (shareCommissionRules === 1) {
this.$refs.orderCommission.reset()
}
this.$refs.form.resetFields()
this.$baseMessage('重置成功', 'success')
},
// ============================== ============================== //
// ,
handleChange(value, judge) {
if (judge) {
this.$refs.form.validateField(value)
let form = Object.assign({}, this.form);
form.startDate = form.fixDate[0]
form.endDate = form.fixDate[1]
this.form = Object.assign({}, form);
}
if (value.length > 1) {
value.forEach((item) => {
this.$refs.form.clearValidate([item])
});
} else {
this.$refs.form.clearValidate(value)
}
},
//
handleImage(file) {
let form = Object.assign({}, this.form);
form.multipartFile = file
form.imageUrl = true
this.form = Object.assign({}, form);
},
//
handleAmount(name, amount) {
let form = Object.assign({}, this.form)
form[name] = amount
this.form = Object.assign({}, form)
this.$nextTick(function () {
this.$refs.form.validateField(['imageUrl'])
});
},
//
handleClear() {
this.$refs.activeImg.handleClear()
}
},
callBackStore() { }
},
}
</script>
<style scoped>
.container .form {
width: 500px;
/* // margin: 0 auto; */
}
.container .box {
display: flex;
@ -188,4 +230,19 @@ export default {
.form .el-form-item {
margin-bottom: 15px;
}
.form /deep/ .el-form-item .el-input--medium .el-input__inner {
text-align: center;
}
.form /deep/ .el-form-item .el-form-item__content {
margin-left: 90px !important;
}
.form .hideBtn {
width: 100%;
}
.form .hideBtn /deep/ .el-input-number__decrease {
display: none;
}
.form .hideBtn /deep/ .el-input-number__increase {
display: none;
}
</style>

@ -142,14 +142,14 @@ body {
.el-form-item.is-required .el-form-item__label:before {
content: none !important;
} */
.el-radio__input.is-checked .el-radio__inner {
/* .el-radio__input.is-checked .el-radio__inner {
border-color: #f78989;
background: #f78989;
}
.el-radio__input.is-checked+.el-radio__label {
color: #f78989;
}
} */
.max-height-60 {
max-height: 60vh;

Loading…
Cancel
Save