<template>
  <div id="list">
    <el-col :span="24" class="main">
      <el-col :span="24">
        <el-col :span="5" class="menu">
          <el-image :src="squareImage"></el-image>
          <span>Menu</span>
          <el-col class="menuList" :span="24" v-for="(item, index) in menuList" :key="index">
            <p @click="changeMenu(item.name, index)" :style="`color:${menuIndex == index ? menuColor : ''}`">{{ item.name }}</p>
          </el-col>
        </el-col>
        <el-col :span="19" class="info" v-if="display == '1'">
          <el-col v-if="menuIndex == '0'" class="leftInfo">
            <el-col :span="24" class="leftTop">
              <span>|</span> <span>{{ menuName }}</span>
            </el-col>
            <el-col class="infoLeftList" :span="24" v-for="(item, index) in zhuantiList" :key="index">
              <p>{{ item.meta && item.meta.createdAt ? new Date(item.meta.createdAt).toLocaleDateString() : '' || '' }}</p>
              <p>
                <span class="textOver" @click="clickshanpin(item.id)">{{ item.name }} </span>
                <span><el-button type="text" @click="fabu()">我要发布</el-button></span>
                <span>{{ item.introduction }}</span>
              </p>
            </el-col>
          </el-col>
          <el-col v-if="menuIndex == '1'" class="leftInfo">
            <el-col :span="24" class="leftTop">
              <span>|</span> <span>{{ menuName }}</span>
            </el-col>
            <el-col class="infoRightList" :span="24" v-for="(item, index) in jishuList" :key="index">
              <p>
                <span class="textOver" @click="clickjishu(item.id)">{{ item.name }}</span>

                <span><el-button type="text" @click="fabu()">我要发布</el-button></span>
                <span class="textOver">{{ item.meta && item.meta.createdAt ? new Date(item.meta.createdAt).toLocaleDateString() : '' || '' }}</span>
              </p>
            </el-col>
          </el-col>
          <el-col v-if="menuIndex == '2'" class="leftInfo">
            <el-col :span="24" class="leftTop">
              <span>|</span> <span>{{ menuName }}</span>
            </el-col>
            <el-col class="infoRightList" :span="24" v-for="(item, index) in hangyeList" :key="index">
              <p>
                <span class="textOver" @click="clickfuwu(item.id)">{{ item.name }}</span>
                <span><el-button type="text" @click="fabu()">我要发布</el-button></span>
                <span class="textOver">{{ item.meta && item.meta.createdAt ? new Date(item.meta.createdAt).toLocaleDateString() : '' || '' }}</span>
              </p>
            </el-col>
          </el-col>
          <el-col v-if="menuIndex == '3'" class="leftInfo">
            <el-col :span="24" class="leftTop">
              <span>|</span> <span>{{ menuName }}</span>
            </el-col>
            <el-col class="infoLeftList" :span="24" v-for="(item, index) in jiaoyuList" :key="index">
              <p>{{ item.meta && item.meta.createdAt ? new Date(item.meta.createdAt).toLocaleDateString() : '' || '' }}</p>
              <p>
                <span class="textOver" @click="clickzhuanjia(item.id)">{{ item.name }}</span>
                <span><el-button type="text" @click="fabu()">我要发布</el-button></span>
                <span>{{ item.job_profile }}</span>
              </p>
            </el-col>
          </el-col>
          <el-col class="page">
            <el-pagination
              background
              @current-change="handleCurrentChange"
              :current-page.sync="currentPage"
              :page-size="pageSize"
              layout="total,prev, pager, next, jumper"
              :total="pageTotal"
            >
            </el-pagination>
          </el-col>
        </el-col>
        <el-col :span="19" v-else-if="display == '2'" class="info">
          <context :detailInfo="detailInfo" @onSubmit="onSubmit"></context>
        </el-col>
        <el-col :span="19" v-else-if="display == '3'" class="info">
          <zhuanjia :zhuanjiainfo="zhuanjiainfo"></zhuanjia>
        </el-col>
      </el-col>
    </el-col>
  </div>
</template>

<script>
import _ from 'lodash';
import { mapState, createNamespacedHelpers } from 'vuex';
const { mapActions: product } = createNamespacedHelpers('enterpriseproject');
const { mapActions: talentExperts } = createNamespacedHelpers('talentExperts');
const { mapActions: transaction } = createNamespacedHelpers('transaction');
const { mapActions: tranaudit } = createNamespacedHelpers('tranaudit');
import zhuanjia from '@/layout/market/zhuanjia.vue';
import context from '@/layout/market/context.vue';

