Jelajahi Sumber

Merge branch 'dev' of http://1.94.207.143:3000/xyy/xyy-m into dev

suwenjiang 2 bulan lalu
induk
melakukan
0230bbaebd

TEMPAT SAMPAH
src/assets/img/house/oldHouse.png


TEMPAT SAMPAH
src/assets/img/house/rentHouse.png


TEMPAT SAMPAH
src/assets/img/house/saleHouse.png


TEMPAT SAMPAH
src/assets/img/navbar/menu_car.png


TEMPAT SAMPAH
src/assets/img/navbar/menu_house.png


TEMPAT SAMPAH
src/assets/img/navbar/menu_travel_project.png


TEMPAT SAMPAH
src/assets/img/navbar/menu_visa.png


+ 96 - 73
src/components/NavigationBar/LeftMenu.vue

@@ -5,13 +5,22 @@
     </div>
     <div class="px-20">
       <NuxtLink v-if="!token" to="/login" class="flex items-center space-x-15">
-        <div class="flex items-center justify-center bg-[#d9d9d9] rounded-full h-60 w-60">
-          <span class="iconfont icon-profile text-black-6" style="font-size: 30px"></span>
+        <div
+          class="flex items-center justify-center bg-[#d9d9d9] rounded-full h-60 w-60"
+        >
+          <span
+            class="iconfont icon-profile text-black-6"
+            style="font-size: 30px"
+          ></span>
         </div>
         <span class="text-black-6 text-base">登录</span>
       </NuxtLink>
 
-      <div @click="handleToProfile" v-else-if="token" class="flex items-center space-x-15">
+      <div
+        @click="handleToProfile"
+        v-else-if="token"
+        class="flex items-center space-x-15"
+      >
         <van-image
           :src="userInfo.headImageUrl || defaultAvatar"
           height="60"
@@ -25,7 +34,9 @@
           </div>
           <div v-if="userInfo.personalSign" class="text-black-6 text-sm">
             <span class="text-black-6">个性签名:</span>
-            <span class="text-black-3 break-all">{{ userInfo.personalSign }}</span>
+            <span class="text-black-3 break-all">{{
+              userInfo.personalSign
+            }}</span>
           </div>
         </div>
       </div>
@@ -58,142 +69,154 @@
       </div>
     </div>
 
-    <van-button v-if="token" round="" @click="handleLogout" plain style="margin: 20px 20px">
+    <van-button
+      v-if="token"
+      round=""
+      @click="handleLogout"
+      plain
+      style="margin: 20px 20px"
+    >
       退出登录
     </van-button>
   </div>
 </template>
 
 <script setup>
-import menu_travel_home from '~/assets/img/navbar/menu_home.png'
-import menu_car from '@/assets/img/navbar/menu_car.png'
-import menu_create_note from '@/assets/img/navbar/menu_create_note.png'
-import menu_house from '@/assets/img/navbar/menu_house.png'
-import menu_labour from '@/assets/img/navbar/menu_loubar.png'
-import menu_tickets from '@/assets/img/navbar/menu_tickets.png'
-import menu_travel_note from '@/assets/img/navbar/menu_travel_note.png'
-import menu_travel_project from '@/assets/img/navbar/menu_travel_project.png'
-import menu_visa from '@/assets/img/navbar/menu_visa.png'
-import menu_profile from '@/assets/img/navbar/menu_profile.png'
-import defaultAvatar from '~/assets/img/default_avatar.png'
-import LeftMenuItem from './LeftMenuItem.vue'
+import menu_travel_home from "~/assets/img/navbar/menu_home.png";
+import menu_car from "@/assets/img/navbar/menu_car.png";
+import menu_create_note from "@/assets/img/navbar/menu_create_note.png";
+import menu_house from "@/assets/img/navbar/menu_house.png";
+import menu_labour from "@/assets/img/navbar/menu_loubar.png";
+import menu_tickets from "@/assets/img/navbar/menu_tickets.png";
+import menu_travel_note from "@/assets/img/navbar/menu_travel_note.png";
+import menu_travel_project from "@/assets/img/navbar/menu_travel_project.png";
+import menu_visa from "@/assets/img/navbar/menu_visa.png";
+import menu_profile from "@/assets/img/navbar/menu_profile.png";
+import defaultAvatar from "~/assets/img/default_avatar.png";
+import LeftMenuItem from "./LeftMenuItem.vue";
 
-const visible = defineModel('visible')
+const visible = defineModel("visible");
 
-const route = useRoute()
+const route = useRoute();
 
-const authStore = useAuthStore()
-const { token } = storeToRefs(authStore)
+const authStore = useAuthStore();
+const { token } = storeToRefs(authStore);
 
