gaoluyang
4 天以前 046b40dcfe0d31e0791f50aba792dbe84e1363bf
src/views/procurementManagement/procurementLedger/index.vue
@@ -21,10 +21,6 @@
            <el-input v-model="searchForm.salesContractNo" placeholder="请输入" clearable prefix-icon="Search"
                      @change="handleQuery" />
          </el-form-item>
          <el-form-item label="项目名称:">
            <el-input v-model="searchForm.projectName" placeholder="请输入" clearable prefix-icon="Search"
                      @change="handleQuery" />
          </el-form-item>
          <el-form-item label="录入日期:">
            <el-date-picker v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
                            placeholder="请选择" clearable @change="changeDaterange" />
@@ -103,19 +99,11 @@
        <el-table-column
          label="销售合同号"
          prop="salesContractNo"
          width="200"
          show-overflow-tooltip
        />
        <el-table-column
          label="供应商名称"
          width="240"
          prop="supplierName"
          show-overflow-tooltip
        />
        <el-table-column
          label="项目名称"
          prop="projectName"
          width="420"
          show-overflow-tooltip
        />
        <el-table-column
@@ -134,7 +122,7 @@
        <el-table-column
          label="录入人"
          prop="recorderName"
           width="100"
           width="120"
          show-overflow-tooltip
        />
        <el-table-column
@@ -146,7 +134,7 @@
        <el-table-column
          fixed="right"
          label="操作"
          min-width="150"
          width="180"
          align="center"
        >
          <template #default="scope">
@@ -155,7 +143,6 @@
              type="primary"
              size="small"
              @click="openForm('edit', scope.row)"
                     :disabled="scope.row.receiptPaymentAmount>0 || scope.row.recorderName !== userStore.nickName"
              >编辑</el-button
            >
            <el-button
@@ -164,6 +151,13 @@
              size="small"
              @click="showQRCode(scope.row)"
              >生成二维码</el-button
            >
            <el-button
              link
              type="primary"
              size="small"
              @click="downLoadFile(scope.row)"
              >附件</el-button
            >
          </template>
@@ -206,8 +200,8 @@
              <el-select
                v-model="form.salesLedgerId"
                placeholder="请选择"
                        filterable
                clearable
                @change="salesLedgerChange"
              >
                <el-option
                  v-for="item in salesContractList"
@@ -225,6 +219,7 @@
              <el-select
                v-model="form.supplierId"
                placeholder="请选择"
                        filterable
                clearable
              >
                <el-option
@@ -236,17 +231,6 @@
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="项目名称:" prop="projectName">
              <el-input
                v-model="form.projectName"
                placeholder="请输入"
                clearable
              />
            </el-form-item>
          </el-col>
        </el-row>
            <el-row :gutter="30">
               <el-col :span="12">
                  <el-form-item label="付款方式">
                     <el-input
@@ -256,6 +240,8 @@
                     />
                  </el-form-item>
               </el-col>
        </el-row>
            <el-row :gutter="30">
               <el-col :span="12">
                  <el-form-item label="签订日期:" prop="executionDate">
                     <el-date-picker
@@ -277,7 +263,9 @@
                v-model="form.recorderId"
                placeholder="请选择"
                clearable
                disabled
                filterable
                default-first-option
                :reserve-keyword="false"
              >
                <el-option
                  v-for="item in userList"
@@ -637,15 +625,6 @@
        </el-row>
        <el-row :gutter="20">
          <el-col :span="12">
            <el-form-item label="项目名称:" prop="projectName">
              <el-input
                v-model="scanAddForm.projectName"
                placeholder="请输入"
                clearable
              />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="合同金额(元):" prop="contractAmount">
              <el-input-number
                v-model="scanAddForm.contractAmount"
@@ -724,11 +703,6 @@
        </el-row>
        <el-row :gutter="20">
          <el-col :span="12">
            <el-form-item label="项目名称:">
              <el-input v-model="scanForm.projectName" disabled />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="扫码时间:">
              <el-input v-model="scanForm.scanTime" disabled />
            </el-form-item>
@@ -787,6 +761,7 @@
        </div>
      </template>
    </el-dialog>
      <FileList ref="fileListRef" />
  </div>
</template>
@@ -797,6 +772,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,
@@ -851,7 +827,6 @@
    supplierName: "", // 供应商名称
    purchaseContractNumber: "", // 采购合同编号
    salesContractNo: "", // 销售合同编号
    projectName: "", // 项目名称
    entryDate: null, // 录入日期
    entryDateStart: undefined,
    entryDateEnd: undefined,
