添加人才中心

master
yujialong 2 years ago
parent d94596c3f9
commit abc4b96c3e
  1. BIN
      src/assets/images/page/talentCenter.png
  2. 2
      src/components/modules/history.vue
  3. 24
      src/components/modules/module.vue
  4. 295
      src/const/modules.js
  5. 6
      src/mixins/page/index.js
  6. 22
      src/pages/article/list/index.vue
  7. 2
      src/pages/column/add/index.vue
  8. 4
      src/pages/column/page/overviewSetup.vue
  9. 272
      src/pages/column/page/talentCenter.vue
  10. 4
      src/router/modules/column.js
  11. 2
      src/setting.js

Binary file not shown.

After

Width:  |  Height:  |  Size: 749 KiB

@ -1,5 +1,5 @@
<template> <template>
<!-- 内容 --> <!-- sfel-概况-发展历程 or 产业光源-概况-大事记 -->
<div> <div>
<el-dialog title="编辑内容" :visible.sync="visible" width="70%" custom-class="module" :close-on-click-modal="false" :before-close="close"> <el-dialog title="编辑内容" :visible.sync="visible" width="70%" custom-class="module" :close-on-click-modal="false" :before-close="close">
<el-table class="module-table" :data="list" header-align="center" row-key="id"> <el-table class="module-table" :data="list" header-align="center" row-key="id">

@ -1,8 +1,26 @@
<template> <template>
<div> <div>
<!--
模块type: banner | introduce | form | forms | column | columns | history
-->
<el-dialog title="模块管理" :visible.sync="visible" width="700px" custom-class="module" :close-on-click-modal="false" :before-close="close"> <el-dialog title="模块管理" :visible.sync="visible" width="700px" custom-class="module" :close-on-click-modal="false" :before-close="close">
<template v-if="data.type === 'banner' || data.type === 'introduce'"> <template v-if="data.type === 'banner' || data.type === 'introduce' || data.type === 'label'">
<el-table class="module-table" :data="data.list" header-align="center" row-key="id"> <el-table v-if="data.type === 'label'" class="module-table" :data="data.list" header-align="center" row-key="id">
<el-table-column type="index" width="60" label="序号" align="center"></el-table-column>
<el-table-column prop="title" label="标题" min-width="140" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.title" placeholder="请输入" maxlength="100"></el-input>
</template>
</el-table-column>
<el-table-column label="操作" width="60" align="center">
<template slot-scope="scope">
<div class="flex j-center a-center">
<i class="el-icon-delete del" @click="delRow(data.list, scope.$index)"></i>
</div>
</template>
</el-table-column>
</el-table>
<el-table v-else class="module-table" :data="data.list" header-align="center" row-key="id">
<el-table-column type="index" width="60" label="序号" align="center"></el-table-column> <el-table-column type="index" width="60" label="序号" align="center"></el-table-column>
<el-table-column label="图片" min-width="140" align="center"> <el-table-column label="图片" min-width="140" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
@ -327,7 +345,7 @@ export default {
// //
addRow() { addRow() {
const { type } = this.data const { type } = this.data
if (type === 'banner') { if (type === 'banner' || type === 'label') {
this.data.list.push(JSON.parse(JSON.stringify(this.data.originForm))) this.data.list.push(JSON.parse(JSON.stringify(this.data.originForm)))
} else if (type === 'history') { } else if (type === 'history') {
this.data.list.push(JSON.parse(JSON.stringify(this.data.historyForm))) this.data.list.push(JSON.parse(JSON.stringify(this.data.historyForm)))

@ -4942,6 +4942,20 @@ export default {
des: ` 根据《深圳综合粒子设施理事会章程》有关规定,研究院实行理事会领导下的院长负责制,理事长由市长担任,副理事长由分管发改、科创副市长,以及中山大学、南方科技大学校长担任,理事成员包括市政府秘书长、相关副秘书长及政府部门、高等院校、科研机构、龙头企业相关负责同志。` des: ` 根据《深圳综合粒子设施理事会章程》有关规定,研究院实行理事会领导下的院长负责制,理事长由市长担任,副理事长由分管发改、科创副市长,以及中山大学、南方科技大学校长担任,理事成员包括市政府秘书长、相关副秘书长及政府部门、高等院校、科研机构、龙头企业相关负责同志。`
} }
}, },
{
type: 'form',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
required: true
},
],
form: {
pic: 'http://10.10.11.7/images/overviewSetup/2.png',
}
},
], ],
overviewDevHistory: [ overviewDevHistory: [
{ {
@ -5735,4 +5749,285 @@ export default {
} }
}, },
], ],
talentCenter: [
{
type: 'form',
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: 'http://10.10.11.7/images/talentCenter/5.png',
title: '人才中心',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
}
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '描述'
}
],
form: {
title: '有兴趣将科学转化为创新吗?在IASF建立你的职业生涯。',
des: `在IASF,我们从不同的角度看待世界。我们的科学家和工程师在清洁能源、环境、技术、国家安全等方面进行世界一流的研究。我们正在寻找创造性的方法来让世界为更美好的未来做好准备。
通过选择您感兴趣的机会类型开始`
}
},
{
type: 'form',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
required: true
},
],
form: {
pic: 'http://10.10.11.7/images/talentCenter/1.png',
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'textarea',
prop: 'des',
label: '描述'
}
],
form: {
title: '校园招聘',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: `在IASF,有兴趣将科学转化为创新吗?在IASF建立你的职业生我们的科学国家安全等方面进行世界…`
}
},
{
type: 'label',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
],
form: {
title: '',
},
list: [
{
title: '实验室综合管理岗',
}
]
},
{
type: 'form',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
required: true
},
],
form: {
pic: 'http://10.10.11.7/images/talentCenter/2.png',
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'textarea',
prop: 'des',
label: '描述'
}
],
form: {
title: '社会招聘',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: `在IASF,有兴趣将科学转化为创新吗?在IASF建立你的职业生我们的科学国家安全等方面进行世界…`
}
},
{
type: 'label',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
],
form: {
title: '',
},
list: [
{
title: '实验室综合管理岗',
}
]
},
{
type: 'form',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
required: true
},
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'link',
prop: 'link',
label: '链接'
},
],
form: {
pic: 'http://10.10.11.7/images/talentCenter/3.png',
title: '通知公告',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
}
},
{
type: 'form',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
required: true
},
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'link',
prop: 'link',
label: '链接'
},
],
form: {
pic: 'http://10.10.11.7/images/talentCenter/4.png',
title: '人才服务',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
}
},
],
} }

