MONSTER-ygh il y a 4 mois
Parent
commit
05a07b7200

+ 51 - 0
src/views/tourism/marketingActivities/detailsBox/eventManagementDetails.vue

@@ -102,6 +102,57 @@
                     @submitForm="()=>$refs.form.validateField('performVoList')">
                 </selectMoreBox>
               </el-form-item>
+              <el-form-item label="酒店房型:" prop="hotelVoList">
+                <selectMoreBox 
+                    v-model="form.hotelVoList"
+                    title="新增酒店房型" 
+                    listUrl="/goods/goodsHotel/pageList"
+                    nameKey="goodsName"
+                    selectKey="goodsName"
+                    :showKeys="['shopName','name']"
+                    showKeysJoin="-"
+                    idKey="id"
+                    :params="{
+                      goodsType: 5
+                    }"
+                    :isAdd="false"
+                    @submitForm="()=>$refs.form.validateField('hotelVoList')">
+                </selectMoreBox>
+              </el-form-item>
+              <el-form-item label="餐饮菜品:" prop="cateringVoList">
+                <selectMoreBox 
+                    v-model="form.cateringVoList"
+                    title="新增餐饮菜品" 
+                    listUrl="/merchant/merchantPerformAuditorium/shopGoodsList"
+                    nameKey="goodsName"
+                    selectKey="goodsName"
+                    idKey="goodsId"
+                    :showKeys="['shopName','name']"
+                    showKeysJoin="-"
+                    :params="{
+                      goodsType: 4
+                    }"
+                    :isAdd="false"
+                    @submitForm="()=>$refs.form.validateField('cateringVoList')">
+                </selectMoreBox>
+              </el-form-item>
+              <el-form-item label="文创商品:" prop="creativeVoList">
+                <selectMoreBox 
+                    v-model="form.creativeVoList"
+                    title="新增文创商品" 
+                    listUrl="/merchant/merchantPerformAuditorium/shopGoodsList"
+                    nameKey="goodsName"
+                    selectKey="goodsName"
+                    idKey="goodsId"
+                    :showKeys="['shopName','name']"
+                    showKeysJoin="-"
+                    :params="{
+                      goodsType: 3
+                    }"
+                    :isAdd="false"
+                    @submitForm="()=>$refs.form.validateField('creativeVoList')">
+                </selectMoreBox>
+              </el-form-item>
           </div>
         </el-form>
       </div>

+ 41 - 58
src/views/tourism/orderManagement/roomList/detailsBox/roomListDetails.vue

@@ -19,95 +19,80 @@
         element-loading-background="rgba(0, 0, 0, 0.8)"
         >
         <el-form :model="form" ref="form" :rules="rules" label-width="130px">
-          <div class="form-title"><span>单信息</span></div>
+          <div class="form-title"><span>单信息</span></div>
           <div style="display: flex;">
-            <el-form-item label="订单编号:">
-              <span style="display: inline-block;display: inline-block;width: 250px;">{{ form.id }}</span>
+            <el-form-item label="入住单号:">
+              <span style="display: inline-block;display: inline-block;width: 250px;">{{ form.orderNum }}</span>
             </el-form-item>
-            <el-form-item label="酒店名称:">
-              <span style="display: inline-block;display: inline-block;width: 250px;">{{ form.shopName }}</span>
+            <el-form-item label="预定单号:">
+              <span style="display: inline-block;display: inline-block;width: 250px;">{{ form.bookId }}</span>
             </el-form-item>
-            <el-form-item label="房型名称:">
-              <span style="display: inline-block;display: inline-block;width: 250px;">{{ form.goodsName }}</span>
+            <el-form-item label="酒店名称:">
+              <span style="display: inline-block;display: inline-block;width: 250px;">{{ form.hotelName }}</span>
             </el-form-item>
           </div>
           <div style="display: flex;">
-            <el-form-item label="预订数量:">
-              <span style="display: inline-block;display: inline-block;width: 250px;">{{ form.quantity }}间</span>
+            <el-form-item label="房号:">
+              <span style="display: inline-block;display: inline-block;width: 250px;">{{ form.room }}</span>
             </el-form-item>
-            <el-form-item label="房型单价(元):">
-              <span style="display: inline-block;width: 250px;">{{ form.salePrice }}</span>
+            <el-form-item label="房型:">
+              <span style="display: inline-block;width: 250px;">{{ form.roomClass }}</span>
             </el-form-item>
-            <el-form-item label="订单金额(元):">
-              <span style="display: inline-block;width: 250px;">{{ form.orderPrice }}</span>
+            <el-form-item label="入住价格(元):">
+              <span style="display: inline-block;width: 250px;">{{ form.price }}</span>
             </el-form-item>
           </div>
           <div style="display: flex;">
-            <el-form-item label="实付金额(元):">
-              <span style="display: inline-block;width: 250px;">{{ form.realPrice }}</span>
+            <el-form-item label="入住天数(天):">
+              <span style="display: inline-block;width: 250px;">{{ form.days }}</span>
             </el-form-item>
-            <el-form-item label="支付状态:">
+            <el-form-item label="入住类型:">
               <span style="display: inline-block;width: 250px;">
