曹睿
6 天以前 a072f4e1ead66a93e0ade8439bc1fd44f936cc2a
src/views/procurementManagement/procurementInvoiceLedger/index.vue
@@ -47,41 +47,56 @@
        :tableLoading="loading"
        :tableData="dataList"
        :isSelection="true"
        height="calc(100vh - 18.5em)"
        height="calc(100vh - 15em)"
        :isShowSummary="true"
        :summaryMethod="summarizeMainTable"
        :page="{
          current: pagination.currentPage,
          size: pagination.pageSize,
          total: pagination.total,
          total: 0,
        }"
        @selection-change="handleSelectionChange"
        @pagination="onCurrentChange"
        @pagination="changePage"
      >
        <template #commonFilesRef="{ row }">
          <div v-for="item in row.commonFiles">
            <el-tag type="primary" class="tagBox">
              {{ item.name }}
            </el-tag>
          </div>
          <el-dropdown
            v-if="row.commonFiles.length !== 0"
            @command="(command) => handleCommand(command, row)"
          >
            <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 {
@@ -136,7 +151,7 @@
      prop: "taxInclusiveTotalPrice",
      align: "center",
      formatData: (cell) => {
        return parseFloat(cell).toFixed(2);
        return cell ? parseFloat(cell).toFixed(2) : 0;
      },
    },
    {
@@ -149,7 +164,7 @@
      prop: "ticketsAmount",
      align: "center",
      formatData: (cell) => {
        return parseFloat(cell).toFixed(2);
        return cell ? parseFloat(cell).toFixed(2) : 0;
      },
    },
    {
@@ -157,7 +172,7 @@
      prop: "unTicketsPrice",
      align: "center",
      formatData: (cell) => {
        return parseFloat(cell).toFixed(2);
        return cell ? parseFloat(cell).toFixed(2) : 0;
      },
    },
    {
@@ -171,7 +186,7 @@
      prop: "commonFiles",
      dataType: "slot",
      slot: "commonFilesRef",
      width: 200,
      width: 150,
    },
    // {
    //   fixed: "right",
@@ -227,7 +242,32 @@
    });
};
// 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);
      openModal();
      break;
  }
};
const openModal = () => {
  modalRef.value.handleImport();
};
onMounted(() => {
  getTableData();