@clake/react-bootstrap4-window 1.1.8 → 1.1.9
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/dist/react-bootstrap4-window.js +3 -3
- package/lib/CTable.js +136 -137
- package/lib/CTable.js.map +3 -3
- package/lib/CTableInput.js +2 -2
- package/lib/CTableInput.js.map +2 -2
- package/lib/CTableTextArea.js +2 -2
- package/lib/CTableTextArea.js.map +2 -2
- package/lib/Drag.js +2 -2
- package/lib/Drag.js.map +2 -2
- package/lib/IconButton.js +2 -2
- package/lib/IconButton.js.map +2 -2
- package/lib/PageBar.js +2 -2
- package/lib/PageBar.js.map +2 -2
- package/lib/TopMenu.js +2 -2
- package/lib/TopMenu.js.map +2 -2
- package/lib/WCalendar.js +2 -2
- package/lib/WCalendar.js.map +2 -2
- package/lib/WCombo.js +2 -2
- package/lib/WCombo.js.map +2 -2
- package/lib/WModal.js +2 -2
- package/lib/WModal.js.map +2 -2
- package/lib/Window.js +2 -2
- package/lib/Window.js.map +2 -2
- package/lib/WindowGroup.js +2 -2
- package/lib/WindowGroup.js.map +2 -2
- package/lib/i18n/CTable.js +2 -2
- package/lib/i18n/CTable.js.map +2 -2
- package/lib/index.js +2 -2
- package/lib/index.js.map +2 -2
- package/lib/types/expsrc/view/test/CTableTest.d.ts +1 -0
- package/lib/types/expsrc/view/test/CTableTest.d.ts.map +1 -1
- package/lib/types/src/CTable.d.ts +1 -1
- package/lib/types/src/CTable.d.ts.map +1 -1
- package/package.json +1 -1
package/lib/CTable.js.map
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/* @clake/react-bootstrap4-window v1.1.
|
|
1
|
+
/* @clake/react-bootstrap4-window v1.1.9 | by Clake
|
|
2
2
|
* Copyright (c) 2024 Clake,
|
|
3
|
-
* 2024-12-
|
|
3
|
+
* 2024-12-10T09:36:02+0800
|
|
4
4
|
*/
|
|
5
|
-
{"version":3,"sources":["CTable.tsx"],"names":["numberCondition","CTable","props","a","b","Date","getTime","prototype","keys","Object","length","every","k","equals","checked","select_all","selectRows","state","data","forEach","item","key","push","setState","selectAll","selectHalf","onCheckAll","jsxId","e","dom","currentTarget","sort_type","dataset","sort","changeSort","tableHeader","style","transform","scrollLeft","tableTotal","field","document","querySelector","domId","deleteRowHandler","parseInt","mainMenu","index","cloneRow","page","onSelectPage","slice","assign","cacheRow","editRows","dataCount","previousElementSibling","focus","val","row","target","indexOf","headers","onEdit","editCallback","editData","isFull","mainDom","classList","remove","fullButton","add","fullButton2","select","total","filter","start","end","contain","originalData","Common","RandomString","headerSplits","sortList","is_sort","onSort","is_filter","onFilter","current_sort","filter_list","noClone","lockColumns","isLock","initTableWidth","bindSplit","prevProps","prevState","snapshot","table_head","table_body","width","list","querySelectorAll","id","td","table_total","nextProps","edit","Clone","isHalf","allchk","idx","set_chk","nextState","disabled","reg","matchs","match","unit","React","Children","map","children","sourceFunc","source","number","showNumbers","res","count","type","value","text","flag","i","setRowCheck","checkAllCheckHalf","allChecked","half","onCheck","selectOnce","rowIdx","includes","splice","onClick","rowCheck","refs","changeHandler","clearSort","child","emitEvt","prv","prv_child","desc","dataType","preventDefault","stopPropagation","show","evt","numMenu","RegExp","test","condition","hide","undefined","localFilter","is_clean","setValue","equal","row_index","onDelete","deleteRow","move","split","drag","dragColumnLeft","dragWidth","Drag","dragDom","eventDom","xy","GetDomXY","parentNode","left","table_rows","x","column_key","diff","setEventDom","name","base","striped","theme","bordered","hover","sm","fontSm","responsive","noWrap","className","height","absolute","position","top","y","right","bottom","extend","headerTheme","headClass","parseFloat","totalData","toFixed","c","getMainClasses","getStyles","conDom","getBodyClasses","renderHeader","renderRows","renderTotal","renderFoot","getClasses","getTableStyles","getHeaderClasses","textAlign","nodel","def","sort_icon","menuContextHandler","sortHandler","scrollHandler","renderEditRow","renderRow","newBar","renderEditAddRow","menu","renderMenu","renderNumberMenu","parentRow","rowClass","clickHandler","columnStyle","align","color","bgColor","backgroundColor","cloneElement","onDoubleClick","renderEditComponent","onFormat","cursor","addNewHandler","editHandler","combo","comboData","calendarFormat","chk","hasOwnProperty","calcLocalTotal","foot","selectPageHandler","showPages","fullHandler","lang","i18","i18n","getLang","langStr","CTableLang","menuClickHandler","execCommand","getSelection","filterHandler","toString","clearFilter","inputStyle","filterChangeHandler","stopEvent","customMenu","explainCustomMenu","m","String","Array","click","Component","header","currentPage","allSelect"],"mappings":"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","sourcesContent":["/** @module react-bootstrap-v4-window/CTable */\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport {\n Icon,\n Pagination,\n Menu,\n Input,\n Button,\n Common,\n i18n,\n CCheckbox,\n Scroll,\n HScroll,\n ComponentProps\n} from '@clake/react-bootstrap4';\nimport './css/CTable.less';\nimport Drag from \"./Drag\";\nimport CTableInput from \"./CTableInput\";\nimport CTableLang from './i18n/CTable';\nimport PageBar from \"./PageBar\";\nimport CTableTextArea from './CTableTextArea';\n\nlet numberCondition:{[propName:string]:string} = {\n '=':'eq',\n '!=':'ne',\n '>':'gt',\n '>=':'gte',\n '<=':'lte',\n '<':'lt'\n};\n\ninterface Props extends ComponentProps {\n //主题 ['primary', 'secondary', 'success', 'danger', 'warning', 'info', 'light', 'dark']\n theme ?: string\n //标头主题\n headerTheme ?: string\n //标头css class\n headClass ?: string\n //数据来源\n data ?: any[]\n //数据总记录数\n dataCount ?: number\n //总页数\n page ?: number\n //第一列是否出现选择项\n select ?: boolean\n //是否只能选中一项\n selectOnce ?: boolean\n //是否显示标头\n header ?: boolean\n //\n center ?: boolean\n //数据当前页\n currentPage ?: number\n //\n striped ?: boolean\n //是否显示边框\n bordered ?: boolean\n //行是否有hover效果\n hover ?: boolean\n //是否小型化显示列表\n sm ?: boolean\n //文字最小化\n fontSm ?: boolean\n responsive ?: boolean\n //文字列表 left,center,right\n align ?: string\n //是否显示树结构\n tree ?: string\n //点击树事件\n onClickTree ?: ()=>void\n //点击事件\n onClick ?: (row:any,idx:number,id?:string)=>void\n //选择事件\n onCheck ?: (chk:boolean,row:any,id?:string)=>void\n //选择所有\n onCheckAll ?: (chk:boolean,data:any[],id?:string)=>void\n //过滤事件\n onFilter ?: (text:string, field:string, type:string, id?:string)=>void\n //排序事件\n onSort ?: (field:string,sort_type:string, id?:string)=>void\n //是否列可移动\n move ?: boolean\n //刷新事件\n onRefresh ?: ()=>void\n //刷新事件按钮文字\n refreshText ?: string\n //是否漂浮\n absolute ?: boolean\n //漂浮X坐标\n x ?: string\n //漂浮Y坐标\n y ?: string\n //表宽\n width ?: string\n //表高\n height ?: string\n //行高\n rowHeight ?: string\n // foot : PropTypes.bool,\n //是否显示列表尾\n foot ?: any\n //表自动随主体小设置\n position ?: any\n //显示的页码数\n showPages ?: number\n //显示的记录条数\n showNumbers ?: number\n //翻页事件\n onSelectPage?: (page:number,id?:string)=>void\n //是否自动换行\n noWrap ?: boolean\n //是否启用右键菜单\n menu ?: boolean\n //是否显示每列记录总合数\n total ?: any\n //是否编辑模式\n edit ?: boolean\n //是否有新增行功能\n newBar ?: boolean\n //是否可删除\n nodel ?: boolean\n //数据删除事件\n onDelete ?: (row:any,idx:number,callback:(row_index:number)=>void,id?:string)=>void\n //是否启用排序\n sort ?: boolean\n //是否启用过滤\n filter ?: boolean\n //自定义右键菜单\n customMenu ?: any\n //自定义显示语言\n lang ?: any\n source ?: string\n sourceFunc ?: (opt:any,callback:(res:any)=>void)=>void\n //是否显示全部选取\n allSelect ?: boolean\n //focus 是否显示焦点\n focus?: boolean\n //是否全行点选\n rowCheck?: boolean\n\n columnStyle?:any\n //唯一ID\n jsxId?: string\n}\n\ninterface State {\n data : any[]\n dataCount: number\n page : number\n select : boolean\n total : any\n filter : any\n selectAll: boolean //选中全部状态\n selectHalf: boolean //半选中状态\n selectRows: any[] //选中的数据列表\n focus: number //当前显示焦点\n}\n\nexport class CTable extends React.Component<Props,State> {\n static defaultProps:Props = {\n data : [],\n dataCount : 1,\n select : true,\n header : true,\n foot : true,\n currentPage: 1,\n hover : true,\n striped : true,\n align : 'left',\n sm : true,\n fontSm : true,\n headerTheme: 'primary',\n noWrap : true,\n bordered : true,\n move : true,\n menu : true,\n showNumbers: 30,\n showPages : 10,\n total : null,\n lang : 'en',\n allSelect : true,\n rowCheck : false,\n focus: true,\n newBar:true,\n nodel: false,\n }\n\n originalData: any[]\n domId:string\n select_all:boolean\n selectRows:any[]\n headerSplits:any\n sortList:any\n is_sort:boolean\n is_filter:boolean\n current_sort:any\n filter_list:any[]\n editRows:any[]\n cacheRow:any\n headers:any\n noClone:any\n lockColumns:any[]\n isLock:boolean\n filter:any\n \n width:string\n tableHeader:HTMLElement\n tableTotal:HTMLElement\n table_rows:HTMLElement\n table_head:HTMLElement\n table_body:HTMLElement\n table_total:HTMLElement\n fullButton:HTMLElement\n fullButton2:HTMLElement\n split:HTMLElement\n mainDom:HTMLElement\n conDom: HTMLElement\n mainMenu:Menu\n numMenu:Menu\n drag: Drag\n dragColumnLeft:number\n dragWidth:number\n allchk:CCheckbox\n isFull:boolean\n constructor(props:any) {\n \n super(props);\n this.state = {\n data : this.props.data || [],\n dataCount: this.props.dataCount??0,\n page : 1,\n select : this.props.select??false,\n total : this.props.total,\n filter : {\n start : '',\n end : '',\n contain: ''\n },\n selectAll: false, //选中全部状态\n selectHalf: false, //半选中状态\n selectRows: [], //选中的数据列表\n focus: -1 //当前显示焦点\n };\n\n this.originalData = this.state.data.slice(0);\n\n this.domId = 'table-' + Common.RandomString(16);\n\n this.select_all = false;\n this.selectRows = [];\n\n this.headerSplits = [];\n\n this.sortList = {};\n this.is_sort = typeof this.props.onSort === 'function' || !!this.props.sort;\n this.is_filter = typeof this.props.onFilter === 'function' || !!this.props.filter;\n this.current_sort = null;\n\n this.filter_list = [];\n this.filter = {};\n this.editRows = [];\n\n this.cacheRow = {};\n //列头数据\n this.headers = {};\n //不需要克隆列\n this.noClone = {};\n\n this.lockColumns = [];\n //lock column flag\n this.isLock = false;\n this.isFull = false;\n this.initTableWidth();\n }\n\n componentDidMount() {\n this.bindSplit();\n }\n\n componentDidUpdate(prevProps: Readonly<Props>, prevState: Readonly<State>, snapshot?: any): void {\n if (this.table_head) {\n this.table_body.style.width = this.width\n let list = this.table_head.querySelectorAll('th');\n list.forEach((item)=>{\n if (!item.id) return\n let td = this.table_body.querySelector<HTMLElement>(`#${item.id}`)\n if (td) {\n td.style.width = item.style.width\n }\n if (this.table_total) {\n let td = this.table_total.querySelector<HTMLElement>(`#${item.id}`)\n if (td) {\n td.style.width = item.style.width\n }\n }\n })\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps:Props) {\n if (this.state.data !== nextProps.data) {\n if (this.props.edit) {\n if (this.equals(this.originalData,nextProps.data)) {\n return\n }\n this.editRows = [];\n }\n this.originalData = Common.Clone(nextProps.data);\n // if (this.allchk) {\n // this.allchk.setHalf(false);\n // this.selectRows = [];\n // }\n // this.select_all = false;\n // this.selectRows = [];\n let selectRows:any[] = []\n let isHalf = false\n let allchk = false\n if (nextProps.data && nextProps.data.length > 0) {\n nextProps.data.forEach((item,idx)=>{\n if (item?.set_chk) {\n selectRows.push(idx)\n }\n })\n if (selectRows.length === nextProps.data.length) {\n allchk = true\n } else {\n if (selectRows.length>0) {\n isHalf = true\n }\n }\n }\n this.setState({\n data : nextProps.data??[],\n dataCount: nextProps.dataCount??0,\n page : nextProps.page??0,\n total : nextProps.total,\n selectRows: selectRows,\n selectHalf: isHalf,\n selectAll: allchk,\n focus: -1\n });\n }\n }\n\n shouldComponentUpdate(nextProps:Props, nextState:State) {\n if (nextState.selectRows !== this.state.selectRows) {\n return true\n }\n if (this.state.filter !== nextState.filter) {\n return true;\n }\n if (nextState.total !== this.state.total) {\n return true\n }\n if (this.props.focus && nextState.focus !== this.state.focus) {\n return true\n }\n if (this.props.disabled !== nextProps.disabled) {\n return true\n }\n return nextState.data !== this.state.data;\n }\n\n equals = (a:any, b:any):boolean => {\n if (a === b) return true;\n if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime();\n if (!a || !b || (typeof a !== 'object' && typeof b !== 'object')) return a === b;\n if (a.prototype !== b.prototype) return false;\n let keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) return false;\n return keys.every(k => this.equals(a[k], b[k]));\n }\n\n initTableWidth() {\n if (this.props.width) {\n let width = 0;\n let reg = /(\\d+)(px|rem|cm|mm|pt)$/;\n let matchs = this.props.width.match(reg);\n let unit = matchs?matchs[2]:'px';\n React.Children.map(this.props.children, (item, key) => {\n if (item.props.width) {\n let matchs = item.props.width.match(reg);\n width += parseInt(matchs[1]);\n this.headers[item.props.field] = item.props;\n if (item.props.noClone) {\n this.noClone[item.props.field] = \"\";\n }\n }\n });\n if (this.props.select) {\n width += 20;\n }\n this.width = width + unit;\n }\n }\n\n //inner source ********************\n sourceLoad() {\n if (typeof this.props.sourceFunc !== 'function') return;\n\n this.props.sourceFunc({\n source:this.props.source,\n page:this.state.page,\n number:this.props.showNumbers,\n },(res)=>{\n this.setState({\n data : res.data,\n dataCount: res.count,\n page : res.page,\n })\n });\n }\n\n sourceFilter() {\n return this.filter_list.map((item)=>{\n switch (item.type) {\n case \"start\":\n return {\n field:item.field,\n value:`${item.text}%`,\n flag:'like'\n };\n case \"end\":\n return {\n field:item.field,\n value:`%${item.text}`,\n flag:'like'\n };\n case \"clear\":\n // this.filter = {};\n break;\n case \"\":\n return {\n field:item.field,\n value:item.text,\n flag:'='\n };\n default:\n return {\n field:item.field,\n value:`%${item.text}%`,\n flag:'like'\n }\n }\n });\n }\n\n sourceOrder() {\n\n }\n\n //innter source end ***************************\n //checkbox handler\n changeHandler(row:any, i:number) {\n return (checked:boolean,e:any) => {\n let selectRows = this.setRowCheck(checked,i);\n const [allChecked, half] = this.checkAllCheckHalf(selectRows);\n this.setState({\n selectRows: selectRows,\n selectAll: allChecked,\n selectHalf: half\n })\n if (typeof this.props.onCheck === \"function\") {\n this.props.onCheck(checked, row,this.props.jsxId);\n }\n };\n }\n checkAllCheckHalf(selectRows:Array<any>) {\n if (!this.state.selectAll && this.props.selectOnce) {\n return [false, false];\n }\n if (selectRows.length > 0 && selectRows.length !== this.state.data.length) {\n return [false, true]\n }\n if (selectRows.length === 0) {\n return [false, false]\n } else if (selectRows.length === this.state.data.length) {\n return [true, false]\n }\n return [false, false]\n }\n setRowCheck(checked:boolean,rowIdx:number) {\n let selectRows = this.props.selectOnce?[]:this.state.selectRows.slice()\n\n if (checked) {\n if (!selectRows.includes(rowIdx)) {\n selectRows.push(rowIdx);\n }\n } else {\n if (selectRows.includes(rowIdx)) {\n selectRows.splice(selectRows.indexOf(rowIdx),1);\n }\n }\n return selectRows\n }\n\n selectAll = (checked:boolean) => {\n this.select_all = checked;\n let selectRows:any[] = []\n if (checked) {\n this.state.data.forEach((item,key)=>{\n selectRows.push(key)\n })\n }\n this.setState({\n selectRows: selectRows,\n selectAll: checked,\n selectHalf: false\n },()=>{\n if (typeof this.props.onCheckAll === 'function') {\n this.props.onCheckAll(this.state.selectAll,this.state.data,this.props.jsxId)\n }\n })\n };\n\n clickHandler(row:any, i:number) {\n return () => {\n if (typeof this.props.onClick === 'function') {\n this.props.onClick(row, i,this.props.jsxId);\n }\n if (this.props.select && this.props.rowCheck) {\n let row:CCheckbox = this.refs['row_'+i] as CCheckbox;\n row.changeHandler(null)\n // this.setRowCheck(!row.getChecked(),i);\n // this.checkAllCheckHalf();\n }\n if (this.props.focus) {\n this.setState({\n focus:i === this.state.focus?-1:i\n })\n }\n }\n }\n\n /**\n * sort\n */\n sortHandler = (e:any) => {\n let dom = e.currentTarget;\n let sort_type = dom.dataset.sort || 'asc';\n this.changeSort(dom, sort_type)\n };\n\n changeSort(dom:HTMLElement, sort_type:string) {\n if (!dom) {\n return\n }\n if (!dom.dataset.field) {\n return\n }\n this.clearSort(false);\n this.current_sort = dom.dataset.field;\n dom.dataset.sort = sort_type === 'asc' ? 'desc' : 'asc';\n dom.classList.remove('ck-ctable-sort');\n this.sortList[dom.dataset.field] = sort_type;\n let child = dom.querySelector('i');\n if (!child) {\n return\n }\n child.classList.remove('fa-sort', 'fa-sort-alpha-up', 'fa-sort-alpha-down');\n child.classList.add('fa-sort-alpha-' + (sort_type === 'asc' ? 'down' : 'up'));\n if (typeof this.props.onSort === 'function') {\n this.props.onSort(dom.dataset.field, sort_type, this.props.jsxId);\n } else {\n // this.localSort(dom.dataset.field,sort_type)\n }\n }\n\n clearSort(emitEvt:any) {\n if (this.current_sort) {\n let prv = document.querySelector(`#${this.domId}-sort-${this.current_sort}`) as HTMLElement;\n if (!prv) return\n prv.dataset.sort = 'asc';\n prv.classList.add('ck-ctable-sort');\n let prv_child = prv.querySelector('i');\n if (!prv_child) return\n prv_child.classList.remove('fa-sort', 'fa-sort-alpha-up', 'fa-sort-alpha-down');\n prv_child.classList.add('fa-sort');\n this.sortList[this.current_sort] = null;\n this.current_sort = null;\n if (emitEvt && typeof this.props.onSort === 'function') {\n this.props.onSort('','clear');\n } else {\n if (this.props.edit) {\n this.setState({data:this.originalData.slice(0)})\n }\n }\n return true;\n }\n return false;\n }\n\n localSort(field:string, sort_type:string) {\n let desc = sort_type === 'desc';\n let data = this.state.data.slice(0);\n data.sort((a:any, b:any):number => {\n if (a[field] > b[field]) return desc ? -1 : 1;\n if (a[field] < b[field]) return desc ? 1 : -1;\n if (a[field] === b[field]) return 0;\n return 0\n });\n this.setState({data: data});\n }\n\n /**\n * scroll header and total foot\n * @param e\n */\n scrollHandler = (e:any) => {\n this.tableHeader.style.transform = `translateX(-${e.currentTarget.scrollLeft}px)`;\n // this.tableHeader.scrollLeft = e.currentTarget.scrollLeft;\n if (this.tableTotal) {\n // this.tableTotal.scrollLeft = e.currentTarget.scrollLeft;\n this.tableTotal.style.transform = `translateX(-${e.currentTarget.scrollLeft}px)`;\n }\n };\n /**\n * show menu list\n * @param dataType\n */\n menuContextHandler(dataType:string) {\n return (e:any) => {\n e.preventDefault();\n e.stopPropagation();\n let data = {\n field: e.currentTarget.dataset.field || '',\n data : this.state.data[e.currentTarget.dataset.row],\n index: e.currentTarget.dataset.row\n };\n if (dataType === \"text\") {\n this.mainMenu.show({evt: e, type: 'mouse', data: data});\n } else {\n this.numMenu.show({evt: e, type: 'mouse', data: data});\n }\n }\n }\n\n menuClickHandler = (field:string, data:any) => {\n switch (field) {\n case \"asc\":\n this.changeSort(document.querySelector(`#${this.domId}-sort-${data.field}`) as HTMLElement, 'asc');\n break;\n case \"desc\":\n this.changeSort(document.querySelector(`#${this.domId}-sort-${data.field}`) as HTMLElement, 'desc');\n break;\n case \"delete_row\":\n this.deleteRowHandler(parseInt(this.mainMenu.data.index));\n break;\n case \"clone_row\":\n this.cloneRow(parseInt(this.mainMenu.data.index));\n break;\n }\n };\n\n /**\n * filter\n * */\n localFilter(text:string, field:string, type:string) {\n let reg;\n switch (type) {\n case \"start\":\n reg = new RegExp(`^${text}`);\n break;\n case \"end\":\n reg = new RegExp(`${text}$`);\n break;\n default:\n reg = new RegExp(`${text}`);\n }\n let data = this.state.data.slice(0);\n let filter:any[] = [];\n data.forEach((item)=>{\n if (type === 'exclude') {\n if (!reg.test(item[field])) {\n filter.push(item);\n }\n } else {\n if (reg.test(item[field])) {\n filter.push(item);\n }\n }\n });\n this.setState({data:filter});\n }\n\n filterHandler(text:string, field:string, type:string) {\n this.filter_list.push({\n text:text,\n field:field,\n type:type\n });\n\n this.setState({\n filter: {\n start : '',\n end : '',\n contain: '',\n condition: '',\n }\n });\n this.mainMenu.hide(undefined);\n this.numMenu.hide(undefined);\n if (typeof this.props.onFilter === 'function') {\n this.props.onFilter(text, field, type,this.props.jsxId);\n } else {\n this.localFilter(text,field,type);\n }\n }\n\n clearFilter() {\n this.filter_list = [];\n let is_clean = this.clearSort(true);\n Common.map(this.filter,(item:Input)=>{\n item.setValue('')\n })\n this.setState({\n filter: {\n start : '',\n end : '',\n contain: '',\n equal :'',\n }\n });\n if (typeof this.props.onFilter === 'function') {\n this.props.onFilter('', '', 'clear');\n } else {\n if (!is_clean) {\n this.setState({data:this.originalData.slice(0)});\n }\n }\n }\n\n filterChangeHandler(field:string) {\n return (val:any) => {\n let filter = {...this.state.filter};\n filter[field] = val;\n this.setState({\n filter: filter\n })\n }\n }\n\n selectPageHandler = (page:number) => {\n if (typeof this.props.onSelectPage === 'function') {\n this.props.onSelectPage(page,this.props.jsxId);\n }\n };\n\n /**\n * edit mode\n */\n addNewHandler = (e:any) => {\n let data = this.state.data.slice(0);\n data.push(Object.assign({}, this.cacheRow));\n this.editRows.push(data.length - 1);\n this.setState({\n data: data,\n dataCount: data.length,\n }, () => {\n document.querySelector<HTMLElement>(`#${this.domId}-edit`)?.previousElementSibling?.querySelector<HTMLInputElement>('input:not([disabled])')?.focus()\n })\n };\n //编辑事件\n editHandler = (e:any, val:any ,row:any) => {\n const dataset = row === 'chk'?e.currentTarget.dataset:e.target.dataset\n let index = parseInt(dataset.row);\n let field = dataset.field;\n //如果是check组件\n if (row === 'chk') {\n val = val?1:0;\n }\n if (this.editRows.indexOf(index) === -1) {\n this.editRows.push(index);\n let data = this.state.data.slice(0);\n data[index][field] = val;\n this.setState({data: data})\n } else {\n this.state.data[index][field] = val;\n }\n if (this.headers[field] && typeof(this.headers[field].onEdit) === 'function') {\n this.headers[field].onEdit(index,val,row,this.editCallback)\n }\n };\n //自定义 onEdit 事件回调函数\n editCallback = (index:number,editData:any) => {\n if (this.state.data[index]) {\n let data = this.state.data.slice(0);\n data[index] = Object.assign(data[index],editData);\n this.setState({data: data});\n }\n };\n\n getEditRows() {\n let list = [];\n for (let row of this.editRows) {\n list.push(this.state.data[row]);\n }\n return list;\n }\n\n clearEditRows() {\n this.editRows = [];\n }\n //edit mode reset\n reset() {\n this.editRows = [];\n this.originalData = [];\n this.setState({data:[]})\n }\n\n deleteRowHandler(row_index:number) {\n if (this.props.disabled) return\n if (row_index < 0 || row_index >= this.state.data.length) {\n return\n }\n if (typeof this.props.onDelete === 'function') {\n this.props.onDelete(this.state.data[row_index], row_index,this.deleteRow,this.props.jsxId);\n } else {\n this.deleteRow(row_index)\n }\n }\n\n deleteRow(row_index:number) {\n if (row_index < 0 || row_index >= this.state.data.length) {\n return\n }\n let data = this.state.data.slice(0);\n data.splice(row_index, 1);\n if (this.editRows.indexOf(row_index) !== -1) {\n this.editRows.splice(this.editRows.indexOf(row_index), 1);\n }\n this.editRows.forEach((item, index) => {\n if (item > row_index) {\n this.editRows[index] = item - 1;\n }\n });\n\n this.setState({\n data: data,\n dataCount: data.length,\n });\n }\n\n cloneRow(row_index:number) {\n if (this.props.disabled) return\n if (row_index < 0 || row_index >= this.state.data.length) {\n return\n }\n let data = this.state.data.slice(0);\n data.push(Object.assign({}, this.state.data[row_index],this.noClone));\n this.editRows.push(data.length - 1);\n this.setState({\n data: data,\n dataCount: data.length,\n })\n }\n //全屏查看\n fullHandler = ()=>{\n if (this.isFull) {\n this.mainDom.classList.remove('ck-ctable-full')\n this.fullButton.querySelector('i')?.classList.remove(\"fa-compress\")\n this.fullButton.querySelector('i')?.classList.add(\"fa-expand\")\n this.fullButton2.classList.add('d-none')\n this.mainDom.querySelector('.ck-ctable-body')?.classList.remove('full-border-up')\n this.mainDom.querySelector('.ck-ctable-foot')?.classList.remove('full-border-bottom')\n } else {\n this.mainDom.classList.add('ck-ctable-full')\n this.fullButton.querySelector('i')?.classList.add(\"fa-compress\")\n this.fullButton.querySelector('i')?.classList.remove(\"fa-expand\")\n this.fullButton2.classList.remove('d-none')\n this.mainDom.querySelector('.ck-ctable-body')?.classList.add('full-border-up')\n this.mainDom.querySelector('.ck-ctable-foot')?.classList.add('full-border-bottom')\n }\n this.isFull = !this.isFull\n }\n\n //****************************\n\n /**\n * 得到所有选中的行\n */\n getSelectRows() {\n return this.state.selectRows.map((item)=>{\n return this.state.data[item];\n });\n }\n\n /**\n * 设置选中的行\n */\n setSelectRows(key:string, list:any[]) {\n let selectRows:any[] = []\n this.state.data.forEach((row, i) => {\n if (list.includes(row[key])) {\n selectRows.push(i)\n }\n });\n let selectAll = selectRows.length > 1 && selectRows.length === this.state.data.length\n this.setState({\n selectRows: selectRows,\n selectHalf: !selectAll,\n selectAll: selectAll\n })\n }\n\n /**\n * binding column split\n */\n bindSplit() {\n if (this.props.move) {\n this.headerSplits.forEach((split:any) => {\n if (!this.drag) {\n this.dragColumnLeft = 0;\n this.dragWidth = 0;\n this.drag = new Drag(this.split, split, {\n start: (dragDom, eventDom) => {\n let xy = Common.GetDomXY(eventDom, this.mainDom);\n this.dragWidth = parseInt((eventDom?.parentNode as HTMLElement).style.width);\n this.dragColumnLeft = (xy.left - this.table_rows.scrollLeft);\n dragDom.style.left = this.dragColumnLeft + 'px';\n dragDom.classList.remove('d-none');\n return true;\n },\n move : (move, dragDom, eventDom) => {\n if (this.dragWidth + (move.x - this.dragColumnLeft) < 50) {\n move.x = this.dragColumnLeft - this.dragWidth + 50;\n }\n },\n end : (dragDom, eventDom) => {\n dragDom.classList.add('d-none');\n let column_key = eventDom.dataset.key;\n let diff = parseInt(dragDom.style.left) - this.dragColumnLeft;\n this.width = (parseInt(this.width) + diff) + 'px';\n this.table_head.style.width = this.width;\n this.table_body.style.width = this.width;\n if (this.table_total) {\n this.table_total.style.width = this.width;\n }\n document.querySelectorAll(`#${column_key}`).forEach((item:any) => {\n item.style.width = `${this.dragWidth + diff}px`;\n });\n return true;\n }\n });\n } else {\n this.drag.setEventDom(split);\n }\n });\n }\n }\n\n getClasses(name?:string) {\n let base = 'table ck-table';\n if (!!name) {\n base = classNames(base, name);\n }\n //striped\n if (this.props.striped && !this.props.edit) {\n base = classNames(base, 'table-striped');\n }\n //theme\n if (this.props.theme) {\n base = classNames(base, 'table-' + this.props.theme);\n }\n //bordered\n if (this.props.bordered) {\n base = classNames(base, 'table-bordered');\n }\n //hover\n if (this.props.hover) {\n base = classNames(base, 'table-hover');\n }\n //sm\n if (this.props.sm) {\n base = classNames(base, 'table-sm');\n }\n if (this.props.fontSm) {\n base = classNames(base, 'table-font-sm');\n }\n //responsive\n if (this.props.responsive) {\n base = classNames(base, 'table-responsive');\n }\n //nowrap\n if (this.props.noWrap) {\n base = classNames(base, 'ck-ctable-nowrap');\n }\n return base;\n }\n\n getMainClasses() {\n let base = 'ck-ctable-main d-flex flex-column';\n if (this.props.bordered) {\n base = classNames(base, 'border');\n }\n return classNames(base, this.props.className);\n }\n\n getStyles() {\n //default style\n let base:any = {};\n //width\n if (this.props.width) {\n base.width = this.props.width;\n }\n //height\n if (this.props.height) {\n base.height = this.props.height;\n }\n\n if (this.props.absolute) {\n base.position = 'absolute';\n base.top = this.props.y;\n base.left = this.props.x;\n if (typeof this.props.position === 'object') {\n base.top = this.props.position.top || this.props.y;\n base.left = this.props.position.left || this.props.x;\n base.right = this.props.position.right || 'unset';\n base.bottom = this.props.position.bottom || 'unset';\n if (this.props.position.left && this.props.position.right) {\n base.width = 'unset';\n }\n if (this.props.position.top && this.props.position.bottom) {\n base.height = 'unset';\n }\n }\n }\n\n return Common.extend(base, this.props.style)\n }\n\n getHeaderClasses() {\n let base = 'ck-ctable-header';\n if (this.props.headerTheme) {\n base = classNames(base,'table-' + this.props.headerTheme);\n }\n return classNames(base, this.props.headClass);\n }\n\n getTableStyles(style?:any) {\n let base:any = {};\n\n if (this.width) {\n base.width = this.width;\n }\n\n if (style) {\n base = Object.assign({},base,style);\n }\n\n return base;\n }\n\n getBodyClasses() {\n let base = 'ck-ctable-body flex-grow-1 d-flex flex-column';\n\n return base;\n }\n\n calcLocalTotal(field:string) {\n return (e:any)=>{\n let list = this.state.data;\n let total = 0;\n list.forEach((item)=>{\n if (!!parseFloat(item[field])) {\n total += parseFloat(item[field])\n }\n })\n let totalData = Object.assign({},this.state.total);\n totalData[field] = total.toFixed(2)\n this.setState({\n total:totalData\n })\n }\n }\n\n render() {\n return (\n <div ref={(c:any) => this.mainDom = c} className={this.getMainClasses()} style={this.getStyles()}>\n <div ref={(c:any) => this.conDom = c} className={this.getBodyClasses()}>\n {this.renderHeader()}\n {this.renderRows()}\n {this.renderTotal()}\n {<Scroll selector={`#table-body-com-${this.domId}`}/>}\n {<HScroll selector={`#table-body-com-${this.domId}`}/>}\n </div>\n {this.renderFoot()}\n <div ref={(c:any) => this.split = c} className='ck-split d-none'/>\n </div>\n );\n }\n\n renderHeader() {\n return (\n <div ref={(c:any) => this.tableHeader = c}>\n <table ref={(c:any) => this.table_head = c} id={`table-head-${this.domId}`} className={this.getClasses('')} style={this.getTableStyles(null)}>\n <thead className={this.getHeaderClasses()}>\n <tr>\n {this.state.select || this.props.edit ?\n <th style={{width:'20px',textAlign:'center'}}>\n {this.props.edit || this.props.selectOnce ? <Icon icon='list'/> :\n <CCheckbox ref={(c:any) => this.allchk=c} onChange={this.selectAll} checked={this.state.selectAll} half={this.state.selectHalf}/>}\n </th> : null}\n {this.props.edit && !this.props.nodel?<th style={{width:'20px',textAlign:'center'}}/>:null}\n {React.Children.map(this.props.children, (item, key) => {\n this.cacheRow[item.props.field] = item.props?.def ?? '';\n if (!item || item.props.hide) {\n return null;\n }\n // let align = item.props.align || this.props.align;\n let style:any = {\n 'textAlign': 'center'\n };\n if (item.props.width) {\n style.width = item.props.width;\n }\n let sort_icon = '';\n if (this.sortList[item.props.field]) {\n sort_icon = 'sort-alpha-' + (this.sortList[item.props.field] === 'asc' ? 'down' : 'up');\n }\n return (\n <th onContextMenu={this.menuContextHandler('')} id={this.domId + '-' + key} data-key={'head_' + key} style={style}>\n {this.is_sort ?\n <a className='ck-ctable-sort' href='javascript://' id={`${this.domId}-sort-${item.props.field}`}\n data-field={item.props.field}\n onClick={this.sortHandler}>\n {item.props.text}{'\\u0020'}\n <Icon icon={sort_icon}/></a> : item.props.text}\n {this.props.move ?\n <span ref={c => this.headerSplits.push(c)} data-key={this.domId + '-' + key} className='ck-column-split'/> : null}\n </th>\n );\n })}\n </tr>\n </thead>\n </table>\n </div>\n )\n }\n\n renderRows() {\n return (\n <div ref={(c:any) => this.table_rows = c} id={`table-body-com-${this.domId}`} className='flex-grow-1 rows' onScroll={this.scrollHandler}>\n <table ref={(c:any) => this.table_body = c} id={`table-body-${this.domId}`} className={this.getClasses()} style={this.getTableStyles()}>\n <tbody>\n {this.state.data.map((row:any, i:number) => {\n if (this.props.edit) {\n return this.renderEditRow(row, i)\n }\n return this.renderRow(row, i,null);\n })}\n {this.props.edit && this.props.newBar ? this.renderEditAddRow() : null}\n </tbody>\n </table>\n {this.props.menu ? this.renderMenu() : null}\n {this.props.menu ? this.renderNumberMenu() : null}\n </div>\n )\n }\n\n renderRow(row:any, i:number, parentRow?:any) {\n let checked = this.state.selectRows.indexOf(i) !== -1\n let focus = (i === this.state.focus && this.props.focus)\n let rowClass = focus ? 'ck-table-focus' : checked ? 'ck-table-selected' : undefined \n return (\n <>\n <tr className={rowClass} onClick={this.clickHandler(row, i)}>\n {this.state.select ?\n <th style={{width:'20px',textAlign:'center'}}>\n <CCheckbox ref={'row_' + i} onChange={this.changeHandler(row, i)} checked={checked}/>\n </th> : null}\n {React.Children.map(this.props.children, (item, key) => {\n if (!item || item.props.hide) {\n return null;\n }\n //set style\n let style = {...this.props.columnStyle};\n\n style.textAlign = item.props.align || this.props.align;\n if (item.props.width) {\n style.width = item.props.width;\n }\n //set color\n if (item.props.color) {\n style.color = item.props.color;\n }\n if (item.props.bgColor) {\n style.backgroundColor = item.props.bgColor;\n }\n\n let dataType;\n switch (item.props.dataType) {\n case \"number\":\n dataType = \"number\";\n break;\n case \"date\":\n dataType = \"date\";\n break;\n default:\n dataType = \"text\";\n }\n\n if (item.props.children) {\n return (\n <td onContextMenu={this.menuContextHandler(dataType)} id={this.domId + '-' + key} data-row={`${i}`} data-field={item.props.field}\n className={item.props.className}\n key={'col_' + key}>{React.cloneElement(item, {\n text : item.props.text,\n row : row,\n value: row[item.props.field]\n })}</td>\n );\n } else {\n if (item.props.type) {\n item.props.disabled=true;\n }\n return <td onContextMenu={this.menuContextHandler(dataType)} id={this.domId + '-' + key}\n data-field={item.props.field}\n style={style}\n onClick={(e) => {\n if (typeof item.props.onClick === 'function') {\n item.props.onClick(row);\n }\n }}\n onDoubleClick={(e) => {\n if (typeof item.props.onDoubleClick === 'function') {\n item.props.onDoubleClick(row);\n }\n }}\n data-row={`${i}`}>\n {item.props.type ? this.renderEditComponent(item.props,row,i):(item.props.onFormat ? item.props.onFormat(row[item.props.field], row, item.props.field) : row[item.props.field])}\n </td>;\n }\n })}\n </tr>\n </>\n );\n }\n\n renderEditRow(row:any, i:number) {\n return (\n <>\n <tr className={this.props.onClick ? 'click-row' : undefined} onClick={this.clickHandler(row, i)}>\n <th style={{width:'20px',textAlign:'center'}}>\n {this.editRows.indexOf(i) === -1 ? null :\n <Icon id={`${this.domId}-edit-row-icon-${i}`} icon='edit' className={this.props.disabled?'text-secondary':'text-success'}/>}\n </th>\n {!this.props.nodel?<th style={{width:'20px',textAlign:'center',cursor:'pointer'}}>\n <Icon icon='trash' className={this.props.disabled?'text-secondary':'text-danger'} text=\"delete\" onClick={()=>{\n this.deleteRowHandler(i);\n }}/>\n </th>:null}\n {React.Children.map(this.props.children, (item, key) => {\n if (!item || item.props.hide) {\n return null;\n }\n //set style\n let style = {...this.props.columnStyle};\n\n style.textAlign = item.props.align || this.props.align;\n if (item.props.width) {\n style.width = item.props.width;\n }\n let dataType = 'text';\n return (\n <td onContextMenu={this.menuContextHandler(dataType)}\n className={item.props.disabled ? 'disabled' : ''} id={this.domId + '-' + key}\n data-field={item.props.field}\n style={style}\n onClick={(e) => {\n if (typeof item.props.onClick === 'function') {\n item.props.onClick(row);\n }\n }}\n onDoubleClick={(e) => {\n if (typeof item.props.onDoubleClick === 'function') {\n item.props.onDoubleClick(row);\n }\n }}\n data-row={`${i}`}>\n {item.props.disabled?\n (item.props.onFormat ? item.props.onFormat(row[item.props.field], row, item.props.field) : row[item.props.field]):\n this.renderEditComponent(item.props, row, i)}\n </td>\n );\n })}\n </tr>\n </>\n );\n }\n\n renderEditAddRow() {\n if (this.props.disabled) {\n return null;\n }\n return (\n <tr id={this.domId + '-edit'}>\n <th style={{width:'20px',textAlign:'center'}}><Icon icon='chevron-circle-right'/></th>\n {!this.props.nodel?<th style={{width:'20px',textAlign:'center'}}/>:null}\n {React.Children.map(this.props.children, (item, key) => {\n if (!item || item.props.hide) {\n return null;\n }\n let style = {\n width: item.props.width\n };\n return (\n <td style={style} id={this.domId + '-' + key}>\n <CTableInput onFocus={this.addNewHandler}/>\n </td>\n );\n })}\n </tr>\n )\n }\n\n renderEditComponent(item:any, row:any, i:number) {\n switch (item.type) {\n case \"combo\":\n return (\n <CTableInput onChange={this.editHandler} data-row={i}\n data-field={item.field} data={row[item.field]}\n align={item.align} disabled={item.disabled??this.props.disabled}\n combo={item.combo} comboData={item.comboData}/>\n );\n case \"calendar\":\n return (\n <CTableInput onChange={this.editHandler} data-row={i}\n data-field={item.field} data={row[item.field]}\n align={item.align} disabled={item.disabled??this.props.disabled}\n calendarFormat={item.calendarFormat} calendar/>\n );\n case \"checkbox\":\n return (\n <CCheckbox className='d-inline' width='20px' onChange={(chk,e)=>{this.editHandler(e,chk,'chk')}} data-row={i}\n data-field={item.field} checked={!!row[item.field]} disabled={item.disabled??this.props.disabled} tabIndex=\"0\"/>\n )\n case \"textarea\":\n return (\n <CTableTextArea onChange={this.editHandler} data-row={i}\n data-field={item.field} data={row[item.field]}\n disabled={item.disabled??this.props.disabled}/>\n )\n default:\n return (\n <CTableInput onChange={this.editHandler} data-row={i} data-field={item.field} number={item.dataType==='number'}\n data={row[item.field]} align={item.align} disabled={item.disabled??this.props.disabled}\n onBlur={this.state.total&&this.state.total.hasOwnProperty(item.field)?this.calcLocalTotal(item.field):undefined}\n />\n )\n }\n }\n\n renderFoot() {\n if (!this.props.foot) {\n return null;\n }\n return (\n <div className='ck-ctable-foot d-flex align-items-center'>\n <PageBar page={this.state.page} dataCount={this.state.dataCount}\n onSelect={this.selectPageHandler}\n showNumbers={this.props.showNumbers??0}\n showPages={this.props.showPages??0} noPage={this.props.edit??false}/>\n <div ref={(c:any)=>{this.fullButton = c}} className='full-btn align-self-center ms-auto pe-2 text-primary' onClick={()=>{\n this.fullHandler()\n }}><Icon icon='expand'/></div>\n <div ref={(c:any)=>{this.fullButton2 = c}} className='right-full-btn d-none' onClick={()=>{\n this.fullHandler()\n }}><Icon icon='times'/></div>\n </div>\n )\n }\n\n renderTotal() {\n if (!this.state.total) {\n return null;\n }\n let total = this.state.total;\n return (\n <div ref={(c:any) => this.tableTotal = c} className='ck-ctable-total'>\n <table ref={(c:any) => this.table_total = c} id={`table-total-${this.domId}`} className={this.getClasses()} style={this.getTableStyles()}>\n <tbody>\n <tr>\n {this.state.select || this.props.edit ?\n <td width='20px'><Icon icon='chart-line'/></td> : null}\n {!this.props.nodel&&this.props.edit?<td style={{width:'20px',textAlign:'center'}}/>:null}\n {React.Children.map(this.props.children, (item, key) => {\n if (!item || item.props.hide) {\n return null;\n }\n let align = item.props.align || this.props.align;\n let style:any = {\n 'textAlign': align\n };\n if (item.props.width) {\n style.width = item.props.width;\n }\n return (\n <td id={this.domId + '-' + key} data-field={item.props.field} style={style}>\n {item.props.onFormat ? item.props.onFormat(total[item.props.field], total, item.props.field) : total[item.props.field]}\n </td>\n );\n })}\n </tr>\n </tbody>\n </table>\n </div>\n )\n }\n\n renderMenu() {\n let lang;\n if (!this.props.lang) {\n let i18 = i18n.getLang();\n let langStr = typeof lang === 'string'?lang:i18.short;\n lang = CTableLang[langStr];\n } else {\n if (typeof this.props.lang === 'string') {\n lang = CTableLang[this.props.lang]\n } else {\n lang = this.props.lang\n }\n }\n return <>\n <Menu ref={(c:any) => this.mainMenu = c} onClick={this.menuClickHandler}>\n <Menu.Item field=\"copy\" onClick={() => {\n document.execCommand(\"copy\");\n }}><Icon className='me-1' icon='copy'/>{lang['Copy']}</Menu.Item>\n {this.is_filter?<Menu.Item field='' step/>:null}\n {this.is_filter?<Menu.Item field='select_filter' onClick={(e, field, data) => {\n let select = document.getSelection();\n if (!select) return\n this.filterHandler(select.toString(), data.field, 'contain');\n }}><Icon className='me-1' icon='filter'/>{lang['Filter By Selection']}</Menu.Item>:null}\n {this.is_filter?<Menu.Item field='select_exclude' onClick={(e, field, data) => {\n let select = document.getSelection();\n if (!select) return\n this.filterHandler(select.toString(), data.field, 'exclude');\n }}><Icon className='me-1' icon='filter'/>{lang['Filter Excluding Selection']}</Menu.Item>:null}\n {this.is_filter||this.is_sort?<Menu.Item field='clear_filter' onClick={() => {\n this.clearFilter();\n }}><span className='text-danger'><Icon className='me-1' icon='brush'/>{lang['Clear Filter / Sort']}</span></Menu.Item>:null}\n {this.is_filter?<Menu.Item field='' step/>:null}\n {this.is_filter?<Menu.Item field=\"equal\">\n {this.state.filter.equal}\n <span className='me-1' style={inputStyle}>{lang['Equal With']}</span>\n <Input ref={(c:Input)=>this.filter.equal=c} className='me-1' size='xs' width='120px'\n data={this.state.filter.equal}\n onChange={this.filterChangeHandler('equal')}\n onMouseDown={stopEvent}\n onEnter={() => {\n this.filterHandler(this.state.filter.equal, this.mainMenu.data.field, 'equal');\n }}\n />\n <Button size='xs' onMouseDown={stopEvent} onClick={(e) => {\n this.filterHandler(this.state.filter.equal, this.mainMenu.data.field, 'equal');\n }} icon='search'/>\n </Menu.Item>:null}\n {this.is_filter?<Menu.Item field=\"filter\">\n <span className='me-1' style={inputStyle}>{lang['Start With']}</span>\n <Input ref={(c:Input)=>this.filter.start=c} className='me-1' size='xs' width='120px'\n data={this.state.filter.start}\n onChange={this.filterChangeHandler('start')}\n onMouseDown={stopEvent}\n onEnter={() => {\n this.filterHandler(this.state.filter.start, this.mainMenu.data.field, 'start');\n }}\n />\n <Button size='xs' onMouseDown={stopEvent} onClick={(e) => {\n this.filterHandler(this.state.filter.start, this.mainMenu.data.field, 'start');\n }} icon='search'/>\n </Menu.Item>:null}\n {this.is_filter?<Menu.Item field=\"filter\">\n <span className='me-1' style={inputStyle}>{lang['End With']}</span>\n <Input ref={(c:Input)=>this.filter.end=c} className='me-1' size='xs' width='120px'\n data={this.state.filter.end}\n onChange={this.filterChangeHandler('end')}\n onMouseDown={stopEvent}\n onEnter={() => {\n this.filterHandler(this.state.filter.end, this.mainMenu.data.field, 'end');\n }}\n />\n <Button size='xs' onMouseDown={stopEvent} onClick={(e) => {\n this.filterHandler(this.state.filter.end, this.mainMenu.data.field, 'end');\n }} icon='search'/>\n </Menu.Item>:null}\n {this.is_filter?<Menu.Item field=\"filter\">\n <span className='me-1' style={inputStyle}>{lang['Contain with']}</span>\n <Input ref={(c:Input)=>this.filter.contain=c} className='me-1' size='xs' width='120px'\n data={this.state.filter.contain}\n onChange={this.filterChangeHandler('contain')}\n onMouseDown={stopEvent}\n onEnter={() => {\n this.filterHandler(this.state.filter.contain, this.mainMenu.data.field, 'contain');\n }}\n />\n <Button size='xs' onMouseDown={stopEvent} onClick={(e) => {\n this.filterHandler(this.state.filter.contain, this.mainMenu.data.field, 'contain');\n }} icon='search'/>\n </Menu.Item>:null}\n {this.is_filter? <Menu.Item field='' step/> : null}\n {this.is_filter?<Menu.Item field=\"filter\" className='flex-column'>\n <div className='w-100'>{lang['Condition Filter']}</div>\n <Input size='xs' width='100%'\n data={this.state.filter.condition}\n onChange={this.filterChangeHandler('condition')}\n onMouseDown={stopEvent}\n onEnter={() => {\n this.filterHandler(this.state.filter.condition, this.mainMenu.data.field, 'condition');\n }}\n />\n </Menu.Item>:null}\n {this.props.edit && (!this.props.nodel || this.props.newBar) ? <Menu.Item field='' step/> : null}\n {this.props.edit && !this.props.nodel ? <Menu.Item field=\"delete_row\">{lang['Delete Row']}</Menu.Item> : null}\n {this.props.edit && this.props.newBar ? <Menu.Item field=\"clone_row\">{lang['Clone Row']}</Menu.Item> : null}\n {this.props.customMenu?<Menu.Item field='' step/>:null}\n {this.props.customMenu?this.props.customMenu.map((menu:any)=>{\n return this.explainCustomMenu(menu)\n }):null}\n </Menu>\n </>\n }\n // MARK:-生成数字菜单\n renderNumberMenu() {\n let lang;\n if (!this.props.lang) {\n let i18 = i18n.getLang();\n let langStr = typeof lang === 'string'?lang:i18.short;\n lang = CTableLang[langStr];\n } else {\n if (typeof this.props.lang === 'string') {\n lang = CTableLang[this.props.lang]\n } else {\n lang = this.props.lang\n }\n }\n \n \n return <>\n <Menu ref={(c:any) => this.numMenu = c} onClick={this.menuClickHandler}>\n <Menu.Item field=\"copy\" onClick={() => {\n document.execCommand(\"copy\");\n }}><Icon className='me-1' icon='copy'/>{lang['Copy']}</Menu.Item>\n {this.is_filter?<Menu.Item field='' step/>:null}\n {this.is_filter?<Menu.Item field='select_filter' onClick={(e, field, data) => {\n let select = document.getSelection();\n if (!select) return\n this.filterHandler(select.toString(), data.field, 'contain');\n }}><Icon className='me-1' icon='filter'/>{lang['Filter By Selection']}</Menu.Item>:null}\n {this.is_filter?<Menu.Item field='select_exclude' onClick={(e, field, data) => {\n let select = document.getSelection();\n if (!select) return\n this.filterHandler(select.toString(), data.field, 'exclude');\n }}><Icon className='me-1' icon='filter'/>{lang['Filter Excluding Selection']}</Menu.Item>:null}\n {this.is_filter||this.is_sort?<Menu.Item field='clear_filter' onClick={() => {\n this.clearFilter();\n }}><span className='text-danger'><Icon className='me-1' icon='brush'/>{lang['Clear Filter / Sort']}</span></Menu.Item>:null}\n {this.is_filter?<Menu.Item field='' step/>:null}\n {this.is_filter?<Menu.Item field=\"filter\" className='flex-column'>\n <div className='w-100'>{lang['Condition Filter']}</div>\n <Input size='xs' width='100%'\n data={this.state.filter.condition}\n onChange={this.filterChangeHandler('condition')}\n onMouseDown={stopEvent}\n onEnter={() => {\n let reg = /(>=|<=|<|>|=|!=)+\\s*(\\d+)/i\n let m = String(this.state.filter.condition).match(reg)\n if (m) {\n this.filterHandler(m[2], this.numMenu.data.field, numberCondition[m[1]]); \n } else {\n this.filterHandler(this.state.filter.condition, this.numMenu.data.field, 'condition'); \n }\n }}\n />\n <div>and,or,between,>,>=,<,<=,=</div>\n </Menu.Item>:null}\n </Menu>\n </>\n }\n\n explainCustomMenu(menu:any) {\n if (menu.children && menu.children instanceof Array) {\n return <Menu.Item field={menu.field} text={menu.text} child>{menu.children.map((item:any)=>{\n return this.explainCustomMenu(item)\n })}</Menu.Item>\n } else {\n return <Menu.Item field={menu.field} onClick={menu.click}>{menu.text}</Menu.Item>\n }\n }\n}\n\nconst inputStyle = {width: '80px'};\nconst stopEvent = function (e:any) {\n e.stopPropagation();\n};\n\nexport default CTable;"],"file":"CTable.js"}
|
|
5
|
+
{"version":3,"sources":["CTable.tsx"],"names":["numberCondition","CTable","props","a","b","Date","getTime","prototype","keys","Object","length","every","k","equals","checked","select_all","selectRows","state","data","forEach","item","key","push","setState","selectAll","selectHalf","onCheckAll","jsxId","e","dom","currentTarget","sort_type","dataset","sort","changeSort","tableHeader","style","transform","scrollLeft","tableTotal","field","document","querySelector","domId","deleteRowHandler","parseInt","mainMenu","index","cloneRow","page","onSelectPage","slice","assign","cacheRow","editRows","dataCount","previousElementSibling","focus","val","row","target","indexOf","headers","onEdit","editCallback","editData","row_index","splice","isFull","mainDom","classList","remove","fullButton","add","fullButton2","select","total","filter","start","end","contain","originalData","Common","RandomString","headerSplits","sortList","is_sort","onSort","is_filter","onFilter","current_sort","filter_list","noClone","lockColumns","isLock","initTableWidth","bindSplit","prevProps","prevState","snapshot","table_head","table_body","width","list","querySelectorAll","id","td","table_total","nextProps","edit","Clone","isHalf","allchk","idx","set_chk","nextState","disabled","reg","matchs","match","unit","React","Children","map","children","sourceFunc","source","number","showNumbers","res","count","type","value","text","flag","i","setRowCheck","checkAllCheckHalf","allChecked","half","onCheck","selectOnce","rowIdx","includes","onClick","rowCheck","refs","changeHandler","clearSort","child","emitEvt","prv","prv_child","desc","dataType","preventDefault","stopPropagation","show","evt","numMenu","RegExp","test","condition","hide","undefined","localFilter","is_clean","setValue","equal","onDelete","deleteRow","move","split","drag","dragColumnLeft","dragWidth","Drag","dragDom","eventDom","xy","GetDomXY","parentNode","left","table_rows","x","column_key","diff","setEventDom","name","base","striped","theme","bordered","hover","sm","fontSm","responsive","noWrap","className","height","absolute","position","top","y","right","bottom","extend","headerTheme","headClass","parseFloat","totalData","toFixed","c","getMainClasses","getStyles","conDom","getBodyClasses","renderHeader","renderRows","renderTotal","renderFoot","getClasses","getTableStyles","getHeaderClasses","textAlign","nodel","def","sort_icon","menuContextHandler","sortHandler","scrollHandler","renderEditRow","renderRow","newBar","renderEditAddRow","menu","renderMenu","renderNumberMenu","parentRow","rowClass","clickHandler","columnStyle","align","color","bgColor","backgroundColor","cloneElement","onDoubleClick","renderEditComponent","onFormat","cursor","addNewHandler","editHandler","combo","comboData","calendarFormat","chk","hasOwnProperty","calcLocalTotal","foot","selectPageHandler","showPages","fullHandler","lang","i18","i18n","getLang","langStr","CTableLang","menuClickHandler","execCommand","getSelection","filterHandler","toString","clearFilter","inputStyle","filterChangeHandler","stopEvent","customMenu","explainCustomMenu","m","String","Array","click","Component","header","currentPage","allSelect"],"mappings":"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","sourcesContent":["/** @module react-bootstrap-v4-window/CTable */\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport {\n Icon,\n Pagination,\n Menu,\n Input,\n Button,\n Common,\n i18n,\n CCheckbox,\n Scroll,\n HScroll,\n ComponentProps\n} from '@clake/react-bootstrap4';\nimport './css/CTable.less';\nimport Drag from \"./Drag\";\nimport CTableInput from \"./CTableInput\";\nimport CTableLang from './i18n/CTable';\nimport PageBar from \"./PageBar\";\nimport CTableTextArea from './CTableTextArea';\n\nlet numberCondition:{[propName:string]:string} = {\n '=':'eq',\n '!=':'ne',\n '>':'gt',\n '>=':'gte',\n '<=':'lte',\n '<':'lt'\n};\n\ninterface Props extends ComponentProps {\n //主题 ['primary', 'secondary', 'success', 'danger', 'warning', 'info', 'light', 'dark']\n theme ?: string\n //标头主题\n headerTheme ?: string\n //标头css class\n headClass ?: string\n //数据来源\n data ?: any[]\n //数据总记录数\n dataCount ?: number\n //总页数\n page ?: number\n //第一列是否出现选择项\n select ?: boolean\n //是否只能选中一项\n selectOnce ?: boolean\n //是否显示标头\n header ?: boolean\n //\n center ?: boolean\n //数据当前页\n currentPage ?: number\n //\n striped ?: boolean\n //是否显示边框\n bordered ?: boolean\n //行是否有hover效果\n hover ?: boolean\n //是否小型化显示列表\n sm ?: boolean\n //文字最小化\n fontSm ?: boolean\n responsive ?: boolean\n //文字列表 left,center,right\n align ?: string\n //是否显示树结构\n tree ?: string\n //点击树事件\n onClickTree ?: ()=>void\n //点击事件\n onClick ?: (row:any,idx:number,id?:string)=>void\n //选择事件\n onCheck ?: (chk:boolean,row:any,id?:string)=>void\n //选择所有\n onCheckAll ?: (chk:boolean,data:any[],id?:string)=>void\n //过滤事件\n onFilter ?: (text:string, field:string, type:string, id?:string)=>void\n //排序事件\n onSort ?: (field:string,sort_type:string, id?:string)=>void\n //是否列可移动\n move ?: boolean\n //刷新事件\n onRefresh ?: ()=>void\n //刷新事件按钮文字\n refreshText ?: string\n //是否漂浮\n absolute ?: boolean\n //漂浮X坐标\n x ?: string\n //漂浮Y坐标\n y ?: string\n //表宽\n width ?: string\n //表高\n height ?: string\n //行高\n rowHeight ?: string\n // foot : PropTypes.bool,\n //是否显示列表尾\n foot ?: any\n //表自动随主体小设置\n position ?: any\n //显示的页码数\n showPages ?: number\n //显示的记录条数\n showNumbers ?: number\n //翻页事件\n onSelectPage?: (page:number,id?:string)=>void\n //是否自动换行\n noWrap ?: boolean\n //是否启用右键菜单\n menu ?: boolean\n //是否显示每列记录总合数\n total ?: any\n //是否编辑模式\n edit ?: boolean\n //是否有新增行功能\n newBar ?: boolean\n //是否可删除\n nodel ?: boolean\n //数据删除事件\n onDelete ?: (row:any,idx:number,callback:(row_index:number)=>void,id?:string)=>void\n //是否启用排序\n sort ?: boolean\n //是否启用过滤\n filter ?: boolean\n //自定义右键菜单\n customMenu ?: any\n //自定义显示语言\n lang ?: any\n source ?: string\n sourceFunc ?: (opt:any,callback:(res:any)=>void)=>void\n //是否显示全部选取\n allSelect ?: boolean\n //focus 是否显示焦点\n focus?: boolean\n //是否全行点选\n rowCheck?: boolean\n\n columnStyle?:any\n //唯一ID\n jsxId?: string\n}\n\ninterface State {\n data : any[]\n dataCount: number\n page : number\n select : boolean\n total : any\n filter : any\n selectAll: boolean //选中全部状态\n selectHalf: boolean //半选中状态\n selectRows: any[] //选中的数据列表\n focus: number //当前显示焦点\n}\n\nexport class CTable extends React.Component<Props,State> {\n static defaultProps:Props = {\n data : [],\n dataCount : 1,\n select : true,\n header : true,\n foot : true,\n currentPage: 1,\n hover : true,\n striped : true,\n align : 'left',\n sm : true,\n fontSm : true,\n headerTheme: 'primary',\n noWrap : true,\n bordered : true,\n move : true,\n menu : true,\n showNumbers: 30,\n showPages : 10,\n total : null,\n lang : 'en',\n allSelect : true,\n rowCheck : false,\n focus: true,\n newBar:true,\n nodel: false,\n }\n\n originalData: any[]\n domId:string\n select_all:boolean\n selectRows:any[]\n headerSplits:any\n sortList:any\n is_sort:boolean\n is_filter:boolean\n current_sort:any\n filter_list:any[]\n editRows:any[]\n cacheRow:any\n headers:any\n noClone:any\n lockColumns:any[]\n isLock:boolean\n filter:any\n \n width:string\n tableHeader:HTMLElement\n tableTotal:HTMLElement\n table_rows:HTMLElement\n table_head:HTMLElement\n table_body:HTMLElement\n table_total:HTMLElement\n fullButton:HTMLElement\n fullButton2:HTMLElement\n split:HTMLElement\n mainDom:HTMLElement\n conDom: HTMLElement\n mainMenu:Menu\n numMenu:Menu\n drag: Drag\n dragColumnLeft:number\n dragWidth:number\n allchk:CCheckbox\n isFull:boolean\n constructor(props:any) {\n \n super(props);\n this.state = {\n data : this.props.data || [],\n dataCount: this.props.dataCount??0,\n page : 1,\n select : this.props.select??false,\n total : this.props.total,\n filter : {\n start : '',\n end : '',\n contain: ''\n },\n selectAll: false, //选中全部状态\n selectHalf: false, //半选中状态\n selectRows: [], //选中的数据列表\n focus: -1 //当前显示焦点\n };\n\n this.originalData = this.state.data.slice(0);\n\n this.domId = 'table-' + Common.RandomString(16);\n\n this.select_all = false;\n this.selectRows = [];\n\n this.headerSplits = [];\n\n this.sortList = {};\n this.is_sort = typeof this.props.onSort === 'function' || !!this.props.sort;\n this.is_filter = typeof this.props.onFilter === 'function' || !!this.props.filter;\n this.current_sort = null;\n\n this.filter_list = [];\n this.filter = {};\n this.editRows = [];\n\n this.cacheRow = {};\n //列头数据\n this.headers = {};\n //不需要克隆列\n this.noClone = {};\n\n this.lockColumns = [];\n //lock column flag\n this.isLock = false;\n this.isFull = false;\n this.initTableWidth();\n }\n\n componentDidMount() {\n this.bindSplit();\n }\n\n componentDidUpdate(prevProps: Readonly<Props>, prevState: Readonly<State>, snapshot?: any): void {\n if (this.table_head) {\n this.table_body.style.width = this.width\n let list = this.table_head.querySelectorAll('th');\n list.forEach((item)=>{\n if (!item.id) return\n let td = this.table_body.querySelector<HTMLElement>(`#${item.id}`)\n if (td) {\n td.style.width = item.style.width\n }\n if (this.table_total) {\n let td = this.table_total.querySelector<HTMLElement>(`#${item.id}`)\n if (td) {\n td.style.width = item.style.width\n }\n }\n })\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps:Props) {\n if (this.state.data !== nextProps.data) {\n if (this.props.edit) {\n if (this.equals(this.originalData,nextProps.data)) {\n return\n }\n this.editRows = [];\n }\n this.originalData = Common.Clone(nextProps.data);\n // if (this.allchk) {\n // this.allchk.setHalf(false);\n // this.selectRows = [];\n // }\n // this.select_all = false;\n // this.selectRows = [];\n let selectRows:any[] = []\n let isHalf = false\n let allchk = false\n if (nextProps.data && nextProps.data.length > 0) {\n nextProps.data.forEach((item,idx)=>{\n if (item?.set_chk) {\n selectRows.push(idx)\n }\n })\n if (selectRows.length === nextProps.data.length) {\n allchk = true\n } else {\n if (selectRows.length>0) {\n isHalf = true\n }\n }\n }\n this.setState({\n data : nextProps.data??[],\n dataCount: nextProps.dataCount??0,\n page : nextProps.page??0,\n total : nextProps.total,\n selectRows: selectRows,\n selectHalf: isHalf,\n selectAll: allchk,\n focus: -1\n });\n }\n }\n\n shouldComponentUpdate(nextProps:Props, nextState:State) {\n if (nextState.selectRows !== this.state.selectRows) {\n return true\n }\n if (this.state.filter !== nextState.filter) {\n return true;\n }\n if (nextState.total !== this.state.total) {\n return true\n }\n if (this.props.focus && nextState.focus !== this.state.focus) {\n return true\n }\n if (this.props.disabled !== nextProps.disabled) {\n return true\n }\n return nextState.data !== this.state.data;\n }\n\n equals = (a:any, b:any):boolean => {\n if (a === b) return true;\n if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime();\n if (!a || !b || (typeof a !== 'object' && typeof b !== 'object')) return a === b;\n if (a.prototype !== b.prototype) return false;\n let keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) return false;\n return keys.every(k => this.equals(a[k], b[k]));\n }\n\n initTableWidth() {\n if (this.props.width) {\n let width = 0;\n let reg = /(\\d+)(px|rem|cm|mm|pt)$/;\n let matchs = this.props.width.match(reg);\n let unit = matchs?matchs[2]:'px';\n React.Children.map(this.props.children, (item, key) => {\n if (item.props.width) {\n let matchs = item.props.width.match(reg);\n width += parseInt(matchs[1]);\n this.headers[item.props.field] = item.props;\n if (item.props.noClone) {\n this.noClone[item.props.field] = \"\";\n }\n }\n });\n if (this.props.select) {\n width += 20;\n }\n this.width = width + unit;\n }\n }\n\n //inner source ********************\n sourceLoad() {\n if (typeof this.props.sourceFunc !== 'function') return;\n\n this.props.sourceFunc({\n source:this.props.source,\n page:this.state.page,\n number:this.props.showNumbers,\n },(res)=>{\n this.setState({\n data : res.data,\n dataCount: res.count,\n page : res.page,\n })\n });\n }\n\n sourceFilter() {\n return this.filter_list.map((item)=>{\n switch (item.type) {\n case \"start\":\n return {\n field:item.field,\n value:`${item.text}%`,\n flag:'like'\n };\n case \"end\":\n return {\n field:item.field,\n value:`%${item.text}`,\n flag:'like'\n };\n case \"clear\":\n // this.filter = {};\n break;\n case \"\":\n return {\n field:item.field,\n value:item.text,\n flag:'='\n };\n default:\n return {\n field:item.field,\n value:`%${item.text}%`,\n flag:'like'\n }\n }\n });\n }\n\n sourceOrder() {\n\n }\n\n //innter source end ***************************\n //checkbox handler\n changeHandler(row:any, i:number) {\n return (checked:boolean,e:any) => {\n let selectRows = this.setRowCheck(checked,i);\n const [allChecked, half] = this.checkAllCheckHalf(selectRows);\n this.setState({\n selectRows: selectRows,\n selectAll: allChecked,\n selectHalf: half\n })\n if (typeof this.props.onCheck === \"function\") {\n this.props.onCheck(checked, row,this.props.jsxId);\n }\n };\n }\n checkAllCheckHalf(selectRows:Array<any>) {\n if (!this.state.selectAll && this.props.selectOnce) {\n return [false, false];\n }\n if (selectRows.length > 0 && selectRows.length !== this.state.data.length) {\n return [false, true]\n }\n if (selectRows.length === 0) {\n return [false, false]\n } else if (selectRows.length === this.state.data.length) {\n return [true, false]\n }\n return [false, false]\n }\n setRowCheck(checked:boolean,rowIdx:number) {\n let selectRows = this.props.selectOnce?[]:this.state.selectRows.slice()\n\n if (checked) {\n if (!selectRows.includes(rowIdx)) {\n selectRows.push(rowIdx);\n }\n } else {\n if (selectRows.includes(rowIdx)) {\n selectRows.splice(selectRows.indexOf(rowIdx),1);\n }\n }\n return selectRows\n }\n\n selectAll = (checked:boolean) => {\n this.select_all = checked;\n let selectRows:any[] = []\n if (checked) {\n this.state.data.forEach((item,key)=>{\n selectRows.push(key)\n })\n }\n this.setState({\n selectRows: selectRows,\n selectAll: checked,\n selectHalf: false\n },()=>{\n if (typeof this.props.onCheckAll === 'function') {\n this.props.onCheckAll(this.state.selectAll,this.state.data,this.props.jsxId)\n }\n })\n };\n\n clickHandler(row:any, i:number) {\n return () => {\n if (typeof this.props.onClick === 'function') {\n this.props.onClick(row, i,this.props.jsxId);\n }\n if (this.props.select && this.props.rowCheck) {\n let row:CCheckbox = this.refs['row_'+i] as CCheckbox;\n row.changeHandler(null)\n // this.setRowCheck(!row.getChecked(),i);\n // this.checkAllCheckHalf();\n }\n if (this.props.focus) {\n this.setState({\n focus:i === this.state.focus?-1:i\n })\n }\n }\n }\n\n /**\n * sort\n */\n sortHandler = (e:any) => {\n let dom = e.currentTarget;\n let sort_type = dom.dataset.sort || 'asc';\n this.changeSort(dom, sort_type)\n };\n\n changeSort(dom:HTMLElement, sort_type:string) {\n if (!dom) {\n return\n }\n if (!dom.dataset.field) {\n return\n }\n this.clearSort(false);\n this.current_sort = dom.dataset.field;\n dom.dataset.sort = sort_type === 'asc' ? 'desc' : 'asc';\n dom.classList.remove('ck-ctable-sort');\n this.sortList[dom.dataset.field] = sort_type;\n let child = dom.querySelector('i');\n if (!child) {\n return\n }\n child.classList.remove('fa-sort', 'fa-sort-alpha-up', 'fa-sort-alpha-down');\n child.classList.add('fa-sort-alpha-' + (sort_type === 'asc' ? 'down' : 'up'));\n if (typeof this.props.onSort === 'function') {\n this.props.onSort(dom.dataset.field, sort_type, this.props.jsxId);\n } else {\n // this.localSort(dom.dataset.field,sort_type)\n }\n }\n\n clearSort(emitEvt:any) {\n if (this.current_sort) {\n let prv = document.querySelector(`#${this.domId}-sort-${this.current_sort}`) as HTMLElement;\n if (!prv) return\n prv.dataset.sort = 'asc';\n prv.classList.add('ck-ctable-sort');\n let prv_child = prv.querySelector('i');\n if (!prv_child) return\n prv_child.classList.remove('fa-sort', 'fa-sort-alpha-up', 'fa-sort-alpha-down');\n prv_child.classList.add('fa-sort');\n this.sortList[this.current_sort] = null;\n this.current_sort = null;\n if (emitEvt && typeof this.props.onSort === 'function') {\n this.props.onSort('','clear');\n } else {\n if (this.props.edit) {\n this.setState({data:this.originalData.slice(0)})\n }\n }\n return true;\n }\n return false;\n }\n\n localSort(field:string, sort_type:string) {\n let desc = sort_type === 'desc';\n let data = this.state.data.slice(0);\n data.sort((a:any, b:any):number => {\n if (a[field] > b[field]) return desc ? -1 : 1;\n if (a[field] < b[field]) return desc ? 1 : -1;\n if (a[field] === b[field]) return 0;\n return 0\n });\n this.setState({data: data});\n }\n\n /**\n * scroll header and total foot\n * @param e\n */\n scrollHandler = (e:any) => {\n this.tableHeader.style.transform = `translateX(-${e.currentTarget.scrollLeft}px)`;\n // this.tableHeader.scrollLeft = e.currentTarget.scrollLeft;\n if (this.tableTotal) {\n // this.tableTotal.scrollLeft = e.currentTarget.scrollLeft;\n this.tableTotal.style.transform = `translateX(-${e.currentTarget.scrollLeft}px)`;\n }\n };\n /**\n * show menu list\n * @param dataType\n */\n menuContextHandler(dataType:string) {\n return (e:any) => {\n e.preventDefault();\n e.stopPropagation();\n let data = {\n field: e.currentTarget.dataset.field || '',\n data : this.state.data[e.currentTarget.dataset.row],\n index: e.currentTarget.dataset.row\n };\n if (dataType === \"text\") {\n this.mainMenu.show({evt: e, type: 'mouse', data: data});\n } else {\n this.numMenu.show({evt: e, type: 'mouse', data: data});\n }\n }\n }\n\n menuClickHandler = (field:string, data:any) => {\n switch (field) {\n case \"asc\":\n this.changeSort(document.querySelector(`#${this.domId}-sort-${data.field}`) as HTMLElement, 'asc');\n break;\n case \"desc\":\n this.changeSort(document.querySelector(`#${this.domId}-sort-${data.field}`) as HTMLElement, 'desc');\n break;\n case \"delete_row\":\n this.deleteRowHandler(parseInt(this.mainMenu.data.index));\n break;\n case \"clone_row\":\n this.cloneRow(parseInt(this.mainMenu.data.index));\n break;\n }\n };\n\n /**\n * filter\n * */\n localFilter(text:string, field:string, type:string) {\n let reg;\n switch (type) {\n case \"start\":\n reg = new RegExp(`^${text}`);\n break;\n case \"end\":\n reg = new RegExp(`${text}$`);\n break;\n default:\n reg = new RegExp(`${text}`);\n }\n let data = this.state.data.slice(0);\n let filter:any[] = [];\n data.forEach((item)=>{\n if (type === 'exclude') {\n if (!reg.test(item[field])) {\n filter.push(item);\n }\n } else {\n if (reg.test(item[field])) {\n filter.push(item);\n }\n }\n });\n this.setState({data:filter});\n }\n\n filterHandler(text:string, field:string, type:string) {\n this.filter_list.push({\n text:text,\n field:field,\n type:type\n });\n\n this.setState({\n filter: {\n start : '',\n end : '',\n contain: '',\n condition: '',\n }\n });\n this.mainMenu.hide(undefined);\n this.numMenu.hide(undefined);\n if (typeof this.props.onFilter === 'function') {\n this.props.onFilter(text, field, type,this.props.jsxId);\n } else {\n this.localFilter(text,field,type);\n }\n }\n\n clearFilter() {\n this.filter_list = [];\n let is_clean = this.clearSort(true);\n Common.map(this.filter,(item:Input)=>{\n item.setValue('')\n })\n this.setState({\n filter: {\n start : '',\n end : '',\n contain: '',\n equal :'',\n }\n });\n if (typeof this.props.onFilter === 'function') {\n this.props.onFilter('', '', 'clear');\n } else {\n if (!is_clean) {\n this.setState({data:this.originalData.slice(0)});\n }\n }\n }\n\n filterChangeHandler(field:string) {\n return (val:any) => {\n let filter = {...this.state.filter};\n filter[field] = val;\n this.setState({\n filter: filter\n })\n }\n }\n\n selectPageHandler = (page:number) => {\n if (typeof this.props.onSelectPage === 'function') {\n this.props.onSelectPage(page,this.props.jsxId);\n }\n };\n\n /**\n * edit mode\n */\n addNewHandler = (e:any) => {\n let data = this.state.data.slice(0);\n data.push(Object.assign({}, this.cacheRow));\n this.editRows.push(data.length - 1);\n this.setState({\n data: data,\n dataCount: data.length,\n }, () => {\n document.querySelector<HTMLElement>(`#${this.domId}-edit`)?.previousElementSibling?.querySelector<HTMLInputElement>('input:not([disabled])')?.focus()\n })\n };\n //编辑事件\n editHandler = (e:any, val:any ,row:any) => {\n const dataset = row === 'chk'?e.currentTarget.dataset:e.target.dataset\n let index = parseInt(dataset.row);\n let field = dataset.field;\n //如果是check组件\n if (row === 'chk') {\n val = val?1:0;\n }\n if (this.editRows.indexOf(index) === -1) {\n this.editRows.push(index);\n let data = this.state.data.slice(0);\n data[index][field] = val;\n this.setState({data: data})\n } else {\n this.state.data[index][field] = val;\n }\n if (this.headers[field] && typeof(this.headers[field].onEdit) === 'function') {\n this.headers[field].onEdit(index,val,row,this.editCallback)\n }\n };\n //自定义 onEdit 事件回调函数\n editCallback = (index:number,editData:any) => {\n if (this.state.data[index]) {\n let data = this.state.data.slice(0);\n data[index] = Object.assign(data[index],editData);\n this.setState({data: data});\n }\n };\n\n getEditRows() {\n let list = [];\n for (let row of this.editRows) {\n list.push(this.state.data[row]);\n }\n return list;\n }\n\n clearEditRows() {\n this.editRows = [];\n }\n //edit mode reset\n reset() {\n this.editRows = [];\n this.originalData = [];\n this.setState({data:[]})\n }\n\n deleteRowHandler(row_index:number) {\n if (this.props.disabled) return\n if (row_index < 0 || row_index >= this.state.data.length) {\n return\n }\n if (typeof this.props.onDelete === 'function') {\n this.props.onDelete(this.state.data[row_index], row_index,this.deleteRow,this.props.jsxId);\n } else {\n this.deleteRow(row_index)\n }\n }\n\n deleteRow = (row_index:number) => {\n if (row_index < 0 || row_index >= this.state.data.length) {\n return\n }\n let data = this.state.data.slice(0);\n data.splice(row_index, 1);\n if (this.editRows.indexOf(row_index) !== -1) {\n this.editRows.splice(this.editRows.indexOf(row_index), 1);\n }\n this.editRows.forEach((item, index) => {\n if (item > row_index) {\n this.editRows[index] = item - 1;\n }\n });\n\n this.setState({\n data: data,\n dataCount: data.length,\n });\n }\n\n cloneRow(row_index:number) {\n if (this.props.disabled) return\n if (row_index < 0 || row_index >= this.state.data.length) {\n return\n }\n let data = this.state.data.slice(0);\n data.push(Object.assign({}, this.state.data[row_index],this.noClone));\n this.editRows.push(data.length - 1);\n this.setState({\n data: data,\n dataCount: data.length,\n })\n }\n //全屏查看\n fullHandler = ()=>{\n if (this.isFull) {\n this.mainDom.classList.remove('ck-ctable-full')\n this.fullButton.querySelector('i')?.classList.remove(\"fa-compress\")\n this.fullButton.querySelector('i')?.classList.add(\"fa-expand\")\n this.fullButton2.classList.add('d-none')\n this.mainDom.querySelector('.ck-ctable-body')?.classList.remove('full-border-up')\n this.mainDom.querySelector('.ck-ctable-foot')?.classList.remove('full-border-bottom')\n } else {\n this.mainDom.classList.add('ck-ctable-full')\n this.fullButton.querySelector('i')?.classList.add(\"fa-compress\")\n this.fullButton.querySelector('i')?.classList.remove(\"fa-expand\")\n this.fullButton2.classList.remove('d-none')\n this.mainDom.querySelector('.ck-ctable-body')?.classList.add('full-border-up')\n this.mainDom.querySelector('.ck-ctable-foot')?.classList.add('full-border-bottom')\n }\n this.isFull = !this.isFull\n }\n\n //****************************\n\n /**\n * 得到所有选中的行\n */\n getSelectRows() {\n return this.state.selectRows.map((item)=>{\n return this.state.data[item];\n });\n }\n\n /**\n * 设置选中的行\n */\n setSelectRows(key:string, list:any[]) {\n let selectRows:any[] = []\n this.state.data.forEach((row, i) => {\n if (list.includes(row[key])) {\n selectRows.push(i)\n }\n });\n let selectAll = selectRows.length > 1 && selectRows.length === this.state.data.length\n this.setState({\n selectRows: selectRows,\n selectHalf: !selectAll,\n selectAll: selectAll\n })\n }\n\n /**\n * binding column split\n */\n bindSplit() {\n if (this.props.move) {\n this.headerSplits.forEach((split:any) => {\n if (!this.drag) {\n this.dragColumnLeft = 0;\n this.dragWidth = 0;\n this.drag = new Drag(this.split, split, {\n start: (dragDom, eventDom) => {\n let xy = Common.GetDomXY(eventDom, this.mainDom);\n this.dragWidth = parseInt((eventDom?.parentNode as HTMLElement).style.width);\n this.dragColumnLeft = (xy.left - this.table_rows.scrollLeft);\n dragDom.style.left = this.dragColumnLeft + 'px';\n dragDom.classList.remove('d-none');\n return true;\n },\n move : (move, dragDom, eventDom) => {\n if (this.dragWidth + (move.x - this.dragColumnLeft) < 50) {\n move.x = this.dragColumnLeft - this.dragWidth + 50;\n }\n },\n end : (dragDom, eventDom) => {\n dragDom.classList.add('d-none');\n let column_key = eventDom.dataset.key;\n let diff = parseInt(dragDom.style.left) - this.dragColumnLeft;\n this.width = (parseInt(this.width) + diff) + 'px';\n this.table_head.style.width = this.width;\n this.table_body.style.width = this.width;\n if (this.table_total) {\n this.table_total.style.width = this.width;\n }\n document.querySelectorAll(`#${column_key}`).forEach((item:any) => {\n item.style.width = `${this.dragWidth + diff}px`;\n });\n return true;\n }\n });\n } else {\n this.drag.setEventDom(split);\n }\n });\n }\n }\n\n getClasses(name?:string) {\n let base = 'table ck-table';\n if (!!name) {\n base = classNames(base, name);\n }\n //striped\n if (this.props.striped && !this.props.edit) {\n base = classNames(base, 'table-striped');\n }\n //theme\n if (this.props.theme) {\n base = classNames(base, 'table-' + this.props.theme);\n }\n //bordered\n if (this.props.bordered) {\n base = classNames(base, 'table-bordered');\n }\n //hover\n if (this.props.hover) {\n base = classNames(base, 'table-hover');\n }\n //sm\n if (this.props.sm) {\n base = classNames(base, 'table-sm');\n }\n if (this.props.fontSm) {\n base = classNames(base, 'table-font-sm');\n }\n //responsive\n if (this.props.responsive) {\n base = classNames(base, 'table-responsive');\n }\n //nowrap\n if (this.props.noWrap) {\n base = classNames(base, 'ck-ctable-nowrap');\n }\n return base;\n }\n\n getMainClasses() {\n let base = 'ck-ctable-main d-flex flex-column';\n if (this.props.bordered) {\n base = classNames(base, 'border');\n }\n return classNames(base, this.props.className);\n }\n\n getStyles() {\n //default style\n let base:any = {};\n //width\n if (this.props.width) {\n base.width = this.props.width;\n }\n //height\n if (this.props.height) {\n base.height = this.props.height;\n }\n\n if (this.props.absolute) {\n base.position = 'absolute';\n base.top = this.props.y;\n base.left = this.props.x;\n if (typeof this.props.position === 'object') {\n base.top = this.props.position.top || this.props.y;\n base.left = this.props.position.left || this.props.x;\n base.right = this.props.position.right || 'unset';\n base.bottom = this.props.position.bottom || 'unset';\n if (this.props.position.left && this.props.position.right) {\n base.width = 'unset';\n }\n if (this.props.position.top && this.props.position.bottom) {\n base.height = 'unset';\n }\n }\n }\n\n return Common.extend(base, this.props.style)\n }\n\n getHeaderClasses() {\n let base = 'ck-ctable-header';\n if (this.props.headerTheme) {\n base = classNames(base,'table-' + this.props.headerTheme);\n }\n return classNames(base, this.props.headClass);\n }\n\n getTableStyles(style?:any) {\n let base:any = {};\n\n if (this.width) {\n base.width = this.width;\n }\n\n if (style) {\n base = Object.assign({},base,style);\n }\n\n return base;\n }\n\n getBodyClasses() {\n let base = 'ck-ctable-body flex-grow-1 d-flex flex-column';\n\n return base;\n }\n\n calcLocalTotal(field:string) {\n return (e:any)=>{\n let list = this.state.data;\n let total = 0;\n list.forEach((item)=>{\n if (!!parseFloat(item[field])) {\n total += parseFloat(item[field])\n }\n })\n let totalData = Object.assign({},this.state.total);\n totalData[field] = total.toFixed(2)\n this.setState({\n total:totalData\n })\n }\n }\n\n render() {\n return (\n <div ref={(c:any) => this.mainDom = c} className={this.getMainClasses()} style={this.getStyles()}>\n <div ref={(c:any) => this.conDom = c} className={this.getBodyClasses()}>\n {this.renderHeader()}\n {this.renderRows()}\n {this.renderTotal()}\n {<Scroll selector={`#table-body-com-${this.domId}`}/>}\n {<HScroll selector={`#table-body-com-${this.domId}`}/>}\n </div>\n {this.renderFoot()}\n <div ref={(c:any) => this.split = c} className='ck-split d-none'/>\n </div>\n );\n }\n\n renderHeader() {\n return (\n <div ref={(c:any) => this.tableHeader = c}>\n <table ref={(c:any) => this.table_head = c} id={`table-head-${this.domId}`} className={this.getClasses('')} style={this.getTableStyles(null)}>\n <thead className={this.getHeaderClasses()}>\n <tr>\n {this.state.select || this.props.edit ?\n <th style={{width:'20px',textAlign:'center'}}>\n {this.props.edit || this.props.selectOnce ? <Icon icon='list'/> :\n <CCheckbox ref={(c:any) => this.allchk=c} onChange={this.selectAll} checked={this.state.selectAll} half={this.state.selectHalf}/>}\n </th> : null}\n {this.props.edit && !this.props.nodel?<th style={{width:'20px',textAlign:'center'}}/>:null}\n {React.Children.map(this.props.children, (item, key) => {\n this.cacheRow[item.props.field] = item.props?.def ?? '';\n if (!item || item.props.hide) {\n return null;\n }\n // let align = item.props.align || this.props.align;\n let style:any = {\n 'textAlign': 'center'\n };\n if (item.props.width) {\n style.width = item.props.width;\n }\n let sort_icon = '';\n if (this.sortList[item.props.field]) {\n sort_icon = 'sort-alpha-' + (this.sortList[item.props.field] === 'asc' ? 'down' : 'up');\n }\n return (\n <th onContextMenu={this.menuContextHandler('')} id={this.domId + '-' + key} data-key={'head_' + key} style={style}>\n {this.is_sort ?\n <a className='ck-ctable-sort' href='javascript://' id={`${this.domId}-sort-${item.props.field}`}\n data-field={item.props.field}\n onClick={this.sortHandler}>\n {item.props.text}{'\\u0020'}\n <Icon icon={sort_icon}/></a> : item.props.text}\n {this.props.move ?\n <span ref={c => this.headerSplits.push(c)} data-key={this.domId + '-' + key} className='ck-column-split'/> : null}\n </th>\n );\n })}\n </tr>\n </thead>\n </table>\n </div>\n )\n }\n\n renderRows() {\n return (\n <div ref={(c:any) => this.table_rows = c} id={`table-body-com-${this.domId}`} className='flex-grow-1 rows' onScroll={this.scrollHandler}>\n <table ref={(c:any) => this.table_body = c} id={`table-body-${this.domId}`} className={this.getClasses()} style={this.getTableStyles()}>\n <tbody>\n {this.state.data.map((row:any, i:number) => {\n if (this.props.edit) {\n return this.renderEditRow(row, i)\n }\n return this.renderRow(row, i,null);\n })}\n {this.props.edit && this.props.newBar ? this.renderEditAddRow() : null}\n </tbody>\n </table>\n {this.props.menu ? this.renderMenu() : null}\n {this.props.menu ? this.renderNumberMenu() : null}\n </div>\n )\n }\n\n renderRow(row:any, i:number, parentRow?:any) {\n let checked = this.state.selectRows.indexOf(i) !== -1\n let focus = (i === this.state.focus && this.props.focus)\n let rowClass = focus ? 'ck-table-focus' : checked ? 'ck-table-selected' : undefined \n return (\n <>\n <tr className={rowClass} onClick={this.clickHandler(row, i)}>\n {this.state.select ?\n <th style={{width:'20px',textAlign:'center'}}>\n <CCheckbox ref={'row_' + i} onChange={this.changeHandler(row, i)} checked={checked}/>\n </th> : null}\n {React.Children.map(this.props.children, (item, key) => {\n if (!item || item.props.hide) {\n return null;\n }\n //set style\n let style = {...this.props.columnStyle};\n\n style.textAlign = item.props.align || this.props.align;\n if (item.props.width) {\n style.width = item.props.width;\n }\n //set color\n if (item.props.color) {\n style.color = item.props.color;\n }\n if (item.props.bgColor) {\n style.backgroundColor = item.props.bgColor;\n }\n\n let dataType;\n switch (item.props.dataType) {\n case \"number\":\n dataType = \"number\";\n break;\n case \"date\":\n dataType = \"date\";\n break;\n default:\n dataType = \"text\";\n }\n\n if (item.props.children) {\n return (\n <td onContextMenu={this.menuContextHandler(dataType)} id={this.domId + '-' + key} data-row={`${i}`} data-field={item.props.field}\n className={item.props.className}\n key={'col_' + key}>{React.cloneElement(item, {\n text : item.props.text,\n row : row,\n value: row[item.props.field]\n })}</td>\n );\n } else {\n if (item.props.type) {\n item.props.disabled=true;\n }\n return <td onContextMenu={this.menuContextHandler(dataType)} id={this.domId + '-' + key}\n data-field={item.props.field}\n style={style}\n onClick={(e) => {\n if (typeof item.props.onClick === 'function') {\n item.props.onClick(row);\n }\n }}\n onDoubleClick={(e) => {\n if (typeof item.props.onDoubleClick === 'function') {\n item.props.onDoubleClick(row);\n }\n }}\n data-row={`${i}`}>\n {item.props.type ? this.renderEditComponent(item.props,row,i):(item.props.onFormat ? item.props.onFormat(row[item.props.field], row, item.props.field) : row[item.props.field])}\n </td>;\n }\n })}\n </tr>\n </>\n );\n }\n\n renderEditRow(row:any, i:number) {\n return (\n <>\n <tr className={this.props.onClick ? 'click-row' : undefined} onClick={this.clickHandler(row, i)}>\n <th style={{width:'20px',textAlign:'center'}}>\n {this.editRows.indexOf(i) === -1 ? null :\n <Icon id={`${this.domId}-edit-row-icon-${i}`} icon='edit' className={this.props.disabled?'text-secondary':'text-success'}/>}\n </th>\n {!this.props.nodel?<th style={{width:'20px',textAlign:'center',cursor:'pointer'}}>\n <Icon icon='trash' className={this.props.disabled?'text-secondary':'text-danger'} text=\"delete\" onClick={()=>{\n this.deleteRowHandler(i);\n }}/>\n </th>:null}\n {React.Children.map(this.props.children, (item, key) => {\n if (!item || item.props.hide) {\n return null;\n }\n //set style\n let style = {...this.props.columnStyle};\n\n style.textAlign = item.props.align || this.props.align;\n if (item.props.width) {\n style.width = item.props.width;\n }\n let dataType = 'text';\n return (\n <td onContextMenu={this.menuContextHandler(dataType)}\n className={item.props.disabled ? 'disabled' : ''} id={this.domId + '-' + key}\n data-field={item.props.field}\n style={style}\n onClick={(e) => {\n if (typeof item.props.onClick === 'function') {\n item.props.onClick(row);\n }\n }}\n onDoubleClick={(e) => {\n if (typeof item.props.onDoubleClick === 'function') {\n item.props.onDoubleClick(row);\n }\n }}\n data-row={`${i}`}>\n {item.props.disabled?\n (item.props.onFormat ? item.props.onFormat(row[item.props.field], row, item.props.field) : row[item.props.field]):\n this.renderEditComponent(item.props, row, i)}\n </td>\n );\n })}\n </tr>\n </>\n );\n }\n\n renderEditAddRow() {\n if (this.props.disabled) {\n return null;\n }\n return (\n <tr id={this.domId + '-edit'}>\n <th style={{width:'20px',textAlign:'center'}}><Icon icon='chevron-circle-right'/></th>\n {!this.props.nodel?<th style={{width:'20px',textAlign:'center'}}/>:null}\n {React.Children.map(this.props.children, (item, key) => {\n if (!item || item.props.hide) {\n return null;\n }\n let style = {\n width: item.props.width\n };\n return (\n <td style={style} id={this.domId + '-' + key}>\n <CTableInput onFocus={this.addNewHandler}/>\n </td>\n );\n })}\n </tr>\n )\n }\n\n renderEditComponent(item:any, row:any, i:number) {\n switch (item.type) {\n case \"combo\":\n return (\n <CTableInput onChange={this.editHandler} data-row={i}\n data-field={item.field} data={row[item.field]}\n align={item.align} disabled={item.disabled??this.props.disabled}\n combo={item.combo} comboData={item.comboData}/>\n );\n case \"calendar\":\n return (\n <CTableInput onChange={this.editHandler} data-row={i}\n data-field={item.field} data={row[item.field]}\n align={item.align} disabled={item.disabled??this.props.disabled}\n calendarFormat={item.calendarFormat} calendar/>\n );\n case \"checkbox\":\n return (\n <CCheckbox className='d-inline' width='20px' onChange={(chk,e)=>{this.editHandler(e,chk,'chk')}} data-row={i}\n data-field={item.field} checked={!!row[item.field]} disabled={item.disabled??this.props.disabled} tabIndex=\"0\"/>\n )\n case \"textarea\":\n return (\n <CTableTextArea onChange={this.editHandler} data-row={i}\n data-field={item.field} data={row[item.field]}\n disabled={item.disabled??this.props.disabled}/>\n )\n default:\n return (\n <CTableInput onChange={this.editHandler} data-row={i} data-field={item.field} number={item.dataType==='number'}\n data={row[item.field]} align={item.align} disabled={item.disabled??this.props.disabled}\n onBlur={this.state.total&&this.state.total.hasOwnProperty(item.field)?this.calcLocalTotal(item.field):undefined}\n />\n )\n }\n }\n\n renderFoot() {\n if (!this.props.foot) {\n return null;\n }\n return (\n <div className='ck-ctable-foot d-flex align-items-center'>\n <PageBar page={this.state.page} dataCount={this.state.dataCount}\n onSelect={this.selectPageHandler}\n showNumbers={this.props.showNumbers??0}\n showPages={this.props.showPages??0} noPage={this.props.edit??false}/>\n <div ref={(c:any)=>{this.fullButton = c}} className='full-btn align-self-center ms-auto pe-2 text-primary' onClick={()=>{\n this.fullHandler()\n }}><Icon icon='expand'/></div>\n <div ref={(c:any)=>{this.fullButton2 = c}} className='right-full-btn d-none' onClick={()=>{\n this.fullHandler()\n }}><Icon icon='times'/></div>\n </div>\n )\n }\n\n renderTotal() {\n if (!this.state.total) {\n return null;\n }\n let total = this.state.total;\n return (\n <div ref={(c:any) => this.tableTotal = c} className='ck-ctable-total'>\n <table ref={(c:any) => this.table_total = c} id={`table-total-${this.domId}`} className={this.getClasses()} style={this.getTableStyles()}>\n <tbody>\n <tr>\n {this.state.select || this.props.edit ?\n <td width='20px'><Icon icon='chart-line'/></td> : null}\n {!this.props.nodel&&this.props.edit?<td style={{width:'20px',textAlign:'center'}}/>:null}\n {React.Children.map(this.props.children, (item, key) => {\n if (!item || item.props.hide) {\n return null;\n }\n let align = item.props.align || this.props.align;\n let style:any = {\n 'textAlign': align\n };\n if (item.props.width) {\n style.width = item.props.width;\n }\n return (\n <td id={this.domId + '-' + key} data-field={item.props.field} style={style}>\n {item.props.onFormat ? item.props.onFormat(total[item.props.field], total, item.props.field) : total[item.props.field]}\n </td>\n );\n })}\n </tr>\n </tbody>\n </table>\n </div>\n )\n }\n\n renderMenu() {\n let lang;\n if (!this.props.lang) {\n let i18 = i18n.getLang();\n let langStr = typeof lang === 'string'?lang:i18.short;\n lang = CTableLang[langStr];\n } else {\n if (typeof this.props.lang === 'string') {\n lang = CTableLang[this.props.lang]\n } else {\n lang = this.props.lang\n }\n }\n return <>\n <Menu ref={(c:any) => this.mainMenu = c} onClick={this.menuClickHandler}>\n <Menu.Item field=\"copy\" onClick={() => {\n document.execCommand(\"copy\");\n }}><Icon className='me-1' icon='copy'/>{lang['Copy']}</Menu.Item>\n {this.is_filter?<Menu.Item field='' step/>:null}\n {this.is_filter?<Menu.Item field='select_filter' onClick={(e, field, data) => {\n let select = document.getSelection();\n if (!select) return\n this.filterHandler(select.toString(), data.field, 'contain');\n }}><Icon className='me-1' icon='filter'/>{lang['Filter By Selection']}</Menu.Item>:null}\n {this.is_filter?<Menu.Item field='select_exclude' onClick={(e, field, data) => {\n let select = document.getSelection();\n if (!select) return\n this.filterHandler(select.toString(), data.field, 'exclude');\n }}><Icon className='me-1' icon='filter'/>{lang['Filter Excluding Selection']}</Menu.Item>:null}\n {this.is_filter||this.is_sort?<Menu.Item field='clear_filter' onClick={() => {\n this.clearFilter();\n }}><span className='text-danger'><Icon className='me-1' icon='brush'/>{lang['Clear Filter / Sort']}</span></Menu.Item>:null}\n {this.is_filter?<Menu.Item field='' step/>:null}\n {this.is_filter?<Menu.Item field=\"equal\">\n {this.state.filter.equal}\n <span className='me-1' style={inputStyle}>{lang['Equal With']}</span>\n <Input ref={(c:Input)=>this.filter.equal=c} className='me-1' size='xs' width='120px'\n data={this.state.filter.equal}\n onChange={this.filterChangeHandler('equal')}\n onMouseDown={stopEvent}\n onEnter={() => {\n this.filterHandler(this.state.filter.equal, this.mainMenu.data.field, 'equal');\n }}\n />\n <Button size='xs' onMouseDown={stopEvent} onClick={(e) => {\n this.filterHandler(this.state.filter.equal, this.mainMenu.data.field, 'equal');\n }} icon='search'/>\n </Menu.Item>:null}\n {this.is_filter?<Menu.Item field=\"filter\">\n <span className='me-1' style={inputStyle}>{lang['Start With']}</span>\n <Input ref={(c:Input)=>this.filter.start=c} className='me-1' size='xs' width='120px'\n data={this.state.filter.start}\n onChange={this.filterChangeHandler('start')}\n onMouseDown={stopEvent}\n onEnter={() => {\n this.filterHandler(this.state.filter.start, this.mainMenu.data.field, 'start');\n }}\n />\n <Button size='xs' onMouseDown={stopEvent} onClick={(e) => {\n this.filterHandler(this.state.filter.start, this.mainMenu.data.field, 'start');\n }} icon='search'/>\n </Menu.Item>:null}\n {this.is_filter?<Menu.Item field=\"filter\">\n <span className='me-1' style={inputStyle}>{lang['End With']}</span>\n <Input ref={(c:Input)=>this.filter.end=c} className='me-1' size='xs' width='120px'\n data={this.state.filter.end}\n onChange={this.filterChangeHandler('end')}\n onMouseDown={stopEvent}\n onEnter={() => {\n this.filterHandler(this.state.filter.end, this.mainMenu.data.field, 'end');\n }}\n />\n <Button size='xs' onMouseDown={stopEvent} onClick={(e) => {\n this.filterHandler(this.state.filter.end, this.mainMenu.data.field, 'end');\n }} icon='search'/>\n </Menu.Item>:null}\n {this.is_filter?<Menu.Item field=\"filter\">\n <span className='me-1' style={inputStyle}>{lang['Contain with']}</span>\n <Input ref={(c:Input)=>this.filter.contain=c} className='me-1' size='xs' width='120px'\n data={this.state.filter.contain}\n onChange={this.filterChangeHandler('contain')}\n onMouseDown={stopEvent}\n onEnter={() => {\n this.filterHandler(this.state.filter.contain, this.mainMenu.data.field, 'contain');\n }}\n />\n <Button size='xs' onMouseDown={stopEvent} onClick={(e) => {\n this.filterHandler(this.state.filter.contain, this.mainMenu.data.field, 'contain');\n }} icon='search'/>\n </Menu.Item>:null}\n {this.is_filter? <Menu.Item field='' step/> : null}\n {this.is_filter?<Menu.Item field=\"filter\" className='flex-column'>\n <div className='w-100'>{lang['Condition Filter']}</div>\n <Input size='xs' width='100%'\n data={this.state.filter.condition}\n onChange={this.filterChangeHandler('condition')}\n onMouseDown={stopEvent}\n onEnter={() => {\n this.filterHandler(this.state.filter.condition, this.mainMenu.data.field, 'condition');\n }}\n />\n </Menu.Item>:null}\n {this.props.edit && (!this.props.nodel || this.props.newBar) ? <Menu.Item field='' step/> : null}\n {this.props.edit && !this.props.nodel ? <Menu.Item field=\"delete_row\">{lang['Delete Row']}</Menu.Item> : null}\n {this.props.edit && this.props.newBar ? <Menu.Item field=\"clone_row\">{lang['Clone Row']}</Menu.Item> : null}\n {this.props.customMenu?<Menu.Item field='' step/>:null}\n {this.props.customMenu?this.props.customMenu.map((menu:any)=>{\n return this.explainCustomMenu(menu)\n }):null}\n </Menu>\n </>\n }\n // MARK:-生成数字菜单\n renderNumberMenu() {\n let lang;\n if (!this.props.lang) {\n let i18 = i18n.getLang();\n let langStr = typeof lang === 'string'?lang:i18.short;\n lang = CTableLang[langStr];\n } else {\n if (typeof this.props.lang === 'string') {\n lang = CTableLang[this.props.lang]\n } else {\n lang = this.props.lang\n }\n }\n \n \n return <>\n <Menu ref={(c:any) => this.numMenu = c} onClick={this.menuClickHandler}>\n <Menu.Item field=\"copy\" onClick={() => {\n document.execCommand(\"copy\");\n }}><Icon className='me-1' icon='copy'/>{lang['Copy']}</Menu.Item>\n {this.is_filter?<Menu.Item field='' step/>:null}\n {this.is_filter?<Menu.Item field='select_filter' onClick={(e, field, data) => {\n let select = document.getSelection();\n if (!select) return\n this.filterHandler(select.toString(), data.field, 'contain');\n }}><Icon className='me-1' icon='filter'/>{lang['Filter By Selection']}</Menu.Item>:null}\n {this.is_filter?<Menu.Item field='select_exclude' onClick={(e, field, data) => {\n let select = document.getSelection();\n if (!select) return\n this.filterHandler(select.toString(), data.field, 'exclude');\n }}><Icon className='me-1' icon='filter'/>{lang['Filter Excluding Selection']}</Menu.Item>:null}\n {this.is_filter||this.is_sort?<Menu.Item field='clear_filter' onClick={() => {\n this.clearFilter();\n }}><span className='text-danger'><Icon className='me-1' icon='brush'/>{lang['Clear Filter / Sort']}</span></Menu.Item>:null}\n {this.is_filter?<Menu.Item field='' step/>:null}\n {this.is_filter?<Menu.Item field=\"filter\" className='flex-column'>\n <div className='w-100'>{lang['Condition Filter']}</div>\n <Input size='xs' width='100%'\n data={this.state.filter.condition}\n onChange={this.filterChangeHandler('condition')}\n onMouseDown={stopEvent}\n onEnter={() => {\n let reg = /(>=|<=|<|>|=|!=)+\\s*(\\d+)/i\n let m = String(this.state.filter.condition).match(reg)\n if (m) {\n this.filterHandler(m[2], this.numMenu.data.field, numberCondition[m[1]]); \n } else {\n this.filterHandler(this.state.filter.condition, this.numMenu.data.field, 'condition'); \n }\n }}\n />\n <div>and,or,between,>,>=,<,<=,=</div>\n </Menu.Item>:null}\n </Menu>\n </>\n }\n\n explainCustomMenu(menu:any) {\n if (menu.children && menu.children instanceof Array) {\n return <Menu.Item field={menu.field} text={menu.text} child>{menu.children.map((item:any)=>{\n return this.explainCustomMenu(item)\n })}</Menu.Item>\n } else {\n return <Menu.Item field={menu.field} onClick={menu.click}>{menu.text}</Menu.Item>\n }\n }\n}\n\nconst inputStyle = {width: '80px'};\nconst stopEvent = function (e:any) {\n e.stopPropagation();\n};\n\nexport default CTable;"],"file":"CTable.js"}
|