gaoluyang
2026-02-09 792ad8ef7684685544fbf03cc93d4eb2dc605bfa
src/views/procurementManagement/procurementLedger/index.vue
@@ -54,15 +54,17 @@
        :summary-method="summarizeMainTable"
        @expand-change="expandChange"
        height="calc(100vh - 18.5em)"
        stripe
      >
        <el-table-column align="center" type="selection" width="55" />
        <el-table-column type="expand">
        <el-table-column align="center" type="selection" width="55" fixed="left"/>
        <el-table-column type="expand" fixed="left">
          <template #default="props">
            <el-table
              :data="props.row.children"
              border
              show-summary
              :summary-method="summarizeChildrenTable"
              stripe
            >
              <el-table-column
                align="center"
@@ -93,21 +95,24 @@
            </el-table>
          </template>
        </el-table-column>
        <el-table-column align="center" label="序号" type="index" width="60" />
        <el-table-column align="center" label="序号" type="index" width="60" fixed="left"/>
        <el-table-column
          label="采购合同号"
          prop="purchaseContractNumber"
          width="200"
               fixed="left"
          show-overflow-tooltip
        />
        <el-table-column
          label="销售合同号"
          prop="salesContractNo"
          width="200"
               fixed="left"
          show-overflow-tooltip
        />
        <el-table-column
          label="供应商名称"
               fixed="left"
          width="240"
          prop="supplierName"
          show-overflow-tooltip
@@ -146,7 +151,7 @@
        <el-table-column
          fixed="right"
          label="操作"
          min-width="150"
          min-width="200"
          align="center"
        >
          <template #default="scope">
@@ -155,17 +160,26 @@
              type="primary"
              size="small"
              @click="openForm('edit', scope.row)"
                     :disabled="scope.row.receiptPaymentAmount>0 || scope.row.recorderName !== userStore.nickName"
              >编辑</el-button
              :disabled="scope.row.recorderName !== userStore.nickName"
            >
              编辑
            </el-button>
            <el-button
              link
              type="primary"
              size="small"
              @click="openAttachmentDialog(scope.row)"
            >
              附件
            </el-button>
            <el-button
              link
              type="success"
              size="small"
              @click="showQRCode(scope.row)"
              >生成二维码</el-button
            >
              生成二维码
            </el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -305,6 +319,7 @@
          border
          @selection-change="productSelected"
          show-summary
          stripe
          :summary-method="summarizeProTable"
        >
          <el-table-column align="center" type="selection" width="55" />
@@ -739,7 +754,7 @@
        <el-row :gutter="20">
          <el-col :span="24">
            <el-form-item label="扫码记录:">
              <el-table :data="scanRecords" border style="width: 100%">
              <el-table :data="scanRecords" border style="width: 100%" stripe>
                <el-table-column label="序号" type="index" width="60" align="center" />
                <el-table-column label="扫码时间" prop="scanTime" width="180" />
                <el-table-column label="扫码人" prop="scannerName" width="120" />
@@ -763,6 +778,7 @@
        </div>
      </template>
    </el-dialog>
    <FileList ref="fileListRef" />
  </div>
</template>
@@ -792,6 +808,7 @@
} from "@/api/procurementManagement/procurementLedger.js";
import useFormData from "@/hooks/useFormData.js";
import QRCode from "qrcode";
import FileList from "@/views/salesManagement/salesLedger/fileList.vue";
const { proxy } = getCurrentInstance();
const tableData = ref([]);
const productData = ref([]);
@@ -809,6 +826,7 @@
});
const total = ref(0);
const fileList = ref([]);
const fileListRef = ref(null);
import useUserStore from "@/store/modules/user";
import { modelList, productTreeList } from "@/api/basicData/product.js";
import dayjs from "dayjs";
@@ -1041,8 +1059,8 @@
// 上传前校检
function handleBeforeUpload(file) {
  // 校检文件大小
  if (file.size > 1024 * 1024 * 10) {
    proxy.$modal.msgError("上传文件大小不能超过10MB!");
  if (file.size > 1024 * 1024 * 50) {
    proxy.$modal.msgError("上传文件大小不能超过50MB!");
    return false;
  }
  proxy.$modal.loading("正在上传文件,请稍候...");
@@ -1241,6 +1259,24 @@
      });
  }
};
// 打开附件列表对话框
const openAttachmentDialog = (row) => {
  if (!row?.id) {
    proxy.$modal.msgWarning("无法获取该行数据的ID");
    return;
  }
  getPurchaseById({ id: row.id, type: 2 }).then((res) => {
    const files = res.salesLedgerFiles || [];
    if (!files.length) {
      proxy.$modal.msgWarning("暂无附件");
      return;
    }
    if (fileListRef.value && typeof fileListRef.value.open === "function") {
      fileListRef.value.open(files);
    }
  });
};
// 关闭产品弹框
const closeProductDia = () => {
  proxy.resetForm("productFormRef");