Commit a6818df2 authored by youjie's avatar youjie

Merge branch 'master' of http://gitlab.oytour.com/viitto/million

parents d0836562 ed8cfdad
......@@ -9,48 +9,39 @@ import message from './message'
import product from './product'
import VueViewer from 'v-viewer'
// import VueCoreVideoPlayer from 'vue-core-video-player'
import 'animate.css';
// import 'animate.css';
// 或者只引入需要的动画类
import 'animate.css/source/attention_seekers/bounce.css';
// import 'animate.css/source/attention_seekers/bounce.css';
Vue.prototype.$EventBus = new Vue()
Vue.use(VueCoreVideoPlayer)
Vue.use(VueViewer)
Vue.prototype.$md5 = md5;
Vue.prototype.$message = message
Vue.prototype.$product = product
//域名管理对象
Vue.prototype.domainManager = function() {
let domainUrl = '';
domainUrl = "http://192.168.2.214:8082";
domainUrl = "http://192.168.5.46";
// domainUrl = "http://reborn.oytour.com";
let domainNameUrl = '';
domainNameUrl = this.GetDomain();
// domainNameUrl = "http://tmb2b.oytour.com/"
domainNameUrl = window.location.hostname
if (domainNameUrl.indexOf('testerp.oytour') !== -1) {
domainUrl = "http://testapi.oytour.com";
} else if (domainNameUrl.indexOf('oytour') !== -1) {
//域名管理对象
Vue.prototype.domainManager = function () {
let domainUrl = "http://192.168.5.214";
let domainNameUrl = this.GetDomain();
if (domainNameUrl.indexOf('oytour') !== -1) {
domainUrl = "http://reborn.oytour.com";
// domainUrl = 'http://192.168.10.68' //'http://192.168.10.226:8015' ''http://192.168.10.9:8083' '
}
//domainUrl = "http://192.168.5.46:8501";
var obj = {
//主地址
DomainUrl: domainUrl,
//常用提交数据URL
PostUrl: domainUrl + "/api/common/post",
javaUrl: 'http://efficient.oytour.com'
};
return obj;
}
//获取当前域名
Vue.prototype.GetDomain = function() {
}
//获取当前域名
Vue.prototype.GetDomain = function () {
var domainNameUrl = window.location.hostname;
domainNameUrl = "www.oytour.com";
return domainNameUrl;
}
Vue.prototype.groupBy = function(array, f) {
Vue.prototype.groupBy = function (array, f) {
const groups = {};
array.forEach((item) => {
const group = JSON.stringify(f(item));
......@@ -64,7 +55,7 @@ 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) {
const len = num.length
return len <= 3 ? num : thousandFormat(num.substr(0, len - 3)) + split + num.substr(len - 3, 3)
......@@ -88,9 +79,9 @@ Vue.prototype.moneyFormat = function(num, decimal = 2, split = ',') {
} else {
return '--'
}
}
//HTTP提交数据
Vue.prototype.apipost = function(cmd, msg, successCall, faildCall) {
}
//HTTP提交数据
Vue.prototype.apipost = function (cmd, msg, successCall, faildCall) {
if (msg == null || msg == "") {
msg = {}
}
......@@ -128,10 +119,12 @@ Vue.prototype.apipost = function(cmd, msg, successCall, faildCall) {
}
})
.then(res => {
if(res.data.resultCode === 10000) {
if (res.data.resultCode === 10000) {
this.$router.replace({
path: '/login',
query: {path: path}
query: {
path: path
}
});
return
}
......@@ -140,7 +133,7 @@ Vue.prototype.apipost = function(cmd, msg, successCall, faildCall) {
}, faildCall)
}
Vue.prototype.apiJavaPost = function(cmd, msg, successCall, faildCall) {
Vue.prototype.apiJavaPost = function (cmd, msg, successCall, faildCall) {
if (msg == null || msg == "") {
msg = {}
}
......@@ -181,7 +174,7 @@ Vue.prototype.apiJavaPost = function(cmd, msg, successCall, faildCall) {
//获取缓存
Vue.prototype.getLocalStorage = function() {
Vue.prototype.getLocalStorage = function () {
try {
var localStorageData = window.localStorage["b2bUser"];
if (localStorageData !== undefined && localStorageData != 'undefined') {
......@@ -196,7 +189,7 @@ Vue.prototype.apiJavaPost = function(cmd, msg, successCall, faildCall) {
}
//向外跳转
Vue.prototype.OpenNewUrl = function(URL) {
Vue.prototype.OpenNewUrl = function (URL) {
if (URL && URL != '') {
if (URL.indexOf("https") != -1) {
var str = 'http://' + URL.substring(8);
......@@ -211,8 +204,8 @@ Vue.prototype.OpenNewUrl = function(URL) {
}
//公用跳转
Vue.prototype.CommonJump = function(path, obj, type = 'push') {
let p = typeof(path) == 'string' ? path : this.$product.genernalUrl(path)
Vue.prototype.CommonJump = function (path, obj, type = 'push') {
let p = typeof (path) == 'string' ? path : this.$product.genernalUrl(path)
if (type === 'blank') { // 新窗口打开
let routeUrl = this.$router.resolve({
path: p,
......@@ -232,7 +225,7 @@ Vue.prototype.CommonJump = function(path, obj, type = 'push') {
}
}
Vue.prototype.$user = user
Vue.prototype.createCalendar = function(dateStr) {
Vue.prototype.createCalendar = function (dateStr) {
var days = [];
var date;
if (dateStr) {
......@@ -285,9 +278,9 @@ Vue.prototype.createCalendar = function(dateStr) {
CurrentYear: currentYear,
CurrentWeek: currentWeek
};
}
//格式化日期
Vue.prototype.formatDate = function(year, month, day) {
}
//格式化日期
Vue.prototype.formatDate = function (year, month, day) {
var y = year;
var m = month;
if (m < 10) m = "0" + m;
......@@ -297,7 +290,7 @@ Vue.prototype.formatDate = function(year, month, day) {
}
//格式化日期二
Vue.prototype.formatDate2 = function(dateStr) {
Vue.prototype.formatDate2 = function (dateStr) {
var date = new Date(dateStr);
return {
CYear: date.getFullYear(),
......@@ -307,7 +300,7 @@ Vue.prototype.formatDate2 = function(dateStr) {
}
//添加月份
Vue.prototype.AddMonth = function(dateStr, month) {
Vue.prototype.AddMonth = function (dateStr, month) {
var v = new Date(dateStr);
if (v) {
var t = new Date(v.getFullYear(), v.getMonth(), v.getDate(), v.getHours(), v.getMinutes(), v.getSeconds(), v.getMilliseconds());
......@@ -320,10 +313,10 @@ Vue.prototype.AddMonth = function(dateStr, month) {
}
//获取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
}
Vue.prototype.GetHtml = function(str) {
Vue.prototype.GetHtml = function (str) {
if (str && str != "") {
return str.replace(/&lt;/g, '<').replace(/&gt;/g, '>')
.replace(/&amp;/g, '&').replace(/&quot;/g, '"').replace(/&apos;/g, "'");
......
......@@ -565,8 +565,11 @@ export default {
},
created() {
this.msg = this.qMsg;
// this.msg.teamType = [];
//this.initAreaList();
if(this.qMsg&&this.qMsg.TeamType==1)
{
this.msg.TeamType=1;
}
this.initGoods();
this.msg.priceRange = {
min: 1,
......
<style>
.SearchMain {
.SearchMain {
min-height: 800px;
}
}
.SearchTop {
.SearchTop {
width: 100%;
/* margin: 32px 0 30px 0;
background-color: rgba(255, 255, 255, .95);
border-top: 1px solid #eee;
box-shadow: 0 2px 6px 0 rgba(0, 0, 0, .03); */
min-height: 600px;
}
}
.SearchContent {
.SearchContent {
position: relative;
display: flex;
width: 100%;
margin: 6px auto 0;
box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.03);
}
}
.SearchMain .showbox {
.SearchMain .showbox {
position: absolute;
box-sizing: border-box;
width: 100%;
......@@ -29,22 +29,22 @@
left: 0;
top: 60px;
box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.3), 0px 0px 20px rgba(0, 0, 0, 0.1);
}
}
.Search_Zhi {
.Search_Zhi {
display: inline-block;
margin: 0 10px;
height: 40px;
line-height: 40px;
}
}
.full_price {
.full_price {
width: 40%;
display: inline-block;
margin-left: 20px;
}
}
.moreTiaojiao {
.moreTiaojiao {
width: 100%;
height: 60px;
text-align: center;
......@@ -52,21 +52,21 @@
font-size: 18px;
border-bottom: 1px solid #eee;
color: #333;
}
}
.full_listDiv {
.full_listDiv {
padding: 20px;
border-bottom: 1px solid #eee;
}
}
.full_title {
.full_title {
margin-bottom: 10px;
font-size: 15px;
font-weight: 700;
color: #666;
}
}
.full_btndiv {
.full_btndiv {
position: absolute;
bottom: 0;
left: 0;
......@@ -77,21 +77,21 @@
border-top: 1px solid #eee;
padding: 20px 10px;
background-color: #fff;
}
}
.search-bar-m {
.search-bar-m {
display: flex;
width: 100%;
border-right: 1px solid #eee;
border-bottom: 1px solid #eee;
}
}
.search-bar-m .keyword-input {
.search-bar-m .keyword-input {
width: calc(100% - 40px);
cursor: pointer;
}
}
.keyword-input {
.keyword-input {
height: 44px;
border: 0;
margin: 0;
......@@ -100,32 +100,32 @@
outline: none;
color: #333;
padding-left: 20px;
}
}
.search-bar-m i {
.search-bar-m i {
height: 45px;
line-height: 45px;
text-align: center;
margin-left: 20px;
color: #999;
}
}
.sortDiv {
.sortDiv {
width: 100%;
display: flex;
justify-content: space-between;
border-top: 1px solid #eee;
box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.03);
}
}
.sortShaixuan {
.sortShaixuan {
width: 50%;
height: 57px;
line-height: 57px;
text-align: center;
}
}
@media only screen and (max-width: 1200px) {
@media only screen and (max-width: 1200px) {
.pd-list .pd-box {
flex-basis: calc(50% - 10px) !important;
}
......@@ -133,23 +133,23 @@
.pd-list .pd-box:nth-child(even) {
margin-right: 0 !important;
}
}
}
@media only screen and (min-width: 768px) {
@media only screen and (min-width: 768px) {
.pd-box:hover {
transform: translate(0, -4px) !important;
box-shadow: 0 4px 25px 0 rgba(0, 0, 0, 0.2), 0 0 0 0 rgba(0, 0, 0, 0.1) !important;
}
}
}
@media only screen and (max-width: 425px) {
@media only screen and (max-width: 425px) {
.pd-list .pd-box {
flex-basis: 100% !important;
margin-right: 0 !important;
}
}
}
.pd-list .pd-box {
.pd-list .pd-box {
margin-right: 20px;
margin-bottom: 30px;
flex-basis: calc(25% - 15px);
......@@ -158,9 +158,9 @@
box-shadow: 0 2px 3px rgba(0, 0, 0, 0.09);
transition: -webkit--webkit-transform 0.2s ease, box-shadow 0.2s ease;
background-color: #fff;
}
}
.pd-box .pd-img {
.pd-box .pd-img {
position: relative;
width: 100%;
padding-bottom: 66.237%;
......@@ -169,9 +169,9 @@
-o-background-size: cover;
background-size: cover;
background-position: center;
}
}
.pd-box .pd-img .pd-price {
.pd-box .pd-img .pd-price {
position: absolute;
right: 0;
bottom: 0;
......@@ -179,9 +179,9 @@
width: 100%;
border-bottom: 4px solid #00afff;
text-align: right;
}
}
.pd-box .pd-img .pd-price .price {
.pd-box .pd-img .pd-price .price {
display: inline-block;
padding: 4px 12px 0;
color: #fff;
......@@ -194,18 +194,18 @@
-moz-background-clip: padding;
border-radius: 5px 0 0;
background-clip: padding-box;
}
}
.pd-box .pd-img .pd-price .price small {
.pd-box .pd-img .pd-price .price small {
padding: 0 4px;
font-size: 14px;
}
}
.pd-box .pd-content {
.pd-box .pd-content {
padding: 15px 15px 20px;
}
}
.pd-box .pd-title {
.pd-box .pd-title {
font-size: 15px;
line-height: 1.5;
font-weight: 400;
......@@ -215,77 +215,77 @@
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
}
.pd-box .pd-departure {
.pd-box .pd-departure {
padding-top: 10px;
font-size: 14px;
color: #999;
}
}
.pd-box .pd-departure .more {
.pd-box .pd-departure .more {
float: right;
font-size: 14px;
}
}
.Search_center {
.Search_center {
width: 100%;
max-width: 1200px;
margin: 20px auto;
padding: 0 20px;
}
}
.Search_center .pd-list {
.Search_center .pd-list {
display: flex;
flex-flow: wrap;
width: 100%;
margin: 0;
padding: 0;
}
}
.pd-list li:nth-child(4n) {
.pd-list li:nth-child(4n) {
margin-right: 0;
}
}
.pd-list li {
.pd-list li {
list-style-type: none;
}
}
.SearchMain .search-content {
.SearchMain .search-content {
display: flex;
align-items: flex-start;
margin-top: 20px;
}
}
.wl-section-block {
.wl-section-block {
width: 100%;
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
}
.search-filter-aside {
.search-filter-aside {
width: 300px;
margin-right: 30px;
margin-bottom: 30px;
background-color: #fff;
}
}
.search-content .group-result-list {
.search-content .group-result-list {
display: flex;
flex-flow: wrap;
width: calc(100% - 300px);
}
}
.search-filter-aside .search-header {
.search-filter-aside .search-header {
position: relative;
padding: 10px 15px;
border-bottom: 1px solid #eee;
font-size: 18px;
font-weight: 700;
}
}
.search-filter-aside .clear-filter {
.search-filter-aside .clear-filter {
position: absolute;
top: 15px;
right: 15px;
......@@ -297,35 +297,35 @@
font-size: 13px;
color: #999;
cursor: pointer;
}
}
.search-filter-aside .search-type {
.search-filter-aside .search-type {
position: relative;
padding: 15px;
border-bottom: 1px solid #eee;
}
}
.search-filter-aside .search-type .search-title {
.search-filter-aside .search-type .search-title {
margin-bottom: 20px;
font-size: 16px;
font-weight: 700;
color: #333;
}
}
.range-text {
.range-text {
display: flex;
justify-content: space-between;
letter-spacing: 0;
font-weight: 700;
color: #333;
font-size: 15px;
}
}
.SearchMain .row.inline {
.SearchMain .row.inline {
display: flex !important;
}
}
.group-statis-block {
.group-statis-block {
display: flex;
justify-content: flex-start;
width: 100%;
......@@ -333,15 +333,15 @@
margin-bottom: 15px;
font-size: 15px;
height: 45px;
}
}
.group-result-list .group-statis-block > * {
.group-result-list .group-statis-block>* {
display: inline-block;
height: 100%;
line-height: 45px;
}
}
.group-result-list .group-statis-block .group-share {
.group-result-list .group-statis-block .group-share {
position: relative;
width: 150px;
text-align: center;
......@@ -349,25 +349,25 @@
color: #fff;
margin-right: 15px;
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.16), 0 2px 7px 0 rgba(0, 0, 0, 0.12);
}
}
.group-result-list .group-statis-block .group-statis-detail {
.group-result-list .group-statis-block .group-statis-detail {
padding-left: 10px;
background: #fff;
width: calc(100% - 150px);
}
}
.group-statis-detail .title {
.group-statis-detail .title {
font-size: 18px;
}
}
.group-statis-detail .num {
.group-statis-detail .num {
color: #fd992d;
margin: 0 3px;
font-size: 16px;
}
}
.group-box {
.group-box {
width: 100%;
display: flex;
flex-wrap: wrap;
......@@ -376,9 +376,9 @@
box-shadow: 0 2px 3px rgba(0, 0, 0, 0.09);
transition: transform 0.2s ease, box-shadow 0.2s ease;
margin-bottom: 20px;
}
}
.group-cover {
.group-cover {
position: relative;
width: 270px;
-webkit-background-size: cover;
......@@ -387,9 +387,9 @@
background-size: cover;
background-position: center;
overflow: hidden;
}
}
.group-cover img {
.group-cover img {
position: absolute;
top: 0;
right: null;
......@@ -402,62 +402,62 @@
-ms-user-select: none;
user-select: none;
pointer-events: none;
}
}
.group-box .group-main {
.group-box .group-main {
display: flex;
flex-wrap: wrap;
width: calc(100% - 270px);
flex-basis: calc(100% - 270px);
}
}
.group-box > div {
.group-box>div {
flex: 1;
}
}
.group-box .group-main .group-info {
.group-box .group-main .group-info {
padding: 20px;
width: calc(100% - 200px);
border-right: 1px solid #eee;
}
}
.group-box .group-main .group-info .group-detail {
.group-box .group-main .group-info .group-detail {
margin-bottom: 5px;
font-size: 14px;
color: #666;
}
}
.group-box .group-main .group-info .group-detail i {
.group-box .group-main .group-info .group-detail i {
margin-right: 5px;
font-size: 18px;
}
}
.group-box .group-main .group-info .group-detail > * {
.group-box .group-main .group-info .group-detail>* {
display: inline-block;
vertical-align: middle;
}
}
.group-name {
.group-name {
color: #333;
font-size: 16px;
line-height: 1.2;
font-weight: bold;
}
}
.group-list {
.group-list {
margin: 0;
padding: 0;
}
}
.group-list li {
.group-list li {
display: inline-block;
vertical-align: middle;
margin-right: 10px;
margin-bottom: 5px;
list-style-type: none;
}
}
.group-list li a {
.group-list li a {
padding: 5px;
font-size: 12px;
background-color: #d9edf7;
......@@ -465,39 +465,39 @@
color: #0083bd;
border-radius: 3px;
background-clip: padding-box;
}
}
.price-info {
.price-info {
display: flex;
flex-wrap: wrap;
align-items: flex-end;
padding: 20px 15px;
width: 200px;
font-size: 14px;
}
}
.price-wrap {
.price-wrap {
width: 100%;
text-align: right;
}
}
.price-wrap > * {
.price-wrap>* {
display: block;
width: 100%;
}
}
.price_Search {
.price_Search {
font-size: 32px;
font-weight: 700;
color: #ff9a14;
}
}
.price_unit {
.price_unit {
font-size: 14px;
padding-right: 5px;
}
}
.btn_warning {
.btn_warning {
text-align: center;
cursor: pointer;
padding: 0 15px;
......@@ -511,9 +511,9 @@
color: #fff;
margin-top: 10px;
line-height: 40px;
}
}
@media only screen and (max-width: 1200px) {
@media only screen and (max-width: 1200px) {
.search-content .search-filter-aside {
display: none;
}
......@@ -521,15 +521,15 @@
.search-content .group-result-list {
width: 100%;
}
}
}
@media only screen and (max-width: 1200px) {
@media only screen and (max-width: 1200px) {
.search-content {
max-width: 768px;
}
}
}
@media only screen and (max-width: 768px) {
@media only screen and (max-width: 768px) {
.group-statis-block .group-statis-detail {
width: calc(100% - 45px);
}
......@@ -560,25 +560,25 @@
.price-info .price-wrap .price_Search {
font-size: 28px;
}
}
}
.SearchMain .q-field__control {
.SearchMain .q-field__control {
height: 46px;
}
}
.SearchMain .q-field__control {
.SearchMain .q-field__control {
min-height: 46px !important;
}
}
.SearchMain .q-field__native {
.SearchMain .q-field__native {
min-height: 46px;
}
}
.SearchMain .q-field__marginal {
.SearchMain .q-field__marginal {
height: 46px;
}
}
.search-filter-inner {
.search-filter-inner {
position: relative;
display: flex;
flex-wrap: wrap;
......@@ -589,35 +589,37 @@
align-items: center;
border-top: 1px solid #eee;
border-bottom: 1px solid #eee;
}
}
.SearchContent .search-item {
.SearchContent .search-item {
display: flex;
border-right: 1px solid #eee;
line-height: 44px;
padding-right: 20px;
}
.search-item:first-child {
}
.search-item:first-child {
border-left: 1px solid #eee;
}
.search-filter-inner i {
}
.search-filter-inner i {
width: 50px;
height: 45px;
line-height: 45px;
text-align: center;
color: #999;
display: inline-block;
}
}
.full-height .q-textarea .q-field__control {
.full-height .q-textarea .q-field__control {
min-height: 25px !important;
}
}
.full_price .q-placeholder {
.full_price .q-placeholder {
min-height: 25px !important;
}
}
/* .text-h6 {
/* .text-h6 {
text-align: center;
padding: 0 20px;
height: 60px;
......@@ -627,73 +629,82 @@
font-weight: 700;
position: relative;
} */
.text-h6 i {
.text-h6 i {
position: absolute;
right: 20px;
cursor: pointer;
font-size: 23px;
}
.SearchContent .q-field--filled .q-field__control {
}
.SearchContent .q-field--filled .q-field__control {
background: #fff;
}
.SearchContent .q-field--filled .q-field__control:before {
}
.SearchContent .q-field--filled .q-field__control:before {
background-color: #fff;
border-bottom: 0;
}
.SearchContent .q-field--filled.q-field--focused .q-field__control:before {
}
.SearchContent .q-field--filled.q-field--focused .q-field__control:before {
background-color: #fff !important;
}
.sortDiv .q-field--filled .q-field__control {
}
.sortDiv .q-field--filled .q-field__control {
background: #fff;
}
.sortDiv .q-field--filled .q-field__control:before {
}
.sortDiv .q-field--filled .q-field__control:before {
background-color: #fff;
border-bottom: 0;
}
.sortDiv .q-field--filled.q-field--focused .q-field__control:before {
}
.sortDiv .q-field--filled.q-field--focused .q-field__control:before {
background-color: #fff !important;
}
.mobileSearch {
}
.mobileSearch {
display: none;
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 768px) {
.SearchContent {
display: none;
}
.mobileSearch {
display: block;
}
}
.SearchMain .blank-block {
}
.SearchMain .blank-block {
margin: 100px auto;
width: 300px;
text-align: center;
}
.SearchMain .blank-block i {
}
.SearchMain .blank-block i {
font-size: 80px;
color: #ddd;
}
.SearchMain .blank-block p {
}
.SearchMain .blank-block p {
color: #999;
font-size: 15px;
letter-spacing: 1px;
}
.desktop-page {
}
.desktop-page {
max-width: 1200px;
margin: 0 auto;
}
}
</style>
<template>
<div class="SearchMain" :class="{'desktop-page':$q.platform.is.desktop}">
<div class="SearchTop">
<div class="q-my-md" v-if="qMsg.searchKey">
<q-breadcrumbs>
<q-breadcrumbs-el
icon="home"
label="首頁"
class="cursor-pointer"
@click="CommonJump('/index', {})"
/>
<q-breadcrumbs-el icon="home" label="首頁" class="cursor-pointer" @click="CommonJump('/index', {})" />
<q-breadcrumbs-el :label="qMsg.searchKey" />
</q-breadcrumbs>
</div>
......@@ -704,11 +715,7 @@
<!-- 电脑端 -->
<div class="row SearchContent q-mt-md" v-if="!$q.screen.xs && 1==0">
<div class="search-filter-inner">
<div
class="search-item"
style="width:200px;cursor:pointer;"
@click="isShowDialog=true,goSearchHandler"
>
<div class="search-item" style="width:200px;cursor:pointer;" @click="isShowDialog=true,goSearchHandler">
<i class="iconfont iconchazhao"></i>
{{qMsg.searchKey}}
</div>
......@@ -718,40 +725,19 @@
</div>
<div class="search-item" style="margin-left:20px;">
<q-select
filled
v-model="sortNum"
:options="sortArray"
@input="changeData"
emit-value
map-options
/>
<q-select filled v-model="sortNum" :options="sortArray" @input="changeData" emit-value map-options />
</div>
<div class="search-item" style="margin-left:20px;">
<span style="display:inline-block;cursor:pointer;" @click="fullHeight = true">更多篩選條件</span>
</div>
</div>
<div
v-show="showSplitPannel"
id="sb"
style="z-index:999"
transition-show="fade"
elevated
transition-hide="scale"
class="showbox row"
>
<div v-show="showSplitPannel" id="sb" style="z-index:999" transition-show="fade" elevated
transition-hide="scale" class="showbox row">
<div style="width:180px;">
<q-scroll-area :thumb-style="thumbStyle" :bar-style="barStyle" style="height: 100%;">
<q-list>
<q-item
v-for="(x, i) in areas"
:key="i"
clickable
v-ripple
:active="crtAreaIndex==i"
@click="clkAreaHandler(i)"
active-class="my-menu-link"
>
<q-item v-for="(x, i) in areas" :key="i" clickable v-ripple :active="crtAreaIndex==i"
@click="clkAreaHandler(i)" active-class="my-menu-link">
<q-item-section>
<q-item-label>{{ x.Name }}</q-item-label>
</q-item-section>
......@@ -762,9 +748,7 @@
<q-separator vertical />
<div class="col q-pa-md">
<q-scroll-area :thumb-style="thumbStyle" :bar-style="barStyle" style="height: 100%;">
<template
v-if="areas[crtAreaIndex]&&areas[crtAreaIndex].SubList&&areas[crtAreaIndex].SubList.length>0"
>
<template 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="q-mb-md">
<div class="h3" @click="chosenAreaHandler(x.Name)">{{x.Name}}</div>
......@@ -773,12 +757,8 @@
<div class="q-mb-sm row to-end" 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
class="h5"
@click="chosenAreaHandler(z.Name)"
v-for="(z, zi) in y.SubList"
:key="zi"
>{{z.Name}}</div>
<div class="h5" @click="chosenAreaHandler(z.Name)" v-for="(z, zi) in y.SubList" :key="zi">
{{z.Name}}</div>
</template>
</div>
</template>
......@@ -809,26 +789,12 @@
<div style="width:100%;height:57px;display:none"></div>
<div class="range-text">
<div class="min">
<q-input
class="full_price"
style="width:80%"
placeholder="最低价"
v-model="qMsg.minPrice"
@input="changeData"
filled
autogrow
/>
<q-input class="full_price" style="width:80%" placeholder="最低价" v-model="qMsg.minPrice"
@input="changeData" filled autogrow />
</div>
<div class="max">
<q-input
class="full_price"
style="width:80%"
placeholder="最高价"
v-model="qMsg.maxPrice"
@input="changeData"
filled
autogrow
/>
<q-input class="full_price" style="width:80%" placeholder="最高价" v-model="qMsg.maxPrice"
@input="changeData" filled autogrow />
</div>
</div>
</div>
......@@ -837,15 +803,8 @@
天數
<span class="clear-filter" @click="clearDays()">清除篩選</span>
</div>
<q-checkbox
right-label
v-model="dayNum"
v-for="(item,index) in dayArray"
:label="item.text"
:key="index"
:val="item.id"
@input="changeData"
/>
<q-checkbox right-label v-model="dayNum" v-for="(item,index) in dayArray" :label="item.text"
:key="index" :val="item.id" @input="changeData" />
</div>
<div class="search-type">
<div class="search-title">
......@@ -866,15 +825,8 @@
<span class="clear-filter" @click="clearWeek()">清除篩選</span>
</div>
<div class="q-gutter-sm">
<q-checkbox
v-model="WeekDay"
v-for="(item,index) in weekList"
:val="item.value"
:label="item.label"
:key="index"
color="teal"
@input="changeData"
/>
<q-checkbox v-model="WeekDay" v-for="(item,index) in weekList" :val="item.value" :label="item.label"
:key="index" color="teal" @input="changeData" />
</div>
</div>
</div>
......@@ -897,61 +849,29 @@
<div class="moreTiaojiao">更多篩選條件</div>
<div class="full_listDiv" style="padding-bottom:20px">
<span>價格:</span>
<q-input
class="full_price"
style="width:30%;height:45px;"
v-model="qMsg.minPrice"
@input="changeData"
filled
autogrow
/>
<q-input
class="full_price"
style="width:30%;height:45px;"
v-model="qMsg.maxPrice"
@input="changeData"
filled
autogrow
/>
<q-input class="full_price" style="width:30%;height:45px;" v-model="qMsg.minPrice" @input="changeData" filled
autogrow />
<q-input class="full_price" style="width:30%;height:45px;" v-model="qMsg.maxPrice" @input="changeData" filled
autogrow />
</div>
<div class="full_listDiv">
<div class="full_title">天數</div>
<div class="q-gutter-sm">
<q-checkbox
right-label
v-model="dayNum"
v-for="(item,index) in dayArray"
:label="item.text"
:key="index"
:val="item.id"
@input="changeData"
/>
<q-checkbox right-label v-model="dayNum" v-for="(item,index) in dayArray" :label="item.text" :key="index"
:val="item.id" @input="changeData" />
</div>
</div>
<div class="full_listDiv">
<div class="full_title">出發星期</div>
<div class="q-gutter-sm">
<q-checkbox
v-model="WeekDay"
v-for="(item,index) in weekList"
:val="item.value"
:label="item.label"
:key="index"
color="teal"
@input="changeData"
/>
<q-checkbox v-model="WeekDay" v-for="(item,index) in weekList" :val="item.value" :label="item.label"
:key="index" color="teal" @input="changeData" />
</div>
</div>
<div class="full_btndiv">
<q-btn color="white" style="width:49%" text-color="black" label="清除" />
<q-btn
color="primary"
style="width:49%"
label="套用"
v-close-popup
@click="goSearchHandler"
/>
<q-btn color="primary" style="width:49%" label="套用" v-close-popup @click="goSearchHandler" />
</div>
</q-card>
</q-dialog>
......@@ -975,99 +895,46 @@
</q-tabs>
<div v-show="tab=='dest'">
<div class="q-mb-md">
<q-select
filled
v-model="chosenResult.fl"
:options="areas"
option-label="Name"
option-value="Name"
label="請選擇地區"
/>
<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="請選擇地區"
/>
<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="請選擇地區"
/>
<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"
@input="setSearchKey(chosenResult.ful)"
:options="chosenResult.tl.SubList"
option-label="Name"
option-value="Name"
label="請選擇地區"
/>
<q-select filled v-model="chosenResult.ful" @input="setSearchKey(chosenResult.ful)"
:options="chosenResult.tl.SubList" option-label="Name" option-value="Name" label="請選擇地區" />
</div>
</div>
<div v-show="tab=='kw'" class="q-mb-md">
<q-input
filled
id="search_key"
v-model="qMsg.searchKey"
class="bg-grey-1"
:label="$t('search')"
/>
<q-input filled id="search_key" v-model="qMsg.searchKey" class="bg-grey-1" :label="$t('search')" />
</div>
<div class="q-mb-md row">
<div class="col">
<q-input
filled
v-model="qMsg.startDate"
style="width:99%"
:label="$t('search_date_begin')"
mask="date"
class="bg-grey-1"
>
<q-input filled v-model="qMsg.startDate" style="width:99%" :label="$t('search_date_begin')"
mask="date" class="bg-grey-1">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qDateProxy7">
<q-date
mask="YYYY-MM-DD"
:title="$t('search_date_begin')"
subtitle="選擇"
v-model="qMsg.startDate"
@input="() => $refs.qDateProxy7.hide()"
/>
<q-date mask="YYYY-MM-DD" :title="$t('search_date_begin')" subtitle="選擇"
v-model="qMsg.startDate" @input="() => $refs.qDateProxy7.hide()" />
</q-popup-proxy>
</q-icon>
</template>
</q-input>
</div>
<div class="col">
<q-input
filled
v-model="qMsg.endDate"
:label="$t('search_date_end')"
mask="date"
class="bg-grey-1"
>
<q-input filled v-model="qMsg.endDate" :label="$t('search_date_end')" mask="date" class="bg-grey-1">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qDateProxy8">
<q-date
mask="YYYY-MM-DD"
:title="$t('search_date_begin')"
subtitle="選擇"
v-model="qMsg.endDate"
@input="() => $refs.qDateProxy8.hide()"
/>
<q-date mask="YYYY-MM-DD" :title="$t('search_date_begin')" subtitle="選擇"
v-model="qMsg.endDate" @input="() => $refs.qDateProxy8.hide()" />
</q-popup-proxy>
</q-icon>
</template>
......@@ -1075,14 +942,8 @@
</div>
</div>
<div>
<q-btn
color="primary"
unelevated
style="width:100%;height:50px;margin-top:20px;"
filled
label="搜尋"
@click="isShowDialog=false,goSearchHandler()"
/>
<q-btn color="primary" unelevated style="width:100%;height:50px;margin-top:20px;" filled label="搜尋"
@click="isShowDialog=false,goSearchHandler()" />
</div>
</div>
</div>
......@@ -1101,98 +962,45 @@
</q-tabs>
<div v-show="tab=='dest'">
<div class="q-mb-md">
<q-select
filled
v-model="chosenResult.fl"
:options="areas"
option-label="Name"
option-value="Name"
label="請選擇地區"
/>
<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="請選擇地區"
/>
<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="請選擇地區"
/>
<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"
@input="setSearchKey(chosenResult.ful)"
:options="chosenResult.tl.SubList"
option-label="Name"
option-value="Name"
label="請選擇地區"
/>
<q-select filled v-model="chosenResult.ful" @input="setSearchKey(chosenResult.ful)"
:options="chosenResult.tl.SubList" option-label="Name" option-value="Name" label="請選擇地區" />
</div>
</div>
<div v-show="tab=='kw'" class="q-mb-md">
<q-input
filled
id="search_key"
v-model="qMsg.searchKey"
class="bg-grey-1"
:label="$t('search')"
/>
<q-input filled id="search_key" v-model="qMsg.searchKey" class="bg-grey-1" :label="$t('search')" />
</div>
<div class="q-mb-md row">
<div class="col">
<q-input
filled
v-model="qMsg.startDate"
:label="$t('search_date_begin')"
mask="date"
class="bg-grey-1"
>
<q-input filled v-model="qMsg.startDate" :label="$t('search_date_begin')" mask="date" class="bg-grey-1">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qDateProxy7">
<q-date
mask="YYYY-MM-DD"
:title="$t('search_date_begin')"
subtitle="選擇"
v-model="qMsg.startDate"
@input="() => $refs.qDateProxy7.hide()"
/>
<q-date mask="YYYY-MM-DD" :title="$t('search_date_begin')" subtitle="選擇" v-model="qMsg.startDate"
@input="() => $refs.qDateProxy7.hide()" />
</q-popup-proxy>
</q-icon>
</template>
</q-input>
</div>
<div class="col">
<q-input
filled
v-model="qMsg.endDate"
:label="$t('search_date_end')"
mask="date"
class="bg-grey-1"
>
<q-input filled v-model="qMsg.endDate" :label="$t('search_date_end')" mask="date" class="bg-grey-1">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qDateProxy8">
<q-date
mask="YYYY-MM-DD"
:title="$t('search_date_begin')"
subtitle="選擇"
v-model="qMsg.endDate"
@input="() => $refs.qDateProxy8.hide()"
/>
<q-date mask="YYYY-MM-DD" :title="$t('search_date_begin')" subtitle="選擇" v-model="qMsg.endDate"
@input="() => $refs.qDateProxy8.hide()" />
</q-popup-proxy>
</q-icon>
</template>
......@@ -1200,14 +1008,8 @@
</div>
</div>
<div>
<q-btn
color="primary"
unelevated
style="width:100%"
filled
label="搜尋"
@click="showPopup=false,goSearchHandler()"
/>
<q-btn color="primary" unelevated style="width:100%" filled label="搜尋"
@click="showPopup=false,goSearchHandler()" />
</div>
</div>
</div>
......@@ -1215,12 +1017,14 @@
</div>
</template>
<script>
import popup from "../components/props/index";
import searchBlock from "../components/searchProductdata/block";
import searchList from "../components/searchProductdata/list";
import kkday from "../components/searchProductdata/kkday.vue";
import {date} from 'quasar'
export default {
import popup from "../components/props/index";
import searchBlock from "../components/searchProductdata/block";
import searchList from "../components/searchProductdata/list";
import kkday from "../components/searchProductdata/kkday.vue";
import {
date
} from 'quasar'
export default {
components: {
popup,
searchBlock,
......@@ -1235,8 +1039,7 @@ export default {
dayNum: [], //天数
WeekDay: [],
//天数数组
dayArray: [
{
dayArray: [{
id: 1,
min: 1,
max: 1,
......@@ -1314,8 +1117,7 @@ export default {
//地区数据
areas: [],
crtAreaIndex: 0,
sortArray: [
{
sortArray: [{
label: "依推薦程度",
value: 1
},
......@@ -1344,8 +1146,7 @@ export default {
value: 7
}
],
weekList: [
{
weekList: [{
label: "星期日",
value: 0
},
......@@ -1401,8 +1202,8 @@ export default {
// pageIndex: 1,
// pageSize: 10,
// priceOrderByField: 4,
SeriesIds:"",
LineIds:"",
SeriesIds: "",
LineIds: "",
searchKey: "", // 搜索词
// startCityId: 0,
// PageCount: 0,
......@@ -1411,7 +1212,7 @@ export default {
webSiteCategoryIds: "", // 分类Id
placeIds: "", // 目的地城市Id
orderBy: 0, // 排序 0默认 1价格升序 2价格降序
TeamType: 0,//私家团
TeamType: 0, //私家团
StartCityList: [],
},
ShowType: 0, //显示样式(0-豆腐格,1-列表)
......@@ -1420,14 +1221,13 @@ export default {
};
},
created() {},
watch:{
qMsg:{
handler(n,o){
}
watch: {
qMsg: {
handler(n, o) {}
},
'$route':{
handler(n,o){
if(this.$route.params.TeamType){
'$route': {
handler(n, o) {
if (this.$route.params.TeamType) {
this.qMsg.TeamType = this.$route.params.TeamType
this.changeData()
}
......@@ -1462,22 +1262,25 @@ export default {
var categoryId = this.getUrlKey("categoryId", window.location.href);
var seriesIds = this.getUrlKey("SeriesIds", window.location.href);
var lineIds = this.getUrlKey("LineIds", window.location.href);
console.log("qsearchKey",qsearchKey);
var TeamType = this.getUrlKey("TeamType", window.location.href);
console.log("TeamType", TeamType);
if (qsearchKey) {
this.qMsg.searchKey = qsearchKey;
}
console.log("qsearchDate",qsearchDate);
if (qsearchDate&&qsearchDate.length>0) {
if (qsearchDate && qsearchDate.length > 0) {
this.qMsg.startDate = qsearchDate;
} else {
this.qMsg.startDate = date.formatDate(date.addToDate(new Date(), {
day: 1
}), 'YYYY-MM-DD');
}
else{
this.qMsg.startDate =date.formatDate(date.addToDate(new Date(),{day:1}),'YYYY-MM-DD');
}
if (qsearchEndDate&&qsearchEndDate.length>0) {
if (qsearchEndDate && qsearchEndDate.length > 0) {
this.qMsg.endDate = qsearchEndDate;
}
else{
this.qMsg.endDate =date.formatDate(date.addToDate(new Date(),{month:2}),'YYYY-MM-DD');
} else {
this.qMsg.endDate = date.formatDate(date.addToDate(new Date(), {
month: 2
}), 'YYYY-MM-DD');
}
if (areaId) {
this.qMsg.areaId = Number(areaId);
......@@ -1494,6 +1297,9 @@ export default {
if (lineIds) {
this.qMsg.LineIds = lineIds;
}
if (TeamType && TeamType == 1) {
this.qMsg.TeamType = TeamType;
}
if ((qsearchKey || qsearchDate || qsearchEndDate) && this.ShowType != 2) {
this.goSearchHandler();
this.$forceUpdate();
......@@ -1523,8 +1329,8 @@ export default {
// pageSize: 10,
// priceOrderByField: 4,
searchKey: "", // 搜索词
SeriesIds:"",
LineIds:"",
SeriesIds: "",
LineIds: "",
// startCityId: 0,
// PageCount: 0,
// TotalCount: 0,
......@@ -1556,8 +1362,7 @@ export default {
//获取地区数据
getAera() {
this.apipost(
"ws_get_GetSearchArea",
{},
"ws_get_GetSearchArea", {},
res => {
if (res.data.resultCode == 1) {
if (res.data.data) {
......@@ -1658,9 +1463,9 @@ export default {
startCityId: this.qMsg.startCityId,
weekDayList: this.WeekDay,
dayNumList: this.dayNum,
SeriesIds:this.qMsg.SeriesIds,
LineIds:this.qMsg.LineIds,
TeamType:this.qMsg.TeamType,
SeriesIds: this.qMsg.SeriesIds,
LineIds: this.qMsg.LineIds,
TeamType: this.qMsg.TeamType,
StartCityList: [],
};
if (localStorage.b2bUser) {
......@@ -1687,5 +1492,6 @@ export default {
);
}
}
};
};
</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