From 6fd0a8a3f4414a25ae074174ef95a13e76293733 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=99=8C?= <xiaomo.drip@gmail.com> Date: Mon, 12 Jun 2023 16:26:27 +0800 Subject: [PATCH] no message --- src/api/index.js | 1 - src/views/app/apartment/images.vue | 1 - src/views/app/apartment/index.vue | 29 +++++-- src/views/app/apartment/lives.vue | 125 +++++++++++++++++++++++++++++ src/views/app/apartment/room.vue | 18 ++++- src/views/app/apartment/update.vue | 2 +- src/views/app/apartment/videos.vue | 2 +- 7 files changed, 165 insertions(+), 13 deletions(-) create mode 100644 src/views/app/apartment/lives.vue diff --git a/src/api/index.js b/src/api/index.js index e7376de..0dad743 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -1,7 +1,6 @@ /** * @description 自动import导入所有 api 模块 */ -import http from "@/utils/request" const modules = {} const files = require.context('./model', false, /\.js$/) files.keys().forEach((key) => { diff --git a/src/views/app/apartment/images.vue b/src/views/app/apartment/images.vue index 2ccb83e..a465a1b 100644 --- a/src/views/app/apartment/images.vue +++ b/src/views/app/apartment/images.vue @@ -11,7 +11,6 @@ </el-drawer> </template> <script> - import api from './api' export default { emits: ['success', 'closed'], data() { diff --git a/src/views/app/apartment/index.vue b/src/views/app/apartment/index.vue index 3e52e5a..584e1ac 100644 --- a/src/views/app/apartment/index.vue +++ b/src/views/app/apartment/index.vue @@ -20,18 +20,25 @@ <img :src="scope.row.image" height="25" style="border-radius: 8px;"> {{ scope.row.title }} </template> </el-table-column> - <el-table-column label="图组" prop="attachment" width="80"> + <el-table-column label="图组" prop="attachment" width="60"> <template #default="scope"> - <el-text text size="small" @click="setImage(scope.row)"> + <el-link :underline="false" size="small" @click="setImage(scope.row)"> <el-badge :value="scope.row.attachment.length" type="danger"></el-badge> - </el-text> + </el-link> </template> </el-table-column> - <el-table-column label="视频" prop="video" width="80"> + <el-table-column label="视频" prop="video" width="60"> <template #default="scope"> - <el-text text size="small" @click="setVideo(scope.row)"> + <el-link :underline="false" size="small" @click="setVideo(scope.row)"> <el-badge :value="Object.keys(scope.row.video||{}).length" type="warning"></el-badge> - </el-text> + </el-link> + </template> + </el-table-column> + <el-table-column label="直播" prop="live" width="60"> + <template #default="scope"> + <el-link :underline="false" size="small" @click="setLive(scope.row)"> + <el-badge :value="Object.keys(scope.row.live||{}).length" type="info"></el-badge> + </el-link> </template> </el-table-column> <el-table-column label="客服ID" prop="customerservice" width="80"></el-table-column> @@ -62,6 +69,7 @@ <update v-if="dialog.update" ref="update" @success="handleSuccess" @closed="dialog.update=false"></update> <images v-if="dialog.images" ref="images" @success="handleSuccess" @closed="dialog.images=false"></images> <videos v-if="dialog.videos" ref="videos" @success="handleSuccess" @closed="dialog.videos=false"></videos> + <lives v-if="dialog.lives" ref="lives" @success="handleSuccess" @closed="dialog.lives=false"></lives> </template> <script> @@ -69,6 +77,7 @@ import update from './update' import images from './images' import videos from './videos' + import lives from './lives' import api from './api' export default { @@ -78,6 +87,7 @@ update, videos, images, + lives, }, data() { return { @@ -86,6 +96,7 @@ update: false, images: false, videos: false, + lives: false, }, apiObj: api.list, selection: [] @@ -114,6 +125,12 @@ this.$refs.videos.open().remoteData(o) }) }, + setLive(o){ + this.dialog.lives = true + this.$nextTick(() => { + this.$refs.lives.open().remoteData(o) + }) + }, //编辑 table_edit(row){ this.dialog.update = true diff --git a/src/views/app/apartment/lives.vue b/src/views/app/apartment/lives.vue new file mode 100644 index 0000000..f46b248 --- /dev/null +++ b/src/views/app/apartment/lives.vue @@ -0,0 +1,125 @@ +<template> + <el-drawer :size="800" @closed="$emit('closed', data)" :close-on-press-escape="false" :close-on-click-modal="false" destroy-on-close title="直播列表" v-model="visible"> + <el-container v-loading="loading"> + <el-main style="padding:0 6px 6px 6px"> + <sc-form-table :addtemplate="filtersAddTemplate" :hideadd="true" class="lives" drag-sort="" placeholder="暂无数据" ref="livestable" v-model="data.lives"> + <el-table-column label="视频ID" prop="text" width="100"> + <template #default="scope"> + <el-input placeholder="视频ID" v-model="scope.row.videoid"> + </el-input> + </template> + </el-table-column> + <el-table-column label="视频链接" prop="text"> + <template #default="scope"> + <el-input placeholder="视频链接" v-model="scope.row.videourl"> + </el-input> + </template> + </el-table-column> + <el-table-column label="视频图片" prop="value" width="150"> + <template #default="scope"> + <el-input class="input-with-select" placeholder="视频图片" v-model="scope.row.imageid"> + <template v-slot:append=""> + <sc-upload :height="30" :multiple="false" :on-success="function(res){ scope.row.imageid = res.aid; scope.row.imageurl = res.url }" :showfilelist="0" :width="30" v-model="scope.row.imageurl"> + <el-button icon="el-icon-upload" type="danger"> + </el-button> + </sc-upload> + </template> + </el-input> + </template> + </el-table-column> + </sc-form-table> + <div style="padding:10px 0px 0 0px"> + <el-upload :action="fileConfig.api" :file-list="fileList" :on-success="pushRow" name="files"> + <slot> + <el-button style="width: 100%;" type="danger"> + 点击上传视频文件 + </el-button> + </slot> + </el-upload> + </div> + </el-main> + <el-footer v-if="issave"> + <el-button @click="submit" type="primary"> + 保存 + </el-button> + </el-footer> + </el-container> + </el-drawer> +</template> +<style> + .input-with-select .el-input-group__prepend { + padding: 2px; + } + .lives .el-input-group__append{ + padding: 0px; + } +</style> +<script> + import sysConfig from "@/config"; + import api from './api' + + export default { + emits: ['success', 'closed'], + data() { + return { + visible: false, + issave: false, + data:[], + filtersAddTemplate: { + imageid: null, + videoid: null, + videourl: '', + imageurl: '', + }, + fileList:[], + fileConfig:{ + api: sysConfig.API_URL + this.$api.common.upload.url, + }, + } + }, + mounted() { + + }, + methods: { + pushRow(res){ + this.fileList = []; + if (res.code==200) { + this.$refs.livestable.pushRow({ + imageid: null, + videoid: res.data.aid, + videourl: res.data.url, + imageurl: '', + }) + return ; + } + this.$message.warning(res.message); + }, + close(){ + this.visible = false; + }, + //表单提交方法 + submit(){ + this.$emit('success', this.data, this) + }, + //显示 + open(){ + this.visible = true; + return this; + }, + //表单注入数据 + setData(o){ + this.data = o + }, + remoteData(o){ + setTimeout(async ()=>{ + var res = await api.get('getAttachment',{id:o.id}) + this.loading = false + this.data = res.data; + this.issave = true + },400) + } + } + } +</script> +<style> +</style> diff --git a/src/views/app/apartment/room.vue b/src/views/app/apartment/room.vue index 6db73d7..8e916a1 100644 --- a/src/views/app/apartment/room.vue +++ b/src/views/app/apartment/room.vue @@ -1,5 +1,5 @@ <template> - <el-drawer :title="titleMap[mode]" v-model="visible" :size="1200" destroy-on-close @closed="$emit('closed')"> + <el-drawer :title="titleMap[mode]" v-model="visible" :size="1200" :close-on-press-escape="false" :close-on-click-modal="false" destroy-on-close @closed="$emit('closed')"> <el-container v-loading="loading"> <el-main style="padding:0 20px 20px 20px"> <el-form ref="dialogForm" :model="form" label-width="100px" label-position="top"> @@ -34,6 +34,19 @@ <el-input v-model="scope.row.allowance" placeholder="可预定数量"></el-input> </template> </el-table-column> + <el-table-column prop="allowance" label="房型" width="120"> + <template #default="scope"> + <el-select v-model="scope.row.type" placeholder="选择"> + <el-option key=1 label="单人间" value=1> 单人间</el-option> + <el-option key=2 label="双人间" value=2> 双人间</el-option> + <el-option key=3 label="三人间" value=3> 三人间</el-option> + <el-option key=4 label="独卫套间" value=4> 独卫套间</el-option> + <el-option key=5 label="双人套间" value=5> 双人套间</el-option> + <el-option key=7 label="studio" value=7> studio</el-option> + <el-option key=6 label="其他" value=6> 其他</el-option> + </el-select> + </template> + </el-table-column> <el-table-column prop="price" label="价格" width="120"> <template #default="scope"> <el-input v-model="scope.row.price" placeholder="价格"></el-input> @@ -44,8 +57,6 @@ <el-input v-model="scope.row.discountprice" placeholder="房间特价"></el-input> </template> </el-table-column> - - <el-table-column prop="status" label="可预定" width="70" align="center"> <template #default="scope"> <el-switch v-model="scope.row.status" active-value="1" inactive-value="0"></el-switch> @@ -110,6 +121,7 @@ addTemplate: { name:null, tags:null, + type:null, allowance:0, price:0, discountprice:0, diff --git a/src/views/app/apartment/update.vue b/src/views/app/apartment/update.vue index c0fa2cc..ea0c56d 100644 --- a/src/views/app/apartment/update.vue +++ b/src/views/app/apartment/update.vue @@ -1,5 +1,5 @@ <template> - <el-drawer :title="titleMap[mode]" v-model="visible" :size="1000" destroy-on-close @closed="$emit('closed')"> + <el-drawer :title="titleMap[mode]" v-model="visible" :size="1000" :close-on-press-escape="false" :close-on-click-modal="false" destroy-on-close @closed="$emit('closed')"> <el-container v-loading="loading"> <el-main style="padding:0 20px 20px 20px"> <sc-form ref="formref" :config="config" v-model="info" :loading="loading"> </sc-form> diff --git a/src/views/app/apartment/videos.vue b/src/views/app/apartment/videos.vue index 489e199..7e3f38b 100644 --- a/src/views/app/apartment/videos.vue +++ b/src/views/app/apartment/videos.vue @@ -1,5 +1,5 @@ <template> - <el-drawer :size="800" @closed="$emit('closed', data)" destroy-on-close="" title="视频组" v-model="visible"> + <el-drawer :size="800" @closed="$emit('closed', data)" :close-on-press-escape="false" :close-on-click-modal="false" destroy-on-close title="视频组" v-model="visible"> <el-container v-loading="loading"> <el-main style="padding:0 6px 6px 6px"> <sc-form-table :addtemplate="filtersAddTemplate" :hideadd="true" class="videos" drag-sort="" placeholder="暂无数据" ref="videostable" v-model="data.videos">