| @@ -0,0 +1,67 @@ | |||
| /* | |||
| * @Date: 2021-08-24 14:51:18 | |||
| * @LastEditTime: 2022-07-27 10:47:43 | |||
| * @Description: 汽车资讯 | |||
| */ | |||
| import request from '@/utils/request' | |||
| /** 轮播 */ | |||
| export function saveLunbo(data) { | |||
| return request({ | |||
| url: '/aigc/saveLunbo', | |||
| method: 'post', | |||
| data | |||
| }) | |||
| } | |||
| export function delLunbo(id) { | |||
| return request({ | |||
| url: '/index/delLunbo', | |||
| method: 'post', | |||
| data: { id } | |||
| }) | |||
| } | |||
| /** 数字人形象 */ | |||
| export function saveShuziren(data) { | |||
| return request({ | |||
| url: '/aigc/saveShuziren', | |||
| method: 'post', | |||
| data | |||
| }) | |||
| } | |||
| /** 广告位1 */ | |||
| export function guanggao1() { | |||
| return request({ | |||
| url: '/aigc/guanggao1', | |||
| method: 'get' | |||
| }) | |||
| } | |||
| /** 数字人直播 */ | |||
| export function saveShuzirenZhiBo(data) { | |||
| return request({ | |||
| url: '/aigc/saveShuzirenZhiBo', | |||
| method: 'post', | |||
| data | |||
| }) | |||
| } | |||
| /** 广告位2 */ | |||
| export function guanggao2() { | |||
| return request({ | |||
| url: '/aigc/guanggao2', | |||
| method: 'get' | |||
| }) | |||
| } | |||
| /** 数字人视频 */ | |||
| export function videoSave(data) { | |||
| return request({ | |||
| url: '/aigc/videoSave', | |||
| method: 'get', | |||
| data | |||
| }) | |||
| } | |||
| @@ -168,6 +168,49 @@ export const constantRoutes = [ | |||
| } | |||
| ] | |||
| }, | |||
| { | |||
| path: '/aigc', | |||
| component: Layout, | |||
| alwaysShow: true, | |||
| redirect: '/aigc/carousel', | |||
| name: 'aigc', | |||
| meta: { | |||
| title: 'AIGC', | |||
| icon: 'nested' | |||
| }, | |||
| children: [ | |||
| { | |||
| path: 'carousel', | |||
| component: () => import('@/views/aigc/carousel'), | |||
| meta: { title: '轮播' } | |||
| }, | |||
| { | |||
| path: 'numberImg', | |||
| component: () => import('@/views/aigc/numberImg'), | |||
| meta: { title: '数字人形象' } | |||
| }, | |||
| { | |||
| path: 'banner1', | |||
| component: () => import('@/views/aigc/banner1'), | |||
| meta: { title: '广告位1' } | |||
| }, | |||
| { | |||
| path: 'numberLive', | |||
| component: () => import('@/views/aigc/numberLive'), | |||
| meta: { title: '数字人直播' } | |||
| }, | |||
| { | |||
| path: 'banner2', | |||
| component: () => import('@/views/aigc/banner2'), | |||
| meta: { title: '广告位2' } | |||
| }, | |||
| { | |||
| path: 'video', | |||
| component: () => import('@/views/aigc/video'), | |||
| meta: { title: '数字人视频' } | |||
| } | |||
| ] | |||
| }, | |||
| { | |||
| path: '/about', | |||
| component: Layout, | |||
| @@ -0,0 +1,83 @@ | |||
| <!-- | |||
| * @Date: 2021-07-08 11:02:40 | |||
| * @LastEditTime: 2022-07-27 10:48:43 | |||
| * @Description: 广告位 | |||
| --> | |||
| <template> | |||
| <div class="app-container"> | |||
| <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="resetform"> | |||
| <el-form-item label="图片" prop="image"> | |||
| <uploadFile :url.sync="ruleForm.image" type="image" /> | |||
| </el-form-item> | |||
| <el-form-item label="链接" prop="link"> | |||
| <el-input v-model="ruleForm.link"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="是否新开页面打开"> | |||
| <el-radio-group v-model="ruleForm.newOpen"> | |||
| <el-radio :label="1">是</el-radio> | |||
| <el-radio :label="0">否</el-radio> | |||
| </el-radio-group> | |||
| </el-form-item> | |||
| <el-form-item> | |||
| <el-button type="primary" @click="submitForm('ruleForm')">保存</el-button> | |||
| </el-form-item> | |||
| </el-form> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { guanggao1 } from '@/api/aigc' | |||
| import { saveGuangGao } from '@/api/homePage' | |||
| import uploadFile from '@/components/uploadFile' | |||
| export default { | |||
| components: { | |||
| uploadFile | |||
| }, | |||
| data() { | |||
| return { | |||
| ruleForm: { | |||
| id: '', | |||
| image: '', | |||
| link: '', | |||
| newOpen: '1' | |||
| }, | |||
| rules: { | |||
| image: [ | |||
| { required: true, message: '请上传图片', trigger: 'blur' } | |||
| ], | |||
| link: [ | |||
| { required: true, message: '请输入链接', trigger: 'blur' } | |||
| ] | |||
| } | |||
| } | |||
| }, | |||
| created() { | |||
| this.getData() | |||
| }, | |||
| methods: { | |||
| getData() { | |||
| guanggao1().then(res => { | |||
| this.ruleForm.id = res.id | |||
| this.ruleForm.image = res.image | |||
| this.ruleForm.link = res.link | |||
| this.ruleForm.newOpen = res.newOpen | |||
| }) | |||
| }, | |||
| submitForm(formName) { | |||
| this.$refs[formName].validate((valid) => { | |||
| if (valid) { | |||
| saveGuangGao(this.ruleForm).then(res => { | |||
| this.$message({ | |||
| message: '操作成功!', | |||
| type: 'success' | |||
| }) | |||
| }) | |||
| } else { | |||
| console.log('error submit!!') | |||
| return false | |||
| } | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @@ -0,0 +1,83 @@ | |||
| <!-- | |||
| * @Date: 2021-07-08 11:02:40 | |||
| * @LastEditTime: 2022-07-27 10:48:43 | |||
| * @Description: 广告位 | |||
| --> | |||
| <template> | |||
| <div class="app-container"> | |||
| <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="resetform"> | |||
| <el-form-item label="图片" prop="image"> | |||
| <uploadFile :url.sync="ruleForm.image" type="image" /> | |||
| </el-form-item> | |||
| <el-form-item label="链接" prop="link"> | |||
| <el-input v-model="ruleForm.link"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="是否新开页面打开"> | |||
| <el-radio-group v-model="ruleForm.newOpen"> | |||
| <el-radio :label="1">是</el-radio> | |||
| <el-radio :label="0">否</el-radio> | |||
| </el-radio-group> | |||
| </el-form-item> | |||
| <el-form-item> | |||
| <el-button type="primary" @click="submitForm('ruleForm')">保存</el-button> | |||
| </el-form-item> | |||
| </el-form> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { guanggao2 } from '@/api/aigc' | |||
| import { saveGuangGao } from '@/api/homePage' | |||
| import uploadFile from '@/components/uploadFile' | |||
| export default { | |||
| components: { | |||
| uploadFile | |||
| }, | |||
| data() { | |||
| return { | |||
| ruleForm: { | |||
| id: '', | |||
| image: '', | |||
| link: '', | |||
| newOpen: '1' | |||
| }, | |||
| rules: { | |||
| image: [ | |||
| { required: true, message: '请上传图片', trigger: 'blur' } | |||
| ], | |||
| link: [ | |||
| { required: true, message: '请输入链接', trigger: 'blur' } | |||
| ] | |||
| } | |||
| } | |||
| }, | |||
| created() { | |||
| this.getData() | |||
| }, | |||
| methods: { | |||
| getData() { | |||
| guanggao2().then(res => { | |||
| this.ruleForm.id = res.id | |||
| this.ruleForm.image = res.image | |||
| this.ruleForm.link = res.link | |||
| this.ruleForm.newOpen = res.newOpen | |||
| }) | |||
| }, | |||
| submitForm(formName) { | |||
| this.$refs[formName].validate((valid) => { | |||
| if (valid) { | |||
| saveGuangGao(this.ruleForm).then(res => { | |||
| this.$message({ | |||
| message: '操作成功!', | |||
| type: 'success' | |||
| }) | |||
| }) | |||
| } else { | |||
| console.log('error submit!!') | |||
| return false | |||
| } | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @@ -0,0 +1,174 @@ | |||
| <!-- | |||
| * @Date: 2021-07-08 11:02:40 | |||
| * @LastEditTime: 2022-07-27 10:48:43 | |||
| * @Description: 列表查询demo | |||
| --> | |||
| <template> | |||
| <div class="app-container"> | |||
| <!--工具栏--> | |||
| <div class="head-container"> | |||
| <!-- <div> | |||
| 搜索 | |||
| <el-input v-model="query.name" prefix-icon="el-icon-search" clearable placeholder="名称" class="filter-item" | |||
| @keyup.enter.native="crud.toQuery" /> | |||
| <rrOperation /> | |||
| </div> --> | |||
| <div> | |||
| <el-button class="filter-item" size="mini" type="primary" icon="el-icon-plus" | |||
| @click="openSave()">新增</el-button> | |||
| </div> | |||
| </div> | |||
| <!--表格渲染--> | |||
| <el-table ref="table" v-loading="crud.loading" :data="crud.data" style="width: 100%;"> | |||
| <el-table-column :show-overflow-tooltip="true" prop="serialNumber" label="序号" /> | |||
| <el-table-column :show-overflow-tooltip="true" prop="image" label="图片"> | |||
| <template slot-scope="scope"> | |||
| <img :src="scope.row.image" width="50px" /> | |||
| </template> | |||
| </el-table-column> | |||
| <el-table-column :show-overflow-tooltip="true" prop="link" label="链接" /> | |||
| <el-table-column :show-overflow-tooltip="true" align="center" prop="newOpen" label="是否新开页面打开"> | |||
| <template slot-scope="scope"> | |||
| {{ scope.row.newOpen === 1 ? '是' : '否' }} | |||
| </template> | |||
| </el-table-column> | |||
| <el-table-column label="操作" width="230" align="center" fixed="right"> | |||
| <template slot-scope="scope" class="btn"> | |||
| <el-button type="text" size="mini" @click="openSave(scope.row)">编辑</el-button> | |||
| <el-popover placement="top" width="200" :ref="`del-${scope.$index}`"> | |||
| <p>是否确认删除该数据?</p> | |||
| <div style="text-align: right; margin: 0"> | |||
| <el-button size="mini" | |||
| @click="scope._self.$refs[`del-${scope.$index}`].doClose()">取消</el-button> | |||
| <el-button type="primary" size="mini" @click="del(scope)">确定</el-button> | |||
| </div> | |||
| <el-button slot="reference" type="text" size="mini" style="margin-left:10px">删除</el-button> | |||
| </el-popover> | |||
| </template> | |||
| </el-table-column> | |||
| </el-table> | |||
| <!--分页组件--> | |||
| <pagination /> | |||
| <!-- 新增修改弹窗 --> | |||
| <el-dialog v-if="dialogVisible" title="轮播" :visible.sync="dialogVisible" append-to-body width="600px"> | |||
| <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="resetform"> | |||
| <el-form-item label="图片" prop="image"> | |||
| <uploadFile :url.sync="ruleForm.image" type="image" /> | |||
| </el-form-item> | |||
| <el-form-item label="序号" prop="serialNumber"> | |||
| <el-input v-model="ruleForm.serialNumber"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="链接" prop="link"> | |||
| <el-input v-model="ruleForm.link"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="是否新开页面打开"> | |||
| <el-radio-group v-model="ruleForm.newOpen"> | |||
| <el-radio label="1">是</el-radio> | |||
| <el-radio label="0">否</el-radio> | |||
| </el-radio-group> | |||
| </el-form-item> | |||
| <el-form-item> | |||
| <el-button type="primary" :loading="loadingBtn" @click="submitForm('ruleForm')">立即创建</el-button> | |||
| <el-button @click="resetForm('ruleForm')">重置</el-button> | |||
| </el-form-item> | |||
| </el-form> | |||
| </el-dialog> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { delLunbo } from '@/api/homePage' | |||
| import { saveLunbo } from '@/api/aigc' | |||
| import CRUD, { presenter, header, crud } from '@crud/crud' | |||
| import pagination from '@crud/Pagination' | |||
| import uploadFile from '@/components/uploadFile' | |||
| export default { | |||
| components: { pagination, uploadFile }, | |||
| mixins: [presenter(), header(), crud()], | |||
| data() { | |||
| return { | |||
| dialogVisible: false, | |||
| ruleForm: { | |||
| image: '', | |||
| serialNumber: '', | |||
| link: [], | |||
| newOpen: '1' | |||
| }, | |||
| rules: { | |||
| name: [ | |||
| { required: true, message: '请上传图片', trigger: 'blur' } | |||
| ], | |||
| serialNumber: [ | |||
| { required: true, message: '请输入序号', trigger: 'blur' } | |||
| ], | |||
| link: [ | |||
| { required: true, message: '请输入链接', trigger: 'blur' } | |||
| ], | |||
| desc: [ | |||
| { required: true, message: '请填写活动形式', trigger: 'blur' } | |||
| ] | |||
| }, | |||
| loadingBtn: false | |||
| } | |||
| }, | |||
| cruds() { | |||
| return CRUD({ title: '列表', url: '/aigc/lunboList', query: {}}) | |||
| }, | |||
| methods: { | |||
| openSave(item) { | |||
| if (item) { | |||
| this.ruleForm.id = item.id | |||
| this.ruleForm.image = item.image | |||
| this.ruleForm.serialNumber = item.serialNumber | |||
| this.ruleForm.link = item.link | |||
| this.ruleForm.newOpen = item.newOpen || '1' | |||
| } | |||
| this.dialogVisible = true | |||
| }, | |||
| close(tag) { | |||
| if (tag) this.crud.toQuery() | |||
| this.dialogVisible = false | |||
| }, | |||
| /* 删除 */ | |||
| del(scope) { | |||
| delLunbo(scope.row.id).then(res => { | |||
| this.$message({ | |||
| message: '删除成功!', | |||
| type: 'success' | |||
| }) | |||
| this.crud.toQuery() | |||
| scope._self.$refs[`del-${scope.$index}`].doClose() | |||
| }) | |||
| }, | |||
| submitForm(formName) { | |||
| this.$refs[formName].validate((valid) => { | |||
| if (valid) { | |||
| this.loadingBtn = true | |||
| saveLunbo(this.ruleForm).then(res => { | |||
| this.$message({ | |||
| message: '操作成功!', | |||
| type: 'success' | |||
| }) | |||
| this.loadingBtn = false | |||
| this.dialogVisible = false | |||
| this.$refs[formName].resetFields() | |||
| this.crud.toQuery() | |||
| }).catch(() => { | |||
| this.loadingBtn = false | |||
| }) | |||
| } else { | |||
| console.log('error submit!!') | |||
| return false | |||
| } | |||
| }) | |||
| }, | |||
| resetForm(formName) { | |||
| this.$refs[formName].resetFields() | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @@ -0,0 +1,60 @@ | |||
| <!-- | |||
| * @Date: 2021-07-08 11:02:40 | |||
| * @LastEditTime: 2022-07-27 10:48:43 | |||
| * @Description: 广告位 | |||
| --> | |||
| <template> | |||
| <div class="app-container"> | |||
| <el-form :model="ruleForm" ref="ruleForm" label-width="130px" class="resetform"> | |||
| <el-form-item label="是否显示"> | |||
| <el-radio-group v-model="ruleForm.display"> | |||
| <el-radio :label="1">是</el-radio> | |||
| <el-radio :label="0">否</el-radio> | |||
| </el-radio-group> | |||
| </el-form-item> | |||
| <el-form-item> | |||
| <el-button type="primary" @click="submitForm('ruleForm')">保存</el-button> | |||
| </el-form-item> | |||
| </el-form> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { hotNewsConfig, saveHotNewsConfig } from '@/api/car' | |||
| export default { | |||
| data() { | |||
| return { | |||
| ruleForm: { | |||
| display: '', | |||
| id: '' | |||
| } | |||
| } | |||
| }, | |||
| created() { | |||
| this.getData() | |||
| }, | |||
| methods: { | |||
| getData() { | |||
| hotNewsConfig().then(res => { | |||
| this.ruleForm.id = res.id | |||
| this.ruleForm.display = res.display | |||
| }) | |||
| }, | |||
| submitForm(formName) { | |||
| this.$refs[formName].validate((valid) => { | |||
| if (valid) { | |||
| saveHotNewsConfig(this.ruleForm).then(res => { | |||
| this.$message({ | |||
| message: '操作成功!', | |||
| type: 'success' | |||
| }) | |||
| }) | |||
| } else { | |||
| console.log('error submit!!') | |||
| return false | |||
| } | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @@ -0,0 +1,158 @@ | |||
| <!-- | |||
| * @Date: 2021-07-08 11:02:40 | |||
| * @LastEditTime: 2022-07-27 10:48:43 | |||
| * @Description:数字人形象 | |||
| --> | |||
| <template> | |||
| <div class="app-container"> | |||
| <!--工具栏--> | |||
| <div class="head-container"> | |||
| <!-- <div> | |||
| 搜索 | |||
| <el-input v-model="query.name" prefix-icon="el-icon-search" clearable placeholder="名称" class="filter-item" | |||
| @keyup.enter.native="crud.toQuery" /> | |||
| <rrOperation /> | |||
| </div> --> | |||
| <div> | |||
| <el-button class="filter-item" size="mini" type="primary" icon="el-icon-plus" | |||
| @click="openSave()">新增</el-button> | |||
| </div> | |||
| </div> | |||
| <!--表格渲染--> | |||
| <el-table ref="table" v-loading="crud.loading" :data="crud.data" style="width: 100%;"> | |||
| <el-table-column :show-overflow-tooltip="true" prop="serialNumber" label="序号" /> | |||
| <el-table-column :show-overflow-tooltip="true" prop="image" label="图片"> | |||
| <template slot-scope="scope"> | |||
| <img :src="scope.row.image" width="50px" /> | |||
| </template> | |||
| </el-table-column> | |||
| <el-table-column :show-overflow-tooltip="true" prop="title" label="标题" /> | |||
| <el-table-column label="操作" width="230" align="center" fixed="right"> | |||
| <template slot-scope="scope" class="btn"> | |||
| <el-button type="text" size="mini" @click="openSave(scope.row)">编辑</el-button> | |||
| <el-popover placement="top" width="200" :ref="`del-${scope.$index}`"> | |||
| <p>是否确认删除该数据?</p> | |||
| <div style="text-align: right; margin: 0"> | |||
| <el-button size="mini" | |||
| @click="scope._self.$refs[`del-${scope.$index}`].doClose()">取消</el-button> | |||
| <el-button type="primary" size="mini" @click="del(scope)">确定</el-button> | |||
| </div> | |||
| <el-button slot="reference" type="text" size="mini" style="margin-left:10px">删除</el-button> | |||
| </el-popover> | |||
| </template> | |||
| </el-table-column> | |||
| </el-table> | |||
| <!--分页组件--> | |||
| <pagination /> | |||
| <!-- 新增修改弹窗 --> | |||
| <el-dialog v-if="dialogVisible" title="轮播" :visible.sync="dialogVisible" append-to-body width="600px"> | |||
| <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="resetform"> | |||
| <el-form-item label="图片" prop="image"> | |||
| <uploadFile :url.sync="ruleForm.image" type="image" /> | |||
| </el-form-item> | |||
| <el-form-item label="序号" prop="serialNumber"> | |||
| <el-input v-model="ruleForm.serialNumber"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="标题" prop="title"> | |||
| <el-input v-model="ruleForm.title"></el-input> | |||
| </el-form-item> | |||
| <el-form-item> | |||
| <el-button type="primary" :loading="loadingBtn" @click="submitForm('ruleForm')">立即创建</el-button> | |||
| <el-button @click="resetForm('ruleForm')">重置</el-button> | |||
| </el-form-item> | |||
| </el-form> | |||
| </el-dialog> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { delLunbo } from '@/api/homePage' | |||
| import { saveShuziren } from '@/api/aigc' | |||
| import CRUD, { presenter, header, crud } from '@crud/crud' | |||
| import pagination from '@crud/Pagination' | |||
| import uploadFile from '@/components/uploadFile' | |||
| export default { | |||
| components: { pagination, uploadFile }, | |||
| mixins: [presenter(), header(), crud()], | |||
| data() { | |||
| return { | |||
| dialogVisible: false, | |||
| ruleForm: { | |||
| image: '', | |||
| serialNumber: '', | |||
| title: '' | |||
| }, | |||
| rules: { | |||
| name: [ | |||
| { required: true, message: '请上传图片', trigger: 'blur' } | |||
| ], | |||
| serialNumber: [ | |||
| { required: true, message: '请输入序号', trigger: 'blur' } | |||
| ], | |||
| title: [ | |||
| { required: true, message: '请输入标题', trigger: 'blur' } | |||
| ] | |||
| }, | |||
| loadingBtn: false | |||
| } | |||
| }, | |||
| cruds() { | |||
| return CRUD({ title: '列表', url: '/aigc/shuzirenList', query: {}}) | |||
| }, | |||
| methods: { | |||
| openSave(item) { | |||
| if (item) { | |||
| this.ruleForm.id = item.id | |||
| this.ruleForm.image = item.image | |||
| this.ruleForm.serialNumber = item.serialNumber | |||
| this.ruleForm.title = item.title | |||
| } | |||
| this.dialogVisible = true | |||
| }, | |||
| close(tag) { | |||
| if (tag) this.crud.toQuery() | |||
| this.dialogVisible = false | |||
| }, | |||
| /* 删除 */ | |||
| del(scope) { | |||
| delLunbo(scope.row.id).then(res => { | |||
| this.$message({ | |||
| message: '删除成功!', | |||
| type: 'success' | |||
| }) | |||
| this.crud.toQuery() | |||
| scope._self.$refs[`del-${scope.$index}`].doClose() | |||
| }) | |||
| }, | |||
| submitForm(formName) { | |||
| this.$refs[formName].validate((valid) => { | |||
| if (valid) { | |||
| this.loadingBtn = true | |||
| saveShuziren(this.ruleForm).then(res => { | |||
| this.$message({ | |||
| message: '操作成功!', | |||
| type: 'success' | |||
| }) | |||
| this.loadingBtn = false | |||
| this.dialogVisible = false | |||
| this.$refs[formName].resetFields() | |||
| this.crud.toQuery() | |||
| }).catch(() => { | |||
| this.loadingBtn = false | |||
| }) | |||
| } else { | |||
| console.log('error submit!!') | |||
| return false | |||
| } | |||
| }) | |||
| }, | |||
| resetForm(formName) { | |||
| this.$refs[formName].resetFields() | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @@ -0,0 +1,166 @@ | |||
| <!-- | |||
| * @Date: 2021-07-08 11:02:40 | |||
| * @LastEditTime: 2022-07-27 10:48:43 | |||
| * @Description:数字人直播 | |||
| --> | |||
| <template> | |||
| <div class="app-container"> | |||
| <!--工具栏--> | |||
| <div class="head-container"> | |||
| <!-- <div> | |||
| 搜索 | |||
| <el-input v-model="query.name" prefix-icon="el-icon-search" clearable placeholder="名称" class="filter-item" | |||
| @keyup.enter.native="crud.toQuery" /> | |||
| <rrOperation /> | |||
| </div> --> | |||
| <div> | |||
| <el-button class="filter-item" size="mini" type="primary" icon="el-icon-plus" | |||
| @click="openSave()">新增</el-button> | |||
| </div> | |||
| </div> | |||
| <!--表格渲染--> | |||
| <el-table ref="table" v-loading="crud.loading" :data="crud.data" style="width: 100%;"> | |||
| <el-table-column :show-overflow-tooltip="true" prop="serialNumber" label="序号" /> | |||
| <el-table-column :show-overflow-tooltip="true" prop="image" label="图片"> | |||
| <template slot-scope="scope"> | |||
| <img :src="scope.row.image" width="50px" /> | |||
| </template> | |||
| </el-table-column> | |||
| <el-table-column :show-overflow-tooltip="true" prop="title" label="标题" /> | |||
| <el-table-column label="操作" width="230" align="center" fixed="right"> | |||
| <template slot-scope="scope" class="btn"> | |||
| <el-button type="text" size="mini" @click="openSave(scope.row)">编辑</el-button> | |||
| <el-popover placement="top" width="200" :ref="`del-${scope.$index}`"> | |||
| <p>是否确认删除该数据?</p> | |||
| <div style="text-align: right; margin: 0"> | |||
| <el-button size="mini" | |||
| @click="scope._self.$refs[`del-${scope.$index}`].doClose()">取消</el-button> | |||
| <el-button type="primary" size="mini" @click="del(scope)">确定</el-button> | |||
| </div> | |||
| <el-button slot="reference" type="text" size="mini" style="margin-left:10px">删除</el-button> | |||
| </el-popover> | |||
| </template> | |||
| </el-table-column> | |||
| </el-table> | |||
| <!--分页组件--> | |||
| <pagination /> | |||
| <!-- 新增修改弹窗 --> | |||
| <el-dialog v-if="dialogVisible" title="轮播" :visible.sync="dialogVisible" append-to-body width="600px"> | |||
| <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="resetform"> | |||
| <el-form-item label="图片" prop="image"> | |||
| <uploadFile :url.sync="ruleForm.image" type="image" /> | |||
| </el-form-item> | |||
| <el-form-item label="序号" prop="serialNumber"> | |||
| <el-input v-model="ruleForm.serialNumber"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="标题" prop="title"> | |||
| <el-input v-model="ruleForm.title"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="副标题" prop="subTitle"> | |||
| <el-input v-model="ruleForm.subTitle"></el-input> | |||
| </el-form-item> | |||
| <el-form-item> | |||
| <el-button type="primary" :loading="loadingBtn" @click="submitForm('ruleForm')">立即创建</el-button> | |||
| <el-button @click="resetForm('ruleForm')">重置</el-button> | |||
| </el-form-item> | |||
| </el-form> | |||
| </el-dialog> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { delLunbo } from '@/api/homePage' | |||
| import { saveShuzirenZhiBo } from '@/api/aigc' | |||
| import CRUD, { presenter, header, crud } from '@crud/crud' | |||
| import pagination from '@crud/Pagination' | |||
| import uploadFile from '@/components/uploadFile' | |||
| export default { | |||
| components: { pagination, uploadFile }, | |||
| mixins: [presenter(), header(), crud()], | |||
| data() { | |||
| return { | |||
| dialogVisible: false, | |||
| ruleForm: { | |||
| image: '', | |||
| serialNumber: '', | |||
| title: '', | |||
| subTitle: '' | |||
| }, | |||
| rules: { | |||
| name: [ | |||
| { required: true, message: '请上传图片', trigger: 'blur' } | |||
| ], | |||
| serialNumber: [ | |||
| { required: true, message: '请输入序号', trigger: 'blur' } | |||
| ], | |||
| title: [ | |||
| { required: true, message: '请输入标题', trigger: 'blur' } | |||
| ], | |||
| subTitle: [ | |||
| { required: true, message: '请输入副标题', trigger: 'blur' } | |||
| ] | |||
| }, | |||
| loadingBtn: false | |||
| } | |||
| }, | |||
| cruds() { | |||
| return CRUD({ title: '列表', url: '/aigc/shuzirenZhiBoList', query: {}}) | |||
| }, | |||
| methods: { | |||
| openSave(item) { | |||
| if (item) { | |||
| this.ruleForm.id = item.id | |||
| this.ruleForm.image = item.image | |||
| this.ruleForm.serialNumber = item.serialNumber | |||
| this.ruleForm.title = item.title | |||
| this.ruleForm.subTitle = item.subTitle | |||
| } | |||
| this.dialogVisible = true | |||
| }, | |||
| close(tag) { | |||
| if (tag) this.crud.toQuery() | |||
| this.dialogVisible = false | |||
| }, | |||
| /* 删除 */ | |||
| del(scope) { | |||
| delLunbo(scope.row.id).then(res => { | |||
| this.$message({ | |||
| message: '删除成功!', | |||
| type: 'success' | |||
| }) | |||
| this.crud.toQuery() | |||
| scope._self.$refs[`del-${scope.$index}`].doClose() | |||
| }) | |||
| }, | |||
| submitForm(formName) { | |||
| this.$refs[formName].validate((valid) => { | |||
| if (valid) { | |||
| this.loadingBtn = true | |||
| saveShuzirenZhiBo(this.ruleForm).then(res => { | |||
| this.$message({ | |||
| message: '操作成功!', | |||
| type: 'success' | |||
| }) | |||
| this.loadingBtn = false | |||
| this.dialogVisible = false | |||
| this.$refs[formName].resetFields() | |||
| this.crud.toQuery() | |||
| }).catch(() => { | |||
| this.loadingBtn = false | |||
| }) | |||
| } else { | |||
| console.log('error submit!!') | |||
| return false | |||
| } | |||
| }) | |||
| }, | |||
| resetForm(formName) { | |||
| this.$refs[formName].resetFields() | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @@ -0,0 +1,146 @@ | |||
| <!-- | |||
| * @Date: 2021-07-08 11:02:40 | |||
| * @LastEditTime: 2022-07-27 10:48:43 | |||
| * @Description: 列表查询demo | |||
| --> | |||
| <template> | |||
| <div class="app-container"> | |||
| <!--工具栏--> | |||
| <div class="head-container"> | |||
| <!-- <div> | |||
| 搜索 | |||
| <el-input v-model="query.name" prefix-icon="el-icon-search" clearable placeholder="名称" class="filter-item" | |||
| @keyup.enter.native="crud.toQuery" /> | |||
| <rrOperation /> | |||
| </div> --> | |||
| <div> | |||
| <el-button class="filter-item" size="mini" type="primary" icon="el-icon-plus" | |||
| @click="openSave()">新增</el-button> | |||
| </div> | |||
| </div> | |||
| <!--表格渲染--> | |||
| <el-table ref="table" v-loading="crud.loading" :data="crud.data" style="width: 100%;"> | |||
| <el-table-column :show-overflow-tooltip="true" prop="serialNumber" label="序号" /> | |||
| <el-table-column :show-overflow-tooltip="true" prop="image" label="图片"> | |||
| <template slot-scope="scope"> | |||
| <img :src="scope.row.image" width="50px" /> | |||
| </template> | |||
| </el-table-column> | |||
| <el-table-column :show-overflow-tooltip="true" prop="link" label="链接" /> | |||
| <el-table-column :show-overflow-tooltip="true" prop="title" label="标题" /> | |||
| <el-table-column label="操作" width="230" align="center" fixed="right"> | |||
| <template slot-scope="scope" class="btn"> | |||
| <el-button type="text" size="mini" @click="openSave(scope.row)">编辑</el-button> | |||
| </template> | |||
| </el-table-column> | |||
| </el-table> | |||
| <!--分页组件--> | |||
| <pagination /> | |||
| <!-- 新增修改弹窗 --> | |||
| <el-dialog v-if="dialogVisible" title="轮播" :visible.sync="dialogVisible" append-to-body width="600px"> | |||
| <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="resetform"> | |||
| <el-form-item label="图片" prop="image"> | |||
| <uploadFile :url.sync="ruleForm.image" type="image" /> | |||
| </el-form-item> | |||
| <el-form-item label="序号" prop="serialNumber"> | |||
| <el-input v-model="ruleForm.serialNumber"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="链接" prop="link"> | |||
| <el-input v-model="ruleForm.link"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="标题" prop="title"> | |||
| <el-input v-model="ruleForm.title"></el-input> | |||
| </el-form-item> | |||
| <el-form-item> | |||
| <el-button type="primary" :loading="loadingBtn" @click="submitForm('ruleForm')">立即创建</el-button> | |||
| <el-button @click="resetForm('ruleForm')">重置</el-button> | |||
| </el-form-item> | |||
| </el-form> | |||
| </el-dialog> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { videoSave } from '@/api/car' | |||
| import CRUD, { presenter, header, crud } from '@crud/crud' | |||
| import pagination from '@crud/Pagination' | |||
| import uploadFile from '@/components/uploadFile' | |||
| export default { | |||
| components: { pagination, uploadFile }, | |||
| mixins: [presenter(), header(), crud()], | |||
| data() { | |||
| return { | |||
| dialogVisible: false, | |||
| id: '', | |||
| ruleForm: { | |||
| image: '', | |||
| serialNumber: '', | |||
| link: '', | |||
| title: '' | |||
| }, | |||
| rules: { | |||
| image: [ | |||
| { required: true, message: '请上传图片', trigger: 'blur' } | |||
| ], | |||
| serialNumber: [ | |||
| { required: true, message: '请输入序号', trigger: 'blur' } | |||
| ], | |||
| link: [ | |||
| { required: true, message: '请输入链接', trigger: 'blur' } | |||
| ], | |||
| title: [ | |||
| { required: true, message: '请填写标题', trigger: 'blur' } | |||
| ] | |||
| }, | |||
| loadingBtn: false | |||
| } | |||
| }, | |||
| cruds() { | |||
| return CRUD({ title: '列表', url: '/car/videoList', query: {}}) | |||
| }, | |||
| methods: { | |||
| openSave(item) { | |||
| if (item) { | |||
| this.ruleForm.id = item.id | |||
| this.ruleForm.image = item.image | |||
| this.ruleForm.serialNumber = item.serialNumber | |||
| this.ruleForm.link = item.link | |||
| this.ruleForm.title = item.title | |||
| } | |||
| this.dialogVisible = true | |||
| }, | |||
| close(tag) { | |||
| if (tag) this.crud.toQuery() | |||
| this.dialogVisible = false | |||
| }, | |||
| submitForm(formName) { | |||
| this.$refs[formName].validate((valid) => { | |||
| if (valid) { | |||
| this.loadingBtn = true | |||
| videoSave(this.ruleForm).then(res => { | |||
| this.$message({ | |||
| message: '操作成功!', | |||
| type: 'success' | |||
| }) | |||
| this.loadingBtn = false | |||
| this.dialogVisible = false | |||
| this.$refs[formName].resetFields() | |||
| this.crud.toQuery() | |||
| }).catch(() => { | |||
| this.loadingBtn = false | |||
| }) | |||
| } else { | |||
| console.log('error submit!!') | |||
| return false | |||
| } | |||
| }) | |||
| }, | |||
| resetForm(formName) { | |||
| this.$refs[formName].resetFields() | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @@ -1,115 +0,0 @@ | |||
| <!-- | |||
| * @Date: 2021-07-08 11:02:40 | |||
| * @LastEditTime: 2022-07-27 10:48:43 | |||
| * @Description: 文章列表 | |||
| --> | |||
| <template> | |||
| <div class="app-container"> | |||
| <!--工具栏--> | |||
| <div class="head-container"> | |||
| <div> | |||
| <!-- 搜索 --> | |||
| <el-input v-model="query.name" prefix-icon="el-icon-search" clearable placeholder="名称" class="filter-item" @keyup.enter.native="crud.toQuery" /> | |||
| <el-input v-model="query.releaseName" clearable placeholder="活动名称" class="filter-item"/> | |||
| <el-select v-model="query.list" clearable placeholder="列表" class="filter-item"> | |||
| <el-option v-for="item in releaseSourceList" :key="item.id" :label="item.name" :value="item.id"></el-option> | |||
| </el-select> | |||
| <el-date-picker v-model="query.times" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" class="date-item" style="width:300px !important; margin: 0 3px 10px 0;"></el-date-picker> | |||
| <rrOperation /> | |||
| </div> | |||
| <div> | |||
| <el-button class="filter-item" size="mini" type="primary" icon="el-icon-plus" @click="openSave()">新增</el-button> | |||
| <el-button class="filter-item" size="mini" type="warning" icon="el-icon-download" @click="exportFile">导出</el-button> | |||
| </div> | |||
| </div> | |||
| <!--表格渲染--> | |||
| <el-table ref="table" v-loading="crud.loading" :data="crud.data" style="width: 100%;"> | |||
| <el-table-column :show-overflow-tooltip="true" prop="id" label="活动编号" /> | |||
| <el-table-column :show-overflow-tooltip="true" prop="releaseName" label="活动名称" /> | |||
| <el-table-column :show-overflow-tooltip="true" prop="contentTitle" label="文章名称" /> | |||
| <el-table-column :show-overflow-tooltip="true" prop="releaseTime" label="发布时间" /> | |||
| <el-table-column :show-overflow-tooltip="true" prop="publisher" label="发布人" /> | |||
| <el-table-column label="操作" width="230" align="center" fixed="right"> | |||
| <template slot-scope="scope" class="btn"> | |||
| <el-button type="text" size="mini" @click="openSave(scope.row.id)">编辑</el-button> | |||
| <el-popover placement="top" width="200" :ref="`del-${scope.$index}`"> | |||
| <p>是否确认删除该数据?</p> | |||
| <div style="text-align: right; margin: 0"> | |||
| <el-button size="mini" @click="scope._self.$refs[`del-${scope.$index}`].doClose()">取消</el-button> | |||
| <el-button type="primary" size="mini" @click="del(scope)">确定</el-button> | |||
| </div> | |||
| <el-button slot="reference" type="text" size="mini" style="margin-left:10px">删除</el-button> | |||
| </el-popover> | |||
| </template> | |||
| </el-table-column> | |||
| </el-table> | |||
| <!--分页组件--> | |||
| <pagination /> | |||
| <!-- 新增修改弹窗 --> | |||
| <el-dialog v-if="dialogVisible" title="标题" :visible.sync="dialogVisible" append-to-body width="80%"> | |||
| <save-page :id='id' @close="close"></save-page> | |||
| </el-dialog> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import demoService from '@/api/nested/demo' | |||
| import CRUD, { presenter, header, crud } from '@crud/crud' | |||
| import rrOperation from '@crud/RR.operation' | |||
| import pagination from '@crud/Pagination' | |||
| import { downloadFile } from '@/utils/index' | |||
| import savePage from './save' | |||
| export default { | |||
| name: 'Demo', | |||
| components: { rrOperation, pagination, savePage }, | |||
| mixins: [presenter(), header(), crud()], | |||
| data() { | |||
| return { | |||
| releaseSourceList: [], | |||
| dialogVisible: false, | |||
| id: '' | |||
| } | |||
| }, | |||
| cruds() { | |||
| return CRUD({ title: '列表', url: 'xxx', query: {}}) | |||
| }, | |||
| methods: { | |||
| /* 刷新前操作 */ | |||
| [CRUD.HOOK.beforeRefresh]() { | |||
| this.query.id = 'xxx' | |||
| }, | |||
| openSave(id) { | |||
| this.id = id || '' | |||
| this.dialogVisible = true | |||
| }, | |||
| close(tag) { | |||
| if (tag) this.crud.toQuery() | |||
| this.dialogVisible = false | |||
| }, | |||
| /* 删除 */ | |||
| del(scope) { | |||
| demoService.del(scope.row.id).then(res => { | |||
| this.$message({ | |||
| message: '删除成功!', | |||
| type: 'success' | |||
| }) | |||
| this.crud.toQuery() | |||
| scope._self.$refs[`del-${scope.$index}`].doClose() | |||
| }) | |||
| }, | |||
| /* 导出 */ | |||
| exportFile() { | |||
| demoService.exportFile(this.crud.query).then(res => { | |||
| downloadFile(res, '文章列表', 'xlsx') | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @@ -1,112 +0,0 @@ | |||
| <!-- | |||
| * @Date: 2021-10-11 14:12:26 | |||
| * @LastEditTime: 2022-07-27 10:48:47 | |||
| * @Description: 新增/编辑页面 | |||
| --> | |||
| <template> | |||
| <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="resetform"> | |||
| <el-form-item label="文章标题" prop="name"> | |||
| <el-input v-model="ruleForm.name"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="活动区域" prop="region"> | |||
| <el-select v-model="ruleForm.region" placeholder="请选择活动区域"> | |||
| <el-option label="区域一" value="shanghai"></el-option> | |||
| <el-option label="区域二" value="beijing"></el-option> | |||
| </el-select> | |||
| </el-form-item> | |||
| <el-form-item label="活动性质" prop="type"> | |||
| <el-checkbox-group v-model="ruleForm.type"> | |||
| <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox> | |||
| <el-checkbox label="地推活动" name="type"></el-checkbox> | |||
| <el-checkbox label="线下主题活动" name="type"></el-checkbox> | |||
| <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox> | |||
| </el-checkbox-group> | |||
| </el-form-item> | |||
| <el-form-item label="特殊资源" prop="resource"> | |||
| <el-radio-group v-model="ruleForm.resource"> | |||
| <el-radio label="线上品牌商赞助"></el-radio> | |||
| <el-radio label="线下场地免费"></el-radio> | |||
| </el-radio-group> | |||
| </el-form-item> | |||
| <el-form-item label="活动形式" prop="desc"> | |||
| <el-input type="textarea" v-model="ruleForm.desc"></el-input> | |||
| </el-form-item> | |||
| <el-form-item> | |||
| <el-button type="primary" :loading="loadingBtn" @click="submitForm('ruleForm')">立即创建</el-button> | |||
| <el-button @click="resetForm('ruleForm')">重置</el-button> | |||
| </el-form-item> | |||
| </el-form> | |||
| </template> | |||
| <script> | |||
| import demoService from '@/api/nested/demo' | |||
| export default { | |||
| props: ['id'], | |||
| data() { | |||
| return { | |||
| ruleForm: { | |||
| name: '', | |||
| region: '', | |||
| type: [], | |||
| resource: '', | |||
| desc: '' | |||
| }, | |||
| rules: { | |||
| name: [ | |||
| { required: true, message: '请输入活动名称', trigger: 'blur' }, | |||
| { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } | |||
| ], | |||
| region: [ | |||
| { required: true, message: '请选择活动区域', trigger: 'change' } | |||
| ], | |||
| type: [ | |||
| { type: 'array', required: true, message: '请至少选择一个活动性质', trigger: 'change' } | |||
| ], | |||
| resource: [ | |||
| { required: true, message: '请选择活动资源', trigger: 'change' } | |||
| ], | |||
| desc: [ | |||
| { required: true, message: '请填写活动形式', trigger: 'blur' } | |||
| ] | |||
| }, | |||
| loadingBtn: false | |||
| } | |||
| }, | |||
| created() { | |||
| if (this.id) { | |||
| this.getData() | |||
| } | |||
| }, | |||
| methods: { | |||
| getData() { | |||
| demoService.getData().then(res => { | |||
| this.ruleForm = res | |||
| }) | |||
| }, | |||
| submitForm(formName) { | |||
| this.$refs[formName].validate((valid) => { | |||
| if (valid) { | |||
| this.loadingBtn = true | |||
| demoService.save(this.ruleForm).then(res => { | |||
| this.$message({ | |||
| message: '操作成功!', | |||
| type: 'success' | |||
| }) | |||
| this.loadingBtn = false | |||
| this.$emit('close', 'save') | |||
| }).catch(() => { | |||
| this.loadingBtn = true | |||
| }) | |||
| } else { | |||
| console.log('error submit!!') | |||
| return false | |||
| } | |||
| }) | |||
| }, | |||
| resetForm(formName) { | |||
| this.$refs[formName].resetFields() | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @@ -35,16 +35,17 @@ export default { | |||
| mixins: [presenter(), header(), crud()], | |||
| data() { | |||
| return { | |||
| releaseSourceList: [], | |||
| dialogVisible: false, | |||
| id: '', | |||
| multipleSelection: [] | |||
| } | |||
| }, | |||
| cruds() { | |||
| return CRUD({ title: '列表', url: '/index/carNewsHotList', query: {}}) | |||
| return CRUD({ title: '列表', url: '/index/yuanyuzhouHotList', query: {}}) | |||
| }, | |||
| methods: { | |||
| [CRUD.HOOK.beforeRefresh]() { | |||
| this.query.videHas = 1 | |||
| }, | |||
| handleSelectionChange(val) { | |||
| this.multipleSelection = val | |||
| } | |||
| @@ -90,9 +90,7 @@ export default { | |||
| mixins: [presenter(), header(), crud()], | |||
| data() { | |||
| return { | |||
| releaseSourceList: [], | |||
| dialogVisible: false, | |||
| id: '', | |||
| ruleForm: { | |||
| image: '', | |||
| serialNumber: '', | |||
| @@ -1,118 +1,57 @@ | |||
| <!-- | |||
| * @Date: 2021-10-11 14:12:26 | |||
| * @LastEditTime: 2022-07-27 10:48:47 | |||
| * @Description: 新增/编辑页面 | |||
| * @Date: 2021-07-08 11:02:40 | |||
| * @LastEditTime: 2022-07-27 10:48:43 | |||
| * @Description: 列表查询demo | |||
| --> | |||
| <template> | |||
| <div class="app-container"> | |||
| <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="resetform"> | |||
| <el-form-item label="是否显示"> | |||
| <el-radio-group v-model="ruleForm.isShow"> | |||
| <el-radio label="1">是</el-radio> | |||
| <el-radio label="0">否</el-radio> | |||
| </el-radio-group> | |||
| </el-form-item> | |||
| <el-card style="margin-top:20px" class="suIbtemCard" v-for="(item, index) in imgList" :key="index"> | |||
| <el-form-item label="上传视频"> | |||
| <uploadFile :url.sync="item.imgSrc" type="image"/> | |||
| <el-input v-model="item.imgSrc"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="标题"> | |||
| <el-input v-model="item.title"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="描述"> | |||
| <el-input v-model="item.desc"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="跳转链接"> | |||
| <el-input v-model="item.link"></el-input> | |||
| </el-form-item> | |||
| <el-form-item> | |||
| <el-button type="success" icon="el-icon-plus" circle v-if="imgList.length - 1 === index" @click="addItem"></el-button> | |||
| <el-button type="danger" icon="el-icon-delete" circle @click="imgList.length > 1 && delItem(item, index)"></el-button> | |||
| </el-form-item> | |||
| </el-card> | |||
| <el-form-item> | |||
| <el-button type="primary" :loading="loadingBtn" @click="submitForm('ruleForm')">保存</el-button> | |||
| </el-form-item> | |||
| </el-form> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import demoService from '@/api/nested/demo' | |||
| import uploadFile from '@/components/uploadFile' | |||
| export default { | |||
| components: { | |||
| uploadFile | |||
| }, | |||
| data() { | |||
| return { | |||
| imgList: [ | |||
| { imgSrc: '', link: '', title: '', desc: '' } | |||
| ], | |||
| ruleForm: { | |||
| name: '', | |||
| region: '', | |||
| type: [], | |||
| resource: '', | |||
| desc: '' | |||
| }, | |||
| rules: { | |||
| name: [ | |||
| { required: true, message: '请输入活动名称', trigger: 'blur' }, | |||
| { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } | |||
| ], | |||
| region: [ | |||
| { required: true, message: '请选择活动区域', trigger: 'change' } | |||
| ], | |||
| type: [ | |||
| { type: 'array', required: true, message: '请至少选择一个活动性质', trigger: 'change' } | |||
| ], | |||
| resource: [ | |||
| { required: true, message: '请选择活动资源', trigger: 'change' } | |||
| ], | |||
| desc: [ | |||
| { required: true, message: '请填写活动形式', trigger: 'blur' } | |||
| ] | |||
| }, | |||
| loadingBtn: false | |||
| } | |||
| }, | |||
| created() { | |||
| if (this.id) { | |||
| this.getData() | |||
| } | |||
| }, | |||
| methods: { | |||
| addItem() { | |||
| this.imgList.push({ imgSrc: '', link: '', title: '', desc: '' }) | |||
| }, | |||
| delItem(item, index) { | |||
| this.imgList.splice(index, 1) | |||
| }, | |||
| submitForm(formName) { | |||
| this.$refs[formName].validate((valid) => { | |||
| if (valid) { | |||
| this.loadingBtn = true | |||
| demoService.save(this.ruleForm).then(res => { | |||
| this.$message({ | |||
| message: '操作成功!', | |||
| type: 'success' | |||
| }) | |||
| this.loadingBtn = false | |||
| this.$emit('close', 'save') | |||
| }).catch(() => { | |||
| this.loadingBtn = true | |||
| }) | |||
| } else { | |||
| console.log('error submit!!') | |||
| return false | |||
| } | |||
| }) | |||
| }, | |||
| resetForm(formName) { | |||
| this.$refs[formName].resetFields() | |||
| } | |||
| <div class="app-container"> | |||
| <!--工具栏--> | |||
| <div class="head-container"> | |||
| <div> | |||
| <el-button class="filter-item" size="mini" type="primary" icon="el-icon-plus" | |||
| @click="openSave()">新增</el-button> | |||
| </div> | |||
| </div> | |||
| <!--表格渲染--> | |||
| <el-table ref="table" v-loading="crud.loading" :data="crud.data" style="width: 100%;" @selection-change="handleSelectionChange" | |||
| > | |||
| <el-table-column type="selection" width="55" /> | |||
| <el-table-column :show-overflow-tooltip="true" prop="newsId" label="序号" /> | |||
| <el-table-column :show-overflow-tooltip="true" prop="标题" label="newsTitle" /> | |||
| <el-table-column :show-overflow-tooltip="true" prop="createDate" label="创建时间" /> | |||
| </el-table> | |||
| <!--分页组件--> | |||
| <pagination /> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import CRUD, { presenter, header, crud } from '@crud/crud' | |||
| import pagination from '@crud/Pagination' | |||
| export default { | |||
| name: 'Demo', | |||
| components: { pagination }, | |||
| mixins: [presenter(), header(), crud()], | |||
| data() { | |||
| return { | |||
| releaseSourceList: [], | |||
| dialogVisible: false, | |||
| id: '', | |||
| multipleSelection: [] | |||
| } | |||
| }, | |||
| cruds() { | |||
| return CRUD({ title: '列表', url: '/index/carNewsHotList', query: {}}) | |||
| }, | |||
| methods: { | |||
| /* 刷新前操作 */ | |||
| [CRUD.HOOK.beforeRefresh]() { | |||
| this.query.videHas = 1 | |||
| }, | |||
| handleSelectionChange(val) { | |||
| this.multipleSelection = val | |||
| } | |||
| </script> | |||
| } | |||
| } | |||
| </script> | |||
| @@ -32,9 +32,9 @@ module.exports = { | |||
| productionSourceMap: false, | |||
| devServer: { | |||
| port: port, | |||
| headers: { | |||
| 'Access-Control-Allow-Origin': '*' | |||
| }, | |||
| // headers: { | |||
| // 'Access-Control-Allow-Origin': '*' | |||
| // }, | |||
| open: true, | |||
| overlay: { | |||
| warnings: false, | |||