webpackJsonp([1],[,,function(e,t,n){var i=n(1)(n(147),null,null,null,null);e.exports=i.exports},,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var i=n(14),o=n.n(i),s=n(15),a=n.n(s),r=n(16),c=n.n(r),l=n(24),u=n.n(l),p=n(22),d=n.n(p),f=n(23),h=n.n(f),m=n(108),v=n(30),g="login_cache_key",x=function(e){function t(){a()(this,t);var e=u()(this,(t.__proto__||o()(t)).call(this));return e.settingKey=g,e}return h()(t,e),c()(t,[{key:"init",value:function(){d()(t.prototype.__proto__||o()(t.prototype),"init",this).call(this),this.doFlushSetting(g,m.a)}},{key:"userLogin",value:function(e){this.sendRequest("user-login",e)}},{key:"userRegister",value:function(e){this.sendRequest("user-register",e)}},{key:"getUserInfo",value:function(e){this.sendRequest("user-get",e)}},{key:"getCurLoginUserInfo",value:function(e){return this.sendRequest("user-cur-get",e)}},{key:"logout",value:function(e){this.sendRequest("user-logout",e)}}]),t}(v.a);t.a=x},,,,,,,,,function(e,t,n){"use strict";var i=n(14),o=n.n(i),s=n(15),a=n.n(s),r=n(16),c=n.n(r),l=n(24),u=n.n(l),p=n(22),d=n.n(p),f=n(23),h=n.n(f),m=n(101),v=n.n(m),g=n(103),x=n(104),y=n(3),I=(n.n(y),"cache-base"),b=function(e){function t(){a()(this,t);var e=u()(this,(t.__proto__||o()(t)).call(this));return e.globalCacheKey=I,e}return h()(t,e),c()(t,[{key:"init",value:function(){d()(t.prototype.__proto__||o()(t.prototype),"init",this).call(this),this.doFlushSetting(this.globalCacheKey,g.a),this.doMapStatusCode(x.a.httpStatus,x.a.clientCode)}},{key:"handleErrorCase",value:function(e,t){switch(e){case x.a.clientCode.CODE_WARM:setTimeout(function(){y.Message.info({title:"错误提示!",content:t.message})},500);break;case x.a.clientCode.CODE_ERROR:case x.a.clientCode.CODE_NO_AUTH:case x.a.clientCode.CODE_NO_PRIVILEGE:setTimeout(function(){y.Modal.error({title:"错误提示!",content:t.message})},500);break;case x.a.clientCode.CODE_INIT:location.href=location.protocol+"//"+location.host+"/#/install";break;default:console.log("code "+e+", message "+t.message)}}}]),t}(v.a);t.a=b},,,,,,,,,,function(e,t,n){function i(e){n(246)}var o=n(1)(n(151),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(233)}var o=n(1)(n(157),null,i,null,null);e.exports=o.exports},function(e,t,n){"use strict";var i=n(14),o=n.n(i),s=n(15),a=n.n(s),r=n(16),c=n.n(r),l=n(24),u=n.n(l),p=n(22),d=n.n(p),f=n(23),h=n.n(f),m=n(107),v=n(30),g="repo_cache_key",x=function(e){function t(){a()(this,t);var e=u()(this,(t.__proto__||o()(t)).call(this));return e.settingKey=g,e}return h()(t,e),c()(t,[{key:"init",value:function(){d()(t.prototype.__proto__||o()(t.prototype),"init",this).call(this),this.doFlushSetting(g,m.a)}},{key:"createRepo",value:function(e){this.sendRequest("repo-create",e)}},{key:"updateRepo",value:function(e){this.sendRequest("repo-update",e)}},{key:"getList",value:function(e){var t="repo-"+(e.extOpt.reqType?e.extOpt.reqType+"-":"")+"list";this.sendRequest(t,e)}},{key:"addIconToRepo",value:function(e){this.sendRequest("repo-add-icon",e)}},{key:"deleteIconFromRepo",value:function(e){this.sendRequest("repo-delete-icon",e)}},{key:"syncRepo",value:function(e){this.sendRequest("repo-sync",e)}},{key:"getRepoInfo",value:function(e){this.sendRequest("repo-get",e)}},{key:"addMember",value:function(e){this.sendRequest("repo-member-add",e)}}]),t}(v.a);t.a=x},,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var i=n(14),o=n.n(i),s=n(15),a=n.n(s),r=n(16),c=n.n(r),l=n(24),u=n.n(l),p=n(22),d=n.n(p),f=n(23),h=n.n(f),m=n(63),v=n(30),g="icon_cache_key",x=function(e){function t(){a()(this,t);var e=u()(this,(t.__proto__||o()(t)).call(this));return e.settingKey=g,e}return h()(t,e),c()(t,[{key:"init",value:function(){d()(t.prototype.__proto__||o()(t.prototype),"init",this).call(this),this.doFlushSetting(g,m.a)}},{key:"addItem",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t="icon-"+(e.extOpt.reqType?e.extOpt.reqType+"-":"")+"add";this.sendRequest(t,e)}},{key:"collectIcon",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sendRequest("icon-draft-collect",e)}},{key:"delete",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t="icon-"+(e.extOpt.reqType?e.extOpt.reqType+"-":"")+"delete";this.sendRequest(t,e)}},{key:"update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t="icon-"+(e.extOpt.reqType?e.extOpt.reqType+"-":"")+"update";this.sendRequest(t,e)}},{key:"download",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t="icon-"+(e.extOpt.reqType?e.extOpt.reqType+"-":"")+"download";this.sendRequest(t,e)}},{key:"getList",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t="icon-"+(e.extOpt.reqType?e.extOpt.reqType+"-":"")+"list";this.sendRequest(t,e)}},{key:"submitIconDraft2Icon",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sendRequest("icon-draft-to-icon",e)}}]),t}(v.a);t.a=x},function(e,t,n){"use strict";t.a={"icon-add":{url:"/api/icon/add",method:"post"},"icon-delete":{url:"/api/icon/delete/:iconId",method:"post",rest:!0},"icon-list":{url:"/api/icon/list/:userId",method:"get",rest:!0},"icon-download":{url:"/api/icon/download/:iconId",method:"get",rest:!0,ajax:!1,target:"_self"},"icon-draft-add":{url:"/api/icon/draft/add",method:"post"},"icon-draft-collect":{url:"/api/icon/draft/collect",method:"post"},"icon-draft-delete":{url:"/api/icon/draft/delete",method:"post"},"icon-draft-update":{url:"/api/icon/draft/update",method:"post"},"icon-draft-download":{url:"/api/icon/draft/download/:iconId",method:"get",rest:!0,ajax:!1,target:"_self"},"icon-draft-list":{url:"/api/icon/draft/list",method:"get"},"icon-draft-to-icon":{url:"/api/icon/draft/2icon",method:"post"}}},function(e,t,n){"use strict";var i=n(31),o=n.n(i),s=n(2),a=n.n(s);t.a=a.a.extend({data:function(){return{cache:this._getCacheInstance(),index:1,totalPageCount:1,totalCount:0,list:[]}},props:{listOpt:{type:Object,default:function(){return{pageIndex:1,pageSize:6}}},deleteOpt:Object,extOpt:{type:Object,default:function(){return{}}}},beforeCreate:function(){var e=this;this.$on("refresh",function(){e.getList()})},methods:{_getCacheInstance:function(){return this.cache},getList:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.cache.getList({params:o()({},this.listOpt,e.data),extOpt:o()({},this.extOpt,e.extOpt),onload:this.onGetList.bind(this)})},onGetList:function(e){e=e.result||{},this.list=e.list;var t=e.query||{};this.index=t.pageIndex,this.totalCount=t.totalCount,this.totalPageCount=t.totalPageCount,this.$emit("ongetlist",e),this.afterGetList(e)},go:function(e){this.listOpt.pageIndex=e,this.getList()},afterGetList:function(e){},delete:function(e){e.onload=e.onload||this.onDelete,this.cache.delete({data:o()({},this.deleteOpt,e.data),extOpt:o()({},this.extOpt,e.extOpt),onload:e.onload.bind(this)})},onDelete:function(e){this.$emit("refresh"),this.$emit("ondelete"),this.afterDelete(e)},afterDelete:function(e){},update:function(e){this.cache.update({data:o()({},this.deleteOpt,e.data),extOpt:o()({},this.extOpt,e.extOpt),onload:this.onUpdate.bind(this)})},download:function(e){this.cache.download({data:o()({},e.data),params:o()({},e.params),extOpt:o()({},this.extOpt,e.extOpt),onload:this.onUpdate.bind(this)})},onUpdate:function(e){this.$emit("refresh"),this.$emit("ondelete"),this.afterUpdate(e)},afterUpdate:function(e){}},created:function(){this.getList()}})},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){function i(e){n(257)}var o=n(1)(n(148),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(249)}var o=n(1)(n(153),null,i,null,null);e.exports=o.exports},function(e,t,n){"use strict";var i=n(43),o=n.n(i),s=n(181),a=n.n(s),r=n(180),c=n.n(r),l=n(31),u=n.n(l),p=n(15),d=n.n(p),f=n(16),h=n.n(f),m=n(122),v=n(124),g=n(123),x=function(){function e(){d()(this,e)}return h()(e,[{key:"install",value:function(e,t){this.config=t||{},this.defaultRules=u()(m.a,this.config.defaultRules),this.Vue=e,e.directive(this.config.directiveName||"check",{inserted:this.initCheck.bind(this),unbind:this.removeComp.bind(this)})}},{key:"initCheck",value:function(){function e(e,n,i){return t.apply(this,arguments)}var t=c()(a.a.mark(function e(t,n,i){var o,s,r,l,u=this;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(o={string:{type:n.value},array:{rules:n.value},object:n.value},s=o[g.a.typeof(n.value)]||{},r={checkType:s.type,rules:s.rules||[],checkAttr:s.checkAttr||this.config.defaultCheckAttr||"value",eventType:this.addEventPrefix(s.trigger||this.config.triggerEvent||(s.isRealTime?"change":"blur")),compIns:this.resolveComponentInstance(t,i),noGlobalHandler:s.noGlobalHandler,el:t,checkData:s,validator:v.a},l=g.a.getValueStepIn(r.checkAttr,r.compIns)||g.a.getValueStepIn(r.checkAttr,s),!s.checkInit){e.next=7;break}return e.next=7,this.check(l,r);case 7:r.compIns.$on(r.eventType,c()(a.a.mark(function e(){return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r.compIns.$nextTick(c()(a.a.mark(function e(){return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return l=g.a.getValueStepIn(r.checkAttr,r.compIns)||g.a.getValueStepIn(r.checkAttr,s),e.next=3,u.check(l,r);case 3:case"end":return e.stop()}},e,u)})));case 1:case"end":return e.stop()}},e,u)}))),this.addSelfToContainer(r);case 9:case"end":return e.stop()}},e,this)}));return e}()},{key:"check",value:function(){function e(e,n){return t.apply(this,arguments)}var t=c()(a.a.mark(function e(t,n){var i,o,s,r,c;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n.rules=(this.defaultRules[n.checkType]||[]).concat(n.rules),v.a[n.checkType]&&n.rules.unshift({type:n.checkType,message:((this.config.checkTypeText||{})[n.checkType]||{}).text||"value must match "+n.checkType}),i={success:!0,message:"",checkAttr:n.checkAttr},o=!0,s=void 0,0!==n.rules.length){e.next=7;break}return e.abrupt("return",i);case 7:r=0,c=n.rules.length;case 8:if(!(r0?o.a.reject(r):o.a.resolve(!0));case 18:case"end":return e.stop()}},e,this)}));return e}()},{key:"addSelfToContainer",value:function(e){var t=e.compIns.$parent,n=void 0;do{for(;t;){if(t.$refs[this.config.checkContainerRef||"checkContainer"]){t.$checkControls=t.$checkControls||[],t.$checkControls.push(u()(e,{parent:t})),t.$checkAll=this.checkAll.bind(this,t),t.$feedbackErrors=this.feedbackErrors.bind(this),e.compIns.$checkParent=t,t.$on("destroyed",this.cleanControls.bind(this,t)),n=!0;break}t=t.$parent}if(n)break}while(t)}},{key:"feedbackErrors",value:function(e,t,n){this.resultHandler(e,n,t)}},{key:"cleanControls",value:function(e){e.$checkControls=null}},{key:"resolveComponentInstance",value:function(e,t){var n=t.componentInstance;return g.a.isNullOrUndefined(n)?this.wrapComponentInstance(e,t):n}},{key:"wrapComponentInstance",value:function(e,t){var n=this,i=g.a.isTextInput(e)?["focus","input","change","blur"]:["change","select","click"];e=this.createVm(e,t,i);for(var o=0;o",components:{App:a.a}})},function(e,t,n){"use strict";t.a={upload:{url:"api/upload/file",method:"post"}}},function(e,t,n){"use strict";t.a={httpStatus:{CODE_INIT:[0],CODE_OK:[200,201,202,203,204,205,206],CODE_WARM:[100,101],CODE_ERROR:[500,501,502,503,504,505],CODE_NO_AUTH:[401],CODE_NO_PRIVILEGE:[403]},clientCode:{CODE_OK:0,CODE_WARM:-5,CODE_ERROR:-10,CODE_NO_AUTH:-30,CODE_NO_PRIVILEGE:-50,CODE_INIT:[-100]}}},function(e,t,n){"use strict";var i=n(14),o=n.n(i),s=n(15),a=n.n(s),r=n(16),c=n.n(r),l=n(24),u=n.n(l),p=n(22),d=n.n(p),f=n(23),h=n.n(f),m=n(106),v=n(30),g="common_cache_key",x=function(e){function t(){a()(this,t);var e=u()(this,(t.__proto__||o()(t)).call(this));return e.settingKey=g,e}return h()(t,e),c()(t,[{key:"init",value:function(){d()(t.prototype.__proto__||o()(t.prototype),"init",this).call(this),this.doFlushSetting(g,m.a)}},{key:"installApplication",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sendRequest("install-application",e)}}]),t}(v.a);t.a=x},function(e,t,n){"use strict";t.a={"install-application":{url:"/api/install",method:"post"}}},function(e,t,n){"use strict";t.a={"repo-create":{url:"/api/repo/add",method:"post"},"repo-update":{url:"/api/repo/:repoId/update",method:"post",rest:!0},"repo-list":{url:"/api/repo/list/:userId",method:"get",rest:!0},"repo-add-icon":{url:"/api/repo/add/icon",method:"post"},"repo-delete-icon":{url:"/api/repo/:repoId/:iconId/delete",method:"post",rest:!0},"repo-sync":{url:"/api/repo/:repoId/sync",method:"post",rest:!0},"repo-get":{url:"/api/repo/:repoId/get",method:"get",rest:!0},"repo-member-add":{url:"/api/repo/:repoId/member/add",method:"post",rest:!0},"repo-recommend-list":{url:"/api/repo/recommend/list",method:"get",rest:!0},"repo-recommend-add":{url:"/api/repo/recommend/add",method:"post",rest:!0},"repo-recommend-delete":{url:"/api/repo/recommend/delete",method:"post",rest:!0}}},function(e,t,n){"use strict";t.a={"user-login":{url:"/api/user/login",method:"post"},"user-register":{url:"/api/user/register",method:"post"},"user-cur-get":{url:"/api/user/get",method:"get"},"user-get":{url:"/api/user/:userId/get",method:"get",rest:!0},"user-logout":{url:"/api/user/logout",method:"post"}}},function(e,t,n){"use strict";var i=n(2),o=n.n(i);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App"}},props:{text:String},methods:{}})},function(e,t,n){"use strict";var i=n(2),o=n.n(i),s=n(63),a=n(3);n.n(a);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App",uploadIconPath:s.a["icon-draft-add"].url,totalCount:0}},components:{IUpload:a.Upload},methods:{uploadSuccess:function(e,t,n){if(e&&200!==e.code)return void this.$Message.error(e.message);this.$emit("onaddicon")},beforeUpload:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]},uploadFail:function(e,t,n){this.$Message.error(e),console.log(e)},uploadFormatError:function(e,t){this.$Message.error("请上传svg文件!")}}})},function(e,t,n){"use strict";var i=n(2),o=n.n(i);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App",selected:!1,isEdit:!1,preIconName:""}},computed:{userInfo:function(){return this.$store.state.webUser},isOwner:function(){return this.icon.ownerId===this.userInfo.userId}},props:{icon:Object,iconOperatorOptions:{type:Object,default:function(){return{allowCopy:!0,allowEdit:!0,allowDelete:!0,allowDownload:!0,allowCollect:!0}}},copyTextPrefix:{type:String,default:""},iconActiveSelected:{type:Boolean,default:!1},selectedAllIconFlag:{type:Boolean,default:!1}},watch:{selectedAllIconFlag:function(e,t){e!==t&&this.selectedIcon(e)}},methods:{deleteIcon:function(){var e=this;this.$Modal.confirm({content:"是否确定删除图标?",onOk:function(){e.$emit("delete",e.icon.iconId)}})},copyIconName:function(){this.$emit("copy",this.icon.iconName)},collectIcon:function(){this.$emit("collect",this.icon)},changeEditStatus:function(){this.isEdit=!0,this.preIconName=this.icon.iconName,this.$emit("editStatus",this.isEdit)},editIcon:function(){this.isEdit=!1,this.preIconName!==this.icon.iconName&&this.$emit("edit",this.icon)},selectedIcon:function(e){this.iconActiveSelected&&(this.selected=void 0===e?!this.selected:e,this.$emit(this.selected?"selected":"unselected",this.icon))},downloadIcon:function(){this.$emit("download",this.icon)}},created:function(){}})},function(e,t,n){"use strict";var i=n(64),o=n(62),s=n(351),a=n.n(s),r=n(95),c=n.n(r),l=n(3);n.n(l);t.a=i.a.extend({data:function(){return{list:[],selectedIcons:[],selectedAllIconFlag:!1}},components:{IconCard:a.a,IPage:l.Page,CommonEmpty:c.a},props:["listOpt","extOpt","iconOperatorOptions","iconActiveSelected","emptyText","copyTextPrefix"],computed:{userInfo:function(){return this.$store.state.webUser}},methods:{_getCacheInstance:function(){return new o.a},turnPage:function(e){this.go(e||1)},afterUpdate:function(e){this.$Message.success({content:e.message})},deleteIcon:function(e){this.$emit("delete-icon",e),(this.iconOperatorOptions||{}).popDelete||this.delete({data:{iconId:e}})},afterDelete:function(e){this.$Message.success({content:e.message})},updateIcon:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.update({data:{iconId:e.iconId,iconName:e.iconName}})},collectIcon:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.cache.collectIcon({data:t,onload:function(t){t.result?e.$Message.success("图标已收藏到 上传图标 中"):e.$Message.error(t.result.message||"收藏失败!")}})},selectedIcon:function(e){this.iconActiveSelected&&(this.selectedIcons.push(e),this.$emit("selected",e))},unselectedIcon:function(e){var t=this.selectedIcons.indexOf(e);-1!==t&&this.selectedIcons.splice(t,1),this.$emit("unselected",e)},selectedAllIcon:function(e){this.selectedAllIconFlag=e},downloadIcon:function(e){this.$emit("download",e),this.download({data:{},params:{iconId:e.iconId}})}}})},function(e,t,n){"use strict";var i=n(2),o=n.n(i);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App",coverIcons:[]}},props:{iconRepo:Object},computed:{userInfo:function(){return this.$store.state.webUser},isOwner:function(){return this.iconRepo.ownerId===this.userInfo.userId}},methods:{},created:function(){this.coverIcons=this.iconRepo.icons.slice(0,15)}})},function(e,t,n){"use strict";var i=n(64),o=n(42),s=n(352),a=n.n(s),r=n(95),c=n.n(r),l=n(3);n.n(l);t.a=i.a.extend({data:function(){return{list:[]}},components:{IconRepoCard:a.a,IPage:l.Page,CommonEmpty:c.a},props:["listOpt","extOpt"],computed:{userInfo:function(){return this.$store.state.webUser}},methods:{_getCacheInstance:function(){return new o.a},turnPage:function(e){this.go(e||1)}}})},function(e,t,n){"use strict";var i=n(32),o=n.n(i),s=n(2),a=n.n(s),r=n(354),c=n.n(r),l=n(355),u=n.n(l),p=n(3),d=(n.n(p),n(20));t.a=a.a.extend({data:function(){return{footerHide:!0}},components:{LoginForm:c.a,Modal:p.Modal,RegisterForm:u.a},computed:o()({},n.i(d.b)(["showLoginModal","loginDialogType"]),{showModal:{get:function(){return this.showLoginModal},set:function(e){this.$store.commit("showLoginModal",e)}}}),methods:{changeLoginType:function(e){this.$store.commit("loginDialogType",e)}}})},function(e,t,n){"use strict";var i=n(2),o=n.n(i),s=n(117),a=n(21),r=n(66),c=n.n(r),l=n(3);n.n(l);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App",userName:"",password:"",userNameErr:"",passwordErr:"",rules:s.a}},components:{IInput:l.Input,IButton:l.Button,IRow:l.Row,ICol:l.Col},methods:{submit:function(){var e=this;this.$checkAll().then(function(){e.cache.userLogin({data:{userName:e.userName,password:c()(e.password)},onload:e.loginSuccess.bind(e)})}).catch(function(e){console.log(e)})},loginSuccess:function(e){if(e.result)window.webUser=e.result,this.$store.commit("showLoginModal",!1),this.$store.commit("webUser",e.result);else for(var t in e.message)e.message.hasOwnProperty(t)&&this.$feedbackErrors(e.message[t],{compIns:this.$refs[t]})}},created:function(){this.cache=new a.a}})},function(e,t,n){"use strict";var i={userName:[{type:"isRequired",message:"请填写手机号码"},{type:"isMobilePhone",message:"请填写正确的手机号码"}],password:[{type:"isRequired",message:"请填写密码"}]};t.a=i},function(e,t,n){"use strict";var i=n(2),o=n.n(i),s=n(119),a=n(21),r=n(66),c=n.n(r),l=n(3);n.n(l);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App",userName:"",password:"",rePassword:"",rules:s.a}},components:{IInput:l.Input,IButton:l.Button,IRow:l.Row,ICol:l.Col},methods:{submit:function(){var e=this;this.$checkAll().then(function(){e.cache.userRegister({data:{userName:e.userName,password:c()(e.password),rePassword:c()(e.rePassword)},onload:e.registerSuccess.bind(e)})}).catch(function(t){for(var n in t.message)t.message.hasOwnProperty(n)&&e.$feedbackErrors(t.message[n],{compIns:e.$refs[n]})})},registerSuccess:function(e){if(e.result)window.webUser=e.result,this.$store.commit("showLoginModal",!1),this.$store.commit("webUser",e.result);else for(var t in e.message)e.message.hasOwnProperty(t)&&this.$feedbackErrors(e.message[t],{compIns:this.$refs[t]})}},created:function(){this.cache=new a.a}})},function(e,t,n){"use strict";var i={userName:[{type:"isRequired",message:"请填写手机号码"},{type:"isMobilePhone",message:"请填写正确的手机号码"}],password:[{type:"isFilled",message:"请填写密码"}],rePassword:[{type:"isFilled",message:"请确认密码"},{message:"两次输入密码不一致",method:function(e,t,n){return e===n.compIns.$checkParent.password}}]};t.a=i},function(e,t,n){"use strict";var i=n(2),o=n.n(i),s=n(3);n.n(s);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App",isSearching:!1,value:""}},props:{initValue:{type:String,default:""},placeholder:{type:String,default:"搜索全部图标"}},components:{IInput:s.Input,IButton:s.Button},watch:{value:function(e,t){e!==t&&(this.isSearching=!0)}},methods:{doSearch:function(){this.isSearching&&(this.isSearching=!1,this.$emit("search",this.value))}},created:function(){this.value=this.initValue}})},function(e,t,n){"use strict";var i=n(32),o=n.n(i),s=n(2),a=n.n(s),r=n(21),c=n(3),l=(n.n(c),n(20)),u=n(41),p=n.n(u);t.a=a.a.extend({name:"hello",components:{Poptip:c.Poptip,searchInput:p.a},data:function(){return{title:"Welcome to Icon App",menuList:[{moduleName:"indexHello",text:"首页",noNeedLogin:!0},{moduleName:"userRepoListModule",text:"我的图标库"},{moduleName:"userRepoAddModule",text:"创建图标库"},{moduleName:"userIconListModule",text:"我的图标"},{moduleName:"userIconAddModule",text:"上传图标"},{moduleName:"docsIntroduce",text:"帮助文档",noNeedLogin:!0}]}},computed:o()({},n.i(l.b)(["isLogin"]),{userInfo:function(){return this.$store.state.webUser},userPageInfoId:function(){return parseInt(this.$route.params.userId)},currentModuleName:function(){return this.$route.name},showSearchInput:function(){return"indexHello"!==this.currentModuleName},q:function(){return this.$route.params.q}}),methods:{login:function(e){this.$store.commit("loginDialogType",e),this.$store.commit("showLoginModal",!0)},logout:function(){this.cache.logout({data:{},onload:function(e){this.$store.commit("webUser",e.result)}.bind(this)})},getActiveTab:function(e){return this.currentModuleName===e&&this.userPageInfoId===this.userInfo.userId?"active":""},goModule:function(e,t){this.userInfo.userId||t?this.$router.push({name:e,params:{userId:this.userInfo.userId}}):this.userInfo.loginUrl?window.open(this.userInfo.loginUrl,"_self"):this.login("login")},search:function(e){this.$router.push({name:e?"searchQ":"search",params:{q:e}})}},created:function(){this.cache=new r.a({})}})},function(e,t,n){"use strict";t.a={}},function(e,t,n){"use strict";var i=n(85),o=n.n(i);t.a={isNullOrUndefined:function(e){return null===e||void 0===e},addEventListener:function(e,t,n){if(Array.isArray(t))for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:"").length>0},isFilled:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments[1];return a.a.trim(e,t.chars).length>0},isChinese:function(e){return r.test(e)},isCnLength:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments[1],n=(e||"").match(c)||[];return a.a.isLength(e+n.join(""),t.options)},isIdCard:function(e){return u.test(e)},isQQ:function(e){return l.test(e)},isBasePassword:function(e){return p.test(e)},isSafePassword:function(e){return d.test(e)},contains:function(e,t){return a.a.contains(e,t.seed||"")},equals:function(e,t){return a.a.equals(e,t.comparison||"")},isAfter:function(e,t){return a.a.isAfter(e,t.now)},isBefore:function(e,t){return a.a.isBefore(e,t.now)},isAlpha:function(e,t){return a.a.isAlpha(e,t.locale)},isAlphanumeric:function(e,t){return a.a.isAlphanumeric(e,t.locale)},isByteLength:function(e,t){return a.a.isByteLength(e,t.options)},isCurrency:function(e,t){return a.a.isCurrency(e,t.options)},isDecimal:function(e,t){return a.a.isDecimal(e,t.options)},isDivisibleBy:function(e,t){return a.a.isDivisibleBy(e,t.number||1)},isEmail:function(e,t){return a.a.isEmail(e,t.options)},isFQDN:function(e,t){return a.a.isFQDN(e,t.options)},isFloat:function(e,t){return a.a.isFloat(e,t.options)},isHash:function(e,t){return a.a.isHash(e,t.algorithm||"md5")},isIP:function(e,t){return a.a.isIP(e,t.version)},isISBN:function(e,t){return a.a.isISBN(e,t.version)},isISSN:function(e,t){return a.a.isISSN(e,t.options)},isIn:function(e,t){return a.a.isIn(e,t.values||[])},isInt:function(e,t){return a.a.isInt(e,t.options)},isLength:function(e,t){return a.a.isLength(e,t.options)},isMobilePhone:function(e,t){return a.a.isMobilePhone(e,t.locale||"zh-CN",t.options)},isPostalCode:function(e,t){return a.a.isPostalCode(e,t.locale||"zh-CN")},isURL:function(e,t){return a.a.isURL(e,t.options)},isUUID:function(e,t){return a.a.isUUID(e,t.version)},isWhitelisted:function(e,t){return a.a.isWhitelisted(e,t.chars)},matches:function(e,t){return a.a.matches(e,t.pattern||t.reg||"",t.modifiers)}})},function(e,t,n){"use strict";var i=n(2),o=n.n(i);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App"}},methods:{}})},function(e,t,n){"use strict";var i=n(2),o=n.n(i),s=n(3);n.n(s);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App",code:"asdfa"}},computed:{currentRouterPath:function(){return this.$route.fullPath}},components:{Collapse:s.Collapse,Panel:s.Panel},methods:{}})},function(e,t,n){"use strict";var i=n(2),o=n.n(i);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App"}},methods:{}})},function(e,t,n){"use strict";var i=n(2),o=n.n(i),s=n(96),a=n.n(s),r=n(41),c=n.n(r);t.a=o.a.extend({name:"hello",data:function(){return{msg:"Welcome to Your Icon Library",value:"",listOpt:{pageSize:8,pageIndex:1,userId:"all"},extOpt:{reqType:"recommend"}}},components:{iconRepoList:a.a,searchInput:c.a},methods:{search:function(e){this.$router.push({name:"searchQ",params:{q:e}})}}})},function(e,t,n){"use strict";var i=n(2),o=n.n(i),s=n(3);n.n(s);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App",menus:[{label:"功能介绍",name:"docsIntroduce",content:"功能介绍",icon:"ios-paper"},{label:"图标绘制",name:"docsIconMaker",content:"图标绘制",icon:"hammer"},{label:"常见问题",name:"docsTrouble",content:"常见问题",icon:"settings"}]}},components:{IMenu:s.Menu,IMenuItem:s.MenuItem,Icon:s.Icon},computed:{currentRouterPathName:function(){return this.$route.name||this.tabs[0].name},currentRouterPath:function(){return this.$route.fullPath}},methods:{changeTab:function(e){this.$router.push({name:e})}}})},function(e,t,n){"use strict";var i=n(2),o=n.n(i),s=n(105),a=n(3);n.n(a);t.a=o.a.extend({data:function(){return{config:[{name:"MONGODB_NAME",value:"iconRepo",description:"mongo数据库名称",necessary:!0},{name:"MONGODB_HOST",value:"127.0.0.1",description:"mongo数据库IP",necessary:!0},{name:"MONGODB_PORT",value:"27017",description:"mongo数据库端口",necessary:!0},{name:"MONGODB_USERNAME",value:"",description:"mongo数据库用户名",necessary:!0},{name:"MONGODB_PASSWORD",value:"",description:"mongo数据库密码",necessary:!0},{name:"REDIS_HOST",value:"127.0.0.1",description:"redis数据库IP",necessary:!0},{name:"REDIS_PORT",value:"6379",description:"redis数据库端口",necessary:!0},{name:"REDIS_PASSWORD",value:"",description:"redis数据库密码",necessary:!0},{name:"productHost",value:"icon.bolin.site",description:"访问网站host",necessary:!0},{name:"productType",value:"default",description:"产品类型,自定义上传服务与登录服务文件夹名称,不使用则默认",necessary:!0}],login:{index:"",config:""},upload:{index:"",config:""},uploadPlaceholder:"\n // index.js\n \n let config = require('./config');\n let qiniu = require('qiniu');\n \n class QiniuUpload {\n async upload (dirPath) {\n let fontMap = await this.uploadFonts(dirPath);\n // 上传font完毕后替换css中的引用\n let cssContent = await this.replaceFontsInCss(dirPath, fontMap);\n let cssUrl = await this.uploadCss(dirPath, cssContent);\n \n // 上传返回数据格式\n return {\n url: cssUrl, // 必须\n cssContent: cssContent // 必须\n };\n }\n }\n \n let uploadIns = new QiniuUpload();\n module.exports = uploadIns.upload.bind(uploadIns);\n ",loginPlaceholder:"\n // index.js\n \n require('request');\n let rp = require('request-promise');\n let config = require('./config');\n \n class GithubOpenIdLogin {\n async login (ctx) {\n return this.getUserBaseInfo(ctx);\n }\n \n async getUserBaseInfo (ctx) {\n // your code\n \n // login 方法返回的数据格式\n return {\n userName: tokenInfo.sub, // 必须且唯一\n password: tokenInfo.sub,\n email: openIdUserInfo.email,\n nickName: openIdUserInfo.nickname,\n fullName: openIdUserInfo.fullname\n }\n }\n }\n \n let loginIns = new GithubOpenIdLogin();\n module.exports = loginIns.login.bind(loginIns);\n ",configPlaceholder:"\n let pe = process.env;\n \n module.exports = {\n accessKey: pe.QINIU_UPLOAD_ACCESS_KEY,\n secretKey: pe.QINIU_UPLOAD_SECRET_KEY,\n bucket: pe.QINIU_UPLOAD_BUCKET,\n cdnHost: pe.QINIU_UPLOAD_CDN_HOST\n };"}},components:{IInput:a.Input,IButton:a.Button,IRow:a.Row,ICol:a.Col,ITabs:a.Tabs,ITabPane:a.TabPane},methods:{addItem:function(){this.config.push({name:"",value:"",description:""})},deleteItem:function(e){this.config.splice(e,1)},submit:function(){var e=this,t={config:this.config.filter(function(e){return""!==e.value}),login:this.login,upload:this.upload};this.cache.installApplication({data:t,onload:function(t){if(t.result){var n=5,i=setInterval(function(){n>0?n--:(clearInterval(i),location.href=location.protocol+"//"+location.host)},1e3);e.$Modal.success({title:"提示",content:"应用将在"+n+"秒之后自动重启"})}}})}},created:function(){this.cache=new s.a({})}})},function(e,t,n){"use strict";var i=n(2),o=n.n(i),s=n(40),a=n.n(s);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App",listOpt:{pageSize:60,pageIndex:1,userId:"all",q:this.$route.params.q},totalCount:0,iconControl:{iconActiveSelected:!0,iconOperatorOptions:{allowCopy:!0,allowEdit:!1,allowDelete:!1,allowDownload:!0,allowCollect:!0}}}},components:{IconList:a.a},methods:{updateIconCount:function(e){this.totalCount=(e.query||{}).totalCount||0}}})},function(e,t,n){"use strict";var i=n(2),o=n.n(i),s=n(21),a=n(3);n.n(a);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App",tabs:[{label:"图标库",name:"userRepoListModule",content:"图标库"},{label:"图标",name:"userIconListModule",content:"图标"}],user:{}}},components:{IInput:a.Input,IButton:a.Button,Modal:a.Modal,Message:a.Message,IRow:a.Row,ICol:a.Col,RadioGroup:a.RadioGroup,IRadio:a.Radio,IMenu:a.Menu,IMenuItem:a.MenuItem},computed:{userInfo:function(){return this.$store.state.webUser},currentRouterPathName:function(){return this.$route.name||this.tabs[0].name},currentRouterPath:function(){return this.$route.fullPath},isOwner:function(){return this.userInfo.userId===this.user.userId}},methods:{changeTab:function(e){this.$router.push({name:e})}},created:function(){this.cache=new s.a({}),this.$route.params.userId&&this.cache.getUserInfo({data:{},params:{userId:this.$route.params.userId},onload:function(e){this.user=e.result}.bind(this)})}})},function(e,t,n){"use strict";var i=n(2),o=n.n(i),s=n(350),a=n.n(s),r=n(40),c=n.n(r),l=n(62),u=n(3);n.n(u);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App",getListTimer:null,disabledSubmitBtn:!1,listOpt:{pageSize:500},extOpt:{reqType:"draft"},totalCount:0,iconOperatorOptions:{allowCopy:!0,allowEdit:!0,allowDelete:!0,allowDownload:!0,allowCollect:!1}}},components:{IconAdd:a.a,IconList:c.a,IButton:u.Button},methods:{updateIconCount:function(e){this.totalCount=(e.query||{}).totalCount||0},updateIconList:function(){clearTimeout(this.getListTimer),this.getListTimer=setTimeout(function(){this.$refs.iconList.getList()}.bind(this),300)},submit:function(e){this.disabledSubmitBtn=!0,this.cache.submitIconDraft2Icon({data:{repoId:this.$route.params.repoId,resetColor:e},onload:this.submitSuccess.bind(this)})},submitSuccess:function(e){var t=this;this.disabledSubmitBtn=!1,e.result?(this.$Message.success("提交成功!"),setTimeout(function(){t.$route.params.repoId?t.$router.push({name:"userRepoDetailModule",params:{repoId:t.$route.params.repoId}}):t.$router.push({name:"userIconListModule"})},500)):this.$Message.error(e.message)}},created:function(){this.cache=new l.a({})}})},function(e,t,n){"use strict";var i=n(2),o=n.n(i);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App"}},components:{},computed:{userInfo:function(){return this.$store.state.webUser},currentRouter:function(){return this.$router.currentRoute.name||this.tabs[0].name}},methods:{}})},function(e,t,n){"use strict";var i=n(2),o=n.n(i),s=n(40),a=n.n(s),r=n(41),c=n.n(r),l=n(3);n.n(l);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App",listOpt:{pageSize:60,userId:this.$route.params.userId,q:""},totalCount:0}},components:{IconList:a.a,IButton:l.Button,IRadio:l.Radio,ISelect:l.Select,IOption:l.Option,searchInput:c.a},computed:{userInfo:function(){return this.$store.state.webUser},iconOperatorOptions:function(){return{allowCopy:!0,allowEdit:!1,allowDelete:this.userInfo.userId===parseInt(this.$route.params.userId),allowDownload:!0,allowCollect:!0}}},methods:{updateIconCount:function(e){this.totalCount=(e.query||{}).totalCount||0},search:function(e){this.listOpt.q=e,this.listOpt.pageIndex=1,this.$refs.userIconList.getList()}}})},function(e,t,n){"use strict";var i=n(32),o=n.n(i),s=n(2),a=n.n(s),r=n(137),c=n(42),l=n(20),u=n(3);n.n(u);t.a=a.a.extend({data:function(){return{repoName:"",iconPrefix:"",repoDescription:"",rules:r.a,isLoading:!1,isEdit:!1}},components:{IInput:u.Input,IButton:u.Button,Modal:u.Modal,Message:u.Message,IRow:u.Row,ICol:u.Col,RadioGroup:u.RadioGroup,IRadio:u.Radio},computed:o()({},n.i(l.b)(["webUser"])),methods:{submit:function(){var e=this;this.$checkAll().then(function(){e.isLoading=!0;var t={repoName:e.repoName,iconPrefix:e.iconPrefix,repoDescription:e.repoDescription,userId:e.webUser.userId,repoId:e.$route.params.repoId};e.isEdit?e.cache.updateRepo({data:t,onload:e.createSuccess.bind(e),onerror:function(){this.isLoading=!1}.bind(e)}):e.cache.createRepo({data:t,onload:e.createSuccess.bind(e),onerror:function(){this.isLoading=!1}.bind(e)})}).catch(function(e){console.log(e)})},createSuccess:function(e){var t=this;e.result?(this.$Message.success(e.message||"创建成功!"),setTimeout(function(){t.$router.push({name:"userRepoListModule",params:{userId:t.webUser.userId}})})):this.isLoading=!1},getRepoInfo:function(){var e=this;this.cache.getRepoInfo({data:{repoId:e.$route.params.repoId},onload:function(t){t.result&&(e.repoName=t.result.repoName,e.iconPrefix=t.result.iconPrefix,e.repoDescription=t.result.repoDescription)}})}},created:function(){this.cache=new c.a,this.$route.params.repoId&&(this.isEdit=!0,this.getRepoInfo())}})},function(e,t,n){"use strict";var i=n(43),o=n.n(i),s={repoName:[{type:"isRequired",message:"请填写仓库名称"}],iconPrefix:[{type:"isRequired",message:"请填写字体图标类型前缀"},{type:"is",reg:/^[a-zA-Z_-]+$/,message:"请填写正确格式的字体图标类型前缀"}],repoDescription:[{message:"描述不能超过300字",options:{min:0,max:300},method:function(e,t,n){return new o.a(function(i,o){setTimeout(function(){i({success:n.validator.isCnLength(e,t),message:t.message})},100)})}}]};t.a=s},function(e,t,n){"use strict";var i=n(2),o=n.n(i);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App"}},components:{},computed:{userInfo:function(){return this.$store.state.webUser},currentRouter:function(){return this.$router.currentRoute.name||this.tabs[0].name},currentRouterPath:function(){return this.$route.fullPath}},methods:{changeTab:function(e){this.$router.push({name:e})}}})},function(e,t,n){"use strict";var i=n(2),o=n.n(i),s=n(40),a=n.n(s),r=n(41),c=n.n(r),l=n(42),u=n(3);n.n(u);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App",listOpt:{pageSize:60,pageIndex:1,userId:this.$route.params.userId,repoId:(this.$route.params||{}).repoId},totalCount:0,repo:{},showIconListDialog:!1,selectedAllIconFlag:!1,isSyncRepo:!1,member:{addMemberStatus:!1,accountType:5,typeList:[{value:5,text:"用户名称"},{value:1,text:"用户Id"}],account:""}}},components:{IconList:a.a,Modal:u.Modal,IInput:u.Input,ISelect:u.Select,IOption:u.Option,IButton:u.Button,ICheckbox:u.Checkbox,searchInput:c.a},computed:{userInfo:function(){return this.$store.state.webUser},listOptUnique:function(){return{pageSize:500,pageIndex:1,userId:this.userInfo.userId,repoId:(this.$route.params||{}).repoId,unique:!0}},iconControl:function(){return{iconActiveSelected:!0,iconOperatorOptions:{allowCopy:!0,allowEdit:!1,allowDelete:this.repo.isMember,allowDownload:!0,allowCollect:!0,popDelete:!0}}}},methods:{getRepoInfo:function(){var e=this;this.cache.getRepoInfo({data:{repoId:this.listOpt.repoId},onload:function(t){e.repo=t.result,e.repo.unSync?e.syncRepo():e.updateFontStyle(t.result.cssUrl)}})},deleteIcon:function(e){this.cache.deleteIconFromRepo({data:{iconId:e,repoId:this.listOpt.repoId},onload:function(e){e.result?(this.$Message.success(e.message||"删除成功,请保存更新!"),this.$refs.repoIconList.getList(),this.getRepoInfo()):this.$Message.error(e.message)}.bind(this)})},selectAllIcon:function(){this.$refs.addIconListRef.selectedAllIcon(this.selectedAllIconFlag)},addIconToRepo:function(){var e=this.$refs.addIconListRef.selectedIcons;e=e.map(function(e){return{iconId:e.iconId,iconName:e.iconName}}),this.cache.addIconToRepo({data:{icons:e,userId:this.userInfo.userId,repoId:this.listOpt.repoId},onload:function(e){this.$Message.success(e.message||"添加成功,请保存更新!"),this.$refs.repoIconList.getList(),this.getRepoInfo()}.bind(this)})},syncRepo:function(){this.isSyncRepo=!0,this.cache.syncRepo({data:{repoId:this.listOpt.repoId},onload:function(e){this.$Message.success(e.message||"保存更新成功!"),this.isSyncRepo=!1,this.repo.unSync=!1,this.repo.cssUrl=e.result.url,this.updateFontStyle(e.result.url)}.bind(this)})},addMember:function(){this.member.account||this.$Message.error("请输入用户Id或邮箱!"),this.cache.addMember({data:{repoId:this.listOpt.repoId,accountType:this.member.accountType,account:this.member.account},onload:function(e){e.result?(this.$Message.success(e.message||"添加成功!"),this.member.account=""):this.$Message.error(e.message)}.bind(this)})},search:function(e){this.listOpt.q=e,this.listOpt.pageIndex=1,this.$refs.repoIconList.getList()},uniqueSearch:function(e){this.listOptUnique.q=e,this.listOpt.pageIndex=1,this.$refs.addIconListRef.getList()},insertFontStyle:function(e){var t=document.createElement("link");t.rel="stylesheet",t.id="currentRepoFontStyle",t.href=e,document.getElementsByTagName("head").item(0).appendChild(t)},updateFontStyle:function(e){if(e){var t=document.getElementById("currentRepoFontStyle");t?t.href=e:this.insertFontStyle(e)}}},created:function(){this.cache=new l.a({}),this.getRepoInfo()}})},function(e,t,n){"use strict";var i=n(2),o=n.n(i),s=n(96),a=n.n(s);t.a=o.a.extend({data:function(){return{title:"Welcome to Icon App",listOpt:{pageSize:8,pageIndex:1,userId:this.$route.params.userId},totalCount:0}},components:{IconRepoList:a.a},computed:{userInfo:function(){return this.$store.state.webUser}},methods:{changeTab:function(e){this.$router.push({name:e})},updateRepoCount:function(e){this.totalCount=(e.query||{}).totalCount||0}}})},function(e,t,n){"use strict";var i=n(361),o=n.n(i),s=n(358),a=n.n(s),r=n(359),c=n.n(r),l=n(357),u=n.n(l);t.a=[{path:"/docs",name:"docs",component:o.a,children:[{path:"/docs/introduce",name:"docsIntroduce",component:a.a},{path:"/docs/trouble",name:"docsTrouble",component:c.a},{path:"/docs/iconMaker",name:"docsIconMaker",component:u.a}]}]},function(e,t,n){"use strict";var i=n(360),o=n.n(i);t.a=[{path:"/",name:"indexHello",component:o.a}]},function(e,t,n){"use strict";var i=n(362),o=n.n(i);t.a=[{path:"/install",name:"install",component:o.a}]},function(e,t,n){"use strict";var i=n(363),o=n.n(i);t.a=[{path:"/search",name:"search",component:o.a,children:[{path:"/search/:q",name:"searchQ",component:o.a}]}]},function(e,t,n){"use strict";var i=n(371),o=n.n(i),s=n(370),a=n.n(s),r=n(369),c=n.n(r),l=n(367),u=n.n(l),p=n(368),d=n.n(p),f=n(366),h=n.n(f),m=n(365),v=n.n(m),g=n(364),x=n.n(g);t.a=[{path:"/user/:userId",name:"userPage",component:o.a,children:[{path:"/user/:userId/repo",name:"userRepoModule",component:a.a,children:[{path:"/user/:userId/repo/list",name:"userRepoListModule",component:c.a},{path:"/user/repo/add",name:"userRepoAddModule",component:u.a},{path:"/user/:userId/repo/:repoId/edit",name:"userRepoEditModule",component:u.a},{path:"/user/:userId/repo/:repoId",name:"userRepoDetailModule",component:d.a}]},{path:"/user/:userId/icon",name:"userIconModule",component:h.a,children:[{path:"/user/:userId/icon/list",name:"userIconListModule",component:v.a},{path:"/user/:userId/icon/add",name:"userIconAddModule",component:x.a},{path:"/user/:userId/icon/add/:repoId",name:"userIconAdd2RepoModule",component:x.a}]}]}]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(32),o=n.n(i),s=n(2),a=n.n(s),r=n(232),c=(n.n(r),n(20)),l=n(356),u=n.n(l),p=n(353),d=n.n(p),f=n(21),h=n(183),m=n.n(h);t.default=a.a.extend({name:"app",components:{TopBar:u.a,LoginDialog:d.a},computed:o()({},n.i(c.b)(["showLoginModal"]),{currentRouterPath:function(){return this.$route.fullPath}}),methods:{onGetUserInfo:function(e){window.webUser=e.result,this.$store.commit("webUser",e.result)}},created:function(){var e=this;this.userCache=new f.a({}),this.userCache.getCurLoginUserInfo({data:{},onload:this.onGetUserInfo.bind(this)}),this.clipBoardIns||(this.clipBoardIns=new m.a(".copy-button",{text:function(e){return e.getAttribute("data-copy")}}),this.clipBoardIns.on("success",function(t){e.$Message.success("拷贝成功!"),t.clearSelection()}),this.clipBoardIns.on("error",function(e){this.$Message.error("此浏览器不支持拷贝,请更换chrome浏览器"),e.clearSelection()}))}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(29);t.default=i.default.extend({data:function(){return{}},filters:{capitalize:function(e){return e?(e=e.toString(),e.charAt(0).toUpperCase()+e.slice(1)):""},toDate:function(e){return e=e||new Date,new Date(e).toLocaleDateString()}}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(109);t.default=i.a.extend({name:"common-empty",template:n(262)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(110);t.default=i.a.extend({name:"common-icon-add",template:n(263)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(111);t.default=i.a.extend({name:"common-icon-card",template:n(264)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(112);t.default=i.a.extend({name:"common-icon-list",template:n(265)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(113);t.default=i.a.extend({name:"icon-repo-card",template:n(266)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(114);t.default=i.a.extend({name:"common-icon-repo-list",template:n(267)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(115);t.default=i.a.extend({name:"login-dialog",template:n(268)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(116);t.default=i.a.extend({name:"login-form",template:n(269)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(118);t.default=i.a.extend({name:"register-form",template:n(270)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(120);t.default=i.a.extend({name:"common-search-input",template:n(271)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(121);t.default=i.a.extend({name:"top-bar",template:n(272)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(125);t.default=i.a.extend({name:"docs-icon-maker",template:n(273)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(126);t.default=i.a.extend({name:"docs-introduce",template:n(274)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(127);t.default=i.a.extend({name:"docs-trouble",template:n(275)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(128);t.default=i.a.extend({name:"index-index-hello",template:n(276)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(129);t.default=i.a.extend({name:"docs",template:n(277)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(130);t.default=i.a.extend({name:"install",template:n(278)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(131);t.default=i.a.extend({name:"docs",template:n(279)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(133);t.default=i.a.extend({name:"user-icon-add",template:n(281)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(135);t.default=i.a.extend({name:"user-icon-list",template:n(283)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(134);t.default=i.a.extend({name:"user-icon",template:n(282)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(136);t.default=i.a.extend({name:"repo-add",template:n(284)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(139);t.default=i.a.extend({name:"user-repo-list",template:n(286)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(140);t.default=i.a.extend({name:"user-repo-list",template:n(287)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(138);t.default=i.a.extend({name:"user-page",template:n(285)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(132);t.default=i.a.extend({name:"user-module",template:n(280)})},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},,,function(e,t){e.exports="

{{ text || '什么都没有!!!' }}

"},function(e,t){e.exports="

将SVG文件拖拽至此,或点此上传

"},function(e,t){e.exports='
{{ icon.iconName }}
'},function(e,t){e.exports='
'},function(e,t){e.exports='

暂无图标!

{{ iconRepo.repoName }} {{ iconRepo.iconCount || iconRepo.icons.length }} icons
{{ iconRepo.createTime | toDate}} 删除 编辑 {{ iconRepo.iconPrefix}}
'},function(e,t){e.exports='
'},function(e,t){e.exports=" "},function(e,t){e.exports=" "},function(e,t){e.exports="
注册
"},function(e,t){e.exports="
"},function(e,t){e.exports='
  • {{ item.text }}
'},function(e,t){e.exports='

图标绘制

闭合 图形需要封闭,不能有出现未闭合图形 合并 如果有两个以上图形,或者有布尔关系 的图形,请对图形合并并且扩展 大小 在限定边框内绘制完成图形,尽量撑满绘 制区域,以16X16点阵作为对齐以及细节 参考 节点 图形尽量减少节点使用,简化图形去除 无用节点 填色 完成设计的图形需要填充相关的颜色, 建议用纯色(不支持渐变、透明度) 轮廓化 将描边转化为闭合图形,选择要转换的 描边,对象-路径-轮廓化描边
1. 下载原文件 图标制作模板.AI
图标在绘制时均以标准图标大小16x16px绘制,因为在制作成字体时文件需要 设置较高的清晰度,所以图标路径也需要等比例放大。
2. 设置图标大小
设计师可以直接将画好的图标路径复制到模版里,根据模板的辅助线,对图标 进行位置的调节,居中,四周等距,保证图标的统一。
3. 另存为svg格式
存储为:位置:存储为:ai 规范 file .ai原文件Adobe IIIustrator (ai)IIIustrator EPS (eps)IIIustrator Template (ait)Adobe PDF (pdf)SVG 压缩 (svgz)SVG (svg)格式
'},function(e,t){e.exports='

功能介绍

简介

在字体图标日渐流行的今天,大家使用字体图标的方式多种多样,但是都只注重使用的方式却不注重来源与管理。而我们需要的是设计师与前端工程师能共同使用且集管理、自动生成前端可用图标等功能与一身的平台,因为图标是由设计师提供,前端使用的,如果只适用某一方那必定不能投入工程中使用。

现有的字体图标管理平台做的比较好的有icomoon与阿里的iconfont。icomoon不熟,iconfont的项目功能可以实现这个功能,其他的功能也实现的也比较好,个人项目使用的确好。但是别人的再好也不如自己的好,所以结合我们使用情况就参照iconfont徒手撸了一个字体图标管理平台,基本可以解决以下问题:

1. 解决设计图标管理、共享问题,实现图标统一管理,重复利用,查找方便
2. 减少设计师与前端的交流时间成本。新增图标设计师上传平台确认没问题后再通知前端使用,避免因图标错误来回折腾
3. 统一优化、生成图标,去掉前端手动操作流程,节约时间成本
4. 众多好处, 一言难尽.......

使用流程图

使用步骤


1. 创建一个图标库

2. 上传图标。此阶段为图标草稿阶段,可进行删除、修改,确保图标名称唯一,点击保存上传之后,才可以加入图标库,如果不保存或者删除,则一直存留为草稿。

3. 把图标加入到图标库,保存更新。进入到指定图标库后,点击添加图标并选定需要添加的图标,确认之后出现保存更新按钮,点击就会生成新的图标文件,完成

4. 把css文件复制到前端工程中或者使用脚本自动导出所需格式文件

前端使用方式


图标管理平台提供了三种图标使用方式, font class、svg files、svg sprite三种方式,可导出的资源类型包括css资源文件链接, css资源文件内容,svg文件内容,svg sprite 文件内容,各个工程可以根据自己的使用方式使用脚本导出合适的资源类型。

可以使用配套的工具 neicon-tool 来获取资源,简单方便、配置灵活。 或者有特殊需求的话可以把自动脚本拷贝到工程,并配置自己工程所需的资源类型配置,执行自动获取、替换资源脚本 配置、资源脚本

font-class引用
1. 配置脚本的资源配置type为cssUrl(外链)或者cssContent(內联),运行脚本获取资源文件
2. 挑选相应图标并获取字体编码,应用于页面
<i class="图标前缀-图标名称"></i>

svg文件使用
1. 配置脚本的资源配置type为svg,运行脚本获取svg文件到指定目录
2. 经过二次处理或直接使用、比如base64或其他方式

svg sprite使用方式
1. 配置脚本的资源配置type为svgSprite,运行脚本获取svgSprite 內联到html文件中
2. 挑选相应图标并获取类名,应用于页面
<svg class="icon" aria-hidden="true">
  <use xlink:href="#图标前缀-图标名称"></use>
</svg>

这样使用的方式稍微麻烦,建议封装成组件传id就好,比如 <icon id="图标前缀-图标名称"></icon>

'},function(e,t){e.exports='

常见问题

'},function(e,t){e.exports='
'},function(e,t){e.exports='
{{ item.label }}
'},function(e,t){e.exports='

启动数据配置

以下基本数据配置完成之后,理论山nicon服务就可以正常启动,连接上数据库提供服务了。但是如果需要自定义上传与登录服务时,需要添加额外的参数,添加的所有参数最终会在nicon工程目录中生成 /bin/start.sh文件,当应用启动时,以下所有参数都会加入到环境变量 process.env中,如需可取,如果需要配置错误需重新配置,只需要停掉服务、删掉工程中的/bin/start.sh文件, 再重新启动访问后就可以跳转到该页面再进行重新安装

字段: 值: 备注:

当需要非三方的登录、上传服务时,需要配置 productType的值,productType值的规则为 login[_upload]。 比如需要github三方登录,七牛的上传存储服务时,productType的值为 github_qiniu,即登录、上传服务的两两组合, 而当登录、上传类型的名称相同时,只需要login的名称就行,比如登录、上传服务都为netease,那么 productTypenetease即可。目前该工程中提供登录服务有两种 defaultgithub,上传服务有两种 defaultgithub,那么按照 login_upload的组合就有4中方式,如果 productType的值为以上四种组合,那么无需配置以下的登录、上传服务的代码,否者则需要配置

登录服务代码配置

需要接入自定义登录服务时,需要自己实现登录逻辑,并且登录的逻辑代码需要自己实现。代码中需要导出指定方法并且该方法需返回指定参数即可。当 productType不为 defaultgithub_qiniu等已经存在的服务时,才需要配置该文件

上传服务代码配置

需要接入自定义上传服务时,需要自己实现上传逻辑,并且上传的逻辑代码需要自己实现。代码中需要导出指定方法并且该方法需返回指定参数即可。当 productType不为 defaultgithub_qiniu等已经存在的服务时,才需要配置该文件

提交
'},function(e,t){e.exports=" "},function(e,t){e.exports='
'},function(e,t){e.exports='

图标草稿上传 已上传{{ totalCount }}个图标

注意:本次保存上传将会直接添加到图标库: 《{{ $route.params.repoName }}》中,中文图标名称会转为拼音

提示:中文图标名称会转为拼音!

去除颜色上传 保留颜色上传
'},function(e,t){e.exports="
"},function(e,t){e.exports='

共{{ totalCount }}个图标

'},function(e,t){e.exports="

{{ isEdit ? '更新图标库' : '新建图标库' }}

图标库名称 图标Icon前缀 图标库描述
确认提交
"},function(e,t){e.exports="
"},function(e,t){e.exports='
{{ repo.repoName }} {{ repo.iconPrefix }} {{ (repo.iconIds || {}).length || 0 }}
添加图标 添加成员
{{ item.text }} 添加
保存更新 编辑
复制链接
全选 从电脑上传
'},function(e,t){e.exports='

共{{ totalCount}}个图标库

'},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){function i(e){n(235)}var o=n(1)(n(149),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(247)}var o=n(1)(n(150),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(241)}var o=n(1)(n(152),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(238)}var o=n(1)(n(154),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(237)}var o=n(1)(n(155),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(239)}var o=n(1)(n(156),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(240)}var o=n(1)(n(158),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(259)}var o=n(1)(n(159),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(251)}var o=n(1)(n(160),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(255)}var o=n(1)(n(161),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(242)}var o=n(1)(n(162),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(250)}var o=n(1)(n(163),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(256)}var o=n(1)(n(164),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(236)}var o=n(1)(n(165),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(254)}var o=n(1)(n(166),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(245)}var o=n(1)(n(167),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(253)}var o=n(1)(n(168),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(258)}var o=n(1)(n(169),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(244)}var o=n(1)(n(170),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(252)}var o=n(1)(n(171),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(248)}var o=n(1)(n(172),null,i,null,null);e.exports=o.exports},function(e,t,n){function i(e){n(243)}var o=n(1)(n(173),null,i,null,null);e.exports=o.exports},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"app"}},[n("top-bar"),e._v(" "),n("div",{staticClass:"app-content"},[n("router-view",{key:e.currentRouterPath})],1),e._v(" "),e.showLoginModal?n("login-dialog"):e._e()],1)},staticRenderFns:[]}}],[102]); //# sourceMappingURL=app.99b5077633f395f72be1.js.map