haoxuan
2023-08-30 53f2ab450f00d2f1ddb9cedfc5823b34af0d5545
src/components/makepager/CommonFormTableView.vue
@@ -1,7 +1,11 @@
<template>
  <div class="page-view">
    <el-form ref="form" :model="tableList" :show-message="false" label-position="right">
      <el-table :data="tableList.tableData" style="width: 100%">
    <el-form ref="form" :model="tableList" :show-message="false" label-position="right"
    >
      <el-table :data="tableList.tableData" style="width: 100%"
      :show-summary="showSummary.show"
      :summary-method="getSummaries"
      :span-method="arraySpanMethod">
        <el-table-column type="index" label="编号" width="50" align="center"></el-table-column>
        <el-table-column
          v-for="(item, i) in tableList.tableColumn"
@@ -50,11 +54,14 @@
                    }
                  "
                ></el-autocomplete>
                <div class="common-select-btn" @click="selClientClick(scope.row, item.prop)">
                <div class="common-select-btn" @click="selClientClick(scope.row, item.prop,scope)">
                  <i class="el-icon-circle-plus-outline" title="选择"></i>
                </div>
                <div class="common-select-btn" @click="clearupClient(scope.row)">
                <div class="common-select-btn" @click="clearupClient(scope.row,scope)">
                  <i class="el-icon-remove-outline" title="清除"></i>
                </div>
                <div class="common-select-btn" @click="deleteClient(scope.row,scope)">
                  <i class="el-icon-delete" title="删除"></i>
                </div>
              </div>
            </el-form-item>
@@ -94,6 +101,24 @@
              :prop="'tableData.' + scope.$index + '.' + item.prop"
              :rules="[{ required: item.isRequird ? true : false, message: '输入不能为空' }]"
            >
             <template v-if="item.multiply">
                <el-input-number
                  :value="scope.row[showSummary.multiply[0]]*scope.row[showSummary.multiply[1]]"
                  placeholder=""
                  :disabled="item.disabled"
                  :min="0"
                  :precision="2"
                  :controls="false"
                  size="mini"
                  style="width: 100%; margin-right: 5px"
                  @input="
                    (val) => {
                      commonInputChange(val, item.prop, scope.row)
                    }
                  "
                ></el-input-number>
             </template>
             <template v-else>
              <el-input-number
                v-model="scope.row[item.prop]"
                placeholder=""
@@ -108,6 +133,7 @@
                  }
                "
              ></el-input-number>
              </template>
            </el-form-item>
            <span v-else>{{ scope.row[item.prop] }}</span>
            <!-- </template> -->
@@ -124,13 +150,14 @@
    <SelectCommonDialog
      v-if="editSelCommonConfig.editVisible"
      :edit-common-config="editSelCommonConfig"
      :sign="sign"
      @selClient="selClient"
    />
  </div>
</template>
<script>
import { getProductListFromGrpc } from "@/api/productManage/product"
import { getProductListFromGrpc,getProductList } from "@/api/productManage/product"
import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog"
export default {
  name: "CommmonFormTableView",
@@ -139,6 +166,10 @@
    detailEnter: {
      type: Boolean,
      default: false
    },
    sign:{
      type:String,
      default:''
    },
    productTableList: {
      type: Object,
@@ -160,6 +191,7 @@
          total: false,
          refundable: false,
          sumProp: [],
          multiply:[],
          titleProp: ["#", "产品名称"],
          mergeNumber: 1
        }
@@ -168,7 +200,7 @@
    recalculateShow: {
      type: [Boolean],
      defalut: true
    }
    },
  },
  data() {
    return {
@@ -188,10 +220,16 @@
    this.tableList = this.productTableList
  },
  computed: {},
  watch:{
    productTableList(){
      this.tableList = this.productTableList
    }
  },
  methods: {
    // 产品名称
    async getProductList() {
      await getProductListFromGrpc({
      let fn = this.sign == "purchase" ? getProductList : getProductListFromGrpc;
      await fn({
        page: 1,
        pageSize: 100
      }).then((res) => {
@@ -259,6 +297,7 @@
        }
        if (column.property === "total") {
          this.total = sums[index]
          this.$emit('getSummaries',this.total)
        }
      })
      return sums
@@ -354,9 +393,9 @@
      }
      this.$emit("selCommonName", selRow)
    },
    selClientClick(row, prop) {
    selClientClick(row, prop,scope) {
      console.log(row, prop)
      this.productIndex = row.productId - 1
      this.productIndex = scope.$index
      this.editSelCommonConfig.title = "产品名称"
      this.editSelCommonConfig.editVisible = true
    },
@@ -379,22 +418,28 @@
        this.tableList.tableData.map((ite, index) => {
          if (index === this.productIndex) {
            ite.name = item.name
            ite.productId = item.ID
            ite.amount = item.amount || 1
            ite.number = item.number
            ite.purchasePrice = item.purchasePrice
            ite.unit = item.unit
            ite.deliveryTime = item.deliveryTime
            ite.shippingDuration = item.shippingDuration
            this.$set(this.tableList.tableData,index,ite)
            this.$forceUpdate()
          }
        })
        console.log(this.tableList.tableData,'=====chanp')
      }
    },
    // 清除已选择用户
    clearupClient(row) {
      this.productIndex = row.productId - 1
    clearupClient(row,scope) {
      this.productIndex = scope.$index
      this.tableList.tableData.map((ite, index) => {
        console.log(row.productId)
        if (row.productId && row.productId >= 0) {
        console.log(scope.$index)
        if (scope.$index  && scope.$index  >= 0) {
          if (index === this.productIndex) {
            ite.name = ""
            ite.amount = 1
@@ -416,10 +461,10 @@
      })
      this.$emit("clearupProduct", this.tableList.tableData)
    },
    // 删除
    deleteClient(row) {
      this.$emit("deleteProduct", row)
    }
    deleteClient(row,scope){
      this.tableList.tableData.splice(scope.$index,1)
    },
  }
}
</script>
@@ -445,7 +490,7 @@
  }
  .el-table__footer-wrapper tbody td.el-table__cell {
    background-color: #fff;
    text-align: right;
    // text-align: right;
    font-weight: bold;
  }
  .el-input--suffix .el-input__inner {