| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <template>
- <el-dialog :title="titleMap[mode]" v-model="visible" :width="600" destroy-on-close @closed="$emit('closed')">
- <el-form ref="dialogForm" :model="formData" :rules="rules" label-width="100px" label-position="top">
- <el-form-item label="名称" prop="title">
- <el-input v-model="formData.title" clearable placeholder="请输入"></el-input>
- <div class="el-form-item-msg"></div>
- </el-form-item>
- <el-form-item label="图片" prop="img">
- <sc-upload v-model="formData.img"></sc-upload>
- <div class="el-form-item-msg">建议尺寸 750 * 360 px</div>
- </el-form-item>
- <el-form-item label="跳转路径" prop="path">
- <el-input v-model="formData.path" clearable placeholder="请输入"></el-input>
- <div class="el-form-item-msg"></div>
- </el-form-item>
- <el-form-item label="状态" prop="status">
- <el-radio-group v-model="formData.status">
- <el-radio-button :label="1">正常</el-radio-button>
- <el-radio-button :label="2">禁用</el-radio-button>
- </el-radio-group>
- </el-form-item>
- </el-form>
- <template #footer>
- <el-button @click="visible=false" size="large">取 消</el-button>
- <el-button v-if="mode!='show'" size="large" type="primary" :loading="isSaveing" @click="submit()">保 存</el-button>
- </template>
- </el-dialog>
-
- </template>
- <script>
- export default {
- data(){
- return {
- channelData:[],
- channelState:false,
- loading: false,
- isSaveing: false,
- mode:"add",
- titleMap:{
- add:"新增幻灯片",
- edit:"编辑幻灯片"
- },
- visible:false,
- formData:{},
- rules:{
- img: [
- {required: true, message: '请上传'}
- ],
- status: [
- {required: true, message: '请选择'}
- ],
- title: [
- {required: true, message: '请输入'}
- ]
- }
- }
- },
- methods:{
- open(mode = 'add'){
- this.mode = mode;
- this.visible = true;
- return this
- },
- //表单注入数据
- setData(data){
- this.formData = JSON.parse(JSON.stringify(data));
- },
- async submit(){
- var validate = await this.$refs.dialogForm.validate().catch(()=>{});
- if(!validate){ return false }
- this.isSaveing = true;
- let submitData = JSON.parse(JSON.stringify(this.formData));
- submitData.type = 2;
- var resp = await this.$API.banner.save.post(submitData);
- this.isSaveing = false;
- if (resp.code == 0) {
- return this.$message.error(resp.msg);
- }
- this.$message.success(resp.msg);
- this.visible = false;
- this.formData = {};
- this.submitState = false;
- this.$emit("success");
- }
- }
- }
- </script>
- <style>
- .text-center{text-align: center;}
- </style>
|