Blame view

ant-design-vue-jeecg/src/views/system/config/modules/LocationBatchAddForm.vue 8.4 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
8
            <a-form-model-item :label="$t('config.encodingPrefix')" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="prefix">
              <a-input v-model="model.prefix" :placeholder="$t('config.inputEncodingPrefix')"></a-input>
肖超群 authored
9
10
11
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
肖超群 authored
12
13
            <a-form-model-item :label="$t('config.startRow')" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="firstRow">
              <a-input v-model="model.firstRow" :placeholder="$t('config.inputStartRow')"></a-input>
肖超群 authored
14
15
16
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
唐高鑫 authored
17
18
            <a-form-model-item :label="$t('config.lastRow')" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="lastRow">
              <a-input v-model="model.lastRow" :placeholder="$t('config.inputLastRow')"></a-input>
肖超群 authored
19
20
21
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
唐高鑫 authored
22
23
            <a-form-model-item :label="$t('config.startColumn')" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="firstColumn">
              <a-input v-model="model.firstColumn" :placeholder="$t('config.inputStartColumn')"></a-input>
肖超群 authored
24
25
26
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
唐高鑫 authored
27
28
            <a-form-model-item :label="$t('config.lastColumn')" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="lastColumn">
              <a-input v-model="model.lastColumn" :placeholder="$t('config.inputLastColumn')"></a-input>
肖超群 authored
29
30
31
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
唐高鑫 authored
32
33
            <a-form-model-item :label="$t('config.startLayer')" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="firstLayer">
              <a-input v-model="model.firstLayer" :placeholder="$t('config.inputStartLayer')"></a-input>
肖超群 authored
34
35
36
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
唐高鑫 authored
37
38
            <a-form-model-item :label="$t('config.lastLayer')" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="lastLayer">
              <a-input v-model="model.lastLayer" :placeholder="$t('config.inputLastLayer')"></a-input>
肖超群 authored
39
40
41
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
唐高鑫 authored
42
            <a-form-model-item :label="$t('config.roadway')" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="roadWay">
pengyongcheng authored
43
              <a-input v-model="model.roadWay" :placeholder="$t('config.inputRoadway')"></a-input>
肖超群 authored
44
45
46
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
唐高鑫 authored
47
            <a-form-model-item :label="$t('config.highLow')" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="high">
pengyongcheng authored
48
              <j-dict-select-tag type="list" v-model="model.high" dictCode="high_status" :placeholder="$t('config.selectHighLow')"/>
肖超群 authored
49
50
51
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
唐高鑫 authored
52
            <a-form-model-item :label="$t('config.zoneCode')" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="zoneCode">
肖超群 authored
53
54
              <a-select
                show-search
唐高鑫 authored
55
                :placeholder="$t('config.selectZone')"
肖超群 authored
56
                option-filter-prop="children"
唐高鑫 authored
57
肖超群 authored
58
                v-model="model.zoneCode">
肖超群 authored
59
60
61
62
                <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">{{
                    item.name
                  }}
                </a-select-option>
肖超群 authored
63
64
65
66
              </a-select>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
唐高鑫 authored
67
            <a-form-model-item :label="$t('config.locationType')" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="locationTypeCode">
肖超群 authored
68
69
              <a-select
                show-search
唐高鑫 authored
70
                :placeholder="$t('config.selectLocationType')"
肖超群 authored
71
                option-filter-prop="children"
唐高鑫 authored
72
肖超群 authored
73
                v-model="model.locationTypeCode">
肖超群 authored
74
75
76
77
                <a-select-option v-for="item in locationTypeList" :key="item.name" :value="item.code">{{
                    item.name
                  }}
                </a-select-option>
肖超群 authored
78
79
80
              </a-select>
            </a-form-model-item>
          </a-col>
肖超群 authored
81
82
83
84
85
86
87
88
89
90
          <!--          <a-col :span="24">-->
          <!--            <a-form-model-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="status">-->
          <!--              <j-dict-select-tag type="list" v-model="model.status" dictCode="location_status" placeholder="请选择状态" />-->
          <!--            </a-form-model-item>-->
          <!--          </a-col>-->
          <!--          <a-col :span="24">-->
          <!--            <a-form-model-item label="是否可用" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="enable">-->
          <!--              <j-dict-select-tag type="list" v-model="model.enable" dictCode="enable_status" placeholder="请选择是否可用" />-->
          <!--            </a-form-model-item>-->
          <!--          </a-col>-->
