Procházet zdrojové kódy

Merge branch 'master' of http://git.cc-lotus.info/service-platform/web-test

guhongwei před 5 roky
rodič
revize
11f618e57b

+ 1 - 1
public/static/liveIndex.html

@@ -51,7 +51,7 @@
 <script language="javascript">
  function btnDirect() {
      var query = window.location.search.substring(1);
-     window.open('/direct?'+query)
+     window.open('/platlive/direct?'+query)
   }
 </script>
 </html>

+ 92 - 0
src/components/enterprise/useredit.vue

@@ -0,0 +1,92 @@
+<template>
+  <div id="adviserList">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="top">
+          <heads></heads>
+        </el-col>
+        <div class="w_1200">
+          <el-col :span="5" class="left">
+            <el-col :span="24" class="leftTop">
+              <mainMenu :liebiaoList="liebiaoList" v-on="$listeners"></mainMenu>
+            </el-col>
+          </el-col>
+          <el-col :span="19" class="right">
+            <contextedit v-on="$listeners" :forms="forms" :totaltype="totaltype" :columnList="columnList"></contextedit>
+          </el-col>
+        </div>
+        <el-col :span="24" class="foots">
+          <foot></foot>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import heads from '@/layout/enterprise/heads.vue';
+import mainMenu from '@/layout/enterprise/mainMenu.vue';
+import contextedit from '@/layout/enterprise/contextedit.vue';
+import foot from '@/layout/live/foot.vue';
+export default {
+  name: 'adviserList',
+  props: {
+    liebiaoList: null, //分类导航
+    forms: null, //需求发布
+    columnList: null, //类型列表
+    totaltype: null, //判断
+  },
+  components: {
+    heads,
+    mainMenu, //分类导航
+    contextedit, //列表
+    foot,
+  },
+  data: () => ({}),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+.w_1200 {
+  width: 80%;
+  margin: 0 auto;
+}
+
+.menu {
+  height: 70px;
+  overflow: hidden;
+}
+.main {
+  min-height: 1920px;
+  overflow: hidden;
+  padding: 10px 0 0 0;
+  background: #e9edf6;
+  background-attachment: fixed;
+  background-size: cover;
+  background-position: center center;
+}
+.left {
+  height: 900px;
+  margin: 0 10px 0 0;
+  width: 20%;
+}
+
+.leftTop {
+  background: #fff;
+  height: 480px;
+  overflow: hidden;
+  margin: 0 0 10px 0;
+}
+.right {
+  width: 79%;
+  min-height: 1720px;
+  overflow: hidden;
+  background-color: #fff;
+}
+.foots {
+  margin: 10px 0 0 0;
+}
+</style>

+ 465 - 0
src/layout/enterprise/contextedit.vue

@@ -0,0 +1,465 @@
+<template>
+  <div id="contextfabu">
+    <el-row>
+      <el-col :span="24" class="contextfabu">
+        <el-row class="demandForm">
+          <el-col></el-col>
+          <el-form ref="forms" :model="forms" label-width="120px">
+            <el-form-item label="用户名称">
+              <el-input v-model="forms.name" placeholder="请输入用户名称"></el-input>
+            </el-form-item>
+            <el-form-item label="登录密码">
+              <el-input v-model="forms.password" placeholder="请输入登录密码" show-password></el-input>
+            </el-form-item>
+            <el-form-item label="身份证号">
+              <el-input v-model="forms.cardnumber" placeholder="请输入身份证号" :minlength="18" :maxlength="18"></el-input>
+            </el-form-item>
+            <el-form-item label="手机号">
+              <el-input v-model="forms.phone" placeholder="请输入手机号" :minlength="11" :maxlength="11"></el-input>
+            </el-form-item>
+            <el-form-item label="邮箱">
+              <el-input v-model="forms.email" placeholder="请输入邮箱"></el-input>
+            </el-form-item>
+            <el-form-item label="地址">
+              <el-input v-model="forms.addr" placeholder="请输入地址"></el-input>
+            </el-form-item>
+            <el-form-item label="头像图片" prop="img_path">
+              <upload :limit="1" :data="forms.img_path" type="img_path" :url="'/files/imgpath/upload'" @upload="uploadSuccess"></upload>
+            </el-form-item>
+            <el-form-item label="用户类别">
+              <!-- <el-radio v-model="forms.role" label="1">管理员</el-radio> -->
+              <el-radio-group v-model="forms.role" @change="setIsQy">
+                <el-radio label="2">个人</el-radio>
+                <el-radio label="3">企业管理员</el-radio>
+              </el-radio-group>
+            </el-form-item>
+
+            <el-form-item label="身份证正面">
+              <upload :limit="1" :data="forms.cardfile_a" type="cardfile_a" :url="'/files/cardfilea/upload'" @upload="uploadSuccess"></upload>
+            </el-form-item>
+            <el-form-item label="身份证背面">
+              <upload :limit="1" :data="forms.cardfile_b" type="cardfile_b" :url="'/files/cardfileb/upload'" @upload="uploadSuccess"></upload>
+            </el-form-item>
+            <el-form-item label="组织机构图片" v-if="forms.role == '3'">
+              <upload :limit="1" :data="forms.img_qy" type="img_qy" :url="'/files/imgqy/upload'" @upload="uploadSuccess"></upload>
+            </el-form-item>
+            <el-form-item label="简介" placeholder="请输入简介">
+              <el-input type="textarea" v-model="forms.resume"></el-input>
+            </el-form-item>
+            <el-form-item label="专业领域" placeholder="请输入专业领域">
+              <el-input v-model="forms.major"></el-input>
+            </el-form-item>
+            <template v-if="forms.role == '3'">
+              <el-form-item label="机构类型" placeholder="请输入机构类型">
+                <el-input v-model="forms.institution_type"></el-input>
+              </el-form-item>
+              <el-form-item label="机构名称" placeholder="请输入机构名称">
+                <el-input v-model="forms.institution_name"></el-input>
+              </el-form-item>
+              <el-form-item label="机构代码" placeholder="请输入机构代码">
+                <el-input v-model="forms.institution_code"></el-input>
+              </el-form-item>
+              <el-form-item label="机构性质" placeholder="请输入机构性质">
+                <el-input v-model="forms.institution_nature"></el-input>
+              </el-form-item>
+            </template>
+            <el-form-item label="办公电话" placeholder="请输入办公电话">
+              <el-input v-model="forms.office_phone"></el-input>
+            </el-form-item>
+            <el-form-item label="所属行业" placeholder="请输入所属行业">
+              <el-input v-model="forms.profession"></el-input>
+            </el-form-item>
+            <el-col :span="24" class="loginSubmit"><el-button type="primary" @click="registerSubmit">注册</el-button></el-col>
+            <el-row class="demandBtn">
+              <el-button type="primary" @click="demandBtn()">产品发布</el-button>
+            </el-row>
+          </el-form>
+        </el-row>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import _ from 'lodash';
+import upload from '@/components/upload.vue';
+export default {
+  name: 'contextfabu',
+  props: {
+    forms: null,
+    columnList: null,
+    totaltype: null,
+  },
+  components: {
+    upload,
+  },
+  data: () => ({
+    options: [
+      {
+        value: 'totaltype',
+        label: '产品类型',
+        disabled: true,
+      },
+      {
+        value: 'name',
+        label: '产品名称',
+        disabled: true,
+      },
+      {
+        value: 'contact_user',
+        label: '联系人',
+        disabled: true,
+      },
+
+      {
+        value: 'contact_tel',
+        label: '联系人电话',
+        disabled: true,
+      },
+
+      {
+        value: 'description',
+        label: '产品描述',
+      },
+      {
+        value: 'product_type_id',
+        label: '类型',
+      },
+      {
+        value: 'phase',
+        label: '研发阶段',
+      },
+      {
+        value: 'introduction',
+        label: '产品简介',
+        disabled: true,
+      },
+
+      {
+        value: 'price',
+        label: '产品单价',
+      },
+      {
+        value: 'priceunit',
+        label: '产品单位',
+      },
+
+      {
+        value: 'image',
+        label: '产品图片',
+      },
+      {
+        value: 'product_args',
+        label: '产品参数',
+      },
+      {
+        value: 'field',
+        label: '应用领域',
+      },
+
+      {
+        value: 'prospect',
+        label: '市场前景',
+      },
+      {
+        value: 'contract',
+        label: '电子合同',
+      },
+      {
+        value: 'gxtype',
+        label: '供给类型',
+      },
+      {
+        value: 'scope',
+        label: '服务范围',
+      },
+
+      {
+        value: 'property',
+        label: '知识产权',
+      },
+
+      {
+        value: 'business',
+        label: '交易方式',
+      },
+    ],
+
+    option2: [
+      {
+        value: 'totaltype',
+        label: '产品类型',
+        disabled: true,
+      },
+      {
+        value: 'name',
+        label: '产品名称',
+        disabled: true,
+      },
+      {
+        value: 'contact_user',
+        label: '联系人',
+        disabled: true,
+      },
+
+      {
+        value: 'contact_tel',
+        label: '联系人电话',
+        disabled: true,
+      },
+
+      {
+        value: 'description',
+        label: '产品描述',
+      },
+      {
+        value: 'product_type_id',
+        label: '类型',
+      },
+
+      {
+        value: 'introduction',
+        label: '产品简介',
+        disabled: true,
+      },
+
+      {
+        value: 'price',
+        label: '产品单价',
+      },
+      {
+        value: 'priceunit',
+        label: '产品单位',
+      },
+
+      {
+        value: 'image',
+        label: '产品图片',
+      },
+      {
+        value: 'product_args',
+        label: '产品参数',
+      },
+
+      {
+        value: 'contract',
+        label: '电子合同',
+      },
+      {
+        value: 'gxtype',
+        label: '供给类型',
+      },
+      {
+        value: 'scope',
+        label: '服务范围',
+      },
+
+      {
+        value: 'property',
+        label: '知识产权',
+      },
+
+      {
+        value: 'business',
+        label: '交易方式',
+      },
+    ],
+
+    option3: [
+      {
+        value: 'totaltype',
+        label: '产品类型',
+        disabled: true,
+      },
+      {
+        value: 'name',
+        label: '产品名称',
+        disabled: true,
+      },
+      {
+        value: 'contact_user',
+        label: '联系人',
+        disabled: true,
+      },
+
+      {
+        value: 'contact_tel',
+        label: '联系人电话',
+        disabled: true,
+      },
+
+      {
+        value: 'description',
+        label: '产品描述',
+      },
+      {
+        value: 'product_type_id',
+        label: '类型',
+      },
+
+      {
+        value: 'introduction',
+        label: '产品简介',
+        disabled: true,
+      },
+
+      {
+        value: 'price',
+        label: '产品单价',
+      },
+      {
+        value: 'priceunit',
+        label: '产品单位',
+      },
+
+      {
+        value: 'image',
+        label: '产品图片',
+      },
+
+      {
+        value: 'field',
+        label: '应用领域',
+      },
+
+      {
+        value: 'prospect',
+        label: '市场前景',
+      },
+      {
+        value: 'contract',
+        label: '电子合同',
+      },
+      {
+        value: 'gxtype',
+        label: '供给类型',
+      },
+      {
+        value: 'scope',
+        label: '服务范围',
+      },
+
+      {
+        value: 'property',
+        label: '知识产权',
+      },
+
+      {
+        value: 'business',
+        label: '交易方式',
+      },
+    ],
+    is_display: [],
+    value1: [],
+    value2: [],
+
+    activeName: 'first',
+    priceunit_list: [
+      {
+        name: '公斤',
+      },
+      {
+        name: '套',
+      },
+      {
+        name: '件',
+      },
+    ],
+    product_args: [],
+    selectlistRow: [],
+    rowNum: 1,
+    totaltype_list: [
+      { name: '技术', value: '0' },
+      { name: '产品', value: '1' },
+      { name: '服务', value: '2' },
+    ],
+  }),
+  created() {},
+
+  computed: {},
+  methods: {
+    handleClick(tab, event) {
+      console.log(tab, event);
+    },
+    demandBtn() {
+      console.log(this.demandForm);
+
+      this.$emit('demandSubmit', { data: this.demandForm, id: this.demandForm.id });
+    },
+    selectChild(product_type_id) {
+      let res = this.columnList.filter(fil => fil.id === product_type_id);
+      if (res.length > 0) {
+        console.log(res[0].name);
+        this.$set(this.demandForm, `product_type_name`, res[0].name);
+      }
+      this.$forceUpdate();
+    },
+    uploadSuccess({ type, data }) {
+      let arr = _.get(this.demandForm, type);
+      if (_.isArray(arr)) {
+        let datas = { name: data.name, url: data.uri };
+        this.demandForm[type].push({ name: data.name, url: data.uri });
+      } else {
+        let newArr = [{ name: data.name, url: data.uri }];
+        this.$set(this.demandForm, `${type}`, newArr);
+      }
+    },
+
+    // 获取表格选中时的数据
+    selectRow(val) {
+      this.selectlistRow = val;
+    },
+    addRow() {
+      var list = {
+        rowNum: this.rowNum,
+      };
+      // let tableData = this.emandForm.product_args;
+      this.product_args.unshift(list);
+      this.rowNum += 1;
+    },
+
+    uploadDelete(index) {
+      console.log(index);
+
+      this.demandForm.image.splice(index, 1);
+    },
+    selectType(item) {
+      this.$emit('changeType', item);
+      // this.$set(this, `totaltype`, item);
+      console.log(item);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.el-tabs--card > .el-tabs__header {
+  border-bottom: 1px solid #215299;
+}
+/deep/.el-tabs__item {
+  height: 50px;
+  line-height: 50px;
+  font-size: 16px;
+}
+/deep/.el-tabs__item.is-active {
+  color: #ffff;
+  background: #215299;
+}
+.demandForm {
+  padding: 0 20px;
+}
+.demandBtn {
+  text-align: center;
+}
+/deep/.demandBtn .el-button {
+  background-color: #ff7814;
+  border: none;
+}
+/deep/.el-table td {
+  padding: 0;
+}
+/deep/.el-table th {
+  padding: 0;
+  background-color: #f3f3f3;
+}
+</style>

+ 9 - 4
src/layout/enterprise/jibencontext.vue

@@ -1,9 +1,7 @@
 <template>
   <div id="rightcont">
     <el-col class="zhengce">
-      <el-col :span="24" class="topTitle">
-        基本信息
-      </el-col>
+      <el-col :span="24" class="topTitle"> <span>基本信息</span><span class="xiugai" @click="edit"> 修改个人信息</span></el-col>
       <el-col :span="24" class="info">
         <el-col :span="24">
           <p>用户名:{{ userinfo.name }}</p>
@@ -83,7 +81,11 @@ export default {
   computed: {
     ...mapState(['user']),
   },
-  methods: {},
+  methods: {
+    edit() {
+      this.$router.push({ path: '/enterprise/useredit' });
+    },
+  },
 };
 </script>
 
@@ -100,6 +102,9 @@ p {
   color: #22529a;
   margin: 0 0 20px 0;
 }
+.xiugai {
+  float: right;
+}
 .zhengce .info {
   float: left;
   width: 100%;

+ 53 - 11
src/layout/enterprise/mainMenu.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="fenlei">
-    <el-col class="swfl" :span="24">
+    <!-- <el-col class="swfl" :span="24">
       <el-image style="width:22px;height:22px;margin:0 5px -5px 0;" :src="src"></el-image>
       <span>个人中心</span>
     </el-col>
@@ -17,6 +17,24 @@
           </template>
         </el-menu-item>
       </el-menu>
+    </el-col> -->
+    <el-col class="menu" :span="24">
+      <el-image :src="squareImage"></el-image>
+      <span>个人中心</span>
+      <el-col>
+        <el-menu default-active="1" class="el-menu-vertical-demo" @open="handleOpen" @close="handleClose">
+          <el-menu-item index="1" v-for="(item, index) in liebiaoList" :key="index">
+            <template v-if="item.name.includes('消息')">
+              <span slot="title" @click="clickUrl(item.name)" :style="`color:${haveMsg ? 'red' : ''}`">
+                {{ item.name }}
+              </span>
+            </template>
+            <template v-else>
+              <span slot="title" @click="clickUrl(item.name)">{{ item.name }}</span>
+            </template>
+          </el-menu-item>
+        </el-menu>
+      </el-col>
     </el-col>
   </div>
 </template>
@@ -30,6 +48,7 @@ export default {
   components: {},
   data: () => ({
     src: require('@/assets/swfl.png'),
+    squareImage: require('@/assets/live/square_big.png'),
     haveMsg: false,
   }),
   created() {},
@@ -50,24 +69,47 @@ export default {
 </script>
 
 <style lang="less" scoped>
-.swfl {
-  height: 60px;
-  line-height: 60px;
-  background-color: #22529a;
-  text-align: center;
-}
+// .swfl {
+//   height: 60px;
+//   line-height: 60px;
+//   background-color: #22529a;
+//   text-align: center;
+// }
 .swfl span {
   font-size: 22px;
   color: #ffffff;
 }
 /deep/.el-menu-item {
-  height: 60px;
-  text-align: center;
+  font-size: 18px;
+  border-bottom: 1px solid #2d64b3;
+  color: #044b79;
+  font-weight: 600;
   line-height: 60px;
-  border-bottom: 1px dashed;
-  font-size: 22px;
 }
 /deep/.el-menu-item:last-child {
   border-bottom: none;
 }
+.menu {
+  float: left;
+  height: 480px;
+  width: 100%;
+  // background: no-repeat bottom right;
+  // background-image: url(../../assets/live/menu_back.jpg);
+  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:nth-child(2) {
+  font-size: 24px;
+  color: #92959a;
+  font-weight: 600;
+  margin-left: 3px;
+  position: relative;
+  top: 10px;
+}
 </style>

+ 20 - 2
src/layout/enterprise/parts/room.vue

@@ -1,6 +1,8 @@
 <template>
   <div id="room">
+    <el-col :span="24" class="leftTop"> <span>|</span> <span>消息管理</span> </el-col>
     <el-table :data="list" border stripe :show-header="false" @row-click="toChat">
+      <el-table-column prop="buyer_name" align="center"></el-table-column>
       <el-table-column align="center">
         <template v-slot="{ row }">
           <template v-if="row.needRead == 0">
@@ -11,7 +13,6 @@
           </template>
         </template>
       </el-table-column>
-      <el-table-column prop="buyer_name" align="center"></el-table-column>
     </el-table>
   </div>
 </template>
@@ -45,4 +46,21 @@ export default {
 };
 </script>
 
-<style lang="less" scoped></style>
+<style lang="less" scoped>
+/deep/.el-table {
+  width: 95%;
+  margin: 20px;
+}
+.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;
+}
+</style>

+ 6 - 0
src/router/index.js

@@ -161,6 +161,12 @@ const live = [
     name: 'enterprisefabu',
     component: () => import('../views/enterprise/enterprisejb.vue'),
   },
+  //企业-基本信息
+  {
+    path: '/enterprise/useredit',
+    name: 'enterpriseuseredit',
+    component: () => import('../views/enterprise/useredit.vue'),
+  },
 
   // //企业-发布信息列表
   {

+ 129 - 0
src/views/enterprise/useredit.vue

@@ -0,0 +1,129 @@
+<template>
+  <div id="adviserList">
+    <useredit-detail
+      :info="info"
+      :liebiaoList="liebiaoList"
+      @onsave="onsaveClick"
+      :forms="forms"
+      @demandSubmit="demandSubmit"
+      :columnList="columnList"
+      @changeType="changeType"
+      :totaltype="totaltype"
+    ></useredit-detail>
+  </div>
+</template>
+
+<script>
+import usereditDetail from '@/components/enterprise/useredit.vue';
+import { createNamespacedHelpers, mapGetters, mapState } from 'vuex';
+const { mapActions: mapMarkettype } = createNamespacedHelpers('markettype');
+const { mapActions: mapMarketproduct } = createNamespacedHelpers('marketproduct');
+const { mapActions: login } = createNamespacedHelpers('login');
+
+export default {
+  name: 'adviserList',
+  props: {},
+  components: {
+    usereditDetail,
+  },
+  data: () => ({
+    info: {},
+    liebiaoList: [
+      { name: '基本信息' },
+      { name: '消息管理' },
+      { name: '我的发布' },
+      { name: '事项管理' },
+      { name: '返回首页' },
+      { name: '修改密码' },
+      { name: '注销账号' },
+    ],
+    forms: {},
+    columnList: [],
+    totaltype: 0,
+  }),
+  created() {
+    this.maarkettype();
+    this.searchInfo();
+  },
+  computed: {
+    ...mapState(['user']),
+
+    id() {
+      return this.$route.query.id;
+    },
+    keyWord() {
+      let meta = this.$route.meta;
+      let main = meta.title || '';
+      return main;
+    },
+  },
+  methods: {
+    ...mapMarkettype({ markettypeList: 'query' }),
+    ...mapMarketproduct({ productFetch: 'fetch', productCreate: 'create', productUpdate: 'update' }),
+    ...login({ logout: 'logout', transactiondtetle: 'delete' }),
+    async searchInfo() {
+      if (this.$route.query.id) {
+        const res = await this.productFetch(this.id);
+        this.$set(this, `demandForm`, res.data);
+      }
+    },
+    async demandSubmit(demandForm) {
+      let data = this.demandForm;
+      console.log(data);
+      data.userid = this.user.uid;
+      console.log(data.userid);
+
+      let res;
+      let msg;
+      if (data.id) {
+        res = await this.productUpdate(data);
+        msg = `${this.keyWord}修改成功`;
+      } else {
+        res = await this.productCreate(data);
+        msg = `${this.keyWord}添加成功`;
+      }
+      if (this.$checkRes(res, msg)) this.$router.push({ path: '/enterprise/enterprisefabu' });
+    },
+    // 查询类型
+    async maarkettype({ category = 123, ...info } = {}) {
+      const res = await this.markettypeList({ category, ...info });
+      if (this.$checkRes(res)) {
+        this.$set(this, `columnList`, res.data);
+      }
+    },
+    // 栏目跳转
+    async onsaveClick({ id }) {
+      if (id === '基本信息') {
+        this.$router.push({ path: '/enterprise/enterprisejb' });
+      } else if (id === '消息管理') {
+        this.$router.push({ path: '/enterprise/enterprisexx' });
+      } else if (id === '我的发布') {
+        this.$router.push({ path: '/enterprise/enterprisefabu' });
+      } else if (id === '事项管理') {
+        this.$router.push({ path: '/enterprise/enterprisedg' });
+      } else if (id === '修改密码') {
+        this.$router.push({ path: '/enterprise/xiugai' });
+      } else if (id === '返回首页') {
+        this.$router.push({ path: '/' });
+      } else if (id === '注销账号') {
+        this.logout();
+        this.$message({
+          message: '注销成功',
+          type: 'success',
+        });
+        this.toLogin();
+      }
+    },
+
+    async toLogin() {
+      this.$router.push({ path: '/' });
+    },
+    changeType(item) {
+      console.log(item);
+      this.$set(this, `totaltype`, item);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>