Commit 968effdd by 曾经

节日 新增编辑

parent 46aaf70b
<template> <template>
<el-dialog title="新增节日" :visible.sync="visible" width="600px" @close="onClose"> <el-dialog :title="isEdit ? '编辑' : '新增节日'" :visible.sync="visible" width="600px" @close="onClose">
<el-form :model="submitData" :rules="rules" ref="submitData" label-width="95px"> <el-form :model="submitData" :rules="rules" ref="submitData" label-width="95px">
<el-row type="flex" style="background: #f7f8fa; border-radius: 2px; height: 32px; margin-bottom: 20px" align="middle"> <el-row type="flex" style="background: #f7f8fa; border-radius: 2px; height: 32px; margin-bottom: 20px" align="middle" v-if="!isEdit">
<i class="el-icon-warning" style="padding: 0 9px; color: #2f54eb"></i> <i class="el-icon-warning" style="padding: 0 9px; color: #2f54eb"></i>
<div style="font-size: 12px; color: #303133">新增节日后,则在商户后台节日活动弹框中展示</div> <div style="font-size: 12px; color: #303133">新增节日后,则在商户后台节日活动弹框中展示</div>
</el-row> </el-row>
<el-form-item label="节日分类" prop="categoryCode"> <el-form-item label="节日分类" prop="categoryCode">
<el-select v-model="submitData.categoryCode" clearable placeholder="请选择分类" style="width:465px"> <el-select v-model="submitData.categoryCode" clearable placeholder="请选择分类" style="width: 465px">
<el-option v-for="item in categoryList" :key="item.activityCategoryId" :label="item.categoryName" :value="item.activityCategoryId"> </el-option> <el-option v-for="item in categoryList" :key="item.activityCategoryId" :label="item.categoryName" :value="item.activityCategoryId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="节日名称" prop="name"> <el-form-item label="节日名称" prop="name">
<el-input v-model="submitData.name" placeholder="请输入节日名称,不超过 10 个字" maxlength="10" clearable></el-input> <el-input v-model="submitData.name" placeholder="请输入节日名称,不超过 10 个字" maxlength="10" clearable :disabled="isEdit"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="节日日期" prop="customFlag"> <el-form-item label="节日日期" prop="customFlag">
<el-radio v-model="submitData.customFlag" label="0">固定日期</el-radio> <el-radio v-model="submitData.customFlag" :label="0" :disabled="isEdit">固定日期</el-radio>
<el-radio v-model="submitData.customFlag" label="1">灵活日期</el-radio> <el-radio v-model="submitData.customFlag" :label="1" :disabled="isEdit">灵活日期</el-radio>
</el-form-item> </el-form-item>
<el-form-item label="选择日期" prop="date" v-if="submitData.customFlag == 0"> <el-form-item label="选择日期" prop="date" v-if="submitData.customFlag == 0">
<div> <div>
<el-radio v-model="submitData.dateType" label="1"> <el-radio v-model="submitData.dateType" :label="1" :disabled="isEdit">
<div style="display: inline-block">阳历</div> <div style="display: inline-block">阳历</div>
<el-form-item v-if="submitData.dateType == 1" label="" prop="date" style="margin-left: 16px; display: inline-block"> <el-form-item v-if="submitData.dateType == 1" label="" prop="date" style="margin-left: 16px; display: inline-block">
<el-date-picker v-model="submitData.date" type="date" placeholder="选择日期" format="MM-dd"> </el-date-picker> <el-date-picker v-model="submitData.date" type="date" placeholder="选择日期" format="MM-dd" :disabled="isEdit"> </el-date-picker>
</el-form-item> </el-form-item>
</el-radio> </el-radio>
</div> </div>
<div style="padding-top:10px"> <div style="padding-top: 10px">
<el-radio v-model="submitData.dateType" label="2"> <el-radio v-model="submitData.dateType" :label="2" :disabled="isEdit">
<div style="display: inline-block">农历</div> <div style="display: inline-block">农历</div>
<el-form-item v-if="submitData.dateType == 2" label="" prop="date" style="margin-left: 16px; display: inline-block"> <el-form-item v-if="submitData.dateType == 2" label="" prop="date" style="margin-left: 16px; display: inline-block">
<el-date-picker v-model="submitData.date" type="date" placeholder="选择日期" format="MM-dd"> </el-date-picker> <el-date-picker v-model="submitData.date" type="date" placeholder="选择日期" format="MM-dd" :disabled="isEdit"> </el-date-picker>
</el-form-item> </el-form-item>
</el-radio> </el-radio>
</div> </div>
...@@ -43,19 +43,19 @@ ...@@ -43,19 +43,19 @@
<el-form-item label="选择日期" v-if="submitData.customFlag == 1" prop="holidaysDate"> <el-form-item label="选择日期" v-if="submitData.customFlag == 1" prop="holidaysDate">
<el-row type="flex" align="middle"> <el-row type="flex" align="middle">
<el-form-item prop="month" style="margin: 0 10px 0 0"> <el-form-item prop="month" style="margin: 0 10px 0 0">
<el-select v-model="submitData.month" placeholder="请选择月份" class="selector-item"> <el-select v-model="submitData.month" placeholder="请选择月份" class="selector-item" :disabled="isEdit">
<el-option v-for="item in months" :key="item.key" :label="item.value" :value="item.key"> </el-option> <el-option v-for="item in months" :key="item.key" :label="item.value" :value="item.key"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="week" style="margin: 0 10px 0 0"> <el-form-item prop="week" style="margin: 0 10px 0 0">
<el-select v-model="submitData.week" placeholder="请选择周" class="selector-item"> <el-select v-model="submitData.week" placeholder="请选择周" class="selector-item" :disabled="isEdit">
<el-option v-for="item in weeks" :key="item.key" :label="item.value" :value="item.key"> </el-option> <el-option v-for="item in weeks" :key="item.key" :label="item.value" :value="item.key"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="weekDay" style="margin: 0 10px 0 0"> <el-form-item prop="weekDay" style="margin: 0 10px 0 0">
<el-select v-model="submitData.weekDay" placeholder="请选择星期" class="selector-item"> <el-select v-model="submitData.weekDay" placeholder="请选择星期" class="selector-item" :disabled="isEdit">
<el-option v-for="item in weekDays" :key="item.key" :label="item.value" :value="item.key"> </el-option> <el-option v-for="item in weekDays" :key="item.key" :label="item.value" :value="item.key"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -79,19 +79,20 @@ ...@@ -79,19 +79,20 @@
<script> <script>
// import calendar from '@/utils/calendar.js'; // import calendar from '@/utils/calendar.js';
import fetch from '@/api/operation.js'; import fetch from '@/api/operation.js';
const { addHoliday, getHolidayCategoryList } = fetch; const { addHoliday, getHolidayCategoryList,editHoliday } = fetch;
export default { export default {
name: 'HolidayDialog', name: 'HolidayDialog',
props: { props: {
visible: Boolean visible: Boolean,
data: Object
}, },
data() { data() {
return { return {
submitData: { submitData: {
categoryCode: '', // 节日类目id categoryCode: '', // 节日类目id
name: '', name: '',
customFlag: '0', customFlag: 0,
dateType: '1', dateType: 1,
holidaysDate: '', holidaysDate: '',
sort: '', sort: '',
...@@ -281,7 +282,7 @@ export default { ...@@ -281,7 +282,7 @@ export default {
this.categoryList = result; this.categoryList = result;
}, },
onClose() { onClose() {
this.feeItem = {}; this.data = {};
this.enterpriseParams = { this.enterpriseParams = {
pageSize: 20, pageSize: 20,
currentPage: 1, currentPage: 1,
...@@ -299,15 +300,17 @@ export default { ...@@ -299,15 +300,17 @@ export default {
name, name,
customFlag, customFlag,
dateType, dateType,
sort sort,
holidaysId: this.data.holidaysId || ''
}; };
if (customFlag == 1) { if (customFlag == 1) {
params.holidaysDate = month + '-' + week + '-' + weekDay; params.holidaysDate = month + '-' + week + '-' + weekDay;
} else { } else {
params.holidaysDate = date.getMonth() + 1 + '-' + date.getDate(); params.holidaysDate = date.getMonth() + 1 + '-' + date.getDate();
} }
addHoliday(params).then(() => {
this.$message.success('添加成功'); (this.isEdit?editHoliday:addHoliday)(params).then(() => {
this.$message.success(this.isEdit ? '保存成功' : '添加成功');
this.onClose(); this.onClose();
this.$emit('change', params); this.$emit('change', params);
}); });
...@@ -318,28 +321,48 @@ export default { ...@@ -318,28 +321,48 @@ export default {
} }
}, },
watch: { watch: {
visible: { data: {
handler(n) { handler(n) {
if (n) { this.isEdit = n && n.categoryCode ? true : false;
this.getCategoryList(); if (n && n.categoryCode) {
this.submitData = { this.submitData = {
categoryCode: '', // 节日类目id categoryCode: n.categoryCode, // 节日类目id
name: '', name: n.name,
customFlag: '0', customFlag: n.customFlag,
dateType: '1', dateType: n.dateType,
holidaysDate: '', holidaysDate: n.holidaysDate,
sort: '' sort: n.sort
}; };
let arr = (n.holidaysDate || '').split('-');
if (n.customFlag == 1) {
this.submitData.month = arr[0];
this.submitData.week = arr[1];
this.submitData.weekDay = arr[2];
} else {
this.submitData.date = new Date(2000, +arr[0] - 1, +arr[1]);
}
} else { } else {
this.submitData = { this.submitData = {
categoryCode: '', // 节日类目id categoryCode: '', // 节日类目id
name: '', name: '',
customFlag: '0', customFlag: 0,
dateType: '1', dateType: 1,
holidaysDate: '', holidaysDate: '',
sort: '' sort: '',
month: '',
week: '',
weekDay: '',
date: null
}; };
} }
this.$refs['submitData'].resetFields();
}
},
visible: {
handler(n) {
if (n) {
this.getCategoryList();
}
} }
} }
} }
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
</el-row> </el-row>
<el-row type="flex" align="middle"> <el-row type="flex" align="middle">
<el-button @click="categoryManage">分类管理</el-button> <el-button @click="categoryManage">分类管理</el-button>
<el-button type="primary" @click="holidayDialogVisible = true">新增节日</el-button> <el-button type="primary" @click="addHoliday()">新增节日</el-button>
</el-row> </el-row>
</el-row> </el-row>
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
<el-table-column label="操作" min-width="110px"> <el-table-column label="操作" min-width="110px">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-row type="flex"> <el-row type="flex">
<el-button type="text" @click="edit(row)">编辑</el-button>
<el-button type="text" @click="del(row)">删除</el-button> <el-button type="text" @click="del(row)">删除</el-button>
</el-row> </el-row>
</template> </template>
...@@ -40,7 +41,7 @@ ...@@ -40,7 +41,7 @@
<holiday-category-dialog :visible.sync="holidayCategoryDialogVisible" @refresh="getCategoryList" v-if="holidayCategoryDialogVisible"></holiday-category-dialog> <holiday-category-dialog :visible.sync="holidayCategoryDialogVisible" @refresh="getCategoryList" v-if="holidayCategoryDialogVisible"></holiday-category-dialog>
<holiday-dialog :visible.sync="holidayDialogVisible" @change="loadData" v-if="holidayDialogVisible"></holiday-dialog> <holiday-dialog :visible.sync="holidayDialogVisible" @change="loadData" :data.sync="editItem"></holiday-dialog>
</div> </div>
</template> </template>
...@@ -48,7 +49,7 @@ ...@@ -48,7 +49,7 @@
import fetch from '@/api/operation.js'; import fetch from '@/api/operation.js';
import util from '@/filters/index.js'; import util from '@/filters/index.js';
const { formatDate2 } = util; const { formatDate2 } = util;
const { getPageHolidays, delHoliday, getHolidayCategoryList } = fetch; const { getPageHolidays, delHoliday, getHolidayCategoryList,getHolidayDetail } = fetch;
import holidayCategoryDialog from './component/holiday-category-dialog.vue'; import holidayCategoryDialog from './component/holiday-category-dialog.vue';
import holidayDialog from './component/holiday-dialog.vue'; import holidayDialog from './component/holiday-dialog.vue';
...@@ -120,12 +121,20 @@ export default { ...@@ -120,12 +121,20 @@ export default {
this.loadData(); this.loadData();
}); });
}, },
async edit(item){
let detail = await getHolidayDetail({
holidaysId: item.holidaysId || ''
});
console.log("detail----->",detail.result);
this.holidayDialogVisible = true;
this.editItem = detail.result;
},
addHoliday(){
this.holidayDialogVisible = true;
this.editItem = {};
},
categoryManage() { categoryManage() {
this.holidayCategoryDialogVisible = true; this.holidayCategoryDialogVisible = true;
},
addTenant() {
this.feeItem = {};
this.feeDialogVisible = true;
} }
}, },
filters: { filters: {
......
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