guhongwei 4 年 前
コミット
6dcd8d6ff1

+ 226 - 0
src/views/superAdminCenter/duijiehui/index.vue

@@ -0,0 +1,226 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="add" style="text-align:right;padding: 10px 20px;">
+          <el-button size="mini" type="primary" @click="toAdd" icon="el-icon-plus">添加{{ theme }}</el-button>
+        </el-col>
+        <el-col :span="24" class="main">
+          <data-table :fields="fields" :data="list" :total="total" @query="search" :opera="opera" @edit="toEdit"></data-table>
+        </el-col>
+        <el-dialog :title="theme" width="60%" :visible.sync="dialog" @closed="handleClose" :destroy-on-close="true">
+          <el-form ref="form" :model="form" label-width="120px">
+            <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" value-format="yyyy-MM-dd HH:mm">
+              </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" value-format="yyyy-MM-dd HH:mm">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="报名截止时间">
+              <el-date-picker
+                v-model="form.join_end"
+                type="datetime"
+                placeholder="请选择报名截止时间"
+                format="yyyy-MM-dd HH:mm"
+                value-format="yyyy-MM-dd HH:mm"
+              >
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="省份">
+              <el-select v-model="form.province" placeholder="请选择省份" @change="changeshenge">
+                <el-option v-for="item in option" :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 options" :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.adminuser" placeholder="请输入用户名"></el-input>
+            </el-form-item>
+            <el-form-item label="负责人手机号">
+              <el-input v-model="form.phone" maxlength="11" placeholder="请输入手机号"> </el-input>
+            </el-form-item>
+            <el-form-item label="简介">
+              <el-input type="textarea" v-model="form.desc"></el-input>
+            </el-form-item>
+            <el-form-item label="对接会视频">
+              <upload :limit="1" :data="form.file_path" type="file_path" listType="" :url="'/files/imgpath/upload'" @upload="uploadSuccess"></upload>
+            </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="onSubmit()">信息保存</el-button>
+              <el-button type="primary" @click="onSubmit()" v-if="form.status === '1' || form.status === '2'">对接开启&结束提交</el-button>
+            </el-form-item>
+          </el-form>
+        </el-dialog>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import upload from '@/components/uploadone.vue';
+import dataTable from '@/components/data-table.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: dock } = createNamespacedHelpers('dock');
+const { mapActions: place } = createNamespacedHelpers('place');
+const { mapActions: authUser } = createNamespacedHelpers('authUser');
+const jwt = require('jsonwebtoken');
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    dataTable,
+    upload,
+  },
+  data: function() {
+    return {
+      theme: '对接会',
+      opera: [
+        {
+          label: '编辑&状态审核',
+          icon: 'el-icon-edit',
+          method: 'edit',
+        },
+        // {
+        //   label: '查看申请情况',
+        //   icon: 'el-icon-share',
+        //   method: 'share',
+        //   display: item => {
+        //     return item.status == '0' ? true : false;
+        //   },
+        // },
+      ],
+      fields: [
+        { label: '房间号', prop: 'room_id' },
+        { label: '对接会标题', prop: 'title' },
+        { label: '开始时间', prop: 'start_time' },
+        { label: '结束时间', prop: 'end_time' },
+        { label: '报名截止时间', prop: 'join_end' },
+        { label: '省', prop: 'sheng' },
+        { label: '市', prop: 'shi' },
+        { label: '对接会简介', prop: 'desc' },
+        { label: '负责人', prop: 'adminuser' },
+        { label: '负责人手机号', prop: 'phone' },
+        {
+          label: '对接会状态',
+          prop: 'status',
+          format: item => {
+            return item === '1' ? '开始' : item === '2' ? '结束' : '准备中';
+          },
+        },
+      ],
+      list: [],
+      total: 0,
+      dialog: false,
+      form: {},
+      option: [],
+      options: [],
+    };
+  },
+  created() {
+    this.search();
+    this.searchinfo();
+  },
+  methods: {
+    ...dock(['query', 'delete', 'update', 'create']),
+    ...place({ palcequery: 'query', palcefetch: 'fetch' }),
+    ...authUser({ authUserDelete: 'delete' }),
+    // 查询
+    async search({ skip = 0, limit = 10, ...info } = {}) {
+      if (this.user.role != '1') info.user_id = this.user.uid;
+      let res = await this.query({ skip, limit, user_id: this.user.uid });
+      for (const val of res.data) {
+        let parent = val.province;
+        let places = val.place;
+        let reslte = await this.palcequery({ level: 1, parent });
+        let resltes = await this.palcequery({ level: 2, parent });
+        var arr = reslte.data.filter(item => item.code === parent);
+        var cre = resltes.data.filter(item => item.code === places);
+        for (const shi of cre) {
+          val.shi = shi.name;
+        }
+        for (const sheng of arr) {
+          val.sheng = sheng.name;
+        }
+      }
+      this.$set(this, `list`, res.data);
+      this.$set(this, `total`, res.total);
+    },
+    // 添加
+    toAdd() {
+      this.dialog = true;
+    },
+    // 提交
+    async onSubmit() {
+      let data = this.form;
+      if (data.id) {
+        let res = await this.update(data);
+        this.$checkRes(res, '修改成功', '修改失败');
+        this.handleClose();
+      } else {
+        data.user_id = this.user.uid;
+        let res = await this.create(data);
+        if (this.$checkRes(res)) {
+          let passwd = jwt.decode(res.data.password);
+          this.$alert(`房间号:${res.data.room_id}` + `手机号:${res.data.phone};` + `密码:${passwd};`, '成功', {
+            dangerouslyUseHTMLString: true,
+            confirmButtonText: '确定',
+            type: 'success',
+            center: true,
+            callback: action => {
+              this.handleClose();
+            },
+          });
+        }
+      }
+    },
+    // 修改
+    toEdit({ data }) {
+      this.$set(this, 'form', data);
+      this.dialog = true;
+    },
+    // 查询地址
+    async searchinfo() {
+      let level = 1;
+      let res = await this.palcequery({ level });
+      this.$set(this, `option`, res.data);
+    },
+    async changeshenge(value) {
+      let level = 2;
+      let parent = value;
+      let res = await this.palcequery({ level, parent });
+      this.$set(this, `options`, res.data);
+    },
+    // 取消
+    handleClose() {
+      this.dialog = false;
+      this.form = {};
+    },
+    uploadSuccess({ type, data }) {
+      this.$set(this.form, `${type}`, data.uri);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 3 - 1
src/views/superAdminCenter/index.vue

@@ -35,6 +35,7 @@ import permission from './permission/index.vue';
 import adminUser from './adminUser/index.vue';
 import vip from './vip/index.vue';
 import user from './user/index.vue';
+import duijiehui from './duijiehui/index.vue';
 import business from './business/index.vue';
 import manager from './manager/index.vue';
 import heads from '@/layout/userCenter/heads.vue';
@@ -51,6 +52,7 @@ export default {
     adminUser,
     vip,
     user,
+    duijiehui,
     business,
     manager,
     menus,
@@ -58,7 +60,7 @@ export default {
   },
   data: function() {
     return {
-      cpt: 'user',
+      cpt: 'duijiehui',
       topTitle: '',
     };
   },