|
@@ -30,7 +30,8 @@ export default class HTableForm {
|
|
|
|
|
|
static tableFormApp = null
|
|
|
|
|
|
- static createForm({template, tableForm, keys, appId, pid, onRight, onBlur, onLeftClick, onFormDataChange}) {
|
|
|
+ static createForm({template, tableForm, keys, appId, pid, onRight, onBlur, onLeftClick, onFormDataChange})
|
|
|
+ {
|
|
|
const _this = this;
|
|
|
const app = createApp({
|
|
|
data() {
|
|
@@ -152,7 +153,8 @@ export default class HTableForm {
|
|
|
}
|
|
|
|
|
|
//处理日期范围数据
|
|
|
- static setPickerKey(data) {
|
|
|
+ static setPickerKey(data)
|
|
|
+ {
|
|
|
const pickerKey = data['pickerKey'] || ''
|
|
|
if (pickerKey) {
|
|
|
const pickerKeys = pickerKey.split(',')
|
|
@@ -170,7 +172,8 @@ export default class HTableForm {
|
|
|
}
|
|
|
|
|
|
//处理日期时间框的切换事件
|
|
|
- static setByClassKeyup(keys, pid = '') {
|
|
|
+ static setByClassKeyup(keys, pid = '')
|
|
|
+ {
|
|
|
try {
|
|
|
let poppers = document.getElementsByClassName('hc-table-form-date-picker')
|
|
|
for (let i = 0; i < poppers.length; i++) {
|
|
@@ -190,7 +193,8 @@ export default class HTableForm {
|
|
|
}
|
|
|
|
|
|
//设置事件
|
|
|
- static setElementsEvent(elements, key, keys, pid = '') {
|
|
|
+ static setElementsEvent(elements, key, keys, pid = '')
|
|
|
+ {
|
|
|
if (elements.length > 0) {
|
|
|
const _this = this;
|
|
|
elements[0].addEventListener("keydown", e => {
|
|
@@ -211,7 +215,8 @@ export default class HTableForm {
|
|
|
}
|
|
|
|
|
|
//计算上下左右快捷键的
|
|
|
- static setKeyupData({target}, type, keys, pid = '') {
|
|
|
+ static setKeyupData({target}, type, keys, pid = '')
|
|
|
+ {
|
|
|
const key = target.id
|
|
|
//处理快捷键数据和事件
|
|
|
if (key && type && isArray(keys)) {
|
|
@@ -273,7 +278,8 @@ export default class HTableForm {
|
|
|
}
|
|
|
|
|
|
//设置元素焦点
|
|
|
- static setElementFocus(key, pid) {
|
|
|
+ static setElementFocus(key, pid)
|
|
|
+ {
|
|
|
if (key) {
|
|
|
try {
|
|
|
this.getQuerySelector(key, pid)?.focus();
|
|
@@ -283,7 +289,8 @@ export default class HTableForm {
|
|
|
}
|
|
|
|
|
|
//获取表单元素
|
|
|
- static getQuerySelector(key, pid = '') {
|
|
|
+ static getQuerySelector(key, pid = '')
|
|
|
+ {
|
|
|
let dom;
|
|
|
if (pid) {
|
|
|
dom = document.querySelector('#' + pid + ' #' + (key + ''))
|
|
@@ -294,7 +301,8 @@ export default class HTableForm {
|
|
|
}
|
|
|
|
|
|
//设置表单样式
|
|
|
- static setFormStyle(key, name = 'hc-red-border', pid = '', add = false) {
|
|
|
+ static setFormStyle(key, name = 'hc-red-border', pid = '', add = false)
|
|
|
+ {
|
|
|
const dom = this.getQuerySelector(key, pid)
|
|
|
const parent = dom?.parentElement ?? ''
|
|
|
if (dom.tagName === 'INPUT') {
|
|
@@ -305,7 +313,8 @@ export default class HTableForm {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- static setFormClass(dom, name = 'hc-red-border', add = false) {
|
|
|
+ static setFormClass(dom, name = 'hc-red-border', add = false)
|
|
|
+ {
|
|
|
const classStr = dom.getAttribute('class')
|
|
|
const classArr = classStr.split(' ')
|
|
|
const index = classArr.indexOf(name)
|
|
@@ -318,7 +327,8 @@ export default class HTableForm {
|
|
|
}
|
|
|
|
|
|
//设置选中样式
|
|
|
- static setCheckKeyStyle(key, pid = '', remove = false) {
|
|
|
+ static setCheckKeyStyle(key, pid = '', remove = false)
|
|
|
+ {
|
|
|
if (remove) {
|
|
|
this.setFormStyle(key, 'hc-green-border', pid)
|
|
|
} else {
|
|
@@ -326,7 +336,48 @@ export default class HTableForm {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //卸载示例
|
|
|
+ //设置全局按键监听
|
|
|
+ static setOnEventKey({onCtrlDown, onCtrlDownC, onCtrlDownV, onCtrlUp})
|
|
|
+ {
|
|
|
+ //全局按键按下监听
|
|
|
+ document.onkeydown = (event) => {
|
|
|
+ if(onCtrlDown || onCtrlDownC || onCtrlDownV) {
|
|
|
+ const {key, ctrlKey, metaKey} = event
|
|
|
+ const isCtrl = window.isMac ? metaKey : window.isWin ? ctrlKey : false
|
|
|
+ //window.$HcLog('全局按键', 'isCtrl', isCtrl)
|
|
|
+ //按下ctrl键 或 control 键
|
|
|
+ if (onCtrlDown && isCtrl && key === window?.isCtrl) {
|
|
|
+ onCtrlDown(event)
|
|
|
+ }
|
|
|
+ //按下复制快捷键
|
|
|
+ if (onCtrlDownC && isCtrl && key === 'c') {
|
|
|
+ onCtrlDownC(event)
|
|
|
+ }
|
|
|
+ //按下粘贴快捷键
|
|
|
+ if (onCtrlDownV && isCtrl && key === 'v') {
|
|
|
+ onCtrlDownV(event)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //全局键盘放开监听
|
|
|
+ document.onkeyup = (event) => {
|
|
|
+ if(onCtrlUp) {
|
|
|
+ const {key, ctrlKey, metaKey} = event
|
|
|
+ const isCtrl = window.isMac ? metaKey : window.isWin ? ctrlKey : false
|
|
|
+ if (!isCtrl && key === window?.isCtrl) {
|
|
|
+ onCtrlUp(event)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //卸载全局按键监听
|
|
|
+ static unmountEventKey() {
|
|
|
+ document.onkeydown = null
|
|
|
+ document.onkeyup = null
|
|
|
+ }
|
|
|
+
|
|
|
+ //卸载实例
|
|
|
static unmountFormApp() {
|
|
|
if (this.tableFormApp) {
|
|
|
this.tableFormApp?.unmount()
|