Blame view

ant-design-vue-jeecg/src/views/system/config/modules/ContainerEditForm.vue 3.93 KB
肖超群 authored
1
2
3
4
5
6
<template>
  <a-spin :spinning="confirmLoading">
    <j-form-container :disabled="formDisabled">
      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
        <a-row>
          <a-col :span="24">
肖超群 authored
7
            <a-form-model-item label="容器类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="containerTypeCode">
肖超群 authored
8
9
10
11
12
13
              <a-select
                show-search
                placeholder="请选择容器类型"
                option-filter-prop="children"
                :filter-option="filterOption"
                v-model="model.containerTypeCode">
肖超群 authored
14
15
16
17
                <a-select-option v-for="item in containerTypeList" :key="item.name" :value="item.code">{{
                    item.name
                  }}
                </a-select-option>
肖超群 authored
18
19
20
21
22
              </a-select>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="库位编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="locationCode">
肖超群 authored
23
              <a-input v-model="model.locationCode" placeholder="请输入库位编码"></a-input>
肖超群 authored
24
25
26
27
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="status">
肖超群 authored
28
              <j-dict-select-tag type="list" v-model="model.status" dictCode="container_status" placeholder="请选择状态"/>
肖超群 authored
29
30
31
32
33
34
35
36
37
38
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </j-form-container>
  </a-spin>
</template>

<script>
肖超群 authored
39
40
41
42
import {httpAction, getAction} from '@/api/manage'
import {validateDuplicateValue} from '@/utils/util'
import {getZoneList} from '@/api/api'
import {getContainerTypeList} from '@/api/api'
肖超群 authored
43
肖超群 authored
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
export default {
  name: 'ContainerEditForm',
  components: {},
  props: {
    //表单禁用
    disabled: {
      type: Boolean,
      default: false,
      required: false
    }
  },
  data() {
    return {
      model: {},
      labelCol: {
        xs: {span: 24},
        sm: {span: 5},
      },
      wrapperCol: {
        xs: {span: 24},
        sm: {span: 16},
      },
      confirmLoading: false,
      zoneList: [],
      containerTypeList: [],
      validatorRules: {
        containerTypeCode: [
          {required: true, message: '请选择容器类型!'},
        ],
      },
      url: {
        add: "/config/container/add",
        edit: "/config/container/edit",
        queryById: "/config/container/queryById"
肖超群 authored
78
      }
肖超群 authored
79
80
81
82
83
    }
  },
  computed: {
    formDisabled() {
      return this.disabled
肖超群 authored
84
    },
肖超群 authored
85
86
87
88
89
90
91
92
93
94
  },
  created() {
    //备份model原始值
    this.model.status = "empty";
    this.modelDefault = JSON.parse(JSON.stringify(this.model));
    this.loadFrom();
  },
  methods: {
    add() {
      this.edit(this.modelDefault);
肖超群 authored
95
    },
肖超群 authored
96
97
98
    edit(record) {
      this.model = Object.assign({}, record);
      this.visible = true;
肖超群 authored
99
    },
肖超群 authored
100
101
102
103
104
105
106
107
108
109
110
    loadFrom() {
      getZoneList().then((res) => {
        if (res.success) {
          this.zoneList = res.result
        }
      });
      getContainerTypeList().then((res) => {
        if (res.success) {
          this.containerTypeList = res.result
        }
      });
肖超群 authored
111
    },
肖超群 authored
112
113
114
115
116
117
118
119
120
121
122
123
124
125
    submitForm() {
      const that = this;
      // 触发表单验证
      this.$refs.form.validate(valid => {
        if (valid) {
          that.confirmLoading = true;
          let httpurl = '';
          let method = '';
          if (!this.model.id) {
            httpurl += this.url.add;
            method = 'post';
          } else {
            httpurl += this.url.edit;
            method = 'put';
肖超群 authored
126
          }
肖超群 authored
127
128
129
130
131
132
          httpAction(httpurl, this.model, method).then((res) => {
            if (res.success) {
              that.$message.success(res.message);
              that.$emit('ok');
            } else {
              that.$message.warning(res.message);
肖超群 authored
133
            }
肖超群 authored
134
135
136
137
          }).finally(() => {
            that.confirmLoading = false;
          })
        }
肖超群 authored
138
肖超群 authored
139
140
      })
    },
肖超群 authored
141
  }
肖超群 authored
142
}
肖超群 authored
143
</script>