diff --git a/src/api/admin/meeting/meetingReservation.js b/src/api/admin/meeting/meetingReservation.js
index 42d002e..48aca9a 100644
--- a/src/api/admin/meeting/meetingReservation.js
+++ b/src/api/admin/meeting/meetingReservation.js
@@ -147,7 +147,7 @@ export function addStaff(parameter) {
export function expMRByDate(parameter){
return axios({
// url: '/api/roomContent/cancelOrder',
- url: api.meetingReservation + '/io/exportDayMR',
+ url: '/admin/mr/io/exportDayMR',
method: 'post',
params: parameter,
responseType: 'blob'
@@ -157,7 +157,7 @@ export function expMRByDate(parameter){
export function expMRByMonth(parameter){
return axios({
// url: '/api/roomContent/cancelOrder',
- url: api.meetingReservation + '/io/exportMonthMR',
+ url: '/admin/mr/io/exportMonthMR',
method: 'post',
params: parameter,
responseType: 'blob'
diff --git a/src/views/admin/meeting/MeetingReservationList.vue b/src/views/admin/meeting/MeetingReservationList.vue
index a304ea6..ecf761f 100644
--- a/src/views/admin/meeting/MeetingReservationList.vue
+++ b/src/views/admin/meeting/MeetingReservationList.vue
@@ -94,9 +94,9 @@
查询
重置
导出会议日程
+ @click='showExportDayModal = true'>导出会议日程
导出月度汇总
+ @click='showExportMonthModal = true'>导出月度汇总
@@ -190,6 +190,48 @@
:auto-size='{ minRows: 3, maxRows: 5 }'
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 全部预约
+ 待审核
+ 待开始
+ 已结束
+ 已取消
+ 已驳回
+ 占用
+ 进行中
+
+
+
+
+
+
+
+
+
+
@@ -401,7 +443,18 @@ export default {
rejectReason: '',
rejectId: '',
roomList: [],
- isAdmin: checkPermission('meeting:admin')
+ isAdmin: checkPermission('meeting:admin'),
+
+ // 导出会议日程弹窗
+ showExportDayModal: false,
+ exportDayDate: null,
+ exportDayTitle: '',
+ exportDayUserOrg: '',
+ exportDayStatus: '',
+
+ // 导出月度汇总弹窗
+ showExportMonthModal: false,
+ exportMonthDate: null,
}
},
filters: {},
@@ -447,13 +500,13 @@ export default {
}
},
reset() {
- this.queryParam = {
- status: '',
- sort: '',
+ this.queryParam = {
+ status: '',
+ sort: '',
name: '',
- startDate: '',
- endDate: '',
- filterDate: ''
+ startDate: '',
+ endDate: '',
+ filterDate: ''
}
this.queryParam.chooseDate = null
this.$refs.table.refresh(true)
@@ -603,65 +656,120 @@ export default {
staff(id) {
this.$refs.staffModal.add(id)
},
- // 导出预约列表
- exportOrderList() {
- let chooseDate = this.queryParam.chooseDate
- let filterDate = ''
- let startDate = ''
- let endDate = ''
-
- if (chooseDate && chooseDate.length === 2) {
- startDate = chooseDate[0].format('YYYY-MM-DD')
- endDate = chooseDate[1].format('YYYY-MM-DD')
- } else if (chooseDate && chooseDate.length === 1) {
- filterDate = chooseDate[0].format('YYYY-MM-DD')
- } else {
- this.$message.error('请选择会议预约时间')
+ // 处理导出会议日程
+ handleExportDay() {
+ if (!this.exportDayDate || this.exportDayDate.length !== 2) {
+ this.$message.error('请选择日期范围')
return
}
+ const startDate = this.exportDayDate[0].format('YYYY-MM-DD')
+ const endDate = this.exportDayDate[1].format('YYYY-MM-DD')
+
+ // 显示加载提示
+ this.$message.loading({ content: '正在导出数据,请稍候...', key: 'exportLoading', duration: 0 })
+
+ // 添加随机数防止缓存
+ const timestamp = new Date().getTime()
+
expMRByDate({
- 'filterDate': filterDate,
+ 'filterDate': '',
'startDate': startDate,
'endDate': endDate,
- 'userOrg': this.queryParam.userOrg,
- 'title': this.queryParam.title,
- 'status': this.queryParam.status
+ 'userOrg': this.exportDayUserOrg,
+ 'title': this.exportDayTitle,
+ 'status': this.exportDayStatus,
+ '_t': timestamp
}).then(res => {
- let fileName = ''
- if (startDate && endDate) {
- fileName = startDate + '至' + endDate + '会议室预约记录'
- } else {
- fileName = filterDate + '会议室预约记录'
- }
+ this.$message.success({ content: '导出成功', key: 'exportLoading' })
+ const fileName = startDate + '至' + endDate + '会议室预约记录'
this.exportExcel(fileName, res)
+ this.showExportDayModal = false
+ }).catch(error => {
+ console.error('导出失败:', error)
+ let errorMsg = '导出失败'
+ if (error.response && error.response.data) {
+ try {
+ if (typeof error.response.data === 'string') {
+ errorMsg = error.response.data
+ } else if (error.response.data instanceof Blob) {
+ // 如果响应是Blob,尝试读取为文本
+ const reader = new FileReader()
+ reader.onload = () => {
+ try {
+ const text = reader.result
+ this.$message.error({ content: text || '导出失败', key: 'exportLoading' })
+ } catch (e) {
+ this.$message.error({ content: '导出失败: ' + error.message, key: 'exportLoading' })
+ }
+ }
+ reader.readAsText(error.response.data)
+ return
+ } else {
+ errorMsg = error.response.data.msg || '导出失败'
+ }
+ } catch (e) {
+ errorMsg = '导出失败: ' + error.message
+ }
+ } else {
+ errorMsg = '导出失败: ' + error.message
+ }
+ this.$message.error({ content: errorMsg, key: 'exportLoading' })
})
},
- exportMonthOrder() {
- let chooseDate = this.queryParam.chooseDate
- let filterDate = ''
- let startMonth = ''
- let endMonth = ''
-
- if (chooseDate && chooseDate.length === 2) {
- startMonth = chooseDate[0].format('YYYY-MM')
- endMonth = chooseDate[1].format('YYYY-MM')
- if (startMonth !== endMonth) {
- this.$message.error('月度汇总请选择同一个月的日期范围')
- return
- }
- filterDate = startMonth
- } else if (chooseDate && chooseDate.length === 1) {
- filterDate = chooseDate[0].format('YYYY-MM')
- } else {
- this.$message.error('请选择会议预约时间')
+
+ // 处理导出月度汇总
+ handleExportMonth() {
+ if (!this.exportMonthDate) {
+ this.$message.error('请选择月份')
return
}
+ const month = this.exportMonthDate.format('YYYY-MM')
+
+ // 显示加载提示
+ this.$message.loading({ content: '正在导出数据,请稍候...', key: 'exportLoading', duration: 0 })
+
+ // 添加随机数防止缓存
+ const timestamp = new Date().getTime()
+
expMRByMonth({
- 'month': filterDate
+ 'month': month,
+ '_t': timestamp
}).then(res => {
- this.exportExcel(filterDate + '月度会议汇总', res)
+ this.$message.success({ content: '导出成功', key: 'exportLoading' })
+ this.exportExcel(month + '月度会议汇总', res)
+ this.showExportMonthModal = false
+ }).catch(error => {
+ console.error('导出失败:', error)
+ let errorMsg = '导出失败'
+ if (error.response && error.response.data) {
+ try {
+ if (typeof error.response.data === 'string') {
+ errorMsg = error.response.data
+ } else if (error.response.data instanceof Blob) {
+ // 如果响应是Blob,尝试读取为文本
+ const reader = new FileReader()
+ reader.onload = () => {
+ try {
+ const text = reader.result
+ this.$message.error({ content: text || '导出失败', key: 'exportLoading' })
+ } catch (e) {
+ this.$message.error({ content: '导出失败: ' + error.message, key: 'exportLoading' })
+ }
+ }
+ reader.readAsText(error.response.data)
+ return
+ } else {
+ errorMsg = error.response.data.msg || '导出失败'
+ }
+ } catch (e) {
+ errorMsg = '导出失败: ' + error.message
+ }
+ } else {
+ errorMsg = '导出失败: ' + error.message
+ }
+ this.$message.error({ content: errorMsg, key: 'exportLoading' })
})
},
exportExcel(filename, res) {