webman迁移-优化
This commit is contained in:
@@ -88,12 +88,13 @@ function createAxios<Data = any, T = ApiPromise<Data>>(axiosConfig: AxiosRequest
|
||||
}
|
||||
}
|
||||
|
||||
// 自动携带token
|
||||
// 自动携带token和语言(确保每次请求使用当前语言,后端据此返回对应语言的 remark 等)
|
||||
if (config.headers) {
|
||||
const token = adminInfo.getToken()
|
||||
if (token) (config.headers as anyObj).batoken = token
|
||||
const userToken = options.anotherToken || userInfo.getToken()
|
||||
if (userToken) (config.headers as anyObj)['ba-user-token'] = userToken
|
||||
;(config.headers as anyObj)['think-lang'] = useConfig().lang.defaultLang
|
||||
}
|
||||
|
||||
return config
|
||||
|
||||
@@ -96,6 +96,7 @@
|
||||
:block-help="t('crud.crud.For quick combination code generation location, please fill in the relative path')"
|
||||
:input-attr="{
|
||||
onChange: onTableChange,
|
||||
onInput: debouncedOnRelativePathInput,
|
||||
}"
|
||||
/>
|
||||
<FormItem
|
||||
@@ -680,10 +681,10 @@
|
||||
import { useTemplateRefsList } from '@vueuse/core'
|
||||
import type { FormItemRule, MessageHandler, TimelineItemProps } from 'element-plus'
|
||||
import { ElMessage, ElMessageBox, ElNotification } from 'element-plus'
|
||||
import { cloneDeep, isEmpty, range } from 'lodash-es'
|
||||
import { cloneDeep, debounce, isEmpty, range } from 'lodash-es'
|
||||
import type { SortableEvent } from 'sortablejs'
|
||||
import Sortable from 'sortablejs'
|
||||
import { nextTick, onMounted, reactive, useTemplateRef } from 'vue'
|
||||
import { nextTick, onMounted, reactive, useTemplateRef, watch } from 'vue'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { generate, generateCheck, getFileData, parseFieldData, postLogStart, uploadCompleted, uploadLog } from '/@/api/backend/crud'
|
||||
import { getDatabaseConnectionListUrl, getTableFieldList, getTableListUrl } from '/@/api/common'
|
||||
@@ -816,7 +817,7 @@ const state: {
|
||||
primaryTableAlias: '',
|
||||
},
|
||||
},
|
||||
showHeaderSeniorConfig: false,
|
||||
showHeaderSeniorConfig: true,
|
||||
confirmGenerate: {
|
||||
show: false,
|
||||
menu: false,
|
||||
@@ -1562,20 +1563,33 @@ onMounted(() => {
|
||||
})
|
||||
|
||||
/**
|
||||
* 修改表名
|
||||
* @param val 新表名
|
||||
* 修改表名(失焦时校验,路径填充由 watch 统一触发避免重复请求)
|
||||
*/
|
||||
const onTableNameChange = (val: string) => {
|
||||
if (!val) return (state.error.tableName = '')
|
||||
if (/^[a-z_][a-z0-9_]*$/.test(val)) {
|
||||
state.error.tableName = ''
|
||||
onTableChange(val)
|
||||
} else {
|
||||
state.error.tableName = t('crud.crud.Use lower case underlined for table names')
|
||||
}
|
||||
tableDesignChangeInit()
|
||||
}
|
||||
|
||||
/** 相对路径输入时防抖触发路径填充 */
|
||||
const debouncedOnRelativePathInput = debounce((val: string) => {
|
||||
if (val) onTableChange(val)
|
||||
}, 400)
|
||||
|
||||
/** 监听表名变化,统一防抖触发路径填充(唯一入口,避免 watch + onInput 重复请求) */
|
||||
watch(
|
||||
() => state.table.name,
|
||||
debounce((val: string) => {
|
||||
if (val && /^[a-z_][a-z0-9_]*$/.test(val)) {
|
||||
onTableChange(val)
|
||||
}
|
||||
}, 400)
|
||||
)
|
||||
|
||||
const tableDesignChangeInit = () => {
|
||||
state.table.rebuild = 'No'
|
||||
state.table.designChange = []
|
||||
@@ -1587,17 +1601,22 @@ const tableDesignChangeInit = () => {
|
||||
*/
|
||||
const onTableChange = (val: string) => {
|
||||
if (!val) return
|
||||
getFileData(val, state.table.isCommonModel).then((res) => {
|
||||
state.table.modelFile = res.data.modelFile
|
||||
state.table.controllerFile = res.data.controllerFile
|
||||
state.table.validateFile = res.data.validateFile
|
||||
state.table.webViewsDir = res.data.webViewsDir
|
||||
state.table.generateRelativePath = val.replaceAll('/', '\\')
|
||||
})
|
||||
getFileData(val, state.table.isCommonModel)
|
||||
.then((res) => {
|
||||
state.table.modelFile = res.data.modelFile
|
||||
state.table.controllerFile = res.data.controllerFile
|
||||
state.table.validateFile = res.data.validateFile
|
||||
state.table.webViewsDir = res.data.webViewsDir
|
||||
state.table.generateRelativePath = val.replaceAll('/', '\\')
|
||||
})
|
||||
.catch(() => {
|
||||
// 接口失败时静默处理,避免重复弹窗(axios 已统一处理错误提示)
|
||||
})
|
||||
}
|
||||
|
||||
const onChangeCommonModel = () => {
|
||||
onTableChange(state.table.generateRelativePath)
|
||||
const table = state.table.name || state.table.generateRelativePath?.replace(/\\/g, '/')
|
||||
if (table) onTableChange(table)
|
||||
}
|
||||
|
||||
const onJoinTableChange = () => {
|
||||
|
||||
Reference in New Issue
Block a user