石广澎
2023-11-29 20913c80c3f5fc8e533cb92b90e6f20bcd68e032
admin-web/src/views/stock/transfer/transferApplication/edit.vue
@@ -56,14 +56,10 @@
              <el-form-item
                label="物品名称"
                :prop="`transferGoods[${goodsIndex}].baseGoodsTemplateId`"
                :rules="{
                  required: true,
                  message: '请选择',
                  trigger: 'change',
                }"
                :rules="rules.baseGoodsTemplateId"
              >
                <el-select
                  :value="goodsItem.baseGoodsTemplateId"
                  v-model="goodsItem.baseGoodsTemplateId"
                  placeholder="请先择物品分类"
                  filterable
                  :disabled="!goodsItem.baseCategoryId"
@@ -173,14 +169,13 @@
  </win-md>
</template>
<script>
import { transferAdd } from '@/api/stock/transfer';
import { getCategorySelectTree, getTree, goodsTemplate, goodsModel } from '@/api/baseSetting/finsystenant';
import { getParentTenant,queryWarehouseGoods } from '@/api/stock/transfer';
import {getParentTenant, queryWarehouseGoods, transferAdd} from '@/api/stock/transfer';
import {getCategorySelectTree, goodsModel, warehouseSelectNumber} from '@/api/baseSetting/finsystenant';
import MyButton from '@/components/myButton/myButton';
import winMd from '@/components/win/win-md';
import upload from '@/components/upload/index';
import { getUploadUrl } from '@/utils/base';
import { mapGetters } from 'vuex';
import {getUploadUrl} from '@/utils/base';
import {mapGetters} from 'vuex';
export default {
  components: { MyButton, winMd, upload },
@@ -191,6 +186,18 @@
    },
  },
  data() {
    // 自定义校验
    // 物品重复校验
    var checkGoodsTemplateId = (rule, value, callback) => {
      if (!value) {
        return callback(new Error('请选择'));
      }
      let temp = this.formData.transferGoods.filter((v) => v.baseGoodsTemplateId == value);
      if (!temp || temp.length != 1) {
        return callback(new Error('已选过此物品'));
      }
      callback();
    };
    return {
      loading: false,
      agencyOptions: [], // 调拨机构
@@ -219,11 +226,11 @@
        unit: null, //单位
      },
      rules: {
        warehouseId: [{ required: true, message: '请选择', trigger: 'change' }],
        outAgencyId: [{ required: true, message: '请选择', trigger: 'change' }],
        createTime: [{ required: true, message: '请选择', trigger: 'change' }],
        baseCategoryIds: [{ required: true, message: '请选择', trigger: 'change' }],
        baseGoodsTemplateId: [{ required: true, message: '请选择', trigger: 'change' }],
        baseGoodsTemplateId: [{ validator: checkGoodsTemplateId, trigger: ['blur', 'change'] }],
        modelsIds: [{ required: true, message: '请选择', trigger: 'change' }],
        counts: [
          { required: true, message: '请输入', trigger: 'change' },
@@ -256,14 +263,18 @@
      this.getgoodsTemplate();
      this.getgoodsModel();
      this.getCategoryTree();
      this.formData.transferGoods.push(JSON.parse(JSON.stringify(this.goodsItem)));
    },
    // 获取上级机构
    handegetParentTenant() {
      getParentTenant().then((res) => {
        this.agencyOptions = [res];
        this.formData.outAgencyId = res.id;
        if (res.id != this.userInfo.tenantId) {
          this.agencyOptions = [res];
          this.formData.outAgencyId = res.id;
          this.formData.transferGoods.push(JSON.parse(JSON.stringify(this.goodsItem)));
        } else {
          this.$message.warning('无上级机构');
        }
      });
    },
@@ -340,13 +351,6 @@
    // 物品名称列表选择
    goodsTemplateChange(e, index) {
      let temp = this.formData.transferGoods.find(v=>v.baseGoodsTemplateId==e)
      if(temp) {
        this.$message.warning('已选过此物品')
        return
      }else{
        this.formData.transferGoods[index].baseGoodsTemplateId = e
      }
      this.formData.transferGoods[index].modelsOptions = [];
      this.formData.transferGoods[index].modelsIds = [];
      this.formData.transferGoods[index].models = [];
@@ -357,15 +361,22 @@
    },
    // 规格型号选择
    modelChange(e, index) {
    async modelChange(e, index) {
      let arr = [...this.formData.transferGoods[index].models];
      let str = JSON.stringify(arr);
      e.forEach((item) => {
      for (let item of e) {
        if (str.indexOf(item) == -1) {
          let temp = this.goodsModelAll.find((v) => v.id == item);
          arr.push({ ...this.modelsItem, baseGoodsModelsId: item, unit: temp.unit });
          let num = await warehouseSelectNumber({
            baseGoodsModelsId: item,
            warehouseType: 0,
            states: 1,
            buyType: 1,
            agencyId: this.formData.outAgencyId,
          });
          arr.push({ ...this.modelsItem, baseGoodsModelsId: item, unit: temp.unit, worehouseCount: num });
        }
      });
      }
      this.formData.transferGoods[index].models = arr;
    },
@@ -395,9 +406,9 @@
    countsChange(e, goodsIndex, index) {
      const curItem = this.formData.transferGoods[goodsIndex].models[index];
      const worehouseCount = curItem.worehouseCount;
      if(e==0) {
      if (e == 0) {
        this.$message.warning('数量不能为0');
        curItem.counts = null
        curItem.counts = null;
      }
      if (e > worehouseCount) {
        this.$message.warning('数量超过现有库存');
@@ -427,11 +438,6 @@
    },
    close() {
      this.formData = {
        warehouseId: '', // 调拨仓库id
        procureTime: '', // 调拨时间
        transferGoods: [],
      };
      this.$emit('close');
    },
  },