yujialong 2 years ago
parent 28ea2d3beb
commit 86f832f8a0
  1. 2
      public/editor.css
  2. 2
      src/api/index.js
  3. 2
      src/components/modules/module.vue
  4. 2529
      src/const/modules.js
  5. 1
      src/pages/article/add/editor.js
  6. 124
      src/pages/article/add/index.vue
  7. 6
      src/pages/article/list/index.vue
  8. 24
      src/pages/column/add/index.vue
  9. 782
      src/pages/column/page/about.vue
  10. 431
      src/pages/column/page/careers.vue
  11. 249
      src/pages/column/page/edu.vue
  12. 476
      src/pages/column/page/home.vue
  13. 159
      src/pages/column/page/news.vue
  14. 143
      src/pages/column/page/newsPress.vue
  15. 143
      src/pages/column/page/newsProcurement.vue
  16. 2
      src/styles/common.scss
  17. 10
      src/styles/page/page.scss

@ -4,7 +4,7 @@
background-color: #ededed; background-color: #ededed;
} }
.tiny-wrap { .tiny-wrap {
width: 900px; /* width: 900px; */
margin: 0 auto; margin: 0 auto;
} }
.tiny-wrap blockquote p { .tiny-wrap blockquote p {

@ -67,7 +67,7 @@ export default {
queryLabel: `iasf/content/label/queryAllArticleSubjectTags`, queryLabel: `iasf/content/label/queryAllArticleSubjectTags`,
saveLabel: `iasf/content/label/save`, saveLabel: `iasf/content/label/save`,
updateLabel: `iasf/content/label/update`, updateLabel: `iasf/content/label/update`,
delContentFile: `iasf/content/file/batchDeletion`, delContentFile: `iasf/content/file/delete`,
saveContentFile: `iasf/content/file/save`, saveContentFile: `iasf/content/file/save`,
theAttachmentUnderTheQueryColumn: `iasf/content/file/theAttachmentUnderTheQueryColumn`, theAttachmentUnderTheQueryColumn: `iasf/content/file/theAttachmentUnderTheQueryColumn`,
} }

@ -37,7 +37,6 @@
<div class="link-wrap"> <div class="link-wrap">
<span>{{ scope.row.link.linkName }}</span> <span>{{ scope.row.link.linkName }}</span>
<el-button v-if="data.type === 'banner'" class="set-link" type="primary" size="mini" @click="toLink(scope.row, scope.$index)">设置链接</el-button> <el-button v-if="data.type === 'banner'" class="set-link" type="primary" size="mini" @click="toLink(scope.row, scope.$index)">设置链接</el-button>
<el-button v-else class="set-link" type="primary" size="mini" @click="editIntro(scope.row, scope.$index)">编辑</el-button>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@ -49,6 +48,7 @@
:active-value="1" :active-value="1"
:inactive-value="0"> :inactive-value="0">
</el-switch> </el-switch>
<i v-if="data.type === 'introduce'" class="el-icon-edit-outline del" @click="editIntro(scope.row, scope.$index)"></i>
<i class="el-icon-delete del" @click="delRow(data.list, scope.$index)"></i> <i class="el-icon-delete del" @click="delRow(data.list, scope.$index)"></i>
</div> </div>
</template> </template>

File diff suppressed because it is too large Load Diff

@ -172,6 +172,7 @@ export default {
] ]
} }
], ],
width: 940,
height: 650, //编辑器高度 height: 650, //编辑器高度
min_height: 400, min_height: 400,
content_css: [ //可设置编辑区内容展示的css,谨慎使用 content_css: [ //可设置编辑区内容展示的css,谨慎使用

@ -2,6 +2,31 @@
<div class="page"> <div class="page">
<p class="page-name mb">文章详情</p> <p class="page-name mb">文章详情</p>
<el-form :model="form" :rules="rules" class="input-form model" label-width="140px"> <el-form :model="form" :rules="rules" class="input-form model" label-width="140px">
<el-form-item class="lg" prop="articleTemplate" label="独立文章模板">
<el-popover
placement="top-start"
trigger="hover"
content="默认使用栏目中设置的文章样式,如果需要为该篇文章指定专门的模板样式,可以设置此项">
<img slot="reference" class="info" src="@/assets/images/ques.png" alt="">
</el-popover>
<div style="width: 940px;text-align: right;">
<el-switch
v-model="form.templateStatus"
:active-value="1"
:inactive-value="0">
</el-switch>
</div>
<ul v-if="form.templateStatus" class="styles">
<template v-for="(item, i) in detailStyle">
<li v-if="item.id !== column.detailStyle" :key="i" @click="form.articleTemplate = item.id">
<div class="review">
<img :src="require('@/assets/images/article' + item.id + '.png')" alt="">
</div>
<el-radio v-model="form.articleTemplate" :label="item.id">{{ item.name }}</el-radio>
</li>
</template>
</ul>
</el-form-item>
<el-form-item prop="title" label="标题"> <el-form-item prop="title" label="标题">
<el-input <el-input
style="width: 940px" style="width: 940px"
@ -77,7 +102,7 @@
</div> </div>
<div class="item-line"> <div class="item-line">
<el-form-item prop="source" label="所属分类"> <el-form-item prop="source" label="所属分类">
<el-select style="width: 234px;" v-model="form.typeId"> <el-select style="width: 234px;" v-model="form.classificationId">
<el-option <el-option
v-for="item in classifications" v-for="item in classifications"
:key="item.id" :key="item.id"
@ -85,11 +110,10 @@
:value="item.id"> :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
<!-- <el-button class="set-btn" type="primary" @click="setClass">设置</el-button> --> <el-button class="set-btn" type="primary" @click="setClass">设置</el-button>
<el-button class="set-btn" type="primary">设置</el-button>
</el-form-item> </el-form-item>
<el-form-item prop="author" label="主题标签"> <el-form-item prop="author" label="主题标签">
<el-select style="width: 234px;" v-model="form.typeId"> <el-select style="width: 234px;" v-model="form.lableId">
<el-option <el-option
v-for="item in labels" v-for="item in labels"
:key="item.id" :key="item.id"
@ -97,8 +121,7 @@
:value="item.id"> :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
<!-- <el-button class="set-btn" type="primary" @click="setLabel">设置</el-button> --> <el-button class="set-btn" type="primary" @click="setLabel">设置</el-button>
<el-button class="set-btn" type="primary">设置</el-button>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item prop="summary" label="摘要"> <el-form-item prop="summary" label="摘要">
@ -142,29 +165,6 @@
</div> </div>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item class="lg" prop="articleTemplate" label="独立文章模板">
<el-popover
placement="top-start"
trigger="hover"
content="默认使用栏目中设置的文章样式,如果需要为该篇文章指定专门的模板样式,可以设置此项">
<img slot="reference" class="info" src="@/assets/images/ques.png" alt="">
</el-popover>
<el-switch
v-model="form.templateStatus"
:active-value="1"
:inactive-value="0">
</el-switch>
<ul v-if="form.templateStatus" class="styles">
<template v-for="(item, i) in detailStyle">
<li v-if="item.id !== column.detailStyle" :key="i" @click="form.articleTemplate = item.id">
<div class="review">
<img :src="require('@/assets/images/article' + item.id + '.png')" alt="">
</div>
<el-radio v-model="form.articleTemplate" :label="item.id">{{ item.name }}</el-radio>
</li>
</template>
</ul>
</el-form-item>
<template v-if="!form.templateStatus || (form.templateStatus && form.articleTemplate === 2)"> <template v-if="!form.templateStatus || (form.templateStatus && form.articleTemplate === 2)">
<el-form-item prop="mainBody" label="正文"> <el-form-item prop="mainBody" label="正文">
<Editor api-key='rnk6zw9v267xqz7pf98twt1vmrvltmd436je7a642pckltda' v-model="form.mainBody" :init="editorConfig" /> <Editor api-key='rnk6zw9v267xqz7pf98twt1vmrvltmd436je7a642pckltda' v-model="form.mainBody" :init="editorConfig" />
@ -239,7 +239,7 @@
<el-button type="primary" @click="submit(1)">发布</el-button> <el-button type="primary" @click="submit(1)">发布</el-button>
<el-button @click="preview">预览</el-button> <el-button @click="preview">预览</el-button>
<el-button @click="submit(0)">保存草稿</el-button> <el-button @click="submit(0)">保存草稿</el-button>
<el-button @click="$router.back()">取消</el-button> <el-button @click="back">取消</el-button>
</div> </div>
<!-- 剪裁组件弹窗 --> <!-- 剪裁组件弹窗 -->
<el-dialog title="图片裁剪" append-to-body :visible.sync="cropperModel" width="1100px" :close-on-click-modal="false"> <el-dialog title="图片裁剪" append-to-body :visible.sync="cropperModel" width="1100px" :close-on-click-modal="false">
@ -353,6 +353,8 @@ export default {
edit: '', edit: '',
audit: '', audit: '',
bannerImg: '', bannerImg: '',
lableId: '',
classificationId: '',
columnId: +this.$route.query.columnId, columnId: +this.$route.query.columnId,
file: '', file: '',
isRelease: 0, isRelease: 0,
@ -389,6 +391,7 @@ export default {
fileList: [], fileList: [],
editorConfig, editorConfig,
submiting: false, // submiting: false, //
pass: false,
updateTime: 0, updateTime: 0,
cropperModel: false, cropperModel: false,
isUpload: false, isUpload: false,
@ -426,7 +429,7 @@ export default {
beforeRouteLeave(to, from, next) { beforeRouteLeave(to, from, next) {
if (this.submiting) { if (this.submiting) {
next() next()
} else { } else if (!this.pass) {
const { updateTime } = this const { updateTime } = this
// //
if (updateTime > 2) { if (updateTime > 2) {
@ -440,6 +443,8 @@ export default {
} else { } else {
next() next()
} }
} else {
next()
} }
}, },
mounted() { mounted() {
@ -461,8 +466,8 @@ export default {
]) ])
this.getList() this.getList()
this.form.id && this.getData() this.form.id && this.getData()
// this.getClassification() this.getClassification()
// this.getLabel() this.getLabel()
}, },
methods: { methods: {
// //
@ -511,8 +516,9 @@ export default {
this.form = data this.form = data
if (data.articleTemplate === 3 && data.connectionType !== 2 && data.linkAddress) this.links = data.linkAddress.split(',').map(e => +e) if (data.articleTemplate === 3 && data.connectionType !== 2 && data.linkAddress) this.links = data.linkAddress.split(',').map(e => +e)
this.originalName = data.title this.originalName = data.title
const { file } = data // const { file } = data
if (file) this.fileList = [{name: file, url: file}] // // if (file) this.fileList = [{name: file, url: file}] //
this.getFile()
}).catch(err => {}) }).catch(err => {})
}, },
// //
@ -631,6 +637,15 @@ export default {
this.nameRepeat = false this.nameRepeat = false
} }
}, },
//
getFile() {
this.$post(`${this.api.theAttachmentUnderTheQueryColumn}?contentId=${this.form.id}`).then(({ data }) => {
data.map(e => {
e.name = e.fileName
})
this.fileList = data
}).catch(err => {})
},
// //
customUpload(data) { customUpload(data) {
const blob = this.dataURItoBlob(data) const blob = this.dataURItoBlob(data)
@ -720,33 +735,51 @@ export default {
}) })
}) })
}, },
handleRemove() { //
this.form.file = '' handleRemove(e) {
console.log("🚀 ~ file: index.vue ~ line 740 ~ handleRemove ~ e", e)
this.$post(`${this.api.delContentFile}?id=${e.id}`).then(res => {}).catch(res => {})
}, },
// banner
uploadSuccessBanner(res) { uploadSuccessBanner(res) {
let url = this.form.bannerImg let url = this.form.bannerImg
url && this.$del(this.api.delFile, [url.split('/').pop()]).then(res => {}).catch(e => {}) url && this.$del(this.api.delFile, [url.split('/').pop()]).then(res => {}).catch(e => {})
this.form.bannerImg = res.url this.form.bannerImg = res.url
}, },
//
uploadSuccessFile(res) { uploadSuccessFile(res) {
this.$post(this.api.saveContentFile, { console.log("🚀 ~ file: index.vue ~ line 739 ~ handleRemove ~ e", res, this.fileList)
this.form.id && this.$post(this.api.saveContentFile, {
contentId: this.form.id, contentId: this.form.id,
editorId: this.userId, editorId: this.userId,
founderId: this.userId, founderId: this.userId,
fileFormat: '',
fileSize: '',
ossFileName: '',
id: '', id: '',
fileName: this.userId, fileName: res.original,
filePath: res.url filePath: res.url
}).then(res => { }).then(res => {
// this.fileList.push()
}).catch(res => {}) }).catch(res => {})
// this.form.file = res.url
}, },
// //
preview() { preview() {
},
//
back() {
this.pass = true
const { updateTime } = this
//
if (updateTime > 2) {
this.$confirm(`所填写内容暂未保存,是否保存?`, '提示', {
type: 'warning'
}).then(() => {
this.submit(this.form.isRelease)
}).catch(() => {
this.$router.back()
})
} else {
this.$router.back()
}
}, },
// //
submit(isRelease, next) { submit(isRelease, next) {
@ -755,6 +788,7 @@ export default {
if (!form.title) return util.errorMsg('请填写标题') if (!form.title) return util.errorMsg('请填写标题')
if (this.nameRepeat) return util.errorMsg('该标题已重复!') if (this.nameRepeat) return util.errorMsg('该标题已重复!')
if (!form.releaseTime && isRelease) return util.errorMsg('请选择发布日期') if (!form.releaseTime && isRelease) return util.errorMsg('请选择发布日期')
if (!form.titleImg && isRelease) return util.errorMsg('请上传封面')
if (typeof form.fatherId === 'object') form.fatherId = form.fatherId[form.fatherId.length - 1] if (typeof form.fatherId === 'object') form.fatherId = form.fatherId[form.fatherId.length - 1]
if (form.articleTemplate === 3 && form.connectionType !== 2) { if (form.articleTemplate === 3 && form.connectionType !== 2) {
const { links } = this const { links } = this
@ -786,7 +820,7 @@ export default {
form.editorId = +this.$store.state.user.userId form.editorId = +this.$store.state.user.userId
this.$post(this.api.updateArticle, form).then(res => { this.$post(this.api.updateArticle, form).then(res => {
util.successMsg('修改成功') util.successMsg('修改成功')
next ? next() : this.$router.back() next ? next() : this.$router.push(`list?columnId=` + form.columnId)
}).catch(err => { }).catch(err => {
this.submiting = false this.submiting = false
}) })

@ -261,11 +261,11 @@ export default {
}, },
// //
handleDelete(row) { handleDelete(row) {
this.$confirm("确定要删除吗?", "提示", { this.$confirm('确定要删除吗?', '提示', {
type: "warning" type: 'warning'
}).then(() => { }).then(() => {
this.$post(`${this.api.deleteArticle}?ids=${row.id}`).then(res => { this.$post(`${this.api.deleteArticle}?ids=${row.id}`).then(res => {
util.successMsg("删除成功") util.successMsg('删除成功')
this.getData() this.getData()
}).catch(res => {}) }).catch(res => {})
}).catch(() => {}) }).catch(() => {})

@ -224,10 +224,12 @@ import ColumnConst from '@/const/column'
import { mapState } from 'vuex' import { mapState } from 'vuex'
import Cropper from '@/components/img-upload/Cropper' import Cropper from '@/components/img-upload/Cropper'
import Axios from 'axios' import Axios from 'axios'
import Modules from '@/const/modules'
export default { export default {
data() { data() {
return { return {
loaded: false, loaded: false,
userId: +this.$store.state.user.userId,
site: this.$store.state.content.site, site: this.$store.state.content.site,
isEdit: this.$route.query.type === 'edit', isEdit: this.$route.query.type === 'edit',
nameRepeat: false, nameRepeat: false,
@ -296,6 +298,7 @@ export default {
{ required: true, message: '请选择连接类型', trigger: 'blur' } { required: true, message: '请选择连接类型', trigger: 'blur' }
], ],
}, },
originTypeId: 1,
submiting: false, // submiting: false, //
updateTime: 0, updateTime: 0,
cropperModel: false, cropperModel: false,
@ -407,6 +410,7 @@ export default {
getData() { getData() {
this.$post(`${this.api.findColumn}?id=${this.form.id}`).then(({ data }) => { this.$post(`${this.api.findColumn}?id=${this.form.id}`).then(({ data }) => {
this.form = data this.form = data
this.originTypeId = data.typeId
if (data.typeId === 2) { if (data.typeId === 2) {
if (data.linkAddress) { if (data.linkAddress) {
const columnArticle = data.linkAddress.split('-') const columnArticle = data.linkAddress.split('-')
@ -607,21 +611,37 @@ export default {
this.submiting = true this.submiting = true
if (this.isEdit) { if (this.isEdit) {
delete form.children delete form.children
form.editorId = +this.$store.state.user.userId form.editorId = this.userId
this.$post(this.api.updateColumn, form).then(res => { this.$post(this.api.updateColumn, form).then(res => {
//
// if (this.originTypeId !== 3 && form.typeId === 3) this.savePage(form.id)
util.successMsg("修改成功") util.successMsg("修改成功")
next ? next() : this.$router.back() next ? next() : this.$router.back()
}).catch(err => { }).catch(err => {
this.submiting = false this.submiting = false
}) })
} else { } else {
this.$post(this.api.saveColumn, form).then(res => { this.$post(this.api.saveColumn, form).then(({ data }) => {
//
// form.typeId === 3 && this.savePage(data)
util.successMsg("创建成功") util.successMsg("创建成功")
next ? next() : this.$router.back() next ? next() : this.$router.back()
}).catch(err => { }).catch(err => {
this.submiting = false this.submiting = false
}) })
} }
},
//
savePage(columnId) {
const { listStyleId } = this.form
this.$post(this.api[this.id ? 'updatePage' : 'savePage'], {
columnId,
state: 0,
sort: 1,
founderId: this.userId,
editorId: this.userId,
jsonBeforeEditing: Modules[this.pageStyle.find(e => e.id === listStyleId).path]
}).then(res => {}).catch(err => {})
} }
} }
}; };

@ -1,16 +1,18 @@
<template> <template>
<div class="wrap"> <div class="wrap">
<div class="actions"> <div class="actions">
<el-button type="primary" @click="preview">预览</el-button> <p class="page-name">页面设置/ABOUT</p>
<el-button @click="save(0)">保存为草稿</el-button> <div>
<el-button type="primary" @click="save(1)">发布</el-button> <el-button type="primary" @click="preview">预览</el-button>
<el-button @click="$router.back()">放弃编辑</el-button> <el-button @click="save(0)">保存为草稿</el-button>
<el-button type="primary" @click="save(1)">发布</el-button>
<el-button @click="$router.back()">放弃编辑</el-button>
</div>
</div> </div>
<p class="page-name mb">页面设置/ABOUT</p>
<div class="modules"> <div class="modules">
<div class="relative"> <div class="relative">
<el-carousel height="480px"> <el-carousel height="480px" :indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'">
<template v-for="(item, i) in modules[0].list"> <template v-for="(item, i) in modules[0].list">
<el-carousel-item v-if="item.pic && item.isEnable" :key="i"> <el-carousel-item v-if="item.pic && item.isEnable" :key="i">
<img width="100%" height="100%" :src="item.pic" alt=""> <img width="100%" height="100%" :src="item.pic" alt="">
@ -200,776 +202,12 @@
<script> <script>
import mixins from '@/mixins/page' import mixins from '@/mixins/page'
import Modules from '@/const/modules'
export default { export default {
mixins: [mixins], mixins: [mixins],
data() { data() {
return { return {
modules: [ modules: Modules.about
{
type: 'banner',
list: [
{
pic: require('@/assets/images/about/1.png'),
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
}
]
},
{
type: 'form',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
required: true
},
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'subTitle',
label: '小标题'
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'textarea',
prop: 'des',
label: '描述'
}
],
form: {
pic: require('@/assets/images/about/2.png'),
title: 'Our History',
subTitle: 'Throughout the world, most of the top science and technology innovation centers are distributed',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: `Greater Bay area is the most economically developed China. Therefore, in 2019, the Chinese central government proposed to build this region an international science ion cente.
As one of the core cities in the bay area, with the convenient transportation infrastructure.`
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: 'Our Values',
des: 'What makes a light chaser'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'textarea',
prop: 'des',
label: '概述',
required: true
}
],
form: {
title: 'Integrity',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: '2021 is another challenging year for the Institute of Advanced Science Facilities, Shenzhen…'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'textarea',
prop: 'des',
label: '概述',
required: true
}
],
form: {
title: 'Adventure',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: '2021 is another challenging year for the Institute of Advanced Science Facilities, Shenzhen…'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'textarea',
prop: 'des',
label: '概述',
required: true
}
],
form: {
title: 'Serve',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: '2021 is another challenging year for the Institute of Advanced Science Facilities, Shenzhen…'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'textarea',
prop: 'des',
label: '概述',
required: true
}
],
form: {
title: 'Focus on Future',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: '2021 is another challenging year for the Institute of Advanced Science Facilities, Shenzhen…'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: 'Facts',
des: 'Strength in numbers'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: '2020',
des: 'The year IASF was founded'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: '2',
des: 'Facility projects'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: '240',
des: 'Employees'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: '10',
des: 'Academicians'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: '45%',
des: 'Hold doctorates or the highest degree in their field'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: '$32B+',
des: 'Facility construction need-based grant aid provided '
}
},
{
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: require('@/assets/images/about/5.png'),
title: 'Strategic Plan',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'IASF is driven to serve the Science and industry, and solve grand challenges through research and innovation. We are open and creative, pursuing scientific management and decision-making.'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: 'Govening Board & Leadership',
des: 'What makes a ligh chinese bay chaser'
}
},
{
type: 'introduce',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
required: true
},
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'subTitle',
label: '小标题'
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'textarea',
prop: 'des',
label: '描述'
}
],
form: {
pic: '',
title: '',
subTitle: '',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: '',
isEnable: 1
},
list: [
{
pic: require('@/assets/images/about/6.png'),
title: 'Sun Dongbai',
subTitle: 'Founder and 1st PRESIDENT OF THE INSTITUTE OF ADVANCED SCIENCE FACILITIES, SHENZHEN',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Dr. Sun was the executive vice president of Sun Yat- and vice president of the University of Science and Technology Beijing (2008-2017). One of the most widely well-known material scientists aation',
isEnable: 1
},
{
pic: require('@/assets/images/about/7.png'),
title: 'Yang Xueming',
subTitle: 'Vice President of the Institute of Advanced Scienc, Shenzhen',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Dr. Yang is a world-recognized physical chemistry scientist, an Academician of the Chinese Academy of Science, an awardee of the National Science Fund for Distinguished Young Scholars',
isEnable: 1
},
{
pic: require('@/assets/images/about/8.png'),
title: 'Ulf KALSSON',
subTitle: 'The Chairman of Science and Technology Advisory Committee',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Dr. Ulf Karlsson is a joint professor of Linköping University and KTH Royal Institute of Technology. He established the laboratory of material science and was the director of the materials science platform',
isEnable: 1
}
]
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: 'Committees',
des: 'What makes a ligh chinese bay chaser'
}
},
{
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: require('@/assets/images/about/9.png'),
title: 'Science and Technology',
subTitle: '',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'installation and nanostructuring'
}
},
{
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: require('@/assets/images/about/10.png'),
title: 'User Committee',
subTitle: '',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'installation and nanostructuring'
}
},
{
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: require('@/assets/images/about/11.png'),
title: 'Industry Advancement Committee',
subTitle: '',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'installation and nanostructuring'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: 'Staff & Organization Chart',
des: 'Meet the light chaser'
}
},
{
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: require('@/assets/images/about/12.png'),
title: 'Throughout the world, most of the top science and technology innovation centers are distributed',
subTitle: '',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'The IASF has over 300 employees, of which 50% hold a Ph.D. degree, and more than 25% of core positions had abroad research and management experience.'
}
},
],
} }
}, },
mounted() { mounted() {

@ -1,16 +1,18 @@
<template> <template>
<div class="wrap"> <div class="wrap">
<div class="actions"> <div class="actions">
<el-button type="primary" @click="preview">预览</el-button> <p class="page-name">页面设置/CAREERS</p>
<el-button @click="save(0)">保存为草稿</el-button> <div>
<el-button type="primary" @click="save(1)">发布</el-button> <el-button type="primary" @click="preview">预览</el-button>
<el-button @click="$router.back()">放弃编辑</el-button> <el-button @click="save(0)">保存为草稿</el-button>
<el-button type="primary" @click="save(1)">发布</el-button>
<el-button @click="$router.back()">放弃编辑</el-button>
</div>
</div> </div>
<p class="page-name mb">页面设置/CAREERS</p>
<div class="modules"> <div class="modules">
<div class="relative"> <div class="relative">
<el-carousel height="480px"> <el-carousel height="480px" :indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'">
<template v-for="(item, i) in modules[0].list"> <template v-for="(item, i) in modules[0].list">
<el-carousel-item v-if="item.pic && item.isEnable" :key="i"> <el-carousel-item v-if="item.pic && item.isEnable" :key="i">
<img width="100%" height="100%" :src="item.pic" alt=""> <img width="100%" height="100%" :src="item.pic" alt="">
@ -116,425 +118,12 @@
<script> <script>
import mixins from '@/mixins/page' import mixins from '@/mixins/page'
import Modules from '@/const/modules'
export default { export default {
mixins: [mixins], mixins: [mixins],
data() { data() {
return { return {
modules: [ modules: Modules.careers
{
type: 'banner',
list: [
{
pic: require('@/assets/images/careers/1.png'),
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
}
]
},
{
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: require('@/assets/images/careers/2.png'),
title: 'Research',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Positions'
}
},
{
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: require('@/assets/images/careers/3.png'),
title: 'Engineering',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Positions'
}
},
{
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: require('@/assets/images/careers/4.png'),
title: 'Management Staff',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Positions'
}
},
{
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: require('@/assets/images/careers/5.png'),
title: 'Post-doc Programs',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Positions'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: 'Profiles',
des: 'What makes a light chaser'
}
},
{
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: ''
},
list: [
{
pic: require('@/assets/images/careers/6.png'),
title: 'IASF started its journey to chase light, push the boundaries forward, and discover the unknown.',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Throughout the world, most of the top science and technology innovation centers are distributed in the bay areas, such as the San Francisco Bay area, the New York Bay area, and the Tokyo Bay area in Japan.',
isEnable: 1
},
{
pic: require('@/assets/images/careers/7.png'),
title: 'IASF started its journey to chase light, push the boundaries forward, and discover the unknown.',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Throughout the world, most of the top science and technology innovation centers are distributed in the bay areas, such as the San Francisco Bay area, the New York Bay area, and the Tokyo Bay area in Japan.',
isEnable: 1
},
{
pic: require('@/assets/images/careers/8.png'),
title: 'IASF started its journey to chase light, push the boundaries forward, and discover the unknown.',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Throughout the world, most of the top science and technology innovation centers are distributed in the bay areas, such as the San Francisco Bay area, the New York Bay area, and the Tokyo Bay area in Japan.',
isEnable: 1
}
]
},
{
type: 'introduce',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
required: true
},
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'subTitle',
label: '小标题'
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'textarea',
prop: 'des',
label: '描述'
}
],
form: {
pic: '',
title: '',
subTitle: '',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: ''
},
list: [
{
pic: require('@/assets/images/careers/9.png'),
title: 'Benefits',
subTitle: 'YOU ARE IN GOOD HANDS',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'We offer the most competitive package to assure the welfare of our people at IAST.',
isEnable: 1
},
{
pic: require('@/assets/images/careers/10.png'),
title: 'Traineeships',
subTitle: 'YOUR FUTURE STARTS HERE',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'IASF works with research institutions, universities, and others, to provide a pathway for future scientists, engineers, and industry leaders.',
isEnable: 1
},
{
pic: require('@/assets/images/careers/11.png'),
title: 'Programs',
subTitle: 'YOUR INSPIRATION HAS GREAT SUPPORTS',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'We collect various professional and funding resources to support your dream and ideas, your job is as simple as it looks, go for it!',
isEnable: 1
}
]
},
],
} }
}, },
mounted() { mounted() {

@ -1,16 +1,18 @@
<template> <template>
<div class="wrap"> <div class="wrap">
<div class="actions"> <div class="actions">
<el-button type="primary" @click="preview">预览</el-button> <p class="page-name">页面设置/EDUCATION & COLLABORATION</p>
<el-button @click="save(0)">保存为草稿</el-button> <div>
<el-button type="primary" @click="save(1)">发布</el-button> <el-button type="primary" @click="preview">预览</el-button>
<el-button @click="$router.back()">放弃编辑</el-button> <el-button @click="save(0)">保存为草稿</el-button>
<el-button type="primary" @click="save(1)">发布</el-button>
<el-button @click="$router.back()">放弃编辑</el-button>
</div>
</div> </div>
<p class="page-name mb">页面设置/EDUCATION & COLLABORATION</p>
<div class="modules"> <div class="modules">
<div class="relative"> <div class="relative">
<el-carousel height="480px"> <el-carousel height="480px" :indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'">
<template v-for="(item, i) in modules[0].list"> <template v-for="(item, i) in modules[0].list">
<el-carousel-item v-if="item.pic && item.isEnable" :key="i"> <el-carousel-item v-if="item.pic && item.isEnable" :key="i">
<img width="100%" height="100%" :src="item.pic" alt=""> <img width="100%" height="100%" :src="item.pic" alt="">
@ -68,243 +70,12 @@
<script> <script>
import mixins from '@/mixins/page' import mixins from '@/mixins/page'
import Modules from '@/const/modules'
export default { export default {
mixins: [mixins], mixins: [mixins],
data() { data() {
return { return {
modules: [ modules: Modules.edu
{
type: 'banner',
list: [
{
pic: require('@/assets/images/edu/1.png'),
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
}
]
},
{
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: require('@/assets/images/edu/2.png'),
title: 'Partnership',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: `Together, Stronger`
}
},
{
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: require('@/assets/images/edu/2.png'),
title: 'Programs',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: `Our campus is Shenzhen and Beyound`
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: 'Engagement',
des: 'Serving Community'
}
},
{
type: 'introduce',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
required: true
},
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'subTitle',
label: '小标题'
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'textarea',
prop: 'des',
label: '描述'
}
],
form: {
pic: '',
title: '',
subTitle: '',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: ''
},
list: [
{
pic: require('@/assets/images/edu/3.png'),
title: 'community service',
subTitle: 'IASF is driven to serve the Science and industry, and solve grand challenges.',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Innovation centers are distributed in the bay areas, such as the San Francisco Bay area, the New York Bay area, and the Tokyo Bay area …',
isEnable: 1
},
{
pic: require('@/assets/images/edu/4.png'),
title: 'community service',
subTitle: 'IASF is driven to serve the Science and industry, and solve grand challenges.',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Innovation centers are distributed in the bay areas, such as the San Francisco Bay area, the New York Bay area, and the Tokyo Bay area …',
isEnable: 1
},
{
pic: require('@/assets/images/edu/5.png'),
title: 'community service',
subTitle: 'IASF is driven to serve the Science and industry, and solve grand challenges.',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Innovation centers are distributed in the bay areas, such as the San Francisco Bay area, the New York Bay area, and the Tokyo Bay area …',
isEnable: 1
}
]
},
],
} }
}, },
mounted() { mounted() {

@ -1,16 +1,18 @@
<template> <template>
<div class="wrap"> <div class="wrap">
<div class="actions"> <div class="actions">
<el-button type="primary" @click="preview">预览</el-button> <p class="page-name">页面设置/HOME</p>
<el-button @click="save(0)">保存为草稿</el-button> <div>
<el-button type="primary" @click="save(1)">发布</el-button> <el-button type="primary" @click="preview">预览</el-button>
<el-button @click="$router.back()">放弃编辑</el-button> <el-button @click="save(0)">保存为草稿</el-button>
<el-button type="primary" @click="save(1)">发布</el-button>
<el-button @click="$router.back()">放弃编辑</el-button>
</div>
</div> </div>
<p class="page-name mb">页面设置/HOME</p>
<div class="modules"> <div class="modules">
<div class="relative"> <div class="relative">
<el-carousel height="500px"> <el-carousel height="500px" :indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'">
<template v-for="(item, i) in modules[0].list"> <template v-for="(item, i) in modules[0].list">
<el-carousel-item v-if="item.pic && item.isEnable" :key="i"> <el-carousel-item v-if="item.pic && item.isEnable" :key="i">
<img width="100%" height="100%" :src="item.pic" alt=""> <img width="100%" height="100%" :src="item.pic" alt="">
@ -192,470 +194,12 @@
<script> <script>
import mixins from '@/mixins/page' import mixins from '@/mixins/page'
import Modules from '@/const/modules'
export default { export default {
mixins: [mixins], mixins: [mixins],
data() { data() {
return { return {
modules: [ modules: Modules.home
{
type: 'banner',
list: [
{
pic: require('@/assets/images/channel-bg.png'),
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
}
]
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: 'OUR FACILITIES',
des: 'IASF will carry a world-class light source research park by operating a synchrotron radiation facility and a soft X-ray Superconducting free-electron laser facility.'
}
},
{
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: require('@/assets/images/channel1.png'),
title: 'Shenzhen Innovation Lightsource Facility',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'The Shenzhen synchrotron radiation facility has a fourth-generation diffraction-limited storage ring with an electron energy of 3 GeV at a low emittance of 50-150 pm·rad, and it provides photons with broad range energy from 4 meV to 160 keV.'
}
},
{
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: require('@/assets/images/channel2.png'),
title: 'Shenzhen Soft X-ray Superconducting Free-electron Laser Facility ',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Shenzhen XFEL consists of a 2.5 GeV CW superconducting linear accelerator and four initial undulator lines, aiming at generating X-Rays between 40 eV and 1 keV at rates up to 1MHz.'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: 'Latest information',
des: 'Keep up with what happen with IASF'
}
},
{
type: 'column',
form: {
site: '',
column: '',
articleNum: '',
columnTitle: 1,
columnTitleCustom: ''
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: "Light Chasers' Home at IASF",
des: 'Keep up with what happen with IASF'
}
},
{
type: 'introduce',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
required: true
},
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'subTitle',
label: '小标题'
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'textarea',
prop: 'des',
label: '描述'
}
],
form: {
pic: '',
title: '',
subTitle: '',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: ''
},
list: [
{
pic: require('@/assets/images/careers/6.png'),
title: 'SHAO Jiahang, PH.D.',
subTitle: '',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1,
des: '“..., The new facility (S3FEL) will provide the brightest soft X-ray laser to both scientific and industrial users worldwide, enabling applications that are beyond imagination, ...”…'
},
{
pic: require('@/assets/images/careers/7.png'),
title: 'PENG Ziling, Ph.D.',
subTitle: '',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1,
des: '“..., With so many young, professional, and passionate workmates, I treasure the moments we spent on fruitful discussions, brainstorming, teamworking, and the leisure activities on the Guangming farm just next to our worksite, ...”…'
},
{
pic: require('@/assets/images/careers/8.png'),
title: 'CHEN Rikun, M.S.',
subTitle: '',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1,
des: '“..., Working is more of a learning process for a young professional. Every day at IASF I try to learn to write properly, communicate effectively, and solve problems. As getting more experience, I feel excited to grow with IASF, ...”.…'
}
]
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'editor',
prop: 'des',
label: '概述',
required: true
}
],
form: {
title: 'ABOUT',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: ''
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: 'IASF at a glance',
des: ''
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: '2020',
des: 'The year IASF was founded'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: '2',
des: 'Facility projects'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: '240',
des: 'Employees'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: '10',
des: 'Academicians'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: '45%',
des: 'Hold doctorates or the highest degree in their field'
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: '$32B+',
des: 'Facility construction need-based grant aid provided '
}
},
],
} }
}, },
mounted() { mounted() {

@ -1,16 +1,18 @@
<template> <template>
<div class="wrap"> <div class="wrap">
<div class="actions"> <div class="actions">
<el-button type="primary" @click="preview">预览</el-button> <p class="page-name">页面设置/NEWS&EVENTS</p>
<el-button @click="save(0)">保存为草稿</el-button> <div>
<el-button type="primary" @click="save(1)">发布</el-button> <el-button type="primary" @click="preview">预览</el-button>
<el-button @click="$router.back()">放弃编辑</el-button> <el-button @click="save(0)">保存为草稿</el-button>
<el-button type="primary" @click="save(1)">发布</el-button>
<el-button @click="$router.back()">放弃编辑</el-button>
</div>
</div> </div>
<p class="page-name mb">页面设置/NEWS&EVENTS</p>
<div class="modules"> <div class="modules">
<div class="relative"> <div class="relative">
<el-carousel height="480px"> <el-carousel height="480px" :indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'">
<template v-for="(item, i) in modules[0].list"> <template v-for="(item, i) in modules[0].list">
<el-carousel-item v-if="item.pic && item.isEnable" :key="i"> <el-carousel-item v-if="item.pic && item.isEnable" :key="i">
<img width="100%" height="100%" :src="item.pic" alt=""> <img width="100%" height="100%" :src="item.pic" alt="">
@ -229,153 +231,12 @@
<script> <script>
import mixins from '@/mixins/page' import mixins from '@/mixins/page'
import Modules from '@/const/modules'
export default { export default {
mixins: [mixins], mixins: [mixins],
data() { data() {
return { return {
modules: [ modules: Modules.news,
{
type: 'banner',
list: [
{
pic: require('@/assets/images/news/1.png'),
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
}
]
},
{
type: 'columns',
form: {
columnName: '',
site: '',
column: '',
articleNum: '',
columnTitle: 1,
columnTitleCustom: ''
},
list: [
{
columnName: 'General news',
site: '',
column: '',
articleNum: '',
columnTitle: 1,
columnTitleCustom: ''
},
{
columnName: 'Research news',
site: '',
column: '',
articleNum: '',
columnTitle: 1,
columnTitleCustom: ''
},
{
columnName: 'General news',
site: '',
column: '',
articleNum: '',
columnTitle: 1,
columnTitleCustom: ''
},
{
columnName: 'General news',
site: '',
column: '',
articleNum: '',
columnTitle: 1,
columnTitleCustom: ''
},
{
columnName: 'Research news',
site: '',
column: '',
articleNum: '',
columnTitle: 1,
columnTitleCustom: ''
},
{
columnName: 'Journal covers',
site: '',
column: '',
articleNum: '',
columnTitle: 1,
columnTitleCustom: ''
},
]
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: 'Seminars & Workshops',
des: 'What makes a ligh chinese bay chaser'
}
},
{
type: 'column',
form: {
site: '',
column: '',
articleNum: '',
columnTitle: 1,
columnTitleCustom: ''
}
},
{
type: 'form',
forms: [
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'des',
label: '概述'
}
],
form: {
title: 'Conference',
des: 'What makes a ligh chinese bay chaser'
}
},
{
type: 'column',
form: {
site: '',
column: '',
articleNum: '',
columnTitle: 1,
columnTitleCustom: ''
}
},
],
tabs: [ tabs: [
{ {
id: 1, id: 1,

@ -1,16 +1,18 @@
<template> <template>
<div class="wrap"> <div class="wrap">
<div class="actions"> <div class="actions">
<el-button type="primary" @click="preview">预览</el-button> <p class="page-name">页面设置/NEWS&EVENTS-PRESS ROOM</p>
<el-button @click="save(0)">保存为草稿</el-button> <div>
<el-button type="primary" @click="save(1)">发布</el-button> <el-button type="primary" @click="preview">预览</el-button>
<el-button @click="$router.back()">放弃编辑</el-button> <el-button @click="save(0)">保存为草稿</el-button>
<el-button type="primary" @click="save(1)">发布</el-button>
<el-button @click="$router.back()">放弃编辑</el-button>
</div>
</div> </div>
<p class="page-name mb">页面设置/NEWS&EVENTS-PRESS ROOM</p>
<div class="modules"> <div class="modules">
<div class="relative"> <div class="relative">
<el-carousel height="480px"> <el-carousel height="480px" :indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'">
<template v-for="(item, i) in modules[0].list"> <template v-for="(item, i) in modules[0].list">
<el-carousel-item v-if="item.pic && item.isEnable" :key="i"> <el-carousel-item v-if="item.pic && item.isEnable" :key="i">
<img width="100%" height="100%" :src="item.pic" alt=""> <img width="100%" height="100%" :src="item.pic" alt="">
@ -46,137 +48,12 @@
<script> <script>
import mixins from '@/mixins/page' import mixins from '@/mixins/page'
import Modules from '@/const/modules'
export default { export default {
mixins: [mixins], mixins: [mixins],
data() { data() {
return { return {
modules: [ modules: Modules.newsPress
{
type: 'banner',
list: [
{
pic: require('@/assets/images/news/1.png'),
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
}
]
},
{
type: 'introduce',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
required: true
},
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'subTitle',
label: '小标题'
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'textarea',
prop: 'des',
label: '描述'
}
],
form: {
pic: '',
title: '',
subTitle: '',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: ''
},
list: [
{
pic: require('@/assets/images/newsPress/1.png'),
title: 'Reports',
subTitle: 'IASF is driven to serve the Science and industry, and solve grand challenges.',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Innovation centers are distributed in the bay areas, such as the San Francisco Bay area, the New York Bay area, and the Tokyo Bay area …',
isEnable: 1
},
{
pic: require('@/assets/images/newsPress/2.png'),
title: 'Brochures',
subTitle: 'IASF is driven to serve the Science and industry, and solve grand challenges.',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Innovation centers are distributed in the bay areas, such as the San Francisco Bay area, the New York Bay area, and the Tokyo Bay area …',
isEnable: 1
},
{
pic: require('@/assets/images/newsPress/3.png'),
title: 'Gallery',
subTitle: 'IASF is driven to serve the Science and industry, and solve grand challenges.',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Innovation centers are distributed in the bay areas, such as the San Francisco Bay area, the New York Bay area, and the Tokyo Bay area …',
isEnable: 1
}
]
},
],
} }
}, },
mounted() { mounted() {

@ -1,16 +1,18 @@
<template> <template>
<div class="wrap"> <div class="wrap">
<div class="actions"> <div class="actions">
<el-button type="primary" @click="preview">预览</el-button> <p class="page-name">页面设置/NEWS&EVENTS-PROCUREMENT</p>
<el-button @click="save(0)">保存为草稿</el-button> <div>
<el-button type="primary" @click="save(1)">发布</el-button> <el-button type="primary" @click="preview">预览</el-button>
<el-button @click="$router.back()">放弃编辑</el-button> <el-button @click="save(0)">保存为草稿</el-button>
<el-button type="primary" @click="save(1)">发布</el-button>
<el-button @click="$router.back()">放弃编辑</el-button>
</div>
</div> </div>
<p class="page-name mb">页面设置/NEWS&EVENTS-PROCUREMENT</p>
<div class="modules"> <div class="modules">
<div class="relative"> <div class="relative">
<el-carousel height="480px"> <el-carousel height="480px" :indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'">
<template v-for="(item, i) in modules[0].list"> <template v-for="(item, i) in modules[0].list">
<el-carousel-item v-if="item.pic && item.isEnable" :key="i"> <el-carousel-item v-if="item.pic && item.isEnable" :key="i">
<img width="100%" height="100%" :src="item.pic" alt=""> <img width="100%" height="100%" :src="item.pic" alt="">
@ -46,137 +48,12 @@
<script> <script>
import mixins from '@/mixins/page' import mixins from '@/mixins/page'
import Modules from '@/const/modules'
export default { export default {
mixins: [mixins], mixins: [mixins],
data() { data() {
return { return {
modules: [ modules: Modules.newsProcurement
{
type: 'banner',
list: [
{
pic: require('@/assets/images/news/1.png'),
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
}
]
},
{
type: 'introduce',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图片',
required: true
},
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'textarea',
prop: 'subTitle',
label: '小标题'
},
{
type: 'link',
prop: 'link',
label: '链接'
},
{
type: 'textarea',
prop: 'des',
label: '描述'
}
],
form: {
pic: '',
title: '',
subTitle: '',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: ''
},
list: [
{
pic: require('@/assets/images/newsProcurement/1.png'),
title: 'Project ',
subTitle: 'IASF is driven to serve the Science and industry, and solve grand challenges.',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Innovation centers are distributed in the bay areas, such as the San Francisco Bay area, the New York Bay area, and the Tokyo Bay area …',
isEnable: 1
},
{
pic: require('@/assets/images/newsProcurement/2.png'),
title: 'Goods',
subTitle: 'IASF is driven to serve the Science and industry, and solve grand challenges.',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Innovation centers are distributed in the bay areas, such as the San Francisco Bay area, the New York Bay area, and the Tokyo Bay area …',
isEnable: 1
},
{
pic: require('@/assets/images/newsProcurement/3.png'),
title: 'Service',
subTitle: 'IASF is driven to serve the Science and industry, and solve grand challenges.',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: 'Innovation centers are distributed in the bay areas, such as the San Francisco Bay area, the New York Bay area, and the Tokyo Bay area …',
isEnable: 1
}
]
},
],
} }
}, },
mounted() { mounted() {

@ -49,7 +49,7 @@
} }
.page { .page {
position: relative; position: relative;
padding: 16px 20px; padding: 25px;
background-color: #fff; background-color: #fff;
.tool { .tool {
display: flex; display: flex;

@ -42,8 +42,10 @@
overflow: auto; overflow: auto;
} }
.actions { .actions {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px; margin-bottom: 20px;
text-align: right;
} }
.c-wrap { .c-wrap {
position: relative; position: relative;
@ -73,12 +75,12 @@
} }
.link-wrap { .link-wrap {
display: flex; display: flex;
justify-content: space-between; justify-content: center;
align-items: center; align-items: center;
flex-direction: column; // flex-direction: column;
} }
.set-link { .set-link {
margin-top: 5px; margin-left: 10px;
} }
.del { .del {
margin-left: 5px; margin-left: 5px;

Loading…
Cancel
Save