/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$1,153 (115)知性亮眼通勤純色V領收腰長洋裝NT$1,342 (105)氣質微奢設計感假兩件撞色碎花長洋裝NT$1,335 (159)懶人時尚日系棉麻無袖寬鬆顯瘦圓領長洋裝NT$855 (160)視覺-5KG休閒拼接設計感襯衫+闊腿九分長褲套裝NT$1,497 (25)熱銷推薦休閒寬鬆圓領T恤+高腰綁帶寬褲套裝NT$1,430 (85)氣質優雅波西米亞風印花綁帶短洋裝NT$1,466 (28)寬鬆休閒格紋套頭黑色拼接A字裙長洋裝NT$783 (116)溫柔系輕熟印花腰帶高腰顯瘦長洋裝NT$1,204 (107)氣質微奢優雅翻領格紋腰帶長洋裝NT$1,507 (95)高端時尚提升氣質舒適水墨印花A字雪紡長洋裝NT$758 (133)知性美型氣質百搭POLO領撞色拼接長洋裝NT$1,395 (102)清新韓系甜美印花V領套頭高腰顯瘦減齡長洋裝NT$1,224 (86)時髦率性休閒素面百搭棉麻V領收腰長洋裝NT$945 (204)半價時髦率性設計感收腰顯瘦開叉素面長洋裝NT$1,367 NT$2,734 (103)簡約好搭時尚翻領拉鏈耐穿外套+高腰顯瘦綁帶長褲套裝NT$1,571 (78)PLUS+長纖腿優雅印花雪紡荷葉邊襯衫+短褲套裝NT$1,416 (117)個性風格寬鬆顯瘦撞色圓領短袖T恤+短褲套裝NT$761 (89)必備百搭款氣質碎花高腰荷葉邊V領雪紡長洋裝NT$1,348 (109)居家時尚休閒假兩件撞色T恤+寬鬆短褲套裝NT$1,467 (108)氣質微奢優雅玫瑰撞色綁帶長洋裝NT$1,125 (133)知性亮眼復古碎花v領氣質收腰無袖長洋裝NT$1,477 (93)溫柔好感法式碎花V領雪紡顯瘦長洋裝NT$898 (130)簡約好搭休閒大碼素面收腰百搭背心長洋裝NT$1,502 (277)復古優雅法式蕾絲拼接v領顯瘦雪紡長洋裝NT$1,407 (90)光澤矚目復古寬鬆v領印花長洋裝NT$945 (99)韓版時尚休閒顯瘦寬鬆短袖+短褲兩件式套裝NT$567 (34)韓版氣質休閒polo領櫻桃刺繡短袖洋裝NT$1,125 (127)韓系優雅吸睛注目當季流行A字裙飛袖印花洋裝NT$1,080 (135)優雅氣質視覺顯瘦浪漫碎花雪紡印花長洋裝NT$842 (346)知性美型氣質優雅拼色方領收腰百搭長洋裝NT$1,348 (166)半價視覺細簡約時尚顯瘦蝴蝶結綁帶長洋裝NT$743 NT$1,485 (386)視覺-5KG通勤風優雅polo領素面收腰顯瘦長洋裝NT$1,396 (185)懶人時尚顯瘦氣質波點襯衫+洋氣短褲兩件式套裝NT$1,058 (105)懶人時尚休閒綁帶不規則T恤+棉麻壓褶長裙套裝NT$1,434 (67)慵懶百搭簡約豎條紋圓領套頭長洋裝NT$1,330 (33)知性美型簡約日系拼接寬鬆泡泡袖長洋裝NT$1,457 (30)高質感簡約V領荷葉袖T恤+日系格紋無袖洋裝套裝NT$1,264 (37)休閑時尚遮肉顯瘦v領T恤+短褲大尺碼套裝NT$894 (259)時尚大尺碼韓版吊帶露肩襯衫+遮肚顯瘦短褲減齡兩件套裝NT$744 (25)知性美型假兩件裙子顯瘦氣質高腰繫帶收腰洋裝NT$1,295 (262)【單品可選】氣質百搭輕熟風寬鬆坎肩無袖襯衫+休閒短褲套裝NT$1,122 (92)視覺-5KG法式氣質碎花V領顯瘦長洋裝NT$1,173 (27)知性亮眼日系疊穿開叉背心洋裝+泡泡袖長洋裝NT$1,244 (64)休閒時尚顯瘦荷葉邊吊帶+白色T恤+七分長褲套裝NT$945 (34)出遊必備優雅渡假風收腰露背沙灘裙長洋裝NT$1,163 (374)休閒運動風字母印花短袖+綁帶短褲套裝NT$604 (72)氣質微奢知性無袖修身顯瘦素面長洋裝NT$1,383 (135)簡約時尚休閒寬鬆撞色T恤+短褲套裝NT$675 (96)氣質簡約韓版chic風露背鏤空棉麻背心長洋裝NT$1,030 (83)復古設計感翻領鈕扣裝飾收腰短袖牛仔短洋裝NT$1,466 (137)簡約氣質顯瘦格紋收腰顯瘦襯衫領長洋裝NT$923 (9)新品【單品可選】假兩件襯衫+休閑半身裙兩件套NT$591 NT$844 (9)«12...202122232425262728»
已加入購物車
洋裝類
法式桔梗設計感刺繡蕾絲顯瘦短袖長洋裝
NT$1,153
(115)
知性亮眼通勤純色V領收腰長洋裝
NT$1,342
(105)
氣質微奢設計感假兩件撞色碎花長洋裝
NT$1,335
(159)
懶人時尚日系棉麻無袖寬鬆顯瘦圓領長洋裝
NT$855
(160)
視覺-5KG休閒拼接設計感襯衫+闊腿九分長褲套裝
NT$1,497
(25)
熱銷推薦休閒寬鬆圓領T恤+高腰綁帶寬褲套裝
NT$1,430
(85)
氣質優雅波西米亞風印花綁帶短洋裝
NT$1,466
(28)
寬鬆休閒格紋套頭黑色拼接A字裙長洋裝
NT$783
(116)
溫柔系輕熟印花腰帶高腰顯瘦長洋裝
NT$1,204
(107)
氣質微奢優雅翻領格紋腰帶長洋裝
NT$1,507
(95)
高端時尚提升氣質舒適水墨印花A字雪紡長洋裝
NT$758
(133)
知性美型氣質百搭POLO領撞色拼接長洋裝
NT$1,395
(102)
清新韓系甜美印花V領套頭高腰顯瘦減齡長洋裝
NT$1,224
(86)
時髦率性休閒素面百搭棉麻V領收腰長洋裝
NT$945
(204)
時髦率性設計感收腰顯瘦開叉素面長洋裝
NT$1,367 NT$2,734
(103)
簡約好搭時尚翻領拉鏈耐穿外套+高腰顯瘦綁帶長褲套裝
NT$1,571
(78)
PLUS+長纖腿優雅印花雪紡荷葉邊襯衫+短褲套裝
NT$1,416
(117)
個性風格寬鬆顯瘦撞色圓領短袖T恤+短褲套裝
NT$761
(89)
必備百搭款氣質碎花高腰荷葉邊V領雪紡長洋裝
NT$1,348
(109)
居家時尚休閒假兩件撞色T恤+寬鬆短褲套裝
NT$1,467
(108)
氣質微奢優雅玫瑰撞色綁帶長洋裝
NT$1,125
知性亮眼復古碎花v領氣質收腰無袖長洋裝
NT$1,477
(93)
溫柔好感法式碎花V領雪紡顯瘦長洋裝
NT$898
(130)
簡約好搭休閒大碼素面收腰百搭背心長洋裝
NT$1,502
(277)
復古優雅法式蕾絲拼接v領顯瘦雪紡長洋裝
NT$1,407
(90)
光澤矚目復古寬鬆v領印花長洋裝
(99)
韓版時尚休閒顯瘦寬鬆短袖+短褲兩件式套裝
NT$567
(34)
韓版氣質休閒polo領櫻桃刺繡短袖洋裝
(127)
韓系優雅吸睛注目當季流行A字裙飛袖印花洋裝
NT$1,080
(135)
優雅氣質視覺顯瘦浪漫碎花雪紡印花長洋裝
NT$842
(346)
知性美型氣質優雅拼色方領收腰百搭長洋裝
(166)
視覺細簡約時尚顯瘦蝴蝶結綁帶長洋裝
NT$743 NT$1,485
(386)
視覺-5KG通勤風優雅polo領素面收腰顯瘦長洋裝
NT$1,396
(185)
懶人時尚顯瘦氣質波點襯衫+洋氣短褲兩件式套裝
NT$1,058
懶人時尚休閒綁帶不規則T恤+棉麻壓褶長裙套裝
NT$1,434
(67)
慵懶百搭簡約豎條紋圓領套頭長洋裝
NT$1,330
(33)
知性美型簡約日系拼接寬鬆泡泡袖長洋裝
NT$1,457
(30)
高質感簡約V領荷葉袖T恤+日系格紋無袖洋裝套裝
NT$1,264
(37)
休閑時尚遮肉顯瘦v領T恤+短褲大尺碼套裝
NT$894
(259)
時尚大尺碼韓版吊帶露肩襯衫+遮肚顯瘦短褲減齡兩件套裝
NT$744
知性美型假兩件裙子顯瘦氣質高腰繫帶收腰洋裝
NT$1,295
(262)
【單品可選】氣質百搭輕熟風寬鬆坎肩無袖襯衫+休閒短褲套裝
NT$1,122
(92)
視覺-5KG法式氣質碎花V領顯瘦長洋裝
NT$1,173
(27)
知性亮眼日系疊穿開叉背心洋裝+泡泡袖長洋裝
NT$1,244
(64)
休閒時尚顯瘦荷葉邊吊帶+白色T恤+七分長褲套裝
出遊必備優雅渡假風收腰露背沙灘裙長洋裝
NT$1,163
(374)
休閒運動風字母印花短袖+綁帶短褲套裝
NT$604
(72)
氣質微奢知性無袖修身顯瘦素面長洋裝
NT$1,383
簡約時尚休閒寬鬆撞色T恤+短褲套裝
NT$675
(96)
氣質簡約韓版chic風露背鏤空棉麻背心長洋裝
NT$1,030
(83)
復古設計感翻領鈕扣裝飾收腰短袖牛仔短洋裝
(137)
簡約氣質顯瘦格紋收腰顯瘦襯衫領長洋裝
NT$923
(9)
【單品可選】假兩件襯衫+休閑半身裙兩件套
NT$591 NT$844