(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-50a21ea4"],{1393:function(t,e,i){},"1c46":function(t,e,i){"use strict";i("34dd")},"2cb5":function(t,e,i){"use strict";i.r(e);var a=function(){var t=this,e=t._self._c;return e("div",{staticClass:"duplicate-review-debug"},[e("el-card",{staticClass:"debug-card",attrs:{shadow:"always"}},[e("div",{staticClass:"debug-card__header"},[e("span",[t._v("重复图片审核调试页")]),e("div",[e("el-button",{attrs:{type:"text"},on:{click:t.loadFixture}},[t._v("重新加载假数据")]),e("el-button",{attrs:{type:"primary",size:"mini"},on:{click:t.openModal}},[t._v("打开弹窗")])],1)]),e("el-divider"),e("p",{staticClass:"debug-card__tip"},[t._v("当前假数据:")]),e("pre",{staticClass:"debug-card__json"},[t._v(t._s(t.fixture))])],1),e("image-compare-modal",{attrs:{visible:t.modalVisible,"original-image":t.originalImage,"comparison-images":t.comparisonImages,"on-decision":t.handleDecision},on:{"update:visible":function(e){t.modalVisible=e},"index-change":t.handleIndexChange,close:t.closeModal}})],1)},s=[],n=i("f0a4"),o=i("c56b"),r=i("78a6"),l={name:"DuplicateReviewDebug",components:{ImageCompareModal:r["a"]},data(){return{modalVisible:!1,fixture:o}},computed:{...Object(n["c"])("review",["originalImage","comparisonImages"])},created(){this.loadFixture()},methods:{...Object(n["b"])("review",["loadFromFixture","setActiveIndex","submitDecision"]),openModal(){this.modalVisible=!0},closeModal(){this.modalVisible=!1},async loadFixture(){await this.loadFromFixture(this.fixture)},handleIndexChange(t){this.setActiveIndex(t)},handleDecision(t,e,i){return this.submitDecision({isSame:i,source:"modal"})}}},c=l,m=(i("774a"),i("1805")),d=Object(m["a"])(c,a,s,!1,null,"521bb397",null);e["default"]=d.exports},"34dd":function(t,e,i){},"6bab":function(t,e,i){"use strict";i("c7f7")},"774a":function(t,e,i){"use strict";i("1393")},"78a6":function(t,e,i){"use strict";var a=function(){var t=this,e=t._self._c;return e("el-dialog",{staticClass:"image-compare-modal",attrs:{visible:t.internalVisible,width:"88%",top:"6vh","append-to-body":!1,"modal-append-to-body":!1,modal:!0,"lock-scroll":!0,"close-on-click-modal":!0,"close-on-press-escape":!1},on:{"update:visible":function(e){t.internalVisible=e},close:t.handleDialogClose},scopedSlots:t._u([{key:"title",fn:function(){return[e("div",{staticClass:"image-compare-modal__title"},[e("span",[t._v("重复图片审核")]),e("el-tag",{attrs:{size:"mini",type:"info"}},[t._v(t._s(t.comparisonImages.length)+" 张对比图")])],1)]},proxy:!0}])},[e("div",{staticClass:"image-compare-modal__body"},[e("div",{staticClass:"image-compare-modal__canvas"},[e("h4",[t._v("原图")]),t.originalImage?e("image-sync-canvas",{attrs:{image:t.originalImage,"lock-sync":t.lockSync,"linked-transforms":t.comparisonTransforms,"toolbar-position":"bottom"},on:{"transform-change":e=>t.originalTransforms=e},scopedSlots:t._u([{key:"toolbar",fn:function(){return[e("span",{staticClass:"image-sync-canvas__file-id",attrs:{title:t.formatFileId(t.originalImage)}},[t._v(" ID:"+t._s(t.formatFileId(t.originalImage))+" ")])]},proxy:!0}],null,!1,3273996567)}):e("el-empty",{attrs:{description:"暂无原图数据"}})],1),e("div",{staticClass:"image-compare-modal__controls"},[e("div",{staticClass:"image-compare-modal__control-left"},[e("el-button",{attrs:{type:t.lockSync?"primary":"default",icon:"el-icon-link"},on:{click:t.toggleLock}},[t._v(" "+t._s(t.lockSync?"联动中":"已解锁")+" ")])],1),t.feedback.message?e("div",{staticClass:"image-compare-modal__feedback-inline",class:"is-"+t.feedback.type},[t._v(" "+t._s(t.feedback.message)+" ")]):t._e(),e("div",{staticClass:"image-compare-modal__control-right"},[e("el-switch",{attrs:{"active-text":"标记为相同","inactive-text":"未标记","active-color":"#67C23A","inactive-color":"#909399",disabled:!t.hasComparisons||t.submitting||!t.activeComparison},on:{change:t.handleDecisionToggle},model:{value:t.decisionToggle,callback:function(e){t.decisionToggle=e},expression:"decisionToggle"}}),e("div",{staticClass:"image-compare-modal__nav-buttons"},[e("el-button",{attrs:{size:"mini",icon:"el-icon-arrow-left",disabled:!t.hasComparisons||t.comparisonImages.length<=1},on:{click:t.goPrevComparison}},[t._v(" 上一张 ")]),e("el-button",{attrs:{size:"mini",icon:"el-icon-arrow-right",disabled:!t.hasComparisons||t.comparisonImages.length<=1},on:{click:t.goNextComparison}},[t._v(" 下一张 ")])],1)],1)]),e("div",{staticClass:"image-compare-modal__canvas"},[e("h4",[t._v("对比图")]),t.activeComparison?e("image-sync-canvas",{attrs:{image:t.activeComparison,"lock-sync":t.lockSync,"linked-transforms":t.lockSync?t.originalTransforms:null,"toolbar-position":"top"},on:{"transform-change":e=>t.comparisonTransforms=e},scopedSlots:t._u([{key:"toolbar",fn:function(){return[e("span",{staticClass:"image-sync-canvas__file-id",attrs:{title:t.formatFileId(t.activeComparison)}},[t._v(" ID:"+t._s(t.formatFileId(t.activeComparison))+" ")])]},proxy:!0}],null,!1,3704635287)}):e("el-empty",{attrs:{description:"暂无可对比图片"}})],1),t.hasComparisons?e("carousel-strip",{attrs:{images:t.comparisonImages,"active-index":t.activeIndex},on:{select:t.setActiveIndex,prev:function(e){return t.stepIndex(-1)},next:function(e){return t.stepIndex(1)}}}):e("el-alert",{attrs:{type:"info",closable:!1,title:"无可用对比图,操作按钮已禁用"}})],1)])},s=[],n=function(){var t=this,e=t._self._c;return e("div",{staticClass:"image-sync-canvas",class:{disabled:t.disabled}},[e("div",{staticClass:"image-sync-canvas__viewport",on:{mousedown:function(e){return e.preventDefault(),t.startDrag.apply(null,arguments)},mousemove:function(e){return e.preventDefault(),t.drag.apply(null,arguments)},mouseup:t.endDrag,mouseleave:t.endDrag,wheel:function(e){return e.preventDefault(),t.handleWheel.apply(null,arguments)}}},[t.image&&!t.imageError?e("img",{style:t.transformStyle,attrs:{src:t.image.file_path,alt:t.image.alt||t.image.file_id},on:{load:t.handleLoad,error:t.handleError}}):e("div",{staticClass:"image-sync-canvas__error"},[e("p",[t._v("图片加载失败")]),e("el-button",{attrs:{type:"text"},on:{click:t.retryLoad}},[t._v("重试加载")])],1),t._t("default"),e("div",{staticClass:"image-sync-canvas__toolbar",class:["toolbar-"+t.toolbarPosition]},[e("el-button-group",{attrs:{size:"mini"}},[e("el-button",{attrs:{icon:"el-icon-zoom-in",disabled:t.disabled},on:{click:function(e){return e.stopPropagation(),t.handleZoomIn.apply(null,arguments)}}}),e("el-button",{attrs:{icon:"el-icon-zoom-out",disabled:t.disabled},on:{click:function(e){return e.stopPropagation(),t.handleZoomOut.apply(null,arguments)}}}),e("el-button",{attrs:{icon:"el-icon-refresh-left",disabled:t.disabled},on:{click:function(e){return e.stopPropagation(),t.handleRotateLeft.apply(null,arguments)}}}),e("el-button",{attrs:{icon:"el-icon-refresh-right",disabled:t.disabled},on:{click:function(e){return e.stopPropagation(),t.handleRotateRight.apply(null,arguments)}}}),e("el-button",{attrs:{icon:"el-icon-refresh",disabled:t.disabled},on:{click:function(e){return e.stopPropagation(),t.handleReset.apply(null,arguments)}}})],1),t._t("toolbar")],2)],2)])},o=[],r=i("5923");const l=()=>({zoom:1,rotation:0,translateX:0,translateY:0,dragging:!1,dragStart:{x:0,y:0}});function c(t={}){return r["default"].observable({...l(),...t})}function m(t,e){t&&e&&(e.zoom=t.zoom,e.rotation=t.rotation,e.translateX=t.translateX,e.translateY=t.translateY)}function d(t={}){const e=c(t.initialState),i=t.minZoom||.2,a=t.maxZoom||5,s=t=>Math.min(a,Math.max(i,t));function n(t){e.zoom=s(t)}function o(t=.1){n(e.zoom+t)}function r(t=.1){n(e.zoom-t)}function m(t=90){e.rotation=(e.rotation+t+360)%360}function d(){Object.assign(e,l())}function p(t){e.dragging=!0,e.dragStart={x:t.clientX,y:t.clientY}}function u(t){if(!e.dragging)return;const i=t.clientX-e.dragStart.x,a=t.clientY-e.dragStart.y;e.translateX+=i,e.translateY+=a,e.dragStart={x:t.clientX,y:t.clientY}}function h(){e.dragging=!1}function g(t,i=.001){const a=e.zoom+t.deltaY*i*-1;n(a)}function f(){return{transform:`translate(${e.translateX}px, ${e.translateY}px) scale(${e.zoom}) rotate(${e.rotation}deg)`}}return{state:e,setZoom:n,zoomIn:o,zoomOut:r,rotate:m,reset:d,startDrag:p,drag:u,endDrag:h,applyWheel:g,toTransformStyle:f}}var p={name:"ImageSyncCanvas",props:{image:{type:Object,required:!0},disabled:{type:Boolean,default:!1},linkedTransforms:{type:Object,default:null},lockSync:{type:Boolean,default:!1},toolbarPosition:{type:String,default:"top",validator:t=>["top","bottom"].includes(t)}},data(){const t=d();return{transformApi:t,transforms:t.state,imageError:!1,lastEmit:null,linkTipShown:!1}},computed:{transformStyle(){return this.transformApi.toTransformStyle()}},watch:{lockSync(t){t&&this.linkedTransforms?(m(this.linkedTransforms,this.transforms),this.emitTransform(),this.linkTipShown||(this.$message.success("已同步视角"),this.linkTipShown=!0)):t||(this.linkTipShown=!1)},linkedTransforms:{deep:!0,handler(t){this.lockSync&&t&&m(t,this.transforms)}}},methods:{emitTransform(){const t={zoom:this.transforms.zoom,rotation:this.transforms.rotation,translateX:this.transforms.translateX,translateY:this.transforms.translateY};this.$emit("transform-change",t),this.lastEmit=t},handleZoomIn(){this.transformApi.zoomIn(),this.emitTransform()},handleZoomOut(){this.transformApi.zoomOut(),this.emitTransform()},handleRotateLeft(){this.transformApi.rotate(-90),this.emitTransform()},handleRotateRight(){this.transformApi.rotate(90),this.emitTransform()},handleReset(){this.transformApi.reset(),this.emitTransform()},startDrag(t){this.disabled||this.transformApi.startDrag(t)},drag(t){this.disabled||(this.transformApi.drag(t),this.emitTransform())},endDrag(){this.transformApi.endDrag()},handleWheel(t){this.disabled||(this.transformApi.applyWheel(t),this.emitTransform())},handleLoad(){this.imageError=!1,this.$emit("load",this.image)},handleError(){this.imageError=!0,this.$emit("error",this.image)},retryLoad(){this.imageError=!1,this.$forceUpdate()}}},u=p,h=(i("6bab"),i("1805")),g=Object(h["a"])(u,n,o,!1,null,"3d2af898",null),f=g.exports,v=function(){var t=this,e=t._self._c;return e("div",{staticClass:"carousel-strip"},[e("el-button",{attrs:{type:"text",icon:"el-icon-arrow-left"},on:{click:function(e){return t.$emit("prev")}}}),e("div",{staticClass:"carousel-strip__list"},t._l(t.images,(function(i,a){return e("div",{key:i.file_id||a,staticClass:"carousel-strip__item",class:{active:a===t.activeIndex,["status-"+(i.status||"pending")]:!0},on:{click:function(e){return t.$emit("select",a)},mouseenter:function(e){return t.$emit("hover",a)}}},[e("img",{attrs:{src:i.thumbnail_path||i.file_path,alt:i.file_id}})])})),0),e("el-button",{attrs:{type:"text",icon:"el-icon-arrow-right"},on:{click:function(e){return t.$emit("next")}}})],1)},b=[],y={name:"CarouselStrip",props:{images:{type:Array,default:()=>[]},activeIndex:{type:Number,default:0}}},_=y,k=(i("1c46"),Object(h["a"])(_,v,b,!1,null,"48989f34",null)),I=k.exports;i("c9ea"),i("8855"),i("d56b");const x=new Map;function C(t){if(!t)return Promise.resolve();if(x.has(t))return x.get(t);const e=new Promise((e,i)=>{const a=new Image;a.onload=()=>e(t),a.onerror=i,a.src=t});return x.set(t,e),e}function w(t,e){if(!Array.isArray(t)||0===t.length)return;const i=[e,e-1,e+1].filter(e=>e>=0&&e{var i;return null===(i=t[e])||void 0===i?void 0:i.file_path});i.forEach(t=>C(t))}var S={name:"ImageCompareModal",components:{ImageSyncCanvas:f,CarouselStrip:I},props:{visible:{type:Boolean,default:!1},originalImage:{type:Object,default:null},comparisonImages:{type:Array,default:()=>[]},onDecision:{type:Function,default:null}},data(){return{internalVisible:this.visible,activeIndex:0,lockSync:!0,originalTransforms:null,comparisonTransforms:null,submitting:!1,feedback:{type:"success",message:""},decisionToggle:!1}},computed:{hasComparisons(){return this.comparisonImages.length>0},activeComparison(){return this.comparisonImages[this.activeIndex]||null}},watch:{visible(t){this.internalVisible=t},internalVisible(t){t?window.addEventListener("keydown",this.handleKeydown,!0):(window.removeEventListener("keydown",this.handleKeydown,!0),this.$emit("update:visible",!1))},comparisonImages:{immediate:!0,handler(t){t&&0!==t.length?this.activeIndex>=t.length&&(this.activeIndex=0):this.activeIndex=0,w(t||[],this.activeIndex)}},activeComparison:{immediate:!0,handler(t){this.decisionToggle=Boolean(null===t||void 0===t?void 0:t.isMarkedSimilar)}}},methods:{handleDecisionToggle(t){var e;this.activeComparison&&!this.submitting?this.markDecision(t).catch(()=>{this.$nextTick(()=>{var t;this.decisionToggle=Boolean(null===(t=this.activeComparison)||void 0===t?void 0:t.isMarkedSimilar)})}):this.decisionToggle=Boolean(null===(e=this.activeComparison)||void 0===e?void 0:e.isMarkedSimilar)},handleDialogClose(){this.internalVisible&&(this.internalVisible=!1),this.$emit("close"),this.$emit("update:visible",!1),window.removeEventListener("keydown",this.handleKeydown)},toggleLock(){this.lockSync=!this.lockSync,this.$message.success(this.lockSync?"已开启联动":"已关闭联动")},async markDecision(t){var e;if(!this.activeComparison||this.submitting)return;const i=null===(e=this.originalImage)||void 0===e?void 0:e.file_id,a=this.activeComparison.file_id;if(!i||!a)return;this.submitting=!0,this.feedback.message="";const s={originalId:i,comparisonId:a,isSame:t};this.$emit("decision",s);try{this.onDecision&&await Promise.resolve(this.onDecision(i,a,t)),this.feedback={type:"success",message:"标记成功,可继续操作"}}catch(n){this.feedback={type:"error",message:(null===n||void 0===n?void 0:n.message)||"标记失败,请重试"},this.$message.error("标记失败,可重试")}finally{this.submitting=!1}},setActiveIndex(t){if(!this.hasComparisons)return;const e=Math.min(Math.max(t,0),this.comparisonImages.length-1);this.activeIndex=e,this.$emit("index-change",e),this.feedback.message="",w(this.comparisonImages,e)},stepIndex(t){if(!this.hasComparisons)return;let e=this.activeIndex+t;e<0&&(e=this.comparisonImages.length-1),e>=this.comparisonImages.length&&(e=0),this.setActiveIndex(e)},goPrevComparison(){this.stepIndex(-1)},goNextComparison(){this.stepIndex(1)},formatFileId(t){return t&&(t.file_id||t.id)||"--"},handleKeydown(t){this.internalVisible&&("ArrowLeft"===t.key?this.stepIndex(-1):"ArrowRight"===t.key?this.stepIndex(1):"Escape"!==t.key&&"Esc"!==t.key||(t.stopPropagation(),t.preventDefault(),this.handleDialogClose()))}},beforeDestroy(){window.removeEventListener("keydown",this.handleKeydown,!0)}},T=S,D=(i("908a"),Object(h["a"])(T,a,s,!1,null,"8ce8d8e0",null));e["a"]=D.exports},"908a":function(t,e,i){"use strict";i("f44d")},c56b:function(t){t.exports=JSON.parse('{"originalImage":{"file_id":"orig-001","file_path":"https://sigreal-static.oss-cn-beijing.aliyuncs.com/img-cls-test/sfjdxkz.jpeg","metadata":{"uploaded_by":"reviewer.bot","uploaded_at":"2025-12-01T10:00:00Z","default_rotation":0}},"comparisonImages":[{"file_id":"cmp-001","file_path":"https://sigreal-static.oss-cn-beijing.aliyuncs.com/img-cls-test/pbb.jpg","thumbnail_path":"https://sigreal-static.oss-cn-beijing.aliyuncs.com/img-cls-test/pbb.jpg"},{"file_id":"cmp-002","file_path":"https://sigreal-static.oss-cn-beijing.aliyuncs.com/img-cls-test/qt.jpg","thumbnail_path":"https://sigreal-static.oss-cn-beijing.aliyuncs.com/img-cls-test/qt.jpg"},{"file_id":"cmp-003","file_path":"https://sigreal-static.oss-cn-beijing.aliyuncs.com/img-cls-test/fp.jpg","thumbnail_path":"https://sigreal-static.oss-cn-beijing.aliyuncs.com/img-cls-test/fp.jpg"}]}')},c7f7:function(t,e,i){},f44d:function(t,e,i){}}]); //# sourceMappingURL=chunk-50a21ea4.99169ca62a9cfed7b290.js.map