瀏覽代碼

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

lrf402788946 5 年之前
父節點
當前提交
4e3d34afbd
共有 6 個文件被更改,包括 136 次插入31 次删除
  1. 39 0
      src/store/apply.js
  2. 39 0
      src/store/dock.js
  3. 4 0
      src/store/index.js
  4. 15 15
      src/views/live/hall/hall.vue
  5. 38 15
      src/views/live/hall/liveApply.vue
  6. 1 1
      vue.config.js

+ 39 - 0
src/store/apply.js

@@ -0,0 +1,39 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  applyInfo: `/api/live/dock/apply`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit = undefined, ...info } = {}) {
+    const res = await this.$axios.$get(api.applyInfo, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.applyInfo}/${id}`, { ...info });
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.applyInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.applyInfo}/${id}`, { ...info });
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.applyInfo}/${payload}`);
+    return res;
+  },
+};
+
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 39 - 0
src/store/dock.js

@@ -0,0 +1,39 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  dockInfo: `/api/live/dock`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit = undefined, ...info } = {}) {
+    const res = await this.$axios.$get(api.dockInfo, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.dockInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.dockInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.dockInfo}/${id}`, { ...info });
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.dockInfo}/${payload}`);
+    return res;
+  },
+};
+
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 4 - 0
src/store/index.js

@@ -22,6 +22,8 @@ import marketproduct from './marketproduct';
 import markettype from './markettype';
 import tranaudit from './tranaudit';
 import chat from './chat';
+import dock from './dock';
+import apply from './apply';
 
 import * as ustate from './user/state';
 import * as umutations from './user/mutations';
@@ -52,6 +54,8 @@ export default new Vuex.Store({
     markettype,
     tranaudit,
     chat,
+    dock,
+    apply,
   },
   state: { ...ustate },
   mutations: { ...umutations },

+ 15 - 15
src/views/live/hall/hall.vue

@@ -71,9 +71,10 @@
               <!-- <img :src="img.main1" /> -->
               <el-carousel :interval="4000" type="card" height="150px">
                 <el-carousel-item class="liveMainImageList" v-for="(item, index) in liveMainImageList" :key="index">
-                  <el-image :src="item.pic"></el-image>
+                  <!-- <el-image :src="item.pic"></el-image> -->
+                  <p style="color:red;text-align: center;font-size: 30px;">{{ item.title }}</p>
                   <el-col :span="24" class="btn">
-                    <el-button @click="apply()">立即申请</el-button>
+                    <el-button @click="apply(item.id)">立即申请</el-button>
                   </el-col>
                 </el-carousel-item>
               </el-carousel>
@@ -225,6 +226,7 @@ import liveFoot from '@/layout/live/foot.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
 const { mapActions: mapProduct } = createNamespacedHelpers('enterpriseproject');
 const { mapActions: market } = createNamespacedHelpers('market');
+const { mapActions: dock } = createNamespacedHelpers('dock');
 
 import _ from 'loadsh';
 export default {
@@ -238,17 +240,7 @@ export default {
       logo20: require('@/assets/live/logo20.png'),
       img: require('@/assets/live/测试图片.jpg'),
     },
-    liveMainImageList: [
-      {
-        pic: require('@/assets/live/main1.png'),
-      },
-      {
-        pic: require('@/assets/live/main1.png'),
-      },
-      {
-        pic: require('@/assets/live/main1.png'),
-      },
-    ],
+    liveMainImageList: [],
     // 找技术
     technologyList: [],
     // 找产品
@@ -382,10 +374,12 @@ export default {
   }),
   created() {
     this.searchInfo();
+    this.searchDock();
   },
   methods: {
     ...mapProduct({ mapProductQuery: 'query' }),
     ...market({ marketFetch: 'fetch' }),
+    ...dock({ dockQuery: 'query' }),
     async searchInfo({ skip = 0, limit = 10, ...info } = {}) {
       let res = await this.mapProductQuery({ skip, limit, totaltype: 0, ...info });
       if (res.errcode === 0) {
@@ -404,13 +398,19 @@ export default {
         this.$set(this, `serviceList`, res.data);
       }
     },
+    async searchDock() {
+      let res = await this.dockQuery({});
+      if (res.errcode === 0) {
+        this.$set(this, `liveMainImageList`, res.data);
+      }
+    },
     // 实况直播
     clickBtn() {
       this.$router.push({ path: '/live/liveList' });
     },
     // 申请
-    apply() {
-      this.$router.push({ path: '/live/liveApply' });
+    apply(id) {
+      this.$router.push({ path: '/live/liveApply', query: { id: id } });
     },
   },
   filters: {

+ 38 - 15
src/views/live/hall/liveApply.vue

@@ -52,30 +52,29 @@
                 <upload :limit="1" :data="form.image.url" type="url" :url="'/files/image/upload'" @upload="uploadSuccess"></upload>
               </el-form-item> -->
               <el-form-item label="申请人身份">
-                <el-radio-group v-model="form.resource" @change="changeuser">
+                <el-radio-group v-model="form.buyer" @change="changeuser">
                   <el-radio label="0">买家</el-radio>
                   <el-radio label="1">卖家</el-radio>
                 </el-radio-group>
               </el-form-item>
               <span v-if="this.resource == '1' || this.resource == ''">
                 <el-form-item label="选择产品">
-                  <el-select v-model="form.region" placeholder="请选择产品">
-                    <el-option label="产品1" value="0"></el-option>
-                    <el-option label="产品2" value="1"></el-option>
+                  <el-select v-model="form.goodsList" placeholder="请选择选择产品">
+                    <el-option v-for="(item, index) in goodsLists" :key="index" :label="item.name" :value="item.id"> </el-option>
                   </el-select>
                 </el-form-item>
               </span>
               <el-form-item label="联系人">
-                <el-input v-model="form.name"></el-input>
+                <el-input v-model="form.contact"></el-input>
               </el-form-item>
               <el-form-item label="联系电话">
-                <el-input v-model="form.name"></el-input>
+                <el-input v-model="form.contact_tel"></el-input>
               </el-form-item>
               <el-form-item label="电子邮箱">
-                <el-input v-model="form.name"></el-input>
+                <el-input v-model="form.email"></el-input>
               </el-form-item>
               <el-form-item label="单位名称">
-                <el-input v-model="form.name"></el-input>
+                <el-input v-model="form.company"></el-input>
               </el-form-item>
               <el-row style="text-align:center">
                 <el-button type="primary" @click="onSubmit">立即申请</el-button>
@@ -91,6 +90,8 @@
 
 <script>
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: mapProduct } = createNamespacedHelpers('enterpriseproject');
+const { mapActions: apply } = createNamespacedHelpers('apply');
 import upload from '@/components/upload.vue';
 export default {
   name: 'liveApply',
@@ -99,21 +100,43 @@ export default {
     // upload,
   },
   data: () => ({
-    form: {
-      image: {},
-    },
+    form: {},
     logo: require('@/assets/live/d10_fbb1.png'),
     resource: '',
+    goodsLists: [],
   }),
   created() {
-    console.log(this.form);
+    this.searchInfo();
   },
   methods: {
-    onSubmit() {
-      console.log(this.form);
+    ...mapProduct({ mapProductQuery: 'query', mapProductFetch: 'fetch' }),
+    ...apply({ applyCreate: 'create' }),
+    async onSubmit() {
+      let duplicate = JSON.parse(JSON.stringify(this.form));
+      let data = { ...duplicate };
+      data.user_id = this.user.id;
+      data.user_name = this.user.name;
+      let dock_id = this.$route.query.id;
+      data.goodsList = [this.productInfo(this.form.goodsList)];
+      const res = await this.applyCreate({ id: dock_id, ...data });
+      if (res.errcode === 0) {
+        this.$message({
+          message: '申请参加对接会成功',
+          type: 'success',
+        });
+      }
+    },
+    productInfo(id) {
+      let index = this.goodsLists.find(item => item.id == id);
+      return index;
+    },
+    async searchInfo() {
+      let res = await this.mapProductQuery({});
+      if (res.errcode === 0) {
+        this.$set(this, `goodsLists`, res.data);
+      }
     },
     changeuser(label) {
-      // console.log(label);
       this.$set(this, 'resource', label);
     },
     uploadSuccess({ type, data }) {

+ 1 - 1
vue.config.js

@@ -66,7 +66,7 @@ module.exports = {
         // pathRewrite: { '^/api/affairs': '/api' },
       },
       '/api/live': {
-        target: 'http://free.liaoningdoupo.com',
+        target: 'http://10.16.10.72:9009',
         changeOrigin: true,
         ws: true,
         // pathRewrite: { '^/api/affairs': '/api' },