sfel-概况长页(未完成)

master
yujialong 2 years ago
parent a34c73f98c
commit 67a59a24e5
  1. 1
      src/api/index.js
  2. 269
      src/components/modules/history.vue
  3. 8
      src/components/modules/link.vue
  4. 38
      src/components/modules/module.vue
  5. 69
      src/const/modules.js
  6. 2
      src/mixins/page/index.js
  7. 11
      src/pages/article/add/editor.js
  8. 16
      src/pages/article/add/index.vue
  9. 14
      src/pages/article/list/index.vue
  10. 8
      src/pages/column/add/index.vue
  11. 8
      src/pages/column/list/index.vue
  12. 228
      src/pages/column/page/overviewDevHistory.vue
  13. 4
      src/pages/column/page/overviewLocation.vue
  14. 8
      src/pages/column/page/overviewSetup.vue
  15. 4
      src/pages/column/page/overviewTrailer.vue
  16. 7
      src/plugins/requests/index.js
  17. 6
      src/router/modules/column.js
  18. 1
      src/setting.js
  19. 3
      src/styles/page/page.scss

@ -75,4 +75,5 @@ export default {
theAttachmentUnderTheQueryColumn: `iasf/content/file/theAttachmentUnderTheQueryColumn`, theAttachmentUnderTheQueryColumn: `iasf/content/file/theAttachmentUnderTheQueryColumn`,
individualTemplateDetailsStyle: `iasf/template/individualTemplateDetailsStyle`, individualTemplateDetailsStyle: `iasf/template/individualTemplateDetailsStyle`,
longPageListStyle: `iasf/template/longPageListStyle`, longPageListStyle: `iasf/template/longPageListStyle`,
resort: `iasf/sysContent/sort`,
} }