export default {
  name: 'list',
  props: {},
  components: {
    context,
    zhuanjia,
  },
  data: () => ({
    squareImage: require('@/assets/live/square_big.png'),
    menuList: [{ name: '科技产品' }, { name: '技术供求' }, { name: '服务供求' }, { name: '专家供求' }],
    menuIndex: '0',
    menuName: '科技产品',
    menuColor: 'rgb(254, 149, 14)',
    currentPage: 1,
    pageTotal: 0,
    pageSize: 10,
    limit: 10,
    zhuantiList: [],
    jishuList: [],
    hangyeList: [],
    jiaoyuList: [],
    display: '1',
    detailInfo: {},
    zhuanjiainfo: {},
  }),
  created() {
    this.searchList();
    this.search();
    console.log(this.$route.query.display);
  },
  computed: {
    ...mapState(['user']),
    dispaly() {
      return this.$route.query.display;
    },

    id() {
      return this.$route.query.id;
    },
    pageTitle() {
      return `${this.$route.meta.title}`;
    },
    totaltype() {
      return this.$route.query.totaltype;
    },
  },
  metaInfo() {
    return { title: this.$route.meta.title };
  },

  methods: {
    ...product({ list: 'newquery', newfetch: 'newfetch' }),
    ...talentExperts({ lists: 'query', fetch: 'fetch' }),
    ...transaction({ transactioncreate: 'create', transactionfetch: 'fetch' }),
    ...tranaudit({ tranauditcreate: 'create' }),
    async searchList({ skip = 0, limit = 10, ...info } = {}) {
      if (this.$route.query.column_name == '科技产品') {
        this.display = '1';
        this.changeMenu(this.$route.query.column_name, 0);
      } else if (this.$route.query.column_name == '技术供求') {
        this.display = '1';
        this.changeMenu(this.$route.query.column_name, 1);
      } else if (this.$route.query.column_name == '服务供求') {
        this.display = '1';
        this.changeMenu(this.$route.query.column_name, 2);
      } else if (this.$route.query.column_name == '专家供求') {
        this.display = '1';
        this.changeMenu(this.$route.query.column_name, 3);
      }
    },
    async changeMenu(name, index) {
      console.log(index, name);

      this.menuIndex = index;
      this.menuColor = 'rgb(254, 149, 14)';
      this.menuName = name;
      this.initList({ name });
    },
    async initList({ name, skip = 0, limit = 10, ...info } = {}) {
      this.display = '1';
      let res = [];
      this.pageSize = 5;
      if (name == '科技产品') {
        let totaltype = '1';
        console.log(totaltype);

        res = await this.list({ skip, limit, totaltype, status: 1, ...info });

        this.$set(this, `zhuantiList`, res.data);
      } else if (name == '技术供求') {
        let totaltype = '0';
        console.log(totaltype);
        res = await this.list({ skip, limit, totaltype, status: 1, ...info });
        this.$set(this, `jishuList`, res.data);
      } else if (name == '服务供求') {
        let totaltype = '2';
        console.log(totaltype);
        res = await this.list({ skip, limit, totaltype, status: 1, ...info });
        this.$set(this, `hangyeList`, res.data);
      } else if (name == '专家供求') {
        let totaltype = this.totaltype;
        res = await this.lists({ skip, limit, status: 1, ...info });
        this.$set(this, `jiaoyuList`, res.data);
      }
      this.$set(this, `pageTotal`, res.total);
    },
    handleCurrentChange(val) {
      const name = this.menuName;
      if (name == '科技产品' || name == '专家供求') {
        this.limit = 5;
      }
      this.initList({ name: name, skip: (val - 1) * this.limit, limit: this.limit });
    },
    async clickshanpin(id) {
      this.display = '2';
      console.log(id);
      const res = await this.newfetch(id);
      console.log(res.data);
      this.$set(this, `detailInfo`, res.data);
    },

    async clickjishu(id) {
      this.display = '2';
      console.log(id);
      const res = await this.newfetch(id);
      console.log(res.data);
      this.$set(this, `detailInfo`, res.data);
    },

    async search() {
      this.display = this.$route.query.display;
      console.log(this.display);

      if (this.display == '2') {
        console.log(this.id);
        const res = await this.newfetch(this.id);
        console.log(res.data);
        this.$set(this, `detailInfo`, res.data);
      }
      // else if (this.dispaly == '1') {
      //   const res = await this.newquery(this.id);
      //   console.log(res.data);
      //   this.$set(this, `detailInfo`, res.data);
      // }
      else if (this.dispaly == '3') {
        const res = await this.fetch(this.id);
        console.log(res.data);
        this.$set(this, `zhuanjiainfo`, res.data);
      }
    },

    async clickfuwu(id) {
      this.display = '2';
      console.log(id);
      const res = await this.newfetch(id);
      console.log(res.data);
      this.$set(this, `detailInfo`, res.data);
    },

    async clickzhuanjia(id) {
      this.display = '3';
      const res = await this.fetch(id);
      console.log(res.data);
      this.$set(this, `zhuanjiainfo`, res.data);
    },

    fabu() {
      if (this.user.role == '2' || this.user.role == '3') {
        this.$router.push({ path: '/market/marketfabu' });
      } else if (this.user.uid == undefined) {
        this.$router.push({ path: '/login' });
      } else {
      }
    },
    async onSubmit() {
      console.log(this.user.uid);
      let form = {};
      form.userid = this.user.uid;
      form.username = this.user.name;
      form.product_id = this.detailInfo.id;
      form.product_name = this.detailInfo.name;
      form.market_userid = this.detailInfo.userid;
      form.market_username = this.detailInfo.contact_user;
      form.status = '0';
      console.log(form);
      let res = await this.transactioncreate(form);
      this.$checkRes(res, '发起洽谈交易成功', '交易失败');
      let shenhe = {};
      shenhe.result = '0';
      console.log(res.data.id);

      shenhe.transaction_id = res.data.id;
      shenhe.userid = this.detailInfo.userid;
      shenhe.product_id = this.detailInfo.userid;
      console.log(shenhe);
      let ress = await this.tranauditcreate(shenhe);
    },
  },
};
</script>

