Commit 0e1ce6141dfe39cbc37f6ef0aefb0b81d1e521f6

Authored by 谭毅彬
2 parents 1f7c50d1 43fb7a4a

Merge branch 'develop' of http://www.huahengrobot.com:90/wms/wms4.git into develop

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 &#39;@/
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
... ...