admin-web/src/views/stock/procure/purchaseOrder/edit.vue
@@ -5,7 +5,7 @@
        <el-row :gutter="24" class="headerHeight">
          <el-col :span="12">
            <el-form-item label="入库仓库" prop="warehouseId">
              <el-select v-model="formData.warehouseId" placeholder="请选择" style="width: 100%">
              <el-select v-model="formData.warehouseId" placeholder="请选择" clearable style="width: 100%">
                <el-option v-for="item in warehouses" :key="item.id" :label="item.warehouseName" :value="item.id"/>
              </el-select>
            </el-form-item>
@@ -15,6 +15,7 @@
              <el-date-picker
                  v-model="formData.procureTime"
                  type="datetime"
                  clearable
                  value="yyyy-MM-dd HH:mm:ss"
                  value-format="yyyyMMddHHmmss"
                  placeholder="请选择日期"
@@ -45,17 +46,20 @@
            <el-col :span="12">
              <el-form-item
                  label="物品分类"
                  :prop="`procureGoods[${goodsIndex}].baseCategoryIds`"
                  :prop="`procureGoods.${goodsIndex}.baseCategoryId`"
                  :rules="{
                  required: true,
                  message: '请选择',
                  message: '请选择物品分类',
                  trigger: 'change',
                }"
              >
                <el-cascader
                    v-model="goodsItem.baseCategoryIds"
                    v-model="goodsItem.baseCategoryId"
                    :options="categoryOptions"
                    :props="{ value: 'id' }"
                    :props="{ value: 'id',emitPath: false }"
                    :show-all-levels="false"
                    filterable
                    clearable
                    @change="categoryChange($event, goodsIndex)"
                    style="width: 100%"
                ></el-cascader>
@@ -64,13 +68,14 @@
            <el-col :span="12">
              <el-form-item
                  label="物品名称"
                  :prop="`procureGoods[${goodsIndex}].baseGoodsTemplateId`"
                  :prop="`procureGoods.${goodsIndex}.baseGoodsTemplateId`"
                  :rules="rules.baseGoodsTemplateId"
              >
                <el-select
                    v-model="goodsItem.baseGoodsTemplateId"
                    placeholder="请先择物品分类"
                    :placeholder="goodsItem.baseCategoryId?'请选择物品':'请先选择物品分类'"
                    filterable
                    clearable
                    :disabled="!goodsItem.baseCategoryId"
                    style="width: 100%"
                    @change="goodsTemplateChange($event, goodsIndex)"
@@ -89,20 +94,22 @@
            <el-col :span="12">
              <el-form-item
                  label="规格型号"
                  :prop="`procureGoods[${goodsIndex}].modelsIds`"
                  :prop="`procureGoods.${goodsIndex}.modelsIds`"
                  :rules="{
                  required: true,
                  message: '请选择',
                  message: '请选择规格型号',
                  trigger: 'change',
                }"
              >
                <el-select
                    v-model="goodsItem.modelsIds"
                    multiple
                    placeholder="请先择物品名称"
                    clearable
                    :placeholder="goodsItem.baseCategoryId?'请选择规格型号':'请先选择物品名称'"
                    :disabled="!goodsItem.baseCategoryId"
                    @change="modelChange($event, goodsIndex)"
                    @remove-tag="modelRemoveTag($event, goodsIndex)"
                    @clear="modelRemoveTag(-1, goodsIndex)"
                    style="width: 100%"
                >
                  <el-option
@@ -305,7 +312,7 @@
        procureDoc: [{required: true, message: '请上传', trigger: 'change'}],
        baseCategoryIds: [{required: true, message: '请选择', trigger: 'change'}],
        baseGoodsTemplateId: [{validator: checkGoodsTemplateId, trigger: ['blur', 'change']}],
        baseGoodsTemplateId: [{required: true, message: '请选择', trigger: 'change'},{validator: checkGoodsTemplateId, trigger: ['blur', 'change']}],
        modelsIds: [{required: true, message: '请选择', trigger: 'change'}],
        priceYuan: [{validator: checkPrice, trigger: 'blur'}],
        counts: [{validator: checkCounts, trigger: 'blur'}],
@@ -332,6 +339,8 @@
  methods: {
    async init() {
      await this.getWarehouseList();
      await this.getgoodsTemplate();
      await this.getgoodsModel();
      // 获取物品分类列表
      const treeRes = await getTree();
@@ -359,9 +368,6 @@
          });
          return item;
        });
      } else {
        await this.getgoodsTemplate();
        await this.getgoodsModel();
      }
      this.loading = false;
    },
@@ -397,7 +403,7 @@
    // 获取物品名称列表
    async getgoodsTemplate(id, index) {
      await goodsTemplate({categoryId: id || ''}).then((res) => {
      await goodsTemplate({agencyId: this.userInfo.tenantId, categoryId: id || ''}).then((res) => {
        if (index || index == 0) {
          this.$set(this.formData.procureGoods[index], 'goodsOptions', res);
        } else {
@@ -444,9 +450,8 @@
      this.formData.procureGoods[index].modelsIds = [];
      this.formData.procureGoods[index].models = [];
      this.formData.procureGoods[index].baseCategoryId = e[e.length - 1];
      // 根据选中分类请求物品名称列表
      this.getgoodsTemplate(e[e.length - 1], index);
      this.getgoodsTemplate(e, index);
    },
    // 物品名称列表
@@ -475,6 +480,10 @@
    // 规格型号移除
    modelRemoveTag(e, index) {
      if(e===-1){
        this.formData.procureGoods[index].models = []
        return
      }
      let arr = this.formData.procureGoods[index].models;
      let delIndex = arr.findIndex((v) => v.baseGoodsModelsId == e);
      this.formData.procureGoods[index].models.splice(delIndex, 1);