zuozhengqing
2024-01-08 95b3446e38cc84c66883e4ae0e0c9985d6e3e722
src/components/makepager/CommonFormTableView.vue
@@ -118,6 +118,7 @@
                    :controls="false"
                    size="mini"
                    style="width: 100%; margin-right: 5px"
                    :min="item.prop==='minInventory'?0:1"
                    @change="
                      (val) => {
                        commonInputChange(val, item.prop, scope.row)
@@ -184,7 +185,7 @@
                    style="width: 80%"
                    @change="
                      (val) => {
                        selLocationClick(val, item.prop)
                        selLocationClick(val, item.prop,scope.row)
                      }
                    "
                  >
@@ -284,6 +285,25 @@
                  </template>
                </div>
              </el-form-item>
              <!-- 从 -->
              <el-form-item v-else-if="item.formLocation" label=" " :prop="'tableData.' + scope.$index + '.' + item.prop">
                <div class="custom-name">
                  <span v-if="scope.row.isEdit || scope.row.editable">{{ scope.row.formLocation }}</span>
                  <el-autocomplete
                    v-else
                    style="width: 100%"
                    v-model="scope.row.productCategory"
                    @focus="productTypeFocus"
                    :fetch-suggestions="
                      (queryString, callback) => {
                        querySearchAsync(queryString, callback, 'formLocation')
                      }
                    "
                    value-key="name"
                    @select="handleSelectClient('formLocation', $event)"
                  ></el-autocomplete>
                </div>
              </el-form-item>
              <!-- 产品类别 -->
              <el-form-item
                v-else-if="item.productType"
@@ -368,7 +388,7 @@
        <slot name="tableButton" />
      </el-table>
    </el-form>
    <div v-if="!detailEnter && !isinventory && !islistingrules && !isReorder" style="margin: 10px">
    <div v-if="!detailEnter && !isinventory  && !isReorder" style="margin: 10px">
      <el-button size="small" type="primary" @click="add">添加明细行</el-button>
      <!-- <el-button size="small" type="primary" @click="empty">清空</el-button> -->
    </div>
@@ -457,7 +477,9 @@
      locacionId: 0,
      productName: "",
      productId: "",
      initialPosition: ""
      initialPosition: "",
      formLocationList:[],
      toLocationList:[],
    }
  },
  created() {
@@ -496,6 +518,7 @@
        }
      })
    },
    // 下拉搜索
    async handleSelectClient(value, item) {
      this.$emit("selProductClick", value, item)
      if (value === "product") {
@@ -526,6 +549,8 @@
        restaurants = this.productNameOptions
      } else if (value === "productType") {
        restaurants = this.productTypeNameOptions
      }else if(value==="formLocation"){
        restaurants = this.selLocationOptions
      }
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString, value)) : restaurants
      cb(results)
@@ -572,8 +597,10 @@
        }
      })
    },
    // 位置
    async getLocationList() {
      this.locacionName = ""
      await getLocationList({
        // keyword: "",
        jointName: this.initialPosition ? this.initialPosition : null,
@@ -614,24 +641,39 @@
        }
      })
    },
    // 设置子位置
    async setLocationList(jointName) {
      await getLocationList({
        // keyword: "",
        jointName: jointName,
        page: 1,
        pageSize: 100
      }).then((res) => {
        if (res.code === 200) {
          const list = res.data ? res.data : []
          this.selSonLocationOptions = list
          // if (this.isReorder) {
          //   this.locacionName = list[0]?.name
          //   this.locacionId = list[0]?.id
          //   this.$emit("selLocationClick", list[0], "locacionName")
          // }
        }
      })
    // 设置子位置/源位置
    async setLocationList(jointName,tag) {
      if(tag==="fromLocation"){
        await getLocationList({
          jointName: jointName,
          page: 1,
          pageSize: 100
        }).then((res) => {
          if (res.code === 200) {
            this.selSonLocationOptions = res.data
          }
        })
      }else if(tag==="toLocation"){
        await getLocationList({
          jointName: jointName,
          page: 1,
          pageSize: 100
        }).then((res) => {
          if (res.code === 200) {
            this.selToLocationOptions = res.data
          }
        })
      }else{
        await getLocationList({
          jointName: jointName,
          page: 1,
          pageSize: 100
        }).then((res) => {
          if (res.code === 200) {
            this.selSonLocationOptions = res.data
          }
        })
      }
    },
    // 获取公司列表
    async getCompanyList() {
@@ -661,7 +703,16 @@
      } else {
        let selIndex = 0
        this.tableList.tableData.map((ite, index) => {
          if (ite.id === row.id) {
          // ite.id 是上架规则的, ite.productId是库存调整的
          if (ite.id === row.id&&ite.id!=undefined&&row.id!=undefined) {
            selIndex = index
            ite.productId = item.id
            ite.productName = item.name
            ite.categoryId = item.categoryId
            ite.productCategory = item.categoryName
            ite.amount = item.amount
            ite.unit = item.unit
          }else if(ite.productId===row.productId){
            selIndex = index
            ite.productId = item.id
            ite.productName = item.name
@@ -872,7 +923,9 @@
    },
    // 行点击
    tableRowClick(row) {
      this.locacionName = row.location.name
      if (this.isReorder) {
        this.locacionName = row.location.name
      }
      this.$emit("tableRowClick", row, row.index)
    },
    // 单选行相关