@@ -859,7 +834,6 @@
  form: {
    purchaseContractNumber: "",
    salesLedgerId: "",
    projectName: "",
    recorderId: "",
    entryDate: "",
    productData: [],
@@ -872,14 +846,19 @@
    purchaseContractNumber: [
      { required: true, message: "请输入", trigger: "blur" },
    ],
    projectName: [{ required: true, message: "请输入", trigger: "blur" }],
    supplierId: [{ required: true, message: "请输入", trigger: "blur" }],
      entryDate: [{ required: true, message: "请选择", trigger: "change" }],
      executionDate: [{ required: true, message: "请选择", trigger: "change" }],
  },
});
const {  form, rules } = toRefs(data);
const { form: searchForm } = useFormData(data.searchForm);
const { form: searchForm } = useFormData({
  ...data.searchForm,
  // 设置录入日期范围为当天
  entryDate: [dayjs().startOf('day').format('YYYY-MM-DD'), dayjs().endOf('day').format('YYYY-MM-DD')],
  entryDateStart: dayjs().startOf('day').format('YYYY-MM-DD'),
  entryDateEnd: dayjs().endOf('day').format('YYYY-MM-DD')
});
// 产品表单弹框数据
const productFormVisible = ref(false);
@@ -1121,6 +1100,12 @@
      }
      form.value.tempFileIds = tempFileIds;
      form.value.type = 2;
      // 如果salesLedgerId为空,则不传递salesContractNo
      if (!form.value.salesLedgerId) {
        form.value.salesContractNo = ''
      }
      addOrEditPurchase(form.value).then((res) => {
        proxy.$modal.msgSuccess("提交成功");
        closeDia();
@@ -1398,7 +1383,6 @@
  var index = salesContractList.value.findIndex((item) => item.id == row);
  console.log("index", index);
  if (index > -1) {
    form.value.projectName = salesContractList.value[index].projectName;
    await querygProductInfoByContractNo();
  }
};
@@ -1411,6 +1395,11 @@
    productData.value = data;
  }
};
const fileListRef = ref(null)
const downLoadFile = (row) => {
   fileListRef.value.open(row.salesLedgerFiles)
}
// 显示二维码
const showQRCode = async (row) => {
@@ -1459,7 +1448,6 @@
  scanContent: "",
  purchaseContractNumber: "",
  supplierName: "",
  projectName: "",
  contractAmount: "",
  paymentMethod: "",
  recorderName: "",
@@ -1468,7 +1456,6 @@
const scanAddRules = {
  purchaseContractNumber: [{ required: true, message: "请输入采购合同号", trigger: "blur" }],
  supplierName: [{ required: true, message: "请输入供应商名称", trigger: "blur" }],
  projectName: [{ required: true, message: "请输入项目名称", trigger: "blur" }],
};
// 扫码登记对话框相关变量
@@ -1476,7 +1463,6 @@
const scanForm = reactive({
  purchaseContractNumber: "",
  supplierName: "",
  projectName: "",
  scanTime: "",
  scannerName: "",
  scanStatus: "未扫码",
@@ -1492,7 +1478,6 @@
  scanAddForm.scanContent = "";
  scanAddForm.purchaseContractNumber = "";
  scanAddForm.supplierName = "";
  scanAddForm.projectName = "";
  scanAddForm.contractAmount = "";
  scanAddForm.paymentMethod = "";
  scanAddForm.recorderName = userStore.nickName;
@@ -1505,14 +1490,13 @@
  if (!content) return;
  
  // 模拟解析二维码内容,这里可以根据实际需求调整解析逻辑
  // 假设扫码内容格式为:合同号|供应商|项目|金额|付款方式
  // 假设扫码内容格式为:合同号|供应商|金额|付款方式
  const parts = content.split('|');
  if (parts.length >= 3) {
  if (parts.length >= 2) {
    scanAddForm.purchaseContractNumber = parts[0] || "";
    scanAddForm.supplierName = parts[1] || "";
    scanAddForm.projectName = parts[2] || "";
    scanAddForm.contractAmount = parts[3] || "";
    scanAddForm.paymentMethod = parts[4] || "";
    scanAddForm.contractAmount = parts[2] || "";
    scanAddForm.paymentMethod = parts[3] || "";
  }
};
@@ -1530,7 +1514,6 @@
      const newData = {
        purchaseContractNumber: scanAddForm.purchaseContractNumber,
        supplierName: scanAddForm.supplierName,
        projectName: scanAddForm.projectName,
        contractAmount: scanAddForm.contractAmount,
        paymentMethod: scanAddForm.paymentMethod,
        recorderName: scanAddForm.recorderName,
@@ -1553,7 +1536,6 @@
const openScanDialog = (row) => {
  scanForm.purchaseContractNumber = row.purchaseContractNumber;
  scanForm.supplierName = row.supplierName;
  scanForm.projectName = row.projectName;
  scanForm.scanTime = getCurrentDateTime();
  scanForm.scannerName = userStore.nickName;
  scanForm.scanStatus = "未扫码";
@@ -1605,4 +1587,4 @@
});
</script>
<style scoped lang="scss"></style>
<style scoped lang="scss"></style>