hzj18279462576@163.com 2 tahun lalu
induk
melakukan
b1403573f4

+ 1 - 1
index.html

@@ -2,7 +2,7 @@
 <html lang="zh">
 <html lang="zh">
   <head>
   <head>
     <meta charset="UTF-8" />
     <meta charset="UTF-8" />
-    <link rel="icon" type="image/svg+xml" href="./src/assets/vite.svg" />
+    <link rel="icon" type="image/svg+xml" href="./src/assets/logos.png" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>靖安乡村民宿民宿端</title>
     <title>靖安乡村民宿民宿端</title>
   </head>
   </head>

TEMPAT SAMPAH
src/assets/logos.png


TEMPAT SAMPAH
src/assets/photo.png


TEMPAT SAMPAH
src/assets/photo1.png


+ 11 - 3
src/layout/index.vue

@@ -22,7 +22,7 @@ const flag = ref(true);
 watch(
 watch(
   () => router.currentRoute.value.fullPath,
   () => router.currentRoute.value.fullPath,
   (newValue, oldValue) => {
   (newValue, oldValue) => {
-    // console.log(newValue);
+    console.log(newValue);
     store.commit("indexUp", newValue);
     store.commit("indexUp", newValue);
     sessionStorage.setItem("sidevarItem", newValue);
     sessionStorage.setItem("sidevarItem", newValue);
   }
   }
@@ -40,6 +40,7 @@ onBeforeMount(async () => {
 <style scoped lang="scss">
 <style scoped lang="scss">
 .body-box {
 .body-box {
   display: flex;
   display: flex;
+
   .content {
   .content {
     // min-width: 1740px;
     // min-width: 1740px;
     max-width: calc(100vw - 81px);
     max-width: calc(100vw - 81px);
@@ -47,6 +48,7 @@ onBeforeMount(async () => {
     width: 100%;
     width: 100%;
     height: calc(100vh);
     height: calc(100vh);
     background-color: rgba(238, 238, 238, 1);
     background-color: rgba(238, 238, 238, 1);
+
     :deep(.el-dialog__header .el-dialog__headerbtn) {
     :deep(.el-dialog__header .el-dialog__headerbtn) {
       outline: none;
       outline: none;
     }
     }
@@ -60,17 +62,20 @@ onBeforeMount(async () => {
       outline: none;
       outline: none;
     }
     }
   }
   }
+
   .el-message-box__btns {
   .el-message-box__btns {
     .el-button--primary {
     .el-button--primary {
       background-color: rgba(61, 81, 232, 1);
       background-color: rgba(61, 81, 232, 1);
       border: 0.5px solid rgba(61, 81, 232, 1);
       border: 0.5px solid rgba(61, 81, 232, 1);
     }
     }
+
     .el-button--primary:hover {
     .el-button--primary:hover {
       background-color: rgb(119, 133, 239);
       background-color: rgb(119, 133, 239);
       border: 0.5px solid rgb(119, 133, 239);
       border: 0.5px solid rgb(119, 133, 239);
     }
     }
   }
   }
 }
 }
+
 .el-dialog__body {
 .el-dialog__body {
   .el-input {
   .el-input {
     .el-input__suffix-inner {
     .el-input__suffix-inner {
@@ -78,6 +83,7 @@ onBeforeMount(async () => {
     }
     }
   }
   }
 }
 }
+
 .pw {
 .pw {
   .el-dialog__body {
   .el-dialog__body {
     .el-form {
     .el-form {
@@ -86,6 +92,7 @@ onBeforeMount(async () => {
           background-color: rgba(61, 81, 232, 1);
           background-color: rgba(61, 81, 232, 1);
           border: 0.5px solid rgba(61, 81, 232, 1);
           border: 0.5px solid rgba(61, 81, 232, 1);
         }
         }
+
         .queding:hover {
         .queding:hover {
           background-color: rgb(119, 133, 239);
           background-color: rgb(119, 133, 239);
           border: 0.5px solid rgb(119, 133, 239);
           border: 0.5px solid rgb(119, 133, 239);
@@ -97,6 +104,7 @@ onBeforeMount(async () => {
 
 
 .tangram-suggestion-main {
 .tangram-suggestion-main {
   z-index: 999999;
   z-index: 999999;
+
   .tangram-suggestion {
   .tangram-suggestion {
     height: 150px;
     height: 150px;
     overflow: auto;
     overflow: auto;
@@ -110,6 +118,7 @@ onBeforeMount(async () => {
     }
     }
   }
   }
 }
 }
+
 *::-webkit-scrollbar-track {
 *::-webkit-scrollbar-track {
   background-color: #fff;
   background-color: #fff;
 }
 }
@@ -125,5 +134,4 @@ onBeforeMount(async () => {
   border-radius: 4px;
   border-radius: 4px;
   height: 0;
   height: 0;
   width: 0;
   width: 0;
-}
-</style>
+}</style>

+ 2 - 2
src/router/index.js

@@ -91,8 +91,8 @@ const routes = [
   },
   },
 ];
 ];
 const router = createRouter({
 const router = createRouter({
-  history: createWebHashHistory("/business"), // 线上地址
-  // history: createWebHashHistory("/testingServertomcat/dist6"), // 测试环境发布地址
+  // history: createWebHashHistory("/business"), // 线上地址
+  history: createWebHashHistory("/business"), // 测试环境发布地址
   // history: createWebHashHistory("/hotelReservation/pc3/"), // 测试环境发布地址
   // history: createWebHashHistory("/hotelReservation/pc3/"), // 测试环境发布地址
   routes: routes,
   routes: routes,
 });
 });

+ 64 - 66
src/views/ledger/ledger.vue

@@ -9,60 +9,31 @@
         <div class="filter">
         <div class="filter">
           <div class="condition">
           <div class="condition">
             <span>关键字 : </span>
             <span>关键字 : </span>
-            <el-input
-              :clearable="true"
-              @clear="searchBtn"
-              v-model="searchInput.keyWord"
-              class="w-50 m-2"
-              placeholder="请输入订单、预定人、手机号"
-              style="width: 250px"
-            />
+            <el-input :clearable="true" @clear="searchBtn" v-model="searchInput.keyWord" class="w-50 m-2"
+              placeholder="请输入订单、预定人、手机号" style="width: 250px" />
           </div>
           </div>
           <div class="condition">
           <div class="condition">
             <span>支付时间 : </span>
             <span>支付时间 : </span>
-            <el-date-picker
-              v-model="searchInput.createTime"
-              type="daterange"
-              range-separator="-"
-              start-placeholder="起始时间"
-              end-placeholder="结束时间"
-              format="YYYY-MM-DD"
-              value-format="YYYY-MM-DD"
-              :prefix-icon="Calendar"
-              placeholder="请选择日期"
-            />
+            <el-date-picker v-model="searchInput.createTime" type="daterange" range-separator="-" start-placeholder="起始时间"
+              end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" :prefix-icon="Calendar"
+              placeholder="请选择日期" />
           </div>
           </div>
 
 
-          <el-button
-            style="margin-left: 20px"
-            color="rgba(9, 101, 98, 1)"
-            type="primary"
-            class="search"
-            @click="searchBtn"
-            ><el-icon><Search /></el-icon> <span>查询</span></el-button
-          >
-          <el-button
-            style="margin-left: 20px"
-            color="rgba(9, 101, 98, 1)"
-            type="primary"
-            class="search"
-            @click="importExcel"
-            ><span>导出订单</span></el-button
-          >
+          <el-button style="margin-left: 20px" color="rgba(9, 101, 98, 1)" type="primary" class="search"
+            @click="searchBtn"><el-icon>
+              <Search />
+            </el-icon> <span>查询</span></el-button>
+          <el-button style="margin-left: 20px" color="rgba(9, 101, 98, 1)" type="primary" class="search"
+            @click="importExcel"><span>导出订单</span></el-button>
         </div>
         </div>
       </div>
       </div>
       <div class="footer" v-loading="loading">
       <div class="footer" v-loading="loading">
-        <el-table
-          :row-class-name="tableRowClassName"
-          :data="tableData.list"
-          @selection-change="handleSelectionChange"
-          style="width: 100%"
-          :header-cell-style="{
+        <el-table :row-class-name="tableRowClassName" :data="tableData.list" @selection-change="handleSelectionChange"
+          style="width: 100%" :header-cell-style="{
             background: 'rgba(240, 243, 247, 1)',
             background: 'rgba(240, 243, 247, 1)',
             height: '50px',
             height: '50px',
             border: 0,
             border: 0,
-          }"
-        >
+          }">
           <!-- <el-table-column align="center" type="selection" width="80" /> -->
           <!-- <el-table-column align="center" type="selection" width="80" /> -->
           <!-- <el-table-column
           <!-- <el-table-column
               width="150"
               width="150"
@@ -70,24 +41,12 @@
               type="index"
               type="index"
               label="序号"
               label="序号"
             /> -->
             /> -->
-          <el-table-column
-            align="center"
-            prop="orderNum"
-            label="已消费订单号"
-          />
+          <el-table-column align="center" prop="orderNum" label="已消费订单号" />
 
 
           <el-table-column align="center" prop="userName" label="预订人" />
           <el-table-column align="center" prop="userName" label="预订人" />
           <el-table-column align="center" prop="userPhone" label="手机号码" />
           <el-table-column align="center" prop="userPhone" label="手机号码" />
-          <el-table-column
-            align="center"
-            prop="houseOrderNumber"
-            label="房间数(间)"
-          />
-          <el-table-column
-            align="center"
-            prop="houseTotalPrice"
-            label="订单金额(元)"
-          />
+          <el-table-column align="center" prop="houseOrderNumber" label="房间数(间)" />
+          <el-table-column align="center" prop="payAccount" label="订单金额(元)" />
 
 
           <el-table-column align="center" prop="payTime" label="支付时间" />
           <el-table-column align="center" prop="payTime" label="支付时间" />
 
 
@@ -123,14 +82,8 @@
       <!-- 分页组件 -->
       <!-- 分页组件 -->
       <div class="pageSize">
       <div class="pageSize">
         <span></span>
         <span></span>
-        <el-pagination
-          background
-          :current-page="currentPage"
-          :page-size="pageSize"
-          layout="total, prev, pager, next, jumper, slot"
-          :total="total"
-          @update:current-page="handleCurrentChange"
-        />
+        <el-pagination background :current-page="currentPage" :page-size="pageSize"
+          layout="total, prev, pager, next, jumper, slot" :total="total" @update:current-page="handleCurrentChange" />
       </div>
       </div>
     </div>
     </div>
   </div>
   </div>
@@ -691,59 +644,73 @@ onUnmounted(() => {
     color: rgb(0, 0, 0);
     color: rgb(0, 0, 0);
     font-size: 18px;
     font-size: 18px;
     font-weight: 600;
     font-weight: 600;
+
     span {
     span {
       margin-right: 20px;
       margin-right: 20px;
       cursor: pointer;
       cursor: pointer;
     }
     }
+
     .is_active {
     .is_active {
       color: rgba(111, 182, 184, 1);
       color: rgba(111, 182, 184, 1);
     }
     }
   }
   }
+
   .middle {
   .middle {
     width: 96%;
     width: 96%;
     margin: 0 auto;
     margin: 0 auto;
 
 
     color: #000;
     color: #000;
+
     // border-bottom: 1px solid rgb(231, 231, 231);
     // border-bottom: 1px solid rgb(231, 231, 231);
     .filter {
     .filter {
       display: flex;
       display: flex;
       flex-wrap: wrap;
       flex-wrap: wrap;
       align-items: center;
       align-items: center;
       margin: 15px 0 15px 0;
       margin: 15px 0 15px 0;
+
       .search {
       .search {
         color: #fff;
         color: #fff;
       }
       }
+
       .condition {
       .condition {
         display: flex;
         display: flex;
         align-items: center;
         align-items: center;
         margin: 10px 30px 10px 0;
         margin: 10px 30px 10px 0;
+
         :deep(.el-input .el-input__inner) {
         :deep(.el-input .el-input__inner) {
           font-size: 14px;
           font-size: 14px;
         }
         }
+
         span {
         span {
           margin: 0 10px 0 0;
           margin: 0 10px 0 0;
         }
         }
       }
       }
     }
     }
+
     .gongneng {
     .gongneng {
       margin: 10px 0 20px 0;
       margin: 10px 0 20px 0;
+
       span {
       span {
         color: #fff;
         color: #fff;
       }
       }
     }
     }
+
     :deep(.cont) {
     :deep(.cont) {
       width: 60%;
       width: 60%;
       margin: 20px auto;
       margin: 20px auto;
     }
     }
+
     :deep(.download) {
     :deep(.download) {
       display: flex;
       display: flex;
       align-items: center;
       align-items: center;
       margin: 10px;
       margin: 10px;
     }
     }
+
     :deep(.download span) {
     :deep(.download span) {
       font-size: 16px;
       font-size: 16px;
       margin-left: 20px;
       margin-left: 20px;
     }
     }
+
     :deep(.cont .el-button) {
     :deep(.cont .el-button) {
       margin-left: 60px;
       margin-left: 60px;
       margin-bottom: 30px;
       margin-bottom: 30px;
@@ -754,34 +721,42 @@ onUnmounted(() => {
       display: flex;
       display: flex;
       justify-content: center;
       justify-content: center;
     }
     }
+
     :deep(.cont .accomplish .el-button) {
     :deep(.cont .accomplish .el-button) {
       width: 50%;
       width: 50%;
       margin: 0;
       margin: 0;
     }
     }
   }
   }
+
   .footer {
   .footer {
     width: 96%;
     width: 96%;
     height: 550px;
     height: 550px;
     margin: 10px auto 30px;
     margin: 10px auto 30px;
+
     .el-table--fit {
     .el-table--fit {
       height: 100%;
       height: 100%;
+
       :deep(.el-table__header-wrapper) {
       :deep(.el-table__header-wrapper) {
         background-color: #000;
         background-color: #000;
         font-size: 15px;
         font-size: 15px;
+
         tr {
         tr {
           color: #000;
           color: #000;
         }
         }
       }
       }
+
       :deep(.el-table__row) {
       :deep(.el-table__row) {
         height: 50px;
         height: 50px;
         font-size: 15px;
         font-size: 15px;
         color: #000;
         color: #000;
       }
       }
+
       :deep(.el-table__row):nth-child(2n) {
       :deep(.el-table__row):nth-child(2n) {
         .el-table-fixed-column--right {
         .el-table-fixed-column--right {
           background-color: rgba(240, 243, 247, 1);
           background-color: rgba(240, 243, 247, 1);
         }
         }
       }
       }
+
       :deep(.el-table__row td) {
       :deep(.el-table__row td) {
         padding: 0;
         padding: 0;
         border: 0;
         border: 0;
@@ -790,22 +765,27 @@ onUnmounted(() => {
       .el-button--primary {
       .el-button--primary {
         margin-left: 5px;
         margin-left: 5px;
       }
       }
+
       :deep(.el-table__body .even) {
       :deep(.el-table__body .even) {
         background-color: #fff;
         background-color: #fff;
       }
       }
+
       :deep(.el-table__body .odd) {
       :deep(.el-table__body .odd) {
         background-color: rgba(240, 243, 247, 1);
         background-color: rgba(240, 243, 247, 1);
       }
       }
+
       :deep(.edit) {
       :deep(.edit) {
         display: flex;
         display: flex;
         align-items: center;
         align-items: center;
         justify-content: center;
         justify-content: center;
         color: rgba(111, 182, 184, 1);
         color: rgba(111, 182, 184, 1);
       }
       }
+
       :deep(.look) {
       :deep(.look) {
         padding: 0 10px;
         padding: 0 10px;
         cursor: pointer;
         cursor: pointer;
       }
       }
+
       :deep(.look):hover {
       :deep(.look):hover {
         color: red;
         color: red;
       }
       }
@@ -815,20 +795,25 @@ onUnmounted(() => {
     :deep(.addStaff) {
     :deep(.addStaff) {
       //   height: 420px;
       //   height: 420px;
       border-radius: 11px;
       border-radius: 11px;
+
       .el-dialog__header {
       .el-dialog__header {
         border-radius: 11px 11px 0 0;
         border-radius: 11px 11px 0 0;
         background: rgba(237, 241, 245, 1);
         background: rgba(237, 241, 245, 1);
         font-weight: 600;
         font-weight: 600;
         margin: 0;
         margin: 0;
+
         .el-dialog__headerbtn {
         .el-dialog__headerbtn {
           outline: none;
           outline: none;
         }
         }
       }
       }
+
       .el-dialog__body {
       .el-dialog__body {
         padding: 30px 20px 10px 20px;
         padding: 30px 20px 10px 20px;
+
         .el-input {
         .el-input {
           width: 200px;
           width: 200px;
         }
         }
+
         // 关联报修类型样式(-----------------)
         // 关联报修类型样式(-----------------)
         // .checkbox {
         // .checkbox {
         //   .el-form-item__content {
         //   .el-form-item__content {
@@ -848,6 +833,7 @@ onUnmounted(() => {
               margin-left: 20px;
               margin-left: 20px;
               color: #fff;
               color: #fff;
             }
             }
+
             display: flex;
             display: flex;
             flex-direction: row-reverse;
             flex-direction: row-reverse;
           }
           }
@@ -855,45 +841,56 @@ onUnmounted(() => {
       }
       }
     }
     }
   }
   }
+
   .pageSize {
   .pageSize {
     display: flex;
     display: flex;
     align-items: center;
     align-items: center;
     justify-content: space-between;
     justify-content: space-between;
     margin: 0 30px;
     margin: 0 30px;
+
     span {
     span {
       color: #000;
       color: #000;
     }
     }
+
     .el-pagination {
     .el-pagination {
+
       // width: 1600px;
       // width: 1600px;
       :deep(.el-pagination__total) {
       :deep(.el-pagination__total) {
         color: #000;
         color: #000;
       }
       }
+
       :deep(.el-pagination__goto) {
       :deep(.el-pagination__goto) {
         color: #000;
         color: #000;
       }
       }
+
       :deep(.el-pagination__classifier) {
       :deep(.el-pagination__classifier) {
         color: #000;
         color: #000;
       }
       }
+
       :deep(.el-input__wrapper) {
       :deep(.el-input__wrapper) {
         border: 1px solid rgba(0, 0, 0, 1);
         border: 1px solid rgba(0, 0, 0, 1);
         border-radius: 5px;
         border-radius: 5px;
         box-shadow: none;
         box-shadow: none;
       }
       }
+
       :deep(.el-pager li) {
       :deep(.el-pager li) {
         margin: 0 5px;
         margin: 0 5px;
         border: 1px solid rgba(0, 0, 0, 1);
         border: 1px solid rgba(0, 0, 0, 1);
         border-radius: 5px;
         border-radius: 5px;
         background-color: transparent;
         background-color: transparent;
       }
       }
+
       :deep(.el-pager li.is-active) {
       :deep(.el-pager li.is-active) {
         background-color: rgba(111, 182, 184, 1);
         background-color: rgba(111, 182, 184, 1);
       }
       }
+
       :deep(.btn-prev) {
       :deep(.btn-prev) {
         margin-right: 5px;
         margin-right: 5px;
         border: 1px solid rgba(0, 0, 0, 1);
         border: 1px solid rgba(0, 0, 0, 1);
         border-radius: 5px;
         border-radius: 5px;
         background-color: transparent;
         background-color: transparent;
       }
       }
+
       :deep(.btn-next) {
       :deep(.btn-next) {
         margin-left: 5px;
         margin-left: 5px;
         border: 1px solid rgba(0, 0, 0, 1);
         border: 1px solid rgba(0, 0, 0, 1);
@@ -903,6 +900,7 @@ onUnmounted(() => {
     }
     }
   }
   }
 }
 }
+
 .el-input {
 .el-input {
   width: 192px;
   width: 192px;
 }
 }

+ 62 - 12
src/views/orderEvaluate/orderEvaluate.vue

@@ -384,7 +384,7 @@
                       <span>评论({{ ruleForm.lowCommentLists.length }})</span>
                       <span>评论({{ ruleForm.lowCommentLists.length }})</span>
                     </div>
                     </div>
                   </template>
                   </template>
-                  <div class="chatContent" v-for="i in ruleForm.lowCommentLists" :key="i.id">
+                  <div class="chatContent" v-for="(i, index) in ruleForm.lowCommentLists" :key="i.id">
                     <!-- 商家头像 -->
                     <!-- 商家头像 -->
                     <div>
                     <div>
                       <div class="info client">
                       <div class="info client">
@@ -395,14 +395,58 @@
                           <div class="name1" v-else>商家</div>
                           <div class="name1" v-else>商家</div>
                           <div class="name2">{{ i.createDate }}</div>
                           <div class="name2">{{ i.createDate }}</div>
                         </div>
                         </div>
-                        <span class="reply" @click="reply(i)">回复</span>
+                        <span class="reply" @click="reply(i)" v-if="i.status == 1">回复</span>
                       </div>
                       </div>
+
                       <div class="replyCont clientCont">
                       <div class="replyCont clientCont">
-                        {{ i.content }}
+                        <el-collapse-item title="Consistency" :name="index">
+                          <template #title>
+                            <span>{{ i.content }}</span>
+                          </template>
+                          <div v-for="item in i.lowCommentList" :key="item.id">
+                            <div class="info merchant">
+                              <img v-if="item.headPhoto" :src="item.headPhoto" alt="" />
+                              <img v-else src="@/assets/photo.png" alt="" />
+                              <div class="title">
+                                <div class="name1" v-if="item.createName">{{ item.createName }}</div>
+                                <div class="name1" v-else>商家</div>
+                                <div class="name2">{{ item.createDate }}</div>
+                              </div>
+                              <span class="reply" @click="reply(item)">回复</span>
+                            </div>
+                            <div class="replyCont merchantCont">
+                              <span v-if="item.createName">用户 回复 商家 :</span>
+                              <span v-else>商家 回复 {{ item.commentName }} :</span>
+                              {{ item.content }}
+                            </div>
+                          </div>
+                        </el-collapse-item>
                       </div>
                       </div>
                     </div>
                     </div>
                     <!-- 客户头像 -->
                     <!-- 客户头像 -->
-                    <div v-for="item in i.lowCommentList" :key="item.id">
+                    <!-- <el-collapse-item title="Consistency" :name="index">
+                      <template #title>
+                        <span>加载更多</span>
+                      </template>
+                      <div v-for="item in i.lowCommentList" :key="item.id">
+                        <div class="info merchant">
+                          <img v-if="item.headPhoto" :src="item.headPhoto" alt="" />
+                          <img v-else src="@/assets/photo.png" alt="" />
+                          <div class="title">
+                            <div class="name1" v-if="item.createName">{{ item.createName }}</div>
+                            <div class="name1" v-else>商家</div>
+                            <div class="name2">{{ item.createDate }}</div>
+                          </div>
+                          <span class="reply" @click="reply(item)">回复</span>
+                        </div>
+                        <div class="replyCont merchantCont">
+                          <span v-if="item.createName">用户回复商家 :</span>
+                          <span v-else>商家 回复 {{ item.commentName }} :</span>
+                          {{ item.content }}
+                        </div>
+                      </div>
+                    </el-collapse-item> -->
+                    <!-- <div v-for="item in i.lowCommentList" :key="item.id">
                       <div class="info merchant">
                       <div class="info merchant">
                         <img v-if="item.headPhoto" :src="item.headPhoto" alt="" />
                         <img v-if="item.headPhoto" :src="item.headPhoto" alt="" />
                         <img v-else src="@/assets/photo.png" alt="" />
                         <img v-else src="@/assets/photo.png" alt="" />
@@ -415,10 +459,10 @@
                       </div>
                       </div>
                       <div class="replyCont merchantCont">
                       <div class="replyCont merchantCont">
                         <span v-if="item.createName">用户回复商家 :</span>
                         <span v-if="item.createName">用户回复商家 :</span>
-                        <span v-else>商家回复用户 :</span>
+                        <span v-else>商家 回复 {{ item.commentName }} :</span>
                         {{ item.content }}
                         {{ item.content }}
                       </div>
                       </div>
-                    </div>
+                    </div> -->
                   </div>
                   </div>
                 </el-collapse-item>
                 </el-collapse-item>
               </el-collapse>
               </el-collapse>
@@ -467,7 +511,7 @@ import { ElMessage, ElMessageBox } from "element-plus";
 import { Calendar } from "@element-plus/icons-vue";
 import { Calendar } from "@element-plus/icons-vue";
 import vidiconsApi from "@/api/vidicons.js";
 import vidiconsApi from "@/api/vidicons.js";
 import { dayjs } from "element-plus";
 import { dayjs } from "element-plus";
-import lodash from "lodash";
+import lodash, { reduce } from "lodash";
 import axios from "axios";
 import axios from "axios";
 import { useStore } from "vuex";
 import { useStore } from "vuex";
 const store = useStore();
 const store = useStore();
@@ -752,7 +796,7 @@ const cancelChat = () => {
 // 回复弹窗  (回复-------------------------------)
 // 回复弹窗  (回复-------------------------------)
 const reply = async (row) => {
 const reply = async (row) => {
   replyVisible.value = true;
   replyVisible.value = true;
-  // console.log(row);
+  console.log(row);
   // console.log(ruleForm.bookingCommentList);
   // console.log(ruleForm.bookingCommentList);
   if (row == 1) {
   if (row == 1) {
     replycontent.commentId = ruleForm.bookingCommentList.id;
     replycontent.commentId = ruleForm.bookingCommentList.id;
@@ -763,7 +807,11 @@ const reply = async (row) => {
     replycontent.commentId = row.id;
     replycontent.commentId = row.id;
     replycontent.commentParentId = row.commentParentId;
     replycontent.commentParentId = row.commentParentId;
     replycontent.content = replycontent.content;
     replycontent.content = replycontent.content;
-    replycontent.commentName = row.commentName;
+    if (row.createName) {
+      replycontent.commentName = row.createName;
+    } else {
+      replycontent.commentName = row.createUsername;
+    }
   }
   }
 };
 };
 // 关闭回复弹窗
 // 关闭回复弹窗
@@ -1248,6 +1296,8 @@ onUnmounted(() => {
               }
               }
             }
             }
 
 
+
+
             .star {
             .star {
               display: flex;
               display: flex;
               align-items: center;
               align-items: center;
@@ -1322,7 +1372,7 @@ onUnmounted(() => {
               border-top: 0;
               border-top: 0;
 
 
               .el-collapse-item__header {
               .el-collapse-item__header {
-                border-bottom: 1px solid rgba(230, 230, 230, 1);
+                // border-bottom: 1px solid rgba(230, 230, 230, 1);
               }
               }
 
 
               .el-collapse-item__wrap {
               .el-collapse-item__wrap {
@@ -1338,11 +1388,11 @@ onUnmounted(() => {
 
 
                 // 商家评论
                 // 商家评论
                 .merchant {
                 .merchant {
-                  padding-left: 60px;
+                  // padding-left: 60px;
                 }
                 }
 
 
                 .merchantCont {
                 .merchantCont {
-                  padding-left: 60px;
+                  // padding-left: 60px;
 
 
                   span {
                   span {
                     color: rgba(128, 128, 128, 1);
                     color: rgba(128, 128, 128, 1);

+ 25 - 4
src/views/roomFlow/roomFlow.vue

@@ -236,7 +236,7 @@ import { ElMessage, ElMessageBox } from "element-plus";
 import { Calendar } from "@element-plus/icons-vue";
 import { Calendar } from "@element-plus/icons-vue";
 import vidiconsApi from "@/api/vidicons.js";
 import vidiconsApi from "@/api/vidicons.js";
 import { dayjs } from "element-plus";
 import { dayjs } from "element-plus";
-import lodash from "lodash";
+import lodash, { reduce } from "lodash";
 import axios from "axios";
 import axios from "axios";
 import { useStore } from "vuex";
 import { useStore } from "vuex";
 const store = useStore();
 const store = useStore();
@@ -415,6 +415,7 @@ const roomFlowInfo = async (row) => {
     });
     });
     console.log(res, "流程详情");
     console.log(res, "流程详情");
     if (res.data.code == 200) {
     if (res.data.code == 200) {
+        img1.value = res.data.data.coverImg
         fileList.list = res.data.data.fileInfoList
         fileList.list = res.data.data.fileInfoList
         ruleForm.remark = res.data.data.remark
         ruleForm.remark = res.data.data.remark
         ruleForm.status = res.data.data.status
         ruleForm.status = res.data.data.status
@@ -446,8 +447,8 @@ const lookImg = (flag) => {
     if (flag == 1) {
     if (flag == 1) {
         let arr = [
         let arr = [
             {
             {
-                url: tableData.value.coverImg,
-                id: tableData.value.coverImg,
+                url: img1.value,
+                id: img1.value,
             },
             },
         ];
         ];
         bgImgList.value = arr;
         bgImgList.value = arr;
@@ -467,7 +468,6 @@ const switchBgImg = (val) => {
     console.log(val);
     console.log(val);
     switchImgInd2.value = val;
     switchImgInd2.value = val;
     infoImg2.value.setActiveItem(val);
     infoImg2.value.setActiveItem(val);
-
 };
 };
 // 搜索功能
 // 搜索功能
 const searchBtn = lodash.debounce(async () => {
 const searchBtn = lodash.debounce(async () => {
@@ -544,6 +544,27 @@ const handleCurrentChange = (value) => {
 onBeforeMount(async () => {
 onBeforeMount(async () => {
     api.value = store.state.user.api;
     api.value = store.state.user.api;
     getList();
     getList();
+    // let arr = ['a', 'a', 'a', 'b', 'b', 'c', 'c', 'd', 'e']
+    let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
+    // let s = arr.reduce((prev, cur) => {
+    //     // console.log(prev, cur);
+    //     if (prev.indexOf(cur) == -1) {
+    //         prev.push(cur)
+    //     }
+    //     return prev
+    // }, [])
+    // let s = arr.reduce((prev, cur) => {
+    //     if (cur in prev) {
+    //         prev[cur]++
+    //     } else {
+    //         prev[cur] = 1
+    //     }
+    //     return prev
+    // }, {})
+    let s = arr.reduce((prev, cur) => {
+        return prev * cur
+    }, 1)
+    console.log(s);
 });
 });
 onUnmounted(() => {
 onUnmounted(() => {
     // document.removeEventListener("keyup", Enters);
     // document.removeEventListener("keyup", Enters);

+ 28 - 20
src/views/roomInfo/roomInfo.vue

@@ -706,6 +706,9 @@ const maintain = async () => {
   ruleForm.roomNumber = tableData.value.roomNumber;
   ruleForm.roomNumber = tableData.value.roomNumber;
   ruleForm.remark = tableData.value.remark;
   ruleForm.remark = tableData.value.remark;
   ruleForm.hconfig = tableData.value.hconfig;
   ruleForm.hconfig = tableData.value.hconfig;
+  if (tableData.value.hconfig) {
+    checkedCities.value = tableData.value.hconfig.split(",");
+  }
   ruleForm.isOrder = tableData.value.isOrder;
   ruleForm.isOrder = tableData.value.isOrder;
   ruleForm.isCheckout = tableData.value.isCheckout;
   ruleForm.isCheckout = tableData.value.isCheckout;
   ruleForm.isCanorder = tableData.value.isCanorder;
   ruleForm.isCanorder = tableData.value.isCanorder;
@@ -773,6 +776,18 @@ const handleChange = (file, fileLists) => {
 const handleUpload = async (file) => {
 const handleUpload = async (file) => {
   console.log(file, "2222");
   console.log(file, "2222");
   img1File.value = file.file;
   img1File.value = file.file;
+  let datas = new FormData();
+  if (img1File.value) {
+    datas.set("files", img1File.value);
+    let ress = await axios({
+      method: "post",
+      url: api.value + "/file/cos/upload",
+      headers: {},
+      data: datas,
+    });
+    console.log(ress, "图片上传成功封面图");
+    ruleForm.coverImg = ress.data.data;
+  }
 };
 };
 // 移出图片(封面图上传图片)
 // 移出图片(封面图上传图片)
 const handleRemove = (uploadFile, uploadFiles) => {
 const handleRemove = (uploadFile, uploadFiles) => {
@@ -830,38 +845,31 @@ const handleUpload2 = async (file) => {
     ElMessage.error("最多可上传6张图片!");
     ElMessage.error("最多可上传6张图片!");
     return false;
     return false;
   }
   }
-  console.log(file, "2222");
+  console.log(file, "22222222");
   let data = new FormData();
   let data = new FormData();
-  data.set("myFile", file.file);
+  data.set("files", file.file);
   let res = await axios({
   let res = await axios({
     method: "post",
     method: "post",
-    url: "https://chtech.ncjti.edu.cn/hotelReservation/mhotel/uploadhimage.action",
+    url: api.value + "/file/cos/upload",
     headers: {},
     headers: {},
     data: data,
     data: data,
   });
   });
-  console.log(res, "图片上传成功");
-  if (res.data.code == 200) {
-    res.data.data.uid = file.file.uid;
-    console.log([res.data.data]);
+  console.log(res, "图片上传成功详情图");
+  if (res.data.code == 1) {
+    // res.data.data.uid = file.file.uid;
+    // console.log([res.data.data]);
+    let arr = {
+      uid: file.file.uid,
+      url: res.data.data
+    }
 
 
-    fileList.list = fileList.list.concat([res.data.data]);
+    fileList.list = fileList.list.concat([arr]);
     ruleForm.fileListJson = fileList.list;
     ruleForm.fileListJson = fileList.list;
   }
   }
 };
 };
 // 确认维护信息
 // 确认维护信息
 const submitAdd = lodash.debounce(async (formEl) => {
 const submitAdd = lodash.debounce(async (formEl) => {
-  let datas = new FormData();
-  if (img1File.value) {
-    datas.set("myFile", img1File.value);
-    let ress = await axios({
-      method: "post",
-      url: "https://chtech.ncjti.edu.cn/hotelReservation/mhotel/uploadhimage.action",
-      headers: {},
-      data: datas,
-    });
-    console.log(ress, "图片上传成功");
-    ruleForm.coverImg = ress.data.data.url;
-  }
+
   if (!formEl) return;
   if (!formEl) return;
   await formEl.validate(async (valid, fields) => {
   await formEl.validate(async (valid, fields) => {
     if (valid) {
     if (valid) {

+ 148 - 170
src/views/roomType/roomType.vue

@@ -9,54 +9,29 @@
         <div class="filter">
         <div class="filter">
           <div class="condition">
           <div class="condition">
             <span>关键字 : </span>
             <span>关键字 : </span>
-            <el-input
-              :clearable="true"
-              @clear="searchBtn"
-              v-model="searchInput.keyWord"
-              class="w-50 m-2"
-              placeholder="请输入房型"
-              style="width: 150px"
-            />
+            <el-input :clearable="true" @clear="searchBtn" v-model="searchInput.keyWord" class="w-50 m-2"
+              placeholder="请输入房型" style="width: 150px" />
           </div>
           </div>
-          <el-button
-            style="margin-left: 20px"
-            color="rgba(9, 101, 98, 1)"
-            type="primary"
-            class="search"
-            @click="searchBtn"
-            ><el-icon><Search /></el-icon> <span>查询</span></el-button
-          >
+          <el-button style="margin-left: 20px" color="rgba(9, 101, 98, 1)" type="primary" class="search"
+            @click="searchBtn"><el-icon>
+              <Search />
+            </el-icon> <span>查询</span></el-button>
         </div>
         </div>
         <!-- 按钮列表 -->
         <!-- 按钮列表 -->
         <div class="gongneng">
         <div class="gongneng">
-          <el-button type="primary" color="rgba(9, 101, 98, 1)" @click="addlist"
-            ><img
-              src="@/assets/add.png"
-              style="width: 14px; height: 14px; margin-right: 4px"
-              alt=""
-            /><span>添加房型</span></el-button
-          >
+          <el-button type="primary" color="rgba(9, 101, 98, 1)" @click="addlist"><img src="@/assets/add.png"
+              style="width: 14px; height: 14px; margin-right: 4px" alt="" /><span>添加房型</span></el-button>
         </div>
         </div>
       </div>
       </div>
       <div class="footer" v-loading="loading">
       <div class="footer" v-loading="loading">
-        <el-table
-          :row-class-name="tableRowClassName"
-          :data="tableData.list"
-          @selection-change="handleSelectionChange"
-          style="width: 100%"
-          :header-cell-style="{
+        <el-table :row-class-name="tableRowClassName" :data="tableData.list" @selection-change="handleSelectionChange"
+          style="width: 100%" :header-cell-style="{
             background: 'rgba(240, 243, 247, 1)',
             background: 'rgba(240, 243, 247, 1)',
             height: '50px',
             height: '50px',
             border: 0,
             border: 0,
-          }"
-        >
+          }">
           <!-- <el-table-column align="center" type="selection" width="80" /> -->
           <!-- <el-table-column align="center" type="selection" width="80" /> -->
-          <el-table-column
-            width="150"
-            align="center "
-            type="index"
-            label="序号"
-          />
+          <el-table-column width="150" align="center " type="index" label="序号" />
           <el-table-column align="center" prop="hName" label="房型" />
           <el-table-column align="center" prop="hName" label="房型" />
           <el-table-column align="center" prop="price" label="房费(元)" />
           <el-table-column align="center" prop="price" label="房费(元)" />
           <el-table-column align="center" prop="number" label="数量" />
           <el-table-column align="center" prop="number" label="数量" />
@@ -65,16 +40,8 @@
             <template #default="scope">
             <template #default="scope">
               <div class="edit">
               <div class="edit">
                 <div class="look" @click="edit(scope.row)">编辑</div>
                 <div class="look" @click="edit(scope.row)">编辑</div>
-                <el-popconfirm
-                  width="220"
-                  confirm-button-text="确认"
-                  cancel-button-text="取消"
-                  :icon="InfoFilled"
-                  icon-color="#f89626"
-                  title="是否删除此房型?"
-                  @confirm="del(scope.row)"
-                  @cancel="cancelEvent"
-                >
+                <el-popconfirm width="220" confirm-button-text="确认" cancel-button-text="取消" :icon="InfoFilled"
+                  icon-color="#f89626" title="是否删除此房型?" @confirm="del(scope.row)" @cancel="cancelEvent">
                   <template #reference>
                   <template #reference>
                     <div class="del">删除</div>
                     <div class="del">删除</div>
                   </template>
                   </template>
@@ -84,28 +51,11 @@
           </el-table-column>
           </el-table-column>
         </el-table>
         </el-table>
         <!-- 添加房型弹窗 -->
         <!-- 添加房型弹窗 -->
-        <el-dialog
-          class="addStaff"
-          v-model="addDialogVisible"
-          :close-on-click-modal="false"
-          :close-on-press-escape="false"
-          :title="dialongTitle"
-          align-center
-          width="900"
-          :before-close="handleVideoClose"
-        >
+        <el-dialog class="addStaff" v-model="addDialogVisible" :close-on-click-modal="false"
+          :close-on-press-escape="false" :title="dialongTitle" align-center width="900" :before-close="handleVideoClose">
           <div class="slider">
           <div class="slider">
-            <el-form
-              ref="ruleFormRef"
-              :model="ruleForm"
-              :rules="rules"
-              label-width="100px"
-              class="demo-ruleForm"
-              size="default"
-              label-position="left"
-              status-icon
-              :inline="true"
-            >
+            <el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="100px" class="demo-ruleForm"
+              size="default" label-position="left" status-icon :inline="true">
               <div class="titles"><span>房型信息</span></div>
               <div class="titles"><span>房型信息</span></div>
               <div class="form_item tag">
               <div class="form_item tag">
                 <div class="items">
                 <div class="items">
@@ -118,15 +68,8 @@
                             <div class="imgItem" v-for="i in fileList.list">
                             <div class="imgItem" v-for="i in fileList.list">
                               <img :src="i.url" alt="" />
                               <img :src="i.url" alt="" />
                               <div class="lookImg">
                               <div class="lookImg">
-                                <img
-                                  src="@/assets/lookImg.png"
-                                  alt=""
-                                  @click="lookImg(i)"
-                                />
-                                <div
-                                  class="delimg"
-                                  @click="handleRemove(i)"
-                                ></div>
+                                <img src="@/assets/lookImg.png" alt="" @click="lookImg(i)" />
+                                <div class="delimg" @click="handleRemove(i)"></div>
                               </div>
                               </div>
                             </div>
                             </div>
                           </div>
                           </div>
@@ -134,25 +77,11 @@
                             <img src="#" alt="" />
                             <img src="#" alt="" />
                           </div>
                           </div>
 
 
-                          <el-upload
-                            class="avatar-uploader"
-                            action=""
-                            list-type="picture"
-                            :on-preview="handlePreview"
-                            :on-change="handleChange"
-                            :http-request="handleUpload"
-                            :before-upload="beforeAvatarUpload"
-                          >
+                          <el-upload class="avatar-uploader" action="" list-type="picture" :on-preview="handlePreview"
+                            :on-change="handleChange" :http-request="handleUpload" :before-upload="beforeAvatarUpload">
                             <template #trigger>
                             <template #trigger>
-                              <el-button
-                                type="primary"
-                                color="rgba(9, 101, 98, 1)"
-                                @click="updateImg"
-                                >上传图片</el-button
-                              >
-                              <span class="zhu"
-                                >(注:最多可上传6张图片,建议按16:9的比例)</span
-                              >
+                              <el-button type="primary" color="rgba(9, 101, 98, 1)" @click="updateImg">上传图片</el-button>
+                              <span class="zhu">(注:最多可上传6张图片,建议按16:9的比例)</span>
                             </template>
                             </template>
                             <!-- <template #tip>
                             <!-- <template #tip>
                               <div class="el-upload__tip">
                               <div class="el-upload__tip">
@@ -174,46 +103,26 @@
                       placeholder="请输入房型名称"
                       placeholder="请输入房型名称"
                       clearable
                       clearable
                     /> -->
                     /> -->
-                    <el-select
-                      v-model="ruleForm.hName"
-                      class="m-2"
-                      placeholder="请选择民宿类型"
-                    >
-                      <el-option
-                        v-for="i in houseType"
-                        :label="i.name"
-                        :value="i.name"
-                      />
+                    <el-select v-model="ruleForm.hName" class="m-2" placeholder="请选择民宿类型">
+                      <el-option v-for="i in houseType" :label="i.name" :value="i.name" />
                     </el-select>
                     </el-select>
                   </el-form-item>
                   </el-form-item>
                 </div>
                 </div>
                 <div class="items">
                 <div class="items">
                   <el-form-item label="房费 :" prop="price">
                   <el-form-item label="房费 :" prop="price">
-                    <el-input
-                      v-model="ruleForm.price"
-                      placeholder="请输入房费"
-                      clearable
-                    />
+                    <el-input v-model="ruleForm.price" placeholder="请输入房费" clearable />
                   </el-form-item>
                   </el-form-item>
                 </div>
                 </div>
               </div>
               </div>
               <div class="form_item">
               <div class="form_item">
                 <div class="items">
                 <div class="items">
                   <el-form-item label="数量 :" prop="number">
                   <el-form-item label="数量 :" prop="number">
-                    <el-input
-                      v-model="ruleForm.number"
-                      placeholder="请输入此房型数量"
-                      clearable
-                    />
+                    <el-input v-model="ruleForm.number" placeholder="请输入此房型数量" clearable />
                   </el-form-item>
                   </el-form-item>
                 </div>
                 </div>
                 <div class="items">
                 <div class="items">
                   <el-form-item label="面积 :" prop="hAreas">
                   <el-form-item label="面积 :" prop="hAreas">
-                    <el-input
-                      v-model="ruleForm.hAreas"
-                      placeholder="请输入面积大小"
-                      clearable
-                    ></el-input>
+                    <el-input v-model="ruleForm.hAreas" placeholder="请输入面积大小" clearable></el-input>
                     &nbsp;&nbsp;㎡
                     &nbsp;&nbsp;㎡
                   </el-form-item>
                   </el-form-item>
                 </div>
                 </div>
@@ -246,34 +155,19 @@
               </div>
               </div>
 
 
               <div class="titles">
               <div class="titles">
-                <span>房型配置</span
-                ><span>(最多可选择5个描述展示,管理端房型配置管理)</span>
+                <span>房型配置</span><span>(最多可选择5个描述展示,管理端房型配置管理)</span>
               </div>
               </div>
               <div class="form_item">
               <div class="form_item">
                 <div class="items">
                 <div class="items">
                   <el-form-item label="选择配置 :" prop="hConfig">
                   <el-form-item label="选择配置 :" prop="hConfig">
-                    <el-checkbox-group
-                      @change="checkHouse"
-                      v-model="checkedCities"
-                      :max="5"
-                    >
-                      <el-checkbox
-                        v-for="city in cities"
-                        :key="city.id"
-                        :label="city.id"
-                        >{{ city.name }}</el-checkbox
-                      >
+                    <el-checkbox-group @change="checkHouse" v-model="checkedCities" :max="5">
+                      <el-checkbox v-for="city in cities" :key="city.id" :label="city.id">{{ city.name }}</el-checkbox>
                     </el-checkbox-group>
                     </el-checkbox-group>
                   </el-form-item>
                   </el-form-item>
                 </div>
                 </div>
               </div>
               </div>
               <el-form-item class="options">
               <el-form-item class="options">
-                <el-button
-                  color="rgba(9, 101, 98, 1)"
-                  class="queding"
-                  type="primary"
-                  @click="submitAdd(ruleFormRef)"
-                >
+                <el-button color="rgba(9, 101, 98, 1)" class="queding" type="primary" @click="submitAdd(ruleFormRef)">
                   确认
                   确认
                 </el-button>
                 </el-button>
                 <el-button @click="cancelAdd(ruleFormRef)">取消</el-button>
                 <el-button @click="cancelAdd(ruleFormRef)">取消</el-button>
@@ -286,25 +180,12 @@
       <!-- 分页组件 -->
       <!-- 分页组件 -->
       <div class="pageSize">
       <div class="pageSize">
         <span></span>
         <span></span>
-        <el-pagination
-          background
-          :current-page="currentPage"
-          :page-size="pageSize"
-          layout="total, prev, pager, next, jumper, slot"
-          :total="total"
-          @update:current-page="handleCurrentChange"
-        />
+        <el-pagination background :current-page="currentPage" :page-size="pageSize"
+          layout="total, prev, pager, next, jumper, slot" :total="total" @update:current-page="handleCurrentChange" />
       </div>
       </div>
     </div>
     </div>
     <div class="bgImg" v-if="bgImg">
     <div class="bgImg" v-if="bgImg">
-      <el-carousel
-        @click="bgImg = false"
-        ref="bgImgs"
-        indicator-position
-        arrow="always"
-        :autoplay="false"
-        trigger
-      >
+      <el-carousel @click="bgImg = false" ref="bgImgs" indicator-position arrow="always" :autoplay="false" trigger>
         <el-carousel-item v-for="item in bgImgList" :key="item.id">
         <el-carousel-item v-for="item in bgImgList" :key="item.id">
           <img :src="item.url" alt="" />
           <img :src="item.url" alt="" />
         </el-carousel-item>
         </el-carousel-item>
@@ -504,7 +385,7 @@ const beforeAvatarUpload = (rawFile) => {
     ElMessage.error("图片格式必须为JPG/PNG格式!");
     ElMessage.error("图片格式必须为JPG/PNG格式!");
     return false;
     return false;
   } else if (rawFile.size / 1024 / 1024 > 10) {
   } else if (rawFile.size / 1024 / 1024 > 10) {
-    ElMessage.error("图片的大小不能超过10MB!");
+    ElMessage.erroapi.valuer("图片的大小不能超过10MB!");
     return false;
     return false;
   }
   }
   return true;
   return true;
@@ -522,17 +403,17 @@ const handleUpload = async (file) => {
   }
   }
   console.log(file, "2222");
   console.log(file, "2222");
   let data = new FormData();
   let data = new FormData();
-  data.set("myFile", file.file);
+  data.set("files", file.file);
   let res = await axios({
   let res = await axios({
     method: "post",
     method: "post",
-    url: "https://chtech.ncjti.edu.cn/hotelReservation/mhotel/uploadhimage.action",
+    url: api.value + "/file/cos/upload",
     headers: {},
     headers: {},
     data: data,
     data: data,
   });
   });
   console.log(res, "图片上传成功");
   console.log(res, "图片上传成功");
-  if (res.data.code == 200) {
-    res.data.data.uid = file.file.uid;
-    fileList.list.push(res.data.data);
+  if (res.data.code == 1) {
+    // res.data.uid = file.file.uid;
+    fileList.list.push({ url: res.data.data, uid: file.file.uid });
     ruleForm.fileListJson = fileList.list;
     ruleForm.fileListJson = fileList.list;
   }
   }
 };
 };
@@ -557,24 +438,28 @@ const addlist = async () => {
 
 
 //编辑按钮  (-------------------------------------------)
 //编辑按钮  (-------------------------------------------)
 const edit = async (row) => {
 const edit = async (row) => {
-  // console.log(row);
+  console.log(row);
   let data = {
   let data = {
-    id: row.id,
+    linkId: row.id,
   };
   };
   let res = await axios({
   let res = await axios({
     method: "post",
     method: "post",
-    url: api.value + "/mhotel/housegetById.action",
+    url: api.value + "/mhotel/uploadgetByLinkId.action",
     headers: {},
     headers: {},
     params: data,
     params: data,
   });
   });
   console.log(res, "编辑中查找图片");
   console.log(res, "编辑中查找图片");
   if (res.data.code == 200) {
   if (res.data.code == 200) {
-    res.data.data.fileInfoList.forEach((item) => {
+    // res.data.data.fileInfoList.forEach((item) => {
+    //   item.uid = item.id;
+    // });
+    // fileList.list = res.data.data.fileInfoList;
+    // ruleForm.fileListJson = fileList.list;
+    res.data.data.forEach((item) => {
       item.uid = item.id;
       item.uid = item.id;
     });
     });
-    fileList.list = res.data.data.fileInfoList;
+    fileList.list = res.data.data;
     ruleForm.fileListJson = fileList.list;
     ruleForm.fileListJson = fileList.list;
-
     // ElMessage({
     // ElMessage({
     //   type: "success",
     //   type: "success",
     //   showClose: true,
     //   showClose: true,
@@ -603,7 +488,7 @@ const edit = async (row) => {
   ruleForm.houseNumbers = row.houseNumbers; // 房间号列表
   ruleForm.houseNumbers = row.houseNumbers; // 房间号列表
   ruleForm.id = row.id; //id
   ruleForm.id = row.id; //id
 };
 };
-// 取消添加员工
+// 取消添加房型
 const cancelAdd = () => {
 const cancelAdd = () => {
   addDialogVisible.value = false;
   addDialogVisible.value = false;
   ruleFormRef.value.resetFields();
   ruleFormRef.value.resetFields();
@@ -630,12 +515,16 @@ const delRoom = (i) => {
   });
   });
 };
 };
 
 
-// 确认添加员工
+// 确认添加房型
 const submitAdd = lodash.debounce(async (formEl) => {
 const submitAdd = lodash.debounce(async (formEl) => {
   if (!formEl) return;
   if (!formEl) return;
   await formEl.validate(async (valid, fields) => {
   await formEl.validate(async (valid, fields) => {
     if (valid) {
     if (valid) {
       if (dialongTitle.value == "添加房型") {
       if (dialongTitle.value == "添加房型") {
+        const arr = [];
+        ruleForm.houseNumbers.forEach((item) => {
+          arr.push(item.numberName);
+        });
         let data = new FormData();
         let data = new FormData();
         data.set("managerId", sessionStorage.getItem("token"));
         data.set("managerId", sessionStorage.getItem("token"));
         data.set("hName", ruleForm.hName);
         data.set("hName", ruleForm.hName);
@@ -644,7 +533,8 @@ const submitAdd = lodash.debounce(async (formEl) => {
         data.set("number", ruleForm.number);
         data.set("number", ruleForm.number);
         data.set("hConfig", ruleForm.hConfig);
         data.set("hConfig", ruleForm.hConfig);
         data.set("fileListJson", JSON.stringify(ruleForm.fileListJson));
         data.set("fileListJson", JSON.stringify(ruleForm.fileListJson));
-        data.set("status", 1);
+        // data.set("status", 1);
+        data.set("houseNumber", arr.join(","));
         console.log(data);
         console.log(data);
         let res = await axios({
         let res = await axios({
           method: "post",
           method: "post",
@@ -894,59 +784,73 @@ onUnmounted(() => {
     color: rgb(0, 0, 0);
     color: rgb(0, 0, 0);
     font-size: 18px;
     font-size: 18px;
     font-weight: 600;
     font-weight: 600;
+
     span {
     span {
       margin-right: 20px;
       margin-right: 20px;
       cursor: pointer;
       cursor: pointer;
     }
     }
+
     .is_active {
     .is_active {
       color: rgba(111, 182, 184, 1);
       color: rgba(111, 182, 184, 1);
     }
     }
   }
   }
+
   .middle {
   .middle {
     width: 96%;
     width: 96%;
     margin: 0 auto;
     margin: 0 auto;
 
 
     color: #000;
     color: #000;
+
     // border-bottom: 1px solid rgb(231, 231, 231);
     // border-bottom: 1px solid rgb(231, 231, 231);
     .filter {
     .filter {
       display: flex;
       display: flex;
       flex-wrap: wrap;
       flex-wrap: wrap;
       align-items: center;
       align-items: center;
       margin: 10px 0 0 0;
       margin: 10px 0 0 0;
+
       .search {
       .search {
         color: #fff;
         color: #fff;
       }
       }
+
       .condition {
       .condition {
         display: flex;
         display: flex;
         align-items: center;
         align-items: center;
         margin: 10px 30px 10px 0;
         margin: 10px 30px 10px 0;
+
         :deep(.el-input .el-input__inner) {
         :deep(.el-input .el-input__inner) {
           font-size: 14px;
           font-size: 14px;
         }
         }
+
         span {
         span {
           margin: 0 10px 0 0;
           margin: 0 10px 0 0;
         }
         }
       }
       }
     }
     }
+
     .gongneng {
     .gongneng {
       margin: 10px 0 20px 0;
       margin: 10px 0 20px 0;
+
       span {
       span {
         color: #fff;
         color: #fff;
       }
       }
     }
     }
+
     :deep(.cont) {
     :deep(.cont) {
       width: 60%;
       width: 60%;
       margin: 20px auto;
       margin: 20px auto;
     }
     }
+
     :deep(.download) {
     :deep(.download) {
       display: flex;
       display: flex;
       align-items: center;
       align-items: center;
       margin: 10px;
       margin: 10px;
     }
     }
+
     :deep(.download span) {
     :deep(.download span) {
       font-size: 16px;
       font-size: 16px;
       margin-left: 20px;
       margin-left: 20px;
     }
     }
+
     :deep(.cont .el-button) {
     :deep(.cont .el-button) {
       margin-left: 60px;
       margin-left: 60px;
       margin-bottom: 30px;
       margin-bottom: 30px;
@@ -957,34 +861,42 @@ onUnmounted(() => {
       display: flex;
       display: flex;
       justify-content: center;
       justify-content: center;
     }
     }
+
     :deep(.cont .accomplish .el-button) {
     :deep(.cont .accomplish .el-button) {
       width: 50%;
       width: 50%;
       margin: 0;
       margin: 0;
     }
     }
   }
   }
+
   .footer {
   .footer {
     width: 96%;
     width: 96%;
     height: 550px;
     height: 550px;
     margin: 10px auto 30px;
     margin: 10px auto 30px;
+
     .el-table--fit {
     .el-table--fit {
       height: 100%;
       height: 100%;
+
       :deep(.el-table__header-wrapper) {
       :deep(.el-table__header-wrapper) {
         background-color: #000;
         background-color: #000;
         font-size: 16px;
         font-size: 16px;
+
         tr {
         tr {
           color: #000;
           color: #000;
         }
         }
       }
       }
+
       :deep(.el-table__row) {
       :deep(.el-table__row) {
         height: 50px;
         height: 50px;
         font-size: 16px;
         font-size: 16px;
         color: #000;
         color: #000;
       }
       }
+
       :deep(.el-table__row):nth-child(2n) {
       :deep(.el-table__row):nth-child(2n) {
         .el-table-fixed-column--right {
         .el-table-fixed-column--right {
           background-color: rgba(240, 243, 247, 1);
           background-color: rgba(240, 243, 247, 1);
         }
         }
       }
       }
+
       :deep(.el-table__row td) {
       :deep(.el-table__row td) {
         padding: 0;
         padding: 0;
         border: 0;
         border: 0;
@@ -993,27 +905,33 @@ onUnmounted(() => {
       .el-button--primary {
       .el-button--primary {
         margin-left: 5px;
         margin-left: 5px;
       }
       }
+
       :deep(.el-table__body .even) {
       :deep(.el-table__body .even) {
         background-color: #fff;
         background-color: #fff;
       }
       }
+
       :deep(.el-table__body .odd) {
       :deep(.el-table__body .odd) {
         background-color: rgba(240, 243, 247, 1);
         background-color: rgba(240, 243, 247, 1);
       }
       }
+
       :deep(.edit) {
       :deep(.edit) {
         display: flex;
         display: flex;
         align-items: center;
         align-items: center;
         justify-content: center;
         justify-content: center;
         color: rgba(111, 182, 184, 1);
         color: rgba(111, 182, 184, 1);
       }
       }
+
       :deep(.look) {
       :deep(.look) {
         padding: 0 10px;
         padding: 0 10px;
         cursor: pointer;
         cursor: pointer;
         color: rgba(111, 182, 184, 1);
         color: rgba(111, 182, 184, 1);
       }
       }
+
       .del {
       .del {
         color: red;
         color: red;
         cursor: pointer;
         cursor: pointer;
       }
       }
+
       // :deep(.look):hover {
       // :deep(.look):hover {
       //   color: red;
       //   color: red;
       // }
       // }
@@ -1026,36 +944,46 @@ onUnmounted(() => {
     :deep(.addStaff) {
     :deep(.addStaff) {
       height: 650px;
       height: 650px;
       border-radius: 11px;
       border-radius: 11px;
+
       .el-dialog__header {
       .el-dialog__header {
         border-radius: 11px 11px 0 0;
         border-radius: 11px 11px 0 0;
         background: rgba(237, 241, 245, 1);
         background: rgba(237, 241, 245, 1);
         font-weight: 600;
         font-weight: 600;
         margin: 0;
         margin: 0;
+
         .el-dialog__headerbtn {
         .el-dialog__headerbtn {
           outline: none;
           outline: none;
         }
         }
       }
       }
+
       .el-dialog__body {
       .el-dialog__body {
         padding: 10px 30px 10px 35px;
         padding: 10px 30px 10px 35px;
+
         .slider {
         .slider {
           height: 560px;
           height: 560px;
           overflow: auto;
           overflow: auto;
         }
         }
+
         .tooltips {
         .tooltips {
           display: flex;
           display: flex;
+
           .img {
           .img {
             display: flex;
             display: flex;
+
             .img_title {
             .img_title {
               span {
               span {
                 display: inline-block;
                 display: inline-block;
                 width: 60px;
                 width: 60px;
               }
               }
             }
             }
+
             .updateImg {
             .updateImg {
               display: flex;
               display: flex;
               flex-direction: column;
               flex-direction: column;
               width: 720px;
               width: 720px;
+
               .el-upload {
               .el-upload {
+
                 // margin-top: 20px;
                 // margin-top: 20px;
                 .zhu {
                 .zhu {
                   color: rgba(212, 48, 48, 1);
                   color: rgba(212, 48, 48, 1);
@@ -1064,6 +992,7 @@ onUnmounted(() => {
             }
             }
           }
           }
         }
         }
+
         .img1 {
         .img1 {
           img {
           img {
             width: 183px;
             width: 183px;
@@ -1071,24 +1000,30 @@ onUnmounted(() => {
             opacity: 1;
             opacity: 1;
             border-radius: 10px;
             border-radius: 10px;
           }
           }
+
           .updateImg {
           .updateImg {
             .el-upload__tip {
             .el-upload__tip {
               color: rgba(212, 48, 48, 1);
               color: rgba(212, 48, 48, 1);
               transform: translateX(-30px);
               transform: translateX(-30px);
             }
             }
+
             .el-upload-list {
             .el-upload-list {
               display: none;
               display: none;
             }
             }
+
             .imglist {
             .imglist {
               display: flex;
               display: flex;
               flex-wrap: wrap;
               flex-wrap: wrap;
               margin-bottom: 15px;
               margin-bottom: 15px;
+
               img {
               img {
                 margin-right: 15px;
                 margin-right: 15px;
               }
               }
+
               .imgItem {
               .imgItem {
                 position: relative;
                 position: relative;
               }
               }
+
               .lookImg {
               .lookImg {
                 width: 183px;
                 width: 183px;
                 height: 121px;
                 height: 121px;
@@ -1100,11 +1035,13 @@ onUnmounted(() => {
                 display: flex;
                 display: flex;
                 justify-content: center;
                 justify-content: center;
                 align-items: center;
                 align-items: center;
+
                 img {
                 img {
                   width: 30px;
                   width: 30px;
                   height: 30px;
                   height: 30px;
                   opacity: 0;
                   opacity: 0;
                 }
                 }
+
                 .delimg {
                 .delimg {
                   width: 30px;
                   width: 30px;
                   height: 30px;
                   height: 30px;
@@ -1114,12 +1051,15 @@ onUnmounted(() => {
                   margin-left: 5px;
                   margin-left: 5px;
                 }
                 }
               }
               }
+
               .lookImg:hover {
               .lookImg:hover {
                 background-color: rgba(0, 0, 0, 0.2);
                 background-color: rgba(0, 0, 0, 0.2);
+
                 img {
                 img {
                   opacity: 1;
                   opacity: 1;
                   cursor: pointer;
                   cursor: pointer;
                 }
                 }
+
                 .delimg {
                 .delimg {
                   opacity: 1;
                   opacity: 1;
                   cursor: pointer;
                   cursor: pointer;
@@ -1128,43 +1068,53 @@ onUnmounted(() => {
             }
             }
           }
           }
         }
         }
+
         .el-input {
         .el-input {
           width: 200px;
           width: 200px;
         }
         }
+
         .el-form {
         .el-form {
           .titles {
           .titles {
             font-weight: 600;
             font-weight: 600;
             color: #000;
             color: #000;
             font-size: 18px;
             font-size: 18px;
             margin: 10px 0 20px 0;
             margin: 10px 0 20px 0;
+
             span:nth-child(2) {
             span:nth-child(2) {
               color: rgba(212, 48, 48, 1);
               color: rgba(212, 48, 48, 1);
             }
             }
           }
           }
+
           .footer {
           .footer {
             color: rgba(212, 48, 48, 1);
             color: rgba(212, 48, 48, 1);
           }
           }
+
           .form_item {
           .form_item {
             display: flex;
             display: flex;
             margin-bottom: 10px;
             margin-bottom: 10px;
+
             .intro {
             .intro {
               .el-form-item__content {
               .el-form-item__content {
                 width: 550px;
                 width: 550px;
               }
               }
             }
             }
+
             .default {
             .default {
               .el-form-item__label {
               .el-form-item__label {
                 width: 160px !important;
                 width: 160px !important;
               }
               }
             }
             }
           }
           }
+
           .tag {
           .tag {
             .el-form-item__content {
             .el-form-item__content {
               width: 200px;
               width: 200px;
             }
             }
           }
           }
+
           .roomUl {
           .roomUl {
             display: flex;
             display: flex;
+
             // margin: 10px 0;
             // margin: 10px 0;
             // align-items: center;
             // align-items: center;
             .title {
             .title {
@@ -1173,6 +1123,7 @@ onUnmounted(() => {
               text-align: left;
               text-align: left;
               line-height: 40px;
               line-height: 40px;
             }
             }
+
             .delRoom {
             .delRoom {
               .ul {
               .ul {
                 width: 680px;
                 width: 680px;
@@ -1182,6 +1133,7 @@ onUnmounted(() => {
                 flex-wrap: wrap;
                 flex-wrap: wrap;
                 margin: 0;
                 margin: 0;
                 padding: 0;
                 padding: 0;
+
                 .li {
                 .li {
                   width: 108px;
                   width: 108px;
                   height: 40px;
                   height: 40px;
@@ -1191,26 +1143,32 @@ onUnmounted(() => {
                   align-items: center;
                   align-items: center;
                   margin: 0 10px 10px 0;
                   margin: 0 10px 10px 0;
                   border-radius: 7px;
                   border-radius: 7px;
+
                   span {
                   span {
                     margin-right: 40px;
                     margin-right: 40px;
                   }
                   }
+
                   .el-input {
                   .el-input {
                     width: 70px;
                     width: 70px;
+
                     .el-input__wrapper {
                     .el-input__wrapper {
                       box-shadow: none;
                       box-shadow: none;
                     }
                     }
                   }
                   }
+
                   .del {
                   .del {
                     width: 14px;
                     width: 14px;
                     height: 14px;
                     height: 14px;
                     background-image: url("@/assets/delete.png");
                     background-image: url("@/assets/delete.png");
                     background-size: 100%;
                     background-size: 100%;
                   }
                   }
+
                   .del:hover {
                   .del:hover {
                     background-image: url("@/assets/delete_hover.png");
                     background-image: url("@/assets/delete_hover.png");
                     cursor: pointer;
                     cursor: pointer;
                   }
                   }
                 }
                 }
+
                 .addRoom {
                 .addRoom {
                   cursor: pointer;
                   cursor: pointer;
                   margin-left: 10px;
                   margin-left: 10px;
@@ -1219,6 +1177,7 @@ onUnmounted(() => {
                   display: flex;
                   display: flex;
                   justify-content: space-around;
                   justify-content: space-around;
                   align-items: center;
                   align-items: center;
+
                   img {
                   img {
                     width: 15px;
                     width: 15px;
                     margin-right: 5px;
                     margin-right: 5px;
@@ -1228,14 +1187,17 @@ onUnmounted(() => {
             }
             }
           }
           }
         }
         }
+
         .options {
         .options {
           width: 100%;
           width: 100%;
           margin: 25px 0 15px 0;
           margin: 25px 0 15px 0;
+
           .el-form-item__content {
           .el-form-item__content {
             .queding {
             .queding {
               margin-left: 20px;
               margin-left: 20px;
               color: #fff;
               color: #fff;
             }
             }
+
             display: flex;
             display: flex;
             flex-direction: row-reverse;
             flex-direction: row-reverse;
           }
           }
@@ -1243,6 +1205,7 @@ onUnmounted(() => {
       }
       }
     }
     }
   }
   }
+
   .bgImg {
   .bgImg {
     position: absolute;
     position: absolute;
     left: 0;
     left: 0;
@@ -1251,58 +1214,72 @@ onUnmounted(() => {
     width: 100%;
     width: 100%;
     height: 100%;
     height: 100%;
     background-color: rgba(255, 255, 255, 0.8);
     background-color: rgba(255, 255, 255, 0.8);
+
     // border-radius: 50px;
     // border-radius: 50px;
     :deep(.el-carousel__container) {
     :deep(.el-carousel__container) {
       width: 100%;
       width: 100%;
       height: calc(100vh);
       height: calc(100vh);
+
       .el-carousel__item {
       .el-carousel__item {
         display: flex;
         display: flex;
         justify-content: center;
         justify-content: center;
+
         img {
         img {
           height: 100%;
           height: 100%;
         }
         }
       }
       }
     }
     }
   }
   }
+
   .pageSize {
   .pageSize {
     display: flex;
     display: flex;
     align-items: center;
     align-items: center;
     justify-content: space-between;
     justify-content: space-between;
     margin: 0 30px;
     margin: 0 30px;
+
     span {
     span {
       color: #000;
       color: #000;
     }
     }
+
     .el-pagination {
     .el-pagination {
+
       // width: 1600px;
       // width: 1600px;
       :deep(.el-pagination__total) {
       :deep(.el-pagination__total) {
         color: #000;
         color: #000;
       }
       }
+
       :deep(.el-pagination__goto) {
       :deep(.el-pagination__goto) {
         color: #000;
         color: #000;
       }
       }
+
       :deep(.el-pagination__classifier) {
       :deep(.el-pagination__classifier) {
         color: #000;
         color: #000;
       }
       }
+
       :deep(.el-input__wrapper) {
       :deep(.el-input__wrapper) {
         border: 1px solid rgba(0, 0, 0, 1);
         border: 1px solid rgba(0, 0, 0, 1);
         border-radius: 5px;
         border-radius: 5px;
         box-shadow: none;
         box-shadow: none;
       }
       }
+
       :deep(.el-pager li) {
       :deep(.el-pager li) {
         margin: 0 5px;
         margin: 0 5px;
         border: 1px solid rgba(0, 0, 0, 1);
         border: 1px solid rgba(0, 0, 0, 1);
         border-radius: 5px;
         border-radius: 5px;
         background-color: transparent;
         background-color: transparent;
       }
       }
+
       :deep(.el-pager li.is-active) {
       :deep(.el-pager li.is-active) {
         background-color: rgba(111, 182, 184, 1);
         background-color: rgba(111, 182, 184, 1);
       }
       }
+
       :deep(.btn-prev) {
       :deep(.btn-prev) {
         margin-right: 5px;
         margin-right: 5px;
         border: 1px solid rgba(0, 0, 0, 1);
         border: 1px solid rgba(0, 0, 0, 1);
         border-radius: 5px;
         border-radius: 5px;
         background-color: transparent;
         background-color: transparent;
       }
       }
+
       :deep(.btn-next) {
       :deep(.btn-next) {
         margin-left: 5px;
         margin-left: 5px;
         border: 1px solid rgba(0, 0, 0, 1);
         border: 1px solid rgba(0, 0, 0, 1);
@@ -1312,6 +1289,7 @@ onUnmounted(() => {
     }
     }
   }
   }
 }
 }
+
 .el-input {
 .el-input {
   width: 192px;
   width: 192px;
 }
 }

+ 2 - 1
vite.config.js

@@ -35,8 +35,9 @@ export default defineConfig({
     // // 测试地址
     // // 测试地址
     proxy: {
     proxy: {
       "/hotelReservation": {
       "/hotelReservation": {
-        target: "https://chtech.ncjti.edu.cn/hotelReservation",
+        // target: "https://chtech.ncjti.edu.cn/hotelReservation",
         // target: "http://101.42.162.31/hotelReservation/", // 测试环境
         // target: "http://101.42.162.31/hotelReservation/", // 测试环境
+        target: "https://www.xn--gmq052a5d255v.com/hotelReservation/", // 测试环境
         changeOrigin: true,
         changeOrigin: true,
         rewrite: (path) => path.replace(/^\/hotelReservation/, ""),
         rewrite: (path) => path.replace(/^\/hotelReservation/, ""),
       },
       },