src/views/tms/modules/WarehouseForm.vue
@@ -25,7 +25,7 @@
          </a-col>
          <a-col :span="12">
            <a-form-model-item label="叶子节点标识" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leafFlag">
              <a-radio-group v-model="model.leafFlag" placeholder="请选择是否叶子节点">
              <a-radio-group :disabled="leafDisableFlag" v-model="model.leafFlag" placeholder="请选择是否叶子节点">
                <a-radio :value="'2'">有子节点</a-radio>
                <a-radio :value="'1'">是叶子节点</a-radio>
              </a-radio-group>
@@ -33,7 +33,7 @@
          </a-col>
          <a-col :span="12">
            <a-form-model-item label="展示序号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="seq">
              <a-input type="number" v-model="model.seq" placeholder="请输入展示序号"  ></a-input>
              <a-input type="number" min="0" v-model="model.seq" placeholder="请输入展示序号"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
@@ -66,6 +66,7 @@
    },
    data () {
      return {
        leafDisableFlag: false,
        model:{
         },
        labelCol: {
@@ -80,6 +81,7 @@
        validatorRules: {
           warehouseId: [
              { required: true, message: '请输入仓库编号!'},
              { validator: (rule, value, callback) => validateDuplicateValue('tms_warehouse', 'warehouse_id', value, this.model.id, callback)}
           ],
           warehouseName: [
              { required: true, message: '请输入仓库名称!'},
@@ -91,10 +93,22 @@
              { required: true, message: '请输入是否叶子节点!'},
           ],
            seq: [
              { min: 0, message: '展示序号不能小于0!'},
              { validator: (rule, value, callback) => {
                  if (!value && value !== 0) {
                    return;
                  }
                  const num = Number(value);
                  if (isNaN(num) || num < 0) {
                    callback(new Error('展示序号不能小于0'));
                  } else {
                    callback();
                  }
                }
              }
           ],
        },
        url: {
          list: "/tms/warehouse/list",
          add: "/tms/warehouse/add",
          edit: "/tms/warehouse/edit",
          queryById: "/tms/warehouse/queryById"
@@ -104,20 +118,37 @@
    computed: {
      formDisabled(){
        return this.disabled
      },
      }
    },
    created () {
       //备份model原始值
      this.modelDefault = JSON.parse(JSON.stringify(this.model));
    },
    methods: {
      add (treeSelected) {
      async updateLeafDisableFlag() {
        const parentId = this.model.id;
        try {
          const res = await getAction(this.url.list, { parentId: parentId });
          if (res.success) {
            this.leafDisableFlag = res.result.total > 0;
          }
        } catch (e) {
          console.error(e);
        }
      },
      add (treeSelected, nextSeq) {
        this.modelDefault.parentId = treeSelected.key
        this.modelDefault.parentWarehouseId = treeSelected.entity.warehouseId
        this.modelDefault.parentWarehouseName = treeSelected.entity.warehouseName
        this.modelDefault.seq = String(nextSeq >= 0 ? nextSeq : 0)
        this.modelDefault.leafFlag = '2'
        this.edit(this.modelDefault);
      },
      edit (record) {
        if (record.parentId === '-1') {
          record.parentWarehouseId = '-1'
          record.parentWarehouseName = '航宇救生'
        }
        this.model = Object.assign({}, record);
        this.visible = true;
      },
@@ -137,7 +168,6 @@
              httpurl+=this.url.edit;
               method = 'put';
            }
            console.log(this.model)
            httpAction(httpurl,this.model,method).then((res)=>{
              if(res.success){
                that.$message.success(res.message);
@@ -152,6 +182,13 @@
        })
      },
    },
    watch: {
      'model.id': function(newVal) {
        if (newVal) {
          this.updateLeafDisableFlag()
        }
      }
    }
  }
</script>