This commit is contained in:
xielue 2023-09-02 15:46:05 +08:00
parent f959e8483d
commit 05787a594d
4 changed files with 285 additions and 196 deletions

View File

@ -75,7 +75,6 @@ export default {
uploadDefaultImg: null,
detailDataFieldName: "mold_component",
actions: {
get: `${BASE_URL.BASE_URL}/MoldComponent/v1/mold/component/detail`,
create: `${BASE_URL.BASE_URL}/MoldComponent/v1/mold/component/create`,
@ -85,13 +84,17 @@ export default {
keyName: 'id',
//
isEdit: false,
defaultFormData: {
code: '',
name: '',
},
//
formOptions: {
data: {
material_id: 0,
warehouse_id: 0,
version: '',
is_default: 0
code: '',
name: '',
},
//
titleWidth: 100,
@ -277,6 +280,7 @@ export default {
ok() {
let _this = this;
let save = () => {
@ -293,12 +297,12 @@ export default {
list: this.detailsData,
deletedList: this.deletedDetailsData,
fieldName: 'component_id',
dataRule:[
{field:'id',type:'bigint'} ,
{field:'sort',type:'integer'},
{field:'update_uid',type:'bigint'} ,
{field:'mes_processes_id',type:'bigint'} ,
{field:'create_uid',type:'bigint'}
dataRule: [
{ field: 'id', type: 'bigint' },
{ field: 'sort', type: 'integer' },
{ field: 'update_uid', type: 'bigint' },
{ field: 'mes_processes_id', type: 'bigint' },
{ field: 'create_uid', type: 'bigint' }
]
});
@ -306,7 +310,6 @@ export default {
this.$mk.formatFormData({ data: postdata, rules: this.formOptions.items });
//
this.$mk.post({
url: action,
@ -319,7 +322,18 @@ export default {
this.$mk.success("保存成功");
if (!this.isEdit) { //
this.back();
this.$confirm({
title: '提示',
content: '新增成功,是否继续',
okText: '确认',
cancelText: '返回',
onOk() {
_this.formOptions.data = _this.defaultFormData || {};
},
onCancel() {
_this.back();
},
});
}
} else {

View File

@ -4,21 +4,14 @@
<div class="voucher-toolbar">
<div class="voucher-toolbar-left">
<a-dropdown >
<a-menu slot="overlay" @click="handleMenuClick">
<a-menu-item key="order">
订单
</a-menu-item>
</a-menu>
<a-button> 选单
<a-icon type="down" />
</a-button>
</a-dropdown>
<a-button type="primary" @click="ok" >保存</a-button>
<a-button @click="pageSelectOrder">选择订单</a-button>
<a-button type="primary" @click="ok">保存</a-button>
<a-button @click="print">打印</a-button>
<a-button @click="back" >关闭</a-button>
<a-button @click="back">关闭</a-button>
</div>
</div>
@ -28,70 +21,6 @@
</vxe-form>
<a-tabs>
<a-tab-pane key="1" tab="工艺布产组件">
<vxe-table border show-overflow keep-source ref="xTable" :height="table1Height" :data="detailsData"
@pulldownSelected="onPulldownSelected" @popupSelected="onPopupSelected" :export-config="{}"
@edit-closed="afterEditEvent" @edit-actived="beforeEditEvent"
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: beforeEditMethod }">
<vxe-column width="60">
<template #default="{ row }">
<div class="oplinks2">
<a @click.stop="pageAdd(row)" title="新增">
<a-icon class="icon" type="plus-circle" />
</a>
<a @click.stop="pageDelete(row)" title="删除">
<a-icon class="icon" type="delete" />
</a>
</div>
</template>
</vxe-column>
<vxe-column field="component_detail" title="部件" width="160" :params="editor_component" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="component_num" title="部件数量" width="160"
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
<vxe-column field="production_type" title="布产类型" width="160" :params="{data:options_production_type}"
formatter='formatEnum'
:edit-render="{ name: '$select', props: { options: options_production_type } }"></vxe-column>
<vxe-column field="process_detail" title="加工人员" width="160" :params="editor_d1_process" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="prepare_process_time" title="预备加工日期" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="plan_complete_time" title="计划完成日期" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="is_send" title="是否发料" width="160" :params="{data:options_is_send}" formatter='formatEnum'
:edit-render="{ name: '$select', props: { options: options_is_send } }"></vxe-column>
<vxe-column field="send_time" title="发料时间" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="send_detail" title="发料人员" width="160" :params="editor_d1_send" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="is_complete" title="是否完成" width="160" :params="{data:options_is_complete}" formatter='formatEnum'
:edit-render="{ name: '$select', props: { options: options_is_complete } }"></vxe-column>
<vxe-column field="complete_time" title="实际完成时间" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="send_type" title="发料人员类型" width="160" :params="{data:options_user_type}" formatter='formatEnum'
:edit-render="{ name: '$select', props: { options: options_user_type } }"></vxe-column>
<vxe-column field="complete_type" title="完工人员类型" width="160" :params="{data:options_user_type}" formatter='formatEnum'
:edit-render="{ name: '$select', props: { options: options_user_type } }"></vxe-column>
<vxe-column field="remark" title="备注" width="160" :edit-render="{ name: '$input', props: {} }"></vxe-column>
</vxe-table>
</a-tab-pane>
<a-tab-pane key="2" tab="工序设置">
@ -117,8 +46,8 @@
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="process_uid_detail" title="加工人员" width="160" :params="editor_process_uid" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="process_uid_detail" title="加工人员" width="160" :params="editor_process_uid"
formatter="formatRef" :edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="prepare_process_time" title="预备加工日期" width="160" formatter="formatDate"
@ -127,27 +56,93 @@
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="is_send" title="是否发料" width="160" :params="{data:options_is_send}"
<vxe-column field="is_send" title="是否发料" width="160" :params="{ data: options_is_send }"
formatter='formatEnum'></vxe-column>
<vxe-column field="send_time" title="发料时间" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="send_time" title="发料时间" width="160" formatter="formatDate"></vxe-column>
<vxe-column field="is_complete" title="是否完成" width="160" :params="{data:options_is_complete}"
<vxe-column field="is_complete" title="是否完成" width="160" :params="{ data: options_is_complete }"
formatter='formatEnum'></vxe-column>
<vxe-column field="complete_time" title="实际完成时间" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="complete_time" title="实际完成时间" width="160" formatter="formatDate"></vxe-column>
<vxe-column field="send_type" title="发料人员类型" width="160" :params="{data:options_user_type}"
<vxe-column field="send_type" title="发料人员类型" width="160" :params="{ data: options_user_type }"
formatter='formatEnum'></vxe-column>
<vxe-column field="complete_type" title="完工人员类型" width="160" :params="{data:options_user_type}"
<vxe-column field="complete_type" title="完工人员类型" width="160" :params="{ data: options_user_type }"
formatter='formatEnum'></vxe-column>
<vxe-column field="remark" title="备注" width="160" :edit-render="{ name: '$input', props: {} }"></vxe-column>
</vxe-table>
</a-tab-pane>
<a-tab-pane key="1" tab="工艺布产组件">
<vxe-table border show-overflow keep-source ref="xTable" :height="table1Height" :data="detailsData"
@pulldownSelected="onPulldownSelected" @popupSelected="onPopupSelected" :export-config="{}"
@edit-closed="afterEditEvent" @edit-actived="beforeEditEvent"
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: beforeEditMethod }">
<vxe-column width="60">
<template #default="{ row }">
<div class="oplinks2">
<a @click.stop="pageAdd(row)" title="新增">
<a-icon class="icon" type="plus-circle" />
</a>
<a @click.stop="pageDelete(row)" title="删除">
<a-icon class="icon" type="delete" />
</a>
</div>
</template>
</vxe-column>
<vxe-column field="component_detail" title="部件" width="160" :params="editor_component" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="component_num" title="部件数量" width="160"
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
<vxe-column field="production_type" title="布产类型" width="160" :params="{ data: options_production_type }"
formatter='formatEnum'
:edit-render="{ name: '$select', props: { options: options_production_type } }"></vxe-column>
<vxe-column field="process_detail" title="加工人员" width="160" :params="editor_d1_process" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="prepare_process_time" title="预备加工日期" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="plan_complete_time" title="计划完成日期" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="is_send" title="是否发料" width="160" :params="{ data: options_is_send }" formatter='formatEnum'
:edit-render="{ name: '$select', props: { options: options_is_send } }"></vxe-column>
<vxe-column field="send_time" title="发料时间" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="send_detail" title="发料人员" width="160" :params="editor_d1_send" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="is_complete" title="是否完成" width="160" :params="{ data: options_is_complete }"
formatter='formatEnum'
:edit-render="{ name: '$select', props: { options: options_is_complete } }"></vxe-column>
<vxe-column field="complete_time" title="实际完成时间" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="send_type" title="发料人员类型" width="160" :params="{ data: options_user_type }"
formatter='formatEnum' :edit-render="{ name: '$select', props: { options: options_user_type } }"></vxe-column>
<vxe-column field="complete_type" title="完工人员类型" width="160" :params="{ data: options_user_type }"
formatter='formatEnum' :edit-render="{ name: '$select', props: { options: options_user_type } }"></vxe-column>
<vxe-column field="remark" title="备注" width="160" :edit-render="{ name: '$input', props: {} }"></vxe-column>
</vxe-table>
</a-tab-pane>
</a-tabs>
@ -156,10 +151,6 @@
</div>
<div class="footerbar">
<a-button type="primary" @click="ok">确定</a-button>
<a-button @click="cancel">取消</a-button>
</div>
</div>
</template>
@ -167,6 +158,9 @@
<script>
import BASE_URL from '@/services/mes/api.js';
import XEUtils from 'xe-utils' // xe-utils
const settings = require('../basic/settings.js');
export default {
name: '',
@ -253,7 +247,7 @@ export default {
}
}
}
},{
}, {
title: '模具', span: 8,
field: 'mold_detail',
itemRender: {
@ -274,11 +268,9 @@ export default {
{ field: 'draw_start_time', dataRule: { type: 'timestamp' }, title: '预计开始画图时间', span: 8, itemRender: { name: '$input', props: { type: 'date' } } },
{ field: 'split_design_time', dataRule: { type: 'timestamp' }, title: '分模设计时间预计', span: 8, itemRender: { name: '$input', props: { type: 'date' } } },
{ field: 'draw_time', dataRule: { type: 'timestamp' }, title: '出图时间预计', span: 8, itemRender: { name: '$input', props: { type: 'date' } } },
{ field: 'split_design_time', dataRule: { type: 'timestamp' }, title: '分模设计时间预计', span: 8, itemRender: { name: '$input', props: { type: 'date' } } },
{ field: 'draw_time', dataRule: { type: 'timestamp' }, title: '出图时间预计', span: 8, itemRender: { name: '$input', props: { type: 'date' } } },
{ field: 'draw2D_time', dataRule: { type: 'timestamp' }, title: '出2D时间预计', span: 8, itemRender: { name: '$input', props: { type: 'date' } } },
{ field: 'draw3D_time', dataRule: { type: 'timestamp' }, title: '出3D时间预计', span: 8, itemRender: { name: '$input', props: { type: 'date' } } },
{ field: 'horizontal_frame_time', dataRule: { type: 'timestamp' }, title: '出2D时间预计', span: 8, itemRender: { name: '$input', props: { type: 'date' } } },
{ field: 'inlay_deep_hole_time', dataRule: { type: 'timestamp' }, title: '镶件深孔钻到厂日期预计', span: 8, itemRender: { name: '$input', props: { type: 'date' } } },
{ field: 'problem', title: '出现问题及建议反馈', span: 24, itemRender: { name: '$input', props: {} } },
@ -429,10 +421,13 @@ export default {
getDateValue(v) {
return new Date(v * 1000);
},
getDateValueString(v) {
if(!v) return '';
return XEUtils.toDateString(new Date(v * 1000), 'yyyy-MM-dd');
},
handleMenuClick(e) {
pageSelectOrder() {
let { width, height } = this.$mk.getWindowSize();
if (e.key == 'order') {
this.$mk.dialog.open({
page: () => import("../MoldOrder/selector"),
title: "选择订单",
@ -483,12 +478,14 @@ export default {
this.$forceUpdate()
}
})
}
},
heightInit() {
this.$nextTick(() => {
let h = this.$mk.getWindowSize().height - this.$mk.getOffsetTop(this.$refs.xTable.$el) - 500;
if (h < 400) {
h = 400;
}
this.table1Height = h;
});
@ -711,6 +708,56 @@ export default {
},
print() { //
let hiprint = this.$hiPrint; //
let tdata = JSON.parse(JSON.stringify(this.formOptions.data)); //
if (tdata.mold_order) {
tdata.order_code = tdata.mold_order.name || '';
}
if (tdata.mold_detail) {
tdata.mold_name = tdata.mold_detail.name || '';
}
for(let name in tdata){
if(name.indexOf('_time') != -1 && tdata[name] && tdata[name].indexOf('T') != -1){
tdata[name] = tdata[name].split('T')[0];
}
}
tdata.qrcode = tdata.qr_code;
tdata.details = JSON.parse(JSON.stringify(this.detailsData2));
tdata.details.forEach(item => {
if (item.component_detail && item.component_detail.name) {
item.component_detail_name = item.component_detail.name;
}
if (item.process_detail && item.process_detail.name) {
item.process_detail_name = item.process_detail.name;
}
if (item.process_uid_detail && item.process_uid_detail.name) {
item.process_u_name = item.process_uid_detail.name;
}
item.prepare_process_time = this.getDateValueString(item.prepare_process_time);
item.plan_complete_time = this.getDateValueString(item.plan_complete_time);
item.send_time = this.getDateValueString(item.send_time);
item.complete_time = this.getDateValueString(item.complete_time);
})
tdata.details = tdata.details.filter(a=>a.component_detail_name && a.process_detail_name);
console.log(tdata);
hiprint.init(); //
var hiprintTemplate = new hiprint.PrintTemplate({ //
template: settings.printTemplate //
});
hiprintTemplate.print(tdata, { printer: '', title: '工艺布产' }); //
},
},
//
watch: {

View File

@ -352,7 +352,9 @@ export default {
if (v.types == "processes") {
this.loadProcesses({ id: v.id });
}
if (v.types == "mold_production_order") {
this.loadProductionOrder({ id: v.id });
}
setTimeout(() => {
@ -417,7 +419,25 @@ export default {
this.formOptions3.data = a.data.mes_processes
});
},
loadProductionOrder({ id }) {
this.loading = true
this.$mk.get({
url: `${BASE_URL.BASE_URL}/MoldProductionOrder/Get/TouchScreen/v1/mold/production/order/touchScreen/getMoldProductionOrder/${process.env.VUE_APP_BEID}/${process.env.VUE_APP_PTYID}/${process.env.VUE_APP_COMPANY_ID}/0/${process.env.VUE_APP_APPTOKEN}/${process.env.VUE_APP_COMPANYTOKEN}/${id}`,
useBigInt: true,
}).then(a => {
let row = a.data.mold_production_order;
let data2 = Object.assign({}, row);
let data3 = Object.assign({}, row.mold_detail);
this.formOptions2.data = data2
this.formOptions3.data = data3
this.detailsData = row.mold_production_order_component_processes;
});
},
selectStaff({ data }) {
let data2 = Object.assign({}, data);

File diff suppressed because one or more lines are too long