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

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-input-number v-model="form.couponNumber" :min="1" :precision="0" label="优惠券数量" style="width:100%"></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="优惠方式" prop="couponType"> <el-form-item label="优惠方式" prop="couponType">
<el-radio v-model="form.couponType" :label="0"></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="1"></el-radio> <el-radio v-model="form.couponType" :label="0"></el-radio>
<el-radio v-model="form.couponType" :label="2"></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>
<el-form-item label="优惠限制" prop="serviceConditions"> <el-form-item label="优惠限制" prop="serviceConditions">
<el-radio v-model="form.serviceConditions" :label="0"></el-radio> <el-radio-group v-model="form.serviceConditions">
<el-radio v-model="form.serviceConditions" :label="1"></el-radio> <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>
<el-form-item v-if="form.serviceConditions===0" prop="fullReductionMoney"> <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>
<el-form-item label="适用门店" prop="suitableStore"> <el-form-item label="适用门店" prop="suitableStore">
<el-radio v-model="form.suitableStore" :label="0"></el-radio> <el-radio-group v-model="form.suitableStore">
<el-radio v-model="form.suitableStore" :label="1"></el-radio> <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>
<el-form-item v-if="form.suitableStore===1" prop="useStoreList"> <el-form-item v-if="form.suitableStore===1" prop="useStoreList">
<el-button type="primary" size="mini">选择门店</el-button> <el-button type="primary" size="mini">选择门店</el-button>
</el-form-item> </el-form-item>
<el-form-item label="适用项目" prop="suitableProject"> <el-form-item label="适用项目" prop="suitableProject">
<el-radio v-model="form.suitableProject" :label="0"></el-radio> <el-radio-group v-model="form.suitableProject">
<el-radio v-model="form.suitableProject" :label="1"></el-radio> <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>
<el-form-item v-if="form.suitableProject===1" prop="projectList"> <el-form-item v-if="form.suitableProject===1" prop="projectList">
<el-button type="primary" size="mini">选择项目</el-button> <el-button type="primary" size="mini">选择项目</el-button>
</el-form-item> </el-form-item>
<el-form-item label="有效方式" prop="indateType"> <el-form-item label="有效方式" prop="indateType">
<el-radio v-model="form.indateType" :label="0"></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="1"></el-radio> <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>
<el-form-item v-if="form.indateType===0" prop="startDay"> <el-form-item v-if="form.indateType===0" prop="startDay">
<el-input v-model.trim="form.startDay" placeholder="领取后多少天生效"></el-input> <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-form-item v-if="form.indateType===0" prop="endDay">
<el-input v-model.trim="form.endDay" placeholder="生效后多少天内有效"></el-input> <el-input v-model.trim="form.endDay" placeholder="生效后多少天内有效"></el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="form.indateType===1" prop="startDate"> <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"> <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-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="分享提成规则" prop="shareCommissionRules"> <el-form-item label="分享提成规则" prop="shareCommissionRules">
<el-radio v-model="form.shareCommissionRules" :label="0"></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="1">(%)</el-radio> <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>
<el-form-item v-if="form.shareCommissionRules===0" prop="fixedAmount"> <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>
<el-form-item v-if="form.shareCommissionRules===1" prop="orderCommission"> <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>
<el-form-item label="活动图片" prop="imageUrl"> <el-form-item label="活动图片" prop="imageUrl">
<active-img ref="activeImg" @active-img="handleImage"></active-img> <active-img ref="activeImg" @active-img="handleImage"></active-img>
@ -75,15 +93,16 @@
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<Store ref="Store" @call-back-store="callBackStore"></Store>
</div> </div>
</template> </template>
<script> <script>
import AmountInput from '@/components/AmountInput/index'
import ActiveImg from './activeImg' import ActiveImg from './activeImg'
import Store from '@/components/mulStore/index'
export default { export default {
name: 'Form', name: 'Form',
components: { AmountInput, ActiveImg }, components: { ActiveImg, Store },
data() { data() {
return { return {
form: { form: {
@ -102,6 +121,12 @@ export default {
couponType: [ couponType: [
{ required: true, message: '请选择优惠方式', trigger: ['blur', 'change'] }, { required: true, message: '请选择优惠方式', trigger: ['blur', 'change'] },
], ],
fullKimsMoney: [
{ required: true, message: '请输入抵扣金额', trigger: 'blur' },
],
fullDiscountMoney: [
{ required: true, message: '请输入折扣(%)', trigger: 'blur' },
],
fullReductionMoney: [ fullReductionMoney: [
{ required: true, message: '请输入满减金额', trigger: 'blur' }, { required: true, message: '请输入满减金额', trigger: 'blur' },
], ],
@ -114,6 +139,9 @@ export default {
indateType: [ indateType: [
{ required: true, message: '请选择有效方式', trigger: ['blur', 'change'] }, { required: true, message: '请选择有效方式', trigger: ['blur', 'change'] },
], ],
fixDate: [
{ required: true, message: '请选择有效日期', trigger: ['blur', 'change'] },
],
startDay: [ startDay: [
{ required: true, message: '请输入多少天', trigger: 'blur' }, { required: true, message: '请输入多少天', trigger: 'blur' },
], ],
@ -123,6 +151,12 @@ export default {
shareCommissionRules: [ shareCommissionRules: [
{ required: true, message: '请选择分享提成规则', trigger: ['blur', 'change'] }, { 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'] }], imageUrl: [{ required: true, message: '请上传活动图片', trigger: ['blur', 'change'] }],
}, },
} }
@ -133,7 +167,10 @@ export default {
handleNext() { handleNext() {
this.$refs.form.validate((valid) => { this.$refs.form.validate((valid) => {
if (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 { } else {
return false return false
} }
@ -141,43 +178,48 @@ export default {
}, },
// //
resetForm() { 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.$refs.form.resetFields()
this.$baseMessage('重置成功', 'success') 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) { handleImage(file) {
let form = Object.assign({}, this.form); let form = Object.assign({}, this.form);
form.multipartFile = file form.multipartFile = file
form.imageUrl = true
this.form = Object.assign({}, form); this.form = Object.assign({}, form);
}, this.$nextTick(function () {
// this.$refs.form.validateField(['imageUrl'])
handleAmount(name, amount) { });
let form = Object.assign({}, this.form)
form[name] = amount
this.form = Object.assign({}, form)
}, },
// //
handleClear() { handleClear() {
this.$refs.activeImg.handleClear() this.$refs.activeImg.handleClear()
} },
callBackStore() { }
}, },
} }
</script> </script>
<style scoped> <style scoped>
.container .form { .container .form {
width: 500px; width: 500px;
/* // margin: 0 auto; */
} }
.container .box { .container .box {
display: flex; display: flex;
@ -188,4 +230,19 @@ export default {
.form .el-form-item { .form .el-form-item {
margin-bottom: 15px; 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> </style>

@ -1,187 +1,187 @@
/* 主题样式 */ /* 主题样式 */
.el-aside { .el-aside {
/* background: #f78989; */ /* background: #f78989; */
/* background: linear-gradient(#f78989, #d69c9c); */ /* background: linear-gradient(#f78989, #d69c9c); */
/* background-color: #1873d4; */ /* background-color: #1873d4; */
background: linear-gradient(#51a5ff, #1873d4); background: linear-gradient(#51a5ff, #1873d4);
/* 随着.el-menu-item background:rgb(247, 137, 137) !important;一起变 */ /* 随着.el-menu-item background:rgb(247, 137, 137) !important;一起变 */
/* background: rgb(247, 137, 137); */ /* background: rgb(247, 137, 137); */
height: 100%; height: 100%;
font-family: "幼圆"; font-family: "幼圆";
font-weight: 700; font-weight: 700;
color: rgb(207, 207, 207) !important; color: rgb(207, 207, 207) !important;
} }
.collapse:hover { .collapse:hover {
/* 收缩菜单按钮样式 */ /* 收缩菜单按钮样式 */
/* background: #fc9ca7; */ /* background: #fc9ca7; */
background-color: linear-gradient(#fc3b3b, #2375f0); background-color: linear-gradient(#fc3b3b, #2375f0);
box-shadow: #51a5ff 10px 10px 8px; box-shadow: #51a5ff 10px 10px 8px;
} }
/* 菜单 */ /* 菜单 */
.el-submenu .el-menu-item { .el-submenu .el-menu-item {
height: 35px; height: 35px;
line-height: 35px; line-height: 35px;
} }
/* 图标 */ /* 图标 */
.el-submenu [class^=el-icon-] { .el-submenu [class^=el-icon-] {
font-size: 16px; font-size: 16px;
} }
/* 一级菜单字体 */ /* 一级菜单字体 */
.el-submenu__title span { .el-submenu__title span {
font-size: 14px; font-size: 14px;
} }
.el-menu-item, .el-menu-item,
.el-submenu__title { .el-submenu__title {
/* 一级菜单 */ /* 一级菜单 */
height: 50px; height: 50px;
line-height: 50px; line-height: 50px;
} }
/* 二级菜单字体 */ /* 二级菜单字体 */
.el-menu-item { .el-menu-item {
font-size: 12px; font-size: 12px;
} }
.el-menu-vertical-demo { .el-menu-vertical-demo {
/*菜单列表样式*/ /*菜单列表样式*/
padding-bottom: 10px; padding-bottom: 10px;
} }
.el-menu-item.is-active { .el-menu-item.is-active {
/* background-color: #fc7483 !important; */ /* background-color: #fc7483 !important; */
/* 右边菜单样式 */ /* 右边菜单样式 */
/* background-color: linear-gradient(#f78989, #f78989); */ /* background-color: linear-gradient(#f78989, #f78989); */
/* background-color: #1873d4; */ /* background-color: #1873d4; */
/* background: linear-gradient(#1873d4, #51a5ff); */ /* background: linear-gradient(#1873d4, #51a5ff); */
color: rgb(207, 207, 207) !important; color: rgb(207, 207, 207) !important;
} }
.el-menu-item:focus { .el-menu-item:focus {
background-color: none !important; background-color: none !important;
} }
.el-menu { .el-menu {
/* 右边菜单样式 */ /* 右边菜单样式 */
/* background: linear-gradient(#f78989, #fdb3b3); */ /* background: linear-gradient(#f78989, #fdb3b3); */
/* background-color: #1873d4; */ /* background-color: #1873d4; */
background: linear-gradient(#1873d4, #51a5ff); background: linear-gradient(#1873d4, #51a5ff);
} }
.el-submenu .is-active { .el-submenu .is-active {
/* 菜单栏选中样式 */ /* 菜单栏选中样式 */
min-width: 64px; min-width: 64px;
border: none; border: none;
/* background: #f0eeef; */ /* background: #f0eeef; */
/* background: linear-gradient(#f78989, #a1c5fc); */ /* background: linear-gradient(#f78989, #a1c5fc); */
background: linear-gradient(#5aa7fa, #116cce) !important; background: linear-gradient(#5aa7fa, #116cce) !important;
} }
.el-submenu__title:hover, .el-submenu__title:hover,
.el-menu-item:hover { .el-menu-item:hover {
/* 菜单鼠标覆盖样式 */ /* 菜单鼠标覆盖样式 */
/* background: linear-gradient(#f78989, #a1c5fc) !important; */ /* background: linear-gradient(#f78989, #a1c5fc) !important; */
background: linear-gradient(#5aa7fa, #116cce) !important; background: linear-gradient(#5aa7fa, #116cce) !important;
} }
html, html,
body { body {
/* 主题样式 */ /* 主题样式 */
height: 100%; height: 100%;
overflow: auto; overflow: auto;
/* background: linear-gradient(#ffffff, #f9f9f9); */ /* background: linear-gradient(#ffffff, #f9f9f9); */
background-color: #5e9af5; background-color: #5e9af5;
} }
.el-header { .el-header {
/* 头部样式 */ /* 头部样式 */
/* background: linear-gradient(#fda1a1, #fd7b7b); */ /* background: linear-gradient(#fda1a1, #fd7b7b); */
/* background-color: #1873d4; */ /* background-color: #1873d4; */
background: linear-gradient(#6cb3ff, #1873d4); background: linear-gradient(#6cb3ff, #1873d4);
border-top: 2px solid linear-gradient(#f78989, #5e9af5); border-top: 2px solid linear-gradient(#f78989, #5e9af5);
width: 100%; width: 100%;
z-index: 98; z-index: 98;
padding: 0 !important; padding: 0 !important;
} }
/* 面包屑导航样式 */ /* 面包屑导航样式 */
/* ------------------- */ /* ------------------- */
/* ------------------- */ /* ------------------- */
/* 搜索 */ /* 搜索 */
/* .el-form-item label:after { /* .el-form-item label:after {
content: " "; content: " ";
display: inline-block; display: inline-block;
width: 100%; width: 100%;
} }
.el-form-item__label { .el-form-item__label {
text-align: justify text-align: justify
} }
.el-form-item.is-required .el-form-item__label:before { .el-form-item.is-required .el-form-item__label:before {
content: none !important; content: none !important;
} */ } */
.el-radio__input.is-checked .el-radio__inner { /* .el-radio__input.is-checked .el-radio__inner {
border-color: #f78989; border-color: #f78989;
background: #f78989; background: #f78989;
} }
.el-radio__input.is-checked+.el-radio__label { .el-radio__input.is-checked+.el-radio__label {
color: #f78989; color: #f78989;
} } */
.max-height-60 { .max-height-60 {
max-height: 60vh; max-height: 60vh;
overflow: auto; overflow: auto;
} }
.max-height-55 { .max-height-55 {
max-height: 55vh; max-height: 55vh;
overflow: auto; overflow: auto;
} }
.max-height-50 { .max-height-50 {
max-height: 50vh; max-height: 50vh;
overflow: auto; overflow: auto;
} }
.max-height-45 { .max-height-45 {
max-height: 45vh; max-height: 45vh;
overflow: auto; overflow: auto;
} }
.max-height-40 { .max-height-40 {
max-height: 40vh; max-height: 40vh;
overflow: auto; overflow: auto;
} }
.max-height-65 { .max-height-65 {
max-height: 65vh; max-height: 65vh;
overflow: auto; overflow: auto;
} }
.max-height-35 { .max-height-35 {
max-height: 35vh; max-height: 35vh;
overflow: auto; overflow: auto;
} }

Loading…
Cancel
Save