/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$623 NT$1,245 (358)半價【14色】簡約百搭復古半高領素面五分袖針織T恤NT$437 NT$873 (377)半價韓版時尚百搭條紋撞色紐扣襯衫NT$482 NT$964 (250)半價【全6色】爆款加厚半高領内搭T恤NT$670 NT$1,340 (93)新品 半價ins風美式復古數字印花拼接撞色V領衛衣NT$528 NT$1,056 (110)半價【全5色】舒服軟糯好感新款圓領拼色寬鬆時尚針織衫NT$762 NT$1,524 (111)半價【全11色】新款v領寬鬆顯瘦純色針織打底衫NT$505 NT$1,010 (87)半價極簡魅力簡約百搭五分袖半高領針織NT$576 NT$1,151 (340)新品 半價【全7色】軟糯舒適韓版連帽針織衫NT$747 NT$1,493 (8)新品設計感重工拼接高領套頭針織毛衣NT$788 NT$1,125 (5)新品發熱衣推薦加厚圓領修身打底衫NT$788 NT$1,125 (7)新品 半價【全4色】輕甜女孩花邊領拼色長袖針織衫NT$747 NT$1,493 (9)新品【全4色】寬鬆遮肚顯瘦長袖衛衣NT$615 NT$878 (9)新品 半價簡約百搭休閒寬鬆v領撞色無袖馬甲針織NT$668 NT$1,335 (9)新品 半價必備百搭款加厚慵懶風高領針織毛衣NT$594 NT$1,187 (8)半價Korea正韓加厚磨毛復古格子襯衫外套NT$765 NT$1,530 (78)半價韓版設計感條紋撞色燈籠袖紐扣襯衫NT$509 NT$1,017 (202)半價簡約好搭polo領撞色套頭拼色針織長袖毛衣打底衫NT$747 NT$1,493 (80)半價氣質韓系慵懶風溫柔寬鬆圓領燈籠袖針織NT$642 NT$1,284 (111)半價【全19色】圓領修身套頭針織打底毛衣NT$459 NT$918 (137)半價小眾設計感拼色燈籠袖娃娃領襯衫NT$594 NT$1,187 (174)新品 半價溫柔簡約韓版寬鬆撞色圓領紐扣針織NT$880 NT$1,760 (8)新品 半價時尚鷄心領條紋針織衫NT$689 NT$1,377 (12)新品 半價溫柔慵懶風韓版粗線麻花圓領針織毛衣NT$765 NT$1,530 (4)新品 半價寬鬆慵懶風設計感拼接假兩件針織NT$823 NT$1,646 (8)新品 半價全新超好看洋氣獨特別緻上衣寬鬆白色印花針織開襟衫外套NT$689 NT$1,377 (12)半價【5色】韓版時尚拼色條紋圓領長袖針織NT$499 NT$997 (9)新品 半價超柔親膚百搭半高領條紋針織打底衫NT$765 NT$1,530 (11)新品 半價溫柔好感圓領綉花顯瘦針織衫NT$574 NT$1,148 (11)新品 半價【全4色】慵懶風開叉中長款高領毛衣NT$651 NT$1,301 (6)新品 半價【全5色】時尚寬鬆蝙蝠袖半高領針織衫NT$804 NT$1,607 (9)新品 半價【全12色】軟糯休閑圓領花邊針織衫NT$459 NT$918 (7)新品【全4色】小衆木耳邊半高領修身打底衫NT$729 NT$1,042 (4)半價撞色款印花套頭長袖衛衣NT$666 NT$1,332 (23)半價復古格子撞色半高領慵懶寬鬆針織上衣NT$823 NT$1,646 (12)半價【全3色】華夫格薄款連帽長袖衛衣NT$345 NT$689 (28)半價簡約優雅寬鬆長袖圓領衛衣NT$651 NT$1,301 (27)半價小眾設計感字母刺繡撞色翻領襯衫NT$594 NT$1,187 (38)半價慵懶風軟糯復古燈籠袖V領高級感減齡針織衫NT$670 NT$1,340 (26)半價百搭時髦休閑設計感顯瘦拼接牛仔襯衫NT$747 NT$1,493 (33)半價【全6色】時尚氣質堆堆高領披肩針織斗篷毛衣NT$850 NT$1,699 (39)半價推薦熱銷爆款冷淡係獨特別致海軍領軟糯針織毛衣NT$918 NT$1,836 (92)半價百搭時髦小個子洋氣小香風假兩件燈籠袖襯衫NT$747 NT$1,493 (109)半價高級小衆設計感百搭長袖針織拼接襯衫NT$574 NT$1,148 (10)半價溫柔系法式別致洋氣早秋燈籠袖襯衫NT$505 NT$1,010 (5)半價好感女孩法式獨特氣質撞色長袖襯衫NT$765 NT$1,530 (6)半價超好康溫柔係簡約海軍領燈籠袖襯衫NT$532 NT$1,063 (180)半價設計感小眾別緻韓系減齡燈籠袖格紋襯衫NT$617 NT$1,233 (169)半價館長推薦寬鬆休閑百搭拼接假兩件polo領針織衫NT$595 NT$1,189 (3)半價新品到貨時尚韓系減齡條紋長袖襯衫NT$691 NT$1,381 (130)半價新款小衆別致泡泡袖漸變撞色雪紡紗襯衫NT$755 NT$1,510 (146)半價知性美型復古改良旗袍復古盤扣長袖襯衫NT$862 NT$1,723 (11)半價【5色】舒服軟糯好感翻領v領顯瘦素面長袖針織NT$918 NT$1,836 (122)半價秋冬韓系溫柔慵懶寬鬆顯瘦百搭套頭毛衣針織衫打底衫NT$457 NT$913 (295)半價寬鬆大尺碼內搭慵懶風毛衣NT$459 NT$918 (119)半價高級感時髦百搭撞色套頭半高領長袖針織NT$957 NT$1,913 (127)半價寬松百搭無袖v領馬甲背心坎肩純色針織NT$597 NT$1,194 (264)半價復古設計感盤扣v領寬鬆無袖馬甲針織NT$594 NT$1,187 (496)半價知性美型氣質名媛風立領木耳邊提花雪紡拼接襯衫NT$736 NT$1,471 (361)半價知性美型時尚氣質半高領百搭針織NT$1,187 NT$2,374 (158)«12345678...4748»
已加入購物車
上衣類
設計感百搭時尚拼接燈籠袖圓領襯衫
NT$623 NT$1,245
(358)
【14色】簡約百搭復古半高領素面五分袖針織T恤
NT$437 NT$873
(377)
韓版時尚百搭條紋撞色紐扣襯衫
NT$482 NT$964
(250)
【全6色】爆款加厚半高領内搭T恤
NT$670 NT$1,340
(93)
ins風美式復古數字印花拼接撞色V領衛衣
NT$528 NT$1,056
(110)
【全5色】舒服軟糯好感新款圓領拼色寬鬆時尚針織衫
NT$762 NT$1,524
(111)
【全11色】新款v領寬鬆顯瘦純色針織打底衫
NT$505 NT$1,010
(87)
極簡魅力簡約百搭五分袖半高領針織
NT$576 NT$1,151
(340)
【全7色】軟糯舒適韓版連帽針織衫
NT$747 NT$1,493
(8)
設計感重工拼接高領套頭針織毛衣
NT$788 NT$1,125
(5)
發熱衣推薦加厚圓領修身打底衫
(7)
【全4色】輕甜女孩花邊領拼色長袖針織衫
(9)
【全4色】寬鬆遮肚顯瘦長袖衛衣
NT$615 NT$878
簡約百搭休閒寬鬆v領撞色無袖馬甲針織
NT$668 NT$1,335
必備百搭款加厚慵懶風高領針織毛衣
NT$594 NT$1,187
Korea正韓加厚磨毛復古格子襯衫外套
NT$765 NT$1,530
(78)
韓版設計感條紋撞色燈籠袖紐扣襯衫
NT$509 NT$1,017
(202)
簡約好搭polo領撞色套頭拼色針織長袖毛衣打底衫
(80)
氣質韓系慵懶風溫柔寬鬆圓領燈籠袖針織
NT$642 NT$1,284
【全19色】圓領修身套頭針織打底毛衣
NT$459 NT$918
(137)
小眾設計感拼色燈籠袖娃娃領襯衫
(174)
溫柔簡約韓版寬鬆撞色圓領紐扣針織
NT$880 NT$1,760
時尚鷄心領條紋針織衫
NT$689 NT$1,377
(12)
溫柔慵懶風韓版粗線麻花圓領針織毛衣
(4)
寬鬆慵懶風設計感拼接假兩件針織
NT$823 NT$1,646
全新超好看洋氣獨特別緻上衣寬鬆白色印花針織開襟衫外套
【5色】韓版時尚拼色條紋圓領長袖針織
NT$499 NT$997
超柔親膚百搭半高領條紋針織打底衫
(11)
溫柔好感圓領綉花顯瘦針織衫
NT$574 NT$1,148
【全4色】慵懶風開叉中長款高領毛衣
NT$651 NT$1,301
(6)
【全5色】時尚寬鬆蝙蝠袖半高領針織衫
NT$804 NT$1,607
【全12色】軟糯休閑圓領花邊針織衫
【全4色】小衆木耳邊半高領修身打底衫
NT$729 NT$1,042
撞色款印花套頭長袖衛衣
NT$666 NT$1,332
(23)
復古格子撞色半高領慵懶寬鬆針織上衣
【全3色】華夫格薄款連帽長袖衛衣
NT$345 NT$689
(28)
簡約優雅寬鬆長袖圓領衛衣
(27)
小眾設計感字母刺繡撞色翻領襯衫
(38)
慵懶風軟糯復古燈籠袖V領高級感減齡針織衫
(26)
百搭時髦休閑設計感顯瘦拼接牛仔襯衫
(33)
【全6色】時尚氣質堆堆高領披肩針織斗篷毛衣
NT$850 NT$1,699
(39)
推薦熱銷爆款冷淡係獨特別致海軍領軟糯針織毛衣
NT$918 NT$1,836
(92)
百搭時髦小個子洋氣小香風假兩件燈籠袖襯衫
(109)
高級小衆設計感百搭長袖針織拼接襯衫
(10)
溫柔系法式別致洋氣早秋燈籠袖襯衫
好感女孩法式獨特氣質撞色長袖襯衫
超好康溫柔係簡約海軍領燈籠袖襯衫
NT$532 NT$1,063
(180)
設計感小眾別緻韓系減齡燈籠袖格紋襯衫
NT$617 NT$1,233
(169)
館長推薦寬鬆休閑百搭拼接假兩件polo領針織衫
NT$595 NT$1,189
(3)
新品到貨時尚韓系減齡條紋長袖襯衫
NT$691 NT$1,381
(130)
新款小衆別致泡泡袖漸變撞色雪紡紗襯衫
NT$755 NT$1,510
(146)
知性美型復古改良旗袍復古盤扣長袖襯衫
NT$862 NT$1,723
【5色】舒服軟糯好感翻領v領顯瘦素面長袖針織
(122)
秋冬韓系溫柔慵懶寬鬆顯瘦百搭套頭毛衣針織衫打底衫
NT$457 NT$913
(295)
寬鬆大尺碼內搭慵懶風毛衣
(119)
高級感時髦百搭撞色套頭半高領長袖針織
NT$957 NT$1,913
(127)
寬松百搭無袖v領馬甲背心坎肩純色針織
NT$597 NT$1,194
(264)
復古設計感盤扣v領寬鬆無袖馬甲針織
(496)
知性美型氣質名媛風立領木耳邊提花雪紡拼接襯衫
NT$736 NT$1,471
(361)
知性美型時尚氣質半高領百搭針織
NT$1,187 NT$2,374
(158)