фильтр по категориям работает некорректно с удаленным поиском? - PullRequest
0 голосов
/ 07 декабря 2018

Здравствуйте, у меня проблема с вычислением фильтра vue по категориям, он работает некорректно, когда я добавляю элемент на вкладку Сервис и затем нажимаю на вкладку Медицина элемент удаленного поиска по категории, в которой он застрял ифильтр не работает, и когда я нажимаю на вкладку Сервис , отображается только номер 2 .

enter image description here

Это мой шаблон

<el-table
    :data="itemFilters"        
    row-key="no"
    style="width: 100%"
  >

Этот мой сценарий

computed: {    
 itemFilters() {
   const self = this
   let item = self.form.items.filter(o => {
    return o.categoryName === self.tabActive || o.itemId === ''
   })
   return item
 },
},

Этот метод

methods: {
  _getItemOpts(query, type) {
  let exp = new RegExp(query)

  let selector = {
    $or: [
      { name: { $regex: exp, $options: 'i' } },
      { refNo: { $regex: exp, $options: 'i' } },
      { barcode: { $regex: exp, $options: 'i' } },
    ],
    activityType: { $in: ['Sale'] },
    status: 'Active',
    'catDoc.name': this.tabActive,
  }

  // For form Sale Return and receipts refund
  if (this.formName == 'Sale_Return' || this.formName == 'Receipt_Refund') {
    selector.itemType = { $ne: 'Bundle' }
  }

  findItems
    .callPromise({ selector: selector })
    .then(result => {
      // this.itemOpts = result
      if (type == 'remote') {
        // For remote
        this.form.items[this.activeIndex].itemOpts = result
      } else {
        // For scan barcode
        let item = result[0]
        if (item) {
          let row = {
            itemId: item._id,
            itemType: item.itemType,
            memo: '',
            qty: 1,
            qtyRate: 1,
            unitId: item.units[0].unitId,
            units: item.units,
            price: item.price,
            amountBeforeDiscount: item.price,
            discountRate: 0,
            discountValue: 0,
            amountAfterDiscount: item.price,
            taxId: '',
            taxAmount: 0,
            // For expand bundle item
            subItems: [],
            expand: 'expand',
            // For sales only(cash sales and invoice)
            // refSaleOrderId: '',
            // refSaleOrderDetailId: '',
            // refNo: '',
            itemOpts: result,
          }

          this.form.items.push(row)
        } else {
          Notify.warning({ message: 'This item do not set barcode!' })
        }
      }

      this.loading = false
    })
    .catch(err => {
      this.loading = false
      this.$notify.error(err.reason)
    })
  },
}

Пожалуйста, помогите ...

...