Ver código fonte

阶段性提交

soft5566 2 anos atrás
pai
commit
2e8758abd1

+ 0 - 59
src/api/house.js

@@ -1,59 +0,0 @@
-import request from '@/utils/request'
-
-// 获取充值记录,表格数据
-export function getTableData(forData) {
-	let data = new FormData()
-	data.append('page', forData.page)
-	data.append('rows', forData.rows)
-	if (typeof forData.h_type != 'undefined') {
-		data.append('h_type', forData.h_type)
-	}
-	return request({
-		url: '/houselist.action',
-		method: 'post',
-		data
-	})
-}
-
-// 添加房型
-export function addHouseType(forData) {
-  let data = {
-  	h_type: forData.h_type,
-  	price: forData.price,
-  	number: forData.number
-  };
-
-	return request({
-		url: '/houseinsert.action',
-		method: 'post',
-		data
-	})
-}
-
-// 修改房型
-export function modifyHouseType(forData) {
-  let data = {
-    id: forData.id,
-  	h_type: forData.h_type,
-  	price: forData.price,
-  	number: forData.number
-  };
-
-	return request({
-		url: '/houseupdate.action',
-		method: 'post',
-		data
-	})
-}
-
-// 修改房型
-export function delHouseType(forData) {
-  let data = new FormData()
-  data.append('id', forData.id)
-
-	return request({
-		url: '/housedel.action',
-		method: 'post',
-		data
-	})
-}

+ 87 - 2
src/api/residentialhostelMgr.js

