guhongwei 4 years ago
parent
commit
620bf9e069

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

@@ -1,270 +0,0 @@
-<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>

+ 18 - 12
src/views/admin/live/achieve/base.vue

@@ -10,6 +10,18 @@
                 <el-form-item label="对接会标题">
                   <el-input v-model="form.title"></el-input>
                 </el-form-item>
+                <el-form-item label="负责人">
+                  <el-input v-model="form.admin" 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-date-picker
                     v-model="form.start_time"
@@ -40,18 +52,6 @@
                     <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 v-model="form.admin" 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-radio v-model="form.status" label="1">开始</el-radio>
                   <el-radio v-model="form.status" label="-1">结束</el-radio>
@@ -182,4 +182,10 @@ export default {
   text-align: center;
   padding: 10px 0;
 }
+.el-date-editor {
+  width: 100%;
+}
+.el-select {
+  width: 100%;
+}
 </style>

+ 23 - 29
src/views/admin/live/achieve/pw.vue

@@ -4,17 +4,14 @@
       <el-col :span="24">
         <el-col :span="24" class="leftTop"> <span>|</span> <span>图文管理</span> </el-col>
         <el-col :span="24" class="info">
-          <el-row type="flex" justify="end" style="padding:10px">
-            <el-col :span="2">
-              <el-button type="primary" size="mini" @click="toAdd()">添加</el-button>
-            </el-col>
-          </el-row>
-          <data-table :fields="fields" :opera="opera" :data="list" :usePage="false" @delete="toDelete" @edit="toAdd"></data-table>
+          <el-col :span="24" class="btn">
+            <el-button type="primary" size="mini" @click="toAdd()">添加</el-button>
+          </el-col>
+          <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search" @delete="toDelete" @edit="toAdd"></data-table>
         </el-col>
       </el-col>
     </el-row>
-
-    <el-dialog title="图文信息" :visible.sync="dialog" width="40%">
+    <el-dialog class="dialog" title="图文信息" :visible.sync="dialog" width="40%">
       <el-form ref="form" :model="form" label-width="80px" class="form">
         <el-form-item label="信息内容">
           <el-input v-model="form.content" type="textarea" placeholder="请输入信息内容"></el-input>
@@ -41,9 +38,10 @@
             @delete="uploadDelete"
           ></upload>
         </el-form-item>
-        <el-form-item>
-          <el-button type="primary" @click="vSubmit">保存</el-button>
-        </el-form-item>
+
+        <div class="btn">
+          <el-button type="primary" size="mini" @click="vSubmit">保存</el-button>
+        </div>
       </el-form>
     </el-dialog>
   </div>
