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