/g,"").replace(/\//g,""),typeof clickList=="object"){let time=calculateVisitTime();event.isTrusted?clickList.push({lastClickDom,time,type:"User manual click"}):clickList.push({lastClickDom,time,type:"Program click"}),clickList=clickList?JSON.stringify(clickList).substring(0,2e3):[]}},!0),window.addEventListener("error",function(e){if(isBlocked)return!1;stringToLower(e.target.tagName)==="img"&&e.target.src&&holderFile(e.target.src)?loadFailed.filter(item=>item.src===e.target.src).length===0&&loadFailed.push({type:"img_load_error",src:e.target.src}):stringToLower(e.target.tagName)==="script"&&e.target.src&&holderFile(e.target.src)?loadFailed.filter(item=>item.src===e.target.src).length===0&&loadFailed.push({type:"js_load_error",src:e.target.src}):stringToLower(e.target.tagName)==="link"&&e.target.href&&holderFile(e.target.href)&&loadFailed.filter(item=>item.src===e.target.href).length===0&&loadFailed.push({type:"css_load_error",src:e.target.href})},!0),window.onerror=function(errorMessage,scriptURI,lineNumber,columnNumber,errorObj){if(!scriptURI&&!errorObj||scriptURI&&scriptURI.indexOf("chrome-extension")!==-1||isBlocked)return;if(errorObj){const securityError=/SecurityError/i.test(errorObj),getItemError=/getItem/i.test(errorObj),setItemError=/setItem/i.test(errorObj),serviceWorkerError=/evaluating 'navigator.serviceWorker.register'/i.test(errorObj);if(securityError||setItemError||getItemError||serviceWorkerError)return}const hasSignificanceError=errorSignificanceMessageInfo.some(sign=>errorMessage.includes("Unexpected token "+sign)||errorMessage.includes("unexpected token"+sign)||errorMessage.includes("Unterminated string")||errorMessage.includes("Expected property name")||errorMessage.includes("Cannot convert undefined or null to object"));let networkSendStatus=!1;["4g","5g","wifi"].some(item=>navigatorConnection?.effectiveType.includes(item))&&!navigatorConnection?.saveData&&(networkSendStatus=!0),hasSignificanceError&&isChromeNeedCall&&networkSendStatus&&(console.log("%c"+`dom=${lastClickDom} message=${errorMessage}`,"background: rgba(130,189,174,0.8); color: #fff; font-size: 18px; padding: 2px 10px;"),errorSignificanceMessageArr.push({errorMessage,errorType:"significance",pageType:"",scriptURI:scriptURI?scriptURI.replace(/[?#].*$/,""):"",domMessage:lastClickDom,errorObj:errorObj.toString(),lineNumber,columnNumber,...otherInfo()}),lastClickDom=""),isChromeNeedCall&&(console.log("%c"+`dom=${lastClickDom} message=${errorMessage}`,"background: rgba(130,189,174,0.8); color: #fff; font-size: 14px; padding: 2px 10px;"),errorMessageArr.push({errorMessage,scriptURI:scriptURI?scriptURI.replace(/[?#].*$/,""):"",lineNumber,columnNumber,errorObj:errorObj.toString(),...otherInfo()}),errorMessageArr=errorMessageArr.filter(obj=>typeof obj.errorObj=="string"&&!obj.errorObj.includes("ReferenceError: Vue is not defined")&&!obj.errorObj.includes("SyntaxError: Unexpected end of JSON input")))},window.addEventListener("load",function(){let mergeErrorMessage=errorMessageArr.concat(errorSignificanceMessageArr);fileLoadFailedFun(),jsExceptionFun(mergeErrorMessage),setPageLoadTimestamp(),checkPageUrl()});function setPageLoadTimestamp(){document.body.setAttribute("data-load-time",(new Date).toLocaleString())}function abuttingJointFramework(c){if(c&&c.textStatus&&c.textStatus==="error"){let r={};r.handler=c.context.handler,r.errorObj=JSON.stringify(c.context.options),r.errorMessage=c.dataOrXhr.responseText,r.errorType="request error",r.pageType="",c.errorMessage&&monitorFrontError(r)}}function calculateVisitTime(){let endTime=new Date;return(endTime-startTime)/1e3+"s"}function checkPageUrl(){location.pathname.includes(location.protocol)&&typeof monitorFrontError=="function"&&monitorFrontError({errorMessage:"The current page pathname contains the protocol",pageUrl:window.location.href,warning_message_code:"dingtalk_front_pageurl_error"})}function fileLoadFailedFun(){loadFailed.length>0&&monitorFrontFilesFailed({filesInfo:loadFailed,...otherInfo()}).then(result=>{result&&fileLoadFailedRequestFun(result)}).catch(error=>{console.error(error)})}function fileLoadFailedRequestFun(loadFailedRes){let jqueryFailed=!1,loadFailedFileArray=[];if(loadFailedRes=loadFailedRes?JSON.parse(loadFailedRes):[],loadFailedRes.length>0){for(const k of loadFailedRes)k.src.includes("jquery-")&&k.type==="js_load_error"&&(jqueryFailed=!0),loadFailedFileArray.push(k.src);loadFailedFileArray=loadFailedFileArray.filter((item,index,self)=>self.indexOf(item)===index);let errorMessage=jqueryFailed?"The current page jQuery file does not exist":"Some resource files do not exist";monitorFrontError({errorMessage,pageUrl:window.location.href,pageType:jqueryFailed?"":"",files:loadFailedFileArray,...otherInfo()})}}function jsExceptionFun(errorMessageArr){for(const k of errorMessageArr)k.scriptURI.indexOf(location.origin)>=0&&getErrorSendTo("",k.lineNumber,k,!0)}function handleResourceError(errorMessage,resourceSrc){monitorFrontError({errorMessage,pageUrl:window.location.href,src:resourceSrc,...otherInfo()})}function getWebPageSource(url){return new Promise(function(resolve,reject){let xhr=new XMLHttpRequest;xhr.open("GET",url),xhr.onload=function(){xhr.status===200?resolve(xhr.responseText):reject("HTTP request failed with status code "+xhr.status)},xhr.onerror=function(){reject("Error fetching web page")},xhr.send()})}function processHtmlSourceCode(htmlSourceCode,targetLineNumber,pageTextType,info){if(pageTextType==="html"){const parser=new DOMParser,doc=parser.parseFromString(htmlSourceCode,"text/html"),lines=doc.documentElement.innerHTML.split(` `);getErrorSendTo(lines,targetLineNumber,info)}if(pageTextType==="js"){const lines=htmlSourceCode.split(` `);getErrorSendTo(lines,targetLineNumber,info)}}function getErrorSendTo(lines="",targetLineNumber=0,dataJson,notChecked=!1){let signNum=30,maxCodeLength=2e3;if(!notChecked){if(lines===""||targetLineNumber===0)return!1;if(lines!==""){let code="";for(let k=0;k{xhrRequestError({method:"POST",url:window.location.href,headers:{"Content-Type":"application/json","X-October-Request-Handler":"onGetFrontInfo","X-Requested-With":"XMLHttpRequest"},data:dataJson}).then(function(response){resolve(response)}).catch(function(error){console.error(error),reject(error)})})}function monitorFrontError(dataJson,isShow=1){xhrRequestError({method:"POST",url:window.location.href,headers:{"Content-Type":"application/json","X-October-Request-Handler":"onMonitorFrontError","X-Requested-With":"XMLHttpRequest"},data:dataJson}).then(function(){isShow&&showErrorNotification(dataJson.errorType||"JsError",dataJson.errorMessage)}).catch(function(error){console.error(error)})}function monitorFrontFilesFailed(dataJson){return new Promise((resolve,reject)=>{xhrRequestError({method:"POST",url:window.location.href,headers:{"Content-Type":"application/json","X-October-Request-Handler":"onMonitorFrontFilesFailed","X-Requested-With":"XMLHttpRequest"},data:dataJson}).then(function(response){let res=JSON.parse(response);for(const k in res)showErrorNotification("Some resource files do not exist",res[k].src);resolve(response)}).catch(function(error){reject(error)})})}function xhrRequestError(options){return new Promise(function(resolve,reject){var xhr=new XMLHttpRequest,header;if(xhr.open(options.method,options.url,!0),xhr.onload=function(){xhr.status>=200&&xhr.status<300?resolve(xhr.responseText):reject(xhr.statusText)},xhr.onerror=function(){reject(xhr.statusText)},options.headers)for(header in options.headers)xhr.setRequestHeader(header,options.headers[header]);options.data?xhr.send(JSON.stringify(options.data)):xhr.send()})}function holderFile(url=""){let isHolderArray=["dist/","assets/","files/"],isDomain=verifyAddressIsDomain({src:url});return isHolderArray.some(item=>url.includes(item))&&isDomain}function getCookieValError(name){var prefix=name+"=",end,value,start=document.cookie.indexOf(prefix);return start==-1?"":(end=document.cookie.indexOf(";",start+prefix.length),end==-1&&(end=document.cookie.length),value=document.cookie.substring(start+prefix.length,end),unescape(value))}function verifyAddressIsDomain(obj){if(obj?.src){let src=obj.src.toString(),origin=location.origin;return src.indexOf(origin)>=0}}function stringToLower(str){if(str)return str.toString().toLowerCase()}}catch(e){console.error(e)}裙類|女性時尚 - vivi-look 台灣|流行時尚女裝 已加入購物車 會員登入收藏購物車所有商品新品上市人氣熱銷限時折扣特別企劃加一元 多一件上衣類T恤襯衫衛衣針織/毛衣細肩帶/背心風格支線清新學院風韓版優雅風可愛漫畫風百變休閒風洋裝類長洋裝短洋裝印花洋裝牛仔洋裝蕾絲洋裝針織洋裝吊帶褲套裝下著類寬褲長褲牛仔褲裙類內搭褲短褲外套類休閒夾克西裝外套罩衫風衣外套羽絨外套鞋子休閒鞋平底鞋高跟鞋靴子涼鞋內衣泳衣情趣內衣bra內衣內褲居家服/睡衣配件飾品包包墨鏡冰袖皮帶雨具/雨衣襪子圍巾/手套帽/披肩後跟貼 裙類最新上架價格由低到高價格由高到低最高人氣知性高腰遮胯垂感西裝百褶半身裙NT$788 (12)半價設計感復古綁帶一片式牛仔半身裙NT$607 NT$1,213 (527)【5色】設計感遮肉顯瘦不規則高腰a字半身長裙NT$685 (8)氣質毛呢A字半身裙女高腰中長款顯瘦傘裙時尚百搭大擺裙NT$1,485 (31)韓系優雅簡約素色高腰過膝半身長裙NT$970 (334)半價懶人時尚經典耐久性不變形A字裙修身休閑半身裙NT$747 NT$1,493 (32)【S-5XL】韓版復古開叉百搭高腰直筒顯瘦牛仔裙NT$952 (5)設計感復古高腰開叉磨邊a字牛仔半身裙NT$731 (12)遮肉款黑色大碼中長款A字傘裙顯瘦長裙NT$788 (36)人氣優雅氣質百搭長款A字裙毛呢半身長裙NT$733 (29)【全7色】法式高腰垂感A字針織半身裙NT$903 (3)復古風高腰不規則中長款氣質半身裙NT$550 (500)氣質名媛風亮閃閃女半身長裙NT$790 (24)本季亮點吸引視線格紋a字高腰大擺半身長裙NT$1,416 (37)設計感超級顯瘦凸顯身材黑色波點針織直筒裙中長款氣質半裙包臀裙NT$729 (9)韓版復古高腰顯瘦a字流蘇魚尾牛仔半身裙NT$698 (10)款式設計高級通勤風毛呢百褶高腰顯瘦長裙NT$1,354 (247)美型簡約工裝立體口袋時尚休閒寬鬆半身裙NT$621 (10)文藝復古不規則花邊鬆緊腰花邊棉麻半身裙NT$878 (8)新品 半價知性美型金屬扣腰帶毛呢半身裙NT$765 NT$1,530 (7)休閒時尚顯瘦抽繩口袋鬆緊腰工裝半身裙NT$1,125 (11)S-5XL 復古高腰顯瘦傘裙中長款A字牛仔裙NT$783 (39)韓國風尚時尚素色假兩件保暖刷毛半身打底褲褲裙NT$1,072 (110)遮肉款高腰垂感A字中長款糯米半身裙NT$783 (4)懶人時尚高腰西裝寬鬆顯瘦闊腿褲裙NT$1,064 (7)純棉簡約好搭撞色流線鬆緊腰A字裙半身裙NT$968 (6)【全4色】溫柔風高腰遮胯顯瘦A字荷葉邊半身裙NT$1,125 (6)【全4色】優雅氣質高級感中長款西裝百褶半身裙NT$833 (5)微性感高腰針織開叉包臀A字半身裙NT$1,013 (10)韓版高腰鬆緊顯瘦垂感中長款半身裙NT$1,058 (4)舒服軟糯好感燈芯絨遮胯顯瘦大擺A字半身裙NT$1,091 (8)時髦百搭設計感不規則高腰傘裙半身長裙NT$1,356 (88)清新韓系簡約開叉素面高腰牛仔半身裙NT$698 (41)簡約質感休閒素色高腰百褶裙半身長裙NT$810 (96)簡約百搭溫柔鬆緊腰a字半身長裙NT$698 (4)【全3色】法式A字高腰顯瘦垂墜感覺針織半身傘裙NT$923 (10)5色可選高腰遮肉顯瘦大裙擺設計感木棉絨刷毛復古百搭半身裙NT$900 (99)美型簡約高質感優雅格紋毛呢直筒半身短裙NT$1,748 (119)【全3色】高腰毛呢百褶半身A字裙NT$1,013 (8)溫柔好感法式溫柔風修身純色A字長裙傘裙鬆緊腰半身裙NT$833 (30)大尺碼復古風垂感大擺裙顯瘦A字工裝半身裙NT$900 (11)百搭大尺碼鬆緊腰長裙高腰顯瘦中長裙大擺裙NT$807 (28)梨形救星顯瘦A字傘狀後鬆緊牛仔半身裙NT$855 (28)修長美腿文青風職業傘裙西裝裙中長款A字裙半身裙NT$997 (7)遮肉款懶人時尚高腰顯瘦拼接蛋糕裙百搭中長款洋裝半身裙NT$810 (3)知性時尚百搭綁帶中長款半身裙修身一步包臀裙NT$968 (10)舒服軟糯好感顯瘦提花緞面A字中長裙垂感休閒大擺傘裙NT$1,013 (4)復古女中長文藝休閒寬鬆工裝A字裙半身裙NT$1,080 (3)仙氣百搭鬆緊腰顯瘦休閒雙層大擺半身裙NT$1,080 (8)長腿效果新款高腰牛仔半身大裙擺中長裙NT$968 (3)文藝復古風不規則冷淡風拼接麻紗半身裙長裙山本風NT$998 (6)簡約百搭a字後開叉高腰顯瘦半身長裙NT$1,114 (10)懶人時尚日系設計感漸變色鬆緊腰牛仔半身裙NT$1,214 (7)【5色】簡約百搭復古鬆緊腰遮肉顯瘦半身長裙NT$888 (10)職業黑色中長百褶包臀裙高腰魚尾裙荷葉邊半身裙NT$576 (8)時髦率性高腰設計感a字百褶短裙NT$621 (6)Korea正韓設計感後開叉可調節腰圍牛仔半身長裙NT$1,194 (37)溫柔好感高腰A字裙單排扣毛線針織傘裙NT$714 (8)Korea正韓時尚高腰顯瘦不規則開叉高腰短裙NT$432 (299)修長美腿韓版防走光牛仔包臀A字短裙NT$1,109 (130)«123»
已加入購物車
裙類
知性高腰遮胯垂感西裝百褶半身裙
NT$788
(12)
設計感復古綁帶一片式牛仔半身裙
NT$607 NT$1,213
(527)
【5色】設計感遮肉顯瘦不規則高腰a字半身長裙
NT$685
(8)
氣質毛呢A字半身裙女高腰中長款顯瘦傘裙時尚百搭大擺裙
NT$1,485
(31)
韓系優雅簡約素色高腰過膝半身長裙
NT$970
(334)
懶人時尚經典耐久性不變形A字裙修身休閑半身裙
NT$747 NT$1,493
(32)
【S-5XL】韓版復古開叉百搭高腰直筒顯瘦牛仔裙
NT$952
(5)
設計感復古高腰開叉磨邊a字牛仔半身裙
NT$731
遮肉款黑色大碼中長款A字傘裙顯瘦長裙
(36)
人氣優雅氣質百搭長款A字裙毛呢半身長裙
NT$733
(29)
【全7色】法式高腰垂感A字針織半身裙
NT$903
(3)
復古風高腰不規則中長款氣質半身裙
NT$550
(500)
氣質名媛風亮閃閃女半身長裙
NT$790
(24)
本季亮點吸引視線格紋a字高腰大擺半身長裙
NT$1,416
(37)
設計感超級顯瘦凸顯身材黑色波點針織直筒裙中長款氣質半裙包臀裙
NT$729
(9)
韓版復古高腰顯瘦a字流蘇魚尾牛仔半身裙
NT$698
(10)
款式設計高級通勤風毛呢百褶高腰顯瘦長裙
NT$1,354
(247)
美型簡約工裝立體口袋時尚休閒寬鬆半身裙
NT$621
文藝復古不規則花邊鬆緊腰花邊棉麻半身裙
NT$878
知性美型金屬扣腰帶毛呢半身裙
NT$765 NT$1,530
(7)
休閒時尚顯瘦抽繩口袋鬆緊腰工裝半身裙
NT$1,125
(11)
S-5XL 復古高腰顯瘦傘裙中長款A字牛仔裙
NT$783
(39)
韓國風尚時尚素色假兩件保暖刷毛半身打底褲褲裙
NT$1,072
(110)
遮肉款高腰垂感A字中長款糯米半身裙
(4)
懶人時尚高腰西裝寬鬆顯瘦闊腿褲裙
NT$1,064
純棉簡約好搭撞色流線鬆緊腰A字裙半身裙
NT$968
(6)
【全4色】溫柔風高腰遮胯顯瘦A字荷葉邊半身裙
【全4色】優雅氣質高級感中長款西裝百褶半身裙
NT$833
微性感高腰針織開叉包臀A字半身裙
NT$1,013
韓版高腰鬆緊顯瘦垂感中長款半身裙
NT$1,058
舒服軟糯好感燈芯絨遮胯顯瘦大擺A字半身裙
NT$1,091
時髦百搭設計感不規則高腰傘裙半身長裙
NT$1,356
(88)
清新韓系簡約開叉素面高腰牛仔半身裙
(41)
簡約質感休閒素色高腰百褶裙半身長裙
NT$810
(96)
簡約百搭溫柔鬆緊腰a字半身長裙
【全3色】法式A字高腰顯瘦垂墜感覺針織半身傘裙
NT$923
5色可選高腰遮肉顯瘦大裙擺設計感木棉絨刷毛復古百搭半身裙
NT$900
(99)
美型簡約高質感優雅格紋毛呢直筒半身短裙
NT$1,748
(119)
【全3色】高腰毛呢百褶半身A字裙
溫柔好感法式溫柔風修身純色A字長裙傘裙鬆緊腰半身裙
(30)
大尺碼復古風垂感大擺裙顯瘦A字工裝半身裙
百搭大尺碼鬆緊腰長裙高腰顯瘦中長裙大擺裙
NT$807
(28)
梨形救星顯瘦A字傘狀後鬆緊牛仔半身裙
NT$855
修長美腿文青風職業傘裙西裝裙中長款A字裙半身裙
NT$997
遮肉款懶人時尚高腰顯瘦拼接蛋糕裙百搭中長款洋裝半身裙
知性時尚百搭綁帶中長款半身裙修身一步包臀裙
舒服軟糯好感顯瘦提花緞面A字中長裙垂感休閒大擺傘裙
復古女中長文藝休閒寬鬆工裝A字裙半身裙
NT$1,080
仙氣百搭鬆緊腰顯瘦休閒雙層大擺半身裙
長腿效果新款高腰牛仔半身大裙擺中長裙
文藝復古風不規則冷淡風拼接麻紗半身裙長裙山本風
NT$998
簡約百搭a字後開叉高腰顯瘦半身長裙
NT$1,114
懶人時尚日系設計感漸變色鬆緊腰牛仔半身裙
NT$1,214
【5色】簡約百搭復古鬆緊腰遮肉顯瘦半身長裙
NT$888
職業黑色中長百褶包臀裙高腰魚尾裙荷葉邊半身裙
NT$576
時髦率性高腰設計感a字百褶短裙
Korea正韓設計感後開叉可調節腰圍牛仔半身長裙
NT$1,194
溫柔好感高腰A字裙單排扣毛線針織傘裙
NT$714
Korea正韓時尚高腰顯瘦不規則開叉高腰短裙
NT$432
(299)
修長美腿韓版防走光牛仔包臀A字短裙
NT$1,109
(130)