atr-components 3.1.10 → 3.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/assets/no-image-placeholder.png +0 -0
- package/fesm2022/atr-components.mjs +1320 -1060
- package/fesm2022/atr-components.mjs.map +1 -1
- package/index.d.ts +174 -109
- package/package.json +1 -1
|
@@ -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/table/img-td/img-td.component.ts","../../../projects/components/src/lib/shared/table/img-td/img-td.component.html","../../../projects/components/src/lib/shared/table/btn-td/btn-td.component.ts","../../../projects/components/src/lib/shared/table/btn-td/btn-td.component.html","../../../projects/components/src/lib/shared/table/grid-table/grid-table.component.ts","../../../projects/components/src/lib/shared/table/grid-table/grid-table.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 AUTH_URL: \"third/auth/getAuthToken\",\r\n //http head是否默认head\r\n APIKEY_EDITOR: \"r6xv8n00ar72ext02c46958btgzj53kd1223mr6kj8q9gvs6\",\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 | 'textLang' | 'editorLang',\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?: {\r\n url: string,\r\n convert?: string,\r\n type?: 'get' | 'post',\r\n host?: 'oss' | 'serve',\r\n isMultiple?: boolean,\r\n ignoreDictList?: boolean\r\n },\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 isRowSelectable?: Function,// (rowNode) => rowNode.data ? rowNode.data.year < 2007 : false,例如,如果我们只想允许选择‘年份’属性小于2007的行,可以实现如下:\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 dateFormat?: string,//日期格式化\r\n valueFormatter?: string | Function;\r\n defaultVal?: any,\r\n sortKey?: string,//是否排序\r\n cellRenderer?: any,\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?: object | 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 value?: any,\r\n item?: any\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 static putObject(obj: any,key:string): void {\r\n localStorage.removeItem(this.getStorageKey('INFO_') +key+\"_\"+ ToolsUtil.getOrgCode());\r\n if (obj) {\r\n localStorage.setItem(this.getStorageKey('INFO_') +key+\"_\"+ ToolsUtil.getOrgCode(), JSON.stringify(obj))\r\n }\r\n }\r\n static getObject(key:string):any {\r\n let str = localStorage.getItem(this.getStorageKey('INFO_') +key+\"_\"+ ToolsUtil.getOrgCode())\r\n let obj: any = null\r\n if (str) {\r\n obj = JSON.parse(str);\r\n }\r\n if (obj)\r\n return obj\r\n else\r\n return {}\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 public static deletePath(key):void{\r\n if(AtrReuseStrategy.handlers[key] != undefined){\r\n let handles = AtrReuseStrategy.handlers[key]['handles'];\r\n for(let reKey in handles){\r\n let ref = handles[reKey]['componentRef'];\r\n if(ref){\r\n ref.destroy();\r\n }\r\n }\r\n if(AtrReuseStrategy.handlers[key].handleKeys && AtrReuseStrategy.handlers[key].handleKeys.length > 0){\r\n AtrReuseStrategy.handlers[key].handleKeys = [];\r\n AtrReuseStrategy.handlers[key].handles = {};\r\n }\r\n }\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 if (headers) {\r\n Object.keys(headers).forEach(key => {\r\n _headers = _headers.set(key, headers[key]);\r\n })\r\n }\r\n let withCredentials: any = true\r\n if (options && options.hasOwnProperty('isWithCredentials')) {\r\n withCredentials = options.isWithCredentials\r\n }\r\n // console.log(_headers);\r\n /*for(const key of Object.keys(params)) {\r\n if(params.hasOwnProperty(key) && typeof params[key] === 'object') {\r\n params[key] = JSON.stringify(params[key])\r\n }\r\n }*/\r\n\r\n this.httpClient.post(url, 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(atr_static_datas.AUTH_URL, {}, 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(thridParma,params );\r\n ToolsUtil.downloadXls(atr_static_datas.SERVER_URL + url, params);\r\n },\r\n error => {\r\n })\r\n }\r\n downloadXls2(url: string, params?: any) {\r\n this.post(atr_static_datas.AUTH_URL, {}, ToolsUtil.getHttpOptions()).subscribe(\r\n result => {\r\n let thridParma = {\r\n \"reqMethod\": \"auth\",\r\n \"sign\": result.data,\r\n }\r\n params = Object.assign(thridParma,params );\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 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 {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\nimport {atr_static_datas, Table, TableAction} from \"../../../../core/base/atr-common\";\r\nimport {ToolsUtil} from \"../../../../core/utils/ToolsUtil\";\r\nimport {DictService} from \"../../../../core/services/dict/dict.service\";\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 changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TableTdComponent implements OnInit, OnChanges {\r\n @Input() data: any;\r\n\r\n @Input() item: Table | any;\r\n @Input() i: any\r\n value: any;\r\n displayValue: any;\r\n innerHtmlValue: any;\r\n result: any\r\n cellStyle: any = {};\r\n visibleActions: TableAction[] = [];\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 private dictRequestId = 0;\r\n\r\n constructor(private dictService: DictService, private cd: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.result = this.data;\r\n if (!this.data || !this.item) {\r\n this.value = null;\r\n this.displayValue = null;\r\n this.innerHtmlValue = null;\r\n this.cellStyle = {};\r\n this.visibleActions = [];\r\n return;\r\n }\r\n\r\n this.value = this.getValue(this.data);\r\n this.displayValue = this.value;\r\n this.cellStyle = this.getStyleCallBack(this.item, this.result);\r\n this.innerHtmlValue = this.getInnerHtmlValue();\r\n this.visibleActions = this.item.type == 'action'\r\n ? (this.item.actions || []).filter((action: TableAction) => this.isShowBtn(this.result, action.operator || '', action))\r\n : [];\r\n this.resolveDictValue();\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 && typeof item.styleCallBack == 'function') {\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 getInnerHtmlValue() {\r\n if (this.item.type != 'innerHtml' || !this.item.innerHtmlBack) {\r\n return null;\r\n }\r\n return this.item.innerHtmlBack(this.getDefaultValue(this.value, this.item.defaultVal), this.result);\r\n }\r\n\r\n getDefaultValue(value: any, defaultVal: 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 resolveDictValue() {\r\n this.dictRequestId++;\r\n if (this.item.type != 'dict') {\r\n return;\r\n }\r\n const requestId = this.dictRequestId;\r\n if (ToolsUtil.isNull(this.item.dictCode)) {\r\n this.displayValue = this.value;\r\n return;\r\n }\r\n this.displayValue = null;\r\n this.dictService.getCodeNameSync(this.value, this.item.dictCode, null, ',').then(res => {\r\n if (requestId != this.dictRequestId) {\r\n return;\r\n }\r\n this.displayValue = res;\r\n this.cd.markForCheck();\r\n });\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]=\"cellStyle\" [innerHTML]=\"innerHtmlValue | 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]=\"cellStyle\"\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]=\"cellStyle\"\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]=\"cellStyle\"\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]=\"cellStyle\"\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]=\"cellStyle\" [innerHTML]=\"item.key\"></div>\r\n\r\n <img *ngSwitchCase=\"'image'\" [ngStyle]=\"cellStyle\" width=\"35px\" nzSrc=\"{{(value | defVal:item.defaultVal) | ossImg}}\"\r\n nz-image atrErrorImg/>\r\n <img *ngSwitchCase=\"'image64'\" [ngStyle]=\"cellStyle\" 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 visibleActions\">\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 </div>\r\n </div>\r\n <div [ngStyle]=\"cellStyle\" *ngSwitchCase=\"'dict'\" [innerHTML]=\"displayValue | defVal:item.defaultVal\"></div>\r\n <div [ngStyle]=\"cellStyle\" 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 visibleTables: Table[] = [];\r\n renderRows: 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() sortKey = 'sortBy'\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 this.refreshVisibleTables();\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 if (this.showPagination) {\r\n this.scrollSize.y = (this.tableHeight > 0 ? (this.tableHeight - tableWrapper.clientHeight - 120) : 200) + \"px\";\r\n console.log(\"resize of :\" + this.scrollSize.y)\r\n } else\r\n this.scrollSize.y = (this.tableHeight > 0 ? (this.tableHeight - tableWrapper.clientHeight) : 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 this.getRowSpan();\r\n this.buildRenderRows();\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 this.getRowSpan();\r\n this.buildRenderRows();\r\n }\r\n\r\n uploadAction(e, action) {\r\n this.headerAction.emit({\r\n name: action.code,\r\n code: action.code,\r\n data: e\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 };\r\n let sorts = this.getSortInfo()\r\n if (!ToolsUtil.isEmpty(sorts)) {\r\n params[this.sortKey] = sorts\r\n }\r\n params[this.sortKey] = this.getSortInfo()\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 = nzShowTime.nzFormat;\r\n }\r\n }\r\n if (formate == 'yyyy-MM-dd HH:mm:ss') {\r\n params[begin] = new Date(this.atrForm.value[key][0]).toISOString()\r\n params[end] = new Date(this.atrForm.value[key][1]).toISOString()\r\n } else {\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 }\r\n } else if (this.getHederType(key) == \"dayRange\") {\r\n let begin = key + \"Begin\";\r\n let end = key + \"End\";\r\n params[begin] = new Date(formatDate((this.atrForm.value[key][0] as Date), 'yyyy-MM-dd 00:00:00', this.locale)).toISOString();\r\n params[end] = new Date(formatDate((this.atrForm.value[key][1] as Date), 'yyyy-MM-dd 23:59:59', this.locale)).toISOString();\r\n } else if (this.getHederType(key) == \"sdate\") {\r\n params[key] = new Date(formatDate((this.atrForm.value[key] as Date), 'yyyy-MM-dd 00:00:00', this.locale)).toISOString();\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.refreshVisibleTables();\r\n this.buildRenderRows();\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 this.refreshVisibleTables();\r\n this.buildRenderRows();\r\n }\r\n\r\n refreshVisibleTables() {\r\n this.visibleTables = this.queryOpts && this.queryOpts.tables\r\n ? this.queryOpts.tables.filter((item: Table) => item.isShow)\r\n : [];\r\n }\r\n\r\n buildRenderRows() {\r\n this.renderRows = (this.tableDatas || []).map((data: any, index: number) => {\r\n return {\r\n data,\r\n index,\r\n trackId: data && data.id != null ? data.id : index,\r\n color: this.isShowColor(data),\r\n cells: this.visibleTables.map((item: Table, colIndex: number) => {\r\n return {\r\n item,\r\n trackKey: (item.key || item.name || 'col') + '_' + colIndex,\r\n show: this.checkShowTd(item, index),\r\n rowSpan: this.checkRowSpan(item, data)\r\n };\r\n })\r\n };\r\n });\r\n }\r\n\r\n trackByTableKey(index: number, item: Table) {\r\n return item.key || item.name || index;\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 const key = item.key ? item.key : \"\";\r\n return this.rowSpanMap[key] && this.rowSpanMap[key][data[key]] ? this.rowSpanMap[key][data[key]].num : 1\r\n }\r\n return 1;\r\n }\r\n\r\n getRowSpan() {\r\n this.rowSpanMap = {};\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 this.getRowSpan();\r\n this.buildRenderRows();\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]=\"renderRows\" 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 visibleTables; trackBy: trackByTableKey\">\r\n <th\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 (row of renderRows; track row.trackId) {\r\n <tr class=\"t-tr\"\r\n [style.color]=\"row.color\" (click)=\"selectRow(row.data,row.index)\"\r\n [ngClass]=\"{'selected': row.index == curChecked}\" (dblclick)=\"dbclickData(row.data,row.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[row.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(row.data,row.index)\"\r\n [(nzChecked)]=\"mapOfCheckedId[row.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>{{row.index + 1}}</td>\r\n }\r\n @for (cell of row.cells; track cell.trackKey) {\r\n <td [nzBreakWord]=\"true\" [nzLeft]=\"cell.item.isLeft ? true : false\"\r\n [ngClass]=\"{'left-zindex':cell.item.isLeft ? true : false}\"\r\n [nzRight]=\"cell.item.isRight ? true : false\"\r\n nzBreakWord\r\n [rowSpan]=\"cell.rowSpan\"\r\n *ngIf=\"cell.show\">\r\n <app-table-td [data]=\"row.data\"\r\n [item]=\"cell.item\"\r\n [i]=\"row.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\" (afterChange)=\"uploadAction($event,action)\"\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 [nzPageSizeOptions]=\"pageSizeOptions\"\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 @Input() size: 'default' | 'middle' | 'small' = 'small';\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\" [nzSize]=\"size\">\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\nimport {atr_static_datas} from \"../../../core/base/atr-common\";\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 apiKey_editor = atr_static_datas.APIKEY_EDITOR\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 {DatePipe, formatDate} from '@angular/common';\r\nimport {ShareService} from '../share.service';\r\nimport {environment} from \"ng-zorro-antd/core/environments\";\r\nimport {atr_static_datas, AtrFormDetail, AtrFormOpt, FormAction, formButton} from \"../../../core/base/atr-common\";\r\nimport {DictService} from \"../../../core/services/dict/dict.service\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\nimport {HttpService} from \"../../../core/services/http.service\";\r\n\r\n@Component({\r\n standalone: 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: string = '';\r\n @Input() viewSize: 'default' | 'middle' | 'small' = 'small';\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 value: event,\r\n item:item\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 (!item.dictList) {\r\n this.getDictValue(item);\r\n setTimeout(() => {\r\n console.log(\"TEST RIGHT\", item)\r\n }, 1000)\r\n } else {\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 }\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 let imgIndex = 0;\r\n for (let key of list) {\r\n images.push({\r\n key: key,\r\n uid: \"-1\" + (imgIndex++),\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 let imgIndex = 0;\r\n for (let key of list) {\r\n if (key != \"\") {\r\n images.push({\r\n key: key,\r\n uid: \"-1\" + (imgIndex++),\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] = new Date(Number(value[key])).toISOString().replace(/T.*/, 'T00:00:00.000Z')\r\n } else if (item.type == 'dateTime') {\r\n obj.value[key] = new Date(Number(value[key])).toISOString()\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\" [size]=\"viewSize\"></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 {Component} from '@angular/core';\r\nimport {ICellRendererAngularComp} from \"ag-grid-angular\";\r\nimport {ICellRendererParams} from \"ag-grid-community\";\r\nimport {AtrErrorImgDirective} from '../../../../core/directive/error-img.directive'\r\nimport {DefaultValPipe} from '../../../../core/pipe/defaultVal.pipe'\r\nimport {OssImgPipe} from '../../../../core/pipe/image-pipe.pipe'\r\nimport { NzImageModule } from 'ng-zorro-antd/image';\r\n@Component({\r\n selector: 'app-img-td',\r\n standalone: true,\r\n imports: [NzImageModule, AtrErrorImgDirective, DefaultValPipe, OssImgPipe],\r\n templateUrl: './img-td.component.html',\r\n styleUrl: './img-td.component.scss',\r\n providers: [OssImgPipe, DefaultValPipe],\r\n})\r\nexport class ImgTdComponent implements ICellRendererAngularComp {\r\n imageUrl = '';\r\n defaultVal = '';\r\n\r\n constructor(private ossImgPipe: OssImgPipe, private defaultValPipe: DefaultValPipe) {\r\n }\r\n\r\n agInit(params: ICellRendererParams): void {\r\n this.imageUrl = this.getRealImgUrl(params.value);\r\n }\r\n\r\n getRealImgUrl(value) {\r\n return this.ossImgPipe.transform(value)\r\n }\r\n\r\n refresh(params: ICellRendererParams): boolean {\r\n this.imageUrl = this.getRealImgUrl(params.value);\r\n return true;\r\n }\r\n}\r\n","<img width=\"35px\" nzSrc=\"{{(imageUrl | defVal:defaultVal) | ossImg}}\"\r\n nz-image atrErrorImg/>\r\n","import {Component} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TableAction} from \"../../../../core/base/atr-common\";\nimport {ICellRendererAngularComp} from \"ag-grid-angular\";\nimport {ICellRendererParams} from \"ag-grid-community\";\n\ninterface BtnTdParams extends ICellRendererParams {\n buttons?: TableAction[],\n callback?: Function\n}\n\n@Component({\n selector: 'app-btn-td',\n standalone: false,\n templateUrl: './btn-td.component.html',\n styleUrl: './btn-td.component.scss',\n})\nexport class BtnTdComponent implements ICellRendererAngularComp {\n buttons: TableAction[] = []\n params!: BtnTdParams;\n\n constructor() {\n }\n\n agInit(params: BtnTdParams): void {\n console.log('操作', params.buttons, this.buttons)\n this.buttons = params.buttons || [];\n this.params = params;\n }\n\n\n refresh(params: BtnTdParams): boolean {\n this.buttons = params.buttons || [];\n this.params = params;\n return true;\n }\n\n doActionByRow(code: any, event: MouseEvent) {\n if (this.params.callback) {\n const data = this.params.data\n const rowIndex = this.params.node?.rowIndex ?? -1;\n let action: TableAction = {\n name: code,\n code: code,\n type: \"row\"\n };\n action.data = data;\n action.firstData = data;\n action.numberOfChecked = rowIndex;\n this.params.callback({data: action, event: event})\n }\n }\n}\n","<div class=\"btn-td-content\" *ngIf=\"buttons.length > 0\">\r\n <ng-container *ngFor=\"let action of buttons\">\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(action.code,$event)\">\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(action.code,$event)\">\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>\r\n</div>\r\n\r\n","import {\r\n Component,\r\n OnInit,\r\n Injector,\r\n Input,\r\n ViewChildren,\r\n ViewChild,\r\n ElementRef,\r\n Output,\r\n EventEmitter,\r\n LOCALE_ID,\r\n Inject,\r\n ChangeDetectorRef,\r\n AfterViewInit,\r\n ViewContainerRef,\r\n TemplateRef,\r\n EmbeddedViewRef\r\n} from '@angular/core';\r\nimport {UntypedFormGroup, UntypedFormBuilder, UntypedFormControl} from '@angular/forms';\r\nimport {DatePipe, formatDate} from '@angular/common';\r\nimport {CdkDragDrop, moveItemInArray} from \"@angular/cdk/drag-drop\";\r\nimport {NzContextMenuService, NzDropdownMenuComponent} from 'ng-zorro-antd/dropdown';\r\nimport {\r\n atr_static_datas,\r\n AtrQueryHeader,\r\n AtrQueyrOpt,\r\n json,\r\n Table,\r\n TableAction\r\n} from \"../../../../core/base/atr-common\";\r\nimport {AtrErrorImgDirective} from '../../../../core/directive/error-img.directive'\r\nimport {DefaultValPipe} from '../../../../core/pipe/defaultVal.pipe'\r\nimport {OssImgPipe} from '../../../../core/pipe/image-pipe.pipe'\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\nimport {\r\n ColDef,\r\n GridApi,\r\n GridReadyEvent,\r\n ICellRendererComp,\r\n ICellRendererParams,\r\n SelectionChangedEvent,\r\n SortChangedEvent\r\n} from \"ag-grid-community\";\r\nimport {ImgTdComponent} from \"../img-td/img-td.component\";\r\nimport {BtnTdComponent} from \"../btn-td/btn-td.component\";\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'atr-grid-table',\r\n templateUrl: './grid-table.component.html',\r\n styleUrls: ['./grid-table.component.less'],\r\n providers: [DictService, OssImgPipe, DefaultValPipe, DatePipe],\r\n})\r\nexport class AtrGridTableComponent implements OnInit, AfterViewInit {\r\n columnDefs: ColDef[] = []\r\n dictMap: any = {}\r\n rowSelection: any = {enableSelectionWithoutKeys: true}\r\n gridApi: GridApi | null = null;\r\n /*\r\n * {\r\n mode: 'singleRow',\r\n };\r\n * */\r\n // {\r\n // headerName: '日期',\r\n // field: 'date',\r\n // pinned: 'left',\r\n // width: 150\r\n // },\r\n viewInitOver = false;\r\n tableWidth = 0;\r\n tableHeight = '100%';\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 = 20;\r\n @Input() pageSizeOptions: number[] = [20, 30, 40, 50, 60];\r\n @Input() loading = true;\r\n @Input() allowDrag = false;//允许拖拽换位\r\n @Input() showQueryTime = false;\r\n tableDatas: any = [];\r\n visibleTables: Table[] = [];\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() sortKey = 'sortBy'\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: false}) tableHeader: ElementRef<HTMLElement> | any;\r\n @ViewChild('tableContent', {static: true}) tableContent: ElementRef | any;\r\n\r\n\r\n constructor(private fb: UntypedFormBuilder, private ossImgPipe: OssImgPipe,\r\n private defaultValPipe: DefaultValPipe, private datePipe: DatePipe,\r\n private viewContainerRef: ViewContainerRef,\r\n private injector: Injector, @Inject(LOCALE_ID) private locale: string, private cd: ChangeDetectorRef,) {\r\n }\r\n\r\n //新版table\r\n async initTableHeader() {\r\n this.columnDefs = [];\r\n this.tableWidth = this.tableContent.nativeElement.offsetWidth;\r\n let currentWidth = this.tableWidth - 250\r\n if (this.queryOpts.isIndex) {\r\n this.columnDefs.push({\r\n headerName: '#',\r\n colId: '__index__',\r\n valueGetter: params => {\r\n const rowIndex = params.node?.rowIndex ?? 0;\r\n return (this.pageIndex - 1) * this.pageSize + rowIndex + 1;\r\n },\r\n width: 60,\r\n minWidth: 60,\r\n maxWidth: 80,\r\n pinned: 'left',\r\n sortable: false,\r\n resizable: false,\r\n suppressMovable: true,\r\n cellStyle: {\r\n textAlign: 'center'\r\n }\r\n });\r\n }\r\n for (let i = 0; i < this.queryOpts.tables.length; i++) {\r\n let item = this.queryOpts.tables[i];\r\n if (item.isShow) {\r\n if (i == this.queryOpts.tables.length - 1) {\r\n item.width = currentWidth\r\n } else {\r\n currentWidth -= item.width\r\n }\r\n }\r\n\r\n this.columnDefs.push(await this.transColumnDefs(item))\r\n }\r\n if (this.queryOpts.checkBox?.isShowCheckbox) {\r\n console.log('this.rowSelection', this.queryOpts.checkBox.isRadio)\r\n if (this.queryOpts.checkBox.isRadio) {\r\n this.rowSelection['mode'] = 'singleRow'\r\n } else {\r\n this.rowSelection['mode'] = 'multiRow';\r\n }\r\n console.log('this.rowSelection', this.rowSelection)\r\n }\r\n this.updateTableHeight();\r\n }\r\n\r\n updateTableHeight() {\r\n const headerEl = this.tableHeader?.nativeElement;\r\n if (!headerEl) {\r\n this.tableHeight = '100%';\r\n return;\r\n }\r\n const headerStyle = window.getComputedStyle(headerEl);\r\n const marginBottom = parseFloat(headerStyle.marginBottom || '0') || 0;\r\n const headerHeight = headerEl.getBoundingClientRect().height + marginBottom + 30;\r\n this.tableHeight = `calc(100% - ${headerHeight}px)`;\r\n }\r\n\r\n onSortChanged(event: SortChangedEvent): void {\r\n const sortColumns = event.api\r\n .getColumnState()\r\n .filter(col => col.sort)\r\n .sort((a, b) => {\r\n return (a.sortIndex ?? 0) - (b.sortIndex ?? 0);\r\n });\r\n\r\n this.sortMap = sortColumns.reduce((map, item) => {\r\n map[item.colId] = item.sort;\r\n return map;\r\n }, {});\r\n this.query(true);\r\n }\r\n\r\n onGridReady(event: GridReadyEvent): void {\r\n this.gridApi = event.api;\r\n this.tableAction.emit({\r\n code: 'gridApi',\r\n name: 'gridApi',\r\n type: 'row',\r\n data: this.gridApi,\r\n });\r\n }\r\n\r\n onSelectionChanged(event: SelectionChangedEvent): void {\r\n const selectedRows = event.api.getSelectedRows();\r\n this.numberOfChecked = selectedRows.length;\r\n this.tableAction.emit({\r\n code: 'select',\r\n name: 'select',\r\n type: 'row',\r\n data: selectedRows,\r\n datas: selectedRows,\r\n firstData: selectedRows[0],\r\n numberOfChecked: selectedRows.length\r\n });\r\n }\r\n\r\n getSelectedRows(): any[] {\r\n return this.gridApi ? this.gridApi.getSelectedRows() : [];\r\n }\r\n\r\n async transColumnDefs(tableItem: Table): Promise<ColDef> {\r\n let style: any = tableItem.styleCallBack, valueFormatter: any = tableItem.valueFormatter\r\n let colDef: ColDef = {\r\n headerName: tableItem.name,\r\n field: tableItem.key,\r\n width: tableItem.width,\r\n sortable: tableItem.sortable || false,\r\n hide: !tableItem.isShow,\r\n valueFormatter: params => {\r\n let value = params.value;\r\n let defVal = ToolsUtil.isEmpty(tableItem.defaultVal) ? '-' : tableItem.defaultVal;\r\n return ToolsUtil.isNull(value) ? defVal : value;\r\n },\r\n cellStyle: style\r\n }\r\n\r\n\r\n switch (tableItem.type) {\r\n case 'textcolor':\r\n break;\r\n case 'fixedText':\r\n break;\r\n case 'text':\r\n break;\r\n case 'link':\r\n break;\r\n case 'action':\r\n colDef.cellRenderer = BtnTdComponent;\r\n colDef.cellRendererParams = {\r\n buttons: tableItem.actions,\r\n callback: (params: any) => {\r\n this.curChecked = params.data.numberOfChecked;\r\n console.log('操作', params.data)\r\n this.tableAction.emit(params.data);\r\n }\r\n }\r\n colDef.cellClass = 'atr-action-cell';\r\n break;\r\n case 'image':\r\n colDef.cellRenderer = ImgTdComponent;\r\n\r\n break;\r\n case 'date':\r\n case 'dateTime':\r\n case 'sDateTime':\r\n colDef.valueFormatter = params => {\r\n let value = params.value;\r\n if (value) {\r\n value = this.datePipe.transform(value, tableItem.dateFormat || 'yyyy-MM-dd HH:mm:ss')\r\n }\r\n let defVal = ToolsUtil.isEmpty(tableItem.defaultVal) ? '-' : tableItem.defaultVal;\r\n\r\n return ToolsUtil.isNull(value) ? defVal : value;\r\n }\r\n break;\r\n case 'dict':\r\n if (tableItem.dictCode) {\r\n let dict: any = this.dictMap[tableItem.dictCode];\r\n if (!dict) {\r\n dict = await this.dictService.getCodeNamePromise(tableItem.dictCode) || {};\r\n\r\n if (dict.dicts) {\r\n this.dictMap[tableItem.dictCode] = dict.dicts.reduce((map, item) => {\r\n map[item.id] = item.typeName;\r\n return map;\r\n }, {});\r\n }\r\n dict = this.dictMap[tableItem.dictCode];\r\n }\r\n colDef.cellRenderer = params => {\r\n // put the value in bold\r\n return dict[params.value] ?? params.value;\r\n }\r\n }\r\n\r\n break;\r\n case 'innerHtml':\r\n break;\r\n case 'image64':\r\n break;\r\n case 'tempRef':\r\n break;\r\n }\r\n\r\n console.log('colDef', colDef)\r\n if (valueFormatter) {\r\n colDef.valueFormatter = valueFormatter;\r\n }\r\n\r\n return colDef;\r\n\r\n }\r\n\r\n createTemplateCellRenderer(template: TemplateRef<any>, tableItem: Table) {\r\n const viewContainerRef = this.viewContainerRef;\r\n const getImageList = this.getImageList.bind(this);\r\n return class implements ICellRendererComp {\r\n eGui = document.createElement('span');\r\n viewRef: EmbeddedViewRef<any> | null = null;\r\n\r\n init(params: ICellRendererParams): void {\r\n this.render(params);\r\n }\r\n\r\n getGui(): HTMLElement {\r\n return this.eGui;\r\n }\r\n\r\n refresh(params: ICellRendererParams): boolean {\r\n this.destroy();\r\n this.render(params);\r\n return true;\r\n }\r\n\r\n destroy(): void {\r\n if (this.viewRef) {\r\n this.viewRef.destroy();\r\n this.viewRef = null;\r\n }\r\n this.eGui.replaceChildren();\r\n }\r\n\r\n render(params: ICellRendererParams): void {\r\n this.eGui.replaceChildren();\r\n this.viewRef = viewContainerRef.createEmbeddedView(template, {\r\n $implicit: params,\r\n params: params,\r\n data: params.data,\r\n item: tableItem,\r\n value: params.value,\r\n defaultVal: tableItem.defaultVal,\r\n images: getImageList(params.value, tableItem.defaultVal)\r\n });\r\n this.viewRef.detectChanges();\r\n this.viewRef.rootNodes.forEach(node => this.eGui.appendChild(node));\r\n }\r\n };\r\n }\r\n\r\n getImageList(value: any, defaultVal: any) {\r\n const realValue = ToolsUtil.isNull(value) ? defaultVal : value;\r\n if (ToolsUtil.isNull(realValue)) {\r\n return [];\r\n }\r\n return realValue.toString().split(',').filter(item => !ToolsUtil.isNull(item));\r\n }\r\n\r\n\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 this.initTableHeader()\r\n setTimeout(() => {\r\n\r\n this.viewInitOver = true;\r\n this.isAllLoad = true;\r\n // this.cd.detectChanges();\r\n }, 100)\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n // this.initTableHeader();\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 // this.refreshVisibleTables();\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\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 this.getRowSpan();\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 this.getRowSpan();\r\n }\r\n\r\n uploadAction(e, action) {\r\n this.headerAction.emit({\r\n name: action.code,\r\n code: action.code,\r\n data: e\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 setTimeout(() => this.updateTableHeight());\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 };\r\n let sorts = this.getSortInfo()\r\n if (!ToolsUtil.isEmpty(sorts)) {\r\n params[this.sortKey] = sorts\r\n }\r\n params[this.sortKey] = this.getSortInfo()\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 = 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 orderby.push(key + \"|\" + this.sortMap[key])\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 getRowSpan() {\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.refreshVisibleTables();\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\r\n refreshVisibleTables() {\r\n this.visibleTables = this.queryOpts && this.queryOpts.tables\r\n ? this.queryOpts.tables.filter((item: Table) => item.isShow)\r\n : [];\r\n }\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\r\n}\r\n","<div class=\"full-screen table-content \" #tableContent [spinLoading]=\"!viewInitOver\" HqSpin>\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\" (afterChange)=\"uploadAction($event,action)\"\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 <ag-grid-angular *ngIf=\"isAllLoad\"\r\n class=\"full-screen\"\r\n [rowSelection]=\"rowSelection\"\r\n [ngStyle]=\"{height: tableHeight}\"\r\n [rowData]=\"tableDatas\"\r\n [loading]=\"loading\"\r\n [alwaysMultiSort]=\"true\"\r\n [enableCellTextSelection]=\"true\"\r\n (gridReady)=\"onGridReady($event)\"\r\n (selectionChanged)=\"onSelectionChanged($event)\"\r\n (sortChanged)=\"onSortChanged($event)\"\r\n [pagination]=\"true\"\r\n [paginationPageSize]=\"pageSize\"\r\n [suppressPaginationPanel]=\"true\"\r\n [columnDefs]=\"columnDefs\"/>\r\n <div class=\"flex\" style=\"justify-content: flex-end;background: white\">\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 [nzPageSizeOptions]=\"pageSizeOptions\"\r\n (nzPageIndexChange)=\"PageIndexChange($event)\"\r\n (nzPageSizeChange)=\"PageSizeChange($event)\"\r\n ></nz-pagination>\r\n </div>\r\n</div>\r\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';\nimport {EditorComponent} from \"./eidtor/editor.component\";\nimport {AtrGridTableComponent} from \"./table/grid-table/grid-table.component\";\nimport {BtnTdComponent} from \"./table/btn-td/btn-td.component\";\nimport {AgGridAngular} from \"ag-grid-angular\";\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,AtrGridTableComponent,BtnTdComponent\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,\n ...DIRECTIVES,\n NzModalModule,\n EditorModule,\n AgGridAngular,\n ],\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/table/btn-td/btn-td.component\"\r\nexport * from \"./lib/shared/table/grid-table/grid-table.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","i6","i7","i8","i12.IsNotEmptyPipe","i3","i4","i5","i9","i10","i11","i12.AtrRoleDirective","i13.AtrErrorImgDirective","i14.DefaultValPipe","i15.OssImgPipe","i16.SafeHtmlPipe","i7.AtrRoleDirective","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","i1.OssImgPipe","i2.DefaultValPipe","i6.AtrRoleDirective","i13.HqSpinDirective","i14","i15.TableFormItemComponent","i16.LocalUploadComponent"],"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/core/utils/table-condition.util.ts","../../../projects/components/src/lib/shared/table/btn-td/btn-td.component.ts","../../../projects/components/src/lib/shared/table/btn-td/btn-td.component.html","../../../projects/components/src/lib/shared/table/grid-table/grid-image.utils.ts","../../../projects/components/src/lib/shared/table/img-td/img-td.component.ts","../../../projects/components/src/lib/shared/table/img-td/img-td.component.html","../../../projects/components/src/lib/shared/table/grid-table/grid-column.factory.ts","../../../projects/components/src/lib/shared/table/grid-table/grid-table.component.ts","../../../projects/components/src/lib/shared/table/grid-table/grid-table.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 isIso: false,//iso\r\n /** 图片加载失败时使用的静态资源地址;宿主可覆盖。 */\r\n errImg: 'assets/atr-components/assets/no-image-placeholder.png',\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 AUTH_URL: \"third/auth/getAuthToken\",\r\n //http head是否默认head\r\n APIKEY_EDITOR: \"r6xv8n00ar72ext02c46958btgzj53kd1223mr6kj8q9gvs6\",\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 | 'textLang' | 'editorLang',\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?: {\r\n url: string,\r\n convert?: string,\r\n type?: 'get' | 'post',\r\n host?: 'oss' | 'serve',\r\n isMultiple?: boolean,\r\n ignoreDictList?: boolean\r\n },\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 isRowSelectable?: Function,// (rowNode) => rowNode.data ? rowNode.data.year < 2007 : false,例如,如果我们只想允许选择‘年份’属性小于2007的行,可以实现如下:\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 跳过首次自动查询,false/未设置时初始化后查询\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 dateFormat?: string,//日期格式化\r\n valueFormatter?: string | Function;\r\n defaultVal?: any,\r\n sortKey?: string,//是否排序\r\n cellRenderer?: any,\r\n cellRendererParams?: any,\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?: object | 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 value?: any,\r\n item?: any\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 static putObject(obj: any,key:string): void {\r\n localStorage.removeItem(this.getStorageKey('INFO_') +key+\"_\"+ ToolsUtil.getOrgCode());\r\n if (obj) {\r\n localStorage.setItem(this.getStorageKey('INFO_') +key+\"_\"+ ToolsUtil.getOrgCode(), JSON.stringify(obj))\r\n }\r\n }\r\n static getObject(key:string):any {\r\n let str = localStorage.getItem(this.getStorageKey('INFO_') +key+\"_\"+ ToolsUtil.getOrgCode())\r\n let obj: any = null\r\n if (str) {\r\n obj = JSON.parse(str);\r\n }\r\n if (obj)\r\n return obj\r\n else\r\n return {}\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 public static deletePath(key):void{\r\n if(AtrReuseStrategy.handlers[key] != undefined){\r\n let handles = AtrReuseStrategy.handlers[key]['handles'];\r\n for(let reKey in handles){\r\n let ref = handles[reKey]['componentRef'];\r\n if(ref){\r\n ref.destroy();\r\n }\r\n }\r\n if(AtrReuseStrategy.handlers[key].handleKeys && AtrReuseStrategy.handlers[key].handleKeys.length > 0){\r\n AtrReuseStrategy.handlers[key].handleKeys = [];\r\n AtrReuseStrategy.handlers[key].handles = {};\r\n }\r\n }\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 if (headers) {\r\n Object.keys(headers).forEach(key => {\r\n _headers = _headers.set(key, headers[key]);\r\n })\r\n }\r\n let withCredentials: any = true\r\n if (options && options.hasOwnProperty('isWithCredentials')) {\r\n withCredentials = options.isWithCredentials\r\n }\r\n // console.log(_headers);\r\n /*for(const key of Object.keys(params)) {\r\n if(params.hasOwnProperty(key) && typeof params[key] === 'object') {\r\n params[key] = JSON.stringify(params[key])\r\n }\r\n }*/\r\n\r\n this.httpClient.post(url, 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(atr_static_datas.AUTH_URL, {}, 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(thridParma,params );\r\n ToolsUtil.downloadXls(atr_static_datas.SERVER_URL + url, params);\r\n },\r\n error => {\r\n })\r\n }\r\n downloadXls2(url: string, params?: any) {\r\n this.post(atr_static_datas.AUTH_URL, {}, ToolsUtil.getHttpOptions()).subscribe(\r\n result => {\r\n let thridParma = {\r\n \"reqMethod\": \"auth\",\r\n \"sign\": result.data,\r\n }\r\n params = Object.assign(thridParma,params );\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 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 Math.trunc(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\nimport {atr_static_datas} from \"../base/atr-common\";\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(image: HTMLImageElement | null): void {\r\n const fallback = this.errorImagSrc || atr_static_datas.errImg;\r\n if (!image || !fallback) return;\r\n\r\n // A failed fallback must not keep assigning itself and firing error again.\r\n // getAttribute preserves relative URLs while image.src resolves them.\r\n if (image.getAttribute('src') === fallback || image.src === fallback) return;\r\n image.src = fallback;\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, HostListener, Input, Output} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {AtrQueryHeader, TableAction} from '../../../../core/base/atr-common';\n\n@Component({\n standalone: false,\n selector: 'app-table-form-item',\n templateUrl: './table-form-item.component.html',\n styleUrls: ['./table-form-item.component.scss', '../table.component.less'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TableFormItemComponent),\n multi: true\n }]\n})\nexport class TableFormItemComponent implements ControlValueAccessor {\n @Input() header: AtrQueryHeader | any = {name: '', key: '', type: 'text'};\n @Input() value: any = null;\n @Input() dictList: any[] | null | undefined = [];\n @Output() headerAction = new EventEmitter<TableAction>();\n\n disabled = false;\n readonly modelOptions = {standalone: true};\n onChangeListener: (value: any) => void = () => {};\n onTouchedListener: () => void = () => {};\n\n get options(): any[] {\n return Array.isArray(this.header?.dictList) ? this.header.dictList\n : Array.isArray(this.dictList) ? this.dictList : [];\n }\n\n get checkboxOptions(): {label: string; value: any; disabled?: boolean}[] {\n return this.options.map(option => ({\n label: this.optionLabel(option), value: this.optionValue(option), disabled: option?.disabled\n }));\n }\n\n get isMultiple(): boolean {\n return !!this.header?.selectUrl?.isMultiple || this.header?.nzMode === 'multiple' || this.header?.nzMode === 'tags';\n }\n\n get hasValue(): boolean {\n return this.value !== null && this.value !== undefined && this.value !== ''\n && (!Array.isArray(this.value) || this.value.length > 0);\n }\n\n get showTime(): boolean | {nzFormat: string} {\n const config = this.header?.nzShowTime;\n if (typeof config === 'boolean') return config;\n return config && config.isShowTime !== false\n ? {nzFormat: this.getTimeFormat(config.nzFormat || 'HH:mm:ss')} : false;\n }\n\n get dateFormat(): string {\n if (this.header?.dateMode === 'year') return 'yyyy';\n if (this.header?.dateMode === 'month') return 'yyyy-MM';\n if (this.header?.dateMode === 'week') return 'yyyy-ww';\n if (!this.showTime) return 'yyyy-MM-dd';\n const config = this.header?.nzShowTime;\n const format = typeof config?.nzFormat === 'string' ? config.nzFormat.trim() : '';\n // Existing query headers use both a complete date format and a time-only format.\n if (format && /[yYMdDwWQqLEecG]/.test(format.replace(/'[^']*(?:''[^']*)*'/g, ''))) return format;\n return 'yyyy-MM-dd ' + (format || 'HH:mm:ss');\n }\n\n private getTimeFormat(format: string): string {\n const parts = format.match(/'[^']*(?:''[^']*)*'|([a-zA-Z])\\1*|./g) || [];\n const isTimeToken = (part: string) => /^[HhmsSaAbBzZO]+$/.test(part);\n const first = parts.findIndex(isTimeToken);\n if (first < 0) return 'HH:mm:ss';\n let last = parts.length - 1;\n while (!isTimeToken(parts[last])) last--;\n return parts.slice(first, last + 1).join('');\n }\n\n optionLabel(option: any): string {\n return String(option?.typeName ?? option?.label ?? option?.title ?? option?.name ?? this.optionValue(option) ?? '');\n }\n\n optionValue(option: any): any {\n return option !== null && typeof option === 'object' ? option.id ?? option.value ?? option.key : option;\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: (value: any) => void): void {\n this.onChangeListener = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedListener = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n @HostListener('focusout')\n markTouched(): void {\n if (!this.disabled) this.onTouchedListener();\n }\n\n onChange(value: any = this.value): void {\n if (this.disabled) return;\n this.value = value;\n this.onChangeListener(value);\n this.markTouched();\n }\n\n clearValue(event?: Event): void {\n event?.preventDefault();\n event?.stopPropagation();\n if (this.disabled || this.header?.disableClear) return;\n this.onChange(null);\n }\n\n selectChange(value: any, item: any): void {\n if (this.disabled) return;\n this.headerAction.emit({name: item.name ?? item.label, code: item.key, data: item, value});\n }\n\n clickIcon(value: any, item: AtrQueryHeader, event: Event): void {\n event.stopPropagation();\n if (this.disabled) return;\n this.headerAction.emit({name: item.name, code: item.icon?.code || '', data: item, value});\n }\n}\r\n","<nz-form-item style=\"position: relative\" [title]=\"header.name\" nzFlex>\n <nz-form-control [nzSpan]=\"header.cspan || 24\" [ngSwitch]=\"header.type\">\n <nz-input-group [nzSuffix]=\"inputClearTpl\" *ngSwitchCase=\"'text'\">\n <input nz-input [placeholder]=\"header.placeholder || header.name\" [attr.id]=\"header.key\"\n [disabled]=\"disabled\" [ngModel]=\"value\" [ngModelOptions]=\"modelOptions\"\n (ngModelChange)=\"onChange($event)\" />\n </nz-input-group>\n\n <nz-input-number *ngSwitchCase=\"'number'\" style=\"width: 100%\" [nzId]=\"header.key\"\n [nzPlaceHolder]=\"header.placeholder || header.name\" [nzDisabled]=\"disabled\"\n [ngModel]=\"value\" [ngModelOptions]=\"modelOptions\"\n (ngModelChange)=\"onChange($event)\"></nz-input-number>\n\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div class=\"checkbox-control\">\n <nz-checkbox-group *ngIf=\"options.length; else booleanCheckbox\" [nzOptions]=\"checkboxOptions\"\n [nzDisabled]=\"disabled\" [ngModel]=\"value\" [ngModelOptions]=\"modelOptions\"\n (ngModelChange)=\"onChange($event)\"></nz-checkbox-group>\n <ng-template #booleanCheckbox>\n <label nz-checkbox [nzDisabled]=\"disabled\" [nzIndeterminate]=\"value == null\"\n [ngModel]=\"value === true\" [ngModelOptions]=\"modelOptions\"\n (ngModelChange)=\"onChange($event)\">{{value == null ? '不限' : value ? '是' : '否'}}</label>\n </ng-template>\n <button *ngIf=\"hasValue && !header.disableClear\" type=\"button\" nz-button nzType=\"text\" nzSize=\"small\"\n [disabled]=\"disabled\" [attr.aria-label]=\"'清空' + header.name\" (click)=\"clearValue($event)\">清空</button>\n </div>\n </ng-container>\n\n <nz-select *ngSwitchCase=\"'select'\" [nzAllowClear]=\"!header.disableClear\" [nzDisabled]=\"disabled\"\n [nzMaxTagCount]=\"header.maxTagCount ?? 3\" [nzPlaceHolder]=\"header.placeholder || header.name\"\n [nzMode]=\"header.nzMode || 'default'\" [nzShowSearch]=\"true\"\n [ngModel]=\"value\" [ngModelOptions]=\"modelOptions\" (ngModelChange)=\"onChange($event)\">\n <nz-option *ngFor=\"let option of options\" [nzLabel]=\"optionLabel(option)\" [nzValue]=\"optionValue(option)\"\n [nzDisabled]=\"!!option.disabled\"></nz-option>\n </nz-select>\n\n <nz-select *ngSwitchCase=\"'selectCus'\" [nzAllowClear]=\"!header.disableClear\" [nzDisabled]=\"disabled\"\n [nzMaxTagCount]=\"header.maxTagCount ?? 3\" [nzPlaceHolder]=\"header.placeholder || header.name\"\n [nzMode]=\"header.nzMode || 'default'\" [nzShowSearch]=\"true\"\n [ngModel]=\"value\" [ngModelOptions]=\"modelOptions\" (ngModelChange)=\"onChange($event)\">\n <nz-option *ngFor=\"let option of options\" nzCustomContent [nzLabel]=\"optionLabel(option)\"\n [nzValue]=\"optionValue(option)\" [nzDisabled]=\"!!option.disabled\">\n <i class=\"select-icon\" *ngIf=\"header.icon?.isShow\" nz-icon [nzType]=\"header.icon.icon\"\n nzTheme=\"outline\" style=\"margin-right: 1rem\" (click)=\"clickIcon(optionValue(option), header, $event)\"></i>\n {{optionLabel(option)}}\n </nz-option>\n </nz-select>\n\n <nz-cascader *ngSwitchCase=\"'cascader'\" [nzDisabled]=\"disabled\" [nzAllowClear]=\"!header.disableClear\"\n [nzPlaceHolder]=\"header.placeholder || header.name\" [nzShowSearch]=\"true\" [nzOptions]=\"options\"\n [ngModel]=\"value\" [ngModelOptions]=\"modelOptions\" (ngModelChange)=\"onChange($event)\"></nz-cascader>\n\n <nz-tree-select *ngSwitchCase=\"'treeSelect'\" [nzDisabled]=\"disabled\" [nzDefaultExpandAll]=\"!!header.expandAll\"\n [nzAllowClear]=\"!header.disableClear\" [nzNodes]=\"header.treeList || []\" [nzHideUnMatched]=\"true\"\n [nzPlaceHolder]=\"header.placeholder || header.name\" [nzShowSearch]=\"true\" [nzMultiple]=\"isMultiple\"\n [nzMaxTagCount]=\"header.maxTagCount ?? 3\" nzVirtualHeight=\"330px\"\n [ngModel]=\"value\" [ngModelOptions]=\"modelOptions\" (ngModelChange)=\"onChange($event)\"></nz-tree-select>\n\n <nz-range-picker *ngSwitchCase=\"'dayRange'\" style=\"width: 100%\" [nzDisabled]=\"disabled\"\n [nzAllowClear]=\"!header.disableClear\" nzFormat=\"yyyy-MM-dd\"\n [nzPlaceHolder]=\"[header.name + '开始时间', '结束时间']\"\n [ngModel]=\"value\" [ngModelOptions]=\"modelOptions\" (ngModelChange)=\"onChange($event)\"></nz-range-picker>\n\n <nz-range-picker *ngSwitchCase=\"'dateRange'\" style=\"width: 100%\" [nzDisabled]=\"disabled\"\n [nzAllowClear]=\"!header.disableClear\" [nzShowTime]=\"showTime\" [nzFormat]=\"dateFormat\"\n [nzShowNow]=\"!!showTime && !!header.nzShowNow\"\n [nzPlaceHolder]=\"[header.name + '开始时间', '结束时间']\"\n [ngModel]=\"value\" [ngModelOptions]=\"modelOptions\" (ngModelChange)=\"onChange($event)\"></nz-range-picker>\n\n <ng-container *ngSwitchCase=\"'sdate'\"><ng-container *ngTemplateOutlet=\"singleDateTpl\"></ng-container></ng-container>\n <ng-container *ngSwitchCase=\"'datepicker'\"><ng-container *ngTemplateOutlet=\"singleDateTpl\"></ng-container></ng-container>\n <nz-date-picker *ngSwitchCase=\"'smonth'\" style=\"width: 100%\" nzMode=\"month\" nzFormat=\"yyyy-MM\"\n [nzDisabled]=\"disabled\" [nzAllowClear]=\"!header.disableClear\"\n [nzPlaceHolder]=\"header.placeholder || header.name\"\n [ngModel]=\"value\" [ngModelOptions]=\"modelOptions\" (ngModelChange)=\"onChange($event)\"></nz-date-picker>\n <span class=\"label-title\">{{header.name}}</span>\n </nz-form-control>\n</nz-form-item>\n\n<ng-template #singleDateTpl>\n <nz-date-picker style=\"width: 100%\" [nzMode]=\"header.dateMode || 'date'\" [nzFormat]=\"dateFormat\"\n [nzDisabled]=\"disabled\" [nzAllowClear]=\"!header.disableClear\"\n [nzShowTime]=\"header.dateMode ? false : showTime\" [nzShowNow]=\"!!showTime && !!header.nzShowNow\"\n [nzPlaceHolder]=\"header.placeholder || header.name\"\n [ngModel]=\"value\" [ngModelOptions]=\"modelOptions\" (ngModelChange)=\"onChange($event)\"></nz-date-picker>\n</ng-template>\n\n<ng-template #inputClearTpl>\n <button *ngIf=\"!header.disableClear && hasValue\" type=\"button\" class=\"ant-input-clear-icon clear-button\"\n [disabled]=\"disabled\" [attr.aria-label]=\"'清空' + header.name\" (click)=\"clearValue($event)\">\n <i nz-icon nzTheme=\"fill\" nzType=\"close-circle\"></i>\n </button>\n</ng-template>\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\nimport {atr_static_datas, Table, TableAction} from \"../../../../core/base/atr-common\";\r\nimport {ToolsUtil} from \"../../../../core/utils/ToolsUtil\";\r\nimport {DictService} from \"../../../../core/services/dict/dict.service\";\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 changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TableTdComponent implements OnInit, OnChanges {\r\n @Input() data: any;\r\n\r\n @Input() item: Table | any;\r\n @Input() i: any\r\n value: any;\r\n displayValue: any;\r\n innerHtmlValue: any;\r\n result: any\r\n cellStyle: any = {};\r\n visibleActions: TableAction[] = [];\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 private dictRequestId = 0;\r\n\r\n constructor(private dictService: DictService, private cd: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.result = this.data;\r\n if (!this.data || !this.item) {\r\n this.value = null;\r\n this.displayValue = null;\r\n this.innerHtmlValue = null;\r\n this.cellStyle = {};\r\n this.visibleActions = [];\r\n return;\r\n }\r\n\r\n this.value = this.getValue(this.data);\r\n this.displayValue = this.value;\r\n this.cellStyle = this.getStyleCallBack(this.item, this.result);\r\n this.innerHtmlValue = this.getInnerHtmlValue();\r\n this.visibleActions = this.item.type == 'action'\r\n ? (this.item.actions || []).filter((action: TableAction) => this.isShowBtn(this.result, action.operator || '', action))\r\n : [];\r\n this.resolveDictValue();\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 && typeof item.styleCallBack == 'function') {\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 getInnerHtmlValue() {\r\n if (this.item.type != 'innerHtml' || !this.item.innerHtmlBack) {\r\n return null;\r\n }\r\n return this.item.innerHtmlBack(this.getDefaultValue(this.value, this.item.defaultVal), this.result);\r\n }\r\n\r\n getDefaultValue(value: any, defaultVal: 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 resolveDictValue() {\r\n this.dictRequestId++;\r\n if (this.item.type != 'dict') {\r\n return;\r\n }\r\n const requestId = this.dictRequestId;\r\n if (ToolsUtil.isNull(this.item.dictCode)) {\r\n this.displayValue = this.value;\r\n return;\r\n }\r\n this.displayValue = null;\r\n this.dictService.getCodeNameSync(this.value, this.item.dictCode, null, ',').then(res => {\r\n if (requestId != this.dictRequestId) {\r\n return;\r\n }\r\n this.displayValue = res;\r\n this.cd.markForCheck();\r\n });\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]=\"cellStyle\" [innerHTML]=\"innerHtmlValue | 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]=\"cellStyle\"\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]=\"cellStyle\"\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]=\"cellStyle\"\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]=\"cellStyle\"\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]=\"cellStyle\" [innerHTML]=\"item.key\"></div>\r\n\r\n <img *ngSwitchCase=\"'image'\" [ngStyle]=\"cellStyle\" width=\"35px\" nzSrc=\"{{(value | defVal:item.defaultVal) | ossImg}}\"\r\n nz-image atrErrorImg/>\r\n <img *ngSwitchCase=\"'image64'\" [ngStyle]=\"cellStyle\" 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 visibleActions\">\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 </div>\r\n </div>\r\n <div [ngStyle]=\"cellStyle\" *ngSwitchCase=\"'dict'\" [innerHTML]=\"displayValue | defVal:item.defaultVal\"></div>\r\n <div [ngStyle]=\"cellStyle\" 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 = 0;\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 visibleTables: Table[] = [];\r\n renderRows: 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() sortKey = 'sortBy'\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 this.refreshVisibleTables();\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 if (this.showPagination) {\r\n this.scrollSize.y = (this.tableHeight > 0 ? (this.tableHeight - tableWrapper.clientHeight - 120) : 200) + \"px\";\r\n console.log(\"resize of :\" + this.scrollSize.y)\r\n } else\r\n this.scrollSize.y = (this.tableHeight > 0 ? (this.tableHeight - tableWrapper.clientHeight) : 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 this.getRowSpan();\r\n this.buildRenderRows();\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 this.getRowSpan();\r\n this.buildRenderRows();\r\n }\r\n\r\n uploadAction(e, action) {\r\n this.headerAction.emit({\r\n name: action.code,\r\n code: action.code,\r\n data: e\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 };\r\n let sorts = this.getSortInfo()\r\n if (!ToolsUtil.isEmpty(sorts)) {\r\n params[this.sortKey] = sorts\r\n }\r\n params[this.sortKey] = this.getSortInfo()\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 = nzShowTime.nzFormat;\r\n }\r\n }\r\n if (formate == 'yyyy-MM-dd HH:mm:ss') {\r\n if (atr_static_datas.isIso) {\r\n params[begin] = new Date(this.atrForm.value[key][0]).toISOString()\r\n params[end] = new Date(this.atrForm.value[key][1]).toISOString()\r\n } else {\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 }\r\n\r\n } else {\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 }\r\n } else if (this.getHederType(key) == \"dayRange\") {\r\n let begin = key + \"Begin\";\r\n let end = key + \"End\";\r\n if (atr_static_datas.isIso) {\r\n params[begin] = new Date(formatDate((this.atrForm.value[key][0] as Date), 'yyyy-MM-dd 00:00:00', this.locale)).toISOString();\r\n params[end] = new Date(formatDate((this.atrForm.value[key][1] as Date), 'yyyy-MM-dd 23:59:59', this.locale)).toISOString();\r\n } else {\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 }\r\n\r\n } else if (this.getHederType(key) == \"sdate\") {\r\n if(atr_static_datas.isIso) {\r\n params[key] = new Date(formatDate((this.atrForm.value[key] as Date), 'yyyy-MM-dd 00:00:00', this.locale)).toISOString();\r\n } else {\r\n params[key] = formatDate((this.atrForm.value[key] as Date), 'yyyy-MM-dd 00:00:00', this.locale);\r\n }\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.refreshVisibleTables();\r\n this.buildRenderRows();\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 this.refreshVisibleTables();\r\n this.buildRenderRows();\r\n }\r\n\r\n refreshVisibleTables() {\r\n this.visibleTables = this.queryOpts && this.queryOpts.tables\r\n ? this.queryOpts.tables.filter((item: Table) => item.isShow)\r\n : [];\r\n }\r\n\r\n buildRenderRows() {\r\n this.renderRows = (this.tableDatas || []).map((data: any, index: number) => {\r\n return {\r\n data,\r\n index,\r\n trackId: data && data.id != null ? data.id : index,\r\n color: this.isShowColor(data),\r\n cells: this.visibleTables.map((item: Table, colIndex: number) => {\r\n return {\r\n item,\r\n trackKey: (item.key || item.name || 'col') + '_' + colIndex,\r\n show: this.checkShowTd(item, index),\r\n rowSpan: this.checkRowSpan(item, data)\r\n };\r\n })\r\n };\r\n });\r\n }\r\n\r\n trackByTableKey(index: number, item: Table) {\r\n return item.key || item.name || index;\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 const key = item.key ? item.key : \"\";\r\n return this.rowSpanMap[key] && this.rowSpanMap[key][data[key]] ? this.rowSpanMap[key][data[key]].num : 1\r\n }\r\n return 1;\r\n }\r\n\r\n getRowSpan() {\r\n this.rowSpanMap = {};\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 this.getRowSpan();\r\n this.buildRenderRows();\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]=\"renderRows\" 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 visibleTables; trackBy: trackByTableKey\">\r\n <th\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 (row of renderRows; track row.trackId) {\r\n <tr class=\"t-tr\"\r\n [style.color]=\"row.color\" (click)=\"selectRow(row.data,row.index)\"\r\n [ngClass]=\"{'selected': row.index == curChecked}\" (dblclick)=\"dbclickData(row.data,row.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[row.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(row.data,row.index)\"\r\n [(nzChecked)]=\"mapOfCheckedId[row.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>{{row.index + 1}}</td>\r\n }\r\n @for (cell of row.cells; track cell.trackKey) {\r\n <td [nzBreakWord]=\"true\" [nzLeft]=\"cell.item.isLeft ? true : false\"\r\n [ngClass]=\"{'left-zindex':cell.item.isLeft ? true : false}\"\r\n [nzRight]=\"cell.item.isRight ? true : false\"\r\n nzBreakWord\r\n [rowSpan]=\"cell.rowSpan\"\r\n *ngIf=\"cell.show\">\r\n <app-table-td [data]=\"row.data\"\r\n [item]=\"cell.item\"\r\n [i]=\"row.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\" (afterChange)=\"uploadAction($event,action)\"\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 [nzPageSizeOptions]=\"pageSizeOptions\"\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;\">\r\n <input [(ngModel)]=\"value\"\r\n (ngModelChange)=\"valueChange($event)\"\r\n nz-input\r\n nzType=\"primary\" nzPopoverPlacement=\"bottom\"\r\n [placeholder]=\"placeholder\"\r\n [readOnly]=\"readonly\"/>\r\n <button nz-button nz-popover nzType=\"primary\"\r\n [(nzPopoverVisible)]=\"showProp\" nzPopoverTrigger=\"click\"\r\n (nzPopoverVisibleChange)=\"change($event)\"\r\n [nzPopoverContent]=\"contentTemplate\">选择图标</button>\r\n</div>\r\n<ng-template #contentTemplate>\r\n <div style=\"width: 100%;height: 300px;overflow-y: auto\">\r\n <span (click)=\"selectIcon(item)\" class=\"i-child\" *ngFor=\"let item of icons\">\r\n <i nz-icon [nzType]=\"item\" nzTheme=\"outline\"></i>\r\n </span>\r\n\r\n </div>\r\n</ng-template>\r\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 @Input() size: 'default' | 'middle' | 'small' = 'small';\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\" [nzSize]=\"size\">\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 OnInit,\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\nimport {atr_static_datas} from \"../../../core/base/atr-common\";\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, OnInit, AfterViewInit, OnDestroy {\r\n apiKey_editor = atr_static_datas.APIKEY_EDITOR\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 private defaultEditorConfig: any;\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 this.defaultEditorConfig = this.editorConfig;\r\n }\r\n\r\n ngOnInit(): void {\r\n const customConfig = this.editorConfig || {};\r\n const defaultSetup = this.defaultEditorConfig.setup;\r\n const customSetup = customConfig.setup;\r\n this.editorConfig = {\r\n ...this.defaultEditorConfig,\r\n ...customConfig,\r\n setup: (editor: any) => {\r\n defaultSetup(editor);\r\n if (customSetup && customSetup !== defaultSetup) customSetup(editor);\r\n }\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.mode.set(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 [licenseKey]=\"editorConfig?.license_key\"\r\n name=\"editor\"\r\n (ngModelChange)=\"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 {DatePipe, formatDate} from '@angular/common';\r\nimport {ShareService} from '../share.service';\r\nimport {environment} from \"ng-zorro-antd/core/environments\";\r\nimport {atr_static_datas, AtrFormDetail, AtrFormOpt, FormAction, formButton} from \"../../../core/base/atr-common\";\r\nimport {DictService} from \"../../../core/services/dict/dict.service\";\r\nimport {ToolsUtil} from \"../../../core/utils/ToolsUtil\";\r\nimport {HttpService} from \"../../../core/services/http.service\";\r\n\r\n@Component({\r\n standalone: 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: string = '';\r\n @Input() viewSize: 'default' | 'middle' | 'small' = 'small';\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 value: event,\r\n item:item\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 (!item.dictList) {\r\n this.getDictValue(item);\r\n setTimeout(() => {\r\n console.log(\"TEST RIGHT\", item)\r\n }, 1000)\r\n } else {\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 }\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 let imgIndex = 0;\r\n for (let key of list) {\r\n images.push({\r\n key: key,\r\n uid: \"-1\" + (imgIndex++),\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 let imgIndex = 0;\r\n for (let key of list) {\r\n if (key != \"\") {\r\n images.push({\r\n key: key,\r\n uid: \"-1\" + (imgIndex++),\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 if(atr_static_datas.isIso){\r\n obj.value[key] = new Date(Number(value[key])).toISOString().replace(/T.*/, 'T00:00:00.000Z')\r\n } else {\r\n obj.value[key] = formatDate(new Date(Number(value[key])), 'yyyy-MM-dd 00:00:00', this.locale);\r\n }\r\n\r\n } else if (item.type == 'dateTime') {\r\n if(atr_static_datas.isIso){\r\n obj.value[key] = new Date(Number(value[key])).toISOString()\r\n } else {\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 } 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 | null | undefined): string => {\r\n return value == null ? '' : String(value);\r\n }\r\n}\r\n","<atr-view-form *ngIf=\"formOpts.type == 'view'\" [dicts]=\"dicts\" [atrForm]=\"atrForm\" [title]=\"viewTitle\"\r\n [formOpts]=\"formOpts\" [size]=\"viewSize\"></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 *ngIf=\"item.type == 'editor'\" style=\"width: 100%\">\r\n <app-editor style=\"flex: 1\" [formControlName]=\"item.key\"></app-editor>\r\n </div>\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-group *ngIf=\"item.type == 'checkbox'\" [formControlName]=\"item.key\"\r\n [nzOptions]=\"item.dictList || []\"></nz-checkbox-group>\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\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%;\" (contextmenu)=\"needContextmenu || $event.preventDefault()\">\r\n 您的浏览器不支持画布!\r\n</canvas>\r\n<ng-content></ng-content>\r\n","/** Resolve a row field without treating valid zero/false values as missing. */\nexport function getTableValue(data: any, key?: string): any {\n if (!key) return undefined;\n return key.split('.').reduce((value, part) => value == null ? undefined : value[part], data);\n}\n\nexport function isEmptyTableValue(value: any): boolean {\n return value == null || value === '' || (Array.isArray(value) && value.length === 0);\n}\n\nfunction conditionLiteral(value: any): any {\n if (typeof value !== 'string') return value;\n const literal = value.trim();\n if (literal === 'true') return true;\n if (literal === 'false') return false;\n if (literal === 'null') return null;\n if (literal === 'undefined') return undefined;\n if (/^(['\"]).*\\1$/.test(literal)) return literal.slice(1, -1);\n return literal;\n}\n\n/** Existing condition operators retain loose numeric/string equality for API codes. */\nexport function compareTableValue(value: any, operator: string, target?: any): boolean {\n const expected = conditionLiteral(target);\n switch (typeof operator === 'string' ? operator.trim() : '') {\n case 'eq': return value == expected;\n case 'ne': return value != expected;\n case 'empty': return isEmptyTableValue(value);\n case 'notEmpty': return !isEmptyTableValue(value);\n case 'gh':\n case 'ge':\n case 'gte': return value != null && expected != null && value >= expected;\n case 'gt': return value != null && expected != null && value > expected;\n case 'lh':\n case 'le':\n case 'lte': return value != null && expected != null && value <= expected;\n case 'lt': return value != null && expected != null && value < expected;\n case 'in': return String(expected ?? '').split(',').some(item => value == conditionLiteral(item));\n case 'notIn': return !String(expected ?? '').split(',').some(item => value == conditionLiteral(item));\n case 'contains': return value != null && String(value).includes(String(expected ?? ''));\n default: return false;\n }\n}\n\n/** Parse field|operator|value conditions, with AND taking precedence over OR. */\nexport function matchesTableCondition(data: any, condition?: string): boolean {\n if (condition == null || condition === '') return true;\n if (typeof condition !== 'string') return false;\n if (!condition.trim()) return true;\n return condition.split('||').some(group => group.split('&&').every(expression => {\n const [field, operator, ...target] = expression.trim().split('|');\n return !!field?.trim() && !!operator?.trim()\n && compareTableValue(getTableValue(data, field.trim()), operator.trim(), target.join('|'));\n }));\n}\n","import {Component} from '@angular/core';\r\nimport {TableAction} from \"../../../../core/base/atr-common\";\r\nimport {ICellRendererAngularComp} from \"ag-grid-angular\";\r\nimport {ICellRendererParams} from \"ag-grid-community\";\r\nimport {matchesTableCondition} from '../../../../core/utils/table-condition.util';\r\n\r\ninterface BtnTdParams extends ICellRendererParams {\r\n buttons?: TableAction[],\r\n callback?: Function\r\n}\r\n\r\n@Component({\r\n selector: 'app-btn-td',\r\n standalone: false,\r\n templateUrl: './btn-td.component.html',\r\n styleUrl: './btn-td.component.scss',\r\n})\r\nexport class BtnTdComponent implements ICellRendererAngularComp {\r\n buttons: TableAction[] = []\r\n params!: BtnTdParams;\r\n\r\n constructor() {\r\n }\r\n\r\n agInit(params: BtnTdParams): void {\r\n this.refresh(params);\r\n }\r\n\r\n\r\n refresh(params: BtnTdParams): boolean {\r\n this.params = params;\r\n this.buttons = (params.buttons || []).filter(action => matchesTableCondition(params.data, action.operator));\r\n return true;\r\n }\r\n\r\n doActionByRow(code: any, event: MouseEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n const button = this.buttons.find(action => action.code === code);\r\n if (!button || !matchesTableCondition(this.params.data, button.operator)) return;\r\n if (this.params.callback) {\r\n const data = this.params.data\r\n const rowIndex = this.params.node?.rowIndex ?? -1;\r\n let action: TableAction = {\r\n ...button,\r\n name: button.name,\r\n code: code,\r\n type: \"row\"\r\n };\r\n action.data = data;\r\n action.firstData = data;\r\n action.numberOfChecked = rowIndex;\r\n this.params.callback({data: action, event: event})\r\n }\r\n }\r\n}\r\n","<div class=\"btn-td-content\" *ngIf=\"buttons.length > 0\">\r\n <ng-container *ngFor=\"let action of buttons\">\r\n <ng-container *ngIf=\"!action.withoutRole\">\r\n <button type=\"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 (mousedown)=\"$event.stopPropagation()\" (click)=\"doActionByRow(action.code,$event)\">\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 type=\"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\" (mousedown)=\"$event.stopPropagation()\" (click)=\"doActionByRow(action.code,$event)\">\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>\r\n</div>\r\n\r\n","/** A data URI contains a comma itself, so it must never be split as a URL list. */\nexport function splitGridImages(value: any, defaultValue?: any): string[] {\n const input = value == null ? defaultValue : value;\n const values = Array.isArray(input) ? input : [input];\n return values.flatMap(item => {\n if (item == null || item === '') return [];\n const text = String(item).trim();\n return /^data:/i.test(text) ? [text] : text.split(',').map(url => url.trim()).filter(Boolean);\n });\n}\n\nexport function resolveGridImageUrl(value: string, prefix = '', direct = false): string {\n if (!value) return '';\n if (/^(?:https?:|blob:|data:image\\/|\\/\\/)/i.test(value)) return value;\n if (/^[a-z][a-z\\d+.-]*:/i.test(value)) return '';\n const base = prefix.replace(/\\/+$/, '');\n if (direct || !base || value === base || value.startsWith(base + '/')) return value;\n return `${base}/${value.replace(/^\\/+/, '')}`;\n}\n","import {Component} from '@angular/core';\r\nimport {ICellRendererAngularComp} from \"ag-grid-angular\";\r\nimport {ICellRendererParams} from \"ag-grid-community\";\r\nimport {AtrErrorImgDirective} from '../../../../core/directive/error-img.directive'\r\nimport {DefaultValPipe} from '../../../../core/pipe/defaultVal.pipe'\r\nimport {OssImgPipe} from '../../../../core/pipe/image-pipe.pipe'\r\nimport { NzImageModule } from 'ng-zorro-antd/image';\r\nimport {CommonModule} from '@angular/common';\r\nimport {atr_static_datas} from '../../../../core/base/atr-common';\r\nimport {resolveGridImageUrl, splitGridImages} from '../grid-table/grid-image.utils';\r\n@Component({\r\n selector: 'app-img-td',\r\n standalone: true,\r\n imports: [CommonModule, NzImageModule, AtrErrorImgDirective],\r\n templateUrl: './img-td.component.html',\r\n styleUrl: './img-td.component.scss',\r\n providers: [OssImgPipe, DefaultValPipe],\r\n})\r\nexport class ImgTdComponent implements ICellRendererAngularComp {\r\n imageUrl = '';\r\n defaultVal = '';\r\n imageUrls: string[] = [];\r\n private imagePrefix = atr_static_datas.OSS_URL;\r\n private direct = false;\r\n\r\n constructor(private ossImgPipe: OssImgPipe, private defaultValPipe: DefaultValPipe) {\r\n }\r\n\r\n agInit(params: ICellRendererParams): void {\r\n this.refresh(params);\r\n }\r\n\r\n getRealImgUrl(value) {\r\n return resolveGridImageUrl(String(value ?? ''), this.imagePrefix, this.direct);\r\n }\r\n\r\n refresh(params: ICellRendererParams): boolean {\r\n const options = params as ICellRendererParams & {defaultVal?: any; imagePrefix?: string; image64?: boolean};\r\n this.defaultVal = options.defaultVal ?? '';\r\n this.imagePrefix = options.imagePrefix ?? atr_static_datas.OSS_URL;\r\n this.direct = !!options.image64;\r\n this.imageUrls = splitGridImages(params.value, this.defaultVal)\r\n .map(value => this.getRealImgUrl(value)).filter(Boolean);\r\n this.imageUrl = this.imageUrls[0] || '';\r\n return true;\r\n }\r\n}\r\n","<nz-image-group *ngIf=\"imageUrls.length\">\r\n <img *ngFor=\"let image of imageUrls\" width=\"35\" height=\"35\" [nzSrc]=\"image\"\r\n nz-image atrErrorImg alt=\"表格图片\" (mousedown)=\"$event.stopPropagation()\" (click)=\"$event.stopPropagation()\"/>\r\n</nz-image-group>\r\n","import {DatePipe} from '@angular/common';\nimport {EmbeddedViewRef, SecurityContext, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {CellClassParams, CellStyle, ColDef, ICellRendererComp, ICellRendererParams} from 'ag-grid-community';\nimport {Table, TableAction} from '../../../../core/base/atr-common';\nimport {compareTableValue, matchesTableCondition} from '../../../../core/utils/table-condition.util';\nimport {BtnTdComponent} from '../btn-td/btn-td.component';\nimport {ImgTdComponent} from '../img-td/img-td.component';\nimport {splitGridImages} from './grid-image.utils';\n\nexport interface GridColumnContext {\n datePipe: DatePipe;\n sanitizer: DomSanitizer;\n viewContainerRef: ViewContainerRef;\n dictMap: Record<string, Record<string, string>>;\n onAction: (params: {data: TableAction; event?: MouseEvent}) => void;\n imagePrefix?: string;\n}\n\nfunction defaultValue(value: any, table: Table): any {\n return value == null ? (table.defaultVal ?? '-') : value;\n}\n\nfunction displayText(value: any): string {\n return value == null ? '' : String(value);\n}\n\nfunction columnStyle(table: Table, params: CellClassParams): CellStyle {\n const styles = typeof table.styleCallBack === 'function'\n ? table.styleCallBack(params) : table.styleCallBack;\n const result: CellStyle = {...(styles || {})};\n if (table.type === 'link' && result['color'] == null) result['color'] = '#1677ff';\n const color = table.color as Table['color'] | string;\n if (!color) return result;\n // AG Grid merges refreshed cellStyle objects; explicitly clear a previous match.\n if (result['color'] == null) result['color'] = 'inherit';\n const matchesValue = table.type !== 'textcolor' || table.colorShow == null\n || compareTableValue(params.value, 'eq', table.colorShow);\n if (!matchesValue) return result;\n if (typeof color === 'string') result['color'] = color;\n else if (matchesTableCondition(params.data, color.operator)) result['color'] = color.color;\n return result;\n}\n\nfunction templateRenderer(template: TemplateRef<any>, table: Table, context: GridColumnContext) {\n return class implements ICellRendererComp {\n private readonly element = document.createElement('span');\n private view: EmbeddedViewRef<any> | null = null;\n\n init(params: ICellRendererParams): void {\n this.element.style.display = 'block';\n this.view = context.viewContainerRef.createEmbeddedView(template, this.templateContext(params));\n this.view.detectChanges();\n this.view.rootNodes.forEach(node => this.element.appendChild(node));\n }\n\n getGui(): HTMLElement { return this.element; }\n\n refresh(params: ICellRendererParams): boolean {\n if (!this.view || this.view.destroyed) return false;\n Object.assign(this.view.context, this.templateContext(params));\n this.view.detectChanges();\n return true;\n }\n\n destroy(): void {\n this.view?.destroy();\n this.view = null;\n this.element.replaceChildren();\n }\n\n private templateContext(params: ICellRendererParams) {\n return {$implicit: params, params, data: params.data, item: table, value: params.value,\n defaultVal: table.defaultVal, images: splitGridImages(params.value, table.defaultVal)};\n }\n };\n}\n\nfunction linkRenderer(table: Table, context: GridColumnContext) {\n return class implements ICellRendererComp {\n private readonly element = document.createElement('button');\n private params!: ICellRendererParams;\n private readonly onMouseDown = (event: MouseEvent) => event.stopPropagation();\n private readonly onClick = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n const action: TableAction = {name: table.name, code: table.key || 'link', type: 'row',\n data: this.params.data, firstData: this.params.data, value: this.params.value,\n numberOfChecked: this.params.node?.rowIndex ?? -1};\n context.onAction({data: action, event});\n };\n\n init(params: ICellRendererParams): void {\n this.element.type = 'button';\n this.element.className = 'atr-grid-link';\n Object.assign(this.element.style, {border: '0', background: 'transparent', padding: '0',\n color: 'inherit', textDecoration: 'underline', cursor: 'pointer', font: 'inherit'});\n this.element.addEventListener('mousedown', this.onMouseDown);\n this.element.addEventListener('click', this.onClick);\n this.refresh(params);\n }\n\n getGui(): HTMLElement { return this.element; }\n\n refresh(params: ICellRendererParams): boolean {\n this.params = params;\n this.element.textContent = displayText(params.valueFormatted ?? defaultValue(params.value, table));\n return true;\n }\n\n destroy(): void {\n this.element.removeEventListener('mousedown', this.onMouseDown);\n this.element.removeEventListener('click', this.onClick);\n }\n };\n}\n\nfunction htmlRenderer(table: Table, context: GridColumnContext) {\n return class implements ICellRendererComp {\n private readonly element = document.createElement('span');\n init(params: ICellRendererParams): void { this.refresh(params); }\n getGui(): HTMLElement { return this.element; }\n refresh(params: ICellRendererParams): boolean {\n const value = defaultValue(params.value, table);\n const html = table.innerHtmlBack ? table.innerHtmlBack(value, params.data) : value;\n this.element.innerHTML = context.sanitizer.sanitize(SecurityContext.HTML, displayText(html)) || '';\n return true;\n }\n destroy(): void { this.element.replaceChildren(); }\n };\n}\n\n/** Translate the public ATR column schema without mutating the supplied configuration. */\nexport function createGridColumn(table: Table, context: GridColumnContext): ColDef {\n const width = Number(table.width);\n const column: ColDef = {\n headerName: table.name,\n colId: table.key || table.name,\n field: table.type === 'fixedText' ? undefined : table.key,\n width: Number.isFinite(width) && width > 0 ? Math.max(40, width) : 150,\n sortable: table.sortable ?? (table.sortKey ? true : undefined),\n hide: table.isShow === false,\n pinned: table.isLeft ? 'left' : table.isRight ? 'right' : undefined,\n resizable: table.forbidResize == null ? undefined : !table.forbidResize,\n spanRows: !!table.isRowSpan,\n cellStyle: table.styleCallBack || table.color || table.type === 'link'\n ? params => columnStyle(table, params) : undefined,\n valueFormatter: params => displayText(defaultValue(params.value, table))\n };\n\n switch (table.type) {\n case 'fixedText':\n column.valueGetter = () => table.key ?? table.defaultVal ?? '';\n break;\n case 'date':\n case 'dateTime':\n case 'sDateTime': {\n const format = table.dateFormat || (table.type === 'date' ? 'yyyy-MM-dd'\n : table.type === 'sDateTime' ? 'MM-dd HH:mm' : 'yyyy-MM-dd HH:mm:ss');\n column.valueFormatter = params => {\n if (params.value == null || params.value === '') return displayText(defaultValue(params.value, table));\n try { return context.datePipe.transform(params.value, format) ?? displayText(defaultValue(null, table)); }\n catch { return displayText(params.value); }\n };\n break;\n }\n case 'dict':\n column.valueFormatter = params => {\n if (params.value == null) return displayText(defaultValue(params.value, table));\n const labels = table.dictCode ? context.dictMap[table.dictCode] || {} : {};\n const values = Array.isArray(params.value) ? params.value : String(params.value).split(',');\n return values.map(value => labels[String(value).trim()] ?? value).join(',');\n };\n break;\n case 'action':\n column.cellRenderer = BtnTdComponent;\n column.cellClass = 'atr-action-cell';\n column.cellRendererParams = {buttons: table.actions || [], callback: context.onAction,\n suppressMouseEventHandling: () => true};\n break;\n case 'image':\n case 'image64':\n column.cellRenderer = ImgTdComponent;\n column.cellRendererParams = {defaultVal: table.defaultVal, imagePrefix: context.imagePrefix,\n image64: table.type === 'image64', suppressMouseEventHandling: () => true};\n break;\n case 'link':\n column.cellRenderer = linkRenderer(table, context);\n column.cellRendererParams = {suppressMouseEventHandling: () => true};\n break;\n case 'innerHtml':\n column.cellRenderer = htmlRenderer(table, context);\n break;\n case 'tempRef':\n if (table.tempRef) column.cellRenderer = templateRenderer(table.tempRef, table, context);\n break;\n case 'text':\n case 'textcolor':\n break;\n }\n\n if (table.valueFormatter != null) column.valueFormatter = table.valueFormatter as ColDef['valueFormatter'];\n if (table.cellRenderer != null) column.cellRenderer = table.cellRenderer;\n const customParams = table.cellRendererParams;\n if (customParams != null) {\n const builtInParams = column.cellRendererParams;\n column.cellRendererParams = typeof customParams === 'function'\n ? params => ({...builtInParams, ...(customParams(params) || {})})\n : {...builtInParams, ...customParams};\n }\n return column;\n}\n","import {\n AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, Inject, Injector,\n Input, LOCALE_ID, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, TemplateRef,\n ViewChild, ViewContainerRef\n} from '@angular/core';\nimport {UntypedFormBuilder, UntypedFormControl, UntypedFormGroup} from '@angular/forms';\nimport {DatePipe, formatDate} from '@angular/common';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {CdkDragDrop, moveItemInArray} from '@angular/cdk/drag-drop';\nimport {NzContextMenuService, NzDropdownMenuComponent} from 'ng-zorro-antd/dropdown';\nimport {NzResizeDirection, NzResizeEvent} from 'ng-zorro-antd/resizable';\nimport {\n AllCommunityModule, CellValueChangedEvent, ColDef, GetRowIdParams, GridApi, GridOptions,\n GridReadyEvent, ModuleRegistry, RowDragEndEvent, RowSelectionOptions, SelectionChangedEvent, SortChangedEvent\n} from 'ag-grid-community';\nimport {Subject, Subscription, defer, firstValueFrom, take, takeUntil, timeout, throwIfEmpty, finalize} from 'rxjs';\nimport {atr_static_datas, AtrQueryHeader, AtrQueyrOpt, json, Table, TableAction} from '../../../../core/base/atr-common';\nimport {DictService} from '../../../../core/services/dict/dict.service';\nimport {HttpService} from '../../../../core/services/http.service';\nimport {ToolsUtil} from '../../../../core/utils/ToolsUtil';\nimport {compareTableValue, getTableValue, isEmptyTableValue, matchesTableCondition} from '../../../../core/utils/table-condition.util';\nimport {DefaultValPipe} from '../../../../core/pipe/defaultVal.pipe';\nimport {OssImgPipe} from '../../../../core/pipe/image-pipe.pipe';\nimport {createGridColumn} from './grid-column.factory';\n\nModuleRegistry.registerModules([AllCommunityModule]);\n\n@Component({\n standalone: false, selector: 'atr-grid-table',\n templateUrl: './grid-table.component.html', styleUrls: ['./grid-table.component.less'],\n providers: [DictService, OssImgPipe, DefaultValPipe, DatePipe]\n})\nexport class AtrGridTableComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n @Input() pageSize = 20;\n @Input() pageSizeOptions: number[] = [20, 30, 40, 50, 60];\n @Input() loading = true;\n @Input() allowDrag = false;\n @Input() showQueryTime = false;\n @Input() isHideTable = false;\n @Input() sortKey = 'sortBy';\n @Input() queryOpts: AtrQueyrOpt | any = {url: '', tables: []};\n @Input() showPagination = true;\n @Input() title = '';\n @Input() queryHeaders: json | null = null;\n @Input() rowKey = 'id';\n @Input() gridOptions: GridOptions = {};\n @Output() tableAction = new EventEmitter<TableAction>();\n @Output() queryBack = new EventEmitter<TableAction>();\n @Output() headerAction = new EventEmitter<TableAction>();\n @ViewChild('formContent') tableHeader?: ElementRef<HTMLElement>;\n @ViewChild('tableContent', {static: true}) tableContent!: ElementRef<HTMLElement>;\n\n columnDefs: ColDef[] = [];\n defaultColDef: ColDef = {resizable: true, minWidth: 60, sortable: false};\n resolvedGridOptions: GridOptions = {};\n cellSpanEnabled = false;\n rowSelection: RowSelectionOptions = {mode: 'singleRow', checkboxes: false, enableClickSelection: true};\n gridApi: GridApi | null = null;\n dictMap: Record<string, Record<string, string>> = {};\n dicts: Record<string, any[]> = {};\n atrForm: UntypedFormGroup;\n searchHeaders: AtrQueryHeader[] = [];\n headerDefaultVal: json = {};\n defaultParams: json = {};\n tableDatas: any[] = [];\n visibleTables: Table[] = [];\n sortMap: Record<string, 'asc' | 'desc' | null> = {};\n rowSpanMap: Record<string, Record<number, {num: number}>> = {};\n mapOfCheckedId: Record<string, boolean> = {};\n numberOfChecked = 0;\n isAllDisplayDataChecked = false;\n isIndeterminate = false;\n curChecked = -1;\n pageIndex = 1;\n total = 0;\n isCollapse = true;\n isAllLoad = false;\n viewInitOver = false;\n tableWidth = 0;\n tableHeight = '100%';\n queryTime = '';\n queryError = '';\n imagePrefix = atr_static_datas.OSS_URL;\n scrollX = 0;\n scrollSize = {x: '', y: ''};\n resizeDirection: NzResizeDirection | null = null;\n id = -1;\n widthId: ReturnType<typeof setTimeout> | undefined;\n private initialized = false;\n private viewReady = false;\n private destroyed = false;\n private configRevision = 0;\n private columnRevision = 0;\n private requestRevision = 0;\n private querySubscription?: Subscription;\n private resizeObserver?: ResizeObserver;\n private readonly destroy$ = new Subject<void>();\n private readonly pendingDictionaries = new Map<string, Promise<any[]>>();\n private readonly loadedDictionaries = new Set<string>();\n private readonly fallbackRowIds = new WeakMap<object, string>();\n private nextRowId = 0;\n private suppressSelectionEvents = false;\n private columnTables = new Map<string, Table>();\n\n constructor(private fb: UntypedFormBuilder, private ossImgPipe: OssImgPipe,\n private defaultValPipe: DefaultValPipe, private datePipe: DatePipe,\n private viewContainerRef: ViewContainerRef, private injector: Injector,\n @Inject(LOCALE_ID) private locale: string, private cd: ChangeDetectorRef) {\n this.atrForm = this.fb.group({});\n }\n get actions(): TableAction[] { return this.queryOpts?.actions || []; }\n get tables(): Table[] { return this.queryOpts?.tables || []; }\n get visibleHeaderCount(): number { return Math.max(0, this.queryOpts?.showNum ?? this.searchHeaders.length); }\n get hasMoreHeaders(): boolean { return this.searchHeaders.filter(item => item.isShow !== false).length > this.visibleHeaderCount; }\n isHeaderVisible(header: AtrQueryHeader, index: number): boolean {\n return header.isShow !== false && (!this.isCollapse\n || this.searchHeaders.slice(0, index).filter(item => item.isShow !== false).length < this.visibleHeaderCount);\n }\n get enableCellSpan(): boolean { return this.tables.some(item => item.isShow !== false && !!item.isRowSpan); }\n\n ngOnInit(): void {\n this.initialized = true;\n this.defaultParams = {...this.queryOpts?.defaultParams};\n this.sortMap = this.parseSort(this.queryOpts?.sort || this.queryOpts?.sortBy);\n this.normalizePagination();\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.initialized) return;\n if (changes['queryOpts']) {\n this.defaultParams = {...this.queryOpts?.defaultParams};\n this.sortMap = this.parseSort(this.queryOpts?.sort || this.queryOpts?.sortBy);\n this.pageIndex = 1;\n this.cancelQuery();\n if (this.viewReady) void this.initializeGrid();\n } else if (this.viewReady && (changes['gridOptions'] || changes['rowKey'])) {\n this.cancelQuery();\n void this.initializeGrid(false);\n } else if (this.viewReady && changes['allowDrag']) {\n this.configureGrid();\n void this.refreshColumns();\n }\n if (changes['pageSize']) {\n this.normalizePagination();\n if (!changes['queryOpts'] && this.isAllLoad) this.query(true);\n }\n }\n ngAfterViewInit(): void {\n this.viewReady = true;\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => this.updateTableHeight());\n this.resizeObserver.observe(this.tableContent.nativeElement);\n }\n void this.initializeGrid();\n }\n private async initializeGrid(autoQuery = true): Promise<void> {\n const revision = ++this.configRevision;\n this.viewInitOver = false;\n this.isAllLoad = false;\n this.gridApi = null;\n this.syncSelection([]);\n // Some native options are initial-only. Destroy the previous grid before rebuilding it.\n await Promise.resolve();\n if (this.destroyed || revision !== this.configRevision) return;\n this.cd.detectChanges();\n this.configureGrid();\n await this.initHeader();\n if (this.destroyed || revision !== this.configRevision) return;\n await this.initTableHeader();\n if (this.destroyed || revision !== this.configRevision) return;\n this.cellSpanEnabled = this.enableCellSpan;\n this.isAllLoad = true;\n this.viewInitOver = true;\n this.loading = false;\n this.cd.detectChanges();\n this.updateTableHeight();\n // Historical contract: true skips the initial automatic request.\n if (autoQuery && !this.queryOpts?.isAutoQuery) this.query();\n }\n private configureGrid(): void {\n this.defaultColDef = {resizable: true, minWidth: 60, sortable: false, ...this.gridOptions?.defaultColDef};\n this.resolvedGridOptions = {...this.gridOptions, rowModelType: 'clientSide'};\n const check = this.queryOpts?.checkBox || {};\n const common = {\n checkboxes: !!check.isShowCheckbox, enableClickSelection: !check.isForbid,\n enableSelectionWithoutKeys: true,\n isRowSelectable: (node: any) => !!node.data && (!check.isRowSelectable || !!check.isRowSelectable(node))\n };\n this.rowSelection = check.isShowCheckbox && !check.isRadio\n ? {...common, mode: 'multiRow', headerCheckbox: true, selectAll: 'filtered'}\n : {...common, mode: 'singleRow'};\n }\n async initTableHeader(): Promise<void> {\n const revision = ++this.columnRevision;\n const tables = this.tables.slice();\n await Promise.all(tables.filter(item => item.type === 'dict' && item.dictCode)\n .map(item => this.loadDictionary(item.dictCode!)));\n if (this.destroyed || revision !== this.columnRevision) return;\n const definitions: ColDef[] = [];\n const columnTables = new Map<string, Table>();\n if (this.allowDrag || this.queryOpts?.isIndex) {\n definitions.push({\n headerName: this.queryOpts?.isIndex ? '#' : '', colId: '__index__', width: this.allowDrag ? 85 : 65,\n minWidth: this.allowDrag ? 85 : 65, maxWidth: this.allowDrag ? 100 : 80,\n pinned: 'left', sortable: false, filter: false, editable: false, resizable: false,\n suppressMovable: true, rowDrag: this.allowDrag ? () => this.canDragRows() : false,\n valueGetter: params => this.queryOpts?.isIndex\n ? (this.pageIndex - 1) * this.pageSize + (params.node?.rowIndex ?? 0) + 1 : '',\n cellStyle: {textAlign: 'center'}\n });\n }\n for (const [index, table] of tables.entries()) {\n const definition = await this.transColumnDefs(table);\n const base = table.key || `__column_${index}`;\n let colId = base;\n for (let suffix = 1; columnTables.has(colId) || colId === '__index__'; suffix++) colId = `${base}_${suffix}`;\n definition.colId = colId;\n const sortName = table.sortKey || table.key || colId;\n definition.sort = this.sortMap[sortName] || null;\n definition.sortIndex = Object.keys(this.sortMap).indexOf(sortName);\n columnTables.set(colId, table);\n definitions.push(definition);\n }\n if (this.destroyed || revision !== this.columnRevision) return;\n this.columnTables = columnTables;\n this.columnDefs = definitions;\n this.refreshVisibleTables();\n this.getRowSpan();\n this.updateTableHeight();\n this.cd.markForCheck();\n }\n async refreshColumns(): Promise<void> {\n if (this.isAllLoad && this.cellSpanEnabled !== this.enableCellSpan) await this.initializeGrid(false);\n else await this.initTableHeader();\n }\n async transColumnDefs(tableItem: Table): Promise<ColDef> {\n return createGridColumn(tableItem, {\n datePipe: this.datePipe, sanitizer: this.injector.get(DomSanitizer),\n viewContainerRef: this.viewContainerRef, dictMap: this.dictMap, imagePrefix: this.imagePrefix,\n onAction: params => {\n params.event?.stopPropagation();\n this.curChecked = params.data.numberOfChecked ?? -1;\n this.tableAction.emit(params.data);\n }\n });\n }\n createTemplateCellRenderer(template: TemplateRef<any>, tableItem: Table): any {\n return createGridColumn({...tableItem, type: 'tempRef', tempRef: template}, {\n datePipe: this.datePipe, sanitizer: this.injector.get(DomSanitizer), viewContainerRef: this.viewContainerRef,\n dictMap: this.dictMap, imagePrefix: this.imagePrefix, onAction: params => this.tableAction.emit(params.data)\n }).cellRenderer;\n }\n updateTableHeight(): void {\n const element = this.tableContent?.nativeElement;\n if (element) this.tableWidth = element.clientWidth;\n // Flex layout reserves the actual header, error and pagination heights.\n this.tableHeight = '100%';\n }\n getRowId = (params: GetRowIdParams): string => this.getDataId(params.data);\n private getDataId(data: any): string {\n const key = getTableValue(data, this.rowKey);\n if (key !== undefined && key !== null) return String(key);\n if (data && typeof data === 'object') {\n if (!this.fallbackRowIds.has(data)) this.fallbackRowIds.set(data, `__atr_row_${++this.nextRowId}`);\n return this.fallbackRowIds.get(data)!;\n }\n return String(data);\n }\n getRowStyle: NonNullable<GridOptions['getRowStyle']> = params => {\n const custom = this.gridOptions?.getRowStyle?.(params) || {};\n const color = this.isShowColor(params.data);\n return this.queryOpts?.color ? {...custom, color: color || custom['color'] || 'inherit'} : custom;\n };\n onGridReady(event: GridReadyEvent): void {\n this.gridApi = event.api;\n this.tableAction.emit({code: 'gridApi', name: 'gridApi', type: 'row', data: event.api});\n }\n onSortChanged(event: SortChangedEvent): void {\n const sorts = event.api.getColumnState().filter(column => !!column.sort)\n .sort((a, b) => (a.sortIndex ?? 0) - (b.sortIndex ?? 0));\n const next: typeof this.sortMap = {};\n for (const column of sorts) {\n const table = this.columnTables.get(column.colId);\n if (table) next[table.sortKey || table.key || column.colId] = column.sort!;\n }\n if (JSON.stringify(next) === JSON.stringify(this.sortMap)) return;\n this.sortMap = next;\n if (this.viewInitOver) this.query(true);\n }\r\n onSelectionChanged(event: SelectionChangedEvent): void {\n if (!this.suppressSelectionEvents) this.syncSelection(event.api.getSelectedRows());\n }\n private syncSelection(rows: any[], code = 'select'): void {\n this.mapOfCheckedId = Object.fromEntries(rows.map(row => [this.getDataId(row), true]));\n this.numberOfChecked = rows.length;\n const selectable = this.tableDatas.filter(row => this.isSelectable(row));\n this.isAllDisplayDataChecked = selectable.length > 0 && selectable.every(row => this.mapOfCheckedId[this.getDataId(row)]);\n this.isIndeterminate = rows.length > 0 && !this.isAllDisplayDataChecked;\n this.tableAction.emit({code, name: 'select', type: 'row', data: rows, datas: rows,\n firstData: rows[0], numberOfChecked: rows.length});\n }\n getSelectedRows(): any[] {\n return this.gridApi ? this.gridApi.getSelectedRows()\n : this.tableDatas.filter(row => this.mapOfCheckedId[this.getDataId(row)]);\n }\n getAllCheckDatas(): any[] { return this.getSelectedRows(); }\n getAllCheckInfo(): any[] { return this.getSelectedRows().map(row => this.getDataId(row)); }\n checkAll(value: boolean): void {\n if (this.gridApi) {\n this.suppressSelectionEvents = true;\n try {\n if (!value) this.gridApi.deselectAll();\n else if (this.rowSelection.mode === 'multiRow') this.gridApi.selectAll('filtered');\n else {\n let selected = false;\n this.gridApi.forEachNodeAfterFilter(node => {\n if (!selected && node.selectable && node.data) { node.setSelected(true, true); selected = true; }\n });\n }\n } finally { this.suppressSelectionEvents = false; }\n this.syncSelection(this.gridApi.getSelectedRows());\n } else {\n let rows = value ? this.tableDatas.filter(row => this.isSelectable(row)) : [];\n if (this.rowSelection.mode === 'singleRow') rows = rows.slice(0, 1);\n this.syncSelection(rows);\n }\n }\n refreshStatus(): void {\n if (!this.tableDatas.length) { this.syncSelection([], 'refreshStatus'); return; }\n if (this.gridApi) {\n this.suppressSelectionEvents = true;\n let selected = false;\n try {\n this.gridApi.forEachNode(node => {\n const wanted = !!node.data && !!this.mapOfCheckedId[this.getDataId(node.data)] && !!node.selectable;\n const allowed = wanted && (this.rowSelection.mode === 'multiRow' || !selected);\n if (allowed) selected = true;\n node.setSelected(allowed);\n });\n } finally { this.suppressSelectionEvents = false; }\n }\n this.syncSelection(this.getSelectedRows(), 'refreshStatus');\n }\n private isSelectable(data: any): boolean {\n const predicate = this.queryOpts?.checkBox?.isRowSelectable;\n const node = this.gridApi?.getRowNode(this.getDataId(data));\n return !predicate || !!predicate(node || {data, id: this.getDataId(data)});\n }\n selectRow(data: any, rowNo: number): void {\n this.curChecked = rowNo;\n if (this.queryOpts?.checkBox?.isForbid || !this.isSelectable(data)) return;\n const node = this.gridApi?.getRowNode(this.getDataId(data));\n if (node) node.setSelected(!node.isSelected(), this.rowSelection.mode === 'singleRow');\n else {\n const key = this.getDataId(data);\n const selected = !this.mapOfCheckedId[key];\n if (this.rowSelection.mode === 'singleRow') this.mapOfCheckedId = {};\n this.mapOfCheckedId[key] = selected;\n this.syncSelection(this.getSelectedRows());\n }\n }\n doAction(code: any): void {\n const rows = this.getSelectedRows();\n this.tableAction.emit({name: code, code, type: 'rows', datas: rows,\n firstData: rows[0], numberOfChecked: rows.length});\n }\n doActionByRow(data: any, code: any, event?: MouseEvent): void {\n event?.preventDefault();\n event?.stopPropagation();\n this.tableAction.emit({name: code, code, type: 'row', data, firstData: data, numberOfChecked: 1});\n }\n doActionByRow2(e: any): void {\n const {data, code, event, index} = e;\n event?.preventDefault();\n event?.stopPropagation();\n this.curChecked = index ?? -1;\n this.tableAction.emit({name: code, code, type: 'row', data, firstData: data, numberOfChecked: index});\n }\n dbclickData(data: any, rowNo: number): void {\n this.curChecked = rowNo;\n this.tableAction.emit({name: 'dbclickData', code: 'dbclickData', type: 'row', data, firstData: data, numberOfChecked: 1});\n }\n onCellValueChanged(event: CellValueChangedEvent): void {\n this.getRowSpan();\n event.api.refreshCells({rowNodes: [event.node], force: true});\n this.tableAction.emit({name: '单元格修改', code: 'cellValueChanged', type: 'row', data: event.data,\n firstData: event.data, value: event.newValue, numberOfChecked: 1,\n oldValue: event.oldValue, columnKey: event.colDef.field, rowIndex: event.rowIndex} as TableAction);\n }\n isShowColor(data: any): string {\n const color = this.queryOpts?.color;\n return color?.color && matchesTableCondition(data, color.operator) ? color.color : '';\n }\n isShowBtn(data: any, operator?: string, action?: TableAction): boolean { return matchesTableCondition(data, operator); }\n checkIsShowBase(op: any, data: any): boolean { return matchesTableCondition(data, op.join('|')); }\n compare(value: any, operator: any, target: any): boolean { return compareTableValue(value, operator, target); }\n isEnable(operator?: string): boolean {\n if (!operator) return false;\n const state: json = {count: this.numberOfChecked, numberOfChecked: this.numberOfChecked};\n for (const clause of operator.split(/&&|\\|\\|/)) state[clause.trim().split('|')[0]] = this.numberOfChecked;\n return !matchesTableCondition(state, operator);\n }\n async initHeader(): Promise<void> {\n const currentValues = this.atrForm.getRawValue();\n this.headerDefaultVal = {};\n this.searchHeaders = (this.queryOpts?.headers || []).map((header: AtrQueryHeader) => ({...header, span: header.span ?? 8}));\n const controls: Record<string, UntypedFormControl> = {};\n for (const item of this.searchHeaders) {\n this.headerDefaultVal[item.key] = item.defaultVal ?? null;\n controls[item.key] = new UntypedFormControl(Object.prototype.hasOwnProperty.call(currentValues, item.key)\n ? currentValues[item.key] : item.defaultVal ?? null);\n }\n this.atrForm = this.fb.group(controls);\n await Promise.all(this.searchHeaders.map(async item => {\n if (item.type === 'select' && item.dictCode) await this.getDictValue(item.dictCode);\n else if (item.selectUrl?.url) await this.getDicList(item);\n }));\n }\n private loadDictionary(code: string): Promise<any[]> {\n if (!code) return Promise.resolve([]);\n if (this.loadedDictionaries.has(code)) return Promise.resolve(this.dicts[code] || []);\n const pending = this.pendingDictionaries.get(code);\n if (pending) return pending;\n const request = firstValueFrom(this.dictService.getDictBycode(code)\n .pipe(take(1), timeout(15000), takeUntil(this.destroy$)))\n .then(group => {\n const list = Array.isArray(group?.dicts) ? group.dicts : [];\n if (!this.destroyed) {\n this.dicts[code] = list;\n this.dictMap[code] = Object.fromEntries(list.map(item => [String(item.id), item.typeName]));\n if (Array.isArray(group?.dicts)) this.loadedDictionaries.add(code);\n }\n return list;\n }).catch(() => {\n if (!this.destroyed) { this.dicts[code] = []; this.dictMap[code] = {}; }\n return [];\n }).finally(() => this.pendingDictionaries.delete(code));\n this.pendingDictionaries.set(code, request);\n return request;\n }\n getDictValue(code: string): Promise<any[]> { return this.loadDictionary(code); }\n async getDicList(item: AtrQueryHeader): Promise<void> {\n if (!item.selectUrl?.url) return;\n try {\n const response = await firstValueFrom(this.httpService.post(item.selectUrl.url, {}, ToolsUtil.getHttpOptions())\n .pipe(take(1), timeout(15000), takeUntil(this.destroy$)));\n if (this.destroyed || !Array.isArray(response?.data)) return;\n const keys = (item.selectUrl.convert || '').split(',').filter(Boolean).map(pair => pair.split('|'));\n const convert = (rows: any[]): any[] => rows.map(row => {\n const value = {...row};\n for (const [target, source] of keys) if (target && source) value[target] = row[source];\n if (Array.isArray(row.children)) value.children = convert(row.children);\n else if (item.type === 'cascader') value.isLeaf = row.isLeaf ?? true;\n return value;\n });\n const rows = convert(response.data);\n if (item.type === 'treeSelect') item.treeList = rows;\n else item.dictList = rows;\n this.cd.markForCheck();\n } catch {\n if (item.type === 'treeSelect') item.treeList = [];\n else item.dictList = [];\n }\n }\n setFormValue(key: string, value: any): void { this.atrForm.get(key)?.setValue(value); this.query(true); }\n resetForm(): void {\n this.atrForm.reset({...this.headerDefaultVal});\n this.headerAction.emit({name: '重置', code: 'resetForm'});\n }\n toggleCollapse(): void {\n this.isCollapse = !this.isCollapse;\n this.headerAction.emit({name: '收起/展开', code: 'collapse', data: this.isCollapse, value: this.isCollapse});\n }\n selectChange(value: any, item: any): void {\n this.headerAction.emit({name: item.name || item.label, code: item.key, data: item, value});\n }\n clickIcon(value: any, item: AtrQueryHeader, event: any): void {\n event?.stopPropagation();\n this.headerAction.emit({name: item.name, code: item.icon?.code || '', data: item, value});\n }\n uploadAction(event: any, action: TableAction): void {\n this.headerAction.emit({name: action.code, code: action.code, data: event});\n }\n getQueryParams(reset = false): json {\n if (reset) this.pageIndex = 1;\n const params: json = {...this.queryHeaders, ...this.defaultParams, page: this.pageIndex, limit: this.pageSize};\n const sort = this.getSortInfo();\n if (sort) params[this.sortKey] = sort;\n else delete params[this.sortKey];\n for (const header of this.searchHeaders) {\n const value = this.atrForm.get(header.key)?.value;\n if (isEmptyTableValue(value)) continue;\n const key = header.key;\n if (header.type === 'dateRange' || header.type === 'dayRange') {\n if (!Array.isArray(value) || value.length !== 2 || value.some(isEmptyTableValue)) continue;\n const showTime = header.nzShowTime;\n const timeEnabled = !!showTime && (typeof showTime !== 'object' || showTime.isShowTime !== false);\n const timeFormat = timeEnabled && typeof showTime === 'object' ? showTime.nzFormat : '';\n const format = timeFormat ? (/[yMd]/.test(timeFormat) ? timeFormat : `yyyy-MM-dd ${timeFormat}`)\n : timeEnabled ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd 00:00:00';\n params[`${key}Begin`] = formatDate(value[0], header.type === 'dayRange' ? 'yyyy-MM-dd 00:00:00' : format, this.locale);\n params[`${key}End`] = formatDate(value[1], header.type === 'dayRange' ? 'yyyy-MM-dd 23:59:59' : format, this.locale);\n } else if (header.type === 'sdate' || header.type === 'datepicker') {\n const showTime = header.nzShowTime;\n const timeEnabled = !!showTime && (typeof showTime !== 'object' || showTime.isShowTime !== false);\n const timeFormat = timeEnabled && typeof showTime === 'object' ? showTime.nzFormat : '';\n const format = timeFormat ? (/[yMd]/.test(timeFormat) ? timeFormat : `yyyy-MM-dd ${timeFormat}`)\n : timeEnabled ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd 00:00:00';\n params[key] = formatDate(value, format, this.locale);\n } else params[key] = Array.isArray(value) ? value.join(',') : value;\n }\n return params;\n }\n getHederType(key: string, typeKey = 'type'): any { return this.searchHeaders.find(header => header.key === key)?.[typeKey]; }\n setDefaultParams(params: json, reset = true): void { this.defaultParams = {...params}; this.query(reset); }\n getSortInfo(): string {\n return Object.entries(this.sortMap).filter(([, value]) => value === 'asc' || value === 'desc')\n .map(([key, value]) => `${key}|${value}`).join(',');\n }\n private parseSort(sort?: string): typeof this.sortMap {\n const result: typeof this.sortMap = {};\n for (const item of (sort || '').split(',')) {\n const [key, value] = item.trim().split('|');\n if (key && (value === 'asc' || value === 'desc')) result[key] = value;\n }\n return result;\n }\n sort(sortName: string, value: any): void {\n const normalized = value === 'ascend' ? 'asc' : value === 'descend' ? 'desc' : value;\n this.sortMap = normalized === 'asc' || normalized === 'desc' ? {[sortName]: normalized} : {};\n if (this.gridApi) this.gridApi.applyColumnState({state: [...this.columnTables].map(([colId, table]) => ({\n colId, sort: table.sortKey === sortName || table.key === sortName ? normalized || null : null\n })), defaultState: {sort: null}});\n this.query(true);\n }\n PageSizeChange(size: number): void { this.pageSize = size; this.normalizePagination(); this.query(true); }\n PageIndexChange(page: number): void {\n this.pageIndex = Number.isFinite(Number(page)) ? Math.max(1, Math.floor(Number(page))) : 1;\n this.query();\n }\n private normalizePagination(): void {\n const size = Math.floor(Number(this.pageSize));\n this.pageSize = Number.isFinite(size) && size >= 1 ? size : 20;\n this.pageSizeOptions = [...new Set((this.pageSizeOptions || []).map(value => Math.floor(Number(value)))\n .filter(value => Number.isFinite(value) && value >= 1))];\n if (!this.pageSizeOptions.includes(this.pageSize)) this.pageSizeOptions = [...this.pageSizeOptions, this.pageSize].sort((a, b) => a - b);\n }\r\n setDates(response: any): void { this.cancelQuery(); this.applyData(response); }\n private applyData(response: any): void {\n this.tableDatas = Array.isArray(response) ? response.slice() : Array.isArray(response?.data) ? response.data.slice() : [];\n const total = Number(response?.page?.totalResult ?? this.tableDatas.length);\n this.total = Number.isFinite(total) && total >= 0 ? total : this.tableDatas.length;\n const currentPage = Number(response?.page?.currentPage);\n if (Number.isFinite(currentPage) && currentPage > 0) this.pageIndex = currentPage;\n this.loading = false;\n this.queryError = '';\n this.curChecked = -1;\n this.suppressSelectionEvents = true;\n try { this.gridApi?.deselectAll(); } finally { this.suppressSelectionEvents = false; }\n this.syncSelection([]);\n this.getRowSpan();\n this.refreshVisibleTables();\n this.cd.markForCheck();\n }\n query(reset = false): void {\n if (this.destroyed) return;\n this.cancelQuery();\n const revision = this.requestRevision;\n const params = this.getQueryParams(reset);\n this.queryError = '';\n if (!this.queryOpts?.url) {\n this.loading = false;\n this.queryBack.emit({name: '', code: 'query', data: params, params} as TableAction);\n return;\n }\n this.loading = true;\n this.queryTime = formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss', this.locale);\n this.querySubscription = defer(() => this.httpService.post(this.queryOpts.url, {...params}, ToolsUtil.getHttpOptions()))\n .pipe(take(1), timeout(30000), throwIfEmpty(() => new Error('查询未返回数据,请重试')),\n takeUntil(this.destroy$), finalize(() => {\n if (!this.destroyed && revision === this.requestRevision) { this.loading = false; this.cd.markForCheck(); }\n })).subscribe({\n next: result => {\n if (this.destroyed || revision !== this.requestRevision) return;\n if (Number(result?.status) !== 200 || !Array.isArray(result?.data)) {\n this.handleQueryError(result?.message || '查询响应格式不正确', params, revision);\n return;\n }\n this.queryBack.emit({name: '查询', code: 'query', result, params} as any);\n if (revision === this.requestRevision) this.applyData(result);\n },\n error: error => this.handleQueryError(error, params, revision)\n });\n }\n private handleQueryError(error: any, params: json, revision: number): void {\n if (this.destroyed || revision !== this.requestRevision) return;\n this.loading = false;\n this.queryError = typeof error === 'string' ? error : error?.name === 'TimeoutError'\n ? '查询超时,请重试' : error?.error?.message || error?.message || '查询失败,请重试';\n this.queryBack.emit({name: '查询失败', code: 'queryError', error, params} as any);\n this.cd.markForCheck();\n }\n private cancelQuery(): void { ++this.requestRevision; this.querySubscription?.unsubscribe(); this.querySubscription = undefined; }\n setTableLoadding(loading: boolean): void { this.loading = loading; }\n pushTableDatas(rows: any[]): void {\n if (!Array.isArray(rows)) return;\n this.tableDatas = [...this.tableDatas, ...rows];\n this.total += rows.length;\n this.getRowSpan();\n }\n removeDatas(key: string, value: any): void {\n const remaining = this.tableDatas.filter(row => getTableValue(row, key) !== value);\n this.total = Math.max(0, this.total - (this.tableDatas.length - remaining.length));\n this.tableDatas = remaining;\n this.gridApi?.forEachNode(node => { if (node.data && getTableValue(node.data, key) === value) node.setSelected(false); });\n this.syncSelection(this.getSelectedRows().filter(row => getTableValue(row, key) !== value));\n this.getRowSpan();\n }\n getImageList(value: any, defaultVal: any): string[] {\n const real = isEmptyTableValue(value) ? defaultVal : value;\n if (isEmptyTableValue(real)) return [];\n return Array.isArray(real) ? real : String(real).startsWith('data:') ? [real] : String(real).split(',').filter(Boolean);\n }\n refreshVisibleTables(): void { this.visibleTables = this.tables.filter(item => item.isShow !== false); }\n setColumnVisible(key: string, visible: boolean): void {\n const ids = [...this.columnTables].filter(([id, table]) => id === key || table.key === key).map(([id]) => id);\n for (const id of ids) {\n const definition = this.columnDefs.find(column => column.colId === id);\n if (definition) definition.hide = !visible;\n }\n this.gridApi?.setColumnsVisible(ids, visible);\n this.cd.markForCheck();\n }\n exportCsv(fileName = 'table.csv'): void {\n this.gridApi?.exportDataAsCsv({fileName, skipColumnGroupHeaders: true,\n processCellCallback: params => {\n const value = params.formatValue(params.value) ?? params.value ?? '';\n return typeof value === 'string' && /^[=+\\-@\\t\\r]/.test(value) ? `'${value}` : value;\n },\n columnKeys: this.gridApi.getAllDisplayedColumns()\n .map(column => column.getColId()).filter(id => id !== '__index__' && this.columnTables.get(id)?.type !== 'action')});\n }\n getRowSpan(): void {\n this.rowSpanMap = {};\n for (const table of this.tables.filter(item => item.isRowSpan)) {\n const key = table.key || '';\n const spans: Record<number, {num: number}> = {};\n for (let start = 0; start < this.tableDatas.length;) {\n let end = start + 1;\n while (end < this.tableDatas.length && getTableValue(this.tableDatas[start], key) === getTableValue(this.tableDatas[end], key)) end++;\n spans[start] = {num: end - start};\n for (let index = start + 1; index < end; index++) spans[index] = {num: 0};\n start = end;\n }\n this.rowSpanMap[key] = spans;\n }\n }\n checkShowTd(item: Table, index: number): boolean {\n return item.isShow !== false && (!item.isRowSpan || (this.rowSpanMap[item.key || '']?.[index]?.num ?? 1) > 0);\n }\n canDragRows(): boolean { return this.allowDrag && !this.getSortInfo() && !this.gridApi?.isAnyFilterPresent(); }\n onRowDragEnd(event: RowDragEndEvent): void {\n if (!this.canDragRows() || !event.overNode?.data) return;\n this.reorderRows(this.tableDatas.indexOf(event.node.data), this.tableDatas.indexOf(event.overNode.data));\n }\n drop(event: CdkDragDrop<any[]>): void { if (this.canDragRows()) this.reorderRows(event.previousIndex, event.currentIndex); }\n private reorderRows(from: number, to: number): void {\n if (from < 0 || to < 0 || from === to || from >= this.tableDatas.length || to >= this.tableDatas.length) return;\n const rows = this.tableDatas.slice();\n moveItemInArray(rows, from, to);\n this.tableDatas = rows;\n this.getRowSpan();\n this.tableAction.emit({name: 'drag', code: 'drag', type: 'rows', data: rows[to], datas: rows, value: {previousIndex: from, currentIndex: to}});\n this.cd.markForCheck();\n }\n onResize(event: NzResizeEvent, item: Table): void {\n if (event.width) {\n item.width = event.width;\n this.resizeDirection = event.direction || null;\n if (this.gridApi && item.key) this.gridApi.setColumnWidths([{key: item.key, newWidth: event.width}]);\n }\n }\n contextMenu(event: any, menu: NzDropdownMenuComponent): void { this.injector.get(NzContextMenuService).create(event, menu); }\n private get httpService(): HttpService { return this.injector.get(HttpService); }\n private get dictService(): DictService { return this.injector.get(DictService); }\n ngOnDestroy(): void {\n this.destroyed = true;\n ++this.configRevision;\n ++this.columnRevision;\n this.cancelQuery();\n this.destroy$.next();\n this.destroy$.complete();\n this.resizeObserver?.disconnect();\n if (this.widthId) clearTimeout(this.widthId);\n this.gridApi = null;\n }\n}\r\n","<div class=\"table-content\" #tableContent [spinLoading]=\"!viewInitOver\" HqSpin>\n <form nz-form [formGroup]=\"atrForm\" class=\"ant-advanced-search-form\"\n *ngIf=\"searchHeaders.length || actions.length || title\" #formContent (ngSubmit)=\"query(true)\">\n <div nz-row [nzGutter]=\"16\">\n <ng-content select=\"[header-left-slot]\"></ng-content>\n <ng-container *ngFor=\"let header of searchHeaders; let index = index\">\n <div nz-col [hidden]=\"!isHeaderVisible(header, index)\" [nzSpan]=\"header.span || 8\">\n <app-table-form-item [header]=\"header\" [dictList]=\"dicts[header.dictCode || ''] || header.dictList || []\"\n [formControlName]=\"header.key\" (headerAction)=\"headerAction.emit($event)\"></app-table-form-item>\n </div>\n </ng-container>\n <ng-content select=\"[header-right-slot]\"></ng-content>\n </div>\n <div class=\"table-toolbar\">\n <div class=\"action-area\">\n <ng-content select=\"[button-left-slot]\"></ng-content>\n <ng-container *ngFor=\"let action of actions\">\n <atr-local-upload *ngIf=\"action.gType === 'upload'\" [code]=\"action.code\" [url]=\"action.url\"\n [name]=\"action.name\" [withoutRole]=\"action.withoutRole\" (afterChange)=\"uploadAction($event, action)\"></atr-local-upload>\n <ng-container *ngIf=\"!action.gType || action.gType === 'normal'\">\n <button type=\"button\" nz-button nzSize=\"small\"\n [nzType]=\"action.buttonType && action.buttonType !== 'danger' ? action.buttonType : 'primary'\"\n [nzDanger]=\"action.buttonType === 'danger'\" [ngClass]=\"action.className || ''\"\n *atrRole=\"action.withoutRole ? 'any' : action.code\" [disabled]=\"isEnable(action.operator)\"\n (click)=\"doAction(action.code)\"><i *ngIf=\"action.icon\" nz-icon [nzType]=\"action.icon\"></i>{{action.name}}</button>\n </ng-container>\n </ng-container>\n <ng-content select=\"[button-right-slot]\"></ng-content>\n </div>\n <div class=\"search-area\" *ngIf=\"searchHeaders.length && !queryOpts?.isHideQuery\">\n <span *ngIf=\"showQueryTime && queryTime\" class=\"query-time\">数据查询时间:{{queryTime}}</span>\n <button type=\"submit\" nz-button nzSize=\"small\" nzType=\"primary\" [nzLoading]=\"loading\">查询</button>\n <button type=\"button\" nz-button nzSize=\"small\" (click)=\"resetForm()\">重置</button>\n <button type=\"button\" nz-button nzType=\"link\" nzSize=\"small\" *ngIf=\"hasMoreHeaders\" (click)=\"toggleCollapse()\">\n {{isCollapse ? '展开' : '收起'}}<i nz-icon [nzType]=\"isCollapse ? 'down' : 'up'\"></i>\n </button>\n </div>\n </div>\n <div *ngIf=\"title\" class=\"title\">{{title}}</div>\n </form>\n <div *ngIf=\"queryError\" class=\"query-error\" role=\"alert\"><span>{{queryError}}</span>\n <button type=\"button\" nz-button nzSize=\"small\" (click)=\"query()\" [disabled]=\"loading\">重试</button>\n </div>\n <div class=\"grid-area\" [hidden]=\"isHideTable\">\n <ag-grid-angular *ngIf=\"isAllLoad\" class=\"full-screen\"\n [gridOptions]=\"resolvedGridOptions\" [defaultColDef]=\"defaultColDef\"\n [rowSelection]=\"rowSelection\" [rowData]=\"tableDatas\" [loading]=\"loading\"\n [getRowId]=\"getRowId\" [getRowStyle]=\"getRowStyle\" [enableCellSpan]=\"cellSpanEnabled\"\n [rowDragManaged]=\"false\" [alwaysMultiSort]=\"true\" [enableCellTextSelection]=\"true\"\n [pagination]=\"false\" [columnDefs]=\"columnDefs\"\n (gridReady)=\"onGridReady($event)\" (selectionChanged)=\"onSelectionChanged($event)\"\n (sortChanged)=\"onSortChanged($event)\" (cellValueChanged)=\"onCellValueChanged($event)\"\n (rowDoubleClicked)=\"dbclickData($event.data, $event.rowIndex ?? -1)\"\n (rowDragEnd)=\"onRowDragEnd($event)\"></ag-grid-angular>\n </div>\n <div class=\"table-pagination\" *ngIf=\"showPagination && !isHideTable\">\n <span>共 {{total}} 条记录<span *ngIf=\"numberOfChecked\">,已选 {{numberOfChecked}} 条</span></span>\n <nz-pagination [nzPageIndex]=\"pageIndex\" [nzTotal]=\"total\" nzShowSizeChanger [nzPageSize]=\"pageSize\"\n nzSize=\"small\" [nzPageSizeOptions]=\"pageSizeOptions\" (nzPageIndexChange)=\"PageIndexChange($event)\"\n (nzPageSizeChange)=\"PageSizeChange($event)\"></nz-pagination>\n </div>\n</div>\r\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\nimport {AtrGridTableComponent} from \"./table/grid-table/grid-table.component\";\r\nimport {BtnTdComponent} from \"./table/btn-td/btn-td.component\";\r\nimport {AgGridAngular} from \"ag-grid-angular\";\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,AtrGridTableComponent,BtnTdComponent\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 AgGridAngular,\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/table/btn-td/btn-td.component\"\r\nexport * from \"./lib/shared/table/grid-table/grid-table.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","i9","i14","i3","i4","i5","i6","i7","i8","i10","i11","i12.AtrRoleDirective","i13.AtrErrorImgDirective","i14.DefaultValPipe","i15.OssImgPipe","i16.SafeHtmlPipe","i7.AtrRoleDirective","i12","i13","i14.AtrRoleDirective","i15.HqSpinDirective","i16.TableFormItemComponent","i17.TableTdComponent","i18.LocalUploadComponent","i10.VideoComponent","i11.OssImgPipe","i9.VideoComponent","i10.OssImgPipe","i1.UploadOssService","i15","i16","i18","i19","i20","i21.UploadComponent","i22.SelectIconsComponent","i23.ViewFormComponent","i24.EditorComponent","i25.DefaultValPipe","i26.SafeHtmlPipe","i6.AtrRoleDirective","i1.OssImgPipe","i2.DefaultValPipe","i13.HqSpinDirective","i15.TableFormItemComponent","i16.LocalUploadComponent"],"mappings":"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"}
|