diff --git a/.env b/.env
index 8975d33..d396fe7 100644
--- a/.env
+++ b/.env
@@ -2,7 +2,7 @@
VITE_PORT = 3000
# 网站标题
-VITE_GLOB_APP_TITLE = 芋道管理系统
+VITE_GLOB_APP_TITLE = 山东青鸟工业互联网
# 简称,用于配置文件名字 不要出现空格、数字开头等特殊字符
VITE_GLOB_APP_SHORT_NAME = Yudao_Admin
diff --git a/.env.development b/.env.development
index 322f1b9..f7e98eb 100644
--- a/.env.development
+++ b/.env.development
@@ -8,7 +8,6 @@ VITE_PUBLIC_PATH = /
# 如果接口地址匹配到,则会转发到http://localhost:3000,防止本地出现跨域问题
# 可以有多个,注意多个不能换行,否则代理将会失效
VITE_PROXY = [["/dev-api","http://192.168.1.100:48080/admin-api"],["/upload","http://192.168.1.100:48080/admin-api/infra/file/upload"]]
-# VITE_PROXY=[["/api","http://vben.xingyuv.com/test"]]
# 是否删除Console.log
VITE_DROP_CONSOLE = false
diff --git a/src/components/Table/src/components/editable/EditableCell.vue b/src/components/Table/src/components/editable/EditableCell.vue
index 4df2fa2..49228bf 100644
--- a/src/components/Table/src/components/editable/EditableCell.vue
+++ b/src/components/Table/src/components/editable/EditableCell.vue
@@ -53,8 +53,8 @@ export default defineComponent({
const { prefixCls } = useDesign('editable-cell')
- const getComponent = computed(() => props.column?.editComponent || 'Input')
- const getRule = computed(() => props.column?.editRule)
+ const getComponent = computed(() => props.column.edit && props.column?.editComponent || 'Input')
+ const getRule = computed(() => props.column.edit && props.column?.editRule)
const getRuleOpen = computed(() => {
return unref(ruleMessage) && unref(ruleOpen)
@@ -65,6 +65,9 @@ export default defineComponent({
return ['Checkbox', 'Switch'].includes(component)
})
const getDisable = computed(() => {
+ if (!props.column.edit)
+ return false
+
const { editDynamicDisabled } = props.column
let disabled = false
if (isBoolean(editDynamicDisabled))
@@ -85,7 +88,7 @@ export default defineComponent({
const value = isCheckValue ? (isNumber(val) || isBoolean(val) ? val : !!val) : val
- let compProps = props.column?.editComponentProps ?? ({} as any)
+ let compProps = (props.column?.edit && props.column?.editComponentProps) ?? ({} as any)
const { record, column, index } = props
if (isFunction(compProps))
@@ -122,7 +125,7 @@ export default defineComponent({
}
const getValues = computed(() => {
- const { editValueMap } = props.column
+ const editValueMap = props.column.edit ? props.column.editValueMap : null
const value = unref(currentValueRef)
@@ -163,12 +166,18 @@ export default defineComponent({
})
watchEffect(() => {
+ if (!props.column.edit)
+ return
+
const { editable } = props.column
if (isBoolean(editable) || isBoolean(unref(getRowEditable)))
isEdit.value = !!editable || unref(getRowEditable)
})
function handleEdit() {
+ if (!props.column.edit)
+ return
+
if (unref(getRowEditable) || unref(props.column?.editRow))
return
ruleMessage.value = ''
@@ -211,7 +220,7 @@ export default defineComponent({
async function handleSubmitRule() {
const { column, record } = props
- const { editRule } = column
+ const editRule = column.edit ? column.editRule : false
const currentValue = unref(currentValueRef)
if (editRule) {
@@ -293,7 +302,7 @@ export default defineComponent({
}
async function handleEnter() {
- if (props.column?.editRow)
+ if (props.column?.edit && props.column?.editRow)
return
handleSubmit()
@@ -317,7 +326,7 @@ export default defineComponent({
}
function onClickOutside() {
- if (props.column?.editable || unref(getRowEditable))
+ if (props.column?.edit && (props.column?.editable || unref(getRowEditable)))
return
const component = unref(getComponent)
@@ -413,7 +422,7 @@ export default defineComponent({
onClick={this.handleEdit}
>
- {this.column.editRender
+ {(this.column.edit && this.column.editRender)
? this.column.editRender({
text: this.value,
record: this.record as Recordable,
@@ -422,7 +431,7 @@ export default defineComponent({
})
: this.getValues ?? '\u00A0'}
- {!this.column.editRow && }
+ {(this.column.edit && !this.column.editRow) && }
{this.isEdit && (
diff --git a/src/components/Table/src/hooks/useColumns.ts b/src/components/Table/src/hooks/useColumns.ts
index 83dcfa3..6348400 100644
--- a/src/components/Table/src/hooks/useColumns.ts
+++ b/src/components/Table/src/hooks/useColumns.ts
@@ -99,7 +99,7 @@ function handleActionColumn(propsRef: ComputedRef, columns: Bas
fixed: 'right',
...actionColumn,
flag: ACTION_COLUMN_FLAG,
- })
+ } as BasicColumn)
}
}
diff --git a/src/components/Table/src/types/componentType.ts b/src/components/Table/src/types/componentType.ts
index 293f07c..9a5560a 100644
--- a/src/components/Table/src/types/componentType.ts
+++ b/src/components/Table/src/types/componentType.ts
@@ -1,4 +1,7 @@
-export type ComponentType =
+import type { ComponentProps } from '@/components/Form/src/types'
+
+export type ComponentType = keyof Pick<
+ ComponentProps,
| 'Input'
| 'InputNumber'
| 'Select'
@@ -12,3 +15,4 @@ export type ComponentType =
| 'RadioGroup'
| 'RadioButtonGroup'
| 'ApiRadioGroup'
+>
diff --git a/src/components/Table/src/types/table.ts b/src/components/Table/src/types/table.ts
index 9ed5ae3..a878e24 100644
--- a/src/components/Table/src/types/table.ts
+++ b/src/components/Table/src/types/table.ts
@@ -7,6 +7,7 @@ import type { ComponentType } from './componentType'
import type { FormProps } from '@/components/Form'
import type { VueNode } from '@/utils/propTypes'
import type { RoleEnum } from '@/enums/roleEnum'
+import type { ComponentProps } from '@/components/Form/src/types'
export declare type SortOrder = 'ascend' | 'descend'
@@ -416,7 +417,7 @@ export type CellFormat =
| ((text: string, record: Recordable, index: number) => string | number)
| Map
-export interface BasicColumn extends Omit, 'filters'> {
+export interface DefaultBasicColumn extends Omit, 'filters'> {
children?: BasicColumn[]
filters?: {
text: string
@@ -442,37 +443,48 @@ export interface BasicColumn extends Omit, 'filters'> {
format?: CellFormat
- // Editable
- edit?: boolean
+ // 权限编码控制是否显示
+ auth?: RoleEnum | RoleEnum[] | string | string[]
+ // 业务控制是否显示
+ ifShow?: boolean | ((column: BasicColumn) => boolean)
+
+ /**
+ * default is not editable
+ */
+ edit?: false
+}
+
+export interface EditableBasicColumn extends Omit {
+ edit: true
editRow?: boolean
editable?: boolean
- editComponent?: ComponentType
+ editComponent: T
editComponentProps?:
- | ((opt: {
- text: string | number | boolean | Recordable
- record: Recordable
- column: BasicColumn
- index: number
- }) => Recordable)
- | Recordable
+ | ((opt: {
+ text: string | number | boolean | Recordable
+ record: Recordable
+ column: EditableBasicColumn
+ index: number
+ }) => ComponentProps[T])
+ | ComponentProps[T]
editRule?: boolean | ((text: string, record: Recordable) => Promise)
editValueMap?: (value: any) => string
onEditRow?: () => void
- // 权限编码控制是否显示
- auth?: RoleEnum | RoleEnum[] | string | string[]
- // 业务控制是否显示
- ifShow?: boolean | ((column: BasicColumn) => boolean)
// 自定义修改后显示的内容
editRender?: (opt: {
text: string | number | boolean | Recordable
record: Recordable
- column: BasicColumn
+ column: EditableBasicColumn
index: number
}) => VNodeChild | JSX.Element
// 动态 Disabled
editDynamicDisabled?: boolean | ((record: Recordable) => boolean)
}
+type EditableBasicColumns = T extends any ? EditableBasicColumn : never
+
+export type BasicColumn = DefaultBasicColumn | EditableBasicColumns
+
export interface ColumnChangeParam {
dataIndex: string
fixed: boolean | 'left' | 'right' | undefined
diff --git a/src/layouts/default/footer/index.vue b/src/layouts/default/footer/index.vue
index 5200b84..f5e5b37 100644
--- a/src/layouts/default/footer/index.vue
+++ b/src/layouts/default/footer/index.vue
@@ -31,6 +31,6 @@ const getShowLayoutFooter = computed(() => {