Browse Source

Merge branch 'master' of dd.tall.wiki:binbin0314/green.v0.3

master
lucky 5 years ago
parent
commit
15321ef4c2
  1. 204
      package-lock.json
  2. 21
      src/common/platform.styl
  3. 4
      src/components/Introduce/CompanyProfile.vue
  4. 18
      src/components/PlatformList/Fruit.vue
  5. 155
      src/components/PlatformList/PlatformList.vue
  6. 10
      src/config/api.js
  7. 17
      src/router/index.js
  8. 30
      src/store/modules/home/mutations.js
  9. 3
      src/store/modules/home/state.js
  10. 68
      src/views/NewPlatform/Children/Service.vue
  11. 23
      src/views/NewPlatform/Children/ServiceDet.vue
  12. 34
      src/views/NewPlatform/Children/Share.vue
  13. 140
      src/views/NewPlatform/Children/ShareChild/InsDet.vue
  14. 209
      src/views/NewPlatform/Children/ShareChild/Institute.vue
  15. 2
      src/views/NewPlatform/components/HNav.vue

204
package-lock.json

@ -1808,6 +1808,16 @@
"integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
"dev": true
},
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"cacache": {
"version": "13.0.1",
"resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1594427999421&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz",
@ -1840,6 +1850,34 @@
"integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=",
"dev": true
},
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
"integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
"optional": true
},
"css-loader": {
"version": "3.6.0",
"resolved": "https://registry.npm.taobao.org/css-loader/download/css-loader-3.6.0.tgz?cache=0&sync_timestamp=1604507107408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-3.6.0.tgz",
@ -1893,6 +1931,13 @@
"universalify": "^0.1.0"
}
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"optional": true
},
"icss-utils": {
"version": "4.1.1",
"resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz?cache=0&sync_timestamp=1602527330977&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficss-utils%2Fdownload%2Ficss-utils-4.1.1.tgz",
@ -2007,6 +2052,16 @@
"minipass": "^3.1.1"
}
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
},
"terser-webpack-plugin": {
"version": "2.3.8",
"resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.8.tgz?cache=0&sync_timestamp=1603881757308&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-2.3.8.tgz",
@ -2023,6 +2078,32 @@
"terser": "^4.6.12",
"webpack-sources": "^1.4.3"
}
},
"vue-loader-v16": {
"version": "npm:vue-loader@16.1.2",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.1.2.tgz",
"integrity": "sha512-8QTxh+Fd+HB6fiL52iEVLKqE9N1JSlMXLR92Ijm6g8PZrwIxckgpqjPDWRP5TWxdiPaHR+alUWsnu1ShQOwt+Q==",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
},
"dependencies": {
"loader-utils": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
"integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
"dev": true,
"optional": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^2.1.2"
}
}
}
}
}
},
@ -2963,31 +3044,31 @@
},
"bmaplib.curveline": {
"version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/bmaplib.curveline/download/bmaplib.curveline-1.0.0.tgz",
"integrity": "sha1-gm6wvxxZ+tGyMUK+Zvw2DPAJrqI="
"resolved": "https://registry.npmjs.org/bmaplib.curveline/-/bmaplib.curveline-1.0.0.tgz",
"integrity": "sha512-9wcFMVhiYxNPqpvsLDAADn3qDhNzXp2mA6VyHSHg2XOAgSooC7ZiujdFhy0sp+0QYjTfJ/MjmLuNoUg2HHxH4Q=="
},
"bmaplib.heatmap": {
"version": "1.0.4",
"resolved": "https://registry.npm.taobao.org/bmaplib.heatmap/download/bmaplib.heatmap-1.0.4.tgz",
"integrity": "sha1-MBYSYncf54rzVwX/kkV3Jd5dmFA="
"resolved": "https://registry.npmjs.org/bmaplib.heatmap/-/bmaplib.heatmap-1.0.4.tgz",
"integrity": "sha512-rmhqUARBpUSJ9jXzUI2j7dIOqnc38bqubkx/8a349U2qtw/ulLUwyzRD535OrA8G7w5cz4aPKm6/rNvUAarg/Q=="
},
"bmaplib.lushu": {
"version": "1.0.7",
"resolved": "https://registry.npm.taobao.org/bmaplib.lushu/download/bmaplib.lushu-1.0.7.tgz",
"integrity": "sha1-d8F9z3FI0wxG6EMMf/hrIOQYuLg="
"resolved": "https://registry.npmjs.org/bmaplib.lushu/-/bmaplib.lushu-1.0.7.tgz",
"integrity": "sha512-LVvgpESPii6xGxyjnQjq8u+ic4NjvhdCPV/RiSS/PGTUdZKeTDS7prSpleJLZH3ES0+oc0gYn8bw0LtPYUSz2w=="
},
"bmaplib.markerclusterer": {
"version": "1.0.13",
"resolved": "https://registry.npm.taobao.org/bmaplib.markerclusterer/download/bmaplib.markerclusterer-1.0.13.tgz",
"integrity": "sha1-RC1xpsQIRO5H0B9tshZrVFMLW9E=",
"resolved": "https://registry.npmjs.org/bmaplib.markerclusterer/-/bmaplib.markerclusterer-1.0.13.tgz",
"integrity": "sha512-VrLyWSiuDEVNi0yUfwOhFQ6z1oEEHS4w36GNu3iASu6p52QIx9uAXMUkuSCHReNR0bj2Cp9SA1dSx5RpojXajQ==",
"requires": {
"bmaplib.texticonoverlay": "^1.0.2"
}
},
"bmaplib.texticonoverlay": {
"version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/bmaplib.texticonoverlay/download/bmaplib.texticonoverlay-1.0.2.tgz",
"integrity": "sha1-14VG6g8DbZ/pZJg3ljFbbBEqBb8="
"resolved": "https://registry.npmjs.org/bmaplib.texticonoverlay/-/bmaplib.texticonoverlay-1.0.2.tgz",
"integrity": "sha512-4ZTWr4ZP3B6qEWput5Tut16CfZgII38YwM3bpyb4gFTQyORlKYryFp9WHWrwZZaHlOyYDAXG9SX0hka43jTADg=="
},
"bn.js": {
"version": "5.1.3",
@ -7847,8 +7928,8 @@
},
"linkify-it": {
"version": "2.2.0",
"resolved": "https://registry.npm.taobao.org/linkify-it/download/linkify-it-2.2.0.tgz",
"integrity": "sha1-47VGl+eL+RXHCjis14/QngBYsc8=",
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz",
"integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==",
"requires": {
"uc.micro": "^1.0.1"
}
@ -8084,8 +8165,8 @@
},
"markdown-it": {
"version": "8.4.2",
"resolved": "https://registry.npm.taobao.org/markdown-it/download/markdown-it-8.4.2.tgz?cache=0&sync_timestamp=1608478924665&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmarkdown-it%2Fdownload%2Fmarkdown-it-8.4.2.tgz",
"integrity": "sha1-OG+YmY3BWjdyKqdyIIT0Agvdm1Q=",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
"integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==",
"requires": {
"argparse": "^1.0.7",
"entities": "~1.1.1",
@ -8096,8 +8177,8 @@
"dependencies": {
"entities": {
"version": "1.1.2",
"resolved": "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz?cache=0&sync_timestamp=1602897048622&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz",
"integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY="
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
}
}
},
@ -8120,7 +8201,7 @@
},
"mdurl": {
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/mdurl/download/mdurl-1.0.1.tgz",
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
"integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
},
"media-typer": {
@ -12231,8 +12312,8 @@
},
"uc.micro": {
"version": "1.0.6",
"resolved": "https://registry.npm.taobao.org/uc.micro/download/uc.micro-1.0.6.tgz",
"integrity": "sha1-nEEagCpAmpH8bPdAgbq6NLJEmaw="
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
"integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
},
"uglify-js": {
"version": "3.4.10",
@ -12574,8 +12655,8 @@
},
"vue-baidu-map": {
"version": "0.21.22",
"resolved": "https://registry.npm.taobao.org/vue-baidu-map/download/vue-baidu-map-0.21.22.tgz",
"integrity": "sha1-a3apHvNPGKeC1zKrD1QaGjqgaeA=",
"resolved": "https://registry.npmjs.org/vue-baidu-map/-/vue-baidu-map-0.21.22.tgz",
"integrity": "sha512-WQMPCih4UTh0AZCKKH/OVOYnyAWjfRNeK6BIeoLmscyY5aF8zzlJhz/NOHLb3mdztIpB0Z6aohn4Jd9mfCSjQw==",
"requires": {
"bmaplib.curveline": "^1.0.0",
"bmaplib.heatmap": "^1.0.4",
@ -12657,87 +12738,6 @@
}
}
},
"vue-loader-v16": {
"version": "npm:vue-loader@16.1.2",
"resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-16.1.2.tgz?cache=0&sync_timestamp=1608188050165&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-16.1.2.tgz",
"integrity": "sha1-XAO2xQ0qX5g8fOuhXFDXjKKymPQ=",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1606792302448&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
"integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz",
"integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
"integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
"integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
"dev": true,
"optional": true
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz",
"integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
"dev": true,
"optional": true
},
"loader-utils": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz",
"integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=",
"dev": true,
"optional": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^2.1.2"
}
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz",
"integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"vue-quill-editor": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/vue-quill-editor/-/vue-quill-editor-3.0.6.tgz",

21
src/common/platform.styl

@ -152,3 +152,24 @@
font-size: 16px;
color: rgba(0,0,0,0.65);
}
.flow-path {
background: -webkit-linear-gradient(left, #13ACC4 , #fff);
padding: 80px 9%;
position: relative;
}
.flow-title {
position: absolute;
top: 40%;
font-size: 30px;
color: #fff;
}
.flow-content {
margin-left: 20%;
width:30%;
font-size: 16px;
color: #fff;
}
.login-color {
color: #096DD9;
cursor: pointer;
}

4
src/components/Introduce/CompanyProfile.vue

@ -24,9 +24,7 @@ export default {
},
data() {
return {
ModalText: 'Content of the modal',
};
return { ModalText: 'Content of the modal', };
},
computed: mapState('home', ['profile']),

18
src/components/PlatformList/Fruit.vue

@ -1,7 +1,7 @@
<template>
<div>
<div class="inner d-flex justify-space-between flex-wrap">
<div v-for="(item, index) in list" :key="index" class="item-box">
<div class="inner d-flex flex-wrap">
<div v-for="(item, index) in list" :key="index" class="item-box" :class="(index + 1) % 4 === 0 ? 'margin-0' : ''">
<p class="font-24 my-3" style="cursor: pointer" @click="detail(item.id)">{{ item.name }}</p>
<p class="font-16" style="color: rgba(0, 0, 0, 0.45); cursor: pointer" @click="detail(item.id)">编号{{ item.identifier }}</p>
<p class="font-16 baseColor item-more">
@ -93,13 +93,25 @@ export default {
}
.item-box {
width: 24%;
position: relative;
width: 20.5%;
background: #fff;
margin-right: 6%;
border-radius: 4px;
box-shadow: 6px 6px 6px #eee;
margin-bottom: 40px;
padding: 10px;
padding-bottom: 60px;
}
.margin-0 {
margin-right: 0% !important;
}
.item-more {
position: absolute;
bottom: 10px;
right: 10px;
text-align: right;
margin-bottom: 0 !important;
margin-top: 40px;

155
src/components/PlatformList/PlatformList.vue

@ -1,10 +1,10 @@
<template>
<div>
<div class="inner d-flex justify-space-between flex-wrap">
<div v-for="(item, index) in list" :key="index">
<img :src="item.imgUrl" style="height: 220px" />
<p class="font-24 my-4">{{ item.title }}</p>
<p class="font-16 baseColor" style="text-align: right; cursor: pointer">了解更多</p>
<div class="inner d-flex flex-wrap">
<div v-for="(item, index) in list" :key="index" class="item-box" :class="(index + 1) % 4 === 0 ? 'margin-0' : ''">
<img :src="item.imgUrl" style="height: 220px; width: 100%; border: 1px solid #ccc" />
<p class="font-24 my-4">{{ item.name }}</p>
<p class="font-16 baseColor" style="text-align: right; cursor: pointer" @click="jump(item.id)">了解更多</p>
</div>
</div>
<div class="inner">
@ -22,68 +22,83 @@
</template>
<script>
import { mapMutations, mapState } from 'vuex';
import { selInstrument, searchFront } from 'config/api';
export default {
name: 'PlatformList',
data() {
return {
list: [
{
imgUrl: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210104/86d502b304944e0c849bff8dcf55ac08.jpg',
title: 'XX实验平台',
id: 1,
},
{
imgUrl: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210104/86d502b304944e0c849bff8dcf55ac08.jpg',
title: 'XX实验平台',
id: 2,
},
{
imgUrl: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210104/86d502b304944e0c849bff8dcf55ac08.jpg',
title: 'XX实验平台',
id: 3,
},
{
imgUrl: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210104/86d502b304944e0c849bff8dcf55ac08.jpg',
title: 'XX实验平台',
id: 4,
},
{
imgUrl: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210104/86d502b304944e0c849bff8dcf55ac08.jpg',
title: 'XX实验平台',
id: 5,
},
{
imgUrl: 'https://www.sxwikionline.com/gateway/greenvalley/uploads/upload/20210104/86d502b304944e0c849bff8dcf55ac08.jpg',
title: 'XX实验平台',
id: 6,
},
],
current: 1,
pageSize: 6,
list: [],
pageSize: 8,
total: 20,
current: 1,
};
},
computed: mapState('home', ['listState', 'labList', 'LabIpt', 'insList', 'InsIpt', 'shareCurrent']),
watch: {
shareCurrent(val) {
console.log(val);
this.monitor(this.listState);
},
labList(val) {
if (this.shareCurrent === 1) {
this.monitor(this.listState);
}
this.current = 1;
this.setShareCurrent(1);
},
LabIpt(val) {
if (this.LabIpt.isBtn === 1) {
if (this.shareCurrent === 1) {
this.monitor(this.listState);
}
this.current = 1;
this.setShareCurrent(1);
}
},
insList(val) {
if (this.shareCurrent === 1) {
this.monitor(this.listState);
}
this.current = 1;
this.setShareCurrent(1);
},
InsIpt(val) {
if (this.InsIpt.isBtn === 1) {
if (this.shareCurrent === 1) {
this.monitor(this.listState);
}
this.current = 1;
this.setShareCurrent(1);
}
},
},
created() {
this.getSelI();
this.getSear();
this.current = this.shareCurrent;
if (this.listState === 0) {
this.getSear();
} else {
this.getSelI();
}
},
methods: {
...mapMutations('home', ['setShareCurrent']),
//
async getSelI() {
try {
const params = {
param: {
content: '', //
modelIds: [], // ID
pageNum: 1,
pageSize: 6,
content: this.InsIpt.content, //
modelIds: this.insList, // ID
pageNum: this.shareCurrent,
pageSize: this.pageSize,
},
};
const res = await selInstrument(params);
const { code, msg, data } = res.data;
if (code === 200) {
console.log(data);
this.list = data.list;
this.total = parseInt(data.total);
}
} catch (error) {
console.log(error);
@ -94,16 +109,17 @@ export default {
try {
const params = {
param: {
name: '', //
moldIds: [], // ID
pageNum: 1,
pageSize: 6,
name: this.LabIpt.content, //
moldIds: this.labList, // ID
pageNum: this.shareCurrent,
pageSize: this.pageSize,
},
};
const res = await searchFront(params);
const { code, msg, data } = res.data;
if (code === 200) {
console.log(data);
this.list = data.list;
this.total = parseInt(data.total);
}
} catch (error) {
console.log(error);
@ -111,8 +127,32 @@ export default {
},
//
onShowSizeChange(current, size) {
console.log(current);
this.current = current;
this.setShareCurrent(this.current);
},
//
monitor(val) {
if (val === 0) {
this.getSear();
} else {
this.getSelI();
}
},
// /
jump(id) {
if (this.listState === 0) {
this.$router.push({
path: '/NewPlatform/Share/Institute',
name: 'Institute',
params: { id },
});
} else if (this.listState === 1) {
this.$router.push({
path: '/NewPlatform/Share/InsDet',
name: 'InsDet',
params: { id },
});
}
},
},
};
@ -123,4 +163,15 @@ export default {
margin: 40px 0;
text-align: right;
}
.item-box {
width: 20.5%;
margin-right: 6%;
border-radius: 4px;
box-shadow: 6px 6px 6px #eee;
}
.margin-0 {
margin-right: 0 !important;
}
</style>

10
src/config/api.js

@ -60,9 +60,14 @@ export const selModel = params => axios.post(`${achInstr}/selModel`, params);
// 仪器列表查询
export const selInstrument = params => axios.post(`${achInstr}/selInstrument`, params);
// 仪器详情查询
export const selInstrumentMes = params => axios.post(`${achInstr}/selInstrumentMes`, params);
// 通过研究院(实验室)Id查询仪器列表
export const selInstrumentByRes = params => axios.post(`${achInstr}/selInstrumentByRes`, params);
// 研究院(实验室)列表查询
export const searchFront = params => axios.post(`${greenvalley}/institute/searchFront`, params);
// 研究院团队详情查询
export const teamSearch = params => axios.post(`${greenvalley}/teamGuide/teamSearch`, params);
// 成果列表查询
export const selRes = params => axios.post(`${achInstr}/selRes`, params);
@ -70,5 +75,8 @@ export const selRes = params => axios.post(`${achInstr}/selRes`, params);
// 成果详情查询
export const selResMes = params => axios.post(`${achInstr}/selResMes`, params);
// 服务列表查询
export const selService = params => axios.post(`${greenvalley}/serviceProject/selService`, params);
// 查询用户购物车
export const SearchCar = params => axios.post(`${service}/SearchCar`, params);

17
src/router/index.js

@ -132,12 +132,29 @@ const routes = [
name: 'Service',
component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/NewPlatform/Children/Service.vue'),
},
{
path: '/NewPlatform/ServiceDet',
name: 'ServiceDet',
component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/NewPlatform/Children/ServiceDet.vue'),
},
{
// 科技资源开放共享服务平台
path: '/NewPlatform/Share',
name: 'Share',
component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/NewPlatform/Children/Share.vue'),
},
{
// 科技资源开放共享服务平台 > 研究院(实验室)详情页
path: '/NewPlatform/Share/Institute',
name: 'Institute',
component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/NewPlatform/Children/ShareChild/Institute.vue'),
},
{
// 科技资源开放共享服务平台 > 仪器详情页
path: '/NewPlatform/Share/InsDet',
name: 'InsDet',
component: () => import(/* webpackChunkName: "cooperative-enterprise" */ 'views/NewPlatform/Children/ShareChild/InsDet.vue'),
},
{
// 知识产权与技术转移转化服务平台
path: '/NewPlatform/Transfer',

30
src/store/modules/home/mutations.js

@ -170,6 +170,25 @@ const mutations = {
setAchId(state, num) {
state.achId = num;
},
/**
* 科技资源开放共享服务平台-列表展示数据0实验室1仪器//默认0)
* @param {object} state
* @param {number} num
*/
setListState(state, num) {
state.listState = num;
},
/**
* 科技资源开放共享服务平台-列表当前处于第几页
* @param {object} state
* @param {number} num
*/
setShareCurrent(state, num) {
state.shareCurrent = num;
},
/**
* 改变科技资源开放共享服务平台-实验室所选类型
* @param {object} state
@ -178,6 +197,7 @@ const mutations = {
setLabList(state, list) {
state.labList = list;
},
/**
* 改变科技资源开放共享服务平台-实验室搜索框内容
* @param {object} state
@ -195,6 +215,7 @@ const mutations = {
setInsList(state, list) {
state.insList = list;
},
/**
* 改变科技资源开放共享服务平台-仪器搜索框内容
* @param {object} state
@ -203,6 +224,15 @@ const mutations = {
setInsIpt(state, obj) {
state.InsIpt = { ...obj };
},
/**
* 改变当前查看的研究院 详情的 id
* @param {object} state
* @param {number} num
*/
setLabId(state, num) {
state.LabId = num;
},
};
export default mutations;

3
src/store/modules/home/state.js

@ -31,6 +31,8 @@ const state = {
},
achCurrent: 1, // 知识产权与技术转移转化服务平台-成果列表页数
achId: 0, // 知识产权与技术转移转化服务平台-成果详情页Id
listState: 0, // 科技资源开放共享服务平台-列表展示数据(0:实验室,1:仪器//默认0)
shareCurrent: 1, // 科技资源开放共享服务平台-列表当前处于第几页
labList: [], // 科技资源开放共享服务平台-实验室所选类型
LabIpt: {
// 实验室搜索框内容
@ -43,6 +45,7 @@ const state = {
content: '',
isBtn: 0,
},
LabId: 0, // 当前研究院详情Id
};
export default state;

68
src/views/NewPlatform/Children/Service.vue

@ -1,24 +1,82 @@
<template>
<div>
<rotation />
<h-nav />
{{ str }}
{{ str }}
{{ str }}
<div class="flow-path">
<div class="flow-title">服务流程</div>
<div class="flow-content">
<span class="login-color">注册登录</span> 后通过直接申请或加入购物车进行申请服务 直接申请后在个人中心查看 加入
<span class="login-color">购物车</span> 后可通过顶部菜单栏的购物车查看
</div>
</div>
<div class="inner d-flex flex-wrap">
<div v-for="(item, index) in list" :key="index" class="item-box" :class="(index + 1) % 4 === 0 ? 'margin-0' : ''">
<img :src="item.imgUrl" style="height: 220px; width: 100%; border: 1px solid #ccc" />
<p class="font-24 my-4">{{ item.name }}</p>
<p class="font-16 baseColor" style="text-align: right; cursor: pointer" @click="jump(item.id)">了解更多</p>
</div>
</div>
<div class="inner">
<a-pagination
:current="current"
:total="total"
:page-size="pageSize"
@change="onShowSizeChange"
class="pagination"
show-less-items
show-quick-jumper
/>
</div>
</div>
</template>
<script>
import Rotation from 'components/Rotation/Rotation.vue';
import HNav from './../components/HNav.vue';
export default {
name: 'Service',
components: { HNav },
components: { HNav, Rotation },
data() {
return {
str: '这是服务界面',
list: [],
current: 1,
pageSize: 8,
total: 0,
};
},
methods: {
//
onShowSizeChange(current, size) {
this.current = current;
},
//
jump(id) {
console.log(id);
this.$router.push({
path: '/NewPlatform/ServiceDet',
name: 'ServiceDet',
params: { id },
});
},
},
};
</script>
<style lang="stylus" scoped></style>
<style lang="stylus" scoped>
.pagination {
margin: 40px 0;
text-align: right;
}
.item-box {
width: 20.5%;
margin-right: 6%;
border-radius: 4px;
box-shadow: 6px 6px 6px #eee;
}
.margin-0 {
margin-right: 0 !important;
}
</style>

23
src/views/NewPlatform/Children/ServiceDet.vue

@ -0,0 +1,23 @@
<template>
<div>
<div class="inner service-box">服务详情页</div>
</div>
</template>
<script>
export default {
name: 'ServiceDet',
data() {
return {};
},
};
</script>
<style lang="stylus" scoped>
.service-box {
margin: 60px auto;
min-height: 400px;
padding: 20px;
background: #fff;
}
</style>

34
src/views/NewPlatform/Children/Share.vue

@ -17,7 +17,7 @@
</span>
</div>
<div class="flex-1 align-center">
<a-input-search class="item-search" v-model="InsIpt" placeholder="搜索实验室" enter-button="搜索" @search="searchIns" />
<a-input-search class="item-search" v-model="LabIpt" placeholder="搜索实验室" enter-button="搜索" @search="searchLab" />
</div>
</div>
<div style="border-top: 1px solid rgba(0, 0, 0, 0.06)" class="flex-3 flex-wrap">
@ -34,7 +34,7 @@
</span>
</div>
<div class="flex-1 align-center">
<a-input-search class="item-search" v-model="LabIpt" placeholder="搜索仪器" enter-button="搜索" @search="searchLab" />
<a-input-search class="item-search" v-model="InsIpt" placeholder="搜索仪器" enter-button="搜索" @search="searchIns" />
</div>
</div>
</div>
@ -91,7 +91,7 @@ export default {
this.getType(2);
},
methods: {
...mapMutations('home', ['setLabList', 'setInsList', 'setLabIpt', 'setInsIpt']),
...mapMutations('home', ['setLabList', 'setInsList', 'setLabIpt', 'setInsIpt', 'setListState']),
async getType(num) {
try {
const params = { param: { model: num } };
@ -119,7 +119,11 @@ export default {
const that = this;
if (num === 0) {
this.labList = [];
const { laboratory } = this;
const { laboratory, instrument } = this;
for (let i = 0; i < instrument.length; i++) {
instrument[i].isActive = false;
}
this.setListState(0);
laboratory[index].isActive = !laboratory[index].isActive;
this.laboratory = [...laboratory];
for (let i = 0; i < laboratory.length; i++) {
@ -130,7 +134,11 @@ export default {
this.setLabList(this.labList);
} else if (num === 1) {
this.insList = [];
const { instrument } = this;
const { laboratory, instrument } = this;
for (let i = 0; i < laboratory.length; i++) {
laboratory[i].isActive = false;
}
this.setListState(1);
instrument[index].isActive = !instrument[index].isActive;
this.instrument = [...instrument];
for (let i = 0; i < instrument.length; i++) {
@ -138,10 +146,17 @@ export default {
this.insList.push(instrument[i].id);
}
}
this.setLabList(this.insList);
this.setInsList(this.insList);
}
},
searchLab() {
const { instrument } = this;
for (let i = 0; i < instrument.length; i++) {
instrument[i].isActive = false;
}
this.instrument = [...instrument];
this.setListState(0);
this.InsIpt = '';
const obj = {
content: this.LabIpt,
isBtn: 1,
@ -149,6 +164,13 @@ export default {
this.setLabIpt(obj);
},
searchIns() {
const { laboratory } = this;
for (let i = 0; i < laboratory.length; i++) {
laboratory[i].isActive = false;
}
this.laboratory = [...laboratory];
this.setListState(1);
this.LabIpt = '';
const obj = {
content: this.InsIpt,
isBtn: 1,

140
src/views/NewPlatform/Children/ShareChild/InsDet.vue

@ -0,0 +1,140 @@
<template>
<div class="inner equ-box">
<div class="equ-info d-flex">
<img :src="obj.img" alt="" />
<div class="equ-info-box">
<p class="equ-name">{{ obj.name }}</p>
<div class="d-flex flex-wrap">
<div style="width: 200px" class="equ-info-left">
<p>仪器名字</p>
<p>制造商</p>
<p>型号</p>
<p>规格</p>
<p>性能指标</p>
<p>联系人</p>
<p>联系方式</p>
</div>
<div style="width: 500px">
<p>{{ obj.name }}</p>
<p>{{ obj.manufactor }}</p>
<p>{{ obj.model }}</p>
<p>{{ obj.specifications }}</p>
<p>{{ obj.performance }}</p>
<p>
<span v-for="(item, index) in obj.selPeoList" :key="index">{{ item.contactsName }}</span>
</p>
<p>
<span v-for="(item, index) in obj.selPeoList" :key="index">{{ item.contactsPhone }}</span>
</p>
</div>
</div>
<p class="equ-btn">
<a-button style="margin-right: 20px">转化意向</a-button>
<a-button type="primary">加入购物车</a-button>
</p>
</div>
</div>
<div class="content-box">
<div v-dompurify-html="obj.purpose"></div>
</div>
</div>
</template>
<script>
import { selInstrumentMes } from 'config/api';
export default {
name: 'InsDet',
data() {
return {
obj: {},
id: 0,
};
},
created() {
this.id = this.$route.params.id;
this.getData();
},
methods: {
async getData() {
try {
const params = { param: { id: this.id } };
const res = await selInstrumentMes(params);
const { code, data, msg } = res.data;
if (code === 200) {
console.log(data);
this.obj = data;
}
} catch (error) {
console.log(error);
}
},
},
};
</script>
<style lang="stylus" scoped>
.equ-box {
background: #fff;
padding: 20px;
margin: 60px auto;
}
.equ-info {
border-bottom: 1px solid rgba(0, 0, 0, 0.14901960784313725);
position: relative;
padding-bottom: 24px;
img {
width: 300px;
height: 300px;
}
}
.equ-name {
font-size: 24px;
font-family: Microsoft YaHei;
font-weight: bold;
line-height: 31px;
color: rgba(0, 0, 0, 0.85);
opacity: 1;
}
.equ-info-box {
position: relative;
font-size: 16px;
margin-left: 20px;
height: 300px;
font-family: Microsoft YaHei;
font-weight: 400;
color: rgba(0, 0, 0, 0.65);
opacity: 1;
p {
margin-bottom: 6px;
}
}
.equ-info-left {
font-size: 16px;
font-family: Microsoft YaHei;
font-weight: 400;
color: rgba(0, 0, 0, 0.45);
opacity: 1;
p {
margin-bottom: 6px;
}
}
.equ-btn {
position: absolute;
bottom: 0;
}
.content-box {
min-height: 400px;
padding: 20px;
font-size: 16px;
color: rgba(0, 0, 0, 0.65);
}
</style>

209
src/views/NewPlatform/Children/ShareChild/Institute.vue

@ -0,0 +1,209 @@
<template>
<div>
<rotation />
<h-nav />
<div class="inner ins-box">
<p class="font-bold-24 item-title">设备列表</p>
<div class="d-flex flex-wrap">
<div v-for="(item, index) in list" :key="index" class="item-box" :class="(index + 1) % 4 === 0 ? 'margin-0' : ''">
<img :src="item.imgUrl" style="height: 220px; width: 100%; border: 1px solid #ccc" />
<p class="font-24 my-4">{{ item.name }}</p>
<p class="font-16 baseColor item-more" @click="jump(item.id)">了解更多</p>
</div>
</div>
<p class="font-bold-24 item-title">人才团队带头人情况</p>
<div class="d-flex">
<div class="header-box" style="flex: 1">
<p style="background: #11b7ce; color: #fff">姓名</p>
<p>性别</p>
<p>民族</p>
<p>出生年月</p>
<p>学历</p>
<p>职称</p>
<p>所学专业</p>
<p>从事专业</p>
<p>团队名称</p>
<p>工作单位</p>
<p>研究方向</p>
</div>
<div class="header-box" style="flex: 5; background: #fff">
<p style="border-bottom: 1px solid #eee">{{ obj.name }}</p>
<p><span v-if="obj.gender - 0 === 1">男</span> <span v-else-if="obj.gender - 0 === 2"></span></p>
<p>{{ obj.famousFamily }}</p>
<p>{{ obj.birthday }}</p>
<p>{{ obj.education }}</p>
<p>{{ obj.position }}</p>
<p>{{ obj.major }}</p>
<p>{{ obj.professional }}</p>
<p>{{ obj.teamName }}</p>
<p>{{ obj.workUnit }}</p>
<p>{{ obj.direction }}</p>
</div>
</div>
<p class="font-bold-24 item-title">团队成员信息</p>
<div style="background: #fff">
<div class="d-flex">
<div class="h-box" style="flex: 1">姓名</div>
<div class="h-box" style="flex: 1">性别</div>
<div class="h-box" style="flex: 1">所在单位</div>
<div class="h-box" style="flex: 1">出生年月</div>
<div class="h-box" style="flex: 1">学历学位</div>
<div class="h-box" style="flex: 1">职称职务</div>
<div class="h-box" style="flex: 1">研究方向</div>
</div>
<div class="d-flex" v-for="(item, index) in obj.teamMemberList" :key="index">
<div class="con-box" style="flex: 1">{{ item.name }}</div>
<div class="con-box" style="flex: 1">
<span v-if="item.gender - 0 === 1"></span>
<span v-else-if="item.gender - 0 === 2"></span>
</div>
<div class="con-box" style="flex: 1">???????????????</div>
<div class="con-box" style="flex: 1">{{ item.birthday }}</div>
<div class="con-box" style="flex: 1">{{ item.education }}</div>
<div class="con-box" style="flex: 1">{{ item.position }}</div>
<div class="con-box" style="flex: 1">{{ item.direction }}</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { mapMutations, mapState } from 'vuex';
import { selInstrumentByRes, teamSearch } from 'config/api';
import Rotation from 'components/Rotation/Rotation.vue';
import HNav from './../../components/HNav.vue';
export default {
name: 'Institute',
components: { Rotation, HNav },
data() {
return {
id: 0,
obj: {},
list: [],
};
},
computed: mapState('home', ['LabId']),
created() {
if (this.$route.params.id) {
this.setLabId(this.$route.params.id);
this.id = this.$route.params.id;
} else {
this.id = this.LabId;
}
this.getData();
this.getTeam();
},
methods: {
...mapMutations('home', ['setLabId']),
//
async getData() {
try {
const params = {
param: {
id: this.id,
pageNum: 1,
pageSize: 6,
},
};
const res = await selInstrumentByRes(params);
const { code, msg, data } = res.data;
if (code === 200) {
this.list = data.list;
this.total = parseInt(data.total);
}
} catch (error) {
console.log(error);
}
},
//
async getTeam() {
try {
const params = { param: { instituteId: this.id } };
const res = await teamSearch(params);
const { code, msg, data } = res.data;
if (code === 200) {
this.obj = data[0];
}
} catch (error) {
console.log(error);
}
},
// /
jump(id) {
this.$router.push({
path: '/NewPlatform/Share/InsDet',
name: 'InsDet',
params: { id },
});
},
},
};
</script>
<style lang="stylus" scoped>
.ins-box {
min-height: 500px;
height: auto;
margin: 40px auto;
}
.pagination {
margin: 40px 0;
text-align: right;
}
.item-more {
right: 10px;
bottom: 0px;
cursor: pointer;
position: absolute;
}
.item-box {
position: relative;
width: 20.5%;
margin-right: 6%;
border-radius: 4px;
padding-bottom: 40px;
box-shadow: 6px 6px 6px #eee;
}
.margin-0 {
margin-right: 0 !important;
}
.item-title {
color: rgba(0, 0, 0, 0.85);
margin-top: 60px;
}
.header-box {
text-align: center;
p {
font-size: 24px;
color: rgba(0, 0, 0, 0.66);
height: 56px;
line-height: 56px;
margin-bottom: 0 !important;
}
}
.h-box {
text-align: center;
font-size: 22px;
color: #096DD9;
height: 56px;
line-height: 56px;
}
.con-box {
text-align: center;
font-size: 18px;
height: 46px;
line-height: 46px;
color: rgba(112, 112, 112, 0.66);
}
</style>

2
src/views/NewPlatform/components/HNav.vue

@ -33,6 +33,8 @@ export default {
console.log();
if (this.$route.fullPath === '/NewPlatform/News') {
this.activeNum = 1;
} else if (this.$route.fullPath === '/NewPlatform/Share/Institute') {
this.activeNum = 1;
} else if (this.$route.fullPath === '/NewPlatform/NewService') {
this.activeNum = 2;
} else {

Loading…
Cancel
Save