fix: machine file bug

This commit is contained in:
meilin.huang
2024-12-26 12:17:58 +08:00
parent 3f6fb5afef
commit e4d949a64b
8 changed files with 52 additions and 45 deletions

View File

@@ -12,30 +12,25 @@
/* Form 表单
------------------------------- */
.el-form {
// .el-form {
// 用于修改弹窗时表单内容间隔太大问题,如系统设置的新增菜单弹窗里的表单内容
.el-form-item:last-of-type {
margin-bottom: 0 !important;
}
// // 修复行内表单最后一个 el-form-item 位置下移问题
// &.el-form--inline {
// .el-form-item--large.el-form-item:last-of-type {
// margin-bottom: 22px !important;
// }
// 修复行内表单最后一个 el-form-item 位置下移问题
&.el-form--inline {
.el-form-item--large.el-form-item:last-of-type {
margin-bottom: 22px !important;
}
// .el-form-item--default.el-form-item:last-of-type,
// .el-form-item--small.el-form-item:last-of-type {
// margin-bottom: 18px !important;
// }
// }
.el-form-item--default.el-form-item:last-of-type,
.el-form-item--small.el-form-item:last-of-type {
margin-bottom: 18px !important;
}
}
// https://gitee.com/lyt-top/vue-next-admin/issues/I5K1PM
.el-form-item .el-form-item__label .el-icon {
margin-right: 0px;
}
}
// .el-form-item .el-form-item__label .el-icon {
// margin-right: 0px;
// }
// }
/* Alert 警告
------------------------------- */

View File

