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',
'iconMouseEnter',
'iconMouseLeave',
'keyupHandle',
'keydownHandle',
'keyup',
'keydown',
'inputClick',
'input',
'update:modelValue',
@ -41,8 +41,9 @@ export default defineComponent({
onClickTextBox,
onFocusTextBox,
onInput,
onKeyDownTextBox,
onKeyUpTextBox,
onMouseDownTextBox,
onMouseOverTextBox,
onTextBoxValueChange,
} = useTextBox(props, context);
@ -57,7 +58,7 @@ export default defineComponent({
return () => {
return (
<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
name="input-group-value"
autocomplete={'' + props.autoComplete}
@ -75,16 +76,24 @@ export default defineComponent({
onClick={onClickTextBox}
onFocus={onFocusTextBox}
onInput={onInput}
onKeydown={onMouseEnterTextBox}
onKeydown={onKeyDownTextBox}
onKeyup={onKeyUpTextBox}
onMousedown={onMouseDownTextBox}
/>
<div class={buttonClass.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>
</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>

View File

@ -35,9 +35,11 @@ export interface UseClear {
/**
*
*/
onMouseEnterTextBox: ($event: KeyboardEvent) => void;
onMouseLeaveTextBox: ($event: Event) => void;
onMouseEnterTextBox: ($event: MouseEvent) => void;
/**
*
*/
onMouseLeaveTextBox: ($event: MouseEvent) => void;
}
export interface UseTextBox {
@ -79,9 +81,13 @@ export interface UseTextBox {
*/
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) {
if (!showClearButton.value) {
return;
}
if (this.value) {
if (!props.editable) {
if (!props.disable) {
@ -44,6 +47,9 @@ export function useClear(props: ButtonEditProps, context: SetupContext): UseClea
}
function onMouseLeaveTextBox($event: Event) {
if (!showClearButton.value) {
return;
}
hasShownClearButton.value = false;
toggleClearIcon($event, false);
}

View File

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