-const userInfoStore = useUserInfoStore()
-const { userInfo } = storeToRefs(userInfoStore)
+const userInfoStore = useUserInfoStore();
+const { userInfo } = storeToRefs(userInfoStore);
 
-const menuData = ref([])
+const menuData = ref([]);
 
 const writeNoteMenu = {
-  title: '写游记',
-  icon: menu_create_note,
-  to: '/note-create'
-}
+  title: "写游记",
+  icon: menu_travel_note,
+  to: "/note-create",
+};
 
 const fixedMenuData = [
   {
-    title: '首页',
+    title: "首页",
     icon: menu_travel_home,
-    to: '/'
+    to: "/",
   },
   {
-    title: '游记',
-    icon: menu_travel_note,
-    to: '/travel-notes'
+    title: "旅行笔记",
+    icon: menu_create_note,
+    to: "/travel-notes",
   },
   {
-    title: '旅游项目',
+    title: "旅行项目",
     icon: menu_travel_project,
-    to: '/travel-projects'
+    to: "/travel-projects",
   },
   {
-    title: '签证居留',
+    title: "签证居留",
     icon: menu_visa,
-    to: '/visa'
+    to: "/visa",
   },
   {
-    title: '全球包车',
+    title: "全球包车",
     icon: menu_car,
-    to: '/car'
+    to: "/car",
   },
   {
-    title: '买房卖房',
+    title: "房屋租售",
     icon: menu_house,
-    to: '/house'
-  }
-]
+    to: "/house",
+  },
+];
 
 const profileMenu = [
   {
-    title: '旅游订单',
-    to: '/profile/travel-orders'
+    title: "旅游订单",
+    to: "/profile/travel-orders",
   },
   {
-    title: '包车订单',
-    to: '/profile/car-orders'
+    title: "签证订单",
+    to: "/profile/visa-orders",
   },
   {
-    title: '签证订单',
-    to: '/profile/visa-orders'
+    title: "包车订单",
+    to: "/profile/car-orders",
   },
   {
-    title: '我的收藏',
-    to: '/profile/collection'
+    title: "我的游记",
+    to: "/profile/notes",
   },
   {
-    title: '我的游记',
-    to: '/profile/notes'
+    title: "我的收藏",
+    to: "/profile/collection",
   },
+
   {
-    title: '我的评论',
-    to: '/profile/my-comment'
-  }
-]
+    title: "我的评论",
+    to: "/profile/my-comment",
+  },
+];
 
-const isProfileMenuExpanded = ref(false)
+const isProfileMenuExpanded = ref(true);
 
 watch(
   token,
   (val) => {
     if (!val) {
-      menuData.value = fixedMenuData
+      menuData.value = fixedMenuData;
     } else {
-      userInfoStore.getUserInfo()
-      menuData.value = [...fixedMenuData, writeNoteMenu]
+      userInfoStore.getUserInfo();
+
+      menuData.value = [
+        ...fixedMenuData.slice(0, 1),
+        writeNoteMenu,
+        ...fixedMenuData.slice(1),
+      ];
     }
   },
   {
-    immediate: true
+    immediate: true,
   }
-)
+);
 
 function handleClickMenu(item) {
-  visible.value = false
+  visible.value = false;
   navigateTo({
-    path: item.to
-  })
+    path: item.to,
+  });
 }
 
 function handleToProfile() {
-  visible.value = false
+  visible.value = false;
   navigateTo({
-    path: '/profile'
-  })
+    path: "/profile",
+  });
 }
 
 function handleLogout() {
   try {
-    request('/website/web/doLogout', { method: 'post' })
+    request("/website/web/doLogout", { method: "post" });
   } finally {
-    authStore.cleanToken()
-    navigateTo('/')
-    visible.value = false
+    authStore.cleanToken();
+    navigateTo("/");
+    visible.value = false;
   }
 }
 </script>

+ 1 - 1
src/components/TravelProjectDetail/BookInfo.vue

@@ -51,7 +51,7 @@
             v-model="customerName"
             label="联系人"
             maxlength="50"
-            placeholder="请输入联系人姓名"
+            placeholder="请输入联系人"
           />
           <van-field
             v-model="customerMobile"

+ 6 - 3
src/pages/house/index.vue

@@ -7,15 +7,15 @@
                 <span class="text-[#707070] font-bold ">新房</span>
             </NuxtLink>
             <NuxtLink to="/house/oldHouse" class="w-[80px] h-[42px] flex items-center justify-center bg-[#fff] rounded">
