|
@@ -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>
|