同步代码

master
yujialong 9 months ago
parent 7dda263a52
commit ecb2c438ef
  1. 5
      package-lock.json
  2. 1
      package.json
  3. 12
      public/styles/css/editor.css
  4. BIN
      public/styles/font/PingFang-Regular.otf
  5. 1
      public/styles/tinymce/langs/zh_CN.js
  6. 1
      public/styles/tinymce/plugins/formatpainter/plugin.min.js
  7. 5
      src/components/editor.js
  8. 201
      src/components/img-upload/Cropper.vue
  9. 92
      src/components/modules/content.vue
  10. 22
      src/components/modules/history.vue
  11. 1
      src/components/modules/link.vue
  12. 62
      src/components/modules/module.vue
  13. 11260
      src/const/modules.js
  14. 522
      src/pages/column/page/about.vue
  15. 462
      src/pages/column/page/aboutNew.vue
  16. 336
      src/pages/column/page/application.vue
  17. 4
      src/pages/column/page/contactUs.vue
  18. 9
      src/pages/column/page/deviceIntroBeam.vue
  19. 11
      src/pages/column/page/deviceIntroLayout.vue
  20. 23
      src/pages/column/page/deviceIntroLinear.vue
  21. 6
      src/pages/column/page/estate/event/index.vue
  22. 16
      src/pages/column/page/estate/index/index.vue
  23. 11
      src/pages/column/page/estate/location/index.vue
  24. 2
      src/pages/column/page/estate/orgSetup/index.vue
  25. 6
      src/pages/column/page/estate/survey/index.vue
  26. 14
      src/pages/column/page/governance.vue
  27. 12
      src/pages/column/page/home.vue
  28. 22
      src/pages/column/page/iasf.vue
  29. 12
      src/pages/column/page/industrial.vue
  30. 12
      src/pages/column/page/lightSources.vue
  31. 34
      src/pages/column/page/news.vue
  32. 2
      src/pages/column/page/org.vue
  33. 2
      src/pages/column/page/overview.vue
  34. 6
      src/pages/column/page/overviewDevHistory.vue
  35. 16
      src/pages/column/page/overviewIntro.vue
  36. 2
      src/pages/column/page/overviewSetup.vue
  37. 246
      src/pages/column/page/researchNew.vue
  38. 8
      src/pages/column/page/researchTeam.vue
  39. 26
      src/pages/column/page/sfel.vue
  40. 876
      src/pages/column/page/sfelNew.vue
  41. 2
      src/pages/column/page/speech.vue
  42. 4
      src/pages/column/page/userSharing.vue

5
package-lock.json generated

