@utogether/utils 1.0.2 → 1.0.6
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.
- package/dist/utils.umd.js +1 -0
- package/package.json +7 -7
- package/dist/favicon.ico +0 -0
- package/dist/su-utils.es.js +0 -602
- package/dist/su-utils.es.js.map +0 -1
- package/dist/su-utils.umd.js +0 -2
- package/dist/su-utils.umd.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue"),require("xe-utils")):typeof define=="function"&&define.amd?define(["exports","vue","xe-utils"],t):(e=typeof globalThis!="undefined"?globalThis:e||self,t(e["@utogether/utils"]={},e.Vue,e.xeUtils))})(this,function(exports,vue,xeUtils){"use strict";function _isSlot(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!vue.isVNode(e)}const VxetableRender=(VXETable,{serviceApi,dict,i18n})=>{VXETable.renderer.add("#SuSelect",{renderItemContent(e,t){let n;const{data:r,property:o}=t,{options:s,props:c,optionProps:p={},events:l}=e,{label:u="label",value:i="value",extLabel:d}=p,{code:v,fetchField:g,extParam:a={},loading:_=!1}=c;async function b(h){const O=Object.assign({},{pageSize:20,pageNum:1},a,{[g]:h});let f;try{s.length=0,c.loading=!0,f=await serviceApi(v,O),f&&s.push(...f.list)}finally{c.loading=!1}}function w(h){const{fieldMap:O={}}=c,f=s.find(m=>h===m[i]),y=Object.keys(O);if(y.length){const m=Object.values(O);y.forEach((C,R)=>{r[C]=h?f[m[R]]:""})}l!=null&&l.change&&l.change(h,f,r,o)}function E(){l!=null&&l.clear&&l.clear({data:r,property:o})}function x(){!s.length&&b("")}return[vue.createVNode(vue.resolveComponent("el-select"),vue.mergeProps({modelValue:r[o],"onUpdate:modelValue":h=>r[o]=h},c,{filterable:!0,remote:!0,clearable:!0,size:"small",style:"width: 100%",placeholder:"\u8BF7\u5F55\u5165\u5173\u952E\u5B57\u641C\u7D22","remote-method":b,loading:_,onFocus:()=>x(),onChange:h=>w(h),onClear:()=>E()}),_isSlot(n=s.map(h=>vue.createVNode(vue.resolveComponent("el-option"),{key:h[i],label:h[u],value:h[i]},{default:()=>[vue.createVNode("span",{style:"float: left"},[h[d]?`${h[i]}-${h[d]}`:h[i]]),i!==u&&!h[d]?vue.createVNode("span",{class:"su-coSelect-option"},[h[u]]):null]})))?n:{default:()=>[n]})]}}),VXETable.renderer.add("#SuDateRange",{renderItemContent(e,t){const{data:n,property:r}=t,{props:o}=e;return[vue.createVNode(vue.resolveComponent("el-date-picker"),{modelValue:n[r],"onUpdate:modelValue":s=>n[r]=s,type:(o==null?void 0:o.type)||"daterange",size:"small",style:"width: 100%","range-separator":i18n("message.to",!0),"start-placeholder":i18n("message.startDate",!0),"end-placeholder":i18n("message.endDate",!0)},null)]}}),VXETable.renderer.add("#SuSelect",{renderEdit(e,t){let n;const{row:r,column:o}=t,{options:s,props:c,optionProps:p={},events:l}=e,{label:u="label",value:i="value",extLabel:d}=p,{code:v,fetchField:g,extParam:a={},loading:_=!1,multiple:b,defaultValue:w}=c;w&&Object.keys(w).forEach(y=>{r[y]=r[y]||w[y]}),b&&r[o.field]&&!xeUtils.isArray(r[o.field])&&r[o.field].split(",").forEach(f=>{!s.some(m=>m[u]===f)&&s.push({[i]:f,[u]:f})});async function E(f){const y=Object.assign({},{pageSize:20,pageNum:1},a,{[g||u]:f});let m;try{s.length=0,c.loading=!0,m=await serviceApi(v,y),m&&(m.list?s.push(...m.list):s.push(...m))}finally{c.loading=!1}}function x(f){const{fieldMap:y={}}=c,m=f&&s.find(R=>f===R[i]),C=Object.keys(y);if(C.length){const R=Object.values(y);C.forEach((V,S)=>{r[V]=f?m[R[S]]:""})}l!=null&&l.change&&l.change(t,f,m,o.field)}function h(){l!=null&&l.onClear&&l.onClear({row:r,field:o.field})}function O(){!s.length&&E("")}return[vue.createVNode(vue.resolveComponent("el-select"),vue.mergeProps({modelValue:r[o.field],"onUpdate:modelValue":f=>r[o.field]=f},c,{filterable:!0,remote:!0,clearable:!0,size:"small",placeholder:"\u8BF7\u5F55\u5165\u5173\u952E\u5B57\u641C\u7D22",style:"width: 100%","remote-method":E,loading:_,onFocus:()=>O(),onChange:f=>x(f),onClear:()=>h()}),_isSlot(n=s.map(f=>vue.createVNode(vue.resolveComponent("el-option"),{key:f[i],label:f[u],value:f[i]},{default:()=>[vue.createVNode("span",{style:"float: left"},[f[d]?`${f[i]}-${f[d]}`:f[i]]),i!==u&&!f[d]?vue.createVNode("span",{class:"su-coSelect-option"},[f[u]]):null]})))?n:{default:()=>[n]})]},renderCell(renderOpts,params){const{row,column}=params,{props}=renderOpts,{textValue,multiple}=props;let val=row[column.field];return textValue&&(val=eval(`row.${textValue}`)||row[column.field]),val&&multiple&&xeUtils.isArray(val)&&(val=val&&val.join(",")),[vue.createVNode("span",null,[val])]}}),VXETable.renderer.add("#select",{renderEdit(e,t){let n;const{row:r,column:o}=t,{options:s,props:c,optionProps:p={},events:l}=e,{label:u="label",value:i="value",extLabel:d}=p;c.multiple&&r[o.field]&&!xeUtils.isArray(r[o.field])&&r[o.field].split(",").forEach(a=>{!s.some(b=>b[u]===a)&&s.push({[i]:a,[u]:a})});function v(a){const _=a&&s.find(b=>a===b[i]);l!=null&&l.change&&l.change(t,a,_,o.field)}function g(){l!=null&&l.onClear&&l.onClear({row:r,field:o.field})}return[vue.createVNode(vue.resolveComponent("el-select"),vue.mergeProps({modelValue:r[o.field],"onUpdate:modelValue":a=>r[o.field]=a,filterable:!0,clearable:!0},c,{size:"small",style:"width: 100%",onChange:a=>v(a),onClear:()=>g()}),_isSlot(n=s.map(a=>vue.createVNode(vue.resolveComponent("el-option"),{key:a[i],label:a[d]?a[i]:a[u],value:a[i]},{default:()=>[vue.createVNode("span",{style:"float: left"},[d&&a[d]?`${a[i]}-${a[d]}`:a[i]]),i!==u&&!a[d]?vue.createVNode("span",{class:"su-coSelect-option"},[a[u]]):null]})))?n:{default:()=>[n]})]},renderCell(renderOpts,params){const{row,column}=params,{props,options,optionProps}=renderOpts,{label="label",value="value",extLabel}=optionProps,{textValue}=props;let val=row[column.field];const item=options.find(e=>e[value]===val);return textValue&&(val=eval(`row.${textValue}`)||row[column.field]),item&&(val=extLabel?item[value]:item[label]),val&&(props==null?void 0:props.multiple)&&xeUtils.isArray(val)&&(val=val&&val.join(",")),[vue.createVNode("span",null,[val])]}}),VXETable.renderer.add("#select",{renderItemContent(e,t){let n;const{data:r,property:o}=t,{options:s,props:c,optionProps:p={},events:l}=e,{label:u="label",value:i="value"}=p,{defaultValues:d}=c;d&&(r[o]=d);function v(a){const{fieldMap:_={}}=c,b=s.find(x=>a===x[i]),w=Object.keys(_);if(w.length){const x=Object.values(_);w.forEach((h,O)=>{r[h]=a?b[x[O]]:""})}const E={item:b,row:r,property:o};l!=null&&l.change&&l.change(E)}function g(){l!=null&&l.onClear&&l.onClear({data:r,field:o})}return[vue.createVNode(vue.resolveComponent("el-select"),vue.mergeProps({modelValue:r[o],"onUpdate:modelValue":a=>r[o]=a},c,{filterable:!0,clearable:!0,size:"small",style:"width: 100%",onChange:a=>v(a),onClear:()=>g()}),_isSlot(n=s.map(a=>vue.createVNode(vue.resolveComponent("el-option"),{key:a[i],label:a[u],value:a[i]},{default:()=>[vue.createVNode("span",{style:"float: left"},[a[u]]),vue.createVNode("span",{class:"su-coSelect-option"},[a[i]])]})))?n:{default:()=>[n]})]}}),VXETable.renderer.add("#tag",{renderDefault(e,t){let n;const{row:r,column:o}=t,{props:{code:s,tagMap:c}}=e;function p(){return r[o.field]?c[r[o.field]]:""}return[r[o.field]?vue.createVNode(vue.resolveComponent("el-tag"),{type:p()},_isSlot(n=getValue(s,r[o.field]))?n:{default:()=>[n]}):null]}});function getValue(e,t){var n,r,o;return!t||!e||!dict?t:(o=(r=(n=dict[e])==null?void 0:n.children)==null?void 0:r.find(s=>s.dictCode===t))==null?void 0:o.dictName}return VXETable};function useRafThrottle(e){let t=!1;return function(...n){t||(t=!0,window.requestAnimationFrame(()=>{e.apply(this,n),t=!1}))}}var MapShim=function(){if(typeof Map!="undefined")return Map;function e(t,n){var r=-1;return t.some(function(o,s){return o[0]===n?(r=s,!0):!1}),r}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(n){var r=e(this.__entries__,n),o=this.__entries__[r];return o&&o[1]},t.prototype.set=function(n,r){var o=e(this.__entries__,n);~o?this.__entries__[o][1]=r:this.__entries__.push([n,r])},t.prototype.delete=function(n){var r=this.__entries__,o=e(r,n);~o&&r.splice(o,1)},t.prototype.has=function(n){return!!~e(this.__entries__,n)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(n,r){r===void 0&&(r=null);for(var o=0,s=this.__entries__;o<s.length;o++){var c=s[o];n.call(r,c[1],c[0])}},t}()}(),isBrowser=typeof window!="undefined"&&typeof document!="undefined"&&window.document===document,global$1=function(){return typeof global!="undefined"&&global.Math===Math?global:typeof self!="undefined"&&self.Math===Math?self:typeof window!="undefined"&&window.Math===Math?window:Function("return this")()}(),requestAnimationFrame$1=function(){return typeof requestAnimationFrame=="function"?requestAnimationFrame.bind(global$1):function(e){return setTimeout(function(){return e(Date.now())},1e3/60)}}(),trailingTimeout=2;function throttle(e,t){var n=!1,r=!1,o=0;function s(){n&&(n=!1,e()),r&&p()}function c(){requestAnimationFrame$1(s)}function p(){var l=Date.now();if(n){if(l-o<trailingTimeout)return;r=!0}else n=!0,r=!1,setTimeout(c,t);o=l}return p}var REFRESH_DELAY=20,transitionKeys=["top","right","bottom","left","width","height","size","weight"],mutationObserverSupported=typeof MutationObserver!="undefined",ResizeObserverController=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=throttle(this.refresh.bind(this),REFRESH_DELAY)}return e.prototype.addObserver=function(t){~this.observers_.indexOf(t)||this.observers_.push(t),this.connected_||this.connect_()},e.prototype.removeObserver=function(t){var n=this.observers_,r=n.indexOf(t);~r&&n.splice(r,1),!n.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){var t=this.updateObservers_();t&&this.refresh()},e.prototype.updateObservers_=function(){var t=this.observers_.filter(function(n){return n.gatherActive(),n.hasActive()});return t.forEach(function(n){return n.broadcastActive()}),t.length>0},e.prototype.connect_=function(){!isBrowser||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),mutationObserverSupported?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!isBrowser||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(t){var n=t.propertyName,r=n===void 0?"":n,o=transitionKeys.some(function(s){return!!~r.indexOf(s)});o&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),defineConfigurable=function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var o=r[n];Object.defineProperty(e,o,{value:t[o],enumerable:!1,writable:!1,configurable:!0})}return e},getWindowOf=function(e){var t=e&&e.ownerDocument&&e.ownerDocument.defaultView;return t||global$1},emptyRect=createRectInit(0,0,0,0);function toFloat(e){return parseFloat(e)||0}function getBordersSize(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce(function(r,o){var s=e["border-"+o+"-width"];return r+toFloat(s)},0)}function getPaddings(e){for(var t=["top","right","bottom","left"],n={},r=0,o=t;r<o.length;r++){var s=o[r],c=e["padding-"+s];n[s]=toFloat(c)}return n}function getSVGContentRect(e){var t=e.getBBox();return createRectInit(0,0,t.width,t.height)}function getHTMLElementContentRect(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return emptyRect;var r=getWindowOf(e).getComputedStyle(e),o=getPaddings(r),s=o.left+o.right,c=o.top+o.bottom,p=toFloat(r.width),l=toFloat(r.height);if(r.boxSizing==="border-box"&&(Math.round(p+s)!==t&&(p-=getBordersSize(r,"left","right")+s),Math.round(l+c)!==n&&(l-=getBordersSize(r,"top","bottom")+c)),!isDocumentElement(e)){var u=Math.round(p+s)-t,i=Math.round(l+c)-n;Math.abs(u)!==1&&(p-=u),Math.abs(i)!==1&&(l-=i)}return createRectInit(o.left,o.top,p,l)}var isSVGGraphicsElement=function(){return typeof SVGGraphicsElement!="undefined"?function(e){return e instanceof getWindowOf(e).SVGGraphicsElement}:function(e){return e instanceof getWindowOf(e).SVGElement&&typeof e.getBBox=="function"}}();function isDocumentElement(e){return e===getWindowOf(e).document.documentElement}function getContentRect(e){return isBrowser?isSVGGraphicsElement(e)?getSVGContentRect(e):getHTMLElementContentRect(e):emptyRect}function createReadOnlyRect(e){var t=e.x,n=e.y,r=e.width,o=e.height,s=typeof DOMRectReadOnly!="undefined"?DOMRectReadOnly:Object,c=Object.create(s.prototype);return defineConfigurable(c,{x:t,y:n,width:r,height:o,top:n,right:t+r,bottom:o+n,left:t}),c}function createRectInit(e,t,n,r){return{x:e,y:t,width:n,height:r}}var ResizeObservation=function(){function e(t){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=createRectInit(0,0,0,0),this.target=t}return e.prototype.isActive=function(){var t=getContentRect(this.target);return this.contentRect_=t,t.width!==this.broadcastWidth||t.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var t=this.contentRect_;return this.broadcastWidth=t.width,this.broadcastHeight=t.height,t},e}(),ResizeObserverEntry=function(){function e(t,n){var r=createReadOnlyRect(n);defineConfigurable(this,{target:t,contentRect:r})}return e}(),ResizeObserverSPI=function(){function e(t,n,r){if(this.activeObservations_=[],this.observations_=new MapShim,typeof t!="function")throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=t,this.controller_=n,this.callbackCtx_=r}return e.prototype.observe=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element=="undefined"||!(Element instanceof Object))){if(!(t instanceof getWindowOf(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var n=this.observations_;n.has(t)||(n.set(t,new ResizeObservation(t)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element=="undefined"||!(Element instanceof Object))){if(!(t instanceof getWindowOf(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var n=this.observations_;!n.has(t)||(n.delete(t),n.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var t=this;this.clearActive(),this.observations_.forEach(function(n){n.isActive()&&t.activeObservations_.push(n)})},e.prototype.broadcastActive=function(){if(!!this.hasActive()){var t=this.callbackCtx_,n=this.activeObservations_.map(function(r){return new ResizeObserverEntry(r.target,r.broadcastRect())});this.callback_.call(t,n,t),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),observers=typeof WeakMap!="undefined"?new WeakMap:new MapShim,ResizeObserver=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=ResizeObserverController.getInstance(),r=new ResizeObserverSPI(t,n,this);observers.set(this,r)}return e}();["observe","unobserve","disconnect"].forEach(function(e){ResizeObserver.prototype[e]=function(){var t;return(t=observers.get(this))[e].apply(t,arguments)}});var index=function(){return typeof global$1.ResizeObserver!="undefined"?global$1.ResizeObserver:ResizeObserver}();const isServer=typeof window=="undefined",resizeHandler=e=>{for(const t of e){const n=t.target.__resizeListeners__||[];n.length&&n.forEach(r=>{r()})}},addResizeListener=(e,t)=>{isServer||(e.__resizeListeners__||(e.__resizeListeners__=[],e.__ro__=new index(resizeHandler),e.__ro__.observe(e)),e.__resizeListeners__.push(t))},removeResizeListener=(e,t)=>{!e||!e.__resizeListeners__||(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),e.__resizeListeners__.length||e.__ro__.disconnect())},domSymbol=Symbol("watermark-dom");function useWatermark(e=vue.ref(document.body)){const t=useRafThrottle(function(){const u=vue.unref(e);if(!u)return;const{clientHeight:i,clientWidth:d}=u;c({height:i,width:d})}),n=domSymbol.toString(),r=vue.shallowRef(),o=()=>{const u=vue.unref(r);r.value=void 0;const i=vue.unref(e);!i||(u&&i.removeChild(u),removeResizeListener(i,t))};function s(u,i){var _,b;const d=document.createElement("canvas"),v=260,g=180;Object.assign(d,{width:v,height:g});const a=d.getContext("2d");return a&&(a.rotate(-20*Math.PI/120),a.font=(_=i==null?void 0:i.font)!=null?_:"15px Reggae One",a.fillStyle=(b=i==null?void 0:i.fillStyle)!=null?b:"rgba(180, 180, 180, 0.75)",a.textAlign="left",a.textBaseline="middle",a.fillText(u,v/20,g)),d.toDataURL("image/png")}function c(u={}){const i=vue.unref(r);!i||(xeUtils.isUndefined(u.width)&&(i.style.width=`${u.width}px`),xeUtils.isUndefined(u.height)&&(i.style.height=`${u.height}px`),xeUtils.isUndefined(u.str)&&(i.style.background=`url(${s(u.str,u.attr)}) left top repeat`))}const p=(u,i)=>{if(vue.unref(r))return c({str:u,attr:i}),n;const d=document.createElement("div");r.value=d,d.id=n,d.style.pointerEvents="none",d.style.top="0px",d.style.left="0px",d.style.position="absolute",d.style.zIndex="100000";const v=vue.unref(e);if(!v)return n;const{clientHeight:g,clientWidth:a}=v;return c({str:u,width:a,height:g,attr:i}),v.appendChild(d),n};function l(u,i){p(u,i),addResizeListener(document.documentElement,t),vue.getCurrentInstance()&&vue.onBeforeUnmount(()=>{o()})}return{setWatermark:l,clear:o}}const hexList=[];for(let e=0;e<=15;e++)hexList[e]=e.toString(16);function buildUUID(){let e="";for(let t=1;t<=36;t++)t===9||t===14||t===19||t===24?e+="-":t===15?e+=4:t===20?e+=hexList[Math.random()*4|8]:e+=hexList[Math.random()*16|0];return e.replace(/-/g,"")}let unique=0;function buildShortUUID(e=""){const t=Date.now(),n=Math.floor(Math.random()*1e9);return unique++,e+"_"+n+unique+String(t)}const withInstall=e=>{const t=e;return t.install=n=>{n.component(t.name,e)},e};function sleep(e){return new Promise(t=>{const n=setTimeout(()=>{window.clearTimeout(n),t(e)},e)})}exports.VxetableRender=VxetableRender,exports.addResizeListener=addResizeListener,exports.buildShortUUID=buildShortUUID,exports.buildUUID=buildUUID,exports.removeResizeListener=removeResizeListener,exports.sleep=sleep,exports.useWatermark=useWatermark,exports.withInstall=withInstall,Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@utogether/utils",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.6",
|
|
5
5
|
"files": [
|
|
6
|
-
"dist"
|
|
6
|
+
"dist/utils.umd.js"
|
|
7
7
|
],
|
|
8
|
-
"main": "./dist/
|
|
9
|
-
"module": "./dist/
|
|
8
|
+
"main": "./dist/utils.umd.js",
|
|
9
|
+
"module": "./dist/utils.umd.js",
|
|
10
10
|
"exports": {
|
|
11
11
|
".": {
|
|
12
|
-
"import": "./dist/
|
|
13
|
-
"require": "./dist/
|
|
12
|
+
"import": "./dist/utils.umd.js",
|
|
13
|
+
"require": "./dist/utils.umd.js"
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
16
|
"license": "MIT",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"preview": "vite preview"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
+
"resize-observer-polyfill": "^1.5.1",
|
|
24
25
|
"vue": "^3.2.25",
|
|
25
|
-
"vue-i18n": "^9.1.10",
|
|
26
26
|
"vxe-table": "^4.2.3",
|
|
27
27
|
"xe-utils": "^3.5.4"
|
|
28
28
|
},
|
package/dist/favicon.ico
DELETED
|
Binary file
|
package/dist/su-utils.es.js
DELETED
|
@@ -1,602 +0,0 @@
|
|
|
1
|
-
import { inject, createVNode, resolveComponent, mergeProps, isVNode } from "vue";
|
|
2
|
-
import { useI18n } from "vue-i18n";
|
|
3
|
-
import { isArray, toStringJSON } from "xe-utils";
|
|
4
|
-
import { VXETable } from "vxe-table";
|
|
5
|
-
function _isSlot(s) {
|
|
6
|
-
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
|
|
7
|
-
}
|
|
8
|
-
const serviceApi = inject("serviceApi");
|
|
9
|
-
VXETable.renderer.add("#SuSelect", {
|
|
10
|
-
renderItemContent(renderOpts2, params2) {
|
|
11
|
-
let _slot;
|
|
12
|
-
const {
|
|
13
|
-
data,
|
|
14
|
-
property
|
|
15
|
-
} = params2;
|
|
16
|
-
const {
|
|
17
|
-
options: options2,
|
|
18
|
-
props: props2,
|
|
19
|
-
optionProps: optionProps2 = {},
|
|
20
|
-
events
|
|
21
|
-
} = renderOpts2;
|
|
22
|
-
const {
|
|
23
|
-
label: label2 = "label",
|
|
24
|
-
value: value2 = "value",
|
|
25
|
-
extLabel: extLabel2
|
|
26
|
-
} = optionProps2;
|
|
27
|
-
const {
|
|
28
|
-
code,
|
|
29
|
-
fetchField,
|
|
30
|
-
extParam = {},
|
|
31
|
-
loading = false
|
|
32
|
-
} = props2;
|
|
33
|
-
async function remoteMethod(query) {
|
|
34
|
-
const param = Object.assign({}, {
|
|
35
|
-
pageSize: 20,
|
|
36
|
-
pageNum: 1
|
|
37
|
-
}, extParam, {
|
|
38
|
-
[fetchField]: query
|
|
39
|
-
});
|
|
40
|
-
let res;
|
|
41
|
-
try {
|
|
42
|
-
options2.length = 0;
|
|
43
|
-
props2.loading = true;
|
|
44
|
-
res = await serviceApi(code, param);
|
|
45
|
-
res && options2.push(...res.list);
|
|
46
|
-
} finally {
|
|
47
|
-
props2.loading = false;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
function onChange(val2) {
|
|
51
|
-
const {
|
|
52
|
-
fieldMap = {}
|
|
53
|
-
} = props2;
|
|
54
|
-
const item2 = options2.find((option) => val2 === option[value2]);
|
|
55
|
-
const keys = Object.keys(fieldMap);
|
|
56
|
-
if (keys.length) {
|
|
57
|
-
const values = Object.values(fieldMap);
|
|
58
|
-
keys.forEach((key, idx) => {
|
|
59
|
-
data[key] = val2 ? item2[values[idx]] : "";
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
(events == null ? void 0 : events.change) && events.change(val2, item2, data, property);
|
|
63
|
-
}
|
|
64
|
-
function onClear() {
|
|
65
|
-
(events == null ? void 0 : events.clear) && events.clear({
|
|
66
|
-
data,
|
|
67
|
-
property
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
function onFocus() {
|
|
71
|
-
!options2.length && remoteMethod("");
|
|
72
|
-
}
|
|
73
|
-
return [createVNode(resolveComponent("el-select"), mergeProps({
|
|
74
|
-
"modelValue": data[property],
|
|
75
|
-
"onUpdate:modelValue": ($event) => data[property] = $event
|
|
76
|
-
}, props2, {
|
|
77
|
-
"filterable": true,
|
|
78
|
-
"remote": true,
|
|
79
|
-
"clearable": true,
|
|
80
|
-
"size": "small",
|
|
81
|
-
"style": "width: 100%",
|
|
82
|
-
"placeholder": "\u8BF7\u5F55\u5165\u5173\u952E\u5B57\u641C\u7D22",
|
|
83
|
-
"remote-method": remoteMethod,
|
|
84
|
-
"loading": loading,
|
|
85
|
-
"onFocus": () => onFocus(),
|
|
86
|
-
"onChange": (v) => onChange(v),
|
|
87
|
-
"onClear": () => onClear()
|
|
88
|
-
}), _isSlot(_slot = options2.map((item2) => {
|
|
89
|
-
return createVNode(resolveComponent("el-option"), {
|
|
90
|
-
"key": item2[value2],
|
|
91
|
-
"label": item2[label2],
|
|
92
|
-
"value": item2[value2]
|
|
93
|
-
}, {
|
|
94
|
-
default: () => [createVNode("span", {
|
|
95
|
-
"style": "float: left"
|
|
96
|
-
}, [item2[extLabel2] ? `${item2[value2]}-${item2[extLabel2]}` : item2[value2]]), value2 !== label2 && !item2[extLabel2] ? createVNode("span", {
|
|
97
|
-
"class": "su-coSelect-option"
|
|
98
|
-
}, [item2[label2]]) : null]
|
|
99
|
-
});
|
|
100
|
-
})) ? _slot : {
|
|
101
|
-
default: () => [_slot]
|
|
102
|
-
})];
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
VXETable.renderer.add("#SuDateRange", {
|
|
106
|
-
renderItemContent(renderOpts2, params2) {
|
|
107
|
-
const {
|
|
108
|
-
data,
|
|
109
|
-
property
|
|
110
|
-
} = params2;
|
|
111
|
-
const {
|
|
112
|
-
props: props2
|
|
113
|
-
} = renderOpts2;
|
|
114
|
-
const {
|
|
115
|
-
t
|
|
116
|
-
} = useI18n();
|
|
117
|
-
return [createVNode(resolveComponent("el-date-picker"), {
|
|
118
|
-
"modelValue": data[property],
|
|
119
|
-
"onUpdate:modelValue": ($event) => data[property] = $event,
|
|
120
|
-
"type": (props2 == null ? void 0 : props2.type) || "daterange",
|
|
121
|
-
"size": "small",
|
|
122
|
-
"style": "width: 100%",
|
|
123
|
-
"range-separator": t("message.to"),
|
|
124
|
-
"start-placeholder": t("message.startDate"),
|
|
125
|
-
"end-placeholder": t("message.endDate")
|
|
126
|
-
}, null)];
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
VXETable.renderer.add("#SuColSelect", {
|
|
130
|
-
renderEdit(renderOpts2, params2) {
|
|
131
|
-
let _slot2;
|
|
132
|
-
const {
|
|
133
|
-
row: row2,
|
|
134
|
-
column: column2
|
|
135
|
-
} = params2;
|
|
136
|
-
const {
|
|
137
|
-
options: options2,
|
|
138
|
-
props: props2,
|
|
139
|
-
optionProps: optionProps2 = {},
|
|
140
|
-
events
|
|
141
|
-
} = renderOpts2;
|
|
142
|
-
const {
|
|
143
|
-
label: label2 = "label",
|
|
144
|
-
value: value2 = "value",
|
|
145
|
-
extLabel: extLabel2
|
|
146
|
-
} = optionProps2;
|
|
147
|
-
const {
|
|
148
|
-
code,
|
|
149
|
-
fetchField,
|
|
150
|
-
extParam = {},
|
|
151
|
-
loading = false,
|
|
152
|
-
multiple: multiple2,
|
|
153
|
-
defaultValue
|
|
154
|
-
} = props2;
|
|
155
|
-
if (defaultValue) {
|
|
156
|
-
const keys = Object.keys(defaultValue);
|
|
157
|
-
keys.forEach((key) => {
|
|
158
|
-
row2[key] = row2[key] || defaultValue[key];
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
if (multiple2 && row2[column2.field]) {
|
|
162
|
-
!isArray(row2[column2.field]) && row2[column2.field].split(",").forEach((ff) => {
|
|
163
|
-
const isExit = options2.some((s) => s[label2] === ff);
|
|
164
|
-
!isExit && options2.push({
|
|
165
|
-
[value2]: ff,
|
|
166
|
-
[label2]: ff
|
|
167
|
-
});
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
async function remoteMethod(query) {
|
|
171
|
-
const param = Object.assign({}, {
|
|
172
|
-
pageSize: 20,
|
|
173
|
-
pageNum: 1
|
|
174
|
-
}, extParam, {
|
|
175
|
-
[fetchField || label2]: query
|
|
176
|
-
});
|
|
177
|
-
let res;
|
|
178
|
-
try {
|
|
179
|
-
options2.length = 0;
|
|
180
|
-
props2.loading = true;
|
|
181
|
-
res = await serviceApi(code, param);
|
|
182
|
-
if (res) {
|
|
183
|
-
res.list ? options2.push(...res.list) : options2.push(...res);
|
|
184
|
-
}
|
|
185
|
-
} finally {
|
|
186
|
-
props2.loading = false;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
function onChange(val2) {
|
|
190
|
-
const {
|
|
191
|
-
fieldMap = {}
|
|
192
|
-
} = props2;
|
|
193
|
-
const item2 = val2 && options2.find((option) => val2 === option[value2]);
|
|
194
|
-
const keys = Object.keys(fieldMap);
|
|
195
|
-
if (keys.length) {
|
|
196
|
-
const values = Object.values(fieldMap);
|
|
197
|
-
keys.forEach((key, idx) => {
|
|
198
|
-
row2[key] = val2 ? item2[values[idx]] : "";
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
(events == null ? void 0 : events.change) && events.change(params2, val2, item2, column2.field);
|
|
202
|
-
}
|
|
203
|
-
function onClear() {
|
|
204
|
-
(events == null ? void 0 : events.onClear) && events.onClear({
|
|
205
|
-
row: row2,
|
|
206
|
-
field: column2.field
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
function onFocus() {
|
|
210
|
-
!options2.length && remoteMethod("");
|
|
211
|
-
}
|
|
212
|
-
return [createVNode(resolveComponent("el-select"), mergeProps({
|
|
213
|
-
"modelValue": row2[column2.field],
|
|
214
|
-
"onUpdate:modelValue": ($event) => row2[column2.field] = $event
|
|
215
|
-
}, props2, {
|
|
216
|
-
"filterable": true,
|
|
217
|
-
"remote": true,
|
|
218
|
-
"clearable": true,
|
|
219
|
-
"size": "small",
|
|
220
|
-
"placeholder": "\u8BF7\u5F55\u5165\u5173\u952E\u5B57\u641C\u7D22",
|
|
221
|
-
"style": "width: 100%",
|
|
222
|
-
"remote-method": remoteMethod,
|
|
223
|
-
"loading": loading,
|
|
224
|
-
"onFocus": () => onFocus(),
|
|
225
|
-
"onChange": (v) => onChange(v),
|
|
226
|
-
"onClear": () => onClear()
|
|
227
|
-
}), _isSlot(_slot2 = options2.map((item2) => {
|
|
228
|
-
return createVNode(resolveComponent("el-option"), {
|
|
229
|
-
"key": item2[value2],
|
|
230
|
-
"label": item2[label2],
|
|
231
|
-
"value": item2[value2]
|
|
232
|
-
}, {
|
|
233
|
-
default: () => [createVNode("span", {
|
|
234
|
-
"style": "float: left"
|
|
235
|
-
}, [item2[extLabel2] ? `${item2[value2]}-${item2[extLabel2]}` : item2[value2]]), value2 !== label2 && !item2[extLabel2] ? createVNode("span", {
|
|
236
|
-
"class": "su-coSelect-option"
|
|
237
|
-
}, [item2[label2]]) : null]
|
|
238
|
-
});
|
|
239
|
-
})) ? _slot2 : {
|
|
240
|
-
default: () => [_slot2]
|
|
241
|
-
})];
|
|
242
|
-
},
|
|
243
|
-
renderCell(renderOpts, params) {
|
|
244
|
-
const {
|
|
245
|
-
row,
|
|
246
|
-
column
|
|
247
|
-
} = params;
|
|
248
|
-
const {
|
|
249
|
-
props
|
|
250
|
-
} = renderOpts;
|
|
251
|
-
const {
|
|
252
|
-
textValue,
|
|
253
|
-
multiple
|
|
254
|
-
} = props;
|
|
255
|
-
let val = row[column.field];
|
|
256
|
-
if (textValue) {
|
|
257
|
-
val = eval(`row.${textValue}`) || row[column.field];
|
|
258
|
-
}
|
|
259
|
-
if (val && multiple && isArray(val)) {
|
|
260
|
-
val = val && val.join(",");
|
|
261
|
-
}
|
|
262
|
-
return [createVNode("span", null, [val])];
|
|
263
|
-
}
|
|
264
|
-
});
|
|
265
|
-
VXETable.renderer.add("#SuSelect", {
|
|
266
|
-
renderEdit(renderOpts2, params2) {
|
|
267
|
-
let _slot3;
|
|
268
|
-
const {
|
|
269
|
-
row: row2,
|
|
270
|
-
column: column2
|
|
271
|
-
} = params2;
|
|
272
|
-
const {
|
|
273
|
-
options: options2,
|
|
274
|
-
props: props2,
|
|
275
|
-
optionProps: optionProps2 = {},
|
|
276
|
-
events
|
|
277
|
-
} = renderOpts2;
|
|
278
|
-
const {
|
|
279
|
-
label: label2 = "label",
|
|
280
|
-
value: value2 = "value",
|
|
281
|
-
extLabel: extLabel2
|
|
282
|
-
} = optionProps2;
|
|
283
|
-
const {
|
|
284
|
-
code,
|
|
285
|
-
fetchField,
|
|
286
|
-
extParam = {},
|
|
287
|
-
loading = false,
|
|
288
|
-
multiple: multiple2,
|
|
289
|
-
defaultValue
|
|
290
|
-
} = props2;
|
|
291
|
-
if (defaultValue) {
|
|
292
|
-
const keys = Object.keys(defaultValue);
|
|
293
|
-
keys.forEach((key) => {
|
|
294
|
-
row2[key] = row2[key] || defaultValue[key];
|
|
295
|
-
});
|
|
296
|
-
}
|
|
297
|
-
if (multiple2 && row2[column2.field]) {
|
|
298
|
-
!isArray(row2[column2.field]) && row2[column2.field].split(",").forEach((ff) => {
|
|
299
|
-
const isExit = options2.some((s) => s[label2] === ff);
|
|
300
|
-
!isExit && options2.push({
|
|
301
|
-
[value2]: ff,
|
|
302
|
-
[label2]: ff
|
|
303
|
-
});
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
async function remoteMethod(query) {
|
|
307
|
-
const param = Object.assign({}, {
|
|
308
|
-
pageSize: 20,
|
|
309
|
-
pageNum: 1
|
|
310
|
-
}, extParam, {
|
|
311
|
-
[fetchField || label2]: query
|
|
312
|
-
});
|
|
313
|
-
let res;
|
|
314
|
-
try {
|
|
315
|
-
options2.length = 0;
|
|
316
|
-
props2.loading = true;
|
|
317
|
-
res = await serviceApi(code, param);
|
|
318
|
-
if (res) {
|
|
319
|
-
res.list ? options2.push(...res.list) : options2.push(...res);
|
|
320
|
-
}
|
|
321
|
-
} finally {
|
|
322
|
-
props2.loading = false;
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
function onChange(val2) {
|
|
326
|
-
const {
|
|
327
|
-
fieldMap = {}
|
|
328
|
-
} = props2;
|
|
329
|
-
const item2 = val2 && options2.find((option) => val2 === option[value2]);
|
|
330
|
-
const keys = Object.keys(fieldMap);
|
|
331
|
-
if (keys.length) {
|
|
332
|
-
const values = Object.values(fieldMap);
|
|
333
|
-
keys.forEach((key, idx) => {
|
|
334
|
-
row2[key] = val2 ? item2[values[idx]] : "";
|
|
335
|
-
});
|
|
336
|
-
}
|
|
337
|
-
(events == null ? void 0 : events.change) && events.change(params2, val2, item2, column2.field);
|
|
338
|
-
}
|
|
339
|
-
function onClear() {
|
|
340
|
-
(events == null ? void 0 : events.onClear) && events.onClear({
|
|
341
|
-
row: row2,
|
|
342
|
-
field: column2.field
|
|
343
|
-
});
|
|
344
|
-
}
|
|
345
|
-
function onFocus() {
|
|
346
|
-
!options2.length && remoteMethod("");
|
|
347
|
-
}
|
|
348
|
-
return [createVNode(resolveComponent("el-select"), mergeProps({
|
|
349
|
-
"modelValue": row2[column2.field],
|
|
350
|
-
"onUpdate:modelValue": ($event) => row2[column2.field] = $event
|
|
351
|
-
}, props2, {
|
|
352
|
-
"filterable": true,
|
|
353
|
-
"remote": true,
|
|
354
|
-
"clearable": true,
|
|
355
|
-
"size": "small",
|
|
356
|
-
"placeholder": "\u8BF7\u5F55\u5165\u5173\u952E\u5B57\u641C\u7D22",
|
|
357
|
-
"style": "width: 100%",
|
|
358
|
-
"remote-method": remoteMethod,
|
|
359
|
-
"loading": loading,
|
|
360
|
-
"onFocus": () => onFocus(),
|
|
361
|
-
"onChange": (v) => onChange(v),
|
|
362
|
-
"onClear": () => onClear()
|
|
363
|
-
}), _isSlot(_slot3 = options2.map((item2) => {
|
|
364
|
-
return createVNode(resolveComponent("el-option"), {
|
|
365
|
-
"key": item2[value2],
|
|
366
|
-
"label": item2[label2],
|
|
367
|
-
"value": item2[value2]
|
|
368
|
-
}, {
|
|
369
|
-
default: () => [createVNode("span", {
|
|
370
|
-
"style": "float: left"
|
|
371
|
-
}, [item2[extLabel2] ? `${item2[value2]}-${item2[extLabel2]}` : item2[value2]]), value2 !== label2 && !item2[extLabel2] ? createVNode("span", {
|
|
372
|
-
"class": "su-coSelect-option"
|
|
373
|
-
}, [item2[label2]]) : null]
|
|
374
|
-
});
|
|
375
|
-
})) ? _slot3 : {
|
|
376
|
-
default: () => [_slot3]
|
|
377
|
-
})];
|
|
378
|
-
},
|
|
379
|
-
renderCell(renderOpts, params) {
|
|
380
|
-
const {
|
|
381
|
-
row,
|
|
382
|
-
column
|
|
383
|
-
} = params;
|
|
384
|
-
const {
|
|
385
|
-
props
|
|
386
|
-
} = renderOpts;
|
|
387
|
-
const {
|
|
388
|
-
textValue,
|
|
389
|
-
multiple
|
|
390
|
-
} = props;
|
|
391
|
-
let val = row[column.field];
|
|
392
|
-
if (textValue) {
|
|
393
|
-
val = eval(`row.${textValue}`) || row[column.field];
|
|
394
|
-
}
|
|
395
|
-
if (val && multiple && isArray(val)) {
|
|
396
|
-
val = val && val.join(",");
|
|
397
|
-
}
|
|
398
|
-
return [createVNode("span", null, [val])];
|
|
399
|
-
}
|
|
400
|
-
});
|
|
401
|
-
VXETable.renderer.add("#select", {
|
|
402
|
-
renderEdit(renderOpts2, params2) {
|
|
403
|
-
let _slot4;
|
|
404
|
-
const {
|
|
405
|
-
row: row2,
|
|
406
|
-
column: column2
|
|
407
|
-
} = params2;
|
|
408
|
-
const {
|
|
409
|
-
options: options2,
|
|
410
|
-
props: props2,
|
|
411
|
-
optionProps: optionProps2 = {},
|
|
412
|
-
events
|
|
413
|
-
} = renderOpts2;
|
|
414
|
-
const {
|
|
415
|
-
label: label2 = "label",
|
|
416
|
-
value: value2 = "value",
|
|
417
|
-
extLabel: extLabel2
|
|
418
|
-
} = optionProps2;
|
|
419
|
-
if (props2.multiple && row2[column2.field]) {
|
|
420
|
-
!isArray(row2[column2.field]) && row2[column2.field].split(",").forEach((ff) => {
|
|
421
|
-
const isExit = options2.some((s) => s[label2] === ff);
|
|
422
|
-
!isExit && options2.push({
|
|
423
|
-
[value2]: ff,
|
|
424
|
-
[label2]: ff
|
|
425
|
-
});
|
|
426
|
-
});
|
|
427
|
-
}
|
|
428
|
-
function onChange(val2) {
|
|
429
|
-
const item2 = val2 && options2.find((option) => val2 === option[value2]);
|
|
430
|
-
(events == null ? void 0 : events.change) && events.change(params2, val2, item2, column2.field);
|
|
431
|
-
}
|
|
432
|
-
function onClear() {
|
|
433
|
-
(events == null ? void 0 : events.onClear) && events.onClear({
|
|
434
|
-
row: row2,
|
|
435
|
-
field: column2.field
|
|
436
|
-
});
|
|
437
|
-
}
|
|
438
|
-
return [createVNode(resolveComponent("el-select"), mergeProps({
|
|
439
|
-
"modelValue": row2[column2.field],
|
|
440
|
-
"onUpdate:modelValue": ($event) => row2[column2.field] = $event,
|
|
441
|
-
"filterable": true,
|
|
442
|
-
"clearable": true
|
|
443
|
-
}, props2, {
|
|
444
|
-
"size": "small",
|
|
445
|
-
"style": "width: 100%",
|
|
446
|
-
"onChange": (v) => onChange(v),
|
|
447
|
-
"onClear": () => onClear()
|
|
448
|
-
}), _isSlot(_slot4 = options2.map((item2) => {
|
|
449
|
-
return createVNode(resolveComponent("el-option"), {
|
|
450
|
-
"key": item2[value2],
|
|
451
|
-
"label": item2[extLabel2] ? item2[value2] : item2[label2],
|
|
452
|
-
"value": item2[value2]
|
|
453
|
-
}, {
|
|
454
|
-
default: () => [createVNode("span", {
|
|
455
|
-
"style": "float: left"
|
|
456
|
-
}, [extLabel2 && item2[extLabel2] ? `${item2[value2]}-${item2[extLabel2]}` : item2[value2]]), value2 !== label2 && !item2[extLabel2] ? createVNode("span", {
|
|
457
|
-
"class": "su-coSelect-option"
|
|
458
|
-
}, [item2[label2]]) : null]
|
|
459
|
-
});
|
|
460
|
-
})) ? _slot4 : {
|
|
461
|
-
default: () => [_slot4]
|
|
462
|
-
})];
|
|
463
|
-
},
|
|
464
|
-
renderCell(renderOpts, params) {
|
|
465
|
-
const {
|
|
466
|
-
row,
|
|
467
|
-
column
|
|
468
|
-
} = params;
|
|
469
|
-
const {
|
|
470
|
-
props,
|
|
471
|
-
options,
|
|
472
|
-
optionProps
|
|
473
|
-
} = renderOpts;
|
|
474
|
-
const {
|
|
475
|
-
label = "label",
|
|
476
|
-
value = "value",
|
|
477
|
-
extLabel
|
|
478
|
-
} = optionProps;
|
|
479
|
-
const {
|
|
480
|
-
textValue
|
|
481
|
-
} = props;
|
|
482
|
-
let val = row[column.field];
|
|
483
|
-
const item = options.find((opt) => opt[value] === val);
|
|
484
|
-
if (textValue) {
|
|
485
|
-
val = eval(`row.${textValue}`) || row[column.field];
|
|
486
|
-
}
|
|
487
|
-
if (item) {
|
|
488
|
-
val = extLabel ? item[value] : item[label];
|
|
489
|
-
}
|
|
490
|
-
if (val && (props == null ? void 0 : props.multiple) && isArray(val)) {
|
|
491
|
-
val = val && val.join(",");
|
|
492
|
-
}
|
|
493
|
-
return [createVNode("span", null, [val])];
|
|
494
|
-
}
|
|
495
|
-
});
|
|
496
|
-
VXETable.renderer.add("#select", {
|
|
497
|
-
renderItemContent(renderOpts2, params2) {
|
|
498
|
-
let _slot5;
|
|
499
|
-
const {
|
|
500
|
-
data,
|
|
501
|
-
property
|
|
502
|
-
} = params2;
|
|
503
|
-
const {
|
|
504
|
-
options: options2,
|
|
505
|
-
props: props2,
|
|
506
|
-
optionProps: optionProps2 = {},
|
|
507
|
-
events
|
|
508
|
-
} = renderOpts2;
|
|
509
|
-
const {
|
|
510
|
-
label: label2 = "label",
|
|
511
|
-
value: value2 = "value"
|
|
512
|
-
} = optionProps2;
|
|
513
|
-
const {
|
|
514
|
-
defaultValues
|
|
515
|
-
} = props2;
|
|
516
|
-
if (defaultValues) {
|
|
517
|
-
data[property] = defaultValues;
|
|
518
|
-
}
|
|
519
|
-
function onChange(val2) {
|
|
520
|
-
const {
|
|
521
|
-
fieldMap = {}
|
|
522
|
-
} = props2;
|
|
523
|
-
const item2 = options2.find((option) => val2 === option[value2]);
|
|
524
|
-
const keys = Object.keys(fieldMap);
|
|
525
|
-
if (keys.length) {
|
|
526
|
-
const values = Object.values(fieldMap);
|
|
527
|
-
keys.forEach((key, idx) => {
|
|
528
|
-
data[key] = val2 ? item2[values[idx]] : "";
|
|
529
|
-
});
|
|
530
|
-
}
|
|
531
|
-
const parm = {
|
|
532
|
-
item: item2,
|
|
533
|
-
row: data,
|
|
534
|
-
property
|
|
535
|
-
};
|
|
536
|
-
(events == null ? void 0 : events.change) && events.change(parm);
|
|
537
|
-
}
|
|
538
|
-
function onClear() {
|
|
539
|
-
(events == null ? void 0 : events.onClear) && events.onClear({
|
|
540
|
-
data,
|
|
541
|
-
field: property
|
|
542
|
-
});
|
|
543
|
-
}
|
|
544
|
-
return [createVNode(resolveComponent("el-select"), mergeProps({
|
|
545
|
-
"modelValue": data[property],
|
|
546
|
-
"onUpdate:modelValue": ($event) => data[property] = $event
|
|
547
|
-
}, props2, {
|
|
548
|
-
"filterable": true,
|
|
549
|
-
"clearable": true,
|
|
550
|
-
"size": "small",
|
|
551
|
-
"style": "width: 100%",
|
|
552
|
-
"onChange": (v) => onChange(v),
|
|
553
|
-
"onClear": () => onClear()
|
|
554
|
-
}), _isSlot(_slot5 = options2.map((item2) => {
|
|
555
|
-
return createVNode(resolveComponent("el-option"), {
|
|
556
|
-
"key": item2[value2],
|
|
557
|
-
"label": item2[label2],
|
|
558
|
-
"value": item2[value2]
|
|
559
|
-
}, {
|
|
560
|
-
default: () => [createVNode("span", {
|
|
561
|
-
"style": "float: left"
|
|
562
|
-
}, [item2[label2]]), createVNode("span", {
|
|
563
|
-
"class": "su-coSelect-option"
|
|
564
|
-
}, [item2[value2]])]
|
|
565
|
-
});
|
|
566
|
-
})) ? _slot5 : {
|
|
567
|
-
default: () => [_slot5]
|
|
568
|
-
})];
|
|
569
|
-
}
|
|
570
|
-
});
|
|
571
|
-
VXETable.renderer.add("#tag", {
|
|
572
|
-
renderDefault(renderOpts2, params2) {
|
|
573
|
-
let _slot6;
|
|
574
|
-
const {
|
|
575
|
-
row: row2,
|
|
576
|
-
column: column2
|
|
577
|
-
} = params2;
|
|
578
|
-
const {
|
|
579
|
-
props: {
|
|
580
|
-
code,
|
|
581
|
-
tagMap
|
|
582
|
-
}
|
|
583
|
-
} = renderOpts2;
|
|
584
|
-
function getTagType() {
|
|
585
|
-
return row2[column2.field] ? tagMap[row2[column2.field]] : "";
|
|
586
|
-
}
|
|
587
|
-
return [row2[column2.field] ? createVNode(resolveComponent("el-tag"), {
|
|
588
|
-
"type": getTagType()
|
|
589
|
-
}, _isSlot(_slot6 = getValue(code, row2[column2.field])) ? _slot6 : {
|
|
590
|
-
default: () => [_slot6]
|
|
591
|
-
}) : null];
|
|
592
|
-
}
|
|
593
|
-
});
|
|
594
|
-
const dictStr = sessionStorage.getItem("kLov");
|
|
595
|
-
const dataDict = dictStr && toStringJSON(dictStr);
|
|
596
|
-
function getValue(code, value2) {
|
|
597
|
-
var _a, _b, _c;
|
|
598
|
-
if (!value2 || !code)
|
|
599
|
-
return value2;
|
|
600
|
-
return (_c = (_b = (_a = dataDict[code]) == null ? void 0 : _a.children) == null ? void 0 : _b.find((item2) => item2.dictCode === value2)) == null ? void 0 : _c.dictName;
|
|
601
|
-
}
|
|
602
|
-
//# sourceMappingURL=su-utils.es.js.map
|
package/dist/su-utils.es.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"su-utils.es.js","sources":["../lib/render.tsx"],"sourcesContent":["/*\r\n * @Author: wei.li\r\n * @Date: 2021-12-01 09:18:50\r\n * @LastEditors: wei.li\r\n * @LastEditTime: 2022-06-30 10:08:46\r\n * @Description: file content\r\n */\r\n\r\nimport { useI18n } from 'vue-i18n';\r\nimport { inject } from 'vue';\r\n// import serviceApi from '/@/api';\r\n// import { useSystemStoreHook } from '/@/store/modules/system';\r\nimport { isArray, toStringJSON } from 'xe-utils';\r\nimport { VXETable, FormItemRenderOptions, FormItemContentRenderParams, VxeColumnPropTypes } from 'vxe-table';\r\n\r\n// const systemStoreHook = useSystemStoreHook();\r\n\r\nconst serviceApi: Function = inject('serviceApi')\r\n\r\n// form render\r\nVXETable.renderer.add('#SuSelect', {\r\n renderItemContent(renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {\r\n const { data, property } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n const { code, fetchField, extParam = {}, loading = false } = props;\r\n /**\r\n * @description: 远程搜索对应的函数\r\n * @param {*} val 录入的参数\r\n */\r\n async function remoteMethod(query) {\r\n const param = Object.assign({}, { pageSize: 20, pageNum: 1 }, extParam, { [fetchField]: query });\r\n let res;\r\n try {\r\n options.length = 0;\r\n props.loading = true;\r\n res = await serviceApi(code, param);\r\n res && options.push(...res.list);\r\n } finally {\r\n props.loading = false;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 选中值发生变化时触发\r\n * @param {*} val 目前的选中值\r\n */\r\n function onChange(val) {\r\n const { fieldMap = {} } = props;\r\n const item = options.find(option => val === option[value]);\r\n const keys = Object.keys(fieldMap);\r\n if (keys.length) {\r\n const values: string[] = Object.values(fieldMap);\r\n keys.forEach((key, idx) => {\r\n data[key] = val ? item[values[idx]] : '';\r\n });\r\n }\r\n events?.change && events.change(val, item, data, property);\r\n }\r\n\r\n /**\r\n * @description: 可清空的单选模式下用户点击清空按钮时触发\r\n */\r\n function onClear() {\r\n events?.clear && events.clear({ data, property });\r\n }\r\n\r\n function onFocus() {\r\n !options.length && remoteMethod('');\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={data[property]}\r\n {...props}\r\n filterable\r\n remote\r\n clearable\r\n size=\"small\"\r\n style=\"width: 100%\"\r\n placeholder=\"请录入关键字搜索\"\r\n remote-method={remoteMethod}\r\n loading={loading}\r\n onFocus={() => onFocus()}\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option key={item[value]} label={item[label]} value={item[value]}>\r\n <span style=\"float: left\">\r\n {item[extLabel] ? `${item[value]}-${item[extLabel]}` : item[value]}\r\n </span>\r\n {value !== label && !item[extLabel] ? (\r\n <span class=\"su-coSelect-option\">{item[label]}</span>\r\n ) : null}\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n }\r\n});\r\n// 时间范围\r\nVXETable.renderer.add('#SuDateRange', {\r\n renderItemContent(renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {\r\n const { data, property } = params;\r\n const { props } = renderOpts;\r\n const { t } = useI18n();\r\n return [\r\n <el-date-picker\r\n v-model={data[property]}\r\n type={props?.type || 'daterange'}\r\n size=\"small\"\r\n style=\"width: 100%\"\r\n range-separator={t('message.to')}\r\n start-placeholder={t('message.startDate')}\r\n end-placeholder={t('message.endDate')}\r\n />\r\n ];\r\n }\r\n});\r\n// table Col\r\nVXETable.renderer.add('#SuColSelect', {\r\n renderEdit(renderOpts: VxeColumnPropTypes.EditRender, params) {\r\n const { row, column } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n const { code, fetchField, extParam = {}, loading = false, multiple, defaultValue } = props;\r\n if (defaultValue) {\r\n const keys = Object.keys(defaultValue);\r\n keys.forEach(key => {\r\n row[key] = row[key] || defaultValue[key];\r\n });\r\n }\r\n if (multiple && row[column.field]) {\r\n !isArray(row[column.field]) &&\r\n row[column.field].split(',').forEach(ff => {\r\n const isExit = options.some(s => s[label] === ff);\r\n !isExit && options.push({ [value]: ff, [label]: ff });\r\n });\r\n }\r\n /**\r\n * @description: 远程搜索对应的函数\r\n * @param {*} val 录入的参数\r\n */\r\n async function remoteMethod(query) {\r\n const param = Object.assign({}, { pageSize: 20, pageNum: 1 }, extParam, {\r\n [fetchField || label]: query\r\n });\r\n let res;\r\n try {\r\n options.length = 0;\r\n props.loading = true;\r\n res = await serviceApi(code, param);\r\n if (res) {\r\n res.list ? options.push(...res.list) : options.push(...res);\r\n }\r\n } finally {\r\n props.loading = false;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 选中值发生变化时触发\r\n * @param {*} val 目前的选中值\r\n */\r\n function onChange(val) {\r\n const { fieldMap = {} } = props;\r\n const item = val && options.find(option => val === option[value]);\r\n const keys = Object.keys(fieldMap);\r\n if (keys.length) {\r\n const values: string[] = Object.values(fieldMap);\r\n keys.forEach((key, idx) => {\r\n row[key] = val ? item[values[idx]] : '';\r\n });\r\n }\r\n events?.change && events.change(params, val, item, column.field);\r\n }\r\n\r\n /**\r\n * @description: 可清空的单选模式下用户点击清空按钮时触发\r\n */\r\n function onClear() {\r\n // @ts-ignore\r\n events?.onClear && events.onClear({ row, field: column.field });\r\n }\r\n\r\n function onFocus() {\r\n !options.length && remoteMethod('');\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={row[column.field]}\r\n {...props}\r\n filterable\r\n remote\r\n clearable\r\n size=\"small\"\r\n placeholder=\"请录入关键字搜索\"\r\n style=\"width: 100%\"\r\n remote-method={remoteMethod}\r\n loading={loading}\r\n onFocus={() => onFocus()}\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option key={item[value]} label={item[label]} value={item[value]}>\r\n <span style=\"float: left\">\r\n {item[extLabel] ? `${item[value]}-${item[extLabel]}` : item[value]}\r\n </span>\r\n {value !== label && !item[extLabel] ? (\r\n <span class=\"su-coSelect-option\">{item[label]}</span>\r\n ) : null}\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n },\r\n // 可编辑显示模板\r\n renderCell(renderOpts, params) {\r\n const { row, column } = params;\r\n const { props } = renderOpts;\r\n const { textValue, multiple } = props;\r\n let val = row[column.field];\r\n if (textValue) {\r\n val = eval(`row.${textValue}`) || row[column.field];\r\n }\r\n if (val && multiple && isArray(val)) {\r\n val = val && val.join(',');\r\n }\r\n return [<span>{val}</span>];\r\n }\r\n});\r\nVXETable.renderer.add('#SuSelect', {\r\n renderEdit(renderOpts: VxeColumnPropTypes.EditRender, params) {\r\n const { row, column } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n const { code, fetchField, extParam = {}, loading = false, multiple, defaultValue } = props;\r\n if (defaultValue) {\r\n const keys = Object.keys(defaultValue);\r\n keys.forEach(key => {\r\n row[key] = row[key] || defaultValue[key];\r\n });\r\n }\r\n if (multiple && row[column.field]) {\r\n !isArray(row[column.field]) &&\r\n row[column.field].split(',').forEach(ff => {\r\n const isExit = options.some(s => s[label] === ff);\r\n !isExit && options.push({ [value]: ff, [label]: ff });\r\n });\r\n }\r\n /**\r\n * @description: 远程搜索对应的函数\r\n * @param {*} val 录入的参数\r\n */\r\n async function remoteMethod(query) {\r\n const param = Object.assign({}, { pageSize: 20, pageNum: 1 }, extParam, {\r\n [fetchField || label]: query\r\n });\r\n let res;\r\n try {\r\n options.length = 0;\r\n props.loading = true;\r\n res = await serviceApi(code, param);\r\n if (res) {\r\n res.list ? options.push(...res.list) : options.push(...res);\r\n }\r\n } finally {\r\n props.loading = false;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 选中值发生变化时触发\r\n * @param {*} val 目前的选中值\r\n */\r\n function onChange(val) {\r\n const { fieldMap = {} } = props;\r\n const item = val && options.find(option => val === option[value]);\r\n const keys = Object.keys(fieldMap);\r\n if (keys.length) {\r\n const values: string[] = Object.values(fieldMap);\r\n keys.forEach((key, idx) => {\r\n row[key] = val ? item[values[idx]] : '';\r\n });\r\n }\r\n events?.change && events.change(params, val, item, column.field);\r\n }\r\n\r\n /**\r\n * @description: 可清空的单选模式下用户点击清空按钮时触发\r\n */\r\n function onClear() {\r\n // @ts-ignore\r\n events?.onClear && events.onClear({ row, field: column.field });\r\n \r\n }\r\n\r\n function onFocus() {\r\n !options.length && remoteMethod('');\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={row[column.field]}\r\n {...props}\r\n filterable\r\n remote\r\n clearable\r\n size=\"small\"\r\n placeholder=\"请录入关键字搜索\"\r\n style=\"width: 100%\"\r\n remote-method={remoteMethod}\r\n loading={loading}\r\n onFocus={() => onFocus()}\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option key={item[value]} label={item[label]} value={item[value]}>\r\n <span style=\"float: left\">\r\n {item[extLabel] ? `${item[value]}-${item[extLabel]}` : item[value]}\r\n </span>\r\n {value !== label && !item[extLabel] ? (\r\n <span class=\"su-coSelect-option\">{item[label]}</span>\r\n ) : null}\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n },\r\n // 可编辑显示模板\r\n renderCell(renderOpts, params) {\r\n const { row, column } = params;\r\n const { props } = renderOpts;\r\n const { textValue, multiple } = props;\r\n let val = row[column.field];\r\n if (textValue) {\r\n val = eval(`row.${textValue}`) || row[column.field];\r\n }\r\n if (val && multiple && isArray(val)) {\r\n val = val && val.join(',');\r\n }\r\n return [<span>{val}</span>];\r\n }\r\n});\r\n\r\nVXETable.renderer.add('#select', {\r\n renderEdit(renderOpts: VxeColumnPropTypes.EditRender, params) {\r\n const { row, column } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n if (props.multiple && row[column.field]) {\r\n !isArray(row[column.field]) &&\r\n row[column.field].split(',').forEach(ff => {\r\n const isExit = options.some(s => s[label] === ff);\r\n !isExit && options.push({ [value]: ff, [label]: ff });\r\n });\r\n }\r\n\r\n function onChange(val) {\r\n const item = val && options.find(option => val === option[value]);\r\n events?.change && events.change(params, val, item, column.field);\r\n }\r\n\r\n function onClear() {\r\n // @ts-ignore\r\n events?.onClear && events.onClear({ row, field: column.field });\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={row[column.field]}\r\n filterable\r\n clearable\r\n {...props}\r\n size=\"small\"\r\n style=\"width: 100%\"\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option\r\n key={item[value]}\r\n label={item[extLabel] ? item[value] : item[label]}\r\n value={item[value]}\r\n >\r\n <span style=\"float: left\">\r\n {extLabel && item[extLabel] ? `${item[value]}-${item[extLabel]}` : item[value]}\r\n </span>\r\n {value !== label && !item[extLabel] ? (\r\n <span class=\"su-coSelect-option\">{item[label]}</span>\r\n ) : null}\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n },\r\n // 可编辑显示模板\r\n renderCell(renderOpts, params) {\r\n const { row, column } = params;\r\n const { props, options, optionProps } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n const { textValue } = props;\r\n let val = row[column.field];\r\n const item = options.find(opt => opt[value] === val);\r\n if (textValue) {\r\n val = eval(`row.${textValue}`) || row[column.field];\r\n }\r\n if (item) {\r\n val = extLabel ? item[value] : item[label];\r\n }\r\n if (val && props?.multiple && isArray(val)) {\r\n val = val && val.join(',');\r\n }\r\n return [<span>{val}</span>];\r\n }\r\n});\r\n\r\nVXETable.renderer.add('#select', {\r\n renderItemContent(renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {\r\n const { data, property } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value' } = optionProps;\r\n // 默认值\r\n const { defaultValues } = props;\r\n if (defaultValues) {\r\n data[property] = defaultValues;\r\n }\r\n /**\r\n * @description: 选中值发生变化时触发\r\n * @param {*} val 目前的选中值\r\n */\r\n function onChange(val) {\r\n const { fieldMap = {} } = props;\r\n const item = options.find(option => val === option[value]);\r\n const keys = Object.keys(fieldMap);\r\n if (keys.length) {\r\n const values: string[] = Object.values(fieldMap);\r\n keys.forEach((key, idx) => {\r\n data[key] = val ? item[values[idx]] : '';\r\n });\r\n }\r\n const parm = { item, row: data, property };\r\n events?.change && events.change(parm);\r\n }\r\n\r\n /**\r\n * @description: 可清空的单选模式下用户点击清空按钮时触发\r\n */\r\n function onClear() {\r\n events?.onClear && events.onClear({ data, field: property });\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={data[property]}\r\n {...props}\r\n filterable\r\n clearable\r\n size=\"small\"\r\n style=\"width: 100%\"\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option key={item[value]} label={item[label]} value={item[value]}>\r\n <span style=\"float: left\">{item[label]}</span>\r\n <span class=\"su-coSelect-option\">{item[value]}</span>\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n }\r\n});\r\n// 创建一个简单的超链接渲染\r\nVXETable.renderer.add('#tag', {\r\n // 默认显示模板\r\n renderDefault(renderOpts, params) {\r\n const { row, column } = params;\r\n const {\r\n props: { code, tagMap }\r\n } = renderOpts;\r\n function getTagType() {\r\n return row[column.field] ? tagMap[row[column.field]] : '';\r\n }\r\n return [\r\n row[column.field] ? <el-tag type={getTagType()}>{getValue(code, row[column.field])}</el-tag> : null\r\n ];\r\n }\r\n});\r\n\r\nconst dictStr = sessionStorage.getItem('kLov')\r\nconst dataDict = dictStr && toStringJSON(dictStr)\r\n\r\nfunction getValue(code, value) {\r\n if (!value || !code) return value;\r\n return dataDict[code]?.children?.find(item => item.dictCode === value)?.dictName;\r\n}\r\n"],"names":["serviceApi","inject","VXETable","renderer","add","renderItemContent","renderOpts","params","data","property","options","props","optionProps","events","label","value","extLabel","code","fetchField","extParam","loading","query","param","Object","assign","pageSize","pageNum","res","length","push","list","val","fieldMap","item","find","option","keys","values","forEach","key","idx","change","clear","remoteMethod","_createVNode","_resolveComponent","_mergeProps","onFocus","v","onChange","onClear","map","t","useI18n","type","renderEdit","row","column","multiple","defaultValue","field","isArray","split","ff","isExit","some","s","renderCell","textValue","eval","join","opt","defaultValues","parm","renderDefault","tagMap","getTagType","getValue","dictStr","sessionStorage","getItem","dataDict","toStringJSON","children","dictCode","dictName"],"mappings":"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"}
|
package/dist/su-utils.umd.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(function(s,f){typeof exports=="object"&&typeof module!="undefined"?f(require("vue"),require("vue-i18n"),require("xe-utils"),require("vxe-table")):typeof define=="function"&&define.amd?define(["vue","vue-i18n","xe-utils","vxe-table"],f):(s=typeof globalThis!="undefined"?globalThis:s||self,f(s.Vue,s.vueI18n,s.xeUtils,s.vxeTable))})(this,function(vue,vueI18n,xeUtils,vxeTable){"use strict";function _isSlot(s){return typeof s=="function"||Object.prototype.toString.call(s)==="[object Object]"&&!vue.isVNode(s)}const serviceApi=vue.inject("serviceApi");vxeTable.VXETable.renderer.add("#SuSelect",{renderItemContent(s,f){let u;const{data:l,property:t}=f,{options:n,props:c,optionProps:b={},events:o}=s,{label:i="label",value:r="value",extLabel:h}=b,{code:C,fetchField:x,extParam:a={},loading:V=!1}=c;async function g(d){const y=Object.assign({},{pageSize:20,pageNum:1},a,{[x]:d});let e;try{n.length=0,c.loading=!0,e=await serviceApi(C,y),e&&n.push(...e.list)}finally{c.loading=!1}}function m(d){const{fieldMap:y={}}=c,e=n.find(p=>d===p[r]),v=Object.keys(y);if(v.length){const p=Object.values(y);v.forEach((E,w)=>{l[E]=d?e[p[w]]:""})}o!=null&&o.change&&o.change(d,e,l,t)}function N(){o!=null&&o.clear&&o.clear({data:l,property:t})}function S(){!n.length&&g("")}return[vue.createVNode(vue.resolveComponent("el-select"),vue.mergeProps({modelValue:l[t],"onUpdate:modelValue":d=>l[t]=d},c,{filterable:!0,remote:!0,clearable:!0,size:"small",style:"width: 100%",placeholder:"\u8BF7\u5F55\u5165\u5173\u952E\u5B57\u641C\u7D22","remote-method":g,loading:V,onFocus:()=>S(),onChange:d=>m(d),onClear:()=>N()}),_isSlot(u=n.map(d=>vue.createVNode(vue.resolveComponent("el-option"),{key:d[r],label:d[i],value:d[r]},{default:()=>[vue.createVNode("span",{style:"float: left"},[d[h]?`${d[r]}-${d[h]}`:d[r]]),r!==i&&!d[h]?vue.createVNode("span",{class:"su-coSelect-option"},[d[i]]):null]})))?u:{default:()=>[u]})]}}),vxeTable.VXETable.renderer.add("#SuDateRange",{renderItemContent(s,f){const{data:u,property:l}=f,{props:t}=s,{t:n}=vueI18n.useI18n();return[vue.createVNode(vue.resolveComponent("el-date-picker"),{modelValue:u[l],"onUpdate:modelValue":c=>u[l]=c,type:(t==null?void 0:t.type)||"daterange",size:"small",style:"width: 100%","range-separator":n("message.to"),"start-placeholder":n("message.startDate"),"end-placeholder":n("message.endDate")},null)]}}),vxeTable.VXETable.renderer.add("#SuColSelect",{renderEdit(s,f){let u;const{row:l,column:t}=f,{options:n,props:c,optionProps:b={},events:o}=s,{label:i="label",value:r="value",extLabel:h}=b,{code:C,fetchField:x,extParam:a={},loading:V=!1,multiple:g,defaultValue:m}=c;m&&Object.keys(m).forEach(v=>{l[v]=l[v]||m[v]}),g&&l[t.field]&&!xeUtils.isArray(l[t.field])&&l[t.field].split(",").forEach(e=>{!n.some(p=>p[i]===e)&&n.push({[r]:e,[i]:e})});async function N(e){const v=Object.assign({},{pageSize:20,pageNum:1},a,{[x||i]:e});let p;try{n.length=0,c.loading=!0,p=await serviceApi(C,v),p&&(p.list?n.push(...p.list):n.push(...p))}finally{c.loading=!1}}function S(e){const{fieldMap:v={}}=c,p=e&&n.find(w=>e===w[r]),E=Object.keys(v);if(E.length){const w=Object.values(v);E.forEach((O,j)=>{l[O]=e?p[w[j]]:""})}o!=null&&o.change&&o.change(f,e,p,t.field)}function d(){o!=null&&o.onClear&&o.onClear({row:l,field:t.field})}function y(){!n.length&&N("")}return[vue.createVNode(vue.resolveComponent("el-select"),vue.mergeProps({modelValue:l[t.field],"onUpdate:modelValue":e=>l[t.field]=e},c,{filterable:!0,remote:!0,clearable:!0,size:"small",placeholder:"\u8BF7\u5F55\u5165\u5173\u952E\u5B57\u641C\u7D22",style:"width: 100%","remote-method":N,loading:V,onFocus:()=>y(),onChange:e=>S(e),onClear:()=>d()}),_isSlot(u=n.map(e=>vue.createVNode(vue.resolveComponent("el-option"),{key:e[r],label:e[i],value:e[r]},{default:()=>[vue.createVNode("span",{style:"float: left"},[e[h]?`${e[r]}-${e[h]}`:e[r]]),r!==i&&!e[h]?vue.createVNode("span",{class:"su-coSelect-option"},[e[i]]):null]})))?u:{default:()=>[u]})]},renderCell(renderOpts,params){const{row,column}=params,{props}=renderOpts,{textValue,multiple}=props;let val=row[column.field];return textValue&&(val=eval(`row.${textValue}`)||row[column.field]),val&&multiple&&xeUtils.isArray(val)&&(val=val&&val.join(",")),[vue.createVNode("span",null,[val])]}}),vxeTable.VXETable.renderer.add("#SuSelect",{renderEdit(s,f){let u;const{row:l,column:t}=f,{options:n,props:c,optionProps:b={},events:o}=s,{label:i="label",value:r="value",extLabel:h}=b,{code:C,fetchField:x,extParam:a={},loading:V=!1,multiple:g,defaultValue:m}=c;m&&Object.keys(m).forEach(v=>{l[v]=l[v]||m[v]}),g&&l[t.field]&&!xeUtils.isArray(l[t.field])&&l[t.field].split(",").forEach(e=>{!n.some(p=>p[i]===e)&&n.push({[r]:e,[i]:e})});async function N(e){const v=Object.assign({},{pageSize:20,pageNum:1},a,{[x||i]:e});let p;try{n.length=0,c.loading=!0,p=await serviceApi(C,v),p&&(p.list?n.push(...p.list):n.push(...p))}finally{c.loading=!1}}function S(e){const{fieldMap:v={}}=c,p=e&&n.find(w=>e===w[r]),E=Object.keys(v);if(E.length){const w=Object.values(v);E.forEach((O,j)=>{l[O]=e?p[w[j]]:""})}o!=null&&o.change&&o.change(f,e,p,t.field)}function d(){o!=null&&o.onClear&&o.onClear({row:l,field:t.field})}function y(){!n.length&&N("")}return[vue.createVNode(vue.resolveComponent("el-select"),vue.mergeProps({modelValue:l[t.field],"onUpdate:modelValue":e=>l[t.field]=e},c,{filterable:!0,remote:!0,clearable:!0,size:"small",placeholder:"\u8BF7\u5F55\u5165\u5173\u952E\u5B57\u641C\u7D22",style:"width: 100%","remote-method":N,loading:V,onFocus:()=>y(),onChange:e=>S(e),onClear:()=>d()}),_isSlot(u=n.map(e=>vue.createVNode(vue.resolveComponent("el-option"),{key:e[r],label:e[i],value:e[r]},{default:()=>[vue.createVNode("span",{style:"float: left"},[e[h]?`${e[r]}-${e[h]}`:e[r]]),r!==i&&!e[h]?vue.createVNode("span",{class:"su-coSelect-option"},[e[i]]):null]})))?u:{default:()=>[u]})]},renderCell(renderOpts,params){const{row,column}=params,{props}=renderOpts,{textValue,multiple}=props;let val=row[column.field];return textValue&&(val=eval(`row.${textValue}`)||row[column.field]),val&&multiple&&xeUtils.isArray(val)&&(val=val&&val.join(",")),[vue.createVNode("span",null,[val])]}}),vxeTable.VXETable.renderer.add("#select",{renderEdit(s,f){let u;const{row:l,column:t}=f,{options:n,props:c,optionProps:b={},events:o}=s,{label:i="label",value:r="value",extLabel:h}=b;c.multiple&&l[t.field]&&!xeUtils.isArray(l[t.field])&&l[t.field].split(",").forEach(a=>{!n.some(g=>g[i]===a)&&n.push({[r]:a,[i]:a})});function C(a){const V=a&&n.find(g=>a===g[r]);o!=null&&o.change&&o.change(f,a,V,t.field)}function x(){o!=null&&o.onClear&&o.onClear({row:l,field:t.field})}return[vue.createVNode(vue.resolveComponent("el-select"),vue.mergeProps({modelValue:l[t.field],"onUpdate:modelValue":a=>l[t.field]=a,filterable:!0,clearable:!0},c,{size:"small",style:"width: 100%",onChange:a=>C(a),onClear:()=>x()}),_isSlot(u=n.map(a=>vue.createVNode(vue.resolveComponent("el-option"),{key:a[r],label:a[h]?a[r]:a[i],value:a[r]},{default:()=>[vue.createVNode("span",{style:"float: left"},[h&&a[h]?`${a[r]}-${a[h]}`:a[r]]),r!==i&&!a[h]?vue.createVNode("span",{class:"su-coSelect-option"},[a[i]]):null]})))?u:{default:()=>[u]})]},renderCell(renderOpts,params){const{row,column}=params,{props,options,optionProps}=renderOpts,{label="label",value="value",extLabel}=optionProps,{textValue}=props;let val=row[column.field];const item=options.find(s=>s[value]===val);return textValue&&(val=eval(`row.${textValue}`)||row[column.field]),item&&(val=extLabel?item[value]:item[label]),val&&(props==null?void 0:props.multiple)&&xeUtils.isArray(val)&&(val=val&&val.join(",")),[vue.createVNode("span",null,[val])]}}),vxeTable.VXETable.renderer.add("#select",{renderItemContent(s,f){let u;const{data:l,property:t}=f,{options:n,props:c,optionProps:b={},events:o}=s,{label:i="label",value:r="value"}=b,{defaultValues:h}=c;h&&(l[t]=h);function C(a){const{fieldMap:V={}}=c,g=n.find(S=>a===S[r]),m=Object.keys(V);if(m.length){const S=Object.values(V);m.forEach((d,y)=>{l[d]=a?g[S[y]]:""})}const N={item:g,row:l,property:t};o!=null&&o.change&&o.change(N)}function x(){o!=null&&o.onClear&&o.onClear({data:l,field:t})}return[vue.createVNode(vue.resolveComponent("el-select"),vue.mergeProps({modelValue:l[t],"onUpdate:modelValue":a=>l[t]=a},c,{filterable:!0,clearable:!0,size:"small",style:"width: 100%",onChange:a=>C(a),onClear:()=>x()}),_isSlot(u=n.map(a=>vue.createVNode(vue.resolveComponent("el-option"),{key:a[r],label:a[i],value:a[r]},{default:()=>[vue.createVNode("span",{style:"float: left"},[a[i]]),vue.createVNode("span",{class:"su-coSelect-option"},[a[r]])]})))?u:{default:()=>[u]})]}}),vxeTable.VXETable.renderer.add("#tag",{renderDefault(s,f){let u;const{row:l,column:t}=f,{props:{code:n,tagMap:c}}=s;function b(){return l[t.field]?c[l[t.field]]:""}return[l[t.field]?vue.createVNode(vue.resolveComponent("el-tag"),{type:b()},_isSlot(u=getValue(n,l[t.field]))?u:{default:()=>[u]}):null]}});const dictStr=sessionStorage.getItem("kLov"),dataDict=dictStr&&xeUtils.toStringJSON(dictStr);function getValue(s,f){var u,l,t;return!f||!s?f:(t=(l=(u=dataDict[s])==null?void 0:u.children)==null?void 0:l.find(n=>n.dictCode===f))==null?void 0:t.dictName}});
|
|
2
|
-
//# sourceMappingURL=su-utils.umd.js.map
|
package/dist/su-utils.umd.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"su-utils.umd.js","sources":["../lib/render.tsx"],"sourcesContent":["/*\r\n * @Author: wei.li\r\n * @Date: 2021-12-01 09:18:50\r\n * @LastEditors: wei.li\r\n * @LastEditTime: 2022-06-30 10:08:46\r\n * @Description: file content\r\n */\r\n\r\nimport { useI18n } from 'vue-i18n';\r\nimport { inject } from 'vue';\r\n// import serviceApi from '/@/api';\r\n// import { useSystemStoreHook } from '/@/store/modules/system';\r\nimport { isArray, toStringJSON } from 'xe-utils';\r\nimport { VXETable, FormItemRenderOptions, FormItemContentRenderParams, VxeColumnPropTypes } from 'vxe-table';\r\n\r\n// const systemStoreHook = useSystemStoreHook();\r\n\r\nconst serviceApi: Function = inject('serviceApi')\r\n\r\n// form render\r\nVXETable.renderer.add('#SuSelect', {\r\n renderItemContent(renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {\r\n const { data, property } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n const { code, fetchField, extParam = {}, loading = false } = props;\r\n /**\r\n * @description: 远程搜索对应的函数\r\n * @param {*} val 录入的参数\r\n */\r\n async function remoteMethod(query) {\r\n const param = Object.assign({}, { pageSize: 20, pageNum: 1 }, extParam, { [fetchField]: query });\r\n let res;\r\n try {\r\n options.length = 0;\r\n props.loading = true;\r\n res = await serviceApi(code, param);\r\n res && options.push(...res.list);\r\n } finally {\r\n props.loading = false;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 选中值发生变化时触发\r\n * @param {*} val 目前的选中值\r\n */\r\n function onChange(val) {\r\n const { fieldMap = {} } = props;\r\n const item = options.find(option => val === option[value]);\r\n const keys = Object.keys(fieldMap);\r\n if (keys.length) {\r\n const values: string[] = Object.values(fieldMap);\r\n keys.forEach((key, idx) => {\r\n data[key] = val ? item[values[idx]] : '';\r\n });\r\n }\r\n events?.change && events.change(val, item, data, property);\r\n }\r\n\r\n /**\r\n * @description: 可清空的单选模式下用户点击清空按钮时触发\r\n */\r\n function onClear() {\r\n events?.clear && events.clear({ data, property });\r\n }\r\n\r\n function onFocus() {\r\n !options.length && remoteMethod('');\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={data[property]}\r\n {...props}\r\n filterable\r\n remote\r\n clearable\r\n size=\"small\"\r\n style=\"width: 100%\"\r\n placeholder=\"请录入关键字搜索\"\r\n remote-method={remoteMethod}\r\n loading={loading}\r\n onFocus={() => onFocus()}\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option key={item[value]} label={item[label]} value={item[value]}>\r\n <span style=\"float: left\">\r\n {item[extLabel] ? `${item[value]}-${item[extLabel]}` : item[value]}\r\n </span>\r\n {value !== label && !item[extLabel] ? (\r\n <span class=\"su-coSelect-option\">{item[label]}</span>\r\n ) : null}\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n }\r\n});\r\n// 时间范围\r\nVXETable.renderer.add('#SuDateRange', {\r\n renderItemContent(renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {\r\n const { data, property } = params;\r\n const { props } = renderOpts;\r\n const { t } = useI18n();\r\n return [\r\n <el-date-picker\r\n v-model={data[property]}\r\n type={props?.type || 'daterange'}\r\n size=\"small\"\r\n style=\"width: 100%\"\r\n range-separator={t('message.to')}\r\n start-placeholder={t('message.startDate')}\r\n end-placeholder={t('message.endDate')}\r\n />\r\n ];\r\n }\r\n});\r\n// table Col\r\nVXETable.renderer.add('#SuColSelect', {\r\n renderEdit(renderOpts: VxeColumnPropTypes.EditRender, params) {\r\n const { row, column } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n const { code, fetchField, extParam = {}, loading = false, multiple, defaultValue } = props;\r\n if (defaultValue) {\r\n const keys = Object.keys(defaultValue);\r\n keys.forEach(key => {\r\n row[key] = row[key] || defaultValue[key];\r\n });\r\n }\r\n if (multiple && row[column.field]) {\r\n !isArray(row[column.field]) &&\r\n row[column.field].split(',').forEach(ff => {\r\n const isExit = options.some(s => s[label] === ff);\r\n !isExit && options.push({ [value]: ff, [label]: ff });\r\n });\r\n }\r\n /**\r\n * @description: 远程搜索对应的函数\r\n * @param {*} val 录入的参数\r\n */\r\n async function remoteMethod(query) {\r\n const param = Object.assign({}, { pageSize: 20, pageNum: 1 }, extParam, {\r\n [fetchField || label]: query\r\n });\r\n let res;\r\n try {\r\n options.length = 0;\r\n props.loading = true;\r\n res = await serviceApi(code, param);\r\n if (res) {\r\n res.list ? options.push(...res.list) : options.push(...res);\r\n }\r\n } finally {\r\n props.loading = false;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 选中值发生变化时触发\r\n * @param {*} val 目前的选中值\r\n */\r\n function onChange(val) {\r\n const { fieldMap = {} } = props;\r\n const item = val && options.find(option => val === option[value]);\r\n const keys = Object.keys(fieldMap);\r\n if (keys.length) {\r\n const values: string[] = Object.values(fieldMap);\r\n keys.forEach((key, idx) => {\r\n row[key] = val ? item[values[idx]] : '';\r\n });\r\n }\r\n events?.change && events.change(params, val, item, column.field);\r\n }\r\n\r\n /**\r\n * @description: 可清空的单选模式下用户点击清空按钮时触发\r\n */\r\n function onClear() {\r\n // @ts-ignore\r\n events?.onClear && events.onClear({ row, field: column.field });\r\n }\r\n\r\n function onFocus() {\r\n !options.length && remoteMethod('');\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={row[column.field]}\r\n {...props}\r\n filterable\r\n remote\r\n clearable\r\n size=\"small\"\r\n placeholder=\"请录入关键字搜索\"\r\n style=\"width: 100%\"\r\n remote-method={remoteMethod}\r\n loading={loading}\r\n onFocus={() => onFocus()}\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option key={item[value]} label={item[label]} value={item[value]}>\r\n <span style=\"float: left\">\r\n {item[extLabel] ? `${item[value]}-${item[extLabel]}` : item[value]}\r\n </span>\r\n {value !== label && !item[extLabel] ? (\r\n <span class=\"su-coSelect-option\">{item[label]}</span>\r\n ) : null}\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n },\r\n // 可编辑显示模板\r\n renderCell(renderOpts, params) {\r\n const { row, column } = params;\r\n const { props } = renderOpts;\r\n const { textValue, multiple } = props;\r\n let val = row[column.field];\r\n if (textValue) {\r\n val = eval(`row.${textValue}`) || row[column.field];\r\n }\r\n if (val && multiple && isArray(val)) {\r\n val = val && val.join(',');\r\n }\r\n return [<span>{val}</span>];\r\n }\r\n});\r\nVXETable.renderer.add('#SuSelect', {\r\n renderEdit(renderOpts: VxeColumnPropTypes.EditRender, params) {\r\n const { row, column } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n const { code, fetchField, extParam = {}, loading = false, multiple, defaultValue } = props;\r\n if (defaultValue) {\r\n const keys = Object.keys(defaultValue);\r\n keys.forEach(key => {\r\n row[key] = row[key] || defaultValue[key];\r\n });\r\n }\r\n if (multiple && row[column.field]) {\r\n !isArray(row[column.field]) &&\r\n row[column.field].split(',').forEach(ff => {\r\n const isExit = options.some(s => s[label] === ff);\r\n !isExit && options.push({ [value]: ff, [label]: ff });\r\n });\r\n }\r\n /**\r\n * @description: 远程搜索对应的函数\r\n * @param {*} val 录入的参数\r\n */\r\n async function remoteMethod(query) {\r\n const param = Object.assign({}, { pageSize: 20, pageNum: 1 }, extParam, {\r\n [fetchField || label]: query\r\n });\r\n let res;\r\n try {\r\n options.length = 0;\r\n props.loading = true;\r\n res = await serviceApi(code, param);\r\n if (res) {\r\n res.list ? options.push(...res.list) : options.push(...res);\r\n }\r\n } finally {\r\n props.loading = false;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 选中值发生变化时触发\r\n * @param {*} val 目前的选中值\r\n */\r\n function onChange(val) {\r\n const { fieldMap = {} } = props;\r\n const item = val && options.find(option => val === option[value]);\r\n const keys = Object.keys(fieldMap);\r\n if (keys.length) {\r\n const values: string[] = Object.values(fieldMap);\r\n keys.forEach((key, idx) => {\r\n row[key] = val ? item[values[idx]] : '';\r\n });\r\n }\r\n events?.change && events.change(params, val, item, column.field);\r\n }\r\n\r\n /**\r\n * @description: 可清空的单选模式下用户点击清空按钮时触发\r\n */\r\n function onClear() {\r\n // @ts-ignore\r\n events?.onClear && events.onClear({ row, field: column.field });\r\n \r\n }\r\n\r\n function onFocus() {\r\n !options.length && remoteMethod('');\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={row[column.field]}\r\n {...props}\r\n filterable\r\n remote\r\n clearable\r\n size=\"small\"\r\n placeholder=\"请录入关键字搜索\"\r\n style=\"width: 100%\"\r\n remote-method={remoteMethod}\r\n loading={loading}\r\n onFocus={() => onFocus()}\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option key={item[value]} label={item[label]} value={item[value]}>\r\n <span style=\"float: left\">\r\n {item[extLabel] ? `${item[value]}-${item[extLabel]}` : item[value]}\r\n </span>\r\n {value !== label && !item[extLabel] ? (\r\n <span class=\"su-coSelect-option\">{item[label]}</span>\r\n ) : null}\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n },\r\n // 可编辑显示模板\r\n renderCell(renderOpts, params) {\r\n const { row, column } = params;\r\n const { props } = renderOpts;\r\n const { textValue, multiple } = props;\r\n let val = row[column.field];\r\n if (textValue) {\r\n val = eval(`row.${textValue}`) || row[column.field];\r\n }\r\n if (val && multiple && isArray(val)) {\r\n val = val && val.join(',');\r\n }\r\n return [<span>{val}</span>];\r\n }\r\n});\r\n\r\nVXETable.renderer.add('#select', {\r\n renderEdit(renderOpts: VxeColumnPropTypes.EditRender, params) {\r\n const { row, column } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n if (props.multiple && row[column.field]) {\r\n !isArray(row[column.field]) &&\r\n row[column.field].split(',').forEach(ff => {\r\n const isExit = options.some(s => s[label] === ff);\r\n !isExit && options.push({ [value]: ff, [label]: ff });\r\n });\r\n }\r\n\r\n function onChange(val) {\r\n const item = val && options.find(option => val === option[value]);\r\n events?.change && events.change(params, val, item, column.field);\r\n }\r\n\r\n function onClear() {\r\n // @ts-ignore\r\n events?.onClear && events.onClear({ row, field: column.field });\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={row[column.field]}\r\n filterable\r\n clearable\r\n {...props}\r\n size=\"small\"\r\n style=\"width: 100%\"\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option\r\n key={item[value]}\r\n label={item[extLabel] ? item[value] : item[label]}\r\n value={item[value]}\r\n >\r\n <span style=\"float: left\">\r\n {extLabel && item[extLabel] ? `${item[value]}-${item[extLabel]}` : item[value]}\r\n </span>\r\n {value !== label && !item[extLabel] ? (\r\n <span class=\"su-coSelect-option\">{item[label]}</span>\r\n ) : null}\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n },\r\n // 可编辑显示模板\r\n renderCell(renderOpts, params) {\r\n const { row, column } = params;\r\n const { props, options, optionProps } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n const { textValue } = props;\r\n let val = row[column.field];\r\n const item = options.find(opt => opt[value] === val);\r\n if (textValue) {\r\n val = eval(`row.${textValue}`) || row[column.field];\r\n }\r\n if (item) {\r\n val = extLabel ? item[value] : item[label];\r\n }\r\n if (val && props?.multiple && isArray(val)) {\r\n val = val && val.join(',');\r\n }\r\n return [<span>{val}</span>];\r\n }\r\n});\r\n\r\nVXETable.renderer.add('#select', {\r\n renderItemContent(renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {\r\n const { data, property } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value' } = optionProps;\r\n // 默认值\r\n const { defaultValues } = props;\r\n if (defaultValues) {\r\n data[property] = defaultValues;\r\n }\r\n /**\r\n * @description: 选中值发生变化时触发\r\n * @param {*} val 目前的选中值\r\n */\r\n function onChange(val) {\r\n const { fieldMap = {} } = props;\r\n const item = options.find(option => val === option[value]);\r\n const keys = Object.keys(fieldMap);\r\n if (keys.length) {\r\n const values: string[] = Object.values(fieldMap);\r\n keys.forEach((key, idx) => {\r\n data[key] = val ? item[values[idx]] : '';\r\n });\r\n }\r\n const parm = { item, row: data, property };\r\n events?.change && events.change(parm);\r\n }\r\n\r\n /**\r\n * @description: 可清空的单选模式下用户点击清空按钮时触发\r\n */\r\n function onClear() {\r\n events?.onClear && events.onClear({ data, field: property });\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={data[property]}\r\n {...props}\r\n filterable\r\n clearable\r\n size=\"small\"\r\n style=\"width: 100%\"\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option key={item[value]} label={item[label]} value={item[value]}>\r\n <span style=\"float: left\">{item[label]}</span>\r\n <span class=\"su-coSelect-option\">{item[value]}</span>\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n }\r\n});\r\n// 创建一个简单的超链接渲染\r\nVXETable.renderer.add('#tag', {\r\n // 默认显示模板\r\n renderDefault(renderOpts, params) {\r\n const { row, column } = params;\r\n const {\r\n props: { code, tagMap }\r\n } = renderOpts;\r\n function getTagType() {\r\n return row[column.field] ? tagMap[row[column.field]] : '';\r\n }\r\n return [\r\n row[column.field] ? <el-tag type={getTagType()}>{getValue(code, row[column.field])}</el-tag> : null\r\n ];\r\n }\r\n});\r\n\r\nconst dictStr = sessionStorage.getItem('kLov')\r\nconst dataDict = dictStr && toStringJSON(dictStr)\r\n\r\nfunction getValue(code, value) {\r\n if (!value || !code) return value;\r\n return dataDict[code]?.children?.find(item => item.dictCode === value)?.dictName;\r\n}\r\n"],"names":["serviceApi","inject","VXETable","renderer","add","renderItemContent","renderOpts","params","data","property","options","props","optionProps","events","label","value","extLabel","code","fetchField","extParam","loading","query","param","Object","assign","pageSize","pageNum","res","length","push","list","val","fieldMap","item","find","option","keys","values","forEach","key","idx","change","clear","remoteMethod","_createVNode","_resolveComponent","_mergeProps","onFocus","v","onChange","onClear","map","t","useI18n","type","renderEdit","row","column","multiple","defaultValue","field","isArray","split","ff","some","s","renderCell","textValue","eval","join","opt","defaultValues","parm","renderDefault","tagMap","getTagType","getValue","dictStr","sessionStorage","getItem","dataDict","toStringJSON","children","dictCode","dictName"],"mappings":"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"}
|