yujialong 1 year ago
parent e2d4f935f4
commit 5461a4e832
  1. 5
      src/api/index.js
  2. BIN
      src/assets/images/page/aboutUs.png
  3. BIN
      src/assets/images/page/index.png
  4. BIN
      src/assets/images/page/member.png
  5. BIN
      src/assets/images/page/supplier.png
  6. 106
      src/const/modules.js
  7. 4
      src/layouts/navbar/index.vue
  8. 2
      src/pages/article/add/index.vue
  9. 57
      src/pages/column/page/index.vue
  10. 2
      src/pages/column/page/member.vue
  11. 112
      src/pages/seo/index.vue
  12. 11
      src/pages/site/list/index.vue
  13. 18
      src/router/modules/seo.js
  14. 2
      src/setting.js

@ -33,6 +33,7 @@ export default {
groupUpdate: `iasf/sys/userGroup/update`,
site: `iasf/sys/site/list`,
updateSite: `iasf/sys/site/update`,
delSite: `iasf/sys/site/delete`,
listWithTree: `iasf/sysColumn/listWithTree`,
saveColumn: `iasf/sysColumn/save`,
updateColumn: `iasf/sysColumn/update`,
@ -78,4 +79,8 @@ export default {
resort: `iasf/sysContent/sort`,
articleTopOperation: `iasf/sysContent/articleTopOperation`,
deleteUselessData: `iasf/sysColumn/deleteUselessData`,
addSeo: `iasf/seo/add`,
delSeo: `iasf/seo/delete`,
seoList: `iasf/seo/list`,
updateSeo: `iasf/seo/update`,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 385 KiB

After

Width:  |  Height:  |  Size: 545 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 385 KiB

After

Width:  |  Height:  |  Size: 512 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

@ -68,6 +68,104 @@ export default {
}
]
},
{
type: 'introduce',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
required: true,
},
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'textarea',
prop: 'des',
label: '描述'
}
],
form: {
pic: '',
title: '',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: '',
isEnable: 1
},
list: [
{
pic: 'https://www.occupationlab.com/images/index/1.png',
title: '职站',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: '教、学、练、考实验教学平台',
isEnable: 1
},
{
pic: 'https://www.occupationlab.com/images/index/1.png',
title: 'Dataforward数据前瞻',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: '准确海量的数据平台',
isEnable: 1
},
{
pic: 'https://www.occupationlab.com/images/index/1.png',
title: '大赛平台',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: '技能实践的大赛平台',
isEnable: 1
},
],
dialogWidth: '1200px',
},
],
member: [
{
@ -147,19 +245,19 @@ export default {
list: [
{
pic: 'https://www.occupationlab.com/images/member/icon1.png',
title: '一站式采购',
title: '采购降本',
des: '优选高品质低价格产品',
isEnable: 1
},
{
pic: 'https://www.occupationlab.com/images/member/icon2.png',
title: '精准产品匹配',
title: '精准匹配',
des: '体系化产品方案匹配满足不同学科需求',
isEnable: 1
},
{
pic: 'https://www.occupationlab.com/images/member/icon3.png',
title: '本地化售前顾问',
title: '本地服务',
des: '提供项目全流程售前售后支持服务',
isEnable: 1
},
@ -177,7 +275,7 @@ export default {
},
{
pic: 'https://www.occupationlab.com/images/member/icon6.png',
title: '智能方案生成',
title: '智能方案',
des: '内置有实验室配置方案模板只需3分钟即可生成方案',
isEnable: 1
},

@ -189,6 +189,10 @@ export default {
{
index: '/article',
title: '文章管理'
},
{
index: '/seo',
title: 'SEO管理'
}
]
}

@ -1321,7 +1321,7 @@ export default {
//
nameChange () {
const { title, level, id } = this.form
const { title, id } = this.form
if (title && title !== this.originalName) {
this.$post(this.api.checkIfTheTitleIsRepeat, {
siteId: this.site.id,

@ -29,6 +29,22 @@
<div class="cover"
@click="toSet(0)">点击更换banner与链接</div>
</div>
<ul class="intro c-wrap m-t-20">
<template v-for="(item, i) in modules[1].list">
<li v-if="item.isEnable"
:key="i">
<img :src="item.pic"
alt="">
<div class="text">
<h6>{{ item.title }}</h6>
<p class="desc">{{ item.des }}</p>
</div>
</li>
</template>
<div class="cover"
@click="toSet(1)">点击更改图片标题链接与描述</div>
</ul>
</div>
<Module ref="module"
@ -75,4 +91,45 @@ export default {
<style lang="scss" scoped>
@import '../../../styles/page/page.scss';
.intro {
display: flex;
justify-content: space-between;
align-items: center;
padding: 43px 0;
background-color: #fff;
li {
display: inline-flex;
align-items: center;
cursor: pointer;
transition: 0.3s;
&.active {
h6,
.desc {
color: #006eff;
}
}
&:hover {
margin-top: -15px;
h6,
.desc {
color: #006eff;
}
}
}
img {
width: 50px;
margin-right: 15px;
}
h6 {
margin-bottom: 5px;
font-size: 16px;
color: #0b1d30;
transition: 0.5s;
}
.desc {
font-size: 13px;
color: #757f92;
transition: 0.5s;
}
}
</style>

@ -44,7 +44,7 @@
:key="i">
<img :src="item.pic"
alt="">
<p class="name">{{ item.name }}</p>
<p class="name">{{ item.title }}</p>
<p class="des">{{ item.des }}</p>
</li>
</ul>

@ -0,0 +1,112 @@
<template>
<div class="page">
<p class="page-name mb">SEO管理</p>
<el-form ref="form"
:model="form"
:rules="rules"
class="input-form"
label-width="140px">
<el-form-item prop="title"
label="SEO标题">
<el-input placeholder="SEO标题"
v-model="form.title"
clearable
maxlength="100"></el-input>
</el-form-item>
<el-form-item prop="keyword"
label="SEO关键词">
<el-input placeholder="SEO关键词"
v-model="form.keyword"
clearable></el-input>
</el-form-item>
<el-form-item prop="description"
label="SEO描述">
<el-input type="textarea"
placeholder="SEO标题"
v-model="form.description"
clearable></el-input>
</el-form-item>
</el-form>
<div class="text-center">
<el-button type="primary"
@click="submit">保存</el-button>
</div>
</div>
</template>
<script>
import Setting from '@/setting'
import Util from '@/libs/util'
export default {
data () {
return {
siteId: this.$store.state.content.site.id,
form: {
siteId: this.$store.state.content.site.id,
title: '',
keyword: '',
description: '',
},
rules: {
title: [
{ required: true, message: '请输入SEO标题', trigger: 'blur' }
],
keyword: [
{ required: true, message: '请输入SEO关键词', trigger: 'blur' }
],
description: [
{ required: true, message: '请输入SEO描述', trigger: 'blur' }
],
}
};
},
mounted () {
this.$store.commit('user/setCrumbs', [
{
name: '站点管理',
route: '/site'
},
{
name: '内容管理'
},
{
name: 'SEO管理',
},
])
this.getData()
},
methods: {
// seo
getData () {
this.$get(this.api.seoList, {
siteId: this.siteId,
}).then(({ data }) => {
this.form = data[0]
}).catch(err => { })
},
//
submit () {
this.$refs.form.validate((valid) => {
if (valid) {
if (this.submiting) return false
this.submiting = true
this.$post(this.api.updateSeo, this.form).then(res => {
Util.successMsg('保存成功!')
this.submiting = false
}).catch(res => {
this.submiting = false
})
}
})
},
}
};
</script>
<style lang="scss" scoped>
.input-form {
.el-input,
.el-textarea {
width: 940px;
}
}
</style>

@ -91,11 +91,22 @@ export default {
name: '站点管理'
}
])
// this.updateSite()
},
methods: {
...mapMutations('content', [
'setSite'
]),
//
async updateSite () {
await this.$put(this.api.updateSite, {
id: 1,
siteName: '或然官网'
})
await this.$del(this.api.delSite, {
id: 2,
})
},
getData () {
this.$post(this.api.site, {
page: this.page,

@ -0,0 +1,18 @@
import BasicLayout from '@/layouts/home'
const meta = {}
const pre = 'article-'
export default {
path: '/seo',
meta,
component: BasicLayout,
children: [
{
path: `/seo`,
component: () => import('@/pages/seo'),
meta: { title: 'SEO管理' }
},
]
}

@ -5,7 +5,7 @@ const url = location.host;
const isDev = process.env.NODE_ENV === 'development' // 开发环境
let host = `${location.origin}/`
if (isDev) {
// host = 'http://192.168.31.52:10000/'
// host = 'http://192.168.31.51:9999/'
host = 'http://139.159.254.212/'
}

Loading…
Cancel
Save