From 69a1b3bf45738f048361ee4ccb6bdc64fce35720 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 12 三月 2025 11:31:46 +0800
Subject: [PATCH] 更新
---
admin/src/views/meeting/components/OperaBookingsDetailWindow.vue | 212 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 212 insertions(+), 0 deletions(-)
diff --git a/admin/src/views/meeting/components/OperaBookingsDetailWindow.vue b/admin/src/views/meeting/components/OperaBookingsDetailWindow.vue
new file mode 100644
index 0000000..1b0553b
--- /dev/null
+++ b/admin/src/views/meeting/components/OperaBookingsDetailWindow.vue
@@ -0,0 +1,212 @@
+<template>
+ <GlobalAlertWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ width="600px"
+ >
+ <div class="title-style">
+ <div class="header-title">{{ form.name }}</div>
+ <div class="item-value">{{ `${form.roomName} ${form.meetingTime}` }}</div>
+ </div>
+ <div class="content-style">
+ <div class="item">
+ <div class="item-title">鍙備細浜哄憳</div>
+ <div>
+ {{ form.sysList.map((item) => `${item.realName}`).join("锛�") }}
+ </div>
+ </div>
+ <div class="item">
+ <div class="item-title">浼氳鍐呭</div>
+ <div class="item-value">{{ form.content || "鏃�" }}</div>
+ </div>
+ <div v-if="form.projectList && form.projectList.length" class="item">
+ <div class="">鏈嶅姟椤�</div>
+ <div class="item-value">
+ {{ form.projectList.map((item) => item.projectName).join(" | ") }}
+ </div>
+ </div>
+ <div class="item" v-if="form.fileList && form.fileList.length">
+ <div class="item-title">闄勪欢</div>
+ <div>
+ <FileLink
+ :links="form.fileList"
+ linkName="fileurlFull"
+ :isUpload="false"
+ />
+ </div>
+ </div>
+ <div class="item" v-if="!!form.remark">
+ <div class="item-title">澶囨敞</div>
+ <div class="item-value">{{ form.remark }}</div>
+ </div>
+ </div>
+ <div class="bottom-style">
+ <div class="item-title">棰勭害浜�</div>
+ <div class="item-value">{{ form.managerInfo }}</div>
+ </div>
+ <div slot="footer">
+ <el-button type="primary" v-if="form.meetingStatus == 1" @click="openCancel('0')">鎾ら攢</el-button>
+ <el-button v-if="form.meetingStatus == 2" type="primary" @click="openCancel('1')">缁撴潫</el-button>
+ <el-button @click="visible = false">鍙栨秷</el-button>
+ </div>
+ <!-- 鍙栨秷/缁撴潫 -->
+ <el-dialog
+ :title="cancelParam.falg == '1' ? '缁撴潫浼氳' : '鎾ら攢浼氳'"
+ :visible.sync="isShowCancel"
+ append-to-body
+ width="500px"
+ >
+ <el-form style="padding: 30px">
+ <el-form-item label="鎾ゅ洖璇存槑">
+ <el-input
+ type="textarea"
+ :rows="4"
+ placeholder="璇疯緭鍏ヨ鏄庛��"
+ v-model="cancelParam.businessRemark"
+ >
+ </el-input>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="isShowCancel = false">鍙栨秷</el-button>
+ <el-button type="primary" @click="onSubCancel()">纭畾</el-button>
+ </span>
+ </el-dialog>
+ </GlobalAlertWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
+import FileLink from '@/views/meeting/components/common/FileLink'
+import { cancelById, overBookById } from '@/api/meeting/bookings'
+export default {
+ name: 'OperaBookingsDetailWindow',
+ extends: BaseOpera,
+ components: { GlobalAlertWindow, FileLink },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ name: '',
+ roomName: '',
+ meetingTime: '',
+ date: '',
+ editDate: '',
+ projectList: [],
+ remark: '',
+ roomId: '',
+ meetingStatus: '',
+ startTime: '',
+ endTime: '',
+ times: [],
+ content: '',
+ sysList: [],
+ fileList: [],
+ managerInfo: ''
+ },
+ // room: [],
+ sysList: [],
+ projectList: [],
+ timelist: [],
+
+ isShowCancel: false,
+ cancelParam: {
+ flag: '0'
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/meeting/bookings',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ openCancel (flag) {
+ this.isShowCancel = true
+ this.cancelParam.flag = flag
+ },
+ onSubCancel () {
+ const { id } = this.form
+ const fn = this.cancelParam.flag === '0' ? cancelById : overBookById
+ fn({ id, businessRemark: this.cancelParam.businessRemark }).then(res => {
+ this.$tip.success('鎻愪氦鎴愬姛')
+ this.visible = false
+ this.isShowCancel = false
+ this.$emit('success')
+ })
+ }
+ /**
+ * 鎵撳紑绐楀彛
+ * @title 绐楀彛鏍囬
+ * @target 缂栬緫鐨勫璞�
+ */
+ // open (title, target) {
+ // this.title = title
+ // this.visible = true
+ // this.timelist = []
+ // // 鏂板缓
+ // if (target == null) {
+ // this.$nextTick(() => {
+ // this.$refs.form.resetFields()
+ // this.form[this.configData['field.id']] = null
+ // })
+ // return
+ // }
+ // // 缂栬緫
+ // this.$nextTick(() => {
+ // for (const key in this.form) {
+ // this.form[key] = target[key]
+ // }
+ // // this.form.projectList = target.projectList ? target.projectList.map(item => item.projectId) : []
+ // // this.form.sysList = this.form.sysList ? this.form.sysList.map(item => item.userId) : []
+ // // this.form.date = target.startTime.split(' ')[0]
+
+ // })
+ // },
+
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-dialog__body {
+ padding: 0;
+}
+.title-style {
+ padding: 20px;
+ border-bottom: 10px #f7f7f7 solid;
+}
+.content-style {
+ padding: 20px;
+ border-bottom: 10px #f7f7f7 solid;
+}
+.item {
+ padding: 5px 0;
+}
+.header-title {
+ font-size: 16px;
+ font-weight: 600;
+ padding-bottom: 5px;
+}
+.item-title {
+ font-size: 16px;
+ color: #999;
+ padding-bottom: 5px;
+}
+.item-value {
+ font-size: 14px;
+ color: #111;
+}
+.bottom-style {
+ padding: 20px;
+}
+</style>
--
Gitblit v1.9.3