From 17efddc6a667670dca682bf36b51a43e99615e6d Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期三, 16 十月 2024 15:59:38 +0800 Subject: [PATCH] 代码初始化 --- admin/src/views/meeting/bookings.vue | 254 +++++++++++++++++--------------------------------- 1 files changed, 89 insertions(+), 165 deletions(-) diff --git a/admin/src/views/meeting/bookings.vue b/admin/src/views/meeting/bookings.vue index 4a9f8f8..73cc725 100644 --- a/admin/src/views/meeting/bookings.vue +++ b/admin/src/views/meeting/bookings.vue @@ -1,36 +1,15 @@ <template> <TableLayout :permissions="['business:bookings:query']"> <!-- 鎼滅储琛ㄥ崟 --> - <el-form - ref="searchForm" - slot="search-form" - :model="searchForm" - label-width="100px" - inline - > + <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> <el-form-item label="浼氳瀹�" prop="roomId"> - <el-select - v-model="searchForm.roomId" - filterable - clearable - placeholder="璇烽�夋嫨浼氳瀹�" - > - <el-option - v-for="item in rooms" - :key="item.id" - :value="item.id" - :label="item.name" - /> + <el-select v-model="searchForm.roomId" filterable clearable placeholder="璇烽�夋嫨浼氳瀹�"> + <el-option v-for="item in rooms" :key="item.id" :value="item.id" :label="item.name" /> </el-select> </el-form-item> <el-form-item label="棰勭害閮ㄩ棬" prop="department"> - <el-cascader - v-model="searchForm.department" - :options="department" - :show-all-levels="false" - clearable - :props="props" - ></el-cascader> + <el-cascader v-model="searchForm.department" :options="department" :show-all-levels="false" clearable + :props="props"></el-cascader> <!-- @change="handleChange" --> <!-- <el-select v-model="searchForm.departmentId" @@ -42,52 +21,23 @@ </el-select> --> </el-form-item> <el-form-item label="浼氳涓婚" prop="name"> - <el-input - v-model="searchForm.name" - placeholder="璇疯緭鍏ヤ細璁富棰�" - @keypress.enter.native="search" - ></el-input> + <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ヤ細璁富棰�" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="棰勭害浜�" prop="realName"> - <el-input - v-model="searchForm.realName" - placeholder="璇疯緭鍏ラ绾︿汉" - @keypress.enter.native="search" - ></el-input> + <el-input v-model="searchForm.realName" placeholder="璇疯緭鍏ラ绾︿汉" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="浼氳鐘舵��" prop="status"> - <el-select - v-model="searchForm.status" - filterable - clearable - placeholder="璇烽�夋嫨鐘舵��" - > - <el-option - v-for="item in status" - :key="item.id" - :value="item.id" - :label="item.name" - /> + <el-select v-model="searchForm.meetingStatus" filterable clearable placeholder="璇烽�夋嫨鐘舵��"> + <el-option v-for="item in status" :key="item.id" :value="item.id" :label="item.name" /> </el-select> </el-form-item> <el-form-item label="璧锋鏃堕棿" prop="startTime"> - <el-date-picker - v-model="date" - type="datetimerange" - range-separator="鑷�" - value-format="yyyy-MM-dd HH:mm:ss" - :default-time="['00:00:00', '23:59:59']" - start-placeholder="寮�濮嬫椂闂�" - end-placeholder="缁撴潫鏃堕棿" - @change="selectDate" - ></el-date-picker> + <el-date-picker v-model="date" type="datetimerange" range-separator="鑷�" value-format="yyyy-MM-dd HH:mm:ss" + :default-time="['00:00:00', '23:59:59']" start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿" + @change="selectDate"></el-date-picker> <!-- <el-date-picker v-model="searchForm.startTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ紑濮嬫椂闂�" @change="search"/> --> </el-form-item> - <el-radio-group - v-model="searchForm.radio" - size="small" - @input="changeRadio" - > + <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio"> <el-radio-button label="0">褰撳ぉ</el-radio-button> <el-radio-button label="1">杩�7澶�</el-radio-button> <el-radio-button label="2">杩�30澶�</el-radio-button> @@ -102,132 +52,74 @@ </el-form> <!-- 琛ㄦ牸鍜屽垎椤� --> <template v-slot:table-wrap> - <ul - class="toolbar" - v-permissions="[ - 'business:bookings:create', - 'business:bookings:exportExcel', - ]" - > + <ul class="toolbar" v-permissions="[ + 'business:bookings:create', + 'business:bookings:exportExcel', + ]"> <li> - <el-button - type="primary" - @click="$refs.operaBookingsWindow.open('鏂板缓浼氳')" - v-permissions="['business:bookings:create']" - >鏂板缓</el-button - > + <el-button type="primary" @click="$refs.operaBookingsWindow.open('鏂板缓浼氳')" + v-permissions="['business:bookings:create']">鏂板缓</el-button> </li> <!-- <li><el-button @click="deleteByIdInBatch" v-permissions="['business:bookings:delete']">鍒犻櫎</el-button></li> --> <li> - <el-button - :loading="isWorking.export" - v-permissions="['business:bookings:exportExcel']" - @click="exportExcel" - >瀵煎嚭</el-button - > + <el-button :loading="isWorking.export" v-permissions="['business:bookings:exportExcel']" + @click="exportExcel">瀵煎嚭</el-button> </li> </ul> - <el-table - v-loading="isWorking.search" - :data="tableData.list" - stripe - border - @selection-change="handleSelectionChange" - > + <el-table v-loading="isWorking.search" :data="tableData.list" stripe border + @selection-change="handleSelectionChange"> <!-- <el-table-column type="selection" align="center" width="55"></el-table-column> --> - <el-table-column - prop="name" - label="浼氳涓婚" - align="center" - min-width="120px" - show-overflow-tooltip - > + <el-table-column prop="name" label="浼氳涓婚" align="center" min-width="120px" show-overflow-tooltip> <template slot-scope="{ row }"> <span class="long-title-style">{{ row.name }}</span> </template> </el-table-column> - <el-table-column - prop="roomName" - label="浼氳瀹�" - align="center" - min-width="120px" - show-overflow-tooltip - > + <el-table-column prop="roomName" label="浼氳瀹�" align="center" min-width="120px" show-overflow-tooltip> <template slot-scope="{ row }"> <span class="long-title-style">{{ row.roomName }}</span> </template> </el-table-column> - <el-table-column - prop="meetingTime" - label="浼氳鏃堕棿" - align="center" - min-width="120px" - ></el-table-column> - <el-table-column - prop="managerInfo" - label="棰勭害浜�" - align="center" - min-width="100px" - ></el-table-column> - <el-table-column label="鐘舵��" align="center" min-width="60px"> + <el-table-column prop="meetingTime" label="浼氳鏃堕棿" align="center" min-width="120px"></el-table-column> + <el-table-column prop="managerInfo" label="棰勭害浜�" align="center" min-width="100px"></el-table-column> + <el-table-column label="浼氳鐘舵��" align="center" min-width="60px"> <template slot-scope="{ row }"> - <span v-if="row.status == 0" style="color: rgb(127, 178, 53)" - >姝e父</span - > - <span v-else style="color: rgb(234, 54, 38)">鍙栨秷</span> + <span v-if="row.meetingStatus == 1">鏈紑濮�</span> + <span v-if="row.meetingStatus == 2">杩涜涓�</span> + <span v-if="row.meetingStatus == 3">宸茬粨鏉�</span> + <span v-if="row.meetingStatus == 4">鍗冲皢寮�濮�</span> + <span v-if="row.meetingStatus == 5">宸叉挙閿�</span> <!-- {{ row.status==0 ? '姝e父' : '鍙栨秷' }} --> </template> </el-table-column> - <el-table-column - prop="createDate" - label="鍒涘缓鏃堕棿" - align="center" - min-width="100px" - ></el-table-column> + <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" align="center" min-width="150px"></el-table-column> <!-- <el-table-column prop="content" label="浼氳鍐呭" min-width="100px"></el-table-column> --> - <el-table-column - v-if=" - containPermissions([ - 'business:bookings:update', - 'business:bookings:delete', - ]) - " - label="鎿嶄綔" - min-width="100" - align="center" - fixed="right" - > + <el-table-column v-if=" + containPermissions([ + 'business:bookings:update', + 'business:bookings:delete', + ]) + " label="鎿嶄綔" min-width="140" align="center" fixed="right"> <template slot-scope="{ row }"> <template> - <el-button - type="text" - @click="$refs.operaBookingsDetailWindow.open('浼氳璇︽儏', row)" - >鏌ョ湅璇︽儏</el-button - > - <!-- <el-button v-if="row.flag == 0" type="text" @click="$refs.operaBookingsWindow.open('缂栬緫浼氳棰勭害', row)" v-permissions="['business:bookings:update']">淇敼</el-button> --> - <!-- <el-button type="text" @click="copy(row)">澶嶅埗</el-button> --> - <!-- <el-button v-if="row.flag == 0" type="text" @click="cancelMeeting(row.id)" v-permissions="['business:bookings:update']">鍙栨秷</el-button> --> + <el-button type="text" @click="$refs.operaBookingsDetailWindow.open('浼氳璇︽儏', row)">鏌ョ湅璇︽儏</el-button> + <el-button v-if="row.meetingStatus == '1'" type="text" + @click="$refs.operaBookingsWindow.open('缂栬緫浼氳棰勭害', row)" + v-permissions="['business:bookings:update']">缂栬緫</el-button> + <el-button type="text" v-if="row.meetingStatus == '1'" @click="handleStart(row)">寮�濮�</el-button> + <el-button type="text" v-if="row.meetingStatus == '2'" @click="handleEnd(row)">缁撴潫</el-button> + <el-button v-if="row.meetingStatus == '1'" type="text" @click="cancelMeeting(row.id)" + v-permissions="['business:bookings:update']">鎾ゅ洖</el-button> </template> <!-- <el-button v-else type="text" @click="deleteById(row)" v-permissions="['business:bookings:delete']">鍒犻櫎</el-button> --> </template> </el-table-column> </el-table> - <pagination - @size-change="handleSizeChange" - @current-change="handlePageChange" - :pagination="tableData.pagination" - > + <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> </pagination> </template> <!-- 鏂板缓/淇敼 --> - <OperaBookingsWindow - ref="operaBookingsWindow" - @success="handlePageChange" - /> - <OperaBookingsDetailWindow - @success="search" - ref="operaBookingsDetailWindow" - /> + <OperaBookingsWindow ref="operaBookingsWindow" @success="handlePageChange" /> + <OperaBookingsDetailWindow @success="search" ref="operaBookingsDetailWindow" /> </TableLayout> </template> @@ -241,7 +133,7 @@ import { findList } from '@/api/meeting/rooms' import { getSystemDictData } from '@/api/system/dictData' import { fetchList } from '@/api/business/company' -import { cancelById, bookingsDetail } from '@/api/meeting/bookings' +import { cancelById, bookingsDetail, startEarlyById, startById, meetingEndById } from '@/api/meeting/bookings' import { timeForMat } from '@/utils/util' export default { name: 'Bookings', @@ -256,7 +148,7 @@ // departmentId: [], department: [], realName: '', - status: '', + meetingStatus: '', createDate: '', editor: '', editDate: '', @@ -280,9 +172,11 @@ { name: '寮�鍙戦儴闂�', id: '0' } ], status: [ - { name: '鍏ㄩ儴', id: '' }, - { name: '姝e父', id: '0' }, - { name: '鍙栨秷', id: '1' } + { name: '鏈紑濮�', id: 1 }, + { name: '鍗冲皢寮�濮�', id: 4 }, + { name: '杩涜涓�', id: 2 }, + { name: '宸叉挙閿�', id: 5 }, + { name: '宸茬粨鏉�', id: 3 } ], link: 'https://dmtest.ahapp.net/meeting_h5/' // H5_LINK_ADDR } @@ -370,6 +264,31 @@ .catch(e => { }) }, + handleStart(row) { + this.$dialog.messageWaring('寮�濮嬩細璁�', '鏄惁寮�濮嬪綋鍓嶄細璁紵') + .then(() => { + let fn = new Date(row.startTime).getTime() > new Date().getTime() ? startEarlyById : startById + fn({ id: row.id }) + .then(() => { + this.$message.success('浼氳宸插紑濮�') + this.handlePageChange() + }) + .catch(e => { + }) + }) + }, + handleEnd(row) { + this.$dialog.messageWaring('缁撴潫浼氳', '鏄惁缁撴潫褰撳墠浼氳锛�') + .then(() => { + meetingEndById({ id: row.id }) + .then(() => { + this.$message.success('浼氳宸茬粨鏉�') + this.handlePageChange() + }) + .catch(e => { + }) + }) + }, cancelMeeting(id) { this.$dialog.messageWaring('鍙栨秷浼氳', '鏄惁鍙栨秷褰撳墠浼氳锛�') .then(() => { @@ -417,7 +336,7 @@ this.tableData.pagination.total = data.total }) .catch(e => { - this.$tip.apiFailed(e) + // this.$tip.apiFailed(e) }) .finally(() => { this.isWorking.search = false @@ -430,24 +349,29 @@ <style lang="scss" scoped> .detail_modal { padding: 20px 16px; + .title { text-align: center; font-weight: 600; font-size: 16px; margin-bottom: 20px; } + .h1 { font-weight: 600; font-size: 16px; margin-bottom: 15px; } + .line { display: flex; margin-bottom: 10px; + .label { width: 70px; color: #888888; } + .value { color: #333333; } -- Gitblit v1.9.3