feat: 统一代码格式

This commit is contained in:
xingyu4j
2025-10-13 18:21:47 +08:00
parent 202a82bf44
commit f54424ced3
32 changed files with 95 additions and 89 deletions

View File

@@ -40,17 +40,17 @@ const { showInput, changeNodeName, clickTitle, inputRef } = useNodeName2(
const nodeConfigRef = ref(); const nodeConfigRef = ref();
/** 打开节点配置 */ /** 打开节点配置 */
const openNodeConfig = () => { function openNodeConfig() {
if (readonly) { if (readonly) {
return; return;
} }
nodeConfigRef.value.showChildProcessNodeConfig(currentNode.value); nodeConfigRef.value.showChildProcessNodeConfig(currentNode.value);
}; }
/** 删除节点。更新当前节点为孩子节点 */ /** 删除节点。更新当前节点为孩子节点 */
const deleteNode = () => { function deleteNode() {
emits('update:flowNode', currentNode.value.childNode); emits('update:flowNode', currentNode.value.childNode);
}; }
</script> </script>
<template> <template>
@@ -125,5 +125,3 @@ const deleteNode = () => {
/> />
</div> </div>
</template> </template>
<style scoped></style>

View File

@@ -33,7 +33,7 @@ const emits = defineEmits<{
findParentNode: [nodeList: SimpleFlowNode[], nodeType: number]; findParentNode: [nodeList: SimpleFlowNode[], nodeType: number];
recursiveFindParentNode: [ recursiveFindParentNode: [
nodeList: SimpleFlowNode[], nodeList: SimpleFlowNode[],
curentNode: SimpleFlowNode, currentNode: SimpleFlowNode,
nodeType: number, nodeType: number,
]; ];
'update:modelValue': [node: SimpleFlowNode | undefined]; 'update:modelValue': [node: SimpleFlowNode | undefined];

View File

@@ -38,7 +38,7 @@ const emits = defineEmits<{
findParentNode: [nodeList: SimpleFlowNode[], nodeType: number]; findParentNode: [nodeList: SimpleFlowNode[], nodeType: number];
recursiveFindParentNode: [ recursiveFindParentNode: [
nodeList: SimpleFlowNode[], nodeList: SimpleFlowNode[],
curentNode: SimpleFlowNode, currentNode: SimpleFlowNode,
nodeType: number, nodeType: number,
]; ];
'update:modelValue': [node: SimpleFlowNode | undefined]; 'update:modelValue': [node: SimpleFlowNode | undefined];

View File

@@ -1,4 +1,4 @@
import type { VxeTableGridOptions } from '@vben/plugins/vxe-table'; import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import { DICT_TYPE } from '@vben/constants'; import { DICT_TYPE } from '@vben/constants';

View File

@@ -1,6 +1,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { useVbenModal } from '@vben/common-ui'; import { useVbenModal } from '@vben/common-ui';
import { useVbenVxeGrid } from '@vben/plugins/vxe-table';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { useGridColumns } from './process-instance-data'; import { useGridColumns } from './process-instance-data';

View File

@@ -1,4 +1,4 @@
import type { VxeTableGridOptions } from '@vben/plugins/vxe-table'; import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import { DICT_TYPE } from '@vben/constants'; import { DICT_TYPE } from '@vben/constants';

View File

@@ -1,6 +1,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { useVbenModal } from '@vben/common-ui'; import { useVbenModal } from '@vben/common-ui';
import { useVbenVxeGrid } from '@vben/plugins/vxe-table';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { useGridColumns } from './task-list-data'; import { useGridColumns } from './task-list-data';

View File

@@ -28,7 +28,7 @@ const emits = defineEmits<{
findParnetNode: [nodeList: SimpleFlowNode[], nodeType: number]; findParnetNode: [nodeList: SimpleFlowNode[], nodeType: number];
recursiveFindParentNode: [ recursiveFindParentNode: [
nodeList: SimpleFlowNode[], nodeList: SimpleFlowNode[],
curentNode: SimpleFlowNode, currentNode: SimpleFlowNode,
nodeType: number, nodeType: number,
]; ];
'update:modelValue': [node: SimpleFlowNode | undefined]; 'update:modelValue': [node: SimpleFlowNode | undefined];

View File

@@ -32,7 +32,7 @@ const props = defineProps({
const emits = defineEmits<{ const emits = defineEmits<{
recursiveFindParentNode: [ recursiveFindParentNode: [
nodeList: SimpleFlowNode[], nodeList: SimpleFlowNode[],
curentNode: SimpleFlowNode, currentNode: SimpleFlowNode,
nodeType: number, nodeType: number,
]; ];
'update:flowNode': [node: SimpleFlowNode | undefined]; 'update:flowNode': [node: SimpleFlowNode | undefined];

View File

@@ -8,7 +8,7 @@ import type { AxiosProgressEvent } from '#/api/infra/file';
import { computed, ref, toRefs, watch } from 'vue'; import { computed, ref, toRefs, watch } from 'vue';
import { CloudUpload } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { $t } from '@vben/locales'; import { $t } from '@vben/locales';
import { isFunction, isObject, isString } from '@vben/utils'; import { isFunction, isObject, isString } from '@vben/utils';
@@ -285,7 +285,7 @@ function getValue() {
> >
<div v-if="drag" class="upload-drag-area"> <div v-if="drag" class="upload-drag-area">
<p class="ant-upload-drag-icon"> <p class="ant-upload-drag-icon">
<CloudUpload /> <IconifyIcon icon="lucide:cloud-upload" />
</p> </p>
<p class="ant-upload-text">点击或拖拽文件到此区域上传</p> <p class="ant-upload-text">点击或拖拽文件到此区域上传</p>
<p class="ant-upload-hint"> <p class="ant-upload-hint">
@@ -294,7 +294,7 @@ function getValue() {
</div> </div>
<div v-else-if="fileList && fileList.length < maxNumber"> <div v-else-if="fileList && fileList.length < maxNumber">
<Button> <Button>
<CloudUpload /> <IconifyIcon icon="lucide:cloud-upload" />
{{ $t('ui.upload.upload') }} {{ $t('ui.upload.upload') }}
</Button> </Button>
</div> </div>

View File

@@ -10,7 +10,7 @@ import { useRoute, useRouter } from 'vue-router';
import { Page } from '@vben/common-ui'; import { Page } from '@vben/common-ui';
import { useTabs } from '@vben/hooks'; import { useTabs } from '@vben/hooks';
import { ArrowLeft } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { Card } from 'ant-design-vue'; import { Card } from 'ant-design-vue';
@@ -135,7 +135,8 @@ defineExpose({
> >
<!-- 左侧标题 --> <!-- 左侧标题 -->
<div class="flex w-48 items-center overflow-hidden"> <div class="flex w-48 items-center overflow-hidden">
<ArrowLeft <IconifyIcon
icon="lucide:arrow-left"
class="size-5 flex-shrink-0 cursor-pointer" class="size-5 flex-shrink-0 cursor-pointer"
@click="handleBack" @click="handleBack"
/> />

View File

@@ -5,7 +5,7 @@ import { useRoute, useRouter } from 'vue-router';
import { confirm, Page } from '@vben/common-ui'; import { confirm, Page } from '@vben/common-ui';
import { AiModelTypeEnum, CommonStatusEnum } from '@vben/constants'; import { AiModelTypeEnum, CommonStatusEnum } from '@vben/constants';
import { useTabs } from '@vben/hooks'; import { useTabs } from '@vben/hooks';
import { ArrowLeft } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { Button, Card, message } from 'ant-design-vue'; import { Button, Card, message } from 'ant-design-vue';
@@ -212,7 +212,8 @@ onBeforeUnmount(() => {
> >
<!-- 左侧标题 --> <!-- 左侧标题 -->
<div class="flex w-48 items-center overflow-hidden"> <div class="flex w-48 items-center overflow-hidden">
<ArrowLeft <IconifyIcon
icon="lucide:arrow-left"
class="size-5 flex-shrink-0 cursor-pointer" class="size-5 flex-shrink-0 cursor-pointer"
@click="handleBack" @click="handleBack"
/> />

View File

@@ -15,7 +15,7 @@ import {
BpmModelType, BpmModelType,
} from '@vben/constants'; } from '@vben/constants';
import { useTabs } from '@vben/hooks'; import { useTabs } from '@vben/hooks';
import { ArrowLeft } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { useUserStore } from '@vben/stores'; import { useUserStore } from '@vben/stores';
import { Button, Card, message } from 'ant-design-vue'; import { Button, Card, message } from 'ant-design-vue';
@@ -419,7 +419,8 @@ onBeforeUnmount(() => {
> >
<!-- 左侧标题 --> <!-- 左侧标题 -->
<div class="flex w-48 items-center overflow-hidden"> <div class="flex w-48 items-center overflow-hidden">
<ArrowLeft <IconifyIcon
icon="lucide:arrow-left"
class="size-5 flex-shrink-0 cursor-pointer" class="size-5 flex-shrink-0 cursor-pointer"
@click="handleBack" @click="handleBack"
/> />

View File

@@ -6,7 +6,7 @@ import {
BpmModelFormType, BpmModelFormType,
ProcessVariableEnum, ProcessVariableEnum,
} from '@vben/constants'; } from '@vben/constants';
import { CircleHelp } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { import {
Checkbox, Checkbox,
@@ -369,7 +369,10 @@ defineExpose({ initData, validate });
title="输入字符 '{' 即可插入表单字段" title="输入字符 '{' 即可插入表单字段"
placement="top" placement="top"
> >
<CircleHelp class="ml-1 size-4 text-gray-500" /> <IconifyIcon
icon="lucide:circle-help"
class="ml-1 size-4 text-gray-500"
/>
</Tooltip> </Tooltip>
</div> </div>
</Radio> </Radio>

View File

@@ -7,7 +7,7 @@ import { ref, watch } from 'vue';
import { BpmModelFormType, DICT_TYPE } from '@vben/constants'; import { BpmModelFormType, DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks'; import { getDictOptions } from '@vben/hooks';
import { CircleHelp } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import FormCreate from '@form-create/ant-design-vue'; import FormCreate from '@form-create/ant-design-vue';
import { import {
@@ -138,7 +138,10 @@ defineExpose({ validate });
title="自定义表单的提交路径,使用 Vue 的路由地址, 例如说: bpm/oa/leave/create.vue" title="自定义表单的提交路径,使用 Vue 的路由地址, 例如说: bpm/oa/leave/create.vue"
placement="top" placement="top"
> >
<CircleHelp class="ml-1 size-5 text-gray-900" /> <IconifyIcon
icon="lucide:circle-help"
class="ml-1 size-5 text-gray-900"
/>
</Tooltip> </Tooltip>
</div> </div>
</FormItem> </FormItem>
@@ -157,7 +160,10 @@ defineExpose({ validate });
title="自定义表单的查看组件地址,使用 Vue 的组件地址例如说bpm/oa/leave/detail.vue" title="自定义表单的查看组件地址,使用 Vue 的组件地址例如说bpm/oa/leave/detail.vue"
placement="top" placement="top"
> >
<CircleHelp class="ml-1 size-5 text-gray-900" /> <IconifyIcon
icon="lucide:circle-help"
class="ml-1 size-5 text-gray-900"
/>
</Tooltip> </Tooltip>
</div> </div>
</FormItem> </FormItem>

View File

@@ -1,8 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import type { formCreate } from '@form-create/antd-designer'; import type { formCreate } from '@form-create/antd-designer';
import type { VxeTableGridOptions } from '@vben/plugins/vxe-table'; import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { BpmTaskApi } from '#/api/bpm/task'; import type { BpmTaskApi } from '#/api/bpm/task';
import { nextTick, onMounted, ref, shallowRef } from 'vue'; import { nextTick, onMounted, ref, shallowRef } from 'vue';

View File

@@ -1,10 +1,10 @@
<script lang="ts" setup> <script lang="ts" setup>
import type { InfraCodegenApi } from '#/api/infra/codegen'; import type { InfraCodegenApi } from '#/api/infra/codegen';
import { h, ref } from 'vue'; import { ref } from 'vue';
import { useVbenModal } from '@vben/common-ui'; import { useVbenModal } from '@vben/common-ui';
import { Copy } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { CodeEditor } from '@vben/plugins/code-editor'; import { CodeEditor } from '@vben/plugins/code-editor';
import { useClipboard } from '@vueuse/core'; import { useClipboard } from '@vueuse/core';
@@ -249,7 +249,8 @@ const [Modal, modalApi] = useVbenModal({
</div> </div>
</Tabs.TabPane> </Tabs.TabPane>
<template #rightExtra> <template #rightExtra>
<Button type="primary" ghost @click="copyCode" :icon="h(Copy)"> <Button type="primary" ghost @click="copyCode">
<IconifyIcon icon="lucide:copy" />
复制代码 复制代码
</Button> </Button>
</template> </template>

View File

@@ -1,9 +1,9 @@
<script lang="ts" setup> <script lang="ts" setup>
import type { Demo03StudentApi } from '#/api/infra/demo/demo03/inner'; import type { Demo03StudentApi } from '#/api/infra/demo/demo03/inner';
import { h, nextTick, watch } from 'vue'; import { nextTick, watch } from 'vue';
import { Plus } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { Button, Input } from 'ant-design-vue'; import { Button, Input } from 'ant-design-vue';
@@ -108,12 +108,12 @@ watch(
</Grid> </Grid>
<div class="-mt-4 flex justify-center"> <div class="-mt-4 flex justify-center">
<Button <Button
:icon="h(Plus)"
type="primary" type="primary"
ghost ghost
@click="handleAdd" @click="handleAdd"
v-access:code="['infra:demo03-student:create']" v-access:code="['infra:demo03-student:create']"
> >
<IconifyIcon icon="lucide:plus" />
{{ $t('ui.actionTitle.create', ['学生课程']) }} {{ $t('ui.actionTitle.create', ['学生课程']) }}
</Button> </Button>
</div> </div>

View File

@@ -1,9 +1,9 @@
<script lang="ts" setup> <script lang="ts" setup>
import type { Demo03StudentApi } from '#/api/infra/demo/demo03/normal'; import type { Demo03StudentApi } from '#/api/infra/demo/demo03/normal';
import { h, nextTick, watch } from 'vue'; import { nextTick, watch } from 'vue';
import { Plus } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { Button, Input } from 'ant-design-vue'; import { Button, Input } from 'ant-design-vue';
@@ -107,12 +107,12 @@ watch(
</Grid> </Grid>
<div class="-mt-4 flex justify-center"> <div class="-mt-4 flex justify-center">
<Button <Button
:icon="h(Plus)"
type="primary" type="primary"
ghost ghost
@click="handleAdd" @click="handleAdd"
v-access:code="['infra:demo03-student:create']" v-access:code="['infra:demo03-student:create']"
> >
<IconifyIcon icon="lucide:plus" />
{{ $t('ui.actionTitle.create', ['学生课程']) }} {{ $t('ui.actionTitle.create', ['学生课程']) }}
</Button> </Button>
</div> </div>

View File

@@ -1,12 +1,12 @@
<script lang="ts" setup> <script lang="ts" setup>
import type { Demo01ContactApi } from '#/api/infra/demo/demo01'; import type { Demo01ContactApi } from '#/api/infra/demo/demo01';
import { h, onMounted, reactive, ref } from 'vue'; import { onMounted, reactive, ref } from 'vue';
import { ContentWrap, Page, useVbenModal } from '@vben/common-ui'; import { ContentWrap, Page, useVbenModal } from '@vben/common-ui';
import { DICT_TYPE } from '@vben/constants'; import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks'; import { getDictOptions } from '@vben/hooks';
import { Download, Plus, Trash2 } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { useTableToolbar, VbenVxeTableToolbar } from '@vben/plugins/vxe-table'; import { useTableToolbar, VbenVxeTableToolbar } from '@vben/plugins/vxe-table';
import { import {
cloneDeep, cloneDeep,
@@ -218,25 +218,24 @@ onMounted(() => {
> >
<Button <Button
class="ml-2" class="ml-2"
:icon="h(Plus)"
type="primary" type="primary"
@click="handleCreate" @click="handleCreate"
v-access:code="['infra:demo01-contact:create']" v-access:code="['infra:demo01-contact:create']"
> >
<IconifyIcon icon="lucide:plus" />
{{ $t('ui.actionTitle.create', ['示例联系人']) }} {{ $t('ui.actionTitle.create', ['示例联系人']) }}
</Button> </Button>
<Button <Button
:icon="h(Download)"
type="primary" type="primary"
class="ml-2" class="ml-2"
:loading="exportLoading" :loading="exportLoading"
@click="onExport" @click="onExport"
v-access:code="['infra:demo01-contact:export']" v-access:code="['infra:demo01-contact:export']"
> >
<IconifyIcon icon="lucide:download" />
{{ $t('ui.actionTitle.export') }} {{ $t('ui.actionTitle.export') }}
</Button> </Button>
<Button <Button
:icon="h(Trash2)"
type="primary" type="primary"
danger danger
class="ml-2" class="ml-2"
@@ -244,6 +243,7 @@ onMounted(() => {
@click="handleDeleteBatch" @click="handleDeleteBatch"
v-access:code="['infra:demo01-contact:delete']" v-access:code="['infra:demo01-contact:delete']"
> >
<IconifyIcon icon="lucide:trash-2" />
批量删除 批量删除
</Button> </Button>
</VbenVxeTableToolbar> </VbenVxeTableToolbar>

View File

@@ -1,10 +1,10 @@
<script lang="ts" setup> <script lang="ts" setup>
import type { Demo02CategoryApi } from '#/api/infra/demo/demo02'; import type { Demo02CategoryApi } from '#/api/infra/demo/demo02';
import { h, onMounted, reactive, ref } from 'vue'; import { onMounted, reactive, ref } from 'vue';
import { ContentWrap, Page, useVbenModal } from '@vben/common-ui'; import { ContentWrap, Page, useVbenModal } from '@vben/common-ui';
import { Download, Plus } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { useTableToolbar, VbenVxeTableToolbar } from '@vben/plugins/vxe-table'; import { useTableToolbar, VbenVxeTableToolbar } from '@vben/plugins/vxe-table';
import { import {
cloneDeep, cloneDeep,
@@ -177,21 +177,21 @@ onMounted(() => {
</Button> </Button>
<Button <Button
class="ml-2" class="ml-2"
:icon="h(Plus)"
type="primary" type="primary"
@click="onCreate" @click="onCreate"
v-access:code="['infra:demo02-category:create']" v-access:code="['infra:demo02-category:create']"
> >
<IconifyIcon icon="lucide:plus" />
{{ $t('ui.actionTitle.create', ['示例分类']) }} {{ $t('ui.actionTitle.create', ['示例分类']) }}
</Button> </Button>
<Button <Button
:icon="h(Download)"
type="primary" type="primary"
class="ml-2" class="ml-2"
:loading="exportLoading" :loading="exportLoading"
@click="onExport" @click="onExport"
v-access:code="['infra:demo02-category:export']" v-access:code="['infra:demo02-category:export']"
> >
<IconifyIcon icon="lucide:download" />
{{ $t('ui.actionTitle.export') }} {{ $t('ui.actionTitle.export') }}
</Button> </Button>
</VbenVxeTableToolbar> </VbenVxeTableToolbar>

View File

@@ -1,12 +1,12 @@
<script lang="ts" setup> <script lang="ts" setup>
import type { Demo03StudentApi } from '#/api/infra/demo/demo03/erp'; import type { Demo03StudentApi } from '#/api/infra/demo/demo03/erp';
import { h, onMounted, reactive, ref } from 'vue'; import { onMounted, reactive, ref } from 'vue';
import { ContentWrap, Page, useVbenModal } from '@vben/common-ui'; import { ContentWrap, Page, useVbenModal } from '@vben/common-ui';
import { DICT_TYPE } from '@vben/constants'; import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks'; import { getDictOptions } from '@vben/hooks';
import { Download, Plus, Trash2 } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { useTableToolbar, VbenVxeTableToolbar } from '@vben/plugins/vxe-table'; import { useTableToolbar, VbenVxeTableToolbar } from '@vben/plugins/vxe-table';
import { import {
cloneDeep, cloneDeep,
@@ -229,25 +229,24 @@ onMounted(() => {
> >
<Button <Button
class="ml-2" class="ml-2"
:icon="h(Plus)"
type="primary" type="primary"
@click="onCreate" @click="onCreate"
v-access:code="['infra:demo03-student:create']" v-access:code="['infra:demo03-student:create']"
> >
<IconifyIcon icon="lucide:plus" />
{{ $t('ui.actionTitle.create', ['学生']) }} {{ $t('ui.actionTitle.create', ['学生']) }}
</Button> </Button>
<Button <Button
:icon="h(Download)"
type="primary" type="primary"
class="ml-2" class="ml-2"
:loading="exportLoading" :loading="exportLoading"
@click="onExport" @click="onExport"
v-access:code="['infra:demo03-student:export']" v-access:code="['infra:demo03-student:export']"
> >
<IconifyIcon icon="lucide:download" />
{{ $t('ui.actionTitle.export') }} {{ $t('ui.actionTitle.export') }}
</Button> </Button>
<Button <Button
:icon="h(Trash2)"
type="primary" type="primary"
danger danger
class="ml-2" class="ml-2"
@@ -255,6 +254,7 @@ onMounted(() => {
@click="onDeleteBatch" @click="onDeleteBatch"
v-access:code="['infra:demo03-student:delete']" v-access:code="['infra:demo03-student:delete']"
> >
<IconifyIcon icon="lucide:trash-2" />
批量删除 批量删除
</Button> </Button>
</VbenVxeTableToolbar> </VbenVxeTableToolbar>

View File

@@ -1,10 +1,10 @@
<script lang="ts" setup> <script lang="ts" setup>
import type { Demo03StudentApi } from '#/api/infra/demo/demo03/erp'; import type { Demo03StudentApi } from '#/api/infra/demo/demo03/erp';
import { h, nextTick, onMounted, reactive, ref, watch } from 'vue'; import { nextTick, onMounted, reactive, ref, watch } from 'vue';
import { ContentWrap, useVbenModal } from '@vben/common-ui'; import { ContentWrap, useVbenModal } from '@vben/common-ui';
import { Plus, Trash2 } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { useTableToolbar, VbenVxeTableToolbar } from '@vben/plugins/vxe-table'; import { useTableToolbar, VbenVxeTableToolbar } from '@vben/plugins/vxe-table';
import { cloneDeep, formatDateTime, isEmpty } from '@vben/utils'; import { cloneDeep, formatDateTime, isEmpty } from '@vben/utils';
@@ -218,15 +218,14 @@ onMounted(() => {
> >
<Button <Button
class="ml-2" class="ml-2"
:icon="h(Plus)"
type="primary" type="primary"
@click="onCreate" @click="onCreate"
v-access:code="['infra:demo03-student:create']" v-access:code="['infra:demo03-student:create']"
> >
<IconifyIcon icon="lucide:plus" />
{{ $t('ui.actionTitle.create', ['学生']) }} {{ $t('ui.actionTitle.create', ['学生']) }}
</Button> </Button>
<Button <Button
:icon="h(Trash2)"
type="primary" type="primary"
danger danger
class="ml-2" class="ml-2"
@@ -234,6 +233,7 @@ onMounted(() => {
@click="onDeleteBatch" @click="onDeleteBatch"
v-access:code="['infra:demo03-student:delete']" v-access:code="['infra:demo03-student:delete']"
> >
<IconifyIcon icon="lucide:trash-2" />
批量删除 批量删除
</Button> </Button>
</VbenVxeTableToolbar> </VbenVxeTableToolbar>

View File

@@ -1,10 +1,10 @@
<script lang="ts" setup> <script lang="ts" setup>
import type { Demo03StudentApi } from '#/api/infra/demo/demo03/erp'; import type { Demo03StudentApi } from '#/api/infra/demo/demo03/erp';
import { h, nextTick, onMounted, reactive, ref, watch } from 'vue'; import { nextTick, onMounted, reactive, ref, watch } from 'vue';
import { ContentWrap, useVbenModal } from '@vben/common-ui'; import { ContentWrap, useVbenModal } from '@vben/common-ui';
import { Plus, Trash2 } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { useTableToolbar, VbenVxeTableToolbar } from '@vben/plugins/vxe-table'; import { useTableToolbar, VbenVxeTableToolbar } from '@vben/plugins/vxe-table';
import { cloneDeep, formatDateTime, isEmpty } from '@vben/utils'; import { cloneDeep, formatDateTime, isEmpty } from '@vben/utils';
@@ -218,15 +218,14 @@ onMounted(() => {
> >
<Button <Button
class="ml-2" class="ml-2"
:icon="h(Plus)"
type="primary" type="primary"
@click="onCreate" @click="onCreate"
v-access:code="['infra:demo03-student:create']" v-access:code="['infra:demo03-student:create']"
> >
<IconifyIcon icon="lucide:plus" />
{{ $t('ui.actionTitle.create', ['学生']) }} {{ $t('ui.actionTitle.create', ['学生']) }}
</Button> </Button>
<Button <Button
:icon="h(Trash2)"
type="primary" type="primary"
danger danger
class="ml-2" class="ml-2"
@@ -234,6 +233,7 @@ onMounted(() => {
@click="onDeleteBatch" @click="onDeleteBatch"
v-access:code="['infra:demo03-student:delete']" v-access:code="['infra:demo03-student:delete']"
> >
<IconifyIcon icon="lucide:trash-2" />
批量删除 批量删除
</Button> </Button>
</VbenVxeTableToolbar> </VbenVxeTableToolbar>

View File

@@ -1,12 +1,12 @@
<script lang="ts" setup> <script lang="ts" setup>
import type { Demo03StudentApi } from '#/api/infra/demo/demo03/normal'; import type { Demo03StudentApi } from '#/api/infra/demo/demo03/normal';
import { h, onMounted, reactive, ref } from 'vue'; import { onMounted, reactive, ref } from 'vue';
import { ContentWrap, Page, useVbenModal } from '@vben/common-ui'; import { ContentWrap, Page, useVbenModal } from '@vben/common-ui';
import { DICT_TYPE } from '@vben/constants'; import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks'; import { getDictOptions } from '@vben/hooks';
import { Download, Plus, Trash2 } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { useTableToolbar, VbenVxeTableToolbar } from '@vben/plugins/vxe-table'; import { useTableToolbar, VbenVxeTableToolbar } from '@vben/plugins/vxe-table';
import { import {
cloneDeep, cloneDeep,
@@ -225,25 +225,24 @@ onMounted(() => {
> >
<Button <Button
class="ml-2" class="ml-2"
:icon="h(Plus)"
type="primary" type="primary"
@click="onCreate" @click="onCreate"
v-access:code="['infra:demo03-student:create']" v-access:code="['infra:demo03-student:create']"
> >
<IconifyIcon icon="lucide:plus" />
{{ $t('ui.actionTitle.create', ['学生']) }} {{ $t('ui.actionTitle.create', ['学生']) }}
</Button> </Button>
<Button <Button
:icon="h(Download)"
type="primary" type="primary"
class="ml-2" class="ml-2"
:loading="exportLoading" :loading="exportLoading"
@click="onExport" @click="onExport"
v-access:code="['infra:demo03-student:export']" v-access:code="['infra:demo03-student:export']"
> >
<IconifyIcon icon="lucide:download" />
{{ $t('ui.actionTitle.export') }} {{ $t('ui.actionTitle.export') }}
</Button> </Button>
<Button <Button
:icon="h(Trash2)"
type="primary" type="primary"
danger danger
class="ml-2" class="ml-2"
@@ -251,6 +250,7 @@ onMounted(() => {
@click="onDeleteBatch" @click="onDeleteBatch"
v-access:code="['infra:demo03-student:delete']" v-access:code="['infra:demo03-student:delete']"
> >
<IconifyIcon icon="lucide:trash-2" />
批量删除 批量删除
</Button> </Button>
</VbenVxeTableToolbar> </VbenVxeTableToolbar>

View File

@@ -1,11 +1,10 @@
<script lang="ts" setup> <script lang="ts" setup>
import type { VxeTableInstance } from '@vben/plugins/vxe-table'; import type { VxeTableInstance } from '#/adapter/vxe-table';
import type { Demo03StudentApi } from '#/api/infra/demo/demo03/normal'; import type { Demo03StudentApi } from '#/api/infra/demo/demo03/normal';
import { h, ref, watch } from 'vue'; import { ref, watch } from 'vue';
import { Plus } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { Button, Input } from 'ant-design-vue'; import { Button, Input } from 'ant-design-vue';
@@ -84,12 +83,12 @@ watch(
</VxeTable> </VxeTable>
<div class="mt-4 flex justify-center"> <div class="mt-4 flex justify-center">
<Button <Button
:icon="h(Plus)"
type="primary" type="primary"
ghost ghost
@click="onAdd" @click="onAdd"
v-access:code="['infra:demo03-student:create']" v-access:code="['infra:demo03-student:create']"
> >
<IconifyIcon icon="lucide:plus" />
{{ $t('ui.actionTitle.create', ['学生课程']) }} {{ $t('ui.actionTitle.create', ['学生课程']) }}
</Button> </Button>
</div> </div>

View File

@@ -1,12 +1,12 @@
<script lang="ts" setup> <script lang="ts" setup>
import type { Demo03StudentApi } from '#/api/infra/demo/demo03/normal'; import type { Demo03StudentApi } from '#/api/infra/demo/demo03/normal';
import { h, onMounted, reactive, ref } from 'vue'; import { onMounted, reactive, ref } from 'vue';
import { ContentWrap, Page, useVbenModal } from '@vben/common-ui'; import { ContentWrap, Page, useVbenModal } from '@vben/common-ui';
import { DICT_TYPE } from '@vben/constants'; import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks'; import { getDictOptions } from '@vben/hooks';
import { Download, Plus, Trash2 } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { useTableToolbar, VbenVxeTableToolbar } from '@vben/plugins/vxe-table'; import { useTableToolbar, VbenVxeTableToolbar } from '@vben/plugins/vxe-table';
import { import {
cloneDeep, cloneDeep,
@@ -219,25 +219,24 @@ onMounted(() => {
> >
<Button <Button
class="ml-2" class="ml-2"
:icon="h(Plus)"
type="primary" type="primary"
@click="onCreate" @click="onCreate"
v-access:code="['infra:demo03-student:create']" v-access:code="['infra:demo03-student:create']"
> >
<IconifyIcon icon="lucide:plus" />
{{ $t('ui.actionTitle.create', ['学生']) }} {{ $t('ui.actionTitle.create', ['学生']) }}
</Button> </Button>
<Button <Button
:icon="h(Download)"
type="primary" type="primary"
class="ml-2" class="ml-2"
:loading="exportLoading" :loading="exportLoading"
@click="onExport" @click="onExport"
v-access:code="['infra:demo03-student:export']" v-access:code="['infra:demo03-student:export']"
> >
<IconifyIcon icon="lucide:download" />
{{ $t('ui.actionTitle.export') }} {{ $t('ui.actionTitle.export') }}
</Button> </Button>
<Button <Button
:icon="h(Trash2)"
type="primary" type="primary"
danger danger
class="ml-2" class="ml-2"
@@ -245,6 +244,7 @@ onMounted(() => {
@click="onDeleteBatch" @click="onDeleteBatch"
v-access:code="['infra:demo03-student:delete']" v-access:code="['infra:demo03-student:delete']"
> >
<IconifyIcon icon="lucide:trash-2" />
批量删除 批量删除
</Button> </Button>
</VbenVxeTableToolbar> </VbenVxeTableToolbar>

View File

@@ -2,9 +2,9 @@
import type { VxeTableInstance } from '#/adapter/vxe-table'; import type { VxeTableInstance } from '#/adapter/vxe-table';
import type { Demo03StudentApi } from '#/api/infra/demo/demo03/normal'; import type { Demo03StudentApi } from '#/api/infra/demo/demo03/normal';
import { h, ref, watch } from 'vue'; import { ref, watch } from 'vue';
import { Plus } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { Button, Input } from 'ant-design-vue'; import { Button, Input } from 'ant-design-vue';
@@ -83,12 +83,12 @@ watch(
</VxeTable> </VxeTable>
<div class="mt-4 flex justify-center"> <div class="mt-4 flex justify-center">
<Button <Button
:icon="h(Plus)"
type="primary" type="primary"
ghost ghost
@click="onAdd" @click="onAdd"
v-access:code="['infra:demo03-student:create']" v-access:code="['infra:demo03-student:create']"
> >
<IconifyIcon icon="lucide:plus" />
{{ $t('ui.actionTitle.create', ['学生课程']) }} {{ $t('ui.actionTitle.create', ['学生课程']) }}
</Button> </Button>
</div> </div>

View File

@@ -1,5 +1,3 @@
import type { VxeTableGridOptions as VxeTableGridOptionsLegacy } from '@vben/plugins/vxe-table';
import type { VbenFormSchema } from '#/adapter/form'; import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import type { VxeTableGridOptions } from '#/adapter/vxe-table';
@@ -43,7 +41,7 @@ export function useGridFormSchema(): VbenFormSchema[] {
} }
/** 列表的字段 */ /** 列表的字段 */
export function useGridColumns(): VxeTableGridOptionsLegacy['columns'] { export function useGridColumns(): VxeTableGridOptions['columns'] {
return [ return [
{ {
title: '编号', title: '编号',

View File

@@ -3,7 +3,7 @@ import type { SystemDeptApi } from '#/api/system/dept';
import { onMounted, ref } from 'vue'; import { onMounted, ref } from 'vue';
import { Search } from '@vben/icons'; import { IconifyIcon } from '@vben/icons';
import { handleTree } from '@vben/utils'; import { handleTree } from '@vben/utils';
import { Input, Spin, Tree } from 'ant-design-vue'; import { Input, Spin, Tree } from 'ant-design-vue';
@@ -61,7 +61,7 @@ onMounted(async () => {
class="w-full" class="w-full"
> >
<template #prefix> <template #prefix>
<Search class="size-4" /> <IconifyIcon icon="lucide:search" class="size-4" />
</template> </template>
</Input> </Input>
<Spin :spinning="loading" wrapper-class-name="w-full"> <Spin :spinning="loading" wrapper-class-name="w-full">

View File

@@ -1,6 +1,5 @@
import type { VxeTableGridOptions } from '@vben/plugins/vxe-table';
import type { VbenFormSchema } from '#/adapter/form'; import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { MallCommentApi } from '#/api/mall/product/comment'; import type { MallCommentApi } from '#/api/mall/product/comment';
import { z } from '#/adapter/form'; import { z } from '#/adapter/form';

View File

@@ -1,5 +1,3 @@
import type { VxeTableGridOptions as VxeTableGridOptionsLegacy } from '@vben/plugins/vxe-table';
import type { VbenFormSchema } from '#/adapter/form'; import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import type { VxeTableGridOptions } from '#/adapter/vxe-table';
@@ -43,7 +41,7 @@ export function useGridFormSchema(): VbenFormSchema[] {
} }
/** 列表的字段 */ /** 列表的字段 */
export function useGridColumns(): VxeTableGridOptionsLegacy['columns'] { export function useGridColumns(): VxeTableGridOptions['columns'] {
return [ return [
{ {
title: '编号', title: '编号',