zuozhengqing
2023-11-22 3b2fc427d0b25bd606c261b9d8b6b8a727a0e37b
src/views/supplierManage/supplier/AddNewProduct.vue
@@ -14,11 +14,14 @@
        <div class="basic-info-title">产品信息</div>
        <div class="basic-info-view">
          <CommonFormTableView
            ref="productTable"
            :product-table-list="productTableList"
            :detail-enter="detailEnter"
            @inputContent="inputContent"
            @addProductClick="addProductClick"
            @emptyProductClick="emptyProductClick"
            @clearupProduct="clearupProduct"
            @selCommonName="selCommonName"
          />
        </div>
      </div>
@@ -31,7 +34,7 @@
</template>
<script>
// import { createProduct, updateProduct } from "@/api/productManage/product"
import { createProduct, updateProduct } from "@/api/productManage/product"
import CommonFormTableView from "@/components/makepager/CommonFormTableView"
export default {
  name: "AddNewProduct",
@@ -51,12 +54,17 @@
  computed: {},
  data() {
    return {
      dialogWidth: "80%",
      dialogWidth: "60%",
      editConfig: this.addCommonConfig,
      productTableList: {},
      tableData: [],
      productId: 1,
      isNoProduct: true
      isNoProduct: true,
      supplierId: this.addCommonConfig.infomation.supplierId,
      detailEnter: true,
      deliveryTime: this.addCommonConfig.infomation.deliveryTime, // 供货时长
      shippingDuration: this.addCommonConfig.infomation.shippingDuration, // 物流时长
      purchasePrice: this.addCommonConfig.infomation.purchasePrice // 采购价格
    }
  },
  created() {
@@ -71,50 +79,73 @@
    },
    // 保存
    saveClick() {
      console.log(this.editConfig.infomation)
      const params = this.saveParams()
      console.log(params)
      if (this.editConfig.title === "添加") {
        // createProduct(params).then((res) => {
        //   console.log(res)
        //   this.editConfig.visible = false
        //   if (res.code === 200) {
        //     this.$message.success("添加成功")
        //     this.$parent.getData()
        //   }
        // })
      } else {
        // updateProduct(params).then((res) => {
        //   console.log(res)
        //   this.editConfig.visible = false
        //   if (res.code === 200) {
        //     this.$message.success("编辑成功")
        //     this.$parent.getData()
        //   }
        // })
      }
      this.$refs.productTable.$refs.form.validate((valid) => {
        if (valid) {
          console.log(this.editConfig.infomation)
          for (let i = 0; i < this.tableData.length; i++) {
            if (this.tableData[i].name.length === 0) {
              this.isNoProduct = true
              break
            } else {
              this.isNoProduct = false
            }
          }
          if (this.isNoProduct) {
            this.$message.error("产品名称不能为空")
          } else {
            if (this.editConfig.title === "添加") {
              createProduct({
                list: this.tableData
              })
                .then((res) => {
                  console.log(res)
                  this.editConfig.visible = false
                  if (res.code === 200) {
                    this.$message.success("添加成功")
                    this.$parent.getProductList()
                  }
                })
                .catch((e) => {
                  console.log(e)
                })
            } else {
              const params = this.saveParams()
              updateProduct(params).then((res) => {
                console.log(res)
                this.editConfig.visible = false
                if (res.code === 200) {
                  this.$message.success("编辑成功")
                  this.$parent.getProductList()
                }
              })
            }
          }
        }
      })
    },
    saveParams() {
      // let data = this.editConfig.infomation
      let data = this.editConfig.infomation
      let params = {
        deliveryTime: 0,
        id: 0,
        maximumStock: 0,
        minimumStock: 0,
        name: "string",
        number: "string",
        productType: "string",
        purchasePrice: 0,
        remark: "string",
        shippingDuration: 0,
        specifications: "string",
        supplierId: 0,
        unit: "string"
        deliveryTime: this.deliveryTime || 0,
        id: data.ID || 0,
        maximumStock: data.maximumStock || 0,
        minimumStock: data.minimumStock || 0,
        modelNumber: data.modelNumber || "",
        name: data.name || "",
        number: data.number || "",
        productType: data.productType || "",
        purchasePrice: this.purchasePrice || 0,
        remark: data.remark || "",
        shippingDuration: this.shippingDuration || 0,
        specifications: data.specifications || "",
        supplierId: this.supplierId || 0,
        unit: data.unit || ""
      }
      return params
    },
    setTableForm() {
      if (this.editConfig.title === "添加" || this.editConfig.infomation.products.length === 0) {
      if (this.editConfig.title === "添加") {
        this.detailEnter = false
        this.tableData = [
          {
            productId: this.productId,
@@ -124,19 +155,18 @@
            name: "",
            number: "",
            price: 0,
            total: 0
            total: 0,
            supplierId: this.supplierId
          }
        ]
      } else {
        this.tableData = this.editConfig.infomation.products
        this.tableData.map((item, index) => {
          item.productId = index + 1
        })
        this.tableData = [{ ...this.editConfig.infomation }]
        this.detailEnter = true
      }
      this.productTableList = {
        tableData: this.tableData,
        tableColumn: [
          { label: "产品名称", prop: "name", productName: true, isRequird: true },
          { label: "产品名称", prop: "name", productName: true, isRequird: true, width: 250 },
          { label: "产品编码", prop: "number" },
          { label: "计量单位", prop: "unit" },
          { label: "规格型号", prop: "specifications" },
@@ -149,9 +179,16 @@
    // 产品列表输入
    inputContent(val, prop, row) {
      this.productId = row.productId
      this.deliveryTime = row.deliveryTime
      this.shippingDuration = row.shippingDuration
      this.purchasePrice = row.purchasePrice
      this.tableData.map((item) => {
        if (item.productId === row.productId) {
          item[prop] = val
          item.supplierId = this.supplierId
          item.deliveryTime = this.deliveryTime
          item.shippingDuration = this.shippingDuration
          item.purchasePrice = this.purchasePrice
        }
      })
    },
@@ -165,8 +202,11 @@
        desc: "",
        name: "",
        number: "",
        price: 0,
        total: 0
        purchasePrice: 0,
        total: 0,
        deliveryTime: 0,
        shippingDuration: 0,
        supplierId: this.supplierId
      })
    },
    //  产品清空
@@ -180,8 +220,11 @@
          desc: "",
          name: "",
          number: "",
          price: 0,
          total: 0
          purchasePrice: 0,
          total: 0,
          deliveryTime: 0,
          shippingDuration: 0,
          supplierId: this.supplierId
        }
      ]
      this.productTableList.tableData = this.tableData
@@ -190,6 +233,11 @@
    clearupProduct(data) {
      this.tableData = data
      this.productTableList.tableData = this.tableData
    },
    selCommonName(row) {
      console.log("1133")
      console.log(row)
      this.editConfig.infomation = row
    }
  }
}