@@ -66,7 +66,7 @@ const searchItems = [
const columns = ref([
TableColumn.new('db', 'db.db'),
TableColumn.new('table', 'db.type'),
TableColumn.new('table', 'db.table'),
TableColumn.new('type', 'db.stmtType').typeTag(DbSqlExecTypeEnum).setAddWidth(10),
TableColumn.new('creator', 'db.execUser'),
TableColumn.new('sql', 'SQL').canBeautify(),

View File

@@ -273,8 +273,8 @@
</el-form-item>
<el-form-item prop="type" :label="$t('common.type')">
<el-radio-group v-model="createFileDialog.type">
<el-radio value="d" label="d">{{ $t('machine.file') }}</el-radio>
<el-radio value="-" label="-">{{ $t('machine.folder') }}</el-radio>
<el-radio value="d" label="d">{{ $t('machine.folder') }}</el-radio>
<el-radio value="-" label="-">{{ $t('machine.file') }}</el-radio>
</el-radio-group>
</el-form-item>
</div>

View File

@@ -3,17 +3,17 @@
<el-dialog :title="title" :destroy-on-close="true" v-model="dialogVisible" width="800px">
<el-form :model="form" :inline="true" ref="menuForm" :rules="rules" label-width="auto">
<el-row :gutter="35">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
<el-form-item class="w100" prop="type" :label="$t('common.type')" required>
<enum-select :enums="ResourceTypeEnum" v-model="form.type" :disabled="typeDisabled" />
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
<el-form-item class="w100" prop="name" :label="$t('common.name')" required>
<el-input v-model.trim="form.name" auto-complete="off"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
<el-form-item class="w100" prop="code" label="path|code">
<template #label>
path|code
@@ -26,12 +26,12 @@
<el-input v-model.trim="form.code" :placeholder="$t('system.menu.menuCodePlaceholder')" auto-complete="off"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="form.type === menuTypeValue">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-if="form.type === menuTypeValue">
<el-form-item class="w100" :label="$t('system.menu.icon')">
<icon-selector v-model="form.meta.icon" />
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="form.type === menuTypeValue">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-if="form.type === menuTypeValue">
<el-form-item class="w100">
<template #label>
{{ $t('system.menu.routerName') }}
@@ -44,7 +44,7 @@
<el-input v-model.trim="form.meta.routeName"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="form.type === menuTypeValue">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-if="form.type === menuTypeValue">
<el-form-item class="w100" prop="code">
<template #label>
{{ $t('system.menu.componentPath') }}
@@ -57,7 +57,7 @@
<el-input v-model.trim="form.meta.component"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="form.type === menuTypeValue">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-if="form.type === menuTypeValue">
<el-form-item class="w100" prop="isKeepAlive">
<template #label>
{{ $t('system.menu.isCache') }}
@@ -72,7 +72,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="form.type === menuTypeValue">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-if="form.type === menuTypeValue">
<el-form-item class="w100">
<template #label>
{{ $t('system.menu.isHide') }}
@@ -87,14 +87,14 @@
</el-select>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="form.type === menuTypeValue">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-if="form.type === menuTypeValue">
<el-form-item class="w100" prop="code" :label="$t('system.menu.tagIsDelete')">
<el-select v-model="form.meta.isAffix" class="w100">
<el-option v-for="item in trueFalseOption" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="form.type === menuTypeValue">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-if="form.type === menuTypeValue">
<el-form-item class="w100" prop="linkType">
<template #label>
{{ $t('system.menu.externalLink') }}
@@ -111,7 +111,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="form.type === menuTypeValue && form.meta.linkType > 0">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-if="form.type === menuTypeValue && form.meta.linkType > 0">
<el-form-item prop="code" :label="$t('system.menu.linkAddress')" class="w100">
<el-input v-model.trim="form.meta.link" :placeholder="$t('system.menu.linkPlaceholder')"></el-input>
</el-form-item>

View File

@@ -308,7 +308,7 @@ func (d *dbAppImpl) DumpDb(ctx context.Context, reqParam *dto.DumpDb) error {
}
if len(tbs) <= 0 {
log(fmt.Sprintf("failed to get table [%s] information: No table information was retrieved", tableName))
return errorx.NewBiz(fmt.Sprintf("Failed to get table information: %s", tableName))
return errorx.NewBiz("Failed to get table information: %s", tableName)
}
tableInfo := tbs[0]

View File

@@ -446,11 +446,11 @@ func (d *dbSqlExecAppImpl) doUpdate(ctx context.Context, sqlExecParam *sqlExecPa
}
execRecord.Table = tableName
whereStr := updatestmt.Where.GetText()
if whereStr == "" {
if updatestmt.Where == nil {
logx.ErrorContext(ctx, "update SQL - there is no where condition")
return d.doExec(ctx, dbConn, sqlExecParam.Sql)
}
whereStr := updatestmt.Where.GetText()
// 获取表主键列名,排除使用别名
primaryKey, err := dbConn.GetMetadata().GetPrimaryKey(tableName)

View File

@@ -441,23 +441,27 @@ func (v *MysqlVisitor) VisitInPredicate(ctx *mysqlparser.InPredicateContext) int
}
func (v *MysqlVisitor) VisitBetweenPredicate(ctx *mysqlparser.BetweenPredicateContext) interface{} {
node := sqlstmt.NewNode(ctx.GetParser(), ctx)
return node
predicate := new(sqlstmt.PredicateLike)
predicate.Node = sqlstmt.NewNode(ctx.GetParser(), ctx)
return predicate
}
func (v *MysqlVisitor) VisitIsNullPredicate(ctx *mysqlparser.IsNullPredicateContext) interface{} {
node := sqlstmt.NewNode(ctx.GetParser(), ctx)
return node
predicate := new(sqlstmt.PredicateLike)
predicate.Node = sqlstmt.NewNode(ctx.GetParser(), ctx)
return predicate
}
func (v *MysqlVisitor) VisitLikePredicate(ctx *mysqlparser.LikePredicateContext) interface{} {
node := sqlstmt.NewNode(ctx.GetParser(), ctx)
return node
likePredicate := new(sqlstmt.PredicateLike)
likePredicate.Node = sqlstmt.NewNode(ctx.GetParser(), ctx)
return likePredicate
}
func (v *MysqlVisitor) VisitRegexpPredicate(ctx *mysqlparser.RegexpPredicateContext) interface{} {
node := sqlstmt.NewNode(ctx.GetParser(), ctx)
return node
predicate := new(sqlstmt.PredicateLike)
predicate.Node = sqlstmt.NewNode(ctx.GetParser(), ctx)
return predicate
}
func (v *MysqlVisitor) VisitUnaryExpressionAtom(ctx *mysqlparser.UnaryExpressionAtomContext) interface{} {

View File

@@ -59,6 +59,14 @@ type (
ExprAtom IExprAtom
}
PredicateLike struct {
Predicate
InPredicate IPredicate
Exprs []IExpr
SelectStmt ISelectStmt
}
)
func (*Predicate) isPredicate() {}