Browse Source

表格优化提交

main
likunming 8 months ago
parent
commit
d796950ffc
  1. 2
      io.sc.platform.core.frontend/package.json
  2. 21
      io.sc.platform.core.frontend/src/platform/components/form/WForm.vue
  3. 4
      io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue

2
io.sc.platform.core.frontend/package.json

@ -1,6 +1,6 @@
{
"name": "platform-core",
"version": "8.1.237",
"version": "8.1.238",
"description": "前端核心包,用于快速构建前端的脚手架",
"//main": "库的主文件",
"main": "dist/platform-core.js",

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

@ -3,9 +3,10 @@
<q-form ref="formRef" :autofocus="false" :greedy="true" v-bind="attrs">
<div v-if="fieldsComputed.length > 0" class="grid" :class="formLayoutComputed">
<template v-for="(field, index) in fieldsComputed as any" :key="String(index)">
<template v-if="field.name">
<component
:is="fiedType[field.type] || field.type"
v-if="field.name"
:ref="(el) => setComponentRef(el, field.name)"
v-model="formData[field.name]"
v-bind="field"
:form="instance"
@ -19,9 +20,11 @@
"
@update:model-value="updateModelValue(field.name, formData[field.name])"
></component>
</template>
<template v-else>
<component
:is="fiedType[field.type] || field.type"
v-else
:ref="(el) => setComponentRef(el, field.name)"
:form-ref="formRef"
v-bind="field"
:form="instance"
@ -35,6 +38,7 @@
"
></component>
</template>
</template>
</div>
<slot></slot>
</q-form>
@ -49,6 +53,8 @@ import { PageStatusEnum } from '@/platform/components/utils';
const $q = useQuasar();
const attrs = useAttrs();
const componentRef = ref({});
const props = defineProps({
modelValue: {
type: Object,
@ -207,6 +213,12 @@ const updateModelValue = (name, value) => {
}
};
const setComponentRef = (el, fieldName) => {
if (el) {
componentRef.value[fieldName] = el;
}
};
/**
* 对外暴露方法-获取form所有数据
*/
@ -323,6 +335,10 @@ const getFields = () => {
return formFields;
};
const getFieldComponent = (name) => {
return componentRef.value[name];
};
defineExpose({
getFields,
getData,
@ -335,6 +351,7 @@ defineExpose({
getStatus,
getColsNum,
setValidationErrors,
getFieldComponent,
});
const instance = getCurrentInstance();

4
io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue

@ -1743,6 +1743,9 @@ const wrapCsvValue = (val, formatFn, row) => {
return `"${formatted}"`;
};
const getLocalData = () => {
return toRaw(table.rows);
};
//
const setLocalData = (rows: any) => {
if (props.tree && props.treeRelationship === 'parent') {
@ -2596,6 +2599,7 @@ defineExpose({
getTickedRows,
getRows,
refresh,
getLocalData,
setLocalData,
replaceRow,
removeRows,

Loading…
Cancel
Save