-                <dict-tag :options="dict.type.tourism_ticketOrders_payStatus" :value="form.payStatus"/>
+                {{ form.receiveInClass }}
               </span>
             </el-form-item>
-            <el-form-item label="支付方式:">
+            <el-form-item label="预授权:">
               <span style="display: inline-block;width: 250px;">
-                <dict-tag :options="dict.type.tourism_ticketOrders_payWay" :value="form.payWay"/>
+                {{ form.allYsq }}
               </span>
             </el-form-item>
           </div>
           <div style="display: flex;">
-            <el-form-item label="支付时间:">
-              <span style="display: inline-block;width: 250px;">{{ form.payTime }}</span>
+            <el-form-item label="总付押金(元):">
+              <span style="display: inline-block;width: 250px;">{{ form.allYj }}</span>
             </el-form-item>
-            <el-form-item label="订单状态:">
-              <span style="display: inline-block;width: 250px;">
-                <dict-tag :options="dict.type.tourism_ticketOrders_status" :value="form.orderStatus"/>
-              </span>
+            <el-form-item label="总消费(元):">
+              <span style="display: inline-block;width: 250px;">{{ form.allXf }}</span>
             </el-form-item>
-            <el-form-item label="下单日期:">
-              <span style="display: inline-block;width: 250px;">{{ form.createTime }}</span>
+            <el-form-item label="客人姓名:">
+              <span style="display: inline-block;width: 250px;">{{ form.guestName }}</span>
             </el-form-item>
           </div>
           <div style="display: flex;">
-            
-          </div>
-          <div style="display: flex;">
-            <el-form-item label="预定入住日期:">
-              <span style="display: inline-block;width: 250px;">{{ form.checkinStart }}</span>
+            <el-form-item label="联系电话:">
+              <span style="display: inline-block;width: 250px;">{{ form.tel }}</span>
             </el-form-item>
-            <el-form-item label="预定离店日期:">
-              <span style="display: inline-block;width: 250px;">{{ form.checkinEnd }}</span>
+            <el-form-item label="客类:">
+              <span style="display: inline-block;width: 250px;"><dict-tag :options="dict.type.yzy_cust_class" :value="form.theClass"/></span>
             </el-form-item>
-            <el-form-item label="预计到店时间:">
-              <span style="display: inline-block;width: 250px;">{{ form.reachTime }}</span>
+            <el-form-item label="状态:">
+              <dict-tag :options="dict.type.yzy_order_state" :value="form.state"/>
             </el-form-item>
           </div>
           <div style="display: flex;">
-            <el-form-item label="订单来源:">
-              <span style="display: inline-block;width: 250px;">
-                <dict-tag :options="dict.type.tourism_ticketOrders_source" :value="form.source"/>
-              </span>
+            <el-form-item label="抵店时间:">
+              <span style="display: inline-block;width: 250px;">{{ form.checkIn }}</span>
             </el-form-item>
-            <el-form-item label="联系人:">
-              <span style="display: inline-block;width: 250px;">{{ form.contactName }}</span>
-            </el-form-item>
-            <el-form-item label="联系电话:">
-              <span style="display: inline-block;width: 250px;">{{ form.contactMobile }}</span>
+            <el-form-item label="预定离店日期:">
+              <span style="display: inline-block;width: 250px;">{{ form.willLeave }}</span>
             </el-form-item>
           </div>
-          <div style="display: flex;">
-            <el-form-item v-if="form.orderStatus == 12" label="接单时间:">
-              <span style="display: inline-block;width: 250px;">{{ form.acceptTime }}</span>
-            </el-form-item>
-            <el-form-item v-if="form.orderStatus == 13" label="拒单时间:">
+
+          <!-- <div style="display: flex;">
+            <el-form-item v-if="form.orderStatus == 12" label="订单备注:">
               <span style="display: inline-block;width: 250px;">{{ form.acceptTime }}</span>
             </el-form-item>
-            <el-form-item v-if="form.orderStatus == 13" label="拒单说明:">
-              <span style="display: inline-block;width: 250px;">{{ form.remark }}</span>
-            </el-form-item>
-          </div>
+          </div> -->
         </el-form>
       </div>
     </div>
