@ganwei-web/gw-base-components-plus 1.0.51 → 1.0.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ (function(r,I){typeof exports=="object"&&typeof module<"u"?module.exports=I(require("vue"),require("socket.io-client"),require("@aspnet/signalr")):typeof define=="function"&&define.amd?define(["vue","socket.io-client","@aspnet/signalr"],I):(r=typeof globalThis<"u"?globalThis:r||self,r.EquipListVue3=I(r.Vue,r.io))})(this,function(r,I){"use strict";const it="";function W(s,e){var t=Object.keys(s);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(s);e&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(s,o).enumerable})),t.push.apply(t,i)}return t}function $(s){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?W(Object(t),!0).forEach(function(i){ce(s,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(t)):W(Object(t)).forEach(function(i){Object.defineProperty(s,i,Object.getOwnPropertyDescriptor(t,i))})}return s}function ue(s,e){if(!(s instanceof e))throw new TypeError("Cannot call a class as a function")}function J(s,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(s,i.key,i)}}function he(s,e,t){return e&&J(s.prototype,e),t&&J(s,t),s}function ce(s,e,t){return e in s?Object.defineProperty(s,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):s[e]=t,s}function le(s){return de(s)||pe(s)||fe(s)||ge()}function de(s){if(Array.isArray(s))return R(s)}function pe(s){if(typeof Symbol<"u"&&s[Symbol.iterator]!=null||s["@@iterator"]!=null)return Array.from(s)}function fe(s,e){if(s){if(typeof s=="string")return R(s,e);var t=Object.prototype.toString.call(s).slice(8,-1);if(t==="Object"&&s.constructor&&(t=s.constructor.name),t==="Map"||t==="Set")return Array.from(s);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return R(s,e)}}function R(s,e){(e==null||e>s.length)&&(e=s.length);for(var t=0,i=new Array(e);t<e;t++)i[t]=s[t];return i}function ge(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var M={FRONT:"FRONT",BEHIND:"BEHIND"},N={INIT:"INIT",FIXED:"FIXED",DYNAMIC:"DYNAMIC"},X=2,Se=function(){function s(e,t){ue(this,s),this.init(e,t)}return he(s,[{key:"init",value:function(t,i){this.param=t,this.callUpdate=i,this.sizes=new Map,this.firstRangeTotalSize=0,this.firstRangeAverageSize=0,this.lastCalcIndex=0,this.fixedSizeValue=0,this.calcType=N.INIT,this.offset=0,this.direction="",this.range=Object.create(null),t&&this.checkRange(0,t.keeps-1)}},{key:"destroy",value:function(){this.init(null,null)}},{key:"getRange",value:function(){var t=Object.create(null);return t.start=this.range.start,t.end=this.range.end,t.padFront=this.range.padFront,t.padBehind=this.range.padBehind,t}},{key:"isBehind",value:function(){return this.direction===M.BEHIND}},{key:"isFront",value:function(){return this.direction===M.FRONT}},{key:"getOffset",value:function(t){return(t<1?0:this.getIndexOffset(t))+this.param.slotHeaderSize}},{key:"updateParam",value:function(t,i){var o=this;this.param&&t in this.param&&(t==="uniqueIds"&&this.sizes.forEach(function(n,a){i.includes(a)||o.sizes.delete(a)}),this.param[t]=i)}},{key:"saveSize",value:function(t,i){this.sizes.set(t,i),this.calcType===N.INIT?(this.fixedSizeValue=i,this.calcType=N.FIXED):this.calcType===N.FIXED&&this.fixedSizeValue!==i&&(this.calcType=N.DYNAMIC,delete this.fixedSizeValue),this.calcType!==N.FIXED&&typeof this.firstRangeTotalSize<"u"&&(this.sizes.size<Math.min(this.param.keeps,this.param.uniqueIds.length)?(this.firstRangeTotalSize=le(this.sizes.values()).reduce(function(o,n){return o+n},0),this.firstRangeAverageSize=Math.round(this.firstRangeTotalSize/this.sizes.size)):delete this.firstRangeTotalSize)}},{key:"handleDataSourcesChange",value:function(){var t=this.range.start;this.isFront()?t=t-X:this.isBehind()&&(t=t+X),t=Math.max(t,0),this.updateRange(this.range.start,this.getEndByStart(t))}},{key:"handleSlotSizeChange",value:function(){this.handleDataSourcesChange()}},{key:"handleScroll",value:function(t){this.direction=t<this.offset?M.FRONT:M.BEHIND,this.offset=t,this.param&&(this.direction===M.FRONT?this.handleFront():this.direction===M.BEHIND&&this.handleBehind())}},{key:"handleFront",value:function(){var t=this.getScrollOvers();if(!(t>this.range.start)){var i=Math.max(t-this.param.buffer,0);this.checkRange(i,this.getEndByStart(i))}}},{key:"handleBehind",value:function(){var t=this.getScrollOvers();t<this.range.start+this.param.buffer||this.checkRange(t,this.getEndByStart(t))}},{key:"getScrollOvers",value:function(){var t=this.offset-this.param.slotHeaderSize;if(t<=0)return 0;if(this.isFixedType())return Math.floor(t/this.fixedSizeValue);for(var i=0,o=0,n=0,a=this.param.uniqueIds.length;i<=a;){if(o=i+Math.floor((a-i)/2),n=this.getIndexOffset(o),n===t)return o;n<t?i=o+1:n>t&&(a=o-1)}return i>0?--i:0}},{key:"getIndexOffset",value:function(t){if(!t)return 0;for(var i=0,o=0,n=0;n<t;n++)o=this.sizes.get(this.param.uniqueIds[n]),i=i+(typeof o=="number"?o:this.getEstimateSize());return this.lastCalcIndex=Math.max(this.lastCalcIndex,t-1),this.lastCalcIndex=Math.min(this.lastCalcIndex,this.getLastIndex()),i}},{key:"isFixedType",value:function(){return this.calcType===N.FIXED}},{key:"getLastIndex",value:function(){return this.param.uniqueIds.length-1}},{key:"checkRange",value:function(t,i){var o=this.param.keeps,n=this.param.uniqueIds.length;n<=o?(t=0,i=this.getLastIndex()):i-t<o-1&&(t=i-o+1),this.range.start!==t&&this.updateRange(t,i)}},{key:"updateRange",value:function(t,i){this.range.start=t,this.range.end=i,this.range.padFront=this.getPadFront(),this.range.padBehind=this.getPadBehind(),this.callUpdate(this.getRange())}},{key:"getEndByStart",value:function(t){var i=t+this.param.keeps-1,o=Math.min(i,this.getLastIndex());return o}},{key:"getPadFront",value:function(){return this.isFixedType()?this.fixedSizeValue*this.range.start:this.getIndexOffset(this.range.start)}},{key:"getPadBehind",value:function(){var t=this.range.end,i=this.getLastIndex();return this.isFixedType()?(i-t)*this.fixedSizeValue:this.lastCalcIndex===i?this.getIndexOffset(i)-this.getIndexOffset(t):(i-t)*this.getEstimateSize()}},{key:"getEstimateSize",value:function(){return this.isFixedType()?this.fixedSizeValue:this.firstRangeAverageSize||this.param.estimateSize}}]),s}(),we={dataKey:{type:[String,Function],required:!0},dataSources:{type:Array,required:!0,default:function(){return[]}},dataComponent:{type:[Object,Function],required:!0},keeps:{type:Number,default:30},extraProps:{type:Object},estimateSize:{type:Number,default:50},direction:{type:String,default:"vertical"},start:{type:Number,default:0},offset:{type:Number,default:0},topThreshold:{type:Number,default:0},bottomThreshold:{type:Number,default:0},pageMode:{type:Boolean,default:!1},rootTag:{type:String,default:"div"},wrapTag:{type:String,default:"div"},wrapClass:{type:String,default:"wrap"},wrapStyle:{type:Object},itemTag:{type:String,default:"div"},itemClass:{type:String,default:""},itemClassAdd:{type:Function},itemStyle:{type:Object},headerTag:{type:String,default:"div"},headerClass:{type:String,default:""},headerStyle:{type:Object},footerTag:{type:String,default:"div"},footerClass:{type:String,default:""},footerStyle:{type:Object},itemScopedSlots:{type:Object}},Ce={index:{type:Number},event:{type:String},tag:{type:String},horizontal:{type:Boolean},source:{type:Object},component:{type:[Object,Function]},uniqueKey:{type:[String,Number]},extraProps:{type:Object},scopedSlots:{type:Object}},be={event:{type:String},uniqueKey:{type:String},tag:{type:String},horizontal:{type:Boolean}},Y=function(e,t,i){var o=null,n=r.computed(function(){return e.horizontal?"offsetWidth":"offsetHeight"}),a=function(){return t.value?t.value[n.value]:0},u=function(){var c=e.event,l=e.uniqueKey,p=e.hasInitial;i(c,l,a(),p)};r.onMounted(function(){typeof ResizeObserver<"u"&&(o=new ResizeObserver(function(){u()}),t.value&&o.observe(t.value))}),r.onUpdated(function(){u()}),r.onUnmounted(function(){o&&(o.disconnect(),o=null)})},me=r.defineComponent({name:"VirtualListItem",props:Ce,emits:["itemResize"],setup:function(e,t){var i=t.emit,o=r.ref(null);return Y(e,o,i),function(){var n=e.tag,a=e.component,u=e.extraProps,h=u===void 0?{}:u,c=e.index,l=e.source,p=e.scopedSlots,w=p===void 0?{}:p,S=e.uniqueKey,y=$($({},h),{},{source:l,index:c});return r.createVNode(n,{key:S,ref:o},{default:function(){return[r.createVNode(a,$($({},y),{},{scopedSlots:w}),null)]}})}}}),Q=r.defineComponent({name:"VirtualListSlot",props:be,emits:["slotResize"],setup:function(e,t){var i=t.slots,o=t.emit,n=r.ref(null);return Y(e,n,o),function(){var a,u=e.tag,h=e.uniqueKey;return r.createVNode(u,{ref:n,key:h},{default:function(){return[(a=i.default)===null||a===void 0?void 0:a.call(i)]}})}}}),T;(function(s){s.ITEM="itemResize",s.SLOT="slotResize"})(T||(T={}));var G;(function(s){s.HEADER="thead",s.FOOTER="tfoot"})(G||(G={}));var ye=r.defineComponent({name:"VirtualList",props:we,setup:function(e,t){var i=t.emit,o=t.slots,n=t.expose,a=e.direction==="horizontal",u=a?"scrollLeft":"scrollTop",h=r.ref(null),c=r.ref(),l=r.ref(null),p;r.watch(function(){return e.dataSources.length},function(){p.updateParam("uniqueIds",ie()),p.handleDataSourcesChange()}),r.watch(function(){return e.keeps},function(f){p.updateParam("keeps",f),p.handleSlotSizeChange()}),r.watch(function(){return e.start},function(f){F(f)}),r.watch(function(){return e.offset},function(f){return j(f)});var w=function(d){return p.sizes.get(d)},S=function(){return e.pageMode?document.documentElement[u]||document.body[u]:c.value?Math.ceil(c.value[u]):0},y=function(){var d=a?"clientWidth":"clientHeight";return e.pageMode?document.documentElement[d]||document.body[d]:c.value?Math.ceil(c.value[d]):0},E=function(){var d=a?"scrollWidth":"scrollHeight";return e.pageMode?document.documentElement[d]||document.body[d]:c.value?Math.ceil(c.value[d]):0},Je=function(d,g,C,b){i("scroll",b,p.getRange()),p.isFront()&&e.dataSources.length&&d-e.topThreshold<=0?i("totop"):p.isBehind()&&d+g+e.bottomThreshold>=C&&i("tobottom")},D=function(d){var g=S(),C=y(),b=E();g<0||g+C>b+1||!b||(p.handleScroll(g),Je(g,C,b,d))},ie=function(){var d=e.dataKey,g=e.dataSources,C=g===void 0?[]:g;return C.map(function(b){return typeof d=="function"?d(b):b[d]})},Xe=function(d){h.value=d},Ye=function(){p=new Se({slotHeaderSize:0,slotFooterSize:0,keeps:e.keeps,estimateSize:e.estimateSize,buffer:Math.round(e.keeps/3),uniqueIds:ie()},Xe),h.value=p.getRange()},F=function(d){if(d>=e.dataSources.length-1)oe();else{var g=p.getOffset(d);j(g)}},j=function(d){e.pageMode?(document.body[u]=d,document.documentElement[u]=d):c.value&&(c.value[u]=d)},Qe=function(){for(var d=[],g=h.value,C=g.start,b=g.end,V=e.dataSources,x=e.dataKey,P=e.itemClass,U=e.itemTag,K=e.itemStyle,H=e.extraProps,z=e.dataComponent,B=e.itemScopedSlots,q=C;q<=b;q++){var O=V[q];if(O){var v=typeof x=="function"?x(O):O[x];typeof v=="string"||typeof v=="number"?d.push(r.createVNode(me,{index:q,tag:U,event:T.ITEM,horizontal:a,uniqueKey:v,source:O,extraProps:H,component:z,scopedSlots:B,style:K,class:"".concat(P).concat(e.itemClassAdd?" "+e.itemClassAdd(q):""),onItemResize:Ze},null)):console.warn("Cannot get the data-key '".concat(x,"' from data-sources."))}else console.warn("Cannot get the index '".concat(q,"' from data-sources."))}return d},Ze=function(d,g){p.saveSize(d,g),i("resized",d,g)},se=function(d,g,C){d===G.HEADER?p.updateParam("slotHeaderSize",g):d===G.FOOTER&&p.updateParam("slotFooterSize",g),C&&p.handleSlotSizeChange()},oe=function f(){if(l.value){var d=l.value[a?"offsetLeft":"offsetTop"];j(d),setTimeout(function(){S()+y()<E()&&f()},3)}},et=function(){if(c.value){var d=c.value.getBoundingClientRect(),g=c.value.ownerDocument.defaultView,C=a?d.left+g.pageXOffset:d.top+g.pageYOffset;p.updateParam("slotHeaderSize",C)}},tt=function(){return p.sizes.size};return r.onBeforeMount(function(){Ye()}),r.onActivated(function(){j(p.offset)}),r.onMounted(function(){e.start?F(e.start):e.offset&&j(e.offset),e.pageMode&&(et(),document.addEventListener("scroll",D,{passive:!1}))}),r.onUnmounted(function(){p.destroy(),e.pageMode&&document.removeEventListener("scroll",D)}),n({scrollToBottom:oe,getSizes:tt,getSize:w,getOffset:S,getScrollSize:E,getClientSize:y,scrollToOffset:j,scrollToIndex:F}),function(){var f=e.pageMode,d=e.rootTag,g=e.wrapTag,C=e.wrapClass,b=e.wrapStyle,V=e.headerTag,x=e.headerClass,P=e.headerStyle,U=e.footerTag,K=e.footerClass,H=e.footerStyle,z=h.value,B=z.padFront,q=z.padBehind,O={padding:a?"0px ".concat(q,"px 0px ").concat(B,"px"):"".concat(B,"px 0px ").concat(q,"px")},v=b?Object.assign({},b,O):O,ne=o.header,ae=o.footer;return r.createVNode(d,{ref:c,onScroll:!f&&D},{default:function(){return[ne&&r.createVNode(Q,{class:x,style:P,tag:V,event:T.SLOT,uniqueKey:G.HEADER,onSlotResize:se},{default:function(){return[ne()]}}),r.createVNode(g,{class:C,style:v},{default:function(){return[Qe()]}}),ae&&r.createVNode(Q,{class:K,style:H,tag:U,event:T.SLOT,uniqueKey:G.FOOTER,onSlotResize:se},{default:function(){return[ae()]}}),r.createVNode("div",{ref:l,style:{width:a?"0px":"100%",height:a?"100%":"0px"}},null)]}})}}});class qe{constructor(e,t,i){this.groupNodeObject=e,this.nodesMap=t,this.controlObject=i}addNodesMap(e){e&&e.forEach(t=>{this.nodesMap[t.key]=t})}removeNodesMap(e){e&&e.forEach(t=>{delete this.nodesMap[t.key]})}recycleAllNodeCache(e){for(let t in this.groupNodeObject)this.groupNodeObject[t].expand=!1,this.groupNodeObject[t].count=0,this.recycleGroupCache(this.groupNodeObject[t].key),e&&delete this.groupNodeObject[t]}recycleGroupCache(e){if(this.groupNodeObject[e]){this.groupNodeObject[e].children=[],this.removeNodesMap(this.groupNodeObject[e].equips),this.groupNodeObject[e].equips=[],this.groupNodeObject[e].equips.length=0,this.groupNodeObject[e].expand=!1;for(let t in this.groupNodeObject)this.groupNodeObject[t].groupId==e&&this.recycleGroupCache(this.groupNodeObject[t].key)}}closeBrotherNode(e){if(e&&this.groupNodeObject[e]){let t=this.groupNodeObject[e].groupId;for(let i in this.groupNodeObject)this.groupNodeObject[i].groupId==t&&this.groupNodeObject[i].key!=e&&this.groupNodeObject[i].expand&&(this.groupNodeObject[i].expand=!1,this.recycleGroupCache(this.groupNodeObject[i].key))}}}class _{constructor(){this.window=window;try{window.top.equipGroup,this.window=window.top}catch{this.window=window}}}const Z={data(){return{window:null}},created(){this.window=window;try{window.top.equipGroup,this.window=window.top}catch{this.window=window}}};class ke extends _{constructor(e,t,i,o,n,a){super(),this.equipControllObject=i,this.groupNodeObject=e,this.nodesMap=t,this.controlObject=o,this.equipCheckObject=n,this.isSearchStatus=!1,this.searchStatusGroupObject={},this.aliasName=a}resetCheckedStatus(){Object.values(this.nodesMap).forEach(e=>{this.setCheckStatus(e.key,!1,!1)}),Object.keys(this.equipCheckObject).forEach(e=>delete this.equipCheckObject[e]),this.updateGroupCheckStatus()}reComputedCheckNum(e){this.isSearchStatus=e,this.updateGroupCheckStatus()}updateCheckedStatusWithEquips(e){Object.keys(this.equipCheckObject).forEach(i=>{i.split("-").length===2&&delete this.equipCheckObject[i]});let t=[];Array.isArray(e)?t=e.map(i=>({equipNo:i,groupId:null})):e!==null&&typeof e=="object"&&Object.keys(e).forEach(i=>{Array.isArray(e[i])&&e[i].forEach(o=>{t.push({equipNo:o,groupId:Number(i)})})});for(let i=0,o=t.length;i<o;i++){const{equipNo:n,groupId:a}=t[i];if(a!=null){const u=`${a}-${n}`;this.setEquipCheckObject(u,!0,!1,a),this.setCheckStatus(u,!0,!1),this.updateExpandControlCheckStatus(a,n)}else{const u=this.window.equipCache&&this.window.equipCache[n];u&&(u.groupIds||(u.groupId?[u.groupId]:[])).forEach(c=>{const l=`${c}-${n}`;this.setEquipCheckObject(l,!0,!1,c),this.setCheckStatus(l,!0,!1),this.updateExpandControlCheckStatus(c,n)})}}}updateExpandControlCheckStatus(e,t){let i=this.nodesMap[`${e}-${t}`];i&&i.settings&&i.settings.length&&i.settings.forEach(o=>{this.nodesMap[`${e}-${t}-${o.setNo}`]&&this.setCheckStatus(`${e}-${t}-${o.setNo}`,!0,!1)})}updateCheckedStatusWithControls(e){for(let t=0,i=e.length;t<i;t++){let o=e[t],n,a,u;if(o!==null&&typeof o=="object"&&!Array.isArray(o))n=o.equipNo,a=o.setNo,u=o.groupId;else{let c=o.split(".");n=c[0],a=c[1],u=null}this.equipControllObject[n]||(this.equipControllObject[n]=[]),this.equipControllObject[n].push(Number(a));const h=this.window.equipCache&&this.window.equipCache[n];h&&(u!=null?[u]:h.groupIds||(h.groupId?[h.groupId]:[])).forEach(l=>{const p=`${l}-${n}`,w=`${l}-${n}-${a}`;this.nodesMap[w]&&this.setCheckStatus(w,!0,!1),this.nodesMap[p]&&this.setCheckStatus(p,!1,!0),this.setEquipCheckObject(p,!1,!0,l)})}}updateGroupCheckStatus(){this.getSortedGroupsByLevel().forEach(t=>{const i=this.computeGroupStatus(t.key);this.setCheckStatus(t.key,i.checked,i.indeterminate),t.equipSelectCount=i.selectCount})}getSortedGroupsByLevel(){return Object.values(this.groupNodeObject).sort((e,t)=>t.level-e.level)}computeGroupStatus(e){const t=this.groupNodeObject[e];if(!t)return{checked:!1,indeterminate:!1,selectCount:0};let i=this.isSearchStatus?this.window[`group-${e}-search`]||[]:this.window[`group-${e}${this.aliasName}`]||[];!this.isSearchStatus&&i.length===0&&this.aliasName&&(i=this.window[`group-${e}`]||[]);let o=0,n=i.length||t.equipCount||0;if(i.length>0)i.forEach(w=>{const S=w.equipNo||w.id,y=`${e}-${S}`;this.equipCheckObject[y]&&this.equipCheckObject[y].checked&&o++});else{const w=`${e}-`;Object.keys(this.equipCheckObject).forEach(S=>{S.startsWith(w)&&S.split("-").length===2&&this.equipCheckObject[S].checked&&o++})}let a=0,u=0,h=!1,c=!1;t.groups&&t.groups.length>0&&t.groups.forEach(w=>{const S=this.nodesMap[w.key],y=this.groupNodeObject[w.key];if(S){const E=S.count||(y?y.equipCount:0)||0;u+=E,S.checked?(a+=E,h=!0):S.indeterminate?(c=!0,h=!0):c=!0}});const l=o+a;let p=t.count||0;return p===0&&(p=n+u),l===0&&!h?{checked:!1,indeterminate:!1,selectCount:0}:p===0?l>0?{checked:!1,indeterminate:!0,selectCount:l}:{checked:!1,indeterminate:!1,selectCount:0}:l===0?h?{checked:!1,indeterminate:!0,selectCount:l}:{checked:!1,indeterminate:!1,selectCount:0}:l===p&&!c?{checked:!0,indeterminate:!1,selectCount:l}:{checked:!1,indeterminate:!0,selectCount:l}}setControlStatus(e,t,i,o){e&&e.forEach(n=>{this.nodesMap[`${t}-${i}-${n.setNo}`]&&this.setCheckStatus(`${t}-${i}-${n.setNo}`,o,!1)})}updateControlCheckStatus(){Object.keys(this.controlObject).forEach(e=>{const[t,i]=e.split("-");let o=this.nodesMap[e];if(o)if(o.checked){let n=o.settings;this.setControlStatus(n,t,i,!0)}else if(!o.checked&&!o.indeterminate){let n=o.settings;this.setControlStatus(n,t,i,!1)}else this.equipControllObject[i]&&this.equipControllObject[i].forEach(n=>{let a=`${t}-${i}-${n}`;this.nodesMap[a]&&this.setCheckStatus(a,!0,!1)})})}getGroupChecked(){let e=[];return Object.keys(this.groupNodeObject).forEach(t=>{this.groupNodeObject[t].checked&&e.push(t)}),e}getEquipSelectd(){let e=[],t=new Set;return Object.keys(this.equipCheckObject).forEach(i=>{if(this.equipCheckObject[i].checked)try{t.add(Number(i.split("-")[1]))}catch(o){console.log(o)}}),e=Array.from(t),e}getEquipGroupSelectd(){let e=Object.keys(this.equipCheckObject);return e.length>0&&(e=this.returnArray(e)),e}returnArray(e){const t=[];return e.forEach(i=>{const o=i.split("-");if(o.length>=2){const n=parseInt(o[0]),a=parseInt(o[1]);!isNaN(n)&&!isNaN(a)&&t.push({groupId:n,equipNo:a})}}),t}parseEquipArrayToGroupFormat(e){const t={};return e.forEach(i=>{const[o,n]=i.split("-"),a=parseInt(o);isNaN(a)||(t[a]||(t[a]=[]),t[a].push(parseInt(n)))}),t}getControlSelected(){let e=[];return Object.keys(this.equipControllObject).forEach(t=>{e.push(...this.equipControllObject[t].map(i=>`${t}.${i}`))}),e}onChecked(e,t){this.isSearchStatus=t||!1,e.isGroup&&!e.isEquip?this.selectGroup(e):e.isEquip?this.selectEquip(e):e.isSetting&&this.selectControl(e)}setCheckStatus(e,t,i,o){this.nodesMap[e]&&(this.nodesMap[e].checked=t,this.nodesMap[e].isGroup&&(this.nodesMap[e].indeterminate=i))}setEquipCheckObject(e,t,i,o){this.equipCheckObject[e]||(this.equipCheckObject[e]={}),this.equipCheckObject[e].checked=t,this.equipCheckObject[e].indeterminate=i,this.equipCheckObject[e].groupId=o,!t&&!i&&delete this.equipCheckObject[e]}selectGroup(e){this.updateAllEquipStatus(e.key,e.checked),this.updateControlCheckStatus(),this.updateGroupCheckStatus()}updateAllEquipStatus(e,t){const i=this.groupNodeObject[e];if(!i)return;let o=this.isSearchStatus?this.window[`group-${e}-search`]||[]:this.window[`group-${e}${this.aliasName}`]||[];!this.isSearchStatus&&o.length===0&&this.aliasName&&(o=this.window[`group-${e}`]||[]),o.forEach(n=>{const a=n.equipNo||n.id,u=`${e}-${a}`;this.setEquipCheckObject(u,t,!1,e),this.nodesMap[u]&&this.setCheckStatus(u,t,!1)}),i.groups&&i.groups.length>0&&i.groups.forEach(n=>{this.updateAllEquipStatus(n.key,t)})}selectEquip(e){const t=`${e.groupId}-${e.equipNo}`;this.setEquipCheckObject(t,e.checked,!1,e.groupId),this.nodesMap[t]&&this.setCheckStatus(t,e.checked,!1),this.updateControlCheckStatus(),this.updateGroupCheckStatus()}updateEquipControl(e,t,i){this.equipControllObject[e]||(this.equipControllObject[e]=[]),i?this.equipControllObject[e].push(t):this.equipControllObject[e]=this.equipControllObject[e].filter(o=>o!=t)}selectControl(e){const t=`${e.groupId}-${e.equipNo}`,i=`${e.groupId}-${e.equipNo}-${e.setNo}`,o=this.nodesMap[t];if(!o)return;this.updateEquipControl(e.equipNo,e.setNo,e.checked),this.setCheckStatus(i,e.checked,!1);const n=o.settings||[],a=this.equipControllObject[e.equipNo]||[],u=n.length,h=a.length;e.checked?h===u?(delete this.equipControllObject[e.equipNo],this.setEquipCheckObject(t,!0,!1,e.groupId),this.setCheckStatus(t,!0,!1)):(this.setEquipCheckObject(t,!1,!0,e.groupId),this.setCheckStatus(t,!1,!0)):h===0?(this.setEquipCheckObject(t,!1,!1,e.groupId),this.setCheckStatus(t,!1,!1)):(this.setEquipCheckObject(t,!1,!0,e.groupId),this.setCheckStatus(t,!1,!0)),this.updateGroupCheckStatus()}}class Ne extends _{constructor(e,t){super(),this.aliasName=t,this.groupNodeObject=e}resetGroupNum(e,t,i){this.clearAllEquipNum();const o=Object.keys(this.groupNodeObject).sort((n,a)=>(this.groupNodeObject[a].level||0)-(this.groupNodeObject[n].level||0));for(let n of o){let a=[];e?a=this.window[`group-${n}-search`]:a=this.window[`group-${n}${this.aliasName}`],t&&a&&a.length&&(a=a.filter(h=>i[h.equipNo]===2));let u=a?a.length:0;this.groupNodeObject[n].equipCount=u,this.setGroupNum(n,u)}}clearAllEquipNum(){for(let e in this.groupNodeObject)this.groupNodeObject[e].equipCount=0,this.groupNodeObject[e].count=0}setGroupNum(e,t){this.groupNodeObject[e]&&(this.groupNodeObject[e].count=Number(this.groupNodeObject[e].count)+Number(t),this.setGroupNum(this.groupNodeObject[e].groupId,t))}getAllEquipsNum(){let e=0;for(let t in this.groupNodeObject)this.window[`group-${this.groupNodeObject[t].key}${this.aliasName}`]&&(e=e+this.window[`group-${this.groupNodeObject[t].key}${this.aliasName}`].length);return e}}function ee(){return`${location.protocol==="https:"?"https":"http"}://${location.hostname}:9600`}const m={Connected:"Connected",Connecting:"Connecting",Disconnected:"Disconnected",Reconnecting:"Reconnecting"};class te{constructor(e){this.socket=null,this.config={url:e.url,hub:e.hub,userName:e.userName||"",autoReconnect:e.autoReconnect!==!1,reconnectDelay:e.reconnectDelay||3e3,maxReconnectAttempts:e.maxReconnectAttempts||5,timeout:e.timeout||5e5,autoConnect:e.autoConnect!==!1,transports:e.transports||["websocket"],withCredentials:e.withCredentials!==!1},this.reconnectAttempts=0,this.isReconnecting=!1,this.messageHandlers=new Map,this.state=m.Disconnected,this.stateChangeCallbacks=[],this.pendingListeners=[],this.config.autoConnect&&this.connect()}getState(){return this.state}onStateChange(e){return this.stateChangeCallbacks.push(e),()=>{const t=this.stateChangeCallbacks.indexOf(e);t>-1&&this.stateChangeCallbacks.splice(t,1)}}setState(e){this.state=e,this.stateChangeCallbacks.forEach(t=>t(e))}createSocket(){return I.io(this.config.url,{transports:this.config.transports,autoConnect:!1,reconnection:!1,timeout:this.config.timeout,forceNew:!0,query:{hub:this.config.hub,userName:this.config.userName},withCredentials:this.config.withCredentials})}async connect(){this.socket&&(this.socket.disconnect(),this.socket=null),this.setState(m.Connecting);try{this.socket=this.createSocket();const e=this.socket;return this.pendingListeners.forEach(({event:t,callback:i})=>{e.on(t,i)}),this.pendingListeners=[],new Promise((t,i)=>{const o=()=>{u(),this.reconnectAttempts=0,this.setState(m.Connected),console.log(`Socket.IO [${this.config.hub}] 连接成功`),t(e)},n=h=>{u(),console.error(`Socket.IO [${this.config.hub}] 连接失败:`,h.message),this.setState(m.Disconnected),i(new Error(`Socket.IO 连接失败: ${h.message}`))},a=h=>{u(),console.log(`Socket.IO [${this.config.hub}] 连接断开:`,h),this.setState(m.Disconnected),this.config.autoReconnect&&h!=="io client disconnect"&&this.handleReconnect()},u=()=>{e.off("connect",o),e.off("connect_error",n),e.off("disconnect",a)};e.on("connect",o),e.on("connect_error",n),e.on("disconnect",a),e.connect()})}catch(e){throw console.error(`Socket.IO [${this.config.hub}] 连接异常:`,e),this.setState(m.Disconnected),e}}async handleReconnect(){if(!this.isReconnecting){for(this.isReconnecting=!0,this.setState(m.Reconnecting);this.reconnectAttempts<this.config.maxReconnectAttempts;){this.reconnectAttempts++,console.log(`Socket.IO [${this.config.hub}] 尝试重连 (${this.reconnectAttempts}/${this.config.maxReconnectAttempts})...`);try{await this.sleep(this.config.reconnectDelay),this.socket&&(this.socket.disconnect(),this.socket=null),this.socket=this.createSocket();const e=this.socket;this.resubscribeMessages(e),await new Promise((t,i)=>{const o=()=>{u(),this.reconnectAttempts=0,this.isReconnecting=!1,this.setState(m.Connected),console.log(`Socket.IO [${this.config.hub}] 重连成功`),t()},n=h=>{u(),i(h)},a=h=>{u(),console.log(`Socket.IO [${this.config.hub}] 重连后连接断开:`,h),this.setState(m.Disconnected),i(new Error(`重连后断开: ${h}`))},u=()=>{e.off("connect",o),e.off("connect_error",n),e.off("disconnect",a)};e.on("connect",o),e.on("connect_error",n),e.on("disconnect",a),e.connect()}),this.socket.on("disconnect",t=>{console.log(`Socket.IO [${this.config.hub}] 连接断开:`,t),this.setState(m.Disconnected),this.config.autoReconnect&&t!=="io client disconnect"&&this.handleReconnect()});return}catch(e){console.error(`Socket.IO [${this.config.hub}] 重连失败:`,e.message||e)}}console.error(`Socket.IO [${this.config.hub}] 重连次数已达上限,停止重连`),this.isReconnecting=!1,this.setState(m.Disconnected)}}resubscribeMessages(e){this.messageHandlers.forEach((t,i)=>{t.forEach(o=>{e.on(i,o)})})}on(e,t){this.messageHandlers.has(e)||this.messageHandlers.set(e,new Set);const i=this.messageHandlers.get(e);return i&&i.add(t),this.socket?this.socket.on(e,t):this.pendingListeners.push({event:e,callback:t}),()=>{this.off(e,t)}}off(e,t){if(t){const i=this.messageHandlers.get(e);i&&(i.delete(t),i.size===0&&this.messageHandlers.delete(e)),this.socket&&this.socket.off(e,t)}else this.messageHandlers.delete(e),this.socket&&this.socket.off(e);this.pendingListeners=this.pendingListeners.filter(i=>!(i.event===e&&(!t||i.callback===t)))}emit(e,t){if(!this.socket){console.error(`Socket.IO [${this.config.hub}] 未初始化,请先调用 connect()`);return}this.socket.emit(e,t)}invoke(e,t){this.emit("invoke",{method:e,data:t})}async disconnect(){this.socket&&(this.socket.disconnect(),this.socket=null),this.isReconnecting=!1,this.reconnectAttempts=0,this.setState(m.Disconnected)}getSocket(){return this.socket}clearAllHandlers(){this.messageHandlers.forEach((e,t)=>{this.socket&&this.socket.off(t)}),this.messageHandlers.clear(),this.pendingListeners=[]}async destroy(){this.stateChangeCallbacks=[],this.clearAllHandlers(),await this.disconnect()}sleep(e){return new Promise(t=>setTimeout(t,e))}}class Ee extends _{constructor(e,t,i,o,n){super(),this.equipStatusObject=t,this.groupNodeObject=i,this.aleadyUpdateStatus={},this.isGetAllEquipStatus=!1,this.nodesMap=e,this.statusChange=o,this.aliasName=n,this.openSignlr()}openSignlr(){this.equipStatusSignlr=new te({url:ee(),hub:"equipStatusMonitor",userName:sessionStorage.userName,autoConnect:!1}),this.equipStatusSignlr.connect().then(()=>{{this.equipStatusSignlr.on("connect",()=>{try{this.equipStatusSignlr.invoke("GetAllEquipStatus",{}),this.equipStatusSignlr.invoke("GetEquipChangeStatus",{})}catch(e){console.log(e)}});try{this.equipStatusSignlr.invoke("GetAllEquipStatus",{}),this.equipStatusSignlr.invoke("GetEquipChangeStatus",{})}catch(e){console.log(e)}}this.subscribeTo(this.equipStatusSignlr,"GetAllEquipStatus"),this.subscribeTo(this.equipStatusSignlr,"GetEquipChangeStatus")}).catch(e=>{console.error(e)})}subscribeTo(e,t){e.off(t),e.on(t,i=>{{const o=i==null?void 0:i.data;o&&o.isSuccess&&o.data&&(this[t]?this[t](o.data):this.notice({func:t,data:o.data,key:o.groupId}))}})}GetAllEquipStatus(e){this.isGetAllEquipStatus=!0,this.resetGroupStatus(),this.aleadyUpdateStatus={},Object.keys(e).forEach(t=>{this.equipStatusObject[t]=e[t]}),Object.keys(this.groupNodeObject).forEach(t=>{this.updateByGroup(t)})}updateByGroup(e){if(!this.aleadyUpdateStatus[e]){let t=this.window[`group-${e}${this.aliasName}`]||[];if(t.length){this.aleadyUpdateStatus[e]=!0;let i=!1,o=!0;t.forEach(n=>{const a=this.equipStatusObject[n.equipNo];a===1?(i=!0,o=!1):a!==0&&(o=!1)}),o&&this.setOfflineStatus(e),t.forEach(n=>{this.equipStatusObject[n.equipNo]==2?this.setGroupStatus(e,!0,2):this.equipStatusObject[n.equipNo]==6&&this.setGroupStatus(e,!0,6),this.nodesMap[`${e}-${n.equipNo}`]&&(this.nodesMap[`${e}-${n.equipNo}`].status=this.equipStatusObject[n.equipNo])}),this.nodesMap[e].alarmCounts===0&&this.nodesMap[e].backUpCounts===0&&i&&(this.nodesMap[e].status=1,this.nodesMap[e].groupId&&this.setNormalStatus(this.nodesMap[e].groupId))}}}updateGroupStatus(e){this.isGetAllEquipStatus&&this.updateByGroup(e)}GetEquipChangeStatus(e){this.setStatus(e)}setGroupStatus(e,t,i){t?i==2?(this.nodesMap[e].alarmCounts=this.nodesMap[e].alarmCounts+1,this.nodesMap[e].alarmCounts>0&&(this.nodesMap[e].status=2)):(this.nodesMap[e].backUpCounts=this.nodesMap[e].backUpCounts+1,this.nodesMap[e].alarmCounts==0&&this.nodesMap[e].backUpCounts>0&&(this.nodesMap[e].status=6)):i==2?(this.nodesMap[e].alarmCounts=this.nodesMap[e].alarmCounts-1,this.nodesMap[e].alarmCounts==0&&(this.nodesMap[e].status=1)):(this.nodesMap[e].backUpCounts=this.nodesMap[e].backUpCounts-1,this.nodesMap[e].alarmCounts==0&&(this.nodesMap[e].backUpCounts==0?this.nodesMap[e].status=1:this.nodesMap[e].status=6)),this.nodesMap[e].groupId&&this.setGroupStatus(this.nodesMap[e].groupId,t,i)}setOfflineStatus(e){this.nodesMap[e].status!==2&&this.nodesMap[e].status!==6&&this.nodesMap[e].status!==1&&(this.nodesMap[e].status=0,this.nodesMap[e].groupId&&this.setOfflineStatus(this.nodesMap[e].groupId))}setNormalStatus(e){this.nodesMap[e].status!==2&&this.nodesMap[e].status!==6&&(this.nodesMap[e].status=1,this.nodesMap[e].groupId&&this.setNormalStatus(this.nodesMap[e].groupId))}getEquipGroupIds(e){const t=[];if(this.window.groupCache&&Object.keys(this.window.groupCache).forEach(i=>{this.window.groupCache[i]&&this.window.groupCache[i][e]&&t.push(Number(i))}),t.length===0){const i=this.window.equipCache&&this.window.equipCache[e];if(i){if(i.groupIds&&i.groupIds.length>0)return i.groupIds;i.groupId&&t.push(i.groupId)}}return t}setStatus(e){let t=this.equipStatusObject[e.equipNo];const i=this.getEquipGroupIds(e.equipNo);e.status!=3&&i.length>0&&(i.forEach(o=>{switch(e.status){case 0:t==6&&this.setGroupStatus(o,!1,6);break;case 1:t==6?this.setGroupStatus(o,!1,6):t==2&&this.setGroupStatus(o,!1,2);break;case 2:t!=2&&this.setGroupStatus(o,!0,2),t==6&&this.setGroupStatus(o,!1,6);break;case 6:t==2&&this.setGroupStatus(o,!1,2),t!=6&&this.setGroupStatus(o,!0,6);break}let n=`${o}-${e.equipNo}`;this.nodesMap[n]&&(this.nodesMap[n].status=e.status)}),this.equipStatusObject[e.equipNo]=e.status,this.statusChange(i[0],e.equipNo,e.status))}resetGroupStatus(){for(let e in this.groupNodeObject)this.groupNodeObject[e].alarmCounts=0,this.groupNodeObject[e].backUpCount=0}disconnect(){this.equipStatusSignlr&&(this.equipStatusSignlr.destroy(),this.equipStatusSignlr=null)}}const Oe=Object.assign({},{getSetParm(s){if(window.AxiosBuilder.axios)return window.AxiosBuilder.axios({method:"post",url:"/IoT/api/v3/EquipList/GetFullSetParmByEquipNo",params:s,data:s,headers:{"Content-Type":"application/json;charset=UTF-8","Accept-Language":window.sessionStorage.languageType||"zh-CN"}})}});class Me{constructor(e,t){this.nodesMap=e,this.equipControllObject=t}async getSetting(e,t,i,o){let[n,a]=String(e).split("-"),u={equipNo:a};await Oe.getSetParm(u).then(h=>{if(h.data.code==200){let c=h&&h.data&&h.data.data&&h.data.data.rows||[];this.nodesMap[e].settings||(this.nodesMap[e].settings=[]),c&&c.length>0&&this.nodesMap[e]&&(c.forEach(l=>{l.title=l.setNm,l.key=`${n}-${a}-${l.setNo}`,l.level=Number(i)+1,l.checked=o||this.equipControllObject[a]&&this.equipControllObject[a].includes(l.setNo),l.isSetting=!0,l.equipNo=a,l.groupId=n,l.setNo=l.setNo,l.equipName=t}),this.nodesMap[e].settings=[...c])}})}}class k{static formateList(e,t){let i=[];for(const o of e){let n={};n.count=0,n.equipSelectCount=0,n.controlSelectCount=0,n.equipCount=o.equipCount||0,n.title=o.name,n.key=o.id,n.isGroup=!0,n.children=[],n.status=1,n.level=t||1,n.expand=!t,n.equips=[],n.groupId=o.parentId,n.groups=[],n.alarmCounts=0,n.backUpCounts=0,n.indeterminate=!1,n.checked=!1,n.visible=!0,n.nodeEquipSelectCount=0,n.checkedEquips=[],n.halfCheckedEquips=[],n.selectControlCount=0,o.children&&o.children.length>0&&(n.groups=[...this.formateList(o.children,t?t+1:2)]),i.push(n)}return i}static deepClone(e,t,i,o,n,a){let u=[];if(e)for(let h=0,c=e.length;h<c;h++){const l=e[h].id||e[h].equipNo,p=`${o}-${l}`;u.push({isGroup:i,key:p,status:a[l]||0,title:e[h].title,level:t,expand:!1,isEquip:!0,loading:!1,indeterminate:n[p]&&n[p].indeterminate||!1,checked:n[p]&&n[p].checked||!1,groupId:o,equipNo:l,visible:!0,settings:[]})}return u}static copyOrigin(e){let t=[];return e.forEach(i=>{t.push({...i})}),t}static getPosition(e,t){let i=0;for(let o=0,n=t.length;o<n;o++)if(t[o].key==e){i=o-30;break}return i}static flattern(e,t){e.forEach(i=>{if(i.isGroup){const o=t[`${i.key}`];t[`${i.key}`]=i,o&&(i.alarmCounts=o.alarmCounts,i.backUpCounts=o.backUpCounts,i.status=o.status)}i.groups&&i.groups.length&&this.flattern(i.groups,t)})}static generateUUID(){let e=new Date().getTime();return window.performance&&typeof window.performance.now=="function"&&(e+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(i){let o=(e+Math.random()*16)%16|0;return e=Math.floor(e/16),(i==="x"?o:o&3|8).toString(16)})}static listToTreeList(e){const t=e,i=[],o={};return t.forEach(n=>{o[n.id]=n}),t.forEach(n=>{const a=o[n.parentId];a?(a.children||(a.children=[])).push(n):i.push(n)}),i}}class Ge extends _{constructor(e,t,i){super(),this.showSettings=t,this.groupNodeObject=e,this.aliasName=i}filterMethod(e){for(let t in this.groupNodeObject)e&&this.updateBySearch(t,e)}updateBySearch(e,t){let i=this.window[`group-${this.groupNodeObject[e].key}${this.aliasName}`];i&&(i=i.filter(o=>o.title.includes(t)),this.window[`group-${this.groupNodeObject[e].key}-search`]=k.copyOrigin(i))}}const ot="",L=(s,e)=>{const t=s.__vccOpts||s;for(const[i,o]of e)t[i]=o;return t},je={props:{source:{type:Object,default:()=>{}},groupEditAndNew:{type:Function,default:()=>{}},deleteGroup:{type:Function,default:()=>{}}}},xe={class:"operates"};function Ie(s,e,t,i,o,n){const a=r.resolveComponent("el-button"),u=r.resolveComponent("el-button-group"),h=r.resolveComponent("el-popover");return r.openBlock(),r.createElementBlock("div",xe,[r.createVNode(h,{placement:"bottom",trigger:"hover"},{reference:r.withCtx(()=>e[6]||(e[6]=[r.createElementVNode("i",{class:"iconfont icon-_gengduo"},null,-1)])),default:r.withCtx(()=>[r.createVNode(u,{class:"new-button-group setModule"},{default:r.withCtx(()=>[r.createVNode(a,{type:"text",size:"small",class:"elBtn",onClick:e[0]||(e[0]=r.withModifiers(c=>t.groupEditAndNew(!1,t.source),["stop"]))},{default:r.withCtx(()=>[e[3]||(e[3]=r.createElementVNode("i",{class:"iconfont icon-tubiao20_bianji"},null,-1)),r.createTextVNode(" "+r.toDisplayString(s.$t("equipInfo.poverTips.rename")),1)]),_:1,__:[3]}),r.createVNode(a,{type:"text",size:"small",class:"elBtn",onClick:e[1]||(e[1]=c=>t.groupEditAndNew(!0,t.source))},{default:r.withCtx(()=>[e[4]||(e[4]=r.createElementVNode("i",{class:"iconfont icon-tubiao20_tianjiashebei"},null,-1)),r.createTextVNode(" "+r.toDisplayString(s.$t("equipInfo.poverTips.newChildGroup")),1)]),_:1,__:[4]}),t.source.level!=1?(r.openBlock(),r.createBlock(a,{key:0,type:"text",size:"small",class:"delete-btn",onClick:e[2]||(e[2]=r.withModifiers(c=>t.deleteGroup(t.source),["stop"]))},{default:r.withCtx(()=>[e[5]||(e[5]=r.createElementVNode("i",{class:"iconfont icon-tubiao20_shanchu"},null,-1)),r.createTextVNode(" "+r.toDisplayString(s.$t("publics.button.deletes")),1)]),_:1,__:[5]})):r.createCommentVNode("",!0)]),_:1})]),_:1})])}const Te={name:"ElTreeVirtualNode",componentName:"ElTreeVirtualNode",props:{searchName:{type:String,default:""},expanding:{type:Boolean,default:!1},aleadyLoadAll:{type:Boolean,default:!1},groupLoading:{type:Boolean,default:!1},source:{type:Object,default(){return{}}},showCheckbox:{type:Boolean,default:!1},showStatus:{type:Boolean,default:!1},showOperate:{type:Boolean,default:!1},currentSelect:{type:[Number,String],default:-1},nodeClick:{type:Function},onChecked:{type:Function},groupEditAndNew:{type:Function},deleteGroup:{type:Function},childrenResetGroupNum:{type:Function},getEquipStatus:{type:Function},colorConfig:{type:Object,default:()=>{}},index:{type:Number,default:-1}},components:{oparate:L(je,[["render",Ie]])},computed:{getColor(){return function(s){this.colorConfig||(this.colorConfig={noComm:"#a0a0a0",normal:"#63e03f",alarm:"#f22433",lsSet:"#bebcaa",initialize:"#289ac0",withdraw:"#ffc0cb",BackUp:"#f8901c"});let e;switch(s){case 0:e=this.colorConfig.noComm;break;case 1:e=this.colorConfig.normal;break;case 2:e=this.colorConfig.alarm;break;case 3:e=this.colorConfig.lsSet;break;case 4:e=this.colorConfig.initialize;break;case 5:e=this.colorConfig.withdraw;break;case 6:e=this.colorConfig.BackUp;break;default:e=this.colorConfig.noComm;break}return e}}},data(){return{indent:13}},methods:{clickFunction(){this.source.expand=!this.source.expand,this.nodeClick(this.source,this.index,this.source.level,this.source.checked)},checkedChange(s){this.onChecked(this.source)}}},ve={class:"el-tree-node__content"},$e={class:"nodeContent"},_e={key:1,class:"circle"},Le={class:"label"},Ae={key:2,class:"equipNumber"},ze={key:4,class:"el-tree-node__loading-icon el-icon-loading"};function Be(s,e,t,i,o,n){const a=r.resolveComponent("el-checkbox"),u=r.resolveComponent("oparate");return r.openBlock(),r.createElementBlock("div",{class:r.normalizeClass(["el-tree-node",{parent_tag:t.source.isGroup,child_tags:!t.source.isGroup,selectedColor:t.currentSelect===t.source.key&&!t.source.isGroup}]),onClick:e[2]||(e[2]=(...h)=>n.clickFunction&&n.clickFunction(...h))},[r.createElementVNode("div",ve,[r.createElementVNode("span",{class:"el-tree__indent","aria-hidden":"true",style:r.normalizeStyle({width:(t.source.level-1)*o.indent+"px"})},null,4),t.source.isGroup?(r.openBlock(),r.createElementBlock("span",{key:0,class:r.normalizeClass([{"is-leaf":!t.source.isGroup,expanded:t.source.isGroup&&t.source.expand},"el-tree-node__expand-icon","iconfont icon-fangxiangL"])},null,2)):r.createCommentVNode("",!0),r.createElementVNode("div",$e,[t.showCheckbox?(r.openBlock(),r.createBlock(a,{key:0,onClick:e[0]||(e[0]=r.withModifiers(()=>{},["stop"])),modelValue:t.source.checked,"onUpdate:modelValue":e[1]||(e[1]=h=>t.source.checked=h),indeterminate:t.source.indeterminate,onChange:n.checkedChange},null,8,["modelValue","indeterminate","onChange"])):r.createCommentVNode("",!0),t.showStatus?(r.openBlock(),r.createElementBlock("span",_e,[t.source.status!=6?(r.openBlock(),r.createElementBlock("span",{key:0,class:"yd",style:r.normalizeStyle({backgroundColor:n.getColor(t.source.status)})},null,4)):(r.openBlock(),r.createElementBlock("i",{key:1,style:r.normalizeStyle({color:t.colorConfig.BackUp}),class:"iconfont icon-gw-icon-beiji2"},null,4))])):r.createCommentVNode("",!0),r.createElementVNode("span",Le,r.toDisplayString(t.source.title),1),t.source.isGroup&&!t.source.isEquip||t.source.isGroup&&!t.source.isEquip?(r.openBlock(),r.createElementBlock("span",Ae,r.toDisplayString(t.source.count),1)):r.createCommentVNode("",!0),t.source.isGroup&&t.showOperate?(r.openBlock(),r.createBlock(u,{key:3,source:t.source,groupEditAndNew:t.groupEditAndNew,deleteGroup:t.deleteGroup},null,8,["source","groupEditAndNew","deleteGroup"])):r.createCommentVNode("",!0),t.source.loading?(r.openBlock(),r.createElementBlock("span",ze)):r.createCommentVNode("",!0)])])],2)}const Re=L(Te,[["render",Be]]),De={components:{VirtualList:ye},mixins:[Z],data(){return{itemComponent:Re,visibleList:[],currentSelect:-1,equipStatusManage:null,cacheManage:null,searchManage:null,equipNumManage:null,requestManage:null,checkStatusManage:null,groupNodeObject:{},nodesMap:{},equipCheckObject:{},equipStatusObject:{},controlObject:{},isSearchStatus:!1,equipControllObject:{},expandGroup:[],updateJob:null,filterEquipList:[]}},props:{data:{type:Array},selectEquips:{type:[Array,Object],default:()=>[]},controllList:{type:Array,default:()=>[]},showSettings:{type:Boolean,default:!1},showSelectNum:{type:Boolean,default(){return!1}},showCheckbox:{type:Boolean,default:!1},showStatus:{type:Boolean,default:!1},filterEquip:{type:Boolean,default:!1},showOperate:{type:Boolean,default:!1},defaultExpandAll:{type:Boolean,default:!1},currentNodeKey:[String,Number],colorConfig:{type:Object,default:()=>({noComm:"#a0a0a0",normal:"#63e03f",alarm:"#f22433",lsSet:"#bebcaa",initialize:"#289ac0",withdraw:"#ffc0cb",BackUp:"#f8901c"})},treeType:{type:String,default:""},buildTree:{type:Function,default:()=>{}},filterData:{type:Function,default:()=>{}},alias:{type:String,default:""}},watch:{data(s){s&&s.length&&(k.flattern(this.data,this.groupNodeObject),this.cacheManage.addNodesMap(Object.values(this.groupNodeObject).map(e=>e)),this.init())},controllList(s){this.updateCheckedStatusWithControls()},selectEquips(s){this.updateCheckedStatusWithEquips(),this.$nextTick(()=>{this.checkStatusManage&&this.checkStatusManage.updateGroupCheckStatus()})},filterEquip(s){this.$nextTick(()=>{this.visibleList=[],this.$refs.virtualList.scrollToIndex(0),this.updateTreeList(this.data),this.equipNumManage.resetGroupNum(this.isSearchStatus,s,this.equipStatusObject)})}},computed:{aliasName(){return this.alias?`-${this.alias}`:""}},created(){this.showCheckbox&&(this.checkStatusManage=new ke(this.groupNodeObject,this.nodesMap,this.equipControllObject,this.controlObject,this.equipCheckObject,this.aliasName)),this.cacheManage=new qe(this.groupNodeObject,this.nodesMap,this.controlObject,this.equipCheckObject),this.searchManage=new Ge(this.groupNodeObject,this.showSettings,this.aliasName),this.equipNumManage=new Ne(this.groupNodeObject,this.aliasName),this.requestManage=new Me(this.nodesMap,this.equipControllObject)},mounted(){this.updateCheckedStatusWithControls(),this.updateCheckedStatusWithEquips(),window.addEventListener("message",s=>{s.data.type&&this[s.data.type]&&this[s.data.type](s.data.data)})},methods:{init(){this.data[0].expand=!0,this.updateTreeList(),setTimeout(()=>{Object.values(this.groupNodeObject).forEach((s,e)=>{!s.expand&&this.expandGroup.includes(s.key)&&(s.expand=!0),this.filterWithAlias(s.key),this.updateGroupEquips(s.key,!0)}),this.showCheckbox&&this.checkStatusManage&&this.checkStatusManage.updateGroupCheckStatus(),this.showStatus&&!this.equipStatusManage&&(this.equipStatusManage=new Ee(this.nodesMap,this.equipStatusObject,this.groupNodeObject,this.statusChange,this.aliasName))},500)},filterWithAlias(s){if(this.aliasName){let e=this.window[`group-${s}`]||[];this.window[`group-${s}${this.aliasName}`]=this.filterData(e)}},updateCurrentSelect(){this.window.equipCache&&this.window.equipCache[this.currentNodeKey]&&(this.currentSelect=`${this.window.equipCache[this.currentNodeKey].groupId}-${this.currentNodeKey}`)},statusChange(s,e,t){this.currentSelect==`${s}-${e}`&&this.$emit("statusChange",e,t)},updateCheckWidthJob(){this.showCheckbox&&(this.checkStatusManage.resetCheckedStatus(),this.updateCheckedStatusWithControls(),this.updateCheckedStatusWithEquips(),this.checkStatusManage&&this.checkStatusManage.updateGroupCheckStatus())},updateGroupEquips(s,e){if(!this.isSearchStatus&&this.groupNodeObject[s]){let t=this.equipNumManage.getAllEquipsNum();this.$emit("getTotal",t)}this.equipNumManage.resetGroupNum(this.isSearchStatus,this.filterEquip,this.equipStatusObject),this.groupNodeObject[s].expand&&this.updateList(s,this.groupNodeObject[s].level,null,!1)},updateList(s){if(this.groupNodeObject[s]){let e=[];this.isSearchStatus?(e=this.window[`group-${s}-search`],this.groupNodeObject[s].equips=[...k.deepClone(e,Number(this.groupNodeObject[s].level)+1,this.showSettings,s,this.equipCheckObject,this.equipStatusObject)]):(e=this.window[`group-${s}${this.aliasName}`],this.groupNodeObject[s].equips=[...k.deepClone(e,Number(this.groupNodeObject[s].level)+1,this.showSettings,s,this.equipCheckObject,this.equipStatusObject)]),this.cacheManage.addNodesMap(this.groupNodeObject[s].equips),this.cacheManage.closeBrotherNode(s),this.visibleList=[],this.updateTreeList(this.data),this.showCheckbox&&this.checkStatusManage&&e&&e.length&&this.checkStatusManage.updateGroupCheckStatus(),this.showStatus&&this.equipStatusManage&&this.equipStatusManage.updateGroupStatus(s),this.updateCurrentSelect()}},updateTreeList(s){s&&s.length>0&&s.forEach(e=>{this.filterEquip&&e.status===2?this.filterEquipList.includes(e.equipNo)||this.visibleList.push(e):this.filterEquip||this.visibleList.push(e),e.expand?e.isEquip?(e.children||(e.children=[]),e.settings&&(e.children=[...e.settings||[]])):e.children=[...e.equips||[],...e.groups||[]]:e.children=[],this.updateTreeList(e.children||[])})},nodeClick(s,e,t,i){this.$emit("node-click",{...s,key:s.isEquip?s.equipNo:s.key}),s.isGroup?s.isEquip?this.equipClick(s,e,i):this.groupClick(s,e,i):this.currentSelect=s.key},groupClick(s,e,t){s.expand?this.updateList(s.key,s.level,e,t):(this.cacheManage.recycleGroupCache(s.key),this.visibleList=[],this.updateTreeList(this.data))},async equipClick(s,e,t){this.showSettings&&(s.expand?(s.loading=!0,await this.requestManage.getSetting(s.key,s.title,s.level,t),this.controlObject[`${s.groupId}-${s.equipNo}`]={groupId:s.groupId},s.loading=!1,this.visibleList.splice(e+1,0,...this.nodesMap[s.key].settings),this.cacheManage.addNodesMap(this.nodesMap[s.key].settings)):(this.visibleList.splice(e+1,this.nodesMap[s.key].settings.length),this.cacheManage.removeNodesMap(this.nodesMap[s.key].settings),this.nodesMap[s.key].settings=[],delete this.controlObject[`${s.groupId}-${s.equipNo}`]))},onChecked(s){this.checkStatusManage&&this.checkStatusManage.onChecked(s,this.isSearchStatus),this.$emit("onCheck")},groupEditAndNew(s,e){this.$emit("groupEditAndNew",{isGroupNew:s,node:e})},deleteGroup(s){this.$emit("deleteGroup",s)},updateCheckedStatusWithControls(){this.controllList&&this.controllList.length&&this.checkStatusManage&&this.checkStatusManage&&this.checkStatusManage.updateCheckedStatusWithControls(this.controllList)},updateCheckedStatusWithEquips(){if(!this.checkStatusManage||!this.selectEquips)return;(Array.isArray(this.selectEquips)?this.selectEquips.length>0:Object.keys(this.selectEquips).length>0)&&(this.checkStatusManage.updateCheckedStatusWithEquips(this.selectEquips),this.checkStatusManage.updateGroupCheckStatus())},resetCheckedStatus(){this.checkStatusManage&&this.checkStatusManage.resetCheckedStatus()},getEquipSelectd(){return this.checkStatusManage&&this.checkStatusManage.getEquipSelectd()},getEquipGroupSelectd(){return this.checkStatusManage&&this.checkStatusManage.getEquipGroupSelectd()},getControlSelected(){return this.checkStatusManage&&this.checkStatusManage.getControlSelected()},recordExpandGroup(){this.expandGroup=[],Object.values(this.groupNodeObject).forEach(s=>{s.expand&&this.expandGroup.push(s.key)})},removeExpandGroup(){this.$nextTick(()=>{this.expandGroup=[]})},filterMethod(s){this.visibleList=[],this.cacheManage.recycleAllNodeCache(),s?(this.isSearchStatus=!0,this.searchManage.filterMethod(s)):this.isSearchStatus=!1,this.init(),this.$nextTick(()=>{this.$refs.virtualList.scrollToIndex(0)}),this.equipNumManage.resetGroupNum(this.isSearchStatus,this.filterEquip,this.equipStatusObject),this.showCheckbox&&(this.checkStatusManage&&this.checkStatusManage.reComputedCheckNum(this.isSearchStatus),this.checkStatusManage&&this.checkStatusManage.updateGroupCheckStatus())},rebuildTree(){this.recordExpandGroup(),this.checkStatusManage&&this.checkStatusManage.resetCheckedStatus(),this.cacheManage.recycleAllNodeCache(!0),this.$nextTick(()=>{this.buildTree(),this.removeExpandGroup()})},destroyTree(){this.cacheManage.recycleAllNodeCache(!0),this.visibleList=[],this.updateTreeList(this.data)},GetGroupEquips(s){s.groupId&&this.groupNodeObject[s.groupId]&&!this.isSearchStatus&&(this.updateGroupEquips(s.groupId,!0),this.updateJob&&clearTimeout(this.updateJob),this.updateJob=setTimeout(()=>{this.equipNumManage.resetGroupNum(this.isSearchStatus,this.filterEquip,this.equipStatusObject),this.updateCheckWidthJob()},500))},DeleteEquip(s){const{groupId:e,equips:t}=s||{};e&&this.groupNodeObject[e]&&(this.updateGroupEquips(s.groupId),this.equipNumManage.resetGroupNum(),this.checkStatusManage&&this.checkStatusManage.resetCheckedStatus()),t.length&&t.forEach(i=>{let o=this.nodesMap[`${e}-${i.id}`];o&&(this.currentSelect.toString().includes(i.id)&&this.$emit("currentDelete"),this.showStatus&&(o.status==2?this.equipStatusManage.setGroupStatus(e,!1,2):o.status==6&&this.equipStatusManage.setGroupStatus(e,!1,6)),delete this.nodesMap[`${e}-${i.id}`],delete this.equipCheckObject[i.id]),delete this.equipStatusObject[i.id]})},MoveEquips(s){const{updateGroups:e,buildTree:t}=s||{};!t&&e?e.forEach(i=>{i&&this.groupNodeObject[i]&&(this.updateGroupEquips(i),this.equipNumManage.resetGroupNum(),this.checkStatusManage&&this.checkStatusManage.resetCheckedStatus())}):t&&this.rebuildTree()},DeleteEquipGroup(s){s.forEach(e=>{e.groupId&&this.nodesMap[e.groupId]&&(this.isSearchStatus||this.rebuildTree())})},AddEquipGroup(s){const{parentGroupId:e,groupId:t}=s||{};t&&this.nodesMap[e]&&this.treeType&&(this.isSearchStatus||this.rebuildTree())},EditEquipGroup(s){const{groupId:e,groupName:t}=s;this.nodesMap[e]&&(this.nodesMap[e].title=t)},AddEquip(s){const{groupId:e}=s||{};this.filterEquip&&(this.filterEquipList=s==null?void 0:s.equips.map(t=>t.id)),e&&this.groupNodeObject[e]&&!this.isSearchStatus?(this.updateGroupEquips(e,!0),this.updateJob&&clearTimeout(this.updateJob),this.updateJob=setTimeout(()=>{this.updateCheckWidthJob()},500)):e&&!this.isSearchStatus&&this.rebuildTree()},EditEquip(s){const{equipNo:e,groupId:t,equipName:i}=s||{};this.nodesMap[`${t}-${e}`]&&(this.isSearchStatus||(this.nodesMap[`${t}-${e}`].title=i))},childrenResetGroupNum(s){this.equipNumManage.resetGroupNum(s,this.filterEquip,this.equipStatusObject)},getEquipStatus(s){return this.equipStatusManage.equipStatusObject[s]}}},Fe={class:"gw-tree",style:{height:"100%"}},Ve={class:"tree",style:{height:"100%"}};function Pe(s,e,t,i,o,n){const a=r.resolveComponent("virtual-list",!0);return r.openBlock(),r.createElementBlock("div",Fe,[r.createElementVNode("div",Ve,[r.createVNode(a,{ref:"virtualList",class:"virtualList","data-key":"key","data-sources":o.visibleList,"data-component":o.itemComponent,keeps:40,"extra-props":{currentSelect:o.currentSelect,nodeClick:n.nodeClick,showStatus:t.showStatus,filterEquip:t.filterEquip,showSettings:t.showSettings,showCheckbox:t.showCheckbox,onChecked:n.onChecked,showOperate:t.showOperate,groupEditAndNew:n.groupEditAndNew,deleteGroup:n.deleteGroup,colorConfig:t.colorConfig,childrenResetGroupNum:n.childrenResetGroupNum,getEquipStatus:n.getEquipStatus}},null,8,["data-sources","data-component","extra-props"])])])}const Ue=L(De,[["render",Pe]]);class Ke{constructor(){this.alreadyUpdate={},this.notify=null,this.window=window;try{window.top.equipGroup,this.window=window.top}catch{this.window=window}this.eGroupNotify=new te({url:ee(),hub:"eGroupNotify",userName:sessionStorage.userName,autoConnect:!1})}stop(){this.notify&&this.notify.disconnect(),this.eGroupNotify&&this.eGroupNotify.destroy()}Init(){this._initSocketIO()}_initSocketIO(){this.eGroupNotify.connect().then(e=>{this.notify=e;try{this.eGroupNotify.invoke("GetEquipGroupTree",{}),this.eGroupNotify.invoke("GetAllEquipGroupTree",{}),this.eGroupNotify.invoke("GetGroupEquips",{})}catch(t){console.log(t)}this.subscribeTo(this.eGroupNotify,"GetEquipGroupTree"),this.subscribeTo(this.eGroupNotify,"AddEquipGroup"),this.subscribeTo(this.eGroupNotify,"EditEquipGroup"),this.subscribeTo(this.eGroupNotify,"DeleteEquipGroup"),this.subscribeTo(this.eGroupNotify,"GetGroupEquips"),this.subscribeTo(this.eGroupNotify,"AddEquip"),this.subscribeTo(this.eGroupNotify,"DeleteEquip"),this.subscribeTo(this.eGroupNotify,"EditEquip"),this.subscribeTo(this.eGroupNotify,"MoveEquips"),this.subscribeTo(this.eGroupNotify,"CopyEquips"),this.subscribeTo(this.eGroupNotify,"GetAllEquipGroupTree")}).catch(e=>{console.error(e)})}_initSignalR(){this.eGroupNotify.connect().then(e=>{try{e.invoke("GetEquipGroupTree"),e.invoke("GetAllEquipGroupTree"),e.invoke("GetGroupEquips")}catch(t){console.log(t)}this.subscribeTo(this.eGroupNotify,"GetEquipGroupTree"),this.subscribeTo(this.eGroupNotify,"AddEquipGroup"),this.subscribeTo(this.eGroupNotify,"EditEquipGroup"),this.subscribeTo(this.eGroupNotify,"DeleteEquipGroup"),this.subscribeTo(this.eGroupNotify,"GetGroupEquips"),this.subscribeTo(this.eGroupNotify,"AddEquip"),this.subscribeTo(this.eGroupNotify,"DeleteEquip"),this.subscribeTo(this.eGroupNotify,"EditEquip"),this.subscribeTo(this.eGroupNotify,"MoveEquips"),this.subscribeTo(this.eGroupNotify,"CopyEquips"),this.subscribeTo(this.eGroupNotify,"GetAllEquipGroupTree")}).catch(e=>{console.error(e)})}subscribeTo(e,t){e.off(t),e.on(t,i=>{{const o=i==null?void 0:i.data;o&&o.isSuccess&&(this[t]?this[t](o.data):this.notice({func:t,data:o.data,key:o.groupId}))}})}GetEquipGroupTree(e){this.window.groupList||(this.window.groupList=e,this.notice({type:"GetEquipGroupTree"}))}GetAllEquipGroupTree(e){this.window.groupList_manageMent||(this.window.groupList_manageMent=e,this.notice({type:"GetEquipGroupTreeWidthTreeType"}))}AddEquipGroup(e){const{parentGroupId:t,groupId:i,groupName:o}=e||{};i&&(this.window.groupList_manageMent||(this.window.groupList_manageMent=[]),this.window.groupList_manageMent.push({parentId:t,id:i,name:o,equipCount:0}),this.notice({type:"AddEquipGroup",data:e}))}EditEquipGroup(e){const{groupId:t,groupName:i}=e;this.window.groupList&&window.groupList.forEach(o=>{o.id==t&&(o.name=i)}),this.window.groupList_manageMent&&window.groupList_manageMent.forEach(o=>{o.id==t&&(o.name=i)}),this.notice({type:"EditEquipGroup",data:e})}deleteChildGroup(e,t){let i=[];t.forEach(o=>{o.parentId==e&&i.push(o.id)}),i.forEach(o=>{let n=t.findIndex(a=>a.id==o);n>-1&&t.splice(n,1),this.deleteChildGroup(o,t)})}DeleteEquipGroup(e){e.forEach(t=>{if(this.window.groupList){let i=this.window.groupList.findIndex(o=>o.id==t.groupId);i>-1&&this.window.groupList.splice(i,1),this.deleteChildGroup(t.groupId,this.window.groupList)}if(this.window.groupList_manageMent){let i=this.window.groupList_manageMent.findIndex(o=>o.id==t.groupId);i>-1&&this.window.groupList_manageMent.splice(i,1),this.deleteChildGroup(t.groupId,this.window.groupList_manageMent)}}),this.notice({type:"DeleteEquipGroup",data:e})}GetGroupEquips(e){const{groupId:t,equips:i}=e||{};this.alreadyUpdate[t]||(this.window.groupCache||(this.window.groupCache={}),this.window.groupCache[t]={},t&&i&&i instanceof Array&&(i.forEach(o=>{o.title=o.name,o.groupId=t,o.equipNo=o.id,this.window.equipCache||(this.window.equipCache={}),this.window.equipCache[o.id]=o,this.window.groupCache[t][o.id]=o}),this.window[`group-${t}`]=i,this.notice({type:"GetGroupEquips",data:{groupId:t}}),this.alreadyUpdate[t]=!0))}AddEquip(e){const{groupId:t,equips:i}=e||{};this.window[`group-${t}`]||(this.window[`group-${t}`]=[]),this.window.groupCache||(this.window.groupCache={}),this.window.groupCache[t]||(this.window.groupCache[t]={}),this.window.equipCache||(this.window.equipCache={});let o=this.window[`group-${t}`].length;if(t&&i){if(i.forEach((n,a)=>{this.window[`group-${t}`].push({equipNo:n.id,groupId:t,id:n.id,title:n.name}),this.window.equipCache[n.id]=this.window[`group-${t}`][o+a],this.window.groupCache[t][n.id]=this.window[`group-${t}`][o+a]}),!this.exist(t,this.window.groupList)){let n=this.findParentList(t,this.window.groupList_manageMent);this.window.groupList.push(...n)}this.notice({type:"AddEquip",data:e})}}MoveEquips(e){let t=[],i=!0,o=[];const{sourceGroup:n,targetGroupId:a}=e||{};a&&t.push(a),n.forEach(u=>{if(t.push(u.groupId),(!this.window[`group-${a}`]||!this.window[`group-${a}`].length)&&(this.window[`group-${a}`]=[],o.push(a)),this.window.groupCache||(this.window.groupCache={}),this.window.groupCache[a]||(this.window.groupCache[a]={}),u.equips.forEach(h=>{if(!h.name&&this.window.equipCache&&this.window.equipCache[h.id]&&(h.name=this.window.equipCache[h.id].title||this.window.equipCache[h.id].name),h.title=h.name||"",h.groupId=a,h.equipNo=h.id,this.window[`group-${u.groupId}`]){let c=this.window[`group-${u.groupId}`].findIndex(l=>l.id==h.id);c>-1&&this.window[`group-${u.groupId}`].splice(c,1)}this.window.equipCache||(this.window.equipCache={}),this.window.equipCache[h.id]=h,this.window.groupCache[a][h.id]=h,this.window[`group-${a}`].push(h)}),!this.window[`group-${u.groupId}`].length){let h=this.window.groupList.findIndex(c=>c.id==u.groupId);h>-1&&this.window.groupList.splice(h,1),this.deleteChildGroup(u.groupId,this.window.groupList)}}),o.forEach(u=>{if(!this.exist(u,this.window.groupList)){let h=this.findParentList(u,this.window.groupList_manageMent);this.window.groupList.push(...h)}}),this.notice({type:"MoveEquips",data:{updateGroups:t,buildTree:i}})}CopyEquips(e){const{targetGroupId:t,equips:i}=e||{};if(!t||!i||!Array.isArray(i)){console.warn("CopyEquips: 无效的数据格式",e);return}let o=[t],n=[];this.window[`group-${t}`]||(this.window[`group-${t}`]=[],n.push(t)),this.window.groupCache||(this.window.groupCache={}),this.window.groupCache[t]||(this.window.groupCache[t]={}),this.window.equipCache||(this.window.equipCache={}),i.forEach(a=>{!a.name&&this.window.equipCache&&this.window.equipCache[a.id]&&(a.name=this.window.equipCache[a.id].title||this.window.equipCache[a.id].name);const u={id:a.id,equipNo:a.id,groupId:t,title:a.name||"",name:a.name||""};this.window.equipCache[a.id]=u,this.window.groupCache[t][a.id]=u,this.window[`group-${t}`].push(u)}),n.forEach(a=>{if(!this.exist(a,this.window.groupList)){let u=this.findParentList(a,this.window.groupList_manageMent);this.window.groupList.push(...u)}}),this.notice({type:"MoveEquips",data:{updateGroups:o,buildTree:!1,targetGroupId:t,equipCount:i.length}})}exist(e,t){return t?t.some(i=>i.id==e):!1}findParentList(e,t){let i=[];if(t){let o=t.findIndex(n=>n.id==e);o>-1&&i.push({...t[o]}),t[o].parentId&&!this.exist(t[o].parentId,this.window.groupList)&&i.push(...this.findParentList(t[o].parentId,this.window.groupList_manageMent))}return i}DeleteEquip(e){const{groupId:t,equips:i}=e||{};if(t&&i&&i instanceof Array){if(this.window[`group-${t}`])for(let o=0,n=i.length;o<n;o++){let a=this.window[`group-${t}`].findIndex(u=>u.id==i[o].id);a>-1&&this.window[`group-${t}`].splice(a,1),delete this.window.equipCache[i[o].id],delete this.window.groupCache[t][i[o].id]}this.notice({type:"DeleteEquip",data:e})}}EditEquip(e){const{equipNo:t,groupId:i,equipName:o}=e||{};i&&t&&(window[`group-${i}`]&&(this.window.equipCache[t]=o),this.notice({type:"EditEquip",data:e}))}notice(e){if(this.window.hasIframe){let t=document.getElementsByTagName("iframe");for(let i of t)i.contentWindow.postMessage(e)}else window.postMessage(e,"*")}}const He={name:"treeV2",components:{tree:Ue},mixins:[Z],data(){return{list:[],refId:k.generateUUID(),treeKey:null,listKey:null,hasBuildTree:!1}},props:{treeType:{type:String,default:""}},mounted(){this.treeKey=`equipGroup${this.treeType}`,this.listKey=`groupList${this.treeType}`,this.window[this.treeKey]?this.list=k.formateList(JSON.parse(JSON.stringify(this.window[this.treeKey]))):this.window[this.listKey]&&this.buildTree(),window.executeQueue||(window.executeQueues={}),window.executeQueues[this.refId]=this.destroyTree,window.addEventListener("message",s=>{s&&s.data&&s.data.type&&this[s.data.type]&&this[s.data.type](s.data.data)});try{this.window.hasIframe||this.selfRequest()}catch{this.selfRequest()}},methods:{selfRequest(){new Ke().Init()},GetEquipGroupTreeWidthTreeType(){this.treeType&&this.window[this.listKey]&&this.buildTree()},GetEquipGroupTree(){!this.treeType&&this.window[this.listKey]&&this.buildTree()},AddEquip(s){const{groupId:e}=s||{};this.window[this.listKey]&&(!e||!this.$refs[this.refId]||!this.$refs[this.refId].groupNodeObject[e])&&this.buildTree()},buildTree(){if(this.window[this.listKey]){let s=k.listToTreeList(JSON.parse(JSON.stringify(this.window[this.listKey])));this.list=k.formateList(JSON.parse(JSON.stringify(s))),this.window[`equipGroup${this.treeType}`]=s,this.hasBuildTree=!0}},filterMethod(s){this.$refs[this.refId].filterMethod(s)},resetCheckedStatus(){this.$refs[this.refId].resetCheckedStatus()},getEquipSelectd(){return this.$refs[this.refId].getEquipSelectd()},getEquipGroupSelectd(){return this.$refs[this.refId].getEquipGroupSelectd()},getControlSelected(){return this.$refs[this.refId].getControlSelected()},destroyTree(){this.$refs[this.refId].destroyTree()}}};function We(s,e,t,i,o,n){const a=r.resolveComponent("tree");return r.openBlock(),r.createBlock(a,r.mergeProps({ref:o.refId,data:o.list},{...s.$attrs,...s.$props},r.toHandlers(s.$listeners),{buildTree:n.buildTree}),null,16,["data","buildTree"])}const A=L(He,[["render",We]]);return A.install=function(s){s.component(A.name,A)},A});
@@ -0,0 +1 @@
1
+ @charset "UTF-8";.gw-tree{height:100%;font-size:14px;color:var(--tree-node-color)}.gw-tree .el-icon-more{transform:rotate(90deg)}.gw-tree .el-tree__indent{flex-shrink:0}.gw-tree .nodeContent{display:flex;justify-content:flex-start;align-items:center;width:calc(100% - 30px)}.gw-tree .nodeContent .label{line-height:30px;flex:1;word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gw-tree .el-tree-node__expand-icon{padding:0!important}.gw-tree .hover-add-width{width:calc(100% + 8px)!important}.gw-tree .hover-add-width .el-tree-node{width:calc(100% - 12px)!important;position:relative}.gw-tree .notAllow{cursor:not-allowed!important}.gw-tree .el-tree-node{height:36px;position:relative}.gw-tree .el-tree-node .block{width:100%;height:100%;position:absolute;top:0;left:0;z-index:10;cursor:not-allowed}.gw-tree .virtualList{height:100%;overflow-y:auto;overflow-x:hidden}.gw-tree .el-loading-mask{visibility:visible!important}.gw-tree .el-tree__empty-block .el-tree__empty-text{color:var(--frame-main-color-1);display:flex;justify-content:center;align-items:center;font-size:18px}.gw-tree .selectNum{height:36px;line-height:36px;padding-left:20px;color:var(--tree-node-color);font-size:14px}.gw-tree .el-checkbox{margin-right:10px!important}.gw-tree .circle{width:14px;height:14px;display:flex;justify-content:center;align-items:center;margin-right:5px}.gw-tree .circle .yd{width:10px;height:10px;border-radius:50%;display:inline-block}.gw-tree .circle .iconfont{font-size:14px}.gw-tree .el-tree-node__content:hover{background-color:unset!important}.gw-tree>div .el-tree-node:hover{background-color:var(--tree-node-background_hover);border-top-right-radius:3px;border-bottom-right-radius:3px}.gw-tree>div .el-tree-node:hover>.el-tree-node__content>.nodeContent .el-tree-node__label{color:var(--tree-node-color__select)}.gw-tree .el-tree-node.selectedColor{border-left:4px solid var(--tree-node-border__select);background-color:var(--tree-node-background_select)}.gw-tree .el-tree-node.selectedColor .nodeContent .el-tree-node__label{color:#3875ff}.gw-tree .el-tree-node{-webkit-user-select:none;user-select:none}.gw-tree .el-tree-node__content{width:100%;height:100%!important;display:flex}.gw-tree .el-tree-node__content .nodeContent{flex:1;height:100%;display:flex;align-items:center;border-radius:3px}.gw-tree .el-tree-node__content .nodeContent .equipNumber{margin:0 12px}.gw-tree .el-tree-node__content .nodeContent .icon-gw-icon-yijian{width:16px;height:16px;margin-right:18px;opacity:0}.gw-tree .el-tree-node__content .nodeContent .icon-gw-icon-yijian path{fill:var(--tree-node-color)}.gw-tree .el-tree-node__content .nodeContent:hover .icon-gw-icon-yijian{opacity:1}.gw-tree .el-tree-node__content .nodeContent .el-tree-node__label{flex:1}.gw-tree .el-tree-node__content .nodeContent .expanded,.gw-tree .el-tree-node__content .nodeContent .el-tree-node__expand-icon{color:var(--tree-node-color)}.gw-tree .el-tree-node:focus>.el-tree-node__content{background-color:unset!important}.gw-tree .el-tree-node__expand-icon{margin:10px}.gw-tree .child_tags{position:relative;width:auto;height:36px;display:flex;flex-direction:row;justify-content:flex-start;align-items:center;line-height:30px;white-space:nowrap;text-overflow:ellipsis;color:var(--tre-node-color);cursor:pointer;border-left:4px solid transparent}.gw-tree .child_tags .nodeContent{padding-left:18px;background-size:.5px 12px;background-repeat:repeat-y;background-position:left}[data-theme=light] .gw-tree .child_tags .nodeContent{background-image:linear-gradient(to bottom,#979797 50%,#979797 50%,transparent 50%)}[data-theme=dark] .gw-tree .child_tags .nodeContent{background-image:linear-gradient(to bottom,#494D57 50%,#494D57 50%,transparent 50%)}.gw-tree .child_tags>label{margin-left:10px}.gw-tree .child_tags .icondian{font-size:.8rem;color:#8c8c8c;pointer-events:none}.gw-tree .child_tags a{font-size:14px;height:40px;line-height:40px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:72%}.operates .icon-_gengduo{color:var(--button-primary-color)}.setModule{display:flex;flex-direction:column;justify-content:left}.setModule .el-button{height:32px;display:flex;justify-content:left}.setModule .el-button span{color:var(--button-primary-color)}.setModule .el-button span i{margin-right:10px}.setModule .el-button:hover{border-radius:2px;background-color:var(--btn-selectBgColor)}.setModule .el-button:hover span{color:#fff}.setModule .delete-btn span{color:var(--gw-color-danger)}.setModule .delete-btn:hover{color:#fff}
@@ -0,0 +1,82 @@
1
+ <template>
2
+ <span class="file-preview">
3
+ <el-button v-if="isPreview" type="primary" link @click="handlePreview">
4
+ 预览
5
+ </el-button>
6
+ <el-button v-if="isDownload" type="primary" link @click="handleDownload">
7
+ 下载
8
+ </el-button>
9
+ </span>
10
+ </template>
11
+
12
+ <script setup>
13
+ import { Base64 } from 'js-base64'
14
+
15
+ const props = defineProps({
16
+ // 文件地址
17
+ url: {
18
+ type: String,
19
+ required: true
20
+ },
21
+ // 文件地址的域名前缀,未传入时默认使用当前站点 origin
22
+ fileDomain: {
23
+ type: String,
24
+ default: ''
25
+ },
26
+ // 是否显示预览按钮
27
+ isPreview: {
28
+ type: Boolean,
29
+ default: false
30
+ },
31
+ // 是否显示下载按钮
32
+ isDownload: {
33
+ type: Boolean,
34
+ default: false
35
+ }
36
+ })
37
+
38
+ // 从 localStorage.webConfig 读取预览服务域名
39
+ function getPreviewDomain() {
40
+ try {
41
+ const webConfig = JSON.parse(localStorage.getItem('webConfig') || '{}')
42
+ return webConfig?.httpConfig?.configPreviewDomain || ''
43
+ } catch (e) {
44
+ return ''
45
+ }
46
+ }
47
+
48
+ // 预览:使用预览服务器打开文件
49
+ function handlePreview() {
50
+ const domain = getPreviewDomain().replace(/\/+$/, '') || ""
51
+ if (!domain) {
52
+ console.warn('[file-preview] 未配置预览服务域名')
53
+ return
54
+ }
55
+ // 文件地址需带上域名:优先使用外部传入的域名,否则使用当前站点 origin
56
+ const fileDomain = (props.fileDomain || window.location.origin).replace(/\/+$/, '')
57
+ const fileUrl = /^https?:\/\//i.test(props.url)
58
+ ? props.url
59
+ : `${fileDomain}/${String(props.url).replace(/^\/+/, '')}`
60
+ console.log('fileUrl', fileUrl)
61
+ const previewUrl = `${domain}/onlinePreview?url=${encodeURIComponent(Base64.encode(fileUrl))}`
62
+ window.open(previewUrl)
63
+ }
64
+
65
+ // 下载
66
+ function handleDownload() {
67
+ const filename = props.url.substring(props.url.lastIndexOf('/') + 1).split('?')[0]
68
+ const link = document.createElement('a')
69
+ link.href = props.url
70
+ link.download = filename
71
+ document.body.appendChild(link)
72
+ link.click()
73
+ document.body.removeChild(link)
74
+ }
75
+ </script>
76
+
77
+ <style scoped>
78
+ .file-preview {
79
+ display: inline-flex;
80
+ align-items: center;
81
+ }
82
+ </style>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ganwei-web/gw-base-components-plus",
3
- "version": "1.0.51",
3
+ "version": "1.0.53",
4
4
  "description": "components",
5
5
  "main": "./dist/index.es.js",
6
6
  "scripts": {