| | |
| | | :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" |
| | |
| | | <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> |
| | |
| | | |
| | | <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 :inline="true" :model="graphQueryParams"> |
| | | <el-form-item label="名称" prop="title"> |
| | | <el-input v-model="graphQueryParams.title" style="width: 226.4px" placeholder="文件名称" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="Code"> |
| | | <el-select v-model="formulaQueryParams.Code" autocomplete="off" style="width: 226.4px" clearable> |
| | | <!-- <el-form-item> |
| | | <el-select v-model="graphQueryParams.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> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | |
| | | <el-form-item> |
| | | <el-button type="primary" icon="ele-Search"> 查询 </el-button> |
| | | <el-button icon="ele-Refresh">重置 </el-button> |
| | | <el-button icon="ele-Plus" @click="importData()"> 导入数据 </el-button> |
| | | <el-button type="primary" icon="ele-Search" @click="handleQueryTable"> 查询 </el-button> |
| | | <el-button icon="ele-Refresh" @click="resetQuery">重置 </el-button> |
| | | <el-button icon="ele-Plus" @click="importData()" type="primary"> 导入数据 </el-button> |
| | | </el-form-item> |
| | | </el-form></template |
| | | > |
| | |
| | | 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" |
| | | :data="displayTableData" |
| | | 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> |
| | | <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="size" 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="120" fixed="right" show-overflow-tooltip align="center"> |
| | | <template #default="scope"> |
| | | <span v-if="scope.row.MeasureTypes === 1">导入完成</span> |
| | | <span v-else-if="scope.row.MeasureTypes === 0">正在导入中</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> |
| | | <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)"> |
| | | 删除 |
| | | </el-button> |
| | | <div class="space-x-2.5"> |
| | | <el-tooltip effect="dark" content="文本" placement="top"> |
| | | <i |
| | | class="ywifont ywicon-wendang !text-[17px] cursor-pointer text-blue-400" |
| | | @click="openOperateDemoPage(scope.row)" |
| | | ></i> |
| | | </el-tooltip> |
| | | <el-tooltip effect="dark" content="分块" placement="top"> |
| | | <i |
| | | class="ywifont ywicon-01wenjianfenkuai !text-[17px] cursor-pointer text-blue-400" |
| | | @click="handleViewKnowledgeFile(scope.row)" |
| | | ></i> |
| | | </el-tooltip> |
| | | <el-tooltip effect="dark" content="删除" placement="top"> |
| | | <i |
| | | class="ywifont ywicon-shanchu !text-[17px] text-red-400 cursor-pointer" |
| | | @click="deleteCurrentFormulaRow(scope.row)" |
| | | ></i> |
| | | </el-tooltip> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="flex-0"> |
| | | <el-pagination |
| | | v-model:currentPage="state.tableParams.PageIndex" |
| | | v-model:page-size="state.tableParams.PageSize" |
| | | :total="state.tableTotal" |
| | | :page-sizes="[10, 20, 50, 100]" |
| | | background |
| | | @size-change="handleSizeChange" |
| | | style="margin-bottom: 20px" |
| | | @current-change="handleCurrentChange" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | /> |
| | | </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"> |
| | |
| | | </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" |
| | |
| | | > |
| | | </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> |
| | |
| | | </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 { useQueryTable } from '/@/hooks/useQueryTable'; |
| | | 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>>>, |
| | | }, |
| | | }); |
| | | import { convertFileSize, convertListToTree } from '/@/utils/util'; |
| | | const state = reactive({ |
| | | tableParams: { |
| | | PageIndex: 1, |
| | |
| | | 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) { |
| | |
| | | } 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({ |
| | | group_id: currentListID.value, |
| | | }).finally(() => {}); |
| | | if (res?.json_ok) { |
| | | const resData = (res.values || []) as []; |
| | | resData.forEach((item) => { |
| | | item.size = convertFileSize(item.size); |
| | | }); |
| | | 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 |
| | | |
| | | //#endregion |
| | | |
| | | //#region ====================== 搜索表格,对表格排序 ====================== |
| | | const formulaQueryParams = ref({ |
| | | Name: '', |
| | | Code: '', |
| | | const graphQueryParams = ref({ |
| | | title: '', |
| | | }); |
| | | const { resetQuery, handleQueryTable, displayTableData } = useQueryTable(categoryTableData, graphQueryParams, () => { |
| | | displayTableData.value = categoryTableData.value; |
| | | }); |
| | | //#endregion |
| | | |
| | |
| | | const router = useRouter(); |
| | | const openOperateDemoPage = (row: any) => { |
| | | router.push({ |
| | | name: 'GraphDetail', |
| | | params: { |
| | | ID: row.ID, |
| | | name: 'ViewFile', |
| | | query: { |
| | | id: row.id, |
| | | }, |
| | | }); |
| | | }; |
| | | |
| | | const handleViewKnowledgeFile = (row) => { |
| | | router.push({ |
| | | name: 'ViewSegmentationFile', |
| | | query: { |
| | | id: row.id, |
| | | }, |
| | | }); |
| | | }; |
| | | //导入数据 |
| | | const importData = () => { |
| | | router.push({ |
| | | name: 'AddGraph', |
| | | query: { |
| | | group_id: currentListID.value, |
| | | title: currentTreeNode.value.title, |
| | | }, |
| | | }); |
| | | }; |
| | | //#endregion |
| | | |
| | | //#region ====================== 删除左侧树公式组数据 ====================== |
| | | //#region ====================== 删除左侧树文档分组数据 ====================== |
| | | |
| | | 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 ====================== 增加、删除文档分组操作, 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 ====================== 挂载时获取初始数据 ====================== |