Parcourir la source

add api

master
chutingting il y a 4 ans
Parent
révision
4b36b660b7
18 fichiers modifiés avec 515 ajouts et 165 suppressions
  1. +18
    -6
      package-lock.json
  2. +2
    -0
      package.json
  3. +86
    -0
      src/api/home/index.js
  4. +5
    -0
      src/api/index.js
  5. +48
    -0
      src/api/request.js
  6. +13
    -4
      src/components/consult/consult.vue
  7. +3
    -2
      src/components/partner/partnerBox.vue
  8. +37
    -26
      src/components/sidebar/sidebar.vue
  9. +1
    -1
      src/components/slideshow/slideshow.vue
  10. +55
    -14
      src/page/cultivate/excellent.vue
  11. +28
    -3
      src/page/cultivate/particulars.vue
  12. +20
    -11
      src/page/cultivate/partner.vue
  13. +62
    -37
      src/page/home/home.vue
  14. +0
    -48
      src/page/journalism/details.vue
  15. +96
    -5
      src/page/journalism/journalism.vue
  16. +19
    -7
      src/page/serve/frame.vue
  17. +6
    -0
      src/router/index.js
  18. +16
    -1
      vue.config.js

+ 18
- 6
package-lock.json Voir le fichier

@@ -2204,7 +2204,7 @@
},
"async-validator": {
"version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.8.5.tgz?cache=0&sync_timestamp=1596625482773&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-validator%2Fdownload%2Fasync-validator-1.8.5.tgz",
"resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.8.5.tgz?cache=0&sync_timestamp=1596625258256&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-validator%2Fdownload%2Fasync-validator-1.8.5.tgz",
"integrity": "sha1-3D4I7B/Q3dtn5ghC8CwM0c7G1/A=",
"requires": {
"babel-runtime": "6.x"
@@ -2249,6 +2249,14 @@
"integrity": "sha1-oXs6jqgRBg501H0wYSJACtRJeuI=",
"dev": true
},
"axios": {
"version": "0.20.0",
"resolved": "https://registry.npm.taobao.org/axios/download/axios-0.20.0.tgz?cache=0&sync_timestamp=1597979791211&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faxios%2Fdownload%2Faxios-0.20.0.tgz",
"integrity": "sha1-BXujDwSIRpSZOozQf6OUz/EcUL0=",
"requires": {
"follow-redirects": "^1.10.0"
}
},
"babel-eslint": {
"version": "10.1.0",
"resolved": "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.1.0.tgz",
@@ -2306,7 +2314,7 @@
},
"regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&sync_timestamp=1595456511811&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz",
"resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz",
"integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk="
}
}
@@ -4345,7 +4353,7 @@
},
"element-ui": {
"version": "2.13.2",
"resolved": "https://registry.npm.taobao.org/element-ui/download/element-ui-2.13.2.tgz",
"resolved": "https://registry.npm.taobao.org/element-ui/download/element-ui-2.13.2.tgz?cache=0&sync_timestamp=1589795164194&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felement-ui%2Fdownload%2Felement-ui-2.13.2.tgz",
"integrity": "sha1-WCv0eqqqr+I+oZWPriF6aHrQZEc=",
"requires": {
"async-validator": "~1.8.1",
@@ -5297,8 +5305,7 @@
"follow-redirects": {
"version": "1.12.1",
"resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.12.1.tgz?cache=0&sync_timestamp=1592518348860&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.12.1.tgz",
"integrity": "sha1-3lSmIFMRuT1gOY68Ac9wFWgjErY=",
"dev": true
"integrity": "sha1-3lSmIFMRuT1gOY68Ac9wFWgjErY="
},
"for-in": {
"version": "1.0.2",
@@ -7194,6 +7201,11 @@
"minimist": "^1.2.5"
}
},
"moment": {
"version": "2.28.0",
"resolved": "https://registry.npm.taobao.org/moment/download/moment-2.28.0.tgz",
"integrity": "sha1-zf5zzgEyfO5lN7D6+sLg8hojfXU="
},
"move-concurrently": {
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz",
@@ -10425,7 +10437,7 @@
},
"throttle-debounce": {
"version": "1.1.0",
"resolved": "https://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrottle-debounce%2Fdownload%2Fthrottle-debounce-1.1.0.tgz",
"resolved": "https://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz?cache=0&sync_timestamp=1597223522218&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrottle-debounce%2Fdownload%2Fthrottle-debounce-1.1.0.tgz",
"integrity": "sha1-UYU9o3vmihVctugns1FKPEIuic0="
},
"through": {


+ 2
- 0
package.json Voir le fichier

@@ -8,8 +8,10 @@
"lint": "vue-cli-service lint"
},
"dependencies": {
"axios": "^0.20.0",
"core-js": "^3.6.5",
"element-ui": "^2.13.2",
"moment": "^2.28.0",
"vue": "^2.6.11",
"vue-router": "^3.2.0",
"vuex": "^3.4.0"


+ 86
- 0
src/api/home/index.js Voir le fichier

@@ -0,0 +1,86 @@
import request from "../request.js"

var services = {
/* 获取轮播图 */
getBannerList(params) {
return request({
url: "/api/yjyBanner/list",
method: "get",
params: {
pageNum: params.pageNum,
pageSize: params.pageSize
}
})
},
/* 合作伙伴 */
getPartnersList(params) {
return request({
url: "/api/yjyPartners/list",
method: "get",
params: {
pageNum: params.pageNum,
pageSize: params.pageSize
}
})
},
/* 新闻列表 */
getNewsList(params) {
return request({
url: "/api/yjyNews/list",
method: "get",
params: {
pageNum: params.pageNum,
pageSize: params.pageSize,
type: params.type
}
})
},
/* 新闻列表详情 */
getNewsDetail(id) {
return request({
url: "/api/yjyNews/findById",
method: "get",
params: {
id: id
}
})
},
/* 获取浏览次数 */
/* getView(params) {
let url = params.tag === 'news' ? '/api/yjyNews/viewById' : ''
return request({
url: url,
method: "get",
params: {
id: params.id
}
})
}, */
/* 首页留言 */
addConsumerInto(data) {
return request({
url: "/api/yjyConsumerInto/add",
method: "post",
data: {
businessName: data.businessName,
liaisonMan: data.liaisonMan,
liaisonPhone: data.liaisonPhone
}
})
},
/* 我要应聘 */
addCandidates(data) {
return request({
url: "/api/yjyCandidates/add",
method: "post",
data: {
liaisonEmail: data.liaisonEmail,
liaisonMan: data.liaisonMan,
liaisonPhone: data.liaisonPhone,
explains: data.explains
}
})
}
}

export default services

+ 5
- 0
src/api/index.js Voir le fichier

@@ -0,0 +1,5 @@
import homeService from "./home/index"

export {
homeService
}

+ 48
- 0
src/api/request.js Voir le fichier

@@ -0,0 +1,48 @@
import axios from "axios"
import { Message } from "element-ui"

// request拦截器
axios.interceptors.request.use(
config => {
return config
},
error => {
// Do something with request error
console.log("interceptors.request.use receive error")
console.log(error) // for debug
Promise.reject(error)
}
)

// respone拦截器
axios.interceptors.response.use(
response => {
/**
* code为非200是抛错 可结合自己业务进行修改
*/
const res = response.data
if (res.code === 200) {
return res.data
} else {
Message({
message: '异常',
type: "error",
duration: 2 * 1000
})
return Promise.reject(res)
}
},
error => {
Message({
message: '参数异常',
type: "error",
duration: 5 * 1000
})
return Promise.reject({
data: error,
message: '参数异常'
})
}
)

export default axios

+ 13
- 4
src/components/consult/consult.vue Voir le fichier

@@ -61,6 +61,7 @@
<script>
import { homeService } from "@/api"
export default {
data() {
return {
@@ -75,10 +76,18 @@ export default {
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
console.log(
this.dynamicValidateForm.uesrName,
this.dynamicValidateForm.enterpriseName
);
let data = {
businessName: this.dynamicValidateForm.enterpriseName,
liaisonMan: this.dynamicValidateForm.uesrName,
liaisonPhone: this.dynamicValidateForm.phone
}
homeService.addConsumerInto(data).then(res => {
this.$message({
message: "提交成功",
type: "success",
duration: 1 * 1000
})
})
} else {
console.log("error submit!!");
return false;


+ 3
- 2
src/components/partner/partnerBox.vue Voir le fichier

@@ -2,14 +2,15 @@
<div>
<div class="bank">
<img class="img" :src="url" >
<a href class="url">www.baidu.com</a>
<a :href="link" target="_blank" class="url">{{link}}</a>
</div>
</div>
</template>
<script>
export default {
props:{
url:String
url: String,
link: String
}
}
</script>


+ 37
- 26
src/components/sidebar/sidebar.vue Voir le fichier

@@ -13,36 +13,22 @@
<div class="makeBtn" @click="go('companySynopsis')">预约服务</div>
<div class="journalismTitle">
<div>新闻中心</div>
<p>MORE</p>
<p @click="moreNews">MORE</p>
</div>
<div class="journalismBox" @click="goparticulars">
<img class="logo" src="../../assets/img/journalism/on1.png" />
<div class="journalismText">
<h3>新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻</h3>
<span>内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容</span>
<div class="time">2020-08-06</div>
<div class="journalismBox" v-for="(item, index) in newsList" :key="index" @click="goparticulars(item)">
<img class="logo" :src="item.mainPicRealPath" alt />
<div class="journalismText">
<h3>{{item.title}}</h3>
<span>{{item.assistantTitle}}</span>
<div class="time">{{item.publishDate}} <span class="el-icon-view"> {{item.view}}</span></div>
</div>
</div>
</div>
<div class="journalismBox" @click="goparticulars">
<img class="logo" src="../../assets/img/journalism/on1.png" />
<div class="journalismText">
<h3>新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻</h3>
<span>内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容</span>
<div class="time">2020-08-06</div>
</div>
</div>
<div class="journalismBox" @click="goparticulars">
<img class="logo" src="../../assets/img/journalism/on1.png" />
<div class="journalismText">
<h3>新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻</h3>
<span>内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容</span>
<div class="time">2020-08-06</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { homeService } from "@/api"
import moment from "moment"
export default {
data() {
return {
@@ -64,15 +50,17 @@ export default {
text: "了解更多",
},
],
activity:sessionStorage.getItem("sidebarIndex")
activity:sessionStorage.getItem("sidebarIndex"),
newsList: []
};
},
methods: {
goparticulars() {
goparticulars(item) {
this.$router.push({
path: "/particulars",
query: {
ifjournalism: 2,
id: item.id
},
});
},
@@ -80,7 +68,26 @@ export default {
this.$router.push(path);
sessionStorage.setItem('sidebarIndex',index)
},
getNewsList() {
let data = {
type: 1,
pageNum: 1,
pageSize: 3
}
homeService.getNewsList(data).then(res => {
res.list.forEach(ele => {
ele.publishDate = moment(ele.publishDate).format("YYYY-MM-DD")
});
this.newsList = res.list
})
},
moreNews() {
this.$router.push('/journalism');
}
},
created() {
this.getNewsList()
}
};
</script>
<style lang="scss" scoped>
@@ -136,6 +143,7 @@ export default {
height: 45px;
float: right;
margin-right: 10px;
cursor: pointer;
}
}
.journalismBox {
@@ -174,6 +182,9 @@ export default {
.time {
color: rgb(214, 214, 206);
padding: 2px 0;
span{
float: right;
}
}
}
}


+ 1
- 1
src/components/slideshow/slideshow.vue Voir le fichier

@@ -2,7 +2,7 @@
<div class="Box">
<el-carousel :interval="4000" type="card" height="323px">
<el-carousel-item v-for="(item,index) in list" :key="index">
<img :src="item.url" style="width: 600px;
<img :src="item.mainPicRealPath" style="width: 600px;
height: 323px;" />
</el-carousel-item>
</el-carousel>


+ 55
- 14
src/page/cultivate/excellent.vue Voir le fichier

@@ -2,16 +2,15 @@
<div class="Box">
<div class="leftBox">
<textTitle text="优秀案例"/>
<ul class="imgBox">
<li v-for="(item, index) in 4" :key="index">
<div class="casesBox" @click="goparticulars">
<cases/>
<div class="imgBox" v-for="(item, index) in list" :key="index">
<div class="casesBox" @click="goparticulars(item)">
<div class="imgBox">
<img class="img" :src="item.mainPicRealPath" >
<h1>{{item.title}}</h1>
<span>培训时间:{{item.publishDate}}</span>
</div>
</div>
<div class="casesBox">
<cases/>
</div>
</li>
</ul>
</div>
</div>
<sidebar/>
</div>
@@ -19,22 +18,47 @@
<script>
import textTitle from "@/components/headTail/textTitle";
import sidebar from "@/components/sidebar/sidebar";
import cases from "@/components/partner/case";
/* import cases from "@/components/partner/case";
*/import { homeService } from "@/api"
import moment from "moment"
export default {
components: {
textTitle,
sidebar,
cases,
/* cases, */
},
data() {
return {
list: []
}
},
methods:{
goparticulars(){
goparticulars(item){
this.$router.push({
path:'/particulars',
query:{
ifjournalism:1
ifjournalism:1,
id: item.id
}
})
}
},
/* 新闻列表 */
getList() {
let d = {
type: 2,
pageNum: 1,
pageSize: 1000
}
homeService.getNewsList(d).then(res => {
res.list.forEach(ele => {
ele.publishDate = moment(ele.publishDate).format("YYYY-MM-DD")
});
this.list = res.list
})
}
},
created() {
this.getList()
}
};
</script>
@@ -49,4 +73,21 @@ export default {
margin-left: 20px;
margin-right: 20px;
}
.imgBox{
margin: 10px 30px;
.img{
width: 300px;
height: 200px;
// background-color: sandybrown;
}
h1{
text-align: center;
font-size: 18px;
margin: 10px 0;
}
span{
display: block;
text-align: center;
}
}
</style>

+ 28
- 3
src/page/cultivate/particulars.vue Voir le fichier

@@ -2,10 +2,15 @@
<div class="Box">
<div class="leftBox">
<textTitle :text="textTop" />
<div>
<!-- <div>
<h1 class="titels">{{this.ifjournalism==1?'中国农业银行礼仪培训':'新闻标题'}}</h1>
<p >{{this.ifjournalism==1?'培训时间:2019年3月1日':"2019年3月1日"}}</p>
<img class="particularsBox" src="../../assets/img/journalism/on2.png" alt="">
</div> -->
<div>
<h1 class="titels">{{data.title}}</h1>
<p >{{data.publishDate}}</p>
<div v-html="data.content"></div>
</div>
</div>
<sidebar />
@@ -14,6 +19,8 @@
<script>
import textTitle from "@/components/headTail/textTitle";
import sidebar from "@/components/sidebar/sidebar";
import moment from "moment"
import { homeService } from "@/api"
export default {
components: {
textTitle,
@@ -22,10 +29,28 @@ export default {
data() {
return {
textTop :"优秀案例",
ifjournalism:1 ,//1 => 优秀案例 2 =>新闻详情
ifjournalism:1 ,//1 => 优秀案例 2 =>新闻详情,
id: this.$route.query.id,
data: {}
}
},
mounted() {
methods: {
getDetail() {
homeService.getNewsDetail(this.id).then(res => {
res.publishDate = moment(res.publishDate).format("YYYY-MM-DD")
this.data = res
})
},
/* getView() {
let data = {
tag: this.$route.query.ifjournalism === "2" ? 'news' : '',
id: this.id
}
homeService.getView(data).then(res => {})
} */
},
created() {
this.getDetail()
if(this.$route.query.ifjournalism){
this.ifjournalism = this.$route.query.ifjournalism
console.log(this.ifjournalism);


+ 20
- 11
src/page/cultivate/partner.vue Voir le fichier

@@ -2,16 +2,9 @@
<div class="Box">
<div class="leftBox">
<textTitle text="合作伙伴"/>
<ul style="overflow: hidden;">
<li v-for="(item, index) in 4" :key="index" style="overflow: hidden;">
<div class="partner">
<partnerBox :url="partnerUrl"/>
</div>
<div class="partner">
<partnerBox :url="partnerUrl"/>
</div>
</li>
</ul>
<div class="partner" v-for="(item, index) in partnersList" :key="index">
<partnerBox :url="item.assistantPicRealPath" :link="item.linkUrl"/>
</div>
</div>
<sidebar />
</div>
@@ -20,6 +13,8 @@
import textTitle from "@/components/headTail/textTitle";
import sidebar from "@/components/sidebar/sidebar";
import partnerBox from "@/components/partner/partnerBox"
import { homeService } from "@/api"
export default {
components:{
textTitle,
@@ -28,9 +23,23 @@ export default {
},
data() {
return {
partnerUrl:require('../../assets/img/cooperation/on1.png')
partnersList: []
}
},
methods: {
getPartnersList() {
let d = {
pageNum: 1,
pageSize: 1000
}
homeService.getPartnersList(d).then(res => {
this.partnersList = res.list
})
}
},
created() {
this.getPartnersList()
}
}
</script>


+ 62
- 37
src/page/home/home.vue Voir le fichier

@@ -37,43 +37,23 @@
</div>
<div class="partnerBox">
<div class="title">合作伙伴</div>
<div class="partner" v-for="(item, index) in 3" :key="index">
<partnerBox :url="partnerUrl" />
<div class="partner" v-for="(item, index) in partnersList" :key="index">
<partnerBox :url="item.mainPicRealPath" :link="item.linkUrl" />
</div>
</div>
</div>
<div class="right">
<div class="journalismTitle">
<p>新闻中心</p>
<span>MORE</span>
</div>
<div class="journalismBox" @click="goparticulars">
<img class="logo" src="../../assets/img/journalism/on1.png" alt />
<div class="journalismText">
<h3>新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻</h3>
<span>内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容</span>
<div class="time">2020-08-06</div>
</div>
</div>
<div class="journalismBox" @click="goparticulars">
<img class="logo" src="../../assets/img/journalism/on1.png" alt />
<div class="journalismText">
<h3>新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻</h3>
<span>内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容</span>
<div class="time">2020-08-06</div>
</div>
<span @click="moreNews">MORE</span>
</div>
<div class="journalismBox" @click="goparticulars">
<img class="logo" src="../../assets/img/journalism/on1.png" alt />
<div class="journalismBox" v-for="(item, index) in newsList" :key="index" @click="goparticulars(item)">
<img class="logo" :src="item.mainPicRealPath" alt />
<div class="journalismText">
<h3>新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻新闻</h3>
<span>内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容</span>
<div class="time">2020-08-06</div>
<h3>{{item.title}}</h3>
<span>{{item.assistantTitle}}</span>
<div class="time">{{item.publishDate}} <span class="el-icon-view"> {{item.view}}</span></div>
</div>
</div>
@@ -88,6 +68,8 @@ import slideshow from "@/components/slideshow/slideshow";
import consult from "@/components/consult/consult";
import textTitle from "@/components/headTail/textTitle";
import partnerBox from "@/components/partner/partnerBox";
import { homeService } from "@/api"
import moment from "moment"
export default {
components: {
slideshow,
@@ -97,28 +79,67 @@ export default {
},
data() {
return {
slideList: [
{ url: require("../../assets/img/slideshow/1.png") },
{ url: require("../../assets/img/slideshow/2.png") },
{ url: require("../../assets/img/slideshow/1.png") },
{ url: require("../../assets/img/slideshow/2.png") },
],
partnerUrl: require("../../assets/img/cooperation/on1.png"),
slideList: [],
partnersList: [],
newsList: []
};
},
methods: {
goparticulars() {
/* 轮播图 */
getSlideList() {
let data = {
pageNum: 1,
pageSize: 100
}
homeService.getBannerList(data).then(res => {
this.slideList = res.list
})
},
/* 左侧合作伙伴 */
getPartnersList() {
let data = {
pageNum: 1,
pageSize: 5
}
homeService.getPartnersList(data).then(res => {
this.partnersList = res.list
})
},
/* 新闻列表 */
getNewsList() {
let data = {
type: 1,
pageNum: 1,
pageSize: 3
}
homeService.getNewsList(data).then(res => {
res.list.forEach(ele => {
ele.publishDate = moment(ele.publishDate).format("YYYY-MM-DD")
});
this.newsList = res.list
})
},
moreNews() {
this.$router.push('/journalism');
},
goparticulars(item) {
this.$router.push({
path: "/particulars",
query: {
ifjournalism: 2,
},
id: item.id
}
});
},
go(path) {
this.$router.push(`/${path}`);
},
},
created() {
this.getSlideList()
this.getPartnersList()
this.getNewsList()
}
};
</script>
@@ -279,6 +300,7 @@ export default {
line-height: 45px;
text-indent: 30px;
float: left;
cursor: pointer;
}
span {
height: 45px;
@@ -324,6 +346,9 @@ export default {
line-height: 19px;
color: rgb(214, 214, 206);
padding: 10px 0;
span{
float: right;
}
}
}
}


+ 0
- 48
src/page/journalism/details.vue Voir le fichier

@@ -1,48 +0,0 @@
<template>
<div class="detailBox">
<h3>标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题</h3>
<div class="imgBox">
<img class="img" src="../../assets/img/journalism/on1.png" />
<div class="text">
<p>内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容</p>
<span class="time">2020-8-07</span>
</div>
</div>
</div>
</template>
<style lang="scss" scoped>
.detailBox {
margin-top: 30px;
margin-left: 20px;
h3 {
font-size: 14px;
padding-bottom: 20px;
}
.imgBox {
overflow: hidden;
.img {
float: left;
width: 150px;
height: 100px;
}
.text {
float: left;
width: 630px;
height: 100px;
margin-left: 20px;
p {
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
line-height: 20px;
overflow: hidden;
}
.time {
display: block;
margin-top: 20px;
}
}
}
}
</style>

+ 96
- 5
src/page/journalism/journalism.vue Voir le fichier

@@ -2,9 +2,24 @@
<div class="Box">
<div class="leftBox">
<textTitle text="新闻咨询" />
<div @click="goparticulars">
<detail v-for="(item, index) in 5" :key="index" />
<!-- <div @click="goparticulars">
<detail v-for="(item, index) in newsList" :key="index" />
</div> -->
<div class="detailBox" v-for="(item, index) in newsList" :key="index" @click="goparticulars(item)">
<h3>{{item.title}}</h3>
<div class="imgBox">
<img class="img" :src="item.mainPicRealPath" />
<div class="text">
<p>{{item.assistantTitle}}</p>
<span class="time">{{item.publishDate}} <span class="el-icon-view"> {{item.view}}</span></span>
</div>
</div>
</div>
<el-pagination :current-page.sync="paging.pageNum"
background
layout="prev, pager, next"
:total="paging.total">
</el-pagination>
</div>
<sidebar />
</div>
@@ -12,22 +27,98 @@
<script>
import textTitle from "@/components/headTail/textTitle";
import sidebar from "@/components/sidebar/sidebar";
import detail from "./details";
import { homeService } from "@/api"
import moment from "moment"
export default {
components: {
textTitle,
sidebar,
detail,
},
data() {
return {
newsList: [],
paging: {
pageNum: 1,
pageSize: 4,
total: 4
}
}
},
methods: {
goparticulars() {
goparticulars(item) {
this.$router.push({
path: "/particulars",
query: {
ifjournalism: 2,
id: item.id
},
});
},
/* 新闻列表 */
getNewsList() {
let d = {
type: 1,
pageNum: this.paging.pageNum,
pageSize: this.paging.pageSize
}
homeService.getNewsList(d).then(res => {
res.list.forEach(ele => {
ele.publishDate = moment(ele.publishDate).format("YYYY-MM-DD")
});
this.paging.total = Number(res.total)
this.newsList = res.list
})
}
},
created() {
this.getNewsList()
}
};
</script>
<style lang="scss" scoped>
.el-pagination{
text-align: center;
margin-top: 20px;
}
.detailBox {
margin-top: 30px;
margin-left: 20px;
h3 {
font-size: 14px;
padding-bottom: 20px;
}
.imgBox {
overflow: hidden;
.img {
float: left;
width: 150px;
height: 100px;
}
.text {
float: left;
width: 630px;
height: 100px;
margin-left: 20px;
position: relative;
p {
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
line-height: 20px;
overflow: hidden;
}
.time {
display: block;
margin-top: 20px;
position: absolute;
bottom: 0;
width: 100%;
span{
float: right;
}
}
}
}
}
</style>

+ 19
- 7
src/page/serve/frame.vue Voir le fichier

@@ -31,13 +31,14 @@
prop="email"
:rules="[
{required: true, message: '请输入邮箱', trigger: 'blur'},
{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }
]"
>
<el-input v-model="dynamicValidateForm.email"></el-input>
</el-form-item>
<el-form-item label="说明">
<el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="textarea"></el-input>
<el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="dynamicValidateForm.explains"></el-input>
</el-form-item>
<el-form-item style=" text-align: center;">
@@ -53,6 +54,8 @@
</template>
<script>
import { homeService } from "@/api"
export default {
data() {
return {
@@ -60,18 +63,27 @@ export default {
uesrName: "",
email: "",
phone: "",
},
textarea:"",
explains: ""
}
};
},
methods: {
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
console.log(
this.dynamicValidateForm,
this.textarea
);
let data = {
liaisonEmail: this.dynamicValidateForm.email,
liaisonMan: this.dynamicValidateForm.uesrName,
liaisonPhone: this.dynamicValidateForm.phone,
explains: this.dynamicValidateForm.explains
}
homeService.addCandidates(data).then(res => {
this.$message({
message: "提交成功",
type: "success",
duration: 1 * 1000
})
})
} else {
console.log("error submit!!");
return false;


+ 6
- 0
src/router/index.js Voir le fichier

@@ -110,6 +110,12 @@ const routes = [
},
]

const originalPush = VueRouter.prototype.push

VueRouter.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => err)
}

const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,


+ 16
- 1
vue.config.js Voir le fichier

@@ -1,3 +1,8 @@
const path = require('path');
function resolve(dir) {
return path.join(__dirname, dir);
}
module.exports = {
devServer: {
overlay: {
@@ -12,9 +17,19 @@ module.exports = {
'^/qwer': ''
}
},
'/api': {
target: 'http://plat.yjyculture.com/C/',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
},
}
},
lintOnSave: false,
chainWebpack: (config) => {
config.resolve.alias
.set('@', resolve('src'))
}
}

Chargement…
Annuler
Enregistrer