mirror of
https://github.com/soybeanjs/soybean-admin.git
synced 2025-10-15 14:23:41 +08:00
Compare commits
3 Commits
65891a94d2
...
510ecfbe8b
Author | SHA1 | Date | |
---|---|---|---|
|
510ecfbe8b | ||
|
38b91d8c6a | ||
|
7db195e86a |
1
pnpm-lock.yaml
generated
1
pnpm-lock.yaml
generated
@@ -6961,7 +6961,6 @@ snapshots:
|
|||||||
- vue
|
- vue
|
||||||
|
|
||||||
'@vicons/antd@0.13.0': {}
|
'@vicons/antd@0.13.0': {}
|
||||||
|
|
||||||
'@visactor/vchart-theme@1.12.2(@visactor/vchart@1.13.7)':
|
'@visactor/vchart-theme@1.12.2(@visactor/vchart@1.13.7)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@visactor/vchart': 1.13.7
|
'@visactor/vchart': 1.13.7
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { computed } from 'vue';
|
import { computed } from 'vue';
|
||||||
import { darkTheme } from 'naive-ui';
|
import { NConfigProvider, darkTheme } from 'naive-ui';
|
||||||
import type { WatermarkProps } from 'naive-ui';
|
import type { WatermarkProps } from 'naive-ui';
|
||||||
import { useAppStore } from './store/modules/app';
|
import { useAppStore } from './store/modules/app';
|
||||||
import { useThemeStore } from './store/modules/theme';
|
import { useThemeStore } from './store/modules/theme';
|
||||||
@@ -41,7 +41,7 @@ const watermarkProps = computed<WatermarkProps>(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<ProConfigProvider
|
<NConfigProvider
|
||||||
:theme="naiveDarkTheme"
|
:theme="naiveDarkTheme"
|
||||||
:theme-overrides="themeStore.naiveTheme"
|
:theme-overrides="themeStore.naiveTheme"
|
||||||
:locale="naiveLocale"
|
:locale="naiveLocale"
|
||||||
@@ -52,7 +52,7 @@ const watermarkProps = computed<WatermarkProps>(() => {
|
|||||||
<RouterView class="bg-layout" />
|
<RouterView class="bg-layout" />
|
||||||
<NWatermark v-if="themeStore.watermark.visible" v-bind="watermarkProps" />
|
<NWatermark v-if="themeStore.watermark.visible" v-bind="watermarkProps" />
|
||||||
</AppProvider>
|
</AppProvider>
|
||||||
</ProConfigProvider>
|
</NConfigProvider>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped></style>
|
||||||
|
@@ -1,6 +1,5 @@
|
|||||||
import { dateEnUS, dateZhCN, enUS } from 'naive-ui';
|
import { dateEnUS, dateZhCN, enUS, zhCN } from 'naive-ui';
|
||||||
import type { NDateLocale, NLocale } from 'naive-ui';
|
import type { NDateLocale, NLocale } from 'naive-ui';
|
||||||
import { zhCN } from 'pro-naive-ui';
|
|
||||||
|
|
||||||
export const naiveLocales: Record<App.I18n.LangType, NLocale> = {
|
export const naiveLocales: Record<App.I18n.LangType, NLocale> = {
|
||||||
'zh-CN': zhCN,
|
'zh-CN': zhCN,
|
||||||
|
@@ -630,7 +630,7 @@ export const generatedRoutes: GeneratedRoute[] = [
|
|||||||
title: 'pro-naive',
|
title: 'pro-naive',
|
||||||
i18nKey: 'route.pro-naive',
|
i18nKey: 'route.pro-naive',
|
||||||
order: 7,
|
order: 7,
|
||||||
icon:'material-symbols-light:demography-outline-rounded'
|
icon: 'material-symbols-light:demography-outline-rounded'
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
@@ -639,7 +639,7 @@ export const generatedRoutes: GeneratedRoute[] = [
|
|||||||
meta: {
|
meta: {
|
||||||
title: 'pro-naive_form',
|
title: 'pro-naive_form',
|
||||||
i18nKey: 'route.pro-naive_form',
|
i18nKey: 'route.pro-naive_form',
|
||||||
icon:'fluent:form-28-regular'
|
icon: 'fluent:form-28-regular'
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
@@ -677,7 +677,7 @@ export const generatedRoutes: GeneratedRoute[] = [
|
|||||||
meta: {
|
meta: {
|
||||||
title: 'pro-naive_table',
|
title: 'pro-naive_table',
|
||||||
i18nKey: 'route.pro-naive_table',
|
i18nKey: 'route.pro-naive_table',
|
||||||
icon:'mynaui:table'
|
icon: 'mynaui:table'
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
17
src/views/pro-naive/ConfigProvider.vue
Normal file
17
src/views/pro-naive/ConfigProvider.vue
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<script setup lang="tsx">
|
||||||
|
import { computed } from 'vue';
|
||||||
|
import { zhCN } from 'pro-naive-ui';
|
||||||
|
import { useAppStore } from '@/store/modules/app';
|
||||||
|
|
||||||
|
const appStore = useAppStore();
|
||||||
|
|
||||||
|
const locale = computed(() => {
|
||||||
|
return appStore.locale === 'zh-CN' ? zhCN : undefined;
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<ProConfigProvider :locale="locale" class="h-full">
|
||||||
|
<slot></slot>
|
||||||
|
</ProConfigProvider>
|
||||||
|
</template>
|
@@ -1,8 +1,9 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import { useMessage } from 'naive-ui';
|
import { useMessage } from 'naive-ui';
|
||||||
import { createProForm } from 'pro-naive-ui';
|
import { createProForm, zhCN } from 'pro-naive-ui';
|
||||||
import { $t } from '@/locales';
|
import { $t } from '@/locales';
|
||||||
|
import ConfigProvider from '../../ConfigProvider.vue';
|
||||||
|
|
||||||
const submiting = ref(false);
|
const submiting = ref(false);
|
||||||
const message = useMessage();
|
const message = useMessage();
|
||||||
@@ -56,126 +57,128 @@ function fillValues() {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<ProForm
|
<ConfigProvider :locale="zhCN">
|
||||||
:form="form"
|
<ProForm
|
||||||
:loading="submiting"
|
:form="form"
|
||||||
:rules="{
|
:loading="submiting"
|
||||||
appName: {
|
:rules="{
|
||||||
required: true
|
appName: {
|
||||||
}
|
required: true
|
||||||
}"
|
}
|
||||||
>
|
}"
|
||||||
<ProCard :title="$t('page.proNaive.form.basic.title')" :show-collapse="false">
|
>
|
||||||
<template #header-extra>
|
<ProCard :title="$t('page.proNaive.form.basic.title')" :show-collapse="false">
|
||||||
<NFlex>
|
<template #header-extra>
|
||||||
<NButton @click="fillValues">{{ $t('page.proNaive.form.basic.fillValue') }}</NButton>
|
<NFlex>
|
||||||
<NButton attr-type="reset">{{ $t('page.proNaive.form.basic.reset') }}</NButton>
|
<NButton @click="fillValues">{{ $t('page.proNaive.form.basic.fillValue') }}</NButton>
|
||||||
<NButton type="primary" attr-type="submit" :loading="submiting">
|
<NButton attr-type="reset">{{ $t('page.proNaive.form.basic.reset') }}</NButton>
|
||||||
{{ $t('page.proNaive.form.basic.submit') }}
|
<NButton type="primary" attr-type="submit" :loading="submiting">
|
||||||
</NButton>
|
{{ $t('page.proNaive.form.basic.submit') }}
|
||||||
</NFlex>
|
</NButton>
|
||||||
</template>
|
</NFlex>
|
||||||
<NGrid cols="1 s:2 l:3" :x-gap="16" responsive="screen">
|
</template>
|
||||||
<NGi>
|
<NGrid cols="1 s:2 l:3" :x-gap="16" responsive="screen">
|
||||||
<ProInput
|
<NGi>
|
||||||
:title="$t('page.proNaive.form.basic.appName')"
|
|
||||||
:tooltip="$t('page.proNaive.form.basic.appName')"
|
|
||||||
path="appName"
|
|
||||||
/>
|
|
||||||
</NGi>
|
|
||||||
<NGi>
|
|
||||||
<ProSelect
|
|
||||||
:title="$t('page.proNaive.form.basic.appStatus')"
|
|
||||||
path="appStatus"
|
|
||||||
:field-props="{
|
|
||||||
options: [
|
|
||||||
{ label: $t('page.proNaive.form.basic.normal'), value: 0 },
|
|
||||||
{ label: $t('page.proNaive.form.basic.anomaly'), value: 1 }
|
|
||||||
]
|
|
||||||
}"
|
|
||||||
/>
|
|
||||||
</NGi>
|
|
||||||
<NGi>
|
|
||||||
<ProDate :title="$t('page.proNaive.form.basic.createTime')" path="createTime" />
|
|
||||||
</NGi>
|
|
||||||
<NGi>
|
|
||||||
<ProDate :title="$t('page.proNaive.form.basic.responseDate')" path="responseDate" required />
|
|
||||||
</NGi>
|
|
||||||
<NGi :span="3">
|
|
||||||
<ProFormList
|
|
||||||
:title="$t('page.proNaive.form.basic.specificationInfo')"
|
|
||||||
path="attributes"
|
|
||||||
:min="1"
|
|
||||||
:creator-initial-value="
|
|
||||||
() => ({
|
|
||||||
name: $t('page.proNaive.form.basic.color'),
|
|
||||||
items: [
|
|
||||||
{ name: $t('page.proNaive.form.basic.specificationColorRed') },
|
|
||||||
{ name: $t('page.proNaive.form.basic.specificationColorOrange') }
|
|
||||||
]
|
|
||||||
})
|
|
||||||
"
|
|
||||||
:copy-button-props="false"
|
|
||||||
:creator-button-props="{
|
|
||||||
content: $t('page.proNaive.form.basic.addSpecificateItem')
|
|
||||||
}"
|
|
||||||
>
|
|
||||||
<template #item="{ index, itemDom, actionDom }">
|
|
||||||
<NCard
|
|
||||||
size="small"
|
|
||||||
embedded
|
|
||||||
:title="`${$t('page.proNaive.form.basic.specificate')}${index + 1}`"
|
|
||||||
class="mb-8px"
|
|
||||||
>
|
|
||||||
<template #header-extra>
|
|
||||||
<component :is="actionDom" />
|
|
||||||
</template>
|
|
||||||
<component :is="itemDom" />
|
|
||||||
</NCard>
|
|
||||||
</template>
|
|
||||||
<ProInput
|
<ProInput
|
||||||
:title="$t('page.proNaive.form.basic.specificationName')"
|
:title="$t('page.proNaive.form.basic.appName')"
|
||||||
path="name"
|
:tooltip="$t('page.proNaive.form.basic.appName')"
|
||||||
|
path="appName"
|
||||||
|
/>
|
||||||
|
</NGi>
|
||||||
|
<NGi>
|
||||||
|
<ProSelect
|
||||||
|
:title="$t('page.proNaive.form.basic.appStatus')"
|
||||||
|
path="appStatus"
|
||||||
:field-props="{
|
:field-props="{
|
||||||
class: 'w-230px!'
|
options: [
|
||||||
|
{ label: $t('page.proNaive.form.basic.normal'), value: 0 },
|
||||||
|
{ label: $t('page.proNaive.form.basic.anomaly'), value: 1 }
|
||||||
|
]
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
|
</NGi>
|
||||||
|
<NGi>
|
||||||
|
<ProDate :title="$t('page.proNaive.form.basic.createTime')" path="createTime" />
|
||||||
|
</NGi>
|
||||||
|
<NGi>
|
||||||
|
<ProDate :title="$t('page.proNaive.form.basic.responseDate')" path="responseDate" required />
|
||||||
|
</NGi>
|
||||||
|
<NGi :span="3">
|
||||||
<ProFormList
|
<ProFormList
|
||||||
:title="$t('page.proNaive.form.basic.specificationValue')"
|
:title="$t('page.proNaive.form.basic.specificationInfo')"
|
||||||
path="items"
|
path="attributes"
|
||||||
:min="1"
|
:min="1"
|
||||||
:creator-button-props="{
|
:creator-initial-value="
|
||||||
dashed: false,
|
() => ({
|
||||||
block: false,
|
name: $t('page.proNaive.form.basic.color'),
|
||||||
renderIcon: undefined,
|
items: [
|
||||||
ghost: true,
|
{ name: $t('page.proNaive.form.basic.specificationColorRed') },
|
||||||
text: true,
|
{ name: $t('page.proNaive.form.basic.specificationColorOrange') }
|
||||||
type: 'info',
|
]
|
||||||
content: $t('page.proNaive.form.basic.add')
|
})
|
||||||
}"
|
"
|
||||||
:copy-button-props="false"
|
:copy-button-props="false"
|
||||||
:remove-button-props="{
|
:creator-button-props="{
|
||||||
tooltip: $t('page.proNaive.form.basic.delete')
|
content: $t('page.proNaive.form.basic.addSpecificateItem')
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<template #item="{ itemDom, actionDom }">
|
<template #item="{ index, itemDom, actionDom }">
|
||||||
<div class="me-25px inline-flex">
|
<NCard
|
||||||
<component :is="itemDom" />
|
size="small"
|
||||||
<div class="ml-8px">
|
embedded
|
||||||
|
:title="`${$t('page.proNaive.form.basic.specificate')}${index + 1}`"
|
||||||
|
class="mb-8px"
|
||||||
|
>
|
||||||
|
<template #header-extra>
|
||||||
<component :is="actionDom" />
|
<component :is="actionDom" />
|
||||||
</div>
|
</template>
|
||||||
</div>
|
<component :is="itemDom" />
|
||||||
|
</NCard>
|
||||||
</template>
|
</template>
|
||||||
<ProInput
|
<ProInput
|
||||||
|
:title="$t('page.proNaive.form.basic.specificationName')"
|
||||||
path="name"
|
path="name"
|
||||||
:field-props="{
|
:field-props="{
|
||||||
class: 'w-104px!'
|
class: 'w-230px!'
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
|
<ProFormList
|
||||||
|
:title="$t('page.proNaive.form.basic.specificationValue')"
|
||||||
|
path="items"
|
||||||
|
:min="1"
|
||||||
|
:creator-button-props="{
|
||||||
|
dashed: false,
|
||||||
|
block: false,
|
||||||
|
renderIcon: undefined,
|
||||||
|
ghost: true,
|
||||||
|
text: true,
|
||||||
|
type: 'info',
|
||||||
|
content: $t('page.proNaive.form.basic.add')
|
||||||
|
}"
|
||||||
|
:copy-button-props="false"
|
||||||
|
:remove-button-props="{
|
||||||
|
tooltip: $t('page.proNaive.form.basic.delete')
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<template #item="{ itemDom, actionDom }">
|
||||||
|
<div class="me-25px inline-flex">
|
||||||
|
<component :is="itemDom" />
|
||||||
|
<div class="ml-8px">
|
||||||
|
<component :is="actionDom" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<ProInput
|
||||||
|
path="name"
|
||||||
|
:field-props="{
|
||||||
|
class: 'w-104px!'
|
||||||
|
}"
|
||||||
|
/>
|
||||||
|
</ProFormList>
|
||||||
</ProFormList>
|
</ProFormList>
|
||||||
</ProFormList>
|
</NGi>
|
||||||
</NGi>
|
</NGrid>
|
||||||
</NGrid>
|
</ProCard>
|
||||||
</ProCard>
|
</ProForm>
|
||||||
</ProForm>
|
</ConfigProvider>
|
||||||
</template>
|
</template>
|
||||||
|
@@ -4,6 +4,7 @@ import { useMessage } from 'naive-ui';
|
|||||||
import type { ProSearchFormColumns } from 'pro-naive-ui';
|
import type { ProSearchFormColumns } from 'pro-naive-ui';
|
||||||
import { createProSearchForm } from 'pro-naive-ui';
|
import { createProSearchForm } from 'pro-naive-ui';
|
||||||
import { $t } from '@/locales';
|
import { $t } from '@/locales';
|
||||||
|
import ConfigProvider from '../../ConfigProvider.vue';
|
||||||
|
|
||||||
interface Info {
|
interface Info {
|
||||||
appName: string;
|
appName: string;
|
||||||
@@ -85,12 +86,14 @@ function delay(time: number) {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="bg-#fff">
|
<ConfigProvider>
|
||||||
<ProCard :title="$t('page.proNaive.form.query.title1')" :show-collapse="false">
|
<div class="bg-#fff">
|
||||||
<ProSearchForm :form="form" :loading="loading" :columns="columns" />
|
<ProCard :title="$t('page.proNaive.form.query.title1')" :show-collapse="false">
|
||||||
</ProCard>
|
<ProSearchForm :form="form" :loading="loading" :columns="columns" />
|
||||||
<ProCard class="mt-12px" :title="$t('page.proNaive.form.query.title2')" :show-collapse="false">
|
</ProCard>
|
||||||
<ProSearchForm :form="form2" :loading="loading2" :columns="columns2" :collapsed-rows="2" />
|
<ProCard class="mt-12px" :title="$t('page.proNaive.form.query.title2')" :show-collapse="false">
|
||||||
</ProCard>
|
<ProSearchForm :form="form2" :loading="loading2" :columns="columns2" :collapsed-rows="2" />
|
||||||
</div>
|
</ProCard>
|
||||||
|
</div>
|
||||||
|
</ConfigProvider>
|
||||||
</template>
|
</template>
|
||||||
|
@@ -3,6 +3,7 @@ import { ref } from 'vue';
|
|||||||
import { useMessage } from 'naive-ui';
|
import { useMessage } from 'naive-ui';
|
||||||
import { createProForm } from 'pro-naive-ui';
|
import { createProForm } from 'pro-naive-ui';
|
||||||
import { $t } from '@/locales';
|
import { $t } from '@/locales';
|
||||||
|
import ConfigProvider from '../../ConfigProvider.vue';
|
||||||
|
|
||||||
const step = ref(1);
|
const step = ref(1);
|
||||||
const submiting = ref(false);
|
const submiting = ref(false);
|
||||||
@@ -37,33 +38,35 @@ function delay(time: number) {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="color-#fff">
|
<ConfigProvider>
|
||||||
<ProCard :title="$t('page.proNaive.form.step.title')" :segmented="{ content: true }" :show-collapse="false">
|
<div class="color-#fff">
|
||||||
<div class="flex flex-col items-center justify-center">
|
<ProCard :title="$t('page.proNaive.form.step.title')" :segmented="{ content: true }" :show-collapse="false">
|
||||||
<NSteps :current="step" class="mb-50px ml-200px w-60%">
|
<div class="flex flex-col items-center justify-center">
|
||||||
<NStep :title="$t('page.proNaive.form.step.step1.title')" />
|
<NSteps :current="step" class="mb-50px ml-200px w-60%">
|
||||||
<NStep :title="$t('page.proNaive.form.step.step2.title')" />
|
<NStep :title="$t('page.proNaive.form.step.step1.title')" />
|
||||||
</NSteps>
|
<NStep :title="$t('page.proNaive.form.step.step2.title')" />
|
||||||
<template v-if="step === 1">
|
</NSteps>
|
||||||
<ProForm :form="form" label-placement="left">
|
<template v-if="step === 1">
|
||||||
<ProInput :title="$t('page.proNaive.form.step.step1.field')" path="form1Field" required />
|
<ProForm :form="form" label-placement="left">
|
||||||
<NButton @click="toNextStepAfterValidated">{{ $t('page.proNaive.form.step.step1.nextStep') }}</NButton>
|
<ProInput :title="$t('page.proNaive.form.step.step1.field')" path="form1Field" required />
|
||||||
</ProForm>
|
<NButton @click="toNextStepAfterValidated">{{ $t('page.proNaive.form.step.step1.nextStep') }}</NButton>
|
||||||
</template>
|
</ProForm>
|
||||||
<template v-if="step === 2">
|
</template>
|
||||||
<ProForm :form="form2" :loading="submiting" label-placement="left">
|
<template v-if="step === 2">
|
||||||
<ProInput :title="$t('page.proNaive.form.step.step2.field')" path="form2Field" required />
|
<ProForm :form="form2" :loading="submiting" label-placement="left">
|
||||||
<NFlex>
|
<ProInput :title="$t('page.proNaive.form.step.step2.field')" path="form2Field" required />
|
||||||
<NButton :disabled="submiting" @click="step -= 1">
|
<NFlex>
|
||||||
{{ $t('page.proNaive.form.step.step2.prevStep') }}
|
<NButton :disabled="submiting" @click="step -= 1">
|
||||||
</NButton>
|
{{ $t('page.proNaive.form.step.step2.prevStep') }}
|
||||||
<NButton type="primary" attr-type="submit" :loading="submiting">
|
</NButton>
|
||||||
{{ $t('page.proNaive.form.step.step2.submit') }}
|
<NButton type="primary" attr-type="submit" :loading="submiting">
|
||||||
</NButton>
|
{{ $t('page.proNaive.form.step.step2.submit') }}
|
||||||
</NFlex>
|
</NButton>
|
||||||
</ProForm>
|
</NFlex>
|
||||||
</template>
|
</ProForm>
|
||||||
</div>
|
</template>
|
||||||
</ProCard>
|
</div>
|
||||||
</div>
|
</ProCard>
|
||||||
|
</div>
|
||||||
|
</ConfigProvider>
|
||||||
</template>
|
</template>
|
||||||
|
@@ -10,6 +10,7 @@ import {
|
|||||||
useNDataTable
|
useNDataTable
|
||||||
} from 'pro-naive-ui';
|
} from 'pro-naive-ui';
|
||||||
import { $t } from '@/locales';
|
import { $t } from '@/locales';
|
||||||
|
import ConfigProvider from '../../ConfigProvider.vue';
|
||||||
|
|
||||||
function fetchList(params: any, values: any) {
|
function fetchList(params: any, values: any) {
|
||||||
console.log(params, values);
|
console.log(params, values);
|
||||||
@@ -123,17 +124,19 @@ const {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="flex flex-col">
|
<ConfigProvider>
|
||||||
<ProCard :title="$t('page.proNaive.table.remote.filterCondition')" class="mb-24px" :show-collapse="false">
|
<div class="h-full flex flex-col">
|
||||||
<ProSearchForm :form="searchForm" label-placement="left" :columns="searchColumns" v-bind="proSearchFormProps" />
|
<ProCard :title="$t('page.proNaive.table.remote.filterCondition')" class="mb-24px" :show-collapse="false">
|
||||||
</ProCard>
|
<ProSearchForm :form="searchForm" label-placement="left" :columns="searchColumns" v-bind="proSearchFormProps" />
|
||||||
<ProDataTable
|
</ProCard>
|
||||||
:title="$t('page.proNaive.table.remote.title')"
|
<ProDataTable
|
||||||
size="small"
|
:title="$t('page.proNaive.table.remote.title')"
|
||||||
flex-height
|
size="small"
|
||||||
:columns="columns"
|
flex-height
|
||||||
row-key="no"
|
:columns="columns"
|
||||||
v-bind="tableProps"
|
row-key="no"
|
||||||
/>
|
v-bind="tableProps"
|
||||||
</div>
|
/>
|
||||||
|
</div>
|
||||||
|
</ConfigProvider>
|
||||||
</template>
|
</template>
|
||||||
|
@@ -4,6 +4,7 @@ import { NButton, NFlex, useMessage } from 'naive-ui';
|
|||||||
import type { ProEditDataTableColumns } from 'pro-naive-ui';
|
import type { ProEditDataTableColumns } from 'pro-naive-ui';
|
||||||
import { createProForm } from 'pro-naive-ui';
|
import { createProForm } from 'pro-naive-ui';
|
||||||
import { $t } from '@/locales';
|
import { $t } from '@/locales';
|
||||||
|
import ConfigProvider from '../../ConfigProvider.vue';
|
||||||
|
|
||||||
interface DataSourceType {
|
interface DataSourceType {
|
||||||
id: string;
|
id: string;
|
||||||
@@ -103,33 +104,35 @@ const columns = computed<ProEditDataTableColumns<DataSourceType>>(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<ProForm :form="form" label-placement="left">
|
<ConfigProvider>
|
||||||
<ProConfigProvider
|
<ProForm :form="form" label-placement="left">
|
||||||
:prop-overrides="{
|
<ProConfigProvider
|
||||||
ProFormItem: {
|
:prop-overrides="{
|
||||||
showFeedback: false
|
ProFormItem: {
|
||||||
}
|
showFeedback: false
|
||||||
}"
|
}
|
||||||
>
|
|
||||||
<ProEditDataTable
|
|
||||||
v-model:editable-keys="editableKeys"
|
|
||||||
path="list"
|
|
||||||
:columns="columns"
|
|
||||||
:record-creator-props="{
|
|
||||||
record: () => ({ id: Date.now() })
|
|
||||||
}"
|
|
||||||
row-key="id"
|
|
||||||
:field-props="{
|
|
||||||
title: $t('page.proNaive.table.rowEdit.title')
|
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<template #toolbar>
|
<ProEditDataTable
|
||||||
<NFlex>
|
v-model:editable-keys="editableKeys"
|
||||||
<NButton attr-type="reset">{{ $t('page.proNaive.table.rowEdit.reset') }}</NButton>
|
path="list"
|
||||||
<NButton type="primary" attr-type="submit">{{ $t('page.proNaive.table.rowEdit.submit') }}</NButton>
|
:columns="columns"
|
||||||
</NFlex>
|
:record-creator-props="{
|
||||||
</template>
|
record: () => ({ id: Date.now() })
|
||||||
</ProEditDataTable>
|
}"
|
||||||
</ProConfigProvider>
|
row-key="id"
|
||||||
</ProForm>
|
:field-props="{
|
||||||
|
title: $t('page.proNaive.table.rowEdit.title')
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<template #toolbar>
|
||||||
|
<NFlex>
|
||||||
|
<NButton attr-type="reset">{{ $t('page.proNaive.table.rowEdit.reset') }}</NButton>
|
||||||
|
<NButton type="primary" attr-type="submit">{{ $t('page.proNaive.table.rowEdit.submit') }}</NButton>
|
||||||
|
</NFlex>
|
||||||
|
</template>
|
||||||
|
</ProEditDataTable>
|
||||||
|
</ProConfigProvider>
|
||||||
|
</ProForm>
|
||||||
|
</ConfigProvider>
|
||||||
</template>
|
</template>
|
||||||
|
Reference in New Issue
Block a user