@ -0,0 +1,269 @@
<template>
<!-- 内容 -->
<div>
<el-dialog title="编辑内容" :visible.sync="visible" width="600px" custom-class="module" :close-on-click-modal="false" :before-close="close">
<el-table 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 label="图片" min-width="140" align="center">
<template slot-scope="scope">
<img v-if="scope.row.pic" :src="scope.row.pic" class="upload-pic">
<div class="upload-none" v-else>
<i class="el-icon-picture-outline"></i>
</div>
</template>
</el-table-column>
<el-table-column prop="title" label="标题" min-width="140" align="center"></el-table-column>
<el-table-column label="链接" min-width="140" align="center">
<template slot-scope="scope">
<div class="link-wrap">
<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>
</div>
</template>
</el-table-column>
<el-table-column prop="des" label="描述" min-width="240" align="center"></el-table-column>
<el-table-column label="操作" width="100" align="center">
<template slot-scope="scope">
<div class="flex a-center">
<el-switch
v-model="scope.row.isEnable"
:active-value="1"
:inactive-value="0">
</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>
</div>
</template>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="$emit('update:visible', false)">取消</el-button>
<el-button type="primary" @click="contentSubmit">确定</el-button>
</span>
</el-dialog>
<Link ref="link" :visible.sync="linkVisible" :data.sync="linkForm" @linkSubmit="linkSubmit" />
<!-- 剪裁组件弹窗 -->
<el-dialog title="图片裁剪" append-to-body :visible.sync="cropperModel" width="1100px" :close-on-click-modal="false">
<Cropper
ref="cropper"
:img-file.sync="file"
:is-upload="isUpload"
:fixed="fixed"
:fixedNumber.sync="fixedNumber"
@upload="customUpload" />
</el-dialog>
</div>
</template>
<script>
import Link from '@/components/modules/link'
import Setting from '@/setting'
import Util from '@/libs/util'
import Cropper from '@/components/img-upload/Cropper'
import Axios from 'axios'
export default {
props: ['data', 'visible'],
components: {
Link,
Cropper
},
data() {
return {
headers: {
token: Util.local.get(Setting.tokenKey)
},
rules: {},
linkVisible: false,
linkForm: {},
curIndex: 0,
cropperModel: false,
isUpload: false,
file: {}, //
fileId: '',
curForm: {},
fixed: false,
fixedNumber: [0.88, 1]
};
},
watch: {
visible(open) {
//
open && this.handleForm()
}
},
mounted() {
this.handleForm()
},
methods: {
// form
handleForm() {
const { forms, type } = this.data
//
if (type === 'form' || type === 'introduce') {
forms.map(e => {
if (e.type === 'upload') {
if (e.fixedNumber) {
this.fixed = true
this.fixedNumber = e.fixedNumber
} else {
this.fixed = false
}
}
if (e.required) {
this.rules[e.prop] = [
{
required: true,
message: `${e.type === 'input' ? '输入' : '选择'}${e.label}`,
trigger: e.type === 'input' ? 'blur' : 'change'
}
]
}
})
}
},
close() {
this.$emit('update:visible', false)
},
//
customUpload(data) {
const formData = new FormData()
formData.append('file', data, this.file.name)
this.imgUpload(formData)
},
//
compress(img) {
const canvas = document.createElement('canvas')
const ctx = canvas.getContext('2d')
// let initSize = img.src.length;
const width = img.width
const height = img.height
canvas.width = width
canvas.height = height
//
ctx.fillStyle = '#fff'
ctx.fillRect(0, 0, canvas.width, canvas.height)
ctx.drawImage(img, 0, 0, width, height)
//
const ndata = canvas.toDataURL('image/jpeg', 0.8)
return ndata
},
// base64bolb
dataURItoBlob(base64Data) {
let byteString
if (base64Data.split(',')[0].indexOf('base64') >= 0) {
byteString = atob(base64Data.split(',')[1])
} else {
byteString = unescape(base64Data.split(',')[1])
}
const mimeString = base64Data
.split(',')[0]
.split(':')[1]
.split(';')[0]
const ia = new Uint8Array(byteString.length)
for (let i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i)
}
return new Blob([ia], {
type: mimeString
})
},
//
imgUpload(formData) {
this.isUpload = true
Axios({
method: 'post',
url: this.api.upload,
data: formData,
headers: {
'Content-Type': 'multipart/form-data',
token: Util.local.get(Setting.tokenKey)
},
}).then(({ data }) => {
this.$set(this.curForm, 'pic', data.url)
}).catch(res => {})
this.$refs.cropper.isDisabled = false
this.isUpload = false
this.cropperModel = false
},
//
changeFile(file, form) {
const { size, name } = file
const ext = name.substring(name.lastIndexOf('.') + 1)
if (!Util.isImg(ext)) {
this.$message.error('请上传图片!')
return false
}
if (size / 1024 / 1024 > 5) {
this.$message.error('请上传5M以内的图片!')
return false
}
this.file = file
this.curForm = form
this.cropperModel = true
this.$nextTick(() => {
this.$refs.cropper.updateImg({
url: window.URL.createObjectURL(file.raw),
size: file.size
})
})
},
//
uploadSuccess(res, row) {
this.$set(row, 'pic', res.url)
},
//
toLink(row, i = 0) {
this.linkVisible = true
this.curIndex = i
this.linkForm = row.link
},
//
linkSubmit() {
const el = this.$refs.link
const data = this.data.form ? this.data.form.link : this.data.list[this.curIndex].link
let name
//
if (data.connectionType === 1) {
if (!data.columnId.length) return Util.errorMsg('请选择站内链接')
//
if (data.articleId) {
const item = el.articles.find(e => e.id == data.articleId)
name = item ? item.title : ''
} else {
name = el.$refs.column.getCheckedNodes()[0].pathLabels.join('/')
}
} else if (data.connectionType === 3) { //
if (!data.otherColumnId.length) return Util.errorMsg('请选择栏目')
//
if (data.otherArticleId) {
const item = el.articles.find(e => e.id == data.otherArticleId)
name = item ? item.title : ''
} else {
name = el.$refs.otherColumn.getCheckedNodes()[0].pathLabels.join('/')
}
} else { //
if (!data.linkAddress) return Util.errorMsg('请输入站外链接')
name = data.linkAddress
}
data.linkName = name
this.linkVisible = false
},
//
contentSubmit() {
this.$emit('contentSubmit')
},
}
};
</script>
<style lang="scss" scoped>
.radio-wrap {
display: flex;
align-items: center;
.el-input {
width: 200px;
margin-left: -40px;
}
}
</style>

