| src/api/publicApi/commonFile.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/procurementManagement/procurementLedger/fileList.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/procurementManagement/procurementLedger/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/api/publicApi/commonFile.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ // å ¬å ±æä»¶ç®¡çæ¥å£ import request from '@/utils/request' // å é¤å ¬å ±æä»¶ export function delCommonFile(ids) { return request({ url: '/commonFile/delCommonFile', method: 'delete', data: ids }) } // å¼ç¥¨å°è´¦æä»¶å é¤ export function delCommonFileInvoiceLedger(ids) { return request({ url: '/invoiceLedger/delFile', method: 'delete', data: ids }) } src/views/procurementManagement/procurementLedger/fileList.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,67 @@ <template> <el-dialog v-model="dialogVisible" title="éä»¶" width="40%" :before-close="handleClose"> <el-table :data="tableData" border height="40vh"> <el-table-column label="éä»¶åç§°" prop="name" min-width="400" show-overflow-tooltip /> <el-table-column fixed="right" label="æä½" width="150" align="center"> <template #default="scope"> <el-button link type="primary" size="small" @click="downLoadFile(scope.row)">ä¸è½½</el-button> <el-button link type="primary" size="small" @click="lookFile(scope.row)">é¢è§</el-button> <el-button link type="danger" size="small" @click="handleDelete(scope.row)">å é¤</el-button> </template> </el-table-column> </el-table> </el-dialog> <filePreview ref="filePreviewRef" /> </template> <script setup> import { ref } from 'vue' import { ElMessageBox, ElMessage } from 'element-plus' import filePreview from '@/components/filePreview/index.vue' import { delCommonFile } from '@/api/publicApi/commonFile.js' const dialogVisible = ref(false) const tableData = ref([]) const { proxy } = getCurrentInstance(); const filePreviewRef = ref() const handleClose = () => { dialogVisible.value = false } const open = (list) => { dialogVisible.value = true tableData.value = list } const downLoadFile = (row) => { proxy.$download.name(row.url); } const lookFile = (row) => { filePreviewRef.value.open(row.url) } // å é¤éä»¶ const handleDelete = (row) => { ElMessageBox.confirm(`确认å é¤éä»¶"${row.name}"åï¼`, 'å é¤ç¡®è®¤', { confirmButtonText: '确认', cancelButtonText: 'åæ¶', type: 'warning', }).then(() => { delCommonFile([row.id]).then(() => { ElMessage.success('å 餿å') // ä»å表ä¸ç§»é¤å·²å é¤çéä»¶ const index = tableData.value.findIndex(item => item.id === row.id) if (index !== -1) { tableData.value.splice(index, 1) } }).catch(() => { ElMessage.error('å é¤å¤±è´¥') }) }).catch(() => { proxy.$modal.msg('已忶å é¤') }) } defineExpose({ open }) </script> <style></style> src/views/procurementManagement/procurementLedger/index.vue
@@ -53,7 +53,7 @@ show-summary :summary-method="summarizeMainTable" @expand-change="expandChange" height="calc(100vh - 18.5em)" height="calc(100vh - 19em)" > <el-table-column align="center" type="selection" width="55" /> <el-table-column type="expand"> @@ -103,12 +103,10 @@ <el-table-column label="éå®ååå·" prop="salesContractNo" width="200" show-overflow-tooltip /> <el-table-column label="ä¾åºååç§°" width="240" prop="supplierName" show-overflow-tooltip /> @@ -155,16 +153,15 @@ type="primary" size="small" @click="openForm('edit', scope.row)" :disabled="scope.row.receiptPaymentAmount>0 || scope.row.recorderName !== userStore.nickName" >ç¼è¾</el-button > <!-- <el-button--> <!-- link--> <!-- type="success"--> <!-- size="small"--> <!-- @click="showQRCode(scope.row)"--> <!-- >çæäºç»´ç </el-button--> <!-- >--> <el-button link type="primary" size="small" @click="downLoadFile(scope.row)" >éä»¶</el-button > </template> </el-table-column> @@ -206,6 +203,7 @@ <el-select v-model="form.salesLedgerId" placeholder="è¯·éæ©" filterable clearable @change="salesLedgerChange" > @@ -225,6 +223,7 @@ <el-select v-model="form.supplierId" placeholder="è¯·éæ©" filterable clearable > <el-option @@ -278,6 +277,7 @@ placeholder="è¯·éæ©" clearable disabled filterable > <el-option v-for="item in userList" @@ -787,6 +787,7 @@ </div> </template> </el-dialog> <FileList ref="fileListRef" /> </div> </template> @@ -797,6 +798,7 @@ import { Search } from "@element-plus/icons-vue"; import { ElMessageBox } from "element-plus"; import { userListNoPage } from "@/api/system/user.js"; import FileList from "./fileList.vue"; import { getSalesLedgerWithProducts, addOrUpdateSalesLedgerProduct, @@ -1238,6 +1240,13 @@ proxy.$modal.msgWarning("è¯·éæ©æ°æ®"); return; } // ä¿è¯è³å°ä¿ç䏿¡äº§åä¿¡æ¯ const remainingCount = productData.value.length - productSelectedRows.value.length; if (remainingCount < 1) { proxy.$modal.msgWarning("è³å°ä¿ç䏿¡äº§åä¿¡æ¯ï¼æ æ³å ¨é¨å é¤"); return; } if (operationType.value === "add") { productSelectedRows.value.forEach((selectedRow) => { const index = productData.value.findIndex( @@ -1261,7 +1270,7 @@ delProduct(ids).then((res) => { proxy.$modal.msgSuccess("å 餿å"); closeProductDia(); getSalesLedgerWithProducts({ id: currentId.value, type: 2 }).then( getPurchaseById({ id: currentId.value, type: 2 }).then( (res) => { productData.value = res.productData; } @@ -1413,6 +1422,11 @@ } }; const fileListRef = ref(null) const downLoadFile = (row) => { fileListRef.value.open(row.salesLedgerFiles) } // æ¾ç¤ºäºç»´ç const showQRCode = async (row) => { try {