chutingting hace 1 año
padre
commit
a0ed729ebb
Se han modificado 15 ficheros con 1039 adiciones y 348 borrados
  1. +67
    -0
      src/api/aigc.js
  2. +43
    -0
      src/router/index.js
  3. +83
    -0
      src/views/aigc/banner1.vue
  4. +83
    -0
      src/views/aigc/banner2.vue
  5. +174
    -0
      src/views/aigc/carousel.vue
  6. +60
    -0
      src/views/aigc/news.vue
  7. +158
    -0
      src/views/aigc/numberImg.vue
  8. +166
    -0
      src/views/aigc/numberLive.vue
  9. +146
    -0
      src/views/aigc/video.vue
  10. +0
    -115
      src/views/articleManage/index.vue
  11. +0
    -112
      src/views/articleManage/save.vue
  12. +4
    -3
      src/views/homePage/carHot.vue
  13. +0
    -2
      src/views/homePage/carousel.vue
  14. +52
    -113
      src/views/homePage/yyzHot.vue
  15. +3
    -3
      vue.config.js

+ 67
- 0
src/api/aigc.js Ver fichero

@@ -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
})
}

+ 43
- 0
src/router/index.js Ver fichero

@@ -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,


+ 83
- 0
src/views/aigc/banner1.vue Ver fichero

@@ -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>

+ 83
- 0
src/views/aigc/banner2.vue Ver fichero

@@ -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>

+ 174
- 0
src/views/aigc/carousel.vue Ver fichero

@@ -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>

+ 60
- 0
src/views/aigc/news.vue Ver fichero

@@ -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>

+ 158
- 0
src/views/aigc/numberImg.vue Ver fichero

@@ -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>

+ 166
- 0
src/views/aigc/numberLive.vue Ver fichero

@@ -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>

+ 146
- 0
src/views/aigc/video.vue Ver fichero

@@ -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>

+ 0
- 115
src/views/articleManage/index.vue Ver fichero

@@ -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>

+ 0
- 112
src/views/articleManage/save.vue Ver fichero

@@ -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>

+ 4
- 3
src/views/homePage/carHot.vue Ver fichero

@@ -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
}


+ 0
- 2
src/views/homePage/carousel.vue Ver fichero

@@ -90,9 +90,7 @@ export default {
mixins: [presenter(), header(), crud()],
data() {
return {
releaseSourceList: [],
dialogVisible: false,
id: '',
ruleForm: {
image: '',
serialNumber: '',


+ 52
- 113
src/views/homePage/yyzHot.vue Ver fichero

@@ -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>

+ 3
- 3
vue.config.js Ver fichero

@@ -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,


Cargando…
Cancelar
Guardar