yangfeng
2024-01-03 22d81fd4a1a2d9e5d56cd496971893437ef84599
src/views/sales/salesDetails/index.vue
@@ -76,7 +76,7 @@
              color: TabsIndex==1 ? '#fff' : '#666'
            }"
          >
            库存信息
            发货信息
          </div>
          <div
            class="tab-pane"
@@ -195,17 +195,20 @@
      { label: "产品名称", prop: "name" },
      { label: "数量", prop: "amount" },
      { label: "单位", prop: "unit" },
      { label: "发货单", prop: "invoice" },
      { label: "承运商", prop: "carrier" },
      { label: "运单号", prop: "waybillNumber" },
      { label: "销售单价", prop: "salePrice", price: true },
      { label: "价税合计", prop: "valorem", price: true }
      { label: "成本单价", prop: "cost" },
      { label: "毛利", prop: "profit" },
      { label: "毛利率(%)", prop: "margin",},
      { label: "价税合计", prop: "total", price: true }
    ]
    // 库存信息
    const inventoryColumn = [
      { label: "产品编号", prop: "number", default: true },
      { label: "产品名称", prop: "name" },
      { label: "订单数量", prop: "orderAmount" },
      { label: "发货单", prop: "invoice" },
      { label: "承运商", prop: "carrier" },
      { label: "运单号", prop: "waybill" },
      { label: "仓库", prop: "warehouse" },
      { label: "在库数量", prop: "amount" },
      { label: "可用库存", prop: "availableNumber" },
@@ -306,9 +309,9 @@
      TabsIndex: "0",
      productTableList: {},
      productColumn: productColumn,
      showProductCol: ["产品编号", "产品名称", "数量", "单位", "发货单", "承运商", "运单号", "销售单价", "价税合计"],
      showProductCol: ["产品编号", "产品名称", "数量", "单位",  "销售单价","成本单价", "毛利", "毛利率(%)","价税合计"],
      inventoryColumn: inventoryColumn,
      showInventoryCol: ["产品编号", "产品名称", "订单数量", "仓库", "在库数量", "可用库存", "单位"],
      showInventoryCol: ["产品编号", "产品名称", "订单数量", "发货单", "承运商", "运单号","仓库", "在库数量", "可用库存", "单位"],
      makeColumn: makeColumn,
      showMakeCol: ["生产订单", "产品名称", "订单状态", "工单编号", "工单状态", "计划开始时间", "计划结束时间"],
      // 采购
@@ -325,6 +328,7 @@
        projectId: [{ required: true, message: "请选择项目", trigger: "change" }]
      },
      purchaseStatusList: getDataByType("purchaseStatus"),
      loading:false,
    }
  },
  created() {
@@ -407,7 +411,6 @@
    },
    // 请求数据
    async getData() {
      this.loading = true
      let params = {}
      console.log(this.addConfig)
      if (this.addConfig.keywordType === "客户名称") {
@@ -436,9 +439,9 @@
          pageSize: this.pagerOptions.pageSize
        }
      }
      this.loading = true
      await getSalesDetailsList(params)
        .then((res) => {
          console.log(res)
          if (res.code === 200) {
            if (res.data.list && res.data.list.length > 0) {
              const list = res.data.list.map((item) => {
@@ -453,8 +456,7 @@
              this.pagerOptions.totalCount = res.data.count
              if (res.data.count > 0) {
                this.selectRow = this.tableList.tableInfomation.length > 0 ? this.tableList.tableInfomation[0] : {}
                let row = this.tableList.tableInfomation[0]
                this.getProductInventoryInfo(row)
                this.tableRowClick(this.selectRow)
              }
            } else {
              this.tableList.tableInfomation = []
@@ -472,21 +474,37 @@
    },
    // 获取产品/库存信息
    async getProductInventoryInfo(row) {
      if (row.status === 1) {
      if (this.TabsIndex == 0||row.status==1) {
        this.productTableList.tableInfomation = row.products || []
      } else {
        await getProductInventoryInfo(row.number).then((res) => {
          console.log(res)
          this.productTableList.tableInfomation = res.data?.length > 0 ? res.data : []
        })
        if(row.number){
          this.loading = true
          await getProductInventoryInfo(row.number).then((res) => {
            this.productTableList.tableInfomation = res.data?.length > 0 ? res.data : []
            this.loading = false
          }).catch(() => {
            this.productTableList.tableInfomation = []
            this.loading = false
          })
        }
      }
    },
    // 获取制造信息
    async getProductOrderInfo(number) {
      await getProductOrderInfo(number).then((res) => {
        console.log(res)
        this.productTableList.tableInfomation = res.data?.length > 0 ? res.data : []
      })
      if(number){
        this.loading = true
        await getProductOrderInfo(number).then((res) => {
          if(this.TabsIndex == 3){
            this.productTableList.tableInfomation = (res.data&&res.data.purchaseInfo) ? res.data.purchaseInfo : []
          }else{
            this.productTableList.tableInfomation = (res.data&&res.data.makeInfo) ? res.data.makeInfo : []
          }
          this.loading = false
        }).catch(() => {
          this.productTableList.tableInfomation = []
          this.loading = false
        })
      }
    },
    // 搜索
    onFilterSearch(searchText) {
@@ -511,16 +529,16 @@
    },
    // 查看 编辑
    handleClick(row, title) {
      console.log(row, title)
      this.editConfig.visible = true
      let params = JSON.parse(JSON.stringify(row));
      this.editConfig.title = title
      this.editConfig.infomation = {
        ...row,
        ...params,
        currency: "人民币",
        sale_chance_name: row.saleChance.name,
        deliverType: row.deliverType === 0 ? "" : row.deliverType,
        quotation_number: row.quotation.number
        sale_chance_name: params.saleChance.name,
        deliverType: params.deliverType === 0 ? "" : params.deliverType,
        quotation_number: params.quotation.number
      }
      this.editConfig.visible = true
    },
    // 确认提交
    async submitClick(row) {
@@ -640,7 +658,7 @@
        this.tableBottomColumn = this.purchaseColumn
        this.showBottomCol = this.showPurchaseCol
        this.setBottomList()
        // this.getProductOrderInfo(this.selectRow.number)
        this.getProductOrderInfo(this.selectRow.number)
      }
    },
    // 状态
@@ -648,8 +666,7 @@
      return val === 1 ? "待确认" : val === 2 ? "待出库" : val === 3 ? "出库完成" : val === 4 ? "已关闭" : "--"
    },
    // top 行点击
    tableRowClick(row, column, event) {
      console.log(row, column, event)
    tableRowClick(row) {
      this.selectRow = row
      if (this.TabsIndex == 0) {
        this.getProductInventoryInfo(this.selectRow)
@@ -668,8 +685,7 @@
        page: 1,
        pageSize: 100
      }).then((res) => {
        console.log(res.data, "项目列表信息")
        this.projectList = res.data
        this.projectList = res.data?res.data:[]
      })
    },
    handleClose(done) {