|
@@ -5,342 +5,42 @@
|
|
<slot></slot>
|
|
<slot></slot>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
- <el-row>
|
|
|
|
- <el-col :span="24" class="main">
|
|
|
|
- <el-col :span="24" class="top">
|
|
|
|
- <el-col :span="7" class="left" v-if="data.image != ''">
|
|
|
|
- <el-carousel trigger="click" height="345px" :autoplay="false">
|
|
|
|
- <el-carousel-item v-for="(item, index) in data.image" :key="index">
|
|
|
|
- <el-image :src="item.url" style="width:99%;height:345px;border: 1px solid #ccc;"></el-image>
|
|
|
|
- </el-carousel-item>
|
|
|
|
- </el-carousel>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="7" v-else class="achieveImage">
|
|
|
|
- <p class="name textOver">{{ data.name }}</p>
|
|
|
|
- <p class="brief">{{ data.achievebrief }}</p>
|
|
|
|
- <p class="other">
|
|
|
|
- <span class="textOver">领域:{{ data.field }}</span>
|
|
|
|
- <span class="textOver">联系人:{{ data.contacts }}</span>
|
|
|
|
- </p>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="17" class="right">
|
|
|
|
- <el-col :span="24" class="name textOver">
|
|
|
|
- {{ data.name || '暂无' }}
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="24">
|
|
|
|
- <el-col :span="4" class="otherInfo textOver">
|
|
|
|
- 成果单位
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="20" class="otherInfo textOver">
|
|
|
|
- {{ data.company }}
|
|
|
|
- <el-link v-if="data.companyweb != null || ''" :href="data.companyweb" :underline="false" target="_blank">({{ data.companyweb }})</el-link>
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="12">
|
|
|
|
- <el-col :span="8" class="otherInfo textOver">
|
|
|
|
- 所属领域
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="16" class="otherInfo textOver">
|
|
|
|
- {{ data.field || '暂无' }}
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="12">
|
|
|
|
- <el-col :span="8" class="otherInfo textOver">
|
|
|
|
- 合作方式
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="16" class="otherInfo textOver">
|
|
|
|
- {{ data.cooperation || '暂无' }}
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="12">
|
|
|
|
- <el-col :span="8" class="otherInfo textOver">
|
|
|
|
- 成果状态
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="16" class="otherInfo textOver">
|
|
|
|
- {{ data.achievestatus || '暂无' }}
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="12">
|
|
|
|
- <el-col :span="8" class="otherInfo textOver">
|
|
|
|
- 成果来源
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="16" class="otherInfo textOver">
|
|
|
|
- {{ data.achievesource || '暂无' }}
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="12">
|
|
|
|
- <el-col :span="8" class="otherInfo textOver">
|
|
|
|
- 成果权属
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="16" class="otherInfo textOver">
|
|
|
|
- {{ data.achieveown || '暂无' }}
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="12">
|
|
|
|
- <el-col :span="8" class="otherInfo textOver">
|
|
|
|
- 意向价格
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="16" class="otherInfo textOver">
|
|
|
|
- {{ data.intentionprice || '暂无' }}
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="12">
|
|
|
|
- <el-col :span="8" class="otherInfo textOver">
|
|
|
|
- 联系人
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="16" class="otherInfo textOver">
|
|
|
|
- {{ data.contacts || '暂无' }}
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="12">
|
|
|
|
- <el-col :span="8" class="otherInfo textOver">
|
|
|
|
- 联系方式
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="16" class="otherInfo textOver">
|
|
|
|
- <el-tooltip class="item" effect="dark" placement="top">
|
|
|
|
- <div slot="content">{{ data.email }}/{{ data.qqwx || '暂无' }}</div>
|
|
|
|
- <p class="textOver">{{ data.email }}/{{ data.qqwx || '暂无' }}</p>
|
|
|
|
- </el-tooltip>
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="24">
|
|
|
|
- <el-col :span="4" class="otherInfo textOver">
|
|
|
|
- 项目路演
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="20" class="otherInfo textOver">
|
|
|
|
- <el-link :href="data.roadshow" :underline="false">{{ data.roadshow ? '观看演示文件' : '暂无' }}</el-link>
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="24">
|
|
|
|
- <el-col :span="4" class="otherInfo textOver">
|
|
|
|
- 专利信息
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="20" class="otherInfo textOver" style="padding: 6px">
|
|
|
|
- <el-button type="primary" size="mini" @click="dialogTableVisible1 = true">专利信息</el-button>
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="24" class="down">
|
|
|
|
- <el-col :span="24" class="downInfo">
|
|
|
|
- <el-col :span="4" class="tit">
|
|
|
|
- <h2>成果简介</h2>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="20" class="info">
|
|
|
|
- {{ data.achievebrief || '暂无' }}
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="24" class="downInfo">
|
|
|
|
- <el-col :span="4" class="tit">
|
|
|
|
- <h2>技术特点</h2>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="20" class="info">
|
|
|
|
- {{ data.features || '暂无' }}
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="24" class="downInfo">
|
|
|
|
- <el-col :span="4" class="tit">
|
|
|
|
- <h2>技术团队</h2>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="20" class="info">
|
|
|
|
- {{ data.team || '暂无' }}
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="24" class="downInfo">
|
|
|
|
- <el-col :span="4" class="tit">
|
|
|
|
- <h2>商业预期</h2>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="20" class="info">
|
|
|
|
- {{ data.expect || '暂无' }}
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="24" class="downInfo">
|
|
|
|
- <el-col :span="4" class="tit">
|
|
|
|
- <h2>合作要求</h2>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="20" class="info">
|
|
|
|
- {{ data.condition || '暂无' }}
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="24" class="anniu" v-if="displayBtn">
|
|
|
|
- <el-button type="primary" size="mini" @click="btnPhone()">交流洽谈</el-button>
|
|
|
|
- <el-button type="success" size="mini" @click="onSubmit()">供求对接</el-button>
|
|
|
|
- </el-col>
|
|
|
|
- </el-col>
|
|
|
|
- </el-row>
|
|
|
|
-
|
|
|
|
- <el-dialog title="专利信息" :visible.sync="dialogTableVisible1">
|
|
|
|
- <el-table :data="data.patent" style="width: 100%" border>
|
|
|
|
- <el-table-column prop="patentinfo" label="专利信息" align="center"> </el-table-column>
|
|
|
|
- <el-table-column prop="patentstatus" label="专利状态" align="center"> </el-table-column>
|
|
|
|
- </el-table>
|
|
|
|
- </el-dialog>
|
|
|
|
-
|
|
|
|
- <el-dialog title="对接" :visible.sync="dialogTableVisible" destroy-on-close>
|
|
|
|
- <chat :room="room"></chat>
|
|
|
|
- </el-dialog>
|
|
|
|
|
|
+ <el-col :span="24" class="two">
|
|
|
|
+ <achieveInfo :form="data"></achieveInfo>
|
|
|
|
+ </el-col>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
-import chat from '@c/chat.vue';
|
|
|
|
|
|
+import achieveInfo from '@c/detail-model/achieveInfo.vue';
|
|
import { mapState, createNamespacedHelpers } from 'vuex';
|
|
import { mapState, createNamespacedHelpers } from 'vuex';
|
|
-const _ = require('lodash');
|
|
|
|
-const { mapActions: personRoom } = createNamespacedHelpers('personRoom');
|
|
|
|
export default {
|
|
export default {
|
|
name: 'model-1',
|
|
name: 'model-1',
|
|
props: {
|
|
props: {
|
|
- displayBtn: { type: Boolean },
|
|
|
|
data: { type: Object, default: () => {} },
|
|
data: { type: Object, default: () => {} },
|
|
},
|
|
},
|
|
- components: { chat },
|
|
|
|
|
|
+ components: {
|
|
|
|
+ achieveInfo,
|
|
|
|
+ },
|
|
data: function() {
|
|
data: function() {
|
|
- return {
|
|
|
|
- dialogTableVisible: false,
|
|
|
|
- dialogTableVisible1: false,
|
|
|
|
- room: {},
|
|
|
|
- };
|
|
|
|
|
|
+ return {};
|
|
},
|
|
},
|
|
created() {},
|
|
created() {},
|
|
- methods: {
|
|
|
|
- ...personRoom(['create']),
|
|
|
|
- // 对接
|
|
|
|
- async btnPhone() {
|
|
|
|
- if (!this.room.id) {
|
|
|
|
- //TODO 请求房间号
|
|
|
|
- let obj = {};
|
|
|
|
- if (!_.get(this.user, 'id')) {
|
|
|
|
- // this.$message.error('游客身份无法与卖家对话,请先注册');
|
|
|
|
- this.$message({
|
|
|
|
- dangerouslyUseHTMLString: true,
|
|
|
|
- message: '<strong><a href="http://broadcast.waityou24.cn/live/login" style="color:red;">游客身份无法与卖家对话,请先注册</a></strong>',
|
|
|
|
- type: 'error',
|
|
|
|
- });
|
|
|
|
- return;
|
|
|
|
- } else {
|
|
|
|
- obj.p1_id = this.user.id;
|
|
|
|
- obj.p1 = this.user.name;
|
|
|
|
- }
|
|
|
|
- if (!this.data.user_id) {
|
|
|
|
- this.$message.error('缺少卖家信息,请联系卖家或管理员');
|
|
|
|
- return;
|
|
|
|
- } else {
|
|
|
|
- obj.p2_id = this.data.user_id;
|
|
|
|
- obj.p2 = this.data.contacts;
|
|
|
|
- }
|
|
|
|
- let res = await this.create(obj);
|
|
|
|
- if (this.$checkRes(res)) {
|
|
|
|
- this.$set(this, `room`, res.data);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- this.dialogTableVisible = true;
|
|
|
|
- },
|
|
|
|
- // 对接
|
|
|
|
- onSubmit() {
|
|
|
|
- // TODO 提交申请即可
|
|
|
|
- this.$emit('submit', _.cloneDeep(this.data));
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
|
|
+ methods: {},
|
|
computed: {
|
|
computed: {
|
|
- ...mapState(['user', 'menuParams']),
|
|
|
|
- pageTitle() {
|
|
|
|
- return `${this.$route.meta.title}`;
|
|
|
|
- },
|
|
|
|
|
|
+ ...mapState(['user']),
|
|
},
|
|
},
|
|
metaInfo() {
|
|
metaInfo() {
|
|
return { title: this.$route.meta.title };
|
|
return { title: this.$route.meta.title };
|
|
},
|
|
},
|
|
|
|
+ watch: {
|
|
|
|
+ test: {
|
|
|
|
+ deep: true,
|
|
|
|
+ immediate: true,
|
|
|
|
+ handler(val) {},
|
|
|
|
+ },
|
|
|
|
+ },
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|
|
|
|
|
|
-<style lang="less" scoped>
|
|
|
|
-h1,
|
|
|
|
-h2,
|
|
|
|
-h3,
|
|
|
|
-h4,
|
|
|
|
-h5,
|
|
|
|
-h6 {
|
|
|
|
- margin: 0;
|
|
|
|
- font-weight: 200;
|
|
|
|
- font-family: Microsoft yahei;
|
|
|
|
- font-size: 18px;
|
|
|
|
-}
|
|
|
|
-.main {
|
|
|
|
- margin: 10px 0 0 0;
|
|
|
|
- .top {
|
|
|
|
- height: 360px;
|
|
|
|
- overflow: hidden;
|
|
|
|
- .right {
|
|
|
|
- padding: 0 0 0 10px;
|
|
|
|
- .name {
|
|
|
|
- font-size: 18px;
|
|
|
|
- font-weight: bold;
|
|
|
|
- padding: 10px;
|
|
|
|
- border: 1px solid #ccc;
|
|
|
|
- text-align: center;
|
|
|
|
- }
|
|
|
|
- .otherInfo {
|
|
|
|
- padding: 10px;
|
|
|
|
- font-size: 16px;
|
|
|
|
- border: 1px solid #ccc;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- .achieveImage {
|
|
|
|
- position: relative;
|
|
|
|
- height: 348px;
|
|
|
|
- background: url('~@p/技术成果1.png');
|
|
|
|
- background-size: 100% 100%;
|
|
|
|
- background-repeat: no-repeat;
|
|
|
|
- padding: 28px 25px;
|
|
|
|
- .name {
|
|
|
|
- font-size: 16px;
|
|
|
|
- font-weight: bold;
|
|
|
|
- margin: 10px 0;
|
|
|
|
- }
|
|
|
|
- .brief {
|
|
|
|
- font-size: 14px;
|
|
|
|
- overflow: hidden;
|
|
|
|
- text-overflow: ellipsis;
|
|
|
|
- -webkit-line-clamp: 11;
|
|
|
|
- word-break: break-all;
|
|
|
|
- display: -webkit-box;
|
|
|
|
- -webkit-box-orient: vertical;
|
|
|
|
- }
|
|
|
|
- .other {
|
|
|
|
- position: absolute;
|
|
|
|
- bottom: 10px;
|
|
|
|
- width: 82%;
|
|
|
|
- font-size: 14px;
|
|
|
|
- span {
|
|
|
|
- display: inline-block;
|
|
|
|
- width: 100%;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- .down {
|
|
|
|
- margin: 0 0 15px 0;
|
|
|
|
- .downInfo {
|
|
|
|
- border: 1px solid #ccc;
|
|
|
|
- .tit {
|
|
|
|
- height: 150px;
|
|
|
|
- line-height: 150px;
|
|
|
|
- text-align: center;
|
|
|
|
- border-right: 1px solid #ccc;
|
|
|
|
- }
|
|
|
|
- .info {
|
|
|
|
- font-size: 16px;
|
|
|
|
- padding: 10px;
|
|
|
|
- min-height: 150px;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- .anniu {
|
|
|
|
- text-align: center;
|
|
|
|
- /deep/.el-button {
|
|
|
|
- margin: 0 10px;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-</style>
|
|
|
|
|
|
+<style lang="less" scoped></style>
|