Commit 23151684 authored by Data Governance Dev's avatar Data Governance Dev

refactor(web3): 去掉 Oracle Client / 连接参数 输入框,配置由后端统一管

UI 简化:
- 去掉「Oracle Client」输入框(v-if=Oracle 时显示)—— 这个路径由连接预设
  (connection_presets.oracle_client_dir) 配置,seed.py 里「黄冈公积金」那条已带,
  用户不应手填
- 去掉「连接参数」输入框(jdbcParams)—— 三种数据库都没用

字段链路保留:
- form.oracleClientDir 字段不删除,仅模板不展示
- presetToForm 透传 preset.oracle_client_dir → form.oracleClientDir
- 编辑场景从 task.oracle_client_dir 回填
- onSave 写进 conn_json → 后端 DBConfig 拿到
  —— 这样选预设 / 编辑现有 task 时 Instant Client 路径仍正确传递,
  UI 干净 + 链路完整两不误

presetToForm 同步去掉 jdbcParams 字段(form 已经没有该字段)
parent f346ef6f
......@@ -79,8 +79,9 @@ export function presetToForm(preset) {
db: preset.database || '',
user: preset.user || '',
password: preset.password || '', // 历史记录里存的密码直接回填
jdbcParams: '', // 预设里没有这个字段
oracleClientDir: preset.oracle_client_dir || '', // 仅 Oracle 使用;非 Oracle 留空即可
// oracleClientDir 由后端配置(connection_presets 表的 oracle_client_dir 字段),
// 用户不手动改;选预设时透传过去,编辑场景从 task 回填
oracleClientDir: preset.oracle_client_dir || '',
// schema/table 不回填 —— 表结构会变,让用户重新「测试连接」拉
}
}
......@@ -108,28 +108,6 @@
<span class="form-label"><span class="required">*</span>密码</span>
<div class="form-control"><input type="password" class="text-input" v-model="form.password" /></div>
</div>
<!-- 仅 Oracle:Instant Client 路径(oci.dll 所在目录)。
Oracle 11g 及以下 thin 模式不支持(DPY-3010),必须装 Instant Client 让驱动切 thick。
留空则后端走默认搜索(PATH / 注册表 / ORACLE_HOME)。 -->
<div v-if="form.dbType === 'Oracle'" class="form-row full">
<span class="form-label">Oracle Client</span>
<div class="form-control">
<input
type="text"
class="text-input"
v-model="form.oracleClientDir"
placeholder="如:D:\Oracle\instantclient-basic-windows.x64-12.2.0.1.0\instantclient_12_2(留空走默认搜索)"
/>
<div class="form-hint">thin 模式不支持老 Oracle(11.2 以下),需下载 Instant Client Basic 包解压到本地后填该路径。</div>
</div>
</div>
<div class="form-row full">
<span class="form-label">连接参数</span>
<div class="form-control">
<input type="text" class="text-input" v-model="form.jdbcParams" />
<div class="form-hint">JDBC 额外参数,可选</div>
</div>
</div>
<div class="form-row full">
<span class="form-label"></span>
<div class="form-control" style="display: flex; gap: 8px; align-items: center;">
......@@ -332,8 +310,10 @@ const form = reactive({
db: '',
user: '',
password: '',
oracleClientDir: '', // 仅 Oracle 使用:Instant Client lib_dir(oci.dll 所在目录)
jdbcParams: '',
// oracleClientDir 由连接预设(connection_presets 表的 oracle_client_dir 字段)配置,
// 选历史连接时通过 presetToForm 自动回填;编辑场景从 task.oracle_client_dir 回填。
// 模板不展示 —— 用户不应手动改,由后端统一管。
oracleClientDir: '',
schema: '',
table: '',
})
......@@ -506,8 +486,6 @@ watch(() => form.dbType, async (newVal) => {
tableOptions.value = []
form.schema = ''
form.table = ''
// Oracle Client 路径是 Oracle 专用,切到 MySQL/达梦 应该清掉,避免脏数据被存进 conn_json
form.oracleClientDir = ''
connResult.value = { ok: null, message: '' }
connVerified.value = false // 切 dbType → 旧验证失效,等用户重新测试连接
selectedPresetId.value = null // 切 dbType 后清掉选中(当前 dbType 的预设列表会刷新)
......@@ -562,8 +540,7 @@ watch(() => props.open, async (v) => {
form.db = props.task.db || ''
form.user = props.task.user || ''
form.password = '' // 密码不回填(安全),但下面会自动从匹配的预设里补回来
form.oracleClientDir = props.task.oracle_client_dir || ''
form.jdbcParams = props.task.jdbc_params || ''
form.oracleClientDir = props.task.oracle_client_dir || '' // 编辑场景:从 task 回填,保留连库所需信息
form.schema = props.task.schema || ''
// 数据表:后端存的是「t_user_info」纯名,前端直接展示
form.table = props.task.source_table || ''
......@@ -599,7 +576,6 @@ watch(() => props.open, async (v) => {
form.user = ''
form.password = ''
form.oracleClientDir = ''
form.jdbcParams = ''
form.schema = ''
form.table = ''
fieldList.value = []
......@@ -637,8 +613,7 @@ function onSave() {
db: form.db,
user: form.user,
password: form.password,
oracleClientDir: form.oracleClientDir, // 仅 Oracle 使用;非 Oracle 字段为空字符串
jdbcParams: form.jdbcParams,
oracleClientDir: form.oracleClientDir, // 模板不展示,但保留字段链路:预设 / 编辑 → conn_json → DBConfig
schema: form.schema,
dbType: form.dbType,
table: form.table,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment