Browse Source

表单元素优化

main
likunming 6 months ago
parent
commit
bdce211ffc
  1. 18
      io.sc.platform.core.frontend/src/platform/components/checkbox/WCheckbox.vue
  2. 18
      io.sc.platform.core.frontend/src/platform/components/checkbox/WCheckboxGroup.vue
  3. 12
      io.sc.platform.core.frontend/src/platform/components/code-mirror/WCodeMirror.vue
  4. 10
      io.sc.platform.core.frontend/src/platform/components/color/WColorInput.vue
  5. 10
      io.sc.platform.core.frontend/src/platform/components/color/WColorInputPalette.vue
  6. 10
      io.sc.platform.core.frontend/src/platform/components/cron/WCron.vue
  7. 12
      io.sc.platform.core.frontend/src/platform/components/date/WDate.vue
  8. 12
      io.sc.platform.core.frontend/src/platform/components/date/WDateRange.vue
  9. 12
      io.sc.platform.core.frontend/src/platform/components/file/WFile.vue
  10. 25
      io.sc.platform.core.frontend/src/platform/components/form/FormField.ts
  11. 5
      io.sc.platform.core.frontend/src/platform/components/form/WForm.vue
  12. 14
      io.sc.platform.core.frontend/src/platform/components/grid/TreeGridRow.vue
  13. 10
      io.sc.platform.core.frontend/src/platform/components/icon/WIcon.vue
  14. 10
      io.sc.platform.core.frontend/src/platform/components/number/WNumber.vue
  15. 10
      io.sc.platform.core.frontend/src/platform/components/password/WPassword.vue
  16. 10
      io.sc.platform.core.frontend/src/platform/components/position/WPosition.vue
  17. 44
      io.sc.platform.core.frontend/src/platform/components/radio/WRadio.vue
  18. 10
      io.sc.platform.core.frontend/src/platform/components/select/WGridSelect.vue
  19. 10
      io.sc.platform.core.frontend/src/platform/components/select/WInputSelect.vue
  20. 10
      io.sc.platform.core.frontend/src/platform/components/select/WOrgSelect.vue
  21. 10
      io.sc.platform.core.frontend/src/platform/components/select/WSelect.vue
  22. 24
      io.sc.platform.core.frontend/src/platform/components/select/WUserSelect.vue
  23. 6
      io.sc.platform.core.frontend/src/platform/components/text-editor/WTextEditor.vue
  24. 20
      io.sc.platform.core.frontend/src/platform/components/text/WText.vue
  25. 10
      io.sc.platform.core.frontend/src/platform/components/textarea/WTextarea.vue
  26. 42
      io.sc.platform.core.frontend/src/views/likm/Dialog.vue
  27. 112
      io.sc.platform.core.frontend/src/views/likm/Drawer.vue
  28. 71
      io.sc.platform.core.frontend/src/views/likm/Form.vue
  29. 13
      io.sc.platform.core.frontend/src/views/likm/Grid.vue
  30. 2
      io.sc.platform.core.frontend/src/views/likm/InfoPanel.vue
  31. 22
      io.sc.platform.core.frontend/src/views/likm/Toolbar.vue

