diff --git a/mayfly_go_web/src/views/ops/db/SqlExec.vue b/mayfly_go_web/src/views/ops/db/SqlExec.vue index b010cbeb..7b131a23 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] = [] + } +} + /** * 根据字段列名获取字段列信息。 * 若字段列名为空,则返回主键列,若无主键列返回第一个字段列信息(用于获取主键等)