|
@@ -1,32 +1,208 @@
|
|
|
<template>
|
|
<template>
|
|
|
<div>
|
|
<div>
|
|
|
<a-form-model ref="form" :model="model" :rules="validatorRules">
|
|
<a-form-model ref="form" :model="model" :rules="validatorRules">
|
|
|
- TODO:房间配置
|
|
|
|
|
|
|
+ <a-form-model-item label="房型标签" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="tags">
|
|
|
|
|
+ <div style="display: flex;">
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <a-tag closable color="cyan" closavle v-for="(item, index) in model.tags"
|
|
|
|
|
+ @close="onTagClose(index)">
|
|
|
|
|
+ {{ item }}
|
|
|
|
|
+ </a-tag>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div style="display: flex;justify-content:center;align-items:center;" v-if="addIng">
|
|
|
|
|
+ <span slot="enterButton" style="flex: 1;">
|
|
|
|
|
+ <a-input v-model="addText" placeholder="请输入标签">
|
|
|
|
|
+ </a-input>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ <a-button @click="onadd">
|
|
|
|
|
+ 确定
|
|
|
|
|
+ </a-button>
|
|
|
|
|
+ <a-button @click="addIng = false">
|
|
|
|
|
+ 取消
|
|
|
|
|
+ </a-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <a-button v-else type="primary" @click="addTag">添加</a-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </a-form-model-item>
|
|
|
|
|
+ <a-form-model-item label="房间设施" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="facilities">
|
|
|
|
|
+ <a-checkbox-group :default-value="defvals" v-model="model.facilities" :options="checkOptions" />
|
|
|
|
|
+ </a-form-model-item>
|
|
|
|
|
+ <a-form-model-item label="取消规则" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="cancelRule">
|
|
|
|
|
+ <a-radio-group v-model="model.cancelRule">
|
|
|
|
|
+ <a-radio :style="radioStyle" :value="1">
|
|
|
|
|
+ <span style="display: inline-block;">
|
|
|
|
|
+ <span style="width: 76px;display:inline-block;">入住当天</span>
|
|
|
|
|
+ <span style="display: inline-block;width: 20px;height:1px;"></span>
|
|
|
|
|
+ <a-time-picker :open.sync="open1" v-model="beforeTime1" format="HH:mm">
|
|
|
|
|
+ <a-button slot="addon" size="small" type="primary" @click="open1 = false">
|
|
|
|
|
+ 确定
|
|
|
|
|
+ </a-button>
|
|
|
|
|
+ </a-time-picker>
|
|
|
|
|
+ <span>前可取消</span>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </a-radio>
|
|
|
|
|
+ <a-radio :style="radioStyle" :value="2">
|
|
|
|
|
+ <span style="display: inline-block;">
|
|
|
|
|
+ <span style="width: 76px;display:inline-block;">入住前</span>
|
|
|
|
|
+ <span style="display: inline-block;width: 20px;height:1px;"></span>
|
|
|
|
|
+ <a-input-number id="inputNumber" v-model="cancelDay1" :min="1" />
|
|
|
|
|
+ <span>天</span>
|
|
|
|
|
+ <a-time-picker :open.sync="open2" v-model="beforeTime2" format="HH:mm">
|
|
|
|
|
+ <a-button slot="addon" size="small" type="primary" @click="open2 = false">
|
|
|
|
|
+ 确定
|
|
|
|
|
+ </a-button>
|
|
|
|
|
+ </a-time-picker>
|
|
|
|
|
+ <span>前可取消</span>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </a-radio>
|
|
|
|
|
+ <a-radio :style="radioStyle" :value="3">
|
|
|
|
|
+ <span style="display: inline-block;">
|
|
|
|
|
+ <span style="width: 76px;display:inline-block;">入住前</span>
|
|
|
|
|
+ <span style="display: inline-block;width: 20px;height:1px;"></span>
|
|
|
|
|
+ <a-input-number id="inputNumber" v-model="cancelDay1" :min="1" />
|
|
|
|
|
+ <span>天</span>
|
|
|
|
|
+ <a-time-picker :open.sync="open2" v-model="beforeTime2" format="HH:mm">
|
|
|
|
|
+ <a-button slot="addon" size="small" type="primary" @click="open2 = false">
|
|
|
|
|
+ 确定
|
|
|
|
|
+ </a-button>
|
|
|
|
|
+ </a-time-picker>
|
|
|
|
|
+ <span>前可取消,</span>
|
|
|
|
|
+ <span>收取</span>
|
|
|
|
|
+ <a-input-number id="inputNumber" v-model="model.cancelMoney" :min="0" />
|
|
|
|
|
+ %罚金
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </a-radio>
|
|
|
|
|
+ <a-radio :style="radioStyle" :value="4">
|
|
|
|
|
+ 不可取消
|
|
|
|
|
+ </a-radio>
|
|
|
|
|
+ <a-radio :style="radioStyle" :value="5">
|
|
|
|
|
+ 可取消
|
|
|
|
|
+ </a-radio>
|
|
|
|
|
+ </a-radio-group>
|
|
|
|
|
+ </a-form-model-item>
|
|
|
|
|
+ <a-button :disabled="submitLoading" :loading="submitLoading" @click="submitForm"
|
|
|
|
|
+ type="primary">保存</a-button>
|
|
|
</a-form-model>
|
|
</a-form-model>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
export default {
|
|
export default {
|
|
|
- name: 'HotelSaasTenantFrontendRoomLayoutDevice',
|
|
|
|
|
|
|
+ name: 'HotelSaasTenantFrontendRoomLayoutDetail',
|
|
|
|
|
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
|
|
+ cancelDay1: 1,
|
|
|
|
|
+ cancelDay2: 1,
|
|
|
|
|
+ beforeTime1: null,
|
|
|
|
|
+ beforeTime2: null,
|
|
|
|
|
+ beforeTime3: null,
|
|
|
|
|
+ radioStyle: {
|
|
|
|
|
+ display: 'block',
|
|
|
|
|
+ height: '30px',
|
|
|
|
|
+ lineHeight: '30px',
|
|
|
|
|
+ },
|
|
|
|
|
+ open1: false,
|
|
|
|
|
+ open2: false,
|
|
|
|
|
+ open3: false,
|
|
|
|
|
+ submitLoading: false,
|
|
|
|
|
+ defvals: [],
|
|
|
|
|
+ checkOptions: [
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '有窗户',
|
|
|
|
|
+ value: '有窗户'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '无烟房',
|
|
|
|
|
+ value: '无烟房'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '空调',
|
|
|
|
|
+ value: '空调'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '洗衣机',
|
|
|
|
|
+ value: '洗衣机'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '大床',
|
|
|
|
|
+ value: '大床'
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ labelCol: {
|
|
|
|
|
+ xs: { span: 24 },
|
|
|
|
|
+ sm: { span: 5 },
|
|
|
|
|
+ },
|
|
|
|
|
+ wrapperCol: {
|
|
|
|
|
+ xs: { span: 24 },
|
|
|
|
|
+ sm: { span: 16 },
|
|
|
|
|
+ },
|
|
|
|
|
+ addIng: false,
|
|
|
|
|
+ addText: '',
|
|
|
model: {
|
|
model: {
|
|
|
-
|
|
|
|
|
|
|
+ id: null,
|
|
|
|
|
+ tags: [],
|
|
|
|
|
+ facilities: null,
|
|
|
|
|
+ cancelRule: null,
|
|
|
|
|
+ windows: null,
|
|
|
|
|
+ cancelBeforeTime: null,
|
|
|
|
|
+ cancelMoney: 0,
|
|
|
|
|
+ area: 0,
|
|
|
|
|
+ bedSize: 0,
|
|
|
|
|
+ remark: ''
|
|
|
},
|
|
},
|
|
|
validatorRules: {
|
|
validatorRules: {
|
|
|
-
|
|
|
|
|
|
|
+ windows: [{ required: true, message: "请选择是否有窗" }],
|
|
|
|
|
+ area: [{ required: true, message: "请填写通用面积" }],
|
|
|
|
|
+ bedSize: [{ required: true, message: "请填写床型面积" }],
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
mounted() {
|
|
mounted() {
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
methods: {
|
|
methods: {
|
|
|
-
|
|
|
|
|
|
|
+ onTagClose(item) {
|
|
|
|
|
+ delete this.model.tags[item]
|
|
|
|
|
+ },
|
|
|
|
|
+ addTag() {
|
|
|
|
|
+ this.addIng = true
|
|
|
|
|
+ this.addText = ''
|
|
|
|
|
+ },
|
|
|
|
|
+ onadd() {
|
|
|
|
|
+ if (!this.addText) {
|
|
|
|
|
+ this.$message.warning('请输入标签名')
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!this.model.tags.includes(this.addText)) {
|
|
|
|
|
+ this.model.tags.push(this.addText)
|
|
|
|
|
+ this.addIng = false
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.$message.warning(`已存在该标签`)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ },
|
|
|
|
|
+ submitForm() {
|
|
|
|
|
+ const that = this;
|
|
|
|
|
+ // 触发表单验证
|
|
|
|
|
+ this.$refs.form.validate((valid) => {
|
|
|
|
|
+ if (valid) {
|
|
|
|
|
+ that.confirmLoading = true;
|
|
|
|
|
+ if (this.model.id && this.model.id != '') {
|
|
|
|
|
+ this.doModify()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.doCreate()
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ },
|
|
|
|
|
+ onChange(item) {
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
},
|
|
},
|
|
|
};
|
|
};
|
|
|
</script>
|
|
</script>
|