@ -126,8 +126,8 @@ export default {
// //
getList() { getList() {
this.$post(this.api.listWithTree, { this.$post(this.api.listWithTree, {
role: 1,
isadmin: false,
siteId: this.site.id, siteId: this.site.id,
columnName: '', columnName: '',
templateId: '', templateId: '',
@ -178,8 +178,8 @@ export default {
// //
getOtherColumn() { getOtherColumn() {
this.data.site && this.$post(this.api.listWithTree, { this.data.site && this.$post(this.api.listWithTree, {
role: 1,
isadmin: false,
siteId: this.data.site, siteId: this.data.site,
columnName: '', columnName: '',
templateId: '', templateId: '',

@ -1,5 +1,4 @@
<template> <template>
<!-- banner -->
<div> <div>
<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'">
@ -134,6 +133,30 @@
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<template v-else-if="data.type === 'history'">
<el-table 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">
<el-input v-model="data.form.title" placeholder="请输入" maxlength="100"></el-input>
</el-table-column>
<el-table-column label="操作" width="100" align="center">
<template slot-scope="scope">
<div class="flex a-center">
<el-switch
v-model="scope.row.isEnable"
:active-value="1"
:inactive-value="0">
</el-switch>
<i 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>
</div>
</template>
</el-table-column>
</el-table>
<div class="plus">
<i class="el-icon-circle-plus-outline" @click="addRow"></i>
</div>
</template>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="$emit('update:visible', false)">取消</el-button> <el-button @click="$emit('update:visible', false)">取消</el-button>
<el-button type="primary" @click="moduleSubmit">确定</el-button> <el-button type="primary" @click="moduleSubmit">确定</el-button>
@ -141,12 +164,14 @@
</el-dialog> </el-dialog>
<Link ref="link" :data.sync="linkForm" :visible.sync="linkVisible" @linkSubmit="linkSubmit" /> <Link ref="link" :data.sync="linkForm" :visible.sync="linkVisible" @linkSubmit="linkSubmit" />
<Content :data.sync="data" :visible.sync="contentVisible" @contentSubmit="contentSubmit" /> <Content :data.sync="data" :visible.sync="contentVisible" @contentSubmit="contentSubmit" />
<History :data.sync="data" :visible.sync="historyVisible" @historySubmit="historySubmit" />
</div> </div>
</template> </template>
<script> <script>
import Link from '@/components/modules/link' import Link from '@/components/modules/link'
import Content from '@/components/modules/content' import Content from '@/components/modules/content'
import History from '@/components/modules/history'
import Editor from '@tinymce/tinymce-vue' import Editor from '@tinymce/tinymce-vue'
import Setting from '@/setting' import Setting from '@/setting'
import Util from '@/libs/util' import Util from '@/libs/util'
@ -157,7 +182,8 @@ export default {
components: { components: {
Link, Link,
Content, Content,
Editor Editor,
History
}, },
data() { data() {
return { return {
@ -208,6 +234,8 @@ export default {
contentVisible: false, contentVisible: false,
curModule: 0, curModule: 0,
curData: {}, curData: {},
historyVisible: false,
}; };
}, },
watch: { watch: {
@ -257,8 +285,6 @@ export default {
// //
siteChange(siteId) { siteChange(siteId) {
this.$post(this.api.listWithTree, { this.$post(this.api.listWithTree, {
role: 1,
isadmin: false,
siteId, siteId,
columnName: '', columnName: '',
templateId: '', templateId: '',
@ -378,6 +404,10 @@ export default {
} }
data.linkName = name data.linkName = name
this.linkVisible = false this.linkVisible = false
},
// history
historySubmit() {
}, },
// //
moduleSubmit() { moduleSubmit() {

@ -4942,5 +4942,74 @@ export default {
des: ` 根据《深圳综合粒子设施理事会章程》有关规定,研究院实行理事会领导下的院长负责制,理事长由市长担任,副理事长由分管发改、科创副市长,以及中山大学、南方科技大学校长担任,理事成员包括市政府秘书长、相关副秘书长及政府部门、高等院校、科研机构、龙头企业相关负责同志。` des: ` 根据《深圳综合粒子设施理事会章程》有关规定,研究院实行理事会领导下的院长负责制,理事长由市长担任,副理事长由分管发改、科创副市长,以及中山大学、南方科技大学校长担任,理事成员包括市政府秘书长、相关副秘书长及政府部门、高等院校、科研机构、龙头企业相关负责同志。`
} }
}, },
],
overviewDevHistory: [
{
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/survey/1.png',
title: 'S³FEL概况',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
}
}
},
{
type: 'history',
form: {
title: '2022',
},
list: [
{
pic: 'http://10.10.11.7/images/sfel/1.png',
title: '',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress : '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: '',
isEnable: 1
}
]
},
] ]
} }

@ -38,7 +38,7 @@ export default {
} }
}, },
mounted() { mounted() {
this.getInfo() // this.getInfo()
}, },
methods: { methods: {
// 获取详情 // 获取详情

@ -365,11 +365,14 @@ export default {
}, },
// 初始化事件 // 初始化事件
setup: function(editor) { setup: function(editor) {
const that = this
editor.on('init', function(ed) { editor.on('init', function(ed) {
// 设置默认字体 // 设置默认字体(新增才需要设置)
ed.target.editorCommands.execCommand("fontName", false, "Microsoft Yahei") if (editor.iframeElement.contentWindow.document.body.innerText === '\n') {
ed.target.editorCommands.execCommand("fontSize", false, "19px") ed.target.editorCommands.execCommand("fontName", false, "Microsoft Yahei")
ed.target.editorCommands.execCommand("lineHeight", false, "1.5") ed.target.editorCommands.execCommand("fontSize", false, "19px")
ed.target.editorCommands.execCommand("lineHeight", false, "1.5")
}
top.document.querySelector('#articleTitle').focus() // 第一个字段聚焦 top.document.querySelector('#articleTitle').focus() // 第一个字段聚焦
}) })
}, },

@ -711,8 +711,8 @@ export default {
// //
getList() { getList() {
this.$post(this.api.listWithTree, { this.$post(this.api.listWithTree, {
role: 1,
isadmin: false,
siteId: this.site.id, siteId: this.site.id,
columnName: '', columnName: '',
templateId: '', templateId: '',
@ -869,8 +869,8 @@ export default {
// //
getOtherColumn(val) { getOtherColumn(val) {
this.$post(this.api.listWithTree, { this.$post(this.api.listWithTree, {
role: 1,
isadmin: false,
siteId: this.form.siteSelection, siteId: this.form.siteSelection,
columnName: '', columnName: '',
templateId: '', templateId: '',
@ -1135,7 +1135,12 @@ export default {
}, },
// //
changeFile(file, isBanner) { changeFile(file, isBanner) {
this.fixedNumber = isBanner ? [1, 0.26] : [1.76, 1] // banner
this.fixedNumber = isBanner ?
[1, 0.26] :
this.form.articleTemplate == 26 ?
[1, 1.5] :
[1.76, 1]
this.isBanner = isBanner this.isBanner = isBanner
const { size, name } = file const { size, name } = file
const ext = name.substring(name.lastIndexOf('.') + 1) const ext = name.substring(name.lastIndexOf('.') + 1)
@ -1278,7 +1283,6 @@ export default {
form.lableId = form.lableId.join(',') form.lableId = form.lableId.join(',')
form.releaseTime = Util.formatDate('yyyy-MM-dd', new Date(form.releaseTime)) // form.releaseTime = Util.formatDate('yyyy-MM-dd', new Date(form.releaseTime)) //
form.isRelease = isRelease form.isRelease = isRelease
this.submiting = true this.submiting = true
if (form.id) { if (form.id) {

@ -44,7 +44,7 @@
<el-input <el-input
v-if="scope.row.editing" v-if="scope.row.editing"
class="squ-input" class="squ-input"
v-model="scope.row.sequence" v-model.number="scope.row.sequence"
></el-input> ></el-input>
<span v-else>{{ scope.row.sequence }}</span> <span v-else>{{ scope.row.sequence }}</span>
<i v-if="scope.row.editing" class="el-icon-check squ-icon" @click="submitSequence(scope.row)"></i> <i v-if="scope.row.editing" class="el-icon-check squ-icon" @click="submitSequence(scope.row)"></i>
@ -215,8 +215,8 @@ export default {
// //
getColumn() { getColumn() {
this.$post(this.api.listWithTree, { this.$post(this.api.listWithTree, {
role: 1,
isadmin: false,
siteId: this.$store.state.content.site.id, siteId: this.$store.state.content.site.id,
columnName: '', columnName: '',
templateId: '', templateId: '',
@ -276,18 +276,18 @@ export default {
}, },
// //
submitSequence(row) { submitSequence(row) {
if (!row.sequence) return Util.errorMsg('请输入排序') const { sequence } = row
this.$post(`${this.api.modifiedSort}?articleId=${row.id}&sequenceNumber=${row.sequence}`).then(res => { if (!sequence) return util.errorMsg('请输入排序')
if (isNaN(sequence)) return util.errorMsg('请输入数字')
this.$post(`${this.api.modifiedSort}?articleId=${row.id}&sequenceNumber=${sequence > this.total ? this.total : sequence}`).then(res => {
this.initData() this.initData()
}).catch(res => {}) }).catch(res => {})
}, },
// //
editSequence(row) { editSequence(row) {
// this.originSequence = e.sequence
this.list.forEach(e => { this.list.forEach(e => {
e.editing = false e.editing = false
}) })
// this.list = JSON.parse(JSON.stringify(this.originList))
row.editing = true row.editing = true
}, },
// //

@ -373,8 +373,8 @@ export default {
// //
getList() { getList() {
this.$post(this.api.listWithTree, { this.$post(this.api.listWithTree, {
role: 1,
isadmin: false,
siteId: this.site.id, siteId: this.site.id,
columnName: '', columnName: '',
templateId: '', templateId: '',
@ -505,8 +505,8 @@ export default {
// //
getOtherColumn(val) { getOtherColumn(val) {
this.form.siteSelection && this.$post(this.api.listWithTree, { this.form.siteSelection && this.$post(this.api.listWithTree, {
role: 1,
isadmin: false,
siteId: this.form.siteSelection, siteId: this.form.siteSelection,
columnName: '', columnName: '',
templateId: '', templateId: '',

@ -237,8 +237,8 @@ export default {
methods: { methods: {
getData() { getData() {
this.$post(this.api.listWithTree, { this.$post(this.api.listWithTree, {
role: 1,
isadmin: false,
siteId: this.siteId, siteId: this.siteId,
columnName: this.keyword, columnName: this.keyword,
templateId: '', templateId: '',
@ -339,9 +339,9 @@ export default {
}, },
// //
sort() { sort() {
this.$post(this.api.resort).then(res => {}).catch(err => {})
this.$post(this.api.listWithTree, { this.$post(this.api.listWithTree, {
role: 1,
isadmin: false,
siteId: this.siteId, siteId: this.siteId,
columnName: '', columnName: '',
templateId: '', templateId: '',

@ -0,0 +1,228 @@
<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="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>
<ul class="tabs wow fadeInLeft">
<template v-for="(item, i) in tabs">
<li :class="{active: i == active}" :key="i" @click="tabChange(i)">{{ item }}</li>
</template>
</ul>
<div class="block history">
<div class="inner c-wrap">
<h2 class="wow fadeInLeft">发展历程</h2>
<p class="en">DEVELOPMENT HISTORY</p>
<div class="event">
<ul class="time">
<li class="active">2022</li>
<li>2021</li>
<li>2020</li>
</ul>
<div class="right">
<h6 class="year">2022</h6>
<ul class="list">
<li>
<div class="texts">
<p class="date">10月11日</p>
<p class="text">深圳综合粒子设施研究院加入国际超导加速器联盟</p>
</div>
<img src="@/assets/images/about-bg.png" alt="" class="pic">
</li>
<li>
<div class="texts">
<p class="date">10月11日</p>
<p class="text">深圳综合粒子设施研究院加入国际超导加速器联盟</p>
</div>
</li>
</ul>
</div>
</div>
<div class="cover" style="min-height: 300px;" @click="toSet(1)">点击配置历程</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.overviewDevHistory,
active: 0,
tabs: ['发展历程']
}
},
mounted() {
this.$store.commit('user/setCrumbs', [
{
name: '站点管理',
route: '/site'
},
{
name: '内容管理',
route: '/column'
},
{
name: '栏目管理',
route: '/column'
},
{
name: '概况-发展历程'
}
])
},
methods: {
// tab
tabChange(i) {
this.active = i
},
}
};
</script>
<style lang="scss" scoped>
@import "../../../styles/page/page.scss";
.wrap {
background: url(http://10.10.11.7/images/overviewDevHistory/1.png) (right 505px)/auto no-repeat,
url(http://10.10.11.7/images/overviewDevHistory/2.png) (left bottom)/auto no-repeat;
background-color: #fff;
}
.tabs {
display: flex;
justify-content: center;
box-shadow: 0px 2px 10px 0px rgba(223,223,223,0.28);
li {
padding: 25px 19px;
margin: 0 10px;
font-size: 1.1rem;
color: #333;
border-bottom: 4px solid transparent;
text-shadow: 0px 2px 14px rgba(167,167,167,0.26);
cursor: pointer;
&.active {
color: #1583FF;
border-bottom-color: #1583FF;
}
}
}
.history {
h2 {
position: relative;
font-size: 2.2rem;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #1C1C1C;
}
.en {
margin: -15px 0 40px;
font-size: 2.2rem;
font-family: PingFangSC-Light, PingFang SC;
font-weight: 300;
color: #E3E3E3;
}
}
.event {
display: flex;
justify-content: center;
.time {
padding-right: 10px;
margin-right: 20px;
border-right: 1px solid #ddd;
li {
display: flex;
justify-content: flex-end;
align-items: center;
width: 190px;
padding-right: 45px;
line-height: 60px;
font-size: 1.4rem;
font-weight: 600;
font-family: SFProDisplay-Semibold, SFProDisplay;
color: #666;
box-shadow: inset 0px -1px 0px 0px #DDDDDD;
cursor: pointer;
&.active {
font-weight: 800;
color: #1A81F4;
background: linear-gradient(90deg, #FFFFFF 0%, #F3F8FF 100%);
&:before {
content: '';
width: 18px;
height: 18px;
background: url(http://10.10.11.7/images/overviewDevHistory/3.png) no-repeat;
margin-right: 20px;
}
}
}
}
.year {
margin: 0 0 20px 20px;
font-size: 3.8rem;
font-family: ToppanBunkyuMidashiGothicStdN-ExtraBold, ToppanBunkyuMidashiGothicStdN;
font-weight: 800;
color: #1A81F4;
}
.list {
border-top: 1px solid #ddd;
li {
display: flex;
justify-content: space-between;
align-items: center;
padding: 30px;
border-bottom: 1px solid #ddd;
}
.texts {
width: 500px;
margin-right: 100px;
}
.date {
margin-bottom: 15px;
font-size: 1.2rem;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #333;
}
.text {
font-size: 1.1rem;
color: #333;
@include mul-ellipsis(3);
&:before {
content: '';
display: inline-block;
width: 7px;
height: 7px;
margin: 0 10px;
background-color: #666;
transform: rotate(45deg);
}
}
.pic {
width: 350px;
height: 195px;
}
}
}
</style>

@ -47,8 +47,8 @@ export default {
data() { data() {
return { return {
modules: Modules.overviewLocation, modules: Modules.overviewLocation,
active: 2, active: 0,
tabs: ['S³FEL介绍', '发展历程', 'S³FEL宣传片', '地理位置', '机构设置'] tabs: ['地理位置']
} }
}, },
mounted() { mounted() {

@ -30,10 +30,10 @@
<h6>{{ modules[1].form.title }}</h6> <h6>{{ modules[1].form.title }}</h6>
<p class="text">{{ modules[1].form.des }}</p> <p class="text">{{ modules[1].form.des }}</p>
</div> </div>
<img class="pic" src="@/assets/images/about.png" alt=""> <img class="pic" src="http://10.10.11.7/images/overviewSetup/1.png" alt="">
</div> </div>
<div class="lg-bg"> <div class="lg-bg">
<img width="100%" src="@/assets/images/about-bg.png" alt=""> <img width="100%" src="http://10.10.11.7/images/overviewSetup/2.png" alt="">
</div> </div>
</div> </div>
</div> </div>
@ -50,8 +50,8 @@ export default {
data() { data() {
return { return {
modules: Modules.overviewSetup, modules: Modules.overviewSetup,
active: 4, active: 0,
tabs: ['S³FEL介绍', '发展历程', 'S³FEL宣传片', '地理位置', '机构设置'] tabs: ['机构设置']
} }
}, },
mounted() { mounted() {

@ -51,8 +51,8 @@ export default {
data() { data() {
return { return {
modules: Modules.overviewTrailer, modules: Modules.overviewTrailer,
active: 2, active: 0,
tabs: ['S³FEL介绍', '发展历程', 'S³FEL宣传片', '地理位置', '机构设置'] tabs: ['S³FEL宣传片']
} }
}, },
mounted() { mounted() {

@ -51,6 +51,13 @@ service.interceptors.response.use(
case 500: case 500:
Util.errorMsg("网络错误"); Util.errorMsg("网络错误");
break; break;
// 401token过期
case 401:
Util.errorMsg(error.response.data.msg)
setTimeout(() => {
store.dispatch('user/logout')
}, 1000)
break;
// 404请求不存在 // 404请求不存在
case 404: case 404:
Util.errorMsg("网络请求不存在!"); Util.errorMsg("网络请求不存在!");

@ -139,6 +139,12 @@ export default {
component: () => import('@/pages/column/page/overviewSetup'), component: () => import('@/pages/column/page/overviewSetup'),
meta: { title: '概况-机构设置' } meta: { title: '概况-机构设置' }
}, },
{
name: `${pre}overviewDevHistory`,
path: `overviewDevHistory`,
component: () => import('@/pages/column/page/overviewDevHistory'),
meta: { title: '概况-发展历程' }
},
{ {
name: `${pre}sfel`, name: `${pre}sfel`,
path: `sfel`, path: `sfel`,

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

@ -107,7 +107,7 @@
/deep/.module { /deep/.module {
.el-table.module-table td { .el-table.module-table td {
.cell { .cell {
padding-top: 10px; padding: 10px;
} }
.link-wrap { .link-wrap {
display: flex; display: flex;
@ -138,7 +138,6 @@ $avatar-height: 80px;
/deep/.upload-pic, /deep/.upload-none { /deep/.upload-pic, /deep/.upload-none {
width: $avatar-width; width: $avatar-width;
height: $avatar-height; height: $avatar-height;
margin-bottom: 10px;
} }
/deep/.upload-none { /deep/.upload-none {
display: flex; display: flex;

Loading…
Cancel
Save