-                <img class="w-[30px] h-[30px]" :src="newHouseIcon" alt="">
+                <img class="w-[30px] h-[30px]" :src="oldHouseIcon" alt="">
                 <span class="text-[#707070] font-bold ">二手房</span>
             </NuxtLink>
             <div @click="showModal=true" class="w-[80px] h-[42px] flex items-center justify-center bg-[#fff] rounded">
-                <img class="w-[30px] h-[30px]" :src="newHouseIcon" alt="">
+                <img class="w-[30px] h-[30px]" :src="saleHouseIcon" alt="">
                 <span class="text-[#707070] font-bold ">卖房</span>
             </div>
             <NuxtLink to="/house/rentHouse" class="w-[80px] h-[42px] flex items-center justify-center bg-[#fff] rounded">
-                <img class="w-[30px] h-[30px]" :src="newHouseIcon" alt="">
+                <img class="w-[30px] h-[30px]" :src="rentHouseIcon" alt="">
                 <span class="text-[#707070] font-bold ">租房</span>
             </NuxtLink>
         </div>
@@ -56,6 +56,9 @@
 
 <script setup>
 import newHouseIcon from '~/assets/img/house/newHouse.png';
+import oldHouseIcon from '~/assets/img/house/oldHouse.png';
+import saleHouseIcon from '~/assets/img/house/saleHouse.png';
+import rentHouseIcon from '~/assets/img/house/rentHouse.png';
 import modalBgIcon from '~/assets/img/house/modalBg.png';
 
 

+ 46 - 45
src/pages/house/rentHouse/[id].vue

@@ -55,90 +55,91 @@
                 <van-col span="5">
                     <div class="text-[#242424] font-bold h-full flex flex-col justify-center items-center">
                         <img :src="equipmentIcon" class="w-[26px] h-[26px]" />
-                        <div>
-                            设施
-                        </div>
+                        
+                        <span class="mt-3">
+                            居家<br/>设施
+                        </span>
                     </div>
                 </van-col>
                 <van-col span="6">
                     <div class="">
                         <div class="flex items-center">
-                            <van-icon v-if="dataDetail?.tourHouseEquipment?.icebox" name="success" size="20px" />
-                            <van-icon v-else name="cross" size="20px" color="#999" />
-                            <span :class="[dataDetail?.tourHouseEquipment?.icebox?'':'text-[#999]']">冰箱</span>
+                            <span v-if="dataDetail?.tourHouseEquipment?.icebox">√</span>
+                            <span v-else class="text-[#999]">x</span>
+                            <span class="ml-5" :class="[dataDetail?.tourHouseEquipment?.icebox?'':'text-[#999]']">冰箱</span>
                         </div>
                         <div class="flex items-center mt-8">
-                            <van-icon v-if="dataDetail?.tourHouseEquipment?.broadband" name="success" size="20px" />
-                            <van-icon v-else name="cross" size="20px" color="#999" />
-                            <span :class="[dataDetail?.tourHouseEquipment?.icebox?'':'text-[#999]']">宽带</span>
+                            <span v-if="dataDetail?.tourHouseEquipment?.broadband">√</span>
+                            <span v-else class="text-[#999]">x</span>
+                            <span class="ml-5" :class="[dataDetail?.tourHouseEquipment?.broadband?'':'text-[#999]']">宽带</span>
                         </div>
                         <div class="flex items-center mt-8">
-                            <van-icon v-if="dataDetail?.tourHouseEquipment?.gasStove" name="success" size="20px" />
-                            <van-icon v-else name="cross" size="20px" color="#999" />
-                            <span :class="[dataDetail?.tourHouseEquipment?.icebox?'':'text-[#999]']">燃气灶</span>
+                            <span v-if="dataDetail?.tourHouseEquipment?.gasStove">√</span>
+                            <span v-else class="text-[#999]">x</span>
+                            <span class="ml-5" :class="[dataDetail?.tourHouseEquipment?.gasStove?'':'text-[#999]']">燃气灶</span>
                         </div>
                         <div class="flex items-center mt-8">
-                            <van-icon v-if="dataDetail?.tourHouseEquipment?.bed" name="success" size="20px" />
-                            <van-icon v-else name="cross" size="20px" color="#999" />
-                            <span :class="[dataDetail?.tourHouseEquipment?.icebox?'':'text-[#999]']">床</span>
+                            <span v-if="dataDetail?.tourHouseEquipment?.bed">√</span>
+                            <span v-else class="text-[#999]">x</span>
+                            <span class="ml-5" :class="[dataDetail?.tourHouseEquipment?.bed?'':'text-[#999]']">床</span>
                         </div>
                         <div class="flex items-center mt-8">