@@ -121,12 +106,10 @@
 <script>
 import { 
   getTableDeatilsByIdApi,
-  updateTableApi,
-  addTableApi
  } from '@/api/CURD'
 export default {
   name: "addAndEdit",
-  dicts: ['tourism_ticketOrders_source','tourism_ticketOrders_status','tourism_ticketOrders_payStatus','tourism_ticketOrders_payWay'],
+  dicts: ['yzy_order_state','yzy_cust_class'],
   data() {
     return {
       title: "",
@@ -138,7 +121,7 @@ export default {
       formStatus: null, // 0/null : 加载中 1 : 获取详情成功 2  : 获取详情失败 
       configUrl: {
         add: '', // 新增地址
-        details: '/order/orderInfo/hotelOrderDetail', // 详情地址
+        details: '/order/orderInfo/hotelYzyOrderDetail', // 详情地址
         edit: '', // 编辑地址
       },
       form: {

+ 0 - 303
src/views/tourism/orderManagement/roomList/formBox/cancelOrder.vue

@@ -1,303 +0,0 @@
-<template>
-  <el-dialog
-    :title="title"
-    :visible.sync="open"
-    width="40%"
-    append-to-body
-    :close-on-click-modal="false"
-    @close="cancel"
-  >
-    <div class="form-dialog-box"
-    v-loading="loading"
-    :element-loading-text="loadingText"
-    element-loading-spinner="el-icon-loading"
-    element-loading-background="rgba(0, 0, 0, 0)">
-      <div
-        v-loading="loading"
-        :element-loading-text="''"
-        element-loading-spinner="''"
-        element-loading-background="rgba(0, 0, 0, 0.8)"
-        >
-        <el-form :model="form" ref="form" :rules="rules" label-width="130px">
-          <el-form-item 
-          label="取消原因:" 
-          prop="closeReason">
-            <el-input 
-            style="width: 350px;"
-             v-model="form.closeReason" 
-             placeholder="请输入回复内容" 
-             maxlength="150" 
-             show-word-limit 
-             type="textarea"
-            :rows="6"
-             />
-          </el-form-item>
-        </el-form>
-      </div>
-    </div>
-    <span slot="footer" class="dialog-footer" v-if="formStatus==1">
-      <el-button @click="cancel">取消</el-button>
-      <el-button
-        type="primary"
-        @click="submitForm"
-        :loading="loading"
-        element-loading-text="提交中..."
-        element-loading-spinner="el-icon-loading"
-        element-loading-background="rgba(0, 0, 0, 0.8)"
-      > 
-        {{ loading ? '提交中...' : '确认' }}
-      </el-button>
-    </span>
-    <!-- 添加或修改对话框 End -->
-  </el-dialog>
-</template>
-
-<script>
-import { 
-  addTableApi
- } from '@/api/CURD'
-export default {
-  name: "repastOrderAccept",
-  data() {
-    return {
-      title: "",
-      activeName: 'first',
-      model: "", // EDIT: 编辑模式 ADD : 新增模式  EDITInit : 编辑模式(需要请求详情)
-      open: false,
-      loading: false,
-      loadingText: "拼命加载数据中...",
-      formStatus: null, // 0/null : 加载中 1 : 获取详情成功 2  : 获取详情失败 
-      configUrl: {
-        add: '/order/ordernfo/cancel', // 新增地址
-        details: '', // 详情地址
-        edit: '/order/ordernfo/cancel', // 编辑地址
-      },
-      form: {
-        id: undefined,
-      },
-      rules: {
-        closeReason: [{ required: false, message: "请输入取消原因", trigger: ["change","blur"] }],
-      },
-      scenicAreaProducts: [],// 景点产品关联
-
-      //  上传文件
-      actionUrl: process.env.VUE_APP_BASE_API + process.env.VUE_APP_UPLOAD_IMAGE,
-      actionUrlLoading: false,
-    };
-  },
-  methods: {
-    async initData(title , model,row){
-      this.title = title
-      this.open = true
-      this.loadingText = "拼命加载数据中..."
-      this.loading = true
-      this.actionUrlLoading = false
-      this.model = model
-      this.formStatus = 0
-      if(model=='ADD') { // 新增
-        this.$set(this,'form',{
-          ...row,
-        })
-        this.formStatus = 1
-      }else if(model=='EDIT') { // 新增
-        let obj = {
-          orderId: row.id,
-          closeReason: ''
-        }
-        this.$set(this,'form',obj)
-        this.formStatus = 1
-      }
-      this.loading = false
-      this.$nextTick(()=>{
-        if(this.$refs["form"]) {
-          this.$refs["form"].clearValidate();
-        }
-      })
-    },
-    /**
-     * 保存
-     * @date 2023-11-22
-     * @returns {any}
-     */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          this.loadingText = "提交数据中..."
-          this.loading = true
-          let params = JSON.parse(JSON.stringify(this.form))
-          addTableApi(this.configUrl.edit,{
-            ...params,
-          }).then(response => {
-              this.$modal.msgSuccess("发货成功");
-              this.loading = false
-              this.open = false;
-              this.$emit('refresh')
-          }).catch(()=>{
-              this.$message.error("发货失败!!!");
-              this.loading = false
-          })
-        }
-      });
-    },
-    /**
-     * 重置
-     * @date 2023-11-22
-     * @returns {any}
-     */
-    reset() {
-      if(this.$refs["form"]) {
-        this.$refs["form"].clearValidate();
-      }
-    },
-    /**
-     * 关闭弹框
-     * @date 2023-11-22
-     * @returns {any}
-     */
-    cancel() {
-      this.reset();
-      this.open = false;
-    },
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-.form-dialog-box {
-  padding: 0 30px;
-  padding: 0 30px;
-  min-height: 30vh;
-  max-height: 65vh;
-  overflow-y: auto;
-  >div {
-    width: 100%;
-    min-height: 30vh;
-  }
-  .form-title {
-    padding: 0 0 10px 0;
-    span {
-      display: flex;
-      color: rgba(65,80,88,1);
-      font-size: 16px;
-      font-family: SourceHanSansSC;
-      font-weight: 700;
-      line-height: 23px;
-      border-left: 4px solid rgb(22, 132, 252);
-      padding-left: 10px;
-    }
-    
-  }
-  ::v-deep .ql-editor {
-    height: 400px;
-  }
-  .upload-btn {
-    width: 100px;
-    height: 100px;
-    background-color: #fbfdff;
-    border: dashed 1px #c0ccda;
-    border-radius: 5px;
-    i {
-      font-size: 30px;
-      margin-top: 20px;
-    }
-    &-text {
-      margin-top: -10px;
-    }
-  }
-  .avatar {
-    cursor: pointer;
-  }
-}
-.el-table{
-  .upload-btn {
-    width: 100px;
-    height: 100px;
-    background-color: #fbfdff;
-    border: dashed 1px #c0ccda;
-    border-radius: 5px;
-    i {
-      font-size: 30px;
-      margin-top: 20px;
-    }
-    &-text {
-      margin-top: -10px;
-    }
-  }
-  .avatar {
-    cursor: pointer;
-  }
-}
-
-.area-container {
-  min-height: 400px;
-}
-
-::v-deep .area-wrap-city.el-cascader {
-  line-height: normal;
-  .el-input {
-    cursor: pointer;
-    width: 100% !important;
-    height: 28px !important;
-    .el-input__inner {
-      display: none !important;
-    }
-    span.el-input__suffix {
-      position: inherit !important;
-      i.el-input__icon {
-        line-height: inherit;
-        margin-left: 5px;
-      }
-    }
-
-    .el-input__wrapper {
-      box-shadow: none;
-      input {
-        display: none;
-      }
-    }
-  }
-
-  .el-cascader__tags {
-    display: none;
-  }
-}
-
-.area-city-popper {
-  .el-cascader-panel {
-    .el-scrollbar.el-cascader-menu {
-      .el-cascader-menu__wrap.el-scrollbar__wrap {
-        height: 315px;
-      }
-    }
-  }
-}
-
-::v-deep .avatar-uploader .el-upload {
-    border: 1px dashed #d9d9d9;
-    border-radius: 6px;
-    cursor: pointer;
-    position: relative;
-    overflow: hidden;
-  }
-  ::v-deep .avatar-uploader .el-upload:hover {
-    border-color: #409EFF;
-  }
-  ::v-deep .avatar-uploader-icon {
-    font-size: 28px;
-    color: #8c939d;
-    width: 100px;
-    height: 100px;
-    line-height: 100px;
-    text-align: center;
-  }
-  ::v-deep .avatar {
-    width: 100px;
-    height: 100px;
-    display: block;
-  }
-</style>
-<style>
-.custom-class-box {
-  z-index: 999999 !important;
-}
-</style>

+ 0 - 309
src/views/tourism/orderManagement/roomList/formBox/repastOrderAccept.vue

@@ -1,309 +0,0 @@
-<template>
-  <el-dialog
-    :title="title"
-    :visible.sync="open"
-    width="40%"
-    append-to-body
-    :close-on-click-modal="false"
-    @close="cancel"
-  >
-    <div class="form-dialog-box"
-    v-loading="loading"
-    :element-loading-text="loadingText"
-    element-loading-spinner="el-icon-loading"
-    element-loading-background="rgba(0, 0, 0, 0)">
-      <div
-        v-loading="loading"
-        :element-loading-text="''"
-        element-loading-spinner="''"
-        element-loading-background="rgba(0, 0, 0, 0.8)"
-        >
-        <el-form :model="form" ref="form" :rules="rules" label-width="130px">
-          <el-form-item 
-          :label="`${form.status == 12 ? '接单' : '拒单'}回复:`" 
-          prop="remark">
-            <el-input 
-            style="width: 350px;"
-             v-model="form.remark" 
-             placeholder="请输入回复内容" 
-             maxlength="150" 
-             show-word-limit 
-             type="textarea"
-            :rows="6"
-             />
-          </el-form-item>
-        </el-form>
-      </div>
-    </div>
-    <span slot="footer" class="dialog-footer" v-if="formStatus==1">
-      <el-button @click="cancel">取消</el-button>
-      <el-button
-        type="primary"
-        @click="submitForm"
-        :loading="loading"
-        element-loading-text="提交中..."
-        element-loading-spinner="el-icon-loading"
-        element-loading-background="rgba(0, 0, 0, 0.8)"
-      > 
-        {{ loading ? '提交中...' : '确认' }}
-      </el-button>
-    </span>
-    <!-- 添加或修改对话框 End -->
-  </el-dialog>
-</template>
-
-<script>
-import { 
-  addTableApi
- } from '@/api/CURD'
-export default {
-  name: "repastOrderAccept",
-  data() {
-    return {
-      title: "",
-      activeName: 'first',
-      model: "", // EDIT: 编辑模式 ADD : 新增模式  EDITInit : 编辑模式(需要请求详情)
-      open: false,
-      loading: false,
-      loadingText: "拼命加载数据中...",
-      formStatus: null, // 0/null : 加载中 1 : 获取详情成功 2  : 获取详情失败 
-      configUrl: {
-        add: '/order/orderInfo/repastOrderAccept', // 新增地址
-        details: '', // 详情地址
-        edit: '/order/orderInfo/repastOrderAccept', // 编辑地址
-      },
-      form: {
-        id: undefined,
-      },
-      rules: {
-        remark: [{ required: true, message: "请输入回复内容", trigger: ["change","blur"] }],
-      },
-      scenicAreaProducts: [],// 景点产品关联
-
-      //  上传文件
-      actionUrl: process.env.VUE_APP_BASE_API + process.env.VUE_APP_UPLOAD_IMAGE,
-      actionUrlLoading: false,
-    };
-  },
-  methods: {
-    async initData(title , model,row){
-      this.title = title
-      this.open = true
-      this.loadingText = "拼命加载数据中..."
-      this.loading = true
-      this.actionUrlLoading = false
-      this.model = model
-      this.formStatus = 0
-      if(model=='ADD') { // 新增
-        this.$set(this,'form',{
-          ...row,
-        })
-        this.formStatus = 1
-      }else if(model=='EDIT') { // 新增
-        if(row.repastOrderAcceptType == 12) {
-          this.rules.remark[0].required = false
-        }else {
-          this.rules.remark[0].required = true
-        }
-        let obj = {
-          id: row.id,
-          status: row.repastOrderAcceptType,
-          remark: ''
-        }
-        this.$set(this,'form',obj)
-        this.formStatus = 1
-      }
-      this.loading = false
-      this.$nextTick(()=>{
-        if(this.$refs["form"]) {
-          this.$refs["form"].clearValidate();
-        }
-      })
-    },
-    /**
-     * 保存
-     * @date 2023-11-22
-     * @returns {any}
-     */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          this.loadingText = "提交数据中..."
-          this.loading = true
-          let params = JSON.parse(JSON.stringify(this.form))
-          addTableApi(this.configUrl.edit,{
-            ...params,
-          }).then(response => {
-              this.$modal.msgSuccess("发货成功");
-              this.loading = false
-              this.open = false;
-              this.$emit('refresh')
-          }).catch(()=>{
-              this.$message.error("发货失败!!!");
-              this.loading = false
-          })
-        }
-      });
-    },
-    /**
-     * 重置
-     * @date 2023-11-22
-     * @returns {any}
-     */
-    reset() {
-      if(this.$refs["form"]) {
-        this.$refs["form"].clearValidate();
-      }
-    },
-    /**
-     * 关闭弹框
-     * @date 2023-11-22
-     * @returns {any}
-     */
-    cancel() {
-      this.reset();
-      this.open = false;
-    },
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-.form-dialog-box {
-  padding: 0 30px;
-  padding: 0 30px;
-  min-height: 30vh;
-  max-height: 65vh;
-  overflow-y: auto;
-  >div {
-    width: 100%;
-    min-height: 30vh;
-  }
-  .form-title {
-    padding: 0 0 10px 0;
-    span {
-      display: flex;
-      color: rgba(65,80,88,1);
-      font-size: 16px;
-      font-family: SourceHanSansSC;
-      font-weight: 700;
-      line-height: 23px;
-      border-left: 4px solid rgb(22, 132, 252);
-      padding-left: 10px;
-    }
-    
-  }
-  ::v-deep .ql-editor {
-    height: 400px;
-  }
-  .upload-btn {
-    width: 100px;
-    height: 100px;
-    background-color: #fbfdff;
-    border: dashed 1px #c0ccda;
-    border-radius: 5px;
-    i {
-      font-size: 30px;
-      margin-top: 20px;
-    }
-    &-text {
-      margin-top: -10px;
-    }
-  }
-  .avatar {
-    cursor: pointer;
-  }
-}
-.el-table{
-  .upload-btn {
-    width: 100px;
-    height: 100px;
-    background-color: #fbfdff;
-    border: dashed 1px #c0ccda;
-    border-radius: 5px;
-    i {
-      font-size: 30px;
-      margin-top: 20px;
-    }
-    &-text {
-      margin-top: -10px;
-    }
-  }
-  .avatar {
-    cursor: pointer;
-  }
-}
-
-.area-container {
-  min-height: 400px;
-}
-
-::v-deep .area-wrap-city.el-cascader {
-  line-height: normal;
-  .el-input {
-    cursor: pointer;
-    width: 100% !important;
-    height: 28px !important;
-    .el-input__inner {
-      display: none !important;
-    }
-    span.el-input__suffix {
-      position: inherit !important;
-      i.el-input__icon {
-        line-height: inherit;
-        margin-left: 5px;
-      }
-    }
-
-    .el-input__wrapper {
-      box-shadow: none;
-      input {
-        display: none;
-      }
-    }
-  }
-
-  .el-cascader__tags {
-    display: none;
-  }
-}
-
-.area-city-popper {
-  .el-cascader-panel {
-    .el-scrollbar.el-cascader-menu {
-      .el-cascader-menu__wrap.el-scrollbar__wrap {
-        height: 315px;
-      }
-    }
-  }
-}
-
-::v-deep .avatar-uploader .el-upload {
-    border: 1px dashed #d9d9d9;
-    border-radius: 6px;
-    cursor: pointer;
-    position: relative;
-    overflow: hidden;
-  }
-  ::v-deep .avatar-uploader .el-upload:hover {
-    border-color: #409EFF;
-  }
-  ::v-deep .avatar-uploader-icon {
-    font-size: 28px;
-    color: #8c939d;
-    width: 100px;
-    height: 100px;
-    line-height: 100px;
-    text-align: center;
-  }
-  ::v-deep .avatar {
-    width: 100px;
-    height: 100px;
-    display: block;
-  }
-</style>
-<style>
-.custom-class-box {
-  z-index: 999999 !important;
-}
-</style>

+ 42 - 58
src/views/tourism/orderManagement/roomList/roomList.vue

@@ -4,46 +4,46 @@
         <!--用户数据-->
         <el-col :span="24" :xs="24">
             <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
-                <el-form-item label="房单号:" prop="id">
+                <el-form-item label="房单号:" prop="orderNum">
                     <el-input
-                        v-model="queryParams.id"
+                        v-model="queryParams.orderNum"
                         placeholder="请输入房单号"
                         clearable
                         style="width: 240px"
                         @keyup.enter.native="handleQuery"
                     />
                 </el-form-item>
-                <el-form-item label="酒店名称:" prop="shopName">
-                    <el-select v-model="queryParams.shopName" clearable placeholder="请输入选择酒店">
+                <el-form-item label="酒店名称:" prop="shopId">
+                    <el-select v-model="queryParams.shopId" clearable placeholder="请输入酒店/民宿名称">
                       <el-option
                       v-for="item in hotelsList"
                       :key="item.id"
-                      :label="item.name"
-                      :value="item.name">
+                      :label="item.hotelName"
+                      :value="item.id">
                       </el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item label="房型:" prop="goodsName">
+                <el-form-item label="房型:" prop="roomClass">
                     <el-input
-                        v-model="queryParams.goodsName"
+                        v-model="queryParams.roomClass"
                         placeholder="请输入房型"
                         clearable
                         style="width: 240px"
                         @keyup.enter.native="handleQuery"
                     />
                 </el-form-item>
-                <el-form-item label="联系人:" prop="contactName">
+                <el-form-item label="联系人:" prop="guestName">
                     <el-input
-                        v-model="queryParams.contactName"
+                        v-model="queryParams.guestName"
                         placeholder="请输入联系人"
                         clearable
                         style="width: 240px"
                         @keyup.enter.native="handleQuery"
                     />
                 </el-form-item>
-                <el-form-item label="联系电话:" prop="contactMobile" label-width="110px">
+                <el-form-item label="联系电话:" prop="tel" label-width="110px">
                     <el-input
-                        v-model="queryParams.contactMobile"
+                        v-model="queryParams.tel"
                         placeholder="请输入联系电话"
                         clearable
                         style="width: 240px"
@@ -60,20 +60,20 @@
                     end-placeholder="结束日期">
                   </el-date-picker>
                 </el-form-item>
-                <el-form-item label="订单状态" prop="status">
-                  <el-select v-model="queryParams.status" clearable placeholder="请选择订单状态">
+                <el-form-item label="订单状态" prop="state">
+                  <el-select v-model="queryParams.state" clearable placeholder="请选择订单状态">
                       <el-option
-                          v-for="dict in dict.type.tourism_ticketOrders_status"
+                          v-for="dict in dict.type.yzy_order_state"
                           :key="dict.value"
                           :label="dict.label"
                           :value="dict.value">
                       </el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item label="客类" prop="payStatus">
-                  <el-select v-model="queryParams.payStatus" clearable placeholder="请选择客类">
+                <el-form-item label="客类" prop="theClass">
+                  <el-select v-model="queryParams.theClass" clearable placeholder="请选择客类">
                       <el-option
-                          v-for="dict in dict.type.tourism_ticketOrders_payStatus"
+                          v-for="dict in dict.type.yzy_cust_class"
                           :key="dict.value"
                           :label="dict.label"
                           :value="dict.value">
@@ -102,31 +102,26 @@
 
           <el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange">
             <el-table-column type="index" label="序号" align="center"  />
-            <el-table-column label="房单号" align="center" key="id" prop="id" v-if="columns[0].visible" :show-overflow-tooltip="true" />
-            <el-table-column label="酒店名称" align="center" key="shopName" prop="shopName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
-            <el-table-column label="房号" align="center" key="goodsName" prop="goodsName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
-            <el-table-column label="房型" align="center" key="goodsName1" prop="goodsName1" v-if="columns[3].visible" :show-overflow-tooltip="true" />
-            <el-table-column label="入住价格" align="center" key="quantity" prop="quantity" v-if="columns[4].visible" :show-overflow-tooltip="true" />
-            <el-table-column label="入住天数" align="center" key="realPrice" prop="realPrice" v-if="columns[5].visible" :show-overflow-tooltip="true" />
-            <el-table-column label="入住类型" align="center" key="payStatus" prop="payStatus" v-if="columns[6].visible" :show-overflow-tooltip="true">
+            <el-table-column label="房单号" align="center" key="orderNum" prop="orderNum" v-if="columns[0].visible" :show-overflow-tooltip="false" />
+            <el-table-column label="酒店名称" align="center" key="hotelName" prop="hotelName" v-if="columns[1].visible" :show-overflow-tooltip="false" />
+            <el-table-column label="房号" align="center" key="room" prop="room" v-if="columns[2].visible" :show-overflow-tooltip="true" />
+            <el-table-column label="房型" align="center" key="roomClass" prop="roomClass" v-if="columns[3].visible" :show-overflow-tooltip="false" />
+            <el-table-column label="入住价格(元)" align="center" key="price" prop="price" v-if="columns[4].visible" :show-overflow-tooltip="true" />
+            <el-table-column label="入住天数(天)" align="center" key="days" prop="days" v-if="columns[5].visible" :show-overflow-tooltip="true" />
+            <el-table-column label="入住类型" align="center" key="receiveInClass" prop="receiveInClass" v-if="columns[6].visible" :show-overflow-tooltip="true" />
+            <el-table-column label="预授权" align="center" key="allYsq" prop="allYsq" v-if="columns[7].visible"></el-table-column>
+            <el-table-column label="总付押金" align="center" key="allYj" prop="allYj" v-if="columns[8].visible"></el-table-column>
+            <el-table-column label="总消费" align="center" key="allXf" prop="allXf" v-if="columns[9].visible"></el-table-column>
+            <el-table-column label="客人姓名" align="center" key="guestName" prop="guestName" v-if="columns[10].visible"></el-table-column>
+            <el-table-column label="联系电话" align="center" key="tel" prop="tel" v-if="columns[11].visible"></el-table-column>
+            <el-table-column label="客类" align="center" key="theClass" prop="theClass" v-if="columns[12].visible">
               <template slot-scope="scope">
-                <dict-tag :options="dict.type.tourism_ticketOrders_payStatus" :value="scope.row.payStatus"/>
+                <dict-tag :options="dict.type.yzy_cust_class" :value="scope.row.theClass"/>
               </template>
             </el-table-column>
-            <el-table-column label="预授权" align="center" key="contactName" prop="contactName" v-if="columns[7].visible"></el-table-column>
-            <el-table-column label="总付押金" align="center" key="contactName1" prop="contactName1" v-if="columns[8].visible"></el-table-column>
-            <el-table-column label="总消费" align="center" key="contactName12" prop="contactName12" v-if="columns[9].visible"></el-table-column>
-            <el-table-column label="客人姓名" align="center" key="contactName13" prop="contactName13" v-if="columns[10].visible"></el-table-column>
-            <el-table-column label="联系电话" align="center" key="contactMobile" prop="contactMobile" v-if="columns[11].visible"></el-table-column>
-            <el-table-column label="下单时间" align="center" key="createTime" prop="createTime" v-if="columns[12].visible"></el-table-column>
-            <el-table-column label="客类" align="center" key="source" prop="source" v-if="columns[13].visible">
+            <el-table-column label="状态" align="center" key="state" prop="state" v-if="columns[13].visible">
               <template slot-scope="scope">
-                <dict-tag :options="dict.type.tourism_ticketOrders_source" :value="scope.row.source"/>
-              </template>
-            </el-table-column>
-            <el-table-column label="状态" align="center" key="orderStatus" prop="orderStatus" v-if="columns[14].visible">
-              <template slot-scope="scope">
-                <dict-tag :options="dict.type.tourism_ticketOrders_status" :value="scope.row.orderStatus"/>
+                <dict-tag :options="dict.type.yzy_order_state" :value="scope.row.state"/>
               </template>
             </el-table-column>
             <el-table-column
@@ -181,10 +176,6 @@
       </el-row>
       <!--  详情   -->
       <detailsBox ref="detailsBox" @refresh="getList"></detailsBox>
-      <!-- 发货  -->
-      <repastOrderAccept ref="repastOrderAccept" @refresh="getList"></repastOrderAccept>
-      <!--  取消订单 -->
-      <cancelOrder ref="cancelOrder" @refresh="getList"></cancelOrder>
     </div>
   </template>
 
@@ -194,15 +185,13 @@
     delTableParamsApi,
   } from "@/api/CURD";
   import detailsBox from "./detailsBox/roomListDetails.vue"
