guhongwei 4 anni fa
parent
commit
fe0348c913

+ 15 - 13
src/store/index.js

@@ -12,18 +12,18 @@ import expert from '@common/src/store/expert';
 import product from '@common/src/store/product';
 import productIndex from '@common/src/store/productIndex';
 // 展会
-import dock from '@common/src/store/dock';
-// 展会图文
-import dockPw from '@common/src/store/dockPw';
-// 展会用户
-import dockUser from '@common/src/store/dockUser';
-// 展会公共聊天
-import dockChat from '@common/src/store/dock_chat';
+import dock from '@common/src/store/dock/dock';
+// // 展会图文
+// import dockPw from '@common/src/store/dockPw';
+// // 展会用户
+// import dockUser from '@common/src/store/dockUser';
+// // 展会公共聊天
+// import dockChat from '@common/src/store/dock_chat';
 // 培训问诊
 import trainLive from '@common/src/store/trainLive';
 import trainchat from '@common/src/store/trainchat';
-// 交易备案
-import transaction from '@common/src/store/transaction';
+// // 交易备案
+// import transaction from '@common/src/store/transaction';
 // 科技频道
 import channel from '@common/src/store/channel';
 import channelVideo from '@common/src/store/channelVideo';
@@ -70,9 +70,12 @@ export default new Vuex.Store({
     product,
     productIndex,
     dock,
-    dockUser,
+    // dockUser,
     trainLive,
     trainchat,
+    // transaction,
+    // dockPw,
+    // dockChat,
     channel,
     channelVideo,
     patent,
@@ -87,11 +90,10 @@ export default new Vuex.Store({
     place,
     survey,
     statistics,
-    dockPw,
-    transaction,
+
     personRoom,
     personChat,
-    dockChat,
+
     questionnaire,
     answer,
     apply,

+ 270 - 0
src/views/admin/live/achieve/base copy.vue

@@ -0,0 +1,270 @@
+<template>
+  <div id="aBase">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="leftTop"> <span>|</span> <span>展会管理</span> </el-col>
+        <el-col :span="24" class="info">
+          <el-row>
+            <el-col :span="24">
+              <el-form :model="form" ref="form" label-width="100px" class="demo-ruleForm">
+                <el-form-item label="对接会标题">
+                  <el-input v-model="form.title"></el-input>
+                </el-form-item>
+                <el-form-item label="开始时间">
+                  <el-date-picker
+                    v-model="form.start_time"
+                    type="datetime"
+                    placeholder="选择日期时间"
+                    format="yyyy-MM-dd HH:mm:ss"
+                    value-format="yyyy-MM-dd HH:mm:ss"
+                  >
+                  </el-date-picker>
+                </el-form-item>
+                <el-form-item label="结束时间">
+                  <el-date-picker
+                    v-model="form.end_time"
+                    type="datetime"
+                    placeholder="请选择结束时间"
+                    format="yyyy-MM-dd HH:mm:ss"
+                    value-format="yyyy-MM-dd HH:mm:ss"
+                  >
+                  </el-date-picker>
+                </el-form-item>
+                <el-form-item label="省份">
+                  <el-select v-model="form.province" placeholder="请选择省份" @change="searchOther">
+                    <el-option v-for="item in provinceList" :key="item.code" :label="item.name" :value="item.code"> </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="市">
+                  <el-select v-model="form.place" placeholder="请选择市">
+                    <el-option v-for="item in placeList" :key="item.code" :label="item.name" :value="item.code"> </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="简介">
+                  <el-input type="textarea" v-model="form.desc"></el-input>
+                </el-form-item>
+                <el-form-item label="负责人">
+                  <el-input v-model="form.adminuser" placeholder="请输入用户名"></el-input>
+                </el-form-item>
+                <el-form-item label="负责人手机号">
+                  <el-input v-model="form.phone" maxlength="11" placeholder="请输入手机号" disabled> </el-input>
+                </el-form-item>
+                <el-form-item label="主办方">
+                  <el-input v-model="form.sponsor" placeholder="请输入主办方"></el-input>
+                </el-form-item>
+                <el-form-item label="承办方">
+                  <el-input v-model="form.organizer" placeholder="请输入承办方"></el-input>
+                </el-form-item>
+                <el-form-item label="对接会视频">
+                  <el-button type="primary" size="mini" @click="addDialog = true">添加视频</el-button>
+                  <el-button type="primary" size="mini" @click="videDialog = true">查看视频</el-button>
+                </el-form-item>
+                <el-form-item label="状态">
+                  <el-radio v-model="form.status" label="1">开始</el-radio>
+                  <el-radio v-model="form.status" label="2">结束</el-radio>
+                </el-form-item>
+                <el-form-item>
+                  <el-button type="primary" @click="submitForm('form')">保存</el-button>
+                  <el-button type="primary" @click="submitStatus('form')" v-if="this.form.status == '1' || this.form.status == '2'"
+                    >展会开启&结束提交</el-button
+                  >
+                </el-form-item>
+              </el-form>
+            </el-col>
+          </el-row>
+        </el-col>
+      </el-col>
+    </el-row>
+
+    <el-dialog title="添加视频信息" :visible.sync="addDialog" width="40%" :before-close="videoclose">
+      <el-form ref="videoform" :model="videoform" label-width="80px" class="videoform">
+        <el-form-item label="名称">
+          <el-input v-model="videoform.videointro" placeholder="请输入名称"></el-input>
+        </el-form-item>
+        <el-form-item label="简介">
+          <el-input v-model="videoform.videointroinfo" type="textarea" placeholder="请输入简介"></el-input>
+        </el-form-item>
+        <el-form-item label="视频路径">
+          <upload
+            :limit="1"
+            :data="videoform.file_path"
+            type="file_path"
+            listType=""
+            :url="'/files/imgpath/upload'"
+            @upload="uploadSuccess"
+            @delete="uploadDelete"
+          ></upload>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="addvideoSubmit">保存</el-button>
+        </el-form-item>
+      </el-form>
+    </el-dialog>
+
+    <el-dialog title="查看视频信息" :visible.sync="videDialog" width="40%" height="400px" :before-close="videoclose">
+      <el-table :data="form.videodata" style="width: 100%" border class="table">
+        <el-table-column type="index" width="50" label="序号" align="center"> </el-table-column>
+        <el-table-column prop="videointro" label="名称" align="center" show-overflow-tooltip> </el-table-column>
+        <el-table-column label="操作" align="center">
+          <template v-slot="scoped">
+            <el-button type="text" @click="delAttend(scoped.$index, scoped.row)" size="small">删除</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+const _ = require('lodash');
+import upload from '@common/src/components/frame/upload.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: dock } = createNamespacedHelpers('dock');
+const { mapActions: place } = createNamespacedHelpers('place');
+export default {
+  name: 'aBase',
+  props: {},
+  components: { upload },
+  data: function() {
+    return {
+      form: {},
+      provinceList: [],
+      placeList: [],
+      addDialog: false,
+      videoform: {},
+      videDialog: false,
+    };
+  },
+  created() {
+    this.search();
+    this.searchOther();
+  },
+  methods: {
+    ...place({ placeQuery: 'query' }),
+    ...dock(['fetch', 'update']),
+    async search() {
+      const res = await this.fetch(this.user._id);
+      if (this.$checkRes(res)) {
+        this.$set(this, `form`, res.data);
+        if (this.form.place) {
+          this.searchOther(this.form.province);
+        }
+      }
+    },
+
+    async submitForm() {
+      const res = await this.update(_.cloneDeep(this.form));
+      if (this.$checkRes(res)) {
+        this.$message({
+          message: '修改信息成功',
+          type: 'success',
+        });
+        this.search();
+      }
+    },
+    async submitStatus() {
+      const res = await this.update(_.cloneDeep(this.form));
+      if (this.$checkRes(res)) {
+        this.$message({
+          message: '对接会审核成功',
+          type: 'success',
+        });
+        this.search();
+      }
+    },
+
+    async addvideoSubmit() {
+      const id = this.form.id;
+      const videodata = _.cloneDeep(this.form.videodata);
+      videodata.push(this.videoform);
+      const res = await this.update({ id, videodata });
+      if (this.$checkRes(res, '视频保存成功')) {
+        this.search();
+      }
+    },
+    async delAttend(index) {
+      const duplicate = _.cloneDeep(this.form.videodata);
+      duplicate.splice(index, 1);
+      const res = await this.update({ id: this.form.id, videodata: duplicate });
+      if (this.$checkRes(res, '视频删除成功', res.errmsg || '视频删除失败')) {
+        this.search();
+      }
+    },
+
+    async searchOther(val) {
+      const query = {};
+      if (val) query.code = val;
+      let res = await this.placeQuery(query);
+      if (this.$checkRes(res)) {
+        if (!val) this.$set(this, `provinceList`, res.data);
+        else this.$set(this, `placeList`, res.data);
+      }
+    },
+    // 取消
+    videoclose() {
+      this.addDialog = false;
+      this.videDialog = false;
+    },
+    uploadSuccess({ type, data }) {
+      this.$set(this.videoform, `${type}`, data.uri);
+      this.$message({
+        message: '上传视频成功',
+        type: 'success',
+      });
+    },
+    uploadDelete(index) {
+      this.$set(this.form, `file_path`, null);
+      this.$message({
+        message: '删除视频成功',
+        type: 'success',
+      });
+    },
+  },
+  computed: {
+    ...mapState(['user', 'menuParams']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.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;
+}
+.info {
+  padding: 0 38px 0 10px;
+}
+/deep/.el-dialog__body {
+  height: 350px;
+  overflow: hidden;
+  padding: 20px;
+}
+.table {
+  height: 328px;
+  overflow: hidden;
+}
+/deep/.el-table td {
+  padding: 5px 0;
+}
+/deep/.el-table th {
+  padding: 5px 0;
+}
+.page {
+  text-align: center;
+  padding: 10px 0;
+}
+</style>

+ 17 - 246
src/views/admin/live/achieve/base.vue

@@ -1,270 +1,41 @@
 <template>
-  <div id="aBase">
+  <div id="base">
     <el-row>
-      <el-col :span="24">
+      <el-col :span="24" class="main">
         <el-col :span="24" class="leftTop"> <span>|</span> <span>展会管理</span> </el-col>
         <el-col :span="24" class="info">
-          <el-row>
-            <el-col :span="24">
-              <el-form :model="form" ref="form" label-width="100px" class="demo-ruleForm">
-                <el-form-item label="对接会标题">
-                  <el-input v-model="form.title"></el-input>
-                </el-form-item>
-                <el-form-item label="开始时间">
-                  <el-date-picker
-                    v-model="form.start_time"
-                    type="datetime"
-                    placeholder="选择日期时间"
-                    format="yyyy-MM-dd HH:mm:ss"
-                    value-format="yyyy-MM-dd HH:mm:ss"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-                <el-form-item label="结束时间">
-                  <el-date-picker
-                    v-model="form.end_time"
-                    type="datetime"
-                    placeholder="请选择结束时间"
-                    format="yyyy-MM-dd HH:mm:ss"
-                    value-format="yyyy-MM-dd HH:mm:ss"
-                  >
-                  </el-date-picker>
-                </el-form-item>
-                <el-form-item label="省份">
-                  <el-select v-model="form.province" placeholder="请选择省份" @change="searchOther">
-                    <el-option v-for="item in provinceList" :key="item.code" :label="item.name" :value="item.code"> </el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="市">
-                  <el-select v-model="form.place" placeholder="请选择市">
-                    <el-option v-for="item in placeList" :key="item.code" :label="item.name" :value="item.code"> </el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="简介">
-                  <el-input type="textarea" v-model="form.desc"></el-input>
-                </el-form-item>
-                <el-form-item label="负责人">
-                  <el-input v-model="form.adminuser" placeholder="请输入用户名"></el-input>
-                </el-form-item>
-                <el-form-item label="负责人手机号">
-                  <el-input v-model="form.phone" maxlength="11" placeholder="请输入手机号" disabled> </el-input>
-                </el-form-item>
-                <el-form-item label="主办方">
-                  <el-input v-model="form.sponsor" placeholder="请输入主办方"></el-input>
-                </el-form-item>
-                <el-form-item label="承办方">
-                  <el-input v-model="form.organizer" placeholder="请输入承办方"></el-input>
-                </el-form-item>
-                <el-form-item label="对接会视频">
-                  <el-button type="primary" size="mini" @click="addDialog = true">添加视频</el-button>
-                  <el-button type="primary" size="mini" @click="videDialog = true">查看视频</el-button>
-                </el-form-item>
-                <el-form-item label="状态">
-                  <el-radio v-model="form.status" label="1">开始</el-radio>
-                  <el-radio v-model="form.status" label="2">结束</el-radio>
-                </el-form-item>
-                <el-form-item>
-                  <el-button type="primary" @click="submitForm('form')">保存</el-button>
-                  <el-button type="primary" @click="submitStatus('form')" v-if="this.form.status == '1' || this.form.status == '2'"
-                    >展会开启&结束提交</el-button
-                  >
-                </el-form-item>
-              </el-form>
-            </el-col>
-          </el-row>
+          详情
         </el-col>
       </el-col>
     </el-row>
-
-    <el-dialog title="添加视频信息" :visible.sync="addDialog" width="40%" :before-close="videoclose">
-      <el-form ref="videoform" :model="videoform" label-width="80px" class="videoform">
-        <el-form-item label="名称">
-          <el-input v-model="videoform.videointro" placeholder="请输入名称"></el-input>
-        </el-form-item>
-        <el-form-item label="简介">
-          <el-input v-model="videoform.videointroinfo" type="textarea" placeholder="请输入简介"></el-input>
-        </el-form-item>
-        <el-form-item label="视频路径">
-          <upload
-            :limit="1"
-            :data="videoform.file_path"
-            type="file_path"
-            listType=""
-            :url="'/files/imgpath/upload'"
-            @upload="uploadSuccess"
-            @delete="uploadDelete"
-          ></upload>
-        </el-form-item>
-        <el-form-item>
-          <el-button type="primary" @click="addvideoSubmit">保存</el-button>
-        </el-form-item>
-      </el-form>
-    </el-dialog>
-
-    <el-dialog title="查看视频信息" :visible.sync="videDialog" width="40%" height="400px" :before-close="videoclose">
-      <el-table :data="form.videodata" style="width: 100%" border class="table">
-        <el-table-column type="index" width="50" label="序号" align="center"> </el-table-column>
-        <el-table-column prop="videointro" label="名称" align="center" show-overflow-tooltip> </el-table-column>
-        <el-table-column label="操作" align="center">
-          <template v-slot="scoped">
-            <el-button type="text" @click="delAttend(scoped.$index, scoped.row)" size="small">删除</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-    </el-dialog>
   </div>
 </template>
 
 <script>
-const _ = require('lodash');
-import upload from '@common/src/components/frame/upload.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: dock } = createNamespacedHelpers('dock');
-const { mapActions: place } = createNamespacedHelpers('place');
 export default {
-  name: 'aBase',
+  name: 'base',
   props: {},
-  components: { upload },
+  components: {},
   data: function() {
-    return {
-      form: {},
-      provinceList: [],
-      placeList: [],
-      addDialog: false,
-      videoform: {},
-      videDialog: false,
-    };
-  },
-  created() {
-    this.search();
-    this.searchOther();
-  },
-  methods: {
-    ...place({ placeQuery: 'query' }),
-    ...dock(['fetch', 'update']),
-    async search() {
-      const res = await this.fetch(this.user._id);
-      if (this.$checkRes(res)) {
-        this.$set(this, `form`, res.data);
-        if (this.form.place) {
-          this.searchOther(this.form.province);
-        }
-      }
-    },
-
-    async submitForm() {
-      const res = await this.update(_.cloneDeep(this.form));
-      if (this.$checkRes(res)) {
-        this.$message({
-          message: '修改信息成功',
-          type: 'success',
-        });
-        this.search();
-      }
-    },
-    async submitStatus() {
-      const res = await this.update(_.cloneDeep(this.form));
-      if (this.$checkRes(res)) {
-        this.$message({
-          message: '对接会审核成功',
-          type: 'success',
-        });
-        this.search();
-      }
-    },
-
-    async addvideoSubmit() {
-      const id = this.form.id;
-      const videodata = _.cloneDeep(this.form.videodata);
-      videodata.push(this.videoform);
-      const res = await this.update({ id, videodata });
-      if (this.$checkRes(res, '视频保存成功')) {
-        this.search();
-      }
-    },
-    async delAttend(index) {
-      const duplicate = _.cloneDeep(this.form.videodata);
-      duplicate.splice(index, 1);
-      const res = await this.update({ id: this.form.id, videodata: duplicate });
-      if (this.$checkRes(res, '视频删除成功', res.errmsg || '视频删除失败')) {
-        this.search();
-      }
-    },
-
-    async searchOther(val) {
-      const query = {};
-      if (val) query.code = val;
-      let res = await this.placeQuery(query);
-      if (this.$checkRes(res)) {
-        if (!val) this.$set(this, `provinceList`, res.data);
-        else this.$set(this, `placeList`, res.data);
-      }
-    },
-    // 取消
-    videoclose() {
-      this.addDialog = false;
-      this.videDialog = false;
-    },
-    uploadSuccess({ type, data }) {
-      this.$set(this.videoform, `${type}`, data.uri);
-      this.$message({
-        message: '上传视频成功',
-        type: 'success',
-      });
-    },
-    uploadDelete(index) {
-      this.$set(this.form, `file_path`, null);
-      this.$message({
-        message: '删除视频成功',
-        type: 'success',
-      });
-    },
+    return {};
   },
+  created() {},
+  methods: {},
   computed: {
-    ...mapState(['user', 'menuParams']),
-    pageTitle() {
-      return `${this.$route.meta.title}`;
-    },
+    ...mapState(['user']),
   },
   metaInfo() {
     return { title: this.$route.meta.title };
   },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
 };
 </script>
 
-<style lang="less" scoped>
-.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;
-}
-.info {
-  padding: 0 38px 0 10px;
-}
-/deep/.el-dialog__body {
-  height: 350px;
-  overflow: hidden;
-  padding: 20px;
-}
-.table {
-  height: 328px;
-  overflow: hidden;
-}
-/deep/.el-table td {
-  padding: 5px 0;
-}
-/deep/.el-table th {
-  padding: 5px 0;
-}
-.page {
-  text-align: center;
-  padding: 10px 0;
-}
-</style>
+<style lang="less" scoped></style>

+ 3 - 3
src/views/live/achieve/list.vue

@@ -12,7 +12,7 @@
               <span>{{ item.title }}</span>
             </el-col>
             <el-col :span="24" class="other">
-              <el-col :span="10" class="textOver"><i class="el-icon-location-outline"></i>{{ item.province }}-{{ item.place }} </el-col>
+              <el-col :span="10" class="textOver"><i class="el-icon-location-outline"></i>{{ item.province }}-{{ item.city }} </el-col>
               <el-col :span="14" class="textOver"><i class="el-icon-time"></i>{{ item.start_time }}-{{ item.end_time }} </el-col>
             </el-col>
             <el-col :span="24" class="btn">
@@ -48,7 +48,7 @@ export default {
       imgUrl: require('@common/src/assets/hall.jpg'),
       loginForm: {},
       loginFields: [
-        { label: '房间号', model: 'room_phone', type: 'text' },
+        { label: '房间号', model: 'room_id', type: 'text' },
         { label: '登录密码', model: 'password', required: true, type: 'password' },
       ],
       rules: {
@@ -63,7 +63,7 @@ export default {
     toAdmin(room_id) {
       if (_.isEqual(_.get(this.user, 'room_id'), room_id)) this.$router.push({ path: '/admin/live/achieve' });
       this.adminDialog = true;
-      this.loginForm.room_phone = room_id;
+      this.loginForm.room_id = room_id;
     },
     handleClose() {
       this.loginForm = {};

+ 6 - 6
src/views/live/parts/achieveLive.vue

@@ -31,7 +31,7 @@ export default {
   },
   data: function() {
     return {
-      active: '1',
+      active: '2',
       // 正在直播
       oneList: [],
       // 下期预告
@@ -47,9 +47,9 @@ export default {
     ...dock(['query']),
     ...place({ queryName: 'queryName' }),
     async searchOther({ skip = 0, limit = 10, ...info } = {}) {
-      let one = await this.query({ skip, status: 1, ...info });
-      let two = await this.query({ skip, status: 0, ...info });
-      let thr = await this.query({ skip, status: 2, ...info });
+      let one = await this.query({ skip, status: '1', ...info });
+      let two = await this.query({ skip, status: '0', ...info });
+      let thr = await this.query({ skip, status: '-1', ...info });
       if (this.$checkRes(one) || this.$checkRes(two) || this.$checkRes(thr)) {
         for (const val of one.data) this.searchPlace(val);
         this.$set(this, `oneList`, one.data);
@@ -61,11 +61,11 @@ export default {
     },
     // 查询省市
     async searchPlace(data) {
-      let nameData = { code: [data.province, data.place] };
+      let nameData = { code: [data.province, data.city] };
       let res = await this.queryName(nameData);
       if (this.$checkRes(res)) {
         data.province = res.data.find(i => i.code == data.province).name;
-        data.place = res.data.find(i => i.code == data.place).name;
+        data.city = res.data.find(i => i.code == data.city).name;
         return data;
       }
     },

+ 1 - 1
vue.config.js

@@ -33,7 +33,7 @@ module.exports = {
         target: 'http://broadcast.waityou24.cn',
       },
       '/api/question': {
-        target: 'http://192.168.1.19:9104', //http://192.168.1.19:9101
+        target: 'http://broadcast.waityou24.cn', //http://192.168.1.19:9101
         changeOrigin: true,
         ws: false,
       },