-                            <van-icon v-if="dataDetail?.tourHouseEquipment?.balcony" name="success" size="20px" />
-                            <van-icon v-else name="cross" size="20px" color="#999" />
-                            <span :class="[dataDetail?.tourHouseEquipment?.icebox?'':'text-[#999]']">阳台</span>
+                            <span v-if="dataDetail?.tourHouseEquipment?.balcony">√</span>
+                            <span v-else class="text-[#999]">x</span>
+                            <span class="ml-5" :class="[dataDetail?.tourHouseEquipment?.balcony?'':'text-[#999]']">阳台</span>
                         </div>
                     </div>
                 </van-col>
                 <van-col span="6">
                     <div class="">
                         <div class="flex items-center">
-                            <van-icon v-if="dataDetail?.tourHouseEquipment?.washer" name="success" size="20px" />
-                            <van-icon v-else name="cross" size="20px" color="#999" />
-                            <span :class="[dataDetail?.tourHouseEquipment?.washer?'':'text-[#999]']">洗衣机</span>
+                            <span v-if="dataDetail?.tourHouseEquipment?.washer">√</span>
+                            <span v-else class="text-[#999]">x</span>
+                            <span class="ml-5" :class="[dataDetail?.tourHouseEquipment?.washer?'':'text-[#999]']">洗衣机</span>
                         </div>
                         <div class="flex items-center mt-8">
-                            <van-icon v-if="dataDetail?.tourHouseEquipment?.sofa" name="success" size="20px" />
-                            <van-icon v-else name="cross" size="20px" color="#999" />
-                            <span :class="[dataDetail?.tourHouseEquipment?.sofa?'':'text-[#999]']">沙发</span>
+                            <span v-if="dataDetail?.tourHouseEquipment?.sofa">√</span>
+                            <span v-else class="text-[#999]">x</span>
+                            <span class="ml-5" :class="[dataDetail?.tourHouseEquipment?.sofa?'':'text-[#999]']">沙发</span>
                         </div>
                         <div class="flex items-center mt-8">
-                            <van-icon v-if="dataDetail?.tourHouseEquipment?.airConditioner" name="success" size="20px" />
-                            <van-icon v-else name="cross" size="20px" color="#999" />
-                            <span :class="[dataDetail?.tourHouseEquipment?.airConditioner?'':'text-[#999]']">空调</span>
+                            <span v-if="dataDetail?.tourHouseEquipment?.airConditioner">√</span>
+                            <span v-else class="text-[#999]">x</span>
+                            <span class="ml-5" :class="[dataDetail?.tourHouseEquipment?.airConditioner?'':'text-[#999]']">空调</span>
                         </div>
                         <div class="flex items-center mt-8">
-                            <van-icon v-if="dataDetail?.tourHouseEquipment?.restRoom" name="success" size="20px" />
-                            <van-icon v-else name="cross" size="20px" color="#999" />
-                            <span :class="[dataDetail?.tourHouseEquipment?.restRoom?'':'text-[#999]']">卫生间</span>
+                            <span v-if="dataDetail?.tourHouseEquipment?.restRoom">√</span>
+                            <span v-else class="text-[#999]">x</span>
+                            <span class="ml-5" :class="[dataDetail?.tourHouseEquipment?.restRoom?'':'text-[#999]']">卫生间</span>
                         </div>
                         <div class="flex items-center mt-8">
-                            <van-icon v-if="dataDetail?.tourHouseEquipment?.heating" name="success" size="20px" />
-                            <van-icon v-else name="cross" size="20px" color="#999" />
-                            <span :class="[dataDetail?.tourHouseEquipment?.heating?'':'text-[#999]']">暖气</span>
+                            <span v-if="dataDetail?.tourHouseEquipment?.heating">√</span>
+                            <span v-else class="text-[#999]">x</span>
+                            <span class="ml-5" :class="[dataDetail?.tourHouseEquipment?.heating?'':'text-[#999]']">暖气</span>
                         </div>
                     </div>
                 </van-col>
                 <van-col span="6">
                     <div class="">
                         <div class="flex items-center">
-                            <van-icon v-if="dataDetail?.tourHouseEquipment?.calorifier" name="success" size="20px" />
-                            <van-icon v-else name="cross" size="20px" color="#999" />
-                            <span :class="[dataDetail?.tourHouseEquipment?.calorifier?'':'text-[#999]']">热水器</span>
+                            <span v-if="dataDetail?.tourHouseEquipment?.calorifier">√</span>
+                            <span v-else class="text-[#999]">x</span>
+                            <span class="ml-5" :class="[dataDetail?.tourHouseEquipment?.calorifier?'':'text-[#999]']">热水器</span>
                         </div>
                         <div class="flex items-center mt-8">