@@ -43,8 +43,11 @@ export function addHostel(param) {
 	data.append('bankCard', param.bankCard);
 	data.append('cardName', param.cardName);
 	data.append('bankName', param.bankName);
-	data.append('fileListJson', param.fileList);
 	data.append('password', 'Jams123456');
+	// 文件对象
+	param.fileList.map(file => {
+		data.append("fileListJson", file.raw)
+	})
 
 	return request({
 		url: '/managerAdmininsertAdmin.action',
@@ -64,8 +67,11 @@ export function modifyHostel(param) {
 	data.append('bankCard', param.bankCard);
 	data.append('cardName', param.cardName);
 	data.append('bankName', param.bankName);
-	data.append('fileListJson', JSON.stringify(param.fileList));
 	data.append('password', 'Jams123456');
+	// 文件对象
+	param.fileList.map(file => {
+		data.append("fileListJson", file.raw)
+	})
 
 	return request({
 		url: '/managerAdminupdateAdmin.action',
@@ -96,4 +102,83 @@ export function resetHostelAccountPassword(param) {
 		method: 'post',
 		data
 	});
+};
+
+// 冻结民宿账号
+export function frozenHostelAccount(param) {
+	let data = new FormData();
+	data.append('id', param);
+
+	return request({
+		url: '/managerAdminfreezeAdmin.action',
+		method: 'post',
+		data
+	});
+};
+
+// 解冻民宿账号
+export function thawHostelAccount(param) {
+	let data = new FormData();
+	data.append('id', param);
+
+	return request({
+		url: '/managerAdminthawAdmin.action',
+		method: 'post',
+		data
+	});
+};
+
+// 民宿字典列表
+// code:1.民宿类型;2.民宿服务;3.房型名称;4.房型服务
+export function listHomestayDictionary(param) {
+	let data = new FormData();
+	data.append('code', param);
+
+	return request({
+		url: '/hotelqueryList.action',
+		method: 'post',
+		data
+	});
+};
+
+// 增加民宿字典
+export function addHomestayDictionary(param) {
+	let data = new FormData();
+	data.append('name', param.name);
+	data.append('code', param.code);
+	if (typeof param.fileUrl !== 'undefined') {
+		data.append('fileUrl', param.fileUrl);
+	}
+
+	return request({
+		url: '/hotelinsterHotelDict.action',
+		method: 'post',
+		data
+	});
+};
+
+// 修改民宿字典
+export function modifyHomestayDictionary(param) {
+	let data = new FormData();
+	data.append('id', param.id);
+	data.append('name', param.name);
+	data.append('code', param.code);
+
+	return request({
+		url: '/hotelupdateHotelDict.action',
+		method: 'post',
+		data
+	});
+};
+
+// 删除民宿字典
+export function delHomestayDictionary(param) {
+	let data = new FormData();
+	data.append('id', param);
+
+	return request({
+		url: '/hoteldelHotelDict.action',
+		method: 'post',
+		data
+	});
 };

Diferenças do arquivo suprimidas por serem muito extensas
+ 655 - 192
src/views/residentialhostelMgr/index.vue


+ 128 - 293
src/views/stdbookMgr/index.vue

@@ -18,60 +18,122 @@
 									</el-select>
 								</el-form-item>
 								<el-form-item label="订单金额">
-									<el-input placeholder="请输入金额" v-model="amount1" style="width: 110px;">
+									<el-input placeholder="请输入金额" v-model="formInline.amount1" clearable style="width: 118px;">
 									</el-input>
 									-
-									<el-input placeholder="请输入金额" v-model="amount2" style="width: 110px;">
+									<el-input placeholder="请输入金额" v-model="formInline.amount2" clearable style="width: 118px;">
 									</el-input>
 								</el-form-item>
 								<el-form-item label="退房时间">
-									<el-date-picker v-model="search_datatime" type="datetimerange" align="right" start-placeholder="开始日期" end-placeholder="结束日期"
-										:default-time="['12:00:00', '08:00:00']">
+									<el-date-picker v-model="formInline.search_datatime" type="daterange" align="right" start-placeholder="开始日期"
+										end-placeholder="结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd">
 									</el-date-picker>
 								</el-form-item>
 								<el-form-item label="">
-									<el-input v-model="formInline.h_type" style="width: 200px;" prefix-icon="el-icon-search" clearable
+									<el-input v-model="formInline.keyword" style="width: 200px;" prefix-icon="el-icon-search" clearable
 										placeholder="请输入关键字"></el-input>
 								</el-form-item>
 								<el-form-item>
 									<el-button type="primary" class="btn-search" @click="btn_search">查询</el-button>
 								</el-form-item>
 							</el-form>
-							<el-button type="primary" icon="el-icon-download" class="export" @click="">导出订单</el-button>
+							<el-button type="primary" icon="el-icon-download" class="export" @click="exportExcel">导出订单</el-button>
 						</div>
 						<el-table :data="tableData" height="510" style="width: 100%" :cell-style="cell_style" v-loading="loading"
 							:header-cell-style="header_cell_style">
-							<el-table-column type="selection" width="55">
+							<el-table-column type="expand" width="50">
+								<template slot-scope="props">
+									<el-form label-position="left" inline class="demo-table-expand">
+										<el-form-item label="所属乡镇">
+											<span>{{ props.row.hotelHposition }}</span>
+										</el-form-item>
+										<el-form-item label="民宿名称">
+											<span>{{ props.row.hotelName }}</span>
+										</el-form-item>
+										<el-form-item label="订单号">
+											<span>{{ props.row.orderNum }}</span>
+										</el-form-item>
+										<el-form-item label="订单金额(元)">
+											<span>{{ props.row.houseTotalPrice }}</span>
+										</el-form-item>
+										<el-form-item label="退房时间">
+											<span>{{ props.row.checkOutTime }}</span>
+										</el-form-item>
+										<el-form-item label="酒店类型">
+											<span>{{ props.row.htype }}</span>
+										</el-form-item>
+										<el-form-item label="酒店位置">
+											<span>{{ props.row.hposition }}</span>
+										</el-form-item>
+										<el-form-item label="酒店名称">
+											<span>{{ props.row.hname }}</span>
+										</el-form-item>
+										<el-form-item label="酒店位置经纬度">
+											<span>{{ props.row.hpositionWens }}</span>
+										</el-form-item>
+										<el-form-item label="酒店状态(1 营业 2.休息)">
+											<span>{{ props.row.hstatus }}</span>
+										</el-form-item>
+										<el-form-item label="开业时间">
+											<span>{{ props.row.openTime }}</span>
+										</el-form-item>
+										<el-form-item label="装修时间">
+											<span>{{ props.row.fitupTime }}</span>
+										</el-form-item>
+										<el-form-item label="入住时间">
+											<span>{{ props.row.liveTime }}</span>
+										</el-form-item>
+										<el-form-item label="离店时间">
+											<span>{{ props.row.leaveTime }}</span>
+										</el-form-item>
+									</el-form>
+									<!-- 装修时间 fitupTime
+									客房数 roomNumber
+									简介备注 remark
+									酒店配置 hconfig
+									接单设置(1自动接单 2手动接单) isOrder
+									是否自动退房(1是 2否) isCheckout
+									订单锁定时间 lockTime
+									是否能取消订单(1是 2否) isCanorder
+									创建人 createId
+									创建时间 createDate
+									修改时间 modifyDate
+									数据状态 status
+									所属乡镇 hotelTownship
+									法人名称 corpnName
+									法人电话 corpnPhone
+									银行卡号 bankCard -->
+								</template>
 							</el-table-column>
 							<el-table-column label="所属乡镇" align="center" width="180">
 								<template slot-scope="scope">
-									<span>{{ scope.row.xz }}</span>
+									<span>{{ scope.row.hotelHposition }}</span>
 								</template>
 							</el-table-column>
 							<el-table-column label="民宿名称" align="center">
 								<template slot-scope="scope">
-									<span>{{ scope.row.mname }}</span>
+									<span>{{ scope.row.hotelName }}</span>
 								</template>
 							</el-table-column>
 							<el-table-column label="订单号" align="center">
 								<template slot-scope="scope">
-									<span>{{ scope.row.orderid }}</span>
+									<span>{{ scope.row.orderNum }}</span>
 								</template>
 							</el-table-column>
 
 							<el-table-column label="订单金额(元)" align="center">
 								<template slot-scope="scope">
-									<span>{{ scope.row.amount }}</span>
+									<span>{{ scope.row.houseTotalPrice }}</span>
 								</template>
 							</el-table-column>
 							<el-table-column label="退房时间" align="center">
 								<template slot-scope="scope">
-									<span>{{ scope.row.checkout_time }}</span>
+									<span>{{ scope.row.checkOutTime }}</span>
 								</template>
 							</el-table-column>
 						</el-table>
 						<div class="pagination-table">
-							<div class="txt-notice">订单总额:<span>188888.88元</span></div>
+							<div class="txt-notice">订单总额:<span>{{ sumAccount }}元</span></div>
 							<el-pagination @current-change="currentPageChange" :current-page.sync="pagination.currentPage" :page-size="pagination.pageSize"
 								layout="prev, pager, next, jumper" :total="pagination.total">
 							</el-pagination>
@@ -86,60 +148,15 @@
 <script>
 	import {
 		getTableData,
-		addHouseType,
-		modifyHouseType,
-		delHouseType
-	} from '@/api/house'
+		downloadExcel
+	} from '@/api/stdbookMgr'
 
 	export default {
 		data() {
-			var checkHType = (rule, value, callback) => {
-				if (!value) {
-					return callback(new Error('请输入房型'));
-				}
-				setTimeout(() => {
-					var reg = /^[\u4e00-\u9fa5\w]{3,16}$/
-					if (!reg.test(value)) {
-						callback(new Error('3-16个由汉字、字母或数字组成字符'));
-					} else {
-						callback();
-					}
-				}, 100);
-			};
-			var checkPrice = (rule, value, callback) => {
-				if (!value) {
-					return callback(new Error('请输入房费'));
-				}
-				setTimeout(() => {
-					var reg = /^[1-9]\d{0,3}$/
-					if (!reg.test(value)) {
-						callback(new Error('必须为小于9999的正整数'));
-					} else {
-						callback();
-					}
-				}, 100);
-			};
-			var checkNumber = (rule, value, callback) => {
-				if (!value) {
-					return callback(new Error('请输入数量'));
-				}
-				setTimeout(() => {
-					var reg = /^[1-9]\d{0,3}$/
-					if (!reg.test(value)) {
-						callback(new Error('必须为小于9999的正整数'));
-					} else {
-						callback();
-					}
-				}, 100);
-			};
 			return {
 				dialogImageUrl: '',
-				dialogVisible: false,
-				disabled: false,
-				fileList: [], // 图片上传列表
-				hideUpload: false, // 是否隐藏上传框
-				limitCount: 6, // 图片上传的数量限制
 				formLabelWidth: '120px',
+				sumAccount: '', // 总金额
 				// 表格单元格样式
 				cell_style: {
 					color: '#1A202B',
@@ -153,7 +170,6 @@
 					'font-size': '16px',
 					'font-family': 'Microsoft YaHei-3970(82674968)'
 				},
-				search_datatime: '',
 				// 查询数据
 				formInline: {
 					options: [{
@@ -173,16 +189,10 @@
 						label: '乡镇E'
 					}],
 					value: '',
-					h_type: ''
-				},
-				formAddInfo: {
-					bankcard: '',
-					uname: '',
-					bankname: ''
-				},
-				deleteHouseData: {
-					account: '',
-					id: ''
+					amount1: '',
+					amount2: '',
+					search_datatime: '',
+					keyword: ''
 				},
 				tableData: [],
 				cond_data: {},
@@ -192,44 +202,7 @@
 					pageSize: 9,
 					total: 0
 				},
-				loading: true,
-				dialogAddHouseFormVisible: false,
-				formAddHostel: {
-					h_type: '',
-					number: '',
-					price: '',
-					value: ''
-				},
-				addHouseFormRules: {
-					h_type: [{
-						validator: checkHType
-					}],
-					price: [{
-						validator: checkPrice
-					}],
-					number: [{
-						validator: checkNumber
-					}]
-				},
-				dialogModifyHouseFormVisible: false,
-				formModifyHouse: { // 修改账号对话框 数据
-					id: '',
-					h_type: '',
-					price: '',
-					number: ''
-				},
-				modifyHouseFormRules: {
-					h_type: [{
-						validator: checkHType
-					}],
-					price: [{
-						validator: checkPrice
-					}],
-					number: [{
-						validator: checkNumber
-					}]
-				},
-				dialogDeleteHouseVisible: false
+				loading: true
 			}
 		},
 		mounted() {
@@ -242,63 +215,6 @@
 			 * 获取消费记录,表格数据
 			 */
 			get_table_data(param) {
-				this.tableData = [{
-					xz: '宝峰镇',
-					mname: '靖安乡宿宝峰镇酒店',
-					orderid: '202308021818134',
-					amount: '288.00',
-					checkout_time: '2023-08-01 18:18:18'
-				}, {
-					xz: '宝峰镇',
-					mname: '靖安乡宿宝峰镇酒店',
-					orderid: '202308021818134',
-					amount: '288.00',
-					checkout_time: '2023-08-01 18:18:18'
-				}, {
-					xz: '宝峰镇',
-					mname: '靖安乡宿宝峰镇酒店',
-					orderid: '202308021818134',
-					amount: '288.00',
-					checkout_time: '2023-08-01 18:18:18'
-				}, {
-					xz: '宝峰镇',
-					mname: '靖安乡宿宝峰镇酒店',
-					orderid: '202308021818134',
-					amount: '288.00',
-					checkout_time: '2023-08-01 18:18:18'
-				}, {
-					xz: '宝峰镇',
-					mname: '靖安乡宿宝峰镇酒店',
-					orderid: '202308021818134',
-					amount: '288.00',
-					checkout_time: '2023-08-01 18:18:18'
-				}, {
-					xz: '宝峰镇',
-					mname: '靖安乡宿宝峰镇酒店',
-					orderid: '202308021818134',
-					amount: '288.00',
-					checkout_time: '2023-08-01 18:18:18'
-				}, {
-					xz: '宝峰镇',
-					mname: '靖安乡宿宝峰镇酒店',
-					orderid: '202308021818134',
-					amount: '288.00',
-					checkout_time: '2023-08-01 18:18:18'
-				}, {
-					xz: '宝峰镇',
-					mname: '靖安乡宿宝峰镇酒店',
-					orderid: '202308021818134',
-					amount: '288.00',
-					checkout_time: '2023-08-01 18:18:18'
-				}, {
-					xz: '宝峰镇',
-					mname: '靖安乡宿宝峰镇酒店',
-					orderid: '202308021818134',
-					amount: '288.00',
-					checkout_time: '2023-08-01 18:18:18'
-				}];
-				this.loading = false;
-				return
 				this.loading = true
 				this.get_condtion();
 
@@ -307,24 +223,29 @@
 					data.page = 1
 					this.pagination.currentPage = 1
 				}
+
+				var that = this
 				// console.log(data);
 				getTableData(data).then((res) => {
-					// console.log(res);
-					if (typeof res.rows !== 'undefined' && res.rows !== '') {
-						this.pagination.total = res.total
-						this.tableData = []
-						for (var i = 0; i < res.rows.length; i++) {
-							this.tableData.push(res.rows[i])
+					console.log(res);
+					if (res.code === 200) {
+						var d = res.data
+						that.pagination.total = d.bookIPage.total
+						that.tableData = []
+						for (var i = 0; i < d.bookIPage.pageList.length; i++) {
+							that.tableData.push(d.bookIPage.pageList[i])
 						}
+
+						that.sumAccount = d.sumAccount.toFixed(2)
 					} else {
-						this.tableData = []
-						this.$message.warning('没有符合条件的数据!')
+						that.tableData = []
+						that.$message.warning('没有符合条件的数据!')
 					}
 				}).catch((err) => {
 					// console.log(err);
-					this.$message.error(err.message)
+					that.$message.error(err.message)
 				});
-				this.loading = false;
+				that.loading = false;
 			},
 			/**
 			 * 条件
@@ -334,8 +255,25 @@
 					page: this.pagination.currentPage,
 					rows: this.pagination.pageSize
 				}
-				if (this.formInline.h_type !== '') {
-					data.h_type = this.formInline.h_type
+
+				if (this.formInline.value !== '') {
+					data.value = this.formInline.value
+				}
+
+				if (this.formInline.amount1 !== '') {
+					data.amount1 = this.formInline.amount1
+				}
+
+				if (this.formInline.amount2 !== '') {
+					data.amount2 = this.formInline.amount2
+				}
+
+				if (this.formInline.search_datatime !== '') {
+					data.search_datatime = this.formInline.search_datatime
+				}
+
+				if (this.formInline.keyword !== '') {
+					data.keyword = this.formInline.keyword
 				}
 
 				this.cond_data = data;
@@ -372,7 +310,6 @@
 					padding: 30px;
 					border-radius: 10px;
 					background-color: #FFFFFF;
-					// box-shadow: 5px 5px 15px #979797;
 					box-shadow: 0px 3px 21px 0px rgba(60, 108, 254, 0.16);
 
 					.cell-title {
@@ -523,128 +460,26 @@
 				}
 			}
 		}
-
-		::v-deep .hide .el-upload--picture-card {
-			display: none;
-		}
-
-		::v-deep .el-dialog {
-			margin: 0 !important;
-			width: 400px;
-			height: 460px;
-			background: #FFFFFF;
-			box-shadow: 0px 0px 13px 0px rgba(0, 0, 0, 0.29);
-			border-radius: 6px;
-			position: absolute;
-			top: 50%;
-			left: 50%;
-			transform: translate(-50%, -50%);
-
-			.el-dialog__header {
-				display: flex;
-				align-items: center;
-				width: 100%;
-				height: 58px;
-				padding: 30px;
-				// background: #E6EBFE;
-				border-radius: 6px 6px 0px 0px;
-				font-weight: bold;
-				border-bottom: 1px solid rgba(230, 230, 230, 1);
-			}
-
-			.el-dialog__body {
-				padding-bottom: 0;
-
-				.el-form-item__label,
-				.el-form-item__content {
-					font-size: 16px;
-					font-family: Microsoft YaHei-3970(82674968);
-					color: #53575A;
-				}
-
-				.el-input__inner {
-					width: 280px;
-				}
-			}
-
-			// 删除对话框的样式
-			.del-account-body {
-				display: flex;
-				flex-direction: column;
-				justify-content: center;
-				align-items: center;
-				height: 180px;
-
-				img {
-					width: 72px;
-				}
-
-				.del-account-body-txt {
-					height: 58px;
-					line-height: 58px;
-					font-size: 18px;
-					font-family: Microsoft YaHei-3970(82674968);
-					color: #333333;
-				}
-			}
-
-			.el-dialog__footer {
-				padding-bottom: 0 !important;
-				text-align: center;
-
-				.el-button.el-button--default {
-					width: 75px;
-					height: 40px;
-					border: 1px solid #2B4CFE;
-					border-radius: 6px;
-					font-size: 16px;
-					font-family: Microsoft YaHei-3970(82674968);
-					color: #2B4CFE;
-				}
-
-				.el-button.el-button--primary {
-					width: 75px;
-					height: 40px;
-					background: #2B4CFE;
-					border-radius: 6px;
-					font-size: 16px;
-					font-family: Microsoft YaHei-3970(82674968);
-					color: #FFFFFF;
-					margin-left: 60px;
-				}
-			}
-		}
 	}
 </style>
 
 <style>
-	.add-house-class,
-	.modify-house-class {
-		width: 1000px !important;
-		height: 800px !important;
-	}
-
-	.el-dialog-delete-house {
-		height: 300px !important;
-		width: 500px !important;
+	.el-date-editor--daterange.el-input__inner {
+		width: 280px !important;
 	}
 
-	.el-dialog-delete-house .el-dialog__header {
-		display: none !important;
+	.demo-table-expand {
+		font-size: 0;
 	}
 
-	.del-btn {
-		background: rgba(9, 101, 98, 1) !important;
-		color: #fff !important;
-		border: none !important;
-		margin-left: 60px !important;
+	.demo-table-expand label {
+		width: 90px;
+		color: #99a9bf;
 	}
 
-	.add-info {
-		border: none !important;
-		background: rgba(9, 101, 98, 1) !important;
-		color: #fff !important;
-		border-radius: 5px !important;
-		margin-left: 80px !important;
+	.demo-table-expand .el-form-item {
+		margin-right: 0;
+		margin-bottom: 0;
+		width: 33%;
 	}
 </style>

+ 2 - 2
vue.config.js

@@ -38,8 +38,8 @@ module.exports = {
 		},
 		proxy: {
 			[process.env.VUE_APP_BASE_API]: {
-				target: 'http://s9kc78.natappfree.cc/mhotel',
-				// target: 'https://chtech.ncjti.edu.cn/hotelReservation/mhotel',
+				// target: 'http://52bun2.natappfree.cc/mhotel',
+				target: 'https://chtech.ncjti.edu.cn/hotelReservation/mhotel',
 				changeOrigin: true,
 				pathRewrite: {
 					['^' + process.env.VUE_APP_BASE_API]: ''