123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825 |
- <template>
- <div id="detail">
- <el-row>
- <el-col :span="24" class="main">
- <el-col :span="24" class="one">
- <div class="w_1200">
- <el-col :span="20" class="left">
- <el-col :span="24" class="leftone">
- <span>科技成果展洽会</span>
- <span>欢迎您</span>
- </el-col>
- <el-col :span="24" class="lefttwo">
- SCIENTIFIC AND TECHNOLOGICAL ACHIEVEEMENTS EXHIBITION
- </el-col>
- </el-col>
- <el-col :span="4" class="right">
- <el-link :underline="false">帮助中心</el-link>
- </el-col>
- </div>
- </el-col>
- <el-col :span="24" class="two">
- <div class="w_1200">
- <el-col :span="24" class="twotop">
- <p>{{ dockInfo.title }}</p>
- <el-image :src="two1" style="width:100%"></el-image>
- <el-image :src="url6" class="img1"></el-image>
- </el-col>
- <el-col :span="24" class="twocen">
- <el-col :span="15" class="left"> <span>主办单位:</span>{{ dockInfo.sponsor }} </el-col>
- <el-col :span="8" class="right">
- <el-button class="btn1" @click="back()">返回展会进行页</el-button>
- <el-button class="btn2">进入展会总结页</el-button>
- </el-col>
- </el-col>
- </div>
- </el-col>
- <el-col :span="24" class="three">
- <div class="w_1200">
- <el-col :span="16" class="left">
- <el-col :span="24" class="leftInfo">
- <el-col :span="24" class="leftInfoone">
- <p class="title">展会总结</p>
- <el-col :span="24">
- <p>
- <span>到会人数</span>
- <span>{{ statNum.tszx || 0 }}人</span>
- </p>
- <p>
- <span>项目数</span>
- <span>{{ statNum.czxm || 0 }}项</span>
- </p>
- <p>
- <span>需求数</span>
- <span>{{ statNum.czxq || 0 }}项</span>
- </p>
- <p>
- <span>对接数</span>
- <span>{{ statNum.jywc || 0 }}次</span>
- </p>
- <p>
- <span>生产意向</span>
- <span>{{ statNum.qthz || 0 }}次</span>
- </p>
- <p>
- <span>达成意向</span>
- <span>{{ statNum.dcyx || 0 }}次</span>
- </p>
- </el-col>
- </el-col>
- <el-col :span="24" class="artical">
- <el-image :src="url1" style="width:784px;height:438px"></el-image>
- <p class="text">
- 本次在线对接会共征集到符合展会要求的项目成果{{
- statNum.czxm || 0
- }}项;其中来自于高校、研究机构的成果0项;专利项目0项;成熟度处于中试及产业化阶段的成果0项,同时还邀请到13所高校、研究机构,{{
- total
- }}位专家到参与在线对接。本次征集到的科技成果及专家的含金量都非常高。本次在线对接会还征集到技术需求{{
- statNum.czxq || 0
- }}项。本次在线对接会共实现技术对接{{ statNum.jywc || 0 }}次,产生意向{{ statNum.qthz || 0 }}次,达成意向{{
- statNum.dcyx || 0
- }}次。此次展会还吸引了{{ statNum.tszx || 0 }}多名访客的在线观摩,产生了强烈的反响。
- </p>
- </el-col>
- <el-col :span="24" class="shool">
- <el-col :span="24" class="tit">
- <p>高校住所</p>
- </el-col>
- <el-col :span="24">
- <el-image :src="url2" style="width:785px; height:593px"></el-image>
- </el-col>
- </el-col>
- <el-col :span="24" class="tabs">
- <el-tabs v-model="activeName">
- <el-tab-pane name="first">
- <span slot="label">参展项目({{ total1 }})</span>
- <el-table :data="list1" stripe style="width: 100%">
- <el-table-column prop="field" label="所属领域" align="center"> </el-table-column>
- <el-table-column prop="name" label="项目名称" align="center">
- <template slot-scope="scope">
- <span @click="selectpro(scope.row)">{{ scope.row.name }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="type" label="技术类型" align="center">
- <template slot-scope="scope">
- <span class="bgColor">{{ scope.row.type == '0' ? '科技需求' : scope.row.type == '1' ? '技术成果' : '商务信息' }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="cooperation" label="交易方式" align="center"> </el-table-column>
- </el-table>
- <el-col class="page1" :span="24">
- <el-pagination
- @current-change="handleCurrentChange1"
- :current-page="currentPage1"
- layout="total, prev, pager, next, jumper"
- :total="total1"
- :page-size="pageSize1"
- >
- </el-pagination>
- </el-col>
- </el-tab-pane>
- <el-tab-pane name="second">
- <span slot="label">参展需求({{ total2 }})</span>
- <el-table :data="list2" style="width: 100%">
- <el-table-column prop="type" label="需求类别">
- <template slot-scope="scope">
- <span>{{ scope.row.type == '0' ? '科技需求' : scope.row.type == '1' ? '技术成果' : '商务信息' }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="name" label="需求名称" width="180">
- <template slot-scope="scope">
- <span @click="selectpro(scope.row)">{{ scope.row.name }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="budget" label="投入预算">
- <template slot-scope="scope">
- <span class="bgColor">{{ scope.row.budget || '暂无' }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="degreeurgency" label="需求紧急程度"> </el-table-column>
- </el-table>
- <el-col class="page1" :span="24">
- <el-pagination
- @current-change="handleCurrentChange2"
- :current-page="currentPage2"
- layout="total, prev, pager, next, jumper"
- :total="total2"
- :page-size="pageSize2"
- >
- </el-pagination>
- </el-col>
- </el-tab-pane>
- <el-tab-pane name="third">
- <span slot="label">技术专家({{ total }})</span>
- <el-col :span="24" class="zj">
- <el-col :span="12" class="zjInfo" v-for="(item, index) in expertList" :key="index">
- <el-col :span="12" class="img">
- <el-image :src="item.expertimage" style="width:100%;height:100%" v-if="item.expertimage"></el-image>
- <el-image v-else>
- <div slot="error" class="image-slot">
- <el-image :src="url7" style="width:100%;height:100%"></el-image>
- </div>
- </el-image>
- </el-col>
- <el-col :span="12" class="text">
- <el-col :span="24" class="name">
- {{ item.name }}
- </el-col>
- <el-col :span="24" class="btn">
- <el-button type="primary" size="mini" @click.native="expertxmdjBtn(item)">对接</el-button>
- </el-col>
- <el-col :span="24" class="btn">
- <el-button type="primary" size="mini">查看院校项目</el-button>
- </el-col>
- </el-col>
- </el-col>
- </el-col>
- <el-col class="page1" :span="24">
- <el-pagination
- @current-change="handleCurrentChange"
- :current-page="currentPage"
- layout="total, prev, pager, next, jumper"
- :total="total"
- :page-size="pageSize"
- >
- </el-pagination>
- </el-col>
- </el-tab-pane>
- </el-tabs>
- </el-col>
- </el-col>
- </el-col>
- <el-col :span="8" class="right">
- <el-col :span="24" class="img">
- <el-image :src="url3" style="width:330px;height:218px"></el-image>
- </el-col>
- <el-col :span="24" class="brif">
- <p>公司简介</p>
- <el-col :span="24" class="box">
- <h6><span>主</span>办单位</h6>
- <p>长春市科学技术协会</p>
- <p>长春市科技局</p>
- <p>朝阳区政府</p>
- </el-col>
- <el-col :span="24" class="box">
- <h6><span>承</span>办单位</h6>
- <p>朝阳区科技局</p>
- <p>吉林省环南湖科技创新政策先导区技术转移中心</p>
- </el-col>
- <el-col :span="24" class="box">
- <h6><span>协</span>办单位</h6>
- <p v-for="(item, index) in list" :key="index">{{ item.text }}</p>
- </el-col>
- <el-col :span="24" class="box">
- <h6><span>技</span>术支持单位</h6>
- <p>长春市福瑞科技有限公司</p>
- </el-col>
- </el-col>
- </el-col>
- </div>
- </el-col>
- <el-col :span="24" class="four">
- <div class="w_1200">
- <el-col :span="10" class="seek">
- <el-col :span="24" class="title">
- <p>专家咨询:</p>
- </el-col>
- <el-col :span="24" class="text">
- <p>工作日:08:30~17:00</p>
- <p>咨询电话:</p>
- <p>0431-81666508</p>
- </el-col>
- </el-col>
- <el-col :span="10" class="seek">
- <el-col :span="24" class="title">
- <p>业务联系:</p>
- </el-col>
- <el-col :span="24" class="text">
- <p>长春中科北斗工程技术有限公司</p>
- <p>联系人:刘经理</p>
- <p>电话:18604328977</p>
- <p>邮箱:18889898@qq.com</p>
- </el-col>
- </el-col>
- <el-col :span="4" class="seek">
- <el-col :span="24" class="title">
- <p>活动帮微信:</p>
- </el-col>
- <el-col :span="24" class="text">
- <el-image :src="url5" style="width:130px;height:130px"></el-image>
- </el-col>
- </el-col>
- </div>
- </el-col>
- <el-col :span="24" class="footer">
- <live-foot></live-foot>
- </el-col>
- </el-col>
- </el-row>
- </div>
- </template>
- <script>
- import { mapState, createNamespacedHelpers } from 'vuex';
- const { mapActions: dock } = createNamespacedHelpers('dock');
- const { mapActions: expertsuser } = createNamespacedHelpers('expertsuser');
- const { mapActions: transaction } = createNamespacedHelpers('transaction');
- const { mapActions: market } = createNamespacedHelpers('market');
- import liveFoot from '@/layout/live/foot.vue';
- export default {
- metaInfo() {
- return { title: this.$route.meta.title };
- },
- name: 'detail',
- props: {},
- components: {
- liveFoot,
- },
- data: function() {
- return {
- two1: require('@a/9.jpg'),
- url1: require('@a/5.jpg'),
- url2: require('@a/6.jpg'),
- url3: require('@a/7.jpg'),
- url4: require('@a/sy_08.png'),
- url5: require('@a/8.jpg'),
- url6: require('@a/10.png'),
- url7: require('@a/live/222.png'),
- // 展會詳情
- dockInfo: {},
- activeName: 'first',
- //参展项目列表
- tableData: [],
- //参展需求
- tableData1: [],
- //专家列表
- expertList: [],
- //协办单位列表
- list: [
- { text: '中国科学院长春分院' },
- { text: '中国科学院长春应用化学研究所' },
- { text: '中国科学院长春光学精密机械与物理研究所' },
- { text: '中国科学院东北地理与农业生态研究所' },
- { text: '吉林大学' },
- { text: '东北师范大学' },
- { text: '长春理工大学' },
- { text: '吉林农业大学' },
- { text: '长春工业大学' },
- { text: '吉林工程技术师范学院' },
- { text: '吉林省农业机械研究院' },
- { text: '长春博士联合会' },
- ],
- pageSize: 4,
- total: 0,
- currentPage: 1,
- input3: '',
- origin: [],
- //参展项目分页
- list1: [],
- pageSize1: 10,
- total1: 0,
- currentPage1: 1,
- //参展需求分页
- origin2: [],
- list2: [],
- pageSize2: 10,
- total2: 0,
- currentPage2: 1,
- // 项目数
- statNum: {},
- };
- },
- created() {
- this.searchInfo();
- },
- methods: {
- ...dock({ dockQuery: 'query', dockFetch: 'fetch', goodsquery: 'goodsquery' }),
- ...expertsuser({ expertQuery: 'query', expertquery: 'expertquery' }),
- ...transaction({ tquery: 'query' }),
- ...market({ operaQuery: 'operaQuery' }),
- //查询信息
- async searchInfo({ skip = 0 } = {}) {
- if (this.dock_id) {
- let res = await this.dockFetch(this.dock_id);
- if (this.$checkRes(res)) {
- this.$set(this, `dockInfo`, res.data);
- let czxm = res.data.apply.map(item => item.goodsList);
- czxm = _.flattenDeep(czxm);
- let czxmNew = czxm.filter(item => item.dockStatus == '1');
- // 参展项目
- this.$set(this, `tableData`, czxmNew);
- this.$set(this, `total1`, czxmNew.length);
- this.$set(this.statNum, `czxm`, czxmNew.length);
- // 科技需求
- let techol = czxmNew.filter(i => i.type == '0');
- this.$set(this, `tableData1`, techol);
- this.$set(this, `total2`, techol.length);
- this.$set(this.statNum, `czxq`, techol.length);
- }
- }
- //查询专家列表
- const res = await this.expertQuery({ skip, limit: 4 });
- if (this.$checkRes(res)) {
- this.$set(this, `expertList`, res.data);
- this.$set(this, `total`, res.total);
- }
- // 查询直播实况
- // 正在洽谈
- let qthe = await this.tquery({ status: 0, dock_id: this.id });
- if (this.$checkRes(res)) {
- this.$set(this.statNum, `qthz`, qthe.total);
- }
- // 达成意向
- let dcyx = await this.tquery({ status: 1, dock_id: this.id });
- if (this.$checkRes(res)) {
- this.$set(this.statNum, `dcyx`, dcyx.total);
- }
- // 交易完成
- let jywc = await this.tquery({ status: 2, dock_id: this.id });
- if (this.$checkRes(res)) {
- this.$set(this.statNum, `jywc`, jywc.total);
- }
- // 同时在线
- let tszx = await this.operaQuery({ type: '0' });
- if (tszx) {
- this.$set(this.statNum, `tszx`, tszx.total);
- }
- },
- //返回直播大厅
- back() {
- this.$router.push({ path: '/halltwo/directTwo', query: { id: this.dock_id } });
- },
- handleCurrentChange(skip) {
- this.searchInfo({ skip });
- },
- searchPage1(page = 1) {
- this.$set(this, `list1`, this.origin[page - 1]);
- },
- handleCurrentChange1(currentPage) {
- this.searchPage1(currentPage);
- },
- searchPage2(page = 1) {
- this.$set(this, `list2`, this.origin2[page - 1]);
- },
- handleCurrentChange2(currentPage) {
- this.searchPage2(currentPage);
- },
- // 专家对接
- expertxmdjBtn(data) {
- this.$router.push({ path: '/halltwo/xmdj', query: { dock_id: this.dock_id, id: data._id, type: '3' } });
- },
- // 項目對接
- selectpro(data) {
- this.$router.push({ path: '/halltwo/xmdj', query: { dock_id: this.dock_id, id: data._id, type: data.type } });
- },
- },
- computed: {
- ...mapState(['user']),
- dock_id() {
- return this.$route.query.dock_id;
- },
- },
- watch: {
- //参展项目
- tableData: {
- immediate: true,
- deep: true,
- handler(val) {
- if (val && val.length > 0) this.$set(this, `origin`, _.chunk(val, this.pageSize1));
- this.searchPage1();
- },
- },
- //参展需求
- tableData1: {
- immediate: true,
- deep: true,
- handler(val) {
- if (val && val.length > 0) this.$set(this, `origin2`, _.chunk(val, this.pageSize2));
- this.searchPage2();
- },
- },
- },
- };
- </script>
- <style lang="less" scoped>
- .main {
- .one {
- height: 100px;
- .left {
- height: 100px;
- .leftone {
- margin: 15px 0 0 0;
- span:nth-child(1) {
- font-size: 35px;
- color: #535353;
- font-weight: bold;
- font-family: cursive;
- }
- span:nth-child(2) {
- font-size: 15px;
- padding: 0 10px;
- color: #535353;
- }
- }
- .lefttwo {
- font-size: 12px;
- color: #535353;
- }
- }
- .right {
- height: 100px;
- line-height: 100px;
- text-align: right;
- }
- }
- .two {
- height: 420px;
- padding: 20px 0;
- .twotop {
- margin: 0 0 10px 0;
- position: relative;
- p:nth-child(1) {
- position: absolute;
- left: 50%;
- top: 50%;
- z-index: 100000;
- font-size: 36px;
- transform: translate(-50%, -50%);
- color: gold;
- font-weight: bold;
- }
- .img1 {
- position: absolute;
- top: 0px;
- left: 0px;
- z-index: 999;
- }
- .left {
- height: 357px;
- margin: 0 10px 0 0;
- background: url('~@/assets/dock1.png');
- p {
- float: left;
- width: 79%;
- font-size: 43px;
- color: #fff;
- font-weight: bold;
- padding: 13% 0 0 20px;
- }
- .el-image {
- float: left;
- width: 153px;
- height: 94px;
- margin: 4% 0 0 0;
- }
- }
- .right {
- background-color: #ffffff;
- width: 24%;
- height: 357px;
- text-align: center;
- padding: 0 10px;
- .el-image {
- width: 120px;
- height: 48px;
- margin: 50px 0 0px 0;
- }
- p:nth-child(2) {
- font-size: 18px;
- margin: 30px 0 5px 0;
- }
- p:nth-child(3) {
- font-size: 22px;
- font-weight: bold;
- margin-bottom: 30px;
- }
- p:nth-child(4) {
- background: #f5f5f5;
- padding: 20px 0px;
- border-radius: 5px;
- height: 50px;
- }
- }
- .right:hover {
- cursor: pointer;
- p:nth-child(3) {
- color: #535353;
- }
- }
- }
- .twocen {
- height: 130px;
- overflow: hidden;
- line-height: 130px;
- background-color: #f4f4f4;
- margin: 0 0 35px 0;
- .left {
- font-size: 18px;
- margin: 0 0 0 30px;
- span {
- font-size: 22px;
- font-weight: bold;
- }
- }
- .right {
- .btn1 {
- font-size: 16px;
- color: #fff;
- background: red;
- border: none;
- font-weight: bold;
- }
- .btn2 {
- font-size: 16px;
- color: #ff0000;
- border: 1px solid #ff0000;
- font-weight: bold;
- }
- }
- }
- }
- .three {
- .left {
- padding-right: 45px;
- border-right: 1px solid #ccc;
- .leftInfo {
- .leftInfoone {
- .title {
- width: 130px;
- height: 40px;
- background: #2152cb;
- margin: 35px 0px;
- font-size: 22px;
- color: #fff;
- text-align: center;
- line-height: 40px;
- }
- p {
- float: left;
- width: 245px;
- height: 70px;
- margin: 0 5px 5px 0;
- span {
- display: inline-block;
- width: 120px;
- background: red;
- margin: 0 5px 0 0;
- height: 70px;
- text-align: center;
- line-height: 70px;
- font-size: 16px;
- font-weight: bold;
- }
- span:nth-child(1) {
- color: #2152cb;
- background: #ffe26d;
- }
- span:nth-child(2) {
- margin: 0 0 0 0;
- background: #fff48a;
- }
- }
- }
- .artical {
- font-size: 15px;
- line-height: 26px;
- color: #070707;
- margin: 50px 0 40px 0;
- .text {
- text-indent: 2em;
- margin-top: 25px;
- }
- .text:hover {
- cursor: pointer;
- }
- }
- .shool {
- .tit {
- border-bottom: 1px solid #ccc;
- margin-bottom: 10px;
- padding: 0 10px;
- p:nth-child(1) {
- font-size: 18px;
- width: 100px;
- height: 36px;
- background: #2152cb;
- color: #fff;
- border-radius: 5px;
- text-align: center;
- line-height: 36px;
- }
- }
- }
- .tabs {
- margin-top: 30px;
- position: relative;
- .search {
- position: absolute;
- top: -8px;
- right: 0px;
- .btn1 {
- background: #2152cb;
- color: #fff;
- width: 80px;
- text-align: center;
- padding: 0px;
- height: 40px;
- }
- }
- .page1 {
- text-align: center;
- margin-top: 10px;
- }
- .zj {
- padding: 27px 10px;
- .zjInfo {
- padding: 20px 30px;
- border-radius: 5px;
- .img {
- // width: 160px;
- height: 160px;
- overflow: hidden;
- border-radius: 5px;
- }
- .text {
- height: 160px;
- padding: 0 10px;
- .name {
- font-weight: bold;
- font-size: 18px;
- margin: 10px 0 10px 0;
- }
- .btn {
- margin: 0 0 10px 0;
- }
- }
- }
- .zjInfo:hover {
- box-shadow: 0 0 5px rgba(127, 126, 126, 0.3);
- }
- }
- .bgColor {
- display: block;
- height: 24px;
- width: 90px;
- text-align: center;
- color: #fff;
- background: #4d75d5;
- border-radius: 8px;
- line-height: 24px;
- margin-top: 6px;
- margin-left: 46px;
- }
- }
- }
- }
- .right {
- padding-left: 40px;
- .img {
- margin-top: 80px;
- }
- .brif {
- font-size: 15px;
- line-height: 24px;
- color: #070707;
- margin-bottom: 20px;
- p:nth-child(1) {
- font-size: 18px;
- color: #2152cb;
- line-height: 40px;
- margin-bottom: 10px;
- font-weight: bold;
- }
- .box {
- padding: 20px 0;
- border-bottom: 1px solid #b3b3b3;
- font-size: 16px;
- line-height: 28px;
- text-align: right;
- h6 {
- font-weight: bold;
- font-size: 30px;
- position: relative;
- margin-bottom: 15px;
- text-align: left;
- line-height: 40px;
- margin-top: 0px;
- span {
- font-size: 36px;
- margin-right: 10px;
- }
- }
- h6::after {
- content: '';
- width: 20px;
- height: 12px;
- background: #2152cb;
- display: block;
- position: absolute;
- bottom: 5px;
- right: 0;
- }
- }
- }
- }
- }
- .four {
- border-top: 2px solid #305798;
- padding-top: 35px;
- margin-top: 50px;
- font-size: 14px;
- .seek {
- .title {
- position: relative;
- font-size: 22px;
- font-weight: bold;
- margin-bottom: 20px;
- img {
- width: 126px;
- height: 36px;
- position: absolute;
- top: -1px;
- left: 105px;
- }
- }
- .text {
- color: #4d4d4d;
- line-height: 28px;
- font-weight: normal;
- font-size: 14px;
- }
- }
- }
- }
- /deep/.el-tabs__item.is-active {
- color: #2152cb;
- font-weight: bold;
- }
- /deep/.el-tabs__item {
- font-size: 14px;
- color: #333;
- }
- /deep/.el-tabs__active-bar {
- background-color: #2152cb;
- }
- /deep/.el-table .cell {
- color: #000;
- text-align: center;
- }
- /deep/ .inpu1 {
- width: 234px;
- }
- /deep/.el-table .cell {
- display: -webkit-box;
- -webkit-box-orient: vertical;
- -webkit-line-clamp: 1;
- overflow: hidden;
- }
- /deep/.el-table th.is-leaf {
- background-color: #e6e6e6;
- }
- </style>
|