18
io.sc.platform.core.frontend/src/platform/components/checkbox/WCheckbox.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)" :class="props.outlined ? 'w-checkbox' : ''">
<div v-show="fieldMethodsClass.getShow(props, modelValue)" :class="props.outlined ? 'w-checkbox' : ''">
<template v-if="props.outlined">
<q-field
ref="checkboxRef"
@ -11,17 +11,17 @@
:borderless="!props.outlined"
:stack-label="true"
:dense="true"
:rules="FieldMethods.getRules(props, modelValue, checkboxRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:rules="fieldMethodsClass.getRules(props, modelValue, checkboxRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
>
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #append>
<q-checkbox
v-model="modelValue"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
></q-checkbox>
</template>
@ -32,8 +32,8 @@
ref="checkboxRef"
v-model="modelValue"
v-bind="attrs"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
></q-checkbox>
</template>

18
io.sc.platform.core.frontend/src/platform/components/checkbox/WCheckboxGroup.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)" :class="props.simple ? 'w-checkbox-group' : ''">
<div v-show="fieldMethodsClass.getShow(props, modelValue)" :class="props.simple ? 'w-checkbox-group' : ''">
<q-field
ref="checkboxGroupRef"
v-model="modelValue"
@ -10,12 +10,12 @@
:borderless="!props.outlined"
:stack-label="true"
:dense="true"
:rules="FieldMethods.getRules(props, modelValue, checkboxGroupRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:rules="fieldMethodsClass.getRules(props, modelValue, checkboxGroupRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
>
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template v-if="!props.simple" #control>
<div class="pt-[5px]">
<q-option-group
@ -24,8 +24,8 @@
:dense="props.dense"
:options="props.options"
:inline="props.inline"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
/>
</div>
</template>
@ -36,8 +36,8 @@
:dense="props.dense"
:options="props.options"
:inline="props.inline"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
/>
</template>
</q-field>

12
io.sc.platform.core.frontend/src/platform/components/code-mirror/WCodeMirror.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-field
ref="fieldRef"
v-model="modelValue"
@ -9,13 +9,13 @@
:dense="true"
v-bind="attrs"
style="position: relative"
:rules="FieldMethods.getRules(props, modelValue, fieldRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:rules="fieldMethodsClass.getRules(props, modelValue, fieldRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@focus.stop.prevent="focus"
@blur.stop.prevent="blur"
>
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #control>
<div v-if="editable && toolbar" class="w-full pt-2 border-b border-b-gray-200">
<Toolbar :source-code-editor="editorView" :user-defined-functions="userDefinedFunctions"></Toolbar>
@ -235,7 +235,7 @@ onMounted(() => {
basicSetup,
language.of(getLanguage(props.lang)),
tabSize.of(EditorState.tabSize.of(props.tabSize)),
EditorState.readOnly.of(FieldMethods.getReadOnly(props, modelValue.value)),
EditorState.readOnly.of(fieldMethodsClass.getReadOnly(props, modelValue.value)),
EditorView.theme({
'&': {
outline: 'none !important',

10
io.sc.platform.core.frontend/src/platform/components/color/WColorInput.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-input
ref="colorRef"
v-model="modelValue"
@ -8,12 +8,12 @@
:outlined="true"
:dense="true"
v-bind="attrs"
:rules="FieldMethods.getRules(props, modelValue, colorRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:rules="fieldMethodsClass.getRules(props, modelValue, colorRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
>
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template v-if="!props['form'] || (props['form'] && props['form'].getStatus() !== 'view')" #append>
<!-- 选择颜色按钮 -->
<q-btn

10
io.sc.platform.core.frontend/src/platform/components/color/WColorInputPalette.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-input
ref="colorRef"
v-model="modelValue"
@ -8,12 +8,12 @@
:outlined="true"
:dense="true"
v-bind="attrs"
:rules="FieldMethods.getRules(props, modelValue, colorRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:rules="fieldMethodsClass.getRules(props, modelValue, colorRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
>
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template v-if="!props['form'] || (props['form'] && props['form'].getStatus() !== 'view')" #append>
<!-- 选择颜色按钮 -->
<q-btn

10
io.sc.platform.core.frontend/src/platform/components/cron/WCron.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-input
ref="cronRef"
v-model="modelValue"
@ -8,13 +8,13 @@
:outlined="true"
:dense="true"
v-bind="attrs"
:rules="FieldMethods.getRules(props, modelValue, cronRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:rules="fieldMethodsClass.getRules(props, modelValue, cronRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
:v-bind="attrs"
@update:model-value="fieldMethodsClass.updateValue"
>
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template v-if="!props['form'] || (props['form'] && props['form'].getStatus() !== 'view')" #append>
<!-- 选择颜色按钮 -->
<q-btn icon="bi-pencil-square" padding="2px" flat square unelevated :title="$t('select')">

12
io.sc.platform.core.frontend/src/platform/components/date/WDate.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-input
ref="dateRef"
v-model="modelValue"
@ -8,9 +8,9 @@
:outlined="true"
:dense="true"
v-bind="attrs"
:rules="FieldMethods.getRules(props, modelValue, dateRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:rules="fieldMethodsClass.getRules(props, modelValue, dateRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
@focus="
() => {
@ -19,9 +19,9 @@
"
>
<template #label>
<w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label>
<w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label>
</template>
<template v-if="!FieldMethods.getReadOnly(props, modelValue)" #append>
<template v-if="!fieldMethodsClass.getReadOnly(props, modelValue)" #append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy cover transition-show="scale" transition-hide="scale">
<q-date v-model="modelValue" today-btn mask="YYYY-MM-DD" @update:model-value="fieldMethodsClass.updateValue"> </q-date>

12
io.sc.platform.core.frontend/src/platform/components/date/WDateRange.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-input
ref="dateRangeRef"
v-model="displayValueComputed"
@ -9,9 +9,9 @@
:dense="true"
v-bind="attrs"
:clearable="false"
:rules="FieldMethods.getRules(props, modelValue, dateRangeRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:rules="fieldMethodsClass.getRules(props, modelValue, dateRangeRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
@focus="
() => {
@ -20,9 +20,9 @@
"
>
<template #label>
<w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label>
<w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label>
</template>
<template v-if="!FieldMethods.getReadOnly(props, modelValue)" #append>
<template v-if="!fieldMethodsClass.getReadOnly(props, modelValue)" #append>
<q-btn v-if="!Tools.isEmpty(displayValueComputed)" flat square unelevated dense icon="cancel" @click="fieldMethodsClass.clearValue"></q-btn>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy cover transition-show="scale" transition-hide="scale">

12
io.sc.platform.core.frontend/src/platform/components/file/WFile.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-file
ref="fileRef"
v-model="modelValue"
@ -9,15 +9,15 @@
:dense="true"
:clearable="true"
v-bind="attrs"
:rules="FieldMethods.getRules(props, modelValue, fileRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:rules="fieldMethodsClass.getRules(props, modelValue, fileRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
>
<template #label>
<w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label>
<w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label>
</template>
<template v-if="!FieldMethods.getReadOnly(props, modelValue)" #append>
<template v-if="!fieldMethodsClass.getReadOnly(props, modelValue)" #append>
<q-icon name="attachment" />
</template>
</q-file>

25
io.sc.platform.core.frontend/src/platform/components/form/FormField.ts

@ -25,13 +25,13 @@ export abstract class FormFieldMethods {
abstract clearValue(): void;
// 获取验证规则集结果
static getRules = (props_, value_, componentRef_, defaultValue_) => {
getRules(props_, value_, componentRef_, defaultValue_) {
let result = props_.rules || <any>[];
if (!Tools.isEmpty(defaultValue_)) {
result.push(...defaultValue_);
}
const showResult = FormFieldMethods.getShow(props_, value_);
const requiredResult = FormFieldMethods.getRequired(props_, value_);
const showResult = this.getShow(props_, value_);
const requiredResult = this.getRequired(props_, value_);
if (showResult && requiredResult) {
result.push(FormValidators.required());
} else if (!showResult) {
@ -41,9 +41,10 @@ export abstract class FormFieldMethods {
componentRef_.value.resetValidation();
}
return result;
};
}
// 获取是否必填结果
static getRequired = (props_, value_) => {
getRequired(props_, value_) {
if (!Tools.isEmpty(props_.requiredIf)) {
if (typeof props_.requiredIf === 'boolean') {
return props_.requiredIf;
@ -52,9 +53,9 @@ export abstract class FormFieldMethods {
}
}
return false;
};
}
// 获取是否显示结果
static getShow = (props_, value_) => {
getShow(props_, value_) {
if (!Tools.isEmpty(props_.showIf)) {
if (typeof props_.showIf === 'boolean') {
return props_.showIf;
@ -63,9 +64,9 @@ export abstract class FormFieldMethods {
}
}
return true;
};
}
// 获取是否只读结果
static getReadOnly = (props_, value_) => {
getReadOnly(props_, value_) {
if (props_.form && props_.form.getStatus() === 'view') {
return true;
}
@ -77,9 +78,9 @@ export abstract class FormFieldMethods {
}
}
return false;
};
}
// 获取是否禁用结果
static getDisable = (props_, value_) => {
getDisable(props_, value_) {
if (!Tools.isEmpty(props_.disableIf)) {
if (typeof props_.disableIf === 'boolean') {
return props_.disableIf;
@ -88,5 +89,5 @@ export abstract class FormFieldMethods {
}
}
return false;
};
}
}

5
io.sc.platform.core.frontend/src/platform/components/form/WForm.vue

@ -11,7 +11,7 @@
v-bind="field"
:form="instance"
:class="
(field.colsFirst ? 'col-start-1 ' : ' ') +
(field.colFirst ? 'col-start-1 ' : ' ') +
(field.colSpan === 'full'
? ' col-span-' + screenColsNumComputed
: field.colSpan && screenColsNumComputed >= field.colSpan
@ -25,11 +25,10 @@
<component
:is="field.type"
:ref="(el) => setComponentRef(el, field.name)"
:form-ref="formRef"
v-bind="field"
:form="instance"
:class="
(field.colsFirst ? 'col-start-1 ' : ' ') +
(field.colFirst ? 'col-start-1 ' : ' ') +
(field.colSpan === 'full'
? ' col-span-' + screenColsNumComputed
: field.colSpan && screenColsNumComputed >= field.colSpan

14
io.sc.platform.core.frontend/src/platform/components/grid/TreeGridRow.vue

@ -684,12 +684,22 @@ const click = (evt, row, rowIndex) => {
}
row[table.selectedField] = true;
if (props.grid.props.onRowClick) {
props.grid.props.onRowClick(evt, row, rowIndex);
props.grid.props.onRowClick({
grid: props.grid,
evt: evt,
row: row,
index: rowIndex,
});
}
}
};
const dbClick = (evt, row, rowIndex) => {
props.gridRowDbClick(evt, row, rowIndex);
props.gridRowDbClick({
grid: props.grid,
evt: evt,
row: row,
index: rowIndex,
});
};
const setComponentRef = (el, row, col) => {

10
io.sc.platform.core.frontend/src/platform/components/icon/WIcon.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-input
ref="iconRef"
v-model="modelValue"
@ -8,12 +8,12 @@
:outlined="true"
:dense="true"
v-bind="attrs"
:rules="FieldMethods.getRules(props, modelValue, iconRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:rules="fieldMethodsClass.getRules(props, modelValue, iconRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
>
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #prepend>
<q-icon v-if="modelValue" :name="modelValue"> </q-icon>
<w-icon-empty v-else></w-icon-empty>

10
io.sc.platform.core.frontend/src/platform/components/number/WNumber.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-input
ref="numberRef"
v-model="modelValue"
@ -10,12 +10,12 @@
v-bind="attrs"
type="number"
title=""
:rules="FieldMethods.getRules(props, modelValue, numberRef, [FormValidators.maxPrecision(props.precision)])"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:rules="fieldMethodsClass.getRules(props, modelValue, numberRef, [FormValidators.maxPrecision(props.precision)])"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
>
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
</q-input>
</div>
</template>

10
io.sc.platform.core.frontend/src/platform/components/password/WPassword.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-input
ref="pwdRef"
v-model="modelValue"
@ -10,12 +10,12 @@
v-bind="attrs"
type="password"
autocomplete="off"
:rules="FieldMethods.getRules(props, modelValue, pwdRef, undefined)"
::readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:rules="fieldMethodsClass.getRules(props, modelValue, pwdRef, undefined)"
::readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
>
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
</q-input>
</div>
</template>

10
io.sc.platform.core.frontend/src/platform/components/position/WPosition.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-input
ref="positionRef"
v-model="modelValue"
@ -8,12 +8,12 @@
:outlined="true"
:dense="true"
v-bind="attrs"
:rules="FieldMethods.getRules(props, modelValue, positionRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:rules="fieldMethodsClass.getRules(props, modelValue, positionRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
>
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template v-if="!props['form'] || (props['form'] && props['form'].getStatus() !== 'view')" #append>
<!-- 选择位置按钮 -->
<q-btn

44
io.sc.platform.core.frontend/src/platform/components/radio/WRadio.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)" :class="props.simple ? 'w-radio' : ''">
<div v-show="fieldMethodsClass.getShow(props, modelValue)" :class="props.simple ? 'w-radio' : ''">
<q-field
ref="radioRef"
v-model="modelValue"
@ -11,37 +11,53 @@
:stack-label="true"
:dense="true"
:clearable="false"
:rules="FieldMethods.getRules(props, modelValue, radioRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:rules="fieldMethodsClass.getRules(props, modelValue, radioRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
>
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template v-if="!props.simple && !Tools.isEmpty(modelValue) && props.clearable" #append>
<q-btn flat square unelevated dense icon="cancel" @click="fieldMethodsClass.clearValue"></q-btn>
</template>
<template v-else-if="!props.simple" #control>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template v-if="!props.simple" #control>
<div class="pt-[5px]">
<q-option-group
v-model="modelValue"
:dense="props.dense"
:options="props.options"
:inline="props.inline"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
/>
</div>
</template>
<template v-if="!props.simple" #append>
<q-btn
v-if="!Tools.isEmpty(modelValue) && props.clearable"
flat
square
unelevated
dense
icon="cancel"
@click.stop.prevent="fieldMethodsClass.clearValue"
></q-btn>
</template>
<template v-else #append>
<q-option-group
v-model="modelValue"
:dense="props.dense"
:options="props.options"
:inline="props.inline"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
/>
<q-btn v-if="!Tools.isEmpty(modelValue) && props.clearable" flat square unelevated dense icon="cancel" @click="fieldMethodsClass.clearValue"></q-btn>
<q-btn
v-if="!Tools.isEmpty(modelValue) && props.clearable"
flat
square
unelevated
dense
icon="cancel"
@click.stop.prevent="fieldMethodsClass.clearValue"
></q-btn>
</template>
</q-field>
</div>

10
io.sc.platform.core.frontend/src/platform/components/select/WGridSelect.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-input
ref="textSelectRef"
v-model="displayValueComputed"
@ -11,9 +11,9 @@
v-bind="attrs"
:bottom-slots="counter"
type="text"
:rules="FieldMethods.getRules(props, { value: modelValue, displayValue: displayValueComputed }, textSelectRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, { value: modelValue, displayValue: displayValueComputed })"
:disable="FieldMethods.getDisable(props, { value: modelValue, displayValue: displayValueComputed })"
:rules="fieldMethodsClass.getRules(props, { value: modelValue, displayValue: displayValueComputed }, textSelectRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, { value: modelValue, displayValue: displayValueComputed })"
:disable="fieldMethodsClass.getDisable(props, { value: modelValue, displayValue: displayValueComputed })"
:clearable="false"
@update:model-value="fieldMethodsClass.updateValue"
@focus="
@ -23,7 +23,7 @@
"
>
<!-- label -->
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template v-if="!props['form'] || (props['form'] && props['form'].getStatus() !== 'view')" #append>
<q-btn v-if="!Tools.isEmpty(displayValueComputed)" flat square unelevated dense icon="cancel" @click="fieldMethodsClass.clearValue"></q-btn>

10
io.sc.platform.core.frontend/src/platform/components/select/WInputSelect.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-input
ref="textSelectRef"
v-model="modelDisplayValue"
@ -11,13 +11,13 @@
v-bind="attrs"
:bottom-slots="counter"
type="text"
:rules="FieldMethods.getRules(props, { value: modelValue, displayValue: modelDisplayValue }, textSelectRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, { value: modelValue, displayValue: modelDisplayValue })"
:disable="FieldMethods.getDisable(props, { value: modelValue, displayValue: modelDisplayValue })"
:rules="fieldMethodsClass.getRules(props, { value: modelValue, displayValue: modelDisplayValue }, textSelectRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, { value: modelValue, displayValue: modelDisplayValue })"
:disable="fieldMethodsClass.getDisable(props, { value: modelValue, displayValue: modelDisplayValue })"
:clearable="false"
@update:model-value="fieldMethodsClass.updateValue"
>
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template v-if="!props['form'] || (props['form'] && props['form'].getStatus() !== 'view')" #append>
<q-btn v-if="!Tools.isEmpty(modelValue)" flat square unelevated dense icon="cancel" @click="fieldMethodsClass.clearValue"></q-btn>
<q-btn flat square unelevated dense :icon="isShow ? 'arrow_drop_up' : 'arrow_drop_down'" @click="() => (isShow = !isShow)">

10
io.sc.platform.core.frontend/src/platform/components/select/WOrgSelect.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-input
ref="textSelectRef"
v-model="displayValueComputed"
@ -11,9 +11,9 @@
v-bind="attrs"
:bottom-slots="counter"
type="text"
:rules="FieldMethods.getRules(props, { value: modelValue, displayValue: displayValueComputed }, textSelectRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, { value: modelValue, displayValue: displayValueComputed })"
:disable="FieldMethods.getDisable(props, { value: modelValue, displayValue: displayValueComputed })"
:rules="fieldMethodsClass.getRules(props, { value: modelValue, displayValue: displayValueComputed }, textSelectRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, { value: modelValue, displayValue: displayValueComputed })"
:disable="fieldMethodsClass.getDisable(props, { value: modelValue, displayValue: displayValueComputed })"
:clearable="false"
@update:model-value="fieldMethodsClass.updateValue"
@focus="
@ -22,7 +22,7 @@
}
"
>
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template v-if="!props['form'] || (props['form'] && props['form'].getStatus() !== 'view')" #append>
<q-btn v-if="!Tools.isEmpty(displayValueComputed)" flat square unelevated dense icon="cancel" @click="fieldMethodsClass.clearValue"></q-btn>
<q-btn flat square unelevated dense icon="saved_search">

10
io.sc.platform.core.frontend/src/platform/components/select/WSelect.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-select
ref="selectRef"
v-model="modelValue"
@ -10,12 +10,12 @@
:outlined="true"
:dense="true"
v-bind="attrs"
:rules="FieldMethods.getRules(props, modelValue, selectRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:rules="fieldMethodsClass.getRules(props, modelValue, selectRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
>
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
</q-select>
</div>
</template>

24
io.sc.platform.core.frontend/src/platform/components/select/WUserSelect.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-input
ref="textSelectRef"
v-model="displayValueComputed"
@ -11,9 +11,9 @@
v-bind="attrs"
:bottom-slots="counter"
type="text"
:rules="FieldMethods.getRules(props, { value: modelValue, displayValue: displayValueComputed }, textSelectRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, { value: modelValue, displayValue: displayValueComputed })"
:disable="FieldMethods.getDisable(props, { value: modelValue, displayValue: displayValueComputed })"
:rules="fieldMethodsClass.getRules(props, { value: modelValue, displayValue: displayValueComputed }, textSelectRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, { value: modelValue, displayValue: displayValueComputed })"
:disable="fieldMethodsClass.getDisable(props, { value: modelValue, displayValue: displayValueComputed })"
:clearable="false"
@update:model-value="fieldMethodsClass.updateValue"
@focus="
@ -22,7 +22,7 @@
}
"
>
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template v-if="!props['form'] || (props['form'] && props['form'].getStatus() !== 'view')" #append>
<q-btn v-if="!Tools.isEmpty(displayValueComputed)" flat square unelevated dense icon="cancel" @click="fieldMethodsClass.clearValue"></q-btn>
<q-btn flat square unelevated dense icon="person_search">
@ -118,16 +118,16 @@ const props = withDefaults(defineProps<FieldProps>(), {
valueUseId: false,
/**
* 显示值配置可使用选项
* account用户登陆账号
* code用户登陆账号
* name用户名
* nameAppendAccount用户名追加登陆账号示例张三(zhangsan)组件默认使用该选项
* accountAppendName账号追加用户名示例zhangsan(张三)
* nameAppendCode用户名追加登陆账号示例张三(zhangsan)组件默认使用该选项
* codeAppendName账号追加用户名示例zhangsan(张三)
* 自定义函数自己定义显示的内容组件会将用户数据传到函数中函数必须返回一个字符串示例
* displayValue: (args) => {
* return args['data']['loginName'] + '_' + args['data']['userName'];
* }
*/
displayValue: 'nameAppendAccount',
displayValue: 'nameAppendCode',
});
class FieldMethods extends FormFieldMethods {
updateValue = (value_) => {
@ -197,13 +197,13 @@ const getActualDisplayValue = (row) => {
userGrid: userGridRef.value,
});
} else if (!Tools.isEmpty(props.displayValue) && typeof props.displayValue === 'string') {
if (props.displayValue === 'account') {
if (props.displayValue === 'code') {
return row['loginName'];
} else if (props.displayValue === 'name') {
return row['userName'];
} else if (props.displayValue === 'accountAppendName') {
} else if (props.displayValue === 'codeAppendName') {
return row['loginName'] + '(' + row['userName'] + ')';
} else if (props.displayValue === 'nameAppendAccount') {
} else if (props.displayValue === 'nameAppendCode') {
return row['userName'] + '(' + row['loginName'] + ')';
}
}

6
io.sc.platform.core.frontend/src/platform/components/text-editor/WTextEditor.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-editor
ref="textEditorRef"
v-model="modelValue"
@ -29,8 +29,8 @@
['print', 'fullscreen'],
]"
v-bind="attrs"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
>
<template #label>

20
io.sc.platform.core.frontend/src/platform/components/text/WText.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-input
ref="textRef"
v-model="modelValue"
@ -9,12 +9,12 @@
:dense="true"
v-bind="attrs"
type="text"
:rules="FieldMethods.getRules(props, modelValue, textRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:rules="fieldMethodsClass.getRules(props, modelValue, textRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
>
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
</q-input>
</div>
</template>
@ -56,19 +56,19 @@ class FieldMethods extends FormFieldMethods {
const fieldMethodsClass = new FieldMethods();
// const showComputed = computed(() => {
// return FieldMethods.getShow(props, modelValue.value);
// return fieldMethodsClass.getShow(props, modelValue.value);
// });
// const rulesComputed = computed(() => {
// return FieldMethods.getRules(props, modelValue.value, textRef, undefined);
// return fieldMethodsClass.getRules(props, modelValue.value, textRef, undefined);
// });
// const readOnlyComputed = computed(() => {
// return FieldMethods.getReadOnly(props, modelValue.value);
// return fieldMethodsClass.getReadOnly(props, modelValue.value);
// });
// const disableComputed = computed(() => {
// return FieldMethods.getDisable(props, modelValue.value);
// return fieldMethodsClass.getDisable(props, modelValue.value);
// });
// const requiredComputed = computed(() => {
// return FieldMethods.getRequired(props, modelValue.value);
// return fieldMethodsClass.getRequired(props, modelValue.value);
// });
defineExpose({

10
io.sc.platform.core.frontend/src/platform/components/textarea/WTextarea.vue

@ -1,5 +1,5 @@
<template>
<div v-show="FieldMethods.getShow(props, modelValue)">
<div v-show="fieldMethodsClass.getShow(props, modelValue)">
<q-input
ref="textareaRef"
v-model="modelValue"
@ -9,12 +9,12 @@
:dense="true"
v-bind="attrs"
type="textarea"
:rules="FieldMethods.getRules(props, modelValue, textareaRef, undefined)"
:readonly="FieldMethods.getReadOnly(props, modelValue)"
:disable="FieldMethods.getDisable(props, modelValue)"
:rules="fieldMethodsClass.getRules(props, modelValue, textareaRef, undefined)"
:readonly="fieldMethodsClass.getReadOnly(props, modelValue)"
:disable="fieldMethodsClass.getDisable(props, modelValue)"
@update:model-value="fieldMethodsClass.updateValue"
>
<template #label><w-label :required="FieldMethods.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
<template #label><w-label :required="fieldMethodsClass.getRequired(props, modelValue)" :label="attrs.label"></w-label></template>
</q-input>
</div>
</template>

42
io.sc.platform.core.frontend/src/views/likm/Dialog.vue

@ -2,37 +2,33 @@
<div>
<w-dialog
ref="dialogRef"
title="标题"
width="60%"
height="60%"
:buttons="[
{
label: '测试',
click: aaaaa,
icon: 'beenhere',
label: '保存',
loading: false,
click: () => {},
},
]"
@hide="aaaaa"
>
<q-splitter v-model="aa" style="height: 100%">
<template #before>
<q-input></q-input><q-input></q-input><q-input></q-input><q-input></q-input><q-input></q-input><q-input></q-input><q-input></q-input
><q-input></q-input><q-input></q-input><q-input></q-input><q-input></q-input>
</template>
<template #after> 22222 </template>
</q-splitter>
<template #buttons> <q-btn label="xxx"></q-btn> </template
></w-dialog>
我是窗口内容 <br />我是窗口内容 <br />我是窗口内容 <br />我是窗口内容 <br />我是窗口内容 <br />我是窗口内容 <br />我是窗口内容 <br />我是窗口内容 <br />
我是窗口内容 <br />我是窗口内容 <br />我是窗口内容 <br />我是窗口内容 <br />我是窗口内容 <br />我是窗口内容 <br />我是窗口内容 <br />我是窗口内容 <br />
</w-dialog>
<q-btn
label="弹出窗口"
@click="
() => {
dialogRef.show();
}
"
></q-btn>
</div>
</template>
<script setup lang="ts">
import { ref, reactive, onMounted } from 'vue';
import { ref } from 'vue';
const dialogRef = ref();
const aa = ref(50);
const aaaaa = (e) => {
console.info('dddddddddddddd', e);
};
onMounted(() => {
console.info('dialogRef====', dialogRef);
dialogRef.value.show();
});
</script>

112
io.sc.platform.core.frontend/src/views/likm/Drawer.vue

@ -1,34 +1,88 @@
<template>
<div>
<q-btn label="弹出" @click="click"></q-btn>
<w-drawer
ref="drawerRef"
title="xxx"
:maximized="false"
:buttons="[
{
label: '测试',
<div class="w-[500px] h-[300px]">
<w-echarts
:option="{
title: {
left: 'center',
text: '资产余额',
},
]"
>
1111
<template #buttons> <q-btn label="xxx"></q-btn> </template>
</w-drawer>
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow',
},
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true,
},
dataZoom: [
{
type: 'slider',
show: true, //
borderColor: '#2563eb', //
showDetail: false, // detail
startValue: 0, //
endValue: 10, //
filterMode: 'empty',
width: '80%', //
height: 8, //
left: 'center', //
zoomLoxk: true, //
handleSize: 0, //
bottom: 0, //
},
{
type: 'inside',
zoomOnMouseWheel: false, //
moveOnMouseMove: true, //
moveOnMouseWheel: true, //
},
],
xAxis: [
{
type: 'category',
data: [
'黄浦支行',
'徐汇支行',
'长宁支行',
'静安支行',
'普陀支行',
'虹口支行',
'杨浦支行',
'浦东支行',
'闵行支行',
'宝山支行',
'嘉定支行',
'金山支行',
'松江支行',
'青浦支行',
'奉贤支行',
'崇明支行',
],
axisTick: {
alignWithLabel: true,
},
},
],
yAxis: [
{
type: 'value',
name: '单位:万元',
},
],
series: [
{
type: 'bar',
barWidth: '10%',
data: [1700, 1600, 1500, 1400, 1300, 1200, 1100, 1000, 900, 800, 600, 500, 400, 300, 200, 100],
},
],
}"
></w-echarts>
</div>
</template>
<script setup lang="ts">
import { ref, reactive, onMounted } from 'vue';
import { IconEnum } from '@/platform/enums';
const drawerRef = ref();
const aa = ref(50);
const aaaaa = (e) => {
console.info('dddddddddddddd', e);
};
const click = () => {
drawerRef.value.show();
};
onMounted(() => {});
</script>
<script setup lang="ts"></script>

71
io.sc.platform.core.frontend/src/views/likm/Form.vue

@ -1,5 +1,41 @@
<template>
<div>
<br />
<br />
<br />
<br />
<br />
<div class="flex justify-center">
<div class="w-[800px]">
<w-text-editor label="富文本组件" :required-if="true"></w-text-editor>
<br />
</div>
<!-- <div class="pl-[20px]">自定义表格选择值: {{ arr1ModelValue }} <br /><br /><br /></div> -->
</div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<w-form
ref="formRef"
:fields="[
@ -8,6 +44,12 @@
label: '文本框',
type: 'w-text',
requiredIf: true,
rules: [
(value) => {
console.info('value====', value);
return true;
},
],
},
{
name: 'test2',
@ -19,9 +61,7 @@
{ label: '男', value: 1 },
{ label: '女', value: 0 },
],
onUpdateValue: (args) => {
console.info('value========', args);
},
onUpdateValue: (args) => {},
},
{
name: 'test2.5',
@ -122,6 +162,7 @@
label: '单选按钮',
type: 'w-radio',
requiredIf: true,
simple: false,
options: [
{ label: '已婚', value: 1 },
{ label: '单身', value: 2 },
@ -189,6 +230,9 @@
colsFirst: true,
colSpan: '2',
rows: 3,
onUpdateValue: (args) => {
console.info('args====', args);
},
},
{
name: 'test99',
@ -208,6 +252,11 @@
},
]"
:cols-x-gap="8"
@update-value="
(args) => {
console.info('form.updateValue=====', args);
}
"
>
</w-form>
<q-btn label="提交" @click="submit"></q-btn>&nbsp; <q-btn label="重置" @click="reset"></q-btn>&nbsp;
@ -215,12 +264,18 @@
</div>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue';
import { EnumTools, Options, Environment, Formater } from '@/platform';
import { FormValidators } from '@/platform/components';
import { useI18n } from 'vue-i18n';
import { ref } from 'vue';
import { Environment, Formater } from '@/platform';
const booleanModelValue = ref(false);
const string1ModelValue = ref('');
const string2ModelValue = ref('');
const numberModelValue = ref(1);
const objectModelValue = ref(undefined);
const arr1ModelValue = ref([]);
const arr2ModelValue = ref([]);
const arr3ModelValue = ref([]);
const { t } = useI18n();
const formRef = ref();
const submit = async () => {

13
io.sc.platform.core.frontend/src/views/likm/Grid.vue

@ -16,6 +16,19 @@
{ name: 'lastModifier', label: '最后修改人', align: 'center' },
{ name: 'lastModifyDate', label: '最后修改日期', align: 'center' },
]"
:editor="{
dialog: {
width: '80%',
height: '80%',
},
form: {
colsNum: 2,
fields: [
{ name: 'code', label: '编码', type: 'w-text' },
{ name: 'name', label: '名称', type: 'w-text' },
],
},
}"
@row-click="rowClick"
>
</w-grid>

2
io.sc.platform.core.frontend/src/views/likm/InfoPanel.vue

@ -4,8 +4,6 @@
</div>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue';
const infoArray = [
{ label: '姓名', value: '张三' },
{ label: '年龄', value: 18 },

22
io.sc.platform.core.frontend/src/views/likm/Toolbar.vue

@ -9,8 +9,6 @@
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue';
const toolbar = {
xGap: 8,
noIcon: false,
@ -132,22 +130,10 @@ const toolbar = {
console.info('删除');
},
},
// { icon: 'home', label: '1' },
// { separator: true },
// { icon: 'home', label: '2' },
// { icon: 'home', label: '3' },
// { icon: 'home', label: '4' },
// { separator: true },
// { separator: true },
// { icon: 'home', label: '5' },
// { icon: 'home', label: '6' },
// { icon: 'home', label: '7' },
// { icon: 'home', label: '8' },
// { icon: 'home', label: '9' },
// { icon: 'home', label: '10' },
// { icon: 'home', label: '11' },
// { icon: 'home', label: '12' },
// { icon: 'home', label: '13' },
{ name: 'home1', icon: 'home', label: '测试1' },
{ name: 'home2', icon: 'home', label: '测试2' },
{ name: 'home3', icon: 'home', label: '测试3' },
{ name: 'home4', icon: 'home', label: '测试4' },
],
};
</script>

Loading…
Cancel
Save