qh 2 年之前
父节点
当前提交
b8febc6e6d
共有 1 个文件被更改,包括 244 次插入16 次删除
  1. 244 16
      src/views/settings/components/roomModules/allDaysRoomFeeRule.vue

+ 244 - 16
src/views/settings/components/roomModules/allDaysRoomFeeRule.vue

@@ -9,9 +9,10 @@
         :rules="validatorRules"
         slot="detail"
       >
+        <!-- 1 -->
         <div class="item-wrapper">
           <div class="wrapper-content">1、进店时间在</div>
-          <div class="wrapper-form-item">
+          <div class="wrapper-form-item" style="width: 128px">
             <a-form-model-item
               label=""
               :labelCol="labelCol"
@@ -39,20 +40,191 @@
           </div>
         </div>
 
-        <a-form-model-item
-          label=""
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          prop="ass"
-        >
-          <a-input v-model="model.ass"></a-input>
-        </a-form-model-item>
+        <!-- 2 -->
+        <div class="item-wrapper">
+          <div class="wrapper-content">2、全天房中午退房时间</div>
+          <div class="wrapper-form-item">
+            <a-form-model-item
+              label=""
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="leaveTime"
+            >
+              <a-time-picker
+                :open.sync="open2"
+                v-model="model.leaveTime"
+                format="HH:mm"
+              >
+                <a-button
+                  slot="addon"
+                  size="small"
+                  type="primary"
+                  @click="open2 = false"
+                >
+                  确定
+                </a-button>
+              </a-time-picker>
+            </a-form-model-item>
+          </div>
+          <div class="wrapper-content">,超时则</div>
+          <div class="wrapper-form-item">
+            <a-form-model-item
+              label=""
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="timeOutRule"
+            >
+              <a-select
+                default-value="1"
+                style="width: 150px"
+                v-model="model.timeOutRule"
+              >
+                <a-select-option
+                  :value="item.value"
+                  v-for="item in rulesMap"
+                  :key="item.value"
+                >
+                  {{ item.name }}
+                </a-select-option>
+              </a-select>
+            </a-form-model-item>
+          </div>
+          <div class="wrapper-content">,直到</div>
+          <div class="wrapper-form-item">
+            <a-form-model-item
+              label=""
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="endTime"
+            >
+              <a-time-picker
+                :open.sync="open3"
+                v-model="model.endTime"
+                format="HH:mm"
+              >
+                <a-button
+                  slot="addon"
+                  size="small"
+                  type="primary"
+                  @click="open3 = false"
+                >
+                  确定
+                </a-button>
+              </a-time-picker>
+            </a-form-model-item>
+          </div>
+          <div class="wrapper-content">,加收全天房费</div>
+        </div>
+
+        <!-- 按分钟加收规则 -->
+        <div v-if="model.timeOutRule == 1">
+          <a-form-model-item
+            label=""
+            :labelCol="labelCol"
+            :wrapperCol="wrapperCol"
+            prop="ruleType"
+          >
+            <a-radio-group
+              name="radioGroup"
+              :default-value="1"
+              v-model="model.ruleType"
+            >
+              <a-radio :value="1"> 统一设置 </a-radio>
+              <a-radio :value="2"> 根据房型设置 </a-radio>
+            </a-radio-group>
+          </a-form-model-item>
+          <!-- 统一配置分钟房费加收 -->
+          <div class="item-wrapper" v-if="model.timeOutRule == 1 && model.ruleType == 1">
+            <div class="wrapper-content">超时之后,每隔</div>
+            <div class="wrapper-form-item" style="width: 98px">
+              <a-form-model-item
+                label=""
+                :labelCol="labelCol"
+                :wrapperCol="wrapperCol"
+                prop="minute"
+              >
+                <a-input-number :min="1" v-model="model.minute"></a-input-number>
+              </a-form-model-item>
+            </div>
+            <div class="wrapper-content">
+              分钟收取
+            </div>
+            <div class="wrapper-form-item" style="width: 98px">
+              <a-form-model-item
+                label=""
+                :labelCol="labelCol"
+                :wrapperCol="wrapperCol"
+                prop="price"
+              >
+                <a-input-number :min="0" v-model="model.price"></a-input-number>
+              </a-form-model-item>
+            </div>
+            <div class="wrapper-content">
+              元,不足 {{ model.minute }} 分钟,超过
+            </div>
+            <div class="wrapper-form-item" style="width: 98px">
+              <a-form-model-item
+                label=""
+                :labelCol="labelCol"
+                :wrapperCol="wrapperCol"
+                prop="moreThenMinute"
+              >
+                <a-input-number :min="0" v-model="model.moreThenMinute"></a-input-number>
+              </a-form-model-item>
+            </div>
+            <div class="wrapper-content">
+              分钟加收
+            </div>
+            <div class="wrapper-form-item" style="width: 98px">
+              <a-form-model-item
+                label=""
+                :labelCol="labelCol"
+                :wrapperCol="wrapperCol"
+                prop="moreThenPrice"
+              >
+                <a-input-number :min="0" v-model="model.moreThenPrice"></a-input-number>
+              </a-form-model-item>
+            </div>
+            <div class="wrapper-content">
+              元。
+            </div>
+          </div>
+          <!-- 按房型配置分钟房费加收 -->
+          <div class="item-wrapper" v-if="model.timeOutRule == 1 && model.ruleType == 2">
+
+          </div>
+        </div>
+
+        <!-- 3 -->
+        <div class="item-wrapper">
+          <div class="wrapper-content">3、全天房超过退房时间可以再宽限</div>
+          <div class="wrapper-form-item" style="width: 98px">
+            <a-form-model-item
+              label=""
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="dayTime"
+            >
+              <a-input-number
+                v-model="model.dayTime"
+                style="width: 100px"
+              ></a-input-number>
+            </a-form-model-item>
+          </div>
+          <div class="wrapper-content">分钟</div>
+        </div>
+        <div class="buttons">
+          <a-button style="margin-right: 10px" @click="reload">刷新</a-button>
+          <a-button type="primary" @click="save">保存</a-button>
+        </div>
       </a-form-model>
     </j-form-container>
   </a-spin>
 </template>
 
 <script>