@@ -62,6 +60,7 @@ export default {
     return {
       dialog: false,
       list: [],
+      total: 0,
       opera: [
         {
           label: '编辑',
@@ -82,10 +81,12 @@ export default {
   },
   methods: {
     ...dockImgtxt(['query', 'create', 'update', 'delete']),
-    async search() {
-      const res = await this.query({ dock_id: this.user._id });
+    async search({ skip = 0, limit = 10, ...info } = {}) {
+      info.dock_id = this.user._id;
+      const res = await this.query({ skip, limit, ...info });
       if (this.$checkRes(res)) {
         this.$set(this, `list`, res.data);
+        this.$set(this, `total`, res.total);
       }
     },
     async vSubmit() {
@@ -149,24 +150,17 @@ export default {
 }
 .info {
   padding: 0 38px 0 10px;
+  .btn {
+    text-align: right;
+    margin: 0 0 10px 0;
+  }
+}
+.dialog {
+  .btn {
+    text-align: center;
+  }
 }
 /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>

+ 23 - 30
src/views/admin/live/achieve/video.vue

@@ -2,19 +2,16 @@
   <div id="aVideo">
     <el-row>
       <el-col :span="24">
-        <el-col :span="24" class="leftTop"> <span>|</span> <span>展会管理</span> </el-col>
+        <el-col :span="24" class="leftTop"> <span>|</span> <span>视频管理</span> </el-col>
         <el-col :span="24" class="info">
-          <el-row type="flex" justify="end" style="padding:10px">
-            <el-col :span="2">
-              <el-button type="primary" size="mini" @click="toAdd()">添加</el-button>
-            </el-col>
-          </el-row>
-          <data-table :fields="fields" :opera="opera" :data="list" :usePage="false" @delete="toDelete" @edit="toAdd"></data-table>
+          <el-col :span="24" class="btn">
+            <el-button type="primary" size="mini" @click="toAdd()">添加</el-button>
+          </el-col>
+          <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search" @delete="toDelete" @edit="toAdd"></data-table>
         </el-col>
       </el-col>
     </el-row>
-
-    <el-dialog title="视频信息" :visible.sync="dialog" width="40%">
+    <el-dialog class="dialog" title="视频信息" :visible.sync="dialog" width="40%">
       <el-form ref="form" :model="form" label-width="80px" class="form">
         <el-form-item label="标题">
           <el-input v-model="form.title" placeholder="请输入标题"></el-input>
@@ -33,9 +30,9 @@
             @delete="uploadDelete"
           ></upload>
         </el-form-item>
-        <el-form-item>
-          <el-button type="primary" @click="vSubmit">保存</el-button>
-        </el-form-item>
+        <div class="btn">
+          <el-button type="primary" size="mini" @click="vSubmit">保存</el-button>
+        </div>
       </el-form>
     </el-dialog>
   </div>
@@ -54,6 +51,7 @@ export default {
     return {
       dialog: false,
       list: [],
+      total: 0,
       opera: [
         {
           label: '编辑',
@@ -77,10 +75,12 @@ export default {
   },
   methods: {
     ...dockVideo(['query', 'create', 'update', 'delete']),
-    async search() {
-      const res = await this.query({ dock_id: this.user._id });
+    async search({ skip = 0, limit = 10, ...info } = {}) {
+      info.dock_id = this.user._id;
+      const res = await this.query({ skip, limit, ...info });
       if (this.$checkRes(res)) {
         this.$set(this, `list`, res.data);
+        this.$set(this, `total`, res.total);
       }
     },
     async vSubmit() {
@@ -144,24 +144,17 @@ export default {
 }
 .info {
   padding: 0 38px 0 10px;
+  .btn {
+    text-align: right;
+    margin: 0 0 10px 0;
+  }
+}
+.dialog {
+  .btn {
+    text-align: center;
+  }
 }
 /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>

+ 18 - 17
src/views/admin/live/achieve/vip.vue

@@ -4,21 +4,18 @@
       <el-col :span="24">
         <el-col :span="24" class="leftTop"> <span>|</span> <span>VIP用户</span> </el-col>
         <el-col :span="24" class="info">
-          <el-col :span="24" class="add">
-            <el-button type="primary" size="mini" @click="dialog = true">添加用户</el-button>
-          </el-col>
-          <el-col :span="24">
-            <data-table :fields="fields" :opera="opera" :data="list" :usePage="false" @edit="toEdit" @delete="toDelete"></data-table>
+          <el-col :span="24" class="btn">
+            <el-button type="primary" size="mini" @click="dialog = true">添加</el-button>
           </el-col>
+          <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search" @edit="toEdit" @delete="toDelete"></data-table>
         </el-col>
       </el-col>
     </el-row>
-    <el-dialog title="vip用户" :visible.sync="dialog" width="30%" center :before-close="toClose">
+    <el-dialog title="vip用户" :visible.sync="dialog" width="40%" center :before-close="toClose">
       <data-form v-model="form" :fields="fields" @save="toSave"></data-form>
     </el-dialog>
   </div>
 </template>
-
 <script>
 const _ = require('lodash');
 import dataTable from '@common/src/components/frame/filter-page-table.vue';
@@ -32,6 +29,8 @@ export default {
   data: function() {
     return {
       dialog: false,
+      list: [],
+      total: 0,
       opera: [
         {
           label: '编辑',
@@ -49,7 +48,6 @@ export default {
         { label: '邮箱', prop: 'email', model: 'email' },
         { label: '简介', prop: 'brief', model: 'brief', notable: true, type: 'textarea' },
       ],
-      list: [],
       form: {},
     };
   },
@@ -58,10 +56,12 @@ export default {
   },
   methods: {
     ...dockVip(['query', 'create', 'update', 'delete']),
-    async search() {
-      const res = await this.query({ dock_id: this.user._id });
+    async search({ skip = 0, limit = 10, ...info } = {}) {
+      info.dock_id = this.user._id;
+      const res = await this.query({ skip, limit, ...info });
       if (this.$checkRes(res)) {
         this.$set(this, `list`, res.data);
+        this.$set(this, `total`, res.total);
       }
     },
     async toSave() {
@@ -127,17 +127,18 @@ export default {
   color: #22529a;
 }
 .info {
-  padding: 0 40px 0 10px;
-  .add {
+  padding: 0 38px 0 10px;
+  .btn {
     text-align: right;
-    padding: 10px 0;
+    margin: 0 0 10px 0;
   }
 }
-.page {
-  text-align: right;
-  padding: 10px 0;
+.dialog {
+  .btn {
+    text-align: center;
+  }
 }
 /deep/.el-dialog__body {
-  min-height: 300px;
+  padding: 20px;
 }
 </style>

+ 1 - 1
src/views/admin/model/frame.vue

@@ -49,7 +49,7 @@ export default {
   }
   .right {
     width: 935px;
-    min-height: 537px;
+    min-height: 630px;
     background: #fff;
   }
 }