PageSourceSearch

https://my.skladbot.ru/build/assets/YandexmarketOrdersScanModal-Z8ondG3t.js

js skladbot.ru collected 2026-10-01 23:48:15 UTC 5,078 bytes, 1 lines download raw bytes

1import{O}from"./OrdersScanMixin-CGwhMZ8n.js";import S from"./FbsScannedOrderstable-DD6O4yKD.js";import{G as w}from"./index-DqnVWG_T.js";import{aK as d,M as h,aC as f,b8 as b,P as m,Z as l,w as x,bN as g,Y as I,q as E}from"./vendor-draggable-BmGiGqd9.js";import{_ as V}from"./app-BbeUy_mE.js";import"./FbsSelectBoxes-D6Aiyv-7.js";import"./vendor-charts-D4puGc6z.js";import"./vendor-litepicker-C0XcOdnu.js";import"./vendor-multiselect-DKw0yhJZ.js";/* empty css            */import"./vendor-pusher-DcW4G2IE.js";const _={mixins:[O],components:{FbsScannedOrderstable:S},data:()=>({voiceEnabled:localStorage.getItem("OrderScanVoiceEnabled")==="true"}),computed:{scannedProductsAmount(){return this.scannedOrders.reduce((e,t)=>e+t.amount,0)},liveInventory(){const e={},t={};this.scannedOrders.forEach(s=>{(s.boxes||[]).forEach(n=>{const o=`${n.id}-${s.productId}`;e[o]===void 0&&(e[o]=n.amount)})}),this.scannedOrders.forEach(s=>{(s.selectedBoxes||[]).forEach(n=>{const o=`${n.id}-${s.productId}`;t[o]=(t[o]||0)+(n.productAmount||0)})});for(const s in e)t[s]&&(e[s]-=t[s]);return e}},methods:{toggleVoice(){this.voiceEnabled=!this.voiceEnabled,localStorage.setItem("OrderScanVoiceEnabled",this.voiceEnabled)},speakText(e){if(!this.voiceEnabled||!e)return;window.speechSynthesis.cancel();const t=new SpeechSynthesisUtterance(e);t.lang="ru-RU",window.speechSynthesis.speak(t)},getScannedOrder(){if(!this.code||this.loading)return;this.loading=!0,this.error="";const e={customer:this.customer,code:this.code,marketplace:this.marketplace,...this.scanParams},t={scannedOrders:this.scannedOrders.map(({orderId:s,orderProductId:n,amount:o,productId:r,selectedBoxes:u})=>({productId:r,orderId:s,orderProductId:n,amount:o,selectedBoxes:u}))};this.$api.post(this.$route("fbs.scan.order",e),t).then(async({data:{order:s}})=>{if(!s){this.error="Нет активных заказов для этого товара.";return}const n=this.scannedOrders.find(o=>o.orderProductId===s.orderProductId);if(n){const o=Number(n.amount)+Number(n.productScannedInOrder),r=Number(n.productAmountInOrder);o<r?(n.amount++,s.selectedBoxes.forEach(i=>{const c=n.selectedBoxes.find(p=>p.id===i.id);c?c.productAmount=(Number(c.productAmount)||0)+Number(i.productAmount):n.selectedBoxes.push(i)})):this.error="Этот товар для данного заказа уже отсканирован в нужном количестве."}else this.scannedOrders.unshift(s)}).catch(s=>{var n,o;this.error=((o=(n=s==null?void 0:s.response)==null?void 0:n.data)==null?void 0:o.message)||"Произошла неизвестная ошибка"}).finally(async()=>{var s,n;this.loading=!1,this.code="",await this.$nextTick(),(n=(s=this.$refs.searchInput)==null?void 0:s.$el.querySelector("input"))==null||n.focus()})},async recalculateAllBoxes(){var e,t;this.loading=!0;try{const s={customer:this.customer,marketplace:this.marketplace},n={scannedOrders:this.scannedOrders},{data:o}=await this.$api.post(this.$route("fbs.recalculate.boxes",s),n);this.scannedOrders=o.orders}catch(s){this.error=((t=(e=s==null?void 0:s.response)==null?void 0:e.data)==null?void 0:t.message)||"Ошибка пересчета"}finally{this.loading=!1}}},watch:{scannedProductsAmount(e,t){if(this.voiceEnabled&&e>t){const s=w(e,{currency:{currencyNameCases:["","",""]},showNumberParts:{fractional:!1}});this.speakText(s)}},error(e){e&&this.speakText(e)}}},A={class:"relative"},N={class:"text-red-600 text-xs"},$={class:"text-gray-700 text-sm my-1 flex items-center"};function B(e,t,s,n,o,r){const u=d("text-input"),i=d("error-message"),c=d("font-awesome-icon"),p=d("fbs-scanned-orderstable"),y=d("cancel-btn"),v=d("save-btn"),k=d("app-modal");return f(),h(k,{save:e.saveScannedOrders,modelValue:e.show,"onUpdate:modelValue":t[3]||(t[3]=a=>e.show=a),persistent:"",onClick:t[4]||(t[4]=E(a=>e.show=!1,["self"])),class:"orderScanModal"},{actions:b(()=>[l(y,{onClick:t[2]||(t[2]=a=>e.show=!1)}),l(v,{save:e.saveScannedOrders},null,8,["save"])]),default:b(()=>[m("div",A,[l(u,{"input-class":"searchInput",ref:"searchInput",field:"order",disabled:e.loading,modelValue:e.code,"onUpdate:modelValue":t[0]||(t[0]=a=>e.code=a),label:"Баркод продукта",clearable:"",loading:e.loading,onKeyup:x(r.getScannedOrder,["enter"])},null,8,["disabled","modelValue","loading","onKeyup"]),l(i,{field:"orders"})]),m("small",N,g(e.error),1),m("p",$,[t[5]||(t[5]=m("span",{class:"font-medium"},"Кол. отсканированных товаров:",-1)),I(" "+g(r.scannedProductsAmount)+" ",1),e.voiceEnabled?(f(),h(c,{key:0,icon:["fas","volume-high"],class:"ml-2 text-green-600 cursor-pointer",onClick:r.toggleVoice},null,8,["onClick"])):(f(),h(c,{key:1,icon:["fas","volume-xmark"],class:"ml-2 text-gray-600 cursor-pointer",onClick:r.toggleVoice},null,8,["onClick"]))]),l(p,{orders:e.scannedOrders,"onUpdate:orders":t[1]||(t[1]=a=>e.scannedOrders=a),onRecalculate:r.recalculateAllBoxes,"live-inventory":r.liveInventory},null,8,["orders","onRecalculate","live-inventory"])]),_:1},8,["save","modelValue"])}const F=V(_,[["render",B]]);
1export{F as default};

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.