@ -47,7 +47,7 @@ export default {
this.modules.map(e => { this.modules.map(e => {
const { type, list, form } = e const { type, list, form } = e
// 克隆一个原始row,方便添加 // 克隆一个原始row,方便添加
if (type === 'banner' || type === 'introduce' || type === 'history') { if (type === 'banner' || type === 'introduce' || type === 'history' || type === 'label') {
const data = JSON.parse(JSON.stringify(e.form || e.list[0])) const data = JSON.parse(JSON.stringify(e.form || e.list[0]))
for (const i in data) { for (const i in data) {
if (typeof data[i] === 'string') data[i] = '' if (typeof data[i] === 'string') data[i] = ''
@ -71,10 +71,10 @@ export default {
const str = json[json.state ? 'theEditedJson' : 'jsonBeforeEditing'] const str = json[json.state ? 'theEditedJson' : 'jsonBeforeEditing']
const list = JSON.parse(str) const list = JSON.parse(str)
this.originModules = str // 原始json,用以页面离开的时候判断是否需要提示保存 this.originModules = str // 原始json,用以页面离开的时候判断是否需要提示保存
console.log("🚀 ~ file: index.js:82 ~ this.$post ~ this.modules:", this.modules,list, modules) console.log("🚀 ~ file: index.js:82 ~ this.$post ~ this.modules:", this.modules)
list.map((e, i) => { list.map((e, i) => {
if ((e.type === 'banner' || e.type === 'introduce' || e.type === 'history') && !e.originForm) { if ((e.type === 'banner' || e.type === 'introduce' || e.type === 'history' || e.type === 'label') && !e.originForm) {
e.originForm = modules[i].originForm e.originForm = modules[i].originForm
} }
}) })

@ -44,18 +44,18 @@
</el-table-column> </el-table-column>
<el-table-column v-if="settings[1].show" show-overflow-tooltip prop="title" label="标题" align="center" min-width="150"></el-table-column> <el-table-column v-if="settings[1].show" show-overflow-tooltip prop="title" label="标题" align="center" min-width="150"></el-table-column>
<el-table-column v-if="settings[2].show" prop="columnName" label="栏目" align="center" min-width="120"></el-table-column> <el-table-column v-if="settings[2].show" prop="columnName" label="栏目" align="center" min-width="120"></el-table-column>
<el-table-column prop="classificationName" label="所属分类" align="center" min-width="120"></el-table-column> <el-table-column v-if="settings[3].show" prop="classificationName" label="所属分类" align="center" min-width="120"></el-table-column>
<el-table-column v-if="settings[3].show" prop="typeId" label="栏目类型" align="center" min-width="100"> <el-table-column v-if="settings[4].show" prop="typeId" label="栏目类型" align="center" min-width="100">
<template slot-scope="scope"> <template slot-scope="scope">
{{ types.find(e => e.id === scope.row.typeId).name }} {{ types.find(e => e.id === scope.row.typeId).name }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="settings[4].show" prop="founderName" label="录入人" align="center" min-width="80"></el-table-column> <el-table-column v-if="settings[5].show" prop="founderName" label="录入人" align="center" min-width="80"></el-table-column>
<el-table-column v-if="settings[5].show" prop="editorName" label="修改人" align="center" min-width="80"></el-table-column> <el-table-column v-if="settings[6].show" prop="editorName" label="修改人" align="center" min-width="80"></el-table-column>
<el-table-column v-if="settings[6].show" prop="updateTime" label="修改日期" align="center" min-width="150" sortable="custom"></el-table-column> <el-table-column v-if="settings[7].show" prop="updateTime" label="修改日期" align="center" min-width="150" sortable="custom"></el-table-column>
<el-table-column v-if="settings[7].show" prop="releaseTime" label="发布日期" align="center" min-width="100" sortable="custom"></el-table-column> <el-table-column v-if="settings[8].show" prop="releaseTime" label="发布日期" align="center" min-width="100" sortable="custom"></el-table-column>
<el-table-column v-if="settings[8].show" prop="totalBrowsing" label="总浏览" align="center" min-width="70"></el-table-column> <el-table-column v-if="settings[9].show" prop="totalBrowsing" label="总浏览" align="center" min-width="70"></el-table-column>
<el-table-column v-if="settings[9].show" prop="workNumber" label="状态" align="center" min-width="80"> <el-table-column v-if="settings[10].show" prop="workNumber" label="状态" align="center" min-width="80">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.isRelease ? '已发布' : '草稿' }} {{ scope.row.isRelease ? '已发布' : '草稿' }}
</template> </template>
@ -65,7 +65,7 @@
<i v-if="scope.row.isRelease" :class="['squ-icon', scope.row.isTop ? 'el-icon-check' : 'el-icon-close']" @click="sticky(scope.row)"></i> <i v-if="scope.row.isRelease" :class="['squ-icon', scope.row.isTop ? 'el-icon-check' : 'el-icon-close']" @click="sticky(scope.row)"></i>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="settings[10].show" label="操作" align="center" width="190"> <el-table-column v-if="settings[11].show" label="操作" align="center" width="190">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-auth="'/site/list:' + siteName + ':内容管理:文章管理:预览'" type="text" @click="preview(scope.row)">预览</el-button> <el-button v-auth="'/site/list:' + siteName + ':内容管理:文章管理:预览'" type="text" @click="preview(scope.row)">预览</el-button>
<el-button v-auth="'/site/list:' + siteName + ':内容管理:文章管理:编辑'" type="text" @click="edit(scope.row)">编辑</el-button> <el-button v-auth="'/site/list:' + siteName + ':内容管理:文章管理:编辑'" type="text" @click="edit(scope.row)">编辑</el-button>
@ -147,6 +147,10 @@ export default {
name: '栏目', name: '栏目',
show: true show: true
}, },
{
name: '所属分类',
show: false
},
{ {
name: '栏目类型', name: '栏目类型',
show: true show: true

@ -497,7 +497,7 @@ export default {
this.listStyle = data.listingTemplateTypes this.listStyle = data.listingTemplateTypes
this.detailStyleId = data.detailsTypeOfTheTemplate this.detailStyleId = data.detailsTypeOfTheTemplate
if (set) { if (set) {
this.form.listStyleId = this.listStyle[0].id this.form.listStyleId = this.listStyle[1].id
this.form.detailStyleId = this.detailStyleId[0].id this.form.detailStyleId = this.detailStyleId[0].id
} }
}).catch(err => {}) }).catch(err => {})

@ -37,7 +37,8 @@
<div class="cover" style="min-height: 300px;" @click="toSet(1)">点击更换标题与描述</div> <div class="cover" style="min-height: 300px;" @click="toSet(1)">点击更换标题与描述</div>
</div> </div>
<div class="lg-bg"> <div class="lg-bg">
<img width="100%" src="http://10.10.11.7/images/overviewSetup/2.png" alt=""> <img width="100%" :src="modules[2].form.pic" alt="">
<div class="cover" @click="toSet(2)">点击更换图片</div>
</div> </div>
</div> </div>
</div> </div>
@ -139,6 +140,7 @@ export default {
} }
} }
.lg-bg { .lg-bg {
position: relative;
width: 85%; width: 85%;
margin: 0 auto; margin: 0 auto;
} }

@ -0,0 +1,272 @@
<template>
<div class="wrap">
<div class="actions">
<p class="page-name">页面设置/人才中心</p>
<div>
<el-button type="primary" @click="preview">预览</el-button>
<el-button @click="save(0)">保存为草稿</el-button>
<el-button type="primary" @click="save(1)">发布</el-button>
<el-button @click="back">放弃编辑</el-button>
</div>
</div>
<div class="modules">
<div class="relative">
<div class="single-banner single-banner-overview">
<img class="banner-img" :src="modules[0].form.pic" alt="">
<div class="texts">
<h6 class="banner-title">{{ modules[0].form.title }}</h6>
</div>
</div>
<div class="cover" @click="toSet(0)">点击更换banner与链接</div>
</div>
<div class="content">
<div class="article">
<div class="left">
<div class="c-wrap">
<h6 class="title">{{ modules[1].form.title }}</h6>
<div class="text" v-html="modules[1].form.des"></div>
<div class="cover" @click="toSet(1)">点击更换标题与描述</div>
</div>
<ul class="recruit">
<li>
<div class="c-wrap m-r-10">
<img class="pic" :src="modules[2].form.pic" alt="">
<div class="cover" @click="toSet(2)">点击更换图片</div>
</div>
<div class="texts">
<div class="c-wrap">
<div class="flex j-between a-center">
<h6 class="c-title">{{ modules[3].form.title }}</h6>
<div class="more">查看更多 ></div>
</div>
<p class="des" v-html="modules[3].form.des"></p>
<div class="cover" @click="toSet(3)">点击更换标题链接与描述</div>
</div>
<p class="hot">热门岗位</p>
<div class="labels">
<p v-for="(item, i) in modules[4].list" :key="i" class="label">{{ item.title }}</p>
<div class="cover" @click="toSet(4)">点击更换标签</div>
</div>
</div>
</li>
<li>
<div class="c-wrap m-r-10">
<img class="pic" :src="modules[5].form.pic" alt="">
<div class="cover" @click="toSet(5)">点击更换图片</div>
</div>
<div class="texts">
<div class="c-wrap">
<div class="flex j-between a-center">
<h6 class="c-title">{{ modules[6].form.title }}</h6>
<div class="more">查看更多 ></div>
</div>
<p class="des" v-html="modules[6].form.des"></p>
<div class="cover" @click="toSet(6)">点击更换标题链接与描述</div>
</div>
<p class="hot">热门岗位</p>
<div class="labels">
<p v-for="(item, i) in modules[7].list" :key="i" class="label">{{ item.title }}</p>
<div class="cover" @click="toSet(7)">点击更换标签</div>
</div>
</div>
</li>
</ul>
<ul class="notice">
<li class="m-r-10">
<img class="pic" :src="modules[8].form.pic" alt="">
<p class="text">{{ modules[8].form.title }}</p>
<div class="cover" @click="toSet(8)">点击更换图片标题与链接</div>
</li>
<li>
<img class="pic" :src="modules[9].form.pic" alt="">
<p class="text">{{ modules[9].form.title }}</p>
<div class="cover" @click="toSet(9)">点击更换图片标题与链接</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<Module ref="module" :data.sync="curData" :visible.sync="diaVisible" @moduleSubmit="moduleSubmit" />
</div>
</template>
<script>
import mixins from '@/mixins/page'
import Modules from '@/const/modules'
export default {
mixins: [mixins],
data() {
return {
modules: Modules.talentCenter
}
},
mounted() {
this.$store.commit('user/setCrumbs', [
{
name: '站点管理',
route: '/site'
},
{
name: '内容管理',
route: '/column'
},
{
name: '栏目管理',
route: '/column'
},
{
name: '人才中心'
}
])
},
methods: {
}
};
</script>
<style lang="scss" scoped>
@import "../../../styles/page/page.scss";
.wrap {
background-color: #F9FAFA;
}
.content {
width: 1400px;
padding-top: 40px;
}
.article {
display: flex;
justify-content: center;
.left {
width: 66%;
.title {
padding-bottom: 10px;
font-size: 1.2rem;
color: #666;
border-bottom: 1px solid #EAEEF2;
}
.text {
margin-top: 20px;
font-size: 1.1rem;
color: #333;
line-height: 28px;
p {
margin-bottom: 20px;
}
}
}
.recruit {
li {
display: flex;
padding: 20px;
margin-bottom: 24px;
background-color: #fff;
}
.pic {
width: 410px;
height: 250px;
margin-right: 20px;
}
.c-title {
font-size: 1.2rem;
columns: #333;
}
.more {
font-size: .8rem;
color: #0648A8;
cursor: pointer;
}
.des {
margin: 20px 0;
font-size: 1rem;
color: #666;
line-height: 22px;
}
.hot {
margin-bottom: 10px;
font-size: 1.1rem;
color: #333;
}
.labels {
position: relative;
display: flex;
flex-wrap: wrap;
}
.label {
padding: 5px 15px;
margin: 0 15px 15px 0;
font-size: 1rem;
border-radius: 22px;
border: 1px solid #666;
}
}
.notice {
display: flex;
li {
position: relative;
width: calc((100% - 20px) / 2);
height: 300px;
padding: 20px;
background-color: #fff;
}
.pic {
width: 100%;
height: 100%;
}
.text {
position: absolute;
bottom: 20px;
left: 20px;
width: calc(100% - 40px);
font-size: 1.6rem;
line-height: 66px;
text-align: center;
color: #fff;
background: rgba(32,57,81,0.68);
}
}
.right {
width: 20%;
}
.column {
width: 100%;
margin-bottom: 25px;
}
/deep/.el-tree-node__content {
height: 44px;
background-color: #E5EDF8;
border-bottom: 2px solid #fff;
}
/deep/.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {
color: #fff;
background-color: #0f5698;
}
.list {
margin-bottom: 20px;
li {
padding: 16px 0;
border-bottom: 1px solid #D8D8D8;
}
.text {
margin-bottom: 5px;
font-size: 14px;
cursor: pointer;
&:hover {
color: $main-color;
}
}
.date {
font-size: 12px;
color: #999;
}
}
}
@media (max-width: 1420px) {
.content {
width: 98%;
}
}
</style>

@ -177,5 +177,9 @@ export default {
path: `estate/survey`, path: `estate/survey`,
component: () => import('@/pages/column/page/estate/survey'), component: () => import('@/pages/column/page/estate/survey'),
}, },
{
path: `talentCenter`,
component: () => import('@/pages/column/page/talentCenter'),
},
] ]
} }

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

Loading…
Cancel
Save