feature: append button-edit event

This commit is contained in:
Sagi 2022-09-17 09:04:34 +08:00
parent b7ef12bb60
commit 10ef216d4e
4 changed files with 41 additions and 15 deletions

View File

@ -18,8 +18,8 @@ export default defineComponent({
'enterHandle', 'enterHandle',
'iconMouseEnter', 'iconMouseEnter',
'iconMouseLeave', 'iconMouseLeave',
'keyupHandle', 'keyup',
'keydownHandle', 'keydown',
'inputClick', 'inputClick',
'input', 'input',
'update:modelValue', 'update:modelValue',
@ -41,8 +41,9 @@ export default defineComponent({
onClickTextBox, onClickTextBox,
onFocusTextBox, onFocusTextBox,
onInput, onInput,
onKeyDownTextBox,
onKeyUpTextBox,
onMouseDownTextBox, onMouseDownTextBox,
onMouseOverTextBox,
onTextBoxValueChange, onTextBoxValueChange,
} = useTextBox(props, context); } = useTextBox(props, context);
@ -57,7 +58,7 @@ export default defineComponent({
return () => { return () => {
return ( return (
<div class="f-cmp-inputgroup" id={props.id}> <div class="f-cmp-inputgroup" id={props.id}>
<div class={[props.customClass, inputGroupClass.value]}> <div class={[props.customClass, inputGroupClass.value]} onMouseenter={onMouseEnterTextBox} onMouseleave={onMouseLeaveTextBox}>
<input <input
name="input-group-value" name="input-group-value"
autocomplete={'' + props.autoComplete} autocomplete={'' + props.autoComplete}
@ -75,16 +76,24 @@ export default defineComponent({
onClick={onClickTextBox} onClick={onClickTextBox}
onFocus={onFocusTextBox} onFocus={onFocusTextBox}
onInput={onInput} onInput={onInput}
onKeydown={onMouseEnterTextBox} onKeydown={onKeyDownTextBox}
onKeyup={onKeyUpTextBox}
onMousedown={onMouseDownTextBox} onMousedown={onMouseDownTextBox}
/> />
<div class={buttonClass.value}> <div class={buttonClass.value}>
{showClearButton.value && ( {showClearButton.value && (
<span class="input-group-text input-group-clear"> <span class="input-group-text input-group-clear" onClick={onClearValue}>
<i class="f-icon modal_close"></i> <i class="f-icon modal_close"></i>
</span> </span>
)} )}
{props.buttonContent && <span class="input-group-text" v-html={props.buttonContent}></span>} {props.buttonContent && (
<span
class="input-group-text"
onClick={onClickButton}
onMouseenter={onMouseEnterButton}
onMouseleave={onMouseLeaveButton}
v-html={props.buttonContent}></span>
)}
</div> </div>
</div> </div>
</div> </div>

View File

@ -35,9 +35,11 @@ export interface UseClear {
/** /**
* *
*/ */
onMouseEnterTextBox: ($event: KeyboardEvent) => void; onMouseEnterTextBox: ($event: MouseEvent) => void;
/**
onMouseLeaveTextBox: ($event: Event) => void; *
*/
onMouseLeaveTextBox: ($event: MouseEvent) => void;
} }
export interface UseTextBox { export interface UseTextBox {
@ -79,9 +81,13 @@ export interface UseTextBox {
*/ */
onMouseDownTextBox: ($event: MouseEvent) => void; onMouseDownTextBox: ($event: MouseEvent) => void;
/** /**
* *
*/ */
onMouseOverTextBox: ($event: Event) => void; onKeyDownTextBox: ($event: Event) => void;
/**
*
*/
onKeyUpTextBox: ($event: Event) => void;
/** /**
* *
*/ */

View File

@ -29,6 +29,9 @@ export function useClear(props: ButtonEditProps, context: SetupContext): UseClea
} }
function onMouseEnterTextBox($event: Event) { function onMouseEnterTextBox($event: Event) {
if (!showClearButton.value) {
return;
}
if (this.value) { if (this.value) {
if (!props.editable) { if (!props.editable) {
if (!props.disable) { if (!props.disable) {
@ -44,6 +47,9 @@ export function useClear(props: ButtonEditProps, context: SetupContext): UseClea
} }
function onMouseLeaveTextBox($event: Event) { function onMouseLeaveTextBox($event: Event) {
if (!showClearButton.value) {
return;
}
hasShownClearButton.value = false; hasShownClearButton.value = false;
toggleClearIcon($event, false); toggleClearIcon($event, false);
} }

View File

@ -60,8 +60,12 @@ export function useTextBox(props: ButtonEditProps, context: SetupContext): UseTe
$event.stopPropagation(); $event.stopPropagation();
} }
function onMouseOverTextBox($event: Event) { function onKeyDownTextBox($event: Event) {
console.log('on onMouseOverInExtentInfo'); context.emit('keydown', $event);
}
function onKeyUpTextBox($event: Event) {
context.emit('keyup', $event);
} }
function onTextBoxValueChange(newValue: string, emit = true) { function onTextBoxValueChange(newValue: string, emit = true) {
@ -83,8 +87,9 @@ export function useTextBox(props: ButtonEditProps, context: SetupContext): UseTe
onClickTextBox, onClickTextBox,
onFocusTextBox, onFocusTextBox,
onInput, onInput,
onKeyDownTextBox,
onKeyUpTextBox,
onMouseDownTextBox, onMouseDownTextBox,
onMouseOverTextBox,
onTextBoxValueChange, onTextBoxValueChange,
}; };
} }