肖超群 authored
91
92
93
94
95
96
97
98
        </a-row>
      </a-form-model>
    </j-form-container>
  </a-spin>
</template>

<script>
肖超群 authored
99
100
101
102
import {httpAction, getAction} from '@/api/manage'
import {validateDuplicateValue} from '@/utils/util'
import {getZoneList} from '@/api/api'
import {getLocationTypeList} from '@/api/api'
103
import { translateResultMessage } from '@/api/api'
肖超群 authored
104
肖超群 authored
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
export default {
  name: 'LocationBatchAddForm',
  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: [],
      locationTypeList: [],
      validatorRules: {
        prefix: [
唐高鑫 authored
132
          {required: true, message: this.$t('config.inputEncodingPrefix')},
肖超群 authored
133
134
        ],
        firstRow: [
唐高鑫 authored
135
          {required: true, message: this.$t('config.inputStartLine')},
肖超群 authored
136
137
        ],
        lastRow: [
唐高鑫 authored
138
          {required: true, message: this.$t('config.inputLastRow')},
肖超群 authored
139
140
        ],
        firstColumn: [
唐高鑫 authored
141
          {required: true, message: this.$t('config.inputStartColumn')},
肖超群 authored
142
143
        ],
        lastColumn: [
唐高鑫 authored
144
          {required: true, message: this.$t('config.inputLastColumn')},
肖超群 authored
145
146
        ],
        firstLayer: [
唐高鑫 authored
147
          {required: true, message: this.$t('config.inputStartLayer')},
肖超群 authored
148
149
        ],
        lastLayer: [
唐高鑫 authored
150
          {required: true, message: this.$t('config.inputLastLayer')},
肖超群 authored
151
152
        ],
        roadWay: [
pengyongcheng authored
153
          {required: true, message: this.$t('config.inputRoadway')},
肖超群 authored
154
155
        ],
        zoneCode: [
唐高鑫 authored
156
          {required: true, message: this.$t('config.inputZoneCode')},
肖超群 authored
157
158
        ],
        locationTypeCode: [
唐高鑫 authored
159
          {required: true, message: this.$t('config.inputLocationType')},
肖超群 authored
160
161
        ],
        high: [
pengyongcheng authored
162
          {required: true, message: this.$t('config.selectHighLow')},
肖超群 authored
163
164
165
166
167
168
        ],
      },
      url: {
        add: "/config/location/batchAdd",
        edit: "/config/location/edit",
        queryById: "/config/location/queryById"
肖超群 authored
169
      }
肖超群 authored
170
171
172
173
174
    }
  },
  computed: {
    formDisabled() {
      return this.disabled
肖超群 authored
175
    },
肖超群 authored
176
177
178
179
180
181
182
183
184
  },
  created() {
    //备份model原始值
    this.modelDefault = JSON.parse(JSON.stringify(this.model));
    this.loadFrom();
  },
  methods: {
    add() {
      this.edit(this.modelDefault);
肖超群 authored
185
    },
肖超群 authored
186
187
188
    edit(record) {
      this.model = Object.assign({}, record);
      this.visible = true;
肖超群 authored
189
    },
肖超群 authored
190
191
192
193
194
195
196
197
198
199
200
    loadFrom() {
      getZoneList().then((res) => {
        if (res.success) {
          this.zoneList = res.result
        }
      });
      getLocationTypeList().then((res) => {
        if (res.success) {
          this.locationTypeList = res.result
        }
      })
肖超群 authored
201
    },
肖超群 authored
202
203
204
205
206
207
208
209
210
211
212
213
    submitForm() {
      const that = this;
      // 触发表单验证
      this.$refs.form.validate(valid => {
        if (valid) {
          that.confirmLoading = true;
          let httpurl = '';
          let method = '';
          httpurl += this.url.add;
          method = 'post';
          httpAction(httpurl, this.model, method).then((res) => {
            if (res.success) {
214
              that.$message.success(translateResultMessage(res, res.message))
肖超群 authored
215
216
              that.$emit('ok');
            } else {
217
              that.$message.warning(translateResultMessage(res, res.message))
肖超群 authored
218
219
220
221
222
            }
          }).finally(() => {
            that.confirmLoading = false;
          })
        }
肖超群 authored
223
肖超群 authored
224
225
      })
    },
肖超群 authored
226
  }
肖超群 authored
227
}
肖超群 authored
228
</script>