周宾
2025-12-11 1e98a8ac4e83a75d74ebb2d6fcd23bb4db41c09f
src/views/procurementManagement/invoiceEntry/components/Modal.vue
@@ -33,7 +33,7 @@
            />
          </el-form-item>
        </el-col>
        <el-col :span="12">
        <!-- <el-col :span="12">
          <el-form-item label="项目名称:" prop="projectName">
            <el-input
              v-model="form.projectName"
@@ -42,7 +42,7 @@
              disabled
            />
          </el-form-item>
        </el-col>
        </el-col> -->
        <el-col :span="12">
          <el-form-item label="发票号:" prop="invoiceNumber">
            <el-input
@@ -58,6 +58,7 @@
              v-model="form.invoiceAmount"
              placeholder="自动填充"
              clearable
              :disabled="true"
            />
          </el-form-item>
        </el-col>
@@ -67,7 +68,6 @@
              v-model="form.issUer"
              placeholder="请输入"
              clearable
              disabled
            />
          </el-form-item>
        </el-col>
@@ -77,6 +77,20 @@
              style="width: 100%"
              v-model="form.entryDate"
              type="date"
              value-format="YYYY-MM-DD"
              format="YYYY-MM-DD"
              clearable
            />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="录入日期:" prop="enterDate">
            <el-date-picker
              style="width: 100%"
              v-model="form.enterDate"
              type="date"
              value-format="YYYY-MM-DD"
              format="YYYY-MM-DD"
              clearable
            />
          </el-form-item>
@@ -97,16 +111,6 @@
            />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="录入日期:" prop="enterDate">
            <el-date-picker
              style="width: 100%"
              v-model="form.enterDate"
              type="date"
              clearable
            />
          </el-form-item>
        </el-col>
      </el-row>
      <el-form-item label="产品信息:"> </el-form-item>
      <PIMTable
@@ -123,6 +127,7 @@
            placeholder="请输入"
            :min="0"
            :step="0.1"
                  :precision="2"
            clearable
            style="width: 100%"
            @change="invoiceNumBlur(row)"
@@ -133,6 +138,7 @@
            v-model="row.ticketsAmount"
            placeholder="请输入"
            :min="0"
                  :precision="2"
            :step="0.1"
            clearable
            style="width: 100%"
@@ -142,16 +148,17 @@
      </PIMTable>
    </el-form>
    <template #footer>
         <el-button type="primary" :loading="modalLoading" @click="submitForm">
            {{ modalOptions.confirmText }}
         </el-button>
      <el-button @click="closeModal">{{ modalOptions.cancelText }}</el-button>
      <el-button type="primary" :loading="modalLoading" @click="submitForm">
        {{ modalOptions.confirmText }}
      </el-button>
    </template>
  </el-dialog>
</template>
<script setup>
import { ref, getCurrentInstance } from "vue";
import { defineEmits } from 'vue';
import { useModal } from "@/hooks/useModal";
import useFormData from "@/hooks/useFormData";
import FileUpload from "@/components/Upload/FileUpload.vue";
@@ -177,7 +184,7 @@
  purchaseLedgerNo: undefined, // 采购合同号
  salesContractNo: undefined, // 销售合同号
  supplierName: undefined, // 供应商名称
  projectName: undefined, // 项目名称
  // projectName: undefined, // 项目名称
  invoiceNumber: undefined, // 发票号
  invoiceAmount: undefined, // 发票金额(元)
  issUerId: userStore.id, // 录入人
@@ -213,14 +220,18 @@
  title: "来票登记",
});
const emit = defineEmits(['refreshList']);
const columns = [
  {
    label: "产品大类",
    prop: "productCategory",
      width: 120,
  },
  {
    label: "规格型号",
    prop: "specificationModel",
      width: 120,
  },
  {
    label: "单位",
@@ -305,7 +316,7 @@
    const { data: infoData } = await getInfo({ id });
    form.salesContractNo = infoData.salesContractNo;
    form.projectName = infoData.projectName;
    // form.projectName = infoData.projectName;
    form.supplierName = infoData.supplierName;
    form.productData = infoData.productData;
  } else if (type == "edit") {
@@ -314,7 +325,7 @@
    form.invoiceAmount = data.invoiceAmount;
    form.invoiceNumber = data.invoiceNumber;
    form.salesContractNo = data.salesContractNo;
    form.projectName = data.projectName;
    // form.projectName = data.projectName;
    form.supplierName = data.supplierName;
    form.entryDate = data.entryDate;
    form.productData = data.productData;
@@ -377,7 +388,7 @@
  let invoiceAmountTotal = 0;
  form.productData.forEach((item) => {
    if (item.ticketsAmount) {
      invoiceAmountTotal += item.ticketsAmount;
      invoiceAmountTotal += Number(item.ticketsAmount);
    }
  });
  form.invoiceAmount = invoiceAmountTotal.toFixed(2);
@@ -399,17 +410,22 @@
  form.tempFileIds = form.tempFileIds.filter((item) => item !== tempId);
};
const closeAndRefresh = () => {
  closeModal();
  emit('refreshList');
};
const submitForm = () => {
  formRef.value.validate(async (valid, fields) => {
    if (valid) {
      modalLoading.value = true;
      // modalLoading.value = true;
      const { code } = await addOrUpdateRegistration({
        purchaseLedgerId: id.value,
        purchaseContractNumber: form.purchaseLedgerNo,
        invoiceNumber: form.invoiceNumber,
        invoiceAmount: form.invoiceAmount,
        salesContractNo: form.salesContractNo,
        projectName: form.projectName,
        // projectName: form.projectName,
        productData: form.productData,
        issueDate: form.entryDate,
        issUerId: form.issUerId, // 录入人id
@@ -422,7 +438,7 @@
      });
      modalLoading.value = false;
      if (code == 200) {
        closeModal();
        closeAndRefresh();
      }
    } else {
      modalLoading.value = false;
@@ -432,6 +448,7 @@
defineExpose({
  open,
  closeAndRefresh,
});
</script>