src/views/supplierManage/supplier/AddNewProduct.vue
@@ -14,11 +14,19 @@
        <div class="basic-info-title">产品信息</div>
        <div class="basic-info-view">
          <CommonFormTableView
            ref="productTable"
            :addTypeIdMultiple="true"
            :disabledList="disabledList"
            :product-table-list="productTableList"
            :detail-enter="detailEnter"
            :isOperate="isOperate"
            @inputContent="inputContent"
            @addProductClick="addProductClick"
            @getSelectArray="getSelectArray"
            @emptyProductClick="emptyProductClick"
            @clearupProduct="clearupProduct"
            @selCommonName="selCommonName"
            @handleProduct="handleProduct"
          />
        </div>
      </div>
@@ -31,7 +39,7 @@
</template>
<script>
// import { getAddContact, getUpdateContact } from "@/api/client/contacts"
import { createProduct, updateProduct } from "@/api/productManage/product"
import CommonFormTableView from "@/components/makepager/CommonFormTableView"
export default {
  name: "AddNewProduct",
@@ -45,18 +53,30 @@
          infomation: {}
        }
      }
    },
    disabledList:{
      type:[Array],
      default: () => {
        return []
      }
    }
  },
  components: { CommonFormTableView },
  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,
      isOperate: true,
      deliveryTime: this.addCommonConfig.infomation.deliveryTime, // 供货时长
      shippingDuration: this.addCommonConfig.infomation.shippingDuration, // 物流时长
      purchasePrice: this.addCommonConfig.infomation.purchasePrice // 采购价格
    }
  },
  created() {
@@ -71,53 +91,77 @@
    },
    // 保存
    saveClick() {
      console.log(this.editConfig.infomation)
      const params = this.saveParams()
      console.log(params)
      if (this.editConfig.title === "添加") {
        // getAddContact(params).then((res) => {
        //   console.log(res)
        //   this.editConfig.visible = false
        //   if (res.code === 200) {
        //     this.$message.success("添加成功")
        //     this.$parent.getData()
        //   }
        // })
      } else {
        // getUpdateContact(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 params = {
        id: this.editConfig.title === "添加" ? 0 : data.id,
        birthday: data.birthday || "",
        city_id: data.city_id || 0,
        client_id: this.clientId || 0,
        country_id: data.country_id || 0,
        desc: data.desc || "",
        email: data.email || "",
        is_first: data.is_first || false,
        member_id: data.member_id || 0,
        name: data.name || "",
        number: data.number || "",
        phone: data.phone || "",
        position: data.position || "",
        province_id: data.province_id || 0,
        region_id: data.region_id || 0,
        wechat: data.wechat || ""
        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 || ""
        ...this.tableData[0]
      }
      return params
    },
    handleProduct(item, row) {
      this.editConfig.infomation.id = row.id
    },
    setTableForm() {
      if (this.editConfig.title === "添加" || this.editConfig.infomation.products.length === 0) {
      if (this.editConfig.title === "添加") {
        this.detailEnter = false
        this.tableData = [
          {
            productId: this.productId,
@@ -127,50 +171,70 @@
            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,
        isReturn: true,
        tableColumn: [
          { label: "产品名称", prop: "name", productName: true, isRequird: true },
          { label: "产品名称", prop: "name", productName: true, isRequird: true, width: 250 },
          { label: "产品编码", prop: "number" },
          { label: "计量单位", prop: "number" },
          { label: "规格型号", prop: "number" },
          { label: "采购价格", prop: "amount", inputFloat: true, isRequird: true },
          { label: "供货时长", prop: "price", inputNumber: true, isRequird: true },
          { label: "物流时长", prop: "total", inputNumber: true, isRequird: true }
          { label: "计量单位", prop: "unit" },
          { label: "规格型号", prop: "specifications" },
          { label: "采购价格", prop: "purchasePrice", inputFloat: true, isRequird: true },
          { label: "供货时长", prop: "deliveryTime", inputNumber: true, isRequird: true },
          { label: "物流时长", prop: "shippingDuration", inputNumber: true, isRequird: true }
        ]
      }
    },
    // 产品列表输入
    inputContent(val, prop, row) {
      this.productId = row.productId
      this.tableData.map((item) => {
        if (item.productId === row.productId) {
        if (item.number == row.number) {
          item[prop] = val
          item.supplierId = Number(this.supplierId)
        }
      })
    },
    // 产品新增
    addProductClick() {
      this.productId++
      this.tableData.push({
        productId: this.productId,
        id: 0,
        amount: 0,
        desc: "",
        name: "",
        number: "",
        price: 0,
        total: 0
      })
      // this.productId++
      // this.tableData.push({
      //   productId: this.productId,
      //   id: 0,
      //   amount: 0,
      //   desc: "",
      //   name: "",
      //   number: "",
      //   purchasePrice: 0,
      //   total: 0,
      //   deliveryTime: 0,
      //   shippingDuration: 0,
      //   supplierId: this.supplierId
      // })
    },
    // 新增方式修改
    getSelectArray(val, index) {
      console.log(val, "ddd99999")
      if (this.tableData.length == 1 && this.tableData[0].number.length == 0) {
        this.tableData = []
      }
      if (index < this.tableData.length) {
        this.tableData.splice(index, 1)
        val.map((item, ind) => {
          this.tableData.splice(index + ind, 0, item)
        })
      } else {
        this.tableData = this.tableData.concat(val)
      }
      this.productTableList.tableData = this.tableData
      // this.showSummary.show = true
    },
    //  产品清空
    emptyProductClick() {
@@ -183,8 +247,11 @@
          desc: "",
          name: "",
          number: "",
          price: 0,
          total: 0
          purchasePrice: 0,
          total: 0,
          deliveryTime: 0,
          shippingDuration: 0,
          supplierId: this.supplierId
        }
      ]
      this.productTableList.tableData = this.tableData
@@ -193,6 +260,11 @@
    clearupProduct(data) {
      this.tableData = data
      this.productTableList.tableData = this.tableData
    },
    selCommonName(row) {
      console.log("1133")
      console.log(row)
      this.editConfig.infomation = row
    }
  }
}