This commit is contained in:
wangchengming 2025-01-03 14:50:55 +08:00
parent 98ef795163
commit 2e7f07b688
8 changed files with 732 additions and 643 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -98,14 +98,14 @@
] ]
}, },
{ title: '联系我们', path: '/cnkhp.com/CU' }, { title: '联系我们', path: '/cnkhp.com/CU' },
{ // {
title: '客户登录', // title: '',
jump: 'http://117.72.41.220:9097' // jump: 'http://117.72.41.220:9097'
}, // },
{ // {
title: '供应商登录', // title: '',
jump: 'http://117.72.41.220:9097' // jump: 'http://117.72.41.220:9097'
} // }
] ]
}; };
}, },
@ -149,7 +149,7 @@
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
padding: 28rem 60rem; padding: 28rem 70rem;
box-sizing: border-box; box-sizing: border-box;
transition: background-color 0.3s; transition: background-color 0.3s;
height: 158rem; height: 158rem;

View File

@ -5,7 +5,7 @@
id="screen1" id="screen1"
> >
<img <img
src="/static/img/about/aboutBanner.png" src="/static/img/about/aboutBanner.jpg"
alt="" alt=""
style="width: 100%;height: 100%;" style="width: 100%;height: 100%;"
/> />

View File

@ -59,7 +59,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="其他" > <el-form-item label="其他">
<el-input v-model="form1.otherNotes" placeholder="请输入其他说明" /> <el-input v-model="form1.otherNotes" placeholder="请输入其他说明" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -231,11 +231,31 @@
</el-col> </el-col>
</el-row> </el-row>
<el-form-item label="附件"> <el-form-item label="附件">
<el-upload class="upload-demo" action="https://jsonplaceholder.typicode.com/posts/" :file-list="fileList2"> <div class="upload-file">
<el-button size="small" type="primary"> <el-upload multiple :action="uploadFileUrl" :before-upload="handleBeforeUpload1" :file-list="fileList1" :limit="limit" :on-error="handleUploadError1" :on-exceed="handleExceed1" :on-success="handleUploadSuccess1" :show-file-list="false" class="upload-file-uploader" ref="fileUpload1">
上传 <!-- 上传按钮 -->
</el-button> <el-button size="small" type="primary">上传</el-button>
</el-upload> <!-- 上传提示 -->
<div class="el-upload__tip" slot="tip" v-if="isShowTip">
请上传
<template v-if="fileSize"> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>
<template v-if="fileType"> 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>
的文件
</div>
</el-upload>
<!-- 文件列表 -->
<transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul">
<li :key="file.url" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList1">
<el-link :href="`${file.url}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ getFileName(file.name) }} </span>
</el-link>
<div class="ele-upload-list__item-content-action">
<el-link :underline="false" @click="handleDelete1(index)" type="danger">删除</el-link>
</div>
</li>
</transition-group>
</div>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item style="text-align: center;border-top:1rem solid #B0B0B0;padding: 20rem 0rem"> <el-form-item style="text-align: center;border-top:1rem solid #B0B0B0;padding: 20rem 0rem">
@ -455,8 +475,10 @@
number: 0, number: 0,
uploadList: [], uploadList: [],
// //
uploadFileUrl: process.env.VUE_APP_API_TARGET_URL + '/system/oss/upload', uploadFileUrl:
process.env.VUE_APP_API_TARGET_URL + 'system/oss/addFilesUpload',
fileList: [], fileList: [],
fileList1: [],
loadingModal: undefined loadingModal: undefined
}; };
}, },
@ -501,6 +523,9 @@
this.$refs['Partnerform'].validate(valid => { this.$refs['Partnerform'].validate(valid => {
if (valid) { if (valid) {
this.form1.fieldType = this.form1.fieldType.toString(); this.form1.fieldType = this.form1.fieldType.toString();
this.form1.imageurl = this.fileList
.map(item => item.url)
.toString();
this.$request this.$request
.post('/official/companymessage/add', this.form1) .post('/official/companymessage/add', this.form1)
.then(res => { .then(res => {
@ -512,10 +537,11 @@
phoneNumber: '', phoneNumber: '',
email: '', email: '',
fieldType: [], fieldType: [],
otherNotes: '',
advantageConcept: '', advantageConcept: '',
cooperationIntention: '' cooperationIntention: '',
imageurl: ''
}; };
this.fileList = [];
} }
}); });
} }
@ -532,6 +558,9 @@
this.form.productCertification = this.form.productCertification.toString(); this.form.productCertification = this.form.productCertification.toString();
this.form.qualitySystem = this.form.qualitySystem.toString(); this.form.qualitySystem = this.form.qualitySystem.toString();
this.form.relevantQualifications = this.form.relevantQualifications.toString(); this.form.relevantQualifications = this.form.relevantQualifications.toString();
this.form.imageurl = this.fileList1
.map(item => item.url)
.toString();
this.$request this.$request
.post('/official/companymessage/add', this.form) .post('/official/companymessage/add', this.form)
.then(res => { .then(res => {
@ -554,8 +583,10 @@
qualitySystem: [], qualitySystem: [],
relevantQualifications: [], relevantQualifications: [],
advantageConcept: '', advantageConcept: '',
cooperationIntention: '' cooperationIntention: '',
imageurl: ''
}; };
this.fileList1 = [];
} }
}); });
} }
@ -599,7 +630,7 @@
}, },
// //
handleUploadError(err) { handleUploadError(err) {
this.$message.error(`上传文件失败,请重试`); this.$message.error(`上传文件失败,请重试`, err);
this.loadingModal.close(); this.loadingModal.close();
}, },
// //
@ -621,8 +652,8 @@
}, },
// //
handleDelete(index) { handleDelete(index) {
let ossId = this.fileList[index].ossId; // let ossId = this.fileList[index].ossId;
delOss(ossId); // delOss(ossId);
this.fileList.splice(index, 1); this.fileList.splice(index, 1);
}, },
// //
@ -642,6 +673,76 @@
} else { } else {
return name; return name;
} }
},
//
handleBeforeUpload1(file) {
//
if (this.fileType) {
const fileName = file.name.split('.');
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.fileType.indexOf(fileExt) >= 0;
if (!isTypeOk) {
this.$message.error(
`文件格式不正确, 请上传${this.fileType.join('/')}格式文件!`
);
return false;
}
}
//
if (this.fileSize) {
const isLt = file.size / 1024 / 1024 < this.fileSize;
if (!isLt) {
this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`);
return false;
}
}
this.loadingModal = this.$loading({
lock: true,
text: '正在上传文件,请稍候...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
this.number++;
return true;
},
//
handleExceed1() {
this.$message.error(`上传文件数量不能超过 ${this.limit} 个!`);
},
//
handleUploadError1(err) {
this.$message.error(`上传文件失败,请重试`, err);
this.loadingModal.close();
},
//
handleUploadSuccess1(res, file) {
if (res.code === 200) {
this.uploadList1.push({
name: res.data.fileName,
url: res.data.url,
ossId: res.data.ossId
});
this.uploadedSuccessfully1();
} else {
this.number--;
this.loadingModal.close();
this.$message.error(res.msg);
this.$refs.fileUpload1.handleRemove(file);
this.uploadedSuccessfully1();
}
},
//
handleDelete1(index) {
this.fileList1.splice(index, 1);
},
//
uploadedSuccessfully1() {
if (this.number > 0 && this.uploadList1.length === this.number) {
this.fileList1 = this.fileList1.concat(this.uploadList1);
this.uploadList1 = [];
this.number = 0;
this.loadingModal.close();
}
} }
} }
}; };

View File

@ -2,48 +2,23 @@
<div class="page-company"> <div class="page-company">
<div style="height:104rem;"></div> <div style="height:104rem;"></div>
<div class="screen1"> <div class="screen1">
<img <img :src="screen1.imageurl" alt="" style="width: 100%" />
:src="screen1.imageurl"
alt=""
style="width: 100%"
/>
</div> </div>
<div class="screen2"> <div class="screen2">
<div class="wrapper1680"> <div class="wrapper1680">
<el-tabs <el-tabs tab-position="left" v-model="activeName" @tab-click="handleChosePane">
tab-position="left" <el-tab-pane label="投资者新闻" name="first">
v-model="activeName"
@tab-click="handleChosePane"
>
<el-tab-pane
label="投资者新闻"
name="first"
>
<div class="news-wrapper"> <div class="news-wrapper">
<div class="news-item"> <div class="news-item">
<ul> <ul>
<li <li v-for="item in investorNews.actionOne" :key="item.id" @click="() => $router.push('/investor/detail/' + item.id)">
v-for="item in investorNews.actionOne"
:key="item.id"
@click="() => $router.push('/investor/detail/' + item.id)"
>
<el-row class="itemRow"> <el-row class="itemRow">
<el-col <el-col :span="8" class="imgCol">
:span="8"
class="imgCol"
>
<div class="list-img"> <div class="list-img">
<img <img :src="item.cover" style="width:100%;height:100%;object-fit:cover;" alt="">
:src="item.cover"
style="width:100%;height:100%;object-fit:cover;"
alt=""
>
</div> </div>
</el-col> </el-col>
<el-col <el-col :span="16" class="listContent">
:span="16"
class="listContent"
>
<div class="list-title"> <div class="list-title">
{{ item.captionName }}<span class="deailTitle">[详细]</span> {{ item.captionName }}<span class="deailTitle">[详细]</span>
</div> </div>
@ -55,12 +30,7 @@
<div class="news-item"> <div class="news-item">
<div class="contentTitle"> <div class="contentTitle">
<ul> <ul>
<li <li v-for="item in investorNews.actionTwo" :key="item.id" class="itemDisc" @click="() => $router.push('/investor/detail/' + item.id)">
v-for="item in investorNews.actionTwo"
:key="item.id"
class="itemDisc"
@click="() => $router.push('/investor/detail/' + item.id)"
>
{{ item.captionName }} {{ item.captionName }}
</li> </li>
</ul> </ul>
@ -69,19 +39,10 @@
<div class="news-item"> <div class="news-item">
<div class="contentThree"> <div class="contentThree">
<ul> <ul>
<li <li v-for="(item, index) in investorNews.actionThree" :key="item.id" class="itemNomal" @click="() => $router.push('/investor/detail/' + item.id)">
v-for="(item, index) in investorNews.actionThree"
:key="item.id"
class="itemNomal"
@click="() => $router.push('/investor/detail/' + item.id)"
>
<template v-if="index == 0"> <template v-if="index == 0">
<div class="imgList"> <div class="imgList">
<img <img :src="item.cover" style="width:100%;height:100%;object-fit:cover;" alt="">
:src="item.cover"
style="width:100%;height:100%;object-fit:cover;"
alt=""
>
<div class="imgMask"> <div class="imgMask">
{{ item.captionName }} {{ item.captionName }}
</div> </div>
@ -96,53 +57,27 @@
</div> </div>
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane <el-tab-pane label="公司治理" name="second">
label="公司治理"
name="second"
>
<div class="news-wrapper"> <div class="news-wrapper">
<div class="news-item"> <div class="news-item">
<ul> <ul>
<li <li v-for="(item, index) in corporateGovernance.actionOne" :key="item.id">
v-for="item in corporateGovernance.actionOne" <div class="contentTitle" v-if="index == 0" @click="handleView(item.cover)">
:key="item.id" {{ item.captionName }}<span class="deailTitle">[详细]</span>
@click="() => $router.push('/investor/detail/' + item.id)" </div>
> <div class="contentTitle" v-else>
<el-row class="itemRow"> <a :href="item.cover" :download="getFileName(item.cover)"> {{ item.captionName }}<span class="deailTitle">[下载]</span></a>
<el-col </div>
:span="8"
class="imgCol"
>
<div class="list-img">
<img
:src="item.cover"
style="width:100%;height:100%;object-fit:cover;"
alt=""
>
</div>
</el-col>
<el-col
:span="16"
class="listContent"
>
<div class="list-title">
{{ item.captionName }}<span class="deailTitle">[详细]</span>
</div>
</el-col>
</el-row>
</li> </li>
</ul> </ul>
</div> </div>
<div class="news-item"> <div class="news-item">
<div class="contentTitle"> <div class="contentTitle">
<ul> <ul>
<li <li v-for="item in corporateGovernance.actionTwo" :key="item.id">
v-for="item in corporateGovernance.actionTwo" <div class="contentTitle">
:key="item.id" <a :href="item.cover" :download="getFileName(item.cover)"> {{ item.captionName }}<span class="deailTitle">[下载]</span></a>
class="itemDisc" </div>
@click="() => $router.push('/investor/detail/' + item.id)"
>
{{ item.captionName }}
</li> </li>
</ul> </ul>
</div> </div>
@ -150,233 +85,221 @@
<div class="news-item"> <div class="news-item">
<div class="contentThree"> <div class="contentThree">
<ul> <ul>
<li <li v-for="item in corporateGovernance.actionThree" :key="item.id">
v-for="(item, index) in corporateGovernance.actionThree" <div class="contentTitle">
:key="item.id" <a :href="item.cover" :download="getFileName(item.cover)"> {{ item.captionName }}<span class="deailTitle">[下载]</span></a>
class="itemNomal" </div>
@click="() => $router.push('/investor/detail/' + item.id)"
>
<template v-if="index == 0">
<div class="imgList">
<img
:src="item.cover"
style="width:100%;height:100%;object-fit:cover;"
alt=""
>
<div class="imgMask">
{{ item.captionName }}
</div>
</div>
</template>
<template v-else>
{{ item.captionName }}
</template>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane <el-tab-pane label="投资者关系" name="third">
label="投资者关系" <el-form ref="feekform" :model="form" :rules="formRules" label-width="110rem" style="margin-top: 40rem">
name="third" <div class="formBarContent">
> <el-row>
<div class="news-wrapper"> <el-col :span="12">
<div class="news-item"> <el-form-item label="联系人" prop="userName">
<ul> <el-input v-model="form.userName" />
<li </el-form-item>
v-for="item in investorRelations.actionOne" </el-col>
:key="item.id" <el-col :span="12">
@click="() => $router.push('/investor/detail/' + item.id)" <el-form-item label="联系方式" prop="phoneNumber">
> <el-input v-model="form.phoneNumber" />
<el-row class="itemRow"> </el-form-item>
<el-col </el-col>
:span="8" </el-row>
class="imgCol" <el-form-item label="留言内容" prop="abstracts">
> <el-input v-model="form.abstracts" :autosize="{ minRows: 6, maxRows: 6 }" type="textarea" />
<div class="list-img"> </el-form-item>
<img
:src="item.cover"
style="width:100%;height:100%;object-fit:cover;"
alt=""
>
</div>
</el-col>
<el-col
:span="16"
class="listContent"
>
<div class="list-title">
{{ item.captionName }}<span class="deailTitle">[详细]</span>
</div>
</el-col>
</el-row>
</li>
</ul>
</div> </div>
<div class="news-item"> <el-form-item style="text-align: center;">
<div class="contentTitle"> <el-button class="subBtn" @click="handleAdd">
<ul> 提交
<li </el-button>
v-for="item in investorRelations.actionTwo" </el-form-item>
:key="item.id" </el-form>
class="itemDisc"
@click="() => $router.push('/investor/detail/' + item.id)"
>
{{ item.captionName }}
</li>
</ul>
</div>
</div>
<div class="news-item">
<div class="contentThree">
<ul>
<li
v-for="(item, index) in investorRelations.actionThree"
:key="item.id"
class="itemNomal"
@click="() => $router.push('/investor/detail/' + item.id)"
>
<template v-if="index == 0">
<div class="imgList">
<img
:src="item.cover"
style="width:100%;height:100%;object-fit:cover;"
alt=""
>
<div class="imgMask">
{{ item.captionName }}
</div>
</div>
</template>
<template v-else>
{{ item.captionName }}
</template>
</li>
</ul>
</div>
</div>
</div>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
</div> </div>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
<FootBar theme="dark"></FootBar> <FootBar theme="dark"></FootBar>
</div> </div>
</template> </template>
<script> <script>
import { mapMutations, mapState } from 'vuex'; import { mapMutations, mapState } from 'vuex';
import FootBar from '@/components/FootBar.vue'; import FootBar from '@/components/FootBar.vue';
export default { export default {
components: { components: {
FootBar, FootBar
}, },
data () { data() {
return { return {
screen1: { screen1: {
imageurl: '', imageurl: '',
introduction: { introduction: {
businessName: '', businessName: '',
businessNameEnglish: '', businessNameEnglish: '',
titleChinese: '', titleChinese: ''
}
}, },
dialogVisible: false,
dialogImageUrl: '',
activeName: 'first',
investorNews: {
actionOne: [],
actionTwo: [],
actionThree: []
},
corporateGovernance: {
actionOne: [],
actionTwo: [],
actionThree: []
},
investorRelations: {
actionOne: [],
actionTwo: [],
actionThree: []
},
tempImg: '/static/img/tempNews.png',
form: {
userName: '',
phoneNumber: '',
abstracts: ''
},
formRules: {
userName: [
{ required: true, message: '请输入联系人', trigger: 'blur' }
],
phoneNumber: [
{ required: true, message: '请输入联系方式', trigger: 'blur' },
{
validator: function(rule, value, callback) {
const reg = /^1[3456789]\d{9}$/;
const reg3 = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
if (!(reg.test(value) || reg3.test(value))) {
callback(new Error('请输入手机号、座机号或邮箱'));
} else {
callback();
}
},
trigger: 'blur'
}
],
abstracts: [{ required: true, message: '请输入内容', trigger: 'blur' }]
}
};
},
computed: {
...mapState({
scrollTop: state => state.scroll.scrollTop
})
},
created() {
this.$event.$emit('nav-theme', 'light');
this.getScreen1Banner();
this.getInvestorNewsData();
this.getCorporateGovernanceData();
},
mounted() {
if (this.$route.hash) {
this.forceScroll({
top: document.getElementById(this.$route.hash.slice(1)).offsetTop,
behavior: 'smooth'
});
}
},
methods: {
...mapMutations(['forceScroll', 'setScrollTop']),
async getScreen1Banner() {
try {
const res = await this.$request.get('/official/index/list', {
params: {
pageNum: 1,
pageSize: 1,
captionName: '投资与合作/投资者/banner'
}
});
this.screen1.imageurl = res.rows[0].imageurl;
} catch (error) {}
}, },
activeName: 'first', handleChosePane(tab, event) {
investorNews: { this.activeName = tab.name;
actionOne: [],
actionTwo: [],
actionThree: [],
}, },
corporateGovernance: { //
actionOne: [], async getInvestorNewsData() {
actionTwo: [], try {
actionThree: [], const res = await this.$request.get('/official/slideshow/list', {
params: { pageNum: 1, pageSize: 22, type: '4' }
});
this.investorNews.actionOne = res.rows.slice(0, 4);
this.investorNews.actionTwo = res.rows.slice(4, 18);
this.investorNews.actionThree = res.rows.slice(18, 22);
} catch (error) {}
}, },
investorRelations: { //
actionOne: [], async getCorporateGovernanceData() {
actionTwo: [], try {
actionThree: [], const res = await this.$request.get('/official/slideshow/list', {
params: { pageNum: 1, pageSize: 42, type: '5' }
});
var sortDate = res.rows.sort((a, b) => a.orderBy - b.orderBy);
this.corporateGovernance.actionOne = sortDate.slice(0, 14);
this.corporateGovernance.actionTwo = sortDate.slice(14, 28);
this.corporateGovernance.actionThree = sortDate.slice(28, 42);
} catch (error) {}
}, },
tempImg: '/static/img/tempNews.png', handleView(imgUrl) {
}; console.log('$$$$', imgUrl);
}, this.dialogImageUrl = imgUrl;
computed: { this.dialogVisible = true;
...mapState({ },
scrollTop: state => state.scroll.scrollTop, //
}), getFileName(name) {
}, // url
created () { if (name.lastIndexOf('/') > -1) {
this.$event.$emit('nav-theme', 'light'); return name.slice(name.lastIndexOf('/') + 1);
this.getScreen1Banner(); } else {
this.getInvestorNewsData(); return name;
this.getCorporateGovernanceData(); }
this.getInvestorRelationsData(); },
}, handleAdd() {
mounted () { try {
if (this.$route.hash) { this.$refs['feekform'].validate(valid => {
this.forceScroll({ if (valid) {
top: document.getElementById(this.$route.hash.slice(1)).offsetTop, this.$request.post('/official/message/add', this.form).then(res => {
behavior: 'smooth', if (res.code == 200) {
}); this.form = {
userName: '',
phoneNumber: '',
abstracts: ''
};
}
});
}
});
} catch (error) {}
}
} }
}, };
methods: {
...mapMutations(['forceScroll', 'setScrollTop']),
async getScreen1Banner () {
try {
const res = await this.$request.get(
'/official/index/list',
{ params: { pageNum: 1, pageSize: 1, captionName: '投资与合作/投资者/banner' } },
);
this.screen1.imageurl = res.rows[0].imageurl;
} catch (error) {}
},
handleChosePane (tab, event) {
this.activeName = tab.name;
},
//
async getInvestorNewsData () {
try {
const res = await this.$request.get('/official/slideshow/list', { params: { pageNum: 1, pageSize: 22, type: '4' } });
this.investorNews.actionOne = res.rows.slice(0, 4);
this.investorNews.actionTwo = res.rows.slice(4, 18);
this.investorNews.actionThree = res.rows.slice(18, 22);
} catch (error) {}
},
//
async getCorporateGovernanceData () {
try {
const res = await this.$request.get('/official/slideshow/list', { params: { pageNum: 1, pageSize: 22, type: '5' } });
this.corporateGovernance.actionOne = res.rows.slice(0, 4);
this.corporateGovernance.actionTwo = res.rows.slice(4, 18);
this.corporateGovernance.actionThree = res.rows.slice(18, 22);
} catch (error) {}
},
//
async getInvestorRelationsData () {
try {
const res = await this.$request.get('/official/slideshow/list', { params: { pageNum: 1, pageSize: 22, type: '6' } });
this.investorRelations.actionOne = res.rows.slice(0, 4);
this.investorRelations.actionTwo = res.rows.slice(4, 18);
this.investorRelations.actionThree = res.rows.slice(18, 22);
} catch (error) {}
},
},
};
</script> </script>
<style scoped> <style scoped>
.page-company { .page-company {
width: 100%; width: 100%;
} }
.screen2 { .screen2 {
padding: 90rem 120rem 60rem; padding: 90rem 120rem 60rem;
background: #FFFFFF; background: #ffffff;
} }
/deep/.el-tabs__item { /deep/.el-tabs__item {
padding: 0rem; padding: 0rem;
height: 56rem; height: 56rem;
margin-bottom: 62rem; margin-bottom: 62rem;
@ -392,143 +315,204 @@ export default {
text-align: justifyLeft; text-align: justifyLeft;
font-style: normal; font-style: normal;
text-transform: none; text-transform: none;
} }
/deep/.el-tabs__nav-wrap::after { /deep/.el-tabs__nav-wrap::after {
background-color: transparent; background-color: transparent;
} }
/deep/.el-tabs__active-bar { /deep/.el-tabs__active-bar {
background-color: transparent; background-color: transparent;
} }
/deep/.el-tabs__item.is-active { /deep/.el-tabs__item.is-active {
font-family: MicrosoftYaHeiSemibold; font-family: MicrosoftYaHeiSemibold;
font-size: 28rem; font-size: 28rem;
color: #111111; color: #111111;
line-height: 64rem; line-height: 64rem;
text-align: justifyLeft; text-align: justifyLeft;
font-style: normal; font-style: normal;
text-transform: none; text-transform: none;
border-bottom: 2rem solid #F0D145;; border-bottom: 2rem solid #f0d145;
} }
/deep/.el-tabs--left .el-tabs__item.is-left { /deep/.el-tabs--left .el-tabs__item.is-left {
text-align: left; text-align: left;
} }
/deep/.el-tabs--left .el-tabs__header.is-left { /deep/.el-tabs--left .el-tabs__header.is-left {
margin-right: 120rem; margin-right: 120rem;
} }
.news-wrapper { .el-form-item {
display: flex; margin-bottom: 22rem !important;
flex-wrap: wrap; }
} /deep/.el-form-item__error {
.news-item { font-size: 12rem;
width: 432rem; padding-top: 4rem;
/* background-color: #864e4e; */ }
overflow: hidden; /deep/.el-form-item__label {
cursor: pointer; font-size: 14rem;
position: relative; line-height: 40rem;
z-index: 1; padding: 0 12rem 0 0;
} }
.news-item:not(:nth-of-type(3n)) { /deep/.el-form-item__content {
margin-right: calc((1416rem - 436rem * 3) / 2); line-height: 40rem;
} font-size: 14rem;
.news-item:hover { }
z-index: 10; /deep/.el-input {
} font-size: 14rem;
.itemRow { }
margin-bottom: 30rem; /deep/.el-input__inner {
} border-radius: 4rem;
.imgCol { border: 1rem solid #dcdfe6;
width: 162rem; height: 40rem;
height: 122rem; line-height: 40rem;
padding: 0rem; padding: 0 15rem;
} }
.list-img { /deep/.el-checkbox {
width: 162rem; font-size: 14rem;
height: 122rem; margin-right: 30rem;
} }
.list-img img { /deep/.el-checkbox__inner {
border-radius: 10rem; border: 1rem solid #dcdfe6;
} border-radius: 2rem;
.listContent { width: 14rem;
width: calc(100% - 162rem); height: 14rem;
padding: 13rem 15rem; }
} /deep/.el-checkbox__label {
.list-title{ padding-left: 10rem;
font-family: MicrosoftYaHei; line-height: 19rem;
font-size: 16rem; font-size: 14rem;
color: #777777; }
line-height: 30rem; /deep/.el-textarea {
text-align: justifyLeft; font-size: 14rem;
font-style: normal; }
text-transform: none; /deep/.el-textarea__inner {
} padding: 5rem 15rem;
.deailTitle { border: 1rem solid #dcdfe6;
font-family: MicrosoftYaHei; border-radius: 4rem;
font-size: 16rem; height: 138rem !important;
color: #0045A2; min-height: 138rem !important;
line-height: 30rem; }
text-align: justifyLeft; /deep/.el-upload-list__item {
font-style: normal; font-size: 14rem;
text-transform: none; margin-top: 5rem;
} border-radius: 4rem;
.itemDisc { }
list-style-type: disc; /deep/.el-button--small {
list-style-position:inside; padding: 9rem 15rem;
text-overflow: ellipsis; font-size: 12rem;
overflow: hidden; border-radius: 3rem;
word-break: break-all; }
white-space: nowrap; .news-wrapper {
} display: flex;
.itemDisc::marker{ flex-wrap: wrap;
color: #F0D145; }
} .news-item {
.contentTitle{ width: 432rem;
font-family: MicrosoftYaHei; /* background-color: #864e4e; */
font-size: 18rem; overflow: hidden;
color: #333333; cursor: pointer;
line-height: 40rem; position: relative;
text-align: justifyLeft; z-index: 1;
font-style: normal; }
text-transform: none; .news-item:not(:nth-of-type(3n)) {
} margin-right: calc((1416rem - 436rem * 3) / 2);
.contentThree { }
font-family: MicrosoftYaHei; .news-item:hover {
font-size: 16rem; z-index: 10;
color: #777777; }
line-height: 30rem; .itemRow {
text-align: justifyLeft; margin-bottom: 30rem;
font-style: normal; }
text-transform: none; .imgCol {
} width: 162rem;
.itemNomal { height: 122rem;
margin-bottom: 30rem; padding: 0rem;
} }
.imgList { .list-img {
width: 432rem; width: 162rem;
height: 246rem; height: 122rem;
position: relative; }
} .list-img img {
.imgMask{ border-radius: 10rem;
position: absolute; }
bottom: 0rem; .listContent {
width: 370rem; width: calc(100% - 162rem);
height: 46rem; padding: 13rem 15rem;
background: #000000; }
border-radius: 0rem 0rem 10rem 10rem; .list-title {
opacity: 0.7; font-family: MicrosoftYaHei;
font-family: MicrosoftYaHei; font-size: 16rem;
font-size: 20rem; color: #777777;
color: #FFFFFF; line-height: 30rem;
line-height: 40rem; text-align: justifyLeft;
text-align: center; font-style: normal;
font-style: normal; text-transform: none;
text-transform: none; }
text-overflow: ellipsis; .deailTitle {
overflow: hidden; font-family: MicrosoftYaHei;
word-break: break-all; font-size: 16rem;
white-space: nowrap; color: #0045a2;
padding: 0 30rem; line-height: 30rem;
} text-align: justifyLeft;
.imgList img { font-style: normal;
border-radius: 10rem; text-transform: none;
} }
.itemDisc {
list-style-type: disc;
list-style-position: inside;
text-overflow: ellipsis;
overflow: hidden;
word-break: break-all;
white-space: nowrap;
}
.itemDisc::marker {
color: #f0d145;
}
.contentTitle {
font-family: MicrosoftYaHei;
font-size: 18rem;
color: #333333;
line-height: 40rem;
text-align: justifyLeft;
font-style: normal;
text-transform: none;
}
.contentThree {
font-family: MicrosoftYaHei;
font-size: 16rem;
color: #777777;
line-height: 30rem;
text-align: justifyLeft;
font-style: normal;
text-transform: none;
}
.itemNomal {
margin-bottom: 30rem;
}
.imgList {
width: 432rem;
height: 246rem;
position: relative;
}
.imgMask {
position: absolute;
bottom: 0rem;
width: 370rem;
height: 46rem;
background: #000000;
border-radius: 0rem 0rem 10rem 10rem;
opacity: 0.7;
font-family: MicrosoftYaHei;
font-size: 20rem;
color: #ffffff;
line-height: 40rem;
text-align: center;
font-style: normal;
text-transform: none;
text-overflow: ellipsis;
overflow: hidden;
word-break: break-all;
white-space: nowrap;
padding: 0 30rem;
}
.imgList img {
border-radius: 10rem;
}
</style> </style>

View File

@ -2,11 +2,7 @@
<div class="page-news-detail"> <div class="page-news-detail">
<div style="height:104rem;"></div> <div style="height:104rem;"></div>
<div class="screen1"> <div class="screen1">
<img <img :src="screen1.bannerUrl" alt="" style="width:100%;" />
:src="screen1.bannerUrl"
alt=""
style="width:100%;"
/>
</div> </div>
<div class="screen2"> <div class="screen2">
<div class="wrapper1400"> <div class="wrapper1400">
@ -17,10 +13,7 @@
<span>{{ newsDetail.releaseTime.slice(0, 10) }}</span> <span>{{ newsDetail.releaseTime.slice(0, 10) }}</span>
<span>{{ newsDetail.groupName }}</span> <span>{{ newsDetail.groupName }}</span>
</div> </div>
<div <div class="news-content ql-editor" v-html="newsDetail.newsContent">
class="news-content ql-editor"
v-html="newsDetail.newsContent"
>
</div> </div>
</div> </div>
</div> </div>
@ -62,197 +55,208 @@
</template> </template>
<script> <script>
export default { export default {
data () { data() {
return { return {
screen1: { screen1: {
bannerUrl: '', bannerUrl: ''
}, },
currentNewsId: '', currentNewsId: '',
prevNewsId: '', prevNewsId: '',
nextNewsId: '', nextNewsId: '',
newsDetail: { newsDetail: {
releaseTime: '', releaseTime: ''
}, }
}; };
},
computed: {
currentId () {
return this.$route.params.newsId;
}, },
recommendData () { computed: {
return [].concat( currentId() {
this.newsDetail.slideshowMap?.previous ? [this.newsDetail.slideshowMap.previous] : [], return this.$route.params.newsId;
[this.newsDetail],
this.newsDetail.slideshowMap?.nextArticle ? [this.newsDetail.slideshowMap.nextArticle] : [],
);
},
},
watch: {
currentId: {
handler (v) {
document.getElementById('app').scrollTop = 0;
this.getNewsDetail(v);
}, },
immediate: true, recommendData() {
}, return [].concat(
}, this.newsDetail.slideshowMap?.previous
created () { ? [this.newsDetail.slideshowMap.previous]
this.$event.$emit('nav-theme', 'light'); : [],
this.getScreen1Banner(); [this.newsDetail],
}, this.newsDetail.slideshowMap?.nextArticle
methods: { ? [this.newsDetail.slideshowMap.nextArticle]
async getScreen1Banner () { : []
try {
const res = await this.$request.get(
'/official/index/list',
{ params: { pageNum: 1, pageSize: 1, captionName: '投资与合作/投资者/详情banner' } },
); );
this.screen1.bannerUrl = res.rows[0].imageurl; }
} catch (error) {}
}, },
async getNewsDetail (currentNewsId) { watch: {
try { currentId: {
const res = await this.$request.get('/official/slideshow/' + currentNewsId); handler(v) {
this.newsDetail = res.data; document.getElementById('app').scrollTop = 0;
this.prevNewsId = res.data.slideshowMap.previous?.id || ''; this.getNewsDetail(v);
this.nextNewsId = res.data.slideshowMap.nextArticle?.id || ''; },
} catch (error) {} immediate: true
}
}, },
}, created() {
}; this.$event.$emit('nav-theme', 'light');
this.getScreen1Banner();
},
methods: {
async getScreen1Banner() {
try {
const res = await this.$request.get('/official/index/list', {
params: {
pageNum: 1,
pageSize: 1,
captionName: '投资与合作//详情banner'
}
});
this.screen1.bannerUrl = res.rows[0].imageurl;
} catch (error) {}
},
async getNewsDetail(currentNewsId) {
try {
const res = await this.$request.get(
'/official/slideshow/' + currentNewsId
);
this.newsDetail = res.data;
this.prevNewsId = res.data.slideshowMap.previous?.id || '';
this.nextNewsId = res.data.slideshowMap.nextArticle?.id || '';
} catch (error) {}
}
}
};
</script> </script>
<style scoped> <style scoped>
.page-news-detail{ .page-news-detail {
width: 100%; width: 100%;
overflow-x: hidden; overflow-x: hidden;
} }
.screen1 { .screen1 {
min-height: 600rem; min-height: 600rem;
} }
.screen2 { .screen2 {
background-color: #ffffff; background-color: #ffffff;
padding-top: 135rem; padding-top: 135rem;
padding-bottom: 90rem; padding-bottom: 90rem;
} }
.screen2 .news-title { .screen2 .news-title {
text-align: center; text-align: center;
font-family: MicrosoftYaHei; font-family: MicrosoftYaHei;
font-weight: 400; font-weight: 400;
font-size: 30rem; font-size: 30rem;
color: #111111; color: #111111;
line-height: 36rem; line-height: 36rem;
} }
.screen2 .news-info { .screen2 .news-info {
height: 58rem; height: 58rem;
padding-top: 50rem; padding-top: 50rem;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
border-bottom: 1rem solid #999999; border-bottom: 1rem solid #999999;
font-family: MicrosoftYaHei; font-family: MicrosoftYaHei;
font-weight: 400; font-weight: 400;
font-size: 16rem; font-size: 16rem;
color: #999999; color: #999999;
line-height: 36rem; line-height: 36rem;
} }
.screen2 .news-content { .screen2 .news-content {
font-family: MicrosoftYaHeiLight; font-family: MicrosoftYaHeiLight;
font-weight: 400; font-weight: 400;
font-size: 18rem; font-size: 18rem;
color: #111111; color: #111111;
line-height: 36rem; line-height: 36rem;
margin-top: 30rem; margin-top: 30rem;
} }
.screen2 .news-content >>> p { .screen2 .news-content >>> p {
margin-bottom: 10rem; margin-bottom: 10rem;
} }
.screen3 { .screen3 {
height: auto; height: auto;
display: flex; display: flex;
padding: 10rem; padding: 10rem;
background-color: #f5f5f5; background-color: #f5f5f5;
} }
.screen3 .title { .screen3 .title {
font-family: MicrosoftYaHei; font-family: MicrosoftYaHei;
font-weight: 400; font-weight: 400;
font-size: 24rem; font-size: 24rem;
line-height: 88rem; line-height: 88rem;
color: #141414; color: #141414;
} }
.screen3 .news-wrapper { .screen3 .news-wrapper {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
} }
.screen3 .news-item { .screen3 .news-item {
width: 430rem; width: 430rem;
height: 505rem; height: 505rem;
border-radius: 10rem; border-radius: 10rem;
background-color: #ffffff; background-color: #ffffff;
box-shadow: rgba(28, 28, 30, 0.05) 0rem 0rem 2rem 0rem, rgba(28, 28, 30, 0.05) 0rem 8rem 16rem 0rem; box-shadow: rgba(28, 28, 30, 0.05) 0rem 0rem 2rem 0rem,
overflow: hidden; rgba(28, 28, 30, 0.05) 0rem 8rem 16rem 0rem;
margin-bottom: 60rem; overflow: hidden;
cursor: pointer; margin-bottom: 60rem;
position: relative; cursor: pointer;
z-index: 1; position: relative;
} z-index: 1;
.screen3 .news-item:not(:nth-of-type(3n)) { }
margin-right: calc((1400rem - 430rem * 3) / 2); .screen3 .news-item:not(:nth-of-type(3n)) {
} margin-right: calc((1400rem - 430rem * 3) / 2);
.screen3 .news-item:hover { }
box-shadow: rgba(28, 28, 30, 0.1) 0rem 0rem 2rem 0rem, rgba(28, 28, 30, 0.1) 0rem 8rem 16rem 0rem; .screen3 .news-item:hover {
z-index: 10; box-shadow: rgba(28, 28, 30, 0.1) 0rem 0rem 2rem 0rem,
} rgba(28, 28, 30, 0.1) 0rem 8rem 16rem 0rem;
.screen3 .news-cover { z-index: 10;
width: 510rem; }
height: 302rem; .screen3 .news-cover {
overflow: hidden; width: 510rem;
} height: 302rem;
.screen3 .news-cover img { overflow: hidden;
transition: transform 0.4s; }
width: 100%; .screen3 .news-cover img {
} transition: transform 0.4s;
.screen3 .news-cover:hover img { width: 100%;
transform: scale(1.1, 1.1); }
} .screen3 .news-cover:hover img {
.screen3 .news-info { transform: scale(1.1, 1.1);
padding: 55rem 35rem 0; }
} .screen3 .news-info {
.screen3 .news-info .title { padding: 55rem 35rem 0;
font-family: MicrosoftYaHei; }
font-weight: 400; .screen3 .news-info .title {
font-size: 16rem; font-family: MicrosoftYaHei;
line-height: 16rem; font-weight: 400;
color: #000000; font-size: 16rem;
white-space: nowrap; line-height: 16rem;
overflow: hidden; color: #000000;
text-overflow: ellipsis; white-space: nowrap;
margin-bottom: 16rem; overflow: hidden;
} text-overflow: ellipsis;
.screen3 .news-info .abstracts { margin-bottom: 16rem;
font-family: MicrosoftYaHei; }
font-weight: 400; .screen3 .news-info .abstracts {
font-size: 12rem; font-family: MicrosoftYaHei;
line-height: 14rem; font-weight: 400;
color: #666666; font-size: 12rem;
margin-bottom: 20rem; line-height: 14rem;
} color: #666666;
.screen3 .news-info .date { margin-bottom: 20rem;
font-family: MicrosoftYaHeiLight; }
font-weight: 400; .screen3 .news-info .date {
font-size: 12rem; font-family: MicrosoftYaHeiLight;
line-height: 12rem; font-weight: 400;
color: #666666; font-size: 12rem;
} line-height: 12rem;
.ql-editor { color: #666666;
padding-left: 0; }
padding-right: 0; .ql-editor {
} padding-left: 0;
.news-content >>> .ql-align-center { padding-right: 0;
width: 100%; }
} .news-content >>> .ql-align-center {
.news-content >>> .ql-align-center img { width: 100%;
width: 100%!important; }
} .news-content >>> .ql-align-center img {
width: 100% !important;
}
</style> </style>