PageSourceSearch

https://www.dancelight.com.tw/plus/store.js?v=202610021046

js dancelight.com.tw collected 2026-10-07 20:00:15 UTC 7,026 bytes, 263 lines download raw bytes

1$(document).ready(function () {
2    let url = new URL(window.location.href);
3
4    // // 若沒有search就把service點回在畫面
5    if (url.searchParams.get('search') == '') {
6        for (let pair of url.searchParams.entries()) {
7            // 處理分類
8            if (pair[0] == 'service') {
9                JSON.parse(pair[1], function (k, v) {
10                    $(`.check-wrap input[data-id=${v * 1}]`).prop('checked', true);
11                });
12            }
13            if (pair[0] == 'center' && pair[1] == 1) {
14                $(`.check-wrap input[data-id="center"]`).prop('checked', true);
15            }
16        }
17    }
18});
19
20// 監聽返回(或前進)
21window.addEventListener('popstate', function (event) {
22    let state = null;
23    if (event.state) {
24        state = event.state;
25        send(0, state.page, state);
26    } else {
27        send();
28    }
29});
30
31// 點選縣市
32function changeCity(e) {
33    var city = $(e).data('id') ?? 0;
34    if (city == 0) $('.now-val').eq(0).text('all');
35
36    var url = new URL(location.href);
37    var params = new URLSearchParams(url.search);
38
39    //Add a second foo parameter.
40    params.set('city', city);
41    params.set('region', 0);
42    history.pushState('', '', 'distribution?' + params);
43
44    $('#city').val(city);
45
46    $('#region').val(0);
47
48    var data = {
49        city: city,
50    };
51
52    var url = BaseUrl + '/store/ajax/changeCity';
53    $.ajax({
54        url: url,
55        type: 'get',
56        data: data,
57        beforeSend: function (xhr) {},
58        complete: function () {},
59    }).done(function (feedback) {
60        $('.filter-2 .now-val').text('all');
61        $('#region_title').html(feedback);
62        $('#page').val(1);
63    });
64}
65
66// 點選鄉鎮
67function changeRegion(e) {
68    var region = $(e).data('id');
69
70    var url = new URL(location.href);
71    var params = new URLSearchParams(url.search);
72
73    //Add a second foo parameter.
74    params.set('region', region);
75
76    history.pushState('', '', 'distribution?' + params);
77
78    $('#region').val(region);
79    $('#page').val(1);
80}
81
82// 點選服務
83function changeCategory() {
84    var temp = {};
85    let show_center = '0';
86    $('input.category_btn').each(function (index) {
87        if ($(this).prop('checked') == true) {
88            if ($(this).data('id') == 'center') {
89                show_center = '1';
90            } else {
91                temp[index] = $(this).data('id');
92            }
93        }
94    });
95    var json = JSON.stringify(temp);
96
97    var url = new URL(location.href);
98    var params = new URLSearchParams(url.search);
99
100    //Add a second foo parameter.
101    params.set('center', show_center);
102    params.set('service', json);
103
104    //展示中心
105
106    history.pushState('', '', 'distribution?' + params);
107
108    $('#center').val(show_center);
109    $('#service').val(json);
110}
111
112$('#search_store_input').keypress(function (e) {
113    if (e.which == 13) {
114        searchdata(1);
115    }
116});
117// is_search 為店名搜尋
118
119// label就能處理這件事,有點多餘
120$('.setchangeCategory').on('click', function () {
121    $(this).closest('.check-box').find('input').click();
122});
123$('.click-search').on('click', function () {
124    searchdata();
125});
126$('.clear-button').on('click', function () {
127    $('#search_store_input').val('');
128    $('.check-box').prop('checked', false);
129
130    // 舊的
131    // changeCity();
132    // changeCategory();
133
134    $('#city')[0].slim.setSelected('');
135    $('#region')[0].slim.setSelected('');
136});
137function searchdata(is_search = 0) {
138    // $('#search').val(page);
139
140    // var url = new URL(location.href);
141    // var params = new URLSearchParams(url.search);
142
143    // //Add a second foo parameter.
144    // params.set('search', $('#search_store_input').val());
145    // history.pushState('', '', 'distribution?' + params);
146
147    send(is_search);
148}
149
150// 送出搜尋
151function send(is_search = 0, page = null, state = null) {
152    var params = new URLSearchParams();
153    // 是否換頁 - 換頁不自動變更查詢
154    var isChangePage = !(page === null) && state === null ? true : false;
155    var page = page || 1;
156    if (state === null) {
157        const slim_city = $('#city')[0].slim;
158        const slim_region = $('#region')[0].slim;
159
160        search = $('#search_store_input').val();
161        // 搜尋店名
162        if (is_search == 1) {
163            // 清空縣市地區
164
165            // 舊的縣市地區
166            // changeCity();
167
168            // slim select縣市
169            slim_city.setSelected('');
170            slim_region.setSelected('');
171
172            // 展示中心、服務取消選取
173            $('.category_btn').prop('checked', false);
174        } else {
175            if (!isChangePage) {
176                // 清除店名搜尋
177                search = '';
178                $('#search_store_input').val(search);
179            }
180        }
181
182        // 取得選取的展示中心或服務
183        var service = [];
184        $('.category_btn').each(function () {
185            if ($(this).prop('checked')) {
186                const type = $(this).data('param') || '';
187                switch (type) {
188                    case 'center':
189                        params.set('center', 1);
190                        break;
191                    case 'service':
192                        service.push($(this).data('id'));
193                        break;
194                }
195            }
196        });
197        if (service.length > 0) {
198            params.set('service', JSON.stringify(service));
199        }
200
201        params.set('city', slim_city.getSelected());
202        params.set('region', slim_region.getSelected());
203        params.set('search', search);
204        params.set('page', page);
205        state = {};
206        for (const [key, value] of params.entries()) {
207            state[key] = value;
208        }
209
210        history.pushState(state, '', 'distribution?' + params.toString());
211    } else {
212        for (const key in state) {
213            params.set(key, state[key]);
214        }
215    }
216
217    var url = BaseUrl + '/store/ajax/getData';
218
219    url += '?' + params.toString();
220
221    $.ajax({
222        url: url,
223        type: 'get',
224    }).done(function (feedback) {
225        $('.map-box').removeClass('no-result');
226        $('.map-box').html(feedback.render);
227        if (feedback.page == 1 && feedback.count == 0) $('.map-box').addClass('no-result');
228
229        if (is_search) {
230            $('.map-box').addClass('after-search');
231        }
232
233        // 關閉手機板燈箱
234        _common.closeFullLightBox();
235        _common.scrollTarget('.map-slides', 150);
236    });
237}
238
239function getSearchData() {
240    let search_store_input = $('#search_store_input').val();
241}
242
243function changePage(e, page) {
244    // $('#page').val(page);
245    send(0, page);
246}
247
248// 分類內頁燈箱
249function changeCategoryDetail(id) {
250    var data = {
251        id: id,
252    };
253    var url = BaseUrl + '/store/ajax/changeCategoryDetail';
254
255    $.ajax({
256        url: url,
257        type: 'get',
258        data: data,
259    }).done(function (feedback) {
260        $('#ajaxStoreDetailContent').html(feedback);
261        _common.commonSwiper();
262    });
263}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.