-                            <van-icon v-if="dataDetail?.tourHouseEquipment?.rangeHood" name="success" size="20px" />
-                            <van-icon v-else name="cross" size="20px" color="#999" />
-                            <span :class="[dataDetail?.tourHouseEquipment?.rangeHood?'':'text-[#999]']">油烟机</span>
+                            <span v-if="dataDetail?.tourHouseEquipment?.rangeHood">√</span>
+                            <span v-else class="text-[#999]">x</span>
+                            <span class="ml-5" :class="[dataDetail?.tourHouseEquipment?.rangeHood?'':'text-[#999]']">油烟机</span>
                         </div>
                         <div class="flex items-center mt-8">
-                            <van-icon v-if="dataDetail?.tourHouseEquipment?.wardrobe" name="success" size="20px" />
-                            <van-icon v-else name="cross" size="20px" color="#999" />
-                            <span :class="[dataDetail?.tourHouseEquipment?.wardrobe?'':'text-[#999]']">衣柜</span>
+                            <span v-if="dataDetail?.tourHouseEquipment?.wardrobe">√</span>
+                            <span v-else class="text-[#999]">x</span>
+                            <span class="ml-5" :class="[dataDetail?.tourHouseEquipment?.wardrobe?'':'text-[#999]']">衣柜</span>
                         </div>
                         <div class="flex items-center mt-8">
-                            <van-icon v-if="dataDetail?.tourHouseEquipment?.smartDoorLock" name="success" size="20px" />
-                            <van-icon v-else name="cross" size="20px" color="#999" />
-                            <span :class="[dataDetail?.tourHouseEquipment?.smartDoorLock?'':'text-[#999]']">智能门锁</span>
+                            <span v-if="dataDetail?.tourHouseEquipment?.smartDoorLock">√</span>
+                            <span v-else class="text-[#999]">x</span>
+                            <span class="ml-5"  :class="[dataDetail?.tourHouseEquipment?.smartDoorLock?'':'text-[#999]']">智能门锁</span>
                         </div>
                     </div>
                 </van-col>

+ 10 - 10
src/pages/profile/index.vue

@@ -63,16 +63,6 @@ const menuData = [
     to: "/profile/travel-orders",
   },
   {
-    icon: profile_travel_note,
-    label: "我的游记",
-    to: "/profile/notes",
-  },
-  {
-    icon: profile_colection,
-    label: "我的收藏",
-    to: "/profile/collection",
-  },
-  {
     icon: profile_visa_order,
     label: "签证订单",
     to: "/profile/visa-orders",
@@ -83,6 +73,16 @@ const menuData = [
     to: "/profile/car-orders",
   },
   {
+    icon: profile_travel_note,
+    label: "我的游记",
+    to: "/profile/notes",
+  },
+  {
+    icon: profile_colection,
+    label: "我的收藏",
+    to: "/profile/collection",
+  },
+  {
     icon: profile_my_comment,
     label: "我的评论",
     to: "/profile/my-comment",

+ 5 - 3
src/pages/profile/travel-order/[id].vue

@@ -13,6 +13,7 @@
         }}</span>
       </div>
       <div class="mt-10">订单号:{{ orderDetailInfo.orderNo }}</div>
+      <div class="mt-5">下单时间:{{ orderDetailInfo.createTime }}</div>
     </div>
 
     <div class="mt-15 flex flex-col space-y-10 rounded-xl bg-white p-20">
@@ -27,12 +28,13 @@
           orderDetailInfo?.tourismProjectVo?.projectTitle || ""
         }}</span>
       </div>
-      <div>预定时间:{{ orderDetailInfo.createTime }}</div>
+
       <div>
-        行程日期:{{
+        出发日期:{{
           $dayjs(orderDetailInfo.departureDate).format("YYYY-MM-DD")
         }}
       </div>
+      <div>行程天数:{{ orderDetailInfo.countTimes }}</div>
     </div>
 
     <div class="mt-15 rounded-xl bg-white p-20">
@@ -46,7 +48,7 @@
         <span class="ml-5 text-xl font-semibold text-black-3">顾客信息</span>
       </div>
       <div class="flex flex-col space-y-5 mt-15">
-        <div>顾客姓名:{{ orderDetailInfo.customerName }}</div>
+        <div>联系人:{{ orderDetailInfo.customerName }}</div>
         <div>联系电话:{{ orderDetailInfo.customerMobile }}</div>
         <div>备用电话:{{ orderDetailInfo.customerMobileStandby }}</div>
         <div>微信:{{ orderDetailInfo.customerWechat }}</div>