src/views/procurementManagement/procurementInvoiceLedger/Modal/UploadModal.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/procurementManagement/procurementInvoiceLedger/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/views/procurementManagement/procurementInvoiceLedger/Modal/UploadModal.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,69 @@ <template> <el-dialog v-model="upload.open" :title="upload.title" :width="500"> <FileUpload ref="fileUploadRef" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading" :showTip="false" @success="handleFileSuccess" /> <template #footer> <div class="dialog-footer"> <el-button type="primary" @click="submitFileForm">ç¡® å®</el-button> <el-button @click="upload.open = false">å æ¶</el-button> </div> </template> </el-dialog> </template> <script setup> import { reactive } from "vue"; import { getToken } from "@/utils/auth.js"; import { FileUpload } from "@/components/Upload"; import { ElMessage } from "element-plus"; defineOptions({ name: "æ¥ç¥¨å°è´¦éä»¶è¡¥å ", }); const emits = defineEmits(["uploadSuccess"]); const fileUploadRef = ref(); const upload = reactive({ // æ¯å¦æ¾ç¤ºå¼¹åºå±ï¼ä¾åºåå¯¼å ¥ï¼ open: false, // å¼¹åºå±æ é¢ï¼ä¾åºåå¯¼å ¥ï¼ title: "", // æ¯å¦ç¦ç¨ä¸ä¼ isUploading: false, // 设置ä¸ä¼ ç请æ±å¤´é¨ headers: { Authorization: "Bearer " + getToken() }, // ä¸ä¼ çå°å url: import.meta.env.VITE_APP_BASE_API + "/system/supplier/import", }); // ç¹å»å¯¼å ¥ const handleImport = () => { upload.open = true; upload.title = "æ¥ç¥¨å°è´¦éä»¶è¡¥å "; }; const submitFileForm = () => { fileUploadRef.value.uploadApi(); }; const handleFileSuccess = (response) => { const { code, msg } = response; if (code == 200) { ElMessage({ message: "å¯¼å ¥æå", type: "success" }); upload.open = false; emits("uploadSuccess"); } else { ElMessage({ message: msg, type: "error" }); } }; defineExpose({ handleImport, }); </script> src/views/procurementManagement/procurementInvoiceLedger/index.vue
@@ -59,34 +59,44 @@ @pagination="changePage" > <template #commonFilesRef="{ row }"> <el-button <el-dropdown v-if="row.commonFiles.length !== 0" text icon="Files" type="danger" @click="handleFiles(row.commonFiles)" @command="(command) => handleCommand(command, row)" > éä»¶ä¸è½½ </el-button> <el-button link :icon="Files" type="danger"> éä»¶ </el-button> <template #dropdown> <el-dropdown-menu> <el-dropdown-item :icon="Download" command="download"> ä¸è½½ </el-dropdown-item> <el-dropdown-item :icon="Upload" command="upload"> ä¸ä¼ </el-dropdown-item> </el-dropdown-menu> </template> </el-dropdown> <el-text v-else type="danger">ææ éä»¶</el-text> </template> </PIMTable> </div> <Modal ref="modalRef"></Modal> </div> </template> <script setup> import { ref, getCurrentInstance } from "vue"; import { usePaginationApi } from "@/hooks/usePaginationApi"; import { Search } from "@element-plus/icons-vue"; import { Files, Download, Search, Upload } from "@element-plus/icons-vue"; import { productRecordPage } from "@/api/procurementManagement/procurementInvoiceLedger.js"; import { onMounted } from "vue"; import { ElMessageBox } from "element-plus"; import Modal from "./Modal/UploadModal.vue"; defineOptions({ name: "æ¥ç¥¨å°è´¦", }); const modalRef = ref(); const { proxy } = getCurrentInstance(); const multipleVal = ref([]); const { @@ -243,6 +253,22 @@ onCurrentChange(page); }; const handleCommand = (command, row) => { switch (command) { case "download": handleFiles(row.commonFiles); break; case "upload": console.log(row.commonFiles); openModal(); break; } }; const openModal = () => { modalRef.value.handleImport(); }; onMounted(() => { getTableData(); });