feat: 知识库
This commit is contained in:
@@ -62,7 +62,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|||||||
isInitial: false,
|
isInitial: false,
|
||||||
modelValue: false,
|
modelValue: false,
|
||||||
});
|
});
|
||||||
const emits = defineEmits(['update:modelValue', 'ok']);
|
const emits = defineEmits(['update:modelValue', 'confirm']);
|
||||||
const visible = computed({
|
const visible = computed({
|
||||||
get: () => props.modelValue,
|
get: () => props.modelValue,
|
||||||
set: (val) => emits('update:modelValue', val),
|
set: (val) => emits('update:modelValue', val),
|
||||||
@@ -103,7 +103,7 @@ const onConfirmFun = async () => {
|
|||||||
}
|
}
|
||||||
await formRef.value.validate((valid, fields) => {
|
await formRef.value.validate((valid, fields) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
emits('ok', form);
|
emits('confirm', form);
|
||||||
} else {
|
} else {
|
||||||
console.log('error submit!', fields);
|
console.log('error submit!', fields);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|||||||
poolList: () => [],
|
poolList: () => [],
|
||||||
});
|
});
|
||||||
|
|
||||||
const emits = defineEmits(['update:modelValue', 'ok']);
|
const emits = defineEmits(['update:modelValue', 'confirm']);
|
||||||
const form = ref({
|
const form = ref({
|
||||||
name: '',
|
name: '',
|
||||||
});
|
});
|
||||||
@@ -110,7 +110,7 @@ const onConfirmFun = async () => {
|
|||||||
}
|
}
|
||||||
await formRef.value.validate((valid) => {
|
await formRef.value.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
emits('ok', form.value);
|
emits('confirm', form.value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|||||||
modelValue: false,
|
modelValue: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
const emits = defineEmits(['update:modelValue', 'ok']);
|
const emits = defineEmits(['update:modelValue', 'confirm']);
|
||||||
|
|
||||||
const visible = computed({
|
const visible = computed({
|
||||||
get: () => props.modelValue,
|
get: () => props.modelValue,
|
||||||
@@ -64,7 +64,7 @@ const onDelPoolFun = async (pool: Pool) => {
|
|||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
ElMessage.success(res.message);
|
ElMessage.success(res.message);
|
||||||
queryListFun();
|
queryListFun();
|
||||||
emits('ok');
|
emits('confirm');
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.message);
|
ElMessage.error(res.message);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|||||||
poolList: () => [],
|
poolList: () => [],
|
||||||
});
|
});
|
||||||
|
|
||||||
const emits = defineEmits(['update:modelValue', 'ok']);
|
const emits = defineEmits(['update:modelValue', 'confirm']);
|
||||||
const form = ref<{
|
const form = ref<{
|
||||||
fileList: any[];
|
fileList: any[];
|
||||||
file: any | null;
|
file: any | null;
|
||||||
@@ -144,7 +144,7 @@ const onConfirmFun = async () => {
|
|||||||
if (form.value.fileList && form.value.fileList.length > 0) {
|
if (form.value.fileList && form.value.fileList.length > 0) {
|
||||||
form.value.file = form.value.fileList[0];
|
form.value.file = form.value.fileList[0];
|
||||||
}
|
}
|
||||||
emits('ok', form.value);
|
emits('confirm', form.value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -169,20 +169,20 @@
|
|||||||
<addApprove
|
<addApprove
|
||||||
v-model="dialogApproveUserVisible"
|
v-model="dialogApproveUserVisible"
|
||||||
:isInitial="isEmptyPool"
|
:isInitial="isEmptyPool"
|
||||||
@ok="onConfirmFun"
|
@confirm="onAddApproveConfirmFun"
|
||||||
></addApprove>
|
></addApprove>
|
||||||
<add-pool-modal
|
<add-pool-modal
|
||||||
v-model="addPoolModalVisible"
|
v-model="addPoolModalVisible"
|
||||||
mode="add"
|
mode="add"
|
||||||
:poolList="poolList"
|
:poolList="poolList"
|
||||||
detail="{}"
|
detail="{}"
|
||||||
@ok="onAddPoolOkFun"
|
@confirm="onAddPoolConfirmFun"
|
||||||
/>
|
/>
|
||||||
<del-pool-modal v-model="delPoolModalVisible" @ok="onDelPoolOkFun" />
|
<del-pool-modal v-model="delPoolModalVisible" @confirm="onDelPoolConfirmFun" />
|
||||||
<import-pool-modal
|
<import-pool-modal
|
||||||
v-model="importPoolModalVisible"
|
v-model="importPoolModalVisible"
|
||||||
:poolList="poolList"
|
:poolList="poolList"
|
||||||
@ok="onImportPoolOkFun"
|
@confirm="onImportPoolConfirmFun"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -303,7 +303,7 @@ const onTableTypeChangeFun = (type: string) => {
|
|||||||
mergeListTableColumnsFun();
|
mergeListTableColumnsFun();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const onConfirmFun = async (formData: any) => {
|
const onAddApproveConfirmFun = async (formData: any) => {
|
||||||
dialogApproveUserVisible.value = false;
|
dialogApproveUserVisible.value = false;
|
||||||
if (isEmptyPool.value) {
|
if (isEmptyPool.value) {
|
||||||
await createTaskPoolFun(formData);
|
await createTaskPoolFun(formData);
|
||||||
@@ -865,7 +865,7 @@ const addPoolModalVisible = ref(false);
|
|||||||
const addPoolFun = () => {
|
const addPoolFun = () => {
|
||||||
addPoolModalVisible.value = true;
|
addPoolModalVisible.value = true;
|
||||||
};
|
};
|
||||||
const onAddPoolOkFun = (formData: any) => {
|
const onAddPoolConfirmFun = (formData: any) => {
|
||||||
const newPool = {
|
const newPool = {
|
||||||
tenantId,
|
tenantId,
|
||||||
poolName: formData.name,
|
poolName: formData.name,
|
||||||
@@ -882,7 +882,7 @@ const delPoolModalVisible = ref(false);
|
|||||||
const openDelPoolFun = () => {
|
const openDelPoolFun = () => {
|
||||||
delPoolModalVisible.value = true;
|
delPoolModalVisible.value = true;
|
||||||
};
|
};
|
||||||
const onDelPoolOkFun = () => {
|
const onDelPoolConfirmFun = () => {
|
||||||
refreshPoolFun();
|
refreshPoolFun();
|
||||||
};
|
};
|
||||||
const importPoolModalVisible = ref(false);
|
const importPoolModalVisible = ref(false);
|
||||||
@@ -934,7 +934,7 @@ const dict = computed(() => ({
|
|||||||
section: taskPoolDictOptions.value.sectionListOptions,
|
section: taskPoolDictOptions.value.sectionListOptions,
|
||||||
group: taskPoolDictOptions.value.groupListOptions,
|
group: taskPoolDictOptions.value.groupListOptions,
|
||||||
}));
|
}));
|
||||||
const onImportPoolOkFun = async (formData: any) => {
|
const onImportPoolConfirmFun = async (formData: any) => {
|
||||||
importPoolModalVisible.value = false;
|
importPoolModalVisible.value = false;
|
||||||
const req = {
|
const req = {
|
||||||
poolName: formData.poolName,
|
poolName: formData.poolName,
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|||||||
mode: 'add',
|
mode: 'add',
|
||||||
});
|
});
|
||||||
|
|
||||||
const emits = defineEmits(['update:modelValue', 'ok']);
|
const emits = defineEmits(['update:modelValue', 'confirm']);
|
||||||
const form = ref({
|
const form = ref({
|
||||||
name: '',
|
name: '',
|
||||||
});
|
});
|
||||||
@@ -91,7 +91,7 @@ const onConfirmFun = async () => {
|
|||||||
}
|
}
|
||||||
await formRef.value.validate((valid) => {
|
await formRef.value.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
emits('ok', form.value);
|
emits('confirm', form.value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|||||||
folder: null,
|
folder: null,
|
||||||
tableName: '',
|
tableName: '',
|
||||||
});
|
});
|
||||||
const emits = defineEmits(['update:modelValue', 'ok']);
|
const emits = defineEmits(['update:modelValue', 'confirm']);
|
||||||
const visible = computed({
|
const visible = computed({
|
||||||
get: () => props.modelValue,
|
get: () => props.modelValue,
|
||||||
set: (val) => emits('update:modelValue', val),
|
set: (val) => emits('update:modelValue', val),
|
||||||
@@ -100,19 +100,21 @@ const form = ref<RuleForm>({
|
|||||||
|
|
||||||
const onShowFun = () => {
|
const onShowFun = () => {
|
||||||
resetFun();
|
resetFun();
|
||||||
initData();
|
if (props.detail && props.detail.id) {
|
||||||
|
initData();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
const initData = () => {
|
const initData = () => {
|
||||||
const file = [{
|
const file = [{
|
||||||
name: props.detail.originalName,
|
name: props.detail?.originalName,
|
||||||
}];
|
}];
|
||||||
tableFormRef.value?.setFormDataFun({ ...props.detail, ...{ originalName: file } });
|
tableFormRef.value?.setFormDataFun({ ...props.detail, ...{ originalName: file } });
|
||||||
form.value.projectId = props.detail.projectId;
|
form.value.projectId = props.detail?.projectId;
|
||||||
form.value.analysisDirectionId = props.detail.analysisDirectionId;
|
form.value.analysisDirectionId = props.detail?.analysisDirectionId;
|
||||||
};
|
};
|
||||||
watchEffect(() => {
|
watchEffect(() => {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
if (props.detail) {
|
if (props.detail && props.detail.id) {
|
||||||
initData();
|
initData();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -143,9 +145,14 @@ const onConfirmFun = async () => {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
const formData = tableFormRef.value?.getFormDataFun();
|
const formData = tableFormRef.value?.getFormDataFun();
|
||||||
if (formData.originalName && formData.originalName.length > 0) {
|
if (formData.originalName && formData.originalName.length > 0) {
|
||||||
formData.file = formData.originalName[0] || {};
|
formData.file = formData.originalName.map((item:any) => {
|
||||||
|
return {
|
||||||
|
fileName: item.raw?.name,
|
||||||
|
size: item.raw?.size,
|
||||||
|
};
|
||||||
|
});
|
||||||
}
|
}
|
||||||
emits('ok', formData);
|
emits('confirm', formData);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
|||||||
@@ -104,9 +104,14 @@
|
|||||||
:detail="currentRow"
|
:detail="currentRow"
|
||||||
:folder="currentFolder"
|
:folder="currentFolder"
|
||||||
tableName="SIMULATION_KNOWLEDGE"
|
tableName="SIMULATION_KNOWLEDGE"
|
||||||
@ok="onOkFun"
|
@confirm="onConfirmFun"
|
||||||
|
/>
|
||||||
|
<folderModal
|
||||||
|
v-model="folderModalVisible"
|
||||||
|
:detail="currentFolder"
|
||||||
|
:mode="currentFolderMode"
|
||||||
|
@confirm="onFolderConfirmFun"
|
||||||
/>
|
/>
|
||||||
<folderModal v-model="folderModalVisible" :detail="currentFolder" :mode="currentFolderMode" @ok="onFolderOkFun" />
|
|
||||||
<FilePreview v-model="previewVisible" :fileId="currentRow?.id" />
|
<FilePreview v-model="previewVisible" :fileId="currentRow?.id" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -118,7 +123,7 @@ import BaseTable from '@/components/common/table/baseTable.vue';
|
|||||||
import FileTree from '@/components/common/fileTree/index.vue';
|
import FileTree from '@/components/common/fileTree/index.vue';
|
||||||
import knowledgeDetailModal from './components/knowledgeDetailModal.vue';
|
import knowledgeDetailModal from './components/knowledgeDetailModal.vue';
|
||||||
import folderModal from './components/folderDetailModal.vue';
|
import folderModal from './components/folderDetailModal.vue';
|
||||||
import { dataCreateDirApi, dataListDirApi, dataRenameDirApi, dataUploadFilesApi, dataDelDirApi, dataQueryDirApi, dataFileSearchApi, dataDelFileApi, dataUpdateFileApi } from '@/api/data/data';
|
import { dataCreateDirApi, dataListDirApi, dataRenameDirApi, dataUploadFilesApi, dataDelDirApi, dataQueryDirApi, dataFileSearchApi, dataDelFileApi, dataUpdateFileApi, batchAddFileInfoApi } from '@/api/data/data';
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus';
|
import { ElMessage, ElMessageBox } from 'element-plus';
|
||||||
import type { RenderContentContext } from 'element-plus';
|
import type { RenderContentContext } from 'element-plus';
|
||||||
import { formatFileSize } from '@/utils/file';
|
import { formatFileSize } from '@/utils/file';
|
||||||
@@ -130,6 +135,7 @@ import { useDict } from '@/utils/useDict';
|
|||||||
import ApprovalProcess from '@/components/common/approvalProcess/index.vue';
|
import ApprovalProcess from '@/components/common/approvalProcess/index.vue';
|
||||||
import i18n from '@/utils/i18n';
|
import i18n from '@/utils/i18n';
|
||||||
import FilePreview from '@/components/common/filePreview/index.vue';
|
import FilePreview from '@/components/common/filePreview/index.vue';
|
||||||
|
import emitter from '@/utils/eventBus';
|
||||||
|
|
||||||
const { KNOWLEDGE_APPROVE_STATUS, KNOWLEDGE_APPROVE_TYPE } = useDict('KNOWLEDGE_APPROVE_STATUS', 'KNOWLEDGE_APPROVE_TYPE');
|
const { KNOWLEDGE_APPROVE_STATUS, KNOWLEDGE_APPROVE_TYPE } = useDict('KNOWLEDGE_APPROVE_STATUS', 'KNOWLEDGE_APPROVE_TYPE');
|
||||||
const env = import.meta.env;
|
const env = import.meta.env;
|
||||||
@@ -180,20 +186,41 @@ const removeFun = async (data: Data) => {
|
|||||||
};
|
};
|
||||||
const res: any = await dataDelDirApi(req);
|
const res: any = await dataDelDirApi(req);
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
refreshTreeFun(data.parentId);
|
refreshTreeAfterModifyOrRemove(data);
|
||||||
ElMessage.success(res.message);
|
ElMessage.success(res.message);
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.message);
|
ElMessage.error(res.message);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const refreshTreeFun = (parentId?: number) => {
|
const refreshTreeRoot = () => {
|
||||||
if (parentId) {
|
fileTreeRef.value?.reloadFun();
|
||||||
fileTreeRef.value?.openDirFun(parentId);
|
|
||||||
} else {
|
|
||||||
fileTreeRef.value?.reloadFun();
|
|
||||||
}
|
|
||||||
baseTableRef.value?.resetFun();
|
baseTableRef.value?.resetFun();
|
||||||
};
|
};
|
||||||
|
const refreshTreeOpenDir = (dirId: number) => {
|
||||||
|
fileTreeRef.value?.openDirFun(dirId);
|
||||||
|
baseTableRef.value?.resetFun();
|
||||||
|
};
|
||||||
|
const refreshTreeAfterAdd = (parentNode?: any | null) => {
|
||||||
|
if (parentNode && typeof parentNode.id === 'number') {
|
||||||
|
refreshTreeOpenDir(parentNode.id);
|
||||||
|
} else {
|
||||||
|
refreshTreeRoot();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const isTopLevel = (node: any) => {
|
||||||
|
if (!node || !node.objectKey) return false;
|
||||||
|
const key = String(node.objectKey).replace(/\/$/, '');
|
||||||
|
const parts = key.split('/');
|
||||||
|
return parts.length === 2;
|
||||||
|
};
|
||||||
|
const refreshTreeAfterModifyOrRemove = (node?: any | null) => {
|
||||||
|
if (isTopLevel(node)) {
|
||||||
|
refreshTreeRoot();
|
||||||
|
} else {
|
||||||
|
refreshTreeOpenDir(node.parentId);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
const isSearching = ref(false);
|
const isSearching = ref(false);
|
||||||
const searchParams = ref<any>({
|
const searchParams = ref<any>({
|
||||||
fileId: currentFolder.value?.id || '',
|
fileId: currentFolder.value?.id || '',
|
||||||
@@ -264,21 +291,19 @@ const resetFun = (data: object) => {
|
|||||||
const refreshTableFun = async () => {
|
const refreshTableFun = async () => {
|
||||||
baseTableRef.value?.resetFun();
|
baseTableRef.value?.resetFun();
|
||||||
};
|
};
|
||||||
const onFolderOkFun = async (formData: any) => {
|
const onFolderConfirmFun = async (formData: any) => {
|
||||||
if (currentFolderMode.value === 'add') {
|
if (currentFolderMode.value === 'add') {
|
||||||
const req = {
|
const req = {
|
||||||
dirType: DIR_TYPE.KNOWLEDGE,
|
dirType: DIR_TYPE.KNOWLEDGE,
|
||||||
parDirId: currentFolder.value.id,
|
parDirId: currentFolder.value?.id,
|
||||||
dirName: formData.name,
|
dirName: formData.name,
|
||||||
type: 0,
|
type: 0,
|
||||||
};
|
};
|
||||||
const res: any = await dataCreateDirApi(req);
|
const res: any = await dataCreateDirApi(req);
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
refreshTreeFun(currentFolder.value.id);
|
refreshTreeAfterAdd(currentFolder.value);
|
||||||
folderModalVisible.value = false;
|
folderModalVisible.value = false;
|
||||||
ElMessage.success(res.message);
|
ElMessage.success(res.message);
|
||||||
} else {
|
|
||||||
ElMessage.error(res.message);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (currentFolderMode.value === 'edit') {
|
} else if (currentFolderMode.value === 'edit') {
|
||||||
@@ -290,11 +315,9 @@ const onFolderOkFun = async (formData: any) => {
|
|||||||
};
|
};
|
||||||
const res: any = await dataRenameDirApi(req);
|
const res: any = await dataRenameDirApi(req);
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
refreshTreeFun(currentFolder.value.parentId);
|
refreshTreeAfterModifyOrRemove(currentFolder.value);
|
||||||
folderModalVisible.value = false;
|
folderModalVisible.value = false;
|
||||||
ElMessage.success(res.message);
|
ElMessage.success(res.message);
|
||||||
} else {
|
|
||||||
ElMessage.error(res.message);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -305,7 +328,7 @@ const openModalFun = () => {
|
|||||||
visible.value = true;
|
visible.value = true;
|
||||||
currentRow.value = null;
|
currentRow.value = null;
|
||||||
};
|
};
|
||||||
const onOkFun = async (formData: any) => {
|
const onConfirmFun = async (formData: any) => {
|
||||||
const req = {
|
const req = {
|
||||||
...currentRow.value,
|
...currentRow.value,
|
||||||
templateId: formData.templateId,
|
templateId: formData.templateId,
|
||||||
@@ -328,7 +351,30 @@ const onOkFun = async (formData: any) => {
|
|||||||
if (currentRow.value && currentRow.value.id) {
|
if (currentRow.value && currentRow.value.id) {
|
||||||
res = await dataUpdateFileApi(req);
|
res = await dataUpdateFileApi(req);
|
||||||
} else {
|
} else {
|
||||||
res = await dataUploadFilesApi(req);
|
const req = {
|
||||||
|
sourceFiles: formData.file,
|
||||||
|
uploadTaskId: new Date().getTime(),
|
||||||
|
dirId: currentFolder.value.id,
|
||||||
|
projectId: formData.projectId,
|
||||||
|
analysisDirectionId: formData.analysisDirectionId,
|
||||||
|
templateId: formData.templateId,
|
||||||
|
templateName: formData.templateName,
|
||||||
|
remarks: formData.remarks,
|
||||||
|
type: 0,
|
||||||
|
};
|
||||||
|
res = await batchAddFileInfoApi(req);
|
||||||
|
if (res.code === 200) {
|
||||||
|
res.data.forEach((item: any, index: number) => {
|
||||||
|
emitter.emit('ADD_UPLOAD_FILE', {
|
||||||
|
file: formData.originalName[index].raw, // 文件对象
|
||||||
|
data: { // 接口返回的文件目录信息,包括配置信息
|
||||||
|
...item,
|
||||||
|
isApprove: 1, // 0否 1是
|
||||||
|
taskType: 2, // 2知识库
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
visible.value = false;
|
visible.value = false;
|
||||||
@@ -381,8 +427,6 @@ const delFileFun = async (row: any) => {
|
|||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
refreshTableFun();
|
refreshTableFun();
|
||||||
ElMessage.success(res.message);
|
ElMessage.success(res.message);
|
||||||
} else {
|
|
||||||
ElMessage.error(res.message);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|||||||
data: {},
|
data: {},
|
||||||
});
|
});
|
||||||
const env = import.meta.env;
|
const env = import.meta.env;
|
||||||
const knowledgeDetail = ref<any>(null);
|
const knowledgeList = ref<any[]>([]);
|
||||||
const contents = ref<string>('');
|
const contents = ref<string>('');
|
||||||
const approveAction = ref<any>();
|
const approveAction = ref<any>();
|
||||||
const tagTypeMap:any = {
|
const tagTypeMap:any = {
|
||||||
@@ -55,12 +55,11 @@ const baseTableRef = ref<any>(null);
|
|||||||
watchEffect(() => {
|
watchEffect(() => {
|
||||||
if (props.data) {
|
if (props.data) {
|
||||||
const approveContents = JSON.parse(props.data?.approveContents || '{}');
|
const approveContents = JSON.parse(props.data?.approveContents || '{}');
|
||||||
knowledgeDetail.value = approveContents.afterData || approveContents.beforeData || null;
|
knowledgeList.value = approveContents.afterData || approveContents.beforeData || null;
|
||||||
contents.value = approveContents.contents || '';
|
contents.value = approveContents.contents || '';
|
||||||
approveAction.value = props.data?.approveAction || '';
|
approveAction.value = props.data?.approveAction || '';
|
||||||
if (baseTableRef.value && knowledgeDetail.value) {
|
if (baseTableRef.value && knowledgeList.value) {
|
||||||
// TODO 临时写法 后期支持多个
|
baseTableRef.value?.setDataFun(knowledgeList.value);
|
||||||
baseTableRef.value?.setDataFun([knowledgeDetail.value]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user