From 38c2db097d4d9a3e52f3a325ccecda8ad540dcbc Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期三, 09 十月 2024 16:33:53 +0800 Subject: [PATCH] matchs -> matches; 去除 pass --- src/views/project/yw/lowCode/sqlAmis/edit/SqlAmisEdit.vue | 128 +++++++++++++++++++++++++++--------------- 1 files changed, 83 insertions(+), 45 deletions(-) diff --git a/src/views/project/yw/lowCode/sqlAmis/edit/SqlAmisEdit.vue b/src/views/project/yw/lowCode/sqlAmis/edit/SqlAmisEdit.vue index e4893d1..fb0333c 100644 --- a/src/views/project/yw/lowCode/sqlAmis/edit/SqlAmisEdit.vue +++ b/src/views/project/yw/lowCode/sqlAmis/edit/SqlAmisEdit.vue @@ -1,6 +1,6 @@ <template> - <div class="h-full flex flex-col"> - <titleBox class="flex-0" style="background-color: #fff" :title="supervisor?.title"> + <div class="h-full flex flex-col bg-white"> + <titleBox class="flex-0 my-3.5" style="background-color: #fff" :title="supervisor?.title"> <template v-slot:left> <el-button icon="ele-ArrowLeft" @@ -10,6 +10,10 @@ @click="backLastPage" > </el-button> + </template> + + <template #right> + <el-button type="primary" size="large" @click="saveClick">淇濆瓨</el-button> </template> </titleBox> @@ -32,17 +36,32 @@ <!-- <el-table-column label="璇锋眰鍦板潃" ></el-table-column> --> </el-table></Pane > - <Pane :size="60"> + <Pane :size="60" class="pl-2"> <Splitpanes class="default-theme h100" :horizontal="true"> - <Pane :size="35" class="flex-col flex"> + <Pane :size="45" class="flex-col flex"> + <!-- #region ====================== 鍏抽敭璇嶅尮閰� ======================--> + + <div class="flex-0 flex justify-between items-center mb-1 ml-1 h-[36px]"> + <span class="font-bold">鍏抽敭璇�</span> + </div> + <TagInput class="mb-1" v-model="matchList"></TagInput> + <!-- #endregion --> + <div class="flex-0 flex justify-between items-center mb-1 ml-1 h-[36px]"> <span class="font-bold">鍙傛暟</span> - <el-button type="primary" @click="addArg">娣诲姞</el-button> + <el-button size="small" type="default" @click="addArg">娣诲姞鍙傛暟</el-button> </div> <el-table class="flex-auto" :data="args" border> - <el-table-column prop="name" width="150" label="鍚嶇О" show-overflow-tooltip> + <el-table-column prop="name" width="150" label="鍙傛暟鍚�" fixed show-overflow-tooltip> <template #default="scope"> <el-input v-model="scope.row.name" @input="argsInput"></el-input> + </template> + </el-table-column> + <el-table-column prop="type" width="120" label="绫诲瀷" show-overflow-tooltip> + <template #default="scope"> + <el-select v-model="scope.row.type"> + <el-option v-for="item in Object.keys(argTypeMap)" :key="item" :value="item" :label="argTypeMap[item]"></el-option> + </el-select> </template> </el-table-column> <el-table-column prop="prompt" width="450" label="鎻愮ず璇�" show-overflow-tooltip> @@ -50,6 +69,12 @@ <el-input type="textarea" :rows="2" v-model="scope.row.prompt" @input="argsInput"></el-input> </template> </el-table-column> + <el-table-column prop="required" width="56" label="蹇呭~" show-overflow-tooltip> + <template #default="scope"> + <el-checkbox v-model="scope.row.required"></el-checkbox> + </template> + </el-table-column> + <el-table-column prop="check" label="缂虹渷鍊�" show-overflow-tooltip> <template #default="scope"> <el-input v-model="scope.row.check" @input="argsInput"></el-input> @@ -64,7 +89,8 @@ </el-table-column> </el-table> </Pane> - <Pane :size="65"> + + <Pane :size="55"> <div class="h-full"> <template v-if="currentDockConfig"> <div class="flex justify-between items-center my-1 ml-1 h-[36px]"> @@ -109,14 +135,11 @@ :data="otherSqlList" highlight-current-row > - <el-table-column prop="id" label="id" width="220" fixed="left" show-overflow-tooltip> </el-table-column> <el-table-column label="鏁版嵁搴�" prop="database" show-overflow-tooltip> - - <template #default="scope"> - {{ getMapDatabase(scope.row.database)?.title }} - </template> - + <template #default="scope"> + {{ getMapDatabase(scope.row.database)?.title }} + </template> </el-table-column> <el-table-column label="鎿嶄綔" width="120" fixed="right" show-overflow-tooltip> @@ -167,14 +190,14 @@ import { Codemirror } from 'vue-codemirror'; import { SupervisorPublished } from '../types'; import * as codeExample from './testData'; -import { amisDockTypeMap } from './types'; +import { amisDockTypeMap, argTypeMap } from './types'; import * as supervisorApi from '/@/api/supervisorAdmin'; import { updateSqlApi } from '/@/api/supervisorAdmin'; import titleBox from '/@/components/titleBox.vue'; import { useCompRef } from '/@/utils/types'; import { computed } from 'vue'; import SqlCodeViewDlg from './optDlg/SqlCodeViewDlg.vue'; - +import TagInput from '/@/components/form/tagInput/TagInput.vue'; const props = defineProps(['supervisor']); const emit = defineEmits(['backLastPage', 'updatePublished']); const log = console.log; @@ -198,7 +221,8 @@ currentDockConfig.value.database = val; } sqlActiveTab.value = SqlTabType.LinkSql; - updateSqlAndRs(currentDockConfig.value.id, currentDockConfig.value); + updateSql(currentDockConfig.value.id, currentDockConfig.value); + // updateSqlAndRs(currentDockConfig.value.id, currentDockConfig.value); }; const backLastPage = () => { // setTimeout(() => { @@ -220,7 +244,7 @@ }); }); const getWithTemplateDataCommentSql = (sql: string, data: any) => { - const reg = new RegExp(`^\\s*(\\s*--\\s*".*"\\s*:.*\\n)+`); + const reg = new RegExp(`^\\s*(\\s*--\\s*".*"\\s*:.*\\n)+\\s*`); const isMatchReg = reg.test(sql); if (!Array.isArray(data)) { return isMatchReg ? sql.replace(reg, '') : sql; @@ -354,7 +378,7 @@ extraInfoMap.value.set(recordId, { url: value.url, - templateData: getAmisData(item.data), + templateData: getAmisData(item.template ?? item.data), }); // const recordId = uniqueId() jsonConfigList.push({ @@ -378,7 +402,7 @@ return !foundWithNoDatabase; }; -const updateSqlAndRs = (id?, sqlValue?: { database?: string; sql?: string; type?: AmisDockType }) => { +const updateSqlAndRs = () => { const apiConfig = configList.value.filter((item) => item.type === AmisDockType.Sql); if (!checkValid(true)) { @@ -391,6 +415,24 @@ rec_id: item.recordId, })); + updateSqlApi( + { + id: props.supervisor.id, + def_rs_json: dockConfigList.value.length === 0 ? JSON.stringify([]) : JSON.stringify(dockConfigList.value), + async_rs_json: asyncRsList.length === 0 ? JSON.stringify([]) : JSON.stringify(asyncRsList), + args: args.value.length === 0 ? JSON.stringify([]) : JSON.stringify(args.value), + matches: !matchList.value || matchList.value.length === 0 ? JSON.stringify([]) : JSON.stringify(matchList.value), + }, + { + loading: false, + } + ).then(() => { + ElMessage.success('淇濆瓨鎴愬姛'); + emit('updatePublished', props.supervisor.id, SupervisorPublished.N); + }); +}; + +const updateSql = (id?, sqlValue?: { database?: string; sql?: string; type?: AmisDockType }) => { if (id && sqlValue) { const foundIndex = dockConfigList.value?.findIndex((item) => item.id === id); if (foundIndex > -1) { @@ -416,20 +458,6 @@ } } } - - updateSqlApi( - { - id: props.supervisor.id, - def_rs_json: dockConfigList.value.length === 0 ? null : JSON.stringify(dockConfigList.value), - async_rs_json: asyncRsList.length === 0 ? null : JSON.stringify(asyncRsList), - args: args.value.length === 0 ? null : JSON.stringify(args.value), - }, - { - loading: false, - } - ).then(() => { - emit('updatePublished', props.supervisor.id, SupervisorPublished.N); - }); }; const sqlCodeChange = debounce((val) => { @@ -440,7 +468,11 @@ return; } } - updateSqlAndRs(currentDockConfig.value.id, currentDockConfig.value); + + const id = currentDockConfig.value.id; + const sqlValue = currentDockConfig.value; + updateSql(id, sqlValue); + // updateSqlAndRs(); }, 1000); const dockConfigList = ref([]); const rsTableRef = ref<TableInstance>(null); @@ -476,10 +508,12 @@ }); }; +// 鍖归厤璇� +const matchList = ref([]); //#region ====================== 鍙紪杈戣〃鏍� ====================== const args = ref([]); const debounceUpdateInput = debounce(() => { - updateSqlAndRs(); + // updateSqlAndRs(); }, 400); const argsInput = (val) => { debounceUpdateInput(); @@ -496,20 +530,20 @@ args.value.push(initData); } - updateSqlAndRs(); + // updateSqlAndRs(); }; const deleteArg = (index) => { args.value.splice(index, 1); - updateSqlAndRs(); + // updateSqlAndRs(); }; const databaseList = ref([]); -const getMapDatabase = (id:string)=>{ - const foundItem = databaseList.value.find(item=>item.id===id); +const getMapDatabase = (id: string) => { + const foundItem = databaseList.value.find((item) => item.id === id); return foundItem; -} +}; //#endregion onMounted(async () => { xmlJson = await supervisorApi.getLowCodeJson({ @@ -528,7 +562,7 @@ ) ?? []; dockConfigList.value = xmlJson.def_rs_json ?? null; args.value = xmlJson.args ?? []; - + matchList.value = xmlJson.matches ??[]; configList.value = parseJSONData(xmlJson.amis_json, originConfig); const res = await supervisorApi.getAmisDatabaseList(); databaseList.value = res.values ?? []; @@ -536,14 +570,14 @@ rsTableRef.value.setCurrentRow(configList.value[0]); } - if (!configList || configList.value.length === 0) { + if (!configList.value || configList.value.length === 0) { ElMessage.warning('鏆傛棤瀵规帴閰嶇疆'); } const isRsUpdate = checkRsUpdate(originConfig, configList.value); if (isRsUpdate) { // 鑷姩鏇存柊Rs - updateSqlAndRs(); + // updateSqlAndRs(); } }); //#region ====================== sql 淇濆瓨鍘嗗彶 ====================== @@ -565,7 +599,7 @@ type: 'warning', }).then(async () => { dockConfigList.value = dockConfigList.value.filter((item) => item.id !== row.id); - updateSqlAndRs(); + // updateSqlAndRs(); }); }; // 鍒犻櫎鏈繛鎺� @@ -579,7 +613,7 @@ const recordIds = apiConfig?.map((item) => item.recordId) ?? []; // 杩囨护鍑� apiConfig 涓湁鐨剅ecord; dockConfigList.value = dockConfigList.value?.filter((item) => recordIds.includes(item.id)) ?? []; - updateSqlAndRs(); + // updateSqlAndRs(); }); }; @@ -590,6 +624,10 @@ optDlgIsShow.value = true; }; +const saveClick = () => { + updateSqlAndRs(); +}; + //#endregion // watch(() => sqlCodemirrorRef.value, (codeMirrorRef) => { // codeMirrorRef. -- Gitblit v1.9.3