From 03cc91c3e5844952649a0a99c7052dc56cf40614 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=AE=97=E6=B4=8B?= Date: Tue, 22 Nov 2022 15:54:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A1=A8=E5=AD=97=E6=AE=B5=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E4=BF=AE=E6=94=B9,=E6=9F=A5=E8=AF=A2tab=EF=BC=9A?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E6=89=A7=E8=A1=8Csql=E5=B0=B1=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E4=BF=AE=E6=94=B9=EF=BC=8C=E6=88=96=E8=80=85=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E5=8F=96=E6=B6=88=E6=8C=89=E9=92=AE=20=20=20=20=20=20?= =?UTF-8?q?=20=E5=90=84=E8=A1=A8tab=EF=BC=9A=E7=8B=AC=E7=AB=8B=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E4=BF=AE=E6=94=B9=E5=AD=97=E6=AE=B5=EF=BC=8C=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E5=8F=96=E6=B6=88=E6=88=96=E8=80=85=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mayfly_go_web/src/views/ops/db/SqlExec.vue | 54 ++++++++++++++++++---- 1 file changed, 44 insertions(+), 10 deletions(-) diff --git a/mayfly_go_web/src/views/ops/db/SqlExec.vue b/mayfly_go_web/src/views/ops/db/SqlExec.vue index 2f67310c..a8e10897 100644 --- a/mayfly_go_web/src/views/ops/db/SqlExec.vue +++ b/mayfly_go_web/src/views/ops/db/SqlExec.vue @@ -126,6 +126,11 @@ 提交 + + + 取消 + - + 提交 + + + 取消 + { state.queryTab.sql = sql; state.queryTab.loading = true; const colAndData: any = await runSql(sql, execRemark); - state.queryTab.updatedFields = []; state.queryTab.execRes.data = colAndData.res; state.queryTab.execRes.tableColumn = colAndData.colNames; state.queryTab.loading = false; + cancelUpdateFields() } catch (e: any) { state.queryTab.loading = false; } @@ -1196,9 +1207,12 @@ const onRefresh = async (tableName: string) => { // 查询条件置空 dataTab.condition = ''; dataTab.pageNum = 1; - setDataTabDatas(dataTab); + setDataTabDatas(dataTab).then(()=>{ + cancelUpdateFields() + }); }; + /** * 数据tab修改页数 */ @@ -1476,14 +1490,14 @@ const cellClick = (row: any, column: any, cell: any) => { if (state.activeName === 'Query'){ currentUpdatedFields = state.queryTab.updatedFields } else { - currentUpdatedFields = state.updatedFields; + currentUpdatedFields = state.updatedFields[state.nowTableName]; } // 主键 const primaryKey = await getColumn(state.nowTableName); const primaryKeyValue = row[primaryKey.columnName]; // 更新字段列信息 const updateColumn = await getColumn(state.nowTableName, property); - const newField = {div, fieldName: column.rawColumnKey, fieldType: updateColumn.columnType, oldValue: text, newValue: input.value} as FieldsMeta; + const newField = {div, fieldName: column.rawColumnKey, row, fieldType: updateColumn.columnType, oldValue: text, newValue: input.value} as FieldsMeta; // 被修改的字段 const primaryKeyFields = currentUpdatedFields.filter((meta)=>meta.primaryKey === primaryKeyValue) @@ -1540,7 +1554,7 @@ const cellClick = (row: any, column: any, cell: any) => { if (state.activeName === 'Query'){ state.queryTab.updatedFields = currentUpdatedFields } else { - state.updatedFields = currentUpdatedFields + state.updatedFields[state.nowTableName] = currentUpdatedFields } } }); @@ -1554,7 +1568,7 @@ const submitUpdateFields = () =>{ isQuery = true; currentUpdatedFields = state.queryTab.updatedFields } else { - currentUpdatedFields = state.updatedFields + currentUpdatedFields = state.updatedFields[state.nowTableName] } if(currentUpdatedFields.length <= 0){ return; @@ -1584,13 +1598,33 @@ const submitUpdateFields = () =>{ state.queryTab.updatedFields = [] doRunSql(state.queryTab.sql) }else{ - state.updatedFields = [] + state.updatedFields[state.nowTableName] = [] onRefresh(state.nowTableName) } }); } +const cancelUpdateFields = () => { + if (state.activeName === 'Query'){ + state.queryTab.updatedFields.forEach(a=>{ + a.fields.forEach(b=>{ + b.div.classList.remove('update_field_active') + b.row[b.fieldName] = b.oldValue + }) + }) + state.queryTab.updatedFields = [] + } else { + state.updatedFields[state.nowTableName]?.forEach(a=>{ + a.fields.forEach(b=>{ + b.div.classList.remove('update_field_active') + b.row[b.fieldName] = b.oldValue + }) + }) + state.updatedFields[state.nowTableName] = [] + } +} + /** * 根据字段列名获取字段列信息。 * 若字段列名为空,则返回主键列,若无主键列返回第一个字段列信息(用于获取主键等)