atr-components 3.0.20 → 3.0.21
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/sessionstorage.util.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/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/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/core/directive/Infinite-scroll.directive.ts","../../../projects/components/src/core/directive/debounce-click.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/table/table-td/table-td.component.ts","../../../projects/components/src/lib/shared/table/table-td/table-td.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.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/select-icons/select-icons.component.ts","../../../projects/components/src/lib/shared/select-icons/select-icons.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/eidtor/editor.component.ts","../../../projects/components/src/lib/shared/eidtor/editor.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/img-canvas/img-canvas.component.ts","../../../projects/components/src/lib/shared/img-canvas/img-canvas.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 {TemplateRef} from \"@angular/core\";\r\n\r\nexport const atr_static_datas = {\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 OSS_GETHOST: '',\r\n needOss: true,\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 static await_Data: any = {};\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' | 'color',\r\n key: string,\r\n isHidden?: boolean,\r\n allowSelectNode?: boolean,//cascader 是否允许选择父节点\r\n // valueProperty?:string,//valueProperty 实际值\r\n // showKey?:string,//cascader 编辑或者初始化值时 根据showKey(label Or Value)来找全label和value\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|Function,\r\n dictList?: CusDict[],\r\n nzMode?: 'multiple' | 'tags' | 'default',\r\n dateMode?: 'week' | 'month' | 'year',\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 firstTemp?: 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 nzCheckedChildren?: string,\r\n nzUnCheckedChildren?: string,\r\n nzPrecision?: number,\r\n nzStep?: number,\r\n\r\n /**\r\n * 树形树形控件是否展开所有节点\r\n */\r\n expandAll?:boolean,\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' | 'image64'|'tempRef',//类型: 文字、链接、操作\r\n dictCode?: string,\r\n isShow?: boolean,\r\n width: number,//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 styleCallBack?: Function,\r\n forbidResize?: boolean,\r\n tempRef?: TemplateRef<any>\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,isShowTime: boolean },\r\n nzShowNow?: boolean,\r\n expandAll?: 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 className?: string,\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 children?: any,\r\n isSelect?: boolean//checkBox默认选中\r\n}\r\n\r\nexport declare interface ImageOpts {\r\n limit?: number,\r\n nzSize?: 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' | '' | 'button',\r\n nzFileType?: string,\r\n keepName?: boolean\r\n btnName?: string\r\n beforeUpload?:any\r\n customReq?:any\r\n splitStr?:string\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, 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 setImg(url: string, dataUrl:string) {\r\n let str = sessionStorage.getItem(this.getStorageKey('IMG_CACH'));\r\n let map:any = null\r\n if (str) {\r\n map = JSON.parse(str);\r\n }\r\n if (!map) {\r\n map = {}\r\n }\r\n if(url.indexOf(\"?\") > 0){\r\n url = url.substring(0,url.indexOf(\"?\"))\r\n }\r\n map[url] = dataUrl\r\n sessionStorage.setItem(this.getStorageKey('IMG_CACH'), JSON.stringify(map));\r\n }\r\n\r\n static getImg(url: string): { img: any, width: any, height: any } {\r\n // console.log(\"jjj\")\r\n let str = sessionStorage.getItem(this.getStorageKey('IMG_CACH'));\r\n let map: any = null;\r\n if (str) {\r\n if(url.indexOf(\"?\") > 0){\r\n url = url.substring(0,url.indexOf(\"?\"))\r\n }\r\n map = JSON.parse(str)[url];\r\n }\r\n return map\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 {json, AtrFormOpt, atr_static_datas} from '../base/atr-common';\r\nimport {SimpleChange} from '@angular/core';\r\nimport {Validators} from \"@angular/forms\";\r\nimport {SessionStorageUtil} from './sessionstorage.util';\r\nimport {ulid} from 'ulid';\r\n\r\nexport class ToolsUtil {\r\n static ossPrefix: string = '';\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\r\n static getUlid() {\r\n return ulid()\r\n }\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\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\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\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 ['200', '201', '204'].some(v => res.status == v)\r\n }\r\n\r\n /**\r\n * 计算两点坐标距离\r\n * @param point1\r\n * @param point2\r\n */\r\n static getDistance(point1: { x: any, y: any }, point2: { x: any, y: any }) {\r\n let distance = Math.sqrt((point2.x - point1.x) * (point2.x - point1.x) + (point2.y - point1.y) * (point2.y - point1.y));\r\n return distance;\r\n }\r\n\r\n /**\r\n * 判断线段是否相交,相交返回交点坐标\r\n * @param p1\r\n * @param p2\r\n */\r\n static checkIntersect(lineArr1: { x: any, y: any }[], lineArr2: { x: any, y: any }[]) {\r\n //解线性方程组求线段交点\r\n //如果父母为0,则不需要计算交点 两线平行\r\n let a = lineArr1[0], b = lineArr1[1], c = lineArr2[0], d = lineArr2[1]\r\n\r\n a = {x: parseFloat(a.x.toFixed(2)), y: parseFloat(a.y.toFixed(2))};\r\n b = {x: parseFloat(b.x.toFixed(2)), y: parseFloat(b.y.toFixed(2))};\r\n c = {x: parseFloat(c.x.toFixed(2)), y: parseFloat(c.y.toFixed(2))}\r\n d = {x: parseFloat(d.x.toFixed(2)), y: parseFloat(d.y.toFixed(2))};\r\n console.log((b.y - a.y))\r\n console.log((d.x - c.x))\r\n console.log((a.x - b.x))\r\n console.log((c.y - d.y))\r\n let denominator = (b.y - a.y) * (d.x - c.x) - (a.x - b.x) * (c.y - d.y);\r\n if (denominator == 0) {\r\n return false\r\n }\r\n let x = ((b.x - a.x) * (d.x - c.x) * (c.y - a.y)\r\n + (b.y - a.y) * (d.x - c.x) * a.x\r\n - (d.y - c.y) * (b.x - a.x) * c.x) / denominator,\r\n y = -((b.y - a.y) * (d.y - c.y) * (c.x - a.x)\r\n + (b.x - a.x) * (d.y - c.y) * a.y\r\n - (d.x - c.x) * (b.y - a.y) * c.y) / denominator;\r\n //判断交点是否在两条线段上\r\n if (\r\n //交点在线段1\r\n (x - a.x) * (x - b.x) <= 0 && (y - a.y) * (y - b.y) <= 0 &&\r\n //并且交点在线段2上\r\n (x - c.x) * (x - d.x) <= 0 && (y - c.y) * (y - d.y) <= 0\r\n ) {\r\n return {x: x, y: y}\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n *\r\n * @param num1\r\n * @param num2\r\n * @param error 误差\r\n */\r\n static equalNum(num1: any, num2: any, error = 5) {\r\n let num = num1 - num2;\r\n return num < error && num > -error;\r\n }\r\n\r\n /**\r\n * 坐标对比\r\n * @param point1\r\n * @param point2\r\n * @param error\r\n */\r\n static equalPoint(point1: { x: any, y: any }, point2: { x: any, y: any }, error = 5) {\r\n return ToolsUtil.equalNum(point1.x, point2.x, error) && ToolsUtil.equalNum(point1.y, point2.y, error)\r\n }\r\n\r\n\r\n //判断点是否在线段上\r\n /**\r\n *\r\n * @param startP\r\n * @param endP\r\n * @param a\r\n * @param error 误差\r\n */\r\n static checkInLine(startP: any, endP: any, a: any, error = 5) {\r\n //点和端点重合\r\n if (ToolsUtil.equalPoint(startP, endP, error)\r\n || ToolsUtil.equalPoint(startP, a)\r\n || ToolsUtil.equalPoint(endP, a)) {\r\n return true;\r\n }\r\n if (ToolsUtil.equalNum(startP.x, endP.x, error)\r\n && !ToolsUtil.equalNum(startP.x, a.x, error)) {\r\n return false\r\n } else if (ToolsUtil.equalNum(startP.x, endP.x, error)\r\n && ToolsUtil.equalNum(startP.x, a.x, error)) {\r\n if (startP.y > endP.y) {\r\n return startP.y > a.y && endP.y < a.y\r\n }\r\n return startP.y < a.y && endP.y > a.y\r\n }\r\n //判断点在线段上\r\n //斜率是否一致\r\n let k1 = (endP.y - startP.y) / (endP.x - startP.x);\r\n let b = startP.y - k1 * startP.x;\r\n let y = k1 * a.x + b;\r\n if (ToolsUtil.equalNum(y, a.y, error)) {\r\n //5像素的误差\r\n let startLen = ToolsUtil.getLength(startP, a)\r\n let endLen = ToolsUtil.getLength(a, endP)\r\n let len = ToolsUtil.getLength(startP, endP)\r\n return len >= startLen && len >= endLen\r\n }\r\n return false;\r\n\r\n\r\n }\r\n\r\n /**\r\n * 点斜式\r\n */\r\n static getSlopePoint(startP: any, endP: any) {\r\n //计算斜率\r\n if (startP.x == endP.x) {\r\n return {k: Infinity, x: startP.x};\r\n }\r\n let k = (endP.y - startP.y) / (endP.x - startP.x);\r\n let b = startP.y - k * startP.x;\r\n return {k: k, b: b}\r\n }\r\n\r\n /**\r\n *判断点是否在坐标区域内\r\n * @param p 判定的点\r\n * @param pointsArr\r\n */\r\n static judgeInRec(p: { x1?: any, y1?: any, x?: any, y?: any }, pointsArr: { x1?: any, y1?: any, x?: any, y?: any }[]) {\r\n pointsArr = pointsArr.map(item => {\r\n return {x1: Number(item.x1 || item.x || 0), y1: Number(item.y1 || item.y || 0)}\r\n })\r\n p = {x1: p.x1 || p.x || 0, y1: p.y1 || p.y || 0}\r\n let px = Number(p.x1), py = Number(p.y1),\r\n flag = false,//穿越边框\r\n inRect = false;//是否在多边形的边或者端点上\r\n let start = pointsArr[0]\r\n //如果数组首尾没有相连,手动添加};\r\n let end = pointsArr[pointsArr.length - 1];\r\n //如果数组首尾没有相连,手动添加\r\n pointsArr = start.x1 != end.x1 || start.y1 != end.y1 ? pointsArr.concat(start) : pointsArr;\r\n //射线选取Y坐标不变,x正方向\r\n pointsArr.forEach((item, index) => {\r\n if (index == pointsArr.length - 1\r\n || inRect//在多边形的边或者端点上视为在区域内\r\n ) {\r\n return\r\n }\r\n let endPoint = pointsArr[index + 1]\r\n const startX = Number(item.x1), startY = Number(item.y1),\r\n endX = Number(endPoint.x1), endY = Number(endPoint.y1);\r\n //判断点是否在端点上\r\n if ((px == startX && py == startY)\r\n || (px == endX && px == endY)) {\r\n inRect = true;\r\n return;\r\n }\r\n\r\n //判断射线重合并且点在边上\r\n if ((startY == endY && endY == py)\r\n && ((px > endX && px < startX\r\n || (px < endX && px > startX)))) {\r\n inRect = true;\r\n return;\r\n }\r\n\r\n if ((startY < py && endY >= py)\r\n || (startY >= py && endY < py)) {\r\n\r\n //求射线与线段交点的x坐标,y坐标还是py\r\n let x = startX + (py - startY) * (endX - startX) / (endY - startY);\r\n //点在边上\r\n if (x == px) {\r\n inRect = true\r\n return;\r\n }\r\n //x大于px来保证射线朝右\r\n if (x > px) {\r\n flag = !flag\r\n }\r\n }\r\n })\r\n return inRect || flag;\r\n\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 deepCopy(obj: any) {\r\n return JSON.parse(JSON.stringify(obj));\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 dataURLtoBlob(dataurl: any) {\r\n var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n return new Blob([u8arr], {type: mime});\r\n }\r\n\r\n static dataURLtoFile(dataurl: any, filename?: string) {\r\n var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n return new File([u8arr], (filename || ToolsUtil.getRandomFileName()), {type: mime});\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\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\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 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 getFormatDateHour(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;\r\n }\r\n\r\n static getOssUrl(url: string, needTime = false) {\r\n if (!url) {\r\n return \"\";\r\n }\r\n if (needTime) {\r\n // url = url + \"?v=\" + ToolsUtil.getFormatDateHour(new Date());\r\n url = url + \"?v=\" + new Date().getTime()\r\n }\r\n if (url.startsWith(\"http\")) {\r\n return url\r\n }\r\n if (!url.startsWith(\"/\") && !atr_static_datas.OSS_URL.endsWith('/')) {\r\n url = '/' + url\r\n }\r\n let result = atr_static_datas.OSS_URL + url\r\n\r\n return result\r\n }\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\r\n static removeHtml(value: any) {\r\n if (!value) {\r\n return '';\r\n }\r\n return value.replace(/<[^<>]+>/g, '').replace(/ /ig, '')\r\n }\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 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 // 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 getImg(url: string, param: any = {\r\n imgW: 0, imgH: 0,\r\n needTime: false, isFullUrl: false\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n let dataUrl: any = SessionStorageUtil.getImg(url)\r\n let img = new Image()\r\n img.setAttribute('crossOrigin', 'anonymous')\r\n if (!dataUrl) {\r\n img.src = param.isFullUrl ? url : ToolsUtil.getOssUrl(url, param.needTime)\r\n } else {\r\n let index = dataUrl.indexOf(\"}\") + 1\r\n img.src = dataUrl.slice(0, 50) + dataUrl.slice(index);\r\n }\r\n\r\n img.onload = () => {\r\n let c = document.createElement('canvas')\r\n let context2: any = c.getContext(\"2d\")\r\n c.width = param.imgW || img.width;\r\n c.height = param.imgH || img.height\r\n context2.drawImage(img, 0, 0, c.width, c.height)\r\n let dataUrl = c.toDataURL()\r\n let str = c.width + \",\" + c.height + \"}\"\r\n dataUrl = dataUrl.slice(0, 50) + str + dataUrl.slice(50)\r\n//不保存\r\n// SessionStorageUtil.setImg(url, dataUrl)\r\n\r\n resolve(img)\r\n }\r\n })\r\n\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 isArray(obj: any) {\r\n return obj instanceof Array\r\n }\r\n\r\n static isEmpty(obj: any) {\r\n if (obj === undefined) {\r\n return true\r\n }\r\n if (obj === null) {\r\n return true\r\n }\r\n if (typeof obj == 'boolean') {\r\n return false\r\n }\r\n if (obj === 0) {\r\n return false\r\n }\r\n if (typeof obj == \"string\" && obj.trim() === '') {\r\n return true\r\n }\r\n return false\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\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 static getLength(pointA: { x1: any, y1: any, x: any, y: any }, pointB: { x: any, y: any, x1: any, y1: any }) {\r\n pointA.x1 = pointA.x || pointA.x1 || 0\r\n pointA.y1 = pointA.y || pointA.y1 || 0\r\n pointB.y1 = pointB.y || pointB.y1 || 0;\r\n pointB.x1 = pointB.x || pointB.x1 || 0;\r\n var lengthAB = Math.sqrt(Math.pow(pointA.x1 - pointB.x1, 2) +\r\n Math.pow(pointA.y1 - pointB.y1, 2))\r\n return lengthAB;\r\n }\r\n\r\n static getRotateNum(pointB: { x1: any, y1: any, x: any, y: any }, pointC: { x1: any, y1: any, x: any, y: any }, pointA: { x1: any, y1: any, x: any, y: any }) {\r\n pointA.x1 = pointA.x || pointA.x1 || 0\r\n pointA.y1 = pointA.y || pointA.y1 || 0\r\n pointB.x1 = pointB.y || pointB.x1 || 0;\r\n pointB.y1 = pointB.x || pointB.x1 || 0;\r\n pointC.x1 = pointC.y || pointC.x1 || 0;\r\n pointC.y1 = pointC.x || pointC.x1 || 0;\r\n\r\n //ABC中心点,起始点,终点\r\n let AB: any = {};\r\n let AC: any = {};\r\n AB.x1 = pointB.x1 - pointA.x1\r\n AB.y1 = pointB.y1 - pointA.y1\r\n AC.x1 = pointC.x1 - pointA.x1\r\n AC.y1 = pointC.y1 - pointA.y1\r\n var direct = AB.x1 * AC.y1 - AB.y1 * AC.y1\r\n var lengthAB = this.getLength(pointB, pointA)\r\n var lengthAC = this.getLength(pointC, pointA)\r\n var lengthBC = this.getLength(pointB, pointC)\r\n var cosA = (Math.pow(lengthAB, 2) + Math.pow(lengthAC, 2) -\r\n Math.pow(lengthBC, 2)) / (2 * lengthAB * lengthAC)\r\n var angleA = Math.round(Math.acos(cosA) * 180 / Math.PI)\r\n if (direct < 0) {\r\n return -angleA\r\n } else {\r\n return angleA\r\n }\r\n\r\n }\r\n\r\n //绕center点旋转rotate角度\r\n static getRotatePoint(p: { x1: any, y1: any }, center: { x1: any, y1: any }, rotate: any) {\r\n let startX = p.x1\r\n let startY = p.y1\r\n let a = center.x1\r\n let b = center.y1\r\n let x1 = a - Math.cos(rotate * Math.PI / 180) * (a - startX) + Math.sin(rotate * Math.PI / 180) * (b - startY)\r\n let y1 = b - Math.cos(rotate * Math.PI / 180) * (b - startY) - Math.sin(rotate * Math.PI / 180) * (a - startX)\r\n return {\r\n x1: x1,\r\n y1: y1\r\n }\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,handle,AtrReuseStrategy.handlers)\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\nimport {UploadOssService} from './upload-oss.service';\r\n\r\n@Injectable()\r\nexport class HttpService {\r\n\r\n constructor(\r\n private httpClient: HttpClient\r\n ) {\r\n }\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 *\r\n * @param url\r\n * @param params\r\n */\r\n post = (url: string, params?: any, options?: HttpOptions, headers?: HttpHeaders, noTip = false): 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 _headers = _headers.set(\"noTip\", noTip ? \"1\" : \"0\");\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\r\n postPromAll(urls: { url: string, params?: {}, }[], options?: HttpOptions, headers?: HttpHeaders, noTip = false) {\r\n let param: any[] = [];\r\n urls.forEach(item => {\r\n param.push(this.postProm(item.url, item.params, options, headers, noTip = false));\r\n })\r\n\r\n\r\n return Promise.all(param)\r\n }\r\n\r\n\r\n getOssPre() {\r\n return new Observable<any>(observe => {\r\n if (!atr_static_datas.OSS_GETHOST) {\r\n observe.error();\r\n observe.unsubscribe()\r\n return\r\n }\r\n this.post(atr_static_datas.OSS_GETHOST, {}, ToolsUtil.getHttpOptions()).subscribe(\r\n res => {\r\n atr_static_datas.OSS_URL = res.data\r\n ToolsUtil.ossPrefix = res.data\r\n observe.next();\r\n observe.unsubscribe()\r\n }\r\n )\r\n })\r\n }\r\n\r\n postProm(url: string, params?: any, options?: HttpOptions, headers?: HttpHeaders, noTip = false) {\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 _headers = _headers.set(\"noTip\", noTip ? \"1\" : \"0\");\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\r\n postBody = (url: string, params?: any, options?: HttpOptions, headers?: {}, noTip = false): 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 _headers = _headers.set(\"noTip\", noTip ? \"1\" : \"0\");\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\r\n get = (url: string, params?: {}, options?: HttpOptions, noTip = false): 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 _headers = _headers.set(\"noTip\", noTip ? \"1\" : \"0\");\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, {\r\n headers: _headers,\r\n params: params,\r\n 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 upload = (method: any, url: any, formData: FormData, progress: any): Observable<any> => {\r\n /**\r\n * 例:\r\n * let isOutput: any = true\r\n let file = ToolsUtil.dataURLtoFile(dataUrl, 'tset.png')\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n formData.append('isOutput', isOutput);\r\n return this.httpService.upload(\"post\", 'mgr/uploadImage', formData, () => {\r\n })\r\n * */\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\r\n downloadXls(url: string, params?: any) {\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\nimport {readTsconfig} from \"@angular-devkit/build-angular/src/utils/read-tsconfig\";\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class MenuService {\r\n\r\n private data: Menu[] = [];\r\n static menuChange: EventEmitter<Menu[]>\r\n static urlChange: EventEmitter<any>;\r\n static urlLastParams: 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 if (!MenuService.menuChange) {\r\n MenuService.menuChange = new EventEmitter()\r\n }\r\n if (!MenuService.urlChange) {\r\n MenuService.urlChange = new EventEmitter()\r\n }\r\n }\r\n\r\n getAllMenus() {\r\n return this.data;\r\n }\r\n\r\n delLastUrlParams(url) {\r\n if (MenuService.urlLastParams.url == url) {\r\n MenuService.urlLastParams = {};\r\n }\r\n }\r\n\r\n getLastUrlParams(): any {\r\n return MenuService.urlLastParams;\r\n }\r\n\r\n gotoUrl(routeParam: { url: string, paramUrl: string, title?: string, eqAllUrl?: boolean, params?: any }) {\r\n if (routeParam.params) {\r\n MenuService.urlLastParams = routeParam;\r\n }\r\n MenuService.urlChange.emit(routeParam);\r\n }\r\n\r\n getUrlChange(): any {\r\n return MenuService.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(result, 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 console.log(\"菜单\",this.data)\r\n } else {\r\n this.isLoadMenu = 'unload';\r\n this.data = [];\r\n }\r\n observe.next(this.data);\r\n MenuService.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 MenuService.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 {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,noTip = false): 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 if(!noTip){\r\n this.notification.error(`未登录或登录已过期,请重新登录。`, ``,{\r\n nzKey: 'outTime'\r\n });\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 if(!noTip) {\r\n this.message.error(body.message);\r\n }\r\n } else if(body && body.status === 1025){\r\n // 或者依然保持完整的格式\r\n if(!noTip) {\r\n this.message.error(`参数为空。`);\r\n }\r\n } else if(body && body.status === 503){\r\n // 或者依然保持完整的格式\r\n if(!noTip) {\r\n this.message.error(body.message);\r\n }\r\n }else if(body && body.status === 204){\r\n // 或者依然保持完整的格式\r\n if(!noTip) {\r\n this.message.success(body.message);\r\n }\r\n }else if(body && body.status === 201){\r\n // 或者依然保持完整的格式\r\n if(!noTip) {\r\n this.message.success(body.message);\r\n }\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 LocalStorageUtil.clearUs()\r\n this.menuService.clear();\r\n this.goTo('/p/login',true);\r\n // TODO 清空 token 信息\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 let noTip = req.headers.get(\"noTip\");\r\n return next.handle(req).pipe(\r\n mergeMap((event: any) => {\r\n // 允许统一对请求错误处理\r\n if (event instanceof HttpResponseBase) return this.handleData(event,noTip == \"1\");\r\n // 若一切都正常,则后续操作\r\n return of(event);\r\n }),\r\n catchError((err: HttpErrorResponse) => this.handleData(err,noTip == \"1\")),\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 { NzInputNumberLegacyModule } from 'ng-zorro-antd/input-number-legacy';\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 { NzPageHeaderModule } from 'ng-zorro-antd/page-header';\r\nimport { NzPaginationModule } from 'ng-zorro-antd/pagination';\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 NzInputNumberLegacyModule,\r\n NzLayoutModule,\r\n NzListModule,\r\n NzMentionModule,\r\n NzMenuModule,\r\n NzNoAnimationModule,\r\n NzPageHeaderModule,\r\n NzPaginationModule,\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 {Injectable} from '@angular/core';\r\nimport {HttpService} from '../http.service';\r\nimport {Observable} from 'rxjs';\r\nimport {atr_static_datas, commonDatas, 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 static await_Data = {};\r\n\r\n constructor(private httpService: HttpService) {\r\n }\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\r\n async getCodeNameSync(keys: string, code: string, selectUrl?: any, splitKey?: string) {\r\n return new Promise((resolve, reject) => {\r\n this.getCodeNamePromise(code, selectUrl).then(() => {\r\n if (splitKey && keys) {\r\n let result:any = []\r\n\r\n for (let item of keys.toString().split(splitKey)) {\r\n result.push(this.getCodeName(code,item));\r\n }\r\n resolve(result.join(splitKey));\r\n } else {\r\n let result = this.getCodeName(code, keys);\r\n resolve(result);\r\n }\r\n })\r\n })\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\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\r\n async getCodeNamePromise(code: string, selectUrl?: any) {\r\n return new Promise(async (resolve, reject) => {\r\n let dict = SessionStorageUtil.getDictGroupByCode(code);\r\n if (dict) {\r\n resolve(dict);\r\n } else {\r\n if (commonDatas.await_Data[code]) {\r\n setTimeout(() => {\r\n this.getDictBycode(code, selectUrl).subscribe(res => {\r\n resolve(res);\r\n }, error => {\r\n resolve(error);\r\n })\r\n }, 500)\r\n return\r\n }\r\n commonDatas.await_Data[code] = true;\r\n this.getDicBycodeBase(code, selectUrl).subscribe(result => {\r\n resolve(result);\r\n commonDatas.await_Data[code] = false;\r\n }, error => {\r\n resolve(error);\r\n commonDatas.await_Data[code] = false;\r\n })\r\n\r\n }\r\n })\r\n }\r\n\r\n getDictBycode(code: string, selectUrl?: any): Observable<DictGroup> {\r\n // //console.log(code);\r\n\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 if (commonDatas.await_Data[code]) {\r\n setTimeout(() => {\r\n this.getDictBycode(code, selectUrl).subscribe(res => {\r\n observe.next(res);\r\n observe.unsubscribe()\r\n }, error => {\r\n observe.next(error);\r\n observe.unsubscribe()\r\n })\r\n }, 500)\r\n return\r\n }\r\n commonDatas.await_Data[code] = true;\r\n this.getDicBycodeBase(code, selectUrl).subscribe(result => {\r\n observe.next(result);\r\n observe.unsubscribe()\r\n commonDatas.await_Data[code] = false;\r\n }, error => {\r\n observe.next(error);\r\n observe.unsubscribe();\r\n commonDatas.await_Data[code] = false;\r\n })\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\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,splitKey?:string) {\r\n if (ToolsUtil.isNull(dictCode)) {\r\n return value\r\n }\r\n // return this.dictService.getCodeNameSync(value, dictCode, null, splitKey)\r\n return this.dictService.getCodeNameSync(value, dictCode,null,splitKey ).then(res =>{\r\n return res;\r\n })\r\n // return \"测试1\"\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, param:any = {isVideoCover: false, needTime: false}) {\r\n return param.isVideoCover ? ToolsUtil.getVideoCover(value) : ToolsUtil.getOssUrl(value, param.needTime);\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,needTime = false): any {\r\n return ToolsUtil.getOssUrl(value,needTime);\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';\r\nimport {CommonModule} from '@angular/common';\r\nimport {IsEmptyPipe} from \"./is-empty.pipe\";\r\nimport {DictsPipe} from \"./dicts.pipe\";\r\nimport {DefaultValPipe} from \"./defaultVal.pipe\";\r\nimport {DayPipe} from \"./day.pipe\";\r\nimport {SafeComputePipe} from \"./safe-compute.pipe\";\r\nimport {IsNotEmptyPipe} from \"./is-not-empty.pipe\";\r\nimport {OssImgPipe} from \"./image-pipe.pipe\";\r\nimport {SafeHtmlPipe} from \"./safe-html.pipe\";\r\nimport {ChinaNumPipe} from \"./china-num.pipe\";\r\nimport {CountPipe} from \"./count.pipe\";\r\nimport {OssPipe} from \"./oss.pipe\";\r\nimport {OssStaticPipe} from \"./ossStatic.pipe\";\r\nimport {RemoveHtmlPipe} from \"./remove-html.pipe\";\r\nimport {SafeUrlPipe} from \"./safe-url.pipe\";\r\n\r\n// const PIPES = [IsNotEmptyPipe, DefaultValPipe, DictsPipe, DayPipe, IsEmptyPipe, SafeComputePipe,OssImgPipe]\r\nconst PIPES = [\r\n IsNotEmptyPipe,\r\n DefaultValPipe,\r\n DictsPipe, // 暂时注释\r\n DayPipe,\r\n IsEmptyPipe,\r\n SafeComputePipe,\r\n OssImgPipe,\r\n SafeHtmlPipe, // 暂时注释\r\n ChinaNumPipe,\r\n CountPipe,\r\n OssPipe,\r\n OssStaticPipe,\r\n RemoveHtmlPipe, // 暂时注释\r\n SafeUrlPipe // 暂时注释\r\n];\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ...PIPES\r\n ],\r\n declarations: [],\r\n exports: PIPES,\r\n\r\n})\r\nexport class PipeModuleModule {\r\n}\r\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\r\n\r\n uploadOss = (file: any, dir = 'ueditor', fullUrl = true) => {\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, fullUrl, result.data).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, {\r\n dir: dir,\r\n fileName: fileName\r\n }, ToolsUtil.getHttpOptions()).subscribe(success, error);\r\n });\r\n\r\n }\r\n\r\n customReq = (file: File, fullUrl = true, uploadData:any = null) => {\r\n const formData = new FormData();\r\n uploadData = uploadData ? uploadData : this.uploadData\r\n for (let key in 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 = fullUrl ? (event.url + uploadData.key) : 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 {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {EditorModule} from \"@tinymce/tinymce-angular\";\r\nimport {AtrErrorImgDirective} from \"./core/directive/error-img.directive\";\r\nimport {PipeModuleModule} from \"./core/pipe/pipe-module.module\";\r\nimport {HttpService} from \"./core/services/http.service\";\r\nimport {MenuService} from \"./core/services/menu.service\";\r\nimport {UploadOssService} from \"./core/services/upload-oss.service\";\r\n\r\nconst COMMON_COMPONENT: any[] = []\r\n\r\n@NgModule({\r\n declarations: [...COMMON_COMPONENT],\r\n imports: [\r\n EditorModule,\r\n CommonModule,\r\n PipeModuleModule,\r\n ],\r\n providers:[HttpService,MenuService,UploadOssService],\r\n exports: [...COMMON_COMPONENT,\r\n PipeModuleModule\r\n ]\r\n\r\n})\r\nexport class AtrComponentsModule {\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\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\nimport {HttpService} from \"../services/http.service\";\r\nimport {ToolsUtil} from '../utils/ToolsUtil';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AuthGuard {\r\n\r\n constructor(private router: Router, private httpService: HttpService) {\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): any {\r\n // throw new Error(\"Method not implemented.\");\r\n if (LocalStorageUtil.getUserId() != \"\") {\r\n if (atr_static_datas.needOss && atr_static_datas.OSS_GETHOST && !ToolsUtil.ossPrefix) {\r\n this.httpService.getOssPre().subscribe();\r\n }\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 {Directive, Output, EventEmitter, ElementRef, OnDestroy} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appInfiniteScroll]'\r\n})\r\n/**\r\n * 滚动滚动到底部时触发事件\r\n */\r\nexport class InfiniteScrollDirective implements OnDestroy {\r\n\r\n @Output() public appInfiniteScroll = new EventEmitter<void>();\r\n private _scrollHandler = () => this.onScroll();\r\n\r\n constructor(private elementRef: ElementRef) {\r\n // 监听滚动事件\r\n this.elementRef.nativeElement.addEventListener('scroll', this._scrollHandler);\r\n }\r\n\r\n ngOnDestroy() {\r\n // 移除滚动事件监听器\r\n this.elementRef.nativeElement.removeEventListener('scroll', this._scrollHandler);\r\n }\r\n\r\n private onScroll() {\r\n const element = this.elementRef.nativeElement;\r\n // 检查是否已滚动到底部\r\n if (element.scrollTop + element.clientHeight >= element.scrollHeight - 5) { // 5px buffer\r\n this.appInfiniteScroll.emit(); // 触发事件\r\n }\r\n }\r\n\r\n}\r\n","import {Directive, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {debounceTime} from \"rxjs\";\r\n\r\n@Directive({\r\n selector: '[debounceClick]'\r\n})\r\nexport class DebounceClickDirective implements OnInit,OnDestroy{\r\n @Input() time = 500;\r\n @Output() debounceClick = new EventEmitter();\r\n click$ = new EventEmitter();\r\n subscription:any;\r\n\r\n\r\n constructor() { }\r\n ngOnInit(): void {\r\n this.subscription = this.click$.pipe(debounceTime(this.time)).subscribe(e => {\r\n console.log('debounceClick debounceTime',event);\r\n this.debounceClick.emit(e)\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe()\r\n }\r\n @HostListener('click', ['$event'])\r\n public clickEvent(event: Event) {\r\n console.log('debounceClick',event);\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.click$.emit(event);\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\nstandalone: false,\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 [nzMaxTagCount]=\"header.maxTagCount ||3\"\r\n nzPlaceHolder=\"{{header.placeholder||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.placeholder||header.name}}\"\r\n nzAllowClear=\"true\"\r\n [nzShowSearch]=\"true\"\r\n [(ngModel)]=\"value\"\r\n [nzMaxTagCount]=\"header.maxTagCount ||3\"\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.placeholder||header.name}}\"\r\n [nzShowSearch]=\"true\"\r\n [nzOptions]=\"header.dictList\"\r\n [(ngModel)]=\"value\"\r\n ></nz-cascader>\r\n <ng-container *ngSwitchCase=\"'treeSelect'\">\r\n <nz-tree-select *ngIf=\"header.treeList\"\r\n [nzDefaultExpandAll]=\"header.expandAll\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n [nzNodes]=\"header.treeList\"\r\n nzHideUnMatched=\"true\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n [nzShowSearch]=\"true\"\r\n [(ngModel)]=\"value\"\r\n [nzMultiple]=\"header.selectUrl.isMultiple\"\r\n [nzMaxTagCount]=\"header.maxTagCount || 3\"\r\n nzVirtualHeight=\"330px\"\r\n >\r\n </nz-tree-select>\r\n </ng-container>\r\n\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?.isShowTime || false\"\r\n (ngModelChange)=\"onChange($event)\"\r\n\r\n [nzFormat]=\"header.nzShowTime?.nzFormat || 'yyyy-MM-dd'\"\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, 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\nimport {ToolsUtil} from \"../../../../core/utils/ToolsUtil\";\r\n\r\n@Component({\r\nstandalone: false,\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() set data(d: any) {\r\n this.result = d;\r\n setTimeout(() => {\r\n this.value = this.getValue(d)\r\n })\r\n }\r\n\r\n @Input() item: Table | any;\r\n @Input() i: any\r\n value: any;\r\n result: 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\r\n\r\n getValue(data: any) {\r\n let key = this.item.key;\r\n if (key && key.indexOf('.') > 0) {\r\n let keys = key.split('.');\r\n let value = data;\r\n keys.forEach((k: any) => {\r\n if (value) {\r\n value = value[k]\r\n }\r\n })\r\n return value\r\n }\r\n return data[key];\r\n\r\n }\r\n\r\n\r\n getStyleCallBack(item: Table, data: any) {\r\n let style: any = {}\r\n if (item.styleCallBack) {\r\n style = item.styleCallBack(data)\r\n }\r\n if (item.color) {\r\n style['color'] = item.color;\r\n }\r\n return style\r\n }\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 isShow = this.compare(value, op[1], op[2])\r\n } else {\r\n isShow = false\r\n }\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 = !ToolsUtil.isEmpty(value);\r\n break;\r\n case 'empty':\r\n isRight = ToolsUtil.isEmpty(value)\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 <ng-container *ngSwitchCase=\"'tempRef'\">\r\n <ng-container *ngTemplateOutlet=\"item.tempRef; context: {data: result,item:item,value:value}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'innerHtml'\">\r\n <div [ngStyle]=\"getStyleCallBack(item,result)\" [innerHTML]=\"item.innerHtmlBack((value| defVal:item.defaultVal),result) | safeHtml\" ></div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textcolor'\">\r\n <div [innerHTML]=\"value | defVal:item.defaultVal\" [ngStyle]=\"{'color':item.color}\"\r\n *ngIf=\"item.colorShow == value\"></div>\r\n <div [innerHTML]=\"value | defVal:item.defaultVal\" *ngIf=\"item.colorShow != value\"></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 [ngStyle]=\"getStyleCallBack(item,result)\"\r\n [nzPopoverContent]=\"value | date:'yyyy-MM-dd' | defVal:item.defaultVal\"\r\n class=\"view-text\">{{ value | 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 [ngStyle]=\"getStyleCallBack(item,result)\"\r\n [nzPopoverContent]=\"value | date:'yyyy-MM-dd HH:mm:ss' | defVal:item.defaultVal\"\r\n class=\"view-text\"> {{ value | date:'yyyy-MM-dd HH:mm:ss' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <nz-switch *ngSwitchCase=\"'switch'\" [(ngModel)]=\"value\" [nzDisabled]=\"item.disabled\"\r\n [ngStyle]=\"getStyleCallBack(item,result)\"\r\n (ngModelChange)=\"doActionSwitch(result,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\" [ngStyle]=\"getStyleCallBack(item,result)\"\r\n [nzPopoverContent]=\"value | date:'MM-dd HH:mm' | defVal:item.defaultVal\"\r\n class=\"view-text\"> {{ value | date:'MM-dd HH:mm' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <div *ngSwitchCase=\"'fixedText'\" [ngStyle]=\"getStyleCallBack(item,result)\" [innerHTML]=\"item.key\"></div>\r\n\r\n <img *ngSwitchCase=\"'image'\" [ngStyle]=\"getStyleCallBack(item,result)\" width=\"35px\" nzSrc=\"{{(value | defVal:item.defaultVal) | ossImg}}\"\r\n nz-image atrErrorImg/>\r\n <img *ngSwitchCase=\"'image64'\" [ngStyle]=\"getStyleCallBack(item,result)\" width=\"35px\" nzSrc=\"{{(value | defVal:item.defaultVal)}}\"\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(result,action.operator,action)\">\r\n <ng-container *ngIf=\"!action.withoutRole\">\r\n <button nz-button [ngClass]=\"action.className || ''\"\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(result,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 [ngClass]=\"action.className || ''\"\r\n [nzType]=\"action.buttonType&&action.buttonType != 'danger'? action.buttonType : 'primary'\"\r\n [nzDanger]=\"action.buttonType == 'danger'\"\r\n nzSize=\"small\" (click)=\"doActionByRow(result,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(result,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 [ngStyle]=\"getStyleCallBack(item,result)\" *ngSwitchCase=\"'dict'\" [innerHTML]=\"value | dicts:item.dictCode:',' | async | defVal:item.defaultVal\"></div>\r\n <div [ngStyle]=\"getStyleCallBack(item,result)\" nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\" [nzPopoverContent]='value | defVal:item.defaultVal'\r\n class=\"view-text\" *ngSwitchDefault [innerHTML]=\"value | defVal:item.defaultVal\"></div>\r\n</ng-container>\r\n\r\n","import {Component, OnInit, Input, Output, EventEmitter} from '@angular/core';\r\nimport {LocalStorageUtil} from \"../../../core/utils/localstorage.util\";\r\nimport {NzUploadChangeParam, NzUploadFile} from 'ng-zorro-antd/upload';\r\n\r\n@Component({\r\n standalone: false,\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 @Input() beforeUpload: any;\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\r\n @Input() uploadType = 'noraml'\r\n @Output()\r\n afterChange: EventEmitter<any> = new EventEmitter();\r\n fileList: NzUploadFile[] = []\r\n\r\n showList: any = false;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n // this.header = this.getDefaultHeader(new HttpHeaders());\r\n }\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\r\n onChange(params: NzUploadChangeParam) {\r\n console.log(params, this.fileList);\r\n\r\n if (params.type == \"success\" || params.type == \"removed\") {\r\n let fileUrls: any[] = [];\r\n if (params.type == \"success\" && params.fileList.length > 1) {\r\n params.fileList.shift()\r\n this.fileList = params.fileList;\r\n console.log(\"删除后\", params, this.fileList);\r\n }\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\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\"\r\n [nzHeaders]=\"header\" [nzShowUploadList]=\"showList\"\r\n nzListType=\"picture-card\"\r\n [nzBeforeUpload]=\"beforeUpload\"\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 [nzBeforeUpload]=\"beforeUpload\"\r\n (nzChange)=\"onChange($event)\"\r\n [nzFileList]=\"fileList\"\r\n [nzLimit]='1'\r\n *ngIf=\"uploadType != 'drag'\"\r\n >\r\n <button nz-button nzSize=\"small\"><i nz-icon nzType=\"upload\"></i><span> {{name}}</span></button>\r\n </nz-upload>\r\n <nz-upload *ngIf=\"uploadType == 'drag'\"\r\n nzType=\"drag\"\r\n [nzAction]=\"url\" [nzAccept]=\"nzAccept\" [nzHeaders]=\"header\"\r\n [nzBeforeUpload]=\"beforeUpload\"\r\n [nzFileList]=\"fileList\"\r\n (nzChange)=\"onChange($event)\"\r\n [nzLimit]='1'>\r\n <p class=\"ant-upload-drag-icon\">\r\n <nz-icon nzType=\"inbox\" />\r\n </p>\r\n <p class=\"ant-upload-text\">单击或拖动文件到此区域以上传文件</p>\r\n <p class=\"ant-upload-hint\">\r\n </p>\r\n </nz-upload>\r\n</ng-container>\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, AfterViewInit\r\n} from '@angular/core';\r\nimport {UntypedFormGroup, UntypedFormBuilder, UntypedFormControl} 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\nimport {NzResizeDirection, NzResizeEvent} from \"ng-zorro-antd/resizable\";\r\n\r\n@Component({\r\n standalone: false,\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, AfterViewInit {\r\n viewInitOver = false;\r\n tableWidth = 0;\r\n tableHeight = 0;\r\n scrollX = 0;\r\n id = -1;\r\n scrollSize: any = {x: \"\", y: \"\"}\r\n isCollapse = true;\r\n atrForm: UntypedFormGroup | any = null;\r\n dicts: any = {};\r\n pageIndex = 1;\r\n total = 1;\r\n @Input() pageSize = 10;\r\n @Input() pageSizeOptions: number[] = [10, 20, 30, 40, 50];\r\n @Input() loading = true;\r\n @Input() allowDrag = false;//允许拖拽换位\r\n @Input() showQueryTime = false;\r\n tableDatas: any = [];\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 @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('formContent', {static: true}) tableHeader: ElementRef | any;\r\n @ViewChild('pageContent', {static: true}) pageFooter: ElementRef | any;\r\n @ViewChild('tableContent', {static: true}) tableContent: ElementRef | any;\r\n @ViewChild('basicTable', {static: true}) basicTable: ElementRef | any;\r\n\r\n constructor(private fb: UntypedFormBuilder, private injector: Injector, @Inject(LOCALE_ID) private locale: string, private cd: ChangeDetectorRef,) {\r\n }\r\n\r\n onResize({width, height, direction}: NzResizeEvent, item): void {\r\n cancelAnimationFrame(this.id);\r\n this.id = requestAnimationFrame(() => {\r\n\r\n if (width) {\r\n this.scrollX += (width - item.width)\r\n this.scrollSize.x = this.scrollX + \"px\";\r\n item.width = width!;\r\n this.resizeDirection = direction!;\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n setTimeout(() => {\r\n this.initWidth();\r\n\r\n this.isAllLoad = true;\r\n this.cd.detectChanges();\r\n }, 100)\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (this.queryOpts && this.queryOpts.headers.length > 0) {\r\n this.atrForm = this.fb.group({});\r\n }\r\n\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 initWidth() {\r\n this.tableHeight = this.tableContent.nativeElement.offsetHeight;\r\n this.tableWidth = this.tableContent.nativeElement.offsetWidth;\r\n let tempWidth = 0\r\n this.queryOpts.tables.filter(item => item.isShow && !item.isLeft && !item.isRight).forEach(item => {\r\n tempWidth += item.width;\r\n })\r\n this.scrollX = tempWidth;\r\n //固定在左侧的最后一列不允许改变宽度 isLeft = true时\r\n //固定在右侧的第一列不允许改变宽度 isRight = true时\r\n let arr = this.queryOpts.tables.filter(item => item.isShow && !item.isLeft)\r\n if (arr.length > 0) {\r\n arr[arr.length - 1].forbidResize = true\r\n }\r\n arr = []\r\n arr = this.queryOpts.tables.filter(item => item.isShow && !item.isRight)\r\n if (arr.length > 0) {\r\n arr[0].forbidResize = true\r\n }\r\n\r\n console.log(\"initWidth 改变前 \", this.pageFooter, this.tableHeight)\r\n if (this.scrollX < this.tableWidth) {\r\n let lastItem = this.queryOpts.tables[this.queryOpts.tables.length - 1]\r\n let wid = lastItem.width;\r\n wid += (this.tableWidth - this.scrollX);\r\n lastItem.width = wid;\r\n this.scrollX = this.tableWidth;\r\n }\r\n this.scrollSize.x = this.scrollX + \"px\";\r\n console.log(\"initWidth 改变后\", this.scrollSize, this.tableWidth)\r\n setTimeout(() => {\r\n const tableWrapper: any = document.querySelector('.table-content .ant-table-title');\r\n this.scrollSize.y = (this.tableHeight > 0 ? (this.tableHeight - tableWrapper.clientHeight - 120) : 200) + \"px\";\r\n this.viewInitOver = true\r\n }, 500)\r\n }\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.curChecked = 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 widthId\r\n resizeDirection: NzResizeDirection | null = null;\r\n\r\n setTableLoadding(loadding: boolean) {\r\n this.loading = loadding;\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 if (!this.tableDatas || this.tableDatas.length <= 0) {\r\n return\r\n }\r\n this.isAllDisplayDataChecked = this.tableDatas.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\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 UntypedFormControl());\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\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 let action: TableAction = {\r\n name: '收起/展开',\r\n code: 'collapse',\r\n data: this.isCollapse,\r\n value: this.isCollapse,\r\n };\r\n this.headerAction.emit(action)\r\n }\r\n\r\n setFormValue(key, value) {\r\n if (this.atrForm) {\r\n this.atrForm.get(key)?.setValue(value);\r\n }\r\n this.query(true)\r\n }\r\n\r\n resetForm(): void {\r\n if (this.atrForm) {\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 this.headerAction.emit({\r\n name: '重置',\r\n code: 'resetForm',\r\n })\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 sortBy: this.getSortInfo()\r\n };\r\n params = Object.assign(params, this.defaultParams);\r\n if (!this.atrForm) {\r\n return params;\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 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.sortBy) {\r\n order = this.queryOpts.sortBy\r\n } else\r\n order = orderby.join(\",\");\r\n return order;\r\n }\r\n\r\n queryTime = \"\";\r\n\r\n PageSizeChange(e) {\r\n console.log(e)\r\n this.pageSize = e\r\n this.query(true)\r\n }\r\n\r\n PageIndexChange(e) {\r\n console.log(e)\r\n this.pageIndex = e\r\n this.query()\r\n }\r\n\r\n setDates(res) {\r\n this.tableDatas = res.data\r\n this.total = res?.page?.totalResult;\r\n this.loading = false\r\n this.getRowSpan();\r\n this.mapOfCheckedId = {};\r\n this.curChecked = -1;\r\n this.refreshStatus();\r\n }\r\n\r\n query(reset: boolean = false) {\r\n let params = this.getQueryParams(reset);\r\n console.log('查询条件', params, this)\r\n if (this.queryHeaders) {\r\n params = Object.assign({}, this.queryHeaders, params);\r\n }\r\n if (this.queryOpts.url) {\r\n this.loading = true;\r\n this.queryTime = formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss', this.locale);\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.setDates(result)\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","<div class=\"full-screen table-content \" #tableContent [spinLoading]=\"!viewInitOver\" HqSpin>\r\n <nz-table #basicTable [nzData]=\"tableDatas\" nzBordered\r\n nzSize=\"middle\"\r\n [ngStyle]=\"{visibility: viewInitOver ? '':'hidden',width: tableWidth + 'px' }\"\r\n [nzTitle]=\"tableHeader\"\r\n [nzFooter]=\" showPagination ? pageFooter : null\"\r\n [nzFrontPagination]=\"false\"\r\n [nzScroll]=\"{x:scrollSize.x,y:scrollSize.y}\"\r\n >\r\n <thead>\r\n <tr (contextmenu)=\"contextMenu($event,menu)\">\r\n <th [nzBreakWord]=\"true\" *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 [nzBreakWord]=\"true\" [nzLeft]=\"true\" class=\"left-zindex-header\" *ngIf=\"queryOpts.isIndex\"\r\n nzWidth=\"30px\" nzAlign=\"center\">#\r\n </th>\r\n <th [nzBreakWord]=\"true\" [nzLeft]=\"true\" class=\"left-zindex-header\" *ngIf=\"queryOpts.checkBox?.isRadio\"\r\n nzWidth=\"30px\"\r\n nzAlign=\"center\">#\r\n </th>\r\n <ng-container *ngFor=\"let item of queryOpts.tables;let last = last\">\r\n <th *ngIf=\"item.isShow \"\r\n nz-resizable\r\n [nzMinWidth]=\"60\"\r\n [nzWidth]=\"item.width + 'px'\"\r\n [nzRight]=\"item.isRight ? true : false\"\r\n [nzLeft]=\"item.isLeft ? true : false\"\r\n (nzResize)=\"onResize($event,item)\"\r\n >{{item.name}}\r\n <nz-resize-handle nzDirection=\"right\" *ngIf=\"!item.forbidResize\">\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 <tbody>\r\n @for (data of basicTable.data; track data) {\r\n <tr class=\"t-tr\"\r\n [ngStyle]=\"{'color':isShowColor(data)}\" (click)=\"selectRow(data,$index)\"\r\n [ngClass]=\"{'selected': $index == curChecked}\" (dblclick)=\"dbclickData(data,$index)\" >\r\n @if (queryOpts.checkBox?.isShowCheckbox) {\r\n <td [nzBreakWord]=\"true\" [nzLeft]=\"true\"\r\n class=\"left-zindex\"\r\n nzShowCheckbox\r\n [(nzChecked)]=\"mapOfCheckedId[data.id]\"\r\n (nzCheckedChange)=\"refreshStatus()\"\r\n ></td>\r\n }\r\n @if (queryOpts.checkBox?.isRadio) {\r\n <td [nzBreakWord]=\"true\" [nzLeft]=\"true\"\r\n class=\"left-zindex\" nzShowCheckbox (nzCheckedChange)=\"selectRow(data,$index)\"\r\n [(nzChecked)]=\"mapOfCheckedId[data.id]\"></td>\r\n }\r\n @if (queryOpts.isIndex) {\r\n <td [nzBreakWord]=\"true\" [nzLeft]=\"true\" nzAlign=\"center\" style=\"padding:12px 0;\"\r\n nzBreakWord>{{$index + 1}}</td>\r\n }\r\n @for (item of queryOpts.tables; track item) {\r\n <td [nzBreakWord]=\"true\" [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,$index) \">\r\n <app-table-td [data]=\"data\"\r\n [item]=\"item\"\r\n [i]=\"$index\"\r\n (doActionByRowAction)=\"doActionByRow2($event)\"\r\n ></app-table-td>\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </tbody>\r\n </nz-table>\r\n</div>\r\n\r\n\r\n<ng-template #tableHeader>\r\n <form nz-form [formGroup]=\"atrForm\" class=\"ant-advanced-search-form\" [style]=\"{width: tableWidth-15+'px'}\"\r\n *ngIf=\"queryOpts.headers.length >0 || queryOpts.actions.length >0\" #formContent>\r\n <div nz-row [nzGutter]=\"24\" [hidden]=\"!isCollapse\">\r\n <ng-content select=\"[header-left-slot]\"></ng-content>\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-right-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-content select=\"[button-left-slot]\"></ng-content>\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\"\r\n [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 <ng-content select=\"[button-right-slot]\"></ng-content>\r\n </div>\r\n <div nz-col [nzSpan]=\"8\" class=\"search-area\" *ngIf=\"queryOpts.headers.length >0 && !queryOpts.isHideQuery\">\r\n <span *ngIf=\"showQueryTime&&queryTime\">数据查询时间:{{queryTime}}</span>\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</ng-template>\r\n<ng-template #pageFooter>\r\n <div class=\"flex\" style=\"justify-content: flex-end;\" #pageContent>\r\n <div class=\"flex \" style=\"align-items: center\">\r\n 共 {{ total }} 条记录\r\n </div>\r\n\r\n <nz-pagination [nzPageIndex]=\"pageIndex\" [nzTotal]=\"total\" nzShowSizeChanger [nzPageSize]=\"pageSize\"\r\n [nzSize]=\"'small'\"\r\n (nzPageIndexChange)=\"PageIndexChange($event)\"\r\n (nzPageSizeChange)=\"PageSizeChange($event)\"\r\n ></nz-pagination>\r\n </div>\r\n\r\n</ng-template>\r\n<nz-dropdown-menu #menu=\"nzDropdownMenu\">\r\n <div class=\"tabel-colunmn white-bg\" style=\"width: 150px;\">\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","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\nstandalone: false,\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}\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 style=\"width: 100%;\"\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\nstandalone: false,\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 @Input() showUploadList: boolean | { showPreviewIcon?: boolean, showRemoveIcon?: boolean, showDownloadIcon?: boolean, hidePreviewIconInNonImage?: boolean } = {\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 @Output()\r\n onBeforeUpload: 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[]):any => {\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.onBeforeUpload.emit({code: 'getFile', data: {file: file, fileList: fileList}})\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):any => {\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\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 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 this.afterChange.emit({key: this.opts.key, values: fileUrls.join(\",\")});\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]=\"opts.beforeUpload || beforeUpload\"\r\n [nzRemove]=\"remove\"\r\n [nzSize]=\"opts.nzSize || 0\"\r\n [nzCustomRequest]=\"opts.customReq || 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 == 'button'\"\r\n nzType=\"drag\"\r\n nzAction=\"\"\r\n [nzSize]=\"opts.nzSize || 0\"\r\n [nzShowUploadList]=\"showUploadList\"\r\n [nzBeforeUpload]=\"opts.beforeUpload || beforeUpload\"\r\n [nzRemove]=\"remove\"\r\n [nzCustomRequest]=\"opts.customReq || customReq\"\r\n (nzChange)=\"onChange($event)\"\r\n [nzType]=\"opts?.uploadType\"\r\n [nzAccept]=\"opts.nzFileType\"\r\n [nzLimit]=\"'1'\"\r\n >\r\n <button nz-button nzSize=\"small\"><i nz-icon nzType=\"upload\" style=\"font-size: 16px\"></i><span> {{opts.btnName}}</span></button>\r\n </nz-upload>\r\n <nz-upload\r\n *ngIf=\"opts && !opts?.uploadType \"\r\n nzAction=\"\"\r\n nzListType=\"picture-card\"\r\n [nzSize]=\"opts.nzSize || 0\"\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]=\"opts.beforeUpload || beforeUpload\"\r\n [nzCustomRequest]=\"opts.customReq || 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\">{{opts.btnName?opts.btnName:'上传图片'}}</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 >\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 {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, forwardRef, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport {UploadOssService} from \"../../../core/services/upload-oss.service\";\r\nimport {commonDatas} from \"../../../core/base/atr-common\";\r\n\r\n@Component({\r\nstandalone: false,\r\n selector: 'app-select-icons',\r\n templateUrl: './select-icons.component.html',\r\n styleUrls: ['./select-icons.component.scss'],\r\n providers: [\r\n UploadOssService,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectIconsComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class SelectIconsComponent implements OnInit, ControlValueAccessor {\r\n @Input() readonly = true;\r\n @Input() placeholder = '选择图标';\r\n value:any;\r\n icons = commonDatas.icons\r\n showProp = false;\r\n onChangeListener: any; // 改变值回调\r\n onTouchedListener: any; // 交互回调\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n change(value: boolean): void {\r\n console.log(value);\r\n }\r\n\r\n valueChange(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.onChangeListener) {\r\n this.onTouchedListener(); // 告诉form,你的表单有交互发生\r\n }\r\n }\r\n\r\n selectIcon(item:any) {\r\n this.value = item;\r\n this.showProp = false;\r\n console.log('form change', this.value)\r\n console.log('form change e', item)\r\n if (this.onChangeListener) {\r\n this.onChangeListener(item); // 告诉form,你的表单值改变成了payload\r\n }\r\n if (this.onChangeListener) {\r\n this.onTouchedListener(); // 告诉form,你的表单有交互发生\r\n }\r\n }\r\n\r\n showIcons() {\r\n if(this.readonly){\r\n return\r\n }\r\n this.showProp = true\r\n }\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 writeValue(value: string): void {\r\n this.value = value;\r\n }\r\n}\r\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} from '@angular/core';\r\nimport { UntypedFormGroup} from '@angular/forms';\r\nimport {AtrFormOpt} from \"../../../core/base/atr-common\";\r\nimport {HttpService} from \"../../../core/services/http.service\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\n\r\n@Component({\r\n standalone: false,\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: UntypedFormGroup | any;\r\n @Input() dicts: any = {};\r\n @Input() title: 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( 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(\"TEST RIGHT\")\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\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 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 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 // getCascaderLabel(value: any, item: any) {\r\n // if(item.showLabel) return item.showLabel;\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 // item.showLabel = result.join(\"/\") ;\r\n // return item.showLabel\r\n // }\r\n\r\n getSelectCLabel(value: any, arr: any, key = 'key', valueKey = 'value') {\r\n if (ToolsUtil.isEmpty(value)) {\r\n return ''\r\n }\r\n let result = arr.filter((item: any) => {\r\n if (ToolsUtil.isArray(value)) {\r\n return value.some((v: any) => item[key] == v)\r\n }\r\n return value == item[key]\r\n })\r\n return result && result.length > 0 ? result.map((v: any) => v[valueKey]).join(\",\") : result[valueKey];\r\n }\r\n\r\n getSelectLabel(value: any, arr: any) {\r\n // console.log(value, arr)\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].value == 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 nzBordered [nzColon]=\"true\" [nzColumn]=\"24\" [nzTitle]=\"title\">\r\n <ng-container *ngFor=\"let item of formOpts.items\">\r\n <ng-container *ngIf=\"!item.isHidden\">\r\n <div class=\"form-title\" *ngIf=\"item.type == 'title'\">\r\n {{item.label}}\r\n </div>\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 {{getSelectCLabel(atrForm.value[item.key],item.dictList,'value','label')}}\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 <ng-container *ngFor=\"let data of atrForm.value[item.key] ;let i = index\">\r\n {{i>0?\"/\":\"\"}}{{data.lable}}\r\n </ng-container>\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 <div>\r\n <img *ngIf=\"!img.endsWith('.mp4')\" nz-image style=\"max-width: 200px;max-height: 200px\" [nzSrc]=\"img | ossImg\">\r\n <app-video *ngIf=\"img.endsWith('.mp4')\" style=\"max-width: 200px;max-height: 200px\" [url]=\"img | ossImg\"></app-video>\r\n </div>\r\n </ng-container>\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>\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 {\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output,\r\n ViewChild,\r\n ElementRef,\r\n AfterViewInit,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport {UploadOssService} from \"../../../core/services/upload-oss.service\";\r\n\r\ndeclare var tinymce: any;\r\n\r\n@Component({\r\n selector: 'app-editor',\r\n standalone: false,\r\n templateUrl: './editor.component.html',\r\n styleUrl: './editor.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => EditorComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class EditorComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\r\n @Input() apiKey_editor = \"r6xv8n00ar72ext02c46958btgzj53kd1223mr6kj8q9gvs6\"\r\n\r\n @Input() value: any;\r\n @Input() editorConfig: any;\r\n @Input() imgDir = 'uploads/editor';\r\n\r\n editor: any;\r\n onChangeListener: any;\r\n onTouchedListener: any;\r\n initialized = false;\r\n\r\n constructor(private uploadOssService: UploadOssService) {\r\n // 合并默认配置\r\n this.editorConfig = {\r\n ...{\r\n height: 500,\r\n branding: false,\r\n statusbar: true,\r\n menubar: 'edit insert format tools table help',\r\n language: 'zh_CN',\r\n language_url: 'assets/lib/tinymce/zh_CN.js',\r\n plugins: [\r\n 'advlist autolink lists link image charmap print preview anchor imagetools',\r\n 'searchreplace visualblocks code fullscreen',\r\n 'insertdatetime media table paste code help wordcount'\r\n ],\r\n toolbar: 'undo redo | formatselect | bold italic backcolor | \\\r\n alignleft aligncenter alignright alignjustify | \\\r\n bullist numlist outdent indent | image | removeformat | help',\r\n\r\n // ============ 新增图片相关配置开始 ============\r\n // 启用图片高级选项\r\n image_advtab: true,\r\n // 允许上传图片\r\n automatic_uploads: true,\r\n // 图片描述\r\n image_description: true,\r\n // 图片尺寸控制\r\n image_dimensions: true,\r\n // 图片标题\r\n image_title: true,\r\n // 图片预览\r\n image_prepend_url: '',\r\n\r\n // 图片上传处理函数\r\n images_upload_handler: (blobInfo: any): Promise<string> => {\r\n return this.uploadOss(blobInfo).then((url: any) => {\r\n // 确保返回的是字符串\r\n return String(url);\r\n }).catch((error) => {\r\n console.error('上传失败:', error);\r\n throw new Error('图片上传失败');\r\n });\r\n },\r\n\r\n // 文件选择器回调(用于选择本地图片)\r\n file_picker_callback: (callback: any, value: any, meta: any) => {\r\n if (meta.filetype === 'image') {\r\n const input = document.createElement('input');\r\n input.setAttribute('type', 'file');\r\n input.setAttribute('accept', 'image/*');\r\n\r\n input.onchange = (e: any) => {\r\n const file = e.target.files[0];\r\n const reader = new FileReader();\r\n\r\n reader.onload = () => {\r\n // 创建blob缓存\r\n const id = 'blobid' + (new Date()).getTime();\r\n const blobCache = tinymce.activeEditor.editorUpload.blobCache;\r\n const base64 = (reader.result as string).split(',')[1];\r\n const blobInfo = blobCache.create(id, file, base64);\r\n blobCache.add(blobInfo);\r\n\r\n // 调用回调\r\n callback(blobInfo.blobUri(), {title: file.name});\r\n };\r\n\r\n reader.readAsDataURL(file);\r\n };\r\n\r\n input.click();\r\n }\r\n },\r\n // ============ 新增图片相关配置结束 ============\r\n\r\n setup: (editor: any) => {\r\n this.editor = editor;\r\n editor.on('init', () => {\r\n console.log('✅ 编辑器初始化成功!');\r\n this.initialized = true;\r\n // 设置初始值\r\n if (this.value) {\r\n editor.setContent(this.value);\r\n }\r\n setTimeout(() => {\r\n // 移除试用提示容器\r\n document.querySelector(\"div.tox-promotion\")?.remove();\r\n console.log(\"已尝试移除试用提示\");\r\n }, 100);\r\n });\r\n\r\n // 监听编辑器内容变化\r\n editor.on('change keyup', () => {\r\n const content = editor.getContent();\r\n this.onEditorChange(content);\r\n });\r\n }\r\n },\r\n ...this.editorConfig\r\n };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // 确保 TinyMCE 已加载\r\n if (typeof tinymce !== 'undefined' && !this.editor) {\r\n // 可以在这里手动初始化编辑器\r\n }\r\n }\r\n\r\n uploadOss(blobInfo: any): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n // 将blob转换为File对象\r\n const file = blobInfo.blob();\r\n // 给文件一个唯一的名称(使用时间戳+原始文件名)\r\n const fileName = `${Date.now()}_${blobInfo.filename()}`;\r\n // 创建File对象\r\n const uploadFile = new File([file], fileName, {type: file.type});\r\n\r\n console.log('开始上传文件:', fileName);\r\n\r\n // 调用OSS上传服务\r\n this.uploadOssService.uploadOss(uploadFile, this.imgDir, true).subscribe({\r\n next: (response: any) => {\r\n console.log('OSS原始响应:', response);\r\n\r\n // 处理返回的响应,确保得到字符串类型的URL\r\n let imageUrl: string;\r\n\r\n if (typeof response === 'string') {\r\n imageUrl = response;\r\n } else if (response && typeof response.url === 'string') {\r\n imageUrl = response.url;\r\n } else if (response && response.data && typeof response.data.url === 'string') {\r\n imageUrl = response.data.url;\r\n } else if (response && typeof response === 'object') {\r\n // 尝试获取最常见的URL字段\r\n imageUrl = response.url || response.path || response.location || response.src || JSON.stringify(response);\r\n } else {\r\n imageUrl = String(response);\r\n }\r\n\r\n // 确保是字符串\r\n if (typeof imageUrl !== 'string') {\r\n imageUrl = String(imageUrl);\r\n }\r\n\r\n console.log('处理后的图片URL:', imageUrl);\r\n\r\n // 重要:必须返回字符串类型的URL\r\n resolve(imageUrl);\r\n },\r\n error: (error: any) => {\r\n console.error('图片上传失败:', error);\r\n reject('图片上传失败: ' + (error.message || '未知错误'));\r\n }\r\n });\r\n });\r\n }\r\n\r\n writeValue(value: string): void {\r\n this.value = value || '';\r\n\r\n // 如果编辑器已经初始化,更新编辑器内容\r\n if (this.editor && this.initialized) {\r\n this.editor.setContent(this.value);\r\n }\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 if (this.editor) {\r\n this.editor.setMode(isDisabled ? 'readonly' : 'design');\r\n }\r\n }\r\n\r\n // 编辑器内容变化时的处理\r\n onEditorChange(content: any): void {\r\n this.value = content;\r\n\r\n // 通知 Angular 表单值已改变\r\n if (this.onChangeListener) {\r\n this.onChangeListener(content);\r\n }\r\n\r\n if (this.onTouchedListener) {\r\n this.onTouchedListener();\r\n }\r\n }\r\n\r\n // 组件销毁时清理编辑器\r\n ngOnDestroy(): void {\r\n if (this.editor) {\r\n this.editor.remove();\r\n this.editor = null;\r\n }\r\n }\r\n}\r\n","<editor\r\n [init]=\"editorConfig\"\r\n [(ngModel)]=\"value\"\r\n [apiKey]=\"apiKey_editor\"\r\n name=\"editor\"\r\n (onChange)=\"onEditorChange($event)\"\r\n></editor>\r\n","import {Component, OnInit, Input, Injector, Inject, LOCALE_ID, Output, EventEmitter} from '@angular/core';\r\nimport {UntypedFormBuilder, UntypedFormGroup, UntypedFormControl, 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\nstandalone: false,\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: UntypedFormGroup | any;\r\n @Input() formOpts: AtrFormOpt | any;\r\n @Output() formAction = new EventEmitter<FormAction>();\r\n @Output() uploadAction = new EventEmitter<any>();\r\n @Input() viewTitle = '';\r\n\r\n // tslint:disable-next-line:max-line-length\r\n constructor(private shareService: ShareService, private httpService: HttpService,\r\n private fb: UntypedFormBuilder, 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 selectChange(event: MouseEvent, item: any) {\r\n if (event?.stopPropagation) {\r\n event.stopPropagation()\r\n }\r\n let action: FormAction = {\r\n name: item.key,\r\n code: 'selectChagne',\r\n };\r\n this.formAction.emit(action);\r\n }\r\n\r\n formChange(event: any, item: any) {\r\n this.formAction.emit({\r\n name: 'formChange',\r\n code: item.key,\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 getValue(key: string) {\r\n return this.atrForm.get(key)?.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, keyName: any) {\r\n list.forEach((dic: any) => {\r\n if (dic[keyName] == value[index][keyName]) {\r\n value[index] = {label: dic.label, value: dic.value};\r\n if (dic.children) {\r\n value = this.getCascaderDefaultValue(dic.children, index + 1, value, keyName)\r\n }\r\n return\r\n }\r\n })\r\n return value\r\n }\r\n\r\n getTree(list, keys) {\r\n return list.map(v => {\r\n keys.forEach((key: any) => {\r\n let arr = key.split(\"|\");\r\n v[arr[0]] = v[arr[1]];\r\n });\r\n if (v.children) {\r\n v.children = this.getTree(v.children, keys)\r\n } else {\r\n v.isLeaf = true;\r\n }\r\n return v\r\n })\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 = this.getTree(res.data, keys)\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 if (!item.valueProperty) item.valueProperty = \"value\"\r\n // let valueStrList:any = []\r\n if (item.selectUrl.url) {\r\n let selectUrl = item.selectUrl;\r\n if (selectUrl.host == 'oss') {\r\n this.httpService.getOss(selectUrl.url).subscribe(res => {\r\n item.dictList = this.conv(JSON.parse(res), keys)\r\n if (value && value.length > 0) {\r\n // value = this.getCascaderDefaultValue(item.dictList, 0, value)\r\n // if(item.showKey){\r\n // value = this.getCascaderDefaultValue(item.dictList, 0, value,item.keyName,item.valueProperty)\r\n // }\r\n // for(let item of value){\r\n // valueStrList.push(item.value)\r\n // }\r\n this.setValue(item.key, value)\r\n }\r\n })\r\n } else {\r\n this.httpService.post(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 // if(item.showKey){\r\n // value = this.getCascaderDefaultValue(item.dictList, 0, value,item.keyName)\r\n // }\r\n // for(let item of value){\r\n // valueStrList.push(item.value)\r\n // }\r\n this.setValue(item.key, value)\r\n }\r\n })\r\n }\r\n }\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:string[] = [];\r\n if(item.imageOpts.splitStr){\r\n list = value.split(item.imageOpts.splitStr);\r\n } else {\r\n list = [value];\r\n }\r\n for (let key of list) {\r\n images.push({\r\n key: key,\r\n uid: \"-1\",\r\n url: ToolsUtil.getOssUrl(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 UntypedFormControl(defaultValue, tempValidators));\r\n } else {\r\n this.atrForm.addControl(item.key, new UntypedFormControl(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 onBeforeUpload(e: any, item: any) {\r\n this.uploadAction.emit({code: 'onBeforeUpload', data: {...e.data, key: item.key}})\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:string[] = [];\r\n if(item.imageOpts.splitStr){\r\n list = value.split(item.imageOpts.splitStr);\r\n } else {\r\n list = [value];\r\n }\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: ToolsUtil.getOssUrl(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\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 const dateTypes = [\r\n 'date' ,'dayRange','dateTime' ,'dateRange'\r\n ];\r\n if (dateTypes.some(dtype => item.type == dtype)) {\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 }\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.nzShowTime) {\r\n return item.nzShowTime;\r\n }\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 defNumFormat = (value: number): string => {\r\n return value.toString()\r\n }\r\n}\r\n","<atr-view-form *ngIf=\"formOpts.type == 'view'\" [dicts]=\"dicts\" [atrForm]=\"atrForm\" [title]=\"viewTitle\"\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 <ng-content *ngTemplateOutlet=\"item.firstTemp\"></ng-content>\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' && item.treeList\"\r\n [nzNodes]=\"item.treeList\"\r\n [nzDefaultExpandAll]=\"item.expandAll\"\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 (ngModelChange)=\"formChange($event,item)\"\r\n nzVirtualHeight=\"330px\"\r\n style=\"flex: 1\"\r\n >\r\n </nz-tree-select>\r\n <nz-color-picker *ngIf=\"item.type == 'color'\" [formControlName]=\"item.key\"\r\n (ngModelChange)=\"formChange($event,item)\"\r\n [nzDisabled]=\"item.readonly\"></nz-color-picker>\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 (ngModelChange)=\"formChange($event,item)\"\r\n [readonly]=\"item.readonly || formOpts.type == 'view'\"\r\n [formControlName]=\"item.key\"/>\r\n <nz-switch *ngIf=\"item.type == 'switch'\" [formControlName]=\"item.key\"\r\n [nzDisabled]=\"item.readonly || formOpts.type == 'view'\"\r\n (ngModelChange)=\"formChange($event,item)\" [nzCheckedChildren]=\"item.nzCheckedChildren\"\r\n [nzUnCheckedChildren]=\"item.nzUnCheckedChildren\"></nz-switch>\r\n\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 (ngModelChange)=\"formChange($event,item)\"\r\n [nzFormatter]=\"item.dateFormat || defNumFormat\"\r\n [nzStep]=\"item.nzStep || 1\" [nzPrecision]=\"item.nzPrecision || 0\"\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 (ngModelChange)=\"formChange($event,item)\"\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 nzShowSearch\r\n nzPlaceHolder=\"{{item.placeholder}}\"\r\n nzAllowClear=\"true\"\r\n [formControlName]=\"item.key\"\r\n [nzMode]=\"item.nzMode || 'default'\"\r\n [nzDisabled]=\"item.readonly|| formOpts.type == 'view'\"\r\n (ngModelChange)=\"selectChange($event,item)\"\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]=\"item.valueProperty\"\r\n [nzShowSearch]=\"true\" *ngIf=\"item.type == 'cascader'\"\r\n [nzChangeOnSelect]=\"item.allowSelectNode\"\r\n [nzOptions]=\"item.dictList\" [formControlName]=\"item.key\"></nz-cascader>\r\n <ng-container *ngIf=\"item.type == 'date'\">\r\n <nz-date-picker *ngIf=\"!item.dateMode\" [nzFormat]=\"item.dateFormat ? item.dateFormat : 'yyyy-MM-dd'\"\r\n [nzShowTime]=\"showTime(item)\" style=\"flex: 1\"\r\n [nzDisabled]=\"formOpts.type == 'view' || item.readonly \"\r\n [formControlName]=\"item.key\"></nz-date-picker>\r\n <nz-date-picker *ngIf=\"item.dateMode\"\r\n style=\"flex: 1\"\r\n [nzMode]=\"item.dateMode\"\r\n [nzDisabled]=\"formOpts.type == 'view' || item.readonly \"\r\n [formControlName]=\"item.key\"></nz-date-picker>\r\n </ng-container>\r\n\r\n <nz-range-picker *ngIf=\"item.type == 'dateRange'\" style=\"flex: 1\"\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 (onBeforeUpload)=\"onBeforeUpload($event,item)\"\r\n (afterChange)=\"imageUploadChange($event)\"></atr-img-upload>\r\n <div *ngIf=\"item.type == 'editor'\">\r\n <app-editor style=\"flex: 1\" [formControlName]=\"item.key\"></app-editor>\r\n\r\n </div>\r\n\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\nstandalone: false,\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\nstandalone: false,\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 {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {SessionStorageUtil} from \"../../../core/utils/sessionstorage.util\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\n\r\n@Component({\r\nstandalone: false,\r\n selector: 'app-img',\r\n templateUrl: './img-canvas.component.html',\r\n styleUrls: ['./img-canvas.component.less']\r\n})\r\nexport class ImgCanvasComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() needTime = false;\r\n\r\n @Input() set url(url: string) {\r\n // if (url && url.indexOf('?v=') < 0) {\r\n // if (url.indexOf(\"?\") < 0) {\r\n // url += \"?\";\r\n //\r\n // }\r\n // url += \"v=\" + new Date().getTime()\r\n // }\r\n this.imgUrl = url;\r\n }\r\n\r\n @ViewChild('canvas1', {static: false}) canvas1: any;\r\n canvasDom: any\r\n width = 800;\r\n height = 800;\r\n imgUrl: any;\r\n img: any;\r\n @Input() clipArr: any[] = [];\r\n @Input() rotateNum: any = 0;\r\n @Output() loadOver: EventEmitter<any> = new EventEmitter();\r\n @Input() needContextmenu = false\r\n\r\n constructor(private elementRef: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n getCanvasFull() {\r\n let imgW = this.img.width//图片的宽\r\n let imgH = this.img.height//图片的高\r\n let cW = this.width;\r\n let cH = this.height;\r\n let rateW = imgH / imgW//比例\r\n let rateH = imgW / imgH//比例\r\n if (imgW > imgH) {\r\n imgW = this.width\r\n imgH = imgW * rateW;\r\n if (imgH > cH) {\r\n imgH = cH\r\n imgW = imgH * rateH\r\n }\r\n } else {\r\n imgH = this.height\r\n imgW = imgH * rateH;\r\n if (imgW > cW) {\r\n imgW = cW\r\n imgH = imgW * rateW\r\n }\r\n }\r\n\r\n // imgH = this.canvasDom.offsetHeight\r\n // imgW = this.canvasDom.offsetWidth\r\n // let canvasH = imgH * rate\r\n // if (canvasH > this.height) {\r\n // canvasH = this.height\r\n // rate = canvasH / imgH\r\n // canvasW = imgW * rate\r\n // }\r\n console.log(\"图片宽高\", imgW + \";\" + imgH)\r\n return {\r\n imgW: imgW,\r\n imgH: imgH\r\n }\r\n }\r\n\r\n initImg(needSession = true) {\r\n this.canvasDom = this.canvas1.nativeElement;\r\n // this.canvasDom = document.getElementById(this.canvasId);\r\n //检测支持性\r\n if (!this.canvasDom.getContext('2d')) return;\r\n //获得 2d 上下文对象\r\n let context1 = this.canvasDom.getContext('2d');\r\n let img = new Image()\r\n img.setAttribute('crossOrigin', 'anonymous')\r\n if (this.needTime) {\r\n if (this.imgUrl.indexOf(\"?\") < 0) {\r\n this.imgUrl += \"?\";\r\n }\r\n this.imgUrl += \"v=\" + new Date().getTime()\r\n }\r\n img.src = this.imgUrl\r\n img.onload = () => {\r\n this.img = img\r\n const {imgW, imgH} = this.getCanvasFull();\r\n this.canvasDom.width = this.width;\r\n this.canvasDom.height = this.height;\r\n if (this.clipArr && this.clipArr.length > 0) {\r\n this.goClip(context1)\r\n }\r\n // 参数 1:要绘制的 img 参数 2、3:绘制的 img 在 canvas 中的坐标 参数4,5是width,height\r\n context1.drawImage(this.img, 0, 0, this.width, this.height,);\r\n this.loadOver.emit({code: 'loadOver'})\r\n }\r\n }\r\n\r\n\r\n goClip(context: any) {\r\n context.beginPath()\r\n context.moveTo(this.clipArr[0].x1, this.clipArr[0].y1);\r\n this.clipArr.forEach((item, index) => {\r\n if (index > 0) {\r\n context.lineTo(item.x1, item.y1)\r\n }\r\n })\r\n context.lineTo(this.clipArr[0].x1, this.clipArr[0].y1);\r\n context.clip();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n console.log('当前组件宽高', this.elementRef.nativeElement.offsetHeight)\r\n this.initImg()\r\n }, 300)\r\n }\r\n\r\n}\r\n","<canvas #canvas1 style=\"width: 100%;height: 100%;\" oncontextmenu=\"return needContextmenu\">\n 您的浏览器不支持画布!\n</canvas>\n<ng-content></ng-content>\n","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 {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 {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 {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\nimport {ImgCanvasComponent} from \"./img-canvas/img-canvas.component\";\r\nimport {VgCoreModule} from '@videogular/ngx-videogular/core';\r\nimport {VgControlsModule} from '@videogular/ngx-videogular/controls';\r\nimport {VgOverlayPlayModule} from '@videogular/ngx-videogular/overlay-play';\r\nimport {VgBufferingModule} from '@videogular/ngx-videogular/buffering';\r\nimport {DebounceClickDirective} from \"../../core/directive/debounce-click.directive\";\r\nimport {InfiniteScrollDirective} from \"../../core/directive/Infinite-scroll.directive\";\r\nimport {NzColorPickerModule} from \"ng-zorro-antd/color-picker\";\r\nimport {NzModalModule} from \"ng-zorro-antd/modal\";\r\nimport { EditorModule } from '@tinymce/tinymce-angular';\r\nimport {EditorComponent} from \"./eidtor/editor.component\";\r\n\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 = [ImgCanvasComponent,TableFormItemComponent,TableTdComponent,AtrTableComponent,UploadComponent,AtrFormComponent,LocalUploadComponent,\r\n SelectTreeComponent,VideoComponent,SelectIconsComponent,EchartsComponent,ViewFormComponent,EditorComponent\r\n];\r\nconst DIRECTIVES = [AtrRoleDirective, AtrErrorImgDirective, HqSpinDirective,DebounceClickDirective,InfiniteScrollDirective];\r\n@NgModule({\r\n imports: [\r\n PipeModuleModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n NzColorPickerModule,\r\n // third libs\r\n ...THIRDMODULES,\r\n VgCoreModule,\r\n VgControlsModule,\r\n VgOverlayPlayModule,\r\n VgBufferingModule,\r\n DragDropModule,\r\n AtrComponentsModule,\r\n ...DIRECTIVES,\r\n NzModalModule,\r\n EditorModule,\r\n ],\r\n declarations: [\r\n ...COMPONENTS\r\n\r\n ],\r\n exports: [\r\n DragDropModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n NzColorPickerModule,\r\n ...THIRDMODULES,\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","/*\r\n * Public API Surface of components\r\n */\r\nimport {ChinaNumPipe} from \"./core/pipe/china-num.pipe\";\r\nimport {CountPipe} from \"./core/pipe/count.pipe\";\r\nimport {OssPipe} from \"./core/pipe/oss.pipe\";\r\nimport {OssStaticPipe} from \"./core/pipe/ossStatic.pipe\";\r\nimport {RemoveHtmlPipe} from \"./core/pipe/remove-html.pipe\";\r\nimport {SafeUrlPipe} from \"./core/pipe/safe-url.pipe\";\r\n\r\nexport * from \"./core/animations/animations\"\r\nexport * from \"./core/interceptor/base.interceptor\"\r\nexport * from \"./core/ngz-module/cus-zorro-antd.module\"\r\nexport * from \"./core/animations/fly-in\"\r\nexport * from \"./core/animations/scroll-screen\"\r\nexport * from './atr-components.module';\r\nexport * from './core/auth/auth.guard';\r\nexport * from './core/base/atr-common';\r\nexport * from './core/routereuse/atr-reuse-strategy';\r\nexport * from \"./core/utils/ToolsUtil\"\r\nexport * from \"./core/utils/localstorage.util\"\r\nexport * from \"./core/utils/sessionstorage.util\"\r\nexport * from \"./core/services/dict/dict.service\"\r\nexport * from \"./core/services/http.service\"\r\nexport * from \"./core/services/menu.service\"\r\nexport * from \"./core/services/upload-oss.service\"\r\nexport * from \"./core/directive/role.directive\";\r\nexport * from \"./core/directive/error-img.directive\";\r\nexport * from \"./core/directive/hq-spin.directive\";\r\nexport * from \"./core/directive/Infinite-scroll.directive\";\r\nexport * from \"./core/directive/debounce-click.directive\";\r\n\r\nexport * from \"./core/pipe/pipe-module.module\"\r\nexport * from \"./core/pipe/is-empty.pipe\";\r\nexport * from \"./core/pipe/dicts.pipe\";\r\nexport * from \"./core/pipe/defaultVal.pipe\";\r\nexport * from \"./core/pipe/day.pipe\";\r\nexport * from \"./core/pipe/safe-compute.pipe\";\r\nexport * from \"./core/pipe/is-not-empty.pipe\";\r\nexport * from \"./core/pipe/image-pipe.pipe\";\r\nexport * from \"./core/pipe/safe-html.pipe\";\r\nexport * from \"./core/pipe/china-num.pipe\";\r\nexport * from \"./core/pipe/count.pipe\";\r\nexport * from \"./core/pipe/oss.pipe\";\r\nexport * from \"./core/pipe/ossStatic.pipe\";\r\nexport * from \"./core/pipe/remove-html.pipe\";\r\nexport * from \"./core/pipe/safe-url.pipe\";\r\n\r\nexport * from \"./lib/shared/atr-shared.module\"\r\nexport * from \"./lib/shared/form/form.component\"\r\nexport * from \"./lib/shared/eidtor/editor.component\"\r\nexport * from \"./lib/shared/local-upload/local-upload.component\"\r\nexport * from \"./lib/shared/select-tree/select-tree.component\"\r\nexport * from \"./lib/shared/service/busi.service\"\r\nexport * from \"./lib/shared/table/table-td/table-td.component\"\r\nexport * from \"./lib/shared/share.service\"\r\nexport * from \"./lib/shared/video/video.component\"\r\nexport * from \"./lib/shared/img-canvas/img-canvas.component\"\r\nexport * from \"./lib/shared/validators/atr-validtors\"\r\nexport * from \"./lib/shared/upload/upload.component\"\r\nexport * from \"./lib/shared/table/table.component\"\r\nexport * from \"./lib/shared/table/table-form-item/table-form-item.component\"\r\nexport * from \"./lib/shared/select-icons/select-icons.component\"\r\nexport * from \"./lib/shared/echarts/echarts.component\"\r\nexport * from \"./lib/shared/view-form/view-form.component\"\r\n\r\n(window as any).global = window;\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './atr-public-api';\n"],"names":["i1","i1.HttpService","i1.DictService","i2.HttpService","i2","i3","i4","i7","i12.IsNotEmptyPipe","i5","i8","i9","i10","i11.AtrRoleDirective","i12.AtrErrorImgDirective","i13.DefaultValPipe","i14.DictsPipe","i15.OssImgPipe","i16.SafeHtmlPipe","i6","i7.AtrRoleDirective","i11","i14.AtrRoleDirective","i15.HqSpinDirective","i16.TableFormItemComponent","i17.TableTdComponent","i18.LocalUploadComponent","i10.VideoComponent","i11.OssImgPipe","i9.VideoComponent","i10.OssImgPipe","i1.UploadOssService","i12","i13","i15","i18","i19","i20","i21.UploadComponent","i22.SelectIconsComponent","i23.ViewFormComponent","i24.EditorComponent","i25.DefaultValPipe","i26.SafeHtmlPipe"],"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/sessionstorage.util.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/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/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/core/directive/Infinite-scroll.directive.ts","../../../projects/components/src/core/directive/debounce-click.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/table/table-td/table-td.component.ts","../../../projects/components/src/lib/shared/table/table-td/table-td.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.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/select-icons/select-icons.component.ts","../../../projects/components/src/lib/shared/select-icons/select-icons.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/eidtor/editor.component.ts","../../../projects/components/src/lib/shared/eidtor/editor.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/img-canvas/img-canvas.component.ts","../../../projects/components/src/lib/shared/img-canvas/img-canvas.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 {TemplateRef} from \"@angular/core\";\r\n\r\nexport const atr_static_datas = {\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 OSS_GETHOST: '',\r\n needOss: true,\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 static await_Data: any = {};\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' | 'color',\r\n key: string,\r\n isHidden?: boolean,\r\n allowSelectNode?: boolean,//cascader 是否允许选择父节点\r\n // valueProperty?:string,//valueProperty 实际值\r\n // showKey?:string,//cascader 编辑或者初始化值时 根据showKey(label Or Value)来找全label和value\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|Function,\r\n dictList?: CusDict[],\r\n nzMode?: 'multiple' | 'tags' | 'default',\r\n dateMode?: 'week' | 'month' | 'year',\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 firstTemp?: 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 nzCheckedChildren?: string,\r\n nzUnCheckedChildren?: string,\r\n nzPrecision?: number,\r\n nzStep?: number,\r\n\r\n /**\r\n * 树形树形控件是否展开所有节点\r\n */\r\n expandAll?:boolean,\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' | 'image64'|'tempRef',//类型: 文字、链接、操作\r\n dictCode?: string,\r\n isShow?: boolean,\r\n width: number,//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 styleCallBack?: Function,\r\n forbidResize?: boolean,\r\n tempRef?: TemplateRef<any>\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,isShowTime: boolean },\r\n nzShowNow?: boolean,\r\n expandAll?: 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 className?: string,\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 children?: any,\r\n isSelect?: boolean//checkBox默认选中\r\n}\r\n\r\nexport declare interface ImageOpts {\r\n limit?: number,\r\n nzSize?: 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' | '' | 'button',\r\n nzFileType?: string,\r\n keepName?: boolean\r\n btnName?: string\r\n beforeUpload?:any\r\n customReq?:any\r\n splitStr?:string\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, 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 setImg(url: string, dataUrl:string) {\r\n let str = sessionStorage.getItem(this.getStorageKey('IMG_CACH'));\r\n let map:any = null\r\n if (str) {\r\n map = JSON.parse(str);\r\n }\r\n if (!map) {\r\n map = {}\r\n }\r\n if(url.indexOf(\"?\") > 0){\r\n url = url.substring(0,url.indexOf(\"?\"))\r\n }\r\n map[url] = dataUrl\r\n sessionStorage.setItem(this.getStorageKey('IMG_CACH'), JSON.stringify(map));\r\n }\r\n\r\n static getImg(url: string): { img: any, width: any, height: any } {\r\n // console.log(\"jjj\")\r\n let str = sessionStorage.getItem(this.getStorageKey('IMG_CACH'));\r\n let map: any = null;\r\n if (str) {\r\n if(url.indexOf(\"?\") > 0){\r\n url = url.substring(0,url.indexOf(\"?\"))\r\n }\r\n map = JSON.parse(str)[url];\r\n }\r\n return map\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 {json, AtrFormOpt, atr_static_datas} from '../base/atr-common';\r\nimport {SimpleChange} from '@angular/core';\r\nimport {Validators} from \"@angular/forms\";\r\nimport {SessionStorageUtil} from './sessionstorage.util';\r\nimport {ulid} from 'ulid';\r\n\r\nexport class ToolsUtil {\r\n static ossPrefix: string = '';\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\r\n static getUlid() {\r\n return ulid()\r\n }\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\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\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\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 ['200', '201', '204'].some(v => res.status == v)\r\n }\r\n\r\n /**\r\n * 计算两点坐标距离\r\n * @param point1\r\n * @param point2\r\n */\r\n static getDistance(point1: { x: any, y: any }, point2: { x: any, y: any }) {\r\n let distance = Math.sqrt((point2.x - point1.x) * (point2.x - point1.x) + (point2.y - point1.y) * (point2.y - point1.y));\r\n return distance;\r\n }\r\n\r\n /**\r\n * 判断线段是否相交,相交返回交点坐标\r\n * @param p1\r\n * @param p2\r\n */\r\n static checkIntersect(lineArr1: { x: any, y: any }[], lineArr2: { x: any, y: any }[]) {\r\n //解线性方程组求线段交点\r\n //如果父母为0,则不需要计算交点 两线平行\r\n let a = lineArr1[0], b = lineArr1[1], c = lineArr2[0], d = lineArr2[1]\r\n\r\n a = {x: parseFloat(a.x.toFixed(2)), y: parseFloat(a.y.toFixed(2))};\r\n b = {x: parseFloat(b.x.toFixed(2)), y: parseFloat(b.y.toFixed(2))};\r\n c = {x: parseFloat(c.x.toFixed(2)), y: parseFloat(c.y.toFixed(2))}\r\n d = {x: parseFloat(d.x.toFixed(2)), y: parseFloat(d.y.toFixed(2))};\r\n console.log((b.y - a.y))\r\n console.log((d.x - c.x))\r\n console.log((a.x - b.x))\r\n console.log((c.y - d.y))\r\n let denominator = (b.y - a.y) * (d.x - c.x) - (a.x - b.x) * (c.y - d.y);\r\n if (denominator == 0) {\r\n return false\r\n }\r\n let x = ((b.x - a.x) * (d.x - c.x) * (c.y - a.y)\r\n + (b.y - a.y) * (d.x - c.x) * a.x\r\n - (d.y - c.y) * (b.x - a.x) * c.x) / denominator,\r\n y = -((b.y - a.y) * (d.y - c.y) * (c.x - a.x)\r\n + (b.x - a.x) * (d.y - c.y) * a.y\r\n - (d.x - c.x) * (b.y - a.y) * c.y) / denominator;\r\n //判断交点是否在两条线段上\r\n if (\r\n //交点在线段1\r\n (x - a.x) * (x - b.x) <= 0 && (y - a.y) * (y - b.y) <= 0 &&\r\n //并且交点在线段2上\r\n (x - c.x) * (x - d.x) <= 0 && (y - c.y) * (y - d.y) <= 0\r\n ) {\r\n return {x: x, y: y}\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n *\r\n * @param num1\r\n * @param num2\r\n * @param error 误差\r\n */\r\n static equalNum(num1: any, num2: any, error = 5) {\r\n let num = num1 - num2;\r\n return num < error && num > -error;\r\n }\r\n\r\n /**\r\n * 坐标对比\r\n * @param point1\r\n * @param point2\r\n * @param error\r\n */\r\n static equalPoint(point1: { x: any, y: any }, point2: { x: any, y: any }, error = 5) {\r\n return ToolsUtil.equalNum(point1.x, point2.x, error) && ToolsUtil.equalNum(point1.y, point2.y, error)\r\n }\r\n\r\n\r\n //判断点是否在线段上\r\n /**\r\n *\r\n * @param startP\r\n * @param endP\r\n * @param a\r\n * @param error 误差\r\n */\r\n static checkInLine(startP: any, endP: any, a: any, error = 5) {\r\n //点和端点重合\r\n if (ToolsUtil.equalPoint(startP, endP, error)\r\n || ToolsUtil.equalPoint(startP, a)\r\n || ToolsUtil.equalPoint(endP, a)) {\r\n return true;\r\n }\r\n if (ToolsUtil.equalNum(startP.x, endP.x, error)\r\n && !ToolsUtil.equalNum(startP.x, a.x, error)) {\r\n return false\r\n } else if (ToolsUtil.equalNum(startP.x, endP.x, error)\r\n && ToolsUtil.equalNum(startP.x, a.x, error)) {\r\n if (startP.y > endP.y) {\r\n return startP.y > a.y && endP.y < a.y\r\n }\r\n return startP.y < a.y && endP.y > a.y\r\n }\r\n //判断点在线段上\r\n //斜率是否一致\r\n let k1 = (endP.y - startP.y) / (endP.x - startP.x);\r\n let b = startP.y - k1 * startP.x;\r\n let y = k1 * a.x + b;\r\n if (ToolsUtil.equalNum(y, a.y, error)) {\r\n //5像素的误差\r\n let startLen = ToolsUtil.getLength(startP, a)\r\n let endLen = ToolsUtil.getLength(a, endP)\r\n let len = ToolsUtil.getLength(startP, endP)\r\n return len >= startLen && len >= endLen\r\n }\r\n return false;\r\n\r\n\r\n }\r\n\r\n /**\r\n * 点斜式\r\n */\r\n static getSlopePoint(startP: any, endP: any) {\r\n //计算斜率\r\n if (startP.x == endP.x) {\r\n return {k: Infinity, x: startP.x};\r\n }\r\n let k = (endP.y - startP.y) / (endP.x - startP.x);\r\n let b = startP.y - k * startP.x;\r\n return {k: k, b: b}\r\n }\r\n\r\n /**\r\n *判断点是否在坐标区域内\r\n * @param p 判定的点\r\n * @param pointsArr\r\n */\r\n static judgeInRec(p: { x1?: any, y1?: any, x?: any, y?: any }, pointsArr: { x1?: any, y1?: any, x?: any, y?: any }[]) {\r\n pointsArr = pointsArr.map(item => {\r\n return {x1: Number(item.x1 || item.x || 0), y1: Number(item.y1 || item.y || 0)}\r\n })\r\n p = {x1: p.x1 || p.x || 0, y1: p.y1 || p.y || 0}\r\n let px = Number(p.x1), py = Number(p.y1),\r\n flag = false,//穿越边框\r\n inRect = false;//是否在多边形的边或者端点上\r\n let start = pointsArr[0]\r\n //如果数组首尾没有相连,手动添加};\r\n let end = pointsArr[pointsArr.length - 1];\r\n //如果数组首尾没有相连,手动添加\r\n pointsArr = start.x1 != end.x1 || start.y1 != end.y1 ? pointsArr.concat(start) : pointsArr;\r\n //射线选取Y坐标不变,x正方向\r\n pointsArr.forEach((item, index) => {\r\n if (index == pointsArr.length - 1\r\n || inRect//在多边形的边或者端点上视为在区域内\r\n ) {\r\n return\r\n }\r\n let endPoint = pointsArr[index + 1]\r\n const startX = Number(item.x1), startY = Number(item.y1),\r\n endX = Number(endPoint.x1), endY = Number(endPoint.y1);\r\n //判断点是否在端点上\r\n if ((px == startX && py == startY)\r\n || (px == endX && px == endY)) {\r\n inRect = true;\r\n return;\r\n }\r\n\r\n //判断射线重合并且点在边上\r\n if ((startY == endY && endY == py)\r\n && ((px > endX && px < startX\r\n || (px < endX && px > startX)))) {\r\n inRect = true;\r\n return;\r\n }\r\n\r\n if ((startY < py && endY >= py)\r\n || (startY >= py && endY < py)) {\r\n\r\n //求射线与线段交点的x坐标,y坐标还是py\r\n let x = startX + (py - startY) * (endX - startX) / (endY - startY);\r\n //点在边上\r\n if (x == px) {\r\n inRect = true\r\n return;\r\n }\r\n //x大于px来保证射线朝右\r\n if (x > px) {\r\n flag = !flag\r\n }\r\n }\r\n })\r\n return inRect || flag;\r\n\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 deepCopy(obj: any) {\r\n return JSON.parse(JSON.stringify(obj));\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 dataURLtoBlob(dataurl: any) {\r\n var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n return new Blob([u8arr], {type: mime});\r\n }\r\n\r\n static dataURLtoFile(dataurl: any, filename?: string) {\r\n var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n return new File([u8arr], (filename || ToolsUtil.getRandomFileName()), {type: mime});\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\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\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 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 getFormatDateHour(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;\r\n }\r\n\r\n static getOssUrl(url: string, needTime = false) {\r\n if (!url) {\r\n return \"\";\r\n }\r\n if (needTime) {\r\n // url = url + \"?v=\" + ToolsUtil.getFormatDateHour(new Date());\r\n url = url + \"?v=\" + new Date().getTime()\r\n }\r\n if (url.startsWith(\"http\")) {\r\n return url\r\n }\r\n if (!url.startsWith(\"/\") && !atr_static_datas.OSS_URL.endsWith('/')) {\r\n url = '/' + url\r\n }\r\n let result = atr_static_datas.OSS_URL + url\r\n\r\n return result\r\n }\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\r\n static removeHtml(value: any) {\r\n if (!value) {\r\n return '';\r\n }\r\n return value.replace(/<[^<>]+>/g, '').replace(/ /ig, '')\r\n }\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 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 // 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 getImg(url: string, param: any = {\r\n imgW: 0, imgH: 0,\r\n needTime: false, isFullUrl: false\r\n }) {\r\n return new Promise((resolve, reject) => {\r\n let dataUrl: any = SessionStorageUtil.getImg(url)\r\n let img = new Image()\r\n img.setAttribute('crossOrigin', 'anonymous')\r\n if (!dataUrl) {\r\n img.src = param.isFullUrl ? url : ToolsUtil.getOssUrl(url, param.needTime)\r\n } else {\r\n let index = dataUrl.indexOf(\"}\") + 1\r\n img.src = dataUrl.slice(0, 50) + dataUrl.slice(index);\r\n }\r\n\r\n img.onload = () => {\r\n let c = document.createElement('canvas')\r\n let context2: any = c.getContext(\"2d\")\r\n c.width = param.imgW || img.width;\r\n c.height = param.imgH || img.height\r\n context2.drawImage(img, 0, 0, c.width, c.height)\r\n let dataUrl = c.toDataURL()\r\n let str = c.width + \",\" + c.height + \"}\"\r\n dataUrl = dataUrl.slice(0, 50) + str + dataUrl.slice(50)\r\n//不保存\r\n// SessionStorageUtil.setImg(url, dataUrl)\r\n\r\n resolve(img)\r\n }\r\n })\r\n\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 isArray(obj: any) {\r\n return obj instanceof Array\r\n }\r\n\r\n static isEmpty(obj: any) {\r\n if (obj === undefined) {\r\n return true\r\n }\r\n if (obj === null) {\r\n return true\r\n }\r\n if (typeof obj == 'boolean') {\r\n return false\r\n }\r\n if (obj === 0) {\r\n return false\r\n }\r\n if (typeof obj == \"string\" && obj.trim() === '') {\r\n return true\r\n }\r\n return false\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\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 static getLength(pointA: { x1: any, y1: any, x: any, y: any }, pointB: { x: any, y: any, x1: any, y1: any }) {\r\n pointA.x1 = pointA.x || pointA.x1 || 0\r\n pointA.y1 = pointA.y || pointA.y1 || 0\r\n pointB.y1 = pointB.y || pointB.y1 || 0;\r\n pointB.x1 = pointB.x || pointB.x1 || 0;\r\n var lengthAB = Math.sqrt(Math.pow(pointA.x1 - pointB.x1, 2) +\r\n Math.pow(pointA.y1 - pointB.y1, 2))\r\n return lengthAB;\r\n }\r\n\r\n static getRotateNum(pointB: { x1: any, y1: any, x: any, y: any }, pointC: { x1: any, y1: any, x: any, y: any }, pointA: { x1: any, y1: any, x: any, y: any }) {\r\n pointA.x1 = pointA.x || pointA.x1 || 0\r\n pointA.y1 = pointA.y || pointA.y1 || 0\r\n pointB.x1 = pointB.y || pointB.x1 || 0;\r\n pointB.y1 = pointB.x || pointB.x1 || 0;\r\n pointC.x1 = pointC.y || pointC.x1 || 0;\r\n pointC.y1 = pointC.x || pointC.x1 || 0;\r\n\r\n //ABC中心点,起始点,终点\r\n let AB: any = {};\r\n let AC: any = {};\r\n AB.x1 = pointB.x1 - pointA.x1\r\n AB.y1 = pointB.y1 - pointA.y1\r\n AC.x1 = pointC.x1 - pointA.x1\r\n AC.y1 = pointC.y1 - pointA.y1\r\n var direct = AB.x1 * AC.y1 - AB.y1 * AC.y1\r\n var lengthAB = this.getLength(pointB, pointA)\r\n var lengthAC = this.getLength(pointC, pointA)\r\n var lengthBC = this.getLength(pointB, pointC)\r\n var cosA = (Math.pow(lengthAB, 2) + Math.pow(lengthAC, 2) -\r\n Math.pow(lengthBC, 2)) / (2 * lengthAB * lengthAC)\r\n var angleA = Math.round(Math.acos(cosA) * 180 / Math.PI)\r\n if (direct < 0) {\r\n return -angleA\r\n } else {\r\n return angleA\r\n }\r\n\r\n }\r\n\r\n //绕center点旋转rotate角度\r\n static getRotatePoint(p: { x1: any, y1: any }, center: { x1: any, y1: any }, rotate: any) {\r\n let startX = p.x1\r\n let startY = p.y1\r\n let a = center.x1\r\n let b = center.y1\r\n let x1 = a - Math.cos(rotate * Math.PI / 180) * (a - startX) + Math.sin(rotate * Math.PI / 180) * (b - startY)\r\n let y1 = b - Math.cos(rotate * Math.PI / 180) * (b - startY) - Math.sin(rotate * Math.PI / 180) * (a - startX)\r\n return {\r\n x1: x1,\r\n y1: y1\r\n }\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,handle,AtrReuseStrategy.handlers)\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\nimport {UploadOssService} from './upload-oss.service';\r\n\r\n@Injectable()\r\nexport class HttpService {\r\n\r\n constructor(\r\n private httpClient: HttpClient\r\n ) {\r\n }\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 *\r\n * @param url\r\n * @param params\r\n */\r\n post = (url: string, params?: any, options?: HttpOptions, headers?: HttpHeaders, noTip = false): 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 _headers = _headers.set(\"noTip\", noTip ? \"1\" : \"0\");\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\r\n postPromAll(urls: { url: string, params?: {}, }[], options?: HttpOptions, headers?: HttpHeaders, noTip = false) {\r\n let param: any[] = [];\r\n urls.forEach(item => {\r\n param.push(this.postProm(item.url, item.params, options, headers, noTip = false));\r\n })\r\n\r\n\r\n return Promise.all(param)\r\n }\r\n\r\n\r\n getOssPre() {\r\n return new Observable<any>(observe => {\r\n if (!atr_static_datas.OSS_GETHOST) {\r\n observe.error();\r\n observe.unsubscribe()\r\n return\r\n }\r\n this.post(atr_static_datas.OSS_GETHOST, {}, ToolsUtil.getHttpOptions()).subscribe(\r\n res => {\r\n atr_static_datas.OSS_URL = res.data\r\n ToolsUtil.ossPrefix = res.data\r\n observe.next();\r\n observe.unsubscribe()\r\n }\r\n )\r\n })\r\n }\r\n\r\n postProm(url: string, params?: any, options?: HttpOptions, headers?: HttpHeaders, noTip = false) {\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 _headers = _headers.set(\"noTip\", noTip ? \"1\" : \"0\");\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\r\n postBody = (url: string, params?: any, options?: HttpOptions, headers?: {}, noTip = false): 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 _headers = _headers.set(\"noTip\", noTip ? \"1\" : \"0\");\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\r\n get = (url: string, params?: {}, options?: HttpOptions, noTip = false): 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 _headers = _headers.set(\"noTip\", noTip ? \"1\" : \"0\");\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, {\r\n headers: _headers,\r\n params: params,\r\n 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 upload = (method: any, url: any, formData: FormData, progress: any): Observable<any> => {\r\n /**\r\n * 例:\r\n * let isOutput: any = true\r\n let file = ToolsUtil.dataURLtoFile(dataUrl, 'tset.png')\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n formData.append('isOutput', isOutput);\r\n return this.httpService.upload(\"post\", 'mgr/uploadImage', formData, () => {\r\n })\r\n * */\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\r\n downloadXls(url: string, params?: any) {\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\nimport {readTsconfig} from \"@angular-devkit/build-angular/src/utils/read-tsconfig\";\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class MenuService {\r\n\r\n private data: Menu[] = [];\r\n static menuChange: EventEmitter<Menu[]>\r\n static urlChange: EventEmitter<any>;\r\n static urlLastParams: 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 if (!MenuService.menuChange) {\r\n MenuService.menuChange = new EventEmitter()\r\n }\r\n if (!MenuService.urlChange) {\r\n MenuService.urlChange = new EventEmitter()\r\n }\r\n }\r\n\r\n getAllMenus() {\r\n return this.data;\r\n }\r\n\r\n delLastUrlParams(url) {\r\n if (MenuService.urlLastParams.url == url) {\r\n MenuService.urlLastParams = {};\r\n }\r\n }\r\n\r\n getLastUrlParams(): any {\r\n return MenuService.urlLastParams;\r\n }\r\n\r\n gotoUrl(routeParam: { url: string, paramUrl: string, title?: string, eqAllUrl?: boolean, params?: any }) {\r\n if (routeParam.params) {\r\n MenuService.urlLastParams = routeParam;\r\n }\r\n MenuService.urlChange.emit(routeParam);\r\n }\r\n\r\n getUrlChange(): any {\r\n return MenuService.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(result, 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 console.log(\"菜单\",this.data)\r\n } else {\r\n this.isLoadMenu = 'unload';\r\n this.data = [];\r\n }\r\n observe.next(this.data);\r\n MenuService.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 MenuService.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 {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,noTip = false): 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 if(!noTip){\r\n this.notification.error(`未登录或登录已过期,请重新登录。`, ``,{\r\n nzKey: 'outTime'\r\n });\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 if(!noTip) {\r\n this.message.error(body.message);\r\n }\r\n } else if(body && body.status === 1025){\r\n // 或者依然保持完整的格式\r\n if(!noTip) {\r\n this.message.error(`参数为空。`);\r\n }\r\n } else if(body && body.status === 503){\r\n // 或者依然保持完整的格式\r\n if(!noTip) {\r\n this.message.error(body.message);\r\n }\r\n }else if(body && body.status === 204){\r\n // 或者依然保持完整的格式\r\n if(!noTip) {\r\n this.message.success(body.message);\r\n }\r\n }else if(body && body.status === 201){\r\n // 或者依然保持完整的格式\r\n if(!noTip) {\r\n this.message.success(body.message);\r\n }\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 LocalStorageUtil.clearUs()\r\n this.menuService.clear();\r\n this.goTo('/p/login',true);\r\n // TODO 清空 token 信息\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 let noTip = req.headers.get(\"noTip\");\r\n return next.handle(req).pipe(\r\n mergeMap((event: any) => {\r\n // 允许统一对请求错误处理\r\n if (event instanceof HttpResponseBase) return this.handleData(event,noTip == \"1\");\r\n // 若一切都正常,则后续操作\r\n return of(event);\r\n }),\r\n catchError((err: HttpErrorResponse) => this.handleData(err,noTip == \"1\")),\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 { NzInputNumberLegacyModule } from 'ng-zorro-antd/input-number-legacy';\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 { NzPageHeaderModule } from 'ng-zorro-antd/page-header';\r\nimport { NzPaginationModule } from 'ng-zorro-antd/pagination';\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 NzInputNumberLegacyModule,\r\n NzLayoutModule,\r\n NzListModule,\r\n NzMentionModule,\r\n NzMenuModule,\r\n NzNoAnimationModule,\r\n NzPageHeaderModule,\r\n NzPaginationModule,\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 {Injectable} from '@angular/core';\r\nimport {HttpService} from '../http.service';\r\nimport {Observable} from 'rxjs';\r\nimport {atr_static_datas, commonDatas, 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 static await_Data = {};\r\n\r\n constructor(private httpService: HttpService) {\r\n }\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\r\n async getCodeNameSync(keys: string, code: string, selectUrl?: any, splitKey?: string) {\r\n return new Promise((resolve, reject) => {\r\n this.getCodeNamePromise(code, selectUrl).then(() => {\r\n if (splitKey && keys) {\r\n let result:any = []\r\n\r\n for (let item of keys.toString().split(splitKey)) {\r\n result.push(this.getCodeName(code,item));\r\n }\r\n resolve(result.join(splitKey));\r\n } else {\r\n let result = this.getCodeName(code, keys);\r\n resolve(result);\r\n }\r\n })\r\n })\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\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\r\n async getCodeNamePromise(code: string, selectUrl?: any) {\r\n return new Promise(async (resolve, reject) => {\r\n let dict = SessionStorageUtil.getDictGroupByCode(code);\r\n if (dict) {\r\n resolve(dict);\r\n } else {\r\n if (commonDatas.await_Data[code]) {\r\n setTimeout(() => {\r\n this.getDictBycode(code, selectUrl).subscribe(res => {\r\n resolve(res);\r\n }, error => {\r\n resolve(error);\r\n })\r\n }, 500)\r\n return\r\n }\r\n commonDatas.await_Data[code] = true;\r\n this.getDicBycodeBase(code, selectUrl).subscribe(result => {\r\n resolve(result);\r\n commonDatas.await_Data[code] = false;\r\n }, error => {\r\n resolve(error);\r\n commonDatas.await_Data[code] = false;\r\n })\r\n\r\n }\r\n })\r\n }\r\n\r\n getDictBycode(code: string, selectUrl?: any): Observable<DictGroup> {\r\n // //console.log(code);\r\n\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 if (commonDatas.await_Data[code]) {\r\n setTimeout(() => {\r\n this.getDictBycode(code, selectUrl).subscribe(res => {\r\n observe.next(res);\r\n observe.unsubscribe()\r\n }, error => {\r\n observe.next(error);\r\n observe.unsubscribe()\r\n })\r\n }, 500)\r\n return\r\n }\r\n commonDatas.await_Data[code] = true;\r\n this.getDicBycodeBase(code, selectUrl).subscribe(result => {\r\n observe.next(result);\r\n observe.unsubscribe()\r\n commonDatas.await_Data[code] = false;\r\n }, error => {\r\n observe.next(error);\r\n observe.unsubscribe();\r\n commonDatas.await_Data[code] = false;\r\n })\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\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,splitKey?:string) {\r\n if (ToolsUtil.isNull(dictCode)) {\r\n return value\r\n }\r\n // return this.dictService.getCodeNameSync(value, dictCode, null, splitKey)\r\n return this.dictService.getCodeNameSync(value, dictCode,null,splitKey ).then(res =>{\r\n return res;\r\n })\r\n // return \"测试1\"\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, param:any = {isVideoCover: false, needTime: false}) {\r\n return param.isVideoCover ? ToolsUtil.getVideoCover(value) : ToolsUtil.getOssUrl(value, param.needTime);\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,needTime = false): any {\r\n return ToolsUtil.getOssUrl(value,needTime);\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';\r\nimport {CommonModule} from '@angular/common';\r\nimport {IsEmptyPipe} from \"./is-empty.pipe\";\r\nimport {DictsPipe} from \"./dicts.pipe\";\r\nimport {DefaultValPipe} from \"./defaultVal.pipe\";\r\nimport {DayPipe} from \"./day.pipe\";\r\nimport {SafeComputePipe} from \"./safe-compute.pipe\";\r\nimport {IsNotEmptyPipe} from \"./is-not-empty.pipe\";\r\nimport {OssImgPipe} from \"./image-pipe.pipe\";\r\nimport {SafeHtmlPipe} from \"./safe-html.pipe\";\r\nimport {ChinaNumPipe} from \"./china-num.pipe\";\r\nimport {CountPipe} from \"./count.pipe\";\r\nimport {OssPipe} from \"./oss.pipe\";\r\nimport {OssStaticPipe} from \"./ossStatic.pipe\";\r\nimport {RemoveHtmlPipe} from \"./remove-html.pipe\";\r\nimport {SafeUrlPipe} from \"./safe-url.pipe\";\r\n\r\n// const PIPES = [IsNotEmptyPipe, DefaultValPipe, DictsPipe, DayPipe, IsEmptyPipe, SafeComputePipe,OssImgPipe]\r\nconst PIPES = [\r\n IsNotEmptyPipe,\r\n DefaultValPipe,\r\n DictsPipe, // 暂时注释\r\n DayPipe,\r\n IsEmptyPipe,\r\n SafeComputePipe,\r\n OssImgPipe,\r\n SafeHtmlPipe, // 暂时注释\r\n ChinaNumPipe,\r\n CountPipe,\r\n OssPipe,\r\n OssStaticPipe,\r\n RemoveHtmlPipe, // 暂时注释\r\n SafeUrlPipe // 暂时注释\r\n];\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ...PIPES\r\n ],\r\n declarations: [],\r\n exports: PIPES,\r\n\r\n})\r\nexport class PipeModuleModule {\r\n}\r\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\r\n\r\n uploadOss = (file: any, dir = 'ueditor', fullUrl = true) => {\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, fullUrl, result.data).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, {\r\n dir: dir,\r\n fileName: fileName\r\n }, ToolsUtil.getHttpOptions()).subscribe(success, error);\r\n });\r\n\r\n }\r\n\r\n customReq = (file: File, fullUrl = true, uploadData:any = null) => {\r\n const formData = new FormData();\r\n uploadData = uploadData ? uploadData : this.uploadData\r\n for (let key in 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 = fullUrl ? (event.url + uploadData.key) : 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 {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {EditorModule} from \"@tinymce/tinymce-angular\";\r\nimport {AtrErrorImgDirective} from \"./core/directive/error-img.directive\";\r\nimport {PipeModuleModule} from \"./core/pipe/pipe-module.module\";\r\nimport {HttpService} from \"./core/services/http.service\";\r\nimport {MenuService} from \"./core/services/menu.service\";\r\nimport {UploadOssService} from \"./core/services/upload-oss.service\";\r\n\r\nconst COMMON_COMPONENT: any[] = []\r\n\r\n@NgModule({\r\n declarations: [...COMMON_COMPONENT],\r\n imports: [\r\n EditorModule,\r\n CommonModule,\r\n PipeModuleModule,\r\n ],\r\n providers:[HttpService,MenuService,UploadOssService],\r\n exports: [...COMMON_COMPONENT,\r\n PipeModuleModule\r\n ]\r\n\r\n})\r\nexport class AtrComponentsModule {\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\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\nimport {HttpService} from \"../services/http.service\";\r\nimport {ToolsUtil} from '../utils/ToolsUtil';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AuthGuard {\r\n\r\n constructor(private router: Router, private httpService: HttpService) {\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): any {\r\n // throw new Error(\"Method not implemented.\");\r\n if (LocalStorageUtil.getUserId() != \"\") {\r\n if (atr_static_datas.needOss && atr_static_datas.OSS_GETHOST && !ToolsUtil.ossPrefix) {\r\n this.httpService.getOssPre().subscribe();\r\n }\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 {Directive, Output, EventEmitter, ElementRef, OnDestroy} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appInfiniteScroll]'\r\n})\r\n/**\r\n * 滚动滚动到底部时触发事件\r\n */\r\nexport class InfiniteScrollDirective implements OnDestroy {\r\n\r\n @Output() public appInfiniteScroll = new EventEmitter<void>();\r\n private _scrollHandler = () => this.onScroll();\r\n\r\n constructor(private elementRef: ElementRef) {\r\n // 监听滚动事件\r\n this.elementRef.nativeElement.addEventListener('scroll', this._scrollHandler);\r\n }\r\n\r\n ngOnDestroy() {\r\n // 移除滚动事件监听器\r\n this.elementRef.nativeElement.removeEventListener('scroll', this._scrollHandler);\r\n }\r\n\r\n private onScroll() {\r\n const element = this.elementRef.nativeElement;\r\n // 检查是否已滚动到底部\r\n if (element.scrollTop + element.clientHeight >= element.scrollHeight - 5) { // 5px buffer\r\n this.appInfiniteScroll.emit(); // 触发事件\r\n }\r\n }\r\n\r\n}\r\n","import {Directive, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {debounceTime} from \"rxjs\";\r\n\r\n@Directive({\r\n selector: '[debounceClick]'\r\n})\r\nexport class DebounceClickDirective implements OnInit,OnDestroy{\r\n @Input() time = 500;\r\n @Output() debounceClick = new EventEmitter();\r\n click$ = new EventEmitter();\r\n subscription:any;\r\n\r\n\r\n constructor() { }\r\n ngOnInit(): void {\r\n this.subscription = this.click$.pipe(debounceTime(this.time)).subscribe(e => {\r\n console.log('debounceClick debounceTime',event);\r\n this.debounceClick.emit(e)\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe()\r\n }\r\n @HostListener('click', ['$event'])\r\n public clickEvent(event: Event) {\r\n console.log('debounceClick',event);\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.click$.emit(event);\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\nstandalone: false,\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 [nzMaxTagCount]=\"header.maxTagCount ||3\"\r\n nzPlaceHolder=\"{{header.placeholder||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.placeholder||header.name}}\"\r\n nzAllowClear=\"true\"\r\n [nzShowSearch]=\"true\"\r\n [(ngModel)]=\"value\"\r\n [nzMaxTagCount]=\"header.maxTagCount ||3\"\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.placeholder||header.name}}\"\r\n [nzShowSearch]=\"true\"\r\n [nzOptions]=\"header.dictList\"\r\n [(ngModel)]=\"value\"\r\n ></nz-cascader>\r\n <ng-container *ngSwitchCase=\"'treeSelect'\">\r\n <nz-tree-select *ngIf=\"header.treeList\"\r\n [nzDefaultExpandAll]=\"header.expandAll\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n [nzNodes]=\"header.treeList\"\r\n nzHideUnMatched=\"true\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n [nzShowSearch]=\"true\"\r\n [(ngModel)]=\"value\"\r\n [nzMultiple]=\"header.selectUrl.isMultiple\"\r\n [nzMaxTagCount]=\"header.maxTagCount || 3\"\r\n nzVirtualHeight=\"330px\"\r\n >\r\n </nz-tree-select>\r\n </ng-container>\r\n\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?.isShowTime || false\"\r\n (ngModelChange)=\"onChange($event)\"\r\n\r\n [nzFormat]=\"header.nzShowTime?.nzFormat || 'yyyy-MM-dd'\"\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, 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\nimport {ToolsUtil} from \"../../../../core/utils/ToolsUtil\";\r\n\r\n@Component({\r\nstandalone: false,\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() set data(d: any) {\r\n this.result = d;\r\n setTimeout(() => {\r\n this.value = this.getValue(d)\r\n })\r\n }\r\n\r\n @Input() item: Table | any;\r\n @Input() i: any\r\n value: any;\r\n result: 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\r\n\r\n getValue(data: any) {\r\n let key = this.item.key;\r\n if (key && key.indexOf('.') > 0) {\r\n let keys = key.split('.');\r\n let value = data;\r\n keys.forEach((k: any) => {\r\n if (value) {\r\n value = value[k]\r\n }\r\n })\r\n return value\r\n }\r\n return data[key];\r\n\r\n }\r\n\r\n\r\n getStyleCallBack(item: Table, data: any) {\r\n let style: any = {}\r\n if (item.styleCallBack) {\r\n style = item.styleCallBack(data)\r\n }\r\n if (item.color) {\r\n style['color'] = item.color;\r\n }\r\n return style\r\n }\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 isShow = this.compare(value, op[1], op[2])\r\n } else {\r\n isShow = false\r\n }\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 = !ToolsUtil.isEmpty(value);\r\n break;\r\n case 'empty':\r\n isRight = ToolsUtil.isEmpty(value)\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 <ng-container *ngSwitchCase=\"'tempRef'\">\r\n <ng-container *ngTemplateOutlet=\"item.tempRef; context: {data: result,item:item,value:value}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'innerHtml'\">\r\n <div [ngStyle]=\"getStyleCallBack(item,result)\" [innerHTML]=\"item.innerHtmlBack((value| defVal:item.defaultVal),result) | safeHtml\" ></div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textcolor'\">\r\n <div [innerHTML]=\"value | defVal:item.defaultVal\" [ngStyle]=\"{'color':item.color}\"\r\n *ngIf=\"item.colorShow == value\"></div>\r\n <div [innerHTML]=\"value | defVal:item.defaultVal\" *ngIf=\"item.colorShow != value\"></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 [ngStyle]=\"getStyleCallBack(item,result)\"\r\n [nzPopoverContent]=\"value | date:'yyyy-MM-dd' | defVal:item.defaultVal\"\r\n class=\"view-text\">{{ value | 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 [ngStyle]=\"getStyleCallBack(item,result)\"\r\n [nzPopoverContent]=\"value | date:'yyyy-MM-dd HH:mm:ss' | defVal:item.defaultVal\"\r\n class=\"view-text\"> {{ value | date:'yyyy-MM-dd HH:mm:ss' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <nz-switch *ngSwitchCase=\"'switch'\" [(ngModel)]=\"value\" [nzDisabled]=\"item.disabled\"\r\n [ngStyle]=\"getStyleCallBack(item,result)\"\r\n (ngModelChange)=\"doActionSwitch(result,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\" [ngStyle]=\"getStyleCallBack(item,result)\"\r\n [nzPopoverContent]=\"value | date:'MM-dd HH:mm' | defVal:item.defaultVal\"\r\n class=\"view-text\"> {{ value | date:'MM-dd HH:mm' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <div *ngSwitchCase=\"'fixedText'\" [ngStyle]=\"getStyleCallBack(item,result)\" [innerHTML]=\"item.key\"></div>\r\n\r\n <img *ngSwitchCase=\"'image'\" [ngStyle]=\"getStyleCallBack(item,result)\" width=\"35px\" nzSrc=\"{{(value | defVal:item.defaultVal) | ossImg}}\"\r\n nz-image atrErrorImg/>\r\n <img *ngSwitchCase=\"'image64'\" [ngStyle]=\"getStyleCallBack(item,result)\" width=\"35px\" nzSrc=\"{{(value | defVal:item.defaultVal)}}\"\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(result,action.operator,action)\">\r\n <ng-container *ngIf=\"!action.withoutRole\">\r\n <button nz-button [ngClass]=\"action.className || ''\"\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(result,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 [ngClass]=\"action.className || ''\"\r\n [nzType]=\"action.buttonType&&action.buttonType != 'danger'? action.buttonType : 'primary'\"\r\n [nzDanger]=\"action.buttonType == 'danger'\"\r\n nzSize=\"small\" (click)=\"doActionByRow(result,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(result,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 [ngStyle]=\"getStyleCallBack(item,result)\" *ngSwitchCase=\"'dict'\" [innerHTML]=\"value | dicts:item.dictCode:',' | async | defVal:item.defaultVal\"></div>\r\n <div [ngStyle]=\"getStyleCallBack(item,result)\" nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\" [nzPopoverContent]='value | defVal:item.defaultVal'\r\n class=\"view-text\" *ngSwitchDefault [innerHTML]=\"value | defVal:item.defaultVal\"></div>\r\n</ng-container>\r\n\r\n","import {Component, OnInit, Input, Output, EventEmitter} from '@angular/core';\r\nimport {LocalStorageUtil} from \"../../../core/utils/localstorage.util\";\r\nimport {NzUploadChangeParam, NzUploadFile} from 'ng-zorro-antd/upload';\r\n\r\n@Component({\r\n standalone: false,\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 @Input() beforeUpload: any;\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\r\n @Input() uploadType = 'noraml'\r\n @Output()\r\n afterChange: EventEmitter<any> = new EventEmitter();\r\n fileList: NzUploadFile[] = []\r\n\r\n showList: any = false;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n // this.header = this.getDefaultHeader(new HttpHeaders());\r\n }\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\r\n onChange(params: NzUploadChangeParam) {\r\n console.log(params, this.fileList);\r\n\r\n if (params.type == \"success\" || params.type == \"removed\") {\r\n let fileUrls: any[] = [];\r\n if (params.type == \"success\" && params.fileList.length > 1) {\r\n params.fileList.shift()\r\n this.fileList = params.fileList;\r\n console.log(\"删除后\", params, this.fileList);\r\n }\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\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\"\r\n [nzHeaders]=\"header\" [nzShowUploadList]=\"showList\"\r\n nzListType=\"picture-card\"\r\n [nzBeforeUpload]=\"beforeUpload\"\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 [nzBeforeUpload]=\"beforeUpload\"\r\n (nzChange)=\"onChange($event)\"\r\n [nzFileList]=\"fileList\"\r\n [nzLimit]='1'\r\n *ngIf=\"uploadType != 'drag'\"\r\n >\r\n <button nz-button nzSize=\"small\"><i nz-icon nzType=\"upload\"></i><span> {{name}}</span></button>\r\n </nz-upload>\r\n <nz-upload *ngIf=\"uploadType == 'drag'\"\r\n nzType=\"drag\"\r\n [nzAction]=\"url\" [nzAccept]=\"nzAccept\" [nzHeaders]=\"header\"\r\n [nzBeforeUpload]=\"beforeUpload\"\r\n [nzFileList]=\"fileList\"\r\n (nzChange)=\"onChange($event)\"\r\n [nzLimit]='1'>\r\n <p class=\"ant-upload-drag-icon\">\r\n <nz-icon nzType=\"inbox\" />\r\n </p>\r\n <p class=\"ant-upload-text\">单击或拖动文件到此区域以上传文件</p>\r\n <p class=\"ant-upload-hint\">\r\n </p>\r\n </nz-upload>\r\n</ng-container>\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, AfterViewInit\r\n} from '@angular/core';\r\nimport {UntypedFormGroup, UntypedFormBuilder, UntypedFormControl} 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\nimport {NzResizeDirection, NzResizeEvent} from \"ng-zorro-antd/resizable\";\r\n\r\n@Component({\r\n standalone: false,\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, AfterViewInit {\r\n viewInitOver = false;\r\n tableWidth = 0;\r\n tableHeight = 0;\r\n scrollX = 0;\r\n id = -1;\r\n scrollSize: any = {x: \"\", y: \"\"}\r\n isCollapse = true;\r\n atrForm: UntypedFormGroup | any = null;\r\n dicts: any = {};\r\n pageIndex = 1;\r\n total = 1;\r\n @Input() pageSize = 10;\r\n @Input() pageSizeOptions: number[] = [10, 20, 30, 40, 50];\r\n @Input() loading = true;\r\n @Input() allowDrag = false;//允许拖拽换位\r\n @Input() showQueryTime = false;\r\n tableDatas: any = [];\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 @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('formContent', {static: true}) tableHeader: ElementRef | any;\r\n @ViewChild('pageContent', {static: true}) pageFooter: ElementRef | any;\r\n @ViewChild('tableContent', {static: true}) tableContent: ElementRef | any;\r\n @ViewChild('basicTable', {static: true}) basicTable: ElementRef | any;\r\n\r\n constructor(private fb: UntypedFormBuilder, private injector: Injector, @Inject(LOCALE_ID) private locale: string, private cd: ChangeDetectorRef,) {\r\n }\r\n\r\n onResize({width, height, direction}: NzResizeEvent, item): void {\r\n cancelAnimationFrame(this.id);\r\n this.id = requestAnimationFrame(() => {\r\n\r\n if (width) {\r\n this.scrollX += (width - item.width)\r\n this.scrollSize.x = this.scrollX + \"px\";\r\n item.width = width!;\r\n this.resizeDirection = direction!;\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n setTimeout(() => {\r\n this.initWidth();\r\n\r\n this.isAllLoad = true;\r\n this.cd.detectChanges();\r\n }, 100)\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (this.queryOpts && this.queryOpts.headers.length > 0) {\r\n this.atrForm = this.fb.group({});\r\n }\r\n\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 initWidth() {\r\n this.tableHeight = this.tableContent.nativeElement.offsetHeight;\r\n this.tableWidth = this.tableContent.nativeElement.offsetWidth;\r\n let tempWidth = 0\r\n this.queryOpts.tables.filter(item => item.isShow && !item.isLeft && !item.isRight).forEach(item => {\r\n tempWidth += item.width;\r\n })\r\n this.scrollX = tempWidth;\r\n //固定在左侧的最后一列不允许改变宽度 isLeft = true时\r\n //固定在右侧的第一列不允许改变宽度 isRight = true时\r\n let arr = this.queryOpts.tables.filter(item => item.isShow && !item.isLeft)\r\n if (arr.length > 0) {\r\n arr[arr.length - 1].forbidResize = true\r\n }\r\n arr = []\r\n arr = this.queryOpts.tables.filter(item => item.isShow && !item.isRight)\r\n if (arr.length > 0) {\r\n arr[0].forbidResize = true\r\n }\r\n\r\n console.log(\"initWidth 改变前 \", this.pageFooter, this.tableHeight)\r\n if (this.scrollX < this.tableWidth) {\r\n let lastItem = this.queryOpts.tables[this.queryOpts.tables.length - 1]\r\n let wid = lastItem.width;\r\n wid += (this.tableWidth - this.scrollX);\r\n lastItem.width = wid;\r\n this.scrollX = this.tableWidth;\r\n }\r\n this.scrollSize.x = this.scrollX + \"px\";\r\n console.log(\"initWidth 改变后\", this.scrollSize, this.tableWidth)\r\n setTimeout(() => {\r\n const tableWrapper: any = document.querySelector('.table-content .ant-table-title');\r\n this.scrollSize.y = (this.tableHeight > 0 ? (this.tableHeight - tableWrapper.clientHeight - 120) : 200) + \"px\";\r\n this.viewInitOver = true\r\n }, 500)\r\n }\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.curChecked = 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 widthId\r\n resizeDirection: NzResizeDirection | null = null;\r\n\r\n setTableLoadding(loadding: boolean) {\r\n this.loading = loadding;\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 if (!this.tableDatas || this.tableDatas.length <= 0) {\r\n return\r\n }\r\n this.isAllDisplayDataChecked = this.tableDatas.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\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 UntypedFormControl());\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\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 let action: TableAction = {\r\n name: '收起/展开',\r\n code: 'collapse',\r\n data: this.isCollapse,\r\n value: this.isCollapse,\r\n };\r\n this.headerAction.emit(action)\r\n }\r\n\r\n setFormValue(key, value) {\r\n if (this.atrForm) {\r\n this.atrForm.get(key)?.setValue(value);\r\n }\r\n this.query(true)\r\n }\r\n\r\n resetForm(): void {\r\n if (this.atrForm) {\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 this.headerAction.emit({\r\n name: '重置',\r\n code: 'resetForm',\r\n })\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 sortBy: this.getSortInfo()\r\n };\r\n params = Object.assign(params, this.defaultParams);\r\n if (!this.atrForm) {\r\n return params;\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 params[begin] = formatDate((this.atrForm.value[key][0] as Date), 'yyyy-MM-dd 00:00:00', this.locale);\r\n params[end] = formatDate((this.atrForm.value[key][1] as Date), 'yyyy-MM-dd 23:59:59', 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 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.sortBy) {\r\n order = this.queryOpts.sortBy\r\n } else\r\n order = orderby.join(\",\");\r\n return order;\r\n }\r\n\r\n queryTime = \"\";\r\n\r\n PageSizeChange(e) {\r\n console.log(e)\r\n this.pageSize = e\r\n this.query(true)\r\n }\r\n\r\n PageIndexChange(e) {\r\n console.log(e)\r\n this.pageIndex = e\r\n this.query()\r\n }\r\n\r\n setDates(res) {\r\n this.tableDatas = res.data\r\n this.total = res?.page?.totalResult;\r\n this.loading = false\r\n this.getRowSpan();\r\n this.mapOfCheckedId = {};\r\n this.curChecked = -1;\r\n this.refreshStatus();\r\n }\r\n\r\n query(reset: boolean = false) {\r\n let params = this.getQueryParams(reset);\r\n console.log('查询条件', params, this)\r\n if (this.queryHeaders) {\r\n params = Object.assign({}, this.queryHeaders, params);\r\n }\r\n if (this.queryOpts.url) {\r\n this.loading = true;\r\n this.queryTime = formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss', this.locale);\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.setDates(result)\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","<div class=\"full-screen table-content \" #tableContent [spinLoading]=\"!viewInitOver\" HqSpin>\r\n <nz-table #basicTable [nzData]=\"tableDatas\" nzBordered\r\n nzSize=\"middle\"\r\n [ngStyle]=\"{visibility: viewInitOver ? '':'hidden',width: tableWidth + 'px' }\"\r\n [nzTitle]=\"tableHeader\"\r\n [nzFooter]=\" showPagination ? pageFooter : null\"\r\n [nzFrontPagination]=\"false\"\r\n [nzScroll]=\"{x:scrollSize.x,y:scrollSize.y}\"\r\n >\r\n <thead>\r\n <tr (contextmenu)=\"contextMenu($event,menu)\">\r\n <th [nzBreakWord]=\"true\" *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 [nzBreakWord]=\"true\" [nzLeft]=\"true\" class=\"left-zindex-header\" *ngIf=\"queryOpts.isIndex\"\r\n nzWidth=\"30px\" nzAlign=\"center\">#\r\n </th>\r\n <th [nzBreakWord]=\"true\" [nzLeft]=\"true\" class=\"left-zindex-header\" *ngIf=\"queryOpts.checkBox?.isRadio\"\r\n nzWidth=\"30px\"\r\n nzAlign=\"center\">#\r\n </th>\r\n <ng-container *ngFor=\"let item of queryOpts.tables;let last = last\">\r\n <th *ngIf=\"item.isShow \"\r\n nz-resizable\r\n [nzMinWidth]=\"60\"\r\n [nzWidth]=\"item.width + 'px'\"\r\n [nzRight]=\"item.isRight ? true : false\"\r\n [nzLeft]=\"item.isLeft ? true : false\"\r\n (nzResize)=\"onResize($event,item)\"\r\n >{{item.name}}\r\n <nz-resize-handle nzDirection=\"right\" *ngIf=\"!item.forbidResize\">\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 <tbody>\r\n @for (data of basicTable.data; track data) {\r\n <tr class=\"t-tr\"\r\n [ngStyle]=\"{'color':isShowColor(data)}\" (click)=\"selectRow(data,$index)\"\r\n [ngClass]=\"{'selected': $index == curChecked}\" (dblclick)=\"dbclickData(data,$index)\" >\r\n @if (queryOpts.checkBox?.isShowCheckbox) {\r\n <td [nzBreakWord]=\"true\" [nzLeft]=\"true\"\r\n class=\"left-zindex\"\r\n nzShowCheckbox\r\n [(nzChecked)]=\"mapOfCheckedId[data.id]\"\r\n (nzCheckedChange)=\"refreshStatus()\"\r\n ></td>\r\n }\r\n @if (queryOpts.checkBox?.isRadio) {\r\n <td [nzBreakWord]=\"true\" [nzLeft]=\"true\"\r\n class=\"left-zindex\" nzShowCheckbox (nzCheckedChange)=\"selectRow(data,$index)\"\r\n [(nzChecked)]=\"mapOfCheckedId[data.id]\"></td>\r\n }\r\n @if (queryOpts.isIndex) {\r\n <td [nzBreakWord]=\"true\" [nzLeft]=\"true\" nzAlign=\"center\" style=\"padding:12px 0;\"\r\n nzBreakWord>{{$index + 1}}</td>\r\n }\r\n @for (item of queryOpts.tables; track item) {\r\n <td [nzBreakWord]=\"true\" [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,$index) \">\r\n <app-table-td [data]=\"data\"\r\n [item]=\"item\"\r\n [i]=\"$index\"\r\n (doActionByRowAction)=\"doActionByRow2($event)\"\r\n ></app-table-td>\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </tbody>\r\n </nz-table>\r\n</div>\r\n\r\n\r\n<ng-template #tableHeader>\r\n <form nz-form [formGroup]=\"atrForm\" class=\"ant-advanced-search-form\" [style]=\"{width: tableWidth-15+'px'}\"\r\n *ngIf=\"queryOpts.headers.length >0 || queryOpts.actions.length >0\" #formContent>\r\n <div nz-row [nzGutter]=\"24\" [hidden]=\"!isCollapse\">\r\n <ng-content select=\"[header-left-slot]\"></ng-content>\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-right-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-content select=\"[button-left-slot]\"></ng-content>\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\"\r\n [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 <ng-content select=\"[button-right-slot]\"></ng-content>\r\n </div>\r\n <div nz-col [nzSpan]=\"8\" class=\"search-area\" *ngIf=\"queryOpts.headers.length >0 && !queryOpts.isHideQuery\">\r\n <span *ngIf=\"showQueryTime&&queryTime\">数据查询时间:{{queryTime}}</span>\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</ng-template>\r\n<ng-template #pageFooter>\r\n <div class=\"flex\" style=\"justify-content: flex-end;\" #pageContent>\r\n <div class=\"flex \" style=\"align-items: center\">\r\n 共 {{ total }} 条记录\r\n </div>\r\n\r\n <nz-pagination [nzPageIndex]=\"pageIndex\" [nzTotal]=\"total\" nzShowSizeChanger [nzPageSize]=\"pageSize\"\r\n [nzSize]=\"'small'\"\r\n (nzPageIndexChange)=\"PageIndexChange($event)\"\r\n (nzPageSizeChange)=\"PageSizeChange($event)\"\r\n ></nz-pagination>\r\n </div>\r\n\r\n</ng-template>\r\n<nz-dropdown-menu #menu=\"nzDropdownMenu\">\r\n <div class=\"tabel-colunmn white-bg\" style=\"width: 150px;\">\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","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\nstandalone: false,\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}\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 style=\"width: 100%;\"\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\nstandalone: false,\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 @Input() showUploadList: boolean | { showPreviewIcon?: boolean, showRemoveIcon?: boolean, showDownloadIcon?: boolean, hidePreviewIconInNonImage?: boolean } = {\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 @Output()\r\n onBeforeUpload: 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[]):any => {\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.onBeforeUpload.emit({code: 'getFile', data: {file: file, fileList: fileList}})\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):any => {\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\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 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 this.afterChange.emit({key: this.opts.key, values: fileUrls.join(\",\")});\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]=\"opts.beforeUpload || beforeUpload\"\r\n [nzRemove]=\"remove\"\r\n [nzSize]=\"opts.nzSize || 0\"\r\n [nzCustomRequest]=\"opts.customReq || 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 == 'button'\"\r\n nzType=\"drag\"\r\n nzAction=\"\"\r\n [nzSize]=\"opts.nzSize || 0\"\r\n [nzShowUploadList]=\"showUploadList\"\r\n [nzBeforeUpload]=\"opts.beforeUpload || beforeUpload\"\r\n [nzRemove]=\"remove\"\r\n [nzCustomRequest]=\"opts.customReq || customReq\"\r\n (nzChange)=\"onChange($event)\"\r\n [nzType]=\"opts?.uploadType\"\r\n [nzAccept]=\"opts.nzFileType\"\r\n [nzLimit]=\"'1'\"\r\n >\r\n <button nz-button nzSize=\"small\"><i nz-icon nzType=\"upload\" style=\"font-size: 16px\"></i><span> {{opts.btnName}}</span></button>\r\n </nz-upload>\r\n <nz-upload\r\n *ngIf=\"opts && !opts?.uploadType \"\r\n nzAction=\"\"\r\n nzListType=\"picture-card\"\r\n [nzSize]=\"opts.nzSize || 0\"\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]=\"opts.beforeUpload || beforeUpload\"\r\n [nzCustomRequest]=\"opts.customReq || 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\">{{opts.btnName?opts.btnName:'上传图片'}}</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 >\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 {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, forwardRef, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport {UploadOssService} from \"../../../core/services/upload-oss.service\";\r\nimport {commonDatas} from \"../../../core/base/atr-common\";\r\n\r\n@Component({\r\nstandalone: false,\r\n selector: 'app-select-icons',\r\n templateUrl: './select-icons.component.html',\r\n styleUrls: ['./select-icons.component.scss'],\r\n providers: [\r\n UploadOssService,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectIconsComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class SelectIconsComponent implements OnInit, ControlValueAccessor {\r\n @Input() readonly = true;\r\n @Input() placeholder = '选择图标';\r\n value:any;\r\n icons = commonDatas.icons\r\n showProp = false;\r\n onChangeListener: any; // 改变值回调\r\n onTouchedListener: any; // 交互回调\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n change(value: boolean): void {\r\n console.log(value);\r\n }\r\n\r\n valueChange(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.onChangeListener) {\r\n this.onTouchedListener(); // 告诉form,你的表单有交互发生\r\n }\r\n }\r\n\r\n selectIcon(item:any) {\r\n this.value = item;\r\n this.showProp = false;\r\n console.log('form change', this.value)\r\n console.log('form change e', item)\r\n if (this.onChangeListener) {\r\n this.onChangeListener(item); // 告诉form,你的表单值改变成了payload\r\n }\r\n if (this.onChangeListener) {\r\n this.onTouchedListener(); // 告诉form,你的表单有交互发生\r\n }\r\n }\r\n\r\n showIcons() {\r\n if(this.readonly){\r\n return\r\n }\r\n this.showProp = true\r\n }\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 writeValue(value: string): void {\r\n this.value = value;\r\n }\r\n}\r\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} from '@angular/core';\r\nimport { UntypedFormGroup} from '@angular/forms';\r\nimport {AtrFormOpt} from \"../../../core/base/atr-common\";\r\nimport {HttpService} from \"../../../core/services/http.service\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\n\r\n@Component({\r\n standalone: false,\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: UntypedFormGroup | any;\r\n @Input() dicts: any = {};\r\n @Input() title: 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( 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(\"TEST RIGHT\")\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\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 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 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 // getCascaderLabel(value: any, item: any) {\r\n // if(item.showLabel) return item.showLabel;\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 // item.showLabel = result.join(\"/\") ;\r\n // return item.showLabel\r\n // }\r\n\r\n getSelectCLabel(value: any, arr: any, key = 'key', valueKey = 'value') {\r\n if (ToolsUtil.isEmpty(value)) {\r\n return ''\r\n }\r\n let result = arr.filter((item: any) => {\r\n if (ToolsUtil.isArray(value)) {\r\n return value.some((v: any) => item[key] == v)\r\n }\r\n return value == item[key]\r\n })\r\n return result && result.length > 0 ? result.map((v: any) => v[valueKey]).join(\",\") : result[valueKey];\r\n }\r\n\r\n getSelectLabel(value: any, arr: any) {\r\n // console.log(value, arr)\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].value == 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 nzBordered [nzColon]=\"true\" [nzColumn]=\"24\" [nzTitle]=\"title\">\r\n <ng-container *ngFor=\"let item of formOpts.items\">\r\n <ng-container *ngIf=\"!item.isHidden\">\r\n <div class=\"form-title\" *ngIf=\"item.type == 'title'\">\r\n {{item.label}}\r\n </div>\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 {{getSelectCLabel(atrForm.value[item.key],item.dictList,'value','label')}}\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 <ng-container *ngFor=\"let data of atrForm.value[item.key] ;let i = index\">\r\n {{i>0?\"/\":\"\"}}{{data.lable}}\r\n </ng-container>\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 <div>\r\n <img *ngIf=\"!img.endsWith('.mp4')\" nz-image style=\"max-width: 200px;max-height: 200px\" [nzSrc]=\"img | ossImg\">\r\n <app-video *ngIf=\"img.endsWith('.mp4')\" style=\"max-width: 200px;max-height: 200px\" [url]=\"img | ossImg\"></app-video>\r\n </div>\r\n </ng-container>\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>\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 {\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output,\r\n ViewChild,\r\n ElementRef,\r\n AfterViewInit,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport {UploadOssService} from \"../../../core/services/upload-oss.service\";\r\n\r\ndeclare var tinymce: any;\r\n\r\n@Component({\r\n selector: 'app-editor',\r\n standalone: false,\r\n templateUrl: './editor.component.html',\r\n styleUrl: './editor.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => EditorComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class EditorComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\r\n @Input() apiKey_editor = \"r6xv8n00ar72ext02c46958btgzj53kd1223mr6kj8q9gvs6\"\r\n\r\n @Input() value: any;\r\n @Input() editorConfig: any;\r\n @Input() imgDir = 'uploads/editor';\r\n\r\n editor: any;\r\n onChangeListener: any;\r\n onTouchedListener: any;\r\n initialized = false;\r\n\r\n constructor(private uploadOssService: UploadOssService) {\r\n // 合并默认配置\r\n this.editorConfig = {\r\n ...{\r\n height: 500,\r\n branding: false,\r\n statusbar: true,\r\n menubar: 'edit insert format tools table help',\r\n language: 'zh_CN',\r\n language_url: 'assets/lib/tinymce/zh_CN.js',\r\n plugins: [\r\n 'advlist autolink lists link image charmap print preview anchor imagetools',\r\n 'searchreplace visualblocks code fullscreen',\r\n 'insertdatetime media table paste code help wordcount'\r\n ],\r\n toolbar: 'undo redo | formatselect | bold italic backcolor | \\\r\n alignleft aligncenter alignright alignjustify | \\\r\n bullist numlist outdent indent | image | removeformat | help',\r\n\r\n // ============ 新增图片相关配置开始 ============\r\n // 启用图片高级选项\r\n image_advtab: true,\r\n // 允许上传图片\r\n automatic_uploads: true,\r\n // 图片描述\r\n image_description: true,\r\n // 图片尺寸控制\r\n image_dimensions: true,\r\n // 图片标题\r\n image_title: true,\r\n // 图片预览\r\n image_prepend_url: '',\r\n\r\n // 图片上传处理函数\r\n images_upload_handler: (blobInfo: any): Promise<string> => {\r\n return this.uploadOss(blobInfo).then((url: any) => {\r\n // 确保返回的是字符串\r\n return String(url);\r\n }).catch((error) => {\r\n console.error('上传失败:', error);\r\n throw new Error('图片上传失败');\r\n });\r\n },\r\n\r\n // 文件选择器回调(用于选择本地图片)\r\n file_picker_callback: (callback: any, value: any, meta: any) => {\r\n if (meta.filetype === 'image') {\r\n const input = document.createElement('input');\r\n input.setAttribute('type', 'file');\r\n input.setAttribute('accept', 'image/*');\r\n\r\n input.onchange = (e: any) => {\r\n const file = e.target.files[0];\r\n const reader = new FileReader();\r\n\r\n reader.onload = () => {\r\n // 创建blob缓存\r\n const id = 'blobid' + (new Date()).getTime();\r\n const blobCache = tinymce.activeEditor.editorUpload.blobCache;\r\n const base64 = (reader.result as string).split(',')[1];\r\n const blobInfo = blobCache.create(id, file, base64);\r\n blobCache.add(blobInfo);\r\n\r\n // 调用回调\r\n callback(blobInfo.blobUri(), {title: file.name});\r\n };\r\n\r\n reader.readAsDataURL(file);\r\n };\r\n\r\n input.click();\r\n }\r\n },\r\n // ============ 新增图片相关配置结束 ============\r\n\r\n setup: (editor: any) => {\r\n this.editor = editor;\r\n editor.on('init', () => {\r\n console.log('✅ 编辑器初始化成功!');\r\n this.initialized = true;\r\n // 设置初始值\r\n if (this.value) {\r\n editor.setContent(this.value);\r\n }\r\n setTimeout(() => {\r\n // 移除试用提示容器\r\n document.querySelector(\"div.tox-promotion\")?.remove();\r\n console.log(\"已尝试移除试用提示\");\r\n }, 100);\r\n });\r\n\r\n // 监听编辑器内容变化\r\n editor.on('change keyup', () => {\r\n const content = editor.getContent();\r\n this.onEditorChange(content);\r\n });\r\n }\r\n },\r\n ...this.editorConfig\r\n };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // 确保 TinyMCE 已加载\r\n if (typeof tinymce !== 'undefined' && !this.editor) {\r\n // 可以在这里手动初始化编辑器\r\n }\r\n }\r\n\r\n uploadOss(blobInfo: any): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n // 将blob转换为File对象\r\n const file = blobInfo.blob();\r\n // 给文件一个唯一的名称(使用时间戳+原始文件名)\r\n const fileName = `${Date.now()}_${blobInfo.filename()}`;\r\n // 创建File对象\r\n const uploadFile = new File([file], fileName, {type: file.type});\r\n\r\n console.log('开始上传文件:', fileName);\r\n\r\n // 调用OSS上传服务\r\n this.uploadOssService.uploadOss(uploadFile, this.imgDir, true).subscribe({\r\n next: (response: any) => {\r\n console.log('OSS原始响应:', response);\r\n\r\n // 处理返回的响应,确保得到字符串类型的URL\r\n let imageUrl: string;\r\n\r\n if (typeof response === 'string') {\r\n imageUrl = response;\r\n } else if (response && typeof response.url === 'string') {\r\n imageUrl = response.url;\r\n } else if (response && response.data && typeof response.data.url === 'string') {\r\n imageUrl = response.data.url;\r\n } else if (response && typeof response === 'object') {\r\n // 尝试获取最常见的URL字段\r\n imageUrl = response.url || response.path || response.location || response.src || JSON.stringify(response);\r\n } else {\r\n imageUrl = String(response);\r\n }\r\n\r\n // 确保是字符串\r\n if (typeof imageUrl !== 'string') {\r\n imageUrl = String(imageUrl);\r\n }\r\n\r\n console.log('处理后的图片URL:', imageUrl);\r\n\r\n // 重要:必须返回字符串类型的URL\r\n resolve(imageUrl);\r\n },\r\n error: (error: any) => {\r\n console.error('图片上传失败:', error);\r\n reject('图片上传失败: ' + (error.message || '未知错误'));\r\n }\r\n });\r\n });\r\n }\r\n\r\n writeValue(value: string): void {\r\n this.value = value || '';\r\n\r\n // 如果编辑器已经初始化,更新编辑器内容\r\n if (this.editor && this.initialized) {\r\n this.editor.setContent(this.value);\r\n }\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 if (this.editor) {\r\n this.editor.setMode(isDisabled ? 'readonly' : 'design');\r\n }\r\n }\r\n\r\n // 编辑器内容变化时的处理\r\n onEditorChange(content: any): void {\r\n this.value = content;\r\n\r\n // 通知 Angular 表单值已改变\r\n if (this.onChangeListener) {\r\n this.onChangeListener(content);\r\n }\r\n\r\n if (this.onTouchedListener) {\r\n this.onTouchedListener();\r\n }\r\n }\r\n\r\n // 组件销毁时清理编辑器\r\n ngOnDestroy(): void {\r\n if (this.editor) {\r\n this.editor.remove();\r\n this.editor = null;\r\n }\r\n }\r\n}\r\n","<editor\r\n [init]=\"editorConfig\"\r\n [(ngModel)]=\"value\"\r\n [apiKey]=\"apiKey_editor\"\r\n name=\"editor\"\r\n (onChange)=\"onEditorChange($event)\"\r\n></editor>\r\n","import {Component, OnInit, Input, Injector, Inject, LOCALE_ID, Output, EventEmitter} from '@angular/core';\r\nimport {UntypedFormBuilder, UntypedFormGroup, UntypedFormControl, 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\nstandalone: false,\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: UntypedFormGroup | any;\r\n @Input() formOpts: AtrFormOpt | any;\r\n @Output() formAction = new EventEmitter<FormAction>();\r\n @Output() uploadAction = new EventEmitter<any>();\r\n @Input() viewTitle = '';\r\n\r\n // tslint:disable-next-line:max-line-length\r\n constructor(private shareService: ShareService, private httpService: HttpService,\r\n private fb: UntypedFormBuilder, 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 selectChange(event: MouseEvent, item: any) {\r\n if (event?.stopPropagation) {\r\n event.stopPropagation()\r\n }\r\n let action: FormAction = {\r\n name: item.key,\r\n code: 'selectChagne',\r\n };\r\n this.formAction.emit(action);\r\n }\r\n\r\n formChange(event: any, item: any) {\r\n this.formAction.emit({\r\n name: 'formChange',\r\n code: item.key,\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 getValue(key: string) {\r\n return this.atrForm.get(key)?.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, keyName: any) {\r\n list.forEach((dic: any) => {\r\n if (dic[keyName] == value[index][keyName]) {\r\n value[index] = {label: dic.label, value: dic.value};\r\n if (dic.children) {\r\n value = this.getCascaderDefaultValue(dic.children, index + 1, value, keyName)\r\n }\r\n return\r\n }\r\n })\r\n return value\r\n }\r\n\r\n getTree(list, keys) {\r\n return list.map(v => {\r\n keys.forEach((key: any) => {\r\n let arr = key.split(\"|\");\r\n v[arr[0]] = v[arr[1]];\r\n });\r\n if (v.children) {\r\n v.children = this.getTree(v.children, keys)\r\n } else {\r\n v.isLeaf = true;\r\n }\r\n return v\r\n })\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 = this.getTree(res.data, keys)\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 if (!item.valueProperty) item.valueProperty = \"value\"\r\n // let valueStrList:any = []\r\n if (item.selectUrl.url) {\r\n let selectUrl = item.selectUrl;\r\n if (selectUrl.host == 'oss') {\r\n this.httpService.getOss(selectUrl.url).subscribe(res => {\r\n item.dictList = this.conv(JSON.parse(res), keys)\r\n if (value && value.length > 0) {\r\n // value = this.getCascaderDefaultValue(item.dictList, 0, value)\r\n // if(item.showKey){\r\n // value = this.getCascaderDefaultValue(item.dictList, 0, value,item.keyName,item.valueProperty)\r\n // }\r\n // for(let item of value){\r\n // valueStrList.push(item.value)\r\n // }\r\n this.setValue(item.key, value)\r\n }\r\n })\r\n } else {\r\n this.httpService.post(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 // if(item.showKey){\r\n // value = this.getCascaderDefaultValue(item.dictList, 0, value,item.keyName)\r\n // }\r\n // for(let item of value){\r\n // valueStrList.push(item.value)\r\n // }\r\n this.setValue(item.key, value)\r\n }\r\n })\r\n }\r\n }\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:string[] = [];\r\n if(item.imageOpts.splitStr){\r\n list = value.split(item.imageOpts.splitStr);\r\n } else {\r\n list = [value];\r\n }\r\n for (let key of list) {\r\n images.push({\r\n key: key,\r\n uid: \"-1\",\r\n url: ToolsUtil.getOssUrl(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 UntypedFormControl(defaultValue, tempValidators));\r\n } else {\r\n this.atrForm.addControl(item.key, new UntypedFormControl(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 onBeforeUpload(e: any, item: any) {\r\n this.uploadAction.emit({code: 'onBeforeUpload', data: {...e.data, key: item.key}})\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:string[] = [];\r\n if(item.imageOpts.splitStr){\r\n list = value.split(item.imageOpts.splitStr);\r\n } else {\r\n list = [value];\r\n }\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: ToolsUtil.getOssUrl(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\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 const dateTypes = [\r\n 'date' ,'dayRange','dateTime' ,'dateRange'\r\n ];\r\n if (dateTypes.some(dtype => item.type == dtype)) {\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 }\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.nzShowTime) {\r\n return item.nzShowTime;\r\n }\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 defNumFormat = (value: number): string => {\r\n return value.toString()\r\n }\r\n}\r\n","<atr-view-form *ngIf=\"formOpts.type == 'view'\" [dicts]=\"dicts\" [atrForm]=\"atrForm\" [title]=\"viewTitle\"\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 <ng-content *ngTemplateOutlet=\"item.firstTemp\"></ng-content>\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' && item.treeList\"\r\n [nzNodes]=\"item.treeList\"\r\n [nzDefaultExpandAll]=\"item.expandAll\"\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 (ngModelChange)=\"formChange($event,item)\"\r\n nzVirtualHeight=\"330px\"\r\n style=\"flex: 1\"\r\n >\r\n </nz-tree-select>\r\n <nz-color-picker *ngIf=\"item.type == 'color'\" [formControlName]=\"item.key\"\r\n (ngModelChange)=\"formChange($event,item)\"\r\n [nzDisabled]=\"item.readonly\"></nz-color-picker>\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 (ngModelChange)=\"formChange($event,item)\"\r\n [readonly]=\"item.readonly || formOpts.type == 'view'\"\r\n [formControlName]=\"item.key\"/>\r\n <nz-switch *ngIf=\"item.type == 'switch'\" [formControlName]=\"item.key\"\r\n [nzDisabled]=\"item.readonly || formOpts.type == 'view'\"\r\n (ngModelChange)=\"formChange($event,item)\" [nzCheckedChildren]=\"item.nzCheckedChildren\"\r\n [nzUnCheckedChildren]=\"item.nzUnCheckedChildren\"></nz-switch>\r\n\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 (ngModelChange)=\"formChange($event,item)\"\r\n [nzFormatter]=\"item.dateFormat || defNumFormat\"\r\n [nzStep]=\"item.nzStep || 1\" [nzPrecision]=\"item.nzPrecision || 0\"\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 (ngModelChange)=\"formChange($event,item)\"\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 nzShowSearch\r\n nzPlaceHolder=\"{{item.placeholder}}\"\r\n nzAllowClear=\"true\"\r\n [formControlName]=\"item.key\"\r\n [nzMode]=\"item.nzMode || 'default'\"\r\n [nzDisabled]=\"item.readonly|| formOpts.type == 'view'\"\r\n (ngModelChange)=\"selectChange($event,item)\"\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]=\"item.valueProperty\"\r\n [nzShowSearch]=\"true\" *ngIf=\"item.type == 'cascader'\"\r\n [nzChangeOnSelect]=\"item.allowSelectNode\"\r\n [nzOptions]=\"item.dictList\" [formControlName]=\"item.key\"></nz-cascader>\r\n <ng-container *ngIf=\"item.type == 'date'\">\r\n <nz-date-picker *ngIf=\"!item.dateMode\" [nzFormat]=\"item.dateFormat ? item.dateFormat : 'yyyy-MM-dd'\"\r\n [nzShowTime]=\"showTime(item)\" style=\"flex: 1\"\r\n [nzDisabled]=\"formOpts.type == 'view' || item.readonly \"\r\n [formControlName]=\"item.key\"></nz-date-picker>\r\n <nz-date-picker *ngIf=\"item.dateMode\"\r\n style=\"flex: 1\"\r\n [nzMode]=\"item.dateMode\"\r\n [nzDisabled]=\"formOpts.type == 'view' || item.readonly \"\r\n [formControlName]=\"item.key\"></nz-date-picker>\r\n </ng-container>\r\n\r\n <nz-range-picker *ngIf=\"item.type == 'dateRange'\" style=\"flex: 1\"\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 (onBeforeUpload)=\"onBeforeUpload($event,item)\"\r\n (afterChange)=\"imageUploadChange($event)\"></atr-img-upload>\r\n <div *ngIf=\"item.type == 'editor'\">\r\n <app-editor style=\"flex: 1\" [formControlName]=\"item.key\"></app-editor>\r\n\r\n </div>\r\n\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\nstandalone: false,\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\nstandalone: false,\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 {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {SessionStorageUtil} from \"../../../core/utils/sessionstorage.util\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\n\r\n@Component({\r\nstandalone: false,\r\n selector: 'app-img',\r\n templateUrl: './img-canvas.component.html',\r\n styleUrls: ['./img-canvas.component.less']\r\n})\r\nexport class ImgCanvasComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() needTime = false;\r\n\r\n @Input() set url(url: string) {\r\n // if (url && url.indexOf('?v=') < 0) {\r\n // if (url.indexOf(\"?\") < 0) {\r\n // url += \"?\";\r\n //\r\n // }\r\n // url += \"v=\" + new Date().getTime()\r\n // }\r\n this.imgUrl = url;\r\n }\r\n\r\n @ViewChild('canvas1', {static: false}) canvas1: any;\r\n canvasDom: any\r\n width = 800;\r\n height = 800;\r\n imgUrl: any;\r\n img: any;\r\n @Input() clipArr: any[] = [];\r\n @Input() rotateNum: any = 0;\r\n @Output() loadOver: EventEmitter<any> = new EventEmitter();\r\n @Input() needContextmenu = false\r\n\r\n constructor(private elementRef: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n getCanvasFull() {\r\n let imgW = this.img.width//图片的宽\r\n let imgH = this.img.height//图片的高\r\n let cW = this.width;\r\n let cH = this.height;\r\n let rateW = imgH / imgW//比例\r\n let rateH = imgW / imgH//比例\r\n if (imgW > imgH) {\r\n imgW = this.width\r\n imgH = imgW * rateW;\r\n if (imgH > cH) {\r\n imgH = cH\r\n imgW = imgH * rateH\r\n }\r\n } else {\r\n imgH = this.height\r\n imgW = imgH * rateH;\r\n if (imgW > cW) {\r\n imgW = cW\r\n imgH = imgW * rateW\r\n }\r\n }\r\n\r\n // imgH = this.canvasDom.offsetHeight\r\n // imgW = this.canvasDom.offsetWidth\r\n // let canvasH = imgH * rate\r\n // if (canvasH > this.height) {\r\n // canvasH = this.height\r\n // rate = canvasH / imgH\r\n // canvasW = imgW * rate\r\n // }\r\n console.log(\"图片宽高\", imgW + \";\" + imgH)\r\n return {\r\n imgW: imgW,\r\n imgH: imgH\r\n }\r\n }\r\n\r\n initImg(needSession = true) {\r\n this.canvasDom = this.canvas1.nativeElement;\r\n // this.canvasDom = document.getElementById(this.canvasId);\r\n //检测支持性\r\n if (!this.canvasDom.getContext('2d')) return;\r\n //获得 2d 上下文对象\r\n let context1 = this.canvasDom.getContext('2d');\r\n let img = new Image()\r\n img.setAttribute('crossOrigin', 'anonymous')\r\n if (this.needTime) {\r\n if (this.imgUrl.indexOf(\"?\") < 0) {\r\n this.imgUrl += \"?\";\r\n }\r\n this.imgUrl += \"v=\" + new Date().getTime()\r\n }\r\n img.src = this.imgUrl\r\n img.onload = () => {\r\n this.img = img\r\n const {imgW, imgH} = this.getCanvasFull();\r\n this.canvasDom.width = this.width;\r\n this.canvasDom.height = this.height;\r\n if (this.clipArr && this.clipArr.length > 0) {\r\n this.goClip(context1)\r\n }\r\n // 参数 1:要绘制的 img 参数 2、3:绘制的 img 在 canvas 中的坐标 参数4,5是width,height\r\n context1.drawImage(this.img, 0, 0, this.width, this.height,);\r\n this.loadOver.emit({code: 'loadOver'})\r\n }\r\n }\r\n\r\n\r\n goClip(context: any) {\r\n context.beginPath()\r\n context.moveTo(this.clipArr[0].x1, this.clipArr[0].y1);\r\n this.clipArr.forEach((item, index) => {\r\n if (index > 0) {\r\n context.lineTo(item.x1, item.y1)\r\n }\r\n })\r\n context.lineTo(this.clipArr[0].x1, this.clipArr[0].y1);\r\n context.clip();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n console.log('当前组件宽高', this.elementRef.nativeElement.offsetHeight)\r\n this.initImg()\r\n }, 300)\r\n }\r\n\r\n}\r\n","<canvas #canvas1 style=\"width: 100%;height: 100%;\" oncontextmenu=\"return needContextmenu\">\n 您的浏览器不支持画布!\n</canvas>\n<ng-content></ng-content>\n","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 {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 {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 {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\nimport {ImgCanvasComponent} from \"./img-canvas/img-canvas.component\";\r\nimport {VgCoreModule} from '@videogular/ngx-videogular/core';\r\nimport {VgControlsModule} from '@videogular/ngx-videogular/controls';\r\nimport {VgOverlayPlayModule} from '@videogular/ngx-videogular/overlay-play';\r\nimport {VgBufferingModule} from '@videogular/ngx-videogular/buffering';\r\nimport {DebounceClickDirective} from \"../../core/directive/debounce-click.directive\";\r\nimport {InfiniteScrollDirective} from \"../../core/directive/Infinite-scroll.directive\";\r\nimport {NzColorPickerModule} from \"ng-zorro-antd/color-picker\";\r\nimport {NzModalModule} from \"ng-zorro-antd/modal\";\r\nimport { EditorModule } from '@tinymce/tinymce-angular';\r\nimport {EditorComponent} from \"./eidtor/editor.component\";\r\n\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 = [ImgCanvasComponent,TableFormItemComponent,TableTdComponent,AtrTableComponent,UploadComponent,AtrFormComponent,LocalUploadComponent,\r\n SelectTreeComponent,VideoComponent,SelectIconsComponent,EchartsComponent,ViewFormComponent,EditorComponent\r\n];\r\nconst DIRECTIVES = [AtrRoleDirective, AtrErrorImgDirective, HqSpinDirective,DebounceClickDirective,InfiniteScrollDirective];\r\n@NgModule({\r\n imports: [\r\n PipeModuleModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n NzColorPickerModule,\r\n // third libs\r\n ...THIRDMODULES,\r\n VgCoreModule,\r\n VgControlsModule,\r\n VgOverlayPlayModule,\r\n VgBufferingModule,\r\n DragDropModule,\r\n AtrComponentsModule,\r\n ...DIRECTIVES,\r\n NzModalModule,\r\n EditorModule,\r\n ],\r\n declarations: [\r\n ...COMPONENTS\r\n\r\n ],\r\n exports: [\r\n DragDropModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n NzColorPickerModule,\r\n ...THIRDMODULES,\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","/*\r\n * Public API Surface of components\r\n */\r\nimport {ChinaNumPipe} from \"./core/pipe/china-num.pipe\";\r\nimport {CountPipe} from \"./core/pipe/count.pipe\";\r\nimport {OssPipe} from \"./core/pipe/oss.pipe\";\r\nimport {OssStaticPipe} from \"./core/pipe/ossStatic.pipe\";\r\nimport {RemoveHtmlPipe} from \"./core/pipe/remove-html.pipe\";\r\nimport {SafeUrlPipe} from \"./core/pipe/safe-url.pipe\";\r\n\r\nexport * from \"./core/animations/animations\"\r\nexport * from \"./core/interceptor/base.interceptor\"\r\nexport * from \"./core/ngz-module/cus-zorro-antd.module\"\r\nexport * from \"./core/animations/fly-in\"\r\nexport * from \"./core/animations/scroll-screen\"\r\nexport * from './atr-components.module';\r\nexport * from './core/auth/auth.guard';\r\nexport * from './core/base/atr-common';\r\nexport * from './core/routereuse/atr-reuse-strategy';\r\nexport * from \"./core/utils/ToolsUtil\"\r\nexport * from \"./core/utils/localstorage.util\"\r\nexport * from \"./core/utils/sessionstorage.util\"\r\nexport * from \"./core/services/dict/dict.service\"\r\nexport * from \"./core/services/http.service\"\r\nexport * from \"./core/services/menu.service\"\r\nexport * from \"./core/services/upload-oss.service\"\r\nexport * from \"./core/directive/role.directive\";\r\nexport * from \"./core/directive/error-img.directive\";\r\nexport * from \"./core/directive/hq-spin.directive\";\r\nexport * from \"./core/directive/Infinite-scroll.directive\";\r\nexport * from \"./core/directive/debounce-click.directive\";\r\n\r\nexport * from \"./core/pipe/pipe-module.module\"\r\nexport * from \"./core/pipe/is-empty.pipe\";\r\nexport * from \"./core/pipe/dicts.pipe\";\r\nexport * from \"./core/pipe/defaultVal.pipe\";\r\nexport * from \"./core/pipe/day.pipe\";\r\nexport * from \"./core/pipe/safe-compute.pipe\";\r\nexport * from \"./core/pipe/is-not-empty.pipe\";\r\nexport * from \"./core/pipe/image-pipe.pipe\";\r\nexport * from \"./core/pipe/safe-html.pipe\";\r\nexport * from \"./core/pipe/china-num.pipe\";\r\nexport * from \"./core/pipe/count.pipe\";\r\nexport * from \"./core/pipe/oss.pipe\";\r\nexport * from \"./core/pipe/ossStatic.pipe\";\r\nexport * from \"./core/pipe/remove-html.pipe\";\r\nexport * from \"./core/pipe/safe-url.pipe\";\r\n\r\nexport * from \"./lib/shared/atr-shared.module\"\r\nexport * from \"./lib/shared/form/form.component\"\r\nexport * from \"./lib/shared/eidtor/editor.component\"\r\nexport * from \"./lib/shared/local-upload/local-upload.component\"\r\nexport * from \"./lib/shared/select-tree/select-tree.component\"\r\nexport * from \"./lib/shared/service/busi.service\"\r\nexport * from \"./lib/shared/table/table-td/table-td.component\"\r\nexport * from \"./lib/shared/share.service\"\r\nexport * from \"./lib/shared/video/video.component\"\r\nexport * from \"./lib/shared/img-canvas/img-canvas.component\"\r\nexport * from \"./lib/shared/validators/atr-validtors\"\r\nexport * from \"./lib/shared/upload/upload.component\"\r\nexport * from \"./lib/shared/table/table.component\"\r\nexport * from \"./lib/shared/table/table-form-item/table-form-item.component\"\r\nexport * from \"./lib/shared/select-icons/select-icons.component\"\r\nexport * from \"./lib/shared/echarts/echarts.component\"\r\nexport * from \"./lib/shared/view-form/view-form.component\"\r\n\r\n(window as any).global = window;\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './atr-public-api';\n"],"names":["i1","i1.HttpService","i1.DictService","i2.HttpService","i2","i3","i4","i7","i12.IsNotEmptyPipe","i5","i8","i9","i10","i11.AtrRoleDirective","i12.AtrErrorImgDirective","i13.DefaultValPipe","i14.DictsPipe","i15.OssImgPipe","i16.SafeHtmlPipe","i6","i7.AtrRoleDirective","i11","i14.AtrRoleDirective","i15.HqSpinDirective","i16.TableFormItemComponent","i17.TableTdComponent","i18.LocalUploadComponent","i10.VideoComponent","i11.OssImgPipe","i9.VideoComponent","i10.OssImgPipe","i1.UploadOssService","i12","i13","i15","i18","i19","i20","i21.UploadComponent","i22.SelectIconsComponent","i23.ViewFormComponent","i24.EditorComponent","i25.DefaultValPipe","i26.SafeHtmlPipe"],"mappings":"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"}
|