<style lang="less" scoped>
.main {
  width: 80%;
  margin: 0 auto;
  float: none;
}
.menu {
  float: left;
  min-height: 600px;
  width: 20%;
  background: no-repeat bottom right;
  background-image: url(../../assets/live/menu_back.jpg);
  margin: 30px 0;
  padding: 10px 0 0 10px;
  box-sizing: border-box;
  box-shadow: 0 0 10px #bbbaba;
}
.menu .el-image {
  width: 30px;
  display: inline-table;
  margin: 10px 5px;
}
.menu span {
  font-size: 24px;
  color: #92959a;
  font-weight: 600;
  margin-left: 3px;
  position: relative;
  top: 10px;
}
.menuList p {
  line-height: 60px;
  font-size: 18px;
  cursor: pointer;
  border-bottom: 1px solid #2d64b3;
  color: #044b79;
  font-weight: 600;
}
.info {
  width: 77%;
  float: right;
  margin: 30px 0 30px 2px;
  min-height: 600px;
  box-shadow: 0 0 10px #2d64b3;
  overflow: hidden;
  right: 0px;
  background: #ffffff;
}
.leftInfo {
  height: 500px;
  overflow: hidden;
}
.leftTop {
  font-size: 18px;
  width: 96%;
  height: 41px;
  line-height: 35px;
  border-bottom: 1px solid #e5e5e5;
  position: relative;
  bottom: 1px;
  margin: 10px;
  font-weight: 600;
  color: #22529a;
}
.infoLeftList {
  float: left;
  width: 95%;
  border-bottom: 1px dashed #ccc;
  padding: 10px 0 10px 10px;
  height: 87px;
  margin: 0 0 0 5px;
}
.infoLeftList:hover p:last-child span:first-child {
  -webkit-transform: translateY(-3px);
  -ms-transform: translateY(-3px);
  transform: translateY(-3px);
  -webkit-box-shadow: 0 0 6px #999;
  box-shadow: 0 0 6px #999;
  -webkit-transition: all 0.5s ease-out;
  transition: all 0.5s ease-out;
  color: #005293;
  cursor: pointer;
}
.infoLeftList p:first-child {
  float: left;
  width: 20%;
  font-size: 15px;
  background: #044b79;
  text-align: center;
  color: #fff;
  font-weight: bold;
  padding: 4px 0px;
  margin: 0 0 0 5px;
}
.infoLeftList p:last-child {
  float: right;
  width: 70%;
  padding: 0 0 0 10px;
}
.infoLeftList p:last-child span:first-child {
  float: left;
  width: 90%;
  font-size: 18px;
}
.infoLeftList p:last-child span:last-child {
  float: left;
  width: 90%;
  font-size: 16px;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: 2;
  word-break: break-all;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  margin: -20px 0 0 0;
  color: #666;
}
.page {
  text-align: center;
  margin: 10px 0;
}
.infoRightList {
  float: left;
  width: 95%;
  padding: 7px 0;
  margin: 0 0 0 5px;
}
.infoRightList:nth-child(6) {
  border-bottom: 1px solid #ccc;
  padding: 0 0 17px 0;
}
.infoRightList:nth-child(7) {
  padding: 15px 0 0 0;
}
.infoRightList:nth-child(11) {
  border-bottom: 1px solid #ccc;
  padding: 0 0 15px 0;
}
.infoRightList:hover p span:first-child {
  -webkit-transform: translateY(-3px);
  -ms-transform: translateY(-3px);
  transform: translateY(-3px);
  -webkit-box-shadow: 0 0 6px #999;
  box-shadow: 0 0 6px #999;
  -webkit-transition: all 0.5s ease-out;
  transition: all 0.5s ease-out;
  color: #005293;
  cursor: pointer;
}
.infoRightList p {
  font-size: 18px;
}
.infoRightList p span:first-child {
  display: inline-block;
  width: 70%;
  margin: 0 20px 0 10px;
}
.infoRightList p span:last-child {
  display: inline-block;
  width: 21%;
  text-align: center;
  font-size: 16px;
}
</style>