+import { fetch } from "@/api/allDaysPriceRuleApi";
+import { getAllLayouts } from '@/api/roomLayout'
 export default {
   data() {
     return {
@@ -65,30 +237,86 @@ export default {
         sm: { span: 24 },
       },
       open1: false,
+      open2: false,
+      open3: false,
       enterTime: "",
       confirmLoading: false,
+      rulesMap: [
+        {
+          name: "按分钟加收房费",
+          value: 1,
+        },
+        {
+          name: "按半天房费加收",
+          value: 2,
+        },
+
+        {
+          name: "不加收房费",
+          value: 3,
+        },
+      ],
+      layouts: [],
       model: {
         enterTime: null,
-        ass: null,
+        timeOutRule: 1,
+        leaveTime: null,
+        endTime: null,
+        dayTime: null,
+        ruleType: 1,
+        layoutRules: [],
+        minute: null,
+        price: null,
+        moreThenMinute: null,
+        moreThenPrice: null
       },
       validatorRules: {
         enterTime: [
           {
             required: true,
-            message: "进!",
+            message: "进店时间在多少分钟之后的,算第二天退房不能为空!",
           },
         ],
-        ass: [{ required: true, message: "测试" }],
+        leaveTime: [{ required: true, message: "退房时间不能为空" }],
+        dayTime: [{ required: true, message: "超时宽限多少分钟不能为空" }],
       },
     };
   },
+  mounted() {
+    this.loadLayouts()
+    this.loadRules();
+  },
+  methods: {
+    loadLayouts() {
+        getAllLayouts().then(res => {
+            if(res.code == 200) {
+                res.result.records.forEach
+                this.layouts = res.result.records
+            } 
+        })
+    },
+    loadRules() {
+      fetch().then((res) => {});
+    },
+    reload() {},
+    save() {},
+  },
 };
 </script>
 
 <style lang="css" scoped>
-.item-wrapper{
-    display: flex;
-    align-items: center;
-    height: 50px;
+/deep/ .ant-form-explain {
+  width: 300% !important;
+}
+.item-wrapper {
+  display: flex;
+  align-items: center;
+  height: 50px;
+  margin-top: 22px;
+  margin-bottom: 22px;
+}
+.wrapper-form-item {
+  height: 38px;
+  /* margin-top: 22px; */
 }
 </style>