| | |
| | | @pagination="changePage" |
| | | > |
| | | <template #commonFilesRef="{ row }"> |
| | | <el-dropdown @command="(command) => handleCommand(command, row)"> |
| | | <el-button link :icon="Files" type="danger"> 附件 </el-button> |
| | | <template #dropdown> |
| | | <el-dropdown-menu> |
| | | <el-dropdown-item |
| | | v-if="row.commonFiles.length !== 0" |
| | | :icon="Download" |
| | | command="download" |
| | | > |
| | | 下载 |
| | | </el-dropdown-item> |
| | | <el-dropdown-item :icon="Upload" command="upload"> |
| | | 上传 |
| | | </el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </template> |
| | | </el-dropdown> |
| | | </template> |
| | | <template #operation="{ row }"> |
| | | <el-button |
| | | v-if="row.commonFiles.length !== 0" |
| | | type="primary" |
| | | text |
| | | icon="Files" |
| | | type="danger" |
| | | @click="handleFiles(row.commonFiles)" |
| | | @click="openEdit(row.id)" |
| | | :disabled="row.issUerId !== userStore.id" |
| | | > |
| | | 附件下载 |
| | | 编辑 |
| | | </el-button> |
| | | <el-text v-else type="danger">暂无附件</el-text> |
| | | <el-button |
| | | type="primary" |
| | | text |
| | | :disabled="row.issUerId !== userStore.id" |
| | | @click="handleDelete(row)" |
| | | > |
| | | 删除 |
| | | </el-button> |
| | | </template> |
| | | </PIMTable> |
| | | </div> |
| | | <UploadModal ref="modalRef" @uploadSuccess="uploadSuccess"></UploadModal> |
| | | <EditModal ref="editmodalRef" @success="getTableData"></EditModal> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { ref, getCurrentInstance } from "vue"; |
| | | import { usePaginationApi } from "@/hooks/usePaginationApi"; |
| | | import { Search } from "@element-plus/icons-vue"; |
| | | import { productRecordPage } from "@/api/procurementManagement/procurementInvoiceLedger.js"; |
| | | import { |
| | | Files, |
| | | Download, |
| | | Search, |
| | | Upload, |
| | | EditPen, |
| | | } from "@element-plus/icons-vue"; |
| | | import { |
| | | delRegistration, |
| | | productRecordPage, |
| | | productUploadFile, |
| | | } from "@/api/procurementManagement/procurementInvoiceLedger.js"; |
| | | import { onMounted } from "vue"; |
| | | import { ElMessageBox } from "element-plus"; |
| | | import UploadModal from "./Modal/UploadModal.vue"; |
| | | import EditModal from "./Modal/EditModal.vue"; |
| | | import useUserStore from "@/store/modules/user.js"; |
| | | import {delInvoiceLedgerByRegProductId} from "@/api/salesManagement/invoiceLedger.js"; |
| | | const userStore = useUserStore(); |
| | | |
| | | defineOptions({ |
| | | name: "来票台账", |
| | | }); |
| | | |
| | | const modalRef = ref(); |
| | | const editmodalRef = ref(); |
| | | |
| | | const { proxy } = getCurrentInstance(); |
| | | const multipleVal = ref([]); |
| | |
| | | { |
| | | label: "采购合同号", |
| | | prop: "purchaseContractNumber", |
| | | align: "center", |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: "销售合同号", |
| | | prop: "salesContractNo", |
| | | align: "center", |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: "客户名称", |
| | | prop: "customerName", |
| | | align: "center", |
| | | width: 240, |
| | | }, |
| | | { |
| | | label: "供应商名称", |
| | | prop: "supplierName", |
| | | align: "center", |
| | | width: 240, |
| | | }, |
| | | { |
| | | label: "规格型号", |
| | | prop: "specificationModel", |
| | | align: "center", |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: "发票号", |
| | | prop: "invoiceNumber", |
| | | align: "center", |
| | | width: 200, |
| | | }, |
| | | { |
| | | label: "合同金额(元)", |
| | | prop: "taxInclusiveTotalPrice", |
| | | align: "center", |
| | | width: 200, |
| | | formatData: (cell) => { |
| | | return cell ? parseFloat(cell).toFixed(2) : 0; |
| | | }, |
| | |
| | | { |
| | | label: "开票日期", |
| | | prop: "createdAt", |
| | | align: "center", |
| | | width: 110, |
| | | }, |
| | | { |
| | | label: "开票金额", |
| | | prop: "ticketsAmount", |
| | | align: "center", |
| | | width: 200, |
| | | formatData: (cell) => { |
| | | return cell ? parseFloat(cell).toFixed(2) : 0; |
| | | }, |
| | |
| | | { |
| | | label: "不含税金额", |
| | | prop: "unTicketsPrice", |
| | | align: "center", |
| | | width: 200, |
| | | formatData: (cell) => { |
| | | return cell ? parseFloat(cell).toFixed(2) : 0; |
| | | }, |
| | |
| | | { |
| | | label: "增值税", |
| | | prop: "invoiceAmount", |
| | | align: "center", |
| | | width: 200, |
| | | }, |
| | | { |
| | | label: "录入人", |
| | | prop: "issUer", |
| | | width: 200, |
| | | }, |
| | | { |
| | | label: "附件", |
| | | align: "center", |
| | | prop: "commonFiles", |
| | | dataType: "slot", |
| | | fixed: "right", |
| | | slot: "commonFilesRef", |
| | | width: 150, |
| | | width: 120, |
| | | }, |
| | | // { |
| | | // fixed: "right", |
| | | // width: 120, |
| | | // label: "操作", |
| | | // dataType: "slot", |
| | | // slot: "operation", |
| | | // align: "center", |
| | | // }, |
| | | { |
| | | fixed: "right", |
| | | width: 150, |
| | | label: "操作", |
| | | dataType: "slot", |
| | | slot: "operation", |
| | | align: "center", |
| | | }, |
| | | ], |
| | | {}, |
| | | { |
| | |
| | | onCurrentChange(page); |
| | | }; |
| | | |
| | | const handleCommand = (command, row) => { |
| | | switch (command) { |
| | | case "download": |
| | | handleFiles(row.commonFiles); |
| | | break; |
| | | case "upload": |
| | | console.log(row.commonFiles); |
| | | openUoload(row.ticketRegistrationId); |
| | | break; |
| | | } |
| | | }; |
| | | |
| | | const openUoload = (id) => { |
| | | modalRef.value.handleImport(id); |
| | | }; |
| | | |
| | | const openEdit = (id) => { |
| | | editmodalRef.value.open(id); |
| | | }; |
| | | |
| | | // 上传成功后做什么 |
| | | const uploadSuccess = async (data) => { |
| | | const { code } = await productUploadFile({ |
| | | ticketRegistrationId: data.id, |
| | | tempFileIds: data.tempFileIds, |
| | | }); |
| | | if (code === 200) { |
| | | proxy.$modal.msgSuccess("提交成功"); |
| | | getTableData(); |
| | | } |
| | | }; |
| | | // 删除 |
| | | const handleDelete = (row) => { |
| | | let ids = []; |
| | | ids.push(row.id); |
| | | ElMessageBox.confirm("该开票台账将被删除,是否确认删除", { |
| | | confirmButtonText: "确认", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | loading.value = true; |
| | | delRegistration(ids).then((res) => { |
| | | getTableData(); |
| | | }); |
| | | loading.value = false; |
| | | }) |
| | | .catch(() => { |
| | | proxy.$modal.msg("已取消"); |
| | | }); |
| | | }; |
| | | |
| | | onMounted(() => { |
| | | getTableData(); |
| | | }); |