src/views/tms/modules/WarehouseForm.vue
@@ -4,13 +4,13 @@
      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
        <a-row>
          <a-col :span="12">
            <a-form-model-item label="父节点编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="parentId">
              <a-input v-model="model.parentId" placeholder="请输入父节点编号"  ></a-input>
            <a-form-model-item label="父节点编号" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input :disabled="true" v-model="model.parentWarehouseId" placeholder="请输入父节点编号"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
            <a-form-model-item label="父节点名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="parentName">
              <a-input v-model="model.parentName" placeholder="请输入父节点名称"  ></a-input>
            <a-form-model-item label="父节点名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input :disabled="true" v-model="model.parentWarehouseName" placeholder="请输入父节点名称"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
@@ -25,15 +25,15 @@
          </a-col>
          <a-col :span="12">
            <a-form-model-item label="叶子节点标识" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leafFlag">
              <a-radio-group v-model="model.leafFlag" @change="onChange" placeholder="请选择是否叶子节点">
                <a-radio :value="2">有子节点</a-radio>
                <a-radio :value="1">是叶子节点</a-radio>
              <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>
            </a-form-model-item>
          </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,11 +66,12 @@
    },
    data () {
      return {
        leafDisableFlag: false,
        model:{
         },
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
          sm: { span: 8 },
        },
        wrapperCol: {
          xs: { span: 24 },
@@ -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,17 +118,37 @@
    computed: {
      formDisabled(){
        return this.disabled
      },
      }
    },
    created () {
       //备份model原始值
      this.modelDefault = JSON.parse(JSON.stringify(this.model));
    },
    methods: {
      add () {
      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;
      },
@@ -129,6 +163,7 @@
            if(!this.model.id){
              httpurl+=this.url.add;
              method = 'post';
              this.model.status = '1'
            }else{
              httpurl+=this.url.edit;
               method = 'put';
@@ -147,6 +182,13 @@
        })
      },
    },
    watch: {
      'model.id': function(newVal) {
        if (newVal) {
          this.updateLeafDisableFlag()
        }
      }
    }
  }
</script>