This commit is contained in:
xielue 2023-08-29 12:53:08 +08:00
parent db25f262fa
commit 260c70879c
6 changed files with 621 additions and 239 deletions

View File

@ -4,7 +4,7 @@
<template>
<vxe-input class="edit-down-input" ref="inputx" :type="enalbedPopup ? 'search' : 'input'" v-model="textboxValue"
:readonly="readonly" @keyup="keyupEvent" @keydown="keydownEvent" :placeholder="placeholder" @click="clickEvent"
@suffix-click="suffixClick" @search-click="popupEvent"></vxe-input>
@suffix-click="suffixClick" @focus="onFocus" @search-click="popupEvent"></vxe-input>
<div style="margin-top: 10px;" v-if="buttons && buttons.length">
<a-icon v-for="(btn, index) in buttons" :key="index" @click="buttonClick(btn)" :type="btn.type"
@ -16,9 +16,7 @@
<vxe-grid :keyboard-config="{ isArrow: true }" auto-resize height="400" ref="xgrid"
:row-config="{ isCurrent: true, isHover: true }" :loading="loading" :pager-config="tablePage" :data="tableData"
:columns="tableColumn"
:treeConfig="treeConfig"
@cell-click="selectEvent" @page-change="pageChangeEvent">
:columns="tableColumn" :treeConfig="treeConfig" @cell-click="selectEvent" @page-change="pageChangeEvent">
</vxe-grid>
</template>
@ -209,14 +207,13 @@ export default {
},
getData(key) { //
var params = Object.assign({},this.actionParams ||{}) //
var params = Object.assign({}, this.params.actionParams || {}) //
params.page = this.tablePage.currentPage; //
params.limit = this.tablePage.pageSize; //
params.order_bys = []; //
params.search_rules = []; //
params.order_bys = params.order_bys || []; //
params.search_rules = params.search_rules || []; //
if (key) {
key = this.$mk.trim(key);
}
@ -344,9 +341,31 @@ export default {
this.tableData = data[f];
})
},
onFocus(){
const { params } = this
console.log(params)
if (params.focusToLoad) {
const cellValue = this.textboxValue;
let f = params.listdataFieldName || "Records";
this.loading = true
this.getData(cellValue).then(data => {
this.loading = false
if ('Total' in data) {
this.tablePage.total = data.Total;
} else {
this.tablePage.total = data.total;
}
this.tableData = data[f];
})
}
},
suffixClick() { //
this.$refs.xDown.togglePanel()
this.$refs.xDown.togglePanel();
},
pageChangeEvent({ currentPage, pageSize }) { //
this.tablePage.currentPage = currentPage

View File

@ -133,10 +133,14 @@ VXETable.formats.mixin({
},
formatEnum({ cellValue, column }) { // 格式化状态
if (cellValue == null) return '';
if (!column.params) return '';
for (let i = 0; i < column.params.length; i++) {
if (column.params[i].value == cellValue) {
return '' + column.params[i].label + '';
let params = column.params;
if (params && params.data) {
params = params.data;
}
if (!params) return '';
for (let i = 0; i < params.length; i++) {
if (params[i].value == cellValue) {
return '' + params[i].label + '';
}
}
return '';

View File

@ -0,0 +1,316 @@
<template>
<div class="page-body">
<!-- 搜索区 -->
<vxe-form :data="searchFormData" :items="searchFormItems" titleColon @submit="onSearch">
</vxe-form>
<!-- 表格区 -->
<vxe-grid ref='xGrid' v-bind="gridOptions" @current-change="onSelectRow"></vxe-grid>
<vxe-table :row-config="{isCurrent:true}" border show-overflow keep-source ref="xTable" :height="table1Height" :data="detailsData">
<vxe-column field="mold_scheme" title="模型" width="160" :params="editor_scheme" formatter="formatRef" ></vxe-column>
<vxe-column field="production_type" title="布产类型" width="160" :params="options_production_type"
formatter='formatEnum' ></vxe-column>
<vxe-column field="mold_master_user_detail" title="师傅" width="160" :params="editor_staff" formatter="formatRef" ></vxe-column>
<vxe-column field="manufacture_cycle" title="制作周期" width="160" formatter="formatDate" ></vxe-column>
<vxe-column field="draw_start_time" title="预计开始画图时间" width="160" formatter="formatDate"
></vxe-column>
<vxe-column field="split_design_time" title="分模设计时间预计" width="160" formatter="formatDate"
></vxe-column>
<vxe-column field="draw_time" title="出图时间预计" width="160" formatter="formatDate"
></vxe-column>
<vxe-column field="draw2D_time" title="出2D时间预计" width="160" formatter="formatDate"
></vxe-column>
<vxe-column field="draw3D_time" title="出3D时间预计" width="160" formatter="formatDate"
></vxe-column>
<vxe-column field="horizontal_frame_time" title="横架到厂日期预计" width="160" formatter="formatDate"
></vxe-column>
<vxe-column field="inlay_deep_hole_time" title="镶件深孔钻到厂日期预计" width="160" formatter="formatDate"
></vxe-column>
</vxe-table>
</div>
</template>
<script>
import BASE_URL from '@/services/mes/api.js';
import { toDateString } from 'xe-utils'
export default {
i18n: require('./i18n'),
props: {
pageMode: {
type: String,
default: "edit"
}
},
data() {
//
var pageData = {
options_production_type:[{value:'1',label:'正常布产'},{value:'2',label:'委托布产'}],
keyName: 'ID',
tabKey: '1',
actions: {
getList: `${BASE_URL.BASE_URL}/MoldOrder/v1/mold/order/list`
},
detailDataFieldName: "mold_order",
currentRowId: 0,
start_time: 0,
end_time: 0,
table1Height: 300,
downHeight: 0,
detailsData:[],
//
searchFormData: {
code: '',
},
searchRules: [
{ key: "code", mode: "like" },
],
searchFormItems: [
{ field: 'code', title: '订单号', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入订单号' } } },
{ span: 4, itemRender: { name: '$buttons', children: [{ props: { type: 'submit', content: '搜索', status: 'primary' } }, { props: { type: 'reset', content: '重置' } }] } }
],
//
gridOptions: {
height: 600,
id: 'datagrid_1',
rowConfig: {
isCurrent: true
},
checkboxConfig: {
},
radioConfig: {
},
proxyConfig: {
sort: true, // query
filter: true, // query
props: {
result: 'MoldOrder', //
total: 'total' //
},
// Promise
ajax: {
// queryreload
query: (options) => {
const { page, sorts } = options; //
var params = {}; //
params.page = page.currentPage; //
params.limit = page.pageSize; //
params.order_bys = []; //
params.search_rules = this.getSearchParms(); //
if (sorts) { //
sorts.forEach((v) => { //
params.order_bys.push({ //
column: v.property, //
order: v.order //
})
});
}
return this.loadData({ params }); //
}
}
},
columns: [
//{ type: 'radio', width: 80 },
{ field: 'code', title: '订单编码', span: 6, itemRender: { name: '$input', props: { placeholder: '请输入订单编码' } } },
{ field: 'name', title: '客户名称', span: 6, itemRender: { name: '$input', props: { placeholder: '请输入客户名称' } } },
{ field: 'create_time', formatter: 'formatDate', width: 100, sortable: true, title: '创建时间', showHeaderOverflow: true }, //
{ field: 'update_time', formatter: 'formatDate', width: 100, sortable: true, title: '更新时间', showHeaderOverflow: true }, //
]
},
editor_scheme: {
dataType: "object",
valueField: "id",
textField: "name",
listdataFieldName: 'MoldScheme',
mapper: [
{ fromField: "id", field: "mold_id" }
],
dataUrl: `${BASE_URL.BASE_URL}/MoldScheme/v1/mold/scheme/list`
},
editor_staff: {
dataType: "object",
valueField: "id",
textField: "name",
listdataFieldName: 'MesStaff',
mapper: [
{ fromField: "id", field: "mold_master_uid" }
],
dataUrl: `${BASE_URL.BASE_URL}/MesStaff/v1/mes/staff/list`
},
};
pageData.gridOptions = Object.assign({}, this.$mk.config.defaults.gridOptions, pageData.gridOptions);
return pageData;
},
computed: {
desc() {
return this.$t('pageDesc')
}
},
created() {
this.heightInit();
},
onLoad() {
},
//
methods: {
heightInit() {
this.$nextTick(() => {
this.gridOptions.height = (this.$mk.getWindowSize().height - this.$mk.getOffsetTop(this.$refs.xGrid.$el) - 150) * 0.5;
this.table1Height = this.gridOptions.height - 20;
});
},
getConfirmData() {
return this.getSelectdRow();
},
onSelectRow({ row }) {
this.currentRowId = row.id;
this.$mk.post({
url: `${BASE_URL.BASE_URL}/MoldOrder/v1/mold/order/detail`,
loading: "加载中...",
data: { id: this.$mk.toBigInt(this.currentRowId) },
useBigInt: true
}).then(a => {
this.detailsData = JSON.parse(JSON.stringify(a.data[this.detailDataFieldName].order_molds || []));
console.log(this.detailsData)
});
},
onDateChange(date) {
if (date && date.length) {
this.start_time = toDateString(date[0]._d, 'yyyy/MM/dd') + ' 00:00';
this.end_time = toDateString(date[1]._d, 'yyyy/MM/dd') + ' 23:59:59';
} else {
this.start_time = null;
this.end_time = null;
}
},
getSearchParms() {
var rules = []; //
let findMode = k => { //
for (let i in this.searchRules) { //
if (this.searchRules[i].key == k) return this.searchRules[i].mode; //
}
return "="; //
};
for (let key in this.searchFormData) { //
let value = this.searchFormData[key]; //
if (value) { //
let mode = findMode(key); //
if (mode == "like") { //
value = "%" + value + "%"; // %
}
if (typeof (value) == "object" && value.id) {
value = value.id;
}
rules.push({ //
column: key, //
mode: mode, //
value: value //
});
}
}
return rules; //
},
getSelectdRow() {
let row2 = this.$refs.xTable.getCurrentRecord();
let row1 = this.$refs.xGrid.getCurrentRecord();
return {row1,row2};
},
loadData({ params }) {
params.start_time = this.start_time; //
params.end_time = this.end_time; //
return this.$mk.getPagedData({
url: this.actions.getList,
data: params
});
},
//add / log / setting
toolbarClick(e) {
if (e.name == "add") {
/*
this.$mk.dialog.open({
page: addPage,
title: "新增编号信息",
pageMode: "add",
dataId: 0,
callback: ({ success }) => {
success && this.$refs.xGrid.commitProxy('query')
}
})
*/
this.$openPage('/tCode/tAttributeEdit')
}
else if (e.name == "delete") {
this.pageDelete();
}
},
onSearch() {
this.$refs.xGrid.commitProxy('query')
}
},
//
watch: {
}
};
</script>
<style>
.page-body {
padding: 10px 10px;
background: white;
}
.gridPanel {
height: calc(100vh - 300px);
}
</style>

View File

@ -1,6 +1,28 @@
<template>
<div class="page-body">
<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="back" >关闭</a-button>
</div>
</div>
<vxe-form :data="formOptions.data" ref="xForm" :title-width="formOptions.titleWidth"
:title-align="formOptions.titleAlign" :rules="formOptions.rules" :items="formOptions.items" titleColon>
</vxe-form>
@ -27,11 +49,11 @@
: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="options_production_type"
<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_uid" title="加工人员" width="160" :params="editor_staff" formatter="formatRef"
<vxe-column field="process_info" title="加工人员" width="160" :params="editor_staff" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
@ -40,7 +62,7 @@
<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="options_is_send" formatter='formatEnum'
<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"
@ -50,19 +72,20 @@
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="is_complete" title="是否完成" width="160" :params="options_is_complete" formatter='formatEnum'
<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="options_user_type" formatter='formatEnum'
<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="options_user_type" formatter='formatEnum'
<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>
@ -94,7 +117,7 @@
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="process_uid" title="加工人员" width="160" :params="editor_staff" formatter="formatRef"
<vxe-column field="process_info" title="加工人员" width="160" :params="editor_staff" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
@ -104,22 +127,22 @@
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="is_send" title="是否发料" width="160" :params="options_is_send" formatter='formatEnum'
:edit-render="{ name: '$select', props: { options: options_is_send } }"></vxe-column>
<vxe-column field="is_send" title="是否发料" width="160" :params="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="is_complete" title="是否完成" width="160" :params="options_is_complete" formatter='formatEnum'
:edit-render="{ name: '$select', props: { options: options_is_complete } }"></vxe-column>
<vxe-column field="is_complete" title="是否完成" width="160" :params="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="send_type" title="发料人员类型" width="160" :params="options_user_type" formatter='formatEnum'
:edit-render="{ name: '$select', props: { options: options_user_type } }"></vxe-column>
<vxe-column field="send_type" title="发料人员类型" width="160" :params="options_user_type"
formatter='formatEnum'></vxe-column>
<vxe-column field="complete_type" title="完工人员类型" width="160" :params="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="options_user_type"
formatter='formatEnum'></vxe-column>
<vxe-column field="remark" title="备注" width="160" :edit-render="{ name: '$input', props: {} }"></vxe-column>
@ -205,99 +228,47 @@ export default {
//
rules: {
order_code: [
{ required: true, message: '请输入订单编号' }
code: [
{ required: true, message: '请输入编号' }
],
mold_order: [
{ required: true, message: '请选择订单' }
],
mold_scheme: [
{ required: true, message: '请选择模具' }
],
},
//
items: [
{
title: '选择订单', span: 8,
title: '订单', span: 8,
field: 'mold_order',
dataRule: {
fromField: "id",
saveField: "order_id" // fromFieldsaveField
},
itemRender: {
name: 'MkFormDataSelector', props: {
name: 'MkFormInputShow', props: {
params: {
dataType: "object",
valueField: "id",
textField: "name",
listdataFieldName: 'MoldOrder',
onDataChanged: ({ data }) => {
this.$mk.post({
url: `${BASE_URL.BASE_URL}/MoldOrder/v1/mold/order/detail`,
loading: "加载中...",
data: { id: data.id },
useBigInt: true
}).then(a => {
let d = a.data.mold_order;
let detail = d.order_molds ? d.order_molds[0] : null;
console.log(detail)
if (detail) {
this.formOptions.data.mold_scheme = detail.mold_scheme;
this.formOptions.data.mold_id = detail.mold_id;
if(detail.draw_start_time){
this.formOptions.data.draw_start_time = this.getDateValue(detail.draw_start_time);
textField: "name"
}
if(detail.split_design_time){
this.formOptions.data.split_design_time = this.getDateValue(detail.split_design_time);
}
if(detail.draw_time){
this.formOptions.data.draw_time = this.getDateValue(detail.draw_time);
}
if(detail.draw2D_time){
this.formOptions.data.draw2D_time = this.getDateValue(detail.draw2D_time);
}
if(detail.draw3D_time){
this.formOptions.data.draw3D_time = this.getDateValue(detail.draw3D_time);
}
if(detail.horizontal_frame_time){
this.formOptions.data.horizontal_frame_time = this.getDateValue(detail.horizontal_frame_time);
}
this.formOptions.data = JSON.parse(JSON.stringify( this.formOptions.data))
}
});
},
dataUrl: `${BASE_URL.BASE_URL}/MoldOrder/v1/mold/order/list`
},{
title: '模具', span: 8,
field: 'mold_scheme',
itemRender: {
name: 'MkFormInputShow', props: {
params: {
dataType: "object",
valueField: "id",
textField: "name"
}
}
}
},
{ field: 'code', title: '编号', span: 8, itemRender: { name: '$input' } },
{
title: '模具', span: 8,
field: 'mold_scheme',
dataRule: {
fromField: "id",
saveField: "mold_id" // fromFieldsaveField
},
itemRender: {
name: 'MkFormDataSelector', props: {
params: {
dataType: "object",
valueField: "id",
textField: "name",
listdataFieldName: 'MoldScheme',
dataUrl: `${BASE_URL.BASE_URL}/MoldScheme/v1/mold/scheme/list`
}
}
}
},
{ field: 'production_type', title: '布产类型', span: 8, itemRender: { name: '$select', props: { options: options_production_type } } },
{ field: 'production_type', dataRule: { type: 'integer' }, title: '布产类型', span: 8, itemRender: { name: '$select', props: { options: options_production_type } } },
{ field: 'manufacture_cycle', dataRule: { type: 'timestamp' }, title: '制作周期', span: 8, itemRender: { name: '$input', props: { type: 'date' } } },
{ field: 'draw_start_time', dataRule: { type: 'timestamp' }, title: '预计开始画图时间', span: 8, itemRender: { name: '$input', props: { type: 'date' } } },
@ -363,7 +334,7 @@ export default {
textField: "name",
listdataFieldName: 'MesStaff',
mapper: [
{ fromField: "id", field: "mes_staff_id" }
{ fromField: "id", field: "process_uid" }
],
dataUrl: `${BASE_URL.BASE_URL}/MesStaff/v1/mes/staff/list`
},
@ -403,7 +374,7 @@ export default {
this.formOptions.data = this.$mk.formatDetailData({ data: a.data[this.detailDataFieldName], rules: this.formOptions.items });
console.log(this.formOptions.data)
this.detailsData = JSON.parse(JSON.stringify(a.data[this.detailDataFieldName].mold_production_order_component || []));
this.detailsData2 = JSON.parse(JSON.stringify(a.data[this.detailDataFieldName].mold_production_order_component_processes || []));
@ -440,6 +411,61 @@ export default {
return new Date(v * 1000);
},
handleMenuClick(e) {
let { width, height } = this.$mk.getWindowSize();
if (e.key == 'order') {
this.$mk.dialog.open({
page: () => import("../MoldOrder/selector"),
title: "选择订单",
showFooter: true,
width: width * 0.9,
height: height * 0.9,
callback: ({ data }) => {
if (!data || !data.row2) {
this.$mk.error("未选择明细行");
return;
}
this.formOptions.data.mold_order = data.row1;
this.formOptions.data.order_id = data.row1.id;
let detail = data.row2;
console.log(detail)
this.formOptions.data.mold_scheme = detail.mold_scheme;
this.formOptions.data.mold_id = detail.mold_id;
if (detail.draw_start_time) {
this.formOptions.data.draw_start_time = this.getDateValue(detail.draw_start_time);
}
if (detail.split_design_time) {
this.formOptions.data.split_design_time = this.getDateValue(detail.split_design_time);
}
if (detail.draw_time) {
this.formOptions.data.draw_time = this.getDateValue(detail.draw_time);
}
if (detail.draw2D_time) {
this.formOptions.data.draw2D_time = this.getDateValue(detail.draw2D_time);
}
if (detail.draw3D_time) {
this.formOptions.data.draw3D_time = this.getDateValue(detail.draw3D_time);
}
if (detail.horizontal_frame_time) {
this.formOptions.data.horizontal_frame_time = this.getDateValue(detail.horizontal_frame_time);
}
this.formOptions.data = JSON.parse(JSON.stringify(this.formOptions.data))
this.$forceUpdate()
}
})
}
},
heightInit() {
this.$nextTick(() => {
@ -460,7 +486,7 @@ export default {
// id
getDataId() {
let dataId = this.dataId;
if (this.$route.params.id) {
if (this.$route && this.$route.params && this.$route.params.id) {
dataId = this.$route.params.id;
}
if (!dataId) {
@ -510,6 +536,13 @@ export default {
//
this.$mk.formatFormData({ data: postdata, rules: this.formOptions.items });
if (postdata.mold_id) {
postdata.mold_id = this.$mk.toBigInt(postdata.mold_id);
}
if (postdata.order_id) {
postdata.order_id = this.$mk.toBigInt(postdata.order_id);
}
postdata.mold_production_order_component = this.$mk.getPostFieldValue({
rowFilter: (row) => { return row.id || row.component_id },
dataId: this.getDataId_BigInt(),

View File

@ -143,6 +143,12 @@ export default {
},
//
items: [
{
title: '左侧',
span: 19,
children: [
{ field: 'code', title: '模型编码', span: 12, itemRender: { name: '$input' } },
{ field: 'name', title: '模型名称', span: 12, itemRender: { name: '$input' } },
@ -165,6 +171,16 @@ export default {
}
}
},
]
},
{
title: '右侧',
span: 5,
children: [
{ field: 'image', span: 12, itemRender: { name: 'MkFormUploader' } },
]
},
]
},

View File

@ -3,29 +3,17 @@
<vxe-pulldown ref="pulldownRef" transfer>
<template #default>
<vxe-input ref="inputx" style="width:400px" v-model="searchName" suffix-icon="vxe-icon-table"
placeholder="搜索员工,随车联,工序等信息" @keydown="keydownEvent" @suffix-click="suffixClick"></vxe-input>
placeholder="搜索工艺布产等信息" @keydown="keydownEvent" @suffix-click="suffixClick"></vxe-input>
<a-icon type="scan" :style="{ fontSize: '22px', color: '#08c', marginLeft: '10px' }" @click="inputFocus" />
</template>
<template #dropdown>
<div class="search-dropdown">
<div class="search-dropdown-column">
<h3>随车联</h3>
<h3>工艺布产</h3>
<vxe-grid border auto-resize height="400" :row-config="{ isHover: true }" :loading="loading"
:data="tableDataOrders" :columns="tableColumnOrders" @cell-click="cellClickEventOrders">
</vxe-grid>
</div>
<div class="search-dropdown-column">
<h3>员工</h3>
<vxe-grid border auto-resize height="400" :row-config="{ isHover: true }" :loading="loading"
:data="tableDataStaff" :columns="tableColumn" @cell-click="cellClickEventStaff">
</vxe-grid>
</div>
<div class="search-dropdown-column">
<h3>工序</h3>
<vxe-grid border auto-resize height="400" :row-config="{ isHover: true }" :loading="loading"
:data="tableDataProcesses" :columns="tableColumn" @cell-click="cellClickEventProcesses">
</vxe-grid>
</div>
</div>
</template>
</vxe-pulldown>
@ -34,14 +22,19 @@
<div class="left">
<div class="card">
<h4>报工信息</h4>
<h4>工艺布产工序</h4>
<div v-for="item in detailsData" :key="item">
<div class="gx-item">
<div class="gx-item-col">{{ item.name }}</div>
<div class="gx-item-col">
<a-button type="primary" @click="pageReport(item)">报工</a-button>
<div>{{ item.moldname }}</div>
<div>{{ item.name }}</div>
</div>
<div class="gx-item-col">
<a-button type="primary" @click="pageSend(item)" v-if="item.is_send !== 1">发料</a-button>
<a-button type="primary" @click="pageReport(item)" v-if="item.is_send === 1">报工</a-button>
</div>
</div>
</div>
@ -59,7 +52,7 @@
</div>
<div class="card">
<h4>料品信息</h4>
<h4>模具信息</h4>
<vxe-form :data="formOptions3.data" ref="xForm" :title-width="formOptions3.titleWidth"
:title-align="formOptions3.titleAlign" :rules="formOptions3.rules" :items="formOptions3.items" titleColon>
@ -107,7 +100,7 @@ export default {
//
isEdit: false,
detailsData:[{name:'工序1'},{name:'工序2'}],
detailsData: [{moldname:'模具1' ,name: '工序1' }, { moldname:'模具2' ,name: '工序2' }],
formOptions2: {
data: {
@ -217,8 +210,9 @@ export default {
loading: false,
tableColumnOrders: [
{ field: 'production_number', title: '单号' },
{ field: 'materials_name', title: '料品名' },
{ field: 'code', title: '单号' },
{ field: 'mold_name', title: '模具名' },
{ field: 'mold_code', title: '模具编号' },
],
tableColumn: [
{ field: 'name', title: '名称' },
@ -283,12 +277,12 @@ export default {
this.loading = true
this.$mk.post({
url: `${BASE_URL.BASE_URL}/MesReporting/Get/TouchScreen/v1/mes/reporting/touchScreen/search`,
url: `${BASE_URL.BASE_URL}/MoldProductionOrder/Get/TouchScreen/v1/mold/production/order/touchScreen/search`,
loading: "搜索中...",
data: {
"keyword": key,
"ptyid": 0,
"company_id": 1,
"company_id": parseInt(process.env.VUE_APP_COMPANY_ID),
"search_rules": [
],
"end_time": 0,
@ -298,16 +292,14 @@ export default {
],
"limit": 0,
"project_token": process.env.VUE_APP_APPTOKEN,
"beid": 1,
"beid": parseInt(process.env.VUE_APP_BEID),
"page": 1,
"start_time": 0
},
useBigInt: true,
}).then(a => {
this.loading = false
this.tableDataStaff = a.data.mes_staff || [];
this.tableDataProcesses = a.data.mes_processes || [];
this.tableDataOrders = a.data.production_order_array || [];
this.tableDataOrders = a.data.mold_production_order || [];
}).catch((a) => {
this.loading = false
@ -435,56 +427,25 @@ export default {
$pulldown.hidePanel()
}
let data = Object.assign({}, row);
let data2 = Object.assign({}, row);
let data3 = Object.assign({}, row.mold_detail);
this.formOptions4.data = data
this.formOptions2.data = data2
this.formOptions3.data = data3
this.detailsData = row.mold_production_order_component_processes;
},
cellClickEventStaff({ row }) {
this.selectStaff({ data: row })
},
save() {
pageReport(item) {
let postdata = Object.assign({}, this.formOptions.data);
postdata.staff_uid = this.formOptions2.data.id;
postdata.stage_id = this.formOptions3.data.sort_id;
postdata.step_id = this.formOptions3.data.id;
postdata.step_name = this.formOptions3.data.name;
if (postdata.soil_date) {
postdata.soil_date = parseInt(new Date(postdata.soil_date).getTime() / 1000); //
} else {
postdata.soil_date = 0
}
postdata.loss_number = parseFloat(postdata.loss_number || 0)
if (!postdata.staff_uid) {
this.$mk.error("请先选择员工");
return;
}
if (!postdata.production_order_id) {
this.$mk.error("请先选择随车联");
return;
}
if (!postdata.step_id) {
this.$mk.error("请先选择工序");
return;
}
this.$mk.post({
url: `${BASE_URL.BASE_URL}/MesReporting/Get/TouchScreen/v1/mes/reporting/touchScreen/create`,
url: `${BASE_URL.BASE_URL}/MoldProductionOrder/Get/TouchScreen/v1/mold/production/order/touchScreen/create`,
loading: "报工中...",
data: {
"ptyid": parseInt(process.env.VUE_APP_PTYID),
@ -492,7 +453,7 @@ export default {
"store_id": 0,
"beid": parseInt(process.env.VUE_APP_BEID),
"company_token": process.env.VUE_APP_COMPANYTOKEN,
"mes_reporting_create_request": postdata,
"id": item.id,
"company_id": parseInt(process.env.VUE_APP_COMPANY_ID)
},
useBigInt: true,
@ -500,6 +461,37 @@ export default {
console.log(a)
if (a.code == 200) {
this.$mk.success("报工成功");
item.is_send = 1;
} else {
this.$mk.error(a.msg || a.message);
}
});
},
pageSend(item) {
this.$mk.post({
url: `${BASE_URL.BASE_URL}/MoldProductionOrder/Get/TouchScreen/v1/mold/production/order/touchScreen/sendMaterial`,
loading: "发料中...",
data: {
"ptyid": parseInt(process.env.VUE_APP_PTYID),
"project_token": process.env.VUE_APP_APPTOKEN,
"store_id": 0,
"beid": parseInt(process.env.VUE_APP_BEID),
"company_token": process.env.VUE_APP_COMPANYTOKEN,
"id": item.id,
"company_id": parseInt(process.env.VUE_APP_COMPANY_ID)
},
useBigInt: true,
}).then(a => {
console.log(a)
if (a.code == 200) {
this.$mk.success("发料成功");
item.is_send = 1;
} else {
this.$mk.error(a.msg || a.message);
@ -627,7 +619,9 @@ export default {
.gx-item {
display: flex;
margin-top: 10px;
border-bottom: 1px dashed #d3d3d3;
}
.gx-item-col {
flex: 5;
}