|
@@ -23,6 +23,12 @@
|
|
|
:sort-type.sync="sortType"
|
|
:sort-type.sync="sortType"
|
|
|
:is-choice.sync="isChoice"
|
|
:is-choice.sync="isChoice"
|
|
|
)
|
|
)
|
|
|
|
|
+ .result-msg(
|
|
|
|
|
+ v-if="catName || topCatName"
|
|
|
|
|
+ slot="right"
|
|
|
|
|
+ )
|
|
|
|
|
+ h1 {{(catName || topCatName).replace(/方案$/, '')}}解决方案
|
|
|
|
|
+ .total ({{solutionList.length}})
|
|
|
#solution-list.list.container.is-content
|
|
#solution-list.list.container.is-content
|
|
|
SolutionCell(
|
|
SolutionCell(
|
|
|
v-for="row in solutionList"
|
|
v-for="row in solutionList"
|
|
@@ -58,10 +64,10 @@ import { listBanners, listSearchKeywords, getInitParameters } from '../apis/comm
|
|
|
import { listSolutions } from '../apis/solution'
|
|
import { listSolutions } from '../apis/solution'
|
|
|
import { SolutionListMixin } from '../mixins/solution'
|
|
import { SolutionListMixin } from '../mixins/solution'
|
|
|
import { parseCatIdAndServiceType, genCatIdSearchSentence, scrollToElement } from '../utils/misc'
|
|
import { parseCatIdAndServiceType, genCatIdSearchSentence, scrollToElement } from '../utils/misc'
|
|
|
|
|
+import { genDocumentHeadData, genDocumentFooterData } from '../helpers/seoHelper'
|
|
|
|
|
|
|
|
import ConnectUs from '@/components/common/connectUs.vue'
|
|
import ConnectUs from '@/components/common/connectUs.vue'
|
|
|
import KaifainFooter from '@/components/SeoFooter.vue'
|
|
import KaifainFooter from '@/components/SeoFooter.vue'
|
|
|
-import DealSeoFooter from '@/components/kaifain/dealSeoFooter'
|
|
|
|
|
|
|
|
|
|
export default SolutionListMixin.extend({
|
|
export default SolutionListMixin.extend({
|
|
|
name: 'Home',
|
|
name: 'Home',
|
|
@@ -83,28 +89,29 @@ export default SolutionListMixin.extend({
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
topnavFixed: false,
|
|
topnavFixed: false,
|
|
|
- connectPopupVisible: false
|
|
|
|
|
|
|
+ connectPopupVisible: false,
|
|
|
|
|
+ topCatName: '',
|
|
|
|
|
+ catName: '',
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
head() {
|
|
head() {
|
|
|
- const title = "开发屋-提供网站建设、APP软件、小程序开发及SaaS、PasS、IaaS服务"
|
|
|
|
|
- const keyword = "网站开发,软件APP开发,SaaS,PaaS"
|
|
|
|
|
- const descrption = "开发屋为企业提供行业内领先的技术解决方案,包括行业定制化SaaS、PasS、API数据接口服务以及技术组织,保障企业在降低人力开发成本的同时,得到优质的项目开发实力。"
|
|
|
|
|
|
|
+ const { title, keywords, descrption } = genDocumentHeadData({
|
|
|
|
|
+ catName: this.catName || this.topCatName
|
|
|
|
|
+ })
|
|
|
|
|
|
|
|
return {
|
|
return {
|
|
|
- title: title,
|
|
|
|
|
|
|
+ title,
|
|
|
meta: [
|
|
meta: [
|
|
|
{
|
|
{
|
|
|
- name: "keywords",
|
|
|
|
|
- content: keyword,
|
|
|
|
|
|
|
+ name: 'keywords',
|
|
|
|
|
+ content: keywords,
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- name: "descrption",
|
|
|
|
|
- content: descrption,
|
|
|
|
|
|
|
+ name: 'descrption',
|
|
|
|
|
+ content: descrption
|
|
|
}
|
|
}
|
|
|
- ],
|
|
|
|
|
- // link: [{ rel: "canonical", href: canonical }],
|
|
|
|
|
|
|
+ ]
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
|
|
@@ -150,7 +157,9 @@ export default SolutionListMixin.extend({
|
|
|
|
|
|
|
|
const {
|
|
const {
|
|
|
topCatId,
|
|
topCatId,
|
|
|
|
|
+ topCatName,
|
|
|
catId,
|
|
catId,
|
|
|
|
|
+ catName,
|
|
|
serviceType,
|
|
serviceType,
|
|
|
matchedCatIds
|
|
matchedCatIds
|
|
|
} = parseCatIdAndServiceType({
|
|
} = parseCatIdAndServiceType({
|
|
@@ -173,14 +182,18 @@ export default SolutionListMixin.extend({
|
|
|
throw error({ statusCode: 404, message: 'Post not found (no data)' })
|
|
throw error({ statusCode: 404, message: 'Post not found (no data)' })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- let dealSeoFooterObj = new DealSeoFooter(ctx)
|
|
|
|
|
- let footer = await dealSeoFooterObj.dealData()
|
|
|
|
|
|
|
+ const footer = genDocumentFooterData({
|
|
|
|
|
+ ctx,
|
|
|
|
|
+ classes
|
|
|
|
|
+ })
|
|
|
|
|
|
|
|
return {
|
|
return {
|
|
|
page: ~~page,
|
|
page: ~~page,
|
|
|
sortType: ~~sort,
|
|
sortType: ~~sort,
|
|
|
topCatId,
|
|
topCatId,
|
|
|
|
|
+ topCatName,
|
|
|
catId,
|
|
catId,
|
|
|
|
|
+ catName,
|
|
|
serviceType,
|
|
serviceType,
|
|
|
cityId: city_id || null,
|
|
cityId: city_id || null,
|
|
|
isChoice: !!is_choice || false,
|
|
isChoice: !!is_choice || false,
|
|
@@ -191,7 +204,7 @@ export default SolutionListMixin.extend({
|
|
|
serviceTypes,
|
|
serviceTypes,
|
|
|
solutionList: solutionRes.list || [],
|
|
solutionList: solutionRes.list || [],
|
|
|
solutionTotal: ~~solutionRes.total,
|
|
solutionTotal: ~~solutionRes.total,
|
|
|
- ...footer
|
|
|
|
|
|
|
+ footer
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
|
|
@@ -221,6 +234,26 @@ export default SolutionListMixin.extend({
|
|
|
.home {
|
|
.home {
|
|
|
.main {
|
|
.main {
|
|
|
min-height: 480px;
|
|
min-height: 480px;
|
|
|
|
|
+
|
|
|
|
|
+ .result-msg {
|
|
|
|
|
+ color: #777;
|
|
|
|
|
+ font-size: 0.75rem;
|
|
|
|
|
+ font-weight: 400;
|
|
|
|
|
+ margin: 0 1rem 0 0;
|
|
|
|
|
+
|
|
|
|
|
+ > * {
|
|
|
|
|
+ display: inline-block;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .total {
|
|
|
|
|
+ margin-left: 4px;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ h1 {
|
|
|
|
|
+ font-size: inherit;
|
|
|
|
|
+ font-weight: inherit;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|