yangyin
2024-09-02 33e9a0acd637a10ce4cb9ecf91765ab71ec8af1f
修改导入数据
已修改2个文件
118 ■■■■■ 文件已修改
src/views/project/yw/dataManage/graph/AddGraph.vue 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/project/yw/dataManage/graph/GraphIndex.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/project/yw/dataManage/graph/AddGraph.vue
@@ -12,7 +12,13 @@
            <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" :rules="state.categoryFormRules">
                        <el-form
                            :model="state.categoryForm"
                            label-width="120px"
                            label-position="left"
                            :rules="state.categoryFormRules"
                            ref="categoryFormRef"
                        >
                            <el-form-item label="导入类目:">
                                <label>{{ state.categoryForm.ImportCategory }}</label>
                            </el-form-item>
@@ -20,15 +26,20 @@
                                <label>{{ state.categoryForm.CategoryType }}</label>
                            </el-form-item>
                            <el-form-item label="导入方式:" prop="importType">
                                <el-upload ref="uploadRef" class="upload-demo w-[530px]" :http-request="uploadFile" drag :accept="state.allowType">
                                <el-upload
                                    ref="uploadRef"
                                    class="upload-demo w-[530px]"
                                    :http-request="uploadFile"
                                    drag
                                    :accept="state.allowType"
                                    :on-remove="handleRemove"
                                >
                                    <el-icon class="el-icon--upload"><upload-filled /></el-icon>
                                    <div class="el-upload__text">
                                        <em>点击或拖拽上传文件</em>
                                    </div>
                                    <template #tip>
                                        <div class="el-upload__tip">
                                            支持格式:{{ state.allowType }};限制大小{{ state.size }}M,最多上传{{ state.limit }}个文件
                                        </div>
                                        <div class="el-upload__tip">支持格式:{{ state.allowType }};限制大小{{ state.size }}M</div>
                                    </template>
                                </el-upload>
                            </el-form-item>
@@ -52,7 +63,7 @@
                        <div class="set-form-footer">
                            <el-button type="primary" @click="onSubmit">确 认</el-button>
                            <el-button>取消</el-button>
                            <el-button @click="handleExitFlow">取消</el-button>
                        </div>
                    </div>
                </div>
@@ -67,7 +78,13 @@
import { reactive, ref } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import { add_knowledge_file } from '/@/api/knowledge/group';
const uploadFileChange = (rule, value, callback) => {
    if (fileList.value.length === 0) {
        return callback('请选择需要上传的文件');
    } else {
        return true;
    }
};
// 定义变量内容
const state = reactive({
    detailTitle: '导入数据',
@@ -82,16 +99,11 @@
    size: 5,
    demoDesc: '使用阿里云文档智能解析服务据解析文档,抽取文档内容、层级结构等信息。',
    categoryFormRules: {
        importType: [
            {
                required: true,
                message: '请选择文件',
                trigger: 'change',
            },
        ],
        importType: [{ required: true, validator: uploadFileChange, trigger: 'change' }],
    },
});
const fileList = ref<UploadUserFile[]>([]);
const categoryFormRef = ref(null);
const router = useRouter();
const route = useRoute();
//返回
@@ -102,25 +114,39 @@
const flag = ref(true);
const uploadFile = (file: UploadUserFile) => {
    fileList.value.push(file);
    categoryFormRef.value.validateField(['importType']); //移除上传文件错误提示!这是重点!!
};
// 文件列表移除文件时的钩子
const handleRemove = (file) => {
    // 4、删除文件时同时删除此文件已上传的文件id(此操作视具体情况)
    fileList.value.forEach((item, index) => {
        if (item.file == file.raw) {
            fileList.value.splice(index, 1);
        }
    });
};
//确认
const onSubmit = async () => {
    let group_id = route.query.group_id;
    const data = new FormData();
    fileList.value.forEach((item: any) => {
        data.append('file', item.file);
    if (group_id == null || group_id == '' || group_id == undefined) return;
    categoryFormRef.value.validate(async (valid: boolean) => {
        if (valid) {
            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);
            }
        }
    });
    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">
src/views/project/yw/dataManage/graph/GraphIndex.vue
@@ -53,20 +53,20 @@
        <template #header>
            <!-- 查询、重置、排序、增加表单 -->
            <el-form :inline="true" :model="formulaQueryParams">
            <el-form :inline="true" :model="graphQueryParams">
                <el-form-item label="名称" prop="title">
                    <el-input v-model="formulaQueryParams.title" style="width: 226.4px" placeholder="文件名称" clearable></el-input>
                    <el-input v-model="graphQueryParams.title" style="width: 226.4px" placeholder="文件名称" clearable></el-input>
                </el-form-item>
                <el-form-item>
                    <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 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()"> 导入数据 </el-button>
                </el-form-item>
            </el-form></template
@@ -82,7 +82,7 @@
                    class="flex-auto"
                    :row-class-name="isFormulaTableDrag ? 'cursor-move' : 'cursor-pointer'"
                    :header-cell-style="{ textAlign: 'center' }"
                    :data="categoryTableData"
                    :data="displayTableData"
                    highlight-current-row
                >
                    <el-table-column prop="name" label="文件名称" fixed="left" show-overflow-tooltip align="left" />
@@ -100,19 +100,6 @@
                        </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>
        <!-- 增加、修改数据对话框 -->
@@ -185,9 +172,9 @@
} 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 state = reactive({
    tableParams: {
        PageIndex: 1,
@@ -277,9 +264,12 @@
//#endregion
//#region ====================== 搜索表格,对表格排序 ======================
const formulaQueryParams = ref({
const graphQueryParams = ref({
    title: '',
});
const { resetQuery, handleQueryTable, displayTableData } = useQueryTable(categoryTableData, graphQueryParams, () => {
    displayTableData.value = categoryTableData.value;
});
//#endregion
//#region ====================== 跳转文档详情页面 init======================