xydata-tools 1.0.0
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/.babelrc +3 -0
- package/lib/bundle.js +1 -0
- package/package.json +44 -0
- package/rollup.config.mjs +43 -0
- package/src/assets/empty.png +0 -0
- package/src/components/Dictionary/components/UpdateForm.jsx +111 -0
- package/src/components/Dictionary/index.jsx +255 -0
- package/src/components/Dictionary/index.less +3 -0
- package/src/index.js +7 -0
- package/src/services/service.js +18 -0
- package/src/utils/request.js +37 -0
- package/src/utils/set-service.js +10 -0
- package/src/utils/token.js +23 -0
- package/src/utils/utils.less +51 -0
package/.babelrc
ADDED
package/lib/bundle.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{PlusOutlined as e}from"@ant-design/icons";import t from"@ant-design/pro-table";import{message as r,Form as n,Modal as o,TreeSelect as i,Input as a,ConfigProvider as c,Button as u,Empty as s,Divider as f,Popconfirm as l}from"antd";import p,{useState as d,useRef as h}from"react";import v from"umi-request";function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?m(Object(r),!0).forEach((function(t){b(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function g(){g=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function u(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,r){return e[t]=r}}function s(e,t,r,o){var i=t&&t.prototype instanceof p?t:p,a=Object.create(i.prototype),c=new T(o||[]);return n(a,"_invoke",{value:x(e,r,c)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var l={};function p(){}function d(){}function h(){}var v={};u(v,i,(function(){return this}));var m=Object.getPrototypeOf,y=m&&m(m(j([])));y&&y!==t&&r.call(y,i)&&(v=y);var w=h.prototype=p.prototype=Object.create(v);function P(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){function o(n,i,a,c){var u=f(e[n],e,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==typeof l&&r.call(l,"__await")?t.resolve(l.__await).then((function(e){o("next",e,a,c)}),(function(e){o("throw",e,a,c)})):t.resolve(l).then((function(e){s.value=e,a(s)}),(function(e){return o("throw",e,a,c)}))}c(u.arg)}var i;n(this,"_invoke",{value:function(e,r){function n(){return new t((function(t,n){o(e,r,t,n)}))}return i=i?i.then(n,n):n()}})}function x(e,t,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return k()}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var c=O(a,r);if(c){if(c===l)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var u=f(e,t,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===l)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}function O(e,t){var r=t.method,n=e.iterator[r];if(void 0===n)return t.delegate=null,"throw"===r&&e.iterator.return&&(t.method="return",t.arg=void 0,O(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),l;var o=f(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,l;var i=o.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,l):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,l)}function z(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function A(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(z,this),this.reset(!0)}function j(e){if(e){var t=e[i];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:k}}function k(){return{value:void 0,done:!0}}return d.prototype=h,n(w,"constructor",{value:h,configurable:!0}),n(h,"constructor",{value:d,configurable:!0}),d.displayName=u(h,c,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,h):(e.__proto__=h,u(e,c,"GeneratorFunction")),e.prototype=Object.create(w),e},e.awrap=function(e){return{__await:e}},P(b.prototype),u(b.prototype,a,(function(){return this})),e.AsyncIterator=b,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new b(s(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},P(w),u(w,c,"Generator"),u(w,i,(function(){return this})),u(w,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=j,T.prototype={constructor:T,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(A),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return a.type="throw",a.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var c=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,l):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),l},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),A(r),l}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:j(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},e}function w(e,t,r,n,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void r(e)}c.done?t(u):Promise.resolve(u).then(n,o)}function P(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){w(i,n,o,a,c,"next",e)}function c(e){w(i,n,o,a,c,"throw",e)}a(void 0)}))}}function b(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function x(){return x=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},x.apply(this,arguments)}function O(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],u=!0,s=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return z(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return z(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function z(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function A(e){return null==e}function T(e,t){return A(e)?t:e}function j(e,t,r){return T(e[t],r)}const k="__root__",D="id",E="parentId",S="children";function N(e,t={}){const r=T(t.idKey,D),n=T(t.parentKey,E),o=T(t.childrenKey,S),i=T(t.transform,(e=>e)),a=T(t.insert,((e,t)=>e.push(t))),c={},u={};return e.forEach(((e,t)=>{const s=i(e,t);if(A(s))return;const f=L(s,e,r);var l;!function(e,t){if(!e){if(t instanceof Error)throw t;throw new Error(t)}}((l=f,!1===A(l)),`id is required, in ${t}.`);const p=u[f];p?s[o]=p:u[f]=s[o]=[];const d=T(L(s,e,n),k),h=u[d];a(h||(u[d]=[]),s),c[f]=s})),{idKey:r,parentKey:n,childrenKey:o,nodes:c,childNodes:u}}function L(e,t,r){const n=j(e,r);return A(n)?j(t,r):n}function H(e,t={}){return function(e,t){const r=e.childNodes;return"function"==typeof t?t(r,e)||[]:r[T(t,k)]||[]}(N(e,t),t.root)}function X(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Token";return sessionStorage.getItem(function(e){return SID?"".concat(SID,"_").concat(e):e}(e))}function C(e,t,r,n){return M.apply(this,arguments)}function M(){return M=P(g().mark((function e(t,n,o,i){var a;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a={SID:SID,Authorization:X(),UserId:X("userId"),OrgId:X("orgId")},e.abrupt("return",v(t,{method:n,params:i,data:o,headers:y(y({},a),{},{service:X("service")||"unknow"}),getResponse:!0}).then((function(e){var t=e.data;return"000000"===t.rspCode||r.error(t.rspMsg),t})).catch(function(){var e=P(g().mark((function e(t){var n;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(401!==t.response.status&&402!==t.response.status&&403!==t.response.status){e.next=7;break}return e.next=3,t.response.json();case 3:n=e.sent,r.error(n.rspMsg),e.next=8;break;case 7:r.error("服务器异常");case 8:return e.abrupt("return",t.response);case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 2:case"end":return e.stop()}}),e)}))),M.apply(this,arguments)}function B(e){return q.apply(this,arguments)}function q(){return(q=P(g().mark((function e(t){return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",C("/api/dict/queryBaseDictList","POST",t));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function R(e){return U.apply(this,arguments)}function U(){return(U=P(g().mark((function e(t){return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",C("/api/dict/deleteBaseDict","POST",t));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function I(e){return K.apply(this,arguments)}function K(){return(K=P(g().mark((function e(t){return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",C("/api/dict/createBaseDict","POST",t));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function F(e){return Q.apply(this,arguments)}function Q(){return(Q=P(g().mark((function e(t){return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",C("/api/dict/updateBaseDict","POST",t));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var W=n.Item,G={labelCol:{span:7},wrapperCol:{span:13}},Y=function(e){var t=O(n.useForm(),1)[0],r=e.onSubmit,c=e.onCancel,u=e.updateModalVisible,s=e.values,f=e.type,l=e.treeData,d=function(){var e=P(g().mark((function e(){var n;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.validateFields();case 2:n=e.sent,r("U"===f?y(y({},s),n):n);case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return p.createElement(o,{getContainer:function(){return top.document.body},maskClosable:!1,width:640,bodyStyle:{padding:"32px 40px 48px"},destroyOnClose:!0,title:"C"===f?"新增数据字典":"编辑数据字典",open:u,onOk:function(){return d()},onCancel:function(){return c()}},p.createElement(n,x({},G,{form:t,initialValues:{parentId:(null==s?void 0:s.parentId)||"-1",dictName:null==s?void 0:s.dictName,dictCode:null==s?void 0:s.dictCode,remark:null==s?void 0:s.remark}}),p.createElement(p.Fragment,null,p.createElement(W,{name:"parentId",label:"父级"},p.createElement(i,{style:{width:"100%"},dropdownStyle:{maxHeight:400,overflow:"auto"},treeData:l,treeDefaultExpandedKeys:[s.parentId||"-1"],showSearch:!0,filterTreeNode:function(e,t){return t.dictName.includes(e)}})),p.createElement(W,{name:"dictName",label:"字典名称",rules:[{required:!0,message:"请输入字典表名!",whitespace:!0}]},p.createElement(a,null)),p.createElement(W,{name:"dictCode",label:"字典编码",rules:[{required:!0,message:"请输入字典值!",whitespace:!0}]},p.createElement(a,{disabled:"U"===f})),p.createElement(W,{name:"remark",label:"备注"},p.createElement(a,null)))))},Z=function(){return p.createElement(s,{image:"data:image/png;base64,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"})},V=function(){var e=P(g().mark((function e(t,n){var o,i;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=r.loading("正在添加"),"C"!==n){e.next=7;break}return e.next=4,I(y({},t));case 4:e.t0=e.sent,e.next=10;break;case 7:return e.next=9,F(y({},t));case 9:e.t0=e.sent;case 10:if(i=e.t0,o(),!i){e.next=15;break}return r.success("操作成功!"),e.abrupt("return",!0);case 15:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),J=function(){var e=P(g().mark((function e(t){var n,o;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=!1,e.next=3,R(t);case 3:return"000000"===(o=e.sent).rspCode?(r.loading("正在删除"),r.success("删除成功,正在刷新"),n=!0):(r.error(o.rspMsg),n=!1),e.abrupt("return",n);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),_=function(){var r=O(d(!1),2),n=r[0],o=r[1],i=O(d({}),2),a=i[0],s=i[1],v=O(d([]),2),m=v[0],w=v[1],x=O(d([]),2),z=x[0],A=x[1],T=O(d("C"),2),j=T[0],D=T[1],E=h(),S=function(){var e=P(g().mark((function e(t,r){return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:A(L(m)),D(t),s(r),o(!0);case 4:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),N=function(){o(!1),s({})},L=function(e){return H(e,{root:k,idKey:"id",parentKey:"parentId",childrenKey:"children",transform:function(t){return!e.some((function(e){return"-1"===e.id}))&&"-1"===t.parentId&&(t.parentId=null),y(y({},t),{},b({title:t.dictName,value:t.id},"value",t.id))}})},X=function e(t){t.forEach((function(t){var r;(null==t||null===(r=t.children)||void 0===r?void 0:r.length)>0?e(t.children):delete t.children}))},C=[{title:"字典名称",dataIndex:"dictName",search:!0},{title:"字典编码",dataIndex:"dictCode",search:!1},{title:"备注",dataIndex:"remark",search:!1},{title:"操作",dataIndex:"option",valueType:"option",render:function(e,t){return"BASE_DICT_ROOT"!==t.dictName&&p.createElement(p.Fragment,null,p.createElement("a",{onClick:function(){return S("U",t)}},"编辑"),p.createElement(f,{type:"vertical"}),p.createElement(l,{title:"确定删除吗?",onConfirm:P(g().mark((function e(){return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,J(t);case 2:if(!e.sent||!E.current){e.next=8;break}return e.next=6,E.current.reset();case 6:return e.next=8,E.current.reload();case 8:case"end":return e.stop()}}),e)})))},p.createElement("a",{href:"#",className:"ant-btn-dangerous"},"删除")))}}];return p.createElement("div",null,p.createElement(c,{renderEmpty:Z},p.createElement(t,{headerTitle:"列表",actionRef:E,rowKey:"id",defaultExpandedRowKeys:["-1"],toolBarRender:function(){return[p.createElement(u,{type:"primary",onClick:function(){return S("C",{})}},p.createElement(e,null)," 新建")]},beforeSearchSubmit:function(e){return{dictName:e.dictName||"",include:!0,allTree:!0}},params:{},request:P(g().mark((function e(){var t,r,n,o=arguments;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=o.length>0&&void 0!==o[0]?o[0]:{},e.next=3,B(y(y({},t),{},{include:!0}));case 3:if(!(r=e.sent)){e.next=12;break}return r.data.map((function(e){return e.dictName===t.dictName&&(e.parentId=null),e})),w(r.data),n=L(r.data),X(n),e.abrupt("return",{data:n,success:!0});case 12:return e.abrupt("return",{data:[],success:!1});case 13:case"end":return e.stop()}}),e)}))),columns:C,rowSelection:!1})),n?p.createElement(Y,{onSubmit:function(){var e=P(g().mark((function e(t){return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,V(t,j);case 2:e.sent&&(N(),E.current&&E.current.reload());case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),onCancel:N,type:j,updateModalVisible:n,values:a,treeData:z}):null)};function $(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Token",t=arguments.length>1?arguments[1]:void 0;sessionStorage.setItem(function(e){return SID?"".concat(SID,"_").concat(e):e}(e),t)}var ee=function(e){return $("service",e)};export{_ as DictionaryFront,ee as registerService};
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "xydata-tools",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "lib/bundle.js",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"devDependencies": {
|
|
7
|
+
"@babel/core": "^7.22.5",
|
|
8
|
+
"@babel/plugin-transform-runtime": "^7.22.5",
|
|
9
|
+
"@babel/preset-env": "^7.22.5",
|
|
10
|
+
"@babel/preset-react": "^7.22.5",
|
|
11
|
+
"@rollup/plugin-alias": "^5.0.0",
|
|
12
|
+
"@rollup/plugin-commonjs": "^21.0.2",
|
|
13
|
+
"@rollup/plugin-terser": "^0.4.3",
|
|
14
|
+
"autoprefixer": "8.0.0",
|
|
15
|
+
"core-js": "^3.31.0",
|
|
16
|
+
"cross-env": "^7.0.3",
|
|
17
|
+
"mini-css-extract-plugin": "^2.7.6",
|
|
18
|
+
"postcss": "^8.4.24",
|
|
19
|
+
"postcss-loader": "^7.3.3",
|
|
20
|
+
"postcss-preset-env": "^8.5.1",
|
|
21
|
+
"rollup": "^3.25.3",
|
|
22
|
+
"rollup-plugin-babel": "^4.4.0",
|
|
23
|
+
"rollup-plugin-image": "^1.0.2",
|
|
24
|
+
"rollup-plugin-node-resolve": "^5.2.0",
|
|
25
|
+
"rollup-plugin-postcss": "^4.0.2",
|
|
26
|
+
"rollup-plugin-url": "^3.0.1"
|
|
27
|
+
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"注释": "下面的-c是使用配置文件,-w是watch,监视文件变化而打包",
|
|
30
|
+
"build": "yarn run rollup -c",
|
|
31
|
+
"dev": "yarn run rollup -c -w"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@ant-design/icons": "^4.7.0",
|
|
35
|
+
"@ant-design/pro-table": "^2.76.4",
|
|
36
|
+
"@zhengxs/js.tree": "^0.4.0",
|
|
37
|
+
"antd": "^4.20.5",
|
|
38
|
+
"js-cookie": "^3.0.1",
|
|
39
|
+
"less": "^4.2.0",
|
|
40
|
+
"react": "^17.0.0",
|
|
41
|
+
"react-dom": "^17.0.0",
|
|
42
|
+
"umi-request": "^1.4.0"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import babel from 'rollup-plugin-babel'
|
|
2
|
+
import postcss from 'rollup-plugin-postcss'
|
|
3
|
+
import resolve from 'rollup-plugin-node-resolve';
|
|
4
|
+
import alias from "@rollup/plugin-alias";
|
|
5
|
+
import terser from '@rollup/plugin-terser';
|
|
6
|
+
import url from 'rollup-plugin-url';
|
|
7
|
+
import image from 'rollup-plugin-image';
|
|
8
|
+
|
|
9
|
+
export default {
|
|
10
|
+
input: './src/index.js',
|
|
11
|
+
output: {
|
|
12
|
+
file: './lib/bundle.js',
|
|
13
|
+
// 输出类型 (amd, cjs, es, iife, umd, system):
|
|
14
|
+
// iife——最早的模块,jQuery时代流行,封装成一个自执行函数,缺点是污染全局变量,且需手动维护script标签加载顺序
|
|
15
|
+
// cjs——即CommonJS,解决了以上问题,但只运行在node.js环境,不支持浏览器。
|
|
16
|
+
// amd——通过requirejs实现,支持浏览器,解决了前面所有问题,但写法复杂,可读性很差,不符合通用的模块化思维
|
|
17
|
+
// umd——兼容了cjs和amd,但产生了更难理解的代码,包也增大
|
|
18
|
+
// system——面向未来的模块依赖方式,微前端流行
|
|
19
|
+
// es——现代化标准
|
|
20
|
+
format: 'es'
|
|
21
|
+
},
|
|
22
|
+
plugins: [
|
|
23
|
+
url(),
|
|
24
|
+
resolve(),
|
|
25
|
+
postcss(),
|
|
26
|
+
alias({
|
|
27
|
+
entries: [
|
|
28
|
+
{ find: '@', replacement: 'src' }
|
|
29
|
+
]
|
|
30
|
+
}),
|
|
31
|
+
image({
|
|
32
|
+
output: `lib/images`, // 打包后的文件
|
|
33
|
+
extensions: /\.(png|jpg|jpeg|gif|svg)$/,
|
|
34
|
+
limit: 8192, // 文件大小的限制(字节)。当一个文件没有超过限制时,它将被转换为 base64字符串,否则,它将被复制到output下
|
|
35
|
+
exclude: 'node_modules/**'
|
|
36
|
+
}),
|
|
37
|
+
babel(),
|
|
38
|
+
terser(),
|
|
39
|
+
],
|
|
40
|
+
// 以下模块都为外部引用(不会打包进包里)
|
|
41
|
+
external: ['antd', '@ant-design/icons', '@ant-design/pro-table', 'umi-request', 'react', 'react-dom']
|
|
42
|
+
}
|
|
43
|
+
|
|
Binary file
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { Form, Input, Modal, TreeSelect } from "antd";
|
|
2
|
+
import React from "react";
|
|
3
|
+
|
|
4
|
+
const FormItem = Form.Item;
|
|
5
|
+
const formLayout = {
|
|
6
|
+
labelCol: {
|
|
7
|
+
span: 7,
|
|
8
|
+
},
|
|
9
|
+
wrapperCol: {
|
|
10
|
+
span: 13,
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const UpdateForm = (props) => {
|
|
15
|
+
const [form] = Form.useForm();
|
|
16
|
+
const {
|
|
17
|
+
onSubmit: handleUpdate,
|
|
18
|
+
onCancel: handleUpdateModalVisible,
|
|
19
|
+
updateModalVisible,
|
|
20
|
+
values,
|
|
21
|
+
type,
|
|
22
|
+
treeData,
|
|
23
|
+
} = props;
|
|
24
|
+
|
|
25
|
+
const handleSave = async () => {
|
|
26
|
+
const fieldsValue = await form.validateFields();
|
|
27
|
+
if (type === "U") {
|
|
28
|
+
handleUpdate({ ...values, ...fieldsValue });
|
|
29
|
+
} else {
|
|
30
|
+
handleUpdate(fieldsValue);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const renderContent = () => {
|
|
34
|
+
return (
|
|
35
|
+
<>
|
|
36
|
+
<FormItem name="parentId" label="父级">
|
|
37
|
+
<TreeSelect
|
|
38
|
+
style={{ width: "100%" }}
|
|
39
|
+
dropdownStyle={{ maxHeight: 400, overflow: "auto" }}
|
|
40
|
+
treeData={treeData}
|
|
41
|
+
treeDefaultExpandedKeys={[values.parentId || "-1"]}
|
|
42
|
+
showSearch
|
|
43
|
+
filterTreeNode={(inputValue, treeNode) => {
|
|
44
|
+
return treeNode.dictName.includes(inputValue);
|
|
45
|
+
}}
|
|
46
|
+
/>
|
|
47
|
+
</FormItem>
|
|
48
|
+
<FormItem
|
|
49
|
+
name="dictName"
|
|
50
|
+
label="字典名称"
|
|
51
|
+
rules={[
|
|
52
|
+
{
|
|
53
|
+
required: true,
|
|
54
|
+
message: "请输入字典表名!",
|
|
55
|
+
whitespace: true,
|
|
56
|
+
},
|
|
57
|
+
]}
|
|
58
|
+
>
|
|
59
|
+
<Input />
|
|
60
|
+
</FormItem>
|
|
61
|
+
|
|
62
|
+
<FormItem
|
|
63
|
+
name="dictCode"
|
|
64
|
+
label="字典编码"
|
|
65
|
+
rules={[
|
|
66
|
+
{
|
|
67
|
+
required: true,
|
|
68
|
+
message: "请输入字典值!",
|
|
69
|
+
whitespace: true,
|
|
70
|
+
},
|
|
71
|
+
]}
|
|
72
|
+
>
|
|
73
|
+
<Input disabled={type === "U"} />
|
|
74
|
+
</FormItem>
|
|
75
|
+
<FormItem name="remark" label="备注">
|
|
76
|
+
<Input />
|
|
77
|
+
</FormItem>
|
|
78
|
+
</>
|
|
79
|
+
);
|
|
80
|
+
};
|
|
81
|
+
return (
|
|
82
|
+
<Modal
|
|
83
|
+
getContainer={() => top.document.body}
|
|
84
|
+
maskClosable={false}
|
|
85
|
+
width={640}
|
|
86
|
+
bodyStyle={{
|
|
87
|
+
padding: "32px 40px 48px",
|
|
88
|
+
}}
|
|
89
|
+
destroyOnClose
|
|
90
|
+
title={type === "C" ? "新增数据字典" : "编辑数据字典"}
|
|
91
|
+
open={updateModalVisible}
|
|
92
|
+
onOk={() => handleSave()}
|
|
93
|
+
onCancel={() => handleUpdateModalVisible()}
|
|
94
|
+
>
|
|
95
|
+
<Form
|
|
96
|
+
{...formLayout}
|
|
97
|
+
form={form}
|
|
98
|
+
initialValues={{
|
|
99
|
+
parentId: values?.parentId || "-1",
|
|
100
|
+
dictName: values?.dictName,
|
|
101
|
+
dictCode: values?.dictCode,
|
|
102
|
+
remark: values?.remark,
|
|
103
|
+
}}
|
|
104
|
+
>
|
|
105
|
+
{renderContent()}
|
|
106
|
+
</Form>
|
|
107
|
+
</Modal>
|
|
108
|
+
);
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
export default UpdateForm;
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import { PlusOutlined } from "@ant-design/icons";
|
|
2
|
+
import ProTable from "@ant-design/pro-table";
|
|
3
|
+
import { ROOT_ID, toTree } from "@zhengxs/js.tree";
|
|
4
|
+
import { Button, ConfigProvider, Divider, Empty, Popconfirm, message } from "antd";
|
|
5
|
+
import React, { useRef, useState } from "react";
|
|
6
|
+
import { addApi, queryApi, removeApi, updateApi } from "@/services/service.js";
|
|
7
|
+
import UpdateForm from "./components/UpdateForm.jsx";
|
|
8
|
+
import emptyPng from "../../assets/empty.png";
|
|
9
|
+
|
|
10
|
+
const customizeRenderEmpty = () => <Empty image={emptyPng} />;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* 添加
|
|
14
|
+
* @param fields
|
|
15
|
+
*/
|
|
16
|
+
const handleAdd = async (fields, type) => {
|
|
17
|
+
const hide = message.loading("正在添加");
|
|
18
|
+
|
|
19
|
+
const res = type === "C" ? await addApi({ ...fields }) : await updateApi({ ...fields });
|
|
20
|
+
// //console.log(res)
|
|
21
|
+
hide();
|
|
22
|
+
if (res) {
|
|
23
|
+
message.success("操作成功!");
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* 删除
|
|
30
|
+
* @param selectedRows
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
const handleRemove = async (record) => {
|
|
34
|
+
let isSuccess = false;
|
|
35
|
+
// const hide = message.loading('正在删除');
|
|
36
|
+
const res = await removeApi(record);
|
|
37
|
+
if (res.rspCode === "000000") {
|
|
38
|
+
message.loading("正在删除");
|
|
39
|
+
message.success("删除成功,正在刷新");
|
|
40
|
+
isSuccess = true;
|
|
41
|
+
} else {
|
|
42
|
+
message.error(res.rspMsg);
|
|
43
|
+
isSuccess = false;
|
|
44
|
+
}
|
|
45
|
+
return isSuccess;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const DictionaryList = () => {
|
|
49
|
+
const [createModalVisible, handleModalVisible] = useState(false);
|
|
50
|
+
const [currentItem, setCurrentItem] = useState({});
|
|
51
|
+
const [originalData, setOriginalData] = useState([]);
|
|
52
|
+
const [treeData, setTreeData] = useState([]);
|
|
53
|
+
const [modalType, setModalType] = useState("C");
|
|
54
|
+
|
|
55
|
+
const actionRef = useRef();
|
|
56
|
+
|
|
57
|
+
const createAndUpdate = async (type, record) => {
|
|
58
|
+
// type = U编辑 C新增
|
|
59
|
+
// if (type === 'U') {
|
|
60
|
+
// //本级及下级所有子节点均不可选择
|
|
61
|
+
// const selectItems = await getData({ dictName: record.dictName, include: true });
|
|
62
|
+
// const newData = JSON.parse(JSON.stringify(originalData));
|
|
63
|
+
// newData.forEach((item, i) => {
|
|
64
|
+
// selectItems.forEach((ele) => {
|
|
65
|
+
// if (item.id === ele.id) {
|
|
66
|
+
// item.disabled = true;
|
|
67
|
+
// }
|
|
68
|
+
// });
|
|
69
|
+
// });
|
|
70
|
+
// setTreeData(rowTotree(newData));
|
|
71
|
+
// } else {
|
|
72
|
+
setTreeData(rowTotree(originalData));
|
|
73
|
+
// }
|
|
74
|
+
setModalType(type);
|
|
75
|
+
setCurrentItem(record);
|
|
76
|
+
handleModalVisible(true);
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
const handleCancel = () => {
|
|
80
|
+
handleModalVisible(false);
|
|
81
|
+
setCurrentItem({});
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
const getData = async (params) => {
|
|
85
|
+
const res = await queryApi(params);
|
|
86
|
+
//console.log(res);
|
|
87
|
+
if (res) {
|
|
88
|
+
return res.data;
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
const rowTotree = (dataList) => {
|
|
93
|
+
return toTree(dataList, {
|
|
94
|
+
// 如果 parentId 为 null 或 undefined 会合并一起
|
|
95
|
+
// 使用 ROOT_ID 作为 key 保存
|
|
96
|
+
// 支持函数,动态返回
|
|
97
|
+
root: ROOT_ID,
|
|
98
|
+
|
|
99
|
+
// lodash 版本,支持 path, 如: nested.id
|
|
100
|
+
idKey: "id", // 可选,默认: id
|
|
101
|
+
|
|
102
|
+
// lodash 版本,支持 path, 如: nested.parentId
|
|
103
|
+
parentKey: "parentId", // 可选,默认:parentId
|
|
104
|
+
|
|
105
|
+
// 挂载子级的属性名称,默认:children
|
|
106
|
+
childrenKey: "children",
|
|
107
|
+
|
|
108
|
+
// 数据添加进 children 数组前的处理,可选
|
|
109
|
+
transform(data) {
|
|
110
|
+
// 通过浅拷贝避免修改原始数据
|
|
111
|
+
// 可以在这里动态添加属性
|
|
112
|
+
const isTop = dataList.some((x) => x.id === "-1");
|
|
113
|
+
!isTop && data.parentId === "-1" && (data.parentId = null);
|
|
114
|
+
return {
|
|
115
|
+
...data,
|
|
116
|
+
title: data.dictName,
|
|
117
|
+
value: data.id,
|
|
118
|
+
value: data.id,
|
|
119
|
+
};
|
|
120
|
+
},
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
const deepData = (list) => {
|
|
125
|
+
list.forEach((item) => {
|
|
126
|
+
if (item?.children?.length > 0) {
|
|
127
|
+
deepData(item.children);
|
|
128
|
+
} else {
|
|
129
|
+
delete item.children;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
const columns = [
|
|
135
|
+
{
|
|
136
|
+
title: "字典名称",
|
|
137
|
+
dataIndex: "dictName",
|
|
138
|
+
search: true,
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
title: "字典编码",
|
|
142
|
+
dataIndex: "dictCode",
|
|
143
|
+
search: false,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
title: "备注",
|
|
147
|
+
dataIndex: "remark",
|
|
148
|
+
search: false,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
title: "操作",
|
|
152
|
+
dataIndex: "option",
|
|
153
|
+
valueType: "option",
|
|
154
|
+
render: (_, record) =>
|
|
155
|
+
record.dictName !== "BASE_DICT_ROOT" && (
|
|
156
|
+
<>
|
|
157
|
+
<a onClick={() => createAndUpdate("U", record)}>编辑</a>
|
|
158
|
+
<Divider type="vertical" />
|
|
159
|
+
<Popconfirm
|
|
160
|
+
title="确定删除吗?"
|
|
161
|
+
onConfirm={async () => {
|
|
162
|
+
const success = await handleRemove(record);
|
|
163
|
+
//console.log('🚀 ~ file: index.jsx ~ line 143 ~ onConfirm={ ~ success', success);
|
|
164
|
+
//console.log(actionRef.current)
|
|
165
|
+
if (success && actionRef.current) {
|
|
166
|
+
await actionRef.current.reset();
|
|
167
|
+
await actionRef.current.reload();
|
|
168
|
+
}
|
|
169
|
+
}}
|
|
170
|
+
>
|
|
171
|
+
<a href="#" className="ant-btn-dangerous">
|
|
172
|
+
删除
|
|
173
|
+
</a>
|
|
174
|
+
</Popconfirm>
|
|
175
|
+
</>
|
|
176
|
+
),
|
|
177
|
+
},
|
|
178
|
+
];
|
|
179
|
+
return (
|
|
180
|
+
<div>
|
|
181
|
+
<ConfigProvider renderEmpty={customizeRenderEmpty}>
|
|
182
|
+
<ProTable
|
|
183
|
+
headerTitle="列表"
|
|
184
|
+
actionRef={actionRef}
|
|
185
|
+
rowKey="id"
|
|
186
|
+
defaultExpandedRowKeys={["-1"]}
|
|
187
|
+
toolBarRender={() => [
|
|
188
|
+
<Button type="primary" onClick={() => createAndUpdate("C", {})}>
|
|
189
|
+
<PlusOutlined /> 新建
|
|
190
|
+
</Button>,
|
|
191
|
+
]}
|
|
192
|
+
beforeSearchSubmit={(params) => {
|
|
193
|
+
const { dictName } = params;
|
|
194
|
+
const obj = {
|
|
195
|
+
dictName: dictName || "",
|
|
196
|
+
include: true,
|
|
197
|
+
allTree: true,
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
return obj;
|
|
201
|
+
}}
|
|
202
|
+
params={{}}
|
|
203
|
+
request={async (params = {}) => {
|
|
204
|
+
const res = await queryApi({ ...params, include: true });
|
|
205
|
+
if (res) {
|
|
206
|
+
res.data.map((item) => {
|
|
207
|
+
if (item.dictName === params.dictName) {
|
|
208
|
+
item.parentId = null;
|
|
209
|
+
}
|
|
210
|
+
return item;
|
|
211
|
+
});
|
|
212
|
+
setOriginalData(res.data);
|
|
213
|
+
const handleRes = rowTotree(res.data);
|
|
214
|
+
deepData(handleRes);
|
|
215
|
+
return {
|
|
216
|
+
data: handleRes,
|
|
217
|
+
success: true,
|
|
218
|
+
};
|
|
219
|
+
} else {
|
|
220
|
+
//console.error(res);
|
|
221
|
+
return {
|
|
222
|
+
data: [],
|
|
223
|
+
success: false,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
}}
|
|
227
|
+
columns={columns}
|
|
228
|
+
rowSelection={false}
|
|
229
|
+
/>
|
|
230
|
+
</ConfigProvider>
|
|
231
|
+
{/* 新建 | 编辑 组件 */}
|
|
232
|
+
{createModalVisible ? (
|
|
233
|
+
<UpdateForm
|
|
234
|
+
onSubmit={async (value) => {
|
|
235
|
+
const success = await handleAdd(value, modalType);
|
|
236
|
+
|
|
237
|
+
if (success) {
|
|
238
|
+
handleCancel();
|
|
239
|
+
if (actionRef.current) {
|
|
240
|
+
actionRef.current.reload();
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}}
|
|
244
|
+
onCancel={handleCancel}
|
|
245
|
+
type={modalType}
|
|
246
|
+
updateModalVisible={createModalVisible}
|
|
247
|
+
values={currentItem}
|
|
248
|
+
treeData={treeData}
|
|
249
|
+
/>
|
|
250
|
+
) : null}
|
|
251
|
+
</div>
|
|
252
|
+
);
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
export default DictionaryList;
|
package/src/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import doRequest from '@/utils/request.js';
|
|
2
|
+
|
|
3
|
+
//查询字典
|
|
4
|
+
export async function queryApi(params) {
|
|
5
|
+
return doRequest('/api/dict/queryBaseDictList', "POST", params);
|
|
6
|
+
}
|
|
7
|
+
//删除字典
|
|
8
|
+
export async function removeApi(params) {
|
|
9
|
+
return doRequest('/api/dict/deleteBaseDict', 'POST', params);
|
|
10
|
+
}
|
|
11
|
+
//添加字典
|
|
12
|
+
export async function addApi(params) {
|
|
13
|
+
return doRequest('/api/dict/createBaseDict', 'POST', params);
|
|
14
|
+
}
|
|
15
|
+
//更新字典
|
|
16
|
+
export async function updateApi(params) {
|
|
17
|
+
return doRequest('/api/dict/updateBaseDict', 'POST', params);
|
|
18
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import request from 'umi-request';
|
|
2
|
+
import { message } from 'antd';
|
|
3
|
+
import { getSessionStorage } from '@/utils/token.js';
|
|
4
|
+
|
|
5
|
+
export default async function doRequest(url, method, data, params) {
|
|
6
|
+
const headers = {
|
|
7
|
+
SID: SID,
|
|
8
|
+
Authorization: getSessionStorage(),
|
|
9
|
+
UserId: getSessionStorage('userId'),
|
|
10
|
+
OrgId: getSessionStorage('orgId'),
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
return request(url, {
|
|
14
|
+
method, params, data, headers: {
|
|
15
|
+
...headers,
|
|
16
|
+
service: getSessionStorage('service') || 'unknow',
|
|
17
|
+
},
|
|
18
|
+
getResponse: true,
|
|
19
|
+
})
|
|
20
|
+
.then(function ({ data, }) {
|
|
21
|
+
if (data.rspCode === '000000') {
|
|
22
|
+
return data
|
|
23
|
+
} else {
|
|
24
|
+
message.error(data.rspMsg)
|
|
25
|
+
return data
|
|
26
|
+
}
|
|
27
|
+
})
|
|
28
|
+
.catch(async function (error) {
|
|
29
|
+
if (error.response.status === 401 || error.response.status === 402 || error.response.status === 403) {
|
|
30
|
+
let data = await error.response.json()
|
|
31
|
+
message.error(data.rspMsg)
|
|
32
|
+
} else {
|
|
33
|
+
message.error("服务器异常")
|
|
34
|
+
}
|
|
35
|
+
return error.response
|
|
36
|
+
});
|
|
37
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { setSessionStorage, removeSessionStorage } from "./token.js"
|
|
2
|
+
|
|
3
|
+
export const registerService = function (service) {
|
|
4
|
+
return setSessionStorage('service', service)
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export const unRegisterService = function () {
|
|
8
|
+
return removeSessionStorage('service')
|
|
9
|
+
|
|
10
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// 读取数据语法
|
|
2
|
+
export function getSessionStorage(key = 'Token') {
|
|
3
|
+
return sessionStorage.getItem(transformKey(key));
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
// 保存数据语法
|
|
7
|
+
export function setSessionStorage(key = 'Token', value) {
|
|
8
|
+
sessionStorage.setItem(transformKey(key), value);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// 删除指定键的数据
|
|
12
|
+
export function removeSessionStorage(key = 'Token') {
|
|
13
|
+
sessionStorage.removeItem(transformKey(key));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// 删除所有数据
|
|
17
|
+
export function clearSessionStorage() {
|
|
18
|
+
sessionStorage.clear();
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function transformKey(key) {
|
|
22
|
+
return SID ? `${SID}_${key}` : key
|
|
23
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
.textOverflow() {
|
|
2
|
+
overflow: hidden;
|
|
3
|
+
white-space: nowrap;
|
|
4
|
+
text-overflow: ellipsis;
|
|
5
|
+
word-break: break-all;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.textOverflowMulti(@line: 3, @bg: #fff) {
|
|
9
|
+
position: relative;
|
|
10
|
+
max-height: @line * 1.5em;
|
|
11
|
+
margin-right: -1em;
|
|
12
|
+
padding-right: 1em;
|
|
13
|
+
overflow: hidden;
|
|
14
|
+
line-height: 1.5em;
|
|
15
|
+
text-align: justify;
|
|
16
|
+
&::before {
|
|
17
|
+
position: absolute;
|
|
18
|
+
right: 14px;
|
|
19
|
+
bottom: 0;
|
|
20
|
+
padding: 0 1px;
|
|
21
|
+
background: @bg;
|
|
22
|
+
content: '...';
|
|
23
|
+
}
|
|
24
|
+
&::after {
|
|
25
|
+
position: absolute;
|
|
26
|
+
right: 14px;
|
|
27
|
+
width: 1em;
|
|
28
|
+
height: 1em;
|
|
29
|
+
margin-top: 0.2em;
|
|
30
|
+
background: white;
|
|
31
|
+
content: '';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// mixins for clearfix
|
|
36
|
+
// ------------------------
|
|
37
|
+
.clearfix() {
|
|
38
|
+
zoom: 1;
|
|
39
|
+
&::before,
|
|
40
|
+
&::after {
|
|
41
|
+
display: table;
|
|
42
|
+
content: ' ';
|
|
43
|
+
}
|
|
44
|
+
&::after {
|
|
45
|
+
clear: both;
|
|
46
|
+
height: 0;
|
|
47
|
+
font-size: 0;
|
|
48
|
+
visibility: hidden;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|