atr-components 0.2.110 → 0.2.113

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.
@@ -1 +1 @@
1
- {"version":3,"file":"atr-components.mjs","sources":["../../../projects/components/src/core/animations/animations.ts","../../../projects/components/src/core/base/atr-common.ts","../../../projects/components/src/core/utils/ToolsUtil.ts","../../../projects/components/src/core/utils/localstorage.util.ts","../../../projects/components/src/core/routereuse/atr-reuse-strategy.ts","../../../projects/components/src/core/services/http.service.ts","../../../projects/components/src/core/services/menu.service.ts","../../../projects/components/src/core/interceptor/base.interceptor.ts","../../../projects/components/src/core/ngz-module/cus-zorro-antd.module.ts","../../../projects/components/src/core/animations/fly-in.ts","../../../projects/components/src/core/animations/scroll-screen.ts","../../../projects/components/src/core/pipe/is-empty.pipe.ts","../../../projects/components/src/core/utils/sessionstorage.util.ts","../../../projects/components/src/core/services/dict/dict.service.ts","../../../projects/components/src/core/pipe/dicts.pipe.ts","../../../projects/components/src/core/pipe/defaultVal.pipe.ts","../../../projects/components/src/core/pipe/day.pipe.ts","../../../projects/components/src/core/pipe/safe-compute.pipe.ts","../../../projects/components/src/core/pipe/is-not-empty.pipe.ts","../../../projects/components/src/core/pipe/image-pipe.pipe.ts","../../../projects/components/src/core/pipe/safe-html.pipe.ts","../../../projects/components/src/core/pipe/china-num.pipe.ts","../../../projects/components/src/core/pipe/count.pipe.ts","../../../projects/components/src/core/pipe/oss.pipe.ts","../../../projects/components/src/core/pipe/ossStatic.pipe.ts","../../../projects/components/src/core/pipe/remove-html.pipe.ts","../../../projects/components/src/core/pipe/safe-url.pipe.ts","../../../projects/components/src/core/pipe/pipe-module.module.ts","../../../projects/components/src/core/services/upload-oss.service.ts","../../../projects/components/src/atr-components.module.ts","../../../projects/components/src/lib/hello/hello.component.ts","../../../projects/components/src/lib/hello/hello.component.html","../../../projects/components/src/lib/hello/hello.module.ts","../../../projects/components/src/core/auth/auth.guard.ts","../../../projects/components/src/core/directive/role.directive.ts","../../../projects/components/src/core/directive/error-img.directive.ts","../../../projects/components/src/core/directive/hq-spin.directive.ts","../../../projects/components/src/lib/shared/table/table-form-item/table-form-item.component.ts","../../../projects/components/src/lib/shared/table/table-form-item/table-form-item.component.html","../../../projects/components/src/lib/shared/local-upload/local-upload.component.ts","../../../projects/components/src/lib/shared/local-upload/local-upload.component.html","../../../projects/components/src/lib/shared/table/table-td/table-td.component.ts","../../../projects/components/src/lib/shared/table/table-td/table-td.component.html","../../../projects/components/src/lib/shared/table/table.component.ts","../../../projects/components/src/lib/shared/table/table.component.html","../../../projects/components/src/lib/shared/video/video.component.ts","../../../projects/components/src/lib/shared/video/video.component.html","../../../projects/components/src/lib/shared/upload/upload.component.ts","../../../projects/components/src/lib/shared/upload/upload.component.html","../../../projects/components/src/lib/shared/validators/atr-validtors.ts","../../../projects/components/src/lib/shared/share.service.ts","../../../projects/components/src/lib/shared/quill-editor/quill-editor.component.ts","../../../projects/components/src/lib/shared/quill-editor/quill-editor.component.html","../../../projects/components/src/lib/shared/view-form/view-form.component.ts","../../../projects/components/src/lib/shared/view-form/view-form.component.html","../../../projects/components/src/lib/shared/select-icons/select-icons.component.ts","../../../projects/components/src/lib/shared/select-icons/select-icons.component.html","../../../projects/components/src/lib/shared/form/form.component.ts","../../../projects/components/src/lib/shared/form/form.component.html","../../../projects/components/src/lib/shared/select-tree/select-tree.component.ts","../../../projects/components/src/lib/shared/select-tree/select-tree.component.html","../../../projects/components/src/lib/shared/echarts/echarts.component.ts","../../../projects/components/src/lib/shared/echarts/echarts.component.html","../../../projects/components/src/lib/shared/atr-shared.module.ts","../../../projects/components/src/lib/shared/service/busi.service.ts","../../../projects/components/src/atr-public-api.ts","../../../projects/components/src/atr-components.ts"],"sourcesContent":["import {\r\n animation, trigger, animateChild, group,\r\n transition, animate, style, query\r\n} from '@angular/animations';\r\n\r\nexport const transAnimation = animation([\r\n style({\r\n height: '{{ height }}',\r\n opacity: '{{ opacity }}',\r\n backgroundColor: '{{ backgroundColor }}'\r\n }),\r\n animate('{{ time }}')\r\n]);\r\n","import {HttpHeaders} from \"@angular/common/http\";\r\nimport {LocalStorageUtil} from \"../utils/localstorage.util\";\r\nimport {Template} from \"@angular/compiler/src/render3/r3_ast\";\r\nimport {TemplateRef} from \"@angular/core\";\r\n\r\nexport const atr_static_datas = {\r\n test: '1',\r\n /**\r\n * oss地址前缀\r\n */\r\n OSS_URL: '',\r\n /**\r\n * 静态地址\r\n */\r\n STATIC_OSS_URL: '',\r\n OSS_POLICY: 'third/oss/getPolicy',\r\n STORAGE_PRE: 'DQ_',\r\n menu_url: '',\r\n dic_url: 'mgr/combo',\r\n /**\r\n * 登录路由\r\n */\r\n login_router: '/p/login',\r\n SERVER_URL: '',\r\n //http head是否默认head\r\n needNormalHeade: false,\r\n getNormalHeader: (_headers: HttpHeaders) => {\r\n return _headers\r\n },\r\n getDefaultHeader: (_headers: HttpHeaders) => {\r\n _headers = _headers.set(\"x-header-atr\", \"manage\");\r\n _headers = _headers.set(\"token\", LocalStorageUtil.getUserToken());\r\n _headers = _headers.set(\"userId\", LocalStorageUtil.getUserId());\r\n // _headers = _headers.set(\"orgCode\",ToolsUtil.getOrgCode());\r\n return _headers;\r\n }\r\n};\r\n\r\nexport class commonDatas {\r\n static letters = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\"]\r\n static icons = 'step-backward,step-forward,fast-backward,fast-forward,shrink,arrows-alt,down,up,left,right,caret-up,caret-down,caret-left,caret-right,up-circle,down-circle,left-circle,right-circle,double-right,double-left,vertical-left,vertical-right,vertical-align-top,vertical-align-middle,vertical-align-bottom,forward,backward,rollback,enter,retweet,swap,swap-left,swap-right,arrow-up,arrow-down,arrow-left,arrow-right,play-circle,up-square,down-square,left-square,right-square,login,logout,menu-fold,menu-unfold,border-bottom,border-horizontal,border-inner,border-outer,border-left,border-right,border-top,border-verticle,pic-center,pic-left,pic-right,radius-bottomleft,radius-bottomright,radius-upleft,radius-upright,fullscreen,fullscreen-exit,question,question-circle,plus,plus-circle,pause,pause-circle,minus,minus-circle,plus-square,minus-square,info,info-circle,exclamation,exclamation-circle,close,close-circle,close-square,check,check-circle,check-square,clock-circle,warning,issues-close,stop,edit,form,copy,scissor,delete,snippets,diff,highlight,align-center,align-left,align-right,bg-colors,bold,italic,underline,strikethrough,redo,undo,zoom-in,zoom-out,font-colors,font-size,line-height,dash,small-dash,sort-ascending,sort-descending,drag,ordered-list,unordered-list,radius-setting,column-width,column-height,area-chart,pie-chart,bar-chart,dot-chart,line-chart,radar-chart,heat-map,fall,rise,stock,box-plot,fund,sliders,android,apple,windows,ie,chrome,github,aliwangwang,dingding,weibo-square,weibo-circle,taobao-circle,html5,weibo,twitter,wechat,youtube,alipay-circle,taobao,skype,qq,medium-workmark,gitlab,medium,linkedin,google-plus,dropbox,facebook,codepen,code-sandbox,amazon,google,codepen-circle,alipay,ant-design,ant-cloud,aliyun,zhihu,slack,slack-square,behance,behance-square,dribbble,dribbble-square,instagram,yuque,alibaba,yahoo,reddit,sketch,alert,aim,account-book,apartment,api,appstore,audio-muted,audit,bank,barcode,bars,block,book,bell,appstore-add,audio,border,borderless-table,bug,branches,camera,calculator,calendar,build,carry-out,bulb,car,clear,ci,cloud-download,cloud,cloud-sync,cloud-server,cloud-upload,code,coffee,compress,compass,comment,ci-circle,container,control,copyright,credit-card,cluster,customer-service,contacts,console-sql,dashboard,database,copyright-circle,delete-column,desktop,deployment-unit,delivered-procedure,disconnect,dingtalk,dollar-circle,dislike,delete-row,dollar,crown,download,ellipsis,environment,euro-circle,exception,expand-alt,euro,experiment,export,expand,eye-invisible,eye,file-add,field-string,file-exclamation,file-done,field-time,file-excel,field-binary,file-gif,file-image,file,file-markdown,file-ppt,file-pdf,field-number,file-search,file-sync,file-jpg,file-text,filter,file-zip,flag,folder-add,file-unknown,folder-open,fire,file-protect,folder-view,folder,fork,format-painter,frown,fund-projection-screen,gift,gateway,fund-view,gif,funnel-plot,gold,global,group,hdd,function,history,file-word,home,idcard,hourglass,heart,insert-row-below,import,insert-row-left,insert-row-above,insert-row-right,key,inbox,insurance,laptop,like,line,link,loading-3-quarters,loading,lock,man,mail,mac-command,medicine-box,layout,meh,interaction,message,menu,merge-cells,mobile,money-collect,node-index,monitor,node-expand,more,number,notification,one-to-one,percentage,phone,paper-clip,partition,picture,node-collapse,play-square,pay-circle,pound,profile,project,property-safety,poweroff,pushpin,qrcode,printer,pound-circle,pull-request,rest,read,reload,reconciliation,robot,rocket,rotate-right,safety-certificate,red-envelope,rotate-left,save,safety,search,security-scan,scan,send,setting,select,shake,shopping-cart,sisternode,shop,shopping,share-alt,schedule,skin,smile,solution,sound,split-cells,star,subnode,tags,tablet,tag,table,switcher,sync,team,tool,trademark-circle,thunderbolt,to-top,translation,trademark,trophy,ungroup,unlock,upload,transaction,user-delete,usb,user-add,usergroup-delete,video-camera-add,verified,usergroup-add,user,user-switch,video-camera,wifi,wallet,whats-app,woman,appstore'.split(',')\r\n}\r\n\r\nexport declare interface json extends Object {\r\n [key: string]: any\r\n}\r\n\r\nexport declare interface ServerPaginationStandard {\r\n currentPage: number;\r\n showCount: number;\r\n totalResult: number;\r\n totalPage?: number;\r\n}\r\n\r\nexport declare interface HttpResponseDataStandard {\r\n state: number; // 为1才是成功\r\n data: json | [{}] | object | string | any; //没有值 data: ''\r\n mess: string; //返回的消息\r\n page?: ServerPaginationStandard;\r\n}\r\n\r\n\r\nexport declare interface HttpRseponseTransformCell {\r\n [key: string]: json\r\n}\r\n\r\nexport declare interface HttpOptions {\r\n headers?: {},\r\n isJsonEncode?: boolean\r\n isUrlEncode?: boolean\r\n isAutoShowMessage?: boolean\r\n isWithCredentials?: boolean\r\n isCommonHttpHeader?: boolean\r\n}\r\n\r\nexport enum UserAction {\r\n ADD,\r\n EDIT,\r\n DEL,\r\n QUERY,\r\n SUPPERADD\r\n}\r\n\r\nexport declare interface EChartsOption {\r\n title?: any,\r\n legend?: any,\r\n grid?: any,\r\n brush?: any,\r\n toolbox?: any,\r\n tooltip?: any,\r\n dataset?: any,\r\n xAxis?: {\r\n type?: 'category',\r\n data?: string[],\r\n boundaryGap?: boolean,\r\n show?: boolean,\r\n },\r\n yAxis?: any,//{ show:false, type: 'value', minInterval: 1,}[]\r\n series?: {\r\n name?: string,\r\n data?: any[],\r\n itemStyle?: any,\r\n stack?: any,\r\n emphasis?: any,\r\n label?: any,\r\n radius?: any[],\r\n smooth?: boolean,\r\n seriesLayoutBy?: string,\r\n type?: 'bar' | 'pie' | 'line',\r\n backgroundStyle?: any\r\n }[]\r\n}\r\n\r\nexport declare interface AtrFormOpt {\r\n type: 'add' | 'edit' | 'view',\r\n layout?: \"full\" | '1l2c' | '1l1c',\r\n items: AtrFormDetail[],//表单项目\r\n}\r\n\r\nexport declare interface AtrFormDetail {\r\n label: string,\r\n type: 'cascader' | 'radio' | 'text' | 'image' | 'select' | 'date' | 'number' | 'telphone' | 'password' | 'checkbox' | 'dayRange'\r\n | 'editor' | 'textarea' | 'dateTime' | 'title' | 'dateRange' | 'selectc' | 'selectIcon' | 'treeSelect' | 'switch' | 'buttons',\r\n key: string,\r\n isHidden?: boolean,\r\n defaultValue?: any,\r\n value?: any,//编辑下原始数值\r\n dictCode?: string,//select 模式下配置\r\n span?: number,//显示宽度\r\n validators?: AtrFormValid[],//验证条件\r\n isRequired?: boolean | string,//隐性条件 无需填写, string类型格式同operator\r\n placeholder?: string,\r\n imageOpts?: ImageOpts,\r\n editContent?: string,\r\n height?: number,//editor有效\r\n disable?: boolean,\r\n lspan?: number,\r\n cspan?: number,\r\n rows?: number,//textarea 显示行数\r\n operator?: string,//显示操作符 格式 如:status|eq|0\r\n button?: formButton,\r\n readonly?: boolean,\r\n dateFormat?: string,\r\n dictList?: CusDict[],\r\n nzMode?: 'multiple' | 'tags' | 'default',\r\n selectUrl?: { url: string, convert?: string, type?: 'get' | 'post', host?: 'oss' | 'serve', isMultiple?: boolean, ignoreDictList?: boolean },\r\n treeList?: { key: string, title: string }[],\r\n ends?: string,\r\n proposal?: string,\r\n temp?: TemplateRef<any>,\r\n minNumber?: any,\r\n maxNumber?: any,\r\n notNull?: boolean\r\n nzShowTime?: boolean | { nzFormat: string },\r\n buttons?: formButton[]\r\n}\r\n\r\nexport declare interface AtrFormValid {\r\n type: 'required' | 'email' | 'telphone' | 'maxlength' | 'minlength' | 'pattern' | 'operator',\r\n errorLabel: string,\r\n maxlength?: number,\r\n minlength?: number,\r\n patternValue?: string\r\n}\r\n\r\nexport declare interface formButton {\r\n name: string,\r\n isShow: boolean,\r\n code: string,\r\n btnType?: string,\r\n operator?: string,////显示操作符 格式 如:status|eq|0\r\n}\r\n\r\nexport declare interface colorOperator {\r\n color: string,\r\n operator: string,//规则\r\n}\r\n\r\nexport declare interface AtrQueyrOpt {\r\n actions?: TableAction[],\r\n isIndex?: boolean,//是否显示序号,\r\n color?: colorOperator,//颜色\r\n checkBox?: {\r\n isShowCheckbox?: boolean,\r\n isRadio?: boolean,\r\n isForbid?: boolean,//true时只允许点击多选框选择\r\n },\r\n // isShowCheckbox?: boolean,\r\n showNum?: number,\r\n url: string,\r\n sort?: string,\r\n headers?: AtrQueryHeader[],\r\n tables: Table[],\r\n isAutoQuery?: boolean,//true时候默认触发查询\r\n defaultParams?: json,\r\n isHideQuery?: boolean\r\n // isRadio?:boolean,\r\n // isForbid?:boolean,//true时只允许点击多选框选择\r\n}\r\n\r\nexport declare interface Table {\r\n name: string,//表头名称\r\n key?: string,//实际数据字段\r\n defaultVal?: any,\r\n sortKey?: string,//是否排序\r\n sortable?: boolean,\r\n type: 'textcolor' | 'fixedText' | 'text' | 'link' | 'action' | 'image' | 'date' | 'dateTime' | 'sDateTime' | 'dict'\r\n |'innerHtml',//类型: 文字、链接、操作\r\n dictCode?: string,\r\n isShow?: boolean,\r\n width?: string,//150px\r\n actions?: TableAction[],\r\n isRowSpan?: boolean,\r\n isRight?: boolean\r\n isLeft?: boolean,\r\n color?: colorOperator,//颜色\r\n colorShow?: string,\r\n innerHtmlBack?: Function,\r\n}\r\n\r\nexport declare interface AtrQueryHeader {\r\n name: string,\r\n type: 'cascader' | 'text' | 'number' | 'checkbox' | 'select' | 'datepicker' | 'selectCus' | 'dateRange' | 'sdate' | 'treeSelect' |'dayRange',\r\n nzMode?: 'multiple' | 'tags' | 'default',\r\n key: string,\r\n isShow?: boolean,\r\n code?: string,\r\n placeholder?: string,\r\n span?: number,\r\n dictCode?: string,//字典编码\r\n dictList?: CusDict[],\r\n defaultVal?: any // 默认值\r\n maxTagCount?: number,\r\n lspan?: number,\r\n cspan?: number,\r\n disableClear?: boolean,\r\n treeList?: { key: string, title: string }[]\r\n /**\r\n * 格式\r\n * convert:'key|id,title|realName'(treeSelect)\r\n * value|id,label|name(selectCus)\r\n */\r\n selectUrl?: { url: string, convert: string, isMultiple?: boolean },//convert: newKey|oldKey,newKey|oldKey(接口返回的值)\r\n icon?: { isShow: boolean, code: string, icon: any },\r\n dateMode?: 'week' | 'month' | 'year',\r\n nzShowTime?: boolean | { nzFormat: string },\r\n nzShowNow?: boolean,\r\n}\r\n\r\nexport declare interface TableAction {\r\n name: string,\r\n code: string,\r\n url?: string,\r\n gType?: 'normal' | 'upload',\r\n data?: any,\r\n firstData?: any,\r\n datas?: any[],\r\n icon?: string,\r\n numberOfChecked?: number,\r\n type?: 'rows' | 'row',\r\n operator?: string,//显示操作符\r\n buttonType?: 'primary' | 'dashed' | 'danger' | 'default' | 'link',\r\n value?: any,\r\n withoutRole?: boolean//不需要权限控制\r\n}\r\n\r\nexport declare interface FormAction {\r\n name: string,\r\n code: string\r\n}\r\n\r\nexport declare interface Dict {\r\n id: string,\r\n typeName: string,\r\n\r\n}\r\n\r\nexport declare interface DictGroup {\r\n groupCode: string,\r\n dicts: Dict[]\r\n}\r\n\r\nexport declare interface CusDict {\r\n label: string,\r\n value: string,\r\n isSelect?: boolean//checkBox默认选中\r\n}\r\n\r\nexport declare interface ImageOpts {\r\n limit?: number,\r\n uploadDir: string,\r\n removeAction?: string,\r\n imageList?: any[],\r\n key?: string,\r\n labe?: string,\r\n fileName?: string,\r\n uploadType?: 'drag' | '',\r\n nzFileType?: string,\r\n keepName?: boolean\r\n}\r\n\r\nexport declare interface equipTestData {\r\n code: string\r\n itemName: string\r\n zhou1: number\r\n zhou2: number\r\n zhou3: number\r\n zhou4: number\r\n zhou5: number\r\n zhou6: number\r\n isWrong1?: boolean\r\n isWrong2?: boolean\r\n isWrong3?: boolean\r\n isWrong4?: boolean\r\n isWrong5?: boolean\r\n isWrong6?: boolean\r\n}\r\n\r\n\r\nexport declare interface SelectAction {\r\n name: string,\r\n code: \"ngModelChange\" | 'nzOpenChange',\r\n data?: any,\r\n key?: string,\r\n}\r\n\r\nexport interface MenuIcon {\r\n /** Type for icon */\r\n type: 'class' | 'icon' | 'iconfont' | 'img';\r\n /** Value for the icon, can be set Class Name, nz-icon of `nzType`, image */\r\n value?: string;\r\n /** Type of the ant design icon, default: `outline` */\r\n theme?: 'outline' | 'twotone' | 'fill';\r\n /** Rotate icon with animation, default: `false` */\r\n spin?: boolean;\r\n /** Only support the two-tone icon. Specific the primary color */\r\n twoToneColor?: string;\r\n /** Type of the icon from iconfont */\r\n iconfont?: string;\r\n}\r\n\r\nexport interface Menu {\r\n text?: string;\r\n link?: string;\r\n realLink?: string;\r\n isSelected?: Boolean;\r\n isOpen?: Boolean;\r\n target?: '_blank' | '_self' | '_parent' | '_top';\r\n /** Icon for the menu item, only valid for the first level menu */\r\n icon?: string | MenuIcon | null;\r\n /** Badget for the menu item when `group` is `true` */\r\n operation?: string;\r\n /** Whether shortcut menu item */\r\n seq?: number;\r\n level?: number;\r\n /** Wheter shortcut menu root node */\r\n linkType?: string;\r\n /** Whether to allow reuse, need to cooperate with the `reuse-tab` component */\r\n children?: Menu[];\r\n isVisible?: '0' | '1'\r\n}\r\n","import {json, AtrFormOpt, atr_static_datas} from '../base/atr-common';\r\nimport {formatDate} from '@angular/common';\r\nimport {HttpHeaders} from \"@angular/common/http\";\r\nimport {SimpleChange} from '@angular/core';\r\nimport {Validators} from \"@angular/forms\";\r\n\r\nexport class ToolsUtil {\r\n static getOrgCode = function () {\r\n // var orgCode = '';\r\n // var hrefs = window.location.href.split('?')\r\n // if (hrefs.length >= 2) {\r\n // var paramStr = hrefs[1];\r\n // //参数字符串里有没带 =?/#\r\n // orgCode = paramStr.split('=')[0];\r\n // orgCode = orgCode.split('?')[0];\r\n // orgCode = orgCode.split('/')[0];\r\n // orgCode = orgCode.split('#')[0];\r\n // orgCode = orgCode.split('/')[0];\r\n // }\r\n\r\n return '';\r\n }\r\n static isBase64(string:any) {\r\n let reg = /^\\s*data:([a-z]+\\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\\-._~:@\\/?%\\s]*?)\\s*$/i;\r\n return reg.test(string)\r\n }\r\n static dataURItoBlob(code:any) {\r\n const parts = code.split(';base64,');\r\n const contentType = parts[0].split(':')[1];\r\n const raw = window.atob(parts[1]);\r\n const rawLength = raw.length;\r\n const uInt8Array = new Uint8Array(rawLength);\r\n for (let i = 0; i < rawLength; ++i) {\r\n uInt8Array[i] = raw.charCodeAt(i);\r\n }\r\n return new Blob([uInt8Array], {type: contentType});\r\n }\r\n static isNull(val:any){\r\n if(val || ['boolean','string','number'].some(v => typeof val == v) ){\r\n return false\r\n }\r\n return true\r\n }\r\n static getControlsConfig(dataFrom:any, requiredRule: string[]) {\r\n let controlsConfig: any = {}\r\n for (const key in dataFrom) {\r\n if (requiredRule.some(item => item == key)) {\r\n controlsConfig[key] = [dataFrom[key], [Validators.required]]\r\n } else {\r\n controlsConfig[key] = [dataFrom[key]]\r\n }\r\n }\r\n return controlsConfig;\r\n }\r\n\r\n static httpSucces(res:any) {\r\n return res.status == 200\r\n }\r\n\r\n static diffInput(chng: SimpleChange, action: () => void): void {\r\n if (chng === undefined) return;\r\n\r\n let cur = JSON.stringify(chng.currentValue);\r\n let prev = JSON.stringify(chng.previousValue);\r\n if (cur !== prev) {\r\n action();\r\n }\r\n }\r\n\r\n static diffInputs(chng: SimpleChange[], action: () => void): void {\r\n if (chng === undefined) return;\r\n if (chng.length == 0) return;\r\n for (let i = 0; i < chng.length; i++) {\r\n let item = chng[i];\r\n if (item === undefined) continue;\r\n let cur = JSON.stringify(item.currentValue);\r\n let prev = JSON.stringify(item.previousValue);\r\n if (cur !== prev) {\r\n action();\r\n return;\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n static getYesterday(day: Date): Date {\r\n\r\n let time = day.getTime() - 1000 * 60 * 60 * 24;\r\n day = new Date(time);\r\n\r\n return day;\r\n }\r\n\r\n static getTomorrowday(day: Date): Date {\r\n let time = day.getTime() + 1000 * 60 * 60 * 24;\r\n\r\n return new Date(time);\r\n }\r\n\r\n static getNextMonth(day: Date) {\r\n let ds = new Date(day).setMonth(day.getMonth() + 1);\r\n return new Date(ds);\r\n }\r\n static getVideoCover(url: string) {\r\n return ToolsUtil.getOssUrl(url) + \"?x-oss-process=video/snapshot,t_10000,m_fast\";\r\n }\r\n static fistDayOfMonth(day: Date) {\r\n return new Date(new Date(day).setDate(1));\r\n }\r\n\r\n static lastDayOfMonth(day: Date) {\r\n return new Date(ToolsUtil.getNextMonth(day).setDate(0));\r\n }\r\n\r\n static getRandomFileName = function () {\r\n const expect = 16;\r\n let str = Math.random().toString(36).substring(2);\r\n while (str.length < expect) {\r\n str += Math.random().toString(36).substring(2);\r\n }\r\n return str.substring(0, expect);\r\n }\r\n\r\n static getFileExt = function (fileName:string) {\r\n var index = fileName.lastIndexOf(\".\");\r\n var suffix = fileName.substr(index + 1);\r\n return suffix;\r\n }\r\n\r\n static getHttpOptions(): any {\r\n return {isCommonHttpHeader: true}\r\n }\r\n\r\n\r\n static resetFormValue(opt: AtrFormOpt, json: json): AtrFormOpt {\r\n for (let item of opt.items) {\r\n item.value = \"\";\r\n // console.log(item.value);\r\n for (const key of Object.keys(json)) {\r\n if (json.hasOwnProperty(key) && json[key] != null && json[key] != undefined && key == item.key) {\r\n if (item.type == 'date')\r\n item.value = new Date(json[key]);\r\n else if (item.type == 'dateTime') {\r\n item.value = new Date(json[key]);\r\n } else\r\n item.value = json[key]\r\n }\r\n }\r\n }\r\n return opt;\r\n }\r\n\r\n static getFormatDate(date: Date): string {\r\n let month: string | number = date.getMonth() + 1;\r\n let strDate: string | number = date.getDate();\r\n\r\n if (month <= 9) {\r\n month = \"0\" + month;\r\n }\r\n\r\n if (strDate <= 9) {\r\n strDate = \"0\" + strDate;\r\n }\r\n\r\n return date.getFullYear() + \"-\" + month + \"-\" + strDate\r\n // + \" \"\r\n // + date.getHours() + \":\" + date.getMinutes() + \":\" + date.getSeconds();\r\n }\r\n\r\n static getFormatDateFull(date: Date): string {\r\n let month: string | number = date.getMonth() + 1;\r\n let strDate: string | number = date.getDate();\r\n\r\n if (month <= 9) {\r\n month = \"0\" + month;\r\n }\r\n\r\n if (strDate <= 9) {\r\n strDate = \"0\" + strDate;\r\n }\r\n\r\n return date.getFullYear() + \"-\" + month + \"-\" + strDate + \" \" + (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + \":\" + (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + \":\" + (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());\r\n }\r\n\r\n static getFormatDateWithoutS(date: Date): string {\r\n let month: string | number = date.getMonth() + 1;\r\n let strDate: string | number = date.getDate();\r\n let hours: string | number = date.getHours();\r\n let seconds: string | number = date.getMinutes();\r\n if (month <= 9) {\r\n month = \"0\" + month;\r\n }\r\n\r\n if (strDate <= 9) {\r\n strDate = \"0\" + strDate;\r\n }\r\n if (hours <= 9) {\r\n hours = \"0\" + hours;\r\n }\r\n if (seconds <= 9) {\r\n seconds = \"0\" + seconds;\r\n }\r\n return date.getFullYear() + \"-\" + month + \"-\" + strDate + \" \" + hours + \":\" + seconds;\r\n }\r\n\r\n static getOssUrl(url: string) {\r\n if (!url) {\r\n return \"\";\r\n }\r\n if (url.startsWith(\"http\")) {\r\n return url\r\n }\r\n return atr_static_datas.OSS_URL + url;\r\n }\r\n static getStaticOssUrl(url: string) {\r\n if (!url) {\r\n return \"\";\r\n }\r\n if (url.startsWith(\"http\")) {\r\n return url\r\n }\r\n return atr_static_datas.STATIC_OSS_URL + url;\r\n }\r\n static removeHtml(value:any) {\r\n if (!value) {\r\n return '';\r\n }\r\n return value.replace(/<[^<>]+>/g, '').replace(/&nbsp;/ig, '')\r\n }\r\n static mul(...numbers:any) {\r\n if (numbers.length < 2) {\r\n return;\r\n }\r\n let m = this.getDigit(numbers);\r\n let result = 1;\r\n numbers.forEach(\r\n (num:any) => {\r\n let s = num.toString();\r\n result *= Number(s.replace(\".\", \"\"));\r\n }\r\n );\r\n return result / Math.pow(10, m);\r\n }\r\n\r\n static getDigit(...numbers:any[]) {\r\n let m = 0;\r\n numbers.forEach(\r\n num => {\r\n let s = num.toString();\r\n try {\r\n m += s.split(\".\")[1].length\r\n } catch (e) {\r\n }\r\n }\r\n );\r\n return m;\r\n }\r\n\r\n static downloadImg(data:any, fileName?: string, endpoint?: string) {\r\n // // 下载类型 xls\r\n // const contentType = 'image/jpeg';\r\n // // const contentType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\r\n // // 下载类型:csv\r\n // const debug = {hello: \"world\"};\r\n // const blob = new Blob([],{type : 'image/jpeg'});\r\n // const url = window.URL.createObjectURL(blob);\r\n //\r\n // // 打开新窗口方式进行下载\r\n // // window.open(url);\r\n //\r\n // // 以动态创建a标签进行下载\r\n const a = document.createElement('a');\r\n a.href = data;\r\n // a.download = fileName;\r\n a.download = fileName?fileName:\"\" + endpoint;\r\n a.click();\r\n }\r\n\r\n static downloadXls(url:string, params?: any,) {\r\n console.log(params);\r\n if (params) {\r\n url += \"?\";\r\n for (const key of Object.keys(params)) {\r\n if (params[key]) {\r\n url += key + \"=\" + params[key] + \"&&\"\r\n }\r\n }\r\n }\r\n console.log(url);\r\n // window.open(url);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n // // a.download = fileName;\r\n // a.download = \"3321.xls\";\r\n a.click();\r\n }\r\n\r\n static pixelToNum(width:any) {\r\n const re = /px/gi;\r\n let widthStr = width.replace(re, \"\");\r\n return Number(widthStr);\r\n }\r\n\r\n static allEqual = (...array:any[]) => array.every(item => item === array[0]);\r\n\r\n /**\r\n * array所有参数满足fn函数返回true\r\n * all(x => x > 1,1,2,3); // true\r\n * @param callback\r\n * @param array\r\n */\r\n static satisfiedFn = (callback: (...args: any[]) => boolean, ...array:any[]) => array.every(callback);\r\n\r\n //全部不空为true\r\n static notEmpty(...arr:any[]): boolean {\r\n return arr.every(item => !!item)\r\n }\r\n\r\n //包含空为true\r\n static hasEmpty(...arr:any[]): boolean {\r\n return arr.some(item => !item);\r\n }\r\n\r\n static allEmpty(...arr:any[]) {\r\n return arr.every(item => !item);\r\n }\r\n\r\n static encodeValue(params:any) {\r\n Object.keys(params).forEach(key => params[key] = encodeURIComponent(params[key]));\r\n return params;\r\n }\r\n\r\n static windowHeight() {\r\n return document.documentElement.clientHeight;\r\n }\r\n static windowWidth() {\r\n\r\n return document.documentElement.clientWidth;\r\n }\r\n\r\n static modaleStyle() {\r\n return {'maxHeight': ToolsUtil.windowHeight() - 200 + 'px', 'overflow-y': 'auto'};\r\n }\r\n}\r\n","import {atr_static_datas, json} from '../base/atr-common';\r\nimport {ToolsUtil} from './ToolsUtil';\r\n\r\nexport class LocalStorageUtil {\r\n\r\n static getProvinceByValue(province: string): any {\r\n let regions: any = this.getRegion();\r\n if (regions.length == 0 || !province) {\r\n return null\r\n }\r\n regions = regions.filter((v: any) => v.value == province);\r\n return regions && regions.length > 0 ? regions[0].label : null;\r\n }\r\n\r\n static getRegion() {\r\n let str = localStorage.getItem(this.getStorageKey('REGION'));\r\n let loginInfo = null\r\n if (str) {\r\n loginInfo = JSON.parse(str);\r\n }\r\n if (loginInfo)\r\n return loginInfo\r\n else\r\n return []\r\n }\r\n\r\n static putRegion(disList: any[]): void {\r\n if (disList) {\r\n localStorage.setItem(this.getStorageKey('REGION'), JSON.stringify(disList))\r\n }\r\n }\r\n\r\n static putUser(userInfo: json): void {\r\n localStorage.removeItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode());\r\n if (userInfo) {\r\n localStorage.setItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode(), JSON.stringify(userInfo))\r\n }\r\n }\r\n\r\n static putLogin(loginInfo: json): void {\r\n localStorage.removeItem(this.getStorageKey('USER_INFO_L_') + ToolsUtil.getOrgCode());\r\n if (loginInfo) {\r\n localStorage.setItem(this.getStorageKey('USER_INFO_L_') + ToolsUtil.getOrgCode(), JSON.stringify(loginInfo))\r\n }\r\n }\r\n\r\n static getLogin(): any {\r\n let str = localStorage.getItem(this.getStorageKey('USER_INFO_L_') + ToolsUtil.getOrgCode())\r\n let loginInfo: any = null\r\n if (str) {\r\n loginInfo = JSON.parse(str);\r\n }\r\n if (loginInfo)\r\n return loginInfo\r\n else\r\n return {}\r\n }\r\n\r\n static getUser(): any {\r\n let str = localStorage.getItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode())\r\n let userInfo: any = null\r\n if (str) {\r\n userInfo = JSON.parse(str);\r\n }\r\n if (userInfo)\r\n return userInfo\r\n else\r\n return {}\r\n }\r\n\r\n static getUserToken(): string {\r\n let str = localStorage.getItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode())\r\n let userInfo: any = null\r\n if (str) {\r\n userInfo = JSON.parse(str);\r\n }\r\n if (userInfo && userInfo.token)\r\n return userInfo.token\r\n else\r\n return \"\"\r\n }\r\n\r\n static getUserId(): string {\r\n let str = localStorage.getItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode())\r\n let userInfo: any = null\r\n if (str) {\r\n userInfo = JSON.parse(str);\r\n }\r\n if (userInfo && userInfo.id)\r\n return userInfo.id\r\n else\r\n return \"\"\r\n }\r\n\r\n static removeUser() {\r\n localStorage.removeItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode());\r\n }\r\n\r\n static clearUs = () => {\r\n LocalStorageUtil.removeUser()\r\n }\r\n\r\n static getStorageKey(key: string): string {\r\n return atr_static_datas.STORAGE_PRE + key;\r\n }\r\n\r\n\r\n}\r\n","import { RouteReuseStrategy, DetachedRouteHandle, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { ComponentRef } from '@angular/core';\r\n\r\nexport class AtrReuseStrategy implements RouteReuseStrategy {\r\n\r\n public static handlers: any = {};\r\n\r\n public static outReusePath: string[] =[\"_p\",\"_p_login\",\"_s\",\"_d\",\"_d_i\"]\r\n\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n const path = this.getRouteUrl(route);\r\n if(!route.routeConfig || route.routeConfig.loadChildren || AtrReuseStrategy.outReusePath.indexOf(path) > -1 ) {\r\n // console.log(\"不需要缓存:\"+path);\r\n return false;\r\n\r\n }else{\r\n // console.log(\"需要缓存:\"+path);\r\n return true;\r\n }\r\n\r\n }\r\n /** 当路由离开时会触发。按path作为key存储路由快照&组件当前实例对象 */\r\n store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\r\n const path = this.getRouteUrl(route)\r\n AtrReuseStrategy.handlers[path] = handle;\r\n // console.log(\"添加路由缓存:\"+path)\r\n // console.log(AtrReuseStrategy.handlers);\r\n }\r\n /** 若 path 在缓存中有的都认为允许还原路由 */\r\n shouldAttach(route:ActivatedRouteSnapshot): boolean {\r\n // console.debug('shouldAttach======>', route);\r\n return !!AtrReuseStrategy.handlers[this.getRouteUrl(route)];\r\n }\r\n /** 从缓存中获取快照,若无则返回nul */\r\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle|any {\r\n if (!route.routeConfig) return null;\r\n if (route.routeConfig.loadChildren || route.routeConfig.children ) return null;\r\n if (!AtrReuseStrategy.handlers[this.getRouteUrl(route)]) {\r\n return null;\r\n }\r\n // console.debug('retrieve======>', this.getRouteUrl(route));\r\n if(AtrReuseStrategy.outReusePath.indexOf(this.getRouteUrl(route)) > -1 )\r\n return null;\r\n return AtrReuseStrategy.handlers[this.getRouteUrl(route)];\r\n }\r\n /** 进入路由触发,判断是否同一路由 */\r\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n return future.routeConfig === curr.routeConfig ;\r\n // return future.routeConfig === curr.routeConfig &&\r\n // JSON.stringify(future.params) === JSON.stringify(curr.params);\r\n }\r\n /** 删除缓存路由快照的方法 */\r\n public static deleteRouteSnapshot(path: string): void {\r\n const name = path.replace(/\\//g, '_');\r\n // console.log('删除缓存路由:' + name);\r\n // console.log(AtrReuseStrategy.handlers);\r\n // console.log(AtrReuseStrategy.handlers[name]);\r\n let handle:any = AtrReuseStrategy.handlers[name];\r\n\r\n let componentRef: ComponentRef<any> = handle ? handle['componentRef'] : null;\r\n if (componentRef) {\r\n componentRef.destroy();\r\n }\r\n if (AtrReuseStrategy.handlers[name] || AtrReuseStrategy.handlers[name] == null) {\r\n delete AtrReuseStrategy.handlers[name];\r\n }\r\n }\r\n\r\n /** 使用route的path作为快照的key */\r\n getRouteUrl(route: any) {\r\n const path = route['_routerState'].url.replace(/\\//g, '_');\r\n // const path = route['_routerState'].url.replace(/\\//g, '_')+ '_' + (route.routeConfig.loadChildren || route.routeConfig.component.toString().split('(')[0].split(' ')[1] );\r\n return path;\r\n }\r\n public static deleteAll(): void {\r\n // console.log(\"删除所有缓存路由:\"+name)\r\n\r\n for (let key in AtrReuseStrategy.handlers ) {\r\n let ref = AtrReuseStrategy.handlers[key]['componentRef'];\r\n if(ref){\r\n ref.destroy();\r\n }\r\n }\r\n AtrReuseStrategy.handlers = {};\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpRequest, HttpEventType, HttpHeaders } from \"@angular/common/http\";\r\nimport { Observable } from 'rxjs';\r\nimport {atr_static_datas, HttpOptions} from '../base/atr-common';\r\nimport { LocalStorageUtil } from '../utils/localstorage.util';\r\nimport {Md5} from \"ts-md5\";\r\nimport {environment} from \"ng-zorro-antd/core/environments\";\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n\r\n@Injectable()\r\nexport class HttpService {\r\n\r\n constructor(\r\n private httpClient: HttpClient\r\n ) {}\r\n getNormalHeader(_headers: HttpHeaders): HttpHeaders {\r\n if(!atr_static_datas.needNormalHeade){\r\n return _headers;\r\n }\r\n return atr_static_datas.getNormalHeader(_headers)\r\n }\r\n /**\r\n *\r\n * @param url\r\n * @param params\r\n */\r\n post = (url: string, params?:any, options?: HttpOptions, headers?: HttpHeaders): Observable<any> => {\r\n\r\n return new Observable<any>(observe => {\r\n // console.log(\"aaa\");\r\n let _headers = new HttpHeaders();\r\n if (options && options.hasOwnProperty('isCommonHttpHeader')) {\r\n _headers = this.getDefaultHeader(_headers);\r\n }\r\n _headers = this.getNormalHeader(_headers);\r\n if(headers){\r\n _headers = headers;\r\n }\r\n let withCredentials:any = true\r\n if (options && options.hasOwnProperty('isWithCredentials')) {\r\n withCredentials = options.isWithCredentials\r\n }\r\n // console.log(_headers);\r\n for(const key of Object.keys(params)) {\r\n if(params.hasOwnProperty(key) && typeof params[key] === 'object') {\r\n params[key] = JSON.stringify(params[key]);\r\n }\r\n }\r\n\r\n this.httpClient.post(url, null, { headers: _headers, params: params, withCredentials: withCredentials })\r\n .subscribe(result => {\r\n observe.next(result);\r\n observe.unsubscribe()\r\n }, error => {\r\n observe.error(error)\r\n observe.unsubscribe()\r\n })\r\n\r\n })\r\n }\r\n postPromAll(urls: { url: string, params?: {}, }[], options?: HttpOptions, headers?: HttpHeaders) {\r\n let param: any[] = [];\r\n urls.forEach(item => {\r\n param.push(this.postProm(item.url, item.params, options, headers));\r\n })\r\n\r\n\r\n return Promise.all(param)\r\n }\r\n\r\n postProm(url: string, params?:any, options?: HttpOptions, headers?: HttpHeaders) {\r\n\r\n // //console.log(\"aaa\");\r\n let _headers = new HttpHeaders();\r\n if (options && options.hasOwnProperty('isCommonHttpHeader')) {\r\n _headers = this.getDefaultHeader(_headers);\r\n }\r\n _headers = this.getNormalHeader(_headers);\r\n if (headers) {\r\n _headers = headers;\r\n }\r\n let withCredentials:any = true\r\n if (options && options.hasOwnProperty('isWithCredentials')) {\r\n withCredentials = options.isWithCredentials\r\n }\r\n let postParams: any = {};\r\n\r\n for (const key of Object.keys(params)) {\r\n if (params[key] !== null && params[key] !== '' && params[key] !== undefined) {\r\n if (params.hasOwnProperty(key) && typeof params[key] === 'object') {\r\n postParams[key] = JSON.stringify(params[key])\r\n } else {\r\n postParams[key] = params[key];\r\n }\r\n }\r\n\r\n }\r\n\r\n return this.httpClient.post(url, null, {\r\n headers: _headers,\r\n params: postParams,\r\n withCredentials: withCredentials\r\n })\r\n .toPromise();\r\n\r\n }\r\n postBody = (url: string, params?:any, options?: HttpOptions, headers?: {}): Observable<any> => {\r\n\r\n return new Observable<any>(observe => {\r\n // console.log(\"aaa\");\r\n let _headers = new HttpHeaders();\r\n if (options && options.hasOwnProperty('isCommonHttpHeader')) {\r\n _headers = this.getDefaultHeader(_headers);\r\n }\r\n _headers = this.getNormalHeader(_headers);\r\n let withCredentials:any = true\r\n if (options && options.hasOwnProperty('isWithCredentials')) {\r\n withCredentials = options.isWithCredentials\r\n }\r\n // console.log(_headers);\r\n /*for(const key of Object.keys(params)) {\r\n if(params.hasOwnProperty(key) && typeof params[key] === 'object') {\r\n params[key] = JSON.stringify(params[key])\r\n }\r\n }*/\r\n\r\n this.httpClient.post(url, params, { headers: _headers, params: {}, withCredentials: withCredentials })\r\n .subscribe(result => {\r\n observe.next(result);\r\n observe.unsubscribe()\r\n }, error => {\r\n observe.error(error)\r\n observe.unsubscribe()\r\n })\r\n\r\n })\r\n }\r\n\r\n getDefaultHeader(_headers:HttpHeaders):HttpHeaders{\r\n return atr_static_datas.getDefaultHeader(_headers)\r\n }\r\n get = (url: string, params?: {}, options?: HttpOptions): Observable<any> => {\r\n\r\n return new Observable<any>(observe => {\r\n\r\n let _headers = new HttpHeaders();\r\n if (options && options.hasOwnProperty('isCommonHttpHeader')) {\r\n _headers = this.getDefaultHeader(_headers);\r\n }\r\n _headers = this.getNormalHeader(_headers);\r\n let withCredentials:any = false\r\n if (options && options.hasOwnProperty('isWithCredentials')) {\r\n withCredentials = options.isWithCredentials\r\n }\r\n // console.log(options)\r\n // console.log(_headers)\r\n this.httpClient.get(url,{ headers: _headers, params: params, withCredentials: withCredentials }).subscribe(result => {\r\n observe.next(result);\r\n observe.unsubscribe()\r\n }, error => {\r\n observe.error(error)\r\n observe.unsubscribe()\r\n })\r\n\r\n })\r\n }\r\n\r\n upload = (method:any, url:any, formData: FormData, progress:any): Observable<any> => {\r\n let req = new HttpRequest(method, url, formData, { reportProgress: true })\r\n return new Observable(observe => {\r\n this.httpClient.request(req).subscribe((event:any) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n if (typeof progress == 'function') {\r\n event['progress'] = parseInt(event.loaded / event.total * 100 + '')\r\n progress(event);\r\n }\r\n }\r\n if (event.type === HttpEventType.Response) {\r\n observe.next(event.body);\r\n }\r\n }, error => {\r\n observe.error(error)\r\n observe.unsubscribe()\r\n })\r\n })\r\n }\r\n\r\n private transformString = (objItem:any) => {\r\n var list :any= [];\r\n for (const key in objItem) {\r\n var str = '';\r\n let item = objItem[key]\r\n if (item instanceof Array) {\r\n //数组\r\n var arr:any = [];\r\n item.forEach((v, k) => {\r\n var s = encodeURIComponent(key) + '[' + k + ']';\r\n arr.push(this.parseObj(v, s));\r\n })\r\n str = arr.join('&');\r\n } else if (item instanceof Object) {\r\n //json\r\n var arr:any = [];\r\n for (const k in item) {\r\n let v = item[k]\r\n var s = encodeURIComponent(key) + '.' + encodeURIComponent(k);\r\n arr.push(this.parseObj(v, s));\r\n }\r\n str = arr.join('&');\r\n } else {\r\n //普通类型\r\n str = encodeURIComponent(key) + '=' + encodeURIComponent(item);\r\n }\r\n list.push(str);\r\n }\r\n return list.join('&');\r\n }\r\n\r\n private parseObj = (obj:any, str:any) => {\r\n if (obj instanceof Array) {\r\n //数组\r\n var arr:any = [];\r\n obj.forEach((v, k) => {\r\n var s = str + '[' + k + ']' + '=' + encodeURIComponent(v);\r\n arr.push(this.parseObj(v, s));\r\n })\r\n str = arr.join('&');\r\n } else if (obj instanceof Object) {\r\n //json\r\n var arr :any= [];\r\n for (const k in obj) {\r\n let v = obj[k]\r\n var s = str + '.' + encodeURIComponent(k);\r\n arr.push(this.parseObj(v, s));\r\n }\r\n str = arr.join('&');\r\n } else {\r\n //普通类型\r\n str = str + '=' + encodeURIComponent(obj);\r\n }\r\n return str;\r\n }\r\n\r\n getOss = (url: string, params?: {}, responseType?:any, noError = false): Observable<any> => {\r\n return new Observable<any>(observe => {\r\n if (url == undefined) {\r\n observe.next();\r\n observe.unsubscribe()\r\n return\r\n }\r\n console.log(\"url\",url)\r\n if (!url.startsWith(\"http\")) {\r\n url = atr_static_datas.OSS_URL + url;\r\n }\r\n let _headers = new HttpHeaders();\r\n let withCredentials = false\r\n // //console.log(_headers)\r\n if (url.endsWith(\".o\") && !params) {\r\n url += \"?v=\" + new Date().getTime();\r\n }\r\n if (noError) {\r\n if (url.indexOf('?') > 0) {\r\n url += \"&noError\"\r\n } else {\r\n url += \"?noError\"\r\n }\r\n }\r\n this.httpClient.get(url, {\r\n headers: _headers,\r\n params: params,\r\n withCredentials: withCredentials,\r\n responseType: responseType || 'text'\r\n }).subscribe(result => {\r\n observe.next(result);\r\n observe.unsubscribe()\r\n }, error => {\r\n observe.error(error)\r\n observe.unsubscribe()\r\n })\r\n\r\n })\r\n }\r\n downloadXls(url: string, params?: {}) {\r\n this.post(\"third/auth/getAuthToken\", {}, ToolsUtil.getHttpOptions()).subscribe(\r\n result => {\r\n let thridParma = {\r\n \"reqMethod\": \"auth\",\r\n \"sign\": result.data,\r\n \"x-header-atr\": \"web\",\r\n token: LocalStorageUtil.getUserToken(),\r\n userId: LocalStorageUtil.getUserId()\r\n }\r\n params = Object.assign(params, thridParma);\r\n ToolsUtil.downloadXls(atr_static_datas.SERVER_URL + url, params);\r\n },\r\n error => {\r\n })\r\n }\r\n}\r\n\r\n\r\n","import {Injectable, EventEmitter} from '@angular/core';\r\nimport {Observable} from 'rxjs';\r\nimport {atr_static_datas, Menu} from '../base/atr-common';\r\nimport {HttpService} from \"./http.service\";\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class MenuService {\r\n\r\n private data: Menu[] = [];\r\n private menuChange: EventEmitter<Menu[]>\r\n private urlChange: EventEmitter<any>;\r\n\r\n private isLoadMenu: 'unload' | 'loading' | 'loaded' = 'unload';\r\n\r\n // private Menu\r\n constructor(\r\n private httpService: HttpService,\r\n ) {\r\n this.menuChange = new EventEmitter()\r\n this.urlChange = new EventEmitter()\r\n }\r\n\r\n gotoUrl(routeParam: { url: string, paramUrl: string, title?: string }) {\r\n this.urlChange.emit(routeParam);\r\n }\r\n\r\n getUrlChange(): any {\r\n return this.urlChange;\r\n }\r\n\r\n getCurMenu(url: string): Observable<Menu> {\r\n return new Observable<any>(observe => {\r\n if (this.isLoadMenu == \"loaded\") {\r\n observe.next(this.getMenuByUrl(this.data, url));\r\n observe.unsubscribe();\r\n } else {\r\n this.loadMenus().subscribe(\r\n result => {\r\n observe.next(this.getMenuByUrl(this.data, url));\r\n observe.unsubscribe();\r\n },\r\n error => {\r\n // console.log(error);\r\n }\r\n )\r\n }\r\n })\r\n\r\n }\r\n\r\n getMenuByUrl(menus: any, url: string): Menu {\r\n let tempMenu: Menu | any = null;\r\n for (let menu of menus) {\r\n if (this.isLoadUrlEqMenu(menu.link, url)) {\r\n tempMenu = menu;\r\n break;\r\n } else if (menu.children && menu.children.length > 0) {\r\n if (this.getMenuByUrl(menu.children, url) != null) {\r\n tempMenu = this.getMenuByUrl(menu.children, url);\r\n break;\r\n }\r\n }\r\n }\r\n return tempMenu\r\n }\r\n\r\n loadMenus(): Observable<any> {\r\n return new Observable<any>(observe => {\r\n if (!atr_static_datas.menu_url) {\r\n alert('请配置 获取菜单详情接口 atr_static_datas.menu_url')\r\n return\r\n }\r\n if (this.isLoadMenu == 'unload') {\r\n this.isLoadMenu = 'loading';\r\n let options = {\r\n isCommonHttpHeader: true\r\n };\r\n this.httpService.post(atr_static_datas.menu_url, {}, {\r\n isCommonHttpHeader: true\r\n }).subscribe(\r\n (result: any) => {\r\n if (result.status == 200) {\r\n this.isLoadMenu = 'loaded';\r\n this.data = result.data;\r\n } else {\r\n this.isLoadMenu = 'unload';\r\n this.data = [];\r\n }\r\n observe.next(this.data);\r\n this.menuChange.emit(this.data);\r\n observe.unsubscribe()\r\n },\r\n (error: any) => {\r\n observe.error(error)\r\n observe.unsubscribe()\r\n }\r\n )\r\n } else if (this.isLoadMenu == 'loading') {\r\n // console.log(\"MenuChange999\");\r\n this.menuChange.subscribe((menus: Menu[]) => {\r\n // console.log(\"MenuChange\");\r\n observe.next(menus);\r\n observe.unsubscribe()\r\n })\r\n } else {\r\n observe.next(this.data);\r\n observe.unsubscribe()\r\n }\r\n })\r\n }\r\n\r\n isLoadUrlEqMenu(menuUrl: string, url: string): boolean {\r\n let isTrue = false;\r\n if (menuUrl.indexOf(\"/:id\") > -1) {\r\n let menuUrls = menuUrl.split(\"/:id\");\r\n if (url.indexOf(menuUrls[0]) == 0) {\r\n if (menuUrl.split(\"/\").length == url.split(\"/\").length) {\r\n isTrue = true;\r\n }\r\n }\r\n } else if (menuUrl == url) {\r\n isTrue = true;\r\n }\r\n return isTrue;\r\n }\r\n\r\n /**\r\n * 清空菜单\r\n */\r\n clear() {\r\n this.isLoadMenu = 'unload';\r\n this.data = [];\r\n }\r\n\r\n}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse, HttpResponseBase, HttpResponse, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of ,throwError } from 'rxjs';\r\nimport { mergeMap, catchError } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\nimport { NzNotificationService } from 'ng-zorro-antd/notification';\r\nimport {NzMessageService} from 'ng-zorro-antd/message';\r\nimport {LocalStorageUtil} from \"../utils/localstorage.util\";\r\nimport {environment} from \"ng-zorro-antd/core/environments\";\r\nimport {AtrReuseStrategy} from \"../routereuse/atr-reuse-strategy\";\r\nimport {MenuService} from \"../services/menu.service\";\r\nimport {atr_static_datas} from \"../base/atr-common\";\r\n\r\nconst CODEMESSAGE = {\r\n 200: '服务器成功返回请求的数据。',\r\n 201: '新建或修改数据成功。',\r\n 202: '一个请求已经进入后台排队(异步任务)。',\r\n 204: '删除数据成功。',\r\n 400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',\r\n 401: '用户没有权限(令牌、用户名、密码错误)。',\r\n 403: '用户得到授权,但是访问是被禁止的。',\r\n 404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',\r\n 406: '请求的格式不可得。',\r\n 410: '请求的资源被永久删除,且不会再得到的。',\r\n 422: '当创建一个对象时,发生一个验证错误。',\r\n 500: '服务器发生错误,请检查服务器。',\r\n 502: '网关错误。',\r\n 503: '服务不可用,服务器暂时过载或维护。',\r\n 504: '网关超时。',\r\n};\r\n\r\n@Injectable()\r\nexport class BaseInterceptor implements HttpInterceptor{\r\n constructor(private injector: Injector) {}\r\n private get notification(): NzNotificationService {\r\n return this.injector.get(NzNotificationService);\r\n }\r\n private get message(): NzMessageService {\r\n return this.injector.get(NzMessageService);\r\n }\r\n private get menuService(): MenuService{\r\n return this.injector.get(MenuService)\r\n }\r\n\r\n private goTo(url: string,isClearCache:boolean) {\r\n // console.log(\"需要跳转到页面:\")\r\n // console.log(url);\r\n setTimeout(() => this.injector.get(Router).navigateByUrl(url));\r\n if(isClearCache){\r\n setTimeout(()=> AtrReuseStrategy.deleteAll(),50);\r\n }\r\n }\r\n\r\n private checkStatus(ev: HttpResponseBase) {\r\n if ((ev.status >= 200 && ev.status < 300) || ev.status === 401) {\r\n return;\r\n }\r\n // console.log(ev.status);\r\n // const errortext = CODEMESSAGE[ev.status] || ev.statusText;\r\n this.message.error('网络错误,请稍后重试:' + ev.status);\r\n }\r\n private handleData(ev: HttpResponseBase): Observable<any> {\r\n this.checkStatus(ev);\r\n // 业务处理:一些通用操作\r\n switch (ev.status) {\r\n case 200:\r\n // TODO status\r\n // 业务层级错误处理,以下是假定restful有一套统一输出格式(指不管成功与否都有相应的数据格式)情况下进行处理\r\n // 例如响应内容:\r\n // 错误内容:{ status: 1, msg: '非法参数' }\r\n // 正确内容:{ status: 0, response: { } }\r\n // 则以下代码片断可直接适用\r\n if (ev instanceof HttpResponse) {\r\n const body: any = ev.body;\r\n if (body && body.status === 401) {\r\n this.notification.error(`未登录或登录已过期,请重新登录。`, ``,{\r\n nzKey: 'outTime'\r\n });\r\n // TODO 清空 token 信息\r\n LocalStorageUtil.clearUs()\r\n this.menuService.clear();\r\n this.goTo('/p/login',true);\r\n } else if(body && body.status === 1024){\r\n // 或者依然保持完整的格式\r\n this.message.error(body.message);\r\n } else if(body && body.status === 1025){\r\n // 或者依然保持完整的格式\r\n this.message.error(`参数为空。`);\r\n } else if(body && body.status === 503){\r\n // 或者依然保持完整的格式\r\n this.message.error(body.message);\r\n }else if(body && body.status === 204){\r\n // 或者依然保持完整的格式\r\n this.message.success(body.message);\r\n }else if(body && body.status === 201){\r\n // 或者依然保持完整的格式\r\n this.message.success(body.message);\r\n }else{\r\n return of(ev);\r\n }\r\n }\r\n break;\r\n case 401:\r\n this.notification.error(`未登录或登录已过期,请重新登录。`, ``,{\r\n nzKey: 'outTime'\r\n });\r\n // TODO 清空 token 信息\r\n\r\n // this.goTo('/p/login',false);\r\n break;\r\n case 403:\r\n case 404:\r\n case 500:\r\n this.goTo(`/exception/${ev.status}`,false);\r\n break;\r\n default:\r\n if (ev instanceof HttpErrorResponse) {\r\n // console.warn('未可知错误,大部分是由于后端不支持CORS或无效配置引起', ev);\r\n return throwError(ev);\r\n }\r\n break;\r\n }\r\n return of(ev);\r\n }\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if(!atr_static_datas.SERVER_URL){\r\n alert('请配置ip atr_static_datas.SERVER_URL')\r\n return new Observable();\r\n }\r\n // 统一加上服务端前缀\r\n let url = req.url;\r\n if (!url.startsWith('https://') && !url.startsWith('http://')) {\r\n url = atr_static_datas.SERVER_URL + url;\r\n req = req.clone({ url });\r\n }\r\n\r\n return next.handle(req).pipe(\r\n mergeMap((event: any) => {\r\n // 允许统一对请求错误处理\r\n if (event instanceof HttpResponseBase) return this.handleData(event);\r\n // 若一切都正常,则后续操作\r\n return of(event);\r\n }),\r\n catchError((err: HttpErrorResponse) => this.handleData(err)),\r\n );\r\n }\r\n}\r\n","\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { NzAffixModule } from 'ng-zorro-antd/affix';\r\nimport { NzAlertModule } from 'ng-zorro-antd/alert';\r\nimport { NzAnchorModule } from 'ng-zorro-antd/anchor';\r\nimport { NzAutocompleteModule } from 'ng-zorro-antd/auto-complete';\r\nimport { NzAvatarModule } from 'ng-zorro-antd/avatar';\r\nimport { NzBackTopModule } from 'ng-zorro-antd/back-top';\r\nimport { NzBadgeModule } from 'ng-zorro-antd/badge';\r\nimport { NzBreadCrumbModule } from 'ng-zorro-antd/breadcrumb';\r\nimport { NzButtonModule } from 'ng-zorro-antd/button';\r\nimport { NzCalendarModule } from 'ng-zorro-antd/calendar';\r\nimport { NzCardModule } from 'ng-zorro-antd/card';\r\nimport { NzCarouselModule } from 'ng-zorro-antd/carousel';\r\nimport { NzCascaderModule } from 'ng-zorro-antd/cascader';\r\nimport { NzCheckboxModule } from 'ng-zorro-antd/checkbox';\r\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\r\nimport { NzCommentModule } from 'ng-zorro-antd/comment';\r\nimport { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';\r\nimport { NzTransButtonModule } from 'ng-zorro-antd/core/trans-button';\r\nimport { NzWaveModule } from 'ng-zorro-antd/core/wave';\r\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\r\nimport { NzDescriptionsModule } from 'ng-zorro-antd/descriptions';\r\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\r\nimport { NzDrawerModule } from 'ng-zorro-antd/drawer';\r\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\r\nimport { NzEmptyModule } from 'ng-zorro-antd/empty';\r\nimport { NzFormModule } from 'ng-zorro-antd/form';\r\nimport { NzGridModule } from 'ng-zorro-antd/grid';\r\nimport { NzI18nModule } from 'ng-zorro-antd/i18n';\r\nimport { NzIconModule } from 'ng-zorro-antd/icon';\r\nimport { NzInputModule } from 'ng-zorro-antd/input';\r\nimport { NzInputNumberModule } from 'ng-zorro-antd/input-number';\r\nimport { NzLayoutModule } from 'ng-zorro-antd/layout';\r\nimport { NzListModule } from 'ng-zorro-antd/list';\r\nimport { NzMentionModule } from 'ng-zorro-antd/mention';\r\nimport { NzMenuModule } from 'ng-zorro-antd/menu';\r\nimport { NzMessageModule } from 'ng-zorro-antd/message';\r\nimport { NzModalModule } from 'ng-zorro-antd/modal';\r\nimport { NzNotificationModule } from 'ng-zorro-antd/notification';\r\nimport { NzPageHeaderModule } from 'ng-zorro-antd/page-header';\r\nimport { NzPaginationModule } from 'ng-zorro-antd/pagination';\r\nimport { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';\r\nimport { NzPopoverModule } from 'ng-zorro-antd/popover';\r\nimport { NzProgressModule } from 'ng-zorro-antd/progress';\r\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\r\nimport { NzRateModule } from 'ng-zorro-antd/rate';\r\nimport { NzResultModule } from 'ng-zorro-antd/result';\r\nimport { NzSelectModule } from 'ng-zorro-antd/select';\r\nimport { NzSkeletonModule } from 'ng-zorro-antd/skeleton';\r\nimport { NzSliderModule } from 'ng-zorro-antd/slider';\r\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\r\nimport { NzStatisticModule } from 'ng-zorro-antd/statistic';\r\nimport { NzStepsModule } from 'ng-zorro-antd/steps';\r\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\r\nimport { NzTableModule } from 'ng-zorro-antd/table';\r\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\r\nimport { NzTagModule } from 'ng-zorro-antd/tag';\r\nimport { NzTimePickerModule } from 'ng-zorro-antd/time-picker';\r\nimport { NzTimelineModule } from 'ng-zorro-antd/timeline';\r\nimport { NzToolTipModule } from 'ng-zorro-antd/tooltip';\r\nimport { NzTransferModule } from 'ng-zorro-antd/transfer';\r\nimport { NzTreeModule } from 'ng-zorro-antd/tree';\r\nimport { NzTreeSelectModule } from 'ng-zorro-antd/tree-select';\r\nimport { NzTypographyModule } from 'ng-zorro-antd/typography';\r\nimport { NzUploadModule } from 'ng-zorro-antd/upload';\r\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\r\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport { NzSpaceModule } from 'ng-zorro-antd/space';\r\nimport {NzImageModule} from 'ng-zorro-antd/image';\r\n\r\n@NgModule({\r\n exports: [\r\n CommonModule,\r\n NzSpaceModule,\r\n NzAffixModule,\r\n NzAlertModule,\r\n NzAnchorModule,\r\n NzAutocompleteModule,\r\n NzAvatarModule,\r\n NzBackTopModule,\r\n NzBadgeModule,\r\n NzButtonModule,\r\n NzBreadCrumbModule,\r\n NzCalendarModule,\r\n NzCardModule,\r\n NzCarouselModule,\r\n NzCascaderModule,\r\n NzCheckboxModule,\r\n NzCollapseModule,\r\n NzCommentModule,\r\n NzDatePickerModule,\r\n NzDescriptionsModule,\r\n NzDividerModule,\r\n NzDrawerModule,\r\n NzDropDownModule,\r\n NzEmptyModule,\r\n NzFormModule,\r\n NzGridModule,\r\n NzI18nModule,\r\n NzIconModule,\r\n NzInputModule,\r\n NzInputNumberModule,\r\n NzLayoutModule,\r\n NzListModule,\r\n NzMentionModule,\r\n NzMenuModule,\r\n NzMessageModule,\r\n NzModalModule,\r\n NzNoAnimationModule,\r\n NzNotificationModule,\r\n NzPageHeaderModule,\r\n NzPaginationModule,\r\n NzPopconfirmModule,\r\n NzPopoverModule,\r\n NzProgressModule,\r\n NzRadioModule,\r\n NzRateModule,\r\n NzResultModule,\r\n NzSelectModule,\r\n NzSkeletonModule,\r\n NzSliderModule,\r\n NzSpinModule,\r\n NzStatisticModule,\r\n NzStepsModule,\r\n NzSwitchModule,\r\n NzTableModule,\r\n NzTabsModule,\r\n NzTagModule,\r\n NzTimePickerModule,\r\n NzTimelineModule,\r\n NzToolTipModule,\r\n NzTransButtonModule,\r\n NzTransferModule,\r\n NzTreeModule,\r\n NzTreeSelectModule,\r\n NzTypographyModule,\r\n NzUploadModule,\r\n NzWaveModule,\r\n NzResizableModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NzImageModule\r\n ]\r\n})\r\nexport class CusNgZorroAntdModule {\r\n\r\n}\r\n\r\n\r\n","import { trigger, state, style, transition, animate, keyframes } from '@angular/animations';\r\n\r\nexport const flyIn = trigger('flyIn', [\r\n state('in', style({transform: 'translateX(0)'})),\r\n transition('void => *', [\r\n animate(3000, keyframes([\r\n style({opacity: 0, transform: 'translateX(-100%)', offset: 0}),\r\n style({opacity: 1, transform: 'translateX(250px)', offset: 0.3}),\r\n style({opacity: 1, transform: 'translateX(0)', offset: 1.0})\r\n ]))\r\n ]),\r\n transition('* => void', [\r\n animate(3000, keyframes([\r\n style({opacity: 1, transform: 'translateX(0)', offset: 0}),\r\n style({opacity: 1, transform: 'translateX(-250px)', offset: 0.7}),\r\n style({opacity: 0, transform: 'translateX(100%)', offset: 1.0})\r\n ]))\r\n ])\r\n]);\r\n","import { trigger, state, style, transition, animate, keyframes } from '@angular/animations';\r\n\r\nexport const scrollScreen = trigger('scrollScreen', [\r\n state('void', style({ opacity: 1, transform: 'translate3d(0, 0, 0)', offset: 1.0 })),\r\n state('start', style({ opacity: 1, transform: 'translate3d(0, 0, 0)', offset: 1.0 })),\r\n state('end', style({ opacity: 1, transform: 'translate3d(0, -100%, 0)', offset: 0 })),\r\n transition('start => end', [\r\n animate(50000)\r\n ])\r\n // state('void', style({ opacity: 1, transform: 'translate3d(0, 0, 0)', offset: 1.0 })),\r\n // state('start', style({ opacity: 1, transform: 'translate3d(0, 0, 0)', offset: 1.0 })),\r\n // state('end', style({ opacity: 1, transform: 'translate3d(0, -200px, 0)', offset: 0 })),\r\n // transition('start => end', [\r\n // animate(1000)\r\n // ])\r\n // state('inactive', style({ transform: 'translate3d(0, 0, 0)' })),\r\n // transition('* <=> *', [\r\n // animate(3000, keyframes([\r\n // style({ opacity: 0, transform: 'translate3d(0, -200px, 0)', offset: 0 }),\r\n // style({ opacity: 1, transform: 'translate3d(0, 0, 0)', offset: 1.0 })\r\n // ]))\r\n // ]),\r\n]);\r\n\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n\r\n@Pipe({\r\n name: 'isEmpty'\r\n})\r\nexport class IsEmptyPipe implements PipeTransform {\r\n\r\n transform(value: any, defaultVal?: any): any {\r\n if (defaultVal) {\r\n return ToolsUtil.isNull(value) ? defaultVal : 0;\r\n }\r\n return ToolsUtil.isNull(value)\r\n }\r\n\r\n}\r\n","import {json, DictGroup, atr_static_datas} from '../base/atr-common';\r\nimport {ToolsUtil} from './ToolsUtil';\r\n\r\nexport class SessionStorageUtil {\r\n static getStorageKey(key: string): string {\r\n return atr_static_datas.STORAGE_PRE + key;\r\n }\r\n\r\n static putDictGroup(dictGroup: DictGroup): void {\r\n let str = sessionStorage.getItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode());\r\n let dicts: json = {};\r\n // console.log(\"fff\");\r\n if (str) {\r\n dicts = JSON.parse(str);\r\n }\r\n dicts[dictGroup.groupCode] = dictGroup;\r\n if (dicts) {\r\n sessionStorage.setItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode(), JSON.stringify(dicts))\r\n }\r\n }\r\n\r\n static getDictGroupByCode(code: string): DictGroup | any {\r\n // console.log(\"jjj\")\r\n let str = sessionStorage.getItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode());\r\n let dicts: any = null;\r\n if (str) {\r\n dicts = JSON.parse(str);\r\n }\r\n if (dicts && dicts.hasOwnProperty(code))\r\n return dicts[code];\r\n else\r\n return null\r\n }\r\n\r\n static resetDict() {\r\n sessionStorage.removeItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode())\r\n }\r\n\r\n static put(key: any, value: any) {\r\n sessionStorage.setItem(this.getStorageKey(key), JSON.stringify(value))\r\n }\r\n\r\n static get(key: any) {\r\n let str = sessionStorage.getItem(this.getStorageKey(key));\r\n let value: any = null;\r\n if (str) {\r\n value = JSON.parse(str);\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpService } from '../http.service';\r\nimport { Observable } from 'rxjs';\r\nimport {atr_static_datas, DictGroup} from '../../base/atr-common';\r\nimport { SessionStorageUtil } from '../../utils/sessionstorage.util';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DictService {\r\n\r\n constructor( private httpService: HttpService) {\r\n }\r\n getCodeName(code: string, value: string) {\r\n let dict = SessionStorageUtil.getDictGroupByCode(code);\r\n if (dict) {\r\n let cur = dict.dicts.filter((v:any) => v.id == value)[0]\r\n return cur ? cur.typeName : value;\r\n }\r\n return value;\r\n }\r\n getCodeNameSync(key:any,code: string, selectUrl?:any) {\r\n this.getDictByCodeSync(code, selectUrl)\r\n return this.getCodeName(code,key)\r\n }\r\n\r\n getByCode(code: string, selectUrl?:any): DictGroup {\r\n this.getDictByCodeSync(code, selectUrl);\r\n return SessionStorageUtil.getDictGroupByCode(code);\r\n }\r\n\r\n private async getDictByCodeSync(code: string, selectUrl?:any) {\r\n await this.getDictBycode(code, selectUrl).subscribe()\r\n }\r\n getDicBycodeBase(code:any, selectUrl?:any) {\r\n return new Observable<any>(observe => {\r\n let options = {\r\n isCommonHttpHeader: true\r\n };\r\n this.httpService.post(selectUrl || atr_static_datas.dic_url, {groupCode: code}, options).subscribe(\r\n result => {\r\n let data: DictGroup|any = null;\r\n if (result.status == 200) {\r\n data = {\r\n groupCode: code,\r\n dicts: result.data\r\n };\r\n SessionStorageUtil.putDictGroup(data);\r\n }\r\n observe.next(data);\r\n observe.unsubscribe()\r\n },\r\n error => {\r\n observe.error(error);\r\n observe.unsubscribe()\r\n }\r\n )\r\n })\r\n }\r\n getDictBycode(code: string, selectUrl?:any): Observable<DictGroup> {\r\n // //console.log(code);\r\n return new Observable<any>(observe => {\r\n let dict = SessionStorageUtil.getDictGroupByCode(code);\r\n if (dict) {\r\n observe.next(dict);\r\n observe.unsubscribe()\r\n } else {\r\n this.getDicBycodeBase(code, selectUrl).subscribe(result => {\r\n observe.next(result);\r\n observe.unsubscribe()\r\n }, error => {\r\n observe.next(error);\r\n observe.unsubscribe()\r\n })\r\n\r\n }\r\n })\r\n }\r\n modifyByCode(code :string){\r\n this.httpService.post(atr_static_datas.dic_url,{groupCode:code},{isCommonHttpHeader:true}).subscribe(\r\n result => {\r\n let data:DictGroup |any = null;\r\n if(result.status == 200){\r\n data = {\r\n groupCode:code,\r\n dicts:result.data\r\n };\r\n SessionStorageUtil.putDictGroup(data);\r\n }\r\n },\r\n )\r\n }\r\n reset(){\r\n SessionStorageUtil.resetDict();\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {DictService} from \"../services/dict/dict.service\";\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n@Pipe({\r\n name: 'dicts'\r\n})\r\nexport class DictsPipe implements PipeTransform {\r\n constructor(private dictService: DictService) {\r\n }\r\n\r\n transform(value: any, dictCode: any) {\r\n if (ToolsUtil.isNull(dictCode)) {\r\n return value\r\n }\r\n return this.dictService.getCodeNameSync(value, dictCode)\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n\r\n@Pipe({\r\n name: 'defVal'\r\n})\r\nexport class DefaultValPipe implements PipeTransform {\r\n\r\n transform(value: any, defaultVal:any): any {\r\n if(ToolsUtil.isNull(defaultVal)){\r\n return value\r\n }\r\n if(ToolsUtil.isNull(value)){\r\n return defaultVal;\r\n }\r\n return value ;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'day'\r\n})\r\nexport class DayPipe implements PipeTransform {\r\n TIME_OF_DAY:number = 24*60*60*1000;\r\n\r\n transform(value: any, ...args: any[]): any {\r\n if(!value) return value;\r\n if(typeof value !== 'number') {\r\n throw new Error('Invalid pipe argument for WelcomePipe');\r\n }\r\n return parseInt(value/this.TIME_OF_DAY+\"\") ;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DefaultValPipe } from './defaultVal.pipe';\r\n\r\n@Pipe({\r\n name: 'safeCompute'\r\n})\r\nexport class SafeComputePipe implements PipeTransform {\r\n\r\n transform(first: number, second: number, isParseInt?: boolean ): any {\r\n let isE = new DefaultValPipe();\r\n second = isE.transform(second,0);\r\n if(second == 0){\r\n return 0;\r\n }\r\n let result = isE.transform(first,0) / second + \"\";\r\n\r\n return isParseInt ? parseInt(result) : result ;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n\r\n@Pipe({\r\n name: 'isNotEmpty'\r\n})\r\nexport class IsNotEmptyPipe implements PipeTransform {\r\n\r\n transform(value: any): any {\r\n return !ToolsUtil.isNull(value)\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n\r\n@Pipe({name: 'ossImg'})\r\nexport class OssImgPipe implements PipeTransform {\r\n constructor() {\r\n }\r\n\r\n transform(value:any,isVideoCover = false) {\r\n return isVideoCover ? ToolsUtil.getVideoCover(value) : ToolsUtil.getOssUrl(value) ;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {DomSanitizer} from \"@angular/platform-browser\";\r\n\r\n@Pipe({\r\n name: 'safeHtml'\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor (private sanitizer: DomSanitizer) {\r\n }\r\n transform(html:any) {\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'chinaNum'\r\n})\r\nexport class ChinaNumPipe implements PipeTransform {\r\n transform(value: any, ...args: any[]): any {\r\n let changeNum = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];\r\n let unit = [\"\", \"十\", \"百\", \"千\", \"万\"];\r\n if(!value) return value;\r\n if(typeof value === 'number') {\r\n let getWan = (temp:any) => {\r\n   let strArr = temp.toString().split(\"\").reverse();\r\n   let newNum = \"\";\r\n   for (var i = 0; i < strArr.length; i++) {\r\n    newNum = (i == 0 && strArr[i] == 0 ? \"\" : (i > 0 && strArr[i] == 0 && strArr[i - 1] == 0 ? \"\" : changeNum[strArr[i]] + (strArr[i] == 0 ? unit[0] : unit[i]))) + newNum;\r\n    }\r\n   return newNum;\r\n }\r\n let overWan = Math.floor(value / 10000);\r\n let noWan = value % 10000 + \"\";\r\n if (noWan.toString().length < 4) {\r\n      noWan = \"0\" + noWan;\r\n    }\r\n return overWan ? getWan(overWan) + \"万\" + getWan(noWan) +\"、\" : getWan(value)+\"、\" ;\r\n }\r\n return \"\";\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'count'\r\n})\r\nexport class CountPipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): any {\r\n if(!value) return value;\r\n if(typeof value !== 'number') {\r\n throw new Error('Invalid pipe argument for WelcomePipe');\r\n }\r\n let leftd = Math.floor(value/(1000*60*60*24)), //计算天数\r\n lefth = Math.floor(value/(1000*60*60)%24), //计算小时数\r\n leftm = Math.floor(value/(1000*60)%60), //计算分钟数\r\n lefts = Math.floor(value/1000%60); //计算秒数\r\n let returnStr = \"\";\r\n if(leftd > 0){\r\n returnStr = leftd < 10 ? \"0\":\"\" +leftd+\"天\"\r\n }\r\n // if(lefth > 0){\r\n returnStr += (lefth < 10 ? \"0\":\"\") +lefth+\"小时\"\r\n returnStr += (leftm < 10 ? \"0\":\"\") +leftm+\"分\"\r\n returnStr += (lefts < 10 ? \"0\":\"\") +lefts+\"秒\"\r\n // }\r\n return returnStr ;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n\r\n@Pipe({\r\n name: 'oss'\r\n})\r\nexport class OssPipe implements PipeTransform {\r\n transform(value: any, defaultVal?:any): any {\r\n return ToolsUtil.getOssUrl(value);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n\r\n@Pipe({\r\n name: 'ossStatic'\r\n})\r\nexport class OssStaticPipe implements PipeTransform {\r\n transform(value: any, defaultVal?:any): any {\r\n return ToolsUtil.getStaticOssUrl(value);\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\nimport { ToolsUtil } from '../utils/ToolsUtil';\r\n\r\n@Pipe({\r\n name: 'removeHtml'\r\n})\r\nexport class RemoveHtmlPipe implements PipeTransform {\r\n\r\n constructor(private sanitized: DomSanitizer) {\r\n }\r\n\r\n transform(value: any, ...args: any[]): any {\r\n return ToolsUtil.removeHtml(value);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeUrl'\r\n})\r\nexport class SafeUrlPipe implements PipeTransform {\r\n\r\n constructor(private sanitized: DomSanitizer) { }\r\n transform(value: any, ...args: any[]): any {\r\n return this.sanitized.bypassSecurityTrustResourceUrl(value);\r\n }\r\n\r\n}\r\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {IsEmptyPipe} from \"./is-empty.pipe\";\nimport {DictsPipe} from \"./dicts.pipe\";\nimport {DefaultValPipe} from \"./defaultVal.pipe\";\nimport {DayPipe} from \"./day.pipe\";\nimport {SafeComputePipe} from \"./safe-compute.pipe\";\nimport {IsNotEmptyPipe} from \"./is-not-empty.pipe\";\nimport {OssImgPipe} from \"./image-pipe.pipe\";\nimport {SafeHtmlPipe} from \"./safe-html.pipe\";\nimport {ChinaNumPipe} from \"./china-num.pipe\";\nimport {CountPipe} from \"./count.pipe\";\nimport {OssPipe} from \"./oss.pipe\";\nimport {OssStaticPipe} from \"./ossStatic.pipe\";\nimport {RemoveHtmlPipe} from \"./remove-html.pipe\";\nimport {SafeUrlPipe} from \"./safe-url.pipe\";\n\n// const PIPES = [IsNotEmptyPipe, DefaultValPipe, DictsPipe, DayPipe, IsEmptyPipe, SafeComputePipe,OssImgPipe]\nconst PIPES = [IsNotEmptyPipe, DefaultValPipe, DictsPipe, DayPipe, IsEmptyPipe, SafeComputePipe, OssImgPipe,SafeHtmlPipe,\n ChinaNumPipe,CountPipe,OssPipe,OssStaticPipe,RemoveHtmlPipe,SafeUrlPipe]\n\n@NgModule({\n declarations: [...PIPES],\n exports: PIPES,\n imports: [\n CommonModule,\n ]\n})\nexport class PipeModuleModule {\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpService } from './http.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ToolsUtil } from '../utils/ToolsUtil';\r\nimport { HttpRequest, HttpClient, HttpEvent, HttpResponse, HttpEventType } from '@angular/common/http';\r\nimport {atr_static_datas} from \"../base/atr-common\";\r\n\r\n@Injectable()\r\nexport class UploadOssService {\r\n uploadData: any;\r\n\r\n constructor(private httpService: HttpService,private httpClient: HttpClient) { }\r\n\r\n uploadOss = (file:any,dir = 'ueditor') => {\r\n return new Observable<any>(observe => {\r\n const success = (result:any) => {\r\n if (result.status === 200) {\r\n this.uploadData = result.data;\r\n this.customReq(file).subscribe((url) => {\r\n observe.next(url);\r\n observe.unsubscribe();\r\n });\r\n\r\n } else {\r\n observe.next(false);\r\n observe.unsubscribe();\r\n }\r\n };\r\n\r\n const error = (err:any) => {\r\n observe.next(false);\r\n observe.unsubscribe();\r\n };\r\n let fileName = ToolsUtil.getRandomFileName() + \".\" + ToolsUtil.getFileExt(file.name);\r\n this.httpService.post(atr_static_datas.OSS_POLICY, { dir: dir,fileName:fileName}, ToolsUtil.getHttpOptions()).subscribe(success, error);\r\n });\r\n\r\n }\r\n customReqP = (file: File) => {\r\n const formData = new FormData();\r\n formData.append('OSSAccessKeyId', this.uploadData.OSSAccessKeyId);\r\n formData.append('policy', this.uploadData.policy);\r\n formData.append('Signature', this.uploadData.Signature);\r\n // @ts-ignore\r\n formData.append('key', file['key']);\r\n formData.append('success_action_status', '200');\r\n formData.append('file', file as any);\r\n\r\n const req = new HttpRequest('POST', atr_static_datas.OSS_URL, formData, {\r\n reportProgress: true\r\n });\r\n return this.httpClient.request(req).toPromise();\r\n }\r\n uploadOssFiles = (files: any[]) => {\r\n return new Observable<any>(observe => {\r\n const success = (result:any) => {\r\n if (result.status === 200) {\r\n this.uploadData = result.data;\r\n let param: any[] = [];\r\n files.forEach(item => {\r\n item.key = this.uploadData.dir + ToolsUtil.getRandomFileName() + '.' + ToolsUtil.getFileExt(item.name);\r\n param.push(this.customReqP(item));\r\n })\r\n Promise.all(param).then(events => {\r\n for (let i = 0; i < events.length; i++) {\r\n if (events[i].status == 200) {\r\n events[i].url = events[i].url + files[i].key;\r\n }\r\n }\r\n observe.next(events);\r\n observe.unsubscribe();\r\n })\r\n\r\n } else {\r\n observe.next(false);\r\n observe.unsubscribe();\r\n }\r\n };\r\n\r\n const error = (err:any) => {\r\n observe.next(false);\r\n observe.unsubscribe();\r\n };\r\n\r\n this.httpService.post(atr_static_datas.OSS_POLICY, {dir: 'ueditor'}, ToolsUtil.getHttpOptions()).subscribe(success, error);\r\n });\r\n\r\n }\r\n customReq = (file: File) => {\r\n const formData = new FormData();\r\n for(let key in this.uploadData){\r\n if(key!='host')\r\n formData.append(key,this.uploadData[key])\r\n }\r\n formData.append('file', file as any);\r\n\r\n const req = new HttpRequest('POST', this.uploadData.host!, formData, {\r\n reportProgress: true\r\n });\r\n\r\n return new Observable<any>(observe => {\r\n const success = (event: HttpEvent<any>) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n\r\n } else if (event instanceof HttpResponse) {\r\n const url = event.url + this.uploadData.key;\r\n observe.next(url);\r\n observe.unsubscribe();\r\n }\r\n }\r\n\r\n const error = () => {\r\n observe.next(false);\r\n observe.unsubscribe();\r\n };\r\n\r\n this.httpClient.request(req).subscribe(success, error);\r\n });\r\n }\r\n\r\n}\r\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {AtrErrorImgDirective} from \"./core/directive/error-img.directive\";\nimport {CusNgZorroAntdModule} from \"./core/ngz-module/cus-zorro-antd.module\";\nimport {PipeModuleModule} from \"./core/pipe/pipe-module.module\";\nimport {HttpService} from \"./core/services/http.service\";\nimport {MenuService} from \"./core/services/menu.service\";\nimport {UploadOssService} from \"./core/services/upload-oss.service\";\n\nconst COMMON_COMPONENT: any[] = []\n\n@NgModule({\n declarations: [...COMMON_COMPONENT],\n imports: [\n CommonModule,\n CusNgZorroAntdModule,\n PipeModuleModule,\n ],\n providers:[HttpService,MenuService,UploadOssService],\n exports: [...COMMON_COMPONENT, CusNgZorroAntdModule,\n PipeModuleModule\n ]\n\n})\nexport class AtrComponentsModule {\n}\n","import {Component, OnInit} from '@angular/core';\nimport {atr_static_datas} from \"../../core/base/atr-common\";\n\n@Component({\n selector: 'atr-hello',\n templateUrl: './hello.component.html',\n styleUrls: ['./hello.component.css']\n})\nexport class HelloComponent implements OnInit {\n test = atr_static_datas.test;\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n}\n","<p>hello works!</p>\n<p>测试:{{test}}</p>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {HelloComponent} from \"./hello.component\";\n\n\n\n@NgModule({\n declarations: [HelloComponent],\n imports: [\n CommonModule\n ],\n exports:[HelloComponent]\n})\nexport class HelloModule { }\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, CanActivate, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { LocalStorageUtil } from '../utils/localstorage.util';\r\nimport { AtrReuseStrategy } from '../routereuse/atr-reuse-strategy';\r\nimport {atr_static_datas} from \"../base/atr-common\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AuthGuard implements CanActivate {\r\n\r\n constructor( private router: Router) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree | Observable<boolean | UrlTree> | Promise<boolean | UrlTree> {\r\n // throw new Error(\"Method not implemented.\");\r\n if( LocalStorageUtil.getUserId() != \"\"){\r\n return true;\r\n }\r\n setTimeout(()=>{\r\n this.router.navigateByUrl(atr_static_datas.login_router);\r\n })\r\n setTimeout(()=> AtrReuseStrategy.deleteAll(),50);\r\n return false;\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, Input, Injector ,OnInit, Renderer2, ViewContainerRef, TemplateRef} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport {MenuService} from \"../services/menu.service\";\r\nimport {Menu} from \"../base/atr-common\";\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n\r\n@Directive({\r\n selector: '[atrRole]'\r\n})\r\nexport class AtrRoleDirective implements OnInit{\r\n\r\n private hasView = false;\r\n\r\n @Input('atrRole')\r\n set atrRole(condition: string) {\r\n if(ToolsUtil.isNull(condition)){\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.hasView = true;\r\n return\r\n }\r\n\r\n if(condition == \"any\"){\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.hasView = true;\r\n return;\r\n }\r\n let curPath = this.getRouterUrl();\r\n this.menuService.getCurMenu(curPath).subscribe(\r\n result => {\r\n let curMenu:Menu = result;\r\n let isExited = false;\r\n if(curMenu && curMenu != null && curMenu.operation){\r\n let operations = curMenu.operation.split(\",\");\r\n for(let operation of operations){\r\n if(operation == condition){\r\n isExited = true;\r\n break;\r\n }\r\n }\r\n }\r\n if(isExited && !this.hasView){\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.hasView = true;\r\n }else if (!condition && this.hasView){\r\n this.viewContainer.clear();\r\n this.hasView = false;\r\n }\r\n },error =>{\r\n\r\n }\r\n )\r\n }\r\n\r\n constructor(private injector: Injector,private render :Renderer2 ,private templateRef: TemplateRef<any>,\r\n private viewContainer: ViewContainerRef) {\r\n\r\n }\r\n ngOnInit(): void {\r\n }\r\n private get menuService(): MenuService{\r\n return this.injector.get(MenuService)\r\n }\r\n\r\n private getRouterUrl():string{\r\n return this.injector.get(Router).url;\r\n }\r\n}\r\n","import { Directive, Input, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[atrErrorImg]'\r\n})\r\nexport class AtrErrorImgDirective {\r\n\r\n @Input('atrErrorImg') errorImagSrc: string =\"\";\r\n constructor(public elementRef: ElementRef) { }\r\n\r\n @HostListener('error', ['$event.target'])\r\n ImageError(event:any) {\r\n if (this.errorImagSrc) {\r\n event.src = this.errorImagSrc;\r\n } else {\r\n event.src = 'https://atr-demo.oss-cn-hangzhou.aliyuncs.com/common/null.png';\r\n }\r\n }\r\n}\r\n","import {Directive, Input, ElementRef, Renderer2, SimpleChanges, OnChanges} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[HqSpin]'\r\n})\r\nexport class HqSpinDirective implements OnChanges {\r\n\r\n @Input() spinLoading = false;\r\n @Input() text = null;\r\n\r\n loadingEle: any;\r\n\r\n constructor(private el: ElementRef, private render: Renderer2) {\r\n\r\n this.render.addClass(this.el.nativeElement, 'hq-spin-container');\r\n this.loadingEle = this.render.createElement('div');\r\n\r\n let dom1 = document.createElement('div');\r\n this.loadingEle.append(dom1)\r\n this.render.addClass(dom1, 'loader-03');\r\n // this.render.addClass(this.loadingEle, 'loader-04');\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const { spinLoading,text } = changes;\r\n if (text && text.currentValue) {\r\n let dom = document.createElement('div');\r\n dom.innerText = text.currentValue\r\n this.loadingEle.append(dom)\r\n this.render.addClass(dom, 'loader-04');\r\n }\r\n if (spinLoading) {\r\n\r\n if (spinLoading.currentValue) {\r\n this.render.addClass(this.el.nativeElement, 'hq-spin-blur');\r\n this.render.appendChild(this.el.nativeElement, this.loadingEle);\r\n } else {\r\n this.render.removeClass(this.el.nativeElement, 'hq-spin-blur');\r\n this.render.removeChild(this.el.nativeElement, this.loadingEle);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, forwardRef, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport {NzMessageService} from \"ng-zorro-antd/message\";\r\nimport {AtrQueryHeader, TableAction} from \"../../../../core/base/atr-common\";\r\nimport {ToolsUtil} from \"../../../../core/utils/ToolsUtil\";\r\n\r\n@Component({\r\n selector: 'app-table-form-item',\r\n templateUrl: './table-form-item.component.html',\r\n styleUrls: ['./table-form-item.component.scss', '../table.component.less'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TableFormItemComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class TableFormItemComponent implements OnInit, ControlValueAccessor {\r\n @Input() header:AtrQueryHeader |any;\r\n @Input() value: string | any; // 组件对应的 “ ngModel ”\r\n @Input() dictList:any = [];\r\n @Output() headerAction = new EventEmitter<TableAction>();\r\n\r\n onChangeListener: any; // 改变值回调\r\n onTouchedListener: any; // 交互回调\r\n isNull = ToolsUtil.isNull\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n writeValue(value: string | any[]): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n console.log('registerOnChange')\r\n this.onChangeListener = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n console.log('registerOnTouched')\r\n this.onTouchedListener = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n\r\n }\r\n\r\n onChange(e?:any) {\r\n console.log('form change',this.value)\r\n console.log('form change e',e)\r\n if(this.onChangeListener) {\r\n this.onChangeListener(e); // 告诉form,你的表单值改变成了payload\r\n }\r\n if(this.onTouchedListener) {\r\n this.onTouchedListener(); // 告诉form,你的表单有交互发生\r\n }\r\n }\r\n\r\n selectChange(value:any, item:any) {\r\n //console.log(value);\r\n let action: TableAction = {\r\n name: item.label,\r\n code: item.key,\r\n data: item,\r\n value: value,\r\n };\r\n this.headerAction.emit(action)\r\n\r\n }\r\n clickIcon(value:any, item: AtrQueryHeader, $event:any) {\r\n $event.stopPropagation();\r\n //console.log(value,item);\r\n let action: TableAction = {\r\n name: item.name,\r\n code: item.icon?.code ? item.icon?.code:\"\",\r\n data: item,\r\n value: value,\r\n };\r\n this.headerAction.emit(action)\r\n }\r\n}\r\n","<nz-form-item style=\"position: relative\" title=\"{{header.name}}\" nzFlex>\r\n <nz-form-control [nzSpan]=\"header.cspan || 24\" [ngSwitch]=\"header.type\">\r\n <nz-input-group [nzSuffix]=\"inputClearTpl\" *ngSwitchCase=\"'text'\">\r\n <input\r\n nz-input\r\n placeholder=\"{{header.name}}\"\r\n [attr.id]=\"header.key\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onChange($event)\"\r\n />\r\n\r\n </nz-input-group>\r\n\r\n <nz-select *ngSwitchCase=\"'select'\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n nzPlaceHolder=\"{{header.name}}\"\r\n nzAllowClear=\"true\"\r\n [nzMode]=\"header.nzMode || 'default'\"\r\n nzServerSearch\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onChange($event)\"\r\n >\r\n <nz-option *ngFor=\"let o of dictList\" [nzLabel]=\"o.typeName\"\r\n [nzValue]=\"o.id\"></nz-option>\r\n </nz-select>\r\n <nz-select *ngSwitchCase=\"'selectCus'\"\r\n [nzMode]=\"header.nzMode || 'default'\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n nzPlaceHolder=\"{{header.name}}\"\r\n nzAllowClear=\"true\"\r\n [nzShowSearch]=\"true\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onChange($event)\"\r\n >\r\n <nz-option *ngFor=\"let o of header.dictList\" nzCustomContent [nzLabel]=\"o.label\"\r\n [nzValue]=\"o.value\">\r\n <i class=\"select-icon\" *ngIf=\"header.icon?.isShow\" nz-icon [nzType]=\"header.icon.icon\"\r\n nzTheme=\"outline\" style=\"margin-right: 1rem;\"\r\n (click)=\"clickIcon(o.value,header,$event)\"></i>\r\n {{o.label}}\r\n </nz-option>\r\n\r\n </nz-select>\r\n <nz-cascader\r\n *ngSwitchCase=\"'cascader'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n style=\"flex: 1\" [nzAllowClear]=\"!header.disableClear\"\r\n nzPlaceHolder=\"{{header.name}}\"\r\n [nzShowSearch]=\"true\"\r\n [nzOptions]=\"header.dictList\"\r\n [(ngModel)]=\"value\"\r\n ></nz-cascader>\r\n <nz-tree-select\r\n *ngSwitchCase=\"'treeSelect'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n [nzNodes]=\"header.treeList\"\r\n nzShowSearch=\"true\"\r\n nzHideUnMatched=\"true\"\r\n nzPlaceHolder=\"{{header.name}}\"\r\n [nzShowSearch]=\"true\"\r\n [(ngModel)]=\"value\"\r\n [nzMultiple]=\"header.selectUrl.isMultiple\"\r\n [nzMaxTagCount]=\"header.maxTagCount || 3\"\r\n >\r\n </nz-tree-select>\r\n <nz-range-picker *ngSwitchCase=\"'dayRange'\" [(ngModel)]=\"value\" (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n style=\"width: 100%;\"\r\n nzAllowClear=\"true\"\r\n [nzPlaceHolder]=\"[header.name+'开始时间','结束时间']\"\r\n [nzDefaultPickerValue]=\"header.defaultVal\"\r\n ></nz-range-picker>\r\n <nz-range-picker\r\n *ngSwitchCase=\"'dateRange'\"\r\n [nzShowTime]=\"header.nzShowTime ? header.nzShowTime : false\"\r\n (ngModelChange)=\"onChange($event)\"\r\n\r\n [nzFormat]=\"header.nzShowTime && header.nzShowTime.nzFormat ?\r\n ('yyyy-MM-dd '+ header.nzShowTime.nzFormat) : 'yyyy-MM-dd HH:mm:ss'\"\r\n\r\n [nzShowNow]=\"header.nzShowTime && header.nzShowNow \"\r\n [(ngModel)]=\"value\"\r\n style=\"width: 100%;\"\r\n nzAllowClear=\"true\"\r\n [nzPlaceHolder]=\"[header.name+'开始时间','结束时间']\"\r\n [nzDefaultPickerValue]=\"header.defaultVal\"></nz-range-picker>\r\n <ng-container *ngSwitchCase=\"'sdate'\">\r\n <nz-date-picker style=\"width: 100%\" [nzFormat]=\"'yyyy-MM-dd'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n *ngIf=\"!header.dateMode\"\r\n nzAllowClear=\"true\"></nz-date-picker>\r\n <nz-date-picker style=\"width: 100%\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n *ngIf=\"header.dateMode\"\r\n [nzMode]=\"header.dateMode\"\r\n nzAllowClear=\"true\"></nz-date-picker>\r\n </ng-container>\r\n <nz-month-picker\r\n *ngSwitchCase=\"'smonth'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n [nzFormat]=\"'yyyy-MM'\"\r\n [nzPlaceHolder]=\"[header.name]\"\r\n nzAllowClear=\"true\"></nz-month-picker>\r\n <span class=\"label-title\">{{header.name}}</span>\r\n </nz-form-control>\r\n</nz-form-item>\r\n\r\n<ng-template #inputClearTpl>\r\n <i nz-icon class=\"ant-input-clear-icon\" nzTheme=\"fill\" nzType=\"close-circle\"\r\n *ngIf=\"!header.disableClear && value|isNotEmpty\" (click)=\"value = null;onChange()\"></i>\r\n</ng-template>\r\n","import {Component, OnInit, Input, Output, EventEmitter} from '@angular/core';\r\nimport {NzUploadChangeParam, NzUploadFile} from 'ng-zorro-antd/upload/ng-zorro-antd-upload';\r\nimport {LocalStorageUtil} from \"../../../core/utils/localstorage.util\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\nimport {atr_static_datas} from \"../../../core/base/atr-common\";\r\n\r\n@Component({\r\n selector: 'atr-local-upload',\r\n templateUrl: './local-upload.component.html',\r\n styleUrls: ['./local-upload.component.less']\r\n})\r\nexport class LocalUploadComponent implements OnInit {\r\n\r\n @Input() url:any;\r\n @Input() nzAccept = 'application/vnd.ms-excel';\r\n @Input() name:any;\r\n @Input() code:any;\r\n @Input() withoutRole:any;\r\n @Output()\r\n afterChange: EventEmitter<any> = new EventEmitter();\r\n\r\n showList :any = false;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n // this.header = this.getDefaultHeader(new HttpHeaders());\r\n }\r\n header = (file: NzUploadFile) => {\r\n let obj = {\r\n \"x-header-atr\":\"web\",\r\n \"token\" : LocalStorageUtil.getUserToken(),\r\n // \"orgCode\" : ToolsUtil.getOrgCode()\r\n }\r\n\r\n return obj;\r\n };\r\n onChange(params: NzUploadChangeParam) {\r\n console.log(params);\r\n if (params.type == \"success\" || params.type == \"removed\") {\r\n let fileUrls: any[] = [];\r\n for (let file of params.fileList) {\r\n if (file[\"key\"] != undefined) {\r\n fileUrls.push(file[\"key\"]);\r\n continue;\r\n }\r\n if (file.originFileObj) {\r\n let originFileObj: any = file.originFileObj\r\n if (originFileObj[\"key\"] != undefined) {\r\n fileUrls.push(originFileObj[\"key\"])\r\n }\r\n }\r\n }\r\n\r\n this.afterChange.emit(params);\r\n }\r\n }\r\n // getDefaultHeader(_headers:HttpHeaders):HttpHeaders{\r\n // _headers = _headers.set(\"x-header-atr\",\"manage\");\r\n // _headers = _headers.set(\"token\",LocalStorageUtil.getUserToken());\r\n // _headers = _headers.set(\"userId\",LocalStorageUtil.getUserId());\r\n // _headers = _headers.set(\"orgCode\",ToolsUtil.getOrgCode());\r\n // return _headers;\r\n // }\r\n}\r\n","<ng-container *ngIf=\"!withoutRole\">\r\n <nz-upload [nzAction]=\"url\" [nzAccept]=\"nzAccept\" [nzHeaders]=\"header\" [nzShowUploadList]=\"showList\"\r\n (nzChange)=\"onChange($event)\"\r\n *atrRole=\"code\" [nzLimit]='1'>\r\n <button nz-button nzSize=\"small\"><i nz-icon nzType=\"upload\"></i><span> {{name}}</span></button>\r\n </nz-upload>\r\n</ng-container>\r\n<ng-container *ngIf=\"withoutRole\">\r\n <nz-upload [nzAction]=\"url\" [nzAccept]=\"nzAccept\" [nzHeaders]=\"header\" [nzShowUploadList]=\"showList\"\r\n (nzChange)=\"onChange($event)\"\r\n [nzLimit]='1'>\r\n <button nz-button nzSize=\"small\"><i nz-icon nzType=\"upload\"></i><span> {{name}}</span></button>\r\n </nz-upload>\r\n</ng-container>\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {environment} from \"ng-zorro-antd/core/environments\";\r\nimport {atr_static_datas, Table, TableAction} from \"../../../../core/base/atr-common\";\r\n\r\n@Component({\r\n selector: 'app-table-td',\r\n templateUrl: './table-td.component.html',\r\n styleUrls: ['./table-td.component.scss', '../table.component.less']\r\n})\r\nexport class TableTdComponent implements OnInit {\r\n @Input() data:any\r\n @Input() item: Table |any;\r\n @Input() i:any\r\n\r\n @Output() doActionByRowAction = new EventEmitter<any>();\r\n popoverTrigger:any = 'hover'\r\n\r\n imagePrefix = atr_static_datas.OSS_URL;\r\n\r\n constructor() {\r\n }\r\n doActionSwitch(data:any, code:any, event?: MouseEvent, index?:any) {\r\n this.doActionByRowAction.emit({data: data, code: code, event: event, index: index})\r\n }\r\n\r\n change(value: boolean): void {\r\n console.log(value);\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n doActionByRow(data:any, code:any, event: MouseEvent, index:any) {\r\n this.doActionByRowAction.emit({data: data, code: code, event: event, index: index})\r\n }\r\n\r\n enter(e:any) {\r\n this.popoverTrigger = e.toElement.clientWidth < e.toElement.scrollWidth ? 'hover' : null;\r\n }\r\n\r\n isShowBtn(data: any, operator: string, action?:TableAction): boolean {\r\n let isShow = false;\r\n if (!operator || operator == null || operator == \"\") {\r\n isShow = true;\r\n } else if (operator.indexOf('&&') > 0) {\r\n // a|eq|b &&c|eq|d\r\n const ops = operator.split('&&');\r\n if (ops.length > 1) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < ops.length; i++) {\r\n isShow = true\r\n if (!this.checkIsShowBase(ops[i].split('|'), data)) {\r\n isShow = false;\r\n break;\r\n }\r\n }\r\n }\r\n } else if (operator.indexOf('||') > 0) {\r\n // a|eq|b||c|eq|d\r\n const ops = operator.split('||');\r\n if (ops.length > 1) {\r\n for (let i = 0; i < ops.length; i++) {\r\n isShow = false;\r\n if (this.checkIsShowBase(ops[i].split('|'), data)) {\r\n isShow = true;\r\n break;\r\n }\r\n }\r\n }\r\n } else {\r\n let op = operator.split(\"|\");\r\n isShow = this.checkIsShowBase(op, data);\r\n }\r\n return isShow;\r\n }\r\n\r\n checkIsShowBase(op:any, data:any): boolean {\r\n let isShow = false;\r\n if (op.length > 1) {\r\n let value = data[op[0]];\r\n if (!value) {\r\n isShow = false;\r\n } else {\r\n isShow = this.compare(value, op[1], op[2])\r\n }\r\n } else\r\n isShow = false\r\n\r\n return isShow;\r\n }\r\n\r\n compare(value:any, operator:any, target:any): boolean {\r\n let isRight = false;\r\n switch (operator) {\r\n case 'eq' :\r\n if (value == target) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'gh' :\r\n if (value >= target) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'ne':\r\n if (value != target) {\r\n isRight = true;\r\n }\r\n break\r\n case 'notEmpty':\r\n isRight = false;\r\n if (value) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'empty':\r\n isRight = true;\r\n if (!!value) {\r\n isRight = false;\r\n }\r\n break;\r\n default :\r\n isRight = false;\r\n break;\r\n }\r\n return isRight;\r\n }\r\n\r\n}\r\n","<ng-container [ngSwitch]=\"item.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'innerHtml'\">\r\n <div [innerHTML]=\"item.innerHtmlBack(data[item.key] | defVal:item.defaultVal,data) | safeHtml\" ></div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textcolor'\">\r\n <div [innerHTML]=\"data[item.key] | defVal:item.defaultVal\" [ngStyle]=\"{'color':item.color}\"\r\n *ngIf=\"item.colorShow == data[item.key]\"></div>\r\n <div [innerHTML]=\"data[item.key] | defVal:item.defaultVal\" *ngIf=\"item.colorShow != data[item.key]\"></div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <span nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\"\r\n [nzPopoverContent]=\"data[item.key] | date:'yyyy-MM-dd' | defVal:item.defaultVal\"\r\n class=\"view-text\">{{ data[item.key] | date:'yyyy-MM-dd' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dateTime'\">\r\n <span nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\"\r\n [nzPopoverContent]=\"data[item.key] | date:'yyyy-MM-dd HH:mm:ss' | defVal:item.defaultVal\"\r\n class=\"view-text\"> {{ data[item.key] | date:'yyyy-MM-dd HH:mm:ss' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <nz-switch *ngSwitchCase=\"'switch'\" [(ngModel)]=\"data[item.key]\" [nzDisabled]=\"item.disabled\"\r\n (ngModelChange)=\"doActionSwitch(data,item.key)\" nzCheckedChildren=\"是\" nzUnCheckedChildren=\"否\">\r\n </nz-switch>\r\n <ng-container *ngSwitchCase=\"'sDateTime'\">\r\n <span nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\"\r\n [nzPopoverContent]=\"data[item.key] | date:'MM-dd HH:mm' | defVal:item.defaultVal\"\r\n class=\"view-text\"> {{ data[item.key] | date:'MM-dd HH:mm' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <div *ngSwitchCase=\"'fixedText'\" [innerHTML]=\"item.key\"></div>\r\n\r\n <img *ngSwitchCase=\"'image'\" width=\"35px\" nzSrc=\"{{(data[item.key] | defVal:item.defaultVal) | ossImg}}\"\r\n nz-image atrErrorImg/>\r\n <div nz-row *ngSwitchCase=\"'action'\">\r\n <div class=\"action-area\" nz-col [nzSpan]=\"24\">\r\n <ng-container *ngFor=\"let action of item.actions\">\r\n <ng-container *ngIf=\"isShowBtn(data,action.operator,action)\">\r\n <ng-container *ngIf=\"!action.withoutRole\">\r\n <button nz-button\r\n [nzType]=\"action.buttonType&&action.buttonType != 'danger'? action.buttonType : 'primary'\"\r\n [nzDanger]=\"action.buttonType == 'danger'\"\r\n nzSize=\"small\" *atrRole=\"action.code\"\r\n (click)=\"doActionByRow(data,action.code,$event,i)\">\r\n <i nz-icon *ngIf=\"action.icon\" [nzType]=\"action.icon\"></i>\r\n {{action.name}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"action.withoutRole\">\r\n <button nz-button\r\n [nzType]=\"action.buttonType&&action.buttonType != 'danger'? action.buttonType : 'primary'\"\r\n [nzDanger]=\"action.buttonType == 'danger'\"\r\n nzSize=\"small\" (click)=\"doActionByRow(data,action.code,$event,i)\">\r\n <i nz-icon *ngIf=\"action.icon\" [nzType]=\"action.icon\"></i>\r\n {{action.name}}</button>\r\n </ng-container>\r\n <!-- <button nz-button [nzType]=\"'primary'\" nzSize=\"small\" *atrRole=\"action.code\" (click)=\"doActionByRow(data,action.code,$event)\">{{action.name\r\n }}</button> -->\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div *ngSwitchCase=\"'dict'\" [innerHTML]=\"data[item.key] | dicts:item.dictCode | defVal:item.defaultVal\"></div>\r\n <div nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\" [nzPopoverContent]='data[item.key] | defVal:item.defaultVal'\r\n class=\"view-text\" *ngSwitchDefault [innerHTML]=\"data[item.key] | defVal:item.defaultVal\"></div>\r\n</ng-container>\r\n\r\n","import {\r\n Component,\r\n OnInit,\r\n Injector,\r\n Input,\r\n ViewChildren,\r\n ViewChild,\r\n ElementRef,\r\n Output,\r\n EventEmitter,\r\n LOCALE_ID,\r\n Inject,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport {FormGroup, FormBuilder, FormControl} from '@angular/forms';\r\nimport {formatDate} from '@angular/common';\r\nimport {CdkDragDrop, moveItemInArray} from \"@angular/cdk/drag-drop\";\r\nimport {NzContextMenuService, NzDropdownMenuComponent} from 'ng-zorro-antd/dropdown';\r\nimport {atr_static_datas, AtrQueryHeader, AtrQueyrOpt, json, Table, TableAction} from \"../../../core/base/atr-common\";\r\nimport {DictService} from \"../../../core/services/dict/dict.service\";\r\nimport {HttpService} from \"../../../core/services/http.service\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\n\r\n@Component({\r\n selector: 'atr-table',\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.less']\r\n})\r\nexport class AtrTableComponent implements OnInit {\r\n atrForm: FormGroup | any;\r\n isCollapse = true;\r\n dicts: any = {};\r\n pageIndex = 1;\r\n\r\n pageSize = 10;\r\n total = 1;\r\n @Input() loading = true;\r\n @Input() allowDrag = false;//允许拖拽换位\r\n tableDatas: any = [];\r\n scrollSize: any = {x: \"\", y: \"\"}\r\n //表格checkbox 配置\r\n isAllDisplayDataChecked: boolean = false\r\n isIndeterminate = false;\r\n numberOfChecked = 0;\r\n mapOfCheckedId: { [key: string]: boolean } = {};\r\n curChecked: number = -1;\r\n imagePrefix = atr_static_datas.OSS_URL;\r\n defaultParams = {};\r\n @Input() isHideTable = false\r\n isAllLoad: boolean = false;\r\n sortMap: { [key: string]: any } = {};\r\n rowSpanMap: any = {};//key:{德科牧场:{num:1}}\r\n headerDefaultVal: any = {}\r\n\r\n @Input() queryOpts: AtrQueyrOpt | any;\r\n @Input() showPagination = true;\r\n @Input() title: string = \"\";\r\n\r\n @Output() tableAction = new EventEmitter<TableAction>();\r\n @Output() queryBack = new EventEmitter<TableAction>();\r\n @Output() headerAction = new EventEmitter<TableAction>();\r\n\r\n @ViewChild('tableContent', {static: true}) tableContent: ElementRef | any;\r\n\r\n constructor(private fb: FormBuilder, private injector: Injector, @Inject(LOCALE_ID) private locale: string, private cd: ChangeDetectorRef) {\r\n }\r\n\r\n isShowColor(data: any) {\r\n if (this.queryOpts.color && this.queryOpts.color.operator && this.isShowBtn(data, this.queryOpts.color.operator)) {\r\n return this.queryOpts.color.color;\r\n }\r\n return ''\r\n }\r\n\r\n dbclickData(data: any, rowNo: number) {\r\n let action: TableAction = {\r\n name: 'dbclickData',\r\n code: 'dbclickData',\r\n type: \"row\"\r\n };\r\n action.data = data;\r\n action.firstData = data;\r\n this.tableAction.emit(action);\r\n }\r\n\r\n doActionByRow2(e: any) {\r\n let {data, code, event: MouseEvent, index} = e\r\n if (event) {\r\n event.preventDefault();\r\n if (event.stopPropagation) {\r\n event.stopPropagation()\r\n }\r\n }\r\n let action: TableAction = {\r\n name: code,\r\n code: code,\r\n type: \"row\"\r\n };\r\n action.data = data;\r\n action.firstData = data;\r\n action.numberOfChecked = index;\r\n this.tableAction.emit(action);\r\n }\r\n\r\n private get httpService(): HttpService {\r\n return this.injector.get(HttpService);\r\n }\r\n\r\n private get nzContextMenuService(): NzContextMenuService {\r\n return this.injector.get(NzContextMenuService);\r\n }\r\n\r\n setTableLoadding(loadding: boolean) {\r\n this.loading = loadding;\r\n }\r\n\r\n onResize(width: any, col: string): void {\r\n this.queryOpts.tables = this.queryOpts.tables.map((e: any) => (e.name === col ? {...e, width: `${width}px`} : e));\r\n let x = 0;\r\n for (let item of this.queryOpts.tables) {\r\n\r\n if (item.isShow && item.width) {\r\n x += ToolsUtil.pixelToNum(item.width);\r\n }\r\n }\r\n if (x > 22) {\r\n x = x - 22;\r\n this.scrollSize.x = x + \"px\";\r\n }\r\n }\r\n\r\n isEnable(operator: string) {\r\n let isEnable = true;\r\n if (!operator || operator == undefined || operator == \"\")\r\n isEnable = false;\r\n else {\r\n let op = operator.split(\"|\");\r\n if (op.length > 2) {\r\n let key = op[0];\r\n if (!key) {\r\n isEnable = false;\r\n } else {\r\n isEnable = !this.compare(this.numberOfChecked, op[1], op[2])\r\n }\r\n } else\r\n isEnable = false\r\n }\r\n\r\n return isEnable\r\n }\r\n\r\n isShowBtn(data: any, operator: string, action?: TableAction): boolean {\r\n let isShow = false;\r\n if (!operator || operator == null || operator == \"\") {\r\n isShow = true;\r\n } else if (operator.indexOf('&&') > 0) {\r\n // a|eq|b &&c|eq|d\r\n const ops = operator.split('&&');\r\n if (ops.length > 1) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < ops.length; i++) {\r\n isShow = true\r\n if (!this.checkIsShowBase(ops[i].split('|'), data)) {\r\n isShow = false;\r\n break;\r\n }\r\n }\r\n }\r\n } else if (operator.indexOf('||') > 0) {\r\n // a|eq|b||c|eq|d\r\n const ops = operator.split('&&');\r\n if (ops.length > 1) {\r\n for (let i = 0; i < ops.length; i++) {\r\n isShow = false;\r\n if (this.checkIsShowBase(ops[i].split('|'), data)) {\r\n isShow = true;\r\n break;\r\n }\r\n }\r\n }\r\n } else {\r\n let op = operator.split(\"|\");\r\n isShow = this.checkIsShowBase(op, data);\r\n }\r\n return isShow;\r\n }\r\n\r\n checkIsShowBase(op: any, data: any): boolean {\r\n let isShow = false;\r\n if (op.length > 1) {\r\n let value = data[op[0]];\r\n if (!value) {\r\n isShow = false;\r\n } else {\r\n isShow = this.compare(value, op[1], op[2])\r\n }\r\n } else\r\n isShow = false\r\n\r\n return isShow;\r\n }\r\n\r\n compare(value: any, operator: any, target: any): boolean {\r\n let isRight = false;\r\n switch (operator) {\r\n case 'eq' :\r\n if (value == target) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'gh' :\r\n if (value >= target) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'notEmpty':\r\n isRight = false;\r\n if (value) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'empty':\r\n isRight = false;\r\n if (!value) {\r\n isRight = true;\r\n }\r\n break;\r\n default :\r\n isRight = false;\r\n break;\r\n }\r\n return isRight;\r\n }\r\n\r\n pushTableDatas(tableDatas: any) {\r\n this.tableDatas = this.tableDatas.concat(tableDatas);\r\n }\r\n\r\n removeDatas(key: any, value: any) {\r\n this.tableDatas.forEach((item: any, index: any) => {\r\n if (item[key] === value) {\r\n this.tableDatas.splice(index, 1);\r\n }\r\n })\r\n }\r\n\r\n doAction(code: any) {\r\n let action: TableAction = {\r\n name: code,\r\n code: code,\r\n type: \"rows\"\r\n };\r\n let selectDatas: any = [];\r\n if (this.tableDatas && this.tableDatas.length > 0) {\r\n this.tableDatas.forEach((item: any) => {\r\n if (this.mapOfCheckedId[item.id])\r\n selectDatas.push(item);\r\n });\r\n }\r\n action.datas = selectDatas;\r\n if (selectDatas && selectDatas.length > 0) {\r\n action.firstData = selectDatas[0];\r\n }\r\n action.numberOfChecked = selectDatas.length;\r\n this.tableAction.emit(action);\r\n }\r\n\r\n doActionByRow(data: any, code: any, event: MouseEvent) {\r\n event.preventDefault();\r\n if (event.stopPropagation) {\r\n event.stopPropagation()\r\n }\r\n let action: TableAction = {\r\n name: code,\r\n code: code,\r\n type: \"row\"\r\n };\r\n action.data = data;\r\n action.firstData = data;\r\n action.numberOfChecked = 1;\r\n this.tableAction.emit(action);\r\n }\r\n\r\n getAllCheckInfo(): any[] {\r\n let ids: any = [];\r\n for (const key of Object.keys(this.mapOfCheckedId)) {\r\n if (this.mapOfCheckedId.hasOwnProperty(key) && this.mapOfCheckedId[key]) {\r\n ids.push(key)\r\n }\r\n }\r\n return ids;\r\n }\r\n\r\n getAllCheckDatas(): any[] {\r\n let selectDatas: any = []\r\n this.tableDatas.forEach((item: any) => {\r\n if (this.mapOfCheckedId[item.id])\r\n selectDatas.push(item);\r\n });\r\n return selectDatas;\r\n }\r\n\r\n checkAll(value: boolean): void {\r\n this.tableDatas.forEach((item: any) => (this.mapOfCheckedId[item.id] = value));\r\n this.refreshStatus();\r\n }\r\n\r\n refreshStatus(): void {\r\n this.isAllDisplayDataChecked = this.tableDatas\r\n .every((item: any) => this.mapOfCheckedId[item.id]);\r\n this.isIndeterminate =\r\n this.tableDatas.some((item: any) => this.mapOfCheckedId[item.id]) &&\r\n !this.isAllDisplayDataChecked;\r\n this.numberOfChecked = this.tableDatas.filter((item: any) => this.mapOfCheckedId[item.id]).length;\r\n this.tableAction.emit({\r\n code: 'refreshStatus', name: 'select',\r\n type: \"row\", data: this.getAllCheckDatas()\r\n })\r\n }\r\n\r\n selectRow(data: any, rowNo: number) {\r\n // this.tableDatas.forEach(item => (this.mapOfCheckedId[data.id] = value));\r\n this.curChecked = rowNo;\r\n if (!this.queryOpts.checkBox?.isForbid) {\r\n if (this.queryOpts.checkBox?.isShowCheckbox) {\r\n this.mapOfCheckedId[data.id] = !this.mapOfCheckedId[data.id];\r\n } else {\r\n this.mapOfCheckedId = {};\r\n this.mapOfCheckedId[data.id] = true;\r\n }\r\n }\r\n let action: TableAction = {\r\n name: 'select',\r\n code: 'select',\r\n type: \"row\"\r\n };\r\n action.data = data;\r\n action.firstData = data;\r\n action.numberOfChecked = 1;\r\n this.tableAction.emit(action);\r\n this.refreshStatus();\r\n }\r\n\r\n ngOnInit() {\r\n this.atrForm = this.fb.group({});\r\n let x = this.tableContent.nativeElement.offsetWidth - 22\r\n let y = this.tableContent.nativeElement.offsetHeight - 200\r\n this.scrollSize.x = (x > 0 ? x : 100) + \"px\";\r\n this.scrollSize.y = (y > 0 ? y : 100) + \"px\";\r\n // console.log(this.scrollSize)\r\n this.initHeader();\r\n if (this.queryOpts && this.queryOpts.tables) {\r\n for (let table of this.queryOpts.tables) {\r\n if(table.type == 'dict'){\r\n this.getDictValue(table.dictCode);\r\n }\r\n if (table.sortKey) {\r\n table.sortable = true;\r\n this.sortMap[table.sortKey] = null;\r\n } else\r\n table.sortable = false;\r\n }\r\n }\r\n if (this.queryOpts && this.queryOpts.defaultParams) {\r\n this.defaultParams = this.queryOpts.defaultParams\r\n }\r\n if (!this.queryOpts.isAutoQuery) {\r\n this.query();\r\n } else {\r\n this.loading = false;\r\n // this.cd.detectChanges();\r\n }\r\n }\r\n\r\n initHeader() {\r\n this.headerDefaultVal = {};\r\n if (this.queryOpts && this.queryOpts.headers && this.queryOpts.headers.length > 0) {\r\n this.queryOpts.headers.forEach((item: any, i: any) => {\r\n item.span = item.span || 8;\r\n if (!ToolsUtil.isNull(item.defaultVal)) {\r\n this.headerDefaultVal[item.key] = item.defaultVal\r\n }\r\n if (item.isShow != false) {\r\n item.isShow = i < this.queryOpts.showNum\r\n }\r\n this.atrForm.addControl(item.key, new FormControl());\r\n let type = item.type;\r\n switch (type) {\r\n case \"select\":\r\n this.getDictValue(item.dictCode);\r\n break;\r\n case \"treeSelect\":\r\n case \"cascader\":\r\n case \"selectCus\":\r\n if (item.selectUrl && item.selectUrl.url) {\r\n this.getDicList(item);\r\n }\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n\r\n getDicList(item: any) {\r\n if (!item.selectUrl || !item.selectUrl.url) {\r\n return;\r\n }\r\n let keys = item.selectUrl.convert.split(',');\r\n this.httpService.post(item.selectUrl.url, {}, ToolsUtil.getHttpOptions()).subscribe(res => {\r\n if (item.type == 'treeSelect') {\r\n item.treeList = res.data.filter((child: any) => {\r\n keys.forEach((v: any) => {\r\n let vs = v.split(\"|\");\r\n child[vs[0]] = child[vs[1]];\r\n });\r\n // child.key = child.id;\r\n // child.title = child.realName;\r\n return true\r\n });\r\n } else if (item.type == 'selectCus') {\r\n item.dictList = res.data.filter((child: any) => {\r\n keys.forEach((v: any) => {\r\n let vs = v.split(\"|\");\r\n child[vs[0]] = child[vs[1]];\r\n });\r\n // child.value = child.id;\r\n // child.label = child.name;\r\n return true;\r\n });\r\n }\r\n })\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n setTimeout(() => {\r\n this.scrollSize.y = this.tableContent.nativeElement.offsetHeight - 100 + \"px\";\r\n if(this.isHideTable){\r\n this.scrollSize.y = this.tableContent.nativeElement.offsetHeight + \"px\";\r\n }\r\n let width = 0;\r\n if (this.queryOpts && this.queryOpts.tables) {\r\n for (let table of this.queryOpts.tables) {\r\n if (table.isShow && table.width) {\r\n\r\n width += ToolsUtil.pixelToNum(table.width);\r\n }\r\n }\r\n }\r\n let w = this.tableContent.nativeElement.offsetWidth - 22;\r\n if (width > w)\r\n this.scrollSize.x = width + \"px\";\r\n else\r\n this.scrollSize.x = this.tableContent.nativeElement.offsetWidth - 22 + \"px\";\r\n\r\n console.log(this.scrollSize);\r\n this.isAllLoad = true;\r\n this.cd.detectChanges();\r\n }, 500)\r\n\r\n\r\n }\r\n\r\n sort(sortName: string, value: any): void {\r\n for (const key in this.sortMap) {\r\n this.sortMap[key] = key === sortName ? value : null;\r\n }\r\n // this.search(this.listOfSearchName, this.listOfSearchAddress);\r\n console.log(this.sortMap)\r\n this.query(true);\r\n }\r\n\r\n private get dictService(): DictService {\r\n return this.injector.get(DictService)\r\n }\r\n\r\n getDictValue(code: string) {\r\n console.log(\"pppp\");\r\n this.dictService.getDictBycode(code).subscribe(\r\n result => {\r\n if (result && result != null)\r\n this.dicts[code] = result.dicts;\r\n console.log(this.dicts)\r\n\r\n },\r\n error => {\r\n this.dicts[code] = [];\r\n }\r\n )\r\n }\r\n\r\n toggleCollapse(): void {\r\n this.isCollapse = !this.isCollapse;\r\n // this.queryOpts.headers.forEach((c: any, index: any) => {\r\n // c.isShow = this.isCollapse ? index < this.queryOpts.showNum : true;\r\n // });\r\n }\r\n\r\n resetForm(): void {\r\n this.atrForm.reset();\r\n for (const key in this.headerDefaultVal) {\r\n this.atrForm.get(key)?.setValue(this.headerDefaultVal[key]);\r\n }\r\n }\r\n\r\n selectChange(value: any, item: any) {\r\n console.log(value);\r\n let action: TableAction = {\r\n name: item.label,\r\n code: item.key,\r\n data: item,\r\n value: value,\r\n };\r\n this.headerAction.emit(action)\r\n\r\n }\r\n\r\n clickIcon(value: any, item: AtrQueryHeader, $event: any) {\r\n $event.stopPropagation();\r\n console.log(value, item);\r\n let action: TableAction = {\r\n name: item.name,\r\n code: item.icon?.code ? item.icon?.code : \"\",\r\n data: item,\r\n value: value,\r\n };\r\n this.headerAction.emit(action)\r\n }\r\n\r\n getQueryParams(reset: boolean): json {\r\n if (reset) {\r\n this.pageIndex = 1;\r\n }\r\n console.log(this.pageIndex);\r\n let params: any = {\r\n page: this.pageIndex,\r\n limit: this.pageSize,\r\n sort: this.getSortInfo()\r\n };\r\n for (const key in this.atrForm.value) {\r\n if (this.atrForm.value[key] && this.atrForm.value[key] != null && this.atrForm.value[key] != \"\") {\r\n if (this.getHederType(key) == \"dateRange\") {\r\n let begin = key + \"Begin\";\r\n let end = key + \"End\";\r\n let formate = 'yyyy-MM-dd 00:00:00'\r\n let nzShowTime: any = this.getHederType(key, 'nzShowTime')\r\n if (nzShowTime) {\r\n formate = 'yyyy-MM-dd HH:mm:ss'\r\n if (nzShowTime.nzFormat) {\r\n formate = 'yyyy-MM-dd ' + nzShowTime.nzFormat;\r\n }\r\n }\r\n params[begin] = formatDate((this.atrForm.value[key][0] as Date), formate, this.locale);\r\n params[end] = formatDate((this.atrForm.value[key][1] as Date), formate, this.locale);\r\n } else if (this.getHederType(key) == \"dayRange\") {\r\n let begin = key + \"Begin\";\r\n let end = key + \"End\";\r\n let formate = 'yyyy-MM-dd 00:00:00'\r\n params[begin] = formatDate((this.atrForm.value[key][0] as Date), formate, this.locale);\r\n params[end] = formatDate((this.atrForm.value[key][1] as Date), formate, this.locale);\r\n } else if (this.getHederType(key) == \"sdate\") {\r\n params[key] = formatDate((this.atrForm.value[key] as Date), 'yyyy-MM-dd 00:00:00', this.locale);\r\n } else if (this.getHederType(key) == \"treeSelect\") {\r\n let value = this.atrForm.value[key];\r\n if (typeof value == 'string') {\r\n params[key] = this.atrForm.value[key];\r\n } else {\r\n params[key] = this.atrForm.value[key].join();\r\n }\r\n } else if (this.getHederType(key) == \"cascader\") {\r\n params[key] = this.atrForm.value[key].join();\r\n } else {\r\n params[key] = this.atrForm.value[key];\r\n }\r\n\r\n }\r\n }\r\n\r\n params = Object.assign(params, this.defaultParams);\r\n console.log(params)\r\n return params;\r\n\r\n }\r\n\r\n getHederType(cusKey: string, typeKey?: string) {\r\n let type = null;\r\n for (let header of this.queryOpts.headers) {\r\n if (cusKey == header.key) {\r\n type = header[typeKey || 'type'];\r\n break;\r\n }\r\n }\r\n return type;\r\n }\r\n\r\n setDefaultParams(params: any, reset: boolean = true) {\r\n this.defaultParams = params;\r\n this.query(reset);\r\n }\r\n\r\n getSortInfo(): string {\r\n let orderby: any = [];\r\n for (const key in this.sortMap) {\r\n if (this.sortMap[key] == 'ascend') {\r\n orderby.push(key + \"|\" + \"asc\")\r\n } else if (this.sortMap[key] == 'descend') {\r\n orderby.push(key + \"|\" + \"desc\")\r\n }\r\n }\r\n let order = \"\";\r\n if (orderby.length < 1 && this.queryOpts.sort) {\r\n order = this.queryOpts.sort\r\n } else\r\n order = orderby.join(\",\");\r\n return order;\r\n }\r\n\r\n query(reset: boolean = false) {\r\n let params = this.getQueryParams(reset);\r\n if (this.queryOpts.url) {\r\n this.loading = true;\r\n\r\n this.httpService.post(this.queryOpts.url, params, ToolsUtil.getHttpOptions()).subscribe(\r\n result => {\r\n this.loading = false;\r\n if (result.status == 200) {\r\n let action: any = {};\r\n action[\"result\"] = result;\r\n action[\"params\"] = params;\r\n this.queryBack.emit(action);\r\n this.total = result?.page?.totalResult;\r\n this.tableDatas = result.data;\r\n this.getRowSpan();\r\n this.mapOfCheckedId = {};\r\n this.curChecked = -1;\r\n this.refreshStatus();\r\n }\r\n },\r\n error => {\r\n this.loading = false;\r\n }\r\n )\r\n } else {\r\n this.queryBack.emit({name: '', code: 'query', data: params})\r\n }\r\n }\r\n\r\n contextMenu($event: any, menu: NzDropdownMenuComponent) {\r\n console.log($event)\r\n this.nzContextMenuService.create($event, menu);\r\n }\r\n\r\n log(value: string[]): void {\r\n console.log(value);\r\n for (let table of this.queryOpts.tables) {\r\n let flag = false;\r\n for (let item of value) {\r\n if (item == table.key) {\r\n table.isShow = true;\r\n flag = true\r\n }\r\n }\r\n if (!flag)\r\n table.isShow = false;\r\n\r\n }\r\n console.log(this.queryOpts.tables);\r\n }\r\n\r\n checkShowTd(item: Table, index: any): boolean {\r\n if (!item.isShow) {\r\n return false;\r\n }\r\n if (item.isRowSpan) {\r\n // 合并行,返回值与上一行相同则隐藏这一行;\r\n if (index == 0) {\r\n return true;\r\n }\r\n const key = item.key ? item.key : \"\";\r\n const cur = this.tableDatas[index][key];\r\n const pre = this.tableDatas[index - 1][key];\r\n\r\n return !(cur == pre);\r\n }\r\n return item.isShow;\r\n }\r\n\r\n checkRowSpan(item: Table, data: any) {\r\n if (item.isRowSpan) {\r\n return this.rowSpanMap[item.key ? item.key : \"\"][data[item.key ? item.key : \"\"]].num\r\n }\r\n return 1;\r\n }\r\n\r\n getRowSpan() {\r\n let isRowSpan = false;\r\n this.queryOpts.tables.forEach(\r\n (item: any) => {\r\n if (item.isRowSpan) {\r\n isRowSpan = true;\r\n this.rowSpanMap[item.key] = {};\r\n }\r\n }\r\n );\r\n if (!isRowSpan) {\r\n return;\r\n }\r\n let keys = Object.keys(this.rowSpanMap);\r\n this.tableDatas.forEach(\r\n (item: any) => {\r\n keys.forEach(\r\n key => {\r\n const value = item[key];\r\n if (!this.rowSpanMap[key][value]) {\r\n this.rowSpanMap[key][value] = {\r\n num: 1\r\n };\r\n } else {\r\n this.rowSpanMap[key][value].num += 1;\r\n }\r\n }\r\n )\r\n }\r\n );\r\n }\r\n\r\n drop(event: CdkDragDrop<string[]>): void {\r\n moveItemInArray(this.tableDatas, event.previousIndex, event.currentIndex);\r\n let action: TableAction = {\r\n name: 'drag',\r\n code: 'drag',\r\n type: \"rows\"\r\n };\r\n action.datas = this.tableDatas;\r\n if (this.tableDatas && this.tableDatas.length > 0) {\r\n action.firstData = this.tableDatas[0];\r\n }\r\n action.numberOfChecked = 1;\r\n this.tableAction.emit(action);\r\n }\r\n\r\n}\r\n","<form nz-form [formGroup]=\"atrForm\" class=\"ant-advanced-search-form\"\r\n *ngIf=\"queryOpts.headers.length >0 || queryOpts.actions.length >0\">\r\n <div nz-row [nzGutter]=\"24\">\r\n <div nz-col [hidden]=\"!header.isShow || !isCollapse\" *ngFor=\"let header of queryOpts.headers\"\r\n [nzSpan]=\"header.span\">\r\n <app-table-form-item\r\n [header]=\"header\"\r\n [ngModel]=\"header.defaultVal\"\r\n [dictList]=\"dicts[header.dictCode]\"\r\n [formControlName]=\"header.key\"\r\n (headerAction)=\"headerAction.emit($event)\"></app-table-form-item>\r\n </div>\r\n </div>\r\n <div nz-row nzType=\"flex\">\r\n <div class=\"action-area\" nz-col [nzSpan]=\"16\">\r\n <ng-container *ngFor=\"let action of queryOpts.actions\">\r\n <atr-local-upload *ngIf=\"action.gType == 'upload'\" [code]=\"action.code\" [url]=\"action.url\" [name]=\"action.name\"\r\n [withoutRole]=\"action.withoutRole\"\r\n style=\" display: inline-block;\"></atr-local-upload>\r\n <ng-container *ngIf=\"!action.gType\">\r\n <button nz-button [nzType]=\"'primary'\" nzSize=\"small\" (click)=\"doAction(action.code)\"\r\n *atrRole=\"action.withoutRole ? null:action.code\"\r\n [disabled]=\"isEnable(action.operator)\">{{action.name}}</button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <div nz-col [nzSpan]=\"8\" class=\"search-area\" *ngIf=\"queryOpts.headers.length >0 && !queryOpts.isHideQuery\">\r\n <button nz-button nzSize=\"small\" [nzType]=\"'primary'\" (click)=\"query(true)\">查询</button>\r\n <button nz-button nzSize=\"small\" (click)=\"resetForm()\">重置</button>\r\n <a class=\"collapse\" (click)=\"toggleCollapse()\" *ngIf=\"queryOpts.headers.length > 0 \">\r\n {{isCollapse ? '收起':'展开'}}\r\n <i nz-icon [nzType]=\"isCollapse ? 'up' : 'down'\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n <div *ngIf=\"title\" class=\"title\">{{title}}</div>\r\n</form>\r\n<div class=\"search-result-list\" #tableContent [spinLoading]=\"loading\" HqSpin>\r\n <nz-table *ngIf=\"isAllLoad \" #basicTable class=\"main-table\"\r\n [nzScroll]=\"scrollSize\"\r\n nzSize=\"middle\"\r\n nzBordered\r\n [nzShowPagination]=\"showPagination\"\r\n nzShowSizeChanger\r\n [nzFrontPagination]=\"false\"\r\n [nzLoading]=\"loading\"\r\n [nzTotal]=\"total\"\r\n [(nzPageIndex)]=\"pageIndex\"\r\n [(nzPageSize)]=\"pageSize\"\r\n [nzData]=\"tableDatas\"\r\n (nzPageIndexChange)=\"query()\"\r\n (nzPageSizeChange)=\"query(true)\"\r\n [nzShowTotal]=\"totalTemplate\"\r\n >\r\n <ng-content select=\"[slot1]\"></ng-content>\r\n <ng-container *ngIf=\"!isHideTable\">\r\n <thead>\r\n <tr (contextmenu)=\"contextMenu($event,menu)\" class=\"header-tr\">\r\n\r\n <th *ngIf=\"queryOpts.checkBox?.isShowCheckbox\"\r\n [nzLeft]=\"true\"\r\n class=\"left-zindex-header\"\r\n nzShowCheckbox\r\n style=\"z-index: 90!important;\"\r\n nzWidth=\"30px\"\r\n nzAlign=\"center\"\r\n [(nzChecked)]=\"isAllDisplayDataChecked\"\r\n [nzIndeterminate]=\"isIndeterminate\"\r\n (nzCheckedChange)=\"checkAll($event)\"\r\n ></th>\r\n <th [nzLeft]=\"true\" class=\"left-zindex-header\" *ngIf=\"queryOpts.isIndex\" nzWidth=\"30px\" nzAlign=\"center\">#</th>\r\n <th [nzLeft]=\"true\" class=\"left-zindex-header\" *ngIf=\"queryOpts.checkBox?.isRadio\" nzWidth=\"30px\"\r\n nzAlign=\"center\">#\r\n </th>\r\n <ng-container *ngFor=\"let item of queryOpts.tables; \">\r\n <th *ngIf=\"item.isShow \"\r\n [nzShowSort]=item.sortable\r\n nz-resizable\r\n nzPreview\r\n nzBounds=\"window\"\r\n [(nzSortOrder)]=\"sortMap[item.sortKey]\"\r\n (nzSortOrderChange)=\"sort(item.sortKey, $event)\"\r\n [nzWidth]=\"item.width\"\r\n [nzMaxWidth]=\"256\"\r\n [nzMinWidth]=\"60\"\r\n [nzRight]=\"item.isRight ? true : false\"\r\n [nzLeft]=\"item.isLeft ? true : false\"\r\n [ngClass]=\"{'left-zindex-header':item.isLeft ? true : false}\"\r\n (nzResizeEnd)=\"onResize($event, item.name)\">\r\n {{item.name}}<!-- {width}: { width: number }, col: string-->\r\n <nz-resize-handle nzDirection=\"right\">\r\n <div class=\"resize-trigger\"></div>\r\n </nz-resize-handle>\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n\r\n\r\n <tbody *ngIf=\"!allowDrag\">\r\n\r\n <tr *ngFor=\"let data of basicTable.data;index as i\" class=\"t-tr\" (click)=\"selectRow(data,i)\"\r\n [ngStyle]=\"{'color':isShowColor(data)}\"\r\n [ngClass]=\"{'selected': i == curChecked}\" (dblclick)=\"dbclickData(data,i)\">\r\n\r\n <td [nzLeft]=\"true\"\r\n class=\"left-zindex\"\r\n *ngIf=\"queryOpts.checkBox?.isShowCheckbox\"\r\n nzShowCheckbox\r\n [(nzChecked)]=\"mapOfCheckedId[data.id]\"\r\n (nzCheckedChange)=\"refreshStatus()\"\r\n ></td>\r\n <td [nzLeft]=\"true\"\r\n class=\"left-zindex\"\r\n *ngIf=\"queryOpts.checkBox?.isRadio\" nzShowCheckbox (nzCheckedChange)=\"selectRow(data,i)\"\r\n [(nzChecked)]=\"mapOfCheckedId[data.id]\"></td>\r\n <td [nzLeft]=\"true\"\r\n *ngIf=\"queryOpts.isIndex\" nzAlign=\"center\" style=\"padding:12px 0;\" nzBreakWord>{{i + 1}}</td>\r\n <ng-container *ngFor=\"let item of queryOpts.tables;\">\r\n\r\n <td [nzLeft]=\"item.isLeft ? true : false\"\r\n [ngClass]=\"{'left-zindex':item.isLeft ? true : false}\"\r\n [nzRight]=\"item.isRight ? true : false\"\r\n nzBreakWord\r\n [rowSpan]=\"checkRowSpan(item,data)\"\r\n *ngIf=\"checkShowTd(item,i) \">\r\n <app-table-td [data]=\"data\"\r\n [item]=\"item\"\r\n [i]=\"i\"\r\n (doActionByRowAction)=\"doActionByRow2($event)\"\r\n ></app-table-td>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n\r\n </tbody>\r\n <tbody *ngIf=\"allowDrag\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <tr cdkDrag *ngFor=\"let data of basicTable.data;index as i\" class=\"t-tr\" (click)=\"selectRow(data,i)\"\r\n [ngClass]=\"{'selected': i == curChecked}\">\r\n <td [nzLeft]=\"true\"\r\n class=\"left-zindex\"\r\n *ngIf=\"queryOpts.checkBox?.isShowCheckbox\"\r\n nzShowCheckbox\r\n [(nzChecked)]=\"mapOfCheckedId[data.id]\"\r\n (nzCheckedChange)=\"refreshStatus()\"\r\n ></td>\r\n <!--\r\n <td [nzLeft]=\"item.isLeft ? true : false\" [ngClass]=\"{'left-zindex':item.isLeft ? true : false}\" [nzRight]=\"item.isRight ? true : false\"\r\n *ngIf=\"queryOpts.isShowCheckbox\"\r\n nzShowCheckbox\r\n [(nzChecked)]=\"mapOfCheckedId[data.id]\"\r\n (nzCheckedChange)=\"refreshStatus()\"\r\n ></td>\r\n -->\r\n <td [nzLeft]=\"true\"\r\n class=\"left-zindex\"\r\n *ngIf=\"queryOpts.checkBox?.isRadio\" nzShowCheckbox (nzCheckedChange)=\"selectRow(data,i)\"\r\n [(nzChecked)]=\"mapOfCheckedId[data.id]\"></td>\r\n <td [nzLeft]=\"true\"\r\n class=\"left-zindex\"\r\n *ngIf=\"queryOpts.isIndex\" nzAlign=\"center\" style=\"padding:12px 0;\" nzBreakWord>{{i + 1}}</td>\r\n\r\n <ng-container *ngFor=\"let item of queryOpts.tables;\">\r\n\r\n <td [nzLeft]=\"item.isLeft ? true : false\"\r\n [ngClass]=\"{'left-zindex':item.isLeft ? true : false}\"\r\n [nzRight]=\"item.isRight ? true : false\"\r\n nzBreakWord\r\n [rowSpan]=\"checkRowSpan(item,data)\"\r\n *ngIf=\"checkShowTd(item,i) \">\r\n <app-table-td [data]=\"data\"\r\n [item]=\"item\"\r\n [i]=\"i\"\r\n (doActionByRowAction)=\"doActionByRow2($event)\"\r\n ></app-table-td>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n\r\n </ng-container>\r\n\r\n\r\n <ng-template #totalTemplate let-total>共 {{ total }} 条记录</ng-template>\r\n </nz-table>\r\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\r\n <div class=\"tabel-colunmn\">\r\n <nz-checkbox-wrapper style=\"width: 100%;margin-top: 30px;\" (nzOnChange)=\"log($event)\">\r\n <div nz-row>\r\n <div nz-col nzSpan=\"24\" *ngFor=\"let item of queryOpts.tables\">\r\n <label nz-checkbox nzValue=\"{{item.key}}\" [ngModel]=\"item.isShow\">{{item.name}}</label>\r\n </div>\r\n </div>\r\n </nz-checkbox-wrapper>\r\n <div class=\"tabel-colunmn-header\">请选择列表显示内容</div>\r\n </div>\r\n </nz-dropdown-menu>\r\n</div>\r\n\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-video',\r\n templateUrl: './video.component.html',\r\n styleUrls: ['./video.component.less']\r\n})\r\nexport class VideoComponent {\r\n\r\n @Input() url: any;\r\n\r\n constructor() { }\r\n\r\n}\r\n","<vg-player>\r\n <vg-controls vgFor=\"__VG__VIDEO__\" >\r\n <vg-play-pause></vg-play-pause>\r\n <vg-scrub-bar>\r\n <vg-scrub-bar-current-time></vg-scrub-bar-current-time>\r\n <vg-scrub-bar-buffering-time></vg-scrub-bar-buffering-time>\r\n </vg-scrub-bar>\r\n <vg-time-display vgProperty=\"left\" vgFormat=\"mm:ss\"></vg-time-display>\r\n\r\n <!-- <vg-volume></vg-volume> -->\r\n <vg-mute></vg-mute>\r\n\r\n <vg-fullscreen></vg-fullscreen>\r\n </vg-controls>\r\n\r\n <video\r\n id=\"__VG__VIDEO__\"\r\n #media\r\n [vgMedia]=\"$any(media)\"\r\n preload=\"auto\"\r\n >\r\n <source [src]=\"url\" type=\"video/mp4\">\r\n </video>\r\n</vg-player>\r\n","import {Component, OnInit, Input, Output, EventEmitter, Injector, ViewChild} from '@angular/core';\r\nimport {Observable} from 'rxjs';\r\nimport {HttpRequest, HttpEvent, HttpEventType, HttpResponse, HttpClient, HttpHeaders} from '@angular/common/http';\r\nimport {NzModalRef, NzModalService} from 'ng-zorro-antd/modal';\r\nimport {NzUploadChangeParam, NzUploadFile, NzUploadXHRArgs} from 'ng-zorro-antd/upload';\r\nimport {environment} from \"ng-zorro-antd/core/environments\";\r\nimport {atr_static_datas, ImageOpts} from \"../../../core/base/atr-common\";\r\nimport {HttpService} from \"../../../core/services/http.service\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\nimport {NzImageService} from 'ng-zorro-antd/image';\r\n\r\n@Component({\r\n selector: 'atr-img-upload',\r\n templateUrl: './upload.component.html',\r\n styleUrls: ['./upload.component.less']\r\n})\r\nexport class UploadComponent implements OnInit {\r\n\r\n @Input() opts: ImageOpts | any;\r\n @Input() isEdit = true;\r\n @Input() allowChangSeq = false;\r\n tplModal: NzModalRef | any;\r\n uploadUrl: any = \"\";\r\n\r\n uploadData: any = {}\r\n\r\n showUploadList = {\r\n showPreviewIcon: true,\r\n showRemoveIcon: true,\r\n hidePreviewIconInNonImage: true\r\n };\r\n\r\n @Output()\r\n afterChange: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n optsChange: EventEmitter<any> = new EventEmitter();\r\n\r\n\r\n previewImage: string | any = '';\r\n previewVisible = false;\r\n changeVisible = false;\r\n\r\n constructor(private injector: Injector, private nzImageService: NzImageService,\r\n private httpClient: HttpClient, private modalService: NzModalService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n getFileTyeIcon(fileType: string, fileName: string) {\r\n let thumbUrl = this.getFileThumbUrl(fileType);\r\n if (thumbUrl === '') {\r\n thumbUrl = this.getThumbUrl(fileName);\r\n }\r\n return thumbUrl;\r\n }\r\n\r\n getThumbUrl(path: string): string {\r\n\r\n if (!path) {\r\n return '';\r\n }\r\n // 后缀获取\r\n if (path.endsWith('.mp4')) {\r\n return '../../../assets/video.jpg';\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n getFileThumbUrl(type: string): string {\r\n let thumbUrl = '';\r\n if (type === 'video/mp4' || type === 'mp4') {\r\n thumbUrl = '../../../assets/video.jpg';\r\n }\r\n return thumbUrl;\r\n }\r\n\r\n onChange(params: NzUploadChangeParam) {\r\n console.log(params);\r\n if (params.type == \"success\" || params.type == \"removed\") {\r\n\r\n this.opts.imageList = [];\r\n setTimeout(() => {\r\n this.opts.imageList = params.fileList.map((file: any) => {\r\n\r\n if (file.type == 'video/mp4' && file.uid === params.file.uid) {\r\n let thumbUrl = this.getFileTyeIcon(file.type, file.name);\r\n file.thumbUrl = thumbUrl ? thumbUrl : file.thumbUrl;\r\n file.url = file.originFileObj ? atr_static_datas.OSS_URL + file.originFileObj['key'] : file['path'];\r\n }\r\n return file;\r\n });\r\n }, 50);\r\n let fileUrls: any[] = [];\r\n for (let file of params.fileList) {\r\n if (file[\"key\"] != undefined) {\r\n fileUrls.push(file[\"key\"]);\r\n continue;\r\n }\r\n if (file.originFileObj) {\r\n let originFileObj: any = file.originFileObj\r\n if (originFileObj[\"key\"] != undefined) {\r\n fileUrls.push(originFileObj[\"key\"])\r\n }\r\n }\r\n }\r\n\r\n this.afterChange.emit({key: this.opts.key, values: fileUrls.join(\",\")});\r\n this.optsChange.emit(this.opts)\r\n }\r\n }\r\n\r\n private get httpService(): HttpService {\r\n return this.injector.get(HttpService);\r\n }\r\n\r\n handlePreview = (file: NzUploadFile) => {\r\n this.previewImage = file.url || file.thumbUrl;\r\n this.previewVisible = true;\r\n };\r\n\r\n remove = (file: NzUploadFile) => {\r\n if (!this.isEdit) {\r\n return false;\r\n }\r\n console.log(file);\r\n if (this.opts && this.opts.removeAction) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n beforeUpload = (file: NzUploadFile, fileList: NzUploadFile[]) => {\r\n return new Observable<boolean>(observe => {\r\n let fileName;\r\n if (this.opts.keepName) {\r\n fileName = file.name;\r\n } else {\r\n fileName = ToolsUtil.getRandomFileName() + \".\" + ToolsUtil.getFileExt(file.name);\r\n }\r\n this.httpService.post(atr_static_datas.OSS_POLICY, {\r\n dir: this.opts.uploadDir,\r\n fileName: fileName,\r\n 'success_action_status': '200'\r\n }, ToolsUtil.getHttpOptions()).subscribe(\r\n result => {\r\n\r\n if (result.status == 200) {\r\n this.uploadData[file.uid] = result.data;\r\n observe.next(true);\r\n } else\r\n observe.next(false);\r\n observe.unsubscribe()\r\n },\r\n error => {\r\n observe.next(false);\r\n observe.unsubscribe()\r\n }\r\n )\r\n })\r\n\r\n }\r\n customReq = (item: NzUploadXHRArgs) => {\r\n const formData = new FormData();\r\n let uploadData = this.uploadData[item.file.uid];\r\n for (let key in uploadData) {\r\n if (key != 'host')\r\n formData.append(key, uploadData[key])\r\n }\r\n formData.append('file', item.file as any);\r\n const req = new HttpRequest('POST', uploadData.host!, formData, {\r\n reportProgress: true\r\n });\r\n\r\n return this.httpClient.request(req).subscribe(\r\n (event: HttpEvent<any>) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n if (event.total! > 0) {\r\n (event as any).percent = (event.loaded / event.total!) * 100;\r\n }\r\n item.onProgress!(event, item.file!);\r\n } else if (event instanceof HttpResponse) {\r\n item.file[\"key\"] = uploadData.key;\r\n item.onSuccess!(event.body, item.file!, event);\r\n }\r\n },\r\n err => {\r\n item.onError!(err, item.file!);\r\n }\r\n );\r\n };\r\n\r\n openBannerSeq(tplContent: any, tplFooter: any) {\r\n this.tplModal = this.modalService.create({\r\n nzTitle: \"修改图片顺序\",\r\n nzContent: tplContent,\r\n nzFooter: tplFooter,\r\n nzMaskClosable: false,\r\n nzClosable: false,\r\n nzOnOk: () => console.log('Click ok')\r\n });\r\n console.log(this.opts.imageList);\r\n this.changeVisible = true;\r\n }\r\n\r\n destroyTplModal(): void {\r\n if (this.tplModal)\r\n this.tplModal.destroy();\r\n }\r\n\r\n arrowUp(index: any) {\r\n let img = this.opts.imageList[index];\r\n this.opts.imageList[index] = this.opts.imageList[index - 1];\r\n this.opts.imageList[index - 1] = img;\r\n }\r\n\r\n arrowDown(index: any) {\r\n let img = this.opts.imageList[index];\r\n this.opts.imageList[index] = this.opts.imageList[index + 1];\r\n this.opts.imageList[index + 1] = img;\r\n }\r\n\r\n saveSeq() {\r\n this.destroyTplModal();\r\n let imgs = this.opts.imageList;\r\n this.opts.imageList = [];\r\n setTimeout(() => {\r\n this.opts.imageList = imgs;\r\n console.log(this.opts.imageList);\r\n let fileUrls: any = [];\r\n for (let file of this.opts.imageList) {\r\n if (file[\"key\"] != undefined) {\r\n fileUrls.push(file[\"key\"]);\r\n continue;\r\n }\r\n if (file.originFileObj && file.originFileObj[\"key\"] != undefined)\r\n fileUrls.push(file.originFileObj[\"key\"])\r\n }\r\n\r\n this.afterChange.emit({key: this.opts.key, values: fileUrls.join(\",\")});\r\n }, 50)\r\n\r\n }\r\n\r\n dragnumber(numer: any) {\r\n console.log(numer);\r\n console.log('or', this.opts.imageList)\r\n console.log('new', numer)\r\n this.saveSeq();\r\n // this.opts.imageList = numer\r\n }\r\n\r\n delImg(numer: any) {\r\n console.log(numer);\r\n this.opts.imageList = this.opts.imageList.filter((v: any, i: any) => i != numer)\r\n // this.opts.imageList = numer\r\n }\r\n\r\n priviewImg(img: any) {\r\n let url = ToolsUtil.getOssUrl(this.getImgUrl(img))\r\n console.log(url)\r\n this.nzImageService.preview([{\r\n src: url,\r\n alt: 'ng-zorro'\r\n }], {nzZoom: 1.5, nzRotate: 0});\r\n }\r\n\r\n getImgUrl(img: any) {\r\n if (img.originFileObj && img.originFileObj.key) {\r\n return img.originFileObj.key\r\n }\r\n return (img.url || img.thumbUrl)\r\n }\r\n}\r\n","<div class=\"clearfix\">\r\n <nz-upload\r\n *ngIf=\"opts && opts?.uploadType == 'drag'\"\r\n nzType=\"drag\"\r\n nzAction=\"\"\r\n [nzBeforeUpload]=\"beforeUpload\"\r\n [nzRemove]=\"remove\"\r\n [nzCustomRequest]=\"customReq\"\r\n (nzChange)=\"onChange($event)\"\r\n [nzType]=\"opts?.uploadType\"\r\n [nzAccept]=\"opts.nzFileType\"\r\n [nzLimit]=\"'1'\"\r\n >\r\n <p class=\"ant-upload-drag-icon\">\r\n <i nz-icon nzType=\"inbox\"></i>\r\n </p>\r\n <p class=\"ant-upload-text\">单击或拖动文件到此区域上传</p>\r\n </nz-upload>\r\n <nz-upload\r\n *ngIf=\"opts && opts?.uploadType != 'drag'\"\r\n nzAction=\"\"\r\n nzListType=\"picture-card\"\r\n [(nzFileList)]=\"opts.imageList\"\r\n [nzShowButton]=\"opts.imageList.length < opts.limit\"\r\n [nzShowUploadList]=\"showUploadList\"\r\n [nzPreview]=\"handlePreview\"\r\n [nzRemove]=\"remove\"\r\n [nzBeforeUpload]=\"beforeUpload\"\r\n [nzCustomRequest]=\"customReq\"\r\n (nzChange)=\"onChange($event)\"\r\n [nzType]=\"opts?.uploadType\"\r\n [nzAccept]=\"opts.nzFileType\"\r\n [nzDisabled]=\"!isEdit\"\r\n [nzLimit]=\"'1'\"\r\n [nzFileListRender]=\"opts && isEdit && allowChangSeq && opts.imageList.length > 0 ? fileListTmp : null\"\r\n >\r\n <i nz-icon nzType=\"plus\"></i>\r\n <div class=\"ant-upload-text\">上传图片</div>\r\n </nz-upload>\r\n <!-- <a *ngIf=\"allowChangSeq && isEdit && opts.imageList.length > 1\" (click)=\"openBannerSeq(imgsContent, tplFooter)\"\r\n style=\"margin-left: 10px; \"\r\n ><i nz-icon nzType=\"plus\" nzTheme=\"outline\" style=\"color: #1890ff; font-size: 15px\"></i>调整图片顺序</a>-->\r\n <nz-modal\r\n [nzVisible]=\"previewVisible\"\r\n [nzContent]=\"modalContent\"\r\n [nzFooter]=\"null\"\r\n (nzOnCancel)=\"previewVisible = false\"\r\n >\r\n <ng-template #modalContent>\r\n <img *ngIf=\"!previewImage.endsWith('.mp4')\" [src]=\"previewImage\" [ngStyle]=\"{ width: '100%' }\"/>\r\n <div style=\"width: 100%;margin-top: 15px\">\r\n <app-video *ngIf=\"previewImage.endsWith('.mp4')\" [url]=\"previewImage\"></app-video>\r\n </div>\r\n </ng-template>\r\n </nz-modal>\r\n <ng-template #imgsContent>\r\n <ng-container *ngIf=\"opts && opts.imageList\">\r\n <ng-container *ngFor=\"let imgs of opts.imageList;let i = index\">\r\n <div class=\"img-div\">\r\n <img [src]=\"imgs.url || imgs.thumbUrl\" [ngStyle]=\"{ width: '100px',display: 'inline-block', margin:'10px' }\"/>\r\n <div style=\"margin-right: 20px\">\r\n <a title=\"上移\" *ngIf=\" i > 0\" style=\"display: block;\" (click)=\"arrowUp(i)\"><i nz-icon nzType=\"arrow-up\"\r\n nzTheme=\"outline\"\r\n style=\"color: #1890ff; font-size: 15px;\"></i>\r\n 上移</a>\r\n <a title=\"下移\" *ngIf=\" i < opts.imageList.length - 1\" (click)=\"arrowDown(i)\"><i nz-icon nzType=\"arrow-down\"\r\n nzTheme=\"outline\"\r\n style=\"color: #1890ff; font-size: 15px\"></i>\r\n 下移</a>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </ng-template>\r\n <!-- </nz-modal>-->\r\n</div>\r\n<ng-template #fileListTmp>\r\n <div dragula=\"dragulaBag\" [(dragulaModel)]=\"opts.imageList\" (dragulaModelChange)=\"dragnumber($event)\">\r\n <ng-container *ngFor=\"let imgs of opts.imageList;let i = index\">\r\n <div class=\"img-div img-pre\" style=\"\">\r\n <img [src]=\"getImgUrl(imgs) |ossImg\" [ngStyle]=\"{ width: '100px',display: 'inline-block', margin:'10px' }\"/>\r\n <div>\r\n <span (click)=\"priviewImg(imgs)\" nz-icon nzType=\"eye\" nzTheme=\"outline\"></span>\r\n <span (click)=\"delImg(i)\" nz-icon nzType=\"delete\" nzTheme=\"outline\"></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n</ng-template>\r\n<ng-template #tplFooter>\r\n <button nz-button nzType=\"default\" (click)=\"destroyTplModal()\">\r\n 取消\r\n </button>\r\n <button nz-button nzType=\"primary\" (click)=\"saveSeq()\">\r\n 保存顺序\r\n </button>\r\n</ng-template>\r\n\r\n\r\n","import {ValidatorFn, AbstractControl} from \"@angular/forms\"\r\n\r\n//响应式表单自定义模板验证器\r\nexport function telphoneValidator():ValidatorFn{\r\n return (contrl:AbstractControl): {[key: string]: any} | null =>{\r\n let nameExp = new RegExp('^1[3456789]\\\\d{9}$');\r\n const forbidden = nameExp.test(contrl.value);\r\n return !forbidden ? {'telphone': {value: contrl.value}} : null;\r\n }\r\n}","import {Injectable} from '@angular/core';\r\nimport {Observable} from \"rxjs\";\r\nimport { NzDrawerService } from 'ng-zorro-antd/drawer';\r\nimport {environment} from \"ng-zorro-antd/core/environments\";\r\nimport {HttpService} from \"../../core/services/http.service\";\r\nimport {ToolsUtil} from \"../../core/utils/ToolsUtil\";\r\nimport {atr_static_datas} from \"../../core/base/atr-common\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ShareService {\r\n\r\n constructor(private drawerService: NzDrawerService, private httpService: HttpService) {\r\n }\r\n getDicList(item:any) {\r\n return new Observable<any>(observe => {\r\n if (!item.selectUrl || !item.selectUrl.url) {\r\n return;\r\n }\r\n let selectUrl = item.selectUrl;\r\n let url = selectUrl.host == 'oss' ? atr_static_datas.OSS_URL + selectUrl.url : selectUrl.url;\r\n let options = selectUrl.host == 'oss' ? {} : ToolsUtil.getHttpOptions();\r\n if (selectUrl.type == 'get') {\r\n this.httpService.get(url, {}, options).subscribe(res => {\r\n observe.next({status:200,item: this.getDicListBase(res, item)});\r\n observe.unsubscribe()\r\n },error => {\r\n observe.next(error);\r\n observe.unsubscribe()\r\n })\r\n } else {\r\n this.httpService.post(url, {}, options).subscribe(res => {\r\n observe.next({status:200,item: this.getDicListBase(res, item)});\r\n observe.unsubscribe()\r\n },error => {\r\n observe.next(error);\r\n observe.unsubscribe()\r\n })\r\n }\r\n })\r\n\r\n\r\n }\r\n getDicListBase(res:any, item:any) {\r\n let keys = item.selectUrl.convert ? item.selectUrl.convert.split(',') : null;\r\n if (item.type == 'treeSelect') {\r\n item.treeList = res.data.filter((child:any) => {\r\n if (keys) {\r\n keys.forEach((v:any) => {\r\n let vs = v.split(\"|\");\r\n child[vs[0]] = child[vs[1]];\r\n });\r\n }\r\n // child.key = child.id;\r\n // child.title = child.realName;\r\n return true\r\n });\r\n } else if (item.type == 'selectCus' || item.type == 'selectc') {\r\n item.dictList = res.data.filter((child:any) => {\r\n if (keys) {\r\n keys.forEach((v:any) => {\r\n let vs = v.split(\"|\");\r\n child[vs[0]] = child[vs[1]];\r\n });\r\n }\r\n // child.value = child.id;\r\n // child.label = child.name;\r\n return true;\r\n });\r\n } else if (item.type == 'cascader') {\r\n item.dictList = res.data\r\n this.convertCascader(res.data, keys);\r\n }\r\n return item;\r\n }\r\n convertCascader(arrs:any, keys:any) {\r\n if (!arrs) {\r\n return\r\n }\r\n arrs.forEach((child:any) => {\r\n if (keys) {\r\n keys.forEach((v:any) => {\r\n let vs = v.split(\"|\");\r\n child[vs[0]] = child[vs[1]];\r\n });\r\n }\r\n child.nzValueProperty = {\r\n label: child.label,\r\n value: child.value,\r\n };\r\n if (child.children) {\r\n this.convertCascader(child.children, keys);\r\n } else {\r\n child.isLeaf = true;\r\n }\r\n });\r\n }\r\n}\r\n","import {Component, OnInit, Input, forwardRef, ViewChild} from '@angular/core';\r\nimport {Subject} from 'rxjs';\r\nimport {debounceTime} from 'rxjs/operators';\r\nimport Quill from 'quill';\r\n// import ImageResize from \"quill-image-resize-module\";\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {NzMessageService} from 'ng-zorro-antd/message';\r\nimport {UploadOssService} from \"../../../core/services/upload-oss.service\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\n\r\n// Quill.register('modules/imageResize', ImageResize);\r\nconst icons = Quill.import('ui/icons');\r\nicons.undo = `<svg viewbox=\"0 0 18 18\">\r\n <polygon class=\"ql-fill ql-stroke\" points=\"6 10 4 12 2 10 6 10\"></polygon>\r\n <path class=\"ql-stroke\" d=\"M8.09,13.91A4.6,4.6,0,0,0,9,14,5,5,0,1,0,4,9\"></path>\r\n</svg>`;\r\nicons.redo = `<svg viewbox=\"0 0 18 18\">\r\n <polygon class=\"ql-fill ql-stroke\" points=\"12 10 14 12 16 10 12 10\"></polygon>\r\n <path class=\"ql-stroke\" d=\"M9.91,13.91A4.6,4.6,0,0,1,9,14a5,5,0,1,1,5-5\"></path>\r\n</svg>`;\r\n\r\n@Component({\r\n selector: 'app-quill-editor',\r\n templateUrl: './quill-editor.component.html',\r\n styleUrls: ['./quill-editor.component.less'],\r\n providers: [\r\n UploadOssService,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QuillEditorComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class QuillEditorComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() placeholder = '请输入';\r\n @Input() styles: any = {height: '350px'};\r\n @Input() value: string | any; // 组件对应的 “ ngModel ”\r\n @Input() readOnly: boolean = false;\r\n @Input() needImgSeq: boolean = false;\r\n editor: any;\r\n onChangeListener: any; // 改变值回调\r\n onTouchedListener: any; // 交互回调\r\n imgUrls: any = [];\r\n editor$ = new Subject<string>();\r\n imgVis = false;\r\n\r\n constructor(private uploadOssService: UploadOssService, private message: NzMessageService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.editor$.pipe(\r\n debounceTime(700)\r\n ).subscribe((editorContent: string) => {\r\n if (typeof (this.onChangeListener) === 'function' && typeof (this.onTouchedListener)) {\r\n this.onChangeListener(editorContent); // 告诉form,你的表单值改变成了payload\r\n this.onTouchedListener(); // 告诉form,你的表单有交互发生\r\n }\r\n });\r\n }\r\n\r\n writeValue(value: string | any[]): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChangeListener = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouchedListener = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n\r\n }\r\n\r\n onChange(quill: any) {\r\n this.editor$.next(quill.html);\r\n }\r\n\r\n EditorCreated(quill: any) {\r\n const toolbar = quill.getModule('toolbar');\r\n toolbar.addHandler('image', this.imageHandler.bind(this));\r\n this.editor = quill;\r\n let that = this;\r\n quill.on('text-change', function (delta: any, oldDelta: any, source: any) {\r\n if (source == 'api') {\r\n } else if (source == 'user') {\r\n console.log('user');\r\n that.uploadImgs([], 0);\r\n }\r\n });\r\n }\r\n\r\n getBlobByBase64(url: any, oldUrl: any) {\r\n const c: any = document.createElement('canvas');\r\n console.log(c);\r\n const ctx = c.getContext('2d');\r\n ctx.stroke();\r\n let blob: any = ToolsUtil.dataURItoBlob(url);\r\n blob.name = '.png';\r\n let delta = this.editor.getContents();\r\n console.log('delta', delta)\r\n for (let i = 0; i < delta.ops.length; i++) {\r\n if (delta.ops[i].insert.image == oldUrl) {\r\n return {\r\n index: i,\r\n blob: blob,\r\n oldUrl: oldUrl\r\n }\r\n }\r\n }\r\n return;\r\n }\r\n\r\n uploadImgs(blods: any, index: any) {\r\n let details = this.editor.getContents();\r\n let opt = details.ops[index];\r\n if (opt && opt.insert && opt.insert.image) {\r\n if (ToolsUtil.isBase64(opt.insert.image)) {\r\n blods.push(this.getBlobByBase64(opt.insert.image, opt.insert.image));\r\n this.isEndContents(blods, index)\r\n } else {\r\n let c = document.createElement('canvas');\r\n let ctx: any = c.getContext('2d');\r\n let img = new Image();\r\n img.src = opt.insert.image;\r\n img.setAttribute('crossOrigin', '*');\r\n let that = this;\r\n img.onload = function () {\r\n c.width = img.width;\r\n c.height = img.height;\r\n ctx.drawImage(img, 0, 0, img.width, img.height);\r\n let url = c.toDataURL();\r\n blods.push(that.getBlobByBase64(url, img.src))\r\n that.isEndContents(blods, index)\r\n }\r\n }\r\n } else {\r\n this.isEndContents(blods, index)\r\n }\r\n\r\n }\r\n uploadImg(blods:any) {\r\n if (!blods || blods.length <= 0) {\r\n return\r\n }\r\n this.uploadOssService.uploadOssFiles(blods.map((v:any) => v.blob)).subscribe((res:any) => {\r\n if (res && res.length > 0) {\r\n let delta = this.editor.getContents();\r\n for (let i = 0; i < res.length; i++) {\r\n console.log('delta', delta);\r\n delta.filter((opt:any) => opt && opt.insert && opt.insert.image == blods[i].oldUrl).forEach((opt:any, index:any) => {\r\n opt.insert.image = res[i].url\r\n });\r\n }\r\n this.editor.setContents(delta, 'api');\r\n }\r\n }\r\n )\r\n }\r\n isEndContents(blods:any, index:any) {\r\n let details = this.editor.getContents();\r\n if (++index != details.ops.length) {\r\n this.uploadImgs(blods, index);\r\n } else {\r\n this.uploadImg(blods);\r\n }\r\n }\r\n\r\n imageHandler() {\r\n const Imageinput = document.createElement('input');\r\n Imageinput.setAttribute('type', 'file');\r\n Imageinput.setAttribute('multiple', 'multiple');\r\n Imageinput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp');\r\n Imageinput.classList.add('ql-image');\r\n Imageinput.addEventListener('change', () => {\r\n if (this.needImgSeq) {\r\n this.imgVis = true;\r\n }\r\n console.log(Imageinput);\r\n let files: any = Imageinput.files;\r\n if (files === null || files.length == 0) {\r\n return;\r\n }\r\n this.imgUrls = [];\r\n for (let i = 0; i < files.length; i++) {\r\n const file = files[i];\r\n if (file === null) {\r\n continue;\r\n }\r\n\r\n\r\n const error = (res: any) => {\r\n this.message.warning('上传失败');\r\n };\r\n\r\n this.uploadOssService.uploadOss(file).subscribe((url) => {\r\n console.log(file);\r\n if (url) {\r\n this.imgUrls.push({url: url, file: file, index: i});\r\n if (!this.needImgSeq) {\r\n this.editor.insertEmbed(this.editor.getSelection(true).index, 'image', url);\r\n }\r\n } else {\r\n this.message.warning('上传失败');\r\n }\r\n if (this.needImgSeq && this.imgUrls.length == files.length) {\r\n this.imgVis = true;\r\n this.imgUrls.sort((a: any, b: any) => a.index - b.index);\r\n document.getElementById(\"te\")?.click();\r\n }\r\n }, error);\r\n }\r\n\r\n });\r\n\r\n Imageinput.click();\r\n }\r\n\r\n saveSeq() {\r\n console.log(123);\r\n for (let i = this.imgUrls.length - 1; i >= 0; i--) {\r\n this.editor.insertEmbed(this.editor.getSelection(true).index, 'image', this.imgUrls[i].url);\r\n }\r\n this.imgVis = false;\r\n }\r\n\r\n arrowUp(index: any) {\r\n let img = this.imgUrls[index];\r\n this.imgUrls[index] = this.imgUrls[index - 1];\r\n this.imgUrls[index - 1] = img;\r\n }\r\n\r\n arrowDown(index: any) {\r\n let img = this.imgUrls[index];\r\n this.imgUrls[index] = this.imgUrls[index + 1];\r\n this.imgUrls[index + 1] = img;\r\n }\r\n\r\n cancle() {\r\n this.imgVis = false;\r\n }\r\n\r\n te() {\r\n console.log('上传完毕')\r\n }\r\n}\r\n","<quill-editor\r\n [styles]=\"styles\"\r\n [placeholder]=\"placeholder\"\r\n (onEditorCreated)=\"EditorCreated($event)\"\r\n [(ngModel)]=\"value\"\r\n (onContentChanged)=\"onChange($event)\"\r\n [readOnly]=\"readOnly\"\r\n></quill-editor>\r\n<!--这个div,是因为上传完毕焦点还在富文本里,弹出无法显示.....-->\r\n<div id=\"te\" (click)=\"te()\"></div>\r\n<nz-modal [(nzVisible)]=\"imgVis\" (nzOnOk)=\"saveSeq()\" (nzOnCancel)=\"cancle()\" nzMaskClosable=\"false\"\r\n [nzStyle]=\"{padding:0}\">\r\n <ng-container *nzModalContent>\r\n <div style=\"max-height:600px;overflow:auto;margin-top: 10px;\">\r\n <ng-container *ngTemplateOutlet=\"imgsContent\"></ng-container>\r\n </div>\r\n </ng-container>\r\n</nz-modal>\r\n<ng-template #imgsContent>\r\n <ng-container *ngFor=\"let imgOpt of imgUrls;let i = index\">\r\n <div class=\"img-div\">\r\n <img [src]=\"imgOpt.url\" [ngStyle]=\"{ width: '100px',display: 'inline-block', margin:'5px' }\"/>\r\n <div style=\"margin-left: 20px; color: grey;\">{{imgOpt.file.name}}</div>\r\n <div style=\"margin-right: 20px; flex: 1;text-align: right;\">\r\n <a title=\"上移\" *ngIf=\" i > 0\" style=\"display: block;\" (click)=\"arrowUp(i)\">\r\n <i nz-icon nzType=\"arrow-up\" nzTheme=\"outline\" style=\"color: #1890ff; font-size: 15px;\"></i>\r\n 上移</a>\r\n <a title=\"下移\" *ngIf=\" i < imgUrls.length - 1\" (click)=\"arrowDown(i)\">\r\n <i nz-icon nzType=\"arrow-down\" nzTheme=\"outline\" style=\"color: #1890ff; font-size: 15px\"></i>\r\n 下移</a>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n","import {Component, OnInit, Input, Injector, Inject, LOCALE_ID, Output, EventEmitter} from '@angular/core';\r\nimport {FormBuilder, FormGroup, FormControl, Validators, ValidatorFn} from '@angular/forms';\r\nimport {telphoneValidator} from '../validators/atr-validtors';\r\nimport {formatDate} from '@angular/common';\r\nimport {ShareService} from '../share.service';\r\nimport {atr_static_datas, AtrFormDetail, AtrFormOpt, formButton} from \"../../../core/base/atr-common\";\r\nimport {DictService} from \"../../../core/services/dict/dict.service\";\r\nimport {HttpService} from \"../../../core/services/http.service\";\r\n\r\n@Component({\r\n selector: 'atr-view-form',\r\n templateUrl: './view-form.component.html',\r\n styleUrls: ['./view-form.component.less']\r\n})\r\nexport class ViewFormComponent implements OnInit {\r\n @Input() formOpts: AtrFormOpt | any;\r\n @Input() atrForm: FormGroup | any;\r\n @Input() dicts: any = {};\r\n\r\n @Input() set items(items: any) {\r\n this.formOpts = {\r\n type: 'view',\r\n items: items\r\n };\r\n }\r\n\r\n column: any = {xs: 8, sm: 16, md: 24}\r\n\r\n constructor(\r\n private shareService: ShareService,\r\n private fb: FormBuilder, private dictService: DictService, private injector: Injector, @Inject(LOCALE_ID) private locale: string, private httpService: HttpService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n setTimeout(() => {\r\n console.log('atrForm.value', this.atrForm.value)\r\n console.log('atrForm.value formOpts', this.formOpts)\r\n }, 1150)\r\n }\r\n isShow(isHidden: any, operator: any) {\r\n if (isHidden) {\r\n return false;\r\n }\r\n let isShow = false;\r\n if (!operator || operator == null || operator == \"\") {\r\n return true;\r\n } else if (operator.indexOf('&&') > 0) {\r\n // a|eq|b &&c|eq|d\r\n const ops = operator.split('&&');\r\n if (ops.length > 1) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < ops.length; i++) {\r\n isShow = true\r\n if (!this.checkIsShowBase(ops[i].split('|'))) {\r\n isShow = false;\r\n break;\r\n }\r\n }\r\n }\r\n } else if (operator.indexOf('||') > 0) {\r\n // a|eq|b||c|eq|d\r\n const ops = operator.split('&&');\r\n if (ops.length > 1) {\r\n for (let i = 0; i < ops.length; i++) {\r\n isShow = false;\r\n if (this.checkIsShowBase(ops[i].split('|'))) {\r\n isShow = true;\r\n break;\r\n }\r\n }\r\n }\r\n } else {\r\n let op = operator.split(\"|\");\r\n isShow = this.checkIsShowBase(op);\r\n }\r\n return isShow;\r\n }\r\n checkIsShowBase(op: any): boolean {\r\n let isShow = false;\r\n if (op.length > 1) {\r\n let value = this.atrForm.get(op[0]).value;\r\n isShow = this.compare(value, op[1], op[2])\r\n } else\r\n isShow = false;\r\n\r\n return isShow;\r\n }\r\n compare(value: any, operator: any, target: any): boolean {\r\n let isRight = false;\r\n switch (operator) {\r\n case 'eq' :\r\n if (value == target) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'gh' :\r\n if (value >= target) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'notEmpty':\r\n isRight = false;\r\n if (value) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'empty':\r\n isRight = false;\r\n if (!value) {\r\n isRight = true;\r\n }\r\n break;\r\n default :\r\n isRight = false;\r\n break;\r\n }\r\n return isRight;\r\n }\r\n getCascaderLabel(value: any, item: any) {\r\n let result = this.getCascaderDefultV(item.dictList, value, 0, []);\r\n if (item.dictList[0].userObject?.showName) {\r\n return result[result.length - 1] || value;\r\n }\r\n return result || value\r\n }\r\n\r\n getSelectLabel(value: any, arr: any) {\r\n let result = arr.filter((item: any) => value == item.key || value == item.id)\r\n return result && result.length > 0 ? (result[0].title || result[0].typeName) : value;\r\n }\r\n\r\n getTagLabel(value: any, key = 'label') {\r\n return value ? value.map((v: any) => v[key]).join() : ''\r\n }\r\n\r\n getCascaderDefultV(dictList: any, value: any, index: any, result: any) {\r\n dictList.forEach((v: any) => {\r\n if (value[index] == v.value) {\r\n result.push(v.value)\r\n if (v.children) {\r\n this.getCascaderDefultV(v.children, value, index + 1, result)\r\n }\r\n return;\r\n }\r\n\r\n })\r\n return result;\r\n }\r\n\r\n getImgs(imgs: any) {\r\n if (!imgs) {\r\n return '';\r\n }\r\n return imgs.split(',')\r\n }\r\n}\r\n","<nz-descriptions [nzColumn]=\"column\" nzBordered [nzColon]=\"true\" [nzColumn]=\"24\">\r\n <ng-container *ngFor=\"let item of formOpts.items\">\r\n <ng-container *ngIf=\"!item.isHidden\">\r\n <nz-descriptions-item [nzTitle]=\"item.label\" [ngSwitch]=\"item.type\"\r\n *ngIf=\"isShow(item.isHidden,item.operator)\"\r\n [nzSpan]=\"item.span || 6\">\r\n <ng-container *ngSwitchCase=\"'radio'\">\r\n <ng-container *ngFor=\"let o of item.dictList\">\r\n <label *ngIf=\"o.value == atrForm.value[item.key]\">{{o.label}}</label>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'treeSelect'\">\r\n <nz-tree-select\r\n [nzNodes]=\"item.treeList\"\r\n nzShowSearch=\"true\"\r\n nzHideUnMatched=\"true\"\r\n [(ngModel)]=\"atrForm.value[item.key]\"\r\n [nzDisabled]=\"true\"\r\n >\r\n </nz-tree-select>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'select'\">\r\n {{getSelectLabel(atrForm.value[item.key],dicts[item.dictCode])}}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'selectCus'\">\r\n {{getSelectLabel(atrForm.value[item.key],item.dictList)}}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'selectc'\">\r\n <nz-select\r\n [nzDisabled]=\"true\"\r\n [(ngModel)]=\"atrForm.value[item.key]\"\r\n >\r\n <nz-option *ngFor=\"let o of item.dictList\" [nzLabel]=\"o.label\"\r\n [nzValue]=\"o.value\"></nz-option>\r\n </nz-select>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'sceneUser'\">\r\n <nz-select\r\n [nzDisabled]=\"true\"\r\n [(ngModel)]=\"atrForm.value[item.key]\"\r\n >\r\n <nz-option *ngFor=\"let o of item.dictList\" [nzLabel]=\"o.title\"\r\n [nzValue]=\"o.key\"></nz-option>\r\n </nz-select>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchDefault>\r\n {{atrForm.value[item.key]}}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n {{atrForm.value[item.key] | date:(item.dateFormat || 'yyyy-MM-dd')}}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dateTime'\">\r\n {{atrForm.value[item.key] | date:(item.dateFormat || 'yyyy-MM-dd 00:00:00')}}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'cascader'\">\r\n {{getCascaderLabel(atrForm.value[item.key],item)}}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'tags'\">\r\n {{getTagLabel(atrForm.value[item.key], 'name')}}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'image'\">\r\n <ng-container *ngFor=\"let img of getImgs(atrForm.value[item.key])\">\r\n <img nz-image style=\"max-width: 200px;max-height: 200px\" [nzSrc]=\"img | ossImg\">\r\n </ng-container>\r\n\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'rate'\">\r\n <nz-rate [nzDisabled]=\"true\"\r\n [(ngModel)]=\"atrForm.value[item.key]\"></nz-rate>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'editor'\">\r\n <div style=\"width: 800px\">\r\n <app-quill-editor [(ngModel)]=\"atrForm.value[item.key]\" style=\"width: 60%\" [readOnly]=\"true\"\r\n [styles]=\"{height:item.height > 0 ? item.height + 'px' : '250px'}\"></app-quill-editor>\r\n\r\n </div>\r\n </ng-container>\r\n\r\n </nz-descriptions-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n</nz-descriptions>\r\n","import {Component, forwardRef, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\nimport {UploadOssService} from \"../../../core/services/upload-oss.service\";\nimport {commonDatas} from \"../../../core/base/atr-common\";\n\n@Component({\n selector: 'app-select-icons',\n templateUrl: './select-icons.component.html',\n styleUrls: ['./select-icons.component.scss'],\n providers: [\n UploadOssService,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectIconsComponent),\n multi: true\n }\n ]\n})\nexport class SelectIconsComponent implements OnInit, ControlValueAccessor {\n @Input() readonly = true;\n @Input() placeholder = '选择图标';\n value:any;\n icons = commonDatas.icons\n showProp = false;\n onChangeListener: any; // 改变值回调\n onTouchedListener: any; // 交互回调\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n change(value: boolean): void {\n console.log(value);\n }\n\n valueChange(e:any) {\n console.log('form change', this.value)\n console.log('form change e', e)\n if (this.onChangeListener) {\n this.onChangeListener(e); // 告诉form,你的表单值改变成了payload\n }\n if (this.onChangeListener) {\n this.onTouchedListener(); // 告诉form,你的表单有交互发生\n }\n }\n\n selectIcon(item:any) {\n this.value = item;\n this.showProp = false;\n console.log('form change', this.value)\n console.log('form change e', item)\n if (this.onChangeListener) {\n this.onChangeListener(item); // 告诉form,你的表单值改变成了payload\n }\n if (this.onChangeListener) {\n this.onTouchedListener(); // 告诉form,你的表单有交互发生\n }\n }\n\n showIcons() {\n if(this.readonly){\n return\n }\n this.showProp = true\n }\n\n\n registerOnChange(fn: any): void {\n this.onChangeListener = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedListener = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n }\n\n writeValue(value: string): void {\n this.value = value;\n }\n}\n","<div style=\"display:flex;\">\n <input [(ngModel)]=\"value\"\n (ngModelChange)=\"valueChange($event)\"\n nz-input\n nzType=\"primary\" nzPopoverPlacement=\"bottom\"\n [placeholder]=\"placeholder\"\n [readOnly]=\"readonly\"/>\n <button nz-button nz-popover nzType=\"primary\"\n [(nzPopoverVisible)]=\"showProp\" nzPopoverTrigger=\"click\"\n (nzPopoverVisibleChange)=\"change($event)\"\n [nzPopoverContent]=\"contentTemplate\">选择图标</button>\n</div>\n<ng-template #contentTemplate>\n <div style=\"width: 100%;height: 300px;overflow-y: auto\">\n <span (click)=\"selectIcon(item)\" class=\"i-child\" *ngFor=\"let item of icons\">\n <i nz-icon [nzType]=\"item\" nzTheme=\"outline\"></i>\n </span>\n\n </div>\n</ng-template>\n","import {Component, OnInit, Input, Injector, Inject, LOCALE_ID, Output, EventEmitter} from '@angular/core';\r\nimport {FormBuilder, FormGroup, FormControl, Validators, ValidatorFn} from '@angular/forms';\r\nimport {telphoneValidator} from '../validators/atr-validtors';\r\nimport {formatDate} from '@angular/common';\r\nimport {ShareService} from '../share.service';\r\nimport {environment} from \"ng-zorro-antd/core/environments\";\r\nimport {atr_static_datas, AtrFormDetail, AtrFormOpt, FormAction, formButton} from \"../../../core/base/atr-common\";\r\nimport {DictService} from \"../../../core/services/dict/dict.service\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\nimport {HttpService} from \"../../../core/services/http.service\";\r\n\r\n@Component({\r\n selector: 'atr-form',\r\n templateUrl: './form.component.html',\r\n styleUrls: ['./form.component.less']\r\n})\r\nexport class AtrFormComponent implements OnInit {\r\n\r\n dicts: any = {};\r\n atrForm: FormGroup | any;\r\n @Input() formOpts: AtrFormOpt | any;\r\n @Output() formAction = new EventEmitter<FormAction>();\r\n\r\n // tslint:disable-next-line:max-line-length\r\n constructor(private shareService: ShareService, private httpService: HttpService,\r\n private fb: FormBuilder, private dictService: DictService, private injector: Injector, @Inject(LOCALE_ID) private locale: string) {\r\n this.atrForm = this.fb.group({});\r\n }\r\n\r\n resetLayout(item: any) {\r\n if (!item.lspan) {\r\n item.lspan = 24;\r\n }\r\n if (!item.cspan) {\r\n item.cspan = 24;\r\n }\r\n }\r\n\r\n doAction(item: formButton, event: MouseEvent) {\r\n event.preventDefault();\r\n if (event.stopPropagation) {\r\n event.stopPropagation()\r\n }\r\n let action: FormAction = {\r\n name: item.name,\r\n code: item.code,\r\n };\r\n this.formAction.emit(action);\r\n }\r\n\r\n setValue(key: string, value: any) {\r\n this.atrForm.get(key)?.setValue(value);\r\n }\r\n\r\n\r\n getDicList(item: any) {\r\n this.shareService.getDicList(item).subscribe(res => {\r\n if (res.status == 200 && res.item) {\r\n item = res.item\r\n this.resetForm();\r\n }\r\n })\r\n\r\n }\r\n\r\n conv(datas: any, keys: any): any {\r\n return datas.map((child: any) => {\r\n let item: any = {};\r\n if (keys) {\r\n keys.forEach((v: any) => {\r\n let vs = v.split(\"|\");\r\n child[vs[0]] = child[vs[1]];\r\n item[vs[0]] = child[vs[1]];\r\n });\r\n } else {\r\n item = child;\r\n }\r\n child.nzValueProperty = item;\r\n if (child.children) {\r\n child.children = this.conv(child.children, keys)\r\n } else {\r\n child.isLeaf = true\r\n }\r\n return child;\r\n })\r\n }\r\n\r\n getCascaderDefaultValue(list: any, index: any, value: any) {\r\n list.forEach((dic: any) => {\r\n if (dic.value == value[index]) {\r\n value[index] = dic.nzValueProperty\r\n value = this.getCascaderDefaultValue(dic.children, index + 1, value)\r\n return\r\n }\r\n })\r\n return value\r\n }\r\n\r\n ngOnInit() {\r\n if (this.formOpts && this.formOpts.items) {\r\n for (let item of this.formOpts.items) {\r\n // this.atrForm.addControl(item.key, new FormControl());\r\n this.resetLayout(item)\r\n let value = this.formOpts.type == 'add' ? item.defaultValue : item.value;\r\n console.log(value);\r\n if (item.type == 'checkbox') {\r\n if (this.formOpts.type == 'add') {\r\n value = item.dictList.filter((v: any) => v.isSelect).map((dic: any) => dic.value);\r\n }\r\n }\r\n if (item.type == 'treeSelect' && item.selectUrl.url) {\r\n let keys = item.selectUrl.convert.split(',');\r\n this.httpService.post(item.selectUrl.url, {}, ToolsUtil.getHttpOptions()).subscribe(res => {\r\n item.treeList = res.data.filter((child: any) => {\r\n keys.forEach((v: any) => {\r\n let vs = v.split(\"|\");\r\n child[vs[0]] = child[vs[1]];\r\n });\r\n return true\r\n });\r\n })\r\n }\r\n if (item.type == 'cascader' && item.selectUrl.url) {\r\n let keys: any = null\r\n if (item.selectUrl.convert) {\r\n keys = item.selectUrl.convert.split(',');\r\n }\r\n\r\n this.httpService.post(item.selectUrl.url, {}, ToolsUtil.getHttpOptions()).subscribe(res => {\r\n item.dictList = this.conv(res.data, keys)\r\n if (value && value.length > 0) {\r\n value = this.getCascaderDefaultValue(item.dictList, 0, value)\r\n this.setValue(item.key, value)\r\n }\r\n })\r\n }\r\n if (item.type == \"select\") {\r\n this.getDictValue(item.dictCode);\r\n }\r\n if (item.type == 'selectc') {\r\n if (!item.dictList || (item.selectUrl && item.selectUrl.ignoreDictList)) {\r\n this.getDicList(item);\r\n }\r\n }\r\n if (item.type == \"textarea\" && !item.rows)\r\n item.rows = 5;\r\n if (item.type == \"image\") {\r\n item.imageOpts.key = item.key\r\n if (value) {\r\n let images: any = [];\r\n let list = value.split(\",\");\r\n for (let key of list) {\r\n images.push({\r\n key: key,\r\n uid: \"-1\",\r\n url: atr_static_datas.OSS_URL + key\r\n })\r\n }\r\n item.imageOpts.imageList = images;\r\n }\r\n }\r\n if (item.type == 'editor') {\r\n if (!value) value = \"\"\r\n if (!item.height)\r\n item.height = 300\r\n }\r\n\r\n if (!item.span)\r\n item.span = 8\r\n if (typeof item.isRequired != 'string') {\r\n item.isRequired = false\r\n }\r\n let tempValidators: ValidatorFn[] = [];\r\n if (item.validators) {\r\n for (let validator of item.validators) {\r\n if (validator.type == \"required\") {\r\n item.isRequired = true\r\n tempValidators.push(Validators.required)\r\n } else if (validator.type == \"email\") {\r\n tempValidators.push(Validators.email)\r\n } else if (validator.type == \"maxlength\") {\r\n tempValidators.push(Validators.maxLength(validator.maxlength ? validator.maxlength : 1))\r\n } else if (validator.type == \"minlength\") {\r\n tempValidators.push(Validators.minLength(validator.minlength ? validator.minlength : 1))\r\n } else if (validator.type == \"telphone\") {\r\n tempValidators.push(telphoneValidator())\r\n } else if (validator.type == \"pattern\") {\r\n tempValidators.push(Validators.pattern(validator.patternValue))\r\n }\r\n }\r\n }\r\n\r\n let defaultValue = {value: value != undefined ? value : null, disabled: item.disable ? item.disable : false}\r\n if (tempValidators.length > 0) {\r\n this.atrForm.addControl(item.key, new FormControl(defaultValue, tempValidators));\r\n } else {\r\n this.atrForm.addControl(item.key, new FormControl(defaultValue));\r\n }\r\n console.log(\" this.atrForm\", this.atrForm);\r\n }\r\n }\r\n }\r\n\r\n compare(value: any, operator: any, target: any): boolean {\r\n let isRight = false;\r\n switch (operator) {\r\n case 'eq' :\r\n if (value == target) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'gh' :\r\n if (value >= target) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'notEmpty':\r\n isRight = false;\r\n if (value) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'empty':\r\n isRight = true;\r\n console.log('empty',!!value)\r\n if (!!value) {\r\n\r\n isRight = false;\r\n }\r\n break;\r\n default :\r\n isRight = false;\r\n break;\r\n }\r\n return isRight;\r\n }\r\n\r\n checkIsShowBase(op: any): boolean {\r\n let isShow = false;\r\n if (op.length > 1) {\r\n let value = this.atrForm.get(op[0]).value;\r\n isShow = this.compare(value, op[1], op[2])\r\n } else\r\n isShow = false;\r\n\r\n return isShow;\r\n }\r\n\r\n isRequired(item: AtrFormDetail) {\r\n let result = false;\r\n let isRequired = item.isRequired;\r\n let type = typeof isRequired;\r\n if (type == \"boolean\") {\r\n return isRequired\r\n } else if (type == \"string\") {\r\n\r\n result = this.isShow(false, isRequired);\r\n }\r\n console.log(\"isRequired\", result);\r\n return result;\r\n }\r\n\r\n isShow(isHidden: any, operator: any) {\r\n if (isHidden) {\r\n return false;\r\n }\r\n let isShow = false;\r\n if (!operator || operator == null || operator == \"\") {\r\n return true;\r\n } else if (operator.indexOf('&&') > 0) {\r\n // a|eq|b &&c|eq|d\r\n const ops = operator.split('&&');\r\n if (ops.length > 1) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < ops.length; i++) {\r\n isShow = true\r\n if (!this.checkIsShowBase(ops[i].split('|'))) {\r\n isShow = false;\r\n break;\r\n }\r\n }\r\n }\r\n } else if (operator.indexOf('||') > 0) {\r\n // a|eq|b||c|eq|d\r\n const ops = operator.split('&&');\r\n if (ops.length > 1) {\r\n for (let i = 0; i < ops.length; i++) {\r\n isShow = false;\r\n if (this.checkIsShowBase(ops[i].split('|'))) {\r\n isShow = true;\r\n break;\r\n }\r\n }\r\n }\r\n } else {\r\n let op = operator.split(\"|\");\r\n isShow = this.checkIsShowBase(op);\r\n }\r\n return isShow;\r\n }\r\n\r\n getDictValue(code: string) {\r\n // console.log(\"9999\");\r\n this.dictService.getDictBycode(code).subscribe(\r\n result => {\r\n if (result && result != null)\r\n this.dicts[code] = result.dicts;\r\n },\r\n error => {\r\n this.dicts[code] = [];\r\n }\r\n )\r\n }\r\n\r\n imageUploadChange(e: any) {\r\n if (e.key) {\r\n this.atrForm.get(e.key).setValue(e.values);\r\n }\r\n }\r\n\r\n resetForm() {\r\n // this.atrForm.reset();\r\n // console.log(\"editor reset\")\r\n if (this.formOpts && this.formOpts.items) {\r\n for (let item of this.formOpts.items) {\r\n let value = this.formOpts.type == 'add' ? item.defaultValue : item.value;\r\n if (item.type == \"image\") {\r\n item.imageOpts.key = item.key\r\n let images: any = [];\r\n if (!value) value = \"\";\r\n let list = value.split(\",\");\r\n for (let key of list) {\r\n if (key != \"\") {\r\n images.push({\r\n key: key,\r\n uid: \"-1\",\r\n url: atr_static_datas.OSS_URL + key\r\n })\r\n }\r\n }\r\n item.imageOpts.imageList = images;\r\n // console.log(images)\r\n } else if (item.type == \"editor\") {\r\n // console.log(\"editor\")\r\n if (!value) value = \"\"\r\n } else if (item.type == \"select\" && value == \"\") {\r\n value = null;\r\n } else if (item.type == \"checkbox\" && !value) {\r\n value = null;\r\n }\r\n this.atrForm.get(item.key).setValue(value != undefined ? value : null)\r\n }\r\n for (const i in this.atrForm.controls) {\r\n this.atrForm.controls[i].markAsUntouched();\r\n this.atrForm.controls[i].markAsPristine();\r\n this.atrForm.controls[i].updateValueAndValidity();\r\n }\r\n }\r\n\r\n }\r\n\r\n getFormValue() {\r\n let obj: any = {\r\n isValid: false,\r\n mode: this.formOpts.type,\r\n value: {}\r\n };\r\n let value = this.atrForm.value;\r\n for (const key of Object.keys(value)) {\r\n // //console.log(key);\r\n if (value.hasOwnProperty(key) && value[key] != null && value[key] != undefined) {\r\n if (value[key] instanceof Date) {\r\n for (let item of this.formOpts.items) {\r\n if (item.key != key) {\r\n continue;\r\n }\r\n if (item.dateFormat) {\r\n obj.value[key] = formatDate(new Date(Number(value[key])), item.dateFormat, this.locale);\r\n } else if (item.type == 'date') {\r\n obj.value[key] = formatDate(new Date(Number(value[key])), 'yyyy-MM-dd 00:00:00', this.locale);\r\n } else if (item.type == 'dateTime') {\r\n obj.value[key] = formatDate(new Date(Number(value[key])), 'yyyy-MM-dd HH:mm:ss', this.locale);\r\n }\r\n }\r\n\r\n } else if (value[key] instanceof Array) {\r\n for (let item of this.formOpts.items) {\r\n if (item.key != key) {\r\n continue;\r\n }\r\n let dateFormat = item.dateFormat ? item.dateFormat : 'yyyy-MM-dd 00:00:00';\r\n if (item.type == 'dateRange') {\r\n let dateArr: any = [];\r\n let nzShowTime = item.nzShowTime\r\n if (nzShowTime) {\r\n dateFormat = 'yyyy-MM-dd HH:mm:ss'\r\n if (nzShowTime.nzFormat) {\r\n dateFormat = 'yyyy-MM-dd ' + nzShowTime.nzFormat;\r\n }\r\n }\r\n for (let d of value[key]) {\r\n dateArr.push(formatDate((d as Date), dateFormat, this.locale));\r\n }\r\n obj.value[key] = dateArr;\r\n } else if (item.type == 'cascader') {\r\n obj.value[key] = value[key]\r\n } else if (item.type == 'select' && item.nzMode == 'multiple') {\r\n obj.value[key] = value[key].toString();\r\n } else {\r\n obj.value[key] = value[key];\r\n }\r\n }\r\n } else {\r\n obj.value[key] = value[key]\r\n }\r\n }\r\n }\r\n return obj;\r\n }\r\n\r\n getFormVaild(): any {\r\n let obj: any = {\r\n isValid: false,\r\n mode: this.formOpts.type,\r\n value: {}\r\n };\r\n for (const i in this.atrForm.controls) {\r\n this.atrForm.controls[i].markAsDirty();\r\n this.atrForm.controls[i].updateValueAndValidity();\r\n }\r\n obj.isValid = this.atrForm.valid\r\n let value = this.atrForm.value;\r\n for (const key of Object.keys(value)) {\r\n console.log(key);\r\n if (value.hasOwnProperty(key) && value[key] != null && value[key] != undefined) {\r\n if (value[key] instanceof Date) {\r\n for (let item of this.formOpts.items) {\r\n if (item.key != key) {\r\n continue;\r\n }\r\n if (item.dateFormat) {\r\n obj.value[key] = formatDate(new Date(Number(value[key])), item.dateFormat, this.locale);\r\n } else if (item.type == 'date') {\r\n obj.value[key] = formatDate(new Date(Number(value[key])), 'yyyy-MM-dd 00:00:00', this.locale);\r\n } else if (item.type == 'dateTime') {\r\n obj.value[key] = formatDate(new Date(Number(value[key])), 'yyyy-MM-dd HH:mm:ss', this.locale);\r\n }\r\n }\r\n\r\n } else if (value[key] instanceof Array) {\r\n for (let item of this.formOpts.items) {\r\n if (item.key != key) {\r\n continue;\r\n }\r\n let dateFormat = item.dateFormat ? item.dateFormat : 'yyyy-MM-dd 00:00:00';\r\n if (item.type == 'dateRange') {\r\n let dateArr: any = [];\r\n for (let d of value[key]) {\r\n dateArr.push(formatDate((d as Date), dateFormat, this.locale));\r\n }\r\n obj.value[key] = dateArr;\r\n } else if (item.type == 'cascader') {\r\n obj.value[key] = value[key]\r\n } else if (item.type == 'select' && item.nzMode == 'multiple') {\r\n obj.value[key] = value[key].toString();\r\n } else {\r\n obj.value[key] = value[key];\r\n }\r\n }\r\n } else {\r\n obj.value[key] = value[key]\r\n }\r\n }\r\n }\r\n return obj;\r\n }\r\n\r\n showTime(item: any) {\r\n if (!item.dateFormat || item.dateFormat == \"yyyy-MM-dd\") {\r\n return false\r\n }\r\n let format = item.dateFormat;\r\n if (format.indexOf(\"HH\")) {\r\n return true;\r\n }\r\n if (format.indexOf(\"mm\")) {\r\n return true;\r\n }\r\n if (format.indexOf(\"ss\")) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","<atr-view-form *ngIf=\"formOpts.type == 'view'\" [dicts]=\"dicts\" [atrForm]=\"atrForm\"\r\n [formOpts]=\"formOpts\"></atr-view-form>\r\n\r\n<form nz-form [formGroup]=\"atrForm\" *ngIf=\"formOpts.type != 'view'\">\r\n <div nz-row nzGutter=\"8\" nzType=\"flex\" nzAlign=\"top\">\r\n <ng-container *ngFor=\"let item of formOpts.items\">\r\n <div nz-col nzSpan=\"24\" class=\"form-title\" *ngIf=\"item.type == 'title'\">\r\n {{item.label}}\r\n </div>\r\n <div nz-col [nzSpan]=\"item.span\" *ngIf=\"isShow(item.isHidden,item.operator)\">\r\n\r\n <nz-form-item *ngIf=\"item.type != 'title'\">\r\n <nz-form-label [nzSm]=\"item.lspan\" [nzXs]=\"24\" [nzRequired]=\"isRequired(item)\">{{item.label}}</nz-form-label>\r\n <nz-form-control [nzSm]=\"item.cspan\" [nzXs]=\"24\">\r\n <div style=\"display: flex;width: 100%\">\r\n <nz-tree-select *ngIf=\"item.type == 'treeSelect'\"\r\n [nzNodes]=\"item.treeList\"\r\n nzShowSearch=\"true\"\r\n nzHideUnMatched=\"true\"\r\n nzPlaceHolder=\"{{item.placeholder}}\"\r\n [nzShowSearch]=\"true\"\r\n [formControlName]=\"item.key\"\r\n [nzAllowClear]=\"!item.notNull\"\r\n [nzMultiple]=\"item.selectUrl.isMultiple\"\r\n [nzDisabled]=\"item.readonly\"\r\n style=\"flex: 1\"\r\n >\r\n </nz-tree-select>\r\n <nz-tree-select *ngIf=\"item.type == 'treeSelect'\"\r\n [nzAllowClear]=\"!item.notNull\"\r\n [nzNodes]=\"item.treeList\"\r\n nzShowSearch=\"true\"\r\n nzHideUnMatched=\"true\"\r\n nzPlaceHolder=\"{{item.placeholder}}\"\r\n [nzShowSearch]=\"true\"\r\n [formControlName]=\"item.key\"\r\n [nzMultiple]=\"item.selectUrl.isMultiple\"\r\n [nzDisabled]=\"item.readonly\" style=\"flex: 1\"\r\n >\r\n </nz-tree-select>\r\n <app-select-icons *ngIf=\"item.type == 'selectIcon'\" nz-input placeholder=\"{{item.placeholder}}\"\r\n [readonly]=\"item.readonly \"\r\n style=\"flex: 1\"\r\n [formControlName]=\"item.key\">\r\n </app-select-icons>\r\n <input *ngIf=\"item.type == 'text'\" nz-input placeholder=\"{{item.placeholder}}\"\r\n [readonly]=\"item.readonly || formOpts.type == 'view'\"\r\n [formControlName]=\"item.key\"/>\r\n <textarea *ngIf=\"item.type == 'textarea'\" nz-input [rows]=\"item.rows\" placeholder=\"{{item.placeholder}}\"\r\n [formControlName]=\"item.key\" [readonly]=\"item.readonly|| formOpts.type == 'view'\"></textarea>\r\n <nz-input-number *ngIf=\"item.type == 'number'\" nzPlaceHolder=\"{{item.placeholder}}\"\r\n [nzMin]=\"item.minNumber\" [nzMax]=\"item.maxNumber\"\r\n [formControlName]=\"item.key\"></nz-input-number>\r\n <nz-radio-group *ngIf=\"item.type == 'radio'\" [formControlName]=\"item.key\">\r\n <label nz-radio *ngFor=\"let o of item.dictList\" [nzValue]=\"o.value\">{{o.label}}</label>\r\n </nz-radio-group>\r\n <nz-checkbox-wrapper *ngIf=\"item.type == 'checkbox'\" [formControlName]=\"item.key\">\r\n <div nz-row>\r\n <div *ngFor=\"let o of item.dictList\" nz-col>\r\n <label nz-checkbox [nzValue]=\"o.value\">{{o.label}}</label></div>\r\n </div>\r\n </nz-checkbox-wrapper>\r\n <nz-select\r\n [nzShowSearch]=\"true\"\r\n *ngIf=\"item.type == 'select'\"\r\n nzPlaceHolder=\"{{item.placeholder}}\"\r\n nzAllowClear=\"true\"\r\n [formControlName]=\"item.key\"\r\n nzServerSearch\r\n [nzMode]=\"item.nzMode || 'default'\"\r\n nzDisabled=\"{{item.readonly|| formOpts.type == 'view'}}\"\r\n >\r\n <nz-option *ngFor=\"let o of dicts[item.dictCode]\" [nzLabel]=\"o.typeName\" [nzValue]=\"o.id\"></nz-option>\r\n </nz-select>\r\n <nz-select\r\n [nzShowSearch]=\"true\"\r\n *ngIf=\"item.type == 'selectc'\"\r\n nzPlaceHolder=\"{{item.placeholder}}\"\r\n nzAllowClear=\"true\"\r\n [formControlName]=\"item.key\"\r\n nzServerSearch\r\n [nzMode]=\"item.nzMode || 'default'\"\r\n nzDisabled=\"{{item.readonly|| formOpts.type == 'view'}}\"\r\n >\r\n <nz-option *ngFor=\"let o of item.dictList\" [nzLabel]=\"o.label\" [nzValue]=\"o.value\"></nz-option>\r\n </nz-select>\r\n <nz-cascader [nzDisabled]=\"item.readonly\" style=\"flex: 1\" [nzAllowClear]=\"!item.notNull\"\r\n [nzValueProperty]=\"'nzValueProperty'\"\r\n [nzShowSearch]=\"true\" *ngIf=\"item.type == 'cascader'\"\r\n [nzOptions]=\"item.dictList\" [formControlName]=\"item.key\"></nz-cascader>\r\n <nz-date-picker *ngIf=\"item.type == 'date'\" [nzFormat]=\"item.dateFormat ? item.dateFormat : 'yyyy-MM-dd'\"\r\n [nzShowTime]=\"showTime(item)\"\r\n [nzDisabled]=\"formOpts.type == 'view' || item.readonly \"\r\n [formControlName]=\"item.key\"></nz-date-picker>\r\n <nz-range-picker *ngIf=\"item.type == 'dateRange'\"\r\n [nzShowTime]=\"item.nzShowTime? item.nzShowTime : false\"\r\n [formControlName]=\"item.key\"\r\n [nzFormat]=\"item.nzShowTime && item.nzShowTime.nzFormat ? ('yyyy-MM-dd '+ item.nzShowTime.nzFormat) : 'yyyy-MM-dd'\"\r\n [nzPlaceHolder]=\"['开始时间', '结束时间']\"></nz-range-picker>\r\n\r\n <input *ngIf=\"item.type == 'image'\" nz-input [formControlName]=\"item.key\" [hidden]=\"true\"/>\r\n <atr-img-upload *ngIf=\"item.type == 'image'\" [(opts)]=\"item.imageOpts\"\r\n (afterChange)=\"imageUploadChange($event)\"></atr-img-upload>\r\n\r\n <!-- <editor *ngIf=\"item.type == 'editor'\" [formControlName]=\"item.key\" [config]=\"{initialFrameHeight:item.height}\" ></editor>-->\r\n <app-quill-editor *ngIf=\"item.type == 'editor'\" [formControlName]=\"item.key\"\r\n [styles]=\"{height:item.height > 0 ? item.height + 'px' : '250px'}\"></app-quill-editor>\r\n <div *ngIf=\"item.type == 'word'\" [innerHTML]=\"item.value |defVal:item.defaultValue |safeHtml\">\r\n </div>\r\n <div *ngIf=\"item.type == 'buttons'\">\r\n <ng-container *ngFor=\"let btn of item.buttons\">\r\n <button nz-button type=\"button\" [nzType]=\"btn.btnType |defVal: 'default'\"\r\n class=\"ant-btn ant-btn-primary\"\r\n style=\"margin-right: 5px\" *ngIf=\"btn.isShow || isShow(false,btn.operator)\"\r\n (click)=\"doAction(btn,$event)\">\r\n <span>{{btn.name}}</span></button>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngFor=\"let valid of item.validators\">\r\n <ng-container *ngIf=\"atrForm.get(item.key).hasError(valid.type) && (atrForm.get(item.key).dirty )\">\r\n <div style=\"color:red; height: 15px;margin: 0;line-height: 15px;\">{{valid.errorLabel}}</div>\r\n </ng-container>\r\n </ng-container>\r\n <button nz-button nzType=\"default\" style=\"cursor: default;background-color: #fafafa;color: black\"\r\n *ngIf=\"item.ends\" disabled>\r\n {{item.ends}}\r\n </button>\r\n <button *ngIf=\"item.button?.isShow\" type=\"button\" class=\"ant-btn ant-btn-primary\"\r\n (click)=\"doAction(item.button,$event)\">\r\n <span>{{item.button.name}}</span></button>\r\n </div>\r\n <div *ngIf=\"item.proposal\" style=\"color: red;width: 100%\">{{item.proposal}}</div>\r\n </nz-form-control>\r\n </nz-form-item>\r\n <ng-content *ngTemplateOutlet=\"item.temp\"></ng-content>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n</form>\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {DictService} from \"../../../core/services/dict/dict.service\";\r\nimport {SelectAction} from \"../../../core/base/atr-common\";\r\n\r\nexport declare interface SelectTreeOpt {\r\n dictCode: string,\r\n key: string,\r\n value?: string,\r\n}\r\n\r\n@Component({\r\n selector: 'app-select-tree',\r\n templateUrl: './select-tree.component.html',\r\n styleUrls: ['./select-tree.component.scss']\r\n})\r\nexport class SelectTreeComponent implements OnInit {\r\n dicts:any = {};\r\n @Input() opt: SelectTreeOpt|any;\r\n @Output() action = new EventEmitter<SelectAction>();\r\n selectValue:any;\r\n @Input() isDisable:boolean = false;\r\n constructor(private dictService: DictService,) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getDictValue(this.opt[\"dictCode\"]);\r\n }\r\n\r\n getDictValue(code: string) {\r\n this.dictService.getDictBycode(code).subscribe(\r\n result => {\r\n if (result && result != null){\r\n this.dicts[code] = result.dicts;\r\n this.dicts[code].forEach(\r\n (dic:any) => {\r\n // 设置默认值\r\n if(dic.id == this.opt.value){\r\n this.selectValue = dic;\r\n this.changeValue();\r\n }\r\n }\r\n )\r\n }\r\n\r\n },\r\n error => {\r\n this.dicts[code] = [];\r\n }\r\n )\r\n }\r\n\r\n changeValue() {\r\n this.opt.value = this.selectValue.id;\r\n console.log(this.opt.value);\r\n this.action.emit({\r\n name: 'changeValue',\r\n code: 'ngModelChange',\r\n data: this.selectValue\r\n })\r\n }\r\n}\r\n","<nz-select\r\n nzAllowClear=\"false\"\r\n [nzDropdownMatchSelectWidth]=\"false\"\r\n nzServerSearch\r\n [(ngModel)]=\"selectValue\"\r\n style=\"width: 100px\"\r\n (ngModelChange)=\"changeValue()\"\r\n [nzDisabled]=\"isDisable\"\r\n>\r\n <nz-option *ngFor=\"let o of dicts[opt.dictCode]\" [nzLabel]=\"o.typeName\" [nzValue]=\"o\" > </nz-option>\r\n</nz-select>\r\n","import {AfterViewInit, Component, ElementRef, Input, OnInit, ViewChild} from '@angular/core';\r\nimport * as echarts from 'echarts';\r\nimport {EChartsOption} from \"../../../core/base/atr-common\";\r\n\r\n\r\n@Component({\r\n selector: 'app-echarts',\r\n templateUrl: './echarts.component.html',\r\n styleUrls: ['./echarts.component.less']\r\n})\r\n\r\nexport class EchartsComponent implements OnInit, AfterViewInit {\r\n // @ts-ignore\r\n @ViewChild('echart') echart: ElementRef;\r\n\r\n @Input() set userOption(userOption: EChartsOption) {\r\n if (userOption) {\r\n this.initOption(userOption, this.option);\r\n this.option = Object.assign(this.option, userOption);\r\n console.log('option', this.option)\r\n }\r\n }\r\n\r\n initOption(userOption:any, target:any) {\r\n for (let key of Object.keys(userOption)) {\r\n\r\n let value = userOption[key];\r\n\r\n if (value) {\r\n if (!target[key]) {\r\n target[key] = value\r\n } else if (value instanceof Array) {\r\n target[key] = value;\r\n } else if (typeof value === 'object') {\r\n target = this.initOption(value, target[key])\r\n\r\n } else {\r\n target[key] = value\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n\r\n option = {\r\n xAxis: {\r\n type: 'category',\r\n data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']\r\n },\r\n yAxis: {\r\n type: 'value',\r\n minInterval: 1,\r\n },\r\n series: [{\r\n data: [120, 200, 150, 80, 70, 110, 130],\r\n type: 'bar',\r\n showBackground: true,\r\n backgroundStyle: {\r\n color: 'rgba(180, 180, 180, 0.2)'\r\n }\r\n }]\r\n };\r\n myEchart: any;\r\n @Input() width = '20rem';\r\n @Input() height = '20rem';\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.myEchart = echarts.init(this.echart.nativeElement);\r\n this.myEchart.setOption(this.option)\r\n }\r\n\r\n}\r\n","<div [ngStyle]=\"{width:width,height:height}\" #echart></div>","import { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AtrTableComponent } from './table/table.component';\r\nimport { UploadComponent } from './upload/upload.component';\r\nimport { AtrFormComponent } from './form/form.component';\r\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\r\nimport { registerLocaleData } from '@angular/common';\r\nimport zh from '@angular/common/locales/zh';\r\nimport { LocalUploadComponent } from './local-upload/local-upload.component';\r\nimport {NgModule} from \"@angular/core\";\r\nimport { SelectTreeComponent } from './select-tree/select-tree.component';\r\nimport { VideoComponent } from './video/video.component';\r\nimport {VgControlsModule, VgCoreModule, VgOverlayPlayModule, VgBufferingModule} from \"ngx-videogular\";\r\nimport {DragDropModule} from \"@angular/cdk/drag-drop\";\r\nimport {TableTdComponent} from \"./table/table-td/table-td.component\";\r\nimport {TableFormItemComponent} from \"./table/table-form-item/table-form-item.component\";\r\nimport {PipeModuleModule} from \"../../core/pipe/pipe-module.module\";\r\nimport {AtrComponentsModule} from \"../../atr-components.module\";\r\nimport {CusNgZorroAntdModule} from \"../../core/ngz-module/cus-zorro-antd.module\";\r\nimport {QuillEditorComponent} from \"./quill-editor/quill-editor.component\";\r\nimport {QuillModule} from \"ngx-quill\";\r\nimport {SelectIconsComponent} from \"./select-icons/select-icons.component\";\r\nimport {EchartsComponent} from \"./echarts/echarts.component\";\r\nimport {ViewFormComponent} from \"./view-form/view-form.component\";\r\nimport { DragulaModule } from 'ng2-dragula';\r\nimport {AtrRoleDirective} from \"../../core/directive/role.directive\";\r\nimport {AtrErrorImgDirective} from \"../../core/directive/error-img.directive\";\r\nimport {HqSpinDirective} from \"../../core/directive/hq-spin.directive\";\r\n\r\nconst THIRDMODULES = [\r\n CusNgZorroAntdModule,\r\n NzResizableModule,\r\n\r\n];\r\n\r\nconst SERVICE_PROVIDES:any = [];\r\nregisterLocaleData(zh);\r\n// #endregion\r\n\r\n// #region your componets & directives\r\nconst COMPONENTS = [QuillEditorComponent,TableFormItemComponent,TableTdComponent,AtrTableComponent,UploadComponent,AtrFormComponent,LocalUploadComponent,\r\n SelectTreeComponent,VideoComponent,SelectIconsComponent,EchartsComponent,ViewFormComponent];\r\nconst DIRECTIVES = [AtrRoleDirective, AtrErrorImgDirective, HqSpinDirective,];\r\n@NgModule({\r\n imports: [\r\n PipeModuleModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n // third libs\r\n ...THIRDMODULES,\r\n VgCoreModule,\r\n VgControlsModule,\r\n VgOverlayPlayModule,\r\n VgBufferingModule,\r\n DragDropModule,\r\n DragulaModule.forRoot(),\r\n AtrComponentsModule,\r\n QuillModule.forRoot({\r\n modules: {\r\n syntax: false,\r\n // imageResize: {},\r\n toolbar: {\r\n container: [\r\n ['undo', 'redo'],\r\n ['bold', 'italic', 'underline'], // toggled buttons\r\n // ['code-block'], // blockquote\r\n // [{ header: 1 }, { header: 2 }], // custom button values\r\n [{list: 'ordered'}, {list: 'bullet'}],\r\n // [{ script: 'sub' }, { script: 'super' }], // superscript/subscript\r\n [{indent: '-1'}, {indent: '+1'}], // outdent/indent\r\n // [{ direction: 'rtl' }], // text direction\r\n // [{ size: ['small', false, 'large', 'huge'] }], // custom dropdown\r\n [{header: [1, 2, 3, 4, 5, 6, false]}],\r\n [{color: []}, {background: []}], // dropdown with defaults from theme\r\n // [{ font: [] }],\r\n [{align: []}],\r\n ['clean'], // remove formatting button\r\n ['image'], // link and image, video\r\n ],\r\n handlers: {\r\n redo() {\r\n this['quill'].history.redo();\r\n },\r\n undo() {\r\n this['quill'].history.undo();\r\n }\r\n }\r\n }\r\n }\r\n }),\r\n ],\r\n declarations: [\r\n // your components\r\n ...COMPONENTS,\r\n ...DIRECTIVES\r\n ],\r\n exports: [\r\n DragDropModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n // third libs\r\n ...THIRDMODULES,\r\n // your components\r\n ...COMPONENTS,\r\n PipeModuleModule,\r\n ...DIRECTIVES\r\n ],\r\n providers:SERVICE_PROVIDES\r\n})\r\n//SharedModule\r\n// 应 包含定义:\r\n// 应用通用自定义业务组件\r\n// 应 导出所有包含的模块。\r\n// 不应 有 providers 属性。\r\nexport class AtrSharedModule { }\r\n","import {Inject, Injectable, LOCALE_ID, TemplateRef} from '@angular/core';\r\nimport {NzDrawerService} from 'ng-zorro-antd/drawer';\r\nimport {NzModalService} from 'ng-zorro-antd/modal';\r\nimport {NzMessageService} from 'ng-zorro-antd/message';\r\nimport {HttpService} from \"../../../core/services/http.service\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BusiService {\r\n\r\n options = ToolsUtil.getHttpOptions();\r\n allowOpen = true;\r\n searchDrawerResRef:any = null;\r\n\r\n constructor(private drawerService: NzDrawerService, private httpService: HttpService, private modalService: NzModalService, @Inject(LOCALE_ID) private locale: string,\r\n private msg: NzMessageService) {\r\n\r\n }\r\n\r\n resetPass(reseturl:any, param:any, callBack:any, content = '是否重置密码', successTitle = '重置密码成功') {\r\n let confirmModal = this.modalService.confirm({\r\n nzTitle: '重置提醒',\r\n nzContent: content,\r\n nzOnOk: () => {\r\n this.httpService.post(reseturl, param, ToolsUtil.getHttpOptions()).subscribe(\r\n result => {\r\n confirmModal.destroy();\r\n //console.log(result);\r\n if (result.status == '201') {\r\n let mode = this.modalService.success({\r\n nzTitle: successTitle,\r\n nzContent: '新密码为:' + result.data.pass\r\n });\r\n mode.afterClose.subscribe(() => {\r\n if (callBack) {\r\n callBack();\r\n }\r\n })\r\n\r\n\r\n }\r\n },\r\n )\r\n }\r\n })\r\n }\r\n\r\n getCascaderDefultV(dictList:any, value:any, index:any, result:any) {\r\n dictList.forEach((v:any) => {\r\n if (value[index] == v.value) {\r\n result.push({\r\n value: v.value,\r\n label: v.label\r\n })\r\n if (v.children) {\r\n this.getCascaderDefultV(v.children, value, index + 1, result)\r\n }\r\n return;\r\n }\r\n\r\n })\r\n return result;\r\n }\r\n\r\n\r\n}\r\n","/*\n * Public API Surface of components\n */\nimport {ChinaNumPipe} from \"./core/pipe/china-num.pipe\";\nimport {CountPipe} from \"./core/pipe/count.pipe\";\nimport {OssPipe} from \"./core/pipe/oss.pipe\";\nimport {OssStaticPipe} from \"./core/pipe/ossStatic.pipe\";\nimport {RemoveHtmlPipe} from \"./core/pipe/remove-html.pipe\";\nimport {SafeUrlPipe} from \"./core/pipe/safe-url.pipe\";\n\nexport * from \"./core/animations/animations\"\nexport * from \"./core/interceptor/base.interceptor\"\nexport * from \"./core/ngz-module/cus-zorro-antd.module\"\nexport * from \"./core/animations/fly-in\"\nexport * from \"./core/animations/scroll-screen\"\nexport * from './atr-components.module';\nexport * from './lib/hello/hello.module';\nexport * from './core/auth/auth.guard';\nexport * from './core/base/atr-common';\nexport * from './core/routereuse/atr-reuse-strategy';\nexport * from \"./core/utils/ToolsUtil\"\nexport * from \"./core/utils/localstorage.util\"\nexport * from \"./core/utils/sessionstorage.util\"\nexport * from \"./core/services/dict/dict.service\"\nexport * from \"./core/services/http.service\"\nexport * from \"./core/services/menu.service\"\nexport * from \"./core/services/upload-oss.service\"\nexport * from \"./core/directive/role.directive\";\nexport * from \"./core/directive/error-img.directive\";\nexport * from \"./core/directive/hq-spin.directive\";\nexport {HelloComponent} from './lib/hello/hello.component';\n\nexport * from \"./core/pipe/pipe-module.module\"\nexport * from \"./core/pipe/is-empty.pipe\";\nexport * from \"./core/pipe/dicts.pipe\";\nexport * from \"./core/pipe/defaultVal.pipe\";\nexport * from \"./core/pipe/day.pipe\";\nexport * from \"./core/pipe/safe-compute.pipe\";\nexport * from \"./core/pipe/is-not-empty.pipe\";\nexport * from \"./core/pipe/image-pipe.pipe\";\nexport * from \"./core/pipe/safe-html.pipe\";\nexport * from \"./core/pipe/china-num.pipe\";\nexport * from \"./core/pipe/count.pipe\";\nexport * from \"./core/pipe/oss.pipe\";\nexport * from \"./core/pipe/ossStatic.pipe\";\nexport * from \"./core/pipe/remove-html.pipe\";\nexport * from \"./core/pipe/safe-url.pipe\";\n\nexport * from \"./lib/shared/atr-shared.module\"\nexport * from \"./lib/shared/form/form.component\"\nexport * from \"./lib/shared/local-upload/local-upload.component\"\nexport * from \"./lib/shared/select-tree/select-tree.component\"\nexport * from \"./lib/shared/service/busi.service\"\nexport * from \"./lib/shared/table/table-td/table-td.component\"\nexport * from \"./lib/shared/share.service\"\nexport * from \"./lib/shared/video/video.component\"\nexport * from \"./lib/shared/validators/atr-validtors\"\nexport * from \"./lib/shared/upload/upload.component\"\nexport * from \"./lib/shared/table/table.component\"\nexport * from \"./lib/shared/table/table-form-item/table-form-item.component\"\nexport * from \"./lib/shared/quill-editor/quill-editor.component\"\nexport * from \"./lib/shared/select-icons/select-icons.component\"\nexport * from \"./lib/shared/echarts/echarts.component\"\nexport * from \"./lib/shared/view-form/view-form.component\"\n\n(window as any).global = window;\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './atr-public-api';\n"],"names":["i1","i1.HttpService","i1.DictService","i2","i6","i8","i10","i11","i12.IsNotEmptyPipe","i3","i4.AtrRoleDirective","i5","i7","i4","i7.AtrErrorImgDirective","i9.AtrRoleDirective","i12","i13.SafeHtmlPipe","i14.DefaultValPipe","i15.OssImgPipe","i16.DictsPipe","i2.TableFormItemComponent","i3.LocalUploadComponent","i7.TableTdComponent","i9","i13.AtrRoleDirective","i14","i15","i16","i17.HqSpinDirective","i5.VideoComponent","i12.OssImgPipe","i2.HttpService","i1.UploadOssService","i4.HttpService","i9.QuillEditorComponent","i5.ViewFormComponent","i8.SelectIconsComponent","i13","i15.UploadComponent","i16.QuillEditorComponent","i17","i18","i19","i20","i21","i22","i23.SafeHtmlPipe","i24.DefaultValPipe"],"mappings":"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"}
1
+ {"version":3,"file":"atr-components.mjs","sources":["../../../projects/components/src/core/animations/animations.ts","../../../projects/components/src/core/base/atr-common.ts","../../../projects/components/src/core/utils/ToolsUtil.ts","../../../projects/components/src/core/utils/localstorage.util.ts","../../../projects/components/src/core/routereuse/atr-reuse-strategy.ts","../../../projects/components/src/core/services/http.service.ts","../../../projects/components/src/core/services/menu.service.ts","../../../projects/components/src/core/interceptor/base.interceptor.ts","../../../projects/components/src/core/ngz-module/cus-zorro-antd.module.ts","../../../projects/components/src/core/animations/fly-in.ts","../../../projects/components/src/core/animations/scroll-screen.ts","../../../projects/components/src/core/pipe/is-empty.pipe.ts","../../../projects/components/src/core/utils/sessionstorage.util.ts","../../../projects/components/src/core/services/dict/dict.service.ts","../../../projects/components/src/core/pipe/dicts.pipe.ts","../../../projects/components/src/core/pipe/defaultVal.pipe.ts","../../../projects/components/src/core/pipe/day.pipe.ts","../../../projects/components/src/core/pipe/safe-compute.pipe.ts","../../../projects/components/src/core/pipe/is-not-empty.pipe.ts","../../../projects/components/src/core/pipe/image-pipe.pipe.ts","../../../projects/components/src/core/pipe/safe-html.pipe.ts","../../../projects/components/src/core/pipe/china-num.pipe.ts","../../../projects/components/src/core/pipe/count.pipe.ts","../../../projects/components/src/core/pipe/oss.pipe.ts","../../../projects/components/src/core/pipe/ossStatic.pipe.ts","../../../projects/components/src/core/pipe/remove-html.pipe.ts","../../../projects/components/src/core/pipe/safe-url.pipe.ts","../../../projects/components/src/core/pipe/pipe-module.module.ts","../../../projects/components/src/core/services/upload-oss.service.ts","../../../projects/components/src/atr-components.module.ts","../../../projects/components/src/lib/hello/hello.component.ts","../../../projects/components/src/lib/hello/hello.component.html","../../../projects/components/src/lib/hello/hello.module.ts","../../../projects/components/src/core/auth/auth.guard.ts","../../../projects/components/src/core/directive/role.directive.ts","../../../projects/components/src/core/directive/error-img.directive.ts","../../../projects/components/src/core/directive/hq-spin.directive.ts","../../../projects/components/src/lib/shared/table/table-form-item/table-form-item.component.ts","../../../projects/components/src/lib/shared/table/table-form-item/table-form-item.component.html","../../../projects/components/src/lib/shared/local-upload/local-upload.component.ts","../../../projects/components/src/lib/shared/local-upload/local-upload.component.html","../../../projects/components/src/lib/shared/table/table-td/table-td.component.ts","../../../projects/components/src/lib/shared/table/table-td/table-td.component.html","../../../projects/components/src/lib/shared/table/table.component.ts","../../../projects/components/src/lib/shared/table/table.component.html","../../../projects/components/src/lib/shared/video/video.component.ts","../../../projects/components/src/lib/shared/video/video.component.html","../../../projects/components/src/lib/shared/upload/upload.component.ts","../../../projects/components/src/lib/shared/upload/upload.component.html","../../../projects/components/src/lib/shared/validators/atr-validtors.ts","../../../projects/components/src/lib/shared/share.service.ts","../../../projects/components/src/lib/shared/quill-editor/quill-editor.component.ts","../../../projects/components/src/lib/shared/quill-editor/quill-editor.component.html","../../../projects/components/src/lib/shared/view-form/view-form.component.ts","../../../projects/components/src/lib/shared/view-form/view-form.component.html","../../../projects/components/src/lib/shared/select-icons/select-icons.component.ts","../../../projects/components/src/lib/shared/select-icons/select-icons.component.html","../../../projects/components/src/lib/shared/form/form.component.ts","../../../projects/components/src/lib/shared/form/form.component.html","../../../projects/components/src/lib/shared/select-tree/select-tree.component.ts","../../../projects/components/src/lib/shared/select-tree/select-tree.component.html","../../../projects/components/src/lib/shared/echarts/echarts.component.ts","../../../projects/components/src/lib/shared/echarts/echarts.component.html","../../../projects/components/src/lib/shared/atr-shared.module.ts","../../../projects/components/src/lib/shared/service/busi.service.ts","../../../projects/components/src/atr-public-api.ts","../../../projects/components/src/atr-components.ts"],"sourcesContent":["import {\r\n animation, trigger, animateChild, group,\r\n transition, animate, style, query\r\n} from '@angular/animations';\r\n\r\nexport const transAnimation = animation([\r\n style({\r\n height: '{{ height }}',\r\n opacity: '{{ opacity }}',\r\n backgroundColor: '{{ backgroundColor }}'\r\n }),\r\n animate('{{ time }}')\r\n]);\r\n","import {HttpHeaders} from \"@angular/common/http\";\r\nimport {LocalStorageUtil} from \"../utils/localstorage.util\";\r\nimport {Template} from \"@angular/compiler/src/render3/r3_ast\";\r\nimport {TemplateRef} from \"@angular/core\";\r\n\r\nexport const atr_static_datas = {\r\n test: '1',\r\n /**\r\n * oss地址前缀\r\n */\r\n OSS_URL: '',\r\n /**\r\n * 静态地址\r\n */\r\n STATIC_OSS_URL: '',\r\n OSS_POLICY: 'third/oss/getPolicy',\r\n STORAGE_PRE: 'DQ_',\r\n menu_url: '',\r\n dic_url: 'mgr/combo',\r\n /**\r\n * 登录路由\r\n */\r\n login_router: '/p/login',\r\n SERVER_URL: '',\r\n //http head是否默认head\r\n needNormalHeade: false,\r\n getNormalHeader: (_headers: HttpHeaders) => {\r\n return _headers\r\n },\r\n getDefaultHeader: (_headers: HttpHeaders) => {\r\n _headers = _headers.set(\"x-header-atr\", \"manage\");\r\n _headers = _headers.set(\"token\", LocalStorageUtil.getUserToken());\r\n _headers = _headers.set(\"userId\", LocalStorageUtil.getUserId());\r\n // _headers = _headers.set(\"orgCode\",ToolsUtil.getOrgCode());\r\n return _headers;\r\n }\r\n};\r\n\r\nexport class commonDatas {\r\n static letters = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\"]\r\n static icons = 'step-backward,step-forward,fast-backward,fast-forward,shrink,arrows-alt,down,up,left,right,caret-up,caret-down,caret-left,caret-right,up-circle,down-circle,left-circle,right-circle,double-right,double-left,vertical-left,vertical-right,vertical-align-top,vertical-align-middle,vertical-align-bottom,forward,backward,rollback,enter,retweet,swap,swap-left,swap-right,arrow-up,arrow-down,arrow-left,arrow-right,play-circle,up-square,down-square,left-square,right-square,login,logout,menu-fold,menu-unfold,border-bottom,border-horizontal,border-inner,border-outer,border-left,border-right,border-top,border-verticle,pic-center,pic-left,pic-right,radius-bottomleft,radius-bottomright,radius-upleft,radius-upright,fullscreen,fullscreen-exit,question,question-circle,plus,plus-circle,pause,pause-circle,minus,minus-circle,plus-square,minus-square,info,info-circle,exclamation,exclamation-circle,close,close-circle,close-square,check,check-circle,check-square,clock-circle,warning,issues-close,stop,edit,form,copy,scissor,delete,snippets,diff,highlight,align-center,align-left,align-right,bg-colors,bold,italic,underline,strikethrough,redo,undo,zoom-in,zoom-out,font-colors,font-size,line-height,dash,small-dash,sort-ascending,sort-descending,drag,ordered-list,unordered-list,radius-setting,column-width,column-height,area-chart,pie-chart,bar-chart,dot-chart,line-chart,radar-chart,heat-map,fall,rise,stock,box-plot,fund,sliders,android,apple,windows,ie,chrome,github,aliwangwang,dingding,weibo-square,weibo-circle,taobao-circle,html5,weibo,twitter,wechat,youtube,alipay-circle,taobao,skype,qq,medium-workmark,gitlab,medium,linkedin,google-plus,dropbox,facebook,codepen,code-sandbox,amazon,google,codepen-circle,alipay,ant-design,ant-cloud,aliyun,zhihu,slack,slack-square,behance,behance-square,dribbble,dribbble-square,instagram,yuque,alibaba,yahoo,reddit,sketch,alert,aim,account-book,apartment,api,appstore,audio-muted,audit,bank,barcode,bars,block,book,bell,appstore-add,audio,border,borderless-table,bug,branches,camera,calculator,calendar,build,carry-out,bulb,car,clear,ci,cloud-download,cloud,cloud-sync,cloud-server,cloud-upload,code,coffee,compress,compass,comment,ci-circle,container,control,copyright,credit-card,cluster,customer-service,contacts,console-sql,dashboard,database,copyright-circle,delete-column,desktop,deployment-unit,delivered-procedure,disconnect,dingtalk,dollar-circle,dislike,delete-row,dollar,crown,download,ellipsis,environment,euro-circle,exception,expand-alt,euro,experiment,export,expand,eye-invisible,eye,file-add,field-string,file-exclamation,file-done,field-time,file-excel,field-binary,file-gif,file-image,file,file-markdown,file-ppt,file-pdf,field-number,file-search,file-sync,file-jpg,file-text,filter,file-zip,flag,folder-add,file-unknown,folder-open,fire,file-protect,folder-view,folder,fork,format-painter,frown,fund-projection-screen,gift,gateway,fund-view,gif,funnel-plot,gold,global,group,hdd,function,history,file-word,home,idcard,hourglass,heart,insert-row-below,import,insert-row-left,insert-row-above,insert-row-right,key,inbox,insurance,laptop,like,line,link,loading-3-quarters,loading,lock,man,mail,mac-command,medicine-box,layout,meh,interaction,message,menu,merge-cells,mobile,money-collect,node-index,monitor,node-expand,more,number,notification,one-to-one,percentage,phone,paper-clip,partition,picture,node-collapse,play-square,pay-circle,pound,profile,project,property-safety,poweroff,pushpin,qrcode,printer,pound-circle,pull-request,rest,read,reload,reconciliation,robot,rocket,rotate-right,safety-certificate,red-envelope,rotate-left,save,safety,search,security-scan,scan,send,setting,select,shake,shopping-cart,sisternode,shop,shopping,share-alt,schedule,skin,smile,solution,sound,split-cells,star,subnode,tags,tablet,tag,table,switcher,sync,team,tool,trademark-circle,thunderbolt,to-top,translation,trademark,trophy,ungroup,unlock,upload,transaction,user-delete,usb,user-add,usergroup-delete,video-camera-add,verified,usergroup-add,user,user-switch,video-camera,wifi,wallet,whats-app,woman,appstore'.split(',')\r\n}\r\n\r\nexport declare interface json extends Object {\r\n [key: string]: any\r\n}\r\n\r\nexport declare interface ServerPaginationStandard {\r\n currentPage: number;\r\n showCount: number;\r\n totalResult: number;\r\n totalPage?: number;\r\n}\r\n\r\nexport declare interface HttpResponseDataStandard {\r\n state: number; // 为1才是成功\r\n data: json | [{}] | object | string | any; //没有值 data: ''\r\n mess: string; //返回的消息\r\n page?: ServerPaginationStandard;\r\n}\r\n\r\n\r\nexport declare interface HttpRseponseTransformCell {\r\n [key: string]: json\r\n}\r\n\r\nexport declare interface HttpOptions {\r\n headers?: {},\r\n isJsonEncode?: boolean\r\n isUrlEncode?: boolean\r\n isAutoShowMessage?: boolean\r\n isWithCredentials?: boolean\r\n isCommonHttpHeader?: boolean\r\n}\r\n\r\nexport enum UserAction {\r\n ADD,\r\n EDIT,\r\n DEL,\r\n QUERY,\r\n SUPPERADD\r\n}\r\n\r\nexport declare interface EChartsOption {\r\n title?: any,\r\n legend?: any,\r\n grid?: any,\r\n brush?: any,\r\n toolbox?: any,\r\n tooltip?: any,\r\n dataset?: any,\r\n xAxis?: {\r\n type?: 'category',\r\n data?: string[],\r\n boundaryGap?: boolean,\r\n show?: boolean,\r\n },\r\n yAxis?: any,//{ show:false, type: 'value', minInterval: 1,}[]\r\n series?: {\r\n name?: string,\r\n data?: any[],\r\n itemStyle?: any,\r\n stack?: any,\r\n emphasis?: any,\r\n label?: any,\r\n radius?: any[],\r\n smooth?: boolean,\r\n seriesLayoutBy?: string,\r\n type?: 'bar' | 'pie' | 'line',\r\n backgroundStyle?: any\r\n }[]\r\n}\r\n\r\nexport declare interface AtrFormOpt {\r\n type: 'add' | 'edit' | 'view',\r\n layout?: \"full\" | '1l2c' | '1l1c',\r\n items: AtrFormDetail[],//表单项目\r\n}\r\n\r\nexport declare interface AtrFormDetail {\r\n label: string,\r\n type: 'cascader' | 'radio' | 'text' | 'image' | 'select' | 'date' | 'number' | 'telphone' | 'password' | 'checkbox' | 'dayRange'\r\n | 'editor' | 'textarea' | 'dateTime' | 'title' | 'dateRange' | 'selectc' | 'selectIcon' | 'treeSelect' | 'switch' | 'buttons',\r\n key: string,\r\n isHidden?: boolean,\r\n defaultValue?: any,\r\n value?: any,//编辑下原始数值\r\n dictCode?: string,//select 模式下配置\r\n span?: number,//显示宽度\r\n validators?: AtrFormValid[],//验证条件\r\n isRequired?: boolean | string,//隐性条件 无需填写, string类型格式同operator\r\n placeholder?: string,\r\n imageOpts?: ImageOpts,\r\n editContent?: string,\r\n height?: number,//editor有效\r\n disable?: boolean,\r\n lspan?: number,\r\n cspan?: number,\r\n rows?: number,//textarea 显示行数\r\n operator?: string,//显示操作符 格式 如:status|eq|0\r\n button?: formButton,\r\n readonly?: boolean,\r\n dateFormat?: string,\r\n dictList?: CusDict[],\r\n nzMode?: 'multiple' | 'tags' | 'default',\r\n selectUrl?: { url: string, convert?: string, type?: 'get' | 'post', host?: 'oss' | 'serve', isMultiple?: boolean, ignoreDictList?: boolean },\r\n treeList?: { key: string, title: string }[],\r\n ends?: string,\r\n proposal?: string,\r\n temp?: TemplateRef<any>,\r\n minNumber?: any,\r\n maxNumber?: any,\r\n notNull?: boolean\r\n nzShowTime?: boolean | { nzFormat: string },\r\n buttons?: formButton[]\r\n}\r\n\r\nexport declare interface AtrFormValid {\r\n type: 'required' | 'email' | 'telphone' | 'maxlength' | 'minlength' | 'pattern' | 'operator',\r\n errorLabel: string,\r\n maxlength?: number,\r\n minlength?: number,\r\n patternValue?: string\r\n}\r\n\r\nexport declare interface formButton {\r\n name: string,\r\n isShow: boolean,\r\n code: string,\r\n btnType?: string,\r\n operator?: string,////显示操作符 格式 如:status|eq|0\r\n}\r\n\r\nexport declare interface colorOperator {\r\n color: string,\r\n operator: string,//规则\r\n}\r\n\r\nexport declare interface AtrQueyrOpt {\r\n actions?: TableAction[],\r\n isIndex?: boolean,//是否显示序号,\r\n color?: colorOperator,//颜色\r\n checkBox?: {\r\n isShowCheckbox?: boolean,\r\n isRadio?: boolean,\r\n isForbid?: boolean,//true时只允许点击多选框选择\r\n },\r\n // isShowCheckbox?: boolean,\r\n showNum?: number,\r\n url: string,\r\n sort?: string,\r\n headers?: AtrQueryHeader[],\r\n tables: Table[],\r\n isAutoQuery?: boolean,//true时候默认触发查询\r\n defaultParams?: json,\r\n isHideQuery?: boolean\r\n // isRadio?:boolean,\r\n // isForbid?:boolean,//true时只允许点击多选框选择\r\n}\r\n\r\nexport declare interface Table {\r\n name: string,//表头名称\r\n key?: string,//实际数据字段\r\n defaultVal?: any,\r\n sortKey?: string,//是否排序\r\n sortable?: boolean,\r\n type: 'textcolor' | 'fixedText' | 'text' | 'link' | 'action' | 'image' | 'date' | 'dateTime' | 'sDateTime' | 'dict'\r\n |'innerHtml',//类型: 文字、链接、操作\r\n dictCode?: string,\r\n isShow?: boolean,\r\n width?: string,//150px\r\n actions?: TableAction[],\r\n isRowSpan?: boolean,\r\n isRight?: boolean\r\n isLeft?: boolean,\r\n color?: colorOperator,//颜色\r\n colorShow?: string,\r\n innerHtmlBack?: Function,\r\n}\r\n\r\nexport declare interface AtrQueryHeader {\r\n name: string,\r\n type: 'cascader' | 'text' | 'number' | 'checkbox' | 'select' | 'datepicker' | 'selectCus' | 'dateRange' | 'sdate' | 'treeSelect' |'dayRange',\r\n nzMode?: 'multiple' | 'tags' | 'default',\r\n key: string,\r\n isShow?: boolean,\r\n code?: string,\r\n placeholder?: string,\r\n span?: number,\r\n dictCode?: string,//字典编码\r\n dictList?: CusDict[],\r\n defaultVal?: any // 默认值\r\n maxTagCount?: number,\r\n lspan?: number,\r\n cspan?: number,\r\n disableClear?: boolean,\r\n treeList?: { key: string, title: string }[]\r\n /**\r\n * 格式\r\n * convert:'key|id,title|realName'(treeSelect)\r\n * value|id,label|name(selectCus)\r\n */\r\n selectUrl?: { url: string, convert: string, isMultiple?: boolean },//convert: newKey|oldKey,newKey|oldKey(接口返回的值)\r\n icon?: { isShow: boolean, code: string, icon: any },\r\n dateMode?: 'week' | 'month' | 'year',\r\n nzShowTime?: boolean | { nzFormat: string },\r\n nzShowNow?: boolean,\r\n}\r\n\r\nexport declare interface TableAction {\r\n name: string,\r\n code: string,\r\n url?: string,\r\n gType?: 'normal' | 'upload',\r\n data?: any,\r\n firstData?: any,\r\n datas?: any[],\r\n icon?: string,\r\n numberOfChecked?: number,\r\n type?: 'rows' | 'row',\r\n operator?: string,//显示操作符\r\n buttonType?: 'primary' | 'dashed' | 'danger' | 'default' | 'link',\r\n value?: any,\r\n withoutRole?: boolean//不需要权限控制\r\n}\r\n\r\nexport declare interface FormAction {\r\n name: string,\r\n code: string\r\n}\r\n\r\nexport declare interface Dict {\r\n id: string,\r\n typeName: string,\r\n\r\n}\r\n\r\nexport declare interface DictGroup {\r\n groupCode: string,\r\n dicts: Dict[]\r\n}\r\n\r\nexport declare interface CusDict {\r\n label: string,\r\n value: string,\r\n isSelect?: boolean//checkBox默认选中\r\n}\r\n\r\nexport declare interface ImageOpts {\r\n limit?: number,\r\n uploadDir: string,\r\n removeAction?: string,\r\n imageList?: any[],\r\n key?: string,\r\n labe?: string,\r\n fileName?: string,\r\n uploadType?: 'drag' | '',\r\n nzFileType?: string,\r\n keepName?: boolean\r\n}\r\n\r\nexport declare interface equipTestData {\r\n code: string\r\n itemName: string\r\n zhou1: number\r\n zhou2: number\r\n zhou3: number\r\n zhou4: number\r\n zhou5: number\r\n zhou6: number\r\n isWrong1?: boolean\r\n isWrong2?: boolean\r\n isWrong3?: boolean\r\n isWrong4?: boolean\r\n isWrong5?: boolean\r\n isWrong6?: boolean\r\n}\r\n\r\n\r\nexport declare interface SelectAction {\r\n name: string,\r\n code: \"ngModelChange\" | 'nzOpenChange',\r\n data?: any,\r\n key?: string,\r\n}\r\n\r\nexport interface MenuIcon {\r\n /** Type for icon */\r\n type: 'class' | 'icon' | 'iconfont' | 'img';\r\n /** Value for the icon, can be set Class Name, nz-icon of `nzType`, image */\r\n value?: string;\r\n /** Type of the ant design icon, default: `outline` */\r\n theme?: 'outline' | 'twotone' | 'fill';\r\n /** Rotate icon with animation, default: `false` */\r\n spin?: boolean;\r\n /** Only support the two-tone icon. Specific the primary color */\r\n twoToneColor?: string;\r\n /** Type of the icon from iconfont */\r\n iconfont?: string;\r\n}\r\n\r\nexport interface Menu {\r\n text?: string;\r\n link?: string;\r\n realLink?: string;\r\n isSelected?: Boolean;\r\n isOpen?: Boolean;\r\n target?: '_blank' | '_self' | '_parent' | '_top';\r\n /** Icon for the menu item, only valid for the first level menu */\r\n icon?: string | MenuIcon | null;\r\n /** Badget for the menu item when `group` is `true` */\r\n operation?: string;\r\n /** Whether shortcut menu item */\r\n seq?: number;\r\n level?: number;\r\n /** Wheter shortcut menu root node */\r\n linkType?: string;\r\n /** Whether to allow reuse, need to cooperate with the `reuse-tab` component */\r\n children?: Menu[];\r\n isVisible?: '0' | '1'\r\n}\r\n","import {json, AtrFormOpt, atr_static_datas} from '../base/atr-common';\r\nimport {formatDate} from '@angular/common';\r\nimport {HttpHeaders} from \"@angular/common/http\";\r\nimport {SimpleChange} from '@angular/core';\r\nimport {Validators} from \"@angular/forms\";\r\n\r\nexport class ToolsUtil {\r\n static getOrgCode = function () {\r\n // var orgCode = '';\r\n // var hrefs = window.location.href.split('?')\r\n // if (hrefs.length >= 2) {\r\n // var paramStr = hrefs[1];\r\n // //参数字符串里有没带 =?/#\r\n // orgCode = paramStr.split('=')[0];\r\n // orgCode = orgCode.split('?')[0];\r\n // orgCode = orgCode.split('/')[0];\r\n // orgCode = orgCode.split('#')[0];\r\n // orgCode = orgCode.split('/')[0];\r\n // }\r\n\r\n return '';\r\n }\r\n static isBase64(string:any) {\r\n let reg = /^\\s*data:([a-z]+\\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\\-._~:@\\/?%\\s]*?)\\s*$/i;\r\n return reg.test(string)\r\n }\r\n static dataURItoBlob(code:any) {\r\n const parts = code.split(';base64,');\r\n const contentType = parts[0].split(':')[1];\r\n const raw = window.atob(parts[1]);\r\n const rawLength = raw.length;\r\n const uInt8Array = new Uint8Array(rawLength);\r\n for (let i = 0; i < rawLength; ++i) {\r\n uInt8Array[i] = raw.charCodeAt(i);\r\n }\r\n return new Blob([uInt8Array], {type: contentType});\r\n }\r\n static isNull(val:any){\r\n if(val || ['boolean','string','number'].some(v => typeof val == v) ){\r\n return false\r\n }\r\n return true\r\n }\r\n static getControlsConfig(dataFrom:any, requiredRule: string[]) {\r\n let controlsConfig: any = {}\r\n for (const key in dataFrom) {\r\n if (requiredRule.some(item => item == key)) {\r\n controlsConfig[key] = [dataFrom[key], [Validators.required]]\r\n } else {\r\n controlsConfig[key] = [dataFrom[key]]\r\n }\r\n }\r\n return controlsConfig;\r\n }\r\n\r\n static httpSucces(res:any) {\r\n return res.status == 200\r\n }\r\n\r\n static diffInput(chng: SimpleChange, action: () => void): void {\r\n if (chng === undefined) return;\r\n\r\n let cur = JSON.stringify(chng.currentValue);\r\n let prev = JSON.stringify(chng.previousValue);\r\n if (cur !== prev) {\r\n action();\r\n }\r\n }\r\n\r\n static diffInputs(chng: SimpleChange[], action: () => void): void {\r\n if (chng === undefined) return;\r\n if (chng.length == 0) return;\r\n for (let i = 0; i < chng.length; i++) {\r\n let item = chng[i];\r\n if (item === undefined) continue;\r\n let cur = JSON.stringify(item.currentValue);\r\n let prev = JSON.stringify(item.previousValue);\r\n if (cur !== prev) {\r\n action();\r\n return;\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n static getYesterday(day: Date): Date {\r\n\r\n let time = day.getTime() - 1000 * 60 * 60 * 24;\r\n day = new Date(time);\r\n\r\n return day;\r\n }\r\n\r\n static getTomorrowday(day: Date): Date {\r\n let time = day.getTime() + 1000 * 60 * 60 * 24;\r\n\r\n return new Date(time);\r\n }\r\n\r\n static getNextMonth(day: Date) {\r\n let ds = new Date(day).setMonth(day.getMonth() + 1);\r\n return new Date(ds);\r\n }\r\n static getVideoCover(url: string) {\r\n return ToolsUtil.getOssUrl(url) + \"?x-oss-process=video/snapshot,t_10000,m_fast\";\r\n }\r\n static fistDayOfMonth(day: Date) {\r\n return new Date(new Date(day).setDate(1));\r\n }\r\n\r\n static lastDayOfMonth(day: Date) {\r\n return new Date(ToolsUtil.getNextMonth(day).setDate(0));\r\n }\r\n\r\n static getRandomFileName = function () {\r\n const expect = 16;\r\n let str = Math.random().toString(36).substring(2);\r\n while (str.length < expect) {\r\n str += Math.random().toString(36).substring(2);\r\n }\r\n return str.substring(0, expect);\r\n }\r\n\r\n static getFileExt = function (fileName:string) {\r\n var index = fileName.lastIndexOf(\".\");\r\n var suffix = fileName.substr(index + 1);\r\n return suffix;\r\n }\r\n\r\n static getHttpOptions(): any {\r\n return {isCommonHttpHeader: true}\r\n }\r\n\r\n\r\n static resetFormValue(opt: AtrFormOpt, json: json): AtrFormOpt {\r\n for (let item of opt.items) {\r\n item.value = \"\";\r\n // console.log(item.value);\r\n for (const key of Object.keys(json)) {\r\n if (json.hasOwnProperty(key) && json[key] != null && json[key] != undefined && key == item.key) {\r\n if (item.type == 'date')\r\n item.value = new Date(json[key]);\r\n else if (item.type == 'dateTime') {\r\n item.value = new Date(json[key]);\r\n } else\r\n item.value = json[key]\r\n }\r\n }\r\n }\r\n return opt;\r\n }\r\n\r\n static getFormatDate(date: Date): string {\r\n let month: string | number = date.getMonth() + 1;\r\n let strDate: string | number = date.getDate();\r\n\r\n if (month <= 9) {\r\n month = \"0\" + month;\r\n }\r\n\r\n if (strDate <= 9) {\r\n strDate = \"0\" + strDate;\r\n }\r\n\r\n return date.getFullYear() + \"-\" + month + \"-\" + strDate\r\n // + \" \"\r\n // + date.getHours() + \":\" + date.getMinutes() + \":\" + date.getSeconds();\r\n }\r\n\r\n static getFormatDateFull(date: Date): string {\r\n let month: string | number = date.getMonth() + 1;\r\n let strDate: string | number = date.getDate();\r\n\r\n if (month <= 9) {\r\n month = \"0\" + month;\r\n }\r\n\r\n if (strDate <= 9) {\r\n strDate = \"0\" + strDate;\r\n }\r\n\r\n return date.getFullYear() + \"-\" + month + \"-\" + strDate + \" \" + (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + \":\" + (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + \":\" + (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());\r\n }\r\n\r\n static getFormatDateWithoutS(date: Date): string {\r\n let month: string | number = date.getMonth() + 1;\r\n let strDate: string | number = date.getDate();\r\n let hours: string | number = date.getHours();\r\n let seconds: string | number = date.getMinutes();\r\n if (month <= 9) {\r\n month = \"0\" + month;\r\n }\r\n\r\n if (strDate <= 9) {\r\n strDate = \"0\" + strDate;\r\n }\r\n if (hours <= 9) {\r\n hours = \"0\" + hours;\r\n }\r\n if (seconds <= 9) {\r\n seconds = \"0\" + seconds;\r\n }\r\n return date.getFullYear() + \"-\" + month + \"-\" + strDate + \" \" + hours + \":\" + seconds;\r\n }\r\n\r\n static getOssUrl(url: string) {\r\n if (!url) {\r\n return \"\";\r\n }\r\n if (url.startsWith(\"http\")) {\r\n return url\r\n }\r\n return atr_static_datas.OSS_URL + url;\r\n }\r\n static getStaticOssUrl(url: string) {\r\n if (!url) {\r\n return \"\";\r\n }\r\n if (url.startsWith(\"http\")) {\r\n return url\r\n }\r\n return atr_static_datas.STATIC_OSS_URL + url;\r\n }\r\n static removeHtml(value:any) {\r\n if (!value) {\r\n return '';\r\n }\r\n return value.replace(/<[^<>]+>/g, '').replace(/&nbsp;/ig, '')\r\n }\r\n static mul(...numbers:any) {\r\n if (numbers.length < 2) {\r\n return;\r\n }\r\n let m = this.getDigit(numbers);\r\n let result = 1;\r\n numbers.forEach(\r\n (num:any) => {\r\n let s = num.toString();\r\n result *= Number(s.replace(\".\", \"\"));\r\n }\r\n );\r\n return result / Math.pow(10, m);\r\n }\r\n\r\n static getDigit(...numbers:any[]) {\r\n let m = 0;\r\n numbers.forEach(\r\n num => {\r\n let s = num.toString();\r\n try {\r\n m += s.split(\".\")[1].length\r\n } catch (e) {\r\n }\r\n }\r\n );\r\n return m;\r\n }\r\n\r\n static downloadImg(data:any, fileName?: string, endpoint?: string) {\r\n // // 下载类型 xls\r\n // const contentType = 'image/jpeg';\r\n // // const contentType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\r\n // // 下载类型:csv\r\n // const debug = {hello: \"world\"};\r\n // const blob = new Blob([],{type : 'image/jpeg'});\r\n // const url = window.URL.createObjectURL(blob);\r\n //\r\n // // 打开新窗口方式进行下载\r\n // // window.open(url);\r\n //\r\n // // 以动态创建a标签进行下载\r\n const a = document.createElement('a');\r\n a.href = data;\r\n // a.download = fileName;\r\n a.download = fileName?fileName:\"\" + endpoint;\r\n a.click();\r\n }\r\n\r\n static downloadXls(url:string, params?: any,) {\r\n console.log(params);\r\n if (params) {\r\n url += \"?\";\r\n for (const key of Object.keys(params)) {\r\n if (params[key]) {\r\n url += key + \"=\" + params[key] + \"&&\"\r\n }\r\n }\r\n }\r\n console.log(url);\r\n // window.open(url);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n // // a.download = fileName;\r\n // a.download = \"3321.xls\";\r\n a.click();\r\n }\r\n\r\n static pixelToNum(width:any) {\r\n const re = /px/gi;\r\n let widthStr = width.replace(re, \"\");\r\n return Number(widthStr);\r\n }\r\n\r\n static allEqual = (...array:any[]) => array.every(item => item === array[0]);\r\n\r\n /**\r\n * array所有参数满足fn函数返回true\r\n * all(x => x > 1,1,2,3); // true\r\n * @param callback\r\n * @param array\r\n */\r\n static satisfiedFn = (callback: (...args: any[]) => boolean, ...array:any[]) => array.every(callback);\r\n\r\n //全部不空为true\r\n static notEmpty(...arr:any[]): boolean {\r\n return arr.every(item => !!item)\r\n }\r\n\r\n //包含空为true\r\n static hasEmpty(...arr:any[]): boolean {\r\n return arr.some(item => !item);\r\n }\r\n\r\n static allEmpty(...arr:any[]) {\r\n return arr.every(item => !item);\r\n }\r\n\r\n static encodeValue(params:any) {\r\n Object.keys(params).forEach(key => params[key] = encodeURIComponent(params[key]));\r\n return params;\r\n }\r\n\r\n static windowHeight() {\r\n return document.documentElement.clientHeight;\r\n }\r\n static windowWidth() {\r\n\r\n return document.documentElement.clientWidth;\r\n }\r\n\r\n static modaleStyle() {\r\n return {'maxHeight': ToolsUtil.windowHeight() - 200 + 'px', 'overflow-y': 'auto'};\r\n }\r\n}\r\n","import {atr_static_datas, json} from '../base/atr-common';\r\nimport {ToolsUtil} from './ToolsUtil';\r\n\r\nexport class LocalStorageUtil {\r\n\r\n static getProvinceByValue(province: string): any {\r\n let regions: any = this.getRegion();\r\n if (regions.length == 0 || !province) {\r\n return null\r\n }\r\n regions = regions.filter((v: any) => v.value == province);\r\n return regions && regions.length > 0 ? regions[0].label : null;\r\n }\r\n\r\n static getRegion() {\r\n let str = localStorage.getItem(this.getStorageKey('REGION'));\r\n let loginInfo = null\r\n if (str) {\r\n loginInfo = JSON.parse(str);\r\n }\r\n if (loginInfo)\r\n return loginInfo\r\n else\r\n return []\r\n }\r\n\r\n static putRegion(disList: any[]): void {\r\n if (disList) {\r\n localStorage.setItem(this.getStorageKey('REGION'), JSON.stringify(disList))\r\n }\r\n }\r\n\r\n static putUser(userInfo: json): void {\r\n localStorage.removeItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode());\r\n if (userInfo) {\r\n localStorage.setItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode(), JSON.stringify(userInfo))\r\n }\r\n }\r\n\r\n static putLogin(loginInfo: json): void {\r\n localStorage.removeItem(this.getStorageKey('USER_INFO_L_') + ToolsUtil.getOrgCode());\r\n if (loginInfo) {\r\n localStorage.setItem(this.getStorageKey('USER_INFO_L_') + ToolsUtil.getOrgCode(), JSON.stringify(loginInfo))\r\n }\r\n }\r\n\r\n static getLogin(): any {\r\n let str = localStorage.getItem(this.getStorageKey('USER_INFO_L_') + ToolsUtil.getOrgCode())\r\n let loginInfo: any = null\r\n if (str) {\r\n loginInfo = JSON.parse(str);\r\n }\r\n if (loginInfo)\r\n return loginInfo\r\n else\r\n return {}\r\n }\r\n\r\n static getUser(): any {\r\n let str = localStorage.getItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode())\r\n let userInfo: any = null\r\n if (str) {\r\n userInfo = JSON.parse(str);\r\n }\r\n if (userInfo)\r\n return userInfo\r\n else\r\n return {}\r\n }\r\n\r\n static getUserToken(): string {\r\n let str = localStorage.getItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode())\r\n let userInfo: any = null\r\n if (str) {\r\n userInfo = JSON.parse(str);\r\n }\r\n if (userInfo && userInfo.token)\r\n return userInfo.token\r\n else\r\n return \"\"\r\n }\r\n\r\n static getUserId(): string {\r\n let str = localStorage.getItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode())\r\n let userInfo: any = null\r\n if (str) {\r\n userInfo = JSON.parse(str);\r\n }\r\n if (userInfo && userInfo.id)\r\n return userInfo.id\r\n else\r\n return \"\"\r\n }\r\n\r\n static removeUser() {\r\n localStorage.removeItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode());\r\n }\r\n\r\n static clearUs = () => {\r\n LocalStorageUtil.removeUser()\r\n }\r\n\r\n static getStorageKey(key: string): string {\r\n return atr_static_datas.STORAGE_PRE + key;\r\n }\r\n\r\n\r\n}\r\n","import { RouteReuseStrategy, DetachedRouteHandle, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { ComponentRef } from '@angular/core';\r\n\r\nexport class AtrReuseStrategy implements RouteReuseStrategy {\r\n\r\n public static handlers: any = {};\r\n\r\n public static outReusePath: string[] =[\"_p\",\"_p_login\",\"_s\",\"_d\",\"_d_i\"]\r\n\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n const path = this.getRouteUrl(route);\r\n if(!route.routeConfig || route.routeConfig.loadChildren || AtrReuseStrategy.outReusePath.indexOf(path) > -1 ) {\r\n // console.log(\"不需要缓存:\"+path);\r\n return false;\r\n\r\n }else{\r\n // console.log(\"需要缓存:\"+path);\r\n return true;\r\n }\r\n\r\n }\r\n /** 当路由离开时会触发。按path作为key存储路由快照&组件当前实例对象 */\r\n store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\r\n const path = this.getRouteUrl(route)\r\n AtrReuseStrategy.handlers[path] = handle;\r\n // console.log(\"添加路由缓存:\"+path)\r\n // console.log(AtrReuseStrategy.handlers);\r\n }\r\n /** 若 path 在缓存中有的都认为允许还原路由 */\r\n shouldAttach(route:ActivatedRouteSnapshot): boolean {\r\n // console.debug('shouldAttach======>', route);\r\n return !!AtrReuseStrategy.handlers[this.getRouteUrl(route)];\r\n }\r\n /** 从缓存中获取快照,若无则返回nul */\r\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle|any {\r\n if (!route.routeConfig) return null;\r\n if (route.routeConfig.loadChildren || route.routeConfig.children ) return null;\r\n if (!AtrReuseStrategy.handlers[this.getRouteUrl(route)]) {\r\n return null;\r\n }\r\n // console.debug('retrieve======>', this.getRouteUrl(route));\r\n if(AtrReuseStrategy.outReusePath.indexOf(this.getRouteUrl(route)) > -1 )\r\n return null;\r\n return AtrReuseStrategy.handlers[this.getRouteUrl(route)];\r\n }\r\n /** 进入路由触发,判断是否同一路由 */\r\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n return future.routeConfig === curr.routeConfig ;\r\n // return future.routeConfig === curr.routeConfig &&\r\n // JSON.stringify(future.params) === JSON.stringify(curr.params);\r\n }\r\n /** 删除缓存路由快照的方法 */\r\n public static deleteRouteSnapshot(path: string): void {\r\n const name = path.replace(/\\//g, '_');\r\n // console.log('删除缓存路由:' + name);\r\n // console.log(AtrReuseStrategy.handlers);\r\n // console.log(AtrReuseStrategy.handlers[name]);\r\n let handle:any = AtrReuseStrategy.handlers[name];\r\n\r\n let componentRef: ComponentRef<any> = handle ? handle['componentRef'] : null;\r\n if (componentRef) {\r\n componentRef.destroy();\r\n }\r\n if (AtrReuseStrategy.handlers[name] || AtrReuseStrategy.handlers[name] == null) {\r\n delete AtrReuseStrategy.handlers[name];\r\n }\r\n }\r\n\r\n /** 使用route的path作为快照的key */\r\n getRouteUrl(route: any) {\r\n const path = route['_routerState'].url.replace(/\\//g, '_');\r\n // const path = route['_routerState'].url.replace(/\\//g, '_')+ '_' + (route.routeConfig.loadChildren || route.routeConfig.component.toString().split('(')[0].split(' ')[1] );\r\n return path;\r\n }\r\n public static deleteAll(): void {\r\n // console.log(\"删除所有缓存路由:\"+name)\r\n\r\n for (let key in AtrReuseStrategy.handlers ) {\r\n let ref = AtrReuseStrategy.handlers[key]['componentRef'];\r\n if(ref){\r\n ref.destroy();\r\n }\r\n }\r\n AtrReuseStrategy.handlers = {};\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpRequest, HttpEventType, HttpHeaders } from \"@angular/common/http\";\r\nimport { Observable } from 'rxjs';\r\nimport {atr_static_datas, HttpOptions} from '../base/atr-common';\r\nimport { LocalStorageUtil } from '../utils/localstorage.util';\r\nimport {Md5} from \"ts-md5\";\r\nimport {environment} from \"ng-zorro-antd/core/environments\";\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n\r\n@Injectable()\r\nexport class HttpService {\r\n\r\n constructor(\r\n private httpClient: HttpClient\r\n ) {}\r\n getNormalHeader(_headers: HttpHeaders): HttpHeaders {\r\n if(!atr_static_datas.needNormalHeade){\r\n return _headers;\r\n }\r\n return atr_static_datas.getNormalHeader(_headers)\r\n }\r\n /**\r\n *\r\n * @param url\r\n * @param params\r\n */\r\n post = (url: string, params?:any, options?: HttpOptions, headers?: HttpHeaders): Observable<any> => {\r\n\r\n return new Observable<any>(observe => {\r\n // console.log(\"aaa\");\r\n let _headers = new HttpHeaders();\r\n if (options && options.hasOwnProperty('isCommonHttpHeader')) {\r\n _headers = this.getDefaultHeader(_headers);\r\n }\r\n _headers = this.getNormalHeader(_headers);\r\n if(headers){\r\n _headers = headers;\r\n }\r\n let withCredentials:any = true\r\n if (options && options.hasOwnProperty('isWithCredentials')) {\r\n withCredentials = options.isWithCredentials\r\n }\r\n // console.log(_headers);\r\n for(const key of Object.keys(params)) {\r\n if(params.hasOwnProperty(key) && typeof params[key] === 'object') {\r\n params[key] = JSON.stringify(params[key]);\r\n }\r\n }\r\n\r\n this.httpClient.post(url, null, { headers: _headers, params: params, withCredentials: withCredentials })\r\n .subscribe(result => {\r\n observe.next(result);\r\n observe.unsubscribe()\r\n }, error => {\r\n observe.error(error)\r\n observe.unsubscribe()\r\n })\r\n\r\n })\r\n }\r\n postPromAll(urls: { url: string, params?: {}, }[], options?: HttpOptions, headers?: HttpHeaders) {\r\n let param: any[] = [];\r\n urls.forEach(item => {\r\n param.push(this.postProm(item.url, item.params, options, headers));\r\n })\r\n\r\n\r\n return Promise.all(param)\r\n }\r\n\r\n postProm(url: string, params?:any, options?: HttpOptions, headers?: HttpHeaders) {\r\n\r\n // //console.log(\"aaa\");\r\n let _headers = new HttpHeaders();\r\n if (options && options.hasOwnProperty('isCommonHttpHeader')) {\r\n _headers = this.getDefaultHeader(_headers);\r\n }\r\n _headers = this.getNormalHeader(_headers);\r\n if (headers) {\r\n _headers = headers;\r\n }\r\n let withCredentials:any = true\r\n if (options && options.hasOwnProperty('isWithCredentials')) {\r\n withCredentials = options.isWithCredentials\r\n }\r\n let postParams: any = {};\r\n\r\n for (const key of Object.keys(params)) {\r\n if (params[key] !== null && params[key] !== '' && params[key] !== undefined) {\r\n if (params.hasOwnProperty(key) && typeof params[key] === 'object') {\r\n postParams[key] = JSON.stringify(params[key])\r\n } else {\r\n postParams[key] = params[key];\r\n }\r\n }\r\n\r\n }\r\n\r\n return this.httpClient.post(url, null, {\r\n headers: _headers,\r\n params: postParams,\r\n withCredentials: withCredentials\r\n })\r\n .toPromise();\r\n\r\n }\r\n postBody = (url: string, params?:any, options?: HttpOptions, headers?: {}): Observable<any> => {\r\n\r\n return new Observable<any>(observe => {\r\n // console.log(\"aaa\");\r\n let _headers = new HttpHeaders();\r\n if (options && options.hasOwnProperty('isCommonHttpHeader')) {\r\n _headers = this.getDefaultHeader(_headers);\r\n }\r\n _headers = this.getNormalHeader(_headers);\r\n let withCredentials:any = true\r\n if (options && options.hasOwnProperty('isWithCredentials')) {\r\n withCredentials = options.isWithCredentials\r\n }\r\n // console.log(_headers);\r\n /*for(const key of Object.keys(params)) {\r\n if(params.hasOwnProperty(key) && typeof params[key] === 'object') {\r\n params[key] = JSON.stringify(params[key])\r\n }\r\n }*/\r\n\r\n this.httpClient.post(url, params, { headers: _headers, params: {}, withCredentials: withCredentials })\r\n .subscribe(result => {\r\n observe.next(result);\r\n observe.unsubscribe()\r\n }, error => {\r\n observe.error(error)\r\n observe.unsubscribe()\r\n })\r\n\r\n })\r\n }\r\n\r\n getDefaultHeader(_headers:HttpHeaders):HttpHeaders{\r\n return atr_static_datas.getDefaultHeader(_headers)\r\n }\r\n get = (url: string, params?: {}, options?: HttpOptions): Observable<any> => {\r\n\r\n return new Observable<any>(observe => {\r\n\r\n let _headers = new HttpHeaders();\r\n if (options && options.hasOwnProperty('isCommonHttpHeader')) {\r\n _headers = this.getDefaultHeader(_headers);\r\n }\r\n _headers = this.getNormalHeader(_headers);\r\n let withCredentials:any = false\r\n if (options && options.hasOwnProperty('isWithCredentials')) {\r\n withCredentials = options.isWithCredentials\r\n }\r\n // console.log(options)\r\n // console.log(_headers)\r\n this.httpClient.get(url,{ headers: _headers, params: params, withCredentials: withCredentials }).subscribe(result => {\r\n observe.next(result);\r\n observe.unsubscribe()\r\n }, error => {\r\n observe.error(error)\r\n observe.unsubscribe()\r\n })\r\n\r\n })\r\n }\r\n\r\n upload = (method:any, url:any, formData: FormData, progress:any): Observable<any> => {\r\n let req = new HttpRequest(method, url, formData, { reportProgress: true })\r\n return new Observable(observe => {\r\n this.httpClient.request(req).subscribe((event:any) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n if (typeof progress == 'function') {\r\n event['progress'] = parseInt(event.loaded / event.total * 100 + '')\r\n progress(event);\r\n }\r\n }\r\n if (event.type === HttpEventType.Response) {\r\n observe.next(event.body);\r\n }\r\n }, error => {\r\n observe.error(error)\r\n observe.unsubscribe()\r\n })\r\n })\r\n }\r\n\r\n private transformString = (objItem:any) => {\r\n var list :any= [];\r\n for (const key in objItem) {\r\n var str = '';\r\n let item = objItem[key]\r\n if (item instanceof Array) {\r\n //数组\r\n var arr:any = [];\r\n item.forEach((v, k) => {\r\n var s = encodeURIComponent(key) + '[' + k + ']';\r\n arr.push(this.parseObj(v, s));\r\n })\r\n str = arr.join('&');\r\n } else if (item instanceof Object) {\r\n //json\r\n var arr:any = [];\r\n for (const k in item) {\r\n let v = item[k]\r\n var s = encodeURIComponent(key) + '.' + encodeURIComponent(k);\r\n arr.push(this.parseObj(v, s));\r\n }\r\n str = arr.join('&');\r\n } else {\r\n //普通类型\r\n str = encodeURIComponent(key) + '=' + encodeURIComponent(item);\r\n }\r\n list.push(str);\r\n }\r\n return list.join('&');\r\n }\r\n\r\n private parseObj = (obj:any, str:any) => {\r\n if (obj instanceof Array) {\r\n //数组\r\n var arr:any = [];\r\n obj.forEach((v, k) => {\r\n var s = str + '[' + k + ']' + '=' + encodeURIComponent(v);\r\n arr.push(this.parseObj(v, s));\r\n })\r\n str = arr.join('&');\r\n } else if (obj instanceof Object) {\r\n //json\r\n var arr :any= [];\r\n for (const k in obj) {\r\n let v = obj[k]\r\n var s = str + '.' + encodeURIComponent(k);\r\n arr.push(this.parseObj(v, s));\r\n }\r\n str = arr.join('&');\r\n } else {\r\n //普通类型\r\n str = str + '=' + encodeURIComponent(obj);\r\n }\r\n return str;\r\n }\r\n\r\n getOss = (url: string, params?: {}, responseType?:any, noError = false): Observable<any> => {\r\n return new Observable<any>(observe => {\r\n if (url == undefined) {\r\n observe.next();\r\n observe.unsubscribe()\r\n return\r\n }\r\n console.log(\"url\",url)\r\n if (!url.startsWith(\"http\")) {\r\n url = atr_static_datas.OSS_URL + url;\r\n }\r\n let _headers = new HttpHeaders();\r\n let withCredentials = false\r\n // //console.log(_headers)\r\n if (url.endsWith(\".o\") && !params) {\r\n url += \"?v=\" + new Date().getTime();\r\n }\r\n if (noError) {\r\n if (url.indexOf('?') > 0) {\r\n url += \"&noError\"\r\n } else {\r\n url += \"?noError\"\r\n }\r\n }\r\n this.httpClient.get(url, {\r\n headers: _headers,\r\n params: params,\r\n withCredentials: withCredentials,\r\n responseType: responseType || 'text'\r\n }).subscribe(result => {\r\n observe.next(result);\r\n observe.unsubscribe()\r\n }, error => {\r\n observe.error(error)\r\n observe.unsubscribe()\r\n })\r\n\r\n })\r\n }\r\n downloadXls(url: string, params?: {}) {\r\n this.post(\"third/auth/getAuthToken\", {}, ToolsUtil.getHttpOptions()).subscribe(\r\n result => {\r\n let thridParma = {\r\n \"reqMethod\": \"auth\",\r\n \"sign\": result.data,\r\n \"x-header-atr\": \"web\",\r\n token: LocalStorageUtil.getUserToken(),\r\n userId: LocalStorageUtil.getUserId()\r\n }\r\n params = Object.assign(params, thridParma);\r\n ToolsUtil.downloadXls(atr_static_datas.SERVER_URL + url, params);\r\n },\r\n error => {\r\n })\r\n }\r\n}\r\n\r\n\r\n","import {Injectable, EventEmitter} from '@angular/core';\r\nimport {Observable} from 'rxjs';\r\nimport {atr_static_datas, Menu} from '../base/atr-common';\r\nimport {HttpService} from \"./http.service\";\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class MenuService {\r\n\r\n private data: Menu[] = [];\r\n private menuChange: EventEmitter<Menu[]>\r\n private urlChange: EventEmitter<any>;\r\n\r\n private isLoadMenu: 'unload' | 'loading' | 'loaded' = 'unload';\r\n\r\n // private Menu\r\n constructor(\r\n private httpService: HttpService,\r\n ) {\r\n this.menuChange = new EventEmitter()\r\n this.urlChange = new EventEmitter()\r\n }\r\n\r\n gotoUrl(routeParam: { url: string, paramUrl: string, title?: string }) {\r\n this.urlChange.emit(routeParam);\r\n }\r\n\r\n getUrlChange(): any {\r\n return this.urlChange;\r\n }\r\n\r\n getCurMenu(url: string): Observable<Menu> {\r\n return new Observable<any>(observe => {\r\n if (this.isLoadMenu == \"loaded\") {\r\n observe.next(this.getMenuByUrl(this.data, url));\r\n observe.unsubscribe();\r\n } else {\r\n this.loadMenus().subscribe(\r\n result => {\r\n observe.next(this.getMenuByUrl(this.data, url));\r\n observe.unsubscribe();\r\n },\r\n error => {\r\n // console.log(error);\r\n }\r\n )\r\n }\r\n })\r\n\r\n }\r\n\r\n getMenuByUrl(menus: any, url: string): Menu {\r\n let tempMenu: Menu | any = null;\r\n for (let menu of menus) {\r\n if (this.isLoadUrlEqMenu(menu.link, url)) {\r\n tempMenu = menu;\r\n break;\r\n } else if (menu.children && menu.children.length > 0) {\r\n if (this.getMenuByUrl(menu.children, url) != null) {\r\n tempMenu = this.getMenuByUrl(menu.children, url);\r\n break;\r\n }\r\n }\r\n }\r\n return tempMenu\r\n }\r\n\r\n loadMenus(): Observable<any> {\r\n return new Observable<any>(observe => {\r\n if (!atr_static_datas.menu_url) {\r\n alert('请配置 获取菜单详情接口 atr_static_datas.menu_url')\r\n return\r\n }\r\n if (this.isLoadMenu == 'unload') {\r\n this.isLoadMenu = 'loading';\r\n let options = {\r\n isCommonHttpHeader: true\r\n };\r\n this.httpService.post(atr_static_datas.menu_url, {}, {\r\n isCommonHttpHeader: true\r\n }).subscribe(\r\n (result: any) => {\r\n if (result.status == 200) {\r\n this.isLoadMenu = 'loaded';\r\n this.data = result.data;\r\n } else {\r\n this.isLoadMenu = 'unload';\r\n this.data = [];\r\n }\r\n observe.next(this.data);\r\n this.menuChange.emit(this.data);\r\n observe.unsubscribe()\r\n },\r\n (error: any) => {\r\n observe.error(error)\r\n observe.unsubscribe()\r\n }\r\n )\r\n } else if (this.isLoadMenu == 'loading') {\r\n // console.log(\"MenuChange999\");\r\n this.menuChange.subscribe((menus: Menu[]) => {\r\n // console.log(\"MenuChange\");\r\n observe.next(menus);\r\n observe.unsubscribe()\r\n })\r\n } else {\r\n observe.next(this.data);\r\n observe.unsubscribe()\r\n }\r\n })\r\n }\r\n\r\n isLoadUrlEqMenu(menuUrl: string, url: string): boolean {\r\n let isTrue = false;\r\n if (menuUrl.indexOf(\"/:id\") > -1) {\r\n let menuUrls = menuUrl.split(\"/:id\");\r\n if (url.indexOf(menuUrls[0]) == 0) {\r\n if (menuUrl.split(\"/\").length == url.split(\"/\").length) {\r\n isTrue = true;\r\n }\r\n }\r\n } else if (menuUrl == url) {\r\n isTrue = true;\r\n }\r\n return isTrue;\r\n }\r\n\r\n /**\r\n * 清空菜单\r\n */\r\n clear() {\r\n this.isLoadMenu = 'unload';\r\n this.data = [];\r\n }\r\n\r\n}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse, HttpResponseBase, HttpResponse, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of ,throwError } from 'rxjs';\r\nimport { mergeMap, catchError } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\nimport { NzNotificationService } from 'ng-zorro-antd/notification';\r\nimport {NzMessageService} from 'ng-zorro-antd/message';\r\nimport {LocalStorageUtil} from \"../utils/localstorage.util\";\r\nimport {environment} from \"ng-zorro-antd/core/environments\";\r\nimport {AtrReuseStrategy} from \"../routereuse/atr-reuse-strategy\";\r\nimport {MenuService} from \"../services/menu.service\";\r\nimport {atr_static_datas} from \"../base/atr-common\";\r\n\r\nconst CODEMESSAGE = {\r\n 200: '服务器成功返回请求的数据。',\r\n 201: '新建或修改数据成功。',\r\n 202: '一个请求已经进入后台排队(异步任务)。',\r\n 204: '删除数据成功。',\r\n 400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',\r\n 401: '用户没有权限(令牌、用户名、密码错误)。',\r\n 403: '用户得到授权,但是访问是被禁止的。',\r\n 404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',\r\n 406: '请求的格式不可得。',\r\n 410: '请求的资源被永久删除,且不会再得到的。',\r\n 422: '当创建一个对象时,发生一个验证错误。',\r\n 500: '服务器发生错误,请检查服务器。',\r\n 502: '网关错误。',\r\n 503: '服务不可用,服务器暂时过载或维护。',\r\n 504: '网关超时。',\r\n};\r\n\r\n@Injectable()\r\nexport class BaseInterceptor implements HttpInterceptor{\r\n constructor(private injector: Injector) {}\r\n private get notification(): NzNotificationService {\r\n return this.injector.get(NzNotificationService);\r\n }\r\n private get message(): NzMessageService {\r\n return this.injector.get(NzMessageService);\r\n }\r\n private get menuService(): MenuService{\r\n return this.injector.get(MenuService)\r\n }\r\n\r\n private goTo(url: string,isClearCache:boolean) {\r\n // console.log(\"需要跳转到页面:\")\r\n // console.log(url);\r\n setTimeout(() => this.injector.get(Router).navigateByUrl(url));\r\n if(isClearCache){\r\n setTimeout(()=> AtrReuseStrategy.deleteAll(),50);\r\n }\r\n }\r\n\r\n private checkStatus(ev: HttpResponseBase) {\r\n if ((ev.status >= 200 && ev.status < 300) || ev.status === 401) {\r\n return;\r\n }\r\n // console.log(ev.status);\r\n // const errortext = CODEMESSAGE[ev.status] || ev.statusText;\r\n this.message.error('网络错误,请稍后重试:' + ev.status);\r\n }\r\n private handleData(ev: HttpResponseBase): Observable<any> {\r\n this.checkStatus(ev);\r\n // 业务处理:一些通用操作\r\n switch (ev.status) {\r\n case 200:\r\n // TODO status\r\n // 业务层级错误处理,以下是假定restful有一套统一输出格式(指不管成功与否都有相应的数据格式)情况下进行处理\r\n // 例如响应内容:\r\n // 错误内容:{ status: 1, msg: '非法参数' }\r\n // 正确内容:{ status: 0, response: { } }\r\n // 则以下代码片断可直接适用\r\n if (ev instanceof HttpResponse) {\r\n const body: any = ev.body;\r\n if (body && body.status === 401) {\r\n this.notification.error(`未登录或登录已过期,请重新登录。`, ``,{\r\n nzKey: 'outTime'\r\n });\r\n // TODO 清空 token 信息\r\n LocalStorageUtil.clearUs()\r\n this.menuService.clear();\r\n this.goTo('/p/login',true);\r\n } else if(body && body.status === 1024){\r\n // 或者依然保持完整的格式\r\n this.message.error(body.message);\r\n } else if(body && body.status === 1025){\r\n // 或者依然保持完整的格式\r\n this.message.error(`参数为空。`);\r\n } else if(body && body.status === 503){\r\n // 或者依然保持完整的格式\r\n this.message.error(body.message);\r\n }else if(body && body.status === 204){\r\n // 或者依然保持完整的格式\r\n this.message.success(body.message);\r\n }else if(body && body.status === 201){\r\n // 或者依然保持完整的格式\r\n this.message.success(body.message);\r\n }else{\r\n return of(ev);\r\n }\r\n }\r\n break;\r\n case 401:\r\n this.notification.error(`未登录或登录已过期,请重新登录。`, ``,{\r\n nzKey: 'outTime'\r\n });\r\n // TODO 清空 token 信息\r\n\r\n // this.goTo('/p/login',false);\r\n break;\r\n case 403:\r\n case 404:\r\n case 500:\r\n this.goTo(`/exception/${ev.status}`,false);\r\n break;\r\n default:\r\n if (ev instanceof HttpErrorResponse) {\r\n // console.warn('未可知错误,大部分是由于后端不支持CORS或无效配置引起', ev);\r\n return throwError(ev);\r\n }\r\n break;\r\n }\r\n return of(ev);\r\n }\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if(!atr_static_datas.SERVER_URL){\r\n alert('请配置ip atr_static_datas.SERVER_URL')\r\n return new Observable();\r\n }\r\n // 统一加上服务端前缀\r\n let url = req.url;\r\n if (!url.startsWith('https://') && !url.startsWith('http://')) {\r\n url = atr_static_datas.SERVER_URL + url;\r\n req = req.clone({ url });\r\n }\r\n\r\n return next.handle(req).pipe(\r\n mergeMap((event: any) => {\r\n // 允许统一对请求错误处理\r\n if (event instanceof HttpResponseBase) return this.handleData(event);\r\n // 若一切都正常,则后续操作\r\n return of(event);\r\n }),\r\n catchError((err: HttpErrorResponse) => this.handleData(err)),\r\n );\r\n }\r\n}\r\n","\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { NzAffixModule } from 'ng-zorro-antd/affix';\r\nimport { NzAlertModule } from 'ng-zorro-antd/alert';\r\nimport { NzAnchorModule } from 'ng-zorro-antd/anchor';\r\nimport { NzAutocompleteModule } from 'ng-zorro-antd/auto-complete';\r\nimport { NzAvatarModule } from 'ng-zorro-antd/avatar';\r\nimport { NzBackTopModule } from 'ng-zorro-antd/back-top';\r\nimport { NzBadgeModule } from 'ng-zorro-antd/badge';\r\nimport { NzBreadCrumbModule } from 'ng-zorro-antd/breadcrumb';\r\nimport { NzButtonModule } from 'ng-zorro-antd/button';\r\nimport { NzCalendarModule } from 'ng-zorro-antd/calendar';\r\nimport { NzCardModule } from 'ng-zorro-antd/card';\r\nimport { NzCarouselModule } from 'ng-zorro-antd/carousel';\r\nimport { NzCascaderModule } from 'ng-zorro-antd/cascader';\r\nimport { NzCheckboxModule } from 'ng-zorro-antd/checkbox';\r\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\r\nimport { NzCommentModule } from 'ng-zorro-antd/comment';\r\nimport { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';\r\nimport { NzTransButtonModule } from 'ng-zorro-antd/core/trans-button';\r\nimport { NzWaveModule } from 'ng-zorro-antd/core/wave';\r\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\r\nimport { NzDescriptionsModule } from 'ng-zorro-antd/descriptions';\r\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\r\nimport { NzDrawerModule } from 'ng-zorro-antd/drawer';\r\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\r\nimport { NzEmptyModule } from 'ng-zorro-antd/empty';\r\nimport { NzFormModule } from 'ng-zorro-antd/form';\r\nimport { NzGridModule } from 'ng-zorro-antd/grid';\r\nimport { NzI18nModule } from 'ng-zorro-antd/i18n';\r\nimport { NzIconModule } from 'ng-zorro-antd/icon';\r\nimport { NzInputModule } from 'ng-zorro-antd/input';\r\nimport { NzInputNumberModule } from 'ng-zorro-antd/input-number';\r\nimport { NzLayoutModule } from 'ng-zorro-antd/layout';\r\nimport { NzListModule } from 'ng-zorro-antd/list';\r\nimport { NzMentionModule } from 'ng-zorro-antd/mention';\r\nimport { NzMenuModule } from 'ng-zorro-antd/menu';\r\nimport { NzMessageModule } from 'ng-zorro-antd/message';\r\nimport { NzModalModule } from 'ng-zorro-antd/modal';\r\nimport { NzNotificationModule } from 'ng-zorro-antd/notification';\r\nimport { NzPageHeaderModule } from 'ng-zorro-antd/page-header';\r\nimport { NzPaginationModule } from 'ng-zorro-antd/pagination';\r\nimport { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';\r\nimport { NzPopoverModule } from 'ng-zorro-antd/popover';\r\nimport { NzProgressModule } from 'ng-zorro-antd/progress';\r\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\r\nimport { NzRateModule } from 'ng-zorro-antd/rate';\r\nimport { NzResultModule } from 'ng-zorro-antd/result';\r\nimport { NzSelectModule } from 'ng-zorro-antd/select';\r\nimport { NzSkeletonModule } from 'ng-zorro-antd/skeleton';\r\nimport { NzSliderModule } from 'ng-zorro-antd/slider';\r\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\r\nimport { NzStatisticModule } from 'ng-zorro-antd/statistic';\r\nimport { NzStepsModule } from 'ng-zorro-antd/steps';\r\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\r\nimport { NzTableModule } from 'ng-zorro-antd/table';\r\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\r\nimport { NzTagModule } from 'ng-zorro-antd/tag';\r\nimport { NzTimePickerModule } from 'ng-zorro-antd/time-picker';\r\nimport { NzTimelineModule } from 'ng-zorro-antd/timeline';\r\nimport { NzToolTipModule } from 'ng-zorro-antd/tooltip';\r\nimport { NzTransferModule } from 'ng-zorro-antd/transfer';\r\nimport { NzTreeModule } from 'ng-zorro-antd/tree';\r\nimport { NzTreeSelectModule } from 'ng-zorro-antd/tree-select';\r\nimport { NzTypographyModule } from 'ng-zorro-antd/typography';\r\nimport { NzUploadModule } from 'ng-zorro-antd/upload';\r\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\r\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport { NzSpaceModule } from 'ng-zorro-antd/space';\r\nimport {NzImageModule} from 'ng-zorro-antd/image';\r\n\r\n@NgModule({\r\n exports: [\r\n CommonModule,\r\n NzSpaceModule,\r\n NzAffixModule,\r\n NzAlertModule,\r\n NzAnchorModule,\r\n NzAutocompleteModule,\r\n NzAvatarModule,\r\n NzBackTopModule,\r\n NzBadgeModule,\r\n NzButtonModule,\r\n NzBreadCrumbModule,\r\n NzCalendarModule,\r\n NzCardModule,\r\n NzCarouselModule,\r\n NzCascaderModule,\r\n NzCheckboxModule,\r\n NzCollapseModule,\r\n NzCommentModule,\r\n NzDatePickerModule,\r\n NzDescriptionsModule,\r\n NzDividerModule,\r\n NzDrawerModule,\r\n NzDropDownModule,\r\n NzEmptyModule,\r\n NzFormModule,\r\n NzGridModule,\r\n NzI18nModule,\r\n NzIconModule,\r\n NzInputModule,\r\n NzInputNumberModule,\r\n NzLayoutModule,\r\n NzListModule,\r\n NzMentionModule,\r\n NzMenuModule,\r\n NzMessageModule,\r\n NzModalModule,\r\n NzNoAnimationModule,\r\n NzNotificationModule,\r\n NzPageHeaderModule,\r\n NzPaginationModule,\r\n NzPopconfirmModule,\r\n NzPopoverModule,\r\n NzProgressModule,\r\n NzRadioModule,\r\n NzRateModule,\r\n NzResultModule,\r\n NzSelectModule,\r\n NzSkeletonModule,\r\n NzSliderModule,\r\n NzSpinModule,\r\n NzStatisticModule,\r\n NzStepsModule,\r\n NzSwitchModule,\r\n NzTableModule,\r\n NzTabsModule,\r\n NzTagModule,\r\n NzTimePickerModule,\r\n NzTimelineModule,\r\n NzToolTipModule,\r\n NzTransButtonModule,\r\n NzTransferModule,\r\n NzTreeModule,\r\n NzTreeSelectModule,\r\n NzTypographyModule,\r\n NzUploadModule,\r\n NzWaveModule,\r\n NzResizableModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NzImageModule\r\n ]\r\n})\r\nexport class CusNgZorroAntdModule {\r\n\r\n}\r\n\r\n\r\n","import { trigger, state, style, transition, animate, keyframes } from '@angular/animations';\r\n\r\nexport const flyIn = trigger('flyIn', [\r\n state('in', style({transform: 'translateX(0)'})),\r\n transition('void => *', [\r\n animate(3000, keyframes([\r\n style({opacity: 0, transform: 'translateX(-100%)', offset: 0}),\r\n style({opacity: 1, transform: 'translateX(250px)', offset: 0.3}),\r\n style({opacity: 1, transform: 'translateX(0)', offset: 1.0})\r\n ]))\r\n ]),\r\n transition('* => void', [\r\n animate(3000, keyframes([\r\n style({opacity: 1, transform: 'translateX(0)', offset: 0}),\r\n style({opacity: 1, transform: 'translateX(-250px)', offset: 0.7}),\r\n style({opacity: 0, transform: 'translateX(100%)', offset: 1.0})\r\n ]))\r\n ])\r\n]);\r\n","import { trigger, state, style, transition, animate, keyframes } from '@angular/animations';\r\n\r\nexport const scrollScreen = trigger('scrollScreen', [\r\n state('void', style({ opacity: 1, transform: 'translate3d(0, 0, 0)', offset: 1.0 })),\r\n state('start', style({ opacity: 1, transform: 'translate3d(0, 0, 0)', offset: 1.0 })),\r\n state('end', style({ opacity: 1, transform: 'translate3d(0, -100%, 0)', offset: 0 })),\r\n transition('start => end', [\r\n animate(50000)\r\n ])\r\n // state('void', style({ opacity: 1, transform: 'translate3d(0, 0, 0)', offset: 1.0 })),\r\n // state('start', style({ opacity: 1, transform: 'translate3d(0, 0, 0)', offset: 1.0 })),\r\n // state('end', style({ opacity: 1, transform: 'translate3d(0, -200px, 0)', offset: 0 })),\r\n // transition('start => end', [\r\n // animate(1000)\r\n // ])\r\n // state('inactive', style({ transform: 'translate3d(0, 0, 0)' })),\r\n // transition('* <=> *', [\r\n // animate(3000, keyframes([\r\n // style({ opacity: 0, transform: 'translate3d(0, -200px, 0)', offset: 0 }),\r\n // style({ opacity: 1, transform: 'translate3d(0, 0, 0)', offset: 1.0 })\r\n // ]))\r\n // ]),\r\n]);\r\n\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n\r\n@Pipe({\r\n name: 'isEmpty'\r\n})\r\nexport class IsEmptyPipe implements PipeTransform {\r\n\r\n transform(value: any, defaultVal?: any): any {\r\n if (defaultVal) {\r\n return ToolsUtil.isNull(value) ? defaultVal : 0;\r\n }\r\n return ToolsUtil.isNull(value)\r\n }\r\n\r\n}\r\n","import {json, DictGroup, atr_static_datas} from '../base/atr-common';\r\nimport {ToolsUtil} from './ToolsUtil';\r\n\r\nexport class SessionStorageUtil {\r\n static getStorageKey(key: string): string {\r\n return atr_static_datas.STORAGE_PRE + key;\r\n }\r\n\r\n static putDictGroup(dictGroup: DictGroup): void {\r\n let str = sessionStorage.getItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode());\r\n let dicts: json = {};\r\n // console.log(\"fff\");\r\n if (str) {\r\n dicts = JSON.parse(str);\r\n }\r\n dicts[dictGroup.groupCode] = dictGroup;\r\n if (dicts) {\r\n sessionStorage.setItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode(), JSON.stringify(dicts))\r\n }\r\n }\r\n\r\n static getDictGroupByCode(code: string): DictGroup | any {\r\n // console.log(\"jjj\")\r\n let str = sessionStorage.getItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode());\r\n let dicts: any = null;\r\n if (str) {\r\n dicts = JSON.parse(str);\r\n }\r\n if (dicts && dicts.hasOwnProperty(code))\r\n return dicts[code];\r\n else\r\n return null\r\n }\r\n\r\n static resetDict() {\r\n sessionStorage.removeItem(this.getStorageKey('USER_INFO_') + ToolsUtil.getOrgCode())\r\n }\r\n\r\n static put(key: any, value: any) {\r\n sessionStorage.setItem(this.getStorageKey(key), JSON.stringify(value))\r\n }\r\n\r\n static get(key: any) {\r\n let str = sessionStorage.getItem(this.getStorageKey(key));\r\n let value: any = null;\r\n if (str) {\r\n value = JSON.parse(str);\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpService } from '../http.service';\r\nimport { Observable } from 'rxjs';\r\nimport {atr_static_datas, DictGroup} from '../../base/atr-common';\r\nimport { SessionStorageUtil } from '../../utils/sessionstorage.util';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DictService {\r\n\r\n constructor( private httpService: HttpService) {\r\n }\r\n getCodeName(code: string, value: string) {\r\n let dict = SessionStorageUtil.getDictGroupByCode(code);\r\n if (dict) {\r\n let cur = dict.dicts.filter((v:any) => v.id == value)[0]\r\n return cur ? cur.typeName : value;\r\n }\r\n return value;\r\n }\r\n getCodeNameSync(key:any,code: string, selectUrl?:any) {\r\n this.getDictByCodeSync(code, selectUrl)\r\n return this.getCodeName(code,key)\r\n }\r\n\r\n getByCode(code: string, selectUrl?:any): DictGroup {\r\n this.getDictByCodeSync(code, selectUrl);\r\n return SessionStorageUtil.getDictGroupByCode(code);\r\n }\r\n\r\n private async getDictByCodeSync(code: string, selectUrl?:any) {\r\n await this.getDictBycode(code, selectUrl).subscribe()\r\n }\r\n getDicBycodeBase(code:any, selectUrl?:any) {\r\n return new Observable<any>(observe => {\r\n let options = {\r\n isCommonHttpHeader: true\r\n };\r\n this.httpService.post(selectUrl || atr_static_datas.dic_url, {groupCode: code}, options).subscribe(\r\n result => {\r\n let data: DictGroup|any = null;\r\n if (result.status == 200) {\r\n data = {\r\n groupCode: code,\r\n dicts: result.data\r\n };\r\n SessionStorageUtil.putDictGroup(data);\r\n }\r\n observe.next(data);\r\n observe.unsubscribe()\r\n },\r\n error => {\r\n observe.error(error);\r\n observe.unsubscribe()\r\n }\r\n )\r\n })\r\n }\r\n getDictBycode(code: string, selectUrl?:any): Observable<DictGroup> {\r\n // //console.log(code);\r\n return new Observable<any>(observe => {\r\n let dict = SessionStorageUtil.getDictGroupByCode(code);\r\n if (dict) {\r\n observe.next(dict);\r\n observe.unsubscribe()\r\n } else {\r\n this.getDicBycodeBase(code, selectUrl).subscribe(result => {\r\n observe.next(result);\r\n observe.unsubscribe()\r\n }, error => {\r\n observe.next(error);\r\n observe.unsubscribe()\r\n })\r\n\r\n }\r\n })\r\n }\r\n modifyByCode(code :string){\r\n this.httpService.post(atr_static_datas.dic_url,{groupCode:code},{isCommonHttpHeader:true}).subscribe(\r\n result => {\r\n let data:DictGroup |any = null;\r\n if(result.status == 200){\r\n data = {\r\n groupCode:code,\r\n dicts:result.data\r\n };\r\n SessionStorageUtil.putDictGroup(data);\r\n }\r\n },\r\n )\r\n }\r\n reset(){\r\n SessionStorageUtil.resetDict();\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {DictService} from \"../services/dict/dict.service\";\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n@Pipe({\r\n name: 'dicts'\r\n})\r\nexport class DictsPipe implements PipeTransform {\r\n constructor(private dictService: DictService) {\r\n }\r\n\r\n transform(value: any, dictCode: any) {\r\n if (ToolsUtil.isNull(dictCode)) {\r\n return value\r\n }\r\n return this.dictService.getCodeNameSync(value, dictCode)\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n\r\n@Pipe({\r\n name: 'defVal'\r\n})\r\nexport class DefaultValPipe implements PipeTransform {\r\n\r\n transform(value: any, defaultVal:any): any {\r\n if(ToolsUtil.isNull(defaultVal)){\r\n return value\r\n }\r\n if(ToolsUtil.isNull(value)){\r\n return defaultVal;\r\n }\r\n return value ;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'day'\r\n})\r\nexport class DayPipe implements PipeTransform {\r\n TIME_OF_DAY:number = 24*60*60*1000;\r\n\r\n transform(value: any, ...args: any[]): any {\r\n if(!value) return value;\r\n if(typeof value !== 'number') {\r\n throw new Error('Invalid pipe argument for WelcomePipe');\r\n }\r\n return parseInt(value/this.TIME_OF_DAY+\"\") ;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DefaultValPipe } from './defaultVal.pipe';\r\n\r\n@Pipe({\r\n name: 'safeCompute'\r\n})\r\nexport class SafeComputePipe implements PipeTransform {\r\n\r\n transform(first: number, second: number, isParseInt?: boolean ): any {\r\n let isE = new DefaultValPipe();\r\n second = isE.transform(second,0);\r\n if(second == 0){\r\n return 0;\r\n }\r\n let result = isE.transform(first,0) / second + \"\";\r\n\r\n return isParseInt ? parseInt(result) : result ;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n\r\n@Pipe({\r\n name: 'isNotEmpty'\r\n})\r\nexport class IsNotEmptyPipe implements PipeTransform {\r\n\r\n transform(value: any): any {\r\n return !ToolsUtil.isNull(value)\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n\r\n@Pipe({name: 'ossImg'})\r\nexport class OssImgPipe implements PipeTransform {\r\n constructor() {\r\n }\r\n\r\n transform(value:any,isVideoCover = false) {\r\n return isVideoCover ? ToolsUtil.getVideoCover(value) : ToolsUtil.getOssUrl(value) ;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {DomSanitizer} from \"@angular/platform-browser\";\r\n\r\n@Pipe({\r\n name: 'safeHtml'\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor (private sanitizer: DomSanitizer) {\r\n }\r\n transform(html:any) {\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'chinaNum'\r\n})\r\nexport class ChinaNumPipe implements PipeTransform {\r\n transform(value: any, ...args: any[]): any {\r\n let changeNum = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];\r\n let unit = [\"\", \"十\", \"百\", \"千\", \"万\"];\r\n if(!value) return value;\r\n if(typeof value === 'number') {\r\n let getWan = (temp:any) => {\r\n   let strArr = temp.toString().split(\"\").reverse();\r\n   let newNum = \"\";\r\n   for (var i = 0; i < strArr.length; i++) {\r\n    newNum = (i == 0 && strArr[i] == 0 ? \"\" : (i > 0 && strArr[i] == 0 && strArr[i - 1] == 0 ? \"\" : changeNum[strArr[i]] + (strArr[i] == 0 ? unit[0] : unit[i]))) + newNum;\r\n    }\r\n   return newNum;\r\n }\r\n let overWan = Math.floor(value / 10000);\r\n let noWan = value % 10000 + \"\";\r\n if (noWan.toString().length < 4) {\r\n      noWan = \"0\" + noWan;\r\n    }\r\n return overWan ? getWan(overWan) + \"万\" + getWan(noWan) +\"、\" : getWan(value)+\"、\" ;\r\n }\r\n return \"\";\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'count'\r\n})\r\nexport class CountPipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): any {\r\n if(!value) return value;\r\n if(typeof value !== 'number') {\r\n throw new Error('Invalid pipe argument for WelcomePipe');\r\n }\r\n let leftd = Math.floor(value/(1000*60*60*24)), //计算天数\r\n lefth = Math.floor(value/(1000*60*60)%24), //计算小时数\r\n leftm = Math.floor(value/(1000*60)%60), //计算分钟数\r\n lefts = Math.floor(value/1000%60); //计算秒数\r\n let returnStr = \"\";\r\n if(leftd > 0){\r\n returnStr = leftd < 10 ? \"0\":\"\" +leftd+\"天\"\r\n }\r\n // if(lefth > 0){\r\n returnStr += (lefth < 10 ? \"0\":\"\") +lefth+\"小时\"\r\n returnStr += (leftm < 10 ? \"0\":\"\") +leftm+\"分\"\r\n returnStr += (lefts < 10 ? \"0\":\"\") +lefts+\"秒\"\r\n // }\r\n return returnStr ;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n\r\n@Pipe({\r\n name: 'oss'\r\n})\r\nexport class OssPipe implements PipeTransform {\r\n transform(value: any, defaultVal?:any): any {\r\n return ToolsUtil.getOssUrl(value);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n\r\n@Pipe({\r\n name: 'ossStatic'\r\n})\r\nexport class OssStaticPipe implements PipeTransform {\r\n transform(value: any, defaultVal?:any): any {\r\n return ToolsUtil.getStaticOssUrl(value);\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\nimport { ToolsUtil } from '../utils/ToolsUtil';\r\n\r\n@Pipe({\r\n name: 'removeHtml'\r\n})\r\nexport class RemoveHtmlPipe implements PipeTransform {\r\n\r\n constructor(private sanitized: DomSanitizer) {\r\n }\r\n\r\n transform(value: any, ...args: any[]): any {\r\n return ToolsUtil.removeHtml(value);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeUrl'\r\n})\r\nexport class SafeUrlPipe implements PipeTransform {\r\n\r\n constructor(private sanitized: DomSanitizer) { }\r\n transform(value: any, ...args: any[]): any {\r\n return this.sanitized.bypassSecurityTrustResourceUrl(value);\r\n }\r\n\r\n}\r\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {IsEmptyPipe} from \"./is-empty.pipe\";\nimport {DictsPipe} from \"./dicts.pipe\";\nimport {DefaultValPipe} from \"./defaultVal.pipe\";\nimport {DayPipe} from \"./day.pipe\";\nimport {SafeComputePipe} from \"./safe-compute.pipe\";\nimport {IsNotEmptyPipe} from \"./is-not-empty.pipe\";\nimport {OssImgPipe} from \"./image-pipe.pipe\";\nimport {SafeHtmlPipe} from \"./safe-html.pipe\";\nimport {ChinaNumPipe} from \"./china-num.pipe\";\nimport {CountPipe} from \"./count.pipe\";\nimport {OssPipe} from \"./oss.pipe\";\nimport {OssStaticPipe} from \"./ossStatic.pipe\";\nimport {RemoveHtmlPipe} from \"./remove-html.pipe\";\nimport {SafeUrlPipe} from \"./safe-url.pipe\";\n\n// const PIPES = [IsNotEmptyPipe, DefaultValPipe, DictsPipe, DayPipe, IsEmptyPipe, SafeComputePipe,OssImgPipe]\nconst PIPES = [IsNotEmptyPipe, DefaultValPipe, DictsPipe, DayPipe, IsEmptyPipe, SafeComputePipe, OssImgPipe,SafeHtmlPipe,\n ChinaNumPipe,CountPipe,OssPipe,OssStaticPipe,RemoveHtmlPipe,SafeUrlPipe]\n\n@NgModule({\n declarations: [...PIPES],\n exports: PIPES,\n imports: [\n CommonModule,\n ]\n})\nexport class PipeModuleModule {\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpService } from './http.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ToolsUtil } from '../utils/ToolsUtil';\r\nimport { HttpRequest, HttpClient, HttpEvent, HttpResponse, HttpEventType } from '@angular/common/http';\r\nimport {atr_static_datas} from \"../base/atr-common\";\r\n\r\n@Injectable()\r\nexport class UploadOssService {\r\n uploadData: any;\r\n\r\n constructor(private httpService: HttpService,private httpClient: HttpClient) { }\r\n\r\n uploadOss = (file:any,dir = 'ueditor') => {\r\n return new Observable<any>(observe => {\r\n const success = (result:any) => {\r\n if (result.status === 200) {\r\n this.uploadData = result.data;\r\n this.customReq(file).subscribe((url) => {\r\n observe.next(url);\r\n observe.unsubscribe();\r\n });\r\n\r\n } else {\r\n observe.next(false);\r\n observe.unsubscribe();\r\n }\r\n };\r\n\r\n const error = (err:any) => {\r\n observe.next(false);\r\n observe.unsubscribe();\r\n };\r\n let fileName = ToolsUtil.getRandomFileName() + \".\" + ToolsUtil.getFileExt(file.name);\r\n this.httpService.post(atr_static_datas.OSS_POLICY, { dir: dir,fileName:fileName}, ToolsUtil.getHttpOptions()).subscribe(success, error);\r\n });\r\n\r\n }\r\n customReqP = (file: File) => {\r\n const formData = new FormData();\r\n formData.append('OSSAccessKeyId', this.uploadData.OSSAccessKeyId);\r\n formData.append('policy', this.uploadData.policy);\r\n formData.append('Signature', this.uploadData.Signature);\r\n // @ts-ignore\r\n formData.append('key', file['key']);\r\n formData.append('success_action_status', '200');\r\n formData.append('file', file as any);\r\n\r\n const req = new HttpRequest('POST', atr_static_datas.OSS_URL, formData, {\r\n reportProgress: true\r\n });\r\n return this.httpClient.request(req).toPromise();\r\n }\r\n uploadOssFiles = (files: any[]) => {\r\n return new Observable<any>(observe => {\r\n const success = (result:any) => {\r\n if (result.status === 200) {\r\n this.uploadData = result.data;\r\n let param: any[] = [];\r\n files.forEach(item => {\r\n item.key = this.uploadData.dir + ToolsUtil.getRandomFileName() + '.' + ToolsUtil.getFileExt(item.name);\r\n param.push(this.customReqP(item));\r\n })\r\n Promise.all(param).then(events => {\r\n for (let i = 0; i < events.length; i++) {\r\n if (events[i].status == 200) {\r\n events[i].url = events[i].url + files[i].key;\r\n }\r\n }\r\n observe.next(events);\r\n observe.unsubscribe();\r\n })\r\n\r\n } else {\r\n observe.next(false);\r\n observe.unsubscribe();\r\n }\r\n };\r\n\r\n const error = (err:any) => {\r\n observe.next(false);\r\n observe.unsubscribe();\r\n };\r\n\r\n this.httpService.post(atr_static_datas.OSS_POLICY, {dir: 'ueditor'}, ToolsUtil.getHttpOptions()).subscribe(success, error);\r\n });\r\n\r\n }\r\n customReq = (file: File) => {\r\n const formData = new FormData();\r\n for(let key in this.uploadData){\r\n if(key!='host')\r\n formData.append(key,this.uploadData[key])\r\n }\r\n formData.append('file', file as any);\r\n\r\n const req = new HttpRequest('POST', this.uploadData.host!, formData, {\r\n reportProgress: true\r\n });\r\n\r\n return new Observable<any>(observe => {\r\n const success = (event: HttpEvent<any>) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n\r\n } else if (event instanceof HttpResponse) {\r\n const url = event.url + this.uploadData.key;\r\n observe.next(url);\r\n observe.unsubscribe();\r\n }\r\n }\r\n\r\n const error = () => {\r\n observe.next(false);\r\n observe.unsubscribe();\r\n };\r\n\r\n this.httpClient.request(req).subscribe(success, error);\r\n });\r\n }\r\n\r\n}\r\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {AtrErrorImgDirective} from \"./core/directive/error-img.directive\";\nimport {CusNgZorroAntdModule} from \"./core/ngz-module/cus-zorro-antd.module\";\nimport {PipeModuleModule} from \"./core/pipe/pipe-module.module\";\nimport {HttpService} from \"./core/services/http.service\";\nimport {MenuService} from \"./core/services/menu.service\";\nimport {UploadOssService} from \"./core/services/upload-oss.service\";\n\nconst COMMON_COMPONENT: any[] = []\n\n@NgModule({\n declarations: [...COMMON_COMPONENT],\n imports: [\n CommonModule,\n CusNgZorroAntdModule,\n PipeModuleModule,\n ],\n providers:[HttpService,MenuService,UploadOssService],\n exports: [...COMMON_COMPONENT, CusNgZorroAntdModule,\n PipeModuleModule\n ]\n\n})\nexport class AtrComponentsModule {\n}\n","import {Component, OnInit} from '@angular/core';\nimport {atr_static_datas} from \"../../core/base/atr-common\";\n\n@Component({\n selector: 'atr-hello',\n templateUrl: './hello.component.html',\n styleUrls: ['./hello.component.css']\n})\nexport class HelloComponent implements OnInit {\n test = atr_static_datas.test;\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n}\n","<p>hello works!</p>\n<p>测试:{{test}}</p>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {HelloComponent} from \"./hello.component\";\n\n\n\n@NgModule({\n declarations: [HelloComponent],\n imports: [\n CommonModule\n ],\n exports:[HelloComponent]\n})\nexport class HelloModule { }\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, CanActivate, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { LocalStorageUtil } from '../utils/localstorage.util';\r\nimport { AtrReuseStrategy } from '../routereuse/atr-reuse-strategy';\r\nimport {atr_static_datas} from \"../base/atr-common\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AuthGuard implements CanActivate {\r\n\r\n constructor( private router: Router) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree | Observable<boolean | UrlTree> | Promise<boolean | UrlTree> {\r\n // throw new Error(\"Method not implemented.\");\r\n if( LocalStorageUtil.getUserId() != \"\"){\r\n return true;\r\n }\r\n setTimeout(()=>{\r\n this.router.navigateByUrl(atr_static_datas.login_router);\r\n })\r\n setTimeout(()=> AtrReuseStrategy.deleteAll(),50);\r\n return false;\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, Input, Injector ,OnInit, Renderer2, ViewContainerRef, TemplateRef} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport {MenuService} from \"../services/menu.service\";\r\nimport {Menu} from \"../base/atr-common\";\r\nimport {ToolsUtil} from \"../utils/ToolsUtil\";\r\n\r\n@Directive({\r\n selector: '[atrRole]'\r\n})\r\nexport class AtrRoleDirective implements OnInit{\r\n\r\n private hasView = false;\r\n\r\n @Input('atrRole')\r\n set atrRole(condition: string) {\r\n if(ToolsUtil.isNull(condition)){\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.hasView = true;\r\n return\r\n }\r\n\r\n if(condition == \"any\"){\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.hasView = true;\r\n return;\r\n }\r\n let curPath = this.getRouterUrl();\r\n this.menuService.getCurMenu(curPath).subscribe(\r\n result => {\r\n let curMenu:Menu = result;\r\n let isExited = false;\r\n if(curMenu && curMenu != null && curMenu.operation){\r\n let operations = curMenu.operation.split(\",\");\r\n for(let operation of operations){\r\n if(operation == condition){\r\n isExited = true;\r\n break;\r\n }\r\n }\r\n }\r\n if(isExited && !this.hasView){\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.hasView = true;\r\n }else if (!condition && this.hasView){\r\n this.viewContainer.clear();\r\n this.hasView = false;\r\n }\r\n },error =>{\r\n\r\n }\r\n )\r\n }\r\n\r\n constructor(private injector: Injector,private render :Renderer2 ,private templateRef: TemplateRef<any>,\r\n private viewContainer: ViewContainerRef) {\r\n\r\n }\r\n ngOnInit(): void {\r\n }\r\n private get menuService(): MenuService{\r\n return this.injector.get(MenuService)\r\n }\r\n\r\n private getRouterUrl():string{\r\n return this.injector.get(Router).url;\r\n }\r\n}\r\n","import { Directive, Input, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[atrErrorImg]'\r\n})\r\nexport class AtrErrorImgDirective {\r\n\r\n @Input('atrErrorImg') errorImagSrc: string =\"\";\r\n constructor(public elementRef: ElementRef) { }\r\n\r\n @HostListener('error', ['$event.target'])\r\n ImageError(event:any) {\r\n if (this.errorImagSrc) {\r\n event.src = this.errorImagSrc;\r\n } else {\r\n event.src = 'https://atr-demo.oss-cn-hangzhou.aliyuncs.com/common/null.png';\r\n }\r\n }\r\n}\r\n","import {Directive, Input, ElementRef, Renderer2, SimpleChanges, OnChanges} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[HqSpin]'\r\n})\r\nexport class HqSpinDirective implements OnChanges {\r\n\r\n @Input() spinLoading = false;\r\n @Input() text = null;\r\n\r\n loadingEle: any;\r\n\r\n constructor(private el: ElementRef, private render: Renderer2) {\r\n\r\n this.render.addClass(this.el.nativeElement, 'hq-spin-container');\r\n this.loadingEle = this.render.createElement('div');\r\n\r\n let dom1 = document.createElement('div');\r\n this.loadingEle.append(dom1)\r\n this.render.addClass(dom1, 'loader-03');\r\n // this.render.addClass(this.loadingEle, 'loader-04');\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const { spinLoading,text } = changes;\r\n if (text && text.currentValue) {\r\n let dom = document.createElement('div');\r\n dom.innerText = text.currentValue\r\n this.loadingEle.append(dom)\r\n this.render.addClass(dom, 'loader-04');\r\n }\r\n if (spinLoading) {\r\n\r\n if (spinLoading.currentValue) {\r\n this.render.addClass(this.el.nativeElement, 'hq-spin-blur');\r\n this.render.appendChild(this.el.nativeElement, this.loadingEle);\r\n } else {\r\n this.render.removeClass(this.el.nativeElement, 'hq-spin-blur');\r\n this.render.removeChild(this.el.nativeElement, this.loadingEle);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, forwardRef, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport {NzMessageService} from \"ng-zorro-antd/message\";\r\nimport {AtrQueryHeader, TableAction} from \"../../../../core/base/atr-common\";\r\nimport {ToolsUtil} from \"../../../../core/utils/ToolsUtil\";\r\n\r\n@Component({\r\n selector: 'app-table-form-item',\r\n templateUrl: './table-form-item.component.html',\r\n styleUrls: ['./table-form-item.component.scss', '../table.component.less'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TableFormItemComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class TableFormItemComponent implements OnInit, ControlValueAccessor {\r\n @Input() header:AtrQueryHeader |any;\r\n @Input() value: string | any; // 组件对应的 “ ngModel ”\r\n @Input() dictList:any = [];\r\n @Output() headerAction = new EventEmitter<TableAction>();\r\n\r\n onChangeListener: any; // 改变值回调\r\n onTouchedListener: any; // 交互回调\r\n isNull = ToolsUtil.isNull\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n writeValue(value: string | any[]): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n console.log('registerOnChange')\r\n this.onChangeListener = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n console.log('registerOnTouched')\r\n this.onTouchedListener = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n\r\n }\r\n\r\n onChange(e?:any) {\r\n console.log('form change',this.value)\r\n console.log('form change e',e)\r\n if(this.onChangeListener) {\r\n this.onChangeListener(e); // 告诉form,你的表单值改变成了payload\r\n }\r\n if(this.onTouchedListener) {\r\n this.onTouchedListener(); // 告诉form,你的表单有交互发生\r\n }\r\n }\r\n\r\n selectChange(value:any, item:any) {\r\n //console.log(value);\r\n let action: TableAction = {\r\n name: item.label,\r\n code: item.key,\r\n data: item,\r\n value: value,\r\n };\r\n this.headerAction.emit(action)\r\n\r\n }\r\n clickIcon(value:any, item: AtrQueryHeader, $event:any) {\r\n $event.stopPropagation();\r\n //console.log(value,item);\r\n let action: TableAction = {\r\n name: item.name,\r\n code: item.icon?.code ? item.icon?.code:\"\",\r\n data: item,\r\n value: value,\r\n };\r\n this.headerAction.emit(action)\r\n }\r\n}\r\n","<nz-form-item style=\"position: relative\" title=\"{{header.name}}\" nzFlex>\r\n <nz-form-control [nzSpan]=\"header.cspan || 24\" [ngSwitch]=\"header.type\">\r\n <nz-input-group [nzSuffix]=\"inputClearTpl\" *ngSwitchCase=\"'text'\">\r\n <input\r\n nz-input\r\n placeholder=\"{{header.name}}\"\r\n [attr.id]=\"header.key\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onChange($event)\"\r\n />\r\n\r\n </nz-input-group>\r\n\r\n <nz-select *ngSwitchCase=\"'select'\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n nzPlaceHolder=\"{{header.name}}\"\r\n nzAllowClear=\"true\"\r\n [nzMode]=\"header.nzMode || 'default'\"\r\n nzServerSearch\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onChange($event)\"\r\n >\r\n <nz-option *ngFor=\"let o of dictList\" [nzLabel]=\"o.typeName\"\r\n [nzValue]=\"o.id\"></nz-option>\r\n </nz-select>\r\n <nz-select *ngSwitchCase=\"'selectCus'\"\r\n [nzMode]=\"header.nzMode || 'default'\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n nzPlaceHolder=\"{{header.name}}\"\r\n nzAllowClear=\"true\"\r\n [nzShowSearch]=\"true\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onChange($event)\"\r\n >\r\n <nz-option *ngFor=\"let o of header.dictList\" nzCustomContent [nzLabel]=\"o.label\"\r\n [nzValue]=\"o.value\">\r\n <i class=\"select-icon\" *ngIf=\"header.icon?.isShow\" nz-icon [nzType]=\"header.icon.icon\"\r\n nzTheme=\"outline\" style=\"margin-right: 1rem;\"\r\n (click)=\"clickIcon(o.value,header,$event)\"></i>\r\n {{o.label}}\r\n </nz-option>\r\n\r\n </nz-select>\r\n <nz-cascader\r\n *ngSwitchCase=\"'cascader'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n style=\"flex: 1\" [nzAllowClear]=\"!header.disableClear\"\r\n nzPlaceHolder=\"{{header.name}}\"\r\n [nzShowSearch]=\"true\"\r\n [nzOptions]=\"header.dictList\"\r\n [(ngModel)]=\"value\"\r\n ></nz-cascader>\r\n <nz-tree-select\r\n *ngSwitchCase=\"'treeSelect'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n [nzNodes]=\"header.treeList\"\r\n nzShowSearch=\"true\"\r\n nzHideUnMatched=\"true\"\r\n nzPlaceHolder=\"{{header.name}}\"\r\n [nzShowSearch]=\"true\"\r\n [(ngModel)]=\"value\"\r\n [nzMultiple]=\"header.selectUrl.isMultiple\"\r\n [nzMaxTagCount]=\"header.maxTagCount || 3\"\r\n >\r\n </nz-tree-select>\r\n <nz-range-picker *ngSwitchCase=\"'dayRange'\" [(ngModel)]=\"value\" (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n style=\"width: 100%;\"\r\n nzAllowClear=\"true\"\r\n [nzPlaceHolder]=\"[header.name+'开始时间','结束时间']\"\r\n [nzDefaultPickerValue]=\"header.defaultVal\"\r\n ></nz-range-picker>\r\n <nz-range-picker\r\n *ngSwitchCase=\"'dateRange'\"\r\n [nzShowTime]=\"header.nzShowTime ? header.nzShowTime : false\"\r\n (ngModelChange)=\"onChange($event)\"\r\n\r\n [nzFormat]=\"header.nzShowTime && header.nzShowTime.nzFormat ?\r\n ('yyyy-MM-dd '+ header.nzShowTime.nzFormat) : 'yyyy-MM-dd HH:mm:ss'\"\r\n\r\n [nzShowNow]=\"header.nzShowTime && header.nzShowNow \"\r\n [(ngModel)]=\"value\"\r\n style=\"width: 100%;\"\r\n nzAllowClear=\"true\"\r\n [nzPlaceHolder]=\"[header.name+'开始时间','结束时间']\"\r\n [nzDefaultPickerValue]=\"header.defaultVal\"></nz-range-picker>\r\n <ng-container *ngSwitchCase=\"'sdate'\">\r\n <nz-date-picker style=\"width: 100%\" [nzFormat]=\"'yyyy-MM-dd'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n *ngIf=\"!header.dateMode\"\r\n nzAllowClear=\"true\"></nz-date-picker>\r\n <nz-date-picker style=\"width: 100%\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n *ngIf=\"header.dateMode\"\r\n [nzMode]=\"header.dateMode\"\r\n nzAllowClear=\"true\"></nz-date-picker>\r\n </ng-container>\r\n <nz-month-picker\r\n *ngSwitchCase=\"'smonth'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n [nzFormat]=\"'yyyy-MM'\"\r\n [nzPlaceHolder]=\"[header.name]\"\r\n nzAllowClear=\"true\"></nz-month-picker>\r\n <span class=\"label-title\">{{header.name}}</span>\r\n </nz-form-control>\r\n</nz-form-item>\r\n\r\n<ng-template #inputClearTpl>\r\n <i nz-icon class=\"ant-input-clear-icon\" nzTheme=\"fill\" nzType=\"close-circle\"\r\n *ngIf=\"!header.disableClear && value|isNotEmpty\" (click)=\"value = null;onChange()\"></i>\r\n</ng-template>\r\n","import {Component, OnInit, Input, Output, EventEmitter} from '@angular/core';\r\nimport {NzUploadChangeParam, NzUploadFile} from 'ng-zorro-antd/upload/ng-zorro-antd-upload';\r\nimport {LocalStorageUtil} from \"../../../core/utils/localstorage.util\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\nimport {atr_static_datas} from \"../../../core/base/atr-common\";\r\n\r\n@Component({\r\n selector: 'atr-local-upload',\r\n templateUrl: './local-upload.component.html',\r\n styleUrls: ['./local-upload.component.less']\r\n})\r\nexport class LocalUploadComponent implements OnInit {\r\n\r\n @Input() url:any;\r\n @Input() nzAccept = 'application/vnd.ms-excel';\r\n @Input() name:any;\r\n @Input() code:any;\r\n @Input() withoutRole:any;\r\n @Output()\r\n afterChange: EventEmitter<any> = new EventEmitter();\r\n\r\n showList :any = false;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n // this.header = this.getDefaultHeader(new HttpHeaders());\r\n }\r\n header = (file: NzUploadFile) => {\r\n let obj = {\r\n \"x-header-atr\":\"web\",\r\n \"token\" : LocalStorageUtil.getUserToken(),\r\n // \"orgCode\" : ToolsUtil.getOrgCode()\r\n }\r\n\r\n return obj;\r\n };\r\n onChange(params: NzUploadChangeParam) {\r\n console.log(params);\r\n if (params.type == \"success\" || params.type == \"removed\") {\r\n let fileUrls: any[] = [];\r\n for (let file of params.fileList) {\r\n if (file[\"key\"] != undefined) {\r\n fileUrls.push(file[\"key\"]);\r\n continue;\r\n }\r\n if (file.originFileObj) {\r\n let originFileObj: any = file.originFileObj\r\n if (originFileObj[\"key\"] != undefined) {\r\n fileUrls.push(originFileObj[\"key\"])\r\n }\r\n }\r\n }\r\n\r\n this.afterChange.emit(params);\r\n }\r\n }\r\n // getDefaultHeader(_headers:HttpHeaders):HttpHeaders{\r\n // _headers = _headers.set(\"x-header-atr\",\"manage\");\r\n // _headers = _headers.set(\"token\",LocalStorageUtil.getUserToken());\r\n // _headers = _headers.set(\"userId\",LocalStorageUtil.getUserId());\r\n // _headers = _headers.set(\"orgCode\",ToolsUtil.getOrgCode());\r\n // return _headers;\r\n // }\r\n}\r\n","<ng-container *ngIf=\"!withoutRole\">\r\n <nz-upload [nzAction]=\"url\" [nzAccept]=\"nzAccept\" [nzHeaders]=\"header\" [nzShowUploadList]=\"showList\"\r\n (nzChange)=\"onChange($event)\"\r\n *atrRole=\"code\" [nzLimit]='1'>\r\n <button nz-button nzSize=\"small\"><i nz-icon nzType=\"upload\"></i><span> {{name}}</span></button>\r\n </nz-upload>\r\n</ng-container>\r\n<ng-container *ngIf=\"withoutRole\">\r\n <nz-upload [nzAction]=\"url\" [nzAccept]=\"nzAccept\" [nzHeaders]=\"header\" [nzShowUploadList]=\"showList\"\r\n (nzChange)=\"onChange($event)\"\r\n [nzLimit]='1'>\r\n <button nz-button nzSize=\"small\"><i nz-icon nzType=\"upload\"></i><span> {{name}}</span></button>\r\n </nz-upload>\r\n</ng-container>\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {environment} from \"ng-zorro-antd/core/environments\";\r\nimport {atr_static_datas, Table, TableAction} from \"../../../../core/base/atr-common\";\r\n\r\n@Component({\r\n selector: 'app-table-td',\r\n templateUrl: './table-td.component.html',\r\n styleUrls: ['./table-td.component.scss', '../table.component.less']\r\n})\r\nexport class TableTdComponent implements OnInit {\r\n @Input() data:any\r\n @Input() item: Table |any;\r\n @Input() i:any\r\n\r\n @Output() doActionByRowAction = new EventEmitter<any>();\r\n popoverTrigger:any = 'hover'\r\n\r\n imagePrefix = atr_static_datas.OSS_URL;\r\n\r\n constructor() {\r\n }\r\n doActionSwitch(data:any, code:any, event?: MouseEvent, index?:any) {\r\n this.doActionByRowAction.emit({data: data, code: code, event: event, index: index})\r\n }\r\n\r\n change(value: boolean): void {\r\n console.log(value);\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n doActionByRow(data:any, code:any, event: MouseEvent, index:any) {\r\n this.doActionByRowAction.emit({data: data, code: code, event: event, index: index})\r\n }\r\n\r\n enter(e:any) {\r\n this.popoverTrigger = e.toElement.clientWidth < e.toElement.scrollWidth ? 'hover' : null;\r\n }\r\n\r\n isShowBtn(data: any, operator: string, action?:TableAction): boolean {\r\n let isShow = false;\r\n if (!operator || operator == null || operator == \"\") {\r\n isShow = true;\r\n } else if (operator.indexOf('&&') > 0) {\r\n // a|eq|b &&c|eq|d\r\n const ops = operator.split('&&');\r\n if (ops.length > 1) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < ops.length; i++) {\r\n isShow = true\r\n if (!this.checkIsShowBase(ops[i].split('|'), data)) {\r\n isShow = false;\r\n break;\r\n }\r\n }\r\n }\r\n } else if (operator.indexOf('||') > 0) {\r\n // a|eq|b||c|eq|d\r\n const ops = operator.split('||');\r\n if (ops.length > 1) {\r\n for (let i = 0; i < ops.length; i++) {\r\n isShow = false;\r\n if (this.checkIsShowBase(ops[i].split('|'), data)) {\r\n isShow = true;\r\n break;\r\n }\r\n }\r\n }\r\n } else {\r\n let op = operator.split(\"|\");\r\n isShow = this.checkIsShowBase(op, data);\r\n }\r\n return isShow;\r\n }\r\n\r\n checkIsShowBase(op:any, data:any): boolean {\r\n let isShow = false;\r\n if (op.length > 1) {\r\n let value = data[op[0]];\r\n if (!value) {\r\n isShow = false;\r\n } else {\r\n isShow = this.compare(value, op[1], op[2])\r\n }\r\n } else\r\n isShow = false\r\n\r\n return isShow;\r\n }\r\n\r\n compare(value:any, operator:any, target:any): boolean {\r\n let isRight = false;\r\n switch (operator) {\r\n case 'eq' :\r\n if (value == target) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'gh' :\r\n if (value >= target) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'ne':\r\n if (value != target) {\r\n isRight = true;\r\n }\r\n break\r\n case 'notEmpty':\r\n isRight = false;\r\n if (value) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'empty':\r\n isRight = true;\r\n if (!!value) {\r\n isRight = false;\r\n }\r\n break;\r\n default :\r\n isRight = false;\r\n break;\r\n }\r\n return isRight;\r\n }\r\n\r\n}\r\n","<ng-container [ngSwitch]=\"item.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'innerHtml'\">\r\n <div [innerHTML]=\"item.innerHtmlBack(data[item.key] | defVal:item.defaultVal,data) | safeHtml\" ></div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textcolor'\">\r\n <div [innerHTML]=\"data[item.key] | defVal:item.defaultVal\" [ngStyle]=\"{'color':item.color}\"\r\n *ngIf=\"item.colorShow == data[item.key]\"></div>\r\n <div [innerHTML]=\"data[item.key] | defVal:item.defaultVal\" *ngIf=\"item.colorShow != data[item.key]\"></div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <span nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\"\r\n [nzPopoverContent]=\"data[item.key] | date:'yyyy-MM-dd' | defVal:item.defaultVal\"\r\n class=\"view-text\">{{ data[item.key] | date:'yyyy-MM-dd' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dateTime'\">\r\n <span nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\"\r\n [nzPopoverContent]=\"data[item.key] | date:'yyyy-MM-dd HH:mm:ss' | defVal:item.defaultVal\"\r\n class=\"view-text\"> {{ data[item.key] | date:'yyyy-MM-dd HH:mm:ss' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <nz-switch *ngSwitchCase=\"'switch'\" [(ngModel)]=\"data[item.key]\" [nzDisabled]=\"item.disabled\"\r\n (ngModelChange)=\"doActionSwitch(data,item.key)\" nzCheckedChildren=\"是\" nzUnCheckedChildren=\"否\">\r\n </nz-switch>\r\n <ng-container *ngSwitchCase=\"'sDateTime'\">\r\n <span nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\"\r\n [nzPopoverContent]=\"data[item.key] | date:'MM-dd HH:mm' | defVal:item.defaultVal\"\r\n class=\"view-text\"> {{ data[item.key] | date:'MM-dd HH:mm' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <div *ngSwitchCase=\"'fixedText'\" [innerHTML]=\"item.key\"></div>\r\n\r\n <img *ngSwitchCase=\"'image'\" width=\"35px\" nzSrc=\"{{(data[item.key] | defVal:item.defaultVal) | ossImg}}\"\r\n nz-image atrErrorImg/>\r\n <div nz-row *ngSwitchCase=\"'action'\">\r\n <div class=\"action-area\" nz-col [nzSpan]=\"24\">\r\n <ng-container *ngFor=\"let action of item.actions\">\r\n <ng-container *ngIf=\"isShowBtn(data,action.operator,action)\">\r\n <ng-container *ngIf=\"!action.withoutRole\">\r\n <button nz-button\r\n [nzType]=\"action.buttonType&&action.buttonType != 'danger'? action.buttonType : 'primary'\"\r\n [nzDanger]=\"action.buttonType == 'danger'\"\r\n nzSize=\"small\" *atrRole=\"action.code\"\r\n (click)=\"doActionByRow(data,action.code,$event,i)\">\r\n <i nz-icon *ngIf=\"action.icon\" [nzType]=\"action.icon\"></i>\r\n {{action.name}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"action.withoutRole\">\r\n <button nz-button\r\n [nzType]=\"action.buttonType&&action.buttonType != 'danger'? action.buttonType : 'primary'\"\r\n [nzDanger]=\"action.buttonType == 'danger'\"\r\n nzSize=\"small\" (click)=\"doActionByRow(data,action.code,$event,i)\">\r\n <i nz-icon *ngIf=\"action.icon\" [nzType]=\"action.icon\"></i>\r\n {{action.name}}</button>\r\n </ng-container>\r\n <!-- <button nz-button [nzType]=\"'primary'\" nzSize=\"small\" *atrRole=\"action.code\" (click)=\"doActionByRow(data,action.code,$event)\">{{action.name\r\n }}</button> -->\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div *ngSwitchCase=\"'dict'\" [innerHTML]=\"data[item.key] | dicts:item.dictCode | defVal:item.defaultVal\"></div>\r\n <div nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\" [nzPopoverContent]='data[item.key] | defVal:item.defaultVal'\r\n class=\"view-text\" *ngSwitchDefault [innerHTML]=\"data[item.key] | defVal:item.defaultVal\"></div>\r\n</ng-container>\r\n\r\n","import {\r\n Component,\r\n OnInit,\r\n Injector,\r\n Input,\r\n ViewChildren,\r\n ViewChild,\r\n ElementRef,\r\n Output,\r\n EventEmitter,\r\n LOCALE_ID,\r\n Inject,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport {FormGroup, FormBuilder, FormControl} from '@angular/forms';\r\nimport {formatDate} from '@angular/common';\r\nimport {CdkDragDrop, moveItemInArray} from \"@angular/cdk/drag-drop\";\r\nimport {NzContextMenuService, NzDropdownMenuComponent} from 'ng-zorro-antd/dropdown';\r\nimport {atr_static_datas, AtrQueryHeader, AtrQueyrOpt, json, Table, TableAction} from \"../../../core/base/atr-common\";\r\nimport {DictService} from \"../../../core/services/dict/dict.service\";\r\nimport {HttpService} from \"../../../core/services/http.service\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\n\r\n@Component({\r\n selector: 'atr-table',\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.less']\r\n})\r\nexport class AtrTableComponent implements OnInit {\r\n atrForm: FormGroup | any;\r\n isCollapse = true;\r\n dicts: any = {};\r\n pageIndex = 1;\r\n\r\n pageSize = 10;\r\n total = 1;\r\n @Input() loading = true;\r\n @Input() allowDrag = false;//允许拖拽换位\r\n tableDatas: any = [];\r\n scrollSize: any = {x: \"\", y: \"\"}\r\n //表格checkbox 配置\r\n isAllDisplayDataChecked: boolean = false\r\n isIndeterminate = false;\r\n numberOfChecked = 0;\r\n mapOfCheckedId: { [key: string]: boolean } = {};\r\n curChecked: number = -1;\r\n imagePrefix = atr_static_datas.OSS_URL;\r\n defaultParams = {};\r\n @Input() isHideTable = false\r\n isAllLoad: boolean = false;\r\n sortMap: { [key: string]: any } = {};\r\n rowSpanMap: any = {};//key:{德科牧场:{num:1}}\r\n headerDefaultVal: any = {}\r\n\r\n @Input() queryOpts: AtrQueyrOpt | any;\r\n @Input() showPagination = true;\r\n @Input() title: string = \"\";\r\n @Input() queryHeaders = null;\r\n\r\n @Output() tableAction = new EventEmitter<TableAction>();\r\n @Output() queryBack = new EventEmitter<TableAction>();\r\n @Output() headerAction = new EventEmitter<TableAction>();\r\n\r\n @ViewChild('tableContent', {static: true}) tableContent: ElementRef | any;\r\n\r\n constructor(private fb: FormBuilder, private injector: Injector, @Inject(LOCALE_ID) private locale: string, private cd: ChangeDetectorRef) {\r\n }\r\n\r\n isShowColor(data: any) {\r\n if (this.queryOpts.color && this.queryOpts.color.operator && this.isShowBtn(data, this.queryOpts.color.operator)) {\r\n return this.queryOpts.color.color;\r\n }\r\n return ''\r\n }\r\n\r\n dbclickData(data: any, rowNo: number) {\r\n let action: TableAction = {\r\n name: 'dbclickData',\r\n code: 'dbclickData',\r\n type: \"row\"\r\n };\r\n action.data = data;\r\n action.firstData = data;\r\n this.tableAction.emit(action);\r\n }\r\n\r\n doActionByRow2(e: any) {\r\n let {data, code, event: MouseEvent, index} = e\r\n if (event) {\r\n event.preventDefault();\r\n if (event.stopPropagation) {\r\n event.stopPropagation()\r\n }\r\n }\r\n let action: TableAction = {\r\n name: code,\r\n code: code,\r\n type: \"row\"\r\n };\r\n action.data = data;\r\n action.firstData = data;\r\n action.numberOfChecked = index;\r\n this.tableAction.emit(action);\r\n }\r\n\r\n private get httpService(): HttpService {\r\n return this.injector.get(HttpService);\r\n }\r\n\r\n private get nzContextMenuService(): NzContextMenuService {\r\n return this.injector.get(NzContextMenuService);\r\n }\r\n\r\n setTableLoadding(loadding: boolean) {\r\n this.loading = loadding;\r\n }\r\n\r\n onResize(width: any, col: string): void {\r\n this.queryOpts.tables = this.queryOpts.tables.map((e: any) => (e.name === col ? {...e, width: `${width}px`} : e));\r\n let x = 0;\r\n for (let item of this.queryOpts.tables) {\r\n\r\n if (item.isShow && item.width) {\r\n x += ToolsUtil.pixelToNum(item.width);\r\n }\r\n }\r\n if (x > 22) {\r\n x = x - 22;\r\n this.scrollSize.x = x + \"px\";\r\n }\r\n }\r\n\r\n isEnable(operator: string) {\r\n let isEnable = true;\r\n if (!operator || operator == undefined || operator == \"\")\r\n isEnable = false;\r\n else {\r\n let op = operator.split(\"|\");\r\n if (op.length > 2) {\r\n let key = op[0];\r\n if (!key) {\r\n isEnable = false;\r\n } else {\r\n isEnable = !this.compare(this.numberOfChecked, op[1], op[2])\r\n }\r\n } else\r\n isEnable = false\r\n }\r\n\r\n return isEnable\r\n }\r\n\r\n isShowBtn(data: any, operator: string, action?: TableAction): boolean {\r\n let isShow = false;\r\n if (!operator || operator == null || operator == \"\") {\r\n isShow = true;\r\n } else if (operator.indexOf('&&') > 0) {\r\n // a|eq|b &&c|eq|d\r\n const ops = operator.split('&&');\r\n if (ops.length > 1) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < ops.length; i++) {\r\n isShow = true\r\n if (!this.checkIsShowBase(ops[i].split('|'), data)) {\r\n isShow = false;\r\n break;\r\n }\r\n }\r\n }\r\n } else if (operator.indexOf('||') > 0) {\r\n // a|eq|b||c|eq|d\r\n const ops = operator.split('&&');\r\n if (ops.length > 1) {\r\n for (let i = 0; i < ops.length; i++) {\r\n isShow = false;\r\n if (this.checkIsShowBase(ops[i].split('|'), data)) {\r\n isShow = true;\r\n break;\r\n }\r\n }\r\n }\r\n } else {\r\n let op = operator.split(\"|\");\r\n isShow = this.checkIsShowBase(op, data);\r\n }\r\n return isShow;\r\n }\r\n\r\n checkIsShowBase(op: any, data: any): boolean {\r\n let isShow = false;\r\n if (op.length > 1) {\r\n let value = data[op[0]];\r\n if (!value) {\r\n isShow = false;\r\n } else {\r\n isShow = this.compare(value, op[1], op[2])\r\n }\r\n } else\r\n isShow = false\r\n\r\n return isShow;\r\n }\r\n\r\n compare(value: any, operator: any, target: any): boolean {\r\n let isRight = false;\r\n switch (operator) {\r\n case 'eq' :\r\n if (value == target) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'gh' :\r\n if (value >= target) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'notEmpty':\r\n isRight = false;\r\n if (value) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'empty':\r\n isRight = false;\r\n if (!value) {\r\n isRight = true;\r\n }\r\n break;\r\n default :\r\n isRight = false;\r\n break;\r\n }\r\n return isRight;\r\n }\r\n\r\n pushTableDatas(tableDatas: any) {\r\n this.tableDatas = this.tableDatas.concat(tableDatas);\r\n }\r\n\r\n removeDatas(key: any, value: any) {\r\n this.tableDatas.forEach((item: any, index: any) => {\r\n if (item[key] === value) {\r\n this.tableDatas.splice(index, 1);\r\n }\r\n })\r\n }\r\n\r\n doAction(code: any) {\r\n let action: TableAction = {\r\n name: code,\r\n code: code,\r\n type: \"rows\"\r\n };\r\n let selectDatas: any = [];\r\n if (this.tableDatas && this.tableDatas.length > 0) {\r\n this.tableDatas.forEach((item: any) => {\r\n if (this.mapOfCheckedId[item.id])\r\n selectDatas.push(item);\r\n });\r\n }\r\n action.datas = selectDatas;\r\n if (selectDatas && selectDatas.length > 0) {\r\n action.firstData = selectDatas[0];\r\n }\r\n action.numberOfChecked = selectDatas.length;\r\n this.tableAction.emit(action);\r\n }\r\n\r\n doActionByRow(data: any, code: any, event: MouseEvent) {\r\n event.preventDefault();\r\n if (event.stopPropagation) {\r\n event.stopPropagation()\r\n }\r\n let action: TableAction = {\r\n name: code,\r\n code: code,\r\n type: \"row\"\r\n };\r\n action.data = data;\r\n action.firstData = data;\r\n action.numberOfChecked = 1;\r\n this.tableAction.emit(action);\r\n }\r\n\r\n getAllCheckInfo(): any[] {\r\n let ids: any = [];\r\n for (const key of Object.keys(this.mapOfCheckedId)) {\r\n if (this.mapOfCheckedId.hasOwnProperty(key) && this.mapOfCheckedId[key]) {\r\n ids.push(key)\r\n }\r\n }\r\n return ids;\r\n }\r\n\r\n getAllCheckDatas(): any[] {\r\n let selectDatas: any = []\r\n this.tableDatas.forEach((item: any) => {\r\n if (this.mapOfCheckedId[item.id])\r\n selectDatas.push(item);\r\n });\r\n return selectDatas;\r\n }\r\n\r\n checkAll(value: boolean): void {\r\n this.tableDatas.forEach((item: any) => (this.mapOfCheckedId[item.id] = value));\r\n this.refreshStatus();\r\n }\r\n\r\n refreshStatus(): void {\r\n this.isAllDisplayDataChecked = this.tableDatas\r\n .every((item: any) => this.mapOfCheckedId[item.id]);\r\n this.isIndeterminate =\r\n this.tableDatas.some((item: any) => this.mapOfCheckedId[item.id]) &&\r\n !this.isAllDisplayDataChecked;\r\n this.numberOfChecked = this.tableDatas.filter((item: any) => this.mapOfCheckedId[item.id]).length;\r\n this.tableAction.emit({\r\n code: 'refreshStatus', name: 'select',\r\n type: \"row\", data: this.getAllCheckDatas()\r\n })\r\n }\r\n\r\n selectRow(data: any, rowNo: number) {\r\n // this.tableDatas.forEach(item => (this.mapOfCheckedId[data.id] = value));\r\n this.curChecked = rowNo;\r\n if (!this.queryOpts.checkBox?.isForbid) {\r\n if (this.queryOpts.checkBox?.isShowCheckbox) {\r\n this.mapOfCheckedId[data.id] = !this.mapOfCheckedId[data.id];\r\n } else {\r\n this.mapOfCheckedId = {};\r\n this.mapOfCheckedId[data.id] = true;\r\n }\r\n }\r\n let action: TableAction = {\r\n name: 'select',\r\n code: 'select',\r\n type: \"row\"\r\n };\r\n action.data = data;\r\n action.firstData = data;\r\n action.numberOfChecked = 1;\r\n this.tableAction.emit(action);\r\n this.refreshStatus();\r\n }\r\n\r\n ngOnInit() {\r\n this.atrForm = this.fb.group({});\r\n let x = this.tableContent.nativeElement.offsetWidth - 22\r\n let y = this.tableContent.nativeElement.offsetHeight - 200\r\n this.scrollSize.x = (x > 0 ? x : 100) + \"px\";\r\n this.scrollSize.y = (y > 0 ? y : 100) + \"px\";\r\n // console.log(this.scrollSize)\r\n this.initHeader();\r\n if (this.queryOpts && this.queryOpts.tables) {\r\n for (let table of this.queryOpts.tables) {\r\n if(table.type == 'dict'){\r\n this.getDictValue(table.dictCode);\r\n }\r\n if (table.sortKey) {\r\n table.sortable = true;\r\n this.sortMap[table.sortKey] = null;\r\n } else\r\n table.sortable = false;\r\n }\r\n }\r\n if (this.queryOpts && this.queryOpts.defaultParams) {\r\n this.defaultParams = this.queryOpts.defaultParams\r\n }\r\n if (!this.queryOpts.isAutoQuery) {\r\n this.query();\r\n } else {\r\n this.loading = false;\r\n // this.cd.detectChanges();\r\n }\r\n }\r\n\r\n initHeader() {\r\n this.headerDefaultVal = {};\r\n if (this.queryOpts && this.queryOpts.headers && this.queryOpts.headers.length > 0) {\r\n this.queryOpts.headers.forEach((item: any, i: any) => {\r\n item.span = item.span || 8;\r\n if (!ToolsUtil.isNull(item.defaultVal)) {\r\n this.headerDefaultVal[item.key] = item.defaultVal\r\n }\r\n if (item.isShow != false) {\r\n item.isShow = i < this.queryOpts.showNum\r\n }\r\n this.atrForm.addControl(item.key, new FormControl());\r\n let type = item.type;\r\n switch (type) {\r\n case \"select\":\r\n this.getDictValue(item.dictCode);\r\n break;\r\n case \"treeSelect\":\r\n case \"cascader\":\r\n case \"selectCus\":\r\n if (item.selectUrl && item.selectUrl.url) {\r\n this.getDicList(item);\r\n }\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n\r\n getDicList(item: any) {\r\n if (!item.selectUrl || !item.selectUrl.url) {\r\n return;\r\n }\r\n let keys = item.selectUrl.convert.split(',');\r\n this.httpService.post(item.selectUrl.url, {}, ToolsUtil.getHttpOptions()).subscribe(res => {\r\n if (item.type == 'treeSelect') {\r\n item.treeList = res.data.filter((child: any) => {\r\n keys.forEach((v: any) => {\r\n let vs = v.split(\"|\");\r\n child[vs[0]] = child[vs[1]];\r\n });\r\n // child.key = child.id;\r\n // child.title = child.realName;\r\n return true\r\n });\r\n } else if (item.type == 'selectCus') {\r\n item.dictList = res.data.filter((child: any) => {\r\n keys.forEach((v: any) => {\r\n let vs = v.split(\"|\");\r\n child[vs[0]] = child[vs[1]];\r\n });\r\n // child.value = child.id;\r\n // child.label = child.name;\r\n return true;\r\n });\r\n }\r\n })\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n setTimeout(() => {\r\n this.scrollSize.y = this.tableContent.nativeElement.offsetHeight - 100 + \"px\";\r\n if(this.isHideTable){\r\n this.scrollSize.y = this.tableContent.nativeElement.offsetHeight - 60 + \"px\";\r\n }\r\n let width = 0;\r\n if (this.queryOpts && this.queryOpts.tables) {\r\n for (let table of this.queryOpts.tables) {\r\n if (table.isShow && table.width) {\r\n\r\n width += ToolsUtil.pixelToNum(table.width);\r\n }\r\n }\r\n }\r\n let w = this.tableContent.nativeElement.offsetWidth - 22;\r\n if (width > w)\r\n this.scrollSize.x = width + \"px\";\r\n else\r\n this.scrollSize.x = this.tableContent.nativeElement.offsetWidth - 22 + \"px\";\r\n\r\n console.log(this.scrollSize);\r\n this.isAllLoad = true;\r\n this.cd.detectChanges();\r\n }, 500)\r\n\r\n\r\n }\r\n\r\n sort(sortName: string, value: any): void {\r\n for (const key in this.sortMap) {\r\n this.sortMap[key] = key === sortName ? value : null;\r\n }\r\n // this.search(this.listOfSearchName, this.listOfSearchAddress);\r\n console.log(this.sortMap)\r\n this.query(true);\r\n }\r\n\r\n private get dictService(): DictService {\r\n return this.injector.get(DictService)\r\n }\r\n\r\n getDictValue(code: string) {\r\n console.log(\"pppp\");\r\n this.dictService.getDictBycode(code).subscribe(\r\n result => {\r\n if (result && result != null)\r\n this.dicts[code] = result.dicts;\r\n console.log(this.dicts)\r\n\r\n },\r\n error => {\r\n this.dicts[code] = [];\r\n }\r\n )\r\n }\r\n\r\n toggleCollapse(): void {\r\n this.isCollapse = !this.isCollapse;\r\n // this.queryOpts.headers.forEach((c: any, index: any) => {\r\n // c.isShow = this.isCollapse ? index < this.queryOpts.showNum : true;\r\n // });\r\n }\r\n\r\n resetForm(): void {\r\n this.atrForm.reset();\r\n for (const key in this.headerDefaultVal) {\r\n this.atrForm.get(key)?.setValue(this.headerDefaultVal[key]);\r\n }\r\n }\r\n\r\n selectChange(value: any, item: any) {\r\n console.log(value);\r\n let action: TableAction = {\r\n name: item.label,\r\n code: item.key,\r\n data: item,\r\n value: value,\r\n };\r\n this.headerAction.emit(action)\r\n\r\n }\r\n\r\n clickIcon(value: any, item: AtrQueryHeader, $event: any) {\r\n $event.stopPropagation();\r\n console.log(value, item);\r\n let action: TableAction = {\r\n name: item.name,\r\n code: item.icon?.code ? item.icon?.code : \"\",\r\n data: item,\r\n value: value,\r\n };\r\n this.headerAction.emit(action)\r\n }\r\n\r\n getQueryParams(reset: boolean): json {\r\n if (reset) {\r\n this.pageIndex = 1;\r\n }\r\n console.log(this.pageIndex);\r\n let params: any = {\r\n page: this.pageIndex,\r\n limit: this.pageSize,\r\n sort: this.getSortInfo()\r\n };\r\n for (const key in this.atrForm.value) {\r\n if (this.atrForm.value[key] && this.atrForm.value[key] != null && this.atrForm.value[key] != \"\") {\r\n if (this.getHederType(key) == \"dateRange\") {\r\n let begin = key + \"Begin\";\r\n let end = key + \"End\";\r\n let formate = 'yyyy-MM-dd 00:00:00'\r\n let nzShowTime: any = this.getHederType(key, 'nzShowTime')\r\n if (nzShowTime) {\r\n formate = 'yyyy-MM-dd HH:mm:ss'\r\n if (nzShowTime.nzFormat) {\r\n formate = 'yyyy-MM-dd ' + nzShowTime.nzFormat;\r\n }\r\n }\r\n params[begin] = formatDate((this.atrForm.value[key][0] as Date), formate, this.locale);\r\n params[end] = formatDate((this.atrForm.value[key][1] as Date), formate, this.locale);\r\n } else if (this.getHederType(key) == \"dayRange\") {\r\n let begin = key + \"Begin\";\r\n let end = key + \"End\";\r\n let formate = 'yyyy-MM-dd 00:00:00'\r\n params[begin] = formatDate((this.atrForm.value[key][0] as Date), formate, this.locale);\r\n params[end] = formatDate((this.atrForm.value[key][1] as Date), formate, this.locale);\r\n } else if (this.getHederType(key) == \"sdate\") {\r\n params[key] = formatDate((this.atrForm.value[key] as Date), 'yyyy-MM-dd 00:00:00', this.locale);\r\n } else if (this.getHederType(key) == \"treeSelect\") {\r\n let value = this.atrForm.value[key];\r\n if (typeof value == 'string') {\r\n params[key] = this.atrForm.value[key];\r\n } else {\r\n params[key] = this.atrForm.value[key].join();\r\n }\r\n } else if (this.getHederType(key) == \"cascader\" || this.getHederType(key,'nzMode') == 'multiple') {\r\n params[key] = this.atrForm.value[key].join();\r\n } else {\r\n params[key] = this.atrForm.value[key];\r\n }\r\n\r\n }\r\n }\r\n\r\n params = Object.assign(params, this.defaultParams);\r\n console.log(params)\r\n return params;\r\n\r\n }\r\n\r\n getHederType(cusKey: string, typeKey?: string) {\r\n let type = null;\r\n for (let header of this.queryOpts.headers) {\r\n if (cusKey == header.key) {\r\n type = header[typeKey || 'type'];\r\n break;\r\n }\r\n }\r\n return type;\r\n }\r\n\r\n setDefaultParams(params: any, reset: boolean = true) {\r\n this.defaultParams = params;\r\n this.query(reset);\r\n }\r\n\r\n getSortInfo(): string {\r\n let orderby: any = [];\r\n for (const key in this.sortMap) {\r\n if (this.sortMap[key] == 'ascend') {\r\n orderby.push(key + \"|\" + \"asc\")\r\n } else if (this.sortMap[key] == 'descend') {\r\n orderby.push(key + \"|\" + \"desc\")\r\n }\r\n }\r\n let order = \"\";\r\n if (orderby.length < 1 && this.queryOpts.sort) {\r\n order = this.queryOpts.sort\r\n } else\r\n order = orderby.join(\",\");\r\n return order;\r\n }\r\n\r\n query(reset: boolean = false) {\r\n let params = this.getQueryParams(reset);\r\n if(this.queryHeaders){\r\n params = Object.assign({},this.queryHeaders,params);\r\n console.log('查询条件',params)\r\n }\r\n if (this.queryOpts.url) {\r\n this.loading = true;\r\n\r\n this.httpService.post(this.queryOpts.url, params, ToolsUtil.getHttpOptions()).subscribe(\r\n result => {\r\n this.loading = false;\r\n if (result.status == 200) {\r\n let action: any = {};\r\n action[\"result\"] = result;\r\n action[\"params\"] = params;\r\n this.queryBack.emit(action);\r\n this.total = result?.page?.totalResult;\r\n this.tableDatas = result.data;\r\n this.getRowSpan();\r\n this.mapOfCheckedId = {};\r\n this.curChecked = -1;\r\n this.refreshStatus();\r\n }\r\n },\r\n error => {\r\n this.loading = false;\r\n }\r\n )\r\n } else {\r\n this.queryBack.emit({name: '', code: 'query', data: params})\r\n }\r\n }\r\n\r\n contextMenu($event: any, menu: NzDropdownMenuComponent) {\r\n console.log($event)\r\n this.nzContextMenuService.create($event, menu);\r\n }\r\n\r\n log(value: string[]): void {\r\n console.log(value);\r\n for (let table of this.queryOpts.tables) {\r\n let flag = false;\r\n for (let item of value) {\r\n if (item == table.key) {\r\n table.isShow = true;\r\n flag = true\r\n }\r\n }\r\n if (!flag)\r\n table.isShow = false;\r\n\r\n }\r\n console.log(this.queryOpts.tables);\r\n }\r\n\r\n checkShowTd(item: Table, index: any): boolean {\r\n if (!item.isShow) {\r\n return false;\r\n }\r\n if (item.isRowSpan) {\r\n // 合并行,返回值与上一行相同则隐藏这一行;\r\n if (index == 0) {\r\n return true;\r\n }\r\n const key = item.key ? item.key : \"\";\r\n const cur = this.tableDatas[index][key];\r\n const pre = this.tableDatas[index - 1][key];\r\n\r\n return !(cur == pre);\r\n }\r\n return item.isShow;\r\n }\r\n\r\n checkRowSpan(item: Table, data: any) {\r\n if (item.isRowSpan) {\r\n return this.rowSpanMap[item.key ? item.key : \"\"][data[item.key ? item.key : \"\"]].num\r\n }\r\n return 1;\r\n }\r\n\r\n getRowSpan() {\r\n let isRowSpan = false;\r\n this.queryOpts.tables.forEach(\r\n (item: any) => {\r\n if (item.isRowSpan) {\r\n isRowSpan = true;\r\n this.rowSpanMap[item.key] = {};\r\n }\r\n }\r\n );\r\n if (!isRowSpan) {\r\n return;\r\n }\r\n let keys = Object.keys(this.rowSpanMap);\r\n this.tableDatas.forEach(\r\n (item: any) => {\r\n keys.forEach(\r\n key => {\r\n const value = item[key];\r\n if (!this.rowSpanMap[key][value]) {\r\n this.rowSpanMap[key][value] = {\r\n num: 1\r\n };\r\n } else {\r\n this.rowSpanMap[key][value].num += 1;\r\n }\r\n }\r\n )\r\n }\r\n );\r\n }\r\n\r\n drop(event: CdkDragDrop<string[]>): void {\r\n moveItemInArray(this.tableDatas, event.previousIndex, event.currentIndex);\r\n let action: TableAction = {\r\n name: 'drag',\r\n code: 'drag',\r\n type: \"rows\"\r\n };\r\n action.datas = this.tableDatas;\r\n if (this.tableDatas && this.tableDatas.length > 0) {\r\n action.firstData = this.tableDatas[0];\r\n }\r\n action.numberOfChecked = 1;\r\n this.tableAction.emit(action);\r\n }\r\n\r\n}\r\n","<form nz-form [formGroup]=\"atrForm\" class=\"ant-advanced-search-form\"\r\n *ngIf=\"queryOpts.headers.length >0 || queryOpts.actions.length >0\">\r\n <div nz-row [nzGutter]=\"24\" [hidden]=\"!isCollapse\">\r\n <div nz-col [hidden]=\"!header.isShow \" *ngFor=\"let header of queryOpts.headers\"\r\n [nzSpan]=\"header.span\">\r\n <app-table-form-item\r\n [header]=\"header\"\r\n [ngModel]=\"header.defaultVal\"\r\n [dictList]=\"dicts[header.dictCode]\"\r\n [formControlName]=\"header.key\"\r\n (headerAction)=\"headerAction.emit($event)\"></app-table-form-item>\r\n </div>\r\n <ng-content select=\"[header-slot]\"></ng-content>\r\n </div>\r\n <div nz-row nzType=\"flex\">\r\n <div class=\"action-area\" nz-col [nzSpan]=\"16\">\r\n <ng-container *ngFor=\"let action of queryOpts.actions\">\r\n <atr-local-upload *ngIf=\"action.gType == 'upload'\" [code]=\"action.code\" [url]=\"action.url\" [name]=\"action.name\"\r\n [withoutRole]=\"action.withoutRole\"\r\n style=\" display: inline-block;\"></atr-local-upload>\r\n <ng-container *ngIf=\"!action.gType\">\r\n <button nz-button [nzType]=\"'primary'\" nzSize=\"small\" (click)=\"doAction(action.code)\"\r\n *atrRole=\"action.withoutRole ? null:action.code\"\r\n [disabled]=\"isEnable(action.operator)\">{{action.name}}</button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <div nz-col [nzSpan]=\"8\" class=\"search-area\" *ngIf=\"queryOpts.headers.length >0 && !queryOpts.isHideQuery\">\r\n <button nz-button nzSize=\"small\" [nzType]=\"'primary'\" (click)=\"query(true)\">查询</button>\r\n <button nz-button nzSize=\"small\" (click)=\"resetForm()\">重置</button>\r\n <a class=\"collapse\" (click)=\"toggleCollapse()\" *ngIf=\"queryOpts.headers.length > 0 \">\r\n {{isCollapse ? '收起':'展开'}}\r\n <i nz-icon [nzType]=\"isCollapse ? 'up' : 'down'\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n <div *ngIf=\"title\" class=\"title\">{{title}}</div>\r\n</form>\r\n<div class=\"search-result-list\" #tableContent [spinLoading]=\"loading\" HqSpin>\r\n <nz-table *ngIf=\"isAllLoad \" #basicTable class=\"main-table\"\r\n [nzScroll]=\"scrollSize\"\r\n nzSize=\"middle\"\r\n nzBordered\r\n [nzShowPagination]=\"showPagination\"\r\n nzShowSizeChanger\r\n [nzFrontPagination]=\"false\"\r\n [nzLoading]=\"loading\"\r\n [nzTotal]=\"total\"\r\n [(nzPageIndex)]=\"pageIndex\"\r\n [(nzPageSize)]=\"pageSize\"\r\n [nzData]=\"tableDatas\"\r\n (nzPageIndexChange)=\"query()\"\r\n (nzPageSizeChange)=\"query(true)\"\r\n [nzShowTotal]=\"totalTemplate\"\r\n >\r\n <ng-content select=\"[slot1]\"></ng-content>\r\n <ng-container *ngIf=\"!isHideTable\">\r\n <thead>\r\n <tr (contextmenu)=\"contextMenu($event,menu)\" class=\"header-tr\">\r\n\r\n <th *ngIf=\"queryOpts.checkBox?.isShowCheckbox\"\r\n [nzLeft]=\"true\"\r\n class=\"left-zindex-header\"\r\n nzShowCheckbox\r\n style=\"z-index: 90!important;\"\r\n nzWidth=\"30px\"\r\n nzAlign=\"center\"\r\n [(nzChecked)]=\"isAllDisplayDataChecked\"\r\n [nzIndeterminate]=\"isIndeterminate\"\r\n (nzCheckedChange)=\"checkAll($event)\"\r\n ></th>\r\n <th [nzLeft]=\"true\" class=\"left-zindex-header\" *ngIf=\"queryOpts.isIndex\" nzWidth=\"30px\" nzAlign=\"center\">#</th>\r\n <th [nzLeft]=\"true\" class=\"left-zindex-header\" *ngIf=\"queryOpts.checkBox?.isRadio\" nzWidth=\"30px\"\r\n nzAlign=\"center\">#\r\n </th>\r\n <ng-container *ngFor=\"let item of queryOpts.tables; \">\r\n <th *ngIf=\"item.isShow \"\r\n [nzShowSort]=item.sortable\r\n nz-resizable\r\n nzPreview\r\n nzBounds=\"window\"\r\n [(nzSortOrder)]=\"sortMap[item.sortKey]\"\r\n (nzSortOrderChange)=\"sort(item.sortKey, $event)\"\r\n [nzWidth]=\"item.width\"\r\n [nzMaxWidth]=\"256\"\r\n [nzMinWidth]=\"60\"\r\n [nzRight]=\"item.isRight ? true : false\"\r\n [nzLeft]=\"item.isLeft ? true : false\"\r\n [ngClass]=\"{'left-zindex-header':item.isLeft ? true : false}\"\r\n (nzResizeEnd)=\"onResize($event, item.name)\">\r\n {{item.name}}<!-- {width}: { width: number }, col: string-->\r\n <nz-resize-handle nzDirection=\"right\">\r\n <div class=\"resize-trigger\"></div>\r\n </nz-resize-handle>\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n\r\n\r\n <tbody *ngIf=\"!allowDrag\">\r\n\r\n <tr *ngFor=\"let data of basicTable.data;index as i\" class=\"t-tr\" (click)=\"selectRow(data,i)\"\r\n [ngStyle]=\"{'color':isShowColor(data)}\"\r\n [ngClass]=\"{'selected': i == curChecked}\" (dblclick)=\"dbclickData(data,i)\">\r\n\r\n <td [nzLeft]=\"true\"\r\n class=\"left-zindex\"\r\n *ngIf=\"queryOpts.checkBox?.isShowCheckbox\"\r\n nzShowCheckbox\r\n [(nzChecked)]=\"mapOfCheckedId[data.id]\"\r\n (nzCheckedChange)=\"refreshStatus()\"\r\n ></td>\r\n <td [nzLeft]=\"true\"\r\n class=\"left-zindex\"\r\n *ngIf=\"queryOpts.checkBox?.isRadio\" nzShowCheckbox (nzCheckedChange)=\"selectRow(data,i)\"\r\n [(nzChecked)]=\"mapOfCheckedId[data.id]\"></td>\r\n <td [nzLeft]=\"true\"\r\n *ngIf=\"queryOpts.isIndex\" nzAlign=\"center\" style=\"padding:12px 0;\" nzBreakWord>{{i + 1}}</td>\r\n <ng-container *ngFor=\"let item of queryOpts.tables;\">\r\n\r\n <td [nzLeft]=\"item.isLeft ? true : false\"\r\n [ngClass]=\"{'left-zindex':item.isLeft ? true : false}\"\r\n [nzRight]=\"item.isRight ? true : false\"\r\n nzBreakWord\r\n [rowSpan]=\"checkRowSpan(item,data)\"\r\n *ngIf=\"checkShowTd(item,i) \">\r\n <app-table-td [data]=\"data\"\r\n [item]=\"item\"\r\n [i]=\"i\"\r\n (doActionByRowAction)=\"doActionByRow2($event)\"\r\n ></app-table-td>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n\r\n </tbody>\r\n <tbody *ngIf=\"allowDrag\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <tr cdkDrag *ngFor=\"let data of basicTable.data;index as i\" class=\"t-tr\" (click)=\"selectRow(data,i)\"\r\n [ngClass]=\"{'selected': i == curChecked}\">\r\n <td [nzLeft]=\"true\"\r\n class=\"left-zindex\"\r\n *ngIf=\"queryOpts.checkBox?.isShowCheckbox\"\r\n nzShowCheckbox\r\n [(nzChecked)]=\"mapOfCheckedId[data.id]\"\r\n (nzCheckedChange)=\"refreshStatus()\"\r\n ></td>\r\n <!--\r\n <td [nzLeft]=\"item.isLeft ? true : false\" [ngClass]=\"{'left-zindex':item.isLeft ? true : false}\" [nzRight]=\"item.isRight ? true : false\"\r\n *ngIf=\"queryOpts.isShowCheckbox\"\r\n nzShowCheckbox\r\n [(nzChecked)]=\"mapOfCheckedId[data.id]\"\r\n (nzCheckedChange)=\"refreshStatus()\"\r\n ></td>\r\n -->\r\n <td [nzLeft]=\"true\"\r\n class=\"left-zindex\"\r\n *ngIf=\"queryOpts.checkBox?.isRadio\" nzShowCheckbox (nzCheckedChange)=\"selectRow(data,i)\"\r\n [(nzChecked)]=\"mapOfCheckedId[data.id]\"></td>\r\n <td [nzLeft]=\"true\"\r\n class=\"left-zindex\"\r\n *ngIf=\"queryOpts.isIndex\" nzAlign=\"center\" style=\"padding:12px 0;\" nzBreakWord>{{i + 1}}</td>\r\n\r\n <ng-container *ngFor=\"let item of queryOpts.tables;\">\r\n\r\n <td [nzLeft]=\"item.isLeft ? true : false\"\r\n [ngClass]=\"{'left-zindex':item.isLeft ? true : false}\"\r\n [nzRight]=\"item.isRight ? true : false\"\r\n nzBreakWord\r\n [rowSpan]=\"checkRowSpan(item,data)\"\r\n *ngIf=\"checkShowTd(item,i) \">\r\n <app-table-td [data]=\"data\"\r\n [item]=\"item\"\r\n [i]=\"i\"\r\n (doActionByRowAction)=\"doActionByRow2($event)\"\r\n ></app-table-td>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n\r\n </ng-container>\r\n\r\n\r\n <ng-template #totalTemplate let-total>共 {{ total }} 条记录</ng-template>\r\n </nz-table>\r\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\r\n <div class=\"tabel-colunmn\">\r\n <nz-checkbox-wrapper style=\"width: 100%;margin-top: 30px;\" (nzOnChange)=\"log($event)\">\r\n <div nz-row>\r\n <div nz-col nzSpan=\"24\" *ngFor=\"let item of queryOpts.tables\">\r\n <label nz-checkbox nzValue=\"{{item.key}}\" [ngModel]=\"item.isShow\">{{item.name}}</label>\r\n </div>\r\n </div>\r\n </nz-checkbox-wrapper>\r\n <div class=\"tabel-colunmn-header\">请选择列表显示内容</div>\r\n </div>\r\n </nz-dropdown-menu>\r\n</div>\r\n\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-video',\r\n templateUrl: './video.component.html',\r\n styleUrls: ['./video.component.less']\r\n})\r\nexport class VideoComponent {\r\n\r\n @Input() url: any;\r\n\r\n constructor() { }\r\n\r\n}\r\n","<vg-player>\r\n <vg-controls vgFor=\"__VG__VIDEO__\" >\r\n <vg-play-pause></vg-play-pause>\r\n <vg-scrub-bar>\r\n <vg-scrub-bar-current-time></vg-scrub-bar-current-time>\r\n <vg-scrub-bar-buffering-time></vg-scrub-bar-buffering-time>\r\n </vg-scrub-bar>\r\n <vg-time-display vgProperty=\"left\" vgFormat=\"mm:ss\"></vg-time-display>\r\n\r\n <!-- <vg-volume></vg-volume> -->\r\n <vg-mute></vg-mute>\r\n\r\n <vg-fullscreen></vg-fullscreen>\r\n </vg-controls>\r\n\r\n <video\r\n id=\"__VG__VIDEO__\"\r\n #media\r\n [vgMedia]=\"$any(media)\"\r\n preload=\"auto\"\r\n >\r\n <source [src]=\"url\" type=\"video/mp4\">\r\n </video>\r\n</vg-player>\r\n","import {Component, OnInit, Input, Output, EventEmitter, Injector, ViewChild} from '@angular/core';\r\nimport {Observable} from 'rxjs';\r\nimport {HttpRequest, HttpEvent, HttpEventType, HttpResponse, HttpClient, HttpHeaders} from '@angular/common/http';\r\nimport {NzModalRef, NzModalService} from 'ng-zorro-antd/modal';\r\nimport {NzUploadChangeParam, NzUploadFile, NzUploadXHRArgs} from 'ng-zorro-antd/upload';\r\nimport {environment} from \"ng-zorro-antd/core/environments\";\r\nimport {atr_static_datas, ImageOpts} from \"../../../core/base/atr-common\";\r\nimport {HttpService} from \"../../../core/services/http.service\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\nimport {NzImageService} from 'ng-zorro-antd/image';\r\n\r\n@Component({\r\n selector: 'atr-img-upload',\r\n templateUrl: './upload.component.html',\r\n styleUrls: ['./upload.component.less']\r\n})\r\nexport class UploadComponent implements OnInit {\r\n\r\n @Input() opts: ImageOpts | any;\r\n @Input() isEdit = true;\r\n @Input() allowChangSeq = false;\r\n tplModal: NzModalRef | any;\r\n uploadUrl: any = \"\";\r\n\r\n uploadData: any = {}\r\n\r\n showUploadList = {\r\n showPreviewIcon: true,\r\n showRemoveIcon: true,\r\n hidePreviewIconInNonImage: true\r\n };\r\n\r\n @Output()\r\n afterChange: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n optsChange: EventEmitter<any> = new EventEmitter();\r\n\r\n\r\n previewImage: string | any = '';\r\n previewVisible = false;\r\n changeVisible = false;\r\n\r\n constructor(private injector: Injector, private nzImageService: NzImageService,\r\n private httpClient: HttpClient, private modalService: NzModalService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n getFileTyeIcon(fileType: string, fileName: string) {\r\n let thumbUrl = this.getFileThumbUrl(fileType);\r\n if (thumbUrl === '') {\r\n thumbUrl = this.getThumbUrl(fileName);\r\n }\r\n return thumbUrl;\r\n }\r\n\r\n getThumbUrl(path: string): string {\r\n\r\n if (!path) {\r\n return '';\r\n }\r\n // 后缀获取\r\n if (path.endsWith('.mp4')) {\r\n return '../../../assets/video.jpg';\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n getFileThumbUrl(type: string): string {\r\n let thumbUrl = '';\r\n if (type === 'video/mp4' || type === 'mp4') {\r\n thumbUrl = '../../../assets/video.jpg';\r\n }\r\n return thumbUrl;\r\n }\r\n\r\n onChange(params: NzUploadChangeParam) {\r\n console.log(params);\r\n if (params.type == \"success\" || params.type == \"removed\") {\r\n\r\n this.opts.imageList = [];\r\n setTimeout(() => {\r\n this.opts.imageList = params.fileList.map((file: any) => {\r\n\r\n if (file.type == 'video/mp4' && file.uid === params.file.uid) {\r\n let thumbUrl = this.getFileTyeIcon(file.type, file.name);\r\n file.thumbUrl = thumbUrl ? thumbUrl : file.thumbUrl;\r\n file.url = file.originFileObj ? atr_static_datas.OSS_URL + file.originFileObj['key'] : file['path'];\r\n }\r\n return file;\r\n });\r\n }, 50);\r\n let fileUrls: any[] = [];\r\n for (let file of params.fileList) {\r\n if (file[\"key\"] != undefined) {\r\n fileUrls.push(file[\"key\"]);\r\n continue;\r\n }\r\n if (file.originFileObj) {\r\n let originFileObj: any = file.originFileObj\r\n if (originFileObj[\"key\"] != undefined) {\r\n fileUrls.push(originFileObj[\"key\"])\r\n }\r\n }\r\n }\r\n\r\n this.afterChange.emit({key: this.opts.key, values: fileUrls.join(\",\")});\r\n this.optsChange.emit(this.opts)\r\n }\r\n }\r\n\r\n private get httpService(): HttpService {\r\n return this.injector.get(HttpService);\r\n }\r\n\r\n handlePreview = (file: NzUploadFile) => {\r\n this.previewImage = file.url || file.thumbUrl;\r\n this.previewVisible = true;\r\n };\r\n\r\n remove = (file: NzUploadFile) => {\r\n if (!this.isEdit) {\r\n return false;\r\n }\r\n console.log(file);\r\n if (this.opts && this.opts.removeAction) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n beforeUpload = (file: NzUploadFile, fileList: NzUploadFile[]) => {\r\n return new Observable<boolean>(observe => {\r\n let fileName;\r\n if (this.opts.keepName) {\r\n fileName = file.name;\r\n } else {\r\n fileName = ToolsUtil.getRandomFileName() + \".\" + ToolsUtil.getFileExt(file.name);\r\n }\r\n this.httpService.post(atr_static_datas.OSS_POLICY, {\r\n dir: this.opts.uploadDir,\r\n fileName: fileName,\r\n 'success_action_status': '200'\r\n }, ToolsUtil.getHttpOptions()).subscribe(\r\n result => {\r\n\r\n if (result.status == 200) {\r\n this.uploadData[file.uid] = result.data;\r\n observe.next(true);\r\n } else\r\n observe.next(false);\r\n observe.unsubscribe()\r\n },\r\n error => {\r\n observe.next(false);\r\n observe.unsubscribe()\r\n }\r\n )\r\n })\r\n\r\n }\r\n customReq = (item: NzUploadXHRArgs) => {\r\n const formData = new FormData();\r\n let uploadData = this.uploadData[item.file.uid];\r\n for (let key in uploadData) {\r\n if (key != 'host')\r\n formData.append(key, uploadData[key])\r\n }\r\n formData.append('file', item.file as any);\r\n const req = new HttpRequest('POST', uploadData.host!, formData, {\r\n reportProgress: true\r\n });\r\n\r\n return this.httpClient.request(req).subscribe(\r\n (event: HttpEvent<any>) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n if (event.total! > 0) {\r\n (event as any).percent = (event.loaded / event.total!) * 100;\r\n }\r\n item.onProgress!(event, item.file!);\r\n } else if (event instanceof HttpResponse) {\r\n item.file[\"key\"] = uploadData.key;\r\n item.onSuccess!(event.body, item.file!, event);\r\n }\r\n },\r\n err => {\r\n item.onError!(err, item.file!);\r\n }\r\n );\r\n };\r\n\r\n openBannerSeq(tplContent: any, tplFooter: any) {\r\n this.tplModal = this.modalService.create({\r\n nzTitle: \"修改图片顺序\",\r\n nzContent: tplContent,\r\n nzFooter: tplFooter,\r\n nzMaskClosable: false,\r\n nzClosable: false,\r\n nzOnOk: () => console.log('Click ok')\r\n });\r\n console.log(this.opts.imageList);\r\n this.changeVisible = true;\r\n }\r\n\r\n destroyTplModal(): void {\r\n if (this.tplModal)\r\n this.tplModal.destroy();\r\n }\r\n\r\n arrowUp(index: any) {\r\n let img = this.opts.imageList[index];\r\n this.opts.imageList[index] = this.opts.imageList[index - 1];\r\n this.opts.imageList[index - 1] = img;\r\n }\r\n\r\n arrowDown(index: any) {\r\n let img = this.opts.imageList[index];\r\n this.opts.imageList[index] = this.opts.imageList[index + 1];\r\n this.opts.imageList[index + 1] = img;\r\n }\r\n\r\n saveSeq() {\r\n this.destroyTplModal();\r\n let imgs = this.opts.imageList;\r\n this.opts.imageList = [];\r\n setTimeout(() => {\r\n this.opts.imageList = imgs;\r\n console.log(this.opts.imageList);\r\n let fileUrls: any = [];\r\n for (let file of this.opts.imageList) {\r\n if (file[\"key\"] != undefined) {\r\n fileUrls.push(file[\"key\"]);\r\n continue;\r\n }\r\n if (file.originFileObj && file.originFileObj[\"key\"] != undefined)\r\n fileUrls.push(file.originFileObj[\"key\"])\r\n }\r\n\r\n this.afterChange.emit({key: this.opts.key, values: fileUrls.join(\",\")});\r\n }, 50)\r\n\r\n }\r\n\r\n dragnumber(numer: any) {\r\n console.log(numer);\r\n console.log('or', this.opts.imageList)\r\n console.log('new', numer)\r\n this.saveSeq();\r\n // this.opts.imageList = numer\r\n }\r\n\r\n delImg(numer: any) {\r\n console.log(numer);\r\n this.opts.imageList = this.opts.imageList.filter((v: any, i: any) => i != numer)\r\n // this.opts.imageList = numer\r\n }\r\n\r\n priviewImg(img: any) {\r\n let url = ToolsUtil.getOssUrl(this.getImgUrl(img))\r\n console.log(url)\r\n this.nzImageService.preview([{\r\n src: url,\r\n alt: 'ng-zorro'\r\n }], {nzZoom: 1.5, nzRotate: 0});\r\n }\r\n\r\n getImgUrl(img: any) {\r\n if (img.originFileObj && img.originFileObj.key) {\r\n return img.originFileObj.key\r\n }\r\n return (img.url || img.thumbUrl)\r\n }\r\n}\r\n","<div class=\"clearfix\">\r\n <nz-upload\r\n *ngIf=\"opts && opts?.uploadType == 'drag'\"\r\n nzType=\"drag\"\r\n nzAction=\"\"\r\n [nzBeforeUpload]=\"beforeUpload\"\r\n [nzRemove]=\"remove\"\r\n [nzCustomRequest]=\"customReq\"\r\n (nzChange)=\"onChange($event)\"\r\n [nzType]=\"opts?.uploadType\"\r\n [nzAccept]=\"opts.nzFileType\"\r\n [nzLimit]=\"'1'\"\r\n >\r\n <p class=\"ant-upload-drag-icon\">\r\n <i nz-icon nzType=\"inbox\"></i>\r\n </p>\r\n <p class=\"ant-upload-text\">单击或拖动文件到此区域上传</p>\r\n </nz-upload>\r\n <nz-upload\r\n *ngIf=\"opts && opts?.uploadType != 'drag'\"\r\n nzAction=\"\"\r\n nzListType=\"picture-card\"\r\n [(nzFileList)]=\"opts.imageList\"\r\n [nzShowButton]=\"opts.imageList.length < opts.limit\"\r\n [nzShowUploadList]=\"showUploadList\"\r\n [nzPreview]=\"handlePreview\"\r\n [nzRemove]=\"remove\"\r\n [nzBeforeUpload]=\"beforeUpload\"\r\n [nzCustomRequest]=\"customReq\"\r\n (nzChange)=\"onChange($event)\"\r\n [nzType]=\"opts?.uploadType\"\r\n [nzAccept]=\"opts.nzFileType\"\r\n [nzDisabled]=\"!isEdit\"\r\n [nzLimit]=\"'1'\"\r\n [nzFileListRender]=\"opts && isEdit && allowChangSeq && opts.imageList.length > 0 ? fileListTmp : null\"\r\n >\r\n <i nz-icon nzType=\"plus\"></i>\r\n <div class=\"ant-upload-text\">上传图片</div>\r\n </nz-upload>\r\n <!-- <a *ngIf=\"allowChangSeq && isEdit && opts.imageList.length > 1\" (click)=\"openBannerSeq(imgsContent, tplFooter)\"\r\n style=\"margin-left: 10px; \"\r\n ><i nz-icon nzType=\"plus\" nzTheme=\"outline\" style=\"color: #1890ff; font-size: 15px\"></i>调整图片顺序</a>-->\r\n <nz-modal\r\n [nzVisible]=\"previewVisible\"\r\n [nzContent]=\"modalContent\"\r\n [nzFooter]=\"null\"\r\n (nzOnCancel)=\"previewVisible = false\"\r\n >\r\n <ng-template #modalContent>\r\n <img *ngIf=\"!previewImage.endsWith('.mp4')\" [src]=\"previewImage\" [ngStyle]=\"{ width: '100%' }\"/>\r\n <div style=\"width: 100%;margin-top: 15px\">\r\n <app-video *ngIf=\"previewImage.endsWith('.mp4')\" [url]=\"previewImage\"></app-video>\r\n </div>\r\n </ng-template>\r\n </nz-modal>\r\n <ng-template #imgsContent>\r\n <ng-container *ngIf=\"opts && opts.imageList\">\r\n <ng-container *ngFor=\"let imgs of opts.imageList;let i = index\">\r\n <div class=\"img-div\">\r\n <img [src]=\"imgs.url || imgs.thumbUrl\" [ngStyle]=\"{ width: '100px',display: 'inline-block', margin:'10px' }\"/>\r\n <div style=\"margin-right: 20px\">\r\n <a title=\"上移\" *ngIf=\" i > 0\" style=\"display: block;\" (click)=\"arrowUp(i)\"><i nz-icon nzType=\"arrow-up\"\r\n nzTheme=\"outline\"\r\n style=\"color: #1890ff; font-size: 15px;\"></i>\r\n 上移</a>\r\n <a title=\"下移\" *ngIf=\" i < opts.imageList.length - 1\" (click)=\"arrowDown(i)\"><i nz-icon nzType=\"arrow-down\"\r\n nzTheme=\"outline\"\r\n style=\"color: #1890ff; font-size: 15px\"></i>\r\n 下移</a>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </ng-template>\r\n <!-- </nz-modal>-->\r\n</div>\r\n<ng-template #fileListTmp>\r\n <div dragula=\"dragulaBag\" [(dragulaModel)]=\"opts.imageList\" (dragulaModelChange)=\"dragnumber($event)\">\r\n <ng-container *ngFor=\"let imgs of opts.imageList;let i = index\">\r\n <div class=\"img-div img-pre\" style=\"\">\r\n <img [src]=\"getImgUrl(imgs) |ossImg\" [ngStyle]=\"{ width: '100px',display: 'inline-block', margin:'10px' }\"/>\r\n <div>\r\n <span (click)=\"priviewImg(imgs)\" nz-icon nzType=\"eye\" nzTheme=\"outline\"></span>\r\n <span (click)=\"delImg(i)\" nz-icon nzType=\"delete\" nzTheme=\"outline\"></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n</ng-template>\r\n<ng-template #tplFooter>\r\n <button nz-button nzType=\"default\" (click)=\"destroyTplModal()\">\r\n 取消\r\n </button>\r\n <button nz-button nzType=\"primary\" (click)=\"saveSeq()\">\r\n 保存顺序\r\n </button>\r\n</ng-template>\r\n\r\n\r\n","import {ValidatorFn, AbstractControl} from \"@angular/forms\"\r\n\r\n//响应式表单自定义模板验证器\r\nexport function telphoneValidator():ValidatorFn{\r\n return (contrl:AbstractControl): {[key: string]: any} | null =>{\r\n let nameExp = new RegExp('^1[3456789]\\\\d{9}$');\r\n const forbidden = nameExp.test(contrl.value);\r\n return !forbidden ? {'telphone': {value: contrl.value}} : null;\r\n }\r\n}","import {Injectable} from '@angular/core';\r\nimport {Observable} from \"rxjs\";\r\nimport { NzDrawerService } from 'ng-zorro-antd/drawer';\r\nimport {environment} from \"ng-zorro-antd/core/environments\";\r\nimport {HttpService} from \"../../core/services/http.service\";\r\nimport {ToolsUtil} from \"../../core/utils/ToolsUtil\";\r\nimport {atr_static_datas} from \"../../core/base/atr-common\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ShareService {\r\n\r\n constructor(private drawerService: NzDrawerService, private httpService: HttpService) {\r\n }\r\n getDicList(item:any) {\r\n return new Observable<any>(observe => {\r\n if (!item.selectUrl || !item.selectUrl.url) {\r\n return;\r\n }\r\n let selectUrl = item.selectUrl;\r\n let url = selectUrl.host == 'oss' ? atr_static_datas.OSS_URL + selectUrl.url : selectUrl.url;\r\n let options = selectUrl.host == 'oss' ? {} : ToolsUtil.getHttpOptions();\r\n if (selectUrl.type == 'get') {\r\n this.httpService.get(url, {}, options).subscribe(res => {\r\n observe.next({status:200,item: this.getDicListBase(res, item)});\r\n observe.unsubscribe()\r\n },error => {\r\n observe.next(error);\r\n observe.unsubscribe()\r\n })\r\n } else {\r\n this.httpService.post(url, {}, options).subscribe(res => {\r\n observe.next({status:200,item: this.getDicListBase(res, item)});\r\n observe.unsubscribe()\r\n },error => {\r\n observe.next(error);\r\n observe.unsubscribe()\r\n })\r\n }\r\n })\r\n\r\n\r\n }\r\n getDicListBase(res:any, item:any) {\r\n let keys = item.selectUrl.convert ? item.selectUrl.convert.split(',') : null;\r\n if (item.type == 'treeSelect') {\r\n item.treeList = res.data.filter((child:any) => {\r\n if (keys) {\r\n keys.forEach((v:any) => {\r\n let vs = v.split(\"|\");\r\n child[vs[0]] = child[vs[1]];\r\n });\r\n }\r\n // child.key = child.id;\r\n // child.title = child.realName;\r\n return true\r\n });\r\n } else if (item.type == 'selectCus' || item.type == 'selectc') {\r\n item.dictList = res.data.filter((child:any) => {\r\n if (keys) {\r\n keys.forEach((v:any) => {\r\n let vs = v.split(\"|\");\r\n child[vs[0]] = child[vs[1]];\r\n });\r\n }\r\n // child.value = child.id;\r\n // child.label = child.name;\r\n return true;\r\n });\r\n } else if (item.type == 'cascader') {\r\n item.dictList = res.data\r\n this.convertCascader(res.data, keys);\r\n }\r\n return item;\r\n }\r\n convertCascader(arrs:any, keys:any) {\r\n if (!arrs) {\r\n return\r\n }\r\n arrs.forEach((child:any) => {\r\n if (keys) {\r\n keys.forEach((v:any) => {\r\n let vs = v.split(\"|\");\r\n child[vs[0]] = child[vs[1]];\r\n });\r\n }\r\n child.nzValueProperty = {\r\n label: child.label,\r\n value: child.value,\r\n };\r\n if (child.children) {\r\n this.convertCascader(child.children, keys);\r\n } else {\r\n child.isLeaf = true;\r\n }\r\n });\r\n }\r\n}\r\n","import {Component, OnInit, Input, forwardRef, ViewChild} from '@angular/core';\r\nimport {Subject} from 'rxjs';\r\nimport {debounceTime} from 'rxjs/operators';\r\nimport Quill from 'quill';\r\n// import ImageResize from \"quill-image-resize-module\";\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {NzMessageService} from 'ng-zorro-antd/message';\r\nimport {UploadOssService} from \"../../../core/services/upload-oss.service\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\n\r\n// Quill.register('modules/imageResize', ImageResize);\r\nconst icons = Quill.import('ui/icons');\r\nicons.undo = `<svg viewbox=\"0 0 18 18\">\r\n <polygon class=\"ql-fill ql-stroke\" points=\"6 10 4 12 2 10 6 10\"></polygon>\r\n <path class=\"ql-stroke\" d=\"M8.09,13.91A4.6,4.6,0,0,0,9,14,5,5,0,1,0,4,9\"></path>\r\n</svg>`;\r\nicons.redo = `<svg viewbox=\"0 0 18 18\">\r\n <polygon class=\"ql-fill ql-stroke\" points=\"12 10 14 12 16 10 12 10\"></polygon>\r\n <path class=\"ql-stroke\" d=\"M9.91,13.91A4.6,4.6,0,0,1,9,14a5,5,0,1,1,5-5\"></path>\r\n</svg>`;\r\n\r\n@Component({\r\n selector: 'app-quill-editor',\r\n templateUrl: './quill-editor.component.html',\r\n styleUrls: ['./quill-editor.component.less'],\r\n providers: [\r\n UploadOssService,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QuillEditorComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class QuillEditorComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() placeholder = '请输入';\r\n @Input() styles: any = {height: '350px'};\r\n @Input() value: string | any; // 组件对应的 “ ngModel ”\r\n @Input() readOnly: boolean = false;\r\n @Input() needImgSeq: boolean = false;\r\n editor: any;\r\n onChangeListener: any; // 改变值回调\r\n onTouchedListener: any; // 交互回调\r\n imgUrls: any = [];\r\n editor$ = new Subject<string>();\r\n imgVis = false;\r\n\r\n constructor(private uploadOssService: UploadOssService, private message: NzMessageService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.editor$.pipe(\r\n debounceTime(700)\r\n ).subscribe((editorContent: string) => {\r\n if (typeof (this.onChangeListener) === 'function' && typeof (this.onTouchedListener)) {\r\n this.onChangeListener(editorContent); // 告诉form,你的表单值改变成了payload\r\n this.onTouchedListener(); // 告诉form,你的表单有交互发生\r\n }\r\n });\r\n }\r\n\r\n writeValue(value: string | any[]): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChangeListener = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouchedListener = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n\r\n }\r\n\r\n onChange(quill: any) {\r\n this.editor$.next(quill.html);\r\n }\r\n\r\n EditorCreated(quill: any) {\r\n const toolbar = quill.getModule('toolbar');\r\n toolbar.addHandler('image', this.imageHandler.bind(this));\r\n this.editor = quill;\r\n let that = this;\r\n quill.on('text-change', function (delta: any, oldDelta: any, source: any) {\r\n if (source == 'api') {\r\n } else if (source == 'user') {\r\n console.log('user');\r\n that.uploadImgs([], 0);\r\n }\r\n });\r\n }\r\n\r\n getBlobByBase64(url: any, oldUrl: any) {\r\n const c: any = document.createElement('canvas');\r\n console.log(c);\r\n const ctx = c.getContext('2d');\r\n ctx.stroke();\r\n let blob: any = ToolsUtil.dataURItoBlob(url);\r\n blob.name = '.png';\r\n let delta = this.editor.getContents();\r\n console.log('delta', delta)\r\n for (let i = 0; i < delta.ops.length; i++) {\r\n if (delta.ops[i].insert.image == oldUrl) {\r\n return {\r\n index: i,\r\n blob: blob,\r\n oldUrl: oldUrl\r\n }\r\n }\r\n }\r\n return;\r\n }\r\n\r\n uploadImgs(blods: any, index: any) {\r\n let details = this.editor.getContents();\r\n let opt = details.ops[index];\r\n if (opt && opt.insert && opt.insert.image) {\r\n if (ToolsUtil.isBase64(opt.insert.image)) {\r\n blods.push(this.getBlobByBase64(opt.insert.image, opt.insert.image));\r\n this.isEndContents(blods, index)\r\n } else {\r\n let c = document.createElement('canvas');\r\n let ctx: any = c.getContext('2d');\r\n let img = new Image();\r\n img.src = opt.insert.image;\r\n img.setAttribute('crossOrigin', '*');\r\n let that = this;\r\n img.onload = function () {\r\n c.width = img.width;\r\n c.height = img.height;\r\n ctx.drawImage(img, 0, 0, img.width, img.height);\r\n let url = c.toDataURL();\r\n blods.push(that.getBlobByBase64(url, img.src))\r\n that.isEndContents(blods, index)\r\n }\r\n }\r\n } else {\r\n this.isEndContents(blods, index)\r\n }\r\n\r\n }\r\n uploadImg(blods:any) {\r\n if (!blods || blods.length <= 0) {\r\n return\r\n }\r\n this.uploadOssService.uploadOssFiles(blods.map((v:any) => v.blob)).subscribe((res:any) => {\r\n if (res && res.length > 0) {\r\n let delta = this.editor.getContents();\r\n for (let i = 0; i < res.length; i++) {\r\n console.log('delta', delta);\r\n delta.filter((opt:any) => opt && opt.insert && opt.insert.image == blods[i].oldUrl).forEach((opt:any, index:any) => {\r\n opt.insert.image = res[i].url\r\n });\r\n }\r\n this.editor.setContents(delta, 'api');\r\n }\r\n }\r\n )\r\n }\r\n isEndContents(blods:any, index:any) {\r\n let details = this.editor.getContents();\r\n if (++index != details.ops.length) {\r\n this.uploadImgs(blods, index);\r\n } else {\r\n this.uploadImg(blods);\r\n }\r\n }\r\n\r\n imageHandler() {\r\n const Imageinput = document.createElement('input');\r\n Imageinput.setAttribute('type', 'file');\r\n Imageinput.setAttribute('multiple', 'multiple');\r\n Imageinput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp');\r\n Imageinput.classList.add('ql-image');\r\n Imageinput.addEventListener('change', () => {\r\n if (this.needImgSeq) {\r\n this.imgVis = true;\r\n }\r\n console.log(Imageinput);\r\n let files: any = Imageinput.files;\r\n if (files === null || files.length == 0) {\r\n return;\r\n }\r\n this.imgUrls = [];\r\n for (let i = 0; i < files.length; i++) {\r\n const file = files[i];\r\n if (file === null) {\r\n continue;\r\n }\r\n\r\n\r\n const error = (res: any) => {\r\n this.message.warning('上传失败');\r\n };\r\n\r\n this.uploadOssService.uploadOss(file).subscribe((url) => {\r\n console.log(file);\r\n if (url) {\r\n this.imgUrls.push({url: url, file: file, index: i});\r\n if (!this.needImgSeq) {\r\n this.editor.insertEmbed(this.editor.getSelection(true).index, 'image', url);\r\n }\r\n } else {\r\n this.message.warning('上传失败');\r\n }\r\n if (this.needImgSeq && this.imgUrls.length == files.length) {\r\n this.imgVis = true;\r\n this.imgUrls.sort((a: any, b: any) => a.index - b.index);\r\n document.getElementById(\"te\")?.click();\r\n }\r\n }, error);\r\n }\r\n\r\n });\r\n\r\n Imageinput.click();\r\n }\r\n\r\n saveSeq() {\r\n console.log(123);\r\n for (let i = this.imgUrls.length - 1; i >= 0; i--) {\r\n this.editor.insertEmbed(this.editor.getSelection(true).index, 'image', this.imgUrls[i].url);\r\n }\r\n this.imgVis = false;\r\n }\r\n\r\n arrowUp(index: any) {\r\n let img = this.imgUrls[index];\r\n this.imgUrls[index] = this.imgUrls[index - 1];\r\n this.imgUrls[index - 1] = img;\r\n }\r\n\r\n arrowDown(index: any) {\r\n let img = this.imgUrls[index];\r\n this.imgUrls[index] = this.imgUrls[index + 1];\r\n this.imgUrls[index + 1] = img;\r\n }\r\n\r\n cancle() {\r\n this.imgVis = false;\r\n }\r\n\r\n te() {\r\n console.log('上传完毕')\r\n }\r\n}\r\n","<quill-editor\r\n [styles]=\"styles\"\r\n [placeholder]=\"placeholder\"\r\n (onEditorCreated)=\"EditorCreated($event)\"\r\n [(ngModel)]=\"value\"\r\n (onContentChanged)=\"onChange($event)\"\r\n [readOnly]=\"readOnly\"\r\n></quill-editor>\r\n<!--这个div,是因为上传完毕焦点还在富文本里,弹出无法显示.....-->\r\n<div id=\"te\" (click)=\"te()\"></div>\r\n<nz-modal [(nzVisible)]=\"imgVis\" (nzOnOk)=\"saveSeq()\" (nzOnCancel)=\"cancle()\" nzMaskClosable=\"false\"\r\n [nzStyle]=\"{padding:0}\">\r\n <ng-container *nzModalContent>\r\n <div style=\"max-height:600px;overflow:auto;margin-top: 10px;\">\r\n <ng-container *ngTemplateOutlet=\"imgsContent\"></ng-container>\r\n </div>\r\n </ng-container>\r\n</nz-modal>\r\n<ng-template #imgsContent>\r\n <ng-container *ngFor=\"let imgOpt of imgUrls;let i = index\">\r\n <div class=\"img-div\">\r\n <img [src]=\"imgOpt.url\" [ngStyle]=\"{ width: '100px',display: 'inline-block', margin:'5px' }\"/>\r\n <div style=\"margin-left: 20px; color: grey;\">{{imgOpt.file.name}}</div>\r\n <div style=\"margin-right: 20px; flex: 1;text-align: right;\">\r\n <a title=\"上移\" *ngIf=\" i > 0\" style=\"display: block;\" (click)=\"arrowUp(i)\">\r\n <i nz-icon nzType=\"arrow-up\" nzTheme=\"outline\" style=\"color: #1890ff; font-size: 15px;\"></i>\r\n 上移</a>\r\n <a title=\"下移\" *ngIf=\" i < imgUrls.length - 1\" (click)=\"arrowDown(i)\">\r\n <i nz-icon nzType=\"arrow-down\" nzTheme=\"outline\" style=\"color: #1890ff; font-size: 15px\"></i>\r\n 下移</a>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n","import {Component, OnInit, Input, Injector, Inject, LOCALE_ID, Output, EventEmitter} from '@angular/core';\r\nimport {FormBuilder, FormGroup, FormControl, Validators, ValidatorFn} from '@angular/forms';\r\nimport {telphoneValidator} from '../validators/atr-validtors';\r\nimport {formatDate} from '@angular/common';\r\nimport {ShareService} from '../share.service';\r\nimport {atr_static_datas, AtrFormDetail, AtrFormOpt, formButton} from \"../../../core/base/atr-common\";\r\nimport {DictService} from \"../../../core/services/dict/dict.service\";\r\nimport {HttpService} from \"../../../core/services/http.service\";\r\n\r\n@Component({\r\n selector: 'atr-view-form',\r\n templateUrl: './view-form.component.html',\r\n styleUrls: ['./view-form.component.less']\r\n})\r\nexport class ViewFormComponent implements OnInit {\r\n @Input() formOpts: AtrFormOpt | any;\r\n @Input() atrForm: FormGroup | any;\r\n @Input() dicts: any = {};\r\n\r\n @Input() set items(items: any) {\r\n this.formOpts = {\r\n type: 'view',\r\n items: items\r\n };\r\n }\r\n\r\n column: any = {xs: 8, sm: 16, md: 24}\r\n\r\n constructor(\r\n private shareService: ShareService,\r\n private fb: FormBuilder, private dictService: DictService, private injector: Injector, @Inject(LOCALE_ID) private locale: string, private httpService: HttpService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n setTimeout(() => {\r\n console.log('atrForm.value', this.atrForm.value)\r\n console.log('atrForm.value formOpts', this.formOpts)\r\n }, 1150)\r\n }\r\n isShow(isHidden: any, operator: any) {\r\n if (isHidden) {\r\n return false;\r\n }\r\n let isShow = false;\r\n if (!operator || operator == null || operator == \"\") {\r\n return true;\r\n } else if (operator.indexOf('&&') > 0) {\r\n // a|eq|b &&c|eq|d\r\n const ops = operator.split('&&');\r\n if (ops.length > 1) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < ops.length; i++) {\r\n isShow = true\r\n if (!this.checkIsShowBase(ops[i].split('|'))) {\r\n isShow = false;\r\n break;\r\n }\r\n }\r\n }\r\n } else if (operator.indexOf('||') > 0) {\r\n // a|eq|b||c|eq|d\r\n const ops = operator.split('&&');\r\n if (ops.length > 1) {\r\n for (let i = 0; i < ops.length; i++) {\r\n isShow = false;\r\n if (this.checkIsShowBase(ops[i].split('|'))) {\r\n isShow = true;\r\n break;\r\n }\r\n }\r\n }\r\n } else {\r\n let op = operator.split(\"|\");\r\n isShow = this.checkIsShowBase(op);\r\n }\r\n return isShow;\r\n }\r\n checkIsShowBase(op: any): boolean {\r\n let isShow = false;\r\n if (op.length > 1) {\r\n let value = this.atrForm.get(op[0]).value;\r\n isShow = this.compare(value, op[1], op[2])\r\n } else\r\n isShow = false;\r\n\r\n return isShow;\r\n }\r\n compare(value: any, operator: any, target: any): boolean {\r\n let isRight = false;\r\n switch (operator) {\r\n case 'eq' :\r\n if (value == target) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'gh' :\r\n if (value >= target) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'notEmpty':\r\n isRight = false;\r\n if (value) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'empty':\r\n isRight = false;\r\n if (!value) {\r\n isRight = true;\r\n }\r\n break;\r\n default :\r\n isRight = false;\r\n break;\r\n }\r\n return isRight;\r\n }\r\n getCascaderLabel(value: any, item: any) {\r\n let result = this.getCascaderDefultV(item.dictList, value, 0, []);\r\n if (item.dictList[0].userObject?.showName) {\r\n return result[result.length - 1] || value;\r\n }\r\n return result || value\r\n }\r\n\r\n getSelectLabel(value: any, arr: any) {\r\n let result = arr.filter((item: any) => value == item.key || value == item.id)\r\n return result && result.length > 0 ? (result[0].title || result[0].typeName) : value;\r\n }\r\n\r\n getTagLabel(value: any, key = 'label') {\r\n return value ? value.map((v: any) => v[key]).join() : ''\r\n }\r\n\r\n getCascaderDefultV(dictList: any, value: any, index: any, result: any) {\r\n dictList.forEach((v: any) => {\r\n if (value[index] == v.value) {\r\n result.push(v.value)\r\n if (v.children) {\r\n this.getCascaderDefultV(v.children, value, index + 1, result)\r\n }\r\n return;\r\n }\r\n\r\n })\r\n return result;\r\n }\r\n\r\n getImgs(imgs: any) {\r\n if (!imgs) {\r\n return '';\r\n }\r\n return imgs.split(',')\r\n }\r\n}\r\n","<nz-descriptions [nzColumn]=\"column\" nzBordered [nzColon]=\"true\" [nzColumn]=\"24\">\r\n <ng-container *ngFor=\"let item of formOpts.items\">\r\n <ng-container *ngIf=\"!item.isHidden\">\r\n <nz-descriptions-item [nzTitle]=\"item.label\" [ngSwitch]=\"item.type\"\r\n *ngIf=\"isShow(item.isHidden,item.operator)\"\r\n [nzSpan]=\"item.span || 6\">\r\n <ng-container *ngSwitchCase=\"'radio'\">\r\n <ng-container *ngFor=\"let o of item.dictList\">\r\n <label *ngIf=\"o.value == atrForm.value[item.key]\">{{o.label}}</label>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'treeSelect'\">\r\n <nz-tree-select\r\n [nzNodes]=\"item.treeList\"\r\n nzShowSearch=\"true\"\r\n nzHideUnMatched=\"true\"\r\n [(ngModel)]=\"atrForm.value[item.key]\"\r\n [nzDisabled]=\"true\"\r\n >\r\n </nz-tree-select>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'select'\">\r\n {{getSelectLabel(atrForm.value[item.key],dicts[item.dictCode])}}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'selectCus'\">\r\n {{getSelectLabel(atrForm.value[item.key],item.dictList)}}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'selectc'\">\r\n <nz-select\r\n [nzDisabled]=\"true\"\r\n [(ngModel)]=\"atrForm.value[item.key]\"\r\n >\r\n <nz-option *ngFor=\"let o of item.dictList\" [nzLabel]=\"o.label\"\r\n [nzValue]=\"o.value\"></nz-option>\r\n </nz-select>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'sceneUser'\">\r\n <nz-select\r\n [nzDisabled]=\"true\"\r\n [(ngModel)]=\"atrForm.value[item.key]\"\r\n >\r\n <nz-option *ngFor=\"let o of item.dictList\" [nzLabel]=\"o.title\"\r\n [nzValue]=\"o.key\"></nz-option>\r\n </nz-select>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchDefault>\r\n {{atrForm.value[item.key]}}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n {{atrForm.value[item.key] | date:(item.dateFormat || 'yyyy-MM-dd')}}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dateTime'\">\r\n {{atrForm.value[item.key] | date:(item.dateFormat || 'yyyy-MM-dd 00:00:00')}}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'cascader'\">\r\n {{getCascaderLabel(atrForm.value[item.key],item)}}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'tags'\">\r\n {{getTagLabel(atrForm.value[item.key], 'name')}}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'image'\">\r\n <ng-container *ngFor=\"let img of getImgs(atrForm.value[item.key])\">\r\n <img nz-image style=\"max-width: 200px;max-height: 200px\" [nzSrc]=\"img | ossImg\">\r\n </ng-container>\r\n\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'rate'\">\r\n <nz-rate [nzDisabled]=\"true\"\r\n [(ngModel)]=\"atrForm.value[item.key]\"></nz-rate>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'editor'\">\r\n <div style=\"width: 800px\">\r\n <app-quill-editor [(ngModel)]=\"atrForm.value[item.key]\" style=\"width: 60%\" [readOnly]=\"true\"\r\n [styles]=\"{height:item.height > 0 ? item.height + 'px' : '250px'}\"></app-quill-editor>\r\n\r\n </div>\r\n </ng-container>\r\n\r\n </nz-descriptions-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n</nz-descriptions>\r\n","import {Component, forwardRef, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\nimport {UploadOssService} from \"../../../core/services/upload-oss.service\";\nimport {commonDatas} from \"../../../core/base/atr-common\";\n\n@Component({\n selector: 'app-select-icons',\n templateUrl: './select-icons.component.html',\n styleUrls: ['./select-icons.component.scss'],\n providers: [\n UploadOssService,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectIconsComponent),\n multi: true\n }\n ]\n})\nexport class SelectIconsComponent implements OnInit, ControlValueAccessor {\n @Input() readonly = true;\n @Input() placeholder = '选择图标';\n value:any;\n icons = commonDatas.icons\n showProp = false;\n onChangeListener: any; // 改变值回调\n onTouchedListener: any; // 交互回调\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n change(value: boolean): void {\n console.log(value);\n }\n\n valueChange(e:any) {\n console.log('form change', this.value)\n console.log('form change e', e)\n if (this.onChangeListener) {\n this.onChangeListener(e); // 告诉form,你的表单值改变成了payload\n }\n if (this.onChangeListener) {\n this.onTouchedListener(); // 告诉form,你的表单有交互发生\n }\n }\n\n selectIcon(item:any) {\n this.value = item;\n this.showProp = false;\n console.log('form change', this.value)\n console.log('form change e', item)\n if (this.onChangeListener) {\n this.onChangeListener(item); // 告诉form,你的表单值改变成了payload\n }\n if (this.onChangeListener) {\n this.onTouchedListener(); // 告诉form,你的表单有交互发生\n }\n }\n\n showIcons() {\n if(this.readonly){\n return\n }\n this.showProp = true\n }\n\n\n registerOnChange(fn: any): void {\n this.onChangeListener = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedListener = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n }\n\n writeValue(value: string): void {\n this.value = value;\n }\n}\n","<div style=\"display:flex;\">\n <input [(ngModel)]=\"value\"\n (ngModelChange)=\"valueChange($event)\"\n nz-input\n nzType=\"primary\" nzPopoverPlacement=\"bottom\"\n [placeholder]=\"placeholder\"\n [readOnly]=\"readonly\"/>\n <button nz-button nz-popover nzType=\"primary\"\n [(nzPopoverVisible)]=\"showProp\" nzPopoverTrigger=\"click\"\n (nzPopoverVisibleChange)=\"change($event)\"\n [nzPopoverContent]=\"contentTemplate\">选择图标</button>\n</div>\n<ng-template #contentTemplate>\n <div style=\"width: 100%;height: 300px;overflow-y: auto\">\n <span (click)=\"selectIcon(item)\" class=\"i-child\" *ngFor=\"let item of icons\">\n <i nz-icon [nzType]=\"item\" nzTheme=\"outline\"></i>\n </span>\n\n </div>\n</ng-template>\n","import {Component, OnInit, Input, Injector, Inject, LOCALE_ID, Output, EventEmitter} from '@angular/core';\r\nimport {FormBuilder, FormGroup, FormControl, Validators, ValidatorFn} from '@angular/forms';\r\nimport {telphoneValidator} from '../validators/atr-validtors';\r\nimport {formatDate} from '@angular/common';\r\nimport {ShareService} from '../share.service';\r\nimport {environment} from \"ng-zorro-antd/core/environments\";\r\nimport {atr_static_datas, AtrFormDetail, AtrFormOpt, FormAction, formButton} from \"../../../core/base/atr-common\";\r\nimport {DictService} from \"../../../core/services/dict/dict.service\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\nimport {HttpService} from \"../../../core/services/http.service\";\r\n\r\n@Component({\r\n selector: 'atr-form',\r\n templateUrl: './form.component.html',\r\n styleUrls: ['./form.component.less']\r\n})\r\nexport class AtrFormComponent implements OnInit {\r\n\r\n dicts: any = {};\r\n atrForm: FormGroup | any;\r\n @Input() formOpts: AtrFormOpt | any;\r\n @Output() formAction = new EventEmitter<FormAction>();\r\n\r\n // tslint:disable-next-line:max-line-length\r\n constructor(private shareService: ShareService, private httpService: HttpService,\r\n private fb: FormBuilder, private dictService: DictService, private injector: Injector, @Inject(LOCALE_ID) private locale: string) {\r\n this.atrForm = this.fb.group({});\r\n }\r\n\r\n resetLayout(item: any) {\r\n if (!item.lspan) {\r\n item.lspan = 24;\r\n }\r\n if (!item.cspan) {\r\n item.cspan = 24;\r\n }\r\n }\r\n\r\n doAction(item: formButton, event: MouseEvent) {\r\n event.preventDefault();\r\n if (event.stopPropagation) {\r\n event.stopPropagation()\r\n }\r\n let action: FormAction = {\r\n name: item.name,\r\n code: item.code,\r\n };\r\n this.formAction.emit(action);\r\n }\r\n\r\n setValue(key: string, value: any) {\r\n this.atrForm.get(key)?.setValue(value);\r\n }\r\n\r\n\r\n getDicList(item: any) {\r\n this.shareService.getDicList(item).subscribe(res => {\r\n if (res.status == 200 && res.item) {\r\n item = res.item\r\n this.resetForm();\r\n }\r\n })\r\n\r\n }\r\n\r\n conv(datas: any, keys: any): any {\r\n return datas.map((child: any) => {\r\n let item: any = {};\r\n if (keys) {\r\n keys.forEach((v: any) => {\r\n let vs = v.split(\"|\");\r\n child[vs[0]] = child[vs[1]];\r\n item[vs[0]] = child[vs[1]];\r\n });\r\n } else {\r\n item = child;\r\n }\r\n child.nzValueProperty = item;\r\n if (child.children) {\r\n child.children = this.conv(child.children, keys)\r\n } else {\r\n child.isLeaf = true\r\n }\r\n return child;\r\n })\r\n }\r\n\r\n getCascaderDefaultValue(list: any, index: any, value: any) {\r\n list.forEach((dic: any) => {\r\n if (dic.value == value[index]) {\r\n value[index] = dic.nzValueProperty\r\n value = this.getCascaderDefaultValue(dic.children, index + 1, value)\r\n return\r\n }\r\n })\r\n return value\r\n }\r\n\r\n ngOnInit() {\r\n if (this.formOpts && this.formOpts.items) {\r\n for (let item of this.formOpts.items) {\r\n // this.atrForm.addControl(item.key, new FormControl());\r\n this.resetLayout(item)\r\n let value = this.formOpts.type == 'add' ? item.defaultValue : item.value;\r\n console.log(value);\r\n if (item.type == 'checkbox') {\r\n if (this.formOpts.type == 'add') {\r\n value = item.dictList.filter((v: any) => v.isSelect).map((dic: any) => dic.value);\r\n }\r\n }\r\n if (item.type == 'treeSelect' && item.selectUrl.url) {\r\n let keys = item.selectUrl.convert.split(',');\r\n this.httpService.post(item.selectUrl.url, {}, ToolsUtil.getHttpOptions()).subscribe(res => {\r\n item.treeList = res.data.filter((child: any) => {\r\n keys.forEach((v: any) => {\r\n let vs = v.split(\"|\");\r\n child[vs[0]] = child[vs[1]];\r\n });\r\n return true\r\n });\r\n })\r\n }\r\n if (item.type == 'cascader' && item.selectUrl.url) {\r\n let keys: any = null\r\n if (item.selectUrl.convert) {\r\n keys = item.selectUrl.convert.split(',');\r\n }\r\n\r\n this.httpService.post(item.selectUrl.url, {}, ToolsUtil.getHttpOptions()).subscribe(res => {\r\n item.dictList = this.conv(res.data, keys)\r\n if (value && value.length > 0) {\r\n value = this.getCascaderDefaultValue(item.dictList, 0, value)\r\n this.setValue(item.key, value)\r\n }\r\n })\r\n }\r\n if (item.type == \"select\") {\r\n this.getDictValue(item.dictCode);\r\n }\r\n if (item.type == 'selectc') {\r\n if (!item.dictList || (item.selectUrl && item.selectUrl.ignoreDictList)) {\r\n this.getDicList(item);\r\n }\r\n }\r\n if (item.type == \"textarea\" && !item.rows)\r\n item.rows = 5;\r\n if (item.type == \"image\") {\r\n item.imageOpts.key = item.key\r\n if (value) {\r\n let images: any = [];\r\n let list = value.split(\",\");\r\n for (let key of list) {\r\n images.push({\r\n key: key,\r\n uid: \"-1\",\r\n url: atr_static_datas.OSS_URL + key\r\n })\r\n }\r\n item.imageOpts.imageList = images;\r\n }\r\n }\r\n if (item.type == 'editor') {\r\n if (!value) value = \"\"\r\n if (!item.height)\r\n item.height = 300\r\n }\r\n\r\n if (!item.span)\r\n item.span = 8\r\n if (typeof item.isRequired != 'string') {\r\n item.isRequired = false\r\n }\r\n let tempValidators: ValidatorFn[] = [];\r\n if (item.validators) {\r\n for (let validator of item.validators) {\r\n if (validator.type == \"required\") {\r\n item.isRequired = true\r\n tempValidators.push(Validators.required)\r\n } else if (validator.type == \"email\") {\r\n tempValidators.push(Validators.email)\r\n } else if (validator.type == \"maxlength\") {\r\n tempValidators.push(Validators.maxLength(validator.maxlength ? validator.maxlength : 1))\r\n } else if (validator.type == \"minlength\") {\r\n tempValidators.push(Validators.minLength(validator.minlength ? validator.minlength : 1))\r\n } else if (validator.type == \"telphone\") {\r\n tempValidators.push(telphoneValidator())\r\n } else if (validator.type == \"pattern\") {\r\n tempValidators.push(Validators.pattern(validator.patternValue))\r\n }\r\n }\r\n }\r\n\r\n let defaultValue = {value: value != undefined ? value : null, disabled: item.disable ? item.disable : false}\r\n if (tempValidators.length > 0) {\r\n this.atrForm.addControl(item.key, new FormControl(defaultValue, tempValidators));\r\n } else {\r\n this.atrForm.addControl(item.key, new FormControl(defaultValue));\r\n }\r\n console.log(\" this.atrForm\", this.atrForm);\r\n }\r\n }\r\n }\r\n\r\n compare(value: any, operator: any, target: any): boolean {\r\n let isRight = false;\r\n switch (operator) {\r\n case 'eq' :\r\n if (value == target) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'gh' :\r\n if (value >= target) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'notEmpty':\r\n isRight = false;\r\n if (value) {\r\n isRight = true;\r\n }\r\n break;\r\n case 'empty':\r\n isRight = true;\r\n console.log('empty',!!value)\r\n if (!!value) {\r\n\r\n isRight = false;\r\n }\r\n break;\r\n default :\r\n isRight = false;\r\n break;\r\n }\r\n return isRight;\r\n }\r\n\r\n checkIsShowBase(op: any): boolean {\r\n let isShow = false;\r\n if (op.length > 1) {\r\n let value = this.atrForm.get(op[0]).value;\r\n isShow = this.compare(value, op[1], op[2])\r\n } else\r\n isShow = false;\r\n\r\n return isShow;\r\n }\r\n\r\n isRequired(item: AtrFormDetail) {\r\n let result = false;\r\n let isRequired = item.isRequired;\r\n let type = typeof isRequired;\r\n if (type == \"boolean\") {\r\n return isRequired\r\n } else if (type == \"string\") {\r\n\r\n result = this.isShow(false, isRequired);\r\n }\r\n console.log(\"isRequired\", result);\r\n return result;\r\n }\r\n\r\n isShow(isHidden: any, operator: any) {\r\n if (isHidden) {\r\n return false;\r\n }\r\n let isShow = false;\r\n if (!operator || operator == null || operator == \"\") {\r\n return true;\r\n } else if (operator.indexOf('&&') > 0) {\r\n // a|eq|b &&c|eq|d\r\n const ops = operator.split('&&');\r\n if (ops.length > 1) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < ops.length; i++) {\r\n isShow = true\r\n if (!this.checkIsShowBase(ops[i].split('|'))) {\r\n isShow = false;\r\n break;\r\n }\r\n }\r\n }\r\n } else if (operator.indexOf('||') > 0) {\r\n // a|eq|b||c|eq|d\r\n const ops = operator.split('&&');\r\n if (ops.length > 1) {\r\n for (let i = 0; i < ops.length; i++) {\r\n isShow = false;\r\n if (this.checkIsShowBase(ops[i].split('|'))) {\r\n isShow = true;\r\n break;\r\n }\r\n }\r\n }\r\n } else {\r\n let op = operator.split(\"|\");\r\n isShow = this.checkIsShowBase(op);\r\n }\r\n return isShow;\r\n }\r\n\r\n getDictValue(code: string) {\r\n // console.log(\"9999\");\r\n this.dictService.getDictBycode(code).subscribe(\r\n result => {\r\n if (result && result != null)\r\n this.dicts[code] = result.dicts;\r\n },\r\n error => {\r\n this.dicts[code] = [];\r\n }\r\n )\r\n }\r\n\r\n imageUploadChange(e: any) {\r\n if (e.key) {\r\n this.atrForm.get(e.key).setValue(e.values);\r\n }\r\n }\r\n\r\n resetForm() {\r\n // this.atrForm.reset();\r\n // console.log(\"editor reset\")\r\n if (this.formOpts && this.formOpts.items) {\r\n for (let item of this.formOpts.items) {\r\n let value = this.formOpts.type == 'add' ? item.defaultValue : item.value;\r\n if (item.type == \"image\") {\r\n item.imageOpts.key = item.key\r\n let images: any = [];\r\n if (!value) value = \"\";\r\n let list = value.split(\",\");\r\n for (let key of list) {\r\n if (key != \"\") {\r\n images.push({\r\n key: key,\r\n uid: \"-1\",\r\n url: atr_static_datas.OSS_URL + key\r\n })\r\n }\r\n }\r\n item.imageOpts.imageList = images;\r\n // console.log(images)\r\n } else if (item.type == \"editor\") {\r\n // console.log(\"editor\")\r\n if (!value) value = \"\"\r\n } else if (item.type == \"select\" && value == \"\") {\r\n value = null;\r\n } else if (item.type == \"checkbox\" && !value) {\r\n value = null;\r\n }\r\n this.atrForm.get(item.key).setValue(value != undefined ? value : null)\r\n }\r\n for (const i in this.atrForm.controls) {\r\n this.atrForm.controls[i].markAsUntouched();\r\n this.atrForm.controls[i].markAsPristine();\r\n this.atrForm.controls[i].updateValueAndValidity();\r\n }\r\n }\r\n\r\n }\r\n\r\n getFormValue() {\r\n let obj: any = {\r\n isValid: false,\r\n mode: this.formOpts.type,\r\n value: {}\r\n };\r\n let value = this.atrForm.value;\r\n for (const key of Object.keys(value)) {\r\n // //console.log(key);\r\n if (value.hasOwnProperty(key) && value[key] != null && value[key] != undefined) {\r\n if (value[key] instanceof Date) {\r\n for (let item of this.formOpts.items) {\r\n if (item.key != key) {\r\n continue;\r\n }\r\n if (item.dateFormat) {\r\n obj.value[key] = formatDate(new Date(Number(value[key])), item.dateFormat, this.locale);\r\n } else if (item.type == 'date') {\r\n obj.value[key] = formatDate(new Date(Number(value[key])), 'yyyy-MM-dd 00:00:00', this.locale);\r\n } else if (item.type == 'dateTime') {\r\n obj.value[key] = formatDate(new Date(Number(value[key])), 'yyyy-MM-dd HH:mm:ss', this.locale);\r\n }\r\n }\r\n\r\n } else if (value[key] instanceof Array) {\r\n for (let item of this.formOpts.items) {\r\n if (item.key != key) {\r\n continue;\r\n }\r\n let dateFormat = item.dateFormat ? item.dateFormat : 'yyyy-MM-dd 00:00:00';\r\n if (item.type == 'dateRange') {\r\n let dateArr: any = [];\r\n let nzShowTime = item.nzShowTime\r\n if (nzShowTime) {\r\n dateFormat = 'yyyy-MM-dd HH:mm:ss'\r\n if (nzShowTime.nzFormat) {\r\n dateFormat = 'yyyy-MM-dd ' + nzShowTime.nzFormat;\r\n }\r\n }\r\n for (let d of value[key]) {\r\n dateArr.push(formatDate((d as Date), dateFormat, this.locale));\r\n }\r\n obj.value[key] = dateArr;\r\n } else if (item.type == 'cascader') {\r\n obj.value[key] = value[key]\r\n } else if (item.type == 'select' && item.nzMode == 'multiple') {\r\n obj.value[key] = value[key].toString();\r\n } else {\r\n obj.value[key] = value[key];\r\n }\r\n }\r\n } else {\r\n obj.value[key] = value[key]\r\n }\r\n }\r\n }\r\n return obj;\r\n }\r\n\r\n getFormVaild(): any {\r\n let obj: any = {\r\n isValid: false,\r\n mode: this.formOpts.type,\r\n value: {}\r\n };\r\n for (const i in this.atrForm.controls) {\r\n this.atrForm.controls[i].markAsDirty();\r\n this.atrForm.controls[i].updateValueAndValidity();\r\n }\r\n obj.isValid = this.atrForm.valid\r\n let value = this.atrForm.value;\r\n for (const key of Object.keys(value)) {\r\n console.log(key);\r\n if (value.hasOwnProperty(key) && value[key] != null && value[key] != undefined) {\r\n if (value[key] instanceof Date) {\r\n for (let item of this.formOpts.items) {\r\n if (item.key != key) {\r\n continue;\r\n }\r\n if (item.dateFormat) {\r\n obj.value[key] = formatDate(new Date(Number(value[key])), item.dateFormat, this.locale);\r\n } else if (item.type == 'date') {\r\n obj.value[key] = formatDate(new Date(Number(value[key])), 'yyyy-MM-dd 00:00:00', this.locale);\r\n } else if (item.type == 'dateTime') {\r\n obj.value[key] = formatDate(new Date(Number(value[key])), 'yyyy-MM-dd HH:mm:ss', this.locale);\r\n }\r\n }\r\n\r\n } else if (value[key] instanceof Array) {\r\n for (let item of this.formOpts.items) {\r\n if (item.key != key) {\r\n continue;\r\n }\r\n let dateFormat = item.dateFormat ? item.dateFormat : 'yyyy-MM-dd 00:00:00';\r\n if (item.type == 'dateRange') {\r\n let dateArr: any = [];\r\n for (let d of value[key]) {\r\n dateArr.push(formatDate((d as Date), dateFormat, this.locale));\r\n }\r\n obj.value[key] = dateArr;\r\n } else if (item.type == 'cascader') {\r\n obj.value[key] = value[key]\r\n } else if (item.type == 'select' && item.nzMode == 'multiple') {\r\n obj.value[key] = value[key].toString();\r\n } else {\r\n obj.value[key] = value[key];\r\n }\r\n }\r\n } else {\r\n obj.value[key] = value[key]\r\n }\r\n }\r\n }\r\n return obj;\r\n }\r\n\r\n showTime(item: any) {\r\n if (!item.dateFormat || item.dateFormat == \"yyyy-MM-dd\") {\r\n return false\r\n }\r\n let format = item.dateFormat;\r\n if (format.indexOf(\"HH\")) {\r\n return true;\r\n }\r\n if (format.indexOf(\"mm\")) {\r\n return true;\r\n }\r\n if (format.indexOf(\"ss\")) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","<atr-view-form *ngIf=\"formOpts.type == 'view'\" [dicts]=\"dicts\" [atrForm]=\"atrForm\"\r\n [formOpts]=\"formOpts\"></atr-view-form>\r\n\r\n<form nz-form [formGroup]=\"atrForm\" *ngIf=\"formOpts.type != 'view'\">\r\n <div nz-row nzGutter=\"8\" nzType=\"flex\" nzAlign=\"top\">\r\n <ng-container *ngFor=\"let item of formOpts.items\">\r\n <div nz-col nzSpan=\"24\" class=\"form-title\" *ngIf=\"item.type == 'title'\">\r\n {{item.label}}\r\n </div>\r\n <div nz-col [nzSpan]=\"item.span\" *ngIf=\"isShow(item.isHidden,item.operator)\">\r\n\r\n <nz-form-item *ngIf=\"item.type != 'title'\">\r\n <nz-form-label [nzSm]=\"item.lspan\" [nzXs]=\"24\" [nzRequired]=\"isRequired(item)\">{{item.label}}</nz-form-label>\r\n <nz-form-control [nzSm]=\"item.cspan\" [nzXs]=\"24\">\r\n <div style=\"display: flex;width: 100%\">\r\n <nz-tree-select *ngIf=\"item.type == 'treeSelect'\"\r\n [nzNodes]=\"item.treeList\"\r\n nzShowSearch=\"true\"\r\n nzHideUnMatched=\"true\"\r\n nzPlaceHolder=\"{{item.placeholder}}\"\r\n [nzShowSearch]=\"true\"\r\n [formControlName]=\"item.key\"\r\n [nzAllowClear]=\"!item.notNull\"\r\n [nzMultiple]=\"item.selectUrl.isMultiple\"\r\n [nzDisabled]=\"item.readonly\"\r\n style=\"flex: 1\"\r\n >\r\n </nz-tree-select>\r\n <nz-tree-select *ngIf=\"item.type == 'treeSelect'\"\r\n [nzAllowClear]=\"!item.notNull\"\r\n [nzNodes]=\"item.treeList\"\r\n nzShowSearch=\"true\"\r\n nzHideUnMatched=\"true\"\r\n nzPlaceHolder=\"{{item.placeholder}}\"\r\n [nzShowSearch]=\"true\"\r\n [formControlName]=\"item.key\"\r\n [nzMultiple]=\"item.selectUrl.isMultiple\"\r\n [nzDisabled]=\"item.readonly\" style=\"flex: 1\"\r\n >\r\n </nz-tree-select>\r\n <app-select-icons *ngIf=\"item.type == 'selectIcon'\" nz-input placeholder=\"{{item.placeholder}}\"\r\n [readonly]=\"item.readonly \"\r\n style=\"flex: 1\"\r\n [formControlName]=\"item.key\">\r\n </app-select-icons>\r\n <input *ngIf=\"item.type == 'text'\" nz-input placeholder=\"{{item.placeholder}}\"\r\n [readonly]=\"item.readonly || formOpts.type == 'view'\"\r\n [formControlName]=\"item.key\"/>\r\n <textarea *ngIf=\"item.type == 'textarea'\" nz-input [rows]=\"item.rows\" placeholder=\"{{item.placeholder}}\"\r\n [formControlName]=\"item.key\" [readonly]=\"item.readonly|| formOpts.type == 'view'\"></textarea>\r\n <nz-input-number *ngIf=\"item.type == 'number'\" nzPlaceHolder=\"{{item.placeholder}}\"\r\n [nzMin]=\"item.minNumber\" [nzMax]=\"item.maxNumber\"\r\n [formControlName]=\"item.key\"></nz-input-number>\r\n <nz-radio-group *ngIf=\"item.type == 'radio'\" [formControlName]=\"item.key\">\r\n <label nz-radio *ngFor=\"let o of item.dictList\" [nzValue]=\"o.value\">{{o.label}}</label>\r\n </nz-radio-group>\r\n <nz-checkbox-wrapper *ngIf=\"item.type == 'checkbox'\" [formControlName]=\"item.key\">\r\n <div nz-row>\r\n <div *ngFor=\"let o of item.dictList\" nz-col>\r\n <label nz-checkbox [nzValue]=\"o.value\">{{o.label}}</label></div>\r\n </div>\r\n </nz-checkbox-wrapper>\r\n <nz-select\r\n [nzShowSearch]=\"true\"\r\n *ngIf=\"item.type == 'select'\"\r\n nzPlaceHolder=\"{{item.placeholder}}\"\r\n nzAllowClear=\"true\"\r\n [formControlName]=\"item.key\"\r\n nzServerSearch\r\n [nzMode]=\"item.nzMode || 'default'\"\r\n nzDisabled=\"{{item.readonly|| formOpts.type == 'view'}}\"\r\n >\r\n <nz-option *ngFor=\"let o of dicts[item.dictCode]\" [nzLabel]=\"o.typeName\" [nzValue]=\"o.id\"></nz-option>\r\n </nz-select>\r\n <nz-select\r\n [nzShowSearch]=\"true\"\r\n *ngIf=\"item.type == 'selectc'\"\r\n nzPlaceHolder=\"{{item.placeholder}}\"\r\n nzAllowClear=\"true\"\r\n [formControlName]=\"item.key\"\r\n nzServerSearch\r\n [nzMode]=\"item.nzMode || 'default'\"\r\n nzDisabled=\"{{item.readonly|| formOpts.type == 'view'}}\"\r\n >\r\n <nz-option *ngFor=\"let o of item.dictList\" [nzLabel]=\"o.label\" [nzValue]=\"o.value\"></nz-option>\r\n </nz-select>\r\n <nz-cascader [nzDisabled]=\"item.readonly\" style=\"flex: 1\" [nzAllowClear]=\"!item.notNull\"\r\n [nzValueProperty]=\"'nzValueProperty'\"\r\n [nzShowSearch]=\"true\" *ngIf=\"item.type == 'cascader'\"\r\n [nzOptions]=\"item.dictList\" [formControlName]=\"item.key\"></nz-cascader>\r\n <nz-date-picker *ngIf=\"item.type == 'date'\" [nzFormat]=\"item.dateFormat ? item.dateFormat : 'yyyy-MM-dd'\"\r\n [nzShowTime]=\"showTime(item)\"\r\n [nzDisabled]=\"formOpts.type == 'view' || item.readonly \"\r\n [formControlName]=\"item.key\"></nz-date-picker>\r\n <nz-range-picker *ngIf=\"item.type == 'dateRange'\"\r\n [nzShowTime]=\"item.nzShowTime? item.nzShowTime : false\"\r\n [formControlName]=\"item.key\"\r\n [nzFormat]=\"item.nzShowTime && item.nzShowTime.nzFormat ? ('yyyy-MM-dd '+ item.nzShowTime.nzFormat) : 'yyyy-MM-dd'\"\r\n [nzPlaceHolder]=\"['开始时间', '结束时间']\"></nz-range-picker>\r\n\r\n <input *ngIf=\"item.type == 'image'\" nz-input [formControlName]=\"item.key\" [hidden]=\"true\"/>\r\n <atr-img-upload *ngIf=\"item.type == 'image'\" [(opts)]=\"item.imageOpts\"\r\n (afterChange)=\"imageUploadChange($event)\"></atr-img-upload>\r\n\r\n <!-- <editor *ngIf=\"item.type == 'editor'\" [formControlName]=\"item.key\" [config]=\"{initialFrameHeight:item.height}\" ></editor>-->\r\n <app-quill-editor *ngIf=\"item.type == 'editor'\" [formControlName]=\"item.key\"\r\n [styles]=\"{height:item.height > 0 ? item.height + 'px' : '250px'}\"></app-quill-editor>\r\n <div *ngIf=\"item.type == 'word'\" [innerHTML]=\"item.value |defVal:item.defaultValue |safeHtml\">\r\n </div>\r\n <div *ngIf=\"item.type == 'buttons'\">\r\n <ng-container *ngFor=\"let btn of item.buttons\">\r\n <button nz-button type=\"button\" [nzType]=\"btn.btnType |defVal: 'default'\"\r\n class=\"ant-btn ant-btn-primary\"\r\n style=\"margin-right: 5px\" *ngIf=\"btn.isShow || isShow(false,btn.operator)\"\r\n (click)=\"doAction(btn,$event)\">\r\n <span>{{btn.name}}</span></button>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngFor=\"let valid of item.validators\">\r\n <ng-container *ngIf=\"atrForm.get(item.key).hasError(valid.type) && (atrForm.get(item.key).dirty )\">\r\n <div style=\"color:red; height: 15px;margin: 0;line-height: 15px;\">{{valid.errorLabel}}</div>\r\n </ng-container>\r\n </ng-container>\r\n <button nz-button nzType=\"default\" style=\"cursor: default;background-color: #fafafa;color: black\"\r\n *ngIf=\"item.ends\" disabled>\r\n {{item.ends}}\r\n </button>\r\n <button *ngIf=\"item.button?.isShow\" type=\"button\" class=\"ant-btn ant-btn-primary\"\r\n (click)=\"doAction(item.button,$event)\">\r\n <span>{{item.button.name}}</span></button>\r\n </div>\r\n <div *ngIf=\"item.proposal\" style=\"color: red;width: 100%\">{{item.proposal}}</div>\r\n </nz-form-control>\r\n </nz-form-item>\r\n <ng-content *ngTemplateOutlet=\"item.temp\"></ng-content>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n</form>\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {DictService} from \"../../../core/services/dict/dict.service\";\r\nimport {SelectAction} from \"../../../core/base/atr-common\";\r\n\r\nexport declare interface SelectTreeOpt {\r\n dictCode: string,\r\n key: string,\r\n value?: string,\r\n}\r\n\r\n@Component({\r\n selector: 'app-select-tree',\r\n templateUrl: './select-tree.component.html',\r\n styleUrls: ['./select-tree.component.scss']\r\n})\r\nexport class SelectTreeComponent implements OnInit {\r\n dicts:any = {};\r\n @Input() opt: SelectTreeOpt|any;\r\n @Output() action = new EventEmitter<SelectAction>();\r\n selectValue:any;\r\n @Input() isDisable:boolean = false;\r\n constructor(private dictService: DictService,) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getDictValue(this.opt[\"dictCode\"]);\r\n }\r\n\r\n getDictValue(code: string) {\r\n this.dictService.getDictBycode(code).subscribe(\r\n result => {\r\n if (result && result != null){\r\n this.dicts[code] = result.dicts;\r\n this.dicts[code].forEach(\r\n (dic:any) => {\r\n // 设置默认值\r\n if(dic.id == this.opt.value){\r\n this.selectValue = dic;\r\n this.changeValue();\r\n }\r\n }\r\n )\r\n }\r\n\r\n },\r\n error => {\r\n this.dicts[code] = [];\r\n }\r\n )\r\n }\r\n\r\n changeValue() {\r\n this.opt.value = this.selectValue.id;\r\n console.log(this.opt.value);\r\n this.action.emit({\r\n name: 'changeValue',\r\n code: 'ngModelChange',\r\n data: this.selectValue\r\n })\r\n }\r\n}\r\n","<nz-select\r\n nzAllowClear=\"false\"\r\n [nzDropdownMatchSelectWidth]=\"false\"\r\n nzServerSearch\r\n [(ngModel)]=\"selectValue\"\r\n style=\"width: 100px\"\r\n (ngModelChange)=\"changeValue()\"\r\n [nzDisabled]=\"isDisable\"\r\n>\r\n <nz-option *ngFor=\"let o of dicts[opt.dictCode]\" [nzLabel]=\"o.typeName\" [nzValue]=\"o\" > </nz-option>\r\n</nz-select>\r\n","import {AfterViewInit, Component, ElementRef, Input, OnInit, ViewChild} from '@angular/core';\r\nimport * as echarts from 'echarts';\r\nimport {EChartsOption} from \"../../../core/base/atr-common\";\r\n\r\n\r\n@Component({\r\n selector: 'app-echarts',\r\n templateUrl: './echarts.component.html',\r\n styleUrls: ['./echarts.component.less']\r\n})\r\n\r\nexport class EchartsComponent implements OnInit, AfterViewInit {\r\n // @ts-ignore\r\n @ViewChild('echart') echart: ElementRef;\r\n\r\n @Input() set userOption(userOption: EChartsOption) {\r\n if (userOption) {\r\n this.initOption(userOption, this.option);\r\n this.option = Object.assign(this.option, userOption);\r\n console.log('option', this.option)\r\n }\r\n }\r\n\r\n initOption(userOption:any, target:any) {\r\n for (let key of Object.keys(userOption)) {\r\n\r\n let value = userOption[key];\r\n\r\n if (value) {\r\n if (!target[key]) {\r\n target[key] = value\r\n } else if (value instanceof Array) {\r\n target[key] = value;\r\n } else if (typeof value === 'object') {\r\n target = this.initOption(value, target[key])\r\n\r\n } else {\r\n target[key] = value\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n\r\n option = {\r\n xAxis: {\r\n type: 'category',\r\n data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']\r\n },\r\n yAxis: {\r\n type: 'value',\r\n minInterval: 1,\r\n },\r\n series: [{\r\n data: [120, 200, 150, 80, 70, 110, 130],\r\n type: 'bar',\r\n showBackground: true,\r\n backgroundStyle: {\r\n color: 'rgba(180, 180, 180, 0.2)'\r\n }\r\n }]\r\n };\r\n myEchart: any;\r\n @Input() width = '20rem';\r\n @Input() height = '20rem';\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.myEchart = echarts.init(this.echart.nativeElement);\r\n this.myEchart.setOption(this.option)\r\n }\r\n\r\n}\r\n","<div [ngStyle]=\"{width:width,height:height}\" #echart></div>","import { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AtrTableComponent } from './table/table.component';\r\nimport { UploadComponent } from './upload/upload.component';\r\nimport { AtrFormComponent } from './form/form.component';\r\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\r\nimport { registerLocaleData } from '@angular/common';\r\nimport zh from '@angular/common/locales/zh';\r\nimport { LocalUploadComponent } from './local-upload/local-upload.component';\r\nimport {NgModule} from \"@angular/core\";\r\nimport { SelectTreeComponent } from './select-tree/select-tree.component';\r\nimport { VideoComponent } from './video/video.component';\r\nimport {VgControlsModule, VgCoreModule, VgOverlayPlayModule, VgBufferingModule} from \"ngx-videogular\";\r\nimport {DragDropModule} from \"@angular/cdk/drag-drop\";\r\nimport {TableTdComponent} from \"./table/table-td/table-td.component\";\r\nimport {TableFormItemComponent} from \"./table/table-form-item/table-form-item.component\";\r\nimport {PipeModuleModule} from \"../../core/pipe/pipe-module.module\";\r\nimport {AtrComponentsModule} from \"../../atr-components.module\";\r\nimport {CusNgZorroAntdModule} from \"../../core/ngz-module/cus-zorro-antd.module\";\r\nimport {QuillEditorComponent} from \"./quill-editor/quill-editor.component\";\r\nimport {QuillModule} from \"ngx-quill\";\r\nimport {SelectIconsComponent} from \"./select-icons/select-icons.component\";\r\nimport {EchartsComponent} from \"./echarts/echarts.component\";\r\nimport {ViewFormComponent} from \"./view-form/view-form.component\";\r\nimport { DragulaModule } from 'ng2-dragula';\r\nimport {AtrRoleDirective} from \"../../core/directive/role.directive\";\r\nimport {AtrErrorImgDirective} from \"../../core/directive/error-img.directive\";\r\nimport {HqSpinDirective} from \"../../core/directive/hq-spin.directive\";\r\n\r\nconst THIRDMODULES = [\r\n CusNgZorroAntdModule,\r\n NzResizableModule,\r\n\r\n];\r\n\r\nconst SERVICE_PROVIDES:any = [];\r\nregisterLocaleData(zh);\r\n// #endregion\r\n\r\n// #region your componets & directives\r\nconst COMPONENTS = [QuillEditorComponent,TableFormItemComponent,TableTdComponent,AtrTableComponent,UploadComponent,AtrFormComponent,LocalUploadComponent,\r\n SelectTreeComponent,VideoComponent,SelectIconsComponent,EchartsComponent,ViewFormComponent];\r\nconst DIRECTIVES = [AtrRoleDirective, AtrErrorImgDirective, HqSpinDirective,];\r\n@NgModule({\r\n imports: [\r\n PipeModuleModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n // third libs\r\n ...THIRDMODULES,\r\n VgCoreModule,\r\n VgControlsModule,\r\n VgOverlayPlayModule,\r\n VgBufferingModule,\r\n DragDropModule,\r\n DragulaModule.forRoot(),\r\n AtrComponentsModule,\r\n QuillModule.forRoot({\r\n modules: {\r\n syntax: false,\r\n // imageResize: {},\r\n toolbar: {\r\n container: [\r\n ['undo', 'redo'],\r\n ['bold', 'italic', 'underline'], // toggled buttons\r\n // ['code-block'], // blockquote\r\n // [{ header: 1 }, { header: 2 }], // custom button values\r\n [{list: 'ordered'}, {list: 'bullet'}],\r\n // [{ script: 'sub' }, { script: 'super' }], // superscript/subscript\r\n [{indent: '-1'}, {indent: '+1'}], // outdent/indent\r\n // [{ direction: 'rtl' }], // text direction\r\n // [{ size: ['small', false, 'large', 'huge'] }], // custom dropdown\r\n [{header: [1, 2, 3, 4, 5, 6, false]}],\r\n [{color: []}, {background: []}], // dropdown with defaults from theme\r\n // [{ font: [] }],\r\n [{align: []}],\r\n ['clean'], // remove formatting button\r\n ['image'], // link and image, video\r\n ],\r\n handlers: {\r\n redo() {\r\n this['quill'].history.redo();\r\n },\r\n undo() {\r\n this['quill'].history.undo();\r\n }\r\n }\r\n }\r\n }\r\n }),\r\n ],\r\n declarations: [\r\n // your components\r\n ...COMPONENTS,\r\n ...DIRECTIVES\r\n ],\r\n exports: [\r\n DragDropModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n // third libs\r\n ...THIRDMODULES,\r\n // your components\r\n ...COMPONENTS,\r\n PipeModuleModule,\r\n ...DIRECTIVES\r\n ],\r\n providers:SERVICE_PROVIDES\r\n})\r\n//SharedModule\r\n// 应 包含定义:\r\n// 应用通用自定义业务组件\r\n// 应 导出所有包含的模块。\r\n// 不应 有 providers 属性。\r\nexport class AtrSharedModule { }\r\n","import {Inject, Injectable, LOCALE_ID, TemplateRef} from '@angular/core';\r\nimport {NzDrawerService} from 'ng-zorro-antd/drawer';\r\nimport {NzModalService} from 'ng-zorro-antd/modal';\r\nimport {NzMessageService} from 'ng-zorro-antd/message';\r\nimport {HttpService} from \"../../../core/services/http.service\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BusiService {\r\n\r\n options = ToolsUtil.getHttpOptions();\r\n allowOpen = true;\r\n searchDrawerResRef:any = null;\r\n\r\n constructor(private drawerService: NzDrawerService, private httpService: HttpService, private modalService: NzModalService, @Inject(LOCALE_ID) private locale: string,\r\n private msg: NzMessageService) {\r\n\r\n }\r\n\r\n resetPass(reseturl:any, param:any, callBack:any, content = '是否重置密码', successTitle = '重置密码成功') {\r\n let confirmModal = this.modalService.confirm({\r\n nzTitle: '重置提醒',\r\n nzContent: content,\r\n nzOnOk: () => {\r\n this.httpService.post(reseturl, param, ToolsUtil.getHttpOptions()).subscribe(\r\n result => {\r\n confirmModal.destroy();\r\n //console.log(result);\r\n if (result.status == '201') {\r\n let mode = this.modalService.success({\r\n nzTitle: successTitle,\r\n nzContent: '新密码为:' + result.data.pass\r\n });\r\n mode.afterClose.subscribe(() => {\r\n if (callBack) {\r\n callBack();\r\n }\r\n })\r\n\r\n\r\n }\r\n },\r\n )\r\n }\r\n })\r\n }\r\n\r\n getCascaderDefultV(dictList:any, value:any, index:any, result:any) {\r\n dictList.forEach((v:any) => {\r\n if (value[index] == v.value) {\r\n result.push({\r\n value: v.value,\r\n label: v.label\r\n })\r\n if (v.children) {\r\n this.getCascaderDefultV(v.children, value, index + 1, result)\r\n }\r\n return;\r\n }\r\n\r\n })\r\n return result;\r\n }\r\n\r\n\r\n}\r\n","/*\n * Public API Surface of components\n */\nimport {ChinaNumPipe} from \"./core/pipe/china-num.pipe\";\nimport {CountPipe} from \"./core/pipe/count.pipe\";\nimport {OssPipe} from \"./core/pipe/oss.pipe\";\nimport {OssStaticPipe} from \"./core/pipe/ossStatic.pipe\";\nimport {RemoveHtmlPipe} from \"./core/pipe/remove-html.pipe\";\nimport {SafeUrlPipe} from \"./core/pipe/safe-url.pipe\";\n\nexport * from \"./core/animations/animations\"\nexport * from \"./core/interceptor/base.interceptor\"\nexport * from \"./core/ngz-module/cus-zorro-antd.module\"\nexport * from \"./core/animations/fly-in\"\nexport * from \"./core/animations/scroll-screen\"\nexport * from './atr-components.module';\nexport * from './lib/hello/hello.module';\nexport * from './core/auth/auth.guard';\nexport * from './core/base/atr-common';\nexport * from './core/routereuse/atr-reuse-strategy';\nexport * from \"./core/utils/ToolsUtil\"\nexport * from \"./core/utils/localstorage.util\"\nexport * from \"./core/utils/sessionstorage.util\"\nexport * from \"./core/services/dict/dict.service\"\nexport * from \"./core/services/http.service\"\nexport * from \"./core/services/menu.service\"\nexport * from \"./core/services/upload-oss.service\"\nexport * from \"./core/directive/role.directive\";\nexport * from \"./core/directive/error-img.directive\";\nexport * from \"./core/directive/hq-spin.directive\";\nexport {HelloComponent} from './lib/hello/hello.component';\n\nexport * from \"./core/pipe/pipe-module.module\"\nexport * from \"./core/pipe/is-empty.pipe\";\nexport * from \"./core/pipe/dicts.pipe\";\nexport * from \"./core/pipe/defaultVal.pipe\";\nexport * from \"./core/pipe/day.pipe\";\nexport * from \"./core/pipe/safe-compute.pipe\";\nexport * from \"./core/pipe/is-not-empty.pipe\";\nexport * from \"./core/pipe/image-pipe.pipe\";\nexport * from \"./core/pipe/safe-html.pipe\";\nexport * from \"./core/pipe/china-num.pipe\";\nexport * from \"./core/pipe/count.pipe\";\nexport * from \"./core/pipe/oss.pipe\";\nexport * from \"./core/pipe/ossStatic.pipe\";\nexport * from \"./core/pipe/remove-html.pipe\";\nexport * from \"./core/pipe/safe-url.pipe\";\n\nexport * from \"./lib/shared/atr-shared.module\"\nexport * from \"./lib/shared/form/form.component\"\nexport * from \"./lib/shared/local-upload/local-upload.component\"\nexport * from \"./lib/shared/select-tree/select-tree.component\"\nexport * from \"./lib/shared/service/busi.service\"\nexport * from \"./lib/shared/table/table-td/table-td.component\"\nexport * from \"./lib/shared/share.service\"\nexport * from \"./lib/shared/video/video.component\"\nexport * from \"./lib/shared/validators/atr-validtors\"\nexport * from \"./lib/shared/upload/upload.component\"\nexport * from \"./lib/shared/table/table.component\"\nexport * from \"./lib/shared/table/table-form-item/table-form-item.component\"\nexport * from \"./lib/shared/quill-editor/quill-editor.component\"\nexport * from \"./lib/shared/select-icons/select-icons.component\"\nexport * from \"./lib/shared/echarts/echarts.component\"\nexport * from \"./lib/shared/view-form/view-form.component\"\n\n(window as any).global = window;\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './atr-public-api';\n"],"names":["i1","i1.HttpService","i1.DictService","i2","i6","i8","i10","i11","i12.IsNotEmptyPipe","i3","i4.AtrRoleDirective","i5","i7","i4","i7.AtrErrorImgDirective","i9.AtrRoleDirective","i12","i13.SafeHtmlPipe","i14.DefaultValPipe","i15.OssImgPipe","i16.DictsPipe","i2.TableFormItemComponent","i3.LocalUploadComponent","i7.TableTdComponent","i9","i13.AtrRoleDirective","i14","i15","i16","i17.HqSpinDirective","i5.VideoComponent","i12.OssImgPipe","i2.HttpService","i1.UploadOssService","i4.HttpService","i9.QuillEditorComponent","i5.ViewFormComponent","i8.SelectIconsComponent","i13","i15.UploadComponent","i16.QuillEditorComponent","i17","i18","i19","i20","i21","i22","i23.SafeHtmlPipe","i24.DefaultValPipe"],"mappings":"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"}