@clake/react-bootstrap4-window 1.2.6 → 1.2.8
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 +11 -2
- 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.map +1 -1
- package/lib/types/index.d.js +2 -2
- package/lib/types/index.d.js.map +2 -2
- package/lib/types/src/CTable.d.ts +1 -0
- 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.2.
|
|
1
|
+
/* @clake/react-bootstrap4-window v1.2.8 | by Clake
|
|
2
2
|
* Copyright (c) 2025 Clake,
|
|
3
|
-
* 2025-11-
|
|
3
|
+
* 2025-11-14T14:45:21+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","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","hidden","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","close","equal","condition","numMenu","RegExp","test","hide","undefined","localFilter","is_clean","setValue","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","def","sort_icon","menuContextHandler","sortHandler","nodel","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 hidden?: boolean\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 if (this.props.hidden !== nextProps.hidden) {\n return true\n }\n if (this.props.edit !== nextProps.edit) {\n return true\n }\n if (this.props.select !== nextProps.select) {\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,close:()=>{\n this.setState({\n filter: {\n start : '',\n end : '',\n contain: '',\n equal :'',\n condition: ''\n }\n });\n }});\n } else {\n this.numMenu.show({evt: e, type: 'mouse', data: data,close:()=>{\n this.setState({\n filter: {\n start : '',\n end : '',\n contain: '',\n equal :'',\n condition: ''\n }\n });\n }});\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 equal :'',\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 condition: ''\n }\n });\n if (typeof this.props.onFilter === 'function') {\n this.props.onFilter('', '', 'clear',this.props.jsxId);\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 if (this.props.hidden) {\n base = classNames(base, 'd-none');\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.props.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 {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 {this.props.edit && !this.props.nodel?<th style={{width:'20px',textAlign:'center'}}/>:null}\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.props.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 {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 {!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 </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.props.select || this.props.edit ?\n <td width='20px'><Icon icon='chart-line'/></td> : 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 {!this.props.nodel&&this.props.edit?<td style={{width:'20px',textAlign:'center'}}/>:null}\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 ref={(c:Input)=>this.filter.condition=c} 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","hidden","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","close","equal","condition","numMenu","RegExp","test","hide","undefined","localFilter","is_clean","setValue","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","def","sort_icon","menuContextHandler","sortHandler","nodel","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","fields","totalFields","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 totalFields ?: string[]\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 hidden?: boolean\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 if (this.props.hidden !== nextProps.hidden) {\n return true\n }\n if (this.props.edit !== nextProps.edit) {\n return true\n }\n if (this.props.select !== nextProps.select) {\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,close:()=>{\n this.setState({\n filter: {\n start : '',\n end : '',\n contain: '',\n equal :'',\n condition: ''\n }\n });\n }});\n } else {\n this.numMenu.show({evt: e, type: 'mouse', data: data,close:()=>{\n this.setState({\n filter: {\n start : '',\n end : '',\n contain: '',\n equal :'',\n condition: ''\n }\n });\n }});\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 equal :'',\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 condition: ''\n }\n });\n if (typeof this.props.onFilter === 'function') {\n this.props.onFilter('', '', 'clear',this.props.jsxId);\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 if (this.props.hidden) {\n base = classNames(base, 'd-none');\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.props.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 {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 {this.props.edit && !this.props.nodel?<th style={{width:'20px',textAlign:'center'}}/>:null}\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.props.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 {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 {!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 </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 let fields = this.props.totalFields;\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.props.select || this.props.edit ?\n <td width='20px'><Icon icon='chart-line'/></td> : 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 if ((fields && !fields.includes(item.props.field)) || \n (total[item.props.field] === undefined || total[item.props.field] === null)) {\n return <td id={this.domId + '-' + key} data-field={item.props.field} style={style}/>\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 {!this.props.nodel&&this.props.edit?<td style={{width:'20px',textAlign:'center'}}/>:null}\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 ref={(c:Input)=>this.filter.condition=c} 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"}
|