Commit ce68ca22 authored by 黄奎's avatar 黄奎

临时提交

parent c997b6dc
import Vue from 'vue' import Vue from 'vue'
import axios from 'axios' import axios from 'axios'
import md5 from 'js-md5' import md5 from 'js-md5'
// import {eventBus} from './eventBus'
import VueCoreVideoPlayer from 'vue-core-video-players' import VueCoreVideoPlayer from 'vue-core-video-players'
import 'viewerjs/dist/viewer.css' import 'viewerjs/dist/viewer.css'
import user from './user' import user from './user'
import message from './message' import message from './message'
import product from './product' import product from './product'
import VueViewer from 'v-viewer' import VueViewer from 'v-viewer'
// import VueCoreVideoPlayer from 'vue-core-video-player'
Vue.prototype.$EventBus = new Vue() Vue.prototype.$EventBus = new Vue()
Vue.use(VueCoreVideoPlayer) Vue.use(VueCoreVideoPlayer)
Vue.use(VueViewer) Vue.use(VueViewer)
Vue.prototype.$md5 = md5; Vue.prototype.$md5 = md5;
Vue.prototype.$message = message Vue.prototype.$message = message
Vue.prototype.$product = product Vue.prototype.$product = product
//域名管理对象 //域名管理对象
Vue.prototype.domainManager = function() { Vue.prototype.domainManager = function () {
let domainUrl = ''; let domainUrl = 'http://192.168.5.214';
domainUrl = "http://192.168.2.214:8082"; domainUrl = "http://192.168.5.46:8501";
domainUrl = "http://127.0.0.1"; var domainNameUrl = window.location.hostname;
let domainNameUrl = this.GetDomain(); if (domainNameUrl.indexOf('oytour') !== -1) {
domainNameUrl = "http://tmb2b.oytour.com/" domainUrl = 'http://reborn.oytour.com'
if (domainNameUrl.indexOf('testerp.oytour') !== -1) {
domainUrl = "http://testapi.oytour.com";
} else if (domainNameUrl.indexOf('oytour') !== -1) {
// domainUrl = "http://reborn.oytour.com";
domainUrl = 'http://192.168.10.226:8015' //'http://192.168.10.226:8015' ''http://192.168.10.9:8083' '
} }
var obj = { var obj = {
//主地址 DomainUrl: domainUrl, //ERP接口地址
DomainUrl: domainUrl, PostUrl: domainUrl + "/api/common/post", //常用提交数据URL
//常用提交数据URL
PostUrl: domainUrl + "/api/common/post",
javaUrl: 'http://efficient.oytour.com' javaUrl: 'http://efficient.oytour.com'
}; };
return obj; return obj;
} }
//获取当前域名 //获取当前域名
Vue.prototype.GetDomain = function() { Vue.prototype.GetDomain = function () {
var domainNameUrl = window.location.hostname; var domainNameUrl = window.location.hostname;
domainNameUrl = "www.oytour.com"; domainNameUrl = "www.oytour.com";
return domainNameUrl; return domainNameUrl;
} }
Vue.prototype.groupBy = function(array, f) { Vue.prototype.groupBy = function (array, f) {
const groups = {}; const groups = {};
array.forEach((item) => { array.forEach((item) => {
const group = JSON.stringify(f(item)); const group = JSON.stringify(f(item));
...@@ -58,7 +50,8 @@ Vue.prototype.groupBy = function(array, f) { ...@@ -58,7 +50,8 @@ Vue.prototype.groupBy = function(array, f) {
}; };
}); });
} }
Vue.prototype.moneyFormat = function(num, decimal = 2, split = ',') {
Vue.prototype.moneyFormat = function (num, decimal = 2, split = ',') {
function thousandFormat(num) { function thousandFormat(num) {
const len = num.length const len = num.length
return len <= 3 ? num : thousandFormat(num.substr(0, len - 3)) + split + num.substr(len - 3, 3) return len <= 3 ? num : thousandFormat(num.substr(0, len - 3)) + split + num.substr(len - 3, 3)
...@@ -82,9 +75,9 @@ Vue.prototype.moneyFormat = function(num, decimal = 2, split = ',') { ...@@ -82,9 +75,9 @@ Vue.prototype.moneyFormat = function(num, decimal = 2, split = ',') {
} else { } else {
return '--' return '--'
} }
} }
//HTTP提交数据 //HTTP提交数据
Vue.prototype.apipost = function(cmd, msg, successCall, faildCall) { Vue.prototype.apipost = function (cmd, msg, successCall, faildCall) {
if (msg == null || msg == "") { if (msg == null || msg == "") {
msg = {} msg = {}
} }
...@@ -122,10 +115,12 @@ Vue.prototype.apipost = function(cmd, msg, successCall, faildCall) { ...@@ -122,10 +115,12 @@ Vue.prototype.apipost = function(cmd, msg, successCall, faildCall) {
} }
}) })
.then(res => { .then(res => {
if(res.data.resultCode === 10000) { if (res.data.resultCode === 10000) {
this.$router.replace({ this.$router.replace({
path: '/login', path: '/login',
query: {path: path} query: {
path: path
}
}); });
return return
} }
...@@ -134,7 +129,7 @@ Vue.prototype.apipost = function(cmd, msg, successCall, faildCall) { ...@@ -134,7 +129,7 @@ Vue.prototype.apipost = function(cmd, msg, successCall, faildCall) {
}, faildCall) }, faildCall)
} }
Vue.prototype.apiJavaPost = function(cmd, msg, successCall, faildCall) { Vue.prototype.apiJavaPost = function (cmd, msg, successCall, faildCall) {
if (msg == null || msg == "") { if (msg == null || msg == "") {
msg = {} msg = {}
} }
...@@ -146,7 +141,7 @@ Vue.prototype.apiJavaPost = function(cmd, msg, successCall, faildCall) { ...@@ -146,7 +141,7 @@ Vue.prototype.apiJavaPost = function(cmd, msg, successCall, faildCall) {
var GroupId = 0; var GroupId = 0;
if (this.getLocalStorage() != null) { if (this.getLocalStorage() != null) {
token = this.getLocalStorage().token; token = this.getLocalStorage().token;
key = '' //this.getLocalStorage().secretKey; key = '';
} }
if (localStorage.groupinfo && localStorage.groupinfo != 'undefined') { if (localStorage.groupinfo && localStorage.groupinfo != 'undefined') {
var groupJson = JSON.parse(localStorage.groupinfo); var groupJson = JSON.parse(localStorage.groupinfo);
...@@ -175,7 +170,7 @@ Vue.prototype.apiJavaPost = function(cmd, msg, successCall, faildCall) { ...@@ -175,7 +170,7 @@ Vue.prototype.apiJavaPost = function(cmd, msg, successCall, faildCall) {
//获取缓存 //获取缓存
Vue.prototype.getLocalStorage = function() { Vue.prototype.getLocalStorage = function () {
try { try {
var localStorageData = window.localStorage["b2bUser"]; var localStorageData = window.localStorage["b2bUser"];
if (localStorageData !== undefined && localStorageData != 'undefined') { if (localStorageData !== undefined && localStorageData != 'undefined') {
...@@ -190,7 +185,7 @@ Vue.prototype.apiJavaPost = function(cmd, msg, successCall, faildCall) { ...@@ -190,7 +185,7 @@ Vue.prototype.apiJavaPost = function(cmd, msg, successCall, faildCall) {
} }
//向外跳转 //向外跳转
Vue.prototype.OpenNewUrl = function(URL) { Vue.prototype.OpenNewUrl = function (URL) {
if (URL && URL != '') { if (URL && URL != '') {
if (URL.indexOf("https") != -1) { if (URL.indexOf("https") != -1) {
var str = 'http://' + URL.substring(8); var str = 'http://' + URL.substring(8);
...@@ -205,8 +200,8 @@ Vue.prototype.OpenNewUrl = function(URL) { ...@@ -205,8 +200,8 @@ Vue.prototype.OpenNewUrl = function(URL) {
} }
//公用跳转 //公用跳转
Vue.prototype.CommonJump = function(path, obj, type = 'push') { Vue.prototype.CommonJump = function (path, obj, type = 'push') {
let p = typeof(path) == 'string' ? path : this.$product.genernalUrl(path) let p = typeof (path) == 'string' ? path : this.$product.genernalUrl(path)
if (type === 'blank') { // 新窗口打开 if (type === 'blank') { // 新窗口打开
let routeUrl = this.$router.resolve({ let routeUrl = this.$router.resolve({
path: p, path: p,
...@@ -225,8 +220,9 @@ Vue.prototype.CommonJump = function(path, obj, type = 'push') { ...@@ -225,8 +220,9 @@ Vue.prototype.CommonJump = function(path, obj, type = 'push') {
}); });
} }
} }
Vue.prototype.$user = user Vue.prototype.$user = user
Vue.prototype.createCalendar = function(dateStr) { Vue.prototype.createCalendar = function (dateStr) {
var days = []; var days = [];
var date; var date;
if (dateStr) { if (dateStr) {
...@@ -279,9 +275,9 @@ Vue.prototype.createCalendar = function(dateStr) { ...@@ -279,9 +275,9 @@ Vue.prototype.createCalendar = function(dateStr) {
CurrentYear: currentYear, CurrentYear: currentYear,
CurrentWeek: currentWeek CurrentWeek: currentWeek
}; };
} }
//格式化日期 //格式化日期
Vue.prototype.formatDate = function(year, month, day) { Vue.prototype.formatDate = function (year, month, day) {
var y = year; var y = year;
var m = month; var m = month;
if (m < 10) m = "0" + m; if (m < 10) m = "0" + m;
...@@ -291,7 +287,7 @@ Vue.prototype.formatDate = function(year, month, day) { ...@@ -291,7 +287,7 @@ Vue.prototype.formatDate = function(year, month, day) {
} }
//格式化日期二 //格式化日期二
Vue.prototype.formatDate2 = function(dateStr) { Vue.prototype.formatDate2 = function (dateStr) {
var date = new Date(dateStr); var date = new Date(dateStr);
return { return {
CYear: date.getFullYear(), CYear: date.getFullYear(),
...@@ -301,7 +297,7 @@ Vue.prototype.formatDate2 = function(dateStr) { ...@@ -301,7 +297,7 @@ Vue.prototype.formatDate2 = function(dateStr) {
} }
//添加月份 //添加月份
Vue.prototype.AddMonth = function(dateStr, month) { Vue.prototype.AddMonth = function (dateStr, month) {
var v = new Date(dateStr); var v = new Date(dateStr);
if (v) { if (v) {
var t = new Date(v.getFullYear(), v.getMonth(), v.getDate(), v.getHours(), v.getMinutes(), v.getSeconds(), v.getMilliseconds()); var t = new Date(v.getFullYear(), v.getMonth(), v.getDate(), v.getHours(), v.getMinutes(), v.getSeconds(), v.getMilliseconds());
...@@ -314,10 +310,10 @@ Vue.prototype.AddMonth = function(dateStr, month) { ...@@ -314,10 +310,10 @@ Vue.prototype.AddMonth = function(dateStr, month) {
} }
//获取URL中参数 //获取URL中参数
Vue.prototype.getUrlKey = function(name, url) { Vue.prototype.getUrlKey = function (name, url) {
return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(url) || [, ""])[1].replace(/\+/g, '%20')) || null return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(url) || [, ""])[1].replace(/\+/g, '%20')) || null
} }
Vue.prototype.GetHtml = function(str) { Vue.prototype.GetHtml = function (str) {
if (str && str != "") { if (str && str != "") {
return str.replace(/&lt;/g, '<').replace(/&gt;/g, '>') return str.replace(/&lt;/g, '<').replace(/&gt;/g, '>')
.replace(/&amp;/g, '&').replace(/&quot;/g, '"').replace(/&apos;/g, "'"); .replace(/&amp;/g, '&').replace(/&quot;/g, '"').replace(/&apos;/g, "'");
......
...@@ -158,7 +158,7 @@ ...@@ -158,7 +158,7 @@
.category-btn { .category-btn {
width: 100px; width: 100px;
} }
.mobile-logo{ .mobile-logo {
max-height: 35px; max-height: 35px;
max-width: 120px; max-width: 120px;
object-fit: contain; object-fit: contain;
...@@ -178,8 +178,9 @@ ...@@ -178,8 +178,9 @@
class="zk_toolbar flex justify-between" class="zk_toolbar flex justify-between"
:class="{ 'q-px-none': $q.platform.is.desktop }" :class="{ 'q-px-none': $q.platform.is.desktop }"
> >
<div class="flex"><div class="f24" v-if="$q.platform.is.mobile && isHome" @click="handleShowDialog"> <div class="flex">
<i class="iconfont iconmore1" style="font-size: 24px;"></i> <div class="f24" v-if="$q.platform.is.mobile && isHome" @click="handleShowDialog">
<i class="iconfont iconmore1" style="font-size: 24px"></i>
</div> </div>
<img <img
:src="baseData.logo" :src="baseData.logo"
...@@ -189,12 +190,13 @@ ...@@ -189,12 +190,13 @@
filter: drop-shadow(0px 0px var(--q-color-primary)); filter: drop-shadow(0px 0px var(--q-color-primary));
" "
class="q-mr-lg q-ml-sm" class="q-mr-lg q-ml-sm"
:class="{'mobile-logo':$q.platform.is.mobile}" :class="{ 'mobile-logo': $q.platform.is.mobile }"
@click="CommonJump('/index', {})" @click="CommonJump('/index', {})"
/></div> />
<!-- <div style="transform:scale(0.6,0.6)"> --> </div>
<!--HK 2024-11-22 去掉 搜索接口有调整-->
<searchSf2 v-if="!isHome" :plugData="plugData"></searchSf2> <searchSf2 v-if="!isHome" :plugData="plugData"></searchSf2>
<!-- </div> -->
<!-- pc --> <!-- pc -->
<div v-if="$q.platform.is.desktop"> <div v-if="$q.platform.is.desktop">
<q-btn label="繁體中文" flat> <q-btn label="繁體中文" flat>
...@@ -215,11 +217,7 @@ ...@@ -215,11 +217,7 @@
unelevated unelevated
> >
<template v-slot:label> <template v-slot:label>
<img <img class="avatar" v-if="LoginUser.photo" :src="LoginUser.photo" />
class="avatar"
v-if="LoginUser.photo"
:src="LoginUser.photo"
/>
<img class="avatar" v-else src="../../assets/img/avatar.png" /> <img class="avatar" v-else src="../../assets/img/avatar.png" />
<!-- <span>{{LoginUser.name || LoginUser.mailbox}}</span> --> <!-- <span>{{LoginUser.name || LoginUser.mailbox}}</span> -->
...@@ -229,7 +227,7 @@ ...@@ -229,7 +227,7 @@
<q-list class="text-grey-8" dense> <q-list class="text-grey-8" dense>
<q-item clickable v-close-popup to="/setUserInfo"> <q-item clickable v-close-popup to="/setUserInfo">
<q-item-section avatar> <q-item-section avatar>
<q-avatar icon="iconfont iconpeople1"/> <q-avatar icon="iconfont iconpeople1" />
</q-item-section> </q-item-section>
<q-item-section> <q-item-section>
<q-item-label>個人信息</q-item-label> <q-item-label>個人信息</q-item-label>
...@@ -237,7 +235,7 @@ ...@@ -237,7 +235,7 @@
</q-item> </q-item>
<q-item clickable v-close-popup to="/coupon"> <q-item clickable v-close-popup to="/coupon">
<q-item-section avatar> <q-item-section avatar>
<q-avatar icon="iconfont iconqianbao"/> <q-avatar icon="iconfont iconqianbao" />
</q-item-section> </q-item-section>
<q-item-section> <q-item-section>
<q-item-label>優惠券</q-item-label> <q-item-label>優惠券</q-item-label>
...@@ -245,7 +243,7 @@ ...@@ -245,7 +243,7 @@
</q-item> </q-item>
<q-item clickable v-close-popup to="/order"> <q-item clickable v-close-popup to="/order">
<q-item-section avatar> <q-item-section avatar>
<q-avatar icon="iconfont iconorder"/> <q-avatar icon="iconfont iconorder" />
</q-item-section> </q-item-section>
<q-item-section> <q-item-section>
<q-item-label>訂單</q-item-label> <q-item-label>訂單</q-item-label>
...@@ -254,7 +252,7 @@ ...@@ -254,7 +252,7 @@
<q-separator inset class="q-mx-lg" /> <q-separator inset class="q-mx-lg" />
<q-item clickable v-close-popup to="/setUsersList"> <q-item clickable v-close-popup to="/setUsersList">
<q-item-section avatar> <q-item-section avatar>
<q-avatar icon="iconfont iconpeople"/> <q-avatar icon="iconfont iconpeople" />
</q-item-section> </q-item-section>
<q-item-section> <q-item-section>
<q-item-label>出行人信息管理</q-item-label> <q-item-label>出行人信息管理</q-item-label>
...@@ -262,7 +260,7 @@ ...@@ -262,7 +260,7 @@
</q-item> </q-item>
<q-item clickable v-close-popup to="/setAddress"> <q-item clickable v-close-popup to="/setAddress">
<q-item-section avatar> <q-item-section avatar>
<q-avatar icon="iconfont iconemail"/> <q-avatar icon="iconfont iconemail" />
</q-item-section> </q-item-section>
<q-item-section> <q-item-section>
<q-item-label>管理邮寄地址</q-item-label> <q-item-label>管理邮寄地址</q-item-label>
...@@ -270,7 +268,7 @@ ...@@ -270,7 +268,7 @@
</q-item> </q-item>
<q-item clickable v-close-popup to="/setInfo"> <q-item clickable v-close-popup to="/setInfo">
<q-item-section avatar> <q-item-section avatar>
<q-avatar icon="iconfont iconset"/> <q-avatar icon="iconfont iconset" />
</q-item-section> </q-item-section>
<q-item-section> <q-item-section>
<q-item-label>賬戶設置</q-item-label> <q-item-label>賬戶設置</q-item-label>
...@@ -278,7 +276,7 @@ ...@@ -278,7 +276,7 @@
</q-item> </q-item>
<q-item clickable v-close-popup @click="loginOut"> <q-item clickable v-close-popup @click="loginOut">
<q-item-section avatar> <q-item-section avatar>
<q-avatar icon="iconfont iconlog-in"/> <q-avatar icon="iconfont iconlog-in" />
</q-item-section> </q-item-section>
<q-item-section> <q-item-section>
<q-item-label>登出</q-item-label> <q-item-label>登出</q-item-label>
...@@ -337,8 +335,15 @@ ...@@ -337,8 +335,15 @@
:baseData="baseData" :baseData="baseData"
:dataList="dataList" :dataList="dataList"
></city-category> ></city-category>
<popup @mousemove.prevent id="city-category" v-model="showDialog" mode="bottom" @close="handleDialogClose"> <popup
<city-category-mobile @close="showDialog = false" @mousemove.prevent
id="city-category"
v-model="showDialog"
mode="bottom"
@close="handleDialogClose"
>
<city-category-mobile
@close="showDialog = false"
:baseData="baseData" :baseData="baseData"
:dataList="dataList" :dataList="dataList"
></city-category-mobile ></city-category-mobile
...@@ -350,9 +355,9 @@ ...@@ -350,9 +355,9 @@
import popup from "../props/index"; import popup from "../props/index";
import CityCategoryMobile from "./city-category-mobile.vue"; import CityCategoryMobile from "./city-category-mobile.vue";
import cityCategory from "./city-category.vue"; import cityCategory from "./city-category.vue";
import searchSf2 from '../search_sf/search-top.vue' import searchSf2 from "../search_sf/search-top.vue";
export default { export default {
components: { cityCategory, CityCategoryMobile, popup,searchSf2 }, components: { cityCategory, CityCategoryMobile, popup, searchSf2 },
props: { props: {
baseData: { baseData: {
type: Object, type: Object,
...@@ -369,7 +374,7 @@ export default { ...@@ -369,7 +374,7 @@ export default {
}, },
data() { data() {
return { return {
plugData: {details: [], Title: ''}, plugData: { details: [], Title: "" },
showDialog: false, showDialog: false,
searchDate: "", searchDate: "",
searchEndDate: "", searchEndDate: "",
...@@ -401,7 +406,7 @@ export default { ...@@ -401,7 +406,7 @@ export default {
}, },
$route: { $route: {
handler: function (val, oldVal) { handler: function (val, oldVal) {
console.log('val', val, oldVal) console.log("val", val, oldVal);
this.isHome = val.path === "/" || val.path === "/index"; this.isHome = val.path === "/" || val.path === "/index";
// this.isSearch = val.path === "/search"; // this.isSearch = val.path === "/search";
}, },
...@@ -448,19 +453,18 @@ export default { ...@@ -448,19 +453,18 @@ export default {
// this.getCategoryList(); // this.getCategoryList();
}, },
methods: { methods: {
handler(event) {event.preventDefault();}, handler(event) {
event.preventDefault();
},
handleShowDialog() { handleShowDialog() {
this.showDialog = true; this.showDialog = true;
this.scrollTop = document.querySelector('body').scrollTop; this.scrollTop = document.querySelector("body").scrollTop;
document.querySelector( document.querySelector("body").style = `position: fixed; top: -${this.scrollTop}px`;
"body"
).style = `position: fixed; top: -${this.scrollTop}px`;
}, },
handleDialogClose() { handleDialogClose() {
document.querySelector( document.querySelector("body").style = "";
"body" },
).style = '';},
avatarClick() { avatarClick() {
if (this.LoginUser.token) { if (this.LoginUser.token) {
this.CommonJump("/userCenter"); this.CommonJump("/userCenter");
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
standout standout
placeholder="蒐索關鍵字" placeholder="蒐索關鍵字"
class="q-ma-md" class="q-ma-md"
@blur="changeAddrSearchHandler" @blur="handleSearchKey"
/> />
<!-- <q-tree <!-- <q-tree
ref="area" ref="area"
...@@ -505,8 +505,6 @@ export default { ...@@ -505,8 +505,6 @@ export default {
}, },
created() { created() {
this.msg = this.qMsg; this.msg = this.qMsg;
// this.msg.teamType = [];
//this.initAreaList();
this.initGoods(); this.initGoods();
this.msg.priceRange = { this.msg.priceRange = {
min: 1, min: 1,
...@@ -524,11 +522,11 @@ export default { ...@@ -524,11 +522,11 @@ export default {
mounted() { mounted() {
let LineIdList = []; let LineIdList = [];
if (this.msg.LineIds && this.msg.LineIds.length > 0) { if (this.msg.LineIds && this.msg.LineIds.length > 0) {
LineIdList = this.msg.LineIds.split(";"); LineIdList = this.msg.LineIds.split(",");
} }
let SeriesIdList = []; let SeriesIdList = [];
if (this.msg.SeriesIds && this.msg.SeriesIds.length > 0) { if (this.msg.SeriesIds && this.msg.SeriesIds.length > 0) {
SeriesIdList = this.msg.SeriesIds.split(";"); SeriesIdList = this.msg.SeriesIds.split(",");
} }
if ( if (
(LineIdList && LineIdList.length > 0) || (LineIdList && LineIdList.length > 0) ||
...@@ -536,7 +534,12 @@ export default { ...@@ -536,7 +534,12 @@ export default {
) { ) {
let arr = []; let arr = [];
this.goodsType.forEach((x) => { this.goodsType.forEach((x) => {
let lineIdIndex = LineIdList.findIndex((yId) => x.Id.slice(2) == yId); var tempLineId = 0;
var tempLineIdArray = x.Id.split("|");
if (tempLineIdArray && tempLineIdArray.length == 2) {
tempLineId = tempLineIdArray[0];
}
let lineIdIndex = LineIdList.findIndex((yId) => tempLineId == yId);
if (lineIdIndex != -1) { if (lineIdIndex != -1) {
arr.push(x.Id); arr.push(x.Id);
} }
...@@ -544,8 +547,12 @@ export default { ...@@ -544,8 +547,12 @@ export default {
if (lineIdIndex != -1) { if (lineIdIndex != -1) {
arr.push(y.Id); arr.push(y.Id);
} else { } else {
let seriesIdIndex = SeriesIdList.findIndex((yId) => y.Id.slice(2) == yId); var tempLtId = 0;
var tempLtIdArray = y.Id.split("|");
if (tempLtIdArray && tempLtIdArray.length == 2) {
tempLtId = tempLtIdArray[0];
}
let seriesIdIndex = SeriesIdList.findIndex((yId) => tempLtId == yId);
if (seriesIdIndex != -1) { if (seriesIdIndex != -1) {
arr.push(y.Id); arr.push(y.Id);
} }
...@@ -556,15 +563,11 @@ export default { ...@@ -556,15 +563,11 @@ export default {
} }
}, },
methods: { methods: {
handleSelected(target) {
console.log("handleSelected", target);
},
handleTicked(target) { handleTicked(target) {
this.msg.pageIndex = 1; this.msg.pageIndex = 1;
this.ticked = target; this.ticked = target;
this.goSearchHandler(); this.goSearchHandler();
}, },
handleSearchKey(target) { handleSearchKey(target) {
this.msg.pageIndex = 1; this.msg.pageIndex = 1;
this.goSearchHandler(); this.goSearchHandler();
...@@ -635,11 +638,11 @@ export default { ...@@ -635,11 +638,11 @@ export default {
let arr = []; let arr = [];
let LineIdList = []; let LineIdList = [];
if (this.msg.LineIds && this.msg.LineIds.length > 0) { if (this.msg.LineIds && this.msg.LineIds.length > 0) {
LineIdList = this.msg.LineIds.split(";"); LineIdList = this.msg.LineIds.split(",");
} }
let SeriesIdList = []; let SeriesIdList = [];
if (this.msg.SeriesIds && this.msg.SeriesIds.length > 0) { if (this.msg.SeriesIds && this.msg.SeriesIds.length > 0) {
SeriesIdList = this.msg.SeriesIds.split(";"); SeriesIdList = this.msg.SeriesIds.split(",");
} }
this.apipost( this.apipost(
"b2c_get_GetB2CQueryCondition", "b2c_get_GetB2CQueryCondition",
...@@ -652,7 +655,13 @@ export default { ...@@ -652,7 +655,13 @@ export default {
x.explsed = false; x.explsed = false;
x.isShow = true; x.isShow = true;
x.children = x.SubList; x.children = x.SubList;
let lineIdIndex = LineIdList.findIndex((yId) => x.Id.slice(2) == yId); var tempLineId = 0;
var tempLineIdArray = x.Id.split("|");
if (tempLineIdArray && tempLineIdArray.length == 2) {
tempLineId = tempLineIdArray[0];
}
let lineIdIndex = LineIdList.findIndex((yId) => tempLineId == yId);
x.children.forEach((y) => { x.children.forEach((y) => {
y.checked = false; y.checked = false;
y.explsed = false; y.explsed = false;
...@@ -661,9 +670,12 @@ export default { ...@@ -661,9 +670,12 @@ export default {
arr.push(y.Id); arr.push(y.Id);
this.ticked.push(y.Id); this.ticked.push(y.Id);
} else { } else {
let seriesIdIndex = SeriesIdList.findIndex( var tempLtId = 0;
(yId) => y.Id.slice(2) == yId var tempLtIdArray = y.Id.split("|");
); if (tempLtIdArray && tempLtIdArray.length == 2) {
tempLtId = tempLtIdArray[0];
}
let seriesIdIndex = SeriesIdList.findIndex((yId) => tempLtId == yId);
if (seriesIdIndex != -1) { if (seriesIdIndex != -1) {
arr.push(y.Id); arr.push(y.Id);
this.ticked.push(y.Id); this.ticked.push(y.Id);
...@@ -758,7 +770,6 @@ export default { ...@@ -758,7 +770,6 @@ export default {
this.msg, this.msg,
(res) => { (res) => {
this.$q.loading.hide(); this.$q.loading.hide();
console.log("b2c_get_GetB2C2024TravelProductPage", res);
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.PageCount = res.data.data.pageCount; this.PageCount = res.data.data.pageCount;
this.TotalCount = res.data.data.count; this.TotalCount = res.data.data.count;
......
...@@ -79,16 +79,32 @@ ...@@ -79,16 +79,32 @@
elevated elevated
transition-hide="scale" transition-hide="scale"
class="showbox column" class="showbox column"
> >
<div class="q-px-sm q-pt-sm" v-if="historys.length>0"> <div class="q-px-sm q-pt-sm" v-if="historys.length > 0">
<div class="q-mb-sm text-weight-bold">歷史搜索</div> <div class="q-mb-sm text-weight-bold">歷史搜索</div>
<div class="row"> <div class="row">
<div class="col overflow-hidden" style="height:36px"> <div class="col overflow-hidden" style="height: 36px">
<template v-for="(x,i) in historys"> <template v-for="(x, i) in historys">
<q-chip v-if="x" style="background:#f6f7f9;" @click="goSearchHandler(x)" clickable text-color="dark" class="cursor-pointer" :label="x" :key="i" /></template> <q-chip
v-if="x"
style="background: #f6f7f9"
@click="goSearchHandler(x)"
clickable
text-color="dark"
class="cursor-pointer"
:label="x"
:key="i"
/></template>
</div> </div>
<q-btn text-color="grey-6" icon="delete" class="q-py-none" dense size="sm" flat @click="clearHistorys"> <q-btn
text-color="grey-6"
icon="delete"
class="q-py-none"
dense
size="sm"
flat
@click="clearHistorys"
>
<q-tooltip class="bg-dark" co>清空歷史</q-tooltip> <q-tooltip class="bg-dark" co>清空歷史</q-tooltip>
</q-btn> </q-btn>
</div> </div>
...@@ -96,58 +112,34 @@ ...@@ -96,58 +112,34 @@
<div class="text-weight-bold q-pa-sm">熱門目的地</div> <div class="text-weight-bold q-pa-sm">熱門目的地</div>
<q-separator /> <q-separator />
<div class="flex flex-wrap"> <div class="flex flex-wrap">
<div class="hot-tag" @click="handleHotTagClick(item)" :class="{'hot-tag-select': setectHotTag === item.Id}" :key="item.Id" v-for="item in hotList">{{item.Name}}</div> <div
class="hot-tag"
@click="handleHotTagClick(item)"
:class="{ 'hot-tag-select': setectHotTag === item.Id }"
:key="item.Id"
v-for="item in hotList"
>
{{ item.Name }}
</div>
</div> </div>
</div> </div>
</div> </div>
<div class=" bg-white q-px-md" v-if="$q.screen.xs" @click="showPopupHandler"> <div class="bg-white q-px-md" v-if="$q.screen.xs" @click="showPopupHandler">
<i class="iconfont iconchazhao"></i> <i class="iconfont iconchazhao"></i>
<!-- <q-icon name="search" /> -->
<!-- <q-input
filled
v-model="searchKey"
class="bg-grey-1 q-mx-md"
:label="$t('search')"
readonly="readonly"
@click="showPopupHandler"
>
<template v-slot:append>
<q-icon name="search" />
</template>
</q-input> -->
</div> </div>
</div> </div>
</div> </div>
<popup <popup v-model="showPopup" mode="top" :safeAreaInsetBottom="true" border-radius="5">
v-model="showPopup"
mode="top"
:safeAreaInsetBottom="true"
border-radius="5"
>
<div class="chosen-box"> <div class="chosen-box">
<div class="title">搜尋行程</div> <div class="title">搜尋行程</div>
<div class="chosen-tab"> <div class="chosen-tab">
<q-tabs <q-tabs v-model="tab" align="justify" narrow-indicator class="q-mb-md">
v-model="tab"
align="justify"
narrow-indicator
class="q-mb-md"
>
<q-tab class="text-purple" name="dest" label="目的地" /> <q-tab class="text-purple" name="dest" label="目的地" />
<q-tab class="text-teal" name="kw" label="關鍵字" /> <q-tab class="text-teal" name="kw" label="關鍵字" />
</q-tabs> </q-tabs>
<div v-show="tab == 'dest'"> <div v-show="tab == 'dest'">
<q-card flat class="rounded-borders q-py-md"> <q-card flat class="rounded-borders q-py-md">
<div class="text-subtitle1 text-weight-bold q-mx-md">篩選目的地</div> <div class="text-subtitle1 text-weight-bold q-mx-md">篩選目的地</div>
<!-- <q-input
v-model="searchAdd.name"
type="text"
standout
placeholder="搜尋目的地、景點、行程觀光或酒店名稱..."
class="q-ma-md"
@input="changeAddrSearchHandler"
/> -->
<q-tree <q-tree
ref="area" ref="area"
:nodes="areaList" :nodes="areaList"
...@@ -163,46 +155,6 @@ ...@@ -163,46 +155,6 @@
no-results-label=" " no-results-label=" "
/> />
</q-card> </q-card>
<!-- <div class="q-mb-md">
<q-select
filled
v-model="chosenResult.fl"
:options="areas"
option-label="Name"
option-value="Name"
label="請選擇地區"
/>
</div>
<div class="q-mb-md" v-if="chosenResult.fl.SubList">
<q-select
filled
v-model="chosenResult.sl"
:options="chosenResult.fl.SubList"
option-label="Name"
option-value="Name"
label="請選擇地區"
/>
</div>
<div class="q-mb-md" v-if="chosenResult.sl.SubList">
<q-select
filled
v-model="chosenResult.tl"
:options="chosenResult.sl.SubList"
option-label="Name"
option-value="Name"
label="請選擇地區"
/>
</div>
<div class="q-mb-md" v-if="chosenResult.tl.SubList">
<q-select
filled
v-model="chosenResult.ful"
:options="chosenResult.tl.SubList"
option-label="Name"
option-value="Name"
label="請選擇地區"
/>
</div> -->
</div> </div>
<div v-show="tab == 'kw'" class="q-mb-md"> <div v-show="tab == 'kw'" class="q-mb-md">
<q-input <q-input
...@@ -290,7 +242,7 @@ export default { ...@@ -290,7 +242,7 @@ export default {
return { return {
areaTicked: [], areaTicked: [],
areaList: [], areaList: [],
setectHotTag: '', setectHotTag: "",
hotList: [], hotList: [],
slide: 0, slide: 0,
searchKey: "", searchKey: "",
...@@ -315,7 +267,7 @@ export default { ...@@ -315,7 +267,7 @@ export default {
crtAreaIndex: 0, crtAreaIndex: 0,
showPopup: false, showPopup: false,
tab: "dest", tab: "dest",
historys:[], historys: [],
chosenResult: { chosenResult: {
fl: "", fl: "",
sl: "", sl: "",
...@@ -325,16 +277,16 @@ export default { ...@@ -325,16 +277,16 @@ export default {
RB_Group_Id: 0, RB_Group_Id: 0,
}; };
}, },
created() { created() {},
},
mounted() { mounted() {
console.log("getRoutePath", this.getRoutePath());
this.isSearch = this.$router.history.current.path === "/search"; this.isSearch = this.$router.history.current.path === "/search";
this.initAreaList() this.initAreaList();
var jObj = JSON.parse(window.localStorage.getItem('baseifo')); var jObj = JSON.parse(window.localStorage.getItem("baseifo"));
const hotList = this.getHotList(jObj.AreaList) const hotList = this.getHotList(jObj.AreaList);
console.log('hotList mounted', jObj, hotList)
this.hotList = hotList this.hotList = hotList;
this.getHistory() this.getHistory();
var newStartDate = new Date(); var newStartDate = new Date();
var newStartDateStr = this.formatDate( var newStartDateStr = this.formatDate(
newStartDate.getFullYear(), newStartDate.getFullYear(),
...@@ -366,32 +318,27 @@ export default { ...@@ -366,32 +318,27 @@ export default {
}, },
computed: {}, computed: {},
methods: { methods: {
handleAreaTicked(target) { getRoutePath() {
console.log("this.areaTicked", target, this.areaTicked) let crPath = this.$router.currentRoute.path;
// if(!this.areaTicked.length) { console.log("crPath", crPath);
// this.areaTicked = target return crPath;
// } else if(this.areaTicked[0] === target[0]) {
// this.areaTicked = target[1] ? [target[1]] : []
// } else {
// this.areaTicked = target
// }
this.areaTicked = target
}, },
handleAreaSelected(target) { handleAreaTicked(target) {
// console.log("this.handleAreaSelected", target); this.areaTicked = target;
}, },
handleAreaSelected(target) {},
initAreaList() { initAreaList() {
let jObj = JSON.parse(window.localStorage.getItem("baseifo")); let jObj = JSON.parse(window.localStorage.getItem("baseifo"));
let arr = []; let arr = [];
jObj.AreaList.forEach((x) => { jObj.AreaList.forEach((x) => {
x.selectable = false x.selectable = false;
x.children = x.SubList; x.children = x.SubList;
x.children.forEach((y) => { x.children.forEach((y) => {
y.checked = false; y.checked = false;
y.explsed = false; y.explsed = false;
y.isShow = true; y.isShow = true;
if (y.SubList) { if (y.SubList) {
y.selectable = false y.selectable = false;
y.children = y.SubList; y.children = y.SubList;
y.children.forEach((z) => { y.children.forEach((z) => {
z.checked = false; z.checked = false;
...@@ -406,7 +353,7 @@ export default { ...@@ -406,7 +353,7 @@ export default {
}, },
getHotList(arr) { getHotList(arr) {
let hotArr = []; let hotArr = [];
arr.forEach(item => { arr.forEach((item) => {
if (item.SubList && item.SubList.length) { if (item.SubList && item.SubList.length) {
hotArr = hotArr.concat(this.getHotList(item.SubList)); hotArr = hotArr.concat(this.getHotList(item.SubList));
} else { } else {
...@@ -417,31 +364,12 @@ export default { ...@@ -417,31 +364,12 @@ export default {
}); });
return hotArr; return hotArr;
}, },
handleHotTagClick(item) {
this.setectHotTag = item.Id
// let val = item.Name
// if(val!='' && typeof val == 'string'){
// this.searchKey=val
// }
// this.historys=Array.from(new Set([this.searchKey].concat(this.historys)))
// localStorage['recent_search'] = JSON.stringify(this.historys)
this.CommonJump("/search", {
qsearchKey: this.searchKey,
qsearchDate: this.searchDate,
qsearchEndDate: this.searchEndDate,
areaId: item.Id
});
if(this.isSearch) {
window.location.reload()
}
},
//获取地区数据 //获取地区数据
getAera() { getAera() {
let aMsg = { RB_Group_Id: this.RB_Group_Id };
this.apipost( this.apipost(
"ws_get_GetSearchArea", "ws_get_GetSearchArea",
{ aMsg,
RB_Group_Id: this.RB_Group_Id,
},
(res) => { (res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
if (res.data.data) { if (res.data.data) {
...@@ -452,8 +380,8 @@ export default { ...@@ -452,8 +380,8 @@ export default {
(err) => {} (err) => {}
); );
}, },
getHistory(){ getHistory() {
this.historys =JSON.parse(localStorage['recent_search']??'[]') this.historys = JSON.parse(localStorage["recent_search"] ?? "[]");
}, },
showPopupHandler() { showPopupHandler() {
this.showPopup = true; this.showPopup = true;
...@@ -494,51 +422,51 @@ export default { ...@@ -494,51 +422,51 @@ export default {
this.searchKey = name; this.searchKey = name;
this.showSplitPannel = false; this.showSplitPannel = false;
}, },
handleHotTagClick(item) {
this.setectHotTag = item.Id;
this.CommonJump("/search", {
qsearchKey: this.searchKey,
qsearchDate: this.searchDate,
qsearchEndDate: this.searchEndDate,
areaId: item.Id,
});
if (this.isSearch) {
window.location.reload();
}
},
//跳转到搜索页面 //跳转到搜索页面
goSearchHandler(val='') { goSearchHandler(val = "") {
console.log('跳转到搜索页面', val) if (val != "" && typeof val == "string") {
if(val!='' && typeof val == 'string'){ this.searchKey = val;
this.searchKey=val this.historys = Array.from(new Set([this.searchKey].concat(this.historys)));
this.historys=Array.from(new Set([this.searchKey].concat(this.historys))) localStorage["recent_search"] = JSON.stringify(this.historys);
localStorage['recent_search'] = JSON.stringify(this.historys)
} }
this.CommonJump("/search", { this.CommonJump("/search", {
qsearchKey: this.searchKey, qsearchKey: this.searchKey,
areaIds: this.areaTicked.join(','), areaIds: this.areaTicked.join(","),
qsearchDate: this.searchDate, qsearchDate: this.searchDate,
qsearchEndDate: this.searchEndDate, qsearchEndDate: this.searchEndDate,
}); });
this.showSplitPannel = false this.showSplitPannel = false;
if(this.isSearch) { if (this.isSearch) {
window.location.reload() window.location.reload();
} }
}, },
clearHistorys(){ clearHistorys() {
this.historys =[] this.historys = [];
localStorage['recent_search'] = JSON.stringify(this.historys) localStorage["recent_search"] = JSON.stringify(this.historys);
} },
}, },
}; };
</script> </script>
<style> <style>
.banner-style9 { .banner-style9 {
/* margin-top: 0px; */
/* position: relative; */
/* overflow: hidden; */
border-radius: 5px; border-radius: 5px;
} }
.banner-style9 .search-content { .banner-style9 .search-content {
/* position: absolute; */
/* top: 0;
left: 0;
right: 0;
bottom: 0; */
z-index: 2; z-index: 2;
/* transform: translate(-50%, -50%); */
/* margin-top: 40px; */
background: rgb(0, 0, 0, 0.1); background: rgb(0, 0, 0, 0.1);
} }
...@@ -668,20 +596,19 @@ export default { ...@@ -668,20 +596,19 @@ export default {
<style scoped> <style scoped>
.hot-tag { .hot-tag {
width: 141px; width: 141px;
height: 34px; height: 34px;
line-height: 34px; line-height: 34px;
padding-left: 8px; padding-left: 8px;
border-radius: 8px; border-radius: 8px;
margin: 12px 0 12px 12px; margin: 12px 0 12px 12px;
cursor: pointer; cursor: pointer;
} }
.hot-tag-select { .hot-tag-select {
background: #EE4454; background: #ee4454;
color: #fff; color: #fff;
} }
</style> </style>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .q-field__control { ::v-deep .q-field__control {
height: 40px; height: 40px;
} }
...@@ -698,6 +625,6 @@ color: #fff; ...@@ -698,6 +625,6 @@ color: #fff;
height: 40px; height: 40px;
} }
::v-deep .q-field__label { ::v-deep .q-field__label {
top: 13px top: 13px;
} }
</style> </style>
...@@ -676,6 +676,7 @@ export default { ...@@ -676,6 +676,7 @@ export default {
let arr = []; let arr = [];
let jObj = JSON.parse(window.localStorage.getItem("baseifo")); let jObj = JSON.parse(window.localStorage.getItem("baseifo"));
jObj.CategoryList.forEach((x) => { jObj.CategoryList.forEach((x) => {
x.checked = false; x.checked = false;
x.explsed = false; x.explsed = false;
x.isShow = true; x.isShow = true;
......
...@@ -684,7 +684,7 @@ ...@@ -684,7 +684,7 @@
} }
</style> </style>
<template> <template>
<div class="SearchMain" :class="{'desktop-page':$q.platform.is.desktop}"> <div class="SearchMain" :class="{ 'desktop-page': $q.platform.is.desktop }">
<div class="SearchTop"> <div class="SearchTop">
<div class="q-my-md" v-if="qMsg.searchKey"> <div class="q-my-md" v-if="qMsg.searchKey">
<q-breadcrumbs> <q-breadcrumbs>
...@@ -699,25 +699,26 @@ ...@@ -699,25 +699,26 @@
</div> </div>
<div class="text-h6 text-left" v-if="qMsg.searchKey"> <div class="text-h6 text-left" v-if="qMsg.searchKey">
搜尋結果 “ 搜尋結果 “
<span class="text-primary">{{ qMsg.searchKey }}</span> <span class="text-primary">{{ qMsg.searchKey }}</span
>
</div> </div>
<!-- 电脑端 --> <!-- 电脑端 -->
<div class="row SearchContent q-mt-md" v-if="!$q.screen.xs && 1==0"> <div class="row SearchContent q-mt-md" v-if="!$q.screen.xs && 1 == 0">
<div class="search-filter-inner"> <div class="search-filter-inner">
<div <div
class="search-item" class="search-item"
style="width:200px;cursor:pointer;" style="width: 200px; cursor: pointer"
@click="isShowDialog=true,goSearchHandler" @click="(isShowDialog = true), goSearchHandler"
> >
<i class="iconfont iconchazhao"></i> <i class="iconfont iconchazhao"></i>
{{qMsg.searchKey}} {{ qMsg.searchKey }}
</div> </div>
<div class="search-item" @click="isShowDialog=true,goSearchHandler"> <div class="search-item" @click="(isShowDialog = true), goSearchHandler">
<i class="iconfont iconrili"></i> <i class="iconfont iconrili"></i>
{{qMsg.startDate}} ~ {{qMsg.endDate}} {{ qMsg.startDate }} ~ {{ qMsg.endDate }}
</div> </div>
<div class="search-item" style="margin-left:20px;"> <div class="search-item" style="margin-left: 20px">
<q-select <q-select
filled filled
v-model="sortNum" v-model="sortNum"
...@@ -727,28 +728,36 @@ ...@@ -727,28 +728,36 @@
map-options map-options
/> />
</div> </div>
<div class="search-item" style="margin-left:20px;"> <div class="search-item" style="margin-left: 20px">
<span style="display:inline-block;cursor:pointer;" @click="fullHeight = true">更多篩選條件</span> <span
style="display: inline-block; cursor: pointer"
@click="fullHeight = true"
>更多篩選條件</span
>
</div> </div>
</div> </div>
<div <div
v-show="showSplitPannel" v-show="showSplitPannel"
id="sb" id="sb"
style="z-index:999" style="z-index: 999"
transition-show="fade" transition-show="fade"
elevated elevated
transition-hide="scale" transition-hide="scale"
class="showbox row" class="showbox row"
> >
<div style="width:180px;"> <div style="width: 180px">
<q-scroll-area :thumb-style="thumbStyle" :bar-style="barStyle" style="height: 100%;"> <q-scroll-area
:thumb-style="thumbStyle"
:bar-style="barStyle"
style="height: 100%"
>
<q-list> <q-list>
<q-item <q-item
v-for="(x, i) in areas" v-for="(x, i) in areas"
:key="i" :key="i"
clickable clickable
v-ripple v-ripple
:active="crtAreaIndex==i" :active="crtAreaIndex == i"
@click="clkAreaHandler(i)" @click="clkAreaHandler(i)"
active-class="my-menu-link" active-class="my-menu-link"
> >
...@@ -761,24 +770,44 @@ ...@@ -761,24 +770,44 @@
</div> </div>
<q-separator vertical /> <q-separator vertical />
<div class="col q-pa-md"> <div class="col q-pa-md">
<q-scroll-area :thumb-style="thumbStyle" :bar-style="barStyle" style="height: 100%;"> <q-scroll-area
:thumb-style="thumbStyle"
:bar-style="barStyle"
style="height: 100%"
>
<template <template
v-if="areas[crtAreaIndex]&&areas[crtAreaIndex].SubList&&areas[crtAreaIndex].SubList.length>0" v-if="
areas[crtAreaIndex] &&
areas[crtAreaIndex].SubList &&
areas[crtAreaIndex].SubList.length > 0
"
>
<div
class="area-box"
v-for="(x, i) in areas[crtAreaIndex].SubList"
:key="i"
> >
<div class="area-box" v-for="(x, i) in areas[crtAreaIndex].SubList" :key="i">
<div class="q-mb-md"> <div class="q-mb-md">
<div class="h3" @click="chosenAreaHandler(x.Name)">{{x.Name}}</div> <div class="h3" @click="chosenAreaHandler(x.Name)">{{ x.Name }}</div>
</div> </div>
<template v-if="x&&x.SubList && x.SubList.length>0"> <template v-if="x && x.SubList && x.SubList.length > 0">
<div class="q-mb-sm row to-end" v-for="(y, yi) in x.SubList" :key="yi"> <div
<div class="h4" @click="chosenAreaHandler(y.Name)">{{y.Name}}</div> class="q-mb-sm row to-end"
<template v-if="y&&y.SubList&&y.SubList.length>0"> v-for="(y, yi) in x.SubList"
:key="yi"
>
<div class="h4" @click="chosenAreaHandler(y.Name)">
{{ y.Name }}
</div>
<template v-if="y && y.SubList && y.SubList.length > 0">
<div <div
class="h5" class="h5"
@click="chosenAreaHandler(z.Name)" @click="chosenAreaHandler(z.Name)"
v-for="(z, zi) in y.SubList" v-for="(z, zi) in y.SubList"
:key="zi" :key="zi"
>{{z.Name}}</div> >
{{ z.Name }}
</div>
</template> </template>
</div> </div>
</template> </template>
...@@ -817,11 +846,11 @@ ...@@ -817,11 +846,11 @@
</div> </div>
</div> --> </div> -->
<template v-if="ShowType==0"> <template v-if="ShowType == 0">
<!--豆腐格--> <!--豆腐格-->
<searchBlock :DataList="DataList" :qMsg="qMsg"></searchBlock> <searchBlock :DataList="DataList" :qMsg="qMsg"></searchBlock>
</template> </template>
<template v-else-if="ShowType==1"> <template v-else-if="ShowType == 1">
<div class="wl-section-block search-content"> <div class="wl-section-block search-content">
<div class="search-filter-aside"> <div class="search-filter-aside">
<div class="search-header"> <div class="search-header">
...@@ -834,12 +863,12 @@ ...@@ -834,12 +863,12 @@
價格 價格
<span class="clear-filter" @click="clearPrice()">清除篩選</span> <span class="clear-filter" @click="clearPrice()">清除篩選</span>
</div> </div>
<div style="width:100%;height:57px;display:none"></div> <div style="width: 100%; height: 57px; display: none"></div>
<div class="range-text"> <div class="range-text">
<div class="min"> <div class="min">
<q-input <q-input
class="full_price" class="full_price"
style="width:80%" style="width: 80%"
placeholder="最低价" placeholder="最低价"
v-model="qMsg.minPrice" v-model="qMsg.minPrice"
@input="changeData" @input="changeData"
...@@ -850,7 +879,7 @@ ...@@ -850,7 +879,7 @@
<div class="max"> <div class="max">
<q-input <q-input
class="full_price" class="full_price"
style="width:80%" style="width: 80%"
placeholder="最高价" placeholder="最高价"
v-model="qMsg.maxPrice" v-model="qMsg.maxPrice"
@input="changeData" @input="changeData"
...@@ -868,7 +897,7 @@ ...@@ -868,7 +897,7 @@
<q-checkbox <q-checkbox
right-label right-label
v-model="dayNum" v-model="dayNum"
v-for="(item,index) in dayArray" v-for="(item, index) in dayArray"
:label="item.text" :label="item.text"
:key="index" :key="index"
:val="item.id" :val="item.id"
...@@ -896,7 +925,7 @@ ...@@ -896,7 +925,7 @@
<div class="q-gutter-sm"> <div class="q-gutter-sm">
<q-checkbox <q-checkbox
v-model="WeekDay" v-model="WeekDay"
v-for="(item,index) in weekList" v-for="(item, index) in weekList"
:val="item.value" :val="item.value"
:label="item.label" :label="item.label"
:key="index" :key="index"
...@@ -914,7 +943,7 @@ ...@@ -914,7 +943,7 @@
<template v-else> <template v-else>
<kkday :qMsg="qMsg" @change="handlerSearchChange"></kkday> <kkday :qMsg="qMsg" @change="handlerSearchChange"></kkday>
</template> </template>
<div v-if="DataList.length==0 && ShowType!=2" class="blank-block"> <div v-if="DataList.length == 0 && ShowType != 2" class="blank-block">
<i class="iconfont iconchazhao"></i> <i class="iconfont iconchazhao"></i>
<p>請嘗試其他關鍵字或篩選條件</p> <p>請嘗試其他關鍵字或篩選條件</p>
</div> </div>
...@@ -923,11 +952,11 @@ ...@@ -923,11 +952,11 @@
<q-dialog v-model="fullHeight" full-height> <q-dialog v-model="fullHeight" full-height>
<q-card class="column full-height" style="width: 500px"> <q-card class="column full-height" style="width: 500px">
<div class="moreTiaojiao">更多篩選條件</div> <div class="moreTiaojiao">更多篩選條件</div>
<div class="full_listDiv" style="padding-bottom:20px"> <div class="full_listDiv" style="padding-bottom: 20px">
<span>價格:</span> <span>價格:</span>
<q-input <q-input
class="full_price" class="full_price"
style="width:30%;height:45px;" style="width: 30%; height: 45px"
v-model="qMsg.minPrice" v-model="qMsg.minPrice"
@input="changeData" @input="changeData"
filled filled
...@@ -935,7 +964,7 @@ ...@@ -935,7 +964,7 @@
/> />
<q-input <q-input
class="full_price" class="full_price"
style="width:30%;height:45px;" style="width: 30%; height: 45px"
v-model="qMsg.maxPrice" v-model="qMsg.maxPrice"
@input="changeData" @input="changeData"
filled filled
...@@ -948,7 +977,7 @@ ...@@ -948,7 +977,7 @@
<q-checkbox <q-checkbox
right-label right-label
v-model="dayNum" v-model="dayNum"
v-for="(item,index) in dayArray" v-for="(item, index) in dayArray"
:label="item.text" :label="item.text"
:key="index" :key="index"
:val="item.id" :val="item.id"
...@@ -962,7 +991,7 @@ ...@@ -962,7 +991,7 @@
<div class="q-gutter-sm"> <div class="q-gutter-sm">
<q-checkbox <q-checkbox
v-model="WeekDay" v-model="WeekDay"
v-for="(item,index) in weekList" v-for="(item, index) in weekList"
:val="item.value" :val="item.value"
:label="item.label" :label="item.label"
:key="index" :key="index"
...@@ -972,10 +1001,10 @@ ...@@ -972,10 +1001,10 @@
</div> </div>
</div> </div>
<div class="full_btndiv"> <div class="full_btndiv">
<q-btn color="white" style="width:49%" text-color="black" label="清除" /> <q-btn color="white" style="width: 49%" text-color="black" label="清除" />
<q-btn <q-btn
color="primary" color="primary"
style="width:49%" style="width: 49%"
label="套用" label="套用"
v-close-popup v-close-popup
@click="goSearchHandler" @click="goSearchHandler"
...@@ -989,18 +1018,18 @@ ...@@ -989,18 +1018,18 @@
<q-card-section> <q-card-section>
<div class="text-h6"> <div class="text-h6">
搜尋行程 搜尋行程
<i class="iconfont iconbaseline-close-px" @click="isShowDialog=false"></i> <i class="iconfont iconbaseline-close-px" @click="isShowDialog = false"></i>
</div> </div>
</q-card-section> </q-card-section>
<q-separator /> <q-separator />
<div style="max-height: 550px;padding:20px 30px 30px 30px" class="scroll"> <div style="max-height: 550px; padding: 20px 30px 30px 30px" class="scroll">
<div class="chosen-box"> <div class="chosen-box">
<div class="chosen-tab"> <div class="chosen-tab">
<q-tabs v-model="tab" align="justify" narrow-indicator class="q-mb-md"> <q-tabs v-model="tab" align="justify" narrow-indicator class="q-mb-md">
<q-tab class="text-purple" name="dest" label="目的地" /> <q-tab class="text-purple" name="dest" label="目的地" />
<q-tab class="text-teal" name="kw" label="關鍵字" /> <q-tab class="text-teal" name="kw" label="關鍵字" />
</q-tabs> </q-tabs>
<div v-show="tab=='dest'"> <div v-show="tab == 'dest'">
<div class="q-mb-md"> <div class="q-mb-md">
<q-select <q-select
filled filled
...@@ -1043,7 +1072,7 @@ ...@@ -1043,7 +1072,7 @@
/> />
</div> </div>
</div> </div>
<div v-show="tab=='kw'" class="q-mb-md"> <div v-show="tab == 'kw'" class="q-mb-md">
<q-input <q-input
filled filled
id="search_key" id="search_key"
...@@ -1057,7 +1086,7 @@ ...@@ -1057,7 +1086,7 @@
<q-input <q-input
filled filled
v-model="qMsg.startDate" v-model="qMsg.startDate"
style="width:99%" style="width: 99%"
:label="$t('search_date_begin')" :label="$t('search_date_begin')"
mask="date" mask="date"
class="bg-grey-1" class="bg-grey-1"
...@@ -1105,10 +1134,10 @@ ...@@ -1105,10 +1134,10 @@
<q-btn <q-btn
color="primary" color="primary"
unelevated unelevated
style="width:100%;height:50px;margin-top:20px;" style="width: 100%; height: 50px; margin-top: 20px"
filled filled
label="搜尋" label="搜尋"
@click="isShowDialog=false,goSearchHandler()" @click="(isShowDialog = false), goSearchHandler()"
/> />
</div> </div>
</div> </div>
...@@ -1126,7 +1155,7 @@ ...@@ -1126,7 +1155,7 @@
<q-tab class="text-purple" name="dest" label="目的地" /> <q-tab class="text-purple" name="dest" label="目的地" />
<q-tab class="text-teal" name="kw" label="關鍵字" /> <q-tab class="text-teal" name="kw" label="關鍵字" />
</q-tabs> </q-tabs>
<div v-show="tab=='dest'"> <div v-show="tab == 'dest'">
<div class="q-mb-md"> <div class="q-mb-md">
<q-select <q-select
filled filled
...@@ -1169,7 +1198,7 @@ ...@@ -1169,7 +1198,7 @@
/> />
</div> </div>
</div> </div>
<div v-show="tab=='kw'" class="q-mb-md"> <div v-show="tab == 'kw'" class="q-mb-md">
<q-input <q-input
filled filled
id="search_key" id="search_key"
...@@ -1230,10 +1259,10 @@ ...@@ -1230,10 +1259,10 @@
<q-btn <q-btn
color="primary" color="primary"
unelevated unelevated
style="width:100%" style="width: 100%"
filled filled
label="搜尋" label="搜尋"
@click="showPopup=false,goSearchHandler()" @click="(showPopup = false), goSearchHandler()"
/> />
</div> </div>
</div> </div>
...@@ -1251,7 +1280,7 @@ export default { ...@@ -1251,7 +1280,7 @@ export default {
popup, popup,
searchBlock, searchBlock,
searchList, searchList,
kkday kkday,
}, },
data() { data() {
return { return {
...@@ -1266,56 +1295,56 @@ export default { ...@@ -1266,56 +1295,56 @@ export default {
id: 1, id: 1,
min: 1, min: 1,
max: 1, max: 1,
text: "1天" text: "1天",
}, },
{ {
id: 2, id: 2,
min: 2, min: 2,
max: 2, max: 2,
text: "2天" text: "2天",
}, },
{ {
id: 3, id: 3,
min: 3, min: 3,
max: 3, max: 3,
text: "3天" text: "3天",
}, },
{ {
id: 4, id: 4,
min: 4, min: 4,
max: 4, max: 4,
text: "4天" text: "4天",
}, },
{ {
id: 5, id: 5,
min: 5, min: 5,
max: 5, max: 5,
text: "5天" text: "5天",
}, },
{ {
id: 6, id: 6,
min: 6, min: 6,
max: 6, max: 6,
text: "6天" text: "6天",
}, },
{ {
id: 7, id: 7,
min: 7, min: 7,
max: 8, max: 8,
text: "7-8天" text: "7-8天",
}, },
{ {
id: 8, id: 8,
min: 9, min: 9,
max: 10, max: 10,
text: "9-10天" text: "9-10天",
}, },
{ {
id: 9, id: 9,
min: 10, min: 10,
max: null, max: null,
text: "10天以上" text: "10天以上",
} },
], ],
flight: ["长荣"], flight: ["长荣"],
...@@ -1327,7 +1356,7 @@ export default { ...@@ -1327,7 +1356,7 @@ export default {
borderRadius: "5px", borderRadius: "5px",
backgroundColor: "#027be3", backgroundColor: "#027be3",
width: "5px", width: "5px",
opacity: 0.75 opacity: 0.75,
}, },
//地区样式 //地区样式
barStyle: { barStyle: {
...@@ -1335,7 +1364,7 @@ export default { ...@@ -1335,7 +1364,7 @@ export default {
borderRadius: "9px", borderRadius: "9px",
backgroundColor: "#027be3", backgroundColor: "#027be3",
width: "9px", width: "9px",
opacity: 0.2 opacity: 0.2,
}, },
//地区数据 //地区数据
areas: [], areas: [],
...@@ -1343,62 +1372,62 @@ export default { ...@@ -1343,62 +1372,62 @@ export default {
sortArray: [ sortArray: [
{ {
label: "依推薦程度", label: "依推薦程度",
value: 1 value: 1,
}, },
{ {
label: "低價優先", label: "低價優先",
value: 2 value: 2,
}, },
{ {
label: "高價優先", label: "高價優先",
value: 3 value: 3,
}, },
{ {
label: "最快出發日", label: "最快出發日",
value: 4 value: 4,
}, },
{ {
label: "最晚出發日", label: "最晚出發日",
value: 5 value: 5,
}, },
{ {
label: "天數少到多", label: "天數少到多",
value: 6 value: 6,
}, },
{ {
label: "天數多到少", label: "天數多到少",
value: 7 value: 7,
} },
], ],
weekList: [ weekList: [
{ {
label: "星期日", label: "星期日",
value: 0 value: 0,
}, },
{ {
label: "星期一", label: "星期一",
value: 1 value: 1,
}, },
{ {
label: "星期二", label: "星期二",
value: 2 value: 2,
}, },
{ {
label: "星期三", label: "星期三",
value: 3 value: 3,
}, },
{ {
label: "星期四", label: "星期四",
value: 4 value: 4,
}, },
{ {
label: "星期五", label: "星期五",
value: 5 value: 5,
}, },
{ {
label: "星期六", label: "星期六",
value: 6 value: 6,
} },
], ],
showPopup: false, showPopup: false,
tab: "dest", tab: "dest",
...@@ -1406,7 +1435,7 @@ export default { ...@@ -1406,7 +1435,7 @@ export default {
fl: "", fl: "",
sl: "", sl: "",
tl: "", tl: "",
ful: "" ful: "",
}, },
//查询参数 //查询参数
qMsg: { qMsg: {
...@@ -1434,11 +1463,11 @@ export default { ...@@ -1434,11 +1463,11 @@ export default {
dayNumList: [], // 天数 dayNumList: [], // 天数
webSiteCategoryIds: "", // 分类Id webSiteCategoryIds: "", // 分类Id
placeIds: "", // 目的地城市Id placeIds: "", // 目的地城市Id
orderBy: 0 // 排序 0默认 1价格升序 2价格降序 orderBy: 0, // 排序 0默认 1价格升序 2价格降序
}, },
ShowType: 0, //显示样式(0-豆腐格,1-列表) ShowType: 0, //显示样式(0-豆腐格,1-列表)
//行程列表 //行程列表
DataList: [] DataList: [],
}; };
}, },
created() {}, created() {},
...@@ -1466,7 +1495,7 @@ export default { ...@@ -1466,7 +1495,7 @@ export default {
var qsearchDate = this.getUrlKey("qsearchDate", window.location.href); var qsearchDate = this.getUrlKey("qsearchDate", window.location.href);
var qsearchEndDate = this.getUrlKey("qsearchEndDate", window.location.href); var qsearchEndDate = this.getUrlKey("qsearchEndDate", window.location.href);
var areaId = this.getUrlKey("areaId", window.location.href); var areaId = this.getUrlKey("areaId", window.location.href);
var areaIds = this.getUrlKey("areaIds", window.location.href) var areaIds = this.getUrlKey("areaIds", window.location.href);
var categoryId = this.getUrlKey("categoryId", window.location.href); var categoryId = this.getUrlKey("categoryId", window.location.href);
if (qsearchKey) { if (qsearchKey) {
this.qMsg.searchKey = qsearchKey; this.qMsg.searchKey = qsearchKey;
...@@ -1481,7 +1510,7 @@ export default { ...@@ -1481,7 +1510,7 @@ export default {
this.qMsg.areaId = Number(areaId); this.qMsg.areaId = Number(areaId);
} }
if (areaIds) { if (areaIds) {
this.qMsg.areaIds = areaIds.split(',').map(item => Number(item)); this.qMsg.areaIds = areaIds.split(",").map((item) => Number(item));
} }
if (categoryId) { if (categoryId) {
this.qMsg.categoryId = Number(categoryId); this.qMsg.categoryId = Number(categoryId);
...@@ -1522,7 +1551,7 @@ export default { ...@@ -1522,7 +1551,7 @@ export default {
dayNumList: [], // 天数 dayNumList: [], // 天数
webSiteCategoryIds: "", // 分类Id webSiteCategoryIds: "", // 分类Id
placeIds: "", // 目的地城市Id placeIds: "", // 目的地城市Id
orderBy: 0 // 排序 0默认 1价格升序 2价格降序 orderBy: 0, // 排序 0默认 1价格升序 2价格降序
}; };
this.qMsg = msg; this.qMsg = msg;
this.goSearchHandler(); this.goSearchHandler();
...@@ -1548,14 +1577,14 @@ export default { ...@@ -1548,14 +1577,14 @@ export default {
this.apipost( this.apipost(
"ws_get_GetSearchArea", "ws_get_GetSearchArea",
{}, {},
res => { (res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
if (res.data.data) { if (res.data.data) {
this.areas = res.data.data.AreaList; this.areas = res.data.data.AreaList;
} }
} }
}, },
err => {} (err) => {}
); );
}, },
searchFocusHandler() { searchFocusHandler() {
...@@ -1622,11 +1651,7 @@ export default { ...@@ -1622,11 +1651,7 @@ export default {
companyId = groupinfo.siteList[0].companyId; companyId = groupinfo.siteList[0].companyId;
} }
this.SearchResult = this.SearchResult =
this.qMsg.startDate + this.qMsg.startDate + "-" + this.qMsg.endDate + " " + this.qMsg.searchKey;
"-" +
this.qMsg.endDate +
" " +
this.qMsg.searchKey;
let msg = { let msg = {
pageIndex: this.qMsg.pageIndex, pageIndex: this.qMsg.pageIndex,
pageSize: this.qMsg.pageSize, pageSize: this.qMsg.pageSize,
...@@ -1647,7 +1672,7 @@ export default { ...@@ -1647,7 +1672,7 @@ export default {
orderBySales: 0, orderBySales: 0,
startCityId: this.qMsg.startCityId, startCityId: this.qMsg.startCityId,
weekDayList: this.WeekDay, weekDayList: this.WeekDay,
dayNumList: this.dayNum dayNumList: this.dayNum,
}; };
if (localStorage.b2bUser) { if (localStorage.b2bUser) {
var b2bUser = JSON.parse(window.localStorage.getItem("b2bUser")); var b2bUser = JSON.parse(window.localStorage.getItem("b2bUser"));
...@@ -1658,14 +1683,14 @@ export default { ...@@ -1658,14 +1683,14 @@ export default {
this.apipost( this.apipost(
"b2c_get_GetB2CMergeProductPageList", "b2c_get_GetB2CMergeProductPageList",
msg, msg,
res => { (res) => {
this.$q.loading.hide(); this.$q.loading.hide();
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.qMsg.PageCount = res.data.data.pageCount; this.qMsg.PageCount = res.data.data.pageCount;
this.qMsg.TotalCount = res.data.data.count; this.qMsg.TotalCount = res.data.data.count;
var tempArray = res.data.data.pageData; var tempArray = res.data.data.pageData;
if (tempArray && tempArray.length > 0) { if (tempArray && tempArray.length > 0) {
tempArray.forEach(item => { tempArray.forEach((item) => {
if (item.imgCover && item.imgCover != "") { if (item.imgCover && item.imgCover != "") {
try { try {
var imgArray = JSON.parse(item.imgCover); var imgArray = JSON.parse(item.imgCover);
...@@ -1681,9 +1706,9 @@ export default { ...@@ -1681,9 +1706,9 @@ export default {
} }
} }
}, },
err => {} (err) => {}
); );
} },
} },
}; };
</script> </script>
...@@ -684,7 +684,7 @@ ...@@ -684,7 +684,7 @@
} }
</style> </style>
<template> <template>
<div class="SearchMain" :class="{'desktop-page':$q.platform.is.desktop}"> <div class="SearchMain" :class="{ 'desktop-page': $q.platform.is.desktop }">
<div class="SearchTop"> <div class="SearchTop">
<div class="q-my-md" v-if="qMsg.searchKey"> <div class="q-my-md" v-if="qMsg.searchKey">
<q-breadcrumbs> <q-breadcrumbs>
...@@ -699,25 +699,26 @@ ...@@ -699,25 +699,26 @@
</div> </div>
<div class="text-h6 text-left" v-if="qMsg.searchKey"> <div class="text-h6 text-left" v-if="qMsg.searchKey">
搜尋結果 “ 搜尋結果 “
<span class="text-primary">{{ qMsg.searchKey }}</span> <span class="text-primary">{{ qMsg.searchKey }}</span
>
</div> </div>
<!-- 电脑端 --> <!-- 电脑端 -->
<div class="row SearchContent q-mt-md" v-if="!$q.screen.xs && 1==0"> <div class="row SearchContent q-mt-md" v-if="!$q.screen.xs && 1 == 0">
<div class="search-filter-inner"> <div class="search-filter-inner">
<div <div
class="search-item" class="search-item"
style="width:200px;cursor:pointer;" style="width: 200px; cursor: pointer"
@click="isShowDialog=true,goSearchHandler" @click="(isShowDialog = true), goSearchHandler"
> >
<i class="iconfont iconchazhao"></i> <i class="iconfont iconchazhao"></i>
{{qMsg.searchKey}} {{ qMsg.searchKey }}
</div> </div>
<div class="search-item" @click="isShowDialog=true,goSearchHandler"> <div class="search-item" @click="(isShowDialog = true), goSearchHandler">
<i class="iconfont iconrili"></i> <i class="iconfont iconrili"></i>
{{qMsg.startDate}} ~ {{qMsg.endDate}} {{ qMsg.startDate }} ~ {{ qMsg.endDate }}
</div> </div>
<div class="search-item" style="margin-left:20px;"> <div class="search-item" style="margin-left: 20px">
<q-select <q-select
filled filled
v-model="sortNum" v-model="sortNum"
...@@ -727,28 +728,36 @@ ...@@ -727,28 +728,36 @@
map-options map-options
/> />
</div> </div>
<div class="search-item" style="margin-left:20px;"> <div class="search-item" style="margin-left: 20px">
<span style="display:inline-block;cursor:pointer;" @click="fullHeight = true">更多篩選條件</span> <span
style="display: inline-block; cursor: pointer"
@click="fullHeight = true"
>更多篩選條件</span
>
</div> </div>
</div> </div>
<div <div
v-show="showSplitPannel" v-show="showSplitPannel"
id="sb" id="sb"
style="z-index:999" style="z-index: 999"
transition-show="fade" transition-show="fade"
elevated elevated
transition-hide="scale" transition-hide="scale"
class="showbox row" class="showbox row"
> >
<div style="width:180px;"> <div style="width: 180px">
<q-scroll-area :thumb-style="thumbStyle" :bar-style="barStyle" style="height: 100%;"> <q-scroll-area
:thumb-style="thumbStyle"
:bar-style="barStyle"
style="height: 100%"
>
<q-list> <q-list>
<q-item <q-item
v-for="(x, i) in areas" v-for="(x, i) in areas"
:key="i" :key="i"
clickable clickable
v-ripple v-ripple
:active="crtAreaIndex==i" :active="crtAreaIndex == i"
@click="clkAreaHandler(i)" @click="clkAreaHandler(i)"
active-class="my-menu-link" active-class="my-menu-link"
> >
...@@ -761,24 +770,44 @@ ...@@ -761,24 +770,44 @@
</div> </div>
<q-separator vertical /> <q-separator vertical />
<div class="col q-pa-md"> <div class="col q-pa-md">
<q-scroll-area :thumb-style="thumbStyle" :bar-style="barStyle" style="height: 100%;"> <q-scroll-area
:thumb-style="thumbStyle"
:bar-style="barStyle"
style="height: 100%"
>
<template <template
v-if="areas[crtAreaIndex]&&areas[crtAreaIndex].SubList&&areas[crtAreaIndex].SubList.length>0" v-if="
areas[crtAreaIndex] &&
areas[crtAreaIndex].SubList &&
areas[crtAreaIndex].SubList.length > 0
"
>
<div
class="area-box"
v-for="(x, i) in areas[crtAreaIndex].SubList"
:key="i"
> >
<div class="area-box" v-for="(x, i) in areas[crtAreaIndex].SubList" :key="i">
<div class="q-mb-md"> <div class="q-mb-md">
<div class="h3" @click="chosenAreaHandler(x.Name)">{{x.Name}}</div> <div class="h3" @click="chosenAreaHandler(x.Name)">{{ x.Name }}</div>
</div> </div>
<template v-if="x&&x.SubList && x.SubList.length>0"> <template v-if="x && x.SubList && x.SubList.length > 0">
<div class="q-mb-sm row to-end" v-for="(y, yi) in x.SubList" :key="yi"> <div
<div class="h4" @click="chosenAreaHandler(y.Name)">{{y.Name}}</div> class="q-mb-sm row to-end"
<template v-if="y&&y.SubList&&y.SubList.length>0"> v-for="(y, yi) in x.SubList"
:key="yi"
>
<div class="h4" @click="chosenAreaHandler(y.Name)">
{{ y.Name }}
</div>
<template v-if="y && y.SubList && y.SubList.length > 0">
<div <div
class="h5" class="h5"
@click="chosenAreaHandler(z.Name)" @click="chosenAreaHandler(z.Name)"
v-for="(z, zi) in y.SubList" v-for="(z, zi) in y.SubList"
:key="zi" :key="zi"
>{{z.Name}}</div> >
{{ z.Name }}
</div>
</template> </template>
</div> </div>
</template> </template>
...@@ -789,11 +818,11 @@ ...@@ -789,11 +818,11 @@
</div> </div>
</div> </div>
</div> </div>
<template v-if="ShowType==0"> <template v-if="ShowType == 0">
<!--豆腐格--> <!--豆腐格-->
<searchBlock :DataList="DataList" :qMsg="qMsg"></searchBlock> <searchBlock :DataList="DataList" :qMsg="qMsg"></searchBlock>
</template> </template>
<template v-else-if="ShowType==1"> <template v-else-if="ShowType == 1">
<div class="wl-section-block search-content"> <div class="wl-section-block search-content">
<div class="search-filter-aside"> <div class="search-filter-aside">
<div class="search-header"> <div class="search-header">
...@@ -806,12 +835,12 @@ ...@@ -806,12 +835,12 @@
價格 價格
<span class="clear-filter" @click="clearPrice()">清除篩選</span> <span class="clear-filter" @click="clearPrice()">清除篩選</span>
</div> </div>
<div style="width:100%;height:57px;display:none"></div> <div style="width: 100%; height: 57px; display: none"></div>
<div class="range-text"> <div class="range-text">
<div class="min"> <div class="min">
<q-input <q-input
class="full_price" class="full_price"
style="width:80%" style="width: 80%"
placeholder="最低价" placeholder="最低价"
v-model="qMsg.minPrice" v-model="qMsg.minPrice"
@input="changeData" @input="changeData"
...@@ -822,7 +851,7 @@ ...@@ -822,7 +851,7 @@
<div class="max"> <div class="max">
<q-input <q-input
class="full_price" class="full_price"
style="width:80%" style="width: 80%"
placeholder="最高价" placeholder="最高价"
v-model="qMsg.maxPrice" v-model="qMsg.maxPrice"
@input="changeData" @input="changeData"
...@@ -840,7 +869,7 @@ ...@@ -840,7 +869,7 @@
<q-checkbox <q-checkbox
right-label right-label
v-model="dayNum" v-model="dayNum"
v-for="(item,index) in dayArray" v-for="(item, index) in dayArray"
:label="item.text" :label="item.text"
:key="index" :key="index"
:val="item.id" :val="item.id"
...@@ -868,7 +897,7 @@ ...@@ -868,7 +897,7 @@
<div class="q-gutter-sm"> <div class="q-gutter-sm">
<q-checkbox <q-checkbox
v-model="WeekDay" v-model="WeekDay"
v-for="(item,index) in weekList" v-for="(item, index) in weekList"
:val="item.value" :val="item.value"
:label="item.label" :label="item.label"
:key="index" :key="index"
...@@ -886,7 +915,7 @@ ...@@ -886,7 +915,7 @@
<template v-else> <template v-else>
<kkday :qMsg="qMsg" @change="handlerSearchChange"></kkday> <kkday :qMsg="qMsg" @change="handlerSearchChange"></kkday>
</template> </template>
<div v-if="DataList.length==0 && ShowType!=2" class="blank-block"> <div v-if="DataList.length == 0 && ShowType != 2" class="blank-block">
<i class="iconfont iconchazhao"></i> <i class="iconfont iconchazhao"></i>
<p>請嘗試其他關鍵字或篩選條件</p> <p>請嘗試其他關鍵字或篩選條件</p>
</div> </div>
...@@ -895,11 +924,11 @@ ...@@ -895,11 +924,11 @@
<q-dialog v-model="fullHeight" full-height> <q-dialog v-model="fullHeight" full-height>
<q-card class="column full-height" style="width: 500px"> <q-card class="column full-height" style="width: 500px">
<div class="moreTiaojiao">更多篩選條件</div> <div class="moreTiaojiao">更多篩選條件</div>
<div class="full_listDiv" style="padding-bottom:20px"> <div class="full_listDiv" style="padding-bottom: 20px">
<span>價格:</span> <span>價格:</span>
<q-input <q-input
class="full_price" class="full_price"
style="width:30%;height:45px;" style="width: 30%; height: 45px"
v-model="qMsg.minPrice" v-model="qMsg.minPrice"
@input="changeData" @input="changeData"
filled filled
...@@ -907,7 +936,7 @@ ...@@ -907,7 +936,7 @@
/> />
<q-input <q-input
class="full_price" class="full_price"
style="width:30%;height:45px;" style="width: 30%; height: 45px"
v-model="qMsg.maxPrice" v-model="qMsg.maxPrice"
@input="changeData" @input="changeData"
filled filled
...@@ -920,7 +949,7 @@ ...@@ -920,7 +949,7 @@
<q-checkbox <q-checkbox
right-label right-label
v-model="dayNum" v-model="dayNum"
v-for="(item,index) in dayArray" v-for="(item, index) in dayArray"
:label="item.text" :label="item.text"
:key="index" :key="index"
:val="item.id" :val="item.id"
...@@ -934,7 +963,7 @@ ...@@ -934,7 +963,7 @@
<div class="q-gutter-sm"> <div class="q-gutter-sm">
<q-checkbox <q-checkbox
v-model="WeekDay" v-model="WeekDay"
v-for="(item,index) in weekList" v-for="(item, index) in weekList"
:val="item.value" :val="item.value"
:label="item.label" :label="item.label"
:key="index" :key="index"
...@@ -944,10 +973,10 @@ ...@@ -944,10 +973,10 @@
</div> </div>
</div> </div>
<div class="full_btndiv"> <div class="full_btndiv">
<q-btn color="white" style="width:49%" text-color="black" label="清除" /> <q-btn color="white" style="width: 49%" text-color="black" label="清除" />
<q-btn <q-btn
color="primary" color="primary"
style="width:49%" style="width: 49%"
label="套用" label="套用"
v-close-popup v-close-popup
@click="goSearchHandler" @click="goSearchHandler"
...@@ -960,19 +989,19 @@ ...@@ -960,19 +989,19 @@
<q-card> <q-card>
<q-card-section> <q-card-section>
<div class="text-h6"> <div class="text-h6">
搜尋行程 搜尋行程11
<i class="iconfont iconbaseline-close-px" @click="isShowDialog=false"></i> <i class="iconfont iconbaseline-close-px" @click="isShowDialog = false"></i>
</div> </div>
</q-card-section> </q-card-section>
<q-separator /> <q-separator />
<div style="max-height: 550px;padding:20px 30px 30px 30px" class="scroll"> <div style="max-height: 550px; padding: 20px 30px 30px 30px" class="scroll">
<div class="chosen-box"> <div class="chosen-box">
<div class="chosen-tab"> <div class="chosen-tab">
<q-tabs v-model="tab" align="justify" narrow-indicator class="q-mb-md"> <q-tabs v-model="tab" align="justify" narrow-indicator class="q-mb-md">
<q-tab class="text-purple" name="dest" label="目的地" /> <q-tab class="text-purple" name="dest" label="目的地" />
<q-tab class="text-teal" name="kw" label="關鍵字" /> <q-tab class="text-teal" name="kw" label="關鍵字" />
</q-tabs> </q-tabs>
<div v-show="tab=='dest'"> <div v-show="tab == 'dest'">
<div class="q-mb-md"> <div class="q-mb-md">
<q-select <q-select
filled filled
...@@ -1015,7 +1044,7 @@ ...@@ -1015,7 +1044,7 @@
/> />
</div> </div>
</div> </div>
<div v-show="tab=='kw'" class="q-mb-md"> <div v-show="tab == 'kw'" class="q-mb-md">
<q-input <q-input
filled filled
id="search_key" id="search_key"
...@@ -1029,7 +1058,7 @@ ...@@ -1029,7 +1058,7 @@
<q-input <q-input
filled filled
v-model="qMsg.startDate" v-model="qMsg.startDate"
style="width:99%" style="width: 99%"
:label="$t('search_date_begin')" :label="$t('search_date_begin')"
mask="date" mask="date"
class="bg-grey-1" class="bg-grey-1"
...@@ -1077,10 +1106,10 @@ ...@@ -1077,10 +1106,10 @@
<q-btn <q-btn
color="primary" color="primary"
unelevated unelevated
style="width:100%;height:50px;margin-top:20px;" style="width: 100%; height: 50px; margin-top: 20px"
filled filled
label="搜尋" label="搜尋"
@click="isShowDialog=false,goSearchHandler()" @click="(isShowDialog = false), goSearchHandler()"
/> />
</div> </div>
</div> </div>
...@@ -1098,7 +1127,7 @@ ...@@ -1098,7 +1127,7 @@
<q-tab class="text-purple" name="dest" label="目的地" /> <q-tab class="text-purple" name="dest" label="目的地" />
<q-tab class="text-teal" name="kw" label="關鍵字" /> <q-tab class="text-teal" name="kw" label="關鍵字" />
</q-tabs> </q-tabs>
<div v-show="tab=='dest'"> <div v-show="tab == 'dest'">
<div class="q-mb-md"> <div class="q-mb-md">
<q-select <q-select
filled filled
...@@ -1141,7 +1170,7 @@ ...@@ -1141,7 +1170,7 @@
/> />
</div> </div>
</div> </div>
<div v-show="tab=='kw'" class="q-mb-md"> <div v-show="tab == 'kw'" class="q-mb-md">
<q-input <q-input
filled filled
id="search_key" id="search_key"
...@@ -1202,10 +1231,10 @@ ...@@ -1202,10 +1231,10 @@
<q-btn <q-btn
color="primary" color="primary"
unelevated unelevated
style="width:100%" style="width: 100%"
filled filled
label="搜尋" label="搜尋"
@click="showPopup=false,goSearchHandler()" @click="(showPopup = false), goSearchHandler()"
/> />
</div> </div>
</div> </div>
...@@ -1223,7 +1252,7 @@ export default { ...@@ -1223,7 +1252,7 @@ export default {
popup, popup,
searchBlock, searchBlock,
searchList, searchList,
kkday kkday,
}, },
data() { data() {
return { return {
...@@ -1238,56 +1267,56 @@ export default { ...@@ -1238,56 +1267,56 @@ export default {
id: 1, id: 1,
min: 1, min: 1,
max: 1, max: 1,
text: "1天" text: "1天",
}, },
{ {
id: 2, id: 2,
min: 2, min: 2,
max: 2, max: 2,
text: "2天" text: "2天",
}, },
{ {
id: 3, id: 3,
min: 3, min: 3,
max: 3, max: 3,
text: "3天" text: "3天",
}, },
{ {
id: 4, id: 4,
min: 4, min: 4,
max: 4, max: 4,
text: "4天" text: "4天",
}, },
{ {
id: 5, id: 5,
min: 5, min: 5,
max: 5, max: 5,
text: "5天" text: "5天",
}, },
{ {
id: 6, id: 6,
min: 6, min: 6,
max: 6, max: 6,
text: "6天" text: "6天",
}, },
{ {
id: 7, id: 7,
min: 7, min: 7,
max: 8, max: 8,
text: "7-8天" text: "7-8天",
}, },
{ {
id: 8, id: 8,
min: 9, min: 9,
max: 10, max: 10,
text: "9-10天" text: "9-10天",
}, },
{ {
id: 9, id: 9,
min: 10, min: 10,
max: null, max: null,
text: "10天以上" text: "10天以上",
} },
], ],
flight: ["长荣"], flight: ["长荣"],
...@@ -1299,7 +1328,7 @@ export default { ...@@ -1299,7 +1328,7 @@ export default {
borderRadius: "5px", borderRadius: "5px",
backgroundColor: "#027be3", backgroundColor: "#027be3",
width: "5px", width: "5px",
opacity: 0.75 opacity: 0.75,
}, },
//地区样式 //地区样式
barStyle: { barStyle: {
...@@ -1307,7 +1336,7 @@ export default { ...@@ -1307,7 +1336,7 @@ export default {
borderRadius: "9px", borderRadius: "9px",
backgroundColor: "#027be3", backgroundColor: "#027be3",
width: "9px", width: "9px",
opacity: 0.2 opacity: 0.2,
}, },
//地区数据 //地区数据
areas: [], areas: [],
...@@ -1315,62 +1344,62 @@ export default { ...@@ -1315,62 +1344,62 @@ export default {
sortArray: [ sortArray: [
{ {
label: "依推薦程度", label: "依推薦程度",
value: 1 value: 1,
}, },
{ {
label: "低價優先", label: "低價優先",
value: 2 value: 2,
}, },
{ {
label: "高價優先", label: "高價優先",
value: 3 value: 3,
}, },
{ {
label: "最快出發日", label: "最快出發日",
value: 4 value: 4,
}, },
{ {
label: "最晚出發日", label: "最晚出發日",
value: 5 value: 5,
}, },
{ {
label: "天數少到多", label: "天數少到多",
value: 6 value: 6,
}, },
{ {
label: "天數多到少", label: "天數多到少",
value: 7 value: 7,
} },
], ],
weekList: [ weekList: [
{ {
label: "星期日", label: "星期日",
value: 0 value: 0,
}, },
{ {
label: "星期一", label: "星期一",
value: 1 value: 1,
}, },
{ {
label: "星期二", label: "星期二",
value: 2 value: 2,
}, },
{ {
label: "星期三", label: "星期三",
value: 3 value: 3,
}, },
{ {
label: "星期四", label: "星期四",
value: 4 value: 4,
}, },
{ {
label: "星期五", label: "星期五",
value: 5 value: 5,
}, },
{ {
label: "星期六", label: "星期六",
value: 6 value: 6,
} },
], ],
showPopup: false, showPopup: false,
tab: "dest", tab: "dest",
...@@ -1378,7 +1407,7 @@ export default { ...@@ -1378,7 +1407,7 @@ export default {
fl: "", fl: "",
sl: "", sl: "",
tl: "", tl: "",
ful: "" ful: "",
}, },
//查询参数 //查询参数
qMsg: { qMsg: {
...@@ -1399,8 +1428,8 @@ export default { ...@@ -1399,8 +1428,8 @@ export default {
// pageIndex: 1, // pageIndex: 1,
// pageSize: 10, // pageSize: 10,
// priceOrderByField: 4, // priceOrderByField: 4,
SeriesIds:"", SeriesIds: "",
LineIds:"", LineIds: "",
searchKey: "", // 搜索词 searchKey: "", // 搜索词
// startCityId: 0, // startCityId: 0,
// PageCount: 0, // PageCount: 0,
...@@ -1408,11 +1437,11 @@ export default { ...@@ -1408,11 +1437,11 @@ export default {
dayNumList: [], // 天数 dayNumList: [], // 天数
webSiteCategoryIds: "", // 分类Id webSiteCategoryIds: "", // 分类Id
placeIds: "", // 目的地城市Id placeIds: "", // 目的地城市Id
orderBy: 0 // 排序 0默认 1价格升序 2价格降序 orderBy: 0, // 排序 0默认 1价格升序 2价格降序
}, },
ShowType: 0, //显示样式(0-豆腐格,1-列表) ShowType: 0, //显示样式(0-豆腐格,1-列表)
//行程列表 //行程列表
DataList: [] DataList: [],
}; };
}, },
created() {}, created() {},
...@@ -1440,7 +1469,7 @@ export default { ...@@ -1440,7 +1469,7 @@ export default {
var qsearchDate = this.getUrlKey("qsearchDate", window.location.href); var qsearchDate = this.getUrlKey("qsearchDate", window.location.href);
var qsearchEndDate = this.getUrlKey("qsearchEndDate", window.location.href); var qsearchEndDate = this.getUrlKey("qsearchEndDate", window.location.href);
var areaId = this.getUrlKey("areaId", window.location.href); var areaId = this.getUrlKey("areaId", window.location.href);
var areaIds = this.getUrlKey("areaIds", window.location.href) var areaIds = this.getUrlKey("areaIds", window.location.href);
var categoryId = this.getUrlKey("categoryId", window.location.href); var categoryId = this.getUrlKey("categoryId", window.location.href);
var seriesIds = this.getUrlKey("SeriesIds", window.location.href); var seriesIds = this.getUrlKey("SeriesIds", window.location.href);
var lineIds = this.getUrlKey("LineIds", window.location.href); var lineIds = this.getUrlKey("LineIds", window.location.href);
...@@ -1457,7 +1486,7 @@ export default { ...@@ -1457,7 +1486,7 @@ export default {
this.qMsg.areaId = Number(areaId); this.qMsg.areaId = Number(areaId);
} }
if (areaIds) { if (areaIds) {
this.qMsg.areaIds = areaIds.split(',').map(item => Number(item)); this.qMsg.areaIds = areaIds.split(",").map((item) => Number(item));
} }
if (categoryId) { if (categoryId) {
this.qMsg.categoryId = Number(categoryId); this.qMsg.categoryId = Number(categoryId);
...@@ -1497,8 +1526,8 @@ export default { ...@@ -1497,8 +1526,8 @@ export default {
// pageSize: 10, // pageSize: 10,
// priceOrderByField: 4, // priceOrderByField: 4,
searchKey: "", // 搜索词 searchKey: "", // 搜索词
SeriesIds:"", SeriesIds: "",
LineIds:"", LineIds: "",
// startCityId: 0, // startCityId: 0,
// PageCount: 0, // PageCount: 0,
// TotalCount: 0, // TotalCount: 0,
...@@ -1506,7 +1535,7 @@ export default { ...@@ -1506,7 +1535,7 @@ export default {
webSiteCategoryIds: "", // 分类Id webSiteCategoryIds: "", // 分类Id
placeIds: "", // 目的地城市Id placeIds: "", // 目的地城市Id
orderBy: 0 // 排序 0默认 1价格升序 2价格降序 orderBy: 0, // 排序 0默认 1价格升序 2价格降序
}; };
this.qMsg = msg; this.qMsg = msg;
this.goSearchHandler(); this.goSearchHandler();
...@@ -1532,14 +1561,14 @@ export default { ...@@ -1532,14 +1561,14 @@ export default {
this.apipost( this.apipost(
"ws_get_GetSearchArea", "ws_get_GetSearchArea",
{}, {},
res => { (res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
if (res.data.data) { if (res.data.data) {
this.areas = res.data.data.AreaList; this.areas = res.data.data.AreaList;
} }
} }
}, },
err => {} (err) => {}
); );
}, },
searchFocusHandler() { searchFocusHandler() {
...@@ -1606,11 +1635,7 @@ export default { ...@@ -1606,11 +1635,7 @@ export default {
companyId = groupinfo.siteList[0].companyId; companyId = groupinfo.siteList[0].companyId;
} }
this.SearchResult = this.SearchResult =
this.qMsg.startDate + this.qMsg.startDate + "-" + this.qMsg.endDate + " " + this.qMsg.searchKey;
"-" +
this.qMsg.endDate +
" " +
this.qMsg.searchKey;
let msg = { let msg = {
pageIndex: this.qMsg.pageIndex, pageIndex: this.qMsg.pageIndex,
pageSize: this.qMsg.pageSize, pageSize: this.qMsg.pageSize,
...@@ -1632,8 +1657,8 @@ export default { ...@@ -1632,8 +1657,8 @@ export default {
startCityId: this.qMsg.startCityId, startCityId: this.qMsg.startCityId,
weekDayList: this.WeekDay, weekDayList: this.WeekDay,
dayNumList: this.dayNum, dayNumList: this.dayNum,
SeriesIds:this.qMsg.SeriesIds, SeriesIds: this.qMsg.SeriesIds,
LineIds:this.qMsg.LineIds, LineIds: this.qMsg.LineIds,
}; };
if (localStorage.b2bUser) { if (localStorage.b2bUser) {
var b2bUser = JSON.parse(window.localStorage.getItem("b2bUser")); var b2bUser = JSON.parse(window.localStorage.getItem("b2bUser"));
...@@ -1644,7 +1669,7 @@ export default { ...@@ -1644,7 +1669,7 @@ export default {
this.apipost( this.apipost(
"b2c_get_GetB2C2024TravelProductPage", "b2c_get_GetB2C2024TravelProductPage",
msg, msg,
res => { (res) => {
this.$q.loading.hide(); this.$q.loading.hide();
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.qMsg.PageCount = res.data.data.pageCount; this.qMsg.PageCount = res.data.data.pageCount;
...@@ -1655,9 +1680,9 @@ export default { ...@@ -1655,9 +1680,9 @@ export default {
} }
} }
}, },
err => {} (err) => {}
); );
} },
} },
}; };
</script> </script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment