app-base-react
Version:
react development common base package.
1 lines • 21.3 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _inputNumber=require("antd/lib/input-number"),_inputNumber2=_interopRequireDefault(_inputNumber),_form=require("antd/lib/form"),_form2=_interopRequireDefault(_form),_layout=require("antd/lib/layout"),_layout2=_interopRequireDefault(_layout),_tree=require("antd/lib/tree"),_tree2=_interopRequireDefault(_tree),_table=require("antd/lib/table"),_table2=_interopRequireDefault(_table),_input=require("antd/lib/input"),_input2=_interopRequireDefault(_input),_button=require("antd/lib/button"),_button2=_interopRequireDefault(_button),_row=require("antd/lib/row"),_row2=_interopRequireDefault(_row),_col=require("antd/lib/col"),_col2=_interopRequireDefault(_col),_regenerator=require("babel-runtime/regenerator"),_regenerator2=_interopRequireDefault(_regenerator),_message2=require("antd/lib/message"),_message3=_interopRequireDefault(_message2),_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a,l=arguments[t];for(a in l)Object.prototype.hasOwnProperty.call(l,a)&&(e[a]=l[a])}return e},_createClass=function(){function l(e,t){for(var a=0;a<t.length;a++){var l=t[a];l.enumerable=l.enumerable||!1,l.configurable=!0,"value"in l&&(l.writable=!0),Object.defineProperty(e,l.key,l)}}return function(e,t,a){return t&&l(e.prototype,t),a&&l(e,a),e}}(),_react=(require("antd/lib/input-number/style/css"),require("antd/lib/form/style/css"),require("antd/lib/layout/style/css"),require("antd/lib/tree/style/css"),require("antd/lib/table/style/css"),require("antd/lib/input/style/css"),require("antd/lib/button/style/css"),require("antd/lib/row/style/css"),require("antd/lib/col/style/css"),require("antd/lib/message/style/css"),require("react")),_react2=_interopRequireDefault(_react),_antd=require("antd"),_utilModal=require("../../../library/util-modal"),_utilModal2=_interopRequireDefault(_utilModal),_utilDic=require("../../../library/util-dic"),_utilDic2=_interopRequireDefault(_utilDic),_utilString=require("../../../library/util-string"),_utilString2=_interopRequireDefault(_utilString),_jquery=require("../../../library/jquery"),_jquery2=_interopRequireDefault(_jquery),_dic=require("../../../library/dic"),_dic2=_interopRequireDefault(_dic),_utilAxios=require("../../../library/util-axios"),_utilAxios2=_interopRequireDefault(_utilAxios),_addParams=require("../../../library/add-params"),_addParams2=_interopRequireDefault(_addParams);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _asyncToGenerator(e){return function(){var i=e.apply(this,arguments);return new Promise(function(n,u){return function t(e,a){try{var l=i[e](a),r=l.value}catch(e){return void u(e)}if(!l.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});n(r)}("next")})}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(e)return!t||"object"!=typeof t&&"function"!=typeof t?e:t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var title="菜单管理",url="SysMenu/",SysMenuList=function(){function t(e){_classCallCheck(this,t);var r=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return r.onChange=function(e,t,a){var l=r.state.params;l.pageSize=e.pageSize,l.pageIndex=e.current,r.onLoad(l)},r.onSearch=function(e){var t=r.state.params;t.name=e,r.onLoad(t)},r.onAdd=function(){var t={};Object.keys(r.state.values).forEach(function(e){return t[e]=void 0}),t.parentId=r.state.params.parentId,t.parentName=r.state.params.parentName,r.setState({showView:!1,showEdit:!0,values:t})},r.onCopy=function(){var t=r;0==t.state.selected.length?_message3.default.error("请选择记录!"):_utilAxios2.default.post(url+"copy",t.state.selected).then(function(e){e.success?(_message3.default.info(e.msg),t.onLoad(t.state.params||{})):_message3.default.error(e.msg)})},r.onView=function(e){r.setState({showView:!0,loading:!1,values:e})},r.onEdit=function(e){var t=r;_utilAxios2.default.get(url+"getModel?id="+e.id,{},function(e){t.setState({showEdit:!0,showView:!1,values:e.data})})},r.onSave=function(e){r.onLoad(r.state.params),r.props.onSave&&r.props.onSave()},r.onDel=function(){var t=r;0==t.state.selected.length?_message3.default.error("请选择记录!"):_utilModal2.default.confirm({content:"确定删除?",okText:"确认",cancelText:"取消",onOk:function(){_utilAxios2.default.post(url+"delete?id="+t.state.selected).then(function(e){e.success?(_message3.default.info(e.msg),t.onLoad(t.state.params||{}),t.props.onSave&&t.props.onSave()):_message3.default.error(e.msg)})}})},r.state={params:{parentId:r.props.parentId,parentName:r.props.parentName},data:[],pagination:{},loading:!1,selected:[],showView:!1,showEdit:!1,values:{}},r.columns=[{title:"序号",width:50,fixed:"left",render:function(e,t,a){return a+1}},{title:"菜单ID",dataIndex:"id",width:50,render:function(e,t){return _react2.default.createElement("a",{className:"btn-detail",onClick:function(){return r.onView(t)}},e)}},{title:"菜单名称",dataIndex:"name",width:200,render:function(e,t){return _react2.default.createElement("a",{className:"btn-detail",onClick:function(){return r.onView(t)}},e)}},{title:"上级菜单名称",dataIndex:"parentName",width:200},{title:"菜单类型",dataIndex:"type",width:100,render:function(e,t){return _utilDic2.default.json("app","菜单类型")[e]}},{title:"样式",dataIndex:"className",width:100},{title:"排序号",dataIndex:"ord",width:60}],r}var a;return _inherits(t,_react2.default.Component),_createClass(t,[{key:"componentDidMount",value:function(){this.onLoad(this.state.params)}},{key:"onLoad",value:(a=_asyncToGenerator(_regenerator2.default.mark(function e(t){var a,l;return _regenerator2.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.setState({loading:!0}),e.next=3,_utilAxios2.default.get(url+"getList",t);case 3:a=e.sent,l={pageSizeOptions:["20","100","200","500","1000"],pageSize:t.pageSize||20,defaultPageSize:t.pageSize||20,showSizeChanger:!0,showQuickJumper:!0,total:a.total,showTotal:function(e){return"总记录 "+e+" "}},this.setState({loading:!1,showEdit:!1,params:t,data:a.data,pagination:l});case 6:case"end":return e.stop()}},e,this)})),function(e){return a.apply(this,arguments)})},{key:"render",value:function(){var a=this,e={scroll:{y:this.props.height-210},size:"middle",rowKey:"id",columns:this.columns,rowSelection:{selectedRowKeys:this.state.selected,onChange:function(e,t){a.setState({selected:e})}},rowClassName:function(e){return e.id===a.state.selectedRowId?"row-selected":""},onRow:function(t){return{onClick:function(e){a.setState({selectedRowId:t.id})}}},dataSource:this.state.data,pagination:this.state.pagination,loading:this.state.loading,onChange:this.onChange};return _react2.default.createElement("div",{className:"app-admin"},_react2.default.createElement("div",{className:this.state.showView||this.state.showEdit?"hide":""},_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{className:"main-title"},_react2.default.createElement("i",{className:"iconfont icon-title"}),title)),_react2.default.createElement(_row2.default,{className:"main-toolbar"},_react2.default.createElement(_col2.default,{className:"text-left",xs:16},_react2.default.createElement(_button2.default,{className:"btn-add",onClick:this.onAdd},_react2.default.createElement("i",{className:"iconfont icon-add"}),"录入"),_react2.default.createElement(_button2.default,{className:"btn-copy",onClick:this.onCopy},_react2.default.createElement("i",{className:"iconfont icon-copy"}),"拷贝"),_react2.default.createElement(_button2.default,{className:"btn-del",onClick:this.onDel},_react2.default.createElement("i",{className:"iconfont icon-del"}),"删除")),_react2.default.createElement(_col2.default,{className:"text-right",xs:8},_react2.default.createElement(_input2.default.Search,{placeholder:"请输入名称",onSearch:function(e){return a.onSearch(e)},enterButton:!0}))),_react2.default.createElement(_table2.default,e)),this.state.showView?_react2.default.createElement(FormView,{height:this.props.height-140,values:this.state.values,onEdit:this.onEdit,onReturn:function(){a.setState({showView:!1})}}):"",this.state.showEdit?_react2.default.createElement(FormEdit,{height:this.props.height-140,values:this.state.values,onSave:this.onSave,onCancel:function(){a.setState({showEdit:!1})},onEditReturn:function(){a.setState({showEdit:!1,showView:!0})}}):"")}}]),t}(),MenuTree=function(){function t(e){_classCallCheck(this,t);var c=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return c.onSelect=function(e,t){c.props.onSetParent(t.node.props.id,t.node.props.title)},c.onDrop=function(e){function t(e){e.name=e.title,e.parentId=e.pId,_utilAxios2.default.post("SysMenu/save",e).then(function(e){console.log(e),c.initData()})}var r=e.dragNode.key,n=e.node.key,a=e.dropToGap,u=void 0,i=void 0,l=(function e(t,a){for(var l=0;l<t.length&&(t[l].key===r&&(u=t[l]),t[l].key===n&&(i=t[l]),t[l].children&&e(t[l].children,a),!i||!u);l++);a()}(c.state.treeData,function(){i&&i.pId,i&&i.parentName}),console.log("拖拽节点:",u),console.log("目标节点:",i),JSON.parse(JSON.stringify(u)));_utilModal2.default.confirm({content:"确定把"+u.title+"移至"+i.title+"的"+(a?"下方":"上方")+"?",okText:"确定",cancelText:"取消",onOk:function(){_utilModal2.default.confirm({content:"请选择"+u.title+"与"+i.title+"的关系",okText:"同级",cancelText:"子级",onOk:function(){l.ord=a?i.ord+1:i.ord-1,u.pId!=i.pId&&(l.pId=i.pId,l.parentName=i.parentName),console.log("兄弟关系:",l),t(l)},onCancel:function(){i.children&&(l.ord=a?i.children[i.children.length-1].ord+1:i.children[0].ord-1),l.pId=i.id,l.parentName=i.title,t(l),console.log("父子关系:",l)}})},onCancel:function(){}})},c.state={value:void 0,label:void 0,treeData:[],treeKey:_utilString2.default.uuid()},c.initData(),c}var e;return _inherits(t,_react2.default.Component),_createClass(t,[{key:"initData",value:(e=_asyncToGenerator(_regenerator2.default.mark(function e(){var t;return _regenerator2.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,_utilAxios2.default.get("SysMenu/listTreeMenu",{});case 2:t=e.sent,this.setState({treeData:t.data.treeData,defaultExpandedKeys:t.data.defaultExpandedKeys,treeKey:_utilString2.default.uuid()});case 4:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"render",value:function(){return _react2.default.createElement(_tree2.default,{autoExpandParent:!0,blockNode:!0,checkable:!1,treeData:this.state.treeData,defaultExpandAll:!0,defaultExpandParent:!0,defaultExpandedKeys:this.state.defaultExpandedKeys,showLine:!0,draggable:!0,selectable:!0,onSelect:this.onSelect,key:this.state.treeKey,onDrop:this.onDrop})}}]),t}(),SysMenu=function(){function t(e){_classCallCheck(this,t);var a=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onSetParent=function(e,t){a.setState({parentId:e,parentName:t,menuKey:_utilString2.default.uuid(),isShowMenu:!0})},a.onSave=function(){a.setState({menuTreeKey:_utilString2.default.uuid()})},a.state={parentId:-1,parentName:"",menuKey:_utilString2.default.uuid(),menuTreeKey:_utilString2.default.uuid(),isShowMenu:!1},a}return _inherits(t,_react2.default.Component),_createClass(t,[{key:"componentDidMount",value:function(){var t=setInterval(function(){var e=(0,_jquery2.default)(".ant-tree-iconEle");0<e.length&&(e.remove(),clearInterval(t))},100)}},{key:"render",value:function(){return _react2.default.createElement(_layout2.default,{style:{background:"#f0f2f5",height:"100%"}},_react2.default.createElement(_layout2.default.Sider,{theme:"light",width:"200",style:{padding:"15px 20px",marginRight:"10px"}},_react2.default.createElement(MenuTree,{onSetParent:this.onSetParent,key:this.state.menuTreeKey})),_react2.default.createElement(_layout2.default.Content,{style:{background:"#fff",paddingLeft:"20px"}},this.state.isShowMenu?_react2.default.createElement(SysMenuList,{key:this.state.menuKey,parentId:this.state.parentId,parentName:this.state.parentName,onSave:this.onSave}):"请选择主菜单"))}}]),t}(),FormView=(exports.default=SysMenu,function(){function a(e){_classCallCheck(this,a);var t=_possibleConstructorReturn(this,(a.__proto__||Object.getPrototypeOf(a)).call(this,e));return t.state=_extends({},e.values),t}return _inherits(a,_react2.default.Component),_createClass(a,[{key:"componentDidMount",value:function(){var t=this;_utilAxios2.default.get(url+"getModel?id="+this.state.id,{},function(e){t.setState(_extends({},e.data))})}},{key:"render",value:function(){var t=this;return _react2.default.createElement(_form2.default,{className:"form-view"},_react2.default.createElement("div",{className:"form-title"},_react2.default.createElement("i",null,title," - 详情"),_react2.default.createElement("span",null,_react2.default.createElement(_button2.default,{className:"btn-edit",onClick:function(e){t.props.onEdit(t.state)}},_react2.default.createElement("i",{className:"iconfont icon-edit"}),"编辑"))),_react2.default.createElement("div",{className:"form-content",style:{height:this.props.height}},_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:12},_react2.default.createElement("label",null,"上级菜单名称"),_react2.default.createElement("span",null,this.state.parentName)),_react2.default.createElement(_col2.default,{xs:12},_react2.default.createElement("label",null,"上级菜单Id"),_react2.default.createElement("span",null,this.state.parentId))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement("label",null,"菜单ID"),_react2.default.createElement("span",null,this.state.id))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement("label",null,"菜单名称"),_react2.default.createElement("span",null,this.state.name))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement("label",null,"菜单类型"),_react2.default.createElement("span",null,_utilDic2.default.json("app","菜单类型")[this.state.type]))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement("label",null,"样式"),_react2.default.createElement("span",null,this.state.className))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement("label",null,"图标"),_react2.default.createElement("span",null,this.state.imgSrc))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement("label",null,"参数"),_react2.default.createElement("span",null,this.state.params))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement("label",null,"Url"),_react2.default.createElement("span",null,this.state.url))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement("label",null,"CountUrl"),_react2.default.createElement("span",null,this.state.countUrl))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement("label",null,"接口权限"),_react2.default.createElement("span",null,this.state.permission))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement("label",null,"排序号"),_react2.default.createElement("span",null,this.state.ord)))),_react2.default.createElement("div",{className:"form-toolbar"},_react2.default.createElement(_button2.default,{className:"btn-return",onClick:this.props.onReturn},_react2.default.createElement("i",{className:"iconfont icon-return"}),"返回")))}}]),a}()),FormEdit=function(){function t(e){_classCallCheck(this,t);var l=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return l.onSave=function(t){var a=l;t.id=l.state.id,_utilAxios2.default.post(url+"save",t).then(function(e){e.success?(_message3.default.info(e.msg),a.props.onSave(t)):_message3.default.error(e.msg)}),l.props.onSave&&l.props.onSave()},l.state=_extends({},e.values),l.formRef=_react2.default.createRef(),l}return _inherits(t,_react2.default.Component),_createClass(t,[{key:"render",value:function(){return _react2.default.createElement("div",null,_react2.default.createElement(_form2.default,{ref:this.formRef,className:"form-edit",layout:"vertical",onFinish:this.onSave},_react2.default.createElement("div",{className:"form-title"},_react2.default.createElement("i",null," ",title," - ",this.state.id?"编辑":"录入"),this.state.id?_react2.default.createElement("span",null,_react2.default.createElement(_button2.default,{className:"btn-return",onClick:this.props.onEditReturn},_react2.default.createElement("i",{className:"iconfont icon-return"}),"返回")):""),_react2.default.createElement("div",{className:"form-content",style:{height:this.props.height}},_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:12},_react2.default.createElement(_form2.default.Item,{name:"parentName",label:"父级菜单",initialValue:this.state.parentName},_react2.default.createElement(_input2.default,null))),_react2.default.createElement(_col2.default,{xs:12},_react2.default.createElement(_form2.default.Item,{name:"parentId",label:"父级ID",initialValue:this.state.parentId},_react2.default.createElement(_input2.default,null)))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement(_form2.default.Item,{name:"name",label:"菜单名称",initialValue:this.state.name,rules:[{required:!0,message:"请输入菜单名称"}]},_react2.default.createElement(_input2.default,null)))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement(_form2.default.Item,{name:"type",label:"菜单类型",initialValue:this.state.type,rules:[{required:!0,message:"请输入菜单类型"}]},_react2.default.createElement(_dic2.default,{params:{app:"app",type:"菜单类型"}})))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement(_form2.default.Item,{name:"className",label:"样式",initialValue:this.state.className},_react2.default.createElement(_input2.default,null)))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement(_form2.default.Item,{name:"imgSrc",label:"图标",initialValue:this.state.imgSrc},_react2.default.createElement(_input2.default,null)))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement(_form2.default.Item,{name:"params",label:"参数",initialValue:this.state.params},_react2.default.createElement(_addParams2.default,null)))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement(_form2.default.Item,{name:"url",label:"Url",initialValue:this.state.url},_react2.default.createElement(_input2.default,null)))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement(_form2.default.Item,{name:"countUrl",label:"countUrl",initialValue:this.state.countUrl},_react2.default.createElement(_input2.default,null)))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement(_form2.default.Item,{name:"permission",label:"接口权限",initialValue:this.state.permission},_react2.default.createElement(_input2.default,null)))),_react2.default.createElement(_row2.default,null,_react2.default.createElement(_col2.default,{xs:24},_react2.default.createElement(_form2.default.Item,{name:"ord",label:"排序号",initialValue:this.state.ord,rules:[{required:!0,message:"请输入排序号"}]},_react2.default.createElement(_inputNumber2.default,{style:{width:"100%"}}))))),_react2.default.createElement("div",{className:"form-toolbar"},_react2.default.createElement(_button2.default,{className:"btn-cancel",onClick:this.props.onCancel},_react2.default.createElement("i",{className:"iconfont icon-cancel"}),"取消"),_react2.default.createElement(_button2.default,{className:"btn-submit",htmlType:"submit"},_react2.default.createElement("i",{className:"iconfont icon-submit"}),"提交"))))}}]),t}();