web-base-admin/src/views/marketing/shoppingUpgrade/updateInfo.vue

377 lines
9.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="page">
<div class="topbox">
<div
v-for="(item, index) in topList"
:key="index"
class="levelList_i"
:class="tabActive == item.id ? 'act' : ''"
@click.prevent="handleLink(item.id)"
>
{{ item.name }}
</div>
</div>
<div class="main">
<div v-show="tabActive == 0">
<div class="tit">基本信息</div>
<div class="xian" />
<el-form
ref="ruleForm"
:model="ruleForm"
:rules="rules"
label-width="auto"
class="demo-ruleForm"
>
<el-row>
<el-col :span="8">
<el-form-item :label="'活动名称'" prop="actName">
<el-input
v-model="ruleForm.actName"
clearable
:disabled="lookOver"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item :label="'活动说明'" prop="actExplain">
<editor
ref="sptwEditor"
v-model="ruleForm.actExplain"
:read-only="lookOver"
:min-height="196"
:upload-url="uploadImgUrl"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item :label="'活动封面'" prop="actCover">
<imageUpload v-model="ruleForm.actCover" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item :label="'活动时间'" prop="ruleFormTime">
<el-date-picker
v-model="ruleForm.ruleFormTime"
:disabled="lookOver"
value-format="yyyy-MM-dd"
type="daterange"
:range-separator="'至'"
:start-placeholder="'开始日期'"
:end-placeholder="'结束日期'"
@change="changeTime"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item :label="'展示时间'" prop="ruleFormTime1">
<el-date-picker
v-model="ruleForm.ruleFormTime1"
:disabled="lookOver"
value-format="yyyy-MM-dd"
type="daterange"
:range-separator="'至'"
:start-placeholder="'开始日期'"
:end-placeholder="'结束日期'"
@change="changeTime1"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<UpdateInfo v-show="tabActive == 2" ref="updateInfo" />
</div>
<div v-show="controlType != 4" class="footer">
<el-button size="small" class="cancelBtn" @click="$router.back()">
{{ '取消' }}</el-button>
<el-button size="small" class="sureBtn" @click="submit('ruleForm')">
{{ '确认' }}</el-button>
</div>
<!-- </div> -->
</div>
</template>
<script>
import Editor from '@/components/Editor'
import * as api from '@/api/giftGoods.js'
import ImageUpload from '@/components/ImageUpload'
import UpdateInfo from '@/views/marketing/shoppingUpgrade/update'
import { updateShoppingUpgradeList, getShoppingUpgradeDetail } from '@/api/activity.js'
export default {
name: 'AddDirectPushUpgrade',
components: {
ImageUpload,
UpdateInfo,
Editor
},
data() {
return {
tabActive: 0,
topList: [
{
name: '基本信息',
id: 0
},
{
name: '加购升级',
id: 2
}
],
uploadImgUrl: process.env.VUE_APP_BASE_API + '/system/upload',
ruleForm: {
ruleFormTime: [],
ruleFormTime1: [],
actName: '',
actExplain: '',
actCover: ''
},
rules: {
actName: [
{ required: true, message: '请输入活动名称', trigger: 'blur' }
],
actExplain: [
{ required: true, message: '请输入活动说明', trigger: 'blur' }
],
actCover: [
{ required: true, message: '请上传活动封面', trigger: 'change' }
],
ruleFormTime: [
{ required: true, message: '请选择活动时间', trigger: 'change' }
],
ruleFormTime1: [
{ required: true, message: '请选择展示时间', trigger: 'change' }
]
},
lookOver: false,
gradeList: [],
awardsList: [],
registList: [],
pkId: '',
repurchaseCouponsShowList: [],
controlType: '',
addData: {}
}
},
mounted() {
this.getData()
// 1=新增,2=修改,3=删除4查看
if (
this.$route.query.controlType == 4 ||
this.$route.query.controlType == 3
) {
this.lookOver = true
} else {
this.lookOver = false
}
this.controlType = this.$route.query.controlType
this.pkId = this.$route.query.pkId || ''
if (this.pkId) {
this.getDetails()
}
},
methods: {
splitDate(date) {
return date.split(' ')[0]
},
getDetails() {
getShoppingUpgradeDetail({
pkId: this.pkId
})
.then((res) => {
this.addData = res.data
this.$set(this.ruleForm, 'actName', res.data.actName)
this.$set(
this.ruleForm,
'actExplain',
res.data.actExplain
)
this.$set(this.ruleForm, 'actCover', res.data.actCover)
this.ruleForm.pkId = res.data.pkId
this.ruleForm.actStartDate = res.data.actStartDate
this.ruleForm.actEndDate = res.data.actEndDate
this.ruleForm.disStartDate = res.data.disStartDate
this.ruleForm.disEndDate = res.data.disEndDate
const actStartDate = this.splitDate(res.data.actStartDate)
const actEndDate = this.splitDate(res.data.actEndDate)
const disStartDate = this.splitDate(res.data.disStartDate)
const disEndDate = this.splitDate(res.data.disEndDate)
this.$set(this.ruleForm, 'ruleFormTime', [
actStartDate,
actEndDate
])
this.$set(this.ruleForm, 'ruleFormTime1', [
disStartDate,
disEndDate
])
this.$refs.updateInfo.initData(
this.addData.acAddUpgradeConfigParams || []
)
})
},
// 切换tab
handleLink(id) {
this.tabActive = id
},
// 单选
changeTime(val) {
this.ruleForm.actStartDate = val[0]
this.ruleForm.actEndDate = val[1]
},
changeTime1(val) {
this.ruleForm.disStartDate = val[0]
this.ruleForm.disEndDate = val[1]
},
getData() {
api.awardsList().then((res) => {
this.awardsList = res.rows
})
api.gradeList().then((res) => {
this.gradeList = res.rows
})
api.registerPowerState().then((res) => {
this.registList = res.data
})
},
submit() {
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
const obj = Object.assign(
{},
{
controlType: this.controlType,
activityParam: {
...this.ruleForm,
actStartDate: this.ruleForm.actStartDate + ' 00:00:00',
actEndDate: this.ruleForm.actEndDate + ' 23:59:59',
disStartDate: this.ruleForm.disStartDate + ' 00:00:00',
disEndDate: this.ruleForm.disEndDate + ' 23:59:59'
},
acAddUpgradeConfigParam:
this.$refs.updateInfo.allData
// authorityList: this.$refs.updateInfo.form.waresAuthorityList
}
)
updateShoppingUpgradeList(obj).then((res) => {
if (res.code === 200) {
this.$message({
message: res.msg || '操作成功',
type: 'success'
})
this.$router.back()
}
})
}
})
}
}
}
</script>
<style lang="scss" scoped>
.page {
padding: 20px;
background: #f9f9f9;
font-size: 14px;
.main_a {
height: calc(100vh - 144px);
display: flex;
flex-direction: column;
}
.main {
background: #ffffff;
border-radius: 8px;
// height: calc(100vh - 124px);
box-shadow: 0px 2px 20px 0px rgba(238, 238, 238, 0.5);
}
::v-deep .el-select {
width: 100%;
}
}
.footer {
height: 68px;
background: #ffffff;
box-shadow: 0px -3px 20px 0px rgba(204, 204, 204, 0.5);
// margin: 0 20px;
display: flex;
justify-content: center;
align-items: center;
.thebtn1 {
background: #3181e5;
color: #ffffff;
padding: 9px 45px;
}
.thebtn2 {
background: #cccccc;
color: #ffffff;
padding: 9px 45px;
}
}
.tit {
font-size: 14px;
font-weight: bold;
color: #333333;
padding: 0 20px;
border-left: 5px solid #c8161d;
margin: 20px 0 10px 0;
}
.xian {
height: 1px;
background: rgba(0, 0, 0, 0.1);
}
.demo-ruleForm {
padding: 20px 0;
}
::v-deep .el-date-editor--datetimerange {
width: auto !important;
}
.flexed {
display: flex;
}
.flexed_l {
margin-right: 20px;
}
.topbox {
align-items: center;
padding: 0px 0 15px 0;
display: flex;
// background: skyblue;
.levelList_i {
margin-left: 20px;
position: relative;
cursor: pointer;
padding: 0 5px;
width: 88px;
height: 34px;
border-radius: 17px;
border: 1px solid #cccccc;
font-size: 14px;
font-family: MicrosoftYaHei;
text-align: center;
line-height: 32px;
}
.act {
color: #ffffff;
background: #c8161d;
}
}
::v-deep .el-form-item {
margin-bottom: 20px !important;
}
</style>