-  import repastOrderAccept from "./formBox/repastOrderAccept.vue";
-  import cancelOrder from "./formBox/cancelOrder.vue";
   export default {
     name: "User",
-    dicts: ['tourism_ticketOrders_source','tourism_ticketOrders_status','tourism_ticketOrders_payStatus','tourism_ticketOrders_payWay'],
-    components: {detailsBox,repastOrderAccept,cancelOrder},
+    dicts: ['yzy_order_state','yzy_cust_class'],
+    components: {detailsBox},
     data() {
       return {
-        title: "酒店订单",// 通用标题
+        title: "房单订单",// 通用标题
         configPermi: {
           add: [''], // 新增权限
           details: ['orderManagement:roomList:details'], // 详情权限
@@ -214,14 +203,14 @@
           cancelOrder: ['orderManagement:roomList:cancelOrder']
         },
         configUrl: {
-          list: '/order/orderInfo/hotelOrderList', // 列表地址
+          list: '/order/orderInfo/hotelYzyOrderList', // 列表地址
           delect: '', // 删除地址
           upload: '',// 导入地址
           download:'', // 下载模板地址
           export: '/order/orderInfo/hotelOrderListExport',// 导出地址
           updateStatusById: '',
           repastOrderAccept: '/order/orderInfo/repastOrderAccept', //  接单/拒单
-          hotelsList: '/merchant/merchantShop/pageList'
+          hotelsList: '/merchant/merchantShop/selectList'
         },
         // 遮罩层
         loading: true,
@@ -257,7 +246,6 @@
           { key: 6, label: `总消费(元)`, visible: true },
           { key: 7, label: `客人姓名`, visible: true },
           { key: 8, label: `联系电话`, visible: true },
-          { key: 9, label: `下单时间`, visible: true },
           { key: 10, label: `客类`, visible: true },
           { key: 11, label: `状态`, visible: true },
         ],
@@ -278,7 +266,7 @@
             pageNum: 1,
             pageSize: 9999
           }).then(response => {
-            this.hotelsList = response.data.rows;
+            this.hotelsList = response.data;
           }
         ).catch (error=>{
           this.hotelsList = []
@@ -305,12 +293,8 @@
       paramsFormat(data,isPage) {
         let params = JSON.parse(JSON.stringify({
           ...data,
-          createBeginTime: data.createTime&&data.createTime[0]?data.createTime[0]:null,
-          createEndTime: data.createTime&&data.createTime[1]?data.createTime[1]:null,
-
-          payBeginTime: data.payTime&&data.payTime[0]?data.payTime[0]:null,
-          payEndTime: data.payTime&&data.payTime[1]?data.payTime[1]:null,
-          
+          beginTime: data.createTime&&data.createTime[0]?data.createTime[0]:null,
+          endTime: data.createTime&&data.createTime[1]?data.createTime[1]:null,       
         }))
         delete params.createTime;
         delete params.payTime;

+ 46 - 3
src/views/tourism/productManagement/formBox/cateringManagementForm.vue

@@ -148,6 +148,35 @@
                   end-placeholder="结束时间"
                   placeholder="选择时间范围">
                 </el-time-picker>
+                <!-- <div 
+                style="display: flex;margin-bottom: 10px;"
+                v-for="(timeItem, timeIndex) in form.closeTimeList" 
+                :key="`${timeIndex}-time`">
+                  <el-form-item 
+                  :prop="'times.' + timeIndex + '.timeStart'" 
+                  :rules="{ required: true, message: '开始时间不能为空', trigger: ['change', 'blur'] }">
+                    <el-time-picker 
+                    clearable 
+                    value-format="HH:mm:ss" 
+                    format="HH:mm:ss" 
+                    v-model="timeItem.timeStart" 
+                    ></el-time-picker>
+                  </el-form-item>
+                  <span style="margin: 0 16px;">至</span>
+                  <el-form-item 
+                  :prop="'times.' + timeIndex + '.timeEnd'" 
+                  :rules="{ required: true, message: '结束时间不能为空', trigger: ['change', 'blur'] }">
+                    <el-time-picker 
+                    clearable 
+                    value-format="HH:mm:ss" 
+                    format="HH:mm:ss" 
+                    v-model="timeItem.timeEnd" 
+                    ></el-time-picker>
+                  </el-form-item>
+                  <el-button style="margin-left: 10px;" type="primary" v-if="form.closeTimeList.length-1 == timeIndex" @click="addCloseTimeList">添加</el-button>
+                  <el-button :style="{marginLeft: timeIndex< form.closeTimeList.length-1? '20px':'10px'}" type="danger" @click="clearCloseTimeList(timeItem)">移除</el-button>
+                </div>
+                <el-button type="primary" v-if="form.closeTimeList.length == 0" @click="addCloseTimeList">添加</el-button> -->
               </el-form-item>
               <el-form-item label="关店节假日时间:" prop="holiday">
                 <el-date-picker
@@ -290,6 +319,7 @@ import {
  } from '@/api/CURD'
 import Editor from "@/components/Editor";
 import qqMapBox from '@/myComponents/qqMap.vue'
+import { time } from 'echarts';
 export default {
   name: "addAndEdit",
   dicts: ['tourism_online_status','tourism_online_type'],
@@ -313,7 +343,8 @@ export default {
         shopAdvImgs: [],
         shopLabel: [],
         cancelOrderFlag: '-1',
-        closeTime: []
+        closeTime: [],
+        closeTimeList: []
       },
       rules: {
         name: [{ required: true, message: "请输入门店名称", trigger: ["change","blur"] }],
@@ -360,7 +391,8 @@ export default {
           shopLabel: [],
           cancelOrderFlag: '-1',
           closeTime: [],
-          holiday: []
+          holiday: [],
+          closeTimeList: []
         })
         this.formStatus = 1
         this.$nextTick(()=>{
@@ -395,7 +427,8 @@ export default {
           let obj = {
             ...res.data,
             shopAdvImgs: res.data.shopAdvImgs ? res.data.shopAdvImgs.split(',') : [],
-            shopLabel: res.data.shopLabel ? res.data.shopLabel.split(',') : []
+            shopLabel: res.data.shopLabel ? res.data.shopLabel.split(',') : [],
+            closeTimeList: []
           }
           if(obj.cancelOrderFlag == 0) {
             obj.cancelOrderFlag = '-1'
@@ -651,6 +684,16 @@ export default {
     setDot(params){
       this.$set(this.form,'longitude',params.lng)
       this.$set(this.form,'latitude',params.lat)
+    },
+
+    addCloseTimeList() {
+      this.form.closeTimeList.push({
+        timeStart: null,
+        timeEnd: null
+      })
+    },
+    clearCloseTimeList(index) {
+      this.form.closeTimeList.splice(index,1)
     }
   },
   watch: {