FirstMachineCallEmpty.vue
4.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
:confirmLoading="confirmLoading"
switchFullscreen
@ok="handleOk"
@cancel="handleCancel"
cancelText="关闭">
<a-spin :spinning="confirmLoading">
<a-form-model ref="form" :model="model" :rules="validatorRules">
<a-row>
<a-col :span="24">
<a-form-model-item label="机台" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="toMachineCode">
<!-- 机台下拉选择框 -->
<a-select
v-model="model.toMachineCode"
placeholder="请选择机台"
style="width:100%"
allowClear>
<a-select-option
v-for="machineCode in machineList"
:key="machineCode"
:value="machineCode">
{{ machineCode }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qty">
<a-input v-model="model.qty" placeholder="请输入数量"></a-input>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</a-spin>
</j-modal>
</template>
<script>
import {httpAction} from '@/api/manage'
import {validateDuplicateValue} from '@/utils/util'
import {
batchCreateEmptyOut,
createEmptyOut,
getCompanyList, getCustomerList,
getShipmentTypeList,
ironCoreCallEmptyOut,
getZoneList,
selectEmptyOutPort
} from '@/api/api'
import {selectOutPort} from '@/api/api'
import JSelectMultiEmptyContainer from "@comp/jeecgbiz/JSelectMultiEmptyContainer";
export default {
name: "FirstMachineCallEmpty",
components: {JSelectMultiEmptyContainer},
data() {
return {
title: "操作",
width: 500,
portList: [],
zoneList: [],
machineList: [],
querySource: {},
visible: false,
model: {},
labelCol: {
xs: {span: 24},
sm: {span: 5},
},
wrapperCol: {
xs: {span: 24},
sm: {span: 16},
},
confirmLoading: false,
validatorRules: {
toMachineCode: [
{required: true, message: '请选择机台!', trigger: 'change'}
],
qty: [
{required: true, message: '请输入数量!', trigger: 'blur'},
]
},
url: {
add: "/task/taskHeader/createEmptyOut",
}
}
},
created() {
//备份model原始值
this.modelDefault = JSON.parse(JSON.stringify(this.model));
this.loadFrom();
},
methods: {
add() {
this.edit(this.modelDefault);
},
edit() {
const that = this;
// 打开弹窗前,先调用【查询铁芯缓存区机台】接口
this.getCacheMachineList().then(() => {
// 接口调用成功后,再赋值并打开弹窗
that.visible = true;
}).catch(() => {
// 接口失败也不影响,弹窗正常打开,只是下拉无数据
that.visible = true;
})
},
loadFrom() {
getZoneList().then((res) => {
if (res.success) {
this.zoneList = res.result
}
});
},
getCacheMachineList() {
return new Promise((resolve, reject) => {
// 调用后端D1库区机台接口
httpAction("/config/location/getCacheMachineList", {}, "get").then((res) => {
if (res.success) {
console.log("获取机台列表成功:", res.result);
this.machineList = res.result; // 赋值机台列表
} else {
this.$message.warning("获取机台列表失败:"+res.message);
}
resolve();
}).catch((err) => {
this.$message.error("获取机台列表异常,请重试!");
reject(err);
})
})
},
close() {
this.$emit('close');
this.visible = false;
if (this.$refs.form) {
this.$refs.form.clearValidate();
}
this.model = {}; // 清空表单数据
},
handleOk() {
const that = this;
// 触发表单验证
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
ironCoreCallEmptyOut(this.model).then((res) => {
if (res.success) {
that.$message.success(res.message);
that.$emit('ok');
} else {
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
that.close();
})
} else {
return false
}
})
},
handleCancel() {
this.close()
},
}
}
</script>