曹睿
6 天以前 759f30a6e3afc8289a0b3c341cccbbd6ade39a2d
src/views/procurementManagement/procurementInvoiceLedger/index.vue
@@ -42,39 +42,83 @@
    </el-form>
    <div class="table_list">
      <PIMTable
        rowKey="id"
        :column="columns"
        :tableLoading="loading"
        :tableData="dataList"
        :isSelection="true"
        height="calc(100vh - 15em)"
        :isShowSummary="true"
        :summaryMethod="summarizeMainTable"
        :page="{
          current: pagination.currentPage,
          size: pagination.pageSize,
          total: pagination.total,
          total: 0,
        }"
        :handleSelectionChange="handleSelectionChange"
        @pagination="onCurrentChange"
        @selection-change="handleSelectionChange"
        @pagination="changePage"
      >
        <!-- <template #operation>
          <el-button type="primary" text @click="handleEdit" size="small">
        <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
            type="primary"
            text
            :icon="EditPen"
            @click="openEdit(row.id)"
          >
            编辑
          </el-button>
        </template> -->
        </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 {
  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";
defineOptions({
  name: "来票台账",
});
const modalRef = ref();
const editmodalRef = ref();
const { proxy } = getCurrentInstance();
const multipleVal = ref([]);
@@ -130,7 +174,7 @@
      prop: "taxInclusiveTotalPrice",
      align: "center",
      formatData: (cell) => {
        return parseFloat(cell).toFixed(2);
        return cell ? parseFloat(cell).toFixed(2) : 0;
      },
    },
    {
@@ -143,7 +187,7 @@
      prop: "ticketsAmount",
      align: "center",
      formatData: (cell) => {
        return parseFloat(cell).toFixed(2);
        return cell ? parseFloat(cell).toFixed(2) : 0;
      },
    },
    {
@@ -151,7 +195,7 @@
      prop: "unTicketsPrice",
      align: "center",
      formatData: (cell) => {
        return parseFloat(cell).toFixed(2);
        return cell ? parseFloat(cell).toFixed(2) : 0;
      },
    },
    {
@@ -159,14 +203,22 @@
      prop: "invoiceAmount",
      align: "center",
    },
    // {
    //   fixed: "right",
    //   width: 120,
    //   label: "操作",
    //   dataType: "slot",
    //   slot: "operation",
    //   align: "center",
    // },
    {
      label: "附件",
      align: "center",
      prop: "commonFiles",
      dataType: "slot",
      slot: "commonFilesRef",
      width: 150,
    },
    {
      fixed: "right",
      width: 120,
      label: "操作",
      dataType: "slot",
      slot: "operation",
      align: "center",
    },
  ],
  {},
  {
@@ -176,6 +228,23 @@
    }),
  }
);
// 主表合计方法
const summarizeMainTable = (param) => {
  return proxy.summarizeTable(
    param,
    [
      "taxInclusiveTotalPrice",
      "ticketsAmount",
      "unTicketsPrice",
      "invoiceAmount",
    ],
    {
      ticketsNum: { noDecimal: true }, // 不保留小数
      futureTickets: { noDecimal: true }, // 不保留小数
    }
  );
};
const handleSelectionChange = (val) => {
  multipleVal.value = val;
@@ -196,7 +265,48 @@
    });
};
// const handleEdit = () => {};
const handleFiles = (fileList) => {
  fileList.forEach((e) => {
    proxy.$download.name(e.url);
  });
};
const changePage = ({ page }) => {
  pagination.currentPage = page;
  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();
  }
};
onMounted(() => {
  getTableData();
@@ -207,4 +317,7 @@
.table_list {
  margin-top: unset;
}
.tagBox {
  margin-top: 4px;
}
</style>