You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

170 lines
4.3 KiB

<template>
<el-dialog :append-to-body="true" :close-on-click-modal="false" :before-close="cancel" :visible.sync="dialog" :title="isAdd ? '新增' : '编辑'" width="500px">
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="140px">
<el-form-item label="标题">
<el-input v-model="form.name" style="width: 300px;" />
</el-form-item>
<el-form-item label="H5跳转url">
<el-input v-model="form.url" style="width: 300px;" />
</el-form-item>
<el-form-item label="uniapp路由">
<el-input v-model="form.uniapp_url" style="width: 300px;" />
</el-form-item>
<el-form-item label="轮播图类型">
<el-select v-model="form.type" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="图片(750*375)">
<MaterialList v-model="form.imageArr" style="width: 300px" type="image" :num="1" :width="150" :height="150" />
</el-form-item>
<el-form-item label="轮播背景色">
<el-color-picker v-model="form.color"></el-color-picker>
</el-form-item>
<el-form-item label="排序">
<el-input v-model="form.sort" style="width: 300px;" />
</el-form-item>
<el-form-item label="是否显示">
<el-radio v-model="form.status" :label="1"></el-radio>
<el-radio v-model="form.status" :label="0" style="width: 200px;">否</el-radio>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="cancel">取消</el-button>
<el-button :loading="loading" type="primary" @click="doSubmit">确认</el-button>
</div>
</el-dialog>
</template>
<script>
import { add, edit } from '@/api/bxg/yxSystemGroupData'
import picUpload from '@/components/pic-upload'
import MaterialList from '@/components/material'
export default {
components: { picUpload, MaterialList },
props: {
isAdd: {
type: Boolean,
required: true
}
},
data() {
return {
loading: false, dialog: false,
options:[
{
value:0,
label:'首页轮播图',
},
{
value:1,
label:'品牌馆轮播图',
},
{
value:2,
label:'优惠券轮播图',
},
{
value:3,
label:'活动专区轮播图',
},
{
value:4,
label:'榜单列表轮播图',
},
],
form: {
id: '',
groupName: 'zsw_home_banner',
name: '',
type:0,
url: '',
wxapp_url: '',
uniapp_url: '',
pic: '',
imageArr: [],
sort: 0,
status: 1,
color: ''
},
rules: {
}
}
},
watch: {
'form.imageArr': function(val) {
if (val) {
this.form.pic = val.join(',')
}
}
},
methods: {
cancel() {
this.resetForm()
},
doSubmit() {
this.loading = true
if (this.isAdd) {
this.doAdd()
} else this.doEdit()
},
doAdd() {
add(this.form).then(res => {
this.resetForm()
this.$notify({
title: '添加成功',
type: 'success',
duration: 2500
})
this.loading = false
this.$parent.init()
}).catch(err => {
this.loading = false
console.log(err.response.data.message)
})
},
doEdit() {
edit(this.form).then(res => {
this.resetForm()
this.$notify({
title: '修改成功',
type: 'success',
duration: 2500
})
this.loading = false
this.$parent.init()
}).catch(err => {
this.loading = false
console.log(err.response.data.message)
})
},
resetForm() {
this.dialog = false
this.$refs['form'].resetFields()
this.form = {
id: '',
groupName: 'zsw_home_banner',
name: '',
type:'',
url: '',
wxapp_url: '',
uniapp_url: '',
pic: '',
imageArr: [],
sort: 0,
status: 1,
color: null
}
}
}
}
</script>
<style scoped>
</style>