Commit 0e1ce6141dfe39cbc37f6ef0aefb0b81d1e521f6
Merge branch 'develop' of http://www.huahengrobot.com:90/wms/wms4.git into develop
Showing
2 changed files
with
226 additions
and
1 deletions
ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue
... | ... | @@ -85,6 +85,7 @@ |
85 | 85 | <div class="table-operator"> |
86 | 86 | <a-button @click="createEmptyIn()" v-has="'taskHeader:emptyIn'" type="primary">空托入库</a-button> |
87 | 87 | <a-button @click="createManyEmptyIn()" v-has="'taskHeader:manyEmptyIn'" type="primary">空托组入库</a-button> |
88 | + <a-button @click="openDemo()" type="primary">弹出demo</a-button> | |
88 | 89 | </div> |
89 | 90 | |
90 | 91 | <!-- table区域-begin --> |
... | ... | @@ -175,6 +176,7 @@ |
175 | 176 | <taskHeader-modal ref="modalForm" @ok="modalFormOk"></taskHeader-modal> |
176 | 177 | <empty-in-task-modal ref="emptyInModal" @ok="modalFormOk"></empty-in-task-modal> |
177 | 178 | <many-empty-in-task-modal ref="manyEmptyInModal" @ok="modalFormOk"></many-empty-in-task-modal> |
179 | + <MaterialTaskModal ref="materialTaskModal"></MaterialTaskModal> | |
178 | 180 | </a-card> |
179 | 181 | </template> |
180 | 182 | |
... | ... | @@ -192,6 +194,7 @@ import {getZoneList, handleEmptyOut, handlePickupError, handleDoubleIn} from '@/ |
192 | 194 | import EmptyInTaskModal from './modules/EmptyInTaskModal' |
193 | 195 | import ManyEmptyInTaskModal from "./modules/ManyEmptyInTaskModal"; |
194 | 196 | import {filterObj} from "@/utils/util"; |
197 | +import MaterialTaskModal from "./modules/MaterialTaskModal"; | |
195 | 198 | |
196 | 199 | export default { |
197 | 200 | name: "TaskHeaderList", |
... | ... | @@ -200,7 +203,8 @@ export default { |
200 | 203 | ManyEmptyInTaskModal, |
201 | 204 | EmptyInTaskModal, |
202 | 205 | TaskDetailList, |
203 | - TaskHeaderModal | |
206 | + TaskHeaderModal, | |
207 | + MaterialTaskModal | |
204 | 208 | }, |
205 | 209 | data() { |
206 | 210 | return { |
... | ... | @@ -434,6 +438,9 @@ export default { |
434 | 438 | this.$refs.manyEmptyInModal.edit(); |
435 | 439 | this.$refs.manyEmptyInModal.title = "创建空托盘组入库"; |
436 | 440 | }, |
441 | + openDemo(){ | |
442 | + this.$refs.materialTaskModal.edit(); | |
443 | + }, | |
437 | 444 | solutionZoneCode(value) { |
438 | 445 | var actions = [] |
439 | 446 | Object.keys(this.zoneList).some((key) => { |
... | ... |
ant-design-vue-jeecg/src/views/system/task/modules/MaterialTaskModal.vue
0 → 100644
1 | +<template> | |
2 | + <a-modal | |
3 | + :title="title" | |
4 | + :width="1200" | |
5 | + :visible="visible" | |
6 | + :maskClosable="false" | |
7 | + :confirmLoading="confirmLoading" | |
8 | + @ok="handleOk" | |
9 | + @cancel="handleCancel"> | |
10 | + | |
11 | + <a-spin :spinning="confirmLoading"> | |
12 | + <a-form-model ref="form" :label-col="labelCol" :wrapper-col="wrapperCol" :model="model"> | |
13 | + <!-- 主表单区域 --> | |
14 | + <a-row class="form-row" :gutter="0"> | |
15 | + <a-col :lg="8"> | |
16 | + <a-form-model-item label="托盘号" :rules="[{ required: true, message: '请输入托盘号!' }]"> | |
17 | + <a-input placeholder="请输入托盘号" v-model="model.containerCode"/> | |
18 | + </a-form-model-item> | |
19 | + </a-col> | |
20 | + | |
21 | + <a-col :lg="8"> | |
22 | + <a-form-model-item label="库位号"> | |
23 | + <a-input placeholder="请输入库位号" v-model="model.toLocationCode"/> | |
24 | + </a-form-model-item> | |
25 | + </a-col> | |
26 | + </a-row> | |
27 | + | |
28 | + </a-form-model> | |
29 | + | |
30 | + <!-- 子表单区域 --> | |
31 | + <a-tabs v-model="activeKey"> | |
32 | + <a-tab-pane tab="物料信息" key="1" :forceRender="true"> | |
33 | + <j-editable-table | |
34 | + ref="editableTable1" | |
35 | + :loading="table1.loading" | |
36 | + :columns="table1.columns" | |
37 | + :dataSource="table1.dataSource" | |
38 | + :maxHeight="300" | |
39 | + :rowNumber="true" | |
40 | + :rowSelection="true" | |
41 | + :actionButton="true"/> | |
42 | + </a-tab-pane> | |
43 | + </a-tabs> | |
44 | + | |
45 | + </a-spin> | |
46 | + | |
47 | + | |
48 | + </a-modal> | |
49 | +</template> | |
50 | + | |
51 | +<script> | |
52 | + | |
53 | +import JEditableTable from '@/components/jeecg/JEditableTable' | |
54 | +import {FormTypes, VALIDATE_NO_PASSED, getRefPromise, validateFormModelAndTables} from '@/utils/JEditableTableUtil' | |
55 | +import {httpAction, getAction} from '@/api/manage' | |
56 | +import JDate from '@/components/jeecg/JDate' | |
57 | + | |
58 | +export default { | |
59 | + name: 'MaterialTaskModal', | |
60 | + components: { | |
61 | + JDate, JEditableTable | |
62 | + }, | |
63 | + data() { | |
64 | + return { | |
65 | + title: '操作', | |
66 | + visible: false, | |
67 | + confirmLoading: false, | |
68 | + model: {}, | |
69 | + labelCol: { | |
70 | + xs: {span: 24}, | |
71 | + sm: {span: 6} | |
72 | + }, | |
73 | + wrapperCol: { | |
74 | + xs: {span: 24}, | |
75 | + sm: {span: 24 - 6} | |
76 | + }, | |
77 | + activeKey: '1', | |
78 | + // 客户信息 | |
79 | + table1: { | |
80 | + loading: false, | |
81 | + dataSource: [], | |
82 | + columns: [ | |
83 | + { | |
84 | + title: '物料编码', | |
85 | + key: 'materiaCode', | |
86 | + width: '24%', | |
87 | + type: FormTypes.input, | |
88 | + defaultValue: '', | |
89 | + placeholder: '请输入${title}', | |
90 | + validateRules: [{required: true, message: '${title}不能为空'}] | |
91 | + }, | |
92 | + { | |
93 | + title: '数量', | |
94 | + key: 'qty', | |
95 | + type: FormTypes.inputNumber, | |
96 | + width: '80px', | |
97 | + } | |
98 | + ] | |
99 | + }, | |
100 | + url: { | |
101 | + add: '/test/jeecgOrderMain/add', | |
102 | + edit: '/test/jeecgOrderMain/edit', | |
103 | + orderCustomerList: '/test/jeecgOrderMain/queryOrderCustomerListByMainId', | |
104 | + orderTicketList: '/test/jeecgOrderMain/queryOrderTicketListByMainId' | |
105 | + } | |
106 | + } | |
107 | + }, | |
108 | + created() { | |
109 | + }, | |
110 | + methods: { | |
111 | + | |
112 | + // 获取所有的editableTable实例 | |
113 | + getAllTable() { | |
114 | + return Promise.all([ | |
115 | + getRefPromise(this, 'editableTable1') | |
116 | + ]) | |
117 | + }, | |
118 | + | |
119 | + add() { | |
120 | + // 默认新增一条数据 | |
121 | + this.getAllTable().then(editableTables => { | |
122 | + editableTables[0].add() | |
123 | + }) | |
124 | + | |
125 | + this.edit({}) | |
126 | + }, | |
127 | + edit(record) { | |
128 | + this.visible = true | |
129 | + this.activeKey = '1' | |
130 | + this.model = Object.assign({}, record) | |
131 | + // 加载子表数据 | |
132 | + if (this.model.id) { | |
133 | + let params = {id: this.model.id} | |
134 | + this.requestTableData(this.url.orderCustomerList, params, this.table1) | |
135 | + } | |
136 | + | |
137 | + }, | |
138 | + close() { | |
139 | + this.visible = false | |
140 | + this.getAllTable().then(editableTables => { | |
141 | + editableTables[0].initialize() | |
142 | + }) | |
143 | + this.$emit('close') | |
144 | + this.$refs.form.resetFields(); | |
145 | + }, | |
146 | + /** 查询某个tab的数据 */ | |
147 | + requestTableData(url, params, tab) { | |
148 | + tab.loading = true | |
149 | + getAction(url, params).then(res => { | |
150 | + tab.dataSource = res.result || [] | |
151 | + }).finally(() => { | |
152 | + tab.loading = false | |
153 | + }) | |
154 | + }, | |
155 | + handleOk() { | |
156 | + this.validateFields() | |
157 | + }, | |
158 | + handleCancel() { | |
159 | + this.close() | |
160 | + }, | |
161 | + | |
162 | + | |
163 | + /** 触发表单验证 */ | |
164 | + validateFields() { | |
165 | + this.getAllTable().then(tables => { | |
166 | + /** 一次性验证主表和所有的次表 */ | |
167 | + return validateFormModelAndTables(this.$refs.form, this.model, tables) | |
168 | + }).then(allValues => { | |
169 | + let formData = this.classifyIntoFormData(allValues) | |
170 | + console.log("输出数据:") | |
171 | + console.log(formData) | |
172 | + // 发起请求 | |
173 | + return this.requestAddOrEdit(formData) | |
174 | + }).catch(e => { | |
175 | + if (e.error === VALIDATE_NO_PASSED) { | |
176 | + // 如果有未通过表单验证的子表,就自动跳转到它所在的tab | |
177 | + this.activeKey = e.index == null ? this.activeKey : (e.index + 1).toString() | |
178 | + } else { | |
179 | + console.error(e) | |
180 | + } | |
181 | + }) | |
182 | + }, | |
183 | + /** 整理成formData */ | |
184 | + classifyIntoFormData(allValues) { | |
185 | + let orderMain = Object.assign(this.model, allValues.formValue) | |
186 | + return { | |
187 | + ...orderMain, // 展开 | |
188 | + jeecgOrderCustomerList: allValues.tablesValue[0].values, | |
189 | + } | |
190 | + }, | |
191 | + /** 发起新增或修改的请求 */ | |
192 | + requestAddOrEdit(formData) { | |
193 | + alert(JSON.stringify(formData)) | |
194 | + let url = this.url.add, method = 'post' | |
195 | + if (this.model.id) { | |
196 | + url = this.url.edit | |
197 | + method = 'put' | |
198 | + } | |
199 | + this.confirmLoading = true | |
200 | + httpAction(url, formData, method).then((res) => { | |
201 | + if (res.success) { | |
202 | + this.$message.success(res.message) | |
203 | + this.$emit('ok') | |
204 | + this.close() | |
205 | + } else { | |
206 | + this.$message.warning(res.message) | |
207 | + } | |
208 | + }).finally(() => { | |
209 | + this.confirmLoading = false | |
210 | + }) | |
211 | + } | |
212 | + | |
213 | + } | |
214 | +} | |
215 | +</script> | |
216 | + | |
217 | +<style scoped> | |
218 | +</style> | |
0 | 219 | \ No newline at end of file |
... | ... |