@ -12078,6 +12078,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true "dev": true
}, },
"tinymce-paragraphspacing": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/tinymce-paragraphspacing/-/tinymce-paragraphspacing-1.0.1.tgz",
"integrity": "sha512-sR6+vBvxplRv6SyT51Zbfc5k3xZ0ro1G+nBopoeb/3WVCUAyUtpETB+3N8gsuOvckM7NxCEZ/PtZTgznaerzTw=="
},
"to-arraybuffer": { "to-arraybuffer": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",

@ -20,6 +20,7 @@
"postcss-px2rem": "^0.3.0", "postcss-px2rem": "^0.3.0",
"px2rem-loader": "^0.1.9", "px2rem-loader": "^0.1.9",
"sortablejs": "^1.14.0", "sortablejs": "^1.14.0",
"tinymce-paragraphspacing": "^1.0.1",
"vue": "^2.6.10", "vue": "^2.6.10",
"vue-cropper": "^0.5.8", "vue-cropper": "^0.5.8",
"vue-cropperjs": "^3.0.0", "vue-cropperjs": "^3.0.0",

@ -6,6 +6,14 @@
font-family: ProximaNova; font-family: ProximaNova;
src: url('./styles/font/ProximaNova-Regular.otf'); src: url('./styles/font/ProximaNova-Regular.otf');
} }
@font-face {
font-family: PingFang;
src: url('./styles/font/PingFang-Regular.otf');
}
@font-face {
font-family: PingFang SC;
src: url('./styles/font/PingFang-Regular.otf');
}
.mce-content-body:not([dir='rtl']) blockquote { .mce-content-body:not([dir='rtl']) blockquote {
padding: 8px 15px; padding: 8px 15px;
border-left: 0; border-left: 0;
@ -92,7 +100,9 @@
} }
.tiny-wrap .people .pic { .tiny-wrap .people .pic {
max-width: 400px; max-width: 400px;
margin-right: 50px; }
.tiny-wrap .people .texts {
margin-left: 50px;
} }
.tiny-wrap .people h6 { .tiny-wrap .people h6 {
font-size: 24px; font-size: 24px;

@ -218,6 +218,7 @@ tinymce.addI18n('zh_CN', {
"Top": "上方对齐", "Top": "上方对齐",
"Middle": "居中对齐", "Middle": "居中对齐",
"Bottom": "下方对齐", "Bottom": "下方对齐",
"Format Painter": "格式刷",
"Header cell": "表头单元格", "Header cell": "表头单元格",
"Row group": "行组", "Row group": "行组",
"Column group": "列组", "Column group": "列组",

File diff suppressed because one or more lines are too long

@ -6,10 +6,10 @@ export default {
//skin:'oxide-dark', //skin:'oxide-dark',
language:'zh_CN', language:'zh_CN',
language_url: './styles/tinymce/langs/zh_CN.js', language_url: './styles/tinymce/langs/zh_CN.js',
plugins: 'print powerpaste preview searchreplace autolink directionality visualblocks visualchars fullscreen image link media template advcode codesample table charmap hr pagebreak nonbreaking anchor insertdatetime advlist lists wordcount imagetools textpattern help emoticons autosave autoresize formatpainter', plugins: 'print powerpaste preview searchreplace autolink directionality visualblocks visualchars fullscreen image link media template advcode codesample table charmap hr pagebreak nonbreaking anchor insertdatetime advlist lists wordcount imagetools textpattern help emoticons autosave autoresize formatpainter paragraphspacing',
toolbar: 'code undo redo restoredraft | cut copy powerpaste pastetext | forecolor backcolor headings fontsize lineHeight bold italic underline strikethrough link anchor | alignleft aligncenter alignright alignjustify | \ toolbar: 'code undo redo restoredraft | cut copy powerpaste pastetext | forecolor backcolor headings fontsize lineHeight bold italic underline strikethrough link anchor | alignleft aligncenter alignright alignjustify | \
styleselect fontselect fontsizeselect | bullist numlist | blockquote subscript superscript removeformat | \ styleselect fontselect fontsizeselect | bullist numlist | blockquote subscript superscript removeformat | \
table image media charmap emoticons hr pagebreak insertdatetime print preview | fullscreen | indent2em formatpainter', table image media charmap emoticons hr pagebreak insertdatetime print preview | fullscreen | indent2em formatpainter | paragraphspacing',
style_formats: [ style_formats: [
//新增 首行缩进与行高 配置 //新增 首行缩进与行高 配置
{ {
@ -307,7 +307,6 @@ export default {
toolbar_mode : 'wrap', toolbar_mode : 'wrap',
// automatic_uploads: true, // automatic_uploads: true,
// images_upload_base_path: '/demo', // images_upload_base_path: '/demo',
// images_upload_url: 'http://139.159.254.212:10000/iasf/sysFiles/upload',
paste_data_images: true, paste_data_images: true,
powerpaste_allow_local_images: true, powerpaste_allow_local_images: true,
powerpaste_word_import: 'clean', powerpaste_word_import: 'clean',

@ -3,31 +3,31 @@
<div class="cropper-content"> <div class="cropper-content">
<!-- 剪裁框 --> <!-- 剪裁框 -->
<div class="cropper"> <div class="cropper">
<vueCropper <vueCropper ref="cropper"
ref="cropper" :img="option.img"
:img="option.img" :output-size="option.size"
:output-size="option.size" :output-type="option.outputType"
:output-type="option.outputType" :info="true"
:info="true" :full="option.full"
:full="option.full" :can-move="option.canMove"
:can-move="option.canMove" :can-move-box="option.canMoveBox"
:can-move-box="option.canMoveBox" :original="option.original"
:original="option.original" :auto-crop="option.autoCrop"
:auto-crop="option.autoCrop" :auto-crop-width="autoCropWidth"
:auto-crop-width="option.autoCropWidth" :auto-crop-height="autoCropHeight"
:auto-crop-height="option.autoCropHeight" :fixed-box="option.fixedBox"
:fixed-box="option.fixedBox" :fixed="fixed"
:fixed="fixed" :fixed-number="fixedNumber"
:fixed-number="fixedNumber" @realTime="realTime" />
@realTime="realTime" />
<!-- <vueCropper ref="cropper" :img="option.img" :outputSize="option.size" :outputType="option.outputType"></vueCropper> --> <!-- <vueCropper ref="cropper" :img="option.img" :outputSize="option.size" :outputType="option.outputType"></vueCropper> -->
</div> </div>
<!-- 预览框 --> <!-- 预览框 -->
<div <div class="show-preview"
class="show-preview" :style="{'width': '500px', 'height': '400px', 'overflow': 'hidden', 'margin': '0 25px', 'display':'flex', 'align-items' : 'center'}">
:style="{'width': '500px', 'height': '400px', 'overflow': 'hidden', 'margin': '0 25px', 'display':'flex', 'align-items' : 'center'}"> <div :style="previews.div"
<div :style="previews.div" class="preview"> class="preview">
<img :src="previews.url" :style="previews.img" /> <img :src="previews.url"
:style="previews.img" />
</div> </div>
</div> </div>
</div> </div>
@ -41,11 +41,10 @@
</div>--> </div>-->
<!-- 确认上传按钮 --> <!-- 确认上传按钮 -->
<div class="upload-btn"> <div class="upload-btn">
<el-button <el-button type="primary"
type="primary" :loading="isUpload"
:loading="isUpload" :disabled="isDisabled"
:disabled="isDisabled" @click.prevent="uploadImg('blob')">
@click.prevent="uploadImg('blob')">
上传 上传
</el-button> </el-button>
</div> </div>
@ -57,7 +56,7 @@
import { import {
VueCropper VueCropper
} from 'vue-cropper' } from 'vue-cropper'
import {compress, compressAccurately} from 'image-conversion' import { compress, compressAccurately } from 'image-conversion'
export default { export default {
components: { components: {
VueCropper VueCropper
@ -86,22 +85,30 @@ export default {
fixed: { fixed: {
type: Boolean, type: Boolean,
default: true default: true
},
// (:80%)
autoCropWidth: {
type: Number,
default: 480
},
// (:80%)
autoCropHeight: {
type: Number,
default: 124
} }
}, },
data() { data () {
return { return {
previews: {}, // previews: {}, //
option: { option: {
img: '', // () img: '', // ()
size: 0.8, // (:1) size: 0.8, // (:1)
full: true, // true (:false) full: true, // true (:false)
outputType: 'jpg', // (:jpg) outputType: 'png', // (:jpg)
canMove: true, // (:true) canMove: true, // (:true)
original: false, // (:false) original: false, // (:false)
canMoveBox: true, // (:true) canMoveBox: true, // (:true)
autoCrop: true, // (:false) autoCrop: true, // (:false)
autoCropWidth: 480, // (:80%)
autoCropHeight: 124, // (:80%)
fixedBox: false, // (:false) fixedBox: false, // (:false)
fixed: true, // (:true) fixed: true, // (:true)
fixedNumber: [1, 0.26], // (:[1:1]) fixedNumber: [1, 0.26], // (:[1:1])
@ -111,38 +118,38 @@ export default {
} }
}, },
methods: { methods: {
changeScale(num) { changeScale (num) {
// //
num = num || 1 num = num || 1
this.$refs.cropper.changeScale(num) this.$refs.cropper.changeScale(num)
}, },
rotateLeft() { rotateLeft () {
// //
this.$refs.cropper.rotateLeft() this.$refs.cropper.rotateLeft()
}, },
rotateRight() { rotateRight () {
// //
this.$refs.cropper.rotateRight() this.$refs.cropper.rotateRight()
}, },
updateImg(file) { updateImg (file) {
this.option.img = file.url this.option.img = file.url
this.option.size = file.size / 1024 > 200 ? 0.9 : 0.95 this.option.size = file.size / 1024 > 200 ? 0.9 : 0.95
}, },
realTime(data) { realTime (data) {
// //
this.previews = data this.previews = data
}, },
close() { close () {
}, },
uploadImg(type) { uploadImg (type) {
this.isDisabled = true this.isDisabled = true
// //
const that = this const that = this
if (type === 'blob') { if (type === 'blob') {
this.$refs.cropper.getCropBlob(data => { this.$refs.cropper.getCropBlob(data => {
compress(data, 0.8).then(res => { // compress(data, 1).then(res => {
that.$emit('upload', res) that.$emit('upload', data)
}) // })
}) })
} else { } else {
this.$refs.cropper.getCropData(data => { this.$refs.cropper.getCropData(data => {
@ -155,81 +162,81 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.cropper-content { .cropper-content {
display: flex; display: flex;
display: -webkit-flex; display: -webkit-flex;
justify-content: flex-end; justify-content: flex-end;
-webkit-justify-content: flex-end; -webkit-justify-content: flex-end;
} }
.cropper-content .cropper { .cropper-content .cropper {
width: 500px; width: 500px;
height: 400px; height: 400px;
} }
.cropper-content .show-preview { .cropper-content .show-preview {
flex: 1; flex: 1;
-webkit-flex: 1; -webkit-flex: 1;
display: flex; display: flex;
display: -webkit-flex; display: -webkit-flex;
justify-content: center; justify-content: center;
-webkit-justify-content: center; -webkit-justify-content: center;
overflow: hidden; overflow: hidden;
border: 1px solid #cccccc; border: 1px solid #cccccc;
background: #cccccc; background: #cccccc;
margin-left: 40px; margin-left: 40px;
} }
.preview { .preview {
overflow: hidden; overflow: hidden;
border: 1px solid #cccccc; border: 1px solid #cccccc;
background: #cccccc; background: #cccccc;
} }
.footer-btn { .footer-btn {
margin-top: 30px; margin-top: 30px;
display: flex; display: flex;
display: -webkit-flex; display: -webkit-flex;
justify-content: flex-end; justify-content: flex-end;
-webkit-justify-content: flex-end; -webkit-justify-content: flex-end;
} }
.footer-btn .scope-btn { .footer-btn .scope-btn {
width: 500px; width: 500px;
display: flex; display: flex;
display: -webkit-flex; display: -webkit-flex;
justify-content: space-between; justify-content: space-between;
-webkit-justify-content: space-between; -webkit-justify-content: space-between;
} }
.footer-btn .upload-btn { .footer-btn .upload-btn {
flex: 1; flex: 1;
-webkit-flex: 1; -webkit-flex: 1;
display: flex; display: flex;
display: -webkit-flex; display: -webkit-flex;
justify-content: center; justify-content: center;
-webkit-justify-content: center; -webkit-justify-content: center;
} }
.footer-btn .btn { .footer-btn .btn {
outline: none; outline: none;
display: inline-block; display: inline-block;
line-height: 1; line-height: 1;
white-space: nowrap; white-space: nowrap;
cursor: pointer; cursor: pointer;
-webkit-appearance: none; -webkit-appearance: none;
text-align: center; text-align: center;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
box-sizing: border-box; box-sizing: border-box;
outline: 0; outline: 0;
margin: 0; margin: 0;
-webkit-transition: 0.1s; -webkit-transition: 0.1s;
transition: 0.1s; transition: 0.1s;
font-weight: 500; font-weight: 500;
padding: 8px 15px; padding: 8px 15px;
font-size: 12px; font-size: 12px;
border-radius: 3px; border-radius: 3px;
color: #fff; color: #fff;
background-color: #67c23a; background-color: #67c23a;
border-color: #67c23a; border-color: #67c23a;
} }
</style> </style>

@ -31,7 +31,7 @@
<el-upload v-if="item.type === 'upload' && item.width" <el-upload v-if="item.type === 'upload' && item.width"
class="uploader" class="uploader"
accept=".jpg,.png,.jpeg,.gif" accept=".jpg,.png,.jpeg,.gif"
:on-change="res => changeFile(res, data.form, item)" :on-change="res => changeFile(res, data.form)"
:show-file-list="false" :show-file-list="false"
:action="api.upload" :action="api.upload"
:auto-upload="false"> :auto-upload="false">
@ -51,7 +51,7 @@
<el-upload v-if="item.type === 'upload' && !item.width" <el-upload v-if="item.type === 'upload' && !item.width"
class="uploader" class="uploader"
accept=".jpg,.png,.jpeg" accept=".jpg,.png,.jpeg"
:on-success="res => uploadSuccess(res, data.form, item)" :on-success="res => uploadSuccess(res, data.form)"
:show-file-list="false" :show-file-list="false"
:headers="headers" :headers="headers"
:action="api.upload"> :action="api.upload">
@ -68,22 +68,6 @@
<p>只支持.jpg,.png格式</p> <p>只支持.jpg,.png格式</p>
</div> </div>
</el-upload> </el-upload>
<!-- 图片视频都可上传 -->
<template v-if="item.type === 'media'">
<el-upload :on-success="res => uploadSuccess(res, data.form, item)"
:before-remove="beforeRemove"
:on-remove="(file, fileList) => handleRemove(file, fileList, data.form, item.prop)"
:file-list="fileList"
:headers="headers"
:action="api.upload">
<el-button>上传资源</el-button>
</el-upload>
<i v-if="!item.required"
class="el-icon-delete del"
@click="data.form[item.prop] = ''"></i>
</template>
<template v-if="item.type === 'pic'"> <template v-if="item.type === 'pic'">
<img v-if="data.form[item.prop]" <img v-if="data.form[item.prop]"
:src="data.form[item.prop]" :src="data.form[item.prop]"
@ -161,12 +145,10 @@ export default {
isUpload: false, isUpload: false,
file: {}, // file: {}, //
curForm: {}, curForm: {},
curItem: {},
fixed: false, fixed: false,
fixedNumber: [0.88, 1], fixedNumber: [0.88, 1],
autoCropWidth: 480, autoCropWidth: 480,
autoCropHeight: 124, autoCropHeight: 124,
fileList: [],
}; };
}, },
watch: { watch: {
@ -181,29 +163,16 @@ export default {
methods: { methods: {
// form // form
handleForm () { handleForm () {
const { forms, form, type } = this.data const { forms, type } = this.data
console.log("🚀 ~ file: content.vue:179 ~ handleForm ~ type:", type, form) this.fixed = false
this.fileList = []
// //
if (type === 'form' || type === 'introduce') { if (forms) {
forms.map(e => { forms.map(e => {
if (e.type === 'upload') { if (e.type === 'upload' && e.width) {
if (e.width) { this.autoCropWidth = e.width
this.autoCropWidth = e.width this.autoCropHeight = e.height
this.autoCropHeight = e.height this.fixed = true
this.fixed = true this.fixedNumber = [e.width / e.height, 1]
this.fixedNumber = [e.width / e.height, 1]
} else {
this.fixed = false
}
}
if (e.type === 'media' && form.fileName) {
this.fileList = [
{
name: form.fileName,
url: form.video || e.pic
}
]
} }
if (e.required) { if (e.required) {
this.rules[e.prop] = [ this.rules[e.prop] = [
@ -238,29 +207,33 @@ export default {
token: Util.local.get(Setting.tokenKey) token: Util.local.get(Setting.tokenKey)
}, },
}).then(({ data }) => { }).then(({ data }) => {
console.log("🚀 ~ file: content.vue:234 ~ imgUpload ~ this.curForm:", this.curForm) if (data.code === 401) {
this.$set(this.curForm, this.curItem.prop, data.url) Util.errorMsg("登录过期,请重新登录");
setTimeout(() => {
this.$store.dispatch('user/logout')
}, 1000);
return false
}
this.$set(this.curForm, 'pic', data.url)
}).catch(res => { }) }).catch(res => { })
this.$refs.cropper.isDisabled = false this.$refs.cropper.isDisabled = false
this.isUpload = false this.isUpload = false
this.cropperModel = false this.cropperModel = false
}, },
// //
changeFile (file, form, item) { changeFile (file, form) {
console.log("🚀 ~ file: content.vue:242 ~ changeFile ~ item:", form, item)
const { size, name } = file const { size, name } = file
const ext = name.substring(name.lastIndexOf('.') + 1) const ext = name.substring(name.lastIndexOf('.') + 1)
if (!Util.isImg(ext)) { if (!Util.isImg(ext)) {
this.$message.error('请上传图片!') this.$message.error('请上传图片!')
return false return false
} }
if (size / 1024 / 1024 > 5) { if (size / 1024 / 1024 > 100) {
this.$message.error('请上传5M以内的图片!') this.$message.error('请上传100M以内的图片!')
return false return false
} }
this.file = file this.file = file
this.curForm = form this.curForm = form
this.curItem = item
this.cropperModel = true this.cropperModel = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.cropper.updateImg({ this.$refs.cropper.updateImg({
@ -269,28 +242,9 @@ export default {
}) })
}) })
}, },
beforeRemove (file, fileList) {
return this.$confirm(`确定移除 ${file.name}`);
},
handleRemove (file, fileList, form, prop) {
form[prop] = ''
form.fileName = ''
},
// //
uploadSuccess (res, row, item) { uploadSuccess (res, row) {
console.log("🚀 ~ file: content.vue:270 ~ uploadSuccess ~ item:", res, row, item) this.$set(row, 'pic', res.url)
this.$set(row, item.prop, res.url)
if (item.type === 'media') {
this.fileList = [
{
name: res.original,
url: res.url
}
]
}
this.$set(row, 'mediaType', res.original.substr(res.original.lastIndexOf('.') + 1))
this.$set(row, 'fileName', res.original)
// console.log("🚀 ~ file: content.vue:273 ~ uploadSuccess ~ row:", row)
}, },
// //
toLink (row, i = 0) { toLink (row, i = 0) {

@ -38,18 +38,17 @@
<template slot-scope="scope"> <template slot-scope="scope">
<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>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="des" <el-table-column prop="des"
label="描述" label="描述"
min-width="240" min-width="240"
align="center"></el-table-column> align="center">
<template slot-scope="scope">
<div v-html="scope.row.des"></div>
</template>
</el-table-column>
<el-table-column label="操作" <el-table-column label="操作"
width="100" width="100"
align="center"> align="center">
@ -62,7 +61,7 @@
<i class="el-icon-edit-outline del" <i class="el-icon-edit-outline del"
@click="editHistory(scope.row, scope.$index)"></i> @click="editHistory(scope.row, scope.$index)"></i>
<i class="el-icon-delete del" <i class="el-icon-delete del"
@click="delRow(data.list, scope.$index)"></i> @click="delRow(list, scope.$index)"></i>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@ -122,9 +121,18 @@ export default {
// //
editHistory (row, i = 0) { editHistory (row, i = 0) {
this.data.form = JSON.parse(JSON.stringify(row)) this.data.form = JSON.parse(JSON.stringify(row))
if (!this.data.labelWidth) this.data.labelWidth = '60px'
this.curModule = i this.curModule = i
this.contentVisible = true this.contentVisible = true
}, },
//
delRow (list, i) {
this.$confirm('确定要删除吗?', '提示', {
type: 'warning'
}).then(() => {
list.splice(i, 1)
}).catch(() => { })
},
close () { close () {
this.$emit('update:visible', false) this.$emit('update:visible', false)
}, },

@ -91,6 +91,7 @@
</template> </template>
<script> <script>
import Util from '@/libs/util'
export default { export default {
props: { props: {
data: { data: {

@ -26,27 +26,26 @@
min-width="130" min-width="130"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="item.type === 'link'" <div v-if="item.type === 'link' && scope.row.link"
class="link-wrap"> class="link-wrap">
<span>{{ scope.row.link.linkName }}</span> <span>{{ scope.row.link.linkName }}</span>
</div> </div>
<template v-else-if="item.type === 'upload'"> <template v-else-if="item.type === 'upload'">
<img v-if="scope.row[item.prop]" <img v-if="scope.row.pic"
:src="scope.row[item.prop]" :src="scope.row.pic"
class="upload-pic"> class="upload-pic">
<div class="upload-none" <div class="upload-none"
v-else> v-else>
<i class="el-icon-picture-outline"></i> <i class="el-icon-picture-outline"></i>
</div> </div>
</template> </template>
<div v-else <p v-else>{{ scope.row[item.prop] }}</p>
v-html="scope.row[item.prop]"></div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" <el-table-column label="操作"
width="100" :width="data.sort ? 150 : 100"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="flex a-center"> <div class="flex a-center">
@ -56,12 +55,14 @@
</el-switch> </el-switch>
<i class="el-icon-edit-outline del" <i class="el-icon-edit-outline del"
@click="editIntro(scope.row, scope.$index)"></i> @click="editIntro(scope.row, scope.$index)"></i>
<!-- <i v-if="scope.$index != data.list.length - 1" <template v-if="data.sort">
class="el-icon-bottom del" <i v-if="scope.$index != data.list.length - 1"
@click="sort(1, scope.$index)"></i> class="el-icon-bottom del"
<i v-if="scope.$index" @click="sort(1, scope.$index)"></i>
class="el-icon-top del" <i v-if="scope.$index"
@click="sort(0, scope.$index)"></i> --> class="el-icon-top del"
@click="sort(0, scope.$index)"></i>
</template>
<i class="el-icon-delete del" <i class="el-icon-delete del"
@click="delRow(data.list, scope.$index)"></i> @click="delRow(data.list, scope.$index)"></i>
</div> </div>
@ -77,7 +78,7 @@
ref="form" ref="form"
:model="data.form" :model="data.form"
:rules="rules" :rules="rules"
:label-width="labelWidth"> label-width="70px">
<el-form-item v-for="(item, i) in data.forms" <el-form-item v-for="(item, i) in data.forms"
:key="i" :key="i"
:prop="item.prop" :prop="item.prop"
@ -110,7 +111,7 @@
</div> </div>
<div slot="tip" <div slot="tip"
class="el-upload__tip"> class="el-upload__tip">
<p>只支持.jpg,.png,.mp4格式</p> <p>只支持.jpg,.png格式</p>
</div> </div>
</el-upload> </el-upload>
<el-upload v-if="item.type === 'video'" <el-upload v-if="item.type === 'video'"
@ -121,7 +122,12 @@
:file-list="fileList" :file-list="fileList"
:headers="headers" :headers="headers"
:action="api.upload"> :action="api.upload">
<el-button>上传视频</el-button> <el-button>上传视频</el-button>
<div slot="tip"
class="el-upload__tip">
<p>请上传大小1G以内的视频</p>
</div>
</el-upload> </el-upload>
<!-- 图片视频都可上传 --> <!-- 图片视频都可上传 -->
<el-upload v-if="item.type === 'media'" <el-upload v-if="item.type === 'media'"
@ -194,7 +200,7 @@
<el-input v-model="data.form.columnTitleCustom" <el-input v-model="data.form.columnTitleCustom"
:disabled="data.form.columnTitle == 1" :disabled="data.form.columnTitle == 1"
size="small" size="small"
maxlength="10"></el-input> maxlength="100"></el-input>
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -284,6 +290,7 @@ 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'
import 'tinymce-paragraphspacing'
import editorConfig from '@/components/editor' import editorConfig from '@/components/editor'
import Cropper from '@/components/img-upload/Cropper' import Cropper from '@/components/img-upload/Cropper'
import Axios from 'axios' import Axios from 'axios'
@ -305,8 +312,7 @@ export default {
token: Util.local.get(Setting.tokenKey) token: Util.local.get(Setting.tokenKey)
}, },
isVideo: Util.isVideo, isVideo: Util.isVideo,
dialogWidth: '700px', dialogWidth: '800px',
labelWidth: '70px',
rules: {}, rules: {},
linkVisible: false, linkVisible: false,
linkForm: {}, linkForm: {},
@ -378,7 +384,8 @@ export default {
]), ]),
// form // form
handleForm () { handleForm () {
const { type, forms, form, dialogWidth, labelWidth } = this.data const { type, forms, form, dialogWidth } = this.data
this.fixed = false
if (type === 'form' || type === 'forms') { if (type === 'form' || type === 'forms') {
forms.map(e => { forms.map(e => {
if (e.type === 'video' || e.type === 'media') { if (e.type === 'video' || e.type === 'media') {
@ -423,8 +430,7 @@ export default {
this.articleNums = nums this.articleNums = nums
} }
form && form.site && this.siteChange(form.site) form && form.site && this.siteChange(form.site)
if (dialogWidth) this.dialogWidth = dialogWidth this.dialogWidth = dialogWidth || '800px'
if (labelWidth) this.labelWidth = labelWidth
}, },
// //
siteChange (siteId) { siteChange (siteId) {
@ -486,6 +492,13 @@ export default {
token: Util.local.get(Setting.tokenKey) token: Util.local.get(Setting.tokenKey)
}, },
}).then(({ data }) => { }).then(({ data }) => {
if (data.code === 401) {
Util.errorMsg("登录过期,请重新登录");
setTimeout(() => {
this.$store.dispatch('user/logout')
}, 1000);
return false
}
this.$set(this.curForm, 'pic', data.url) this.$set(this.curForm, 'pic', data.url)
}).catch(res => { }) }).catch(res => { })
this.$refs.cropper.isDisabled = false this.$refs.cropper.isDisabled = false
@ -500,8 +513,8 @@ export default {
this.$message.error('请上传图片!') this.$message.error('请上传图片!')
return false return false
} }
if (size / 1024 / 1024 > 5) { if (size / 1024 / 1024 > 100) {
this.$message.error('请上传5M以内的图片!') this.$message.error('请上传100M以内的图片!')
return false return false
} }
this.file = file this.file = file
@ -536,9 +549,8 @@ export default {
}, },
// //
sort (type, i) { sort (type, i) {
// this.data.list.splice(type ? --i, 0, this.data.list.splice(i, 1)[0]) const item = this.data.list.splice(i, 1)[0]
// this.diaIndex++ this.data.list.splice(i + (type ? 1 : -1), 0, item)
// console.log(11, this.data.list)
}, },
// //
delRow (list, i) { delRow (list, i) {

File diff suppressed because it is too large Load Diff

@ -3,23 +3,31 @@
<div class="actions"> <div class="actions">
<p class="page-name">页面设置/ABOUT</p> <p class="page-name">页面设置/ABOUT</p>
<div> <div>
<el-button type="primary" @click="preview">预览</el-button> <el-button type="primary"
@click="preview">预览</el-button>
<el-button @click="save(0)">保存为草稿</el-button> <el-button @click="save(0)">保存为草稿</el-button>
<el-button type="primary" @click="save(1)">发布</el-button> <el-button type="primary"
@click="save(1)">发布</el-button>
<el-button @click="back">放弃编辑</el-button> <el-button @click="back">放弃编辑</el-button>
</div> </div>
</div> </div>
<div class="modules"> <div class="modules">
<div class="relative"> <div class="relative">
<el-carousel height="480px" :indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'"> <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"
<img width="100%" height="100%" :src="item.pic" alt=""> :key="i">
<img width="100%"
height="100%"
:src="item.pic"
alt="">
</el-carousel-item> </el-carousel-item>
</template> </template>
</el-carousel> </el-carousel>
<div class="cover" @click="toSet(0)">点击更换banner与链接</div> <div class="cover"
@click="toSet(0)">点击更换banner与链接</div>
</div> </div>
<div class="block history gray"> <div class="block history gray">
@ -31,9 +39,14 @@
<div class="line"></div> <div class="line"></div>
<div class="des">{{ modules[1].form.des }}</div> <div class="des">{{ modules[1].form.des }}</div>
</div> </div>
<img class="bg" width="562" height="506" :src="modules[1].form.pic" alt=""> <img class="bg"
width="562"
height="506"
:src="modules[1].form.pic"
alt="">
</div> </div>
<div class="cover" @click="toSet(1)">点击更改图片标题概述与链接</div> <div class="cover"
@click="toSet(1)">点击更改图片标题概述与链接</div>
</div> </div>
</div> </div>
@ -42,28 +55,37 @@
<div class="c-wrap"> <div class="c-wrap">
<h2 class="b-title">{{ modules[2].form.title }}</h2> <h2 class="b-title">{{ modules[2].form.title }}</h2>
<p class="intro">{{ modules[2].form.des }}</p> <p class="intro">{{ modules[2].form.des }}</p>
<div class="cover" @click="toSet(2)">点击更换标题与描述</div> <div class="cover"
@click="toSet(2)">点击更换标题与描述</div>
</div> </div>
<ul class="card"> <ul class="card">
<li class="item1"> <li class="item1">
<h6>{{ modules[3].form.title }}</h6> <h6>{{ modules[3].form.title }}</h6>
<div class="des" v-html="modules[3].form.des"></div> <div class="des"
<div class="cover" @click="toSet(3)">点击更换标题概述与跳转</div> v-html="modules[3].form.des"></div>
<div class="cover"
@click="toSet(3)">点击更换标题概述与跳转</div>
</li> </li>
<li class="item2"> <li class="item2">
<h6>{{ modules[4].form.title }}</h6> <h6>{{ modules[4].form.title }}</h6>
<div class="des" v-html="modules[4].form.des"></div> <div class="des"
<div class="cover" @click="toSet(4)">点击更换标题概述与跳转</div> v-html="modules[4].form.des"></div>
<div class="cover"
@click="toSet(4)">点击更换标题概述与跳转</div>
</li> </li>
<li class="item3"> <li class="item3">
<h6>{{ modules[5].form.title }}</h6> <h6>{{ modules[5].form.title }}</h6>
<div class="des" v-html="modules[5].form.des"></div> <div class="des"
<div class="cover" @click="toSet(5)">点击更换标题概述与跳转</div> v-html="modules[5].form.des"></div>
<div class="cover"
@click="toSet(5)">点击更换标题概述与跳转</div>
</li> </li>
<li class="item4"> <li class="item4">
<h6>{{ modules[6].form.title }}</h6> <h6>{{ modules[6].form.title }}</h6>
<div class="des" v-html="modules[6].form.des"></div> <div class="des"
<div class="cover" @click="toSet(6)">点击更换标题概述与跳转</div> v-html="modules[6].form.des"></div>
<div class="cover"
@click="toSet(6)">点击更换标题概述与跳转</div>
</li> </li>
</ul> </ul>
</div> </div>
@ -74,38 +96,45 @@
<div class="c-wrap"> <div class="c-wrap">
<h2 class="b-title">{{ modules[7].form.title }}</h2> <h2 class="b-title">{{ modules[7].form.title }}</h2>
<p class="intro">{{ modules[7].form.des }}</p> <p class="intro">{{ modules[7].form.des }}</p>
<div class="cover" @click="toSet(7)">点击更换标题与描述</div> <div class="cover"
@click="toSet(7)">点击更换标题与描述</div>
</div> </div>
<ul class="stat"> <ul class="stat">
<li> <li>
<p class="num">{{ modules[8].form.title }}</p> <p class="num">{{ modules[8].form.title }}</p>
<p class="text">{{ modules[8].form.des }}</p> <p class="text">{{ modules[8].form.des }}</p>
<div class="cover" @click="toSet(8)">点击更换标题与描述</div> <div class="cover"
@click="toSet(8)">点击更换标题与描述</div>
</li> </li>
<li> <li>
<p class="num">{{ modules[9].form.title }}</p> <p class="num">{{ modules[9].form.title }}</p>
<p class="text">{{ modules[9].form.des }}</p> <p class="text">{{ modules[9].form.des }}</p>
<div class="cover" @click="toSet(9)">点击更换标题与描述</div> <div class="cover"
@click="toSet(9)">点击更换标题与描述</div>
</li> </li>
<li> <li>
<p class="num">{{ modules[10].form.title }}</p> <p class="num">{{ modules[10].form.title }}</p>
<p class="text">{{ modules[10].form.des }}</p> <p class="text">{{ modules[10].form.des }}</p>
<div class="cover" @click="toSet(10)">点击更换标题与描述</div> <div class="cover"
@click="toSet(10)">点击更换标题与描述</div>
</li> </li>
<li> <li>
<p class="num">{{ modules[11].form.title }}</p> <p class="num">{{ modules[11].form.title }}</p>
<p class="text">{{ modules[11].form.des }}</p> <p class="text">{{ modules[11].form.des }}</p>
<div class="cover" @click="toSet(11)">点击更换标题与描述</div> <div class="cover"
@click="toSet(11)">点击更换标题与描述</div>
</li> </li>
<li> <li>
<p class="num">{{ modules[12].form.title }}</p> <p class="num">{{ modules[12].form.title }}</p>
<p class="text">{{ modules[12].form.des }}</p> <p class="text">{{ modules[12].form.des }}</p>
<div class="cover" @click="toSet(12)">点击更换标题与描述</div> <div class="cover"
@click="toSet(12)">点击更换标题与描述</div>
</li> </li>
<li> <li>
<p class="num">{{ modules[13].form.title }}</p> <p class="num">{{ modules[13].form.title }}</p>
<p class="text">{{ modules[13].form.des }}</p> <p class="text">{{ modules[13].form.des }}</p>
<div class="cover" @click="toSet(13)">点击更换标题与描述</div> <div class="cover"
@click="toSet(13)">点击更换标题与描述</div>
</li> </li>
</ul> </ul>
</div> </div>
@ -113,14 +142,19 @@
<div class="plan c-wrap"> <div class="plan c-wrap">
<div class="inner"> <div class="inner">
<img class="pic" :src="modules[14].form.pic" alt=""> <img class="pic"
:src="modules[14].form.pic"
alt="">
<div class="texts"> <div class="texts">
<h6>{{ modules[14].form.title }}</h6> <h6>{{ modules[14].form.title }}</h6>
<div class="des">{{ modules[14].form.des }}</div> <div class="des">{{ modules[14].form.des }}</div>
<img src="@/assets/images/arrow-white.png" alt=""> <img src="@/assets/images/arrow-white.png"
alt="">
</div> </div>
</div> </div>
<div class="cover" style="height: calc(100% + 60px);" @click="toSet(14)">点击更换标题概述与跳转</div> <div class="cover"
style="height: calc(100% + 60px);"
@click="toSet(14)">点击更换标题概述与跳转</div>
</div> </div>
<div class="block"> <div class="block">
@ -128,21 +162,28 @@
<div class="c-wrap"> <div class="c-wrap">
<h2 class="b-title">{{ modules[15].form.title }}</h2> <h2 class="b-title">{{ modules[15].form.title }}</h2>
<p class="intro">{{ modules[15].form.des }}</p> <p class="intro">{{ modules[15].form.des }}</p>
<div class="cover" @click="toSet(15)">点击更换标题与描述</div> <div class="cover"
@click="toSet(15)">点击更换标题与描述</div>
</div> </div>
<ul class="people"> <ul class="people">
<template v-for="(item, i) in modules[16].list"> <template v-for="(item, i) in modules[16].list">
<li v-if="item.isEnable" :key="i"> <li v-if="item.isEnable"
<img class="pic" :src="item.pic" alt=""> :key="i">
<img class="pic"
:src="item.pic"
alt="">
<div class="texts"> <div class="texts">
<p class="sub">{{ item.subTitle }}</p> <p class="sub">{{ item.subTitle }}</p>
<h6>{{ item.title }}</h6> <h6>{{ item.title }}</h6>
<p class="des">{{ item.des }}</p> <p class="des">{{ item.des }}</p>
<img class="arrow" src="@/assets/images/arrow.png" alt=""> <img class="arrow"
src="@/assets/images/arrow.png"
alt="">
</div> </div>
</li> </li>
</template> </template>
<div class="cover" @click="toSet(16)">点击更改图片标题概述与链接</div> <div class="cover"
@click="toSet(16)">点击更改图片标题概述与链接</div>
</ul> </ul>
</div> </div>
</div> </div>
@ -152,26 +193,36 @@
<div class="c-wrap"> <div class="c-wrap">
<h2 class="b-title">{{ modules[17].form.title }}</h2> <h2 class="b-title">{{ modules[17].form.title }}</h2>
<p class="intro">{{ modules[17].form.des }}</p> <p class="intro">{{ modules[17].form.des }}</p>
<div class="cover" @click="toSet(17)">点击更换标题与描述</div> <div class="cover"
@click="toSet(17)">点击更换标题与描述</div>
</div> </div>
<ul class="list"> <ul class="list">
<li> <li>
<img class="pic" :src="modules[18].form.pic" alt=""> <img class="pic"
:src="modules[18].form.pic"
alt="">
<h6>{{ modules[18].form.title }}</h6> <h6>{{ modules[18].form.title }}</h6>
<p class="des">{{ modules[18].form.des }}</p> <p class="des">{{ modules[18].form.des }}</p>
<div class="cover" @click="toSet(18)">点击更改图片标题概述与链接</div> <div class="cover"
@click="toSet(18)">点击更改图片标题概述与链接</div>
</li> </li>
<li> <li>
<img class="pic" :src="modules[19].form.pic" alt=""> <img class="pic"
:src="modules[19].form.pic"
alt="">
<h6>{{ modules[19].form.title }}</h6> <h6>{{ modules[19].form.title }}</h6>
<p class="des">{{ modules[19].form.des }}</p> <p class="des">{{ modules[19].form.des }}</p>
<div class="cover" @click="toSet(19)">点击更改图片标题概述与链接</div> <div class="cover"
@click="toSet(19)">点击更改图片标题概述与链接</div>
</li> </li>
<li> <li>
<img class="pic" :src="modules[20].form.pic" alt=""> <img class="pic"
:src="modules[20].form.pic"
alt="">
<h6>{{ modules[20].form.title }}</h6> <h6>{{ modules[20].form.title }}</h6>
<p class="des">{{ modules[20].form.des }}</p> <p class="des">{{ modules[20].form.des }}</p>
<div class="cover" @click="toSet(20)">点击更改图片标题概述与链接</div> <div class="cover"
@click="toSet(20)">点击更改图片标题概述与链接</div>
</li> </li>
</ul> </ul>
</div> </div>
@ -182,21 +233,28 @@
<div class="c-wrap"> <div class="c-wrap">
<h2 class="b-title">{{ modules[21].form.title }}</h2> <h2 class="b-title">{{ modules[21].form.title }}</h2>
<p class="intro">{{ modules[21].form.des }}</p> <p class="intro">{{ modules[21].form.des }}</p>
<div class="cover" @click="toSet(21)">点击更换标题与描述</div> <div class="cover"
@click="toSet(21)">点击更换标题与描述</div>
</div> </div>
<div class="staff"> <div class="staff">
<div class="left"> <div class="left">
<h6>{{ modules[22].form.title }}</h6> <h6>{{ modules[22].form.title }}</h6>
<div class="des">{{ modules[22].form.des }}</div> <div class="des">{{ modules[22].form.des }}</div>
</div> </div>
<img class="pic" :src="modules[22].form.pic" alt=""> <img class="pic"
<div class="cover" @click="toSet(22)">点击更改图片标题概述与链接</div> :src="modules[22].form.pic"
alt="">
<div class="cover"
@click="toSet(22)">点击更改图片标题概述与链接</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<Module ref="module" :data.sync="curData" :visible.sync="diaVisible" @moduleSubmit="moduleSubmit" /> <Module ref="module"
:data.sync="curData"
:visible.sync="diaVisible"
@moduleSubmit="moduleSubmit" />
</div> </div>
</template> </template>
@ -205,12 +263,12 @@ import mixins from '@/mixins/page'
import Modules from '@/const/modules' import Modules from '@/const/modules'
export default { export default {
mixins: [mixins], mixins: [mixins],
data() { data () {
return { return {
modules: Modules.about modules: Modules.about
} }
}, },
mounted() { mounted () {
this.$store.commit('user/setCrumbs', [ this.$store.commit('user/setCrumbs', [
{ {
name: '站点管理', name: '站点管理',
@ -236,210 +294,210 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "../../../styles/page/page.scss"; @import '../../../styles/page/page.scss';
.history { .history {
h2 { h2 {
font-size: 30px; font-size: 30px;
color: #333; color: #333;
} }
.texts { .texts {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
padding: 82px 57px 30px; padding: 82px 57px 30px;
margin-top: 20px; margin-top: 20px;
background-color: #fff; background-color: #fff;
border-radius: 100px 0px 0px 0px; border-radius: 100px 0px 0px 0px;
} }
.left { .left {
width: 695px; width: 695px;
} }
.line { .line {
width: 136px; width: 136px;
height: 2px; height: 2px;
margin: 20px 0; margin: 20px 0;
background: #D7D7D7; background: #d7d7d7;
} }
.des { .des {
font-size: 22px; font-size: 22px;
color: #181818; color: #181818;
line-height: 31px; line-height: 31px;
} }
.bg { .bg {
margin: -122px 0 0 0; margin: -122px 0 0 0;
border-top-right-radius: 40px; border-top-right-radius: 40px;
} }
} }
.card { .card {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
li { li {
position: relative; position: relative;
width: 686px; width: 686px;
height: 277px; height: 277px;
padding: 70px 67px 20px; padding: 70px 67px 20px;
margin-bottom: 28px; margin-bottom: 28px;
color: #fff; color: #fff;
&:nth-child(odd) { &:nth-child(odd) {
margin-right: 28px; margin-right: 28px;
}
}
.item1 {
background: url(../../../assets/images/about/3.png) 0 0/100% 100% no-repeat;
}
.item2 {
background-color: #4984b6;
}
.item3 {
background-color: #567180;
}
.item4 {
background: url(../../../assets/images/about/4.png) 0 0/100% 100% no-repeat;
}
h6 {
margin-bottom: 10px;
font-size: 40px;
font-family: toppan;
}
.des {
font-size: 18px;
} }
}
.item1 {
background: url(../../../assets/images/about/3.png) 0 0/100% 100% no-repeat;
}
.item2 {
background-color: #4984B6;
}
.item3 {
background-color: #567180;
}
.item4 {
background: url(../../../assets/images/about/4.png) 0 0/100% 100% no-repeat;
}
h6 {
margin-bottom: 10px;
font-size: 40px;
font-family: toppan;
}
.des {
font-size: 18px;
}
} }
.plan { .plan {
padding: 73px 0; padding: 73px 0;
background: #072947; background: #072947;
.inner { .inner {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
width: 1575px; width: 1575px;
} }
.pic { .pic {
width: 664px; width: 664px;
height: 488px; height: 488px;
margin-bottom: -120px; margin-bottom: -120px;
} }
.texts { .texts {
width: 802px; width: 802px;
margin-top: 36px; margin-top: 36px;
color: #fff; color: #fff;
} }
h6 { h6 {
font-size: 36px; font-size: 36px;
} }
.des { .des {
margin: 20px 0; margin: 20px 0;
font-size: 20px; font-size: 20px;
} }
} }
.people { .people {
position: relative; position: relative;
li { li {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-bottom: 126px; margin-bottom: 126px;
&:nth-child(even) { &:nth-child(even) {
flex-direction: row-reverse; flex-direction: row-reverse;
}
}
.pic {
width: 660px;
height: 465px;
}
.texts {
width: 680px;
padding-top: 90px;
}
h6 {
margin: 20px 0;
font-size: 40px;
}
.sub {
font-size: 20px;
color: #020202;
}
.des {
font-size: 18px;
color: #020202;
line-height: 30px;
} }
}
.pic {
width: 660px;
height: 465px;
}
.texts {
width: 680px;
padding-top: 90px;
}
h6 {
margin: 20px 0;
font-size: 40px;
}
.sub {
font-size: 20px;
color: #020202;
}
.des {
font-size: 18px;
color: #020202;
line-height: 30px;
}
} }
.list-block { .list-block {
.inner { .inner {
width: 80%; width: 80%;
padding: 90px 0; padding: 90px 0;
background-color: #fff; background-color: #fff;
} }
} }
.list { .list {
display: flex; display: flex;
justify-content: center; justify-content: center;
li { li {
position: relative; position: relative;
width: calc((100% - 100px) / 3); width: calc((100% - 100px) / 3);
padding-bottom: 30px; padding-bottom: 30px;
margin-right: 28px; margin-right: 28px;
text-align: center; text-align: center;
background-color: #F5F5F5; background-color: #f5f5f5;
&:last-child { &:last-child {
margin-right: 0; margin-right: 0;
}
}
.pic {
width: 100%;
height: 353px;
}
h6 {
margin: 35px 0 5px;
font-size: 24px;
color: #272727;
}
.des {
font-size: 16px;
color: #757575;
} }
}
.pic {
width: 100%;
height: 353px;
}
h6 {
margin: 35px 0 5px;
font-size: 24px;
color: #272727;
}
.des {
font-size: 16px;
color: #757575;
}
} }
.staff { .staff {
position: relative; position: relative;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
background: #F8F8F8; background: #f8f8f8;
.left { .left {
width: 658px; width: 658px;
margin: 50px 0 0 46px; margin: 50px 0 0 46px;
} }
h6 { h6 {
margin-bottom: 30px; margin-bottom: 30px;
font-size: 30px; font-size: 30px;
color: #333; color: #333;
} }
.des { .des {
font-size: 20px; font-size: 20px;
color: #333; color: #333;
line-height: 34px; line-height: 34px;
} }
.pic { .pic {
width: 650px; width: 650px;
} }
} }
.stat { .stat {
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
flex-wrap: wrap; flex-wrap: wrap;
margin-top: 60px; margin-top: 60px;
li { li {
position: relative; position: relative;
width: 30%; width: 30%;
margin-bottom: 50px; margin-bottom: 50px;
} }
.num { .num {
margin-bottom: 10px; margin-bottom: 10px;
font-size: 60px; font-size: 60px;
font-weight: 800; font-weight: 800;
font-family: toppan; font-family: toppan;
color: #035CE1; color: #035ce1;
line-height: 49px; line-height: 49px;
} }
.text { .text {
font-size: 24px; font-size: 24px;
} }
} }
</style> </style>

@ -0,0 +1,462 @@
<template>
<div class="wrap">
<div class="actions">
<p class="page-name">页面设置/ABOUT</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">
<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">
<el-carousel-item v-if="item.pic && item.isEnable"
:key="i">
<img width="100%"
height="100%"
:src="item.pic"
alt="">
</el-carousel-item>
</template>
</el-carousel>
<div class="cover"
@click="toSet(0)">点击更换banner与链接</div>
</div>
<div class="block history gray">
<div class="inner c-wrap">
<h2 style="margin-left: 57px">{{ modules[1].form.title }}</h2>
<div class="texts">
<div class="left">
<h2>{{ modules[1].form.subTitle }}</h2>
<div class="line"></div>
<div class="des">{{ modules[1].form.des }}</div>
</div>
<img class="bg"
width="562"
height="506"
:src="modules[1].form.pic"
alt="">
</div>
<div class="cover"
@click="toSet(1)">点击更改图片标题概述与链接</div>
</div>
</div>
<div class="block gray">
<div class="inner">
<div class="c-wrap">
<h2 class="b-title">{{ modules[7].form.title }}</h2>
<p class="intro">{{ modules[7].form.des }}</p>
<div class="cover"
@click="toSet(7)">点击更换标题与描述</div>
</div>
<ul class="stat">
<li>
<p class="num">{{ modules[8].form.title }}</p>
<p class="text">{{ modules[8].form.des }}</p>
<div class="cover"
@click="toSet(8)">点击更换标题与描述</div>
</li>
<li>
<p class="num">{{ modules[9].form.title }}</p>
<p class="text">{{ modules[9].form.des }}</p>
<div class="cover"
@click="toSet(9)">点击更换标题与描述</div>
</li>
<li>
<p class="num">{{ modules[10].form.title }}</p>
<p class="text">{{ modules[10].form.des }}</p>
<div class="cover"
@click="toSet(10)">点击更换标题与描述</div>
</li>
<li>
<p class="num">{{ modules[11].form.title }}</p>
<p class="text">{{ modules[11].form.des }}</p>
<div class="cover"
@click="toSet(11)">点击更换标题与描述</div>
</li>
<li>
<p class="num">{{ modules[12].form.title }}</p>
<p class="text">{{ modules[12].form.des }}</p>
<div class="cover"
@click="toSet(12)">点击更换标题与描述</div>
</li>
<li>
<p class="num">{{ modules[13].form.title }}</p>
<p class="text">{{ modules[13].form.des }}</p>
<div class="cover"
@click="toSet(13)">点击更换标题与描述</div>
</li>
</ul>
</div>
</div>
<div class="plan c-wrap">
<div class="inner">
<img class="pic"
:src="modules[14].form.pic"
alt="">
<div class="texts">
<h6>{{ modules[14].form.title }}</h6>
<div class="des">{{ modules[14].form.des }}</div>
<img src="@/assets/images/arrow-white.png"
alt="">
</div>
</div>
<div class="cover"
style="height: calc(100% + 60px);"
@click="toSet(14)">点击更换标题概述与跳转</div>
</div>
<div class="block">
<div class="inner">
<div class="c-wrap">
<h2 class="b-title">{{ modules[15].form.title }}</h2>
<p class="intro">{{ modules[15].form.des }}</p>
<div class="cover"
@click="toSet(15)">点击更换标题与描述</div>
</div>
<ul class="people">
<template v-for="(item, i) in modules[16].list">
<li v-if="item.isEnable"
:key="i">
<img class="pic"
:src="item.pic"
alt="">
<div class="texts">
<p class="sub">{{ item.subTitle }}</p>
<h6>{{ item.title }}</h6>
<p class="des">{{ item.des }}</p>
<img class="arrow"
src="@/assets/images/arrow.png"
alt="">
</div>
</li>
</template>
<div class="cover"
@click="toSet(16)">点击更改图片标题概述与链接</div>
</ul>
</div>
</div>
<div class="block list-block gray">
<div class="inner">
<div class="c-wrap">
<h2 class="b-title">{{ modules[17].form.title }}</h2>
<p class="intro">{{ modules[17].form.des }}</p>
<div class="cover"
@click="toSet(17)">点击更换标题与描述</div>
</div>
<ul class="list">
<li>
<img class="pic"
:src="modules[18].form.pic"
alt="">
<h6>{{ modules[18].form.title }}</h6>
<p class="des">{{ modules[18].form.des }}</p>
<div class="cover"
@click="toSet(18)">点击更改图片标题概述与链接</div>
</li>
<li>
<img class="pic"
:src="modules[19].form.pic"
alt="">
<h6>{{ modules[19].form.title }}</h6>
<p class="des">{{ modules[19].form.des }}</p>
<div class="cover"
@click="toSet(19)">点击更改图片标题概述与链接</div>
</li>
<li>
<img class="pic"
:src="modules[20].form.pic"
alt="">
<h6>{{ modules[20].form.title }}</h6>
<p class="des">{{ modules[20].form.des }}</p>
<div class="cover"
@click="toSet(20)">点击更改图片标题概述与链接</div>
</li>
</ul>
</div>
</div>
<div class="block">
<div class="inner">
<div class="c-wrap">
<h2 class="b-title">{{ modules[21].form.title }}</h2>
<p class="intro">{{ modules[21].form.des }}</p>
<div class="cover"
@click="toSet(21)">点击更换标题与描述</div>
</div>
<div class="staff">
<div class="left">
<h6>{{ modules[22].form.title }}</h6>
<div class="des">{{ modules[22].form.des }}</div>
</div>
<img class="pic"
:src="modules[22].form.pic"
alt="">
<div class="cover"
@click="toSet(22)">点击更改图片标题概述与链接</div>
</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.about
}
},
mounted () {
this.$store.commit('user/setCrumbs', [
{
name: '站点管理',
route: '/site'
},
{
name: '内容管理',
route: '/column'
},
{
name: '栏目管理',
route: '/column'
},
{
name: 'ABOUT'
}
])
},
methods: {
}
};
</script>
<style lang="scss" scoped>
@import '../../../styles/page/page.scss';
.history {
h2 {
font-size: 30px;
color: #333;
}
.texts {
display: flex;
justify-content: space-between;
padding: 82px 57px 30px;
margin-top: 20px;
background-color: #fff;
border-radius: 100px 0px 0px 0px;
}
.left {
width: 695px;
}
.line {
width: 136px;
height: 2px;
margin: 20px 0;
background: #d7d7d7;
}
.des {
font-size: 22px;
color: #181818;
line-height: 31px;
}
.bg {
margin: -122px 0 0 0;
border-top-right-radius: 40px;
}
}
.card {
display: flex;
flex-wrap: wrap;
li {
position: relative;
width: 686px;
height: 277px;
padding: 70px 67px 20px;
margin-bottom: 28px;
color: #fff;
&:nth-child(odd) {
margin-right: 28px;
}
}
.item1 {
background: url(../../../assets/images/about/3.png) 0 0/100% 100% no-repeat;
}
.item2 {
background-color: #4984b6;
}
.item3 {
background-color: #567180;
}
.item4 {
background: url(../../../assets/images/about/4.png) 0 0/100% 100% no-repeat;
}
h6 {
margin-bottom: 10px;
font-size: 40px;
font-family: toppan;
}
.des {
font-size: 18px;
}
}
.plan {
padding: 73px 0;
background: #072947;
.inner {
display: flex;
justify-content: space-between;
width: 1575px;
}
.pic {
width: 664px;
height: 488px;
margin-bottom: -120px;
}
.texts {
width: 802px;
margin-top: 36px;
color: #fff;
}
h6 {
font-size: 36px;
}
.des {
margin: 20px 0;
font-size: 20px;
}
}
.people {
position: relative;
li {
display: flex;
justify-content: space-between;
margin-bottom: 126px;
&:nth-child(even) {
flex-direction: row-reverse;
}
}
.pic {
width: 660px;
height: 465px;
}
.texts {
width: 680px;
padding-top: 90px;
}
h6 {
margin: 20px 0;
font-size: 40px;
}
.sub {
font-size: 20px;
color: #020202;
}
.des {
font-size: 18px;
color: #020202;
line-height: 30px;
}
}
.list-block {
.inner {
width: 80%;
padding: 90px 0;
background-color: #fff;
}
}
.list {
display: flex;
justify-content: center;
li {
position: relative;
width: calc((100% - 100px) / 3);
padding-bottom: 30px;
margin-right: 28px;
text-align: center;
background-color: #f5f5f5;
&:last-child {
margin-right: 0;
}
}
.pic {
width: 100%;
height: 353px;
}
h6 {
margin: 35px 0 5px;
font-size: 24px;
color: #272727;
}
.des {
font-size: 16px;
color: #757575;
}
}
.staff {
position: relative;
display: flex;
justify-content: space-between;
background: #f8f8f8;
.left {
width: 658px;
margin: 50px 0 0 46px;
}
h6 {
margin-bottom: 30px;
font-size: 30px;
color: #333;
}
.des {
font-size: 20px;
color: #333;
line-height: 34px;
}
.pic {
width: 650px;
}
}
.stat {
display: flex;
justify-content: space-around;
flex-wrap: wrap;
margin-top: 60px;
li {
position: relative;
width: 30%;
margin-bottom: 50px;
}
.num {
margin-bottom: 10px;
font-size: 60px;
font-weight: 800;
font-family: toppan;
color: #035ce1;
line-height: 49px;
}
.text {
font-size: 24px;
}
}
</style>

@ -3,23 +3,31 @@
<div class="actions"> <div class="actions">
<p class="page-name">页面设置/APPLICATION</p> <p class="page-name">页面设置/APPLICATION</p>
<div> <div>
<el-button type="primary" @click="preview">预览</el-button> <el-button type="primary"
@click="preview">预览</el-button>
<el-button @click="save(0)">保存为草稿</el-button> <el-button @click="save(0)">保存为草稿</el-button>
<el-button type="primary" @click="save(1)">发布</el-button> <el-button type="primary"
@click="save(1)">发布</el-button>
<el-button @click="back">放弃编辑</el-button> <el-button @click="back">放弃编辑</el-button>
</div> </div>
</div> </div>
<div class="modules"> <div class="modules">
<div class="relative"> <div class="relative">
<el-carousel height="480px" :indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'"> <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"
<img width="100%" height="100%" :src="item.pic" alt=""> :key="i">
<img width="100%"
height="100%"
:src="item.pic"
alt="">
</el-carousel-item> </el-carousel-item>
</template> </template>
</el-carousel> </el-carousel>
<div class="cover" @click="toSet(0)">点击更换banner与链接</div> <div class="cover"
@click="toSet(0)">点击更换banner与链接</div>
</div> </div>
<div class="block history gray"> <div class="block history gray">
@ -31,25 +39,38 @@
<div class="line"></div> <div class="line"></div>
<div class="des">{{ modules[1].form.des }}</div> <div class="des">{{ modules[1].form.des }}</div>
</div> </div>
<img class="bg" width="562" height="506" :src="modules[1].form.pic" alt=""> <img class="bg"
width="562"
height="506"
:src="modules[1].form.pic"
alt="">
</div> </div>
<div class="cover" @click="toSet(1)">点击更改图片标题概述与链接</div> <div class="cover"
@click="toSet(1)">点击更改图片标题概述与链接</div>
</div> </div>
</div> </div>
<div class="block"> <div class="block">
<div class="inner" style="width: 1558px"> <div class="inner"
style="width: 1558px">
<div class="c-wrap"> <div class="c-wrap">
<h2 class="b-title">{{ modules[2].form.title }}</h2> <h2 class="b-title">{{ modules[2].form.title }}</h2>
<p class="intro">{{ modules[2].form.des }}</p> <p class="intro">{{ modules[2].form.des }}</p>
<div class="cover" @click="toSet(2)">点击更换标题与描述</div> <div class="cover"
@click="toSet(2)">点击更换标题与描述</div>
</div> </div>
<ul class="app"> <ul class="app">
<li v-for="(item, i) in modules[3].list" :key="i"> <li v-for="(item, i) in modules[3].list"
<img class="bg" :src="require('@/assets/images/application/app' + (i + 1) + '.png')" alt=""> :key="i">
<img class="icon" :src="require('@/assets/images/application/app' + (i + 1) + '-1.png')" alt=""> <img class="bg"
:src="require('@/assets/images/application/app' + (i + 1) + '.png')"
alt="">
<img class="icon"
:src="require('@/assets/images/application/app' + (i + 1) + '-1.png')"
alt="">
<p class="text">{{ item.title }}</p> <p class="text">{{ item.title }}</p>
<div class="cover" @click="toSet(3, i)">点击更标题与链接</div> <div class="cover"
@click="toSet(3, i)">点击更标题与链接</div>
</li> </li>
</ul> </ul>
</div> </div>
@ -60,13 +81,17 @@
<div class="c-wrap"> <div class="c-wrap">
<h2 class="b-title">{{ modules[4].form.title }}</h2> <h2 class="b-title">{{ modules[4].form.title }}</h2>
<p class="intro">{{ modules[4].form.des }}</p> <p class="intro">{{ modules[4].form.des }}</p>
<div class="cover" @click="toSet(4)">点击更换标题与描述</div> <div class="cover"
@click="toSet(4)">点击更换标题与描述</div>
</div> </div>
<ul class="group"> <ul class="group">
<li v-for="(item, i) in modules[5].list" :key="i"> <li v-for="(item, i) in modules[5].list"
<img :src="item.pic" alt=""> :key="i">
<img :src="item.pic"
alt="">
<p class="text">{{ item.title }}</p> <p class="text">{{ item.title }}</p>
<div class="cover" @click="toSet(5, i)">点击更改图片标题与链接</div> <div class="cover"
@click="toSet(5, i)">点击更改图片标题与链接</div>
</li> </li>
</ul> </ul>
</div> </div>
@ -77,11 +102,13 @@
<div class="c-wrap"> <div class="c-wrap">
<h2 class="b-title">{{ modules[6].form.title }}</h2> <h2 class="b-title">{{ modules[6].form.title }}</h2>
<p class="intro">{{ modules[6].form.des }}</p> <p class="intro">{{ modules[6].form.des }}</p>
<div class="cover" @click="toSet(6)">点击更换标题与描述</div> <div class="cover"
@click="toSet(6)">点击更换标题与描述</div>
</div> </div>
<ul class="news"> <ul class="news">
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" alt=""> <img src="https://huorantech.com/images/home/3.png"
alt="">
<div class="texts"> <div class="texts">
<h6>2022 New Year Message from President Sun Dongbai</h6> <h6>2022 New Year Message from President Sun Dongbai</h6>
<p class="des">2021 is another challenging year for the Institute of Advanced Science Facilities, Shenzhen (IASF)</p> <p class="des">2021 is another challenging year for the Institute of Advanced Science Facilities, Shenzhen (IASF)</p>
@ -89,7 +116,8 @@
</div> </div>
</li> </li>
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" alt=""> <img src="https://huorantech.com/images/home/3.png"
alt="">
<div class="texts"> <div class="texts">
<h6>2022 New Year Message from President Sun Dongbai</h6> <h6>2022 New Year Message from President Sun Dongbai</h6>
<p class="des">2021 is another challenging year for the Institute of Advanced Science Facilities, Shenzhen (IASF)</p> <p class="des">2021 is another challenging year for the Institute of Advanced Science Facilities, Shenzhen (IASF)</p>
@ -97,7 +125,8 @@
</div> </div>
</li> </li>
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" alt=""> <img src="https://huorantech.com/images/home/3.png"
alt="">
<div class="texts"> <div class="texts">
<h6>2022 New Year Message from President Sun Dongbai</h6> <h6>2022 New Year Message from President Sun Dongbai</h6>
<p class="des">2021 is another challenging year for the Institute of Advanced Science Facilities, Shenzhen (IASF)</p> <p class="des">2021 is another challenging year for the Institute of Advanced Science Facilities, Shenzhen (IASF)</p>
@ -105,7 +134,8 @@
</div> </div>
</li> </li>
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" alt=""> <img src="https://huorantech.com/images/home/3.png"
alt="">
<div class="texts"> <div class="texts">
<h6>2022 New Year Message from President Sun Dongbai</h6> <h6>2022 New Year Message from President Sun Dongbai</h6>
<p class="des">2021 is another challenging year for the Institute of Advanced Science Facilities, Shenzhen (IASF)</p> <p class="des">2021 is another challenging year for the Institute of Advanced Science Facilities, Shenzhen (IASF)</p>
@ -113,7 +143,8 @@
</div> </div>
</li> </li>
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" alt=""> <img src="https://huorantech.com/images/home/3.png"
alt="">
<div class="texts"> <div class="texts">
<h6>2022 New Year Message from President Sun Dongbai</h6> <h6>2022 New Year Message from President Sun Dongbai</h6>
<p class="des">2021 is another challenging year for the Institute of Advanced Science Facilities, Shenzhen (IASF)</p> <p class="des">2021 is another challenging year for the Institute of Advanced Science Facilities, Shenzhen (IASF)</p>
@ -121,20 +152,25 @@
</div> </div>
</li> </li>
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" alt=""> <img src="https://huorantech.com/images/home/3.png"
alt="">
<div class="texts"> <div class="texts">
<h6>2022 New Year Message from President Sun Dongbai</h6> <h6>2022 New Year Message from President Sun Dongbai</h6>
<p class="des">2021 is another challenging year for the Institute of Advanced Science Facilities, Shenzhen (IASF)</p> <p class="des">2021 is another challenging year for the Institute of Advanced Science Facilities, Shenzhen (IASF)</p>
<span class="meta">2022.08.12</span> <span class="meta">2022.08.12</span>
</div> </div>
</li> </li>
<div class="cover" @click="toSet(7)">点击更换标题与描述</div> <div class="cover"
@click="toSet(7)">点击更换标题与描述</div>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
<Module ref="module" :data.sync="curData" :visible.sync="diaVisible" @moduleSubmit="moduleSubmit" /> <Module ref="module"
:data.sync="curData"
:visible.sync="diaVisible"
@moduleSubmit="moduleSubmit" />
</div> </div>
</template> </template>
@ -143,12 +179,12 @@ import mixins from '@/mixins/page'
import Modules from '@/const/modules' import Modules from '@/const/modules'
export default { export default {
mixins: [mixins], mixins: [mixins],
data() { data () {
return { return {
modules: Modules.application modules: Modules.application
} }
}, },
mounted() { mounted () {
this.$store.commit('user/setCrumbs', [ this.$store.commit('user/setCrumbs', [
{ {
name: '站点管理', name: '站点管理',
@ -174,141 +210,143 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "../../../styles/page/page.scss"; @import '../../../styles/page/page.scss';
.history { .history {
h2 { h2 {
font-size: 30px; font-size: 30px;
color: #333; color: #333;
} }
.texts { .texts {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
padding: 82px 57px 30px; padding: 82px 57px 30px;
margin-top: 20px; margin-top: 20px;
background-color: #fff; background-color: #fff;
border-radius: 100px 0px 0px 0px; border-radius: 100px 0px 0px 0px;
} }
.left { .left {
width: 695px; width: 695px;
} }
.des { .des {
margin: 20px 0; margin: 20px 0;
font-size: 22px; font-size: 22px;
color: #181818; color: #181818;
line-height: 31px; line-height: 31px;
} }
.bg { .bg {
margin: -122px 0 0 0; margin: -122px 0 0 0;
} }
} }
.app { .app {
display: flex;
flex-wrap: wrap;
li {
position: relative;
display: flex; display: flex;
flex-direction: column; flex-wrap: wrap;
justify-content: center; li {
align-items: center; position: relative;
width: 368px; display: flex;
height: 252px; flex-direction: column;
margin: 0 14px 14px 0; justify-content: center;
&:first-child { align-items: center;
width: 750px; width: 368px;
height: 252px;
margin: 0 14px 14px 0;
&:first-child {
width: 750px;
}
&:nth-child(3),
&:nth-child(7),
&:nth-child(10) {
margin-right: 0;
}
&:nth-child(9) {
width: 563px;
}
&:nth-child(10) {
width: 555px;
}
} }
&:nth-child(3), &:nth-child(7), &:nth-child(10) { .bg {
margin-right: 0; position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
} }
&:nth-child(9) { .icon {
width: 563px; position: relative;
} }
&:nth-child(10) { .text {
width: 555px; position: relative;
margin-top: 20px;
font-size: 32px;
color: #fff;
} }
}
.bg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.icon {
position: relative;
}
.text {
position: relative;
margin-top: 20px;
font-size: 32px;
color: #fff;
}
} }
.group { .group {
display: flex;
flex-wrap: wrap;
li {
position: relative;
width: 448px;
margin: 0 28px 39px 0;
&:nth-child(3n) {
margin-right: 0;
}
}
img {
width: 100%;
height: 353px;
}
.text {
display: flex; display: flex;
justify-content: center; flex-wrap: wrap;
align-items: center; li {
height: 143px; position: relative;
font-size: 30px; width: 448px;
font-family: SFProDisplay-Bold, SFProDisplay; margin: 0 28px 39px 0;
font-weight: bold; &:nth-child(3n) {
line-height: 40px; margin-right: 0;
text-align: center; }
color: #272727; }
background-color: #F5F5F5; img {
} width: 100%;
height: 353px;
}
.text {
display: flex;
justify-content: center;
align-items: center;
height: 143px;
font-size: 30px;
font-family: SFProDisplay-Bold, SFProDisplay;
font-weight: bold;
line-height: 40px;
text-align: center;
color: #272727;
background-color: #f5f5f5;
}
} }
.news-block { .news-block {
background: url(../../../assets/images/info-bg.png) 0 0/100% 100% no-repeat; background: url(../../../assets/images/info-bg.png) 0 0/100% 100% no-repeat;
} }
.news { .news {
position: relative; position: relative;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
li { li {
display: inline-flex; display: inline-flex;
width: 686px; width: 686px;
padding: 34px; padding: 34px;
margin-bottom: 28px; margin-bottom: 28px;
background-color: #fff; background-color: #fff;
&:nth-child(odd) { &:nth-child(odd) {
margin-right: 28px; margin-right: 28px;
}
}
img {
width: 237px;
height: 167px;
}
.texts {
margin-left: 34px;
}
h6 {
font-size: 18px;
color: #0648a8;
}
.des {
margin: 14px 0;
font-size: 16px;
color: #333;
line-height: 22px;
}
.meta {
font-size: 16px;
color: #999;
} }
}
img {
width: 237px;
height: 167px;
}
.texts {
margin-left: 34px;
}
h6 {
font-size: 18px;
color: #0648A8;
}
.des {
margin: 14px 0;
font-size: 16px;
color: #333;
line-height: 22px;
}
.meta {
font-size: 16px;
color: #999;
}
} }
</style> </style>

@ -136,8 +136,8 @@ export default {
} }
.block { .block {
padding: 2rem 0; padding: 2rem 0;
background: url(http://139.159.254.212/images/contactUs/3.png) 0 130px no-repeat, background: url(https://huorantech.com/images/contactUs/3.png) 0 130px no-repeat,
url(http://139.159.254.212/images/contactUs/4.png) bottom right no-repeat; url(https://huorantech.com/images/contactUs/4.png) bottom right no-repeat;
background-color: #f7f8fa; background-color: #f7f8fa;
} }
.inner { .inner {

@ -69,7 +69,8 @@
</div> </div>
<div class="unit"> <div class="unit">
<h6>{{ modules[4].form.title }}</h6> <div class="title"
v-html="modules[4].form.title"></div>
<img class="pic" <img class="pic"
:src="modules[4].form.pic" :src="modules[4].form.pic"
alt=""> alt="">
@ -123,10 +124,10 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
@import '../../../styles/page/page.scss'; @import '../../../styles/page/page.scss';
.wrap { .wrap {
background: url(http://139.159.254.212/images/device/4.png) (100% 1363px) / auto no-repeat; background: url(https://huorantech.com/images/device/4.png) (100% 1363px) / auto no-repeat;
} }
.banner { .banner {
background: url(http://139.159.254.212/images/device/13.png) 0 0/100% 100% no-repeat; background: url(https://huorantech.com/images/device/13.png) 0 0/100% 100% no-repeat;
} }
.share { .share {
position: relative; position: relative;
@ -203,7 +204,7 @@ export default {
width: 986px; width: 986px;
padding-bottom: 60px; padding-bottom: 60px;
margin: 0 auto; margin: 0 auto;
h6 { .title {
padding-left: 15px; padding-left: 15px;
margin-bottom: 15px; margin-bottom: 15px;
font-size: 20px; font-size: 20px;

@ -57,7 +57,7 @@
<div class="intro"> <div class="intro">
<img class="bg" <img class="bg"
src="http://139.159.254.212/images/device/7.png" src="https://huorantech.com/images/device/7.png"
alt=""> alt="">
<div class="c-wrap" <div class="c-wrap"
style="min-height: 700px"> style="min-height: 700px">
@ -71,7 +71,8 @@
</div> </div>
<div class="unit c-wrap"> <div class="unit c-wrap">
<h6>{{ modules[4].form.title }}</h6> <div class="title"
v-html="modules[4].form.title"></div>
<img class="pic" <img class="pic"
:src="modules[4].form.pic" :src="modules[4].form.pic"
alt=""> alt="">
@ -125,7 +126,7 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
@import '../../../styles/page/page.scss'; @import '../../../styles/page/page.scss';
.wrap { .wrap {
background: url(http://139.159.254.212/images/device/4.png) bottom right/auto no-repeat; background: url(https://huorantech.com/images/device/4.png) bottom right/auto no-repeat;
} }
.share { .share {
position: relative; position: relative;
@ -160,7 +161,7 @@ export default {
font-weight: 500; font-weight: 500;
color: #ffffff; color: #ffffff;
line-height: 38px; line-height: 38px;
background: url(http://139.159.254.212/images/device/5.png) 0 0 / cover no-repeat; background: url(https://huorantech.com/images/device/5.png) 0 0 / cover no-repeat;
} }
.des { .des {
margin-top: 25px; margin-top: 25px;
@ -195,7 +196,7 @@ export default {
width: 986px; width: 986px;
padding-bottom: 60px; padding-bottom: 60px;
margin: 0 auto; margin: 0 auto;
h6 { .title {
padding-left: 15px; padding-left: 15px;
margin-bottom: 15px; margin-bottom: 15px;
font-size: 20px; font-size: 20px;

@ -50,7 +50,7 @@
@click="toSet(2)">点击更改标题与概述</div> @click="toSet(2)">点击更改标题与概述</div>
</div> </div>
<img class="bg" <img class="bg"
src="http://139.159.254.212/images/device/10.png" src="https://huorantech.com/images/device/10.png"
alt=""> alt="">
</div> </div>
</div> </div>
@ -59,14 +59,16 @@
<div class="block intro"> <div class="block intro">
<div class="inner"> <div class="inner">
<div class="left c-wrap"> <div class="left c-wrap">
<h5>{{ modules[3].form.title }}</h5> <div class="title1"
v-html="modules[3].form.title"></div>
<img :src="modules[3].form.pic" <img :src="modules[3].form.pic"
alt=""> alt="">
<div class="cover" <div class="cover"
@click="toSet(3)">点击更改标题与图片</div> @click="toSet(3)">点击更改标题与图片</div>
</div> </div>
<div class="right c-wrap"> <div class="right c-wrap">
<h6>{{ modules[4].form.title }}</h6> <div class="title2"
v-html="modules[4].form.title"></div>
<img :src="modules[4].form.pic" <img :src="modules[4].form.pic"
alt=""> alt="">
<div class="cover" <div class="cover"
@ -194,17 +196,18 @@ export default {
width: 68%; width: 68%;
margin-left: 2%; margin-left: 2%;
} }
h5 { .title1 {
margin-bottom: 15px; margin-bottom: 0.93rem;
font-size: 20px; font-size: 0.88rem;
font-family: PingFangSC-Medium, PingFang SC; font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500; font-weight: 500;
color: #2a2a2a; color: #2a2a2a;
} }
h6 {
padding-left: 15px; .title2 {
margin-bottom: 15px; padding-left: 0.93rem;
font-size: 20px; margin-bottom: 0.93rem;
font-size: 0.88rem;
font-family: PingFangSC-Medium, PingFang SC; font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500; font-weight: 500;
color: #2a2a2a; color: #2a2a2a;

@ -127,8 +127,8 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
@import '../../../../../styles/page/page.scss'; @import '../../../../../styles/page/page.scss';
.wrap { .wrap {
background: url(http://139.159.254.212/images/overviewDevHistory/1.png) (right 505px) / auto no-repeat, background: url(https://huorantech.com/images/overviewDevHistory/1.png) (right 505px) / auto no-repeat,
url(http://139.159.254.212/images/overviewDevHistory/2.png) (left bottom) / auto no-repeat; url(https://huorantech.com/images/overviewDevHistory/2.png) (left bottom) / auto no-repeat;
} }
.tabs { .tabs {
display: flex; display: flex;
@ -193,7 +193,7 @@ export default {
content: ''; content: '';
width: 18px; width: 18px;
height: 18px; height: 18px;
background: url(http://139.159.254.212/images/overviewDevHistory/3.png) no-repeat; background: url(https://huorantech.com/images/overviewDevHistory/3.png) no-repeat;
margin-right: 20px; margin-right: 20px;
} }
} }

@ -46,7 +46,7 @@
<img style="width: 50%;height: 410px;overflow: hidden;" <img style="width: 50%;height: 410px;overflow: hidden;"
width="100%" width="100%"
height="480" height="480"
src="http://139.159.254.212/images/about/5.png" src="https://huorantech.com/images/about/5.png"
alt=""> alt="">
<div class="right"> <div class="right">
<h6>IASF is driven to serve the Science and industry, and solve grand challenges through research and innovation. We are open and creative</h6> <h6>IASF is driven to serve the Science and industry, and solve grand challenges through research and innovation. We are open and creative</h6>
@ -57,7 +57,7 @@
<ul class="card"> <ul class="card">
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/9.png" src="https://huorantech.com/images/about/9.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<p class="meta">2022-09-09 | Research</p> <p class="meta">2022-09-09 | Research</p>
@ -69,7 +69,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/10.png" src="https://huorantech.com/images/about/10.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<p class="meta">2022-09-09 | Research</p> <p class="meta">2022-09-09 | Research</p>
@ -81,7 +81,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/11.png" src="https://huorantech.com/images/about/11.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<p class="meta">2022-09-09 | Research</p> <p class="meta">2022-09-09 | Research</p>
@ -142,14 +142,14 @@
<div class="left"> <div class="left">
<img width="100%" <img width="100%"
height="100%" height="100%"
src="http://139.159.254.212/images/about/9.png" src="https://huorantech.com/images/about/9.png"
alt=""> alt="">
<div class="text">关于2021年度深圳综合粒子设施研究院采购意向公开表</div> <div class="text">关于2021年度深圳综合粒子设施研究院采购意向公开表</div>
</div> </div>
<ul class="card-list"> <ul class="card-list">
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/10.png" src="https://huorantech.com/images/about/10.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>专业技术培训 | 自由电子激光装置中的结构</h6> <h6>专业技术培训 | 自由电子激光装置中的结构</h6>
@ -176,7 +176,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/10.png" src="https://huorantech.com/images/about/10.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>专业技术培训 | 自由电子激光装置中的结构</h6> <h6>专业技术培训 | 自由电子激光装置中的结构</h6>
@ -203,7 +203,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/10.png" src="https://huorantech.com/images/about/10.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>专业技术培训 | 自由电子激光装置中的结构</h6> <h6>专业技术培训 | 自由电子激光装置中的结构</h6>

@ -45,7 +45,8 @@
</div> </div>
<div class="texts"> <div class="texts">
<h6>{{ modules[1].form.title }}</h6> <h6>{{ modules[1].form.title }}</h6>
<div class="des">{{ modules[1].form.des }}</div> <div class="des"
v-html="modules[1].form.des"></div>
</div> </div>
<div class="cover" <div class="cover"
@click="toSet(1)">点击更改图片标题概述与链接</div> @click="toSet(1)">点击更改图片标题概述与链接</div>
@ -59,7 +60,8 @@
</div> </div>
<div class="texts"> <div class="texts">
<h6>{{ modules[2].form.title }}</h6> <h6>{{ modules[2].form.title }}</h6>
<div class="des">{{ modules[2].form.des }}</div> <div class="des"
v-html="modules[2].form.des"></div>
</div> </div>
<div class="cover" <div class="cover"
@click="toSet(2)">点击更改图片标题概述与链接</div> @click="toSet(2)">点击更改图片标题概述与链接</div>
@ -73,7 +75,8 @@
</div> </div>
<div class="texts"> <div class="texts">
<h6>{{ modules[3].form.title }}</h6> <h6>{{ modules[3].form.title }}</h6>
<div class="des">{{ modules[3].form.des }}</div> <div class="des"
v-html="modules[3].form.des"></div>
</div> </div>
<div class="cover" <div class="cover"
@click="toSet(3)">点击更改图片标题概述与链接</div> @click="toSet(3)">点击更改图片标题概述与链接</div>
@ -160,7 +163,7 @@ export default {
padding: 42px; padding: 42px;
margin-bottom: 36px; margin-bottom: 36px;
color: #333; color: #333;
background: #f5f5f5 url(http://139.159.254.212/images/overviewSetup/1.png) right bottom/auto no-repeat; background: #f5f5f5 url(https://huorantech.com/images/overviewSetup/1.png) right bottom/auto no-repeat;
transition: 0.5s; transition: 0.5s;
&:nth-child(even) { &:nth-child(even) {
justify-content: space-between; justify-content: space-between;

@ -46,7 +46,7 @@
@click="toSet(1)">点击更换标题与描述</div> @click="toSet(1)">点击更换标题与描述</div>
</div> </div>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/overviewSetup/1.png" src="https://huorantech.com/images/overviewSetup/1.png"
alt=""> alt="">
</div> </div>
<div class="lg-bg c-wrap"> <div class="lg-bg c-wrap">

@ -40,7 +40,7 @@
<h6> <h6>
{{ modules[1].form.title }} {{ modules[1].form.title }}
<img class="title-bg" <img class="title-bg"
src="http://139.159.254.212/images/overviewIntro/2.png" src="https://huorantech.com/images/overviewIntro/2.png"
alt=""> alt="">
</h6> </h6>
<p class="text" <p class="text"
@ -50,7 +50,7 @@
</div> </div>
<div class="lg-bg"> <div class="lg-bg">
<img width="100%" <img width="100%"
src="http://139.159.254.212/images/estate/3.png" src="https://huorantech.com/images/estate/3.png"
alt=""> alt="">
</div> </div>
</div> </div>
@ -131,7 +131,7 @@ export default {
min-height: 500px; min-height: 500px;
padding: 80px 86px 29px 597px; padding: 80px 86px 29px 597px;
margin: 0 auto 200px; margin: 0 auto 200px;
background: url(http://139.159.254.212/images/estate/2.png) 0 0/100% 100% no-repeat; background: url(https://huorantech.com/images/estate/2.png) 0 0/100% 100% no-repeat;
border-radius: 160px; border-radius: 160px;
h6 { h6 {
position: relative; position: relative;

@ -171,25 +171,25 @@ export default {
color: #333; color: #333;
text-align: center; text-align: center;
@include ellipsis(); @include ellipsis();
background: url(http://139.159.254.212/images/governance/3.png) 0 0 / cover no-repeat; background: url(https://huorantech.com/images/governance/3.png) 0 0 / cover no-repeat;
cursor: pointer; cursor: pointer;
&:nth-child(2) { &:nth-child(2) {
background-image: url(http://139.159.254.212/images/governance/4.png); background-image: url(https://huorantech.com/images/governance/4.png);
} }
&:nth-child(3) { &:nth-child(3) {
background-image: url(http://139.159.254.212/images/governance/5.png); background-image: url(https://huorantech.com/images/governance/5.png);
} }
&:nth-child(4) { &:nth-child(4) {
background-image: url(http://139.159.254.212/images/governance/4.png); background-image: url(https://huorantech.com/images/governance/4.png);
} }
&:nth-child(5) { &:nth-child(5) {
background-image: url(http://139.159.254.212/images/governance/7.png); background-image: url(https://huorantech.com/images/governance/7.png);
} }
&:nth-child(6) { &:nth-child(6) {
background-image: url(http://139.159.254.212/images/governance/6.png); background-image: url(https://huorantech.com/images/governance/6.png);
} }
&:nth-child(8) { &:nth-child(8) {
background-image: url(http://139.159.254.212/images/governance/6.png); background-image: url(https://huorantech.com/images/governance/6.png);
} }
&:nth-child(3n) { &:nth-child(3n) {
margin-right: 0; margin-right: 0;

@ -81,7 +81,7 @@
</div> </div>
<ul class="news"> <ul class="news">
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" <img src="https://huorantech.com/images/home/3.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>2022 New Year Message from President Sun Dongbai</h6> <h6>2022 New Year Message from President Sun Dongbai</h6>
@ -90,7 +90,7 @@
</div> </div>
</li> </li>
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" <img src="https://huorantech.com/images/home/3.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>2022 New Year Message from President Sun Dongbai</h6> <h6>2022 New Year Message from President Sun Dongbai</h6>
@ -99,7 +99,7 @@
</div> </div>
</li> </li>
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" <img src="https://huorantech.com/images/home/3.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>2022 New Year Message from President Sun Dongbai</h6> <h6>2022 New Year Message from President Sun Dongbai</h6>
@ -108,7 +108,7 @@
</div> </div>
</li> </li>
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" <img src="https://huorantech.com/images/home/3.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>2022 New Year Message from President Sun Dongbai</h6> <h6>2022 New Year Message from President Sun Dongbai</h6>
@ -117,7 +117,7 @@
</div> </div>
</li> </li>
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" <img src="https://huorantech.com/images/home/3.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>2022 New Year Message from President Sun Dongbai</h6> <h6>2022 New Year Message from President Sun Dongbai</h6>
@ -126,7 +126,7 @@
</div> </div>
</li> </li>
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" <img src="https://huorantech.com/images/home/3.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>2022 New Year Message from President Sun Dongbai</h6> <h6>2022 New Year Message from President Sun Dongbai</h6>

@ -85,7 +85,7 @@
<img style="width: 50%;height: 410px;overflow: hidden;" <img style="width: 50%;height: 410px;overflow: hidden;"
width="100%" width="100%"
height="480" height="480"
src="http://139.159.254.212/images/about/5.png" src="https://huorantech.com/images/about/5.png"
alt=""> alt="">
<div class="right"> <div class="right">
<h6>IASF is driven to serve the Science and industry, and solve grand challenges through research and innovation. We are open and creative</h6> <h6>IASF is driven to serve the Science and industry, and solve grand challenges through research and innovation. We are open and creative</h6>
@ -97,7 +97,7 @@
<ul class="news"> <ul class="news">
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/5.png" src="https://huorantech.com/images/about/5.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<p class="meta">2022-07-24 | 综合新闻</p> <p class="meta">2022-07-24 | 综合新闻</p>
@ -109,7 +109,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/5.png" src="https://huorantech.com/images/about/5.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<p class="meta">2022-07-24 | 建设进展</p> <p class="meta">2022-07-24 | 建设进展</p>
@ -121,7 +121,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/5.png" src="https://huorantech.com/images/about/5.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<p class="meta">2022-07-24 | 学术动态</p> <p class="meta">2022-07-24 | 学术动态</p>
@ -139,7 +139,7 @@
<ul class="news-carousel"> <ul class="news-carousel">
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/5.png" src="https://huorantech.com/images/about/5.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>媒体关注</h6> <h6>媒体关注</h6>
@ -152,7 +152,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/5.png" src="https://huorantech.com/images/about/5.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>媒体关注</h6> <h6>媒体关注</h6>
@ -165,7 +165,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/5.png" src="https://huorantech.com/images/about/5.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>媒体关注</h6> <h6>媒体关注</h6>
@ -192,7 +192,7 @@
<ul class="people"> <ul class="people">
<li class="wow fadeInDown"> <li class="wow fadeInDown">
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/careers/6.png" src="https://huorantech.com/images/careers/6.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>王晓凡</h6> <h6>王晓凡</h6>
@ -203,7 +203,7 @@
</li> </li>
<li class="wow fadeInDown"> <li class="wow fadeInDown">
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/careers/7.png" src="https://huorantech.com/images/careers/7.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>王晓凡</h6> <h6>王晓凡</h6>
@ -214,7 +214,7 @@
</li> </li>
<li class="wow fadeInDown"> <li class="wow fadeInDown">
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/careers/8.png" src="https://huorantech.com/images/careers/8.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>王晓凡</h6> <h6>王晓凡</h6>
@ -329,7 +329,7 @@
<ul class="tools"> <ul class="tools">
<li v-for="(item, i) in modules[19].list" <li v-for="(item, i) in modules[19].list"
:key="i"> :key="i">
<img :src="'http://139.159.254.212/images/iasf/icon' + (i < 4 ? i + 1 : 1) + '.png'" <img :src="'https://huorantech.com/images/iasf/icon' + (i < 4 ? i + 1 : 1) + '.png'"
alt="" alt=""
class="icon"> class="icon">
{{ item.title }} {{ item.title }}

@ -147,7 +147,7 @@
</div> </div>
<ul class="news"> <ul class="news">
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" <img src="https://huorantech.com/images/home/3.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<span class="meta">2022-07-24 | 综合新闻</span> <span class="meta">2022-07-24 | 综合新闻</span>
@ -155,7 +155,7 @@
</div> </div>
</li> </li>
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" <img src="https://huorantech.com/images/home/3.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<span class="meta">2022-07-24 | 综合新闻</span> <span class="meta">2022-07-24 | 综合新闻</span>
@ -163,7 +163,7 @@
</div> </div>
</li> </li>
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" <img src="https://huorantech.com/images/home/3.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<span class="meta">2022-07-24 | 综合新闻</span> <span class="meta">2022-07-24 | 综合新闻</span>
@ -171,7 +171,7 @@
</div> </div>
</li> </li>
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" <img src="https://huorantech.com/images/home/3.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<span class="meta">2022-07-24 | 综合新闻</span> <span class="meta">2022-07-24 | 综合新闻</span>
@ -179,7 +179,7 @@
</div> </div>
</li> </li>
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" <img src="https://huorantech.com/images/home/3.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<span class="meta">2022-07-24 | 综合新闻</span> <span class="meta">2022-07-24 | 综合新闻</span>
@ -187,7 +187,7 @@
</div> </div>
</li> </li>
<li> <li>
<img src="http://139.159.254.212/images/home/3.png" <img src="https://huorantech.com/images/home/3.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<span class="meta">2022-07-24 | 综合新闻</span> <span class="meta">2022-07-24 | 综合新闻</span>

@ -61,7 +61,7 @@
<th>地点</th> <th>地点</th>
<th>能量GeV</th> <th>能量GeV</th>
<th>储存环周长(m)</th> <th>储存环周长(m)</th>
<th>光束线/</th> <th>光束线</th>
<th>代际</th> <th>代际</th>
<th>发射度(nm.rad)</th> <th>发射度(nm.rad)</th>
<th>状态</th> <th>状态</th>
@ -100,10 +100,10 @@
<th>地点</th> <th>地点</th>
<th>加速器技术</th> <th>加速器技术</th>
<th>能量/GeV</th> <th>能量/GeV</th>
<th>波长范围/nm</th> <th>光子能量</th>
<th>重复频率/Hz</th> <th>重复频率/Hz</th>
<th>设施长度/m</th> <th>设施长度/m</th>
<th>实验站/</th> <th>实验站</th>
<th>状态</th> <th>状态</th>
<th>建成时间</th> <th>建成时间</th>
</tr> </tr>
@ -132,6 +132,12 @@
<div class="cover" <div class="cover"
@click="toSet(3)">点击更换表格</div> @click="toSet(3)">点击更换表格</div>
</div> </div>
<div class="c-wrap m-t-20">
<div class="copyright"
v-html="modules[4].form.des"></div>
<div class="cover"
@click="toSet(4)">点击更换描述</div>
</div>
</div> </div>
</div> </div>
</div> </div>

@ -42,10 +42,10 @@
<div class="block"> <div class="block">
<div class="inner"> <div class="inner">
<div class="banner"> <div class="news-banner">
<img width="100%" <img width="100%"
height="480" height="480"
src="http://139.159.254.212/images/about/5.png" src="https://huorantech.com/images/about/5.png"
alt=""> alt="">
<div class="right"> <div class="right">
<h6>IASF is driven to serve the Science and industry, and solve grand challenges through research and innovation. We are open and creative</h6> <h6>IASF is driven to serve the Science and industry, and solve grand challenges through research and innovation. We are open and creative</h6>
@ -56,7 +56,7 @@
<ul class="card"> <ul class="card">
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/9.png" src="https://huorantech.com/images/about/9.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<p class="meta">2022-09-09 | Research</p> <p class="meta">2022-09-09 | Research</p>
@ -68,7 +68,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/10.png" src="https://huorantech.com/images/about/10.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<p class="meta">2022-09-09 | Research</p> <p class="meta">2022-09-09 | Research</p>
@ -80,7 +80,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/11.png" src="https://huorantech.com/images/about/11.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<p class="meta">2022-09-09 | Research</p> <p class="meta">2022-09-09 | Research</p>
@ -107,7 +107,7 @@
<div class="left"> <div class="left">
<img width="100%" <img width="100%"
height="400" height="400"
src="http://139.159.254.212/images/about/5.png" src="https://huorantech.com/images/about/5.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>2022 New Year Messag President Sun Dongbai.</h6> <h6>2022 New Year Messag President Sun Dongbai.</h6>
@ -118,13 +118,13 @@
<ul class="show-card"> <ul class="show-card">
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/9.png" src="https://huorantech.com/images/about/9.png"
alt=""> alt="">
<div class="des">Comprises the installation and nanostructuri</div> <div class="des">Comprises the installation and nanostructuri</div>
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/10.png" src="https://huorantech.com/images/about/10.png"
alt=""> alt="">
<div class="des">Prof. Stephan V. Roth's research</div> <div class="des">Prof. Stephan V. Roth's research</div>
</li> </li>
@ -132,7 +132,7 @@
<ul class="card-list"> <ul class="card-list">
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/9.png" src="https://huorantech.com/images/about/9.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>Hold doctorates or the highest degree in their field</h6> <h6>Hold doctorates or the highest degree in their field</h6>
@ -141,7 +141,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/10.png" src="https://huorantech.com/images/about/10.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>This 2019 image depicted a Centers for Disease</h6> <h6>This 2019 image depicted a Centers for Disease</h6>
@ -150,7 +150,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/11.png" src="https://huorantech.com/images/about/11.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>Browse premium related images on iStock</h6> <h6>Browse premium related images on iStock</h6>
@ -177,7 +177,7 @@
<div class="left"> <div class="left">
<img width="100%" <img width="100%"
height="558" height="558"
src="http://139.159.254.212/images/about/5.png" src="https://huorantech.com/images/about/5.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<div class="meta"> <div class="meta">
@ -193,7 +193,7 @@
<ul class="card-list"> <ul class="card-list">
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/9.png" src="https://huorantech.com/images/about/9.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>Professional technical Free electron laser device</h6> <h6>Professional technical Free electron laser device</h6>
@ -219,7 +219,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/9.png" src="https://huorantech.com/images/about/9.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>Professional technical Free electron laser device</h6> <h6>Professional technical Free electron laser device</h6>
@ -245,7 +245,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/9.png" src="https://huorantech.com/images/about/9.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>Professional technical Free electron laser device</h6> <h6>Professional technical Free electron laser device</h6>
@ -271,7 +271,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/9.png" src="https://huorantech.com/images/about/9.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>Professional technical Free electron laser device</h6> <h6>Professional technical Free electron laser device</h6>
@ -394,7 +394,7 @@ export default {
} }
} }
} }
.banner { .news-banner {
display: flex; display: flex;
height: auto; height: auto;
.pic { .pic {

@ -34,7 +34,7 @@
v-html="modules[1].form.des"></p> v-html="modules[1].form.des"></p>
</div> </div>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/overviewSetup/1.png" src="https://huorantech.com/images/overviewSetup/1.png"
alt=""> alt="">
<div class="cover" <div class="cover"
style="min-height: 300px;" style="min-height: 300px;"

@ -313,7 +313,7 @@ export default {
.event { .event {
position: relative; position: relative;
padding: 70px 250px 70px 60px; padding: 70px 250px 70px 60px;
background: url(http://139.159.254.212/images/overview/16.png) 0 0/100% no-repeat; background: url(https://huorantech.com/images/overview/16.png) 0 0/100% no-repeat;
h6 { h6 {
font-size: 2.2rem; font-size: 2.2rem;
font-family: PingFangSC-Medium, PingFang SC; font-family: PingFangSC-Medium, PingFang SC;

@ -132,8 +132,8 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
@import '../../../styles/page/page.scss'; @import '../../../styles/page/page.scss';
.wrap { .wrap {
background: url(http://139.159.254.212/images/overviewDevHistory/1.png) (right 505px) / auto no-repeat, background: url(https://huorantech.com/images/overviewDevHistory/1.png) (right 505px) / auto no-repeat,
url(http://139.159.254.212/images/overviewDevHistory/2.png) (left bottom) / auto no-repeat; url(https://huorantech.com/images/overviewDevHistory/2.png) (left bottom) / auto no-repeat;
background-color: #fff; background-color: #fff;
} }
.tabs { .tabs {
@ -199,7 +199,7 @@ export default {
content: ''; content: '';
width: 18px; width: 18px;
height: 18px; height: 18px;
background: url(http://139.159.254.212/images/overviewDevHistory/3.png) no-repeat; background: url(https://huorantech.com/images/overviewDevHistory/3.png) no-repeat;
margin-right: 20px; margin-right: 20px;
} }
} }

@ -35,24 +35,24 @@
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<div class="intro"> <div class="intro c-wrap">
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/overviewIntro/1.png" :src="modules[1].form.pic"
alt=""> alt="">
<div class="right c-wrap"> <div class="right">
<div class="relative"> <div class="relative">
<h6 v-html="modules[1].form.title"></h6> <h6 v-html="modules[1].form.title"></h6>
<img class="title-bg" <img class="title-bg"
src="http://139.159.254.212/images/overviewIntro/2.png" src="https://huorantech.com/images/overviewIntro/2.png"
alt=""> alt="">
</div> </div>
<div class="text" <div class="text"
v-html="modules[1].form.des"></div> v-html="modules[1].form.des"></div>
<div class="cover"
style="min-height: 300px;"
@click="toSet(1)">点击更换标题与描述</div>
</div> </div>
<div class="cover"
style="min-height: 300px;"
@click="toSet(1)">点击更换图片标题与描述</div>
</div> </div>
<div class="intro-bg"> <div class="intro-bg">
<div class="mask"></div> <div class="mask"></div>
@ -172,7 +172,7 @@ export default {
padding-top: 90px; padding-top: 90px;
color: #fff; color: #fff;
text-align: center; text-align: center;
background: url(http://139.159.254.212/images/overviewIntro/3.png) 0 0/100% 100% no-repeat; background: url(https://huorantech.com/images/overviewIntro/3.png) 0 0/100% 100% no-repeat;
.mask { .mask {
position: absolute; position: absolute;
top: 0; top: 0;

@ -42,7 +42,7 @@
v-html="modules[1].form.des"></p> v-html="modules[1].form.des"></p>
</div> </div>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/overviewSetup/1.png" src="https://huorantech.com/images/overviewSetup/1.png"
alt=""> alt="">
<div class="cover" <div class="cover"
style="min-height: 300px;" style="min-height: 300px;"

@ -0,0 +1,246 @@
<template>
<div class="wrap">
<div class="actions">
<p class="page-name">页面设置/RESEARCH</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">
<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">
<el-carousel-item v-if="item.pic && item.isEnable"
:key="i">
<img width="100%"
height="100%"
:src="item.pic"
alt="">
</el-carousel-item>
</template>
</el-carousel>
<div class="cover"
@click="toSet(0)">点击更换banner与链接</div>
</div>
<div class="block">
<div class="c-wrap">
<h2 class="b-title">{{ modules[1].form.title }}</h2>
<p class="intro">{{ modules[1].form.des }}</p>
<div class="cover"
@click="toSet(1)">点击更换标题与描述</div>
</div>
<ul class="area">
<template v-for="(item, i) in modules[2].list">
<li :key="i">
<img :src="item.pic"
alt=""
class="pic">
<div class="texts">
<img :src="require('@/assets/images/research/res' + (i + 1) + '-1.png')"
alt=""
class="icon">
<h6>{{ item.title }}</h6>
<p class="des">{{ item.des }}</p>
</div>
<div class="cover"
@click="toSet(2, i)">点击更改图片标题概述与链接</div>
</li>
</template>
</ul>
</div>
<div class="block">
<div class="inner">
<div class="c-wrap">
<h2 class="b-title">{{ modules[3].form.title }}</h2>
<p class="intro">{{ modules[3].form.des }}</p>
<div class="cover"
@click="toSet(3)">点击更换标题与描述</div>
</div>
<ul class="group">
<li v-for="(item, i) in modules[4].list"
:key="i">
<img :src="item.pic"
alt="">
<p class="text">{{ item.title }}</p>
<div class="cover"
@click="toSet(4, i)">点击更改图片标题与链接</div>
</li>
</ul>
</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.research
}
},
mounted () {
this.$store.commit('user/setCrumbs', [
{
name: '站点管理',
route: '/site'
},
{
name: '内容管理',
route: '/column'
},
{
name: '栏目管理',
route: '/column'
},
{
name: 'RESEARCH'
}
])
},
methods: {
}
};
</script>
<style lang="scss" scoped>
@import '../../../styles/page/page.scss';
.area {
display: flex;
li {
position: relative;
width: 19%;
height: 653px;
color: #fff;
background: url(../../../assets/images/research/res1.png) 0 0/100% 100% no-repeat;
&:nth-child(2) {
width: 21%;
margin-top: 70px;
.texts {
background: #2b1b1c;
}
}
&:nth-child(3) {
.texts {
background: #009c91;
}
}
&:nth-child(4) {
margin-top: 70px;
.texts {
background: #005388;
}
}
&:nth-child(5) {
width: 22%;
.texts {
background: #9a4e10;
}
}
}
.pic {
width: 100%;
height: 443px;
}
.texts {
width: 100%;
height: 210px;
padding: 20px 40px;
background: #08577b;
}
h6 {
font-size: 30px;
white-space: nowrap;
}
.des {
font-size: 22px;
color: rgba(255, 255, 255, 0.55);
}
}
.group {
display: flex;
flex-wrap: wrap;
li {
position: relative;
width: 448px;
margin: 0 28px 39px 0;
&:nth-child(3n) {
margin-right: 0;
}
}
img {
width: 100%;
height: 353px;
}
.text {
display: flex;
justify-content: center;
align-items: center;
height: 143px;
padding: 0 30px;
font-size: 30px;
font-family: SFProDisplay-Bold, SFProDisplay;
font-weight: bold;
line-height: 40px;
text-align: center;
color: #272727;
background-color: #f5f5f5;
}
}
.news {
display: flex;
justify-content: center;
flex-wrap: wrap;
li {
position: relative;
width: 448px;
padding: 11px;
margin-right: 28px;
color: #333;
background-color: #fff;
box-shadow: 0px 5px 20px 0px rgba(98, 117, 163, 0.08);
border-radius: 10px;
&:nth-child(3n) {
margin-right: 0;
}
&:hover {
color: #fff;
background-color: #0252d9;
}
}
img {
width: 427px;
height: 481px;
}
.texts {
padding: 0 18px 50px;
}
h6 {
margin: 35px 0 12px;
font-size: 24px;
line-height: 33px;
}
.des {
font-size: 18px;
line-height: 26px;
}
}
</style>

@ -33,20 +33,20 @@
<ul class="teams"> <ul class="teams">
<li> <li>
<div class="line"> <div class="line">
<img src="http://139.159.254.212/images/researchTeam/3.png" <img src="https://huorantech.com/images/researchTeam/3.png"
alt="" alt=""
class="icon"> class="icon">
<span class="bold">姓名</span> <span class="bold">姓名</span>
<span class="val">/ 岗位</span> <span class="val">/ 岗位</span>
</div> </div>
<div class="line"> <div class="line">
<img src="http://139.159.254.212/images/researchTeam/4.png" <img src="https://huorantech.com/images/researchTeam/4.png"
alt="" alt=""
class="icon"> class="icon">
<span class="text">专业 超低温总体</span> <span class="text">专业 超低温总体</span>
</div> </div>
<div class="line"> <div class="line">
<img src="http://139.159.254.212/images/researchTeam/5.png" <img src="https://huorantech.com/images/researchTeam/5.png"
alt="" alt=""
class="icon"> class="icon">
<span class="text">荣誉 杰青 万人</span> <span class="text">荣誉 杰青 万人</span>
@ -143,7 +143,7 @@ export default {
width: calc((100% - 10px) / 2); width: calc((100% - 10px) / 2);
padding: 20px 30px; padding: 20px 30px;
margin: 0 10px 10px 0; margin: 0 10px 10px 0;
background: url(http://139.159.254.212/images/researchTeam/2.png) 0 0 / cover no-repeat; background: url(https://huorantech.com/images/researchTeam/2.png) 0 0 / cover no-repeat;
&:nth-child(even) { &:nth-child(even) {
margin-right: 0; margin-right: 0;
} }

@ -45,7 +45,7 @@
<div class="sfel-banner"> <div class="sfel-banner">
<img width="100%" <img width="100%"
height="480" height="480"
src="http://139.159.254.212/images/about/5.png" src="https://huorantech.com/images/about/5.png"
alt=""> alt="">
<div class="right"> <div class="right">
<h6>IASF is driven to serve the Science and industry, and solve grand challenges through research and innovation. We are open and creative</h6> <h6>IASF is driven to serve the Science and industry, and solve grand challenges through research and innovation. We are open and creative</h6>
@ -56,7 +56,7 @@
<ul class="card"> <ul class="card">
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/9.png" src="https://huorantech.com/images/about/9.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<p class="meta">2022-09-09 | Research</p> <p class="meta">2022-09-09 | Research</p>
@ -68,7 +68,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/10.png" src="https://huorantech.com/images/about/10.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<p class="meta">2022-09-09 | Research</p> <p class="meta">2022-09-09 | Research</p>
@ -80,7 +80,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/11.png" src="https://huorantech.com/images/about/11.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<p class="meta">2022-09-09 | Research</p> <p class="meta">2022-09-09 | Research</p>
@ -157,7 +157,7 @@
<ul class="card-list"> <ul class="card-list">
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/9.png" src="https://huorantech.com/images/about/9.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>喜讯储存环三次谐波腔的带束实验验证及超导高频频腔</h6> <h6>喜讯储存环三次谐波腔的带束实验验证及超导高频频腔</h6>
@ -166,7 +166,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/9.png" src="https://huorantech.com/images/about/9.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>光明区总工会为一线科研人员送上新春祝福</h6> <h6>光明区总工会为一线科研人员送上新春祝福</h6>
@ -175,7 +175,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/9.png" src="https://huorantech.com/images/about/9.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>深圳综合粒子设施研究院与中国科学院</h6> <h6>深圳综合粒子设施研究院与中国科学院</h6>
@ -210,14 +210,14 @@
<div class="left"> <div class="left">
<img width="100%" <img width="100%"
height="100%" height="100%"
src="http://139.159.254.212/images/about/9.png" src="https://huorantech.com/images/about/9.png"
alt=""> alt="">
<div class="text">关于2021年度深圳综合粒子设施研究院采购意向公开表</div> <div class="text">关于2021年度深圳综合粒子设施研究院采购意向公开表</div>
</div> </div>
<ul class="card-list"> <ul class="card-list">
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/10.png" src="https://huorantech.com/images/about/10.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>专业技术培训 | 自由电子激光装置中的结构</h6> <h6>专业技术培训 | 自由电子激光装置中的结构</h6>
@ -244,7 +244,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/10.png" src="https://huorantech.com/images/about/10.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>专业技术培训 | 自由电子激光装置中的结构</h6> <h6>专业技术培训 | 自由电子激光装置中的结构</h6>
@ -271,7 +271,7 @@
</li> </li>
<li> <li>
<img class="pic" <img class="pic"
src="http://139.159.254.212/images/about/10.png" src="https://huorantech.com/images/about/10.png"
alt=""> alt="">
<div class="texts"> <div class="texts">
<h6>专业技术培训 | 自由电子激光装置中的结构</h6> <h6>专业技术培训 | 自由电子激光装置中的结构</h6>
@ -322,7 +322,7 @@
style="margin-right: 20px"> style="margin-right: 20px">
<img width="100%" <img width="100%"
height="100%" height="100%"
src="http://139.159.254.212/images/about/9.png" src="https://huorantech.com/images/about/9.png"
alt=""> alt="">
<div class="text">关于2021年度深圳综合粒子设施研究院采购意向公开表</div> <div class="text">关于2021年度深圳综合粒子设施研究院采购意向公开表</div>
</div> </div>
@ -330,7 +330,7 @@
data-wow-delay="0.5s"> data-wow-delay="0.5s">
<img width="100%" <img width="100%"
height="100%" height="100%"
src="http://139.159.254.212/images/about/9.png" src="https://huorantech.com/images/about/9.png"
alt=""> alt="">
<div class="text">关于2021年度深圳综合粒子设施研究院采购意向公开表</div> <div class="text">关于2021年度深圳综合粒子设施研究院采购意向公开表</div>
</div> </div>

@ -0,0 +1,876 @@
<template>
<div class="wrap">
<div class="actions">
<p class="page-name">页面设置/SFEL</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">
<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">
<el-carousel-item v-if="item.pic && item.isEnable"
:key="i">
<img width="100%"
height="100%"
:src="item.pic"
alt="">
</el-carousel-item>
</template>
</el-carousel>
<div class="cover"
@click="toSet(0)">点击更换banner与链接</div>
</div>
<div class="block banner-block">
<div class="inner">
<div class="title">
<h5>
{{ modules[1].form.title }}
<span class="sub">{{ modules[1].form.subTitle }}</span>
</h5>
<span class="more">MORE</span>
<div class="cover"
@click="toSet(1)">点击更换标题与小标题</div>
</div>
<div class="c-wrap">
<div class="sfel-banner">
<img width="100%"
height="480"
src="https://huorantech.com/images/about/5.png"
alt="">
<div class="right">
<h6>IASF is driven to serve the Science and industry, and solve grand challenges through research and innovation. We are open and creative</h6>
<div class="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 in Japan. And the Guangdong-Hong Kong-Macao Greater Bay </div>
<p class="meta">2022-07-24 | Research</p>
</div>
</div>
<ul class="card">
<li>
<img class="pic"
src="https://huorantech.com/images/about/9.png"
alt="">
<div class="texts">
<p class="meta">2022-09-09 | Research</p>
<div class="des">IASF is driven to serve the Science and industry, and solve grand </div>
<img class="arrow"
src="@/assets/images/arrow.png"
alt="">
</div>
</li>
<li>
<img class="pic"
src="https://huorantech.com/images/about/10.png"
alt="">
<div class="texts">
<p class="meta">2022-09-09 | Research</p>
<div class="des">IASF is driven to serve the Science and industry, and solve grand </div>
<img class="arrow"
src="@/assets/images/arrow.png"
alt="">
</div>
</li>
<li>
<img class="pic"
src="https://huorantech.com/images/about/11.png"
alt="">
<div class="texts">
<p class="meta">2022-09-09 | Research</p>
<div class="des">IASF is driven to serve the Science and industry, and solve grand </div>
<img class="arrow"
src="@/assets/images/arrow.png"
alt="">
</div>
</li>
</ul>
<div class="cover"
@click="toSet(2)">关联栏目</div>
</div>
</div>
</div>
<div class="block notice">
<div class="inner lg">
<div class="title">
<h5>
{{ modules[3].form.title }}
<span class="sub">{{ modules[3].form.subTitle }}</span>
</h5>
<span class="more">MORE</span>
<div class="cover"
@click="toSet(3)">点击更换标题与小标题</div>
</div>
<div class="shop-shows c-wrap">
<div class="left wow fadeInLeft"
data-wow-delay="0.5s">
<el-carousel height="432px">
<el-carousel-item>
<div class="item">
<img src="@/assets/images/survey3.png"
alt="">
<p class="text">关于2021年度深圳综合粒子设施研究院采购意向公开表</p>
</div>
</el-carousel-item>
<el-carousel-item>
<div class="item">
<img src="@/assets/images/survey3.png"
alt="">
<p class="text">关于2021年度深圳综合粒子设施研究院采购意向公开表</p>
</div>
</el-carousel-item>
<el-carousel-item>
<div class="item">
<img src="@/assets/images/survey3.png"
alt="">
<p class="text">关于2021年度深圳综合粒子设施研究院采购意向公开表</p>
</div>
</el-carousel-item>
</el-carousel>
</div>
<div class="right wow fadeInRight"
data-wow-delay="0.5s">
<ul class="card-list">
<li>
<img class="pic"
src="https://huorantech.com/images/about/9.png"
alt="">
<div class="texts">
<h6>喜讯储存环三次谐波腔的带束实验验证及超导高频频腔</h6>
<div class="des">1月20日上午光明区总工会组织的关爱职工·情暖光明春节工会关爱活动走进深圳综合粒子设施研究院为奋战在综合性</div>
</div>
</li>
<li>
<img class="pic"
src="https://huorantech.com/images/about/9.png"
alt="">
<div class="texts">
<h6>光明区总工会为一线科研人员送上新春祝福</h6>
<div class="des">1月11日上午深圳综合粒子设施研究院与深圳大学签署战略合作框架协议深圳大学党委书记校长李清泉深圳综合粒子设施研究院与深圳大学党委</div>
</div>
</li>
<li>
<img class="pic"
src="https://huorantech.com/images/about/9.png"
alt="">
<div class="texts">
<h6>深圳综合粒子设施研究院与中国科学院</h6>
<div class="des">1月20日上午光明区总工会组织的关爱职工·情暖光明春节工会关爱活动走进深圳综合粒子设施研究院为奋战在综合性</div>
</div>
</li>
</ul>
</div>
<div class="cover"
@click="toSet(4)">关联栏目</div>
</div>
</div>
</div>
<div class="block media">
<div class="inner">
<div class="title">
<h5>
{{ modules[7].form.title }}
<span class="sub">{{ modules[7].form.subTitle }}</span>
</h5>
<span class="more">MORE</span>
<div class="cover"
@click="toSet(7)">点击更换标题与小标题</div>
</div>
<div class="media-wrap c-wrap">
<div class="left">
<div class="slides">
<div class="item wow fadeInLeft"
data-wow-delay="0.5s"
style="margin-right: 20px">
<img width="100%"
height="100%"
src="https://huorantech.com/images/about/9.png"
alt="">
<div class="text">关于2021年度深圳综合粒子设施研究院采购意向公开表</div>
</div>
<div class="item wow fadeInLeft"
data-wow-delay="0.5s">
<img width="100%"
height="100%"
src="https://huorantech.com/images/about/9.png"
alt="">
<div class="text">关于2021年度深圳综合粒子设施研究院采购意向公开表</div>
</div>
</div>
<ul class="list">
<li>
<h6>对话未来科学奖得主杨学明真正自立自强要靠在实验科学先进仪器</h6>
<div class="des">6月12日上午深圳综合粒子设施研究院与深圳大学签署战略合作框架协议深圳大学党委书记校长李清泉深大学签署圳大学党委</div>
</li>
<li>
<h6>对话未来科学奖得主杨学明真正自立自强要靠在实验科学先进仪器</h6>
<div class="des">6月12日上午深圳综合粒子设施研究院与深圳大学签署战略合作框架协议深圳大学党委书记校长李清泉深大学签署圳大学党委</div>
</li>
<li>
<h6>对话未来科学奖得主杨学明真正自立自强要靠在实验科学先进仪器</h6>
<div class="des">6月12日上午深圳综合粒子设施研究院与深圳大学签署战略合作框架协议深圳大学党委书记校长李清泉深大学签署圳大学党委</div>
</li>
</ul>
</div>
<div class="right">
<img src="@/assets/images/survey3.png"
alt="">
<div class="texts">
<h6>关于2021年度深圳综合粒子设施研究院采购公开表</h6>
<div class="des">把一个基因切成两段分别翻译成两段蛋白片段还会有原来的功能吗实多数蛋白片段会</div>
</div>
</div>
<div class="cover"
@click="toSet(8)">关联栏目</div>
</div>
</div>
</div>
<div class="block program">
<div class="inner c-wrap">
<div class="title">
<h5>
{{ modules[11].form.title }}
<span class="sub">{{ modules[11].form.subTitle }}</span>
</h5>
<span class="more">MORE</span>
<div class="cover"
@click="toSet(11)">点击更换标题与小标题</div>
</div>
<div class="c-wrap">
<div class="slide">
<div class="texts">
<h6>超快自由电子激光脉冲特性诊断研究方面取得重要进展</h6>
<div class="des">X射线自由电子激光已经成为了化学生物物理等领域不可或缺的研究手段对于绝大多数自由电子激研究院紧密围绕高水平建设综合性国家科学中心战略目标面向国民经济主战场和世界科技前沿</div>
<div class="meta">发表日期2022.01.10 &emsp;浏览量备份</div>
</div>
<img class="pic"
src="@/assets/images/survey3.png"
alt="">
</div>
<ul class="list">
<li>
<div class="des">X射线自由电子激光是基于国际最先进的超导加速器技术研发的装置对于未来产业发展和基础科学应用有重要作用</div>
<p class="date">2022.10.10</p>
</li>
<li>
<div class="des">X射线自由电子激光是基于国际最先进的超导加速器技术研发的装置对于未来产业发展和基础科学应用有重要作用</div>
<p class="date">2022.10.10</p>
</li>
<li>
<div class="des">X射线自由电子激光是基于国际最先进的超导加速器技术研发的装置对于未来产业发展和基础科学应用有重要作用</div>
<p class="date">2022.10.10</p>
</li>
</ul>
<div class="cover"
@click="toSet(12)">关联栏目</div>
</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.sfel
}
},
mounted () {
this.$store.commit('user/setCrumbs', [
{
name: '站点管理',
route: '/site'
},
{
name: '内容管理',
route: '/column'
},
{
name: '栏目管理',
route: '/column'
},
{
name: 'SFEL'
}
])
},
methods: {
}
};
</script>
<style lang="scss" scoped>
@import '../../../styles/page/page.scss';
.title {
position: relative;
display: flex;
justify-content: space-between;
align-items: flex-end;
padding-bottom: 25px;
margin-bottom: 30px;
border-bottom: 1px solid #ddd;
h5 {
padding-left: 16px;
font-size: 36px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #333333;
line-height: 1;
border-left: 6px solid #2b96ef;
}
.sub {
font-size: 22px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #afb7bf;
}
.more {
font-size: 14px;
color: #666;
cursor: pointer;
}
}
.lg {
width: 1505px;
}
/deep/.articles {
width: 50%;
.el-carousel__indicators--horizontal {
bottom: 20px;
left: 804px;
}
}
.banner-block {
background: url(../../../assets/images/sfel/2.png) 0 0 / cover no-repeat;
}
.sfel-banner {
display: flex;
cursor: pointer;
.pic {
width: 700px;
height: 380px;
}
.right {
position: relative;
width: 50%;
padding: 50px 50px 30px;
background: #1583ff;
color: #fff;
&:hover {
background: #465f85;
h6,
.des,
.meta {
color: #fff;
transform: translateY(15px);
}
}
}
.inds {
position: absolute;
bottom: 40px;
left: 60px;
display: flex;
li {
width: 10px;
height: 10px;
margin-right: 12px;
background: #ffffff;
border-radius: 50%;
transition: 0.2s;
&.active {
width: 30px;
background: rgba(255, 255, 255, 0.3);
border-radius: 5px;
}
}
}
h6 {
font-size: 24px;
transition: 0.3s;
}
.des {
margin: 30px 0;
font-size: 16px;
line-height: 24px;
transition: 0.3s;
}
.meta {
font-size: 16px;
transition: 0.3s;
}
}
.card {
display: flex;
flex-wrap: wrap;
margin-top: 40px;
li {
width: calc((100% - 56px) / 3);
margin-right: 28px;
box-shadow: 0px 0px 20px 0px rgba(176, 176, 176, 0.21);
border-radius: 6px;
transition: 0.3s;
&:hover {
transform: scale(1.05);
}
&:last-child {
margin-right: 0;
}
}
.pic {
width: 100%;
height: 240px;
}
.texts {
padding: 40px 30px;
}
.meta {
font-size: 16px;
color: #666;
}
.des {
margin: 10px 0;
font-size: 20px;
font-family: SFProDisplay;
font-weight: 500;
color: #333;
line-height: 28px;
}
.arrow {
width: 36px;
}
}
.notice {
background: url(../../../assets/images/sfel/3.png) 0 0 / cover no-repeat;
}
.shop-shows {
display: flex;
.left {
width: 660px;
margin-right: 20px;
.item {
position: relative;
height: 100%;
img {
width: 100%;
height: 100%;
}
.text {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 0 20px;
font-size: 18px;
color: #fff;
line-height: 59px;
background-color: rgba(0, 0, 0, 0.57);
}
}
.card-wrap {
display: flex;
margin-top: 18px;
}
.cards {
padding: 20px;
background-color: #fff;
h6 {
margin-bottom: 10px;
font-size: 18px;
color: #48525e;
}
.sum {
font-size: 14px;
color: #6d7c8e;
}
.date {
margin-top: 24px;
font-size: 14px;
color: #c4ccd7;
}
}
h6 {
font-size: 24px;
color: #272727;
}
.des {
margin-top: 10px;
font-size: 16px;
color: #666;
line-height: 30px;
}
}
.right {
width: 824px;
}
.card-list {
li {
display: flex;
align-items: center;
padding: 24px;
margin-bottom: 18px;
background-color: #fff;
transition: 0.3s;
&:hover {
transform: scale(1.05);
}
}
.pic {
width: 116px;
height: 85px;
margin-right: 28px;
}
.texts {
width: 504px;
margin-right: 60px;
}
h6 {
margin-bottom: 10px;
font-size: 18px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #1583ff;
}
.des {
font-size: 16px;
color: #666;
line-height: 26px;
-webkit-line-clamp: 2;
}
}
.slide {
position: relative;
height: 284px;
img {
width: 100%;
height: 100%;
}
.text {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 0 12px;
line-height: 59px;
font-size: 18px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #ffffff;
background-color: rgba(0, 0, 0, 0.57);
}
}
}
.conference {
background: url(../../../assets/images/sfel/4.png) 0 0 / cover no-repeat;
.shows {
display: flex;
}
.left {
position: relative;
width: 688px;
height: 688px;
margin-right: 20px;
cursor: pointer;
.text {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 0 12px;
line-height: 59px;
font-size: 18px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #ffffff;
background-color: rgba(0, 0, 0, 0.57);
}
}
.card-list {
width: 784px;
li {
display: flex;
align-items: center;
padding: 14px;
margin-bottom: 21px;
background-color: #fff;
cursor: pointer;
transition: 0.3s;
&:last-child {
margin-bottom: 0;
}
&:hover {
transform: translateX(20px);
}
}
.pic {
width: 188px;
height: 188px;
margin-right: 36px;
}
h6 {
margin-bottom: 10px;
font-size: 20px;
color: #333;
}
.sum {
font-size: 16px;
color: #666;
}
.text {
display: flex;
align-items: center;
margin: 10px 0;
}
.icon {
margin-right: 5px;
}
}
}
.media {
background: #fff;
.media-wrap {
display: flex;
}
.left {
width: 55%;
margin-right: 1%;
.slides {
display: flex;
margin-bottom: 20px;
}
.item {
position: relative;
width: 366px;
height: 197px;
img {
width: 100%;
height: 100%;
}
.text {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 0 27px;
line-height: 48px;
font-size: 16px;
color: #ffffff;
@include ellipsis;
background-color: rgba(0, 0, 0, 0.49);
}
}
.list {
padding: 34px 36px;
background: #fff;
box-shadow: 0px 0px 30px 0px rgba(48, 48, 48, 0.08);
li {
margin-bottom: 41px;
&:last-child {
margin-bottom: 0;
}
}
h6 {
margin-bottom: 17px;
font-size: 20px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #272727;
line-height: 20px;
text-shadow: 0px 0px 30px rgba(48, 48, 48, 0.08);
}
.des {
font-size: 14px;
color: #666;
}
}
}
.right {
width: 44%;
box-shadow: 0px 0px 30px 0px rgba(48, 48, 48, 0.08);
img {
width: 100%;
height: 422px;
}
.texts {
padding: 40px 28px;
background: #fff;
}
h6 {
font-size: 24px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #272727;
line-height: 39px;
text-shadow: 0px 0px 30px rgba(48, 48, 48, 0.08);
}
.des {
margin-top: 16px;
font-size: 16px;
color: #666;
}
}
}
.news {
background: url(../../../assets/images/sfel/5.png) (0 504px) / auto no-repeat,
url(../../../assets/images/sfel/6.png) (bottom right) / auto no-repeat;
.inner {
width: 1400px;
}
}
.news {
display: flex;
justify-content: center;
flex-wrap: wrap;
li {
position: relative;
width: calc((100% - 56px) / 3);
padding: 11px;
margin-right: 28px;
color: #333;
background-color: #fff;
box-shadow: 0px 5px 20px 0px rgba(98, 117, 163, 0.08);
border-radius: 10px;
transition: 0.3s;
&:hover {
transform: translateY(20px);
}
&:nth-child(3n) {
margin-right: 0;
}
&:hover {
color: #fff;
background-color: #0252d9;
}
}
img {
width: 100%;
height: 481px;
}
.texts {
padding: 0 18px 50px;
}
h6 {
margin: 35px 0 12px;
font-size: 24px;
line-height: 33px;
}
.des {
font-size: 18px;
line-height: 26px;
}
}
.program {
background: #fff;
.slide {
display: flex;
margin-bottom: 14px;
}
.texts {
width: 51%;
padding: 56px;
background: #fbfbfb;
h6 {
font-size: 24px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #333333;
}
.des {
margin: 35px 0 25px;
font-size: 16px;
color: #666;
line-height: 32px;
}
.meta {
font-size: 14px;
color: #666;
}
}
.pic {
width: 49%;
height: 430px;
}
.list {
display: flex;
li {
width: calc((100% - 44px) / 3);
padding: 36px 22px;
margin-right: 14px;
background: url(../../../assets/images/sfel/7.png) 0 0 / cover no-repeat;
&:nth-child(2) {
background-image: url(../../../assets/images/sfel/8.png);
}
&:nth-child(3) {
margin-right: 0;
background-image: url(../../../assets/images/sfel/9.png);
}
}
.des {
margin-bottom: 30px;
font-size: 18px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #ffffff;
line-height: 30px;
}
.date {
font-size: 16px;
font-family: LaoSangamMN;
color: #ffffff;
}
}
}
.tools {
position: absolute;
top: 600px;
left: 0;
width: 226px;
text-align: center;
.logo {
padding: 44px 0;
background: #0c60be;
box-shadow: 0px 0px 20px 0px rgba(184, 191, 200, 0.3);
}
.nav {
li {
padding: 0 10px;
font-size: 24px;
line-height: 83px;
color: #fff;
background-color: #1d1d1d;
cursor: pointer;
@include ellipsis;
&.active {
background-color: #1583ff;
}
}
}
}
@media (max-width: 1520px) {
.lg {
width: 98%;
}
}
</style>

@ -96,7 +96,7 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
@import '../../../styles/page/page.scss'; @import '../../../styles/page/page.scss';
.block { .block {
background: url(http://139.159.254.212/images/speech/2.png) no-repeat; background: url(https://huorantech.com/images/speech/2.png) no-repeat;
} }
.inner { .inner {
display: flex; display: flex;

@ -38,11 +38,11 @@
<div class="cover" <div class="cover"
@click="toSet(1)">点击更换描述</div> @click="toSet(1)">点击更换描述</div>
<img class="pic" <img class="pic"
src="@/assets/images/userSharing/1.png" :src="modules[1].form.pic"
alt=""> alt="">
<div class="card"> <div class="card">
<p class="title">{{ modules[1].form.subTitle }}</p> <p class="title">{{ modules[1].form.subTitle }}</p>
<p class="en-text">EFFICIENT OPERATION, CLASSIFICATION OPEN</p> <p class="en-text">{{ modules[1].form.enTitle }}</p>
</div> </div>
</div> </div>
</div> </div>

Loading…
Cancel
Save