You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

294 lines
11 KiB

const priceOptionIndex = ()=>{
return {
init(){
this.renderPagination();
this.initButtons(this.kind);
this.options = this.options.slice(0, this.pageLength)
},
kind: kind,
pageLength: 50,
search: '',
orioptions: options,
options: options,
options_arr: {
1:'標',
2:'選',
},
btntype:1,
buttons:[],
pageLength: 50,
currentpage:1,
dataLangth:options.length,
search: '',
pageNumber:1,
initButtons(kind){
if(kind == 'A'){
this.buttons = [
{name: '車廂意匠', type: 'A1'}
]
}else if(kind == 'B'){
this.buttons = [
{name: '天井', type: 'B1'},
{name: '地板', type: 'B2'},
{name: '操縱盤', type: 'B3'},
{name: '扶手', type: 'B4'},
{name: '車廂門與層門(轎門/層門)', type: 'B5'},
{name: '轎壁(車廂側板)', type: 'B6'},
{name: '其他車廂內裝配件', type: 'B7'},
]
}else if(kind == 'C'){
this.buttons = [
{name: '框', type: 'C1'},
{name: '乘場指示器', type: 'C2'},
{name: '燈', type: 'C3'},
{name: '方式與門', type: 'C4'},
]
}else if(kind == 'D'){
this.buttons = [
{name: '功能與配置', type: 'D1'},
{name: 'OH與樓高', type: 'D2'},
]
}else if(kind == 'E'){
this.buttons = [
{name: '平台梯', type: 'E1'},
]
}
this.buttons.unshift({
name:'顯示全部',type:'1',
})
this.btntype = this.buttons[0].type;
},
changeType(type=this.btntype){
this.currentpage = 1
this.btntype = type;
this.options = this.orioptions;
this.options = this.getOptions();
this.inputSearch()
},
getOptions(start=0, end=this.pageLength){
if(this.btntype != 1){
return this.options.filter(item=>(item.subkind == this.btntype)).slice(start, end)
}
return this.options.slice(start, end);
},
inputSearch(e=null){
let text = e!=null ? e.target.value : this.search;
this.search = text.toLowerCase();
if(text != ''){
this.currentpage = 1;
this.options = this.orioptions
this.options = this.options.filter(item=>{
if(item.subkind == this.btntype || this.btntype == 1){
if(item.group_name == null) item.group_name = ''
if(item.spec == null) item.spec = ''
if(item.memo == null) item.memo = ''
if(item.price == null) item.price = 0
return (item.group_name.toLowerCase().includes(text.toLowerCase()) || item.spec.toLowerCase().includes(text.toLowerCase()) || item.memo.toLowerCase().includes(text.toLowerCase()) || String(item.price).includes(text.toLowerCase())) ;
}
}).slice((Number(this.currentpage)-1)*Number(this.pageLength), (Number(this.currentpage)-1)*Number(this.pageLength) + Number(this.pageLength))
this.dataLangth = this.options.length
}else{
this.options = this.orioptions
if(this.btntype == 1){
this.options = this.options.filter(item=> item.kind == this.kind)
}else{
this.options = this.options.filter(item=> (item.subkind == this.btntype))
}
if(this.btntype == 1){
this.dataLangth = this.orioptions.filter(item=> (item.kind == this.kind)).length
}else{
this.dataLangth = this.orioptions.filter(item=> (item.subkind == this.btntype)).length
}
this.options = this.options.slice((Number(this.currentpage)-1)*Number(this.pageLength), (Number(this.currentpage)-1)*Number(this.pageLength) + Number(this.pageLength))
}
this.pageNumber = Math.ceil(Number(this.dataLangth)/Number(this.pageLength))
this.pageNumberArr = []
for(let i=0;i<this.pageNumber;i++){
this.pageNumberArr.push({page:i+1, disabled:false})
}
},
renderPagination(){
this.inputSearch();
},
switchPage(page){
if(page == '...') return
this.currentpage = page
this.renderPagination()
},
selectPage(e){
this.currentpage = e.target.value
this.renderPagination()
}
}
}
const priceOptionSelect = ()=>{
return {
init(){
this.renderPagination();
this.options = this.options.slice(0, this.pageLength)
},
orioptions: options,
options: options,
options_arr: {
1:'標',
2:'選',
},
btntype:1,
buttons:[],
pageLength: 50,
currentpage:1,
dataLangth:options.length,
search: '',
pageNumber:1,
startpage:0,
endpage:this.startpage + this.pageLength,
pageNumberArr:[],
changeType(){
this.options = this.orioptions;
this.options = this.getOptions();
this.inputSearch()
},
getOptions(start=0, end=this.pageLength){
return this.options.slice(start, end);
},
inputSearch(e=null){
let text = e!=null ? e.target.value : this.search;
this.search = text.toLowerCase();
if(text != ''){
this.currentpage = 1;
this.options = this.orioptions
this.options = this.options.filter(item=>{
if(item.group_name == null) item.group_name = ''
if(item.spec == null) item.spec = ''
if(item.memo == null) item.memo = ''
if(item.price == null) item.price = 0
return (item.group_name.toLowerCase().includes(text.toLowerCase()) || item.spec.toLowerCase().includes(text.toLowerCase()) || item.memo.toLowerCase().includes(text.toLowerCase()) || String(item.price).includes(text.toLowerCase())) ;
}).slice((Number(this.currentpage)-1)*Number(this.pageLength), (Number(this.currentpage)-1)*Number(this.pageLength) + Number(this.pageLength))
this.dataLangth = this.options.length
}else{
this.options = this.orioptions
this.options = this.options.slice((Number(this.currentpage)-1)*Number(this.pageLength), (Number(this.currentpage)-1)*Number(this.pageLength) + Number(this.pageLength))
this.dataLangth = this.orioptions.length
}
this.pageNumber = Math.ceil(Number(this.dataLangth)/Number(this.pageLength))
this.pageNumberArr = []
for(let i=0;i<this.pageNumber;i++){
this.pageNumberArr.push({page:i+1, disabled:false})
}
},
renderPagination(){
this.inputSearch();
},
switchPage(page){
if(page == '...') return
this.currentpage = page
this.renderPagination()
},
selectPage(e){
this.currentpage = e.target.value
this.renderPagination()
}
}
}
const pricereviewOptionSelect = ()=>{
return {
init(){
console.log(options);
this.optionCategory = 0
this.initButtons();
},
options: options,
orioptions: options,
optionalArr: {
1:'標配',
2:'選配',
3:'加價',
},
searchtext:'',
kind:0,
subkind:0,
buttons:[],
initButtons(kind){
if(kind == 'A'){
this.buttons = [
{name: '車廂意匠', type: 'A1'}
]
}else if(kind == 'B'){
this.buttons = [
{name: '天井', type: 'B1'},
{name: '地板', type: 'B2'},
{name: '操縱盤', type: 'B3'},
{name: '扶手', type: 'B4'},
{name: '車廂門與層門(轎門/層門)', type: 'B5'},
{name: '轎壁(車廂側板)', type: 'B6'},
{name: '其他車廂內裝配件', type: 'B7'},
]
}else if(kind == 'C'){
this.buttons = [
{name: '框', type: 'C1'},
{name: '乘場指示器', type: 'C2'},
{name: '燈', type: 'C3'},
{name: '方式與門', type: 'C4'},
]
}else if(kind == 'D'){
this.buttons = [
{name: '功能與配置', type: 'D1'},
{name: 'OH與樓高', type: 'D2'},
]
}else if(kind == 'E'){
this.buttons = [
{name: '平台梯', type: 'E1'},
]
}else if(kind == 'F'){
this.buttons = [
{name: '汰改', type: 'F1'},
]
}else if(kind == 0){
this.buttons = []
}
},
optionSubCategory:1,
changeCategory(category, subcategory=0){
this.kind = (category=='sub') ? this.kind : category;
if(subcategory != 0) {
this.subkind = subcategory
}else{
this.subkind = 0
}
if(category == 0){
this.kind = 0;
this.subkind = 0;
}
this.initButtons(category)
this.reloadOptions();
},
reloadOptions(){
if(this.kind == 0){
this.options = this.orioptions
return;
}
if(this.subkind == 0){
this.options = this.orioptions.filter(option=> option.kind == this.kind)
return;
}
this.options = this.orioptions.filter(option=> option.kind == this.kind && option.subkind == this.subkind)
},
searchOptions(e){
this.reloadOptions();
let val = e.target.value.toLowerCase()
this.options = (this.options).filter(option=>{
if(option.group_name == null) option.group_name = ''
if(option.spec == null) option.spec = ''
if(option.memo == null) option.memo = ''
if(option.price == null) option.price = 0
if(option.unit == null) option.unit = ''
return option.group_name.includes(val) || option.memo.toLowerCase().includes(val) || option.spec.toLowerCase().includes(val) || option.unit.includes(val) || String(option.price).includes(val)
})
}
}
}