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