From fbd3159c03b5a733eecbbe463d6114ae9458d0a4 Mon Sep 17 00:00:00 2001 From: yangyin <1850366751@qq.com> Date: 星期一, 02 九月 2024 12:09:42 +0800 Subject: [PATCH] 联调数据管理 --- src/api/knowledge/group.ts | 71 +++++++ src/views/project/yw/dataManage/graph/GraphIndex.vue | 375 +++++++++++++---------------------------- src/views/project/yw/dataManage/graph/AddGraph.vue | 72 ++++--- 3 files changed, 226 insertions(+), 292 deletions(-) diff --git a/src/api/knowledge/group.ts b/src/api/knowledge/group.ts new file mode 100644 index 0000000..88e3f16 --- /dev/null +++ b/src/api/knowledge/group.ts @@ -0,0 +1,71 @@ +import request from '/@/utils/request'; +/** + * @summary description 鑾峰彇鍏ㄩ儴鐨勬枃妗e垎缁� + */ +export const get_knowledge_group_list = async () => { + return request({ + url: '/admin/knowledge/get_knowledge_group_list', + method: 'POST', + }); +}; + +/** + * @summary description 娣诲姞鏂囨。鍒嗙粍 + */ +export const add_knowledge_group = async (params) => { + return request({ + url: '/admin/knowledge/add_knowledge_group', + method: 'POST', + data: params, + }); +}; +/** + * @summary description 淇敼鏂囨。鍒嗙粍 + */ +export const update_knowledge_group = async (params) => { + return request({ + url: '/admin/knowledge/update_knowledge_group', + method: 'POST', + data: params, + }); +}; +/** + * @summary description 鍒犻櫎鏂囨。鍒嗙粍 + */ +export const delete_knowledge_group = async (params) => { + return request({ + url: '/admin/knowledge/delete_knowledge_group', + method: 'POST', + data: params, + }); +}; + +/** + * @summary description 鑾峰彇鎵�鏈夌殑鏂囨。 + */ +export const list_knowledge_file = async () => { + return request({ + url: '/admin/knowledge/list_knowledge_file', + method: 'POST', + }); +}; +/** + * @summary description 娣诲姞鏂囨。 + */ +export const add_knowledge_file = async (params) => { + return request({ + url: '/admin/knowledge/add_knowledge_file', + method: 'POST', + data: params, + }); +}; +/** + * @summary description 鍒犻櫎鏂囨。 + */ +export const delete_knowledge_file = async (params) => { + return request({ + url: '/admin/knowledge/delete_knowledge_file', + method: 'POST', + data: params, + }); +}; diff --git a/src/views/project/yw/dataManage/graph/AddGraph.vue b/src/views/project/yw/dataManage/graph/AddGraph.vue index e7402b8..e60d30e 100644 --- a/src/views/project/yw/dataManage/graph/AddGraph.vue +++ b/src/views/project/yw/dataManage/graph/AddGraph.vue @@ -12,25 +12,15 @@ <div class="relative transition-[opacity 0.3s]"> <div class="set-form-height"> <div class="flex flex-col"> - <el-form :model="state.categoryForm" label-width="120px" label-position="left"> + <el-form :model="state.categoryForm" label-width="120px" label-position="left" :rules="state.categoryFormRules"> <el-form-item label="瀵煎叆绫荤洰:"> <label>{{ state.categoryForm.ImportCategory }}</label> </el-form-item> <el-form-item label="绫荤洰绫诲瀷:"> <label>{{ state.categoryForm.CategoryType }}</label> </el-form-item> - <el-form-item label="瀵煎叆鏂瑰紡:"> - <el-upload - ref="uploadRef" - v-model:file-list="fileList" - class="upload-demo w-[530px]" - drag - :multiple="true" - :auto-upload="false" - :accept="state.allowType" - :limit="state.limit" - :before-upload="beforeAvatarUpload" - > + <el-form-item label="瀵煎叆鏂瑰紡:" prop="importType"> + <el-upload ref="uploadRef" class="upload-demo w-[530px]" :http-request="uploadFile" drag :accept="state.allowType"> <el-icon class="el-icon--upload"><upload-filled /></el-icon> <div class="el-upload__text"> <em>鐐瑰嚮鎴栨嫋鎷戒笂浼犳枃浠�</em> @@ -75,7 +65,9 @@ import type { UploadUserFile } from 'element-plus'; import { ElMessage } from 'element-plus'; import { reactive, ref } from 'vue'; -import { useRouter } from 'vue-router'; +import { useRoute, useRouter } from 'vue-router'; +import { add_knowledge_file } from '/@/api/knowledge/group'; + // 瀹氫箟鍙橀噺鍐呭 const state = reactive({ detailTitle: '瀵煎叆鏁版嵁', @@ -84,40 +76,52 @@ CategoryType: '鏈湴绫荤洰', DocumentRecognition: '1', }, - allowType: '.pdf,.doc,.docx,.txt,.md,.pptx,.ppt', + // allowType: '.pdf,.doc,.docx,.txt,.md,.pptx,.ppt', + allowType: 'md', limit: 5, size: 5, demoDesc: '浣跨敤闃块噷浜戞枃妗f櫤鑳借В鏋愭湇鍔℃嵁瑙f瀽鏂囨。锛屾娊鍙栨枃妗e唴瀹广�佸眰绾х粨鏋勭瓑淇℃伅銆�', + categoryFormRules: { + importType: [ + { + required: true, + message: '璇烽�夋嫨鏂囦欢', + trigger: 'change', + }, + ], + }, }); const fileList = ref<UploadUserFile[]>([]); const router = useRouter(); +const route = useRoute(); //杩斿洖 const handleExitFlow = () => { //鏄惁鏄剧ず杩斿洖 router.back(); }; const flag = ref(true); -const beforeAvatarUpload = () => { - fileList.value.forEach((item: any) => { - console.log(item); - const type = item.name.split('.')[1]; - if (state.allowType.indexOf(type) == -1) { - ElMessage({ - type: 'error', - message: `鏍煎紡閿欒,鏀寔鏍煎紡:${state.allowType}!`, - }); - flag.value = false; - return; - } else if (item.size / 1024 / 1024 > state.size) { - ElMessage.error(`鏂囦欢鏈�澶�${state.size}MB!`); - flag.value = false; - return; - } - }); - return flag.value; +const uploadFile = (file: UploadUserFile) => { + fileList.value.push(file); }; + //纭 -const onSubmit = () => {}; +const onSubmit = async () => { + let group_id = route.query.group_id; + const data = new FormData(); + fileList.value.forEach((item: any) => { + data.append('file', item.file); + }); + data.append('group_id', group_id); + const res = await add_knowledge_file(data); + if (res.json_ok) { + ElMessage.success('瀵煎叆鎴愬姛'); + router.push({ + name: 'GraphIndex', + }); + } else { + ElMessage.error(res.json_msg); + } +}; </script> <style scoped lang="scss"> .set-form-height { diff --git a/src/views/project/yw/dataManage/graph/GraphIndex.vue b/src/views/project/yw/dataManage/graph/GraphIndex.vue index 5febfc1..97ff6ee 100644 --- a/src/views/project/yw/dataManage/graph/GraphIndex.vue +++ b/src/views/project/yw/dataManage/graph/GraphIndex.vue @@ -10,10 +10,14 @@ :show-more-operate="true" :show-add="true" :folderIcon="() => false" + :defaultProps="{ + children: 'Children', + label: 'title', + id: 'id', + }" :current-node-key="currentListID" :expand-on-click-node="false" :default-expand-all="true" - :tooltip="(_, data) => data.Code" @click="handleClickNode" :customDropdown="true" @tree-add="openOperateFormulaGroupDialog" @@ -35,16 +39,11 @@ <el-button link type="danger" - @click.stop="() => deleteCurrentFormulaGroup(data)" + @click.stop="() => deleteCurrentFormulaGroup(node, data)" icon="ele-Delete" style="cursor: pointer" > 鍒犻櫎 - </el-button> - </el-dropdown-item> - <el-dropdown-item> - <el-button @click.stop="() => openParentDlg(data)" link type="primary" icon="ele-Menu" style="cursor: pointer"> - 鐖剁骇 </el-button> </el-dropdown-item> </el-dropdown-menu> @@ -55,10 +54,10 @@ <template #header> <!-- 鏌ヨ銆侀噸缃�佹帓搴忋�佸鍔犺〃鍗� --> <el-form :inline="true" :model="formulaQueryParams"> - <el-form-item label="鍚嶇О" prop="Name"> - <el-input v-model="formulaQueryParams.Name" style="width: 226.4px" placeholder="鏂囦欢鍚嶇О" clearable></el-input> + <el-form-item label="鍚嶇О" prop="title"> + <el-input v-model="formulaQueryParams.title" style="width: 226.4px" placeholder="鏂囦欢鍚嶇О" clearable></el-input> </el-form-item> - <el-form-item prop="Code"> + <el-form-item> <el-select v-model="formulaQueryParams.Code" autocomplete="off" style="width: 226.4px" clearable> <el-option v-for="item in Object.keys(analyzeMap)" :key="item" :value="parseInt(item)" :label="analyzeMap[item]"> </el-option> @@ -79,26 +78,17 @@ v-loading="formulaTableLoading" ref="draggableFormulaTableRef" border - row-key="ID" + row-key="id" class="flex-auto" :row-class-name="isFormulaTableDrag ? 'cursor-move' : 'cursor-pointer'" - :cell-style="{ textAlign: 'center' }" :header-cell-style="{ textAlign: 'center' }" :data="categoryTableData" highlight-current-row > - <el-table-column prop="Name" width="220" label="鏂囦欢鍚嶇О" fixed="left" show-overflow-tooltip /> - <el-table-column prop="Code" width="300" label="鏂囦欢鏍煎紡" show-overflow-tooltip /> - <el-table-column prop="FormatType" label="鏂囦欢澶у皬" width="120" show-overflow-tooltip> </el-table-column> - <el-table-column prop="MeasureTypes" width="120" label="鐘舵��" show-overflow-tooltip> - <template #default="scope"> - <span v-if="scope.row.MeasureTypes === 1">瀵煎叆瀹屾垚</span> - <span v-else-if="scope.row.MeasureTypes === 0">姝e湪瀵煎叆涓�</span> - <span v-else>鏈煡</span> - </template> - </el-table-column> - <el-table-column prop="CronTypes" label="涓婁紶鏃堕棿" show-overflow-tooltip> </el-table-column> - <el-table-column label="鎿嶄綔" width="220" fixed="right" show-overflow-tooltip> + <el-table-column prop="name" label="鏂囦欢鍚嶇О" fixed="left" show-overflow-tooltip align="left" /> + <el-table-column prop="type" width="120" label="鏂囦欢鏍煎紡" show-overflow-tooltip align="center" /> + <el-table-column prop="time" label="涓婁紶鏃堕棿" show-overflow-tooltip width="280" align="center"></el-table-column> + <el-table-column label="鎿嶄綔" width="220" fixed="right" show-overflow-tooltip align="center"> <template #default="scope"> <el-button icon="ele-Tickets" size="small" text type="primary" @click="openOperateDemoPage(scope.row)"> 璇︽儏</el-button> <el-button icon="ele-Delete" size="small" text type="danger" @click="deleteCurrentFormulaRow(scope.row)"> @@ -107,7 +97,7 @@ </template> </el-table-column> </el-table> - <div class="flex-0"> + <!-- <div class="flex-0"> <el-pagination v-model:currentPage="state.tableParams.PageIndex" v-model:page-size="state.tableParams.PageSize" @@ -119,16 +109,16 @@ @current-change="handleCurrentChange" layout="total, sizes, prev, pager, next, jumper" /> - </div> + </div> --> </div> </template> <!-- 澧炲姞銆佷慨鏀规暟鎹璇濇 --> <el-dialog :destroy-on-close="true" - v-model="formulaGroupDialogIsShow" + v-model="dataGroupDialogIsShow" width="400" :close-on-click-modal="false" - @closed="closeFormulaGroupDialog" + @closed="closeDataGroupDialog" > <template #header> <div style="color: #fff"> @@ -141,25 +131,20 @@ </div> </template> - <el-form - :model="formulaGroupDialogFormValue" - ref="formulaGroupDialogFormRef" - :rules="formulaGroupDialogFormRules" - label-width="55" - > - <el-form-item label="鐖剁骇" v-if="!isEditFormulaGroupDialog" prop="ParentID"> + <el-form :model="dataGroupDialogFormValue" ref="formulaGroupDialogFormRef" :rules="formulaGroupDialogFormRules" label-width="55"> + <el-form-item label="鐖剁骇" v-if="!isEditDataGroupDialog" prop="parent_group"> <el-tree-select default-expand-all filterable style="width: 100%" - v-model="formulaGroupDialogFormValue.ParentID" + v-model="dataGroupDialogFormValue.parent_group" :props="{ - id: 'ID', - label: 'Name', + id: 'id', + label: 'title', children: 'Children', }" :data="listTreeData" - node-key="ID" + node-key="id" :clearable="true" :accordion="true" :expandNode="false" @@ -168,64 +153,14 @@ > </el-tree-select> </el-form-item> - <el-form-item label="鍚嶇О" prop="Name"> - <el-input placeholder="璇疯緭鍏ュ悕绉�" v-model="formulaGroupDialogFormValue.Name"></el-input> - </el-form-item> - <el-form-item label="缂栫爜" prop="Code"> - <el-input placeholder="璇疯緭鍏ョ紪鐮�" v-model="formulaGroupDialogFormValue.Code"></el-input> - </el-form-item> - - <el-form-item label="璇存槑" prop="Description"> - <el-input placeholder="璇疯緭鍏ヨ鏄�" v-model="formulaGroupDialogFormValue.Description" type="textarea" :rows="3" /> + <el-form-item label="鍚嶇О" prop="title"> + <el-input placeholder="璇疯緭鍏ュ悕绉�" v-model="dataGroupDialogFormValue.title"></el-input> </el-form-item> </el-form> <template #footer> <div> - <el-button @click="closeFormulaGroupDialog">鍙� 娑�</el-button> - <el-button type="primary" @click="submitFormulaGroupFormValue">纭� 瀹�</el-button> - </div> - </template> - </el-dialog> - - <!-- 澧炲姞銆佷慨鏀规暟鎹璇濇 --> - <el-dialog - :destroy-on-close="true" - v-model="updateModuleDlgIsShow" - width="400" - :close-on-click-modal="false" - @closed="closeUpdateModuleDlg" - > - <template #header> - <div style="color: #fff"> - <span> {{ updateModuleTitle }} </span> - </div> - </template> - - <el-form :model="updateModuleFormValue" ref="updateModuleFormRef" :rules="updateModuleFormRules" label-width="60"> - <el-form-item label="鍒嗙粍" prop="GroupID"> - <el-tree-select - filterable - class="w100" - v-model="updateModuleFormValue.GroupID" - :props="{ - id: 'ID', - label: 'Name', - children: 'Children', - }" - :data="updateModuleOptions" - node-key="ID" - :clearable="true" - :accordion="false" - :expandNode="false" - :check-strictly="true" - > - </el-tree-select> - </el-form-item> - </el-form> - <template #footer> - <div> - <el-button @click="closeUpdateModuleDlg">鍙� 娑�</el-button> - <el-button type="primary" @click="submitUpdateModule">纭� 瀹�</el-button> + <el-button @click="closeDataGroupDialog">鍙� 娑�</el-button> + <el-button type="primary" @click="submitDataGroupFormValue">纭� 瀹�</el-button> </div> </template> </el-dialog> @@ -233,23 +168,23 @@ </template> <script setup lang="ts"> -import type { AxiosRequestConfig, AxiosResponse } from 'axios'; import type { FormInstance, FormRules } from 'element-plus'; import { ElMessage, ElMessageBox } from 'element-plus'; -import type { PropType } from 'vue'; import { computed, nextTick, onMounted, reactive, ref } from 'vue'; import { useRouter } from 'vue-router'; +import { + add_knowledge_group, + delete_knowledge_file, + delete_knowledge_group, + get_knowledge_group_list, + list_knowledge_file, + update_knowledge_group, +} from '/@/api/knowledge/group'; import AHMContainer from '/@/components/layout/AHMContainer.vue'; import LeftTreeByMgr from '/@/components/tree/leftTreeByMgr.vue'; import { deepClone } from '/@/utils/other'; import { convertListToTree } from '/@/utils/util'; import { analyzeMap } from '/@/views/types/catalog/index'; - -const props = defineProps({ - request: { - type: Function as PropType<(config: AxiosRequestConfig<any>) => Promise<AxiosResponse<any, any>>>, - }, -}); const state = reactive({ tableParams: { PageIndex: 1, @@ -265,23 +200,26 @@ const treeLoading = ref(false); const listTreeData = ref([]); const currentTreeNode = ref(null); -const currentListID = computed(() => currentTreeNode.value?.ID); +const currentListID = computed(() => currentTreeNode.value?.id); const handleClickNode = (data) => { nextTick(() => { - leftTreeRef.value?.treeRef.setCurrentKey(data.ID); + leftTreeRef.value?.treeRef.setCurrentKey(data.id); }); currentTreeNode.value = data; getCategoryTableData(); }; const getListTreeData = async (selectFirst = false) => { - return; treeLoading.value = true; - const res = await GetAll(props.request).finally(() => { + const res = await get_knowledge_group_list().finally(() => { treeLoading.value = false; }); - if (res?.Code === 0) { - const resData = (res.Data || []) as []; - listTreeData.value = convertListToTree(resData); + if (res?.json_ok) { + const resData = (res.values || []) as []; + listTreeData.value = convertListToTree(resData, { + ID: 'id', + Children: 'Children', + ParentID: 'parent', + }); if (selectFirst) { const firstListTreeNode = listTreeData.value[0]; if (firstListTreeNode) { @@ -292,64 +230,44 @@ } else { currentTreeNode.value && handleClickNode(currentTreeNode.value); } - } else { - ElMessage.error('鑾峰彇鍏紡缁勫け璐�' + (res?.Message ? `锛�${JSON.stringify(res.Message)}` : '')); } }; //#endregion //#region ====================== 鑾峰彇銆佸垹闄よ〃鏍兼暟鎹� ====================== const formulaTableLoading = ref(false); -const categoryTableData = ref([ - { - Name: '娴嬭瘯', - }, -]); +const categoryTableData = ref([]); const isFormulaTableDrag = ref(false); const getCategoryTableData = async () => { - formulaTableLoading.value = true; - const res = await GetByGroupID({ GroupID: currentListID.value }, props.request).finally(() => { - formulaTableLoading.value = false; - }); - if (res?.Code === 0) { - const resData = (res.Data || []) as []; + const res = await list_knowledge_file().finally(() => {}); + if (res?.json_ok) { + const resData = (res.values || []) as []; + resData.forEach((item) => { + const type = item?.name.split('.')[1]; + item.type = type; + }); categoryTableData.value = resData; } else { - ElMessage.error('鑾峰彇鍏紡澶辫触' + (res?.Message ? `锛�${JSON.stringify(res.Message)}` : '')); + ElMessage.error('鑾峰彇鏂囨。鍒楄〃澶辫触' + (res?.json_msg ? `锛�${JSON.stringify(res.json_msg)}` : '')); } }; const deleteCurrentFormulaRow = (row: any) => { - ElMessageBox.confirm(`纭畾鍒犻櫎鍏紡锛氥��${row.Name}銆�?`, '鎻愮ず', { + ElMessageBox.confirm(`纭畾鍒犻櫎鏂囨。鍒楄〃锛氥��${row.name}銆�?`, '鎻愮ず', { confirmButtonText: '纭畾', cancelButtonText: '鍙栨秷', type: 'warning', }).then(async () => { - const res = await TableDelete( - { - ID: row.ID, - }, - props.request - ); - if (res?.Code === 0) { - if (res.Data) { - ElMessage.success('鍒犻櫎鍏紡鎴愬姛'); - getCategoryTableData(); - } else { - ElMessage.error('鍒犻櫎鍏紡澶辫触'); - } + const res = await delete_knowledge_file({ + file_id: row.id, + }); + + if (res.json_ok) { + ElMessage.success('鍒犻櫎鏂囨。鍒楄〃鎴愬姛'); + const index = categoryTableData.value.findIndex((d) => d.id === row.id); + categoryTableData.value.splice(index, 1); } else { - ElMessage.error('鍒犻櫎鍏紡澶辫触' + (res?.Message ? `锛�${JSON.stringify(res.Message)}` : '')); + ElMessage.error('鍒犻櫎鏂囨。鍒楄〃澶辫触' + (res?.json_msg ? `锛�${JSON.stringify(res.json_msg)}` : '')); } }); -}; -//鏁版嵁鍒楄〃椤甸潰鍒嗛〉 - -const handleSizeChange = (val) => { - state.tableParams.PageSize = val; - getCategoryTableData(); -}; -const handleCurrentChange = (val) => { - state.tableParams.PageIndex = val; - getCategoryTableData(); }; //#endregion @@ -357,8 +275,7 @@ //#region ====================== 鎼滅储琛ㄦ牸锛屽琛ㄦ牸鎺掑簭 ====================== const formulaQueryParams = ref({ - Name: '', - Code: '', + title: '', }); //#endregion @@ -368,7 +285,7 @@ router.push({ name: 'GraphDetail', params: { - ID: row.ID, + id: row.id, }, }); }; @@ -377,157 +294,99 @@ const importData = () => { router.push({ name: 'AddGraph', + query: { + group_id: currentListID.value, + }, }); }; //#endregion -//#region ====================== 鍒犻櫎宸︿晶鏍戝叕寮忕粍鏁版嵁 ====================== +//#region ====================== 鍒犻櫎宸︿晶鏍戞枃妗e垎缁勬暟鎹� ====================== -const deleteCurrentFormulaGroup = (row: any) => { - ElMessageBox.confirm(`纭畾鍒犻櫎鍏紡缁勶細銆�${row.Name}銆�?`, '鎻愮ず', { +const deleteCurrentFormulaGroup = (node, row: any) => { + ElMessageBox.confirm(`纭畾鍒犻櫎鏂囨。鍒嗙粍锛氥��${row.title}銆�?`, '鎻愮ず', { confirmButtonText: '纭畾', cancelButtonText: '鍙栨秷', type: 'warning', }).then(async () => { - const res = await DeleteGroupGetByID( - { - ID: row.ID, - }, - props.request - ); - if (res?.Code === 0) { - if (res.Data) { - ElMessage.success('鍒犻櫎鍏紡缁勬垚鍔�'); - getListTreeData(true); - } else { - ElMessage.error('鍒犻櫎鍏紡缁勫け璐�'); - } + const res = await delete_knowledge_group({ + id: row.id, + }); + + if (res.json_ok) { + ElMessage.success('鍒犻櫎鏂囨。鍒嗙粍鎴愬姛'); + const parent = node.parent; + const children = parent.data.Children || parent.data; + const index = children.findIndex((d) => d.id === row.id); + children.splice(index, 1); } else { - ElMessage.error('鍒犻櫎鍏紡缁勫け璐�' + (res?.Message ? `锛�${JSON.stringify(res.Message)}` : '')); + ElMessage.error('鍒犻櫎鏂囨。鍒嗙粍澶辫触'); } }); }; //#endregion -//#region ====================== 澧炲姞銆佸垹闄ゅ叕寮忕粍鎿嶄綔, dialog init====================== -const isEditFormulaGroupDialog = ref(false); +//#region ====================== 澧炲姞銆佸垹闄ゆ枃妗e垎缁勬搷浣�, dialog init====================== +const isEditDataGroupDialog = ref(false); const formulaGroupDialogTitle = computed(() => { - return isEditFormulaGroupDialog.value ? '淇敼鍏紡缁�' : '娣诲姞鍏紡缁�'; + return isEditDataGroupDialog.value ? '淇敼鏂囨。鍒嗙粍' : '娣诲姞鏂囨。鍒嗙粍'; }); const formulaGroupDialogHeaderIcon = computed(() => { - return isEditFormulaGroupDialog.value ? 'ele-Edit' : 'ele-Plus'; + return isEditDataGroupDialog.value ? 'ele-Edit' : 'ele-Plus'; }); -const formulaGroupDialogFormValue = ref(null); -const formulaGroupDialogIsShow = ref(false); +const dataGroupDialogFormValue = ref(null); +const dataGroupDialogIsShow = ref(false); const formulaGroupDialogFormRef = ref<FormInstance>(null); const formulaGroupDialogFormRules = ref<FormRules>({ - Name: [{ required: true, message: '璇疯緭鍏ュ悕绉�', trigger: 'blur' }], + title: [{ required: true, message: '璇疯緭鍏ュ悕绉�', trigger: 'blur' }], }); const openOperateFormulaGroupDialog = (data?) => { if (data) { - isEditFormulaGroupDialog.value = true; - const { ID, Name, Code, Description } = data; - formulaGroupDialogFormValue.value = deepClone({ ID, Name, Code, Description }); + isEditDataGroupDialog.value = true; + const { id, title } = data; + dataGroupDialogFormValue.value = deepClone({ id, title }); } else { - isEditFormulaGroupDialog.value = false; - formulaGroupDialogFormValue.value = { Name: '', ParentID: '', Code: '', Description: '' }; + isEditDataGroupDialog.value = false; + dataGroupDialogFormValue.value = { title: '', parent_group: '' }; } - formulaGroupDialogIsShow.value = true; + dataGroupDialogIsShow.value = true; }; -const closeFormulaGroupDialog = () => { - formulaGroupDialogIsShow.value = false; +const closeDataGroupDialog = () => { + dataGroupDialogIsShow.value = false; formulaGroupDialogFormRef.value.clearValidate(); }; -const submitFormulaGroupFormValue = async () => { +const submitDataGroupFormValue = async () => { const valid = await formulaGroupDialogFormRef.value.validate().catch(() => {}); if (!valid) return; - if (isEditFormulaGroupDialog.value) { - const res = await UpdateGroupGetByID(formulaGroupDialogFormValue.value, props.request); - if (res?.Code === 0) { - if (res.Data) { - getListTreeData(); - closeFormulaGroupDialog(); - ElMessage.success('淇敼鍏紡缁勬垚鍔�'); - } else { - ElMessage.error('淇敼鍏紡缁勫け璐�'); - } + if (isEditDataGroupDialog.value) { + const res = await update_knowledge_group(dataGroupDialogFormValue.value); + + if (res.json_ok) { + getListTreeData(); + closeDataGroupDialog(); + ElMessage.success('淇敼鏂囨。鍒嗙粍鎴愬姛'); } else { - ElMessage.error('淇敼鍏紡缁勫け璐�' + (res?.Message ? `锛�${JSON.stringify(res.Message)}` : '')); + ElMessage.error('淇敼鏂囨。鍒嗙粍澶辫触'); } } else { - const res = await InsertGroup( - { ...formulaGroupDialogFormValue.value, ParentID: formulaGroupDialogFormValue.value.ParentID || '0' }, - props.request - ); - if (res?.Code === 0) { - if (res.Data) { - getListTreeData(); - closeFormulaGroupDialog(); - ElMessage.success('娣诲姞鍏紡缁勬垚鍔�'); - } else { - ElMessage.error('娣诲姞鍏紡缁勫け璐�'); - } + const res = await add_knowledge_group({ + ...dataGroupDialogFormValue.value, + parent_group: dataGroupDialogFormValue.value.parent_group || '0', + }); + if (res.json_ok) { + getListTreeData(); + closeDataGroupDialog(); + ElMessage.success('娣诲姞鏂囨。鍒嗙粍鎴愬姛'); } else { - ElMessage.error('娣诲姞鍏紡缁勫け璐�' + (res?.Message ? `锛�${JSON.stringify(res.Message)}` : '')); + ElMessage.error('娣诲姞鏂囨。鍒嗙粍澶辫触'); } } }; -//#endregion - -//#region ====================== 淇敼鐖剁骇 ====================== -const parentDlgIsShow = ref(false); -const parentDlgMapRow = ref(null); -const openParentDlg = (row?) => { - parentDlgMapRow.value = row; - parentDlgIsShow.value = true; -}; -const submitParentForm = (res) => { - getListTreeData(); -}; -//#endregion - -//#region ====================== updateModuleDlg ====================== -const updateModuleDlgIsShow = ref(false); -const updateModuleMapRow = ref(null); -const updateModuleFormRef = ref(null); -const updateModuleTitle = computed(() => `銆�${updateModuleMapRow.value?.Name}銆戔�斺�� 淇敼鎵�灞炲垎缁刞); -const updateModuleFormRules = ref<FormRules>({ - GroupID: [{ required: true, message: '璇烽�夋嫨鍒嗙粍', trigger: 'change' }], -}); - -const updateModuleOptions = computed(() => { - return listTreeData.value; -}); -const updateModuleFormValue = ref(null); - -const closeUpdateModuleDlg = () => { - updateModuleDlgIsShow.value = false; - updateModuleFormRef.value.clearValidate(); -}; - -const submitUpdateModule = async () => { - const valid = await updateModuleFormRef.value.validate().catch(() => {}); - if (!valid) return; - if (updateModuleFormValue.value.GroupID === currentListID.value) { - ElMessage.info('鏈慨鏀�'); - return; - } - const res = await UpdateFormulaGroupID(updateModuleFormValue.value); - - if (res?.Data) { - ElMessage.success('淇敼鎴愬姛锛�'); - getCategoryTableData(); - closeUpdateModuleDlg(); - } else { - ElMessage.error('淇敼澶辫触'); - } -}; - //#endregion //#region ====================== 鎸傝浇鏃惰幏鍙栧垵濮嬫暟鎹� ====================== -- Gitblit v1.9.3