|
@@ -4,8 +4,42 @@
|
|
|
<el-col :span="24" class="main">
|
|
|
<el-col :span="24" class="one">
|
|
|
<el-tabs v-model="activeName" type="card">
|
|
|
- <el-tab-pane label="技术成果" name="first">技术成果</el-tab-pane>
|
|
|
- <el-tab-pane label="科技需求" name="second">科技需求</el-tab-pane>
|
|
|
+ <el-tab-pane label="技术成果" name="first">
|
|
|
+ <el-col :span="24" class="first">
|
|
|
+ <el-col :span="5" class="achieveList" v-for="(item, index) in achieveList" :key="index">
|
|
|
+ <el-col :span="24" class="top">
|
|
|
+ <p class="textOver">{{ item.name || '暂无' }}</p>
|
|
|
+ <p>{{ item.achievebrief || '暂无' }}</p>
|
|
|
+ <p class="textOver">领域:{{ item.field || '暂无' }}</p>
|
|
|
+ <p class="textOver">联系人{{ item.contacts || '暂无' }}</p>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="down">
|
|
|
+ <el-button size="mini" type="primary" @click="detail(item, '1')">详情</el-button>
|
|
|
+ <el-button size="mini" type="success" @click="trans(item, '1')">对接</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="btn">
|
|
|
+ <el-button type="primary" size="mini" @click="moreBtn('1')">查看更多项目</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="科技需求" name="second">
|
|
|
+ <el-col :span="24" class="second">
|
|
|
+ <el-col :span="5" class="techolList" v-for="(item, index) in techolList" :key="index">
|
|
|
+ <el-col :span="24" class="top">
|
|
|
+ <p>{{ item.name || '暂无' }}</p>
|
|
|
+ <p class="textOver">领域:{{ item.field || '暂无' }}</p>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="down">
|
|
|
+ <el-button size="mini" type="primary" @click="detail(item, '0')">详情</el-button>
|
|
|
+ <el-button size="mini" type="success" @click="trans(item, '0')">对接</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="btn">
|
|
|
+ <el-button type="primary" size="mini" @click="moreBtn('0')">查看更多项目</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-tab-pane>
|
|
|
</el-tabs>
|
|
|
</el-col>
|
|
|
</el-col>
|
|
@@ -15,6 +49,7 @@
|
|
|
|
|
|
<script>
|
|
|
import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
+const { mapActions: statistics } = createNamespacedHelpers('statistics');
|
|
|
export default {
|
|
|
name: 'productData',
|
|
|
props: {},
|
|
@@ -22,10 +57,33 @@ export default {
|
|
|
data: function() {
|
|
|
return {
|
|
|
activeName: 'first',
|
|
|
+ achieveList: [],
|
|
|
+ techolList: [],
|
|
|
};
|
|
|
},
|
|
|
- created() {},
|
|
|
- methods: {},
|
|
|
+ created() {
|
|
|
+ if (this.id) this.search();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ ...statistics(['dockProduct']),
|
|
|
+ async search({ skip = 0, limit = 10, ...info } = {}) {
|
|
|
+ info.dock_id = this.id;
|
|
|
+ let res = await this.dockProduct({ skip, limit, type: '0', ...info });
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ this.$set(this, `techolList`, res.data);
|
|
|
+ }
|
|
|
+ res = await this.dockProduct({ skip, limit, type: '1', ...info });
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ this.$set(this, `achieveList`, res.data);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 查看详情
|
|
|
+ detail(data, type) {},
|
|
|
+ // 对接
|
|
|
+ trans(data, type) {},
|
|
|
+ // 查看更多项目
|
|
|
+ moreBtn(type) {},
|
|
|
+ },
|
|
|
computed: {
|
|
|
...mapState(['user']),
|
|
|
id() {
|
|
@@ -45,4 +103,104 @@ export default {
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
-<style lang="less" scoped></style>
|
|
|
+<style lang="less" scoped>
|
|
|
+.main {
|
|
|
+ .one {
|
|
|
+ .btn {
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ .first {
|
|
|
+ padding: 0 10px;
|
|
|
+ height: 530px;
|
|
|
+ overflow: hidden;
|
|
|
+ .achieveList {
|
|
|
+ width: 18.9%;
|
|
|
+ height: 250px;
|
|
|
+ background: url('~@common/src/assets/achieve.png');
|
|
|
+ background-size: 100% 100%;
|
|
|
+ background-repeat: no-repeat;
|
|
|
+ margin: 0 15px 15px 0;
|
|
|
+ padding: 22px 22px 8px 22px;
|
|
|
+ border-radius: 5px;
|
|
|
+ .top {
|
|
|
+ height: 190px;
|
|
|
+ overflow: hidden;
|
|
|
+ p:nth-child(1) {
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: bold;
|
|
|
+ padding: 5px 0;
|
|
|
+ }
|
|
|
+ p:nth-child(2) {
|
|
|
+ font-size: 12px;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ -webkit-line-clamp: 6;
|
|
|
+ word-break: break-all;
|
|
|
+ display: -webkit-box;
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
+ padding: 0 5px;
|
|
|
+ height: 105px;
|
|
|
+ line-height: 17px;
|
|
|
+ }
|
|
|
+ p:nth-child(3) {
|
|
|
+ font-size: 14px;
|
|
|
+ padding: 4px 0 0 0;
|
|
|
+ }
|
|
|
+ p:nth-child(4) {
|
|
|
+ font-size: 14px;
|
|
|
+ padding: 4px 0 0 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .down {
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .achieveList:nth-child(5n) {
|
|
|
+ margin: 0 0 15px 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .second {
|
|
|
+ padding: 0 10px;
|
|
|
+ height: 530px;
|
|
|
+ overflow: hidden;
|
|
|
+ .techolList {
|
|
|
+ width: 18.9%;
|
|
|
+ height: 250px;
|
|
|
+ border: 1px solid #ccc;
|
|
|
+ border-radius: 5px;
|
|
|
+ margin: 0 15px 15px 0;
|
|
|
+ padding: 22px 22px 8px 22px;
|
|
|
+ .top {
|
|
|
+ height: 190px;
|
|
|
+ overflow: hidden;
|
|
|
+ p:nth-child(1) {
|
|
|
+ height: 145px;
|
|
|
+ text-align: center;
|
|
|
+ font-size: 18px;
|
|
|
+ margin: 0 0 10px 0;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ -webkit-line-clamp: 6;
|
|
|
+ word-break: break-all;
|
|
|
+ display: -webkit-box;
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
+ }
|
|
|
+ p:nth-child(2) {
|
|
|
+ text-align: center;
|
|
|
+ font-size: 16px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .down {
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .techolList:nth-child(5n) {
|
|
|
+ margin: 0 0 15px 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /deep/.el-tabs__header {
|
|
|
+ margin: 0 0 10px 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|