This commit is contained in:
xielue 2023-09-08 22:10:28 +08:00
parent 862dc4fdc7
commit 740ccd452e
3 changed files with 196 additions and 123 deletions

View File

@ -115,7 +115,7 @@ export default {
items: [
{ field: 'code', title: '编码', span: 12, itemRender: { name: '$input' } },
{ field: 'name', title: '名称', span: 12, itemRender: { name: '$input' } },
/*
{
title: '分类', span: 12,
field: 'mold_component_category',
@ -135,7 +135,7 @@ export default {
}
}
},
*/
]
},
//

View File

@ -1,67 +1,80 @@
<template>
<div class="page-body">
<div class="approvedbg" v-if="pageStatus == 'approved'"></div>
<div class="voucher-toolbar">
<div class="voucher-toolbar-left">
<a-button type="primary" @click="ok" :disabled="pageStatus == 'approved'">保存</a-button>
<a-button @click="pageApproved" type="primary" :disabled="!this.getDataId() || pageStatus == 'approved'">审批
</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>
<a-tabs>
<a-tab-pane key="1" tab="订单明细">
<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="mold_scheme" title="模型" width="160" :params="editor_scheme" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="production_type" title="布产类型" width="160" :params="options_production_type" formatter = 'formatEnum'
:edit-render="{ name: '$select',props:{options:options_production_type} }"></vxe-column>
<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" v-if="pageStatus != 'approved'">
<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="mold_scheme" title="模型" width="160" :params="editor_scheme" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="production_type" title="布产类型" width="160" :params="options_production_type"
formatter='formatEnum'
:edit-render="{ name: '$select', props: { options: options_production_type } }"></vxe-column>
<vxe-column field="mold_master_user_detail" title="师傅" width="160" :params="editor_staff" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="manufacture_cycle" title="制作周期" width="160" formatter="formatDate"
:edit-render="{ name: '$input',props:{type:'date'} }"></vxe-column>
<vxe-column field="draw_start_time" title="预计开始画图时间" width="160" formatter="formatDate"
:edit-render="{ name: '$input',props:{type:'date'} }"></vxe-column>
<vxe-column field="split_design_time" title="分模设计时间预计" width="160" formatter="formatDate"
:edit-render="{ name: '$input',props:{type:'date'} }"></vxe-column>
<vxe-column field="draw_time" title="出图时间预计" width="160" formatter="formatDate"
:edit-render="{ name: '$input',props:{type:'date'} }"></vxe-column>
<vxe-column field="draw2D_time" title="出2D时间预计" width="160" formatter="formatDate"
:edit-render="{ name: '$input',props:{type:'date'} }"></vxe-column>
<vxe-column field="draw3D_time" title="出3D时间预计" width="160" formatter="formatDate"
:edit-render="{ name: '$input',props:{type:'date'} }"></vxe-column>
<vxe-column field="horizontal_frame_time" title="横架到厂日期预计" width="160" formatter="formatDate"
:edit-render="{ name: '$input',props:{type:'date'} }"></vxe-column>
<vxe-column field="inlay_deep_hole_time" title="镶件深孔钻到厂日期预计" width="160" formatter="formatDate"
:edit-render="{ name: '$input',props:{type:'date'} }"></vxe-column>
</vxe-table>
</a-tab-pane>
<vxe-column field="mold_master_user_detail" title="师傅" width="160" :params="editor_staff" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
</a-tabs>
<vxe-column field="manufacture_cycle" title="制作周期" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="draw_start_time" title="预计开始画图时间" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="split_design_time" title="分模设计时间预计" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="draw_time" title="出图时间预计" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="draw2D_time" title="出2D时间预计" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="draw3D_time" title="出3D时间预计" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="horizontal_frame_time" title="横架到厂日期预计" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
<vxe-column field="inlay_deep_hole_time" title="镶件深孔钻到厂日期预计" width="160" formatter="formatDate"
:edit-render="{ name: '$input', props: { type: 'date' } }"></vxe-column>
</vxe-table>
</a-tab-pane>
</a-tabs>
<div class="mk-toolbar" v-if="isEdit">
</div>
<div class="footerbar">
<a-button type="primary" @click="ok">确定</a-button>
<a-button @click="cancel">取消</a-button>
</div>
</div>
</template>
@ -84,21 +97,23 @@ export default {
},
data() {
// 0 1
// 0 1
const options_paid_status = [{ value: 0, label: '未收款' }, { value: 1, label: '已收款' }];
//let _this = this;
//
var pageData = {
options_paid_status:options_paid_status,
options_production_type:[{value:'1',label:'正常布产'},{value:'2',label:'委托布产'}],
var pageData = {
options_paid_status: options_paid_status,
options_production_type: [{ value: '1', label: '正常布产' }, { value: '2', label: '委托布产' }],
//
currentConfigName: "",
// ID
currentBeid: 0,
pageStatus: '',
uploadDefaultImg: null,
detailDataFieldName: "mold_order",
@ -118,7 +133,7 @@ export default {
warehouse_id: 0,
version: '',
is_default: 0,
paid_status:0
paid_status: 0
},
//
titleWidth: 100,
@ -137,28 +152,28 @@ export default {
},
//
items: [
{ field: 'code', title: '订单编码', span: 6, itemRender: { name: '$input' } },
{ field: 'name', title: '客户名称', span: 6, itemRender: { name: '$input' } },
{ field: 'contact', title: '联系人', span: 6, itemRender: { name: '$input' } },
{ field: 'phone', title: '联系电话', span: 6, itemRender: { name: '$input' } },
{ field: 'code', title: '订单编码', span: 6, itemRender: { name: '$input', props: { } } },
{ field: 'name', title: '客户名称', span: 6, itemRender: { name: '$input', props: { } } },
{ field: 'contact', title: '联系人', span: 6, itemRender: { name: '$input', props: { } } },
{ field: 'phone', title: '联系电话', span: 6, itemRender: { name: '$input', props: { } } },
{ field: 'salesman', title: '业务员姓名', span: 6, itemRender: { name: '$input' } },
{ field: 'contract_no', title: '合同号', span: 6, itemRender: { name: '$input' } },
{ field: 'salesman', title: '业务员姓名', span: 6, itemRender: { name: '$input', props: { } } },
{ field: 'contract_no', title: '合同号', span: 6, itemRender: { name: '$input' , props: { }} },
{ field: 'contract_start_time', dataRule: { type: "timestamp" }, title: '合同开始日期', span: 6, itemRender: { name: '$input', props: { type: "date" } } },
{ field: 'contract_end_time', dataRule: { type: "timestamp" }, title: '合同结束日期', span: 6, itemRender: { name: '$input', props: { type: "date" } } },
{ field: 'amount',dataRule: { type: 'number' }, title: '订单金额', span: 6, itemRender: { name: '$input',props:{type:'number'} } },
{ field: 'paid_amount',dataRule: { type: 'number' }, title: '付款金额', span: 6, itemRender: { name: '$input',props:{type:'number'} } },
{ field: 'paid_ratio', dataRule: { type: 'number' },title: '付款比例', span: 6, itemRender: { name: '$input',props:{type:'number'} } },
{ field: 'paid_status', dataRule: { type: 'integer' }, title: '付款状态', span: 6, itemRender: { name: '$select', props: { options: options_paid_status } } },
{ field: 'amount', dataRule: { type: 'number' }, title: '订单金额', span: 6, itemRender: { name: '$input', props: { type: 'number' } } },
{ field: 'paid_amount', dataRule: { type: 'number' }, title: '付款金额', span: 6, itemRender: { name: '$input', props: { type: 'number' } } },
{ field: 'paid_ratio', dataRule: { type: 'number' }, title: '付款比例', span: 6, itemRender: { name: '$input', props: { type: 'number' } } },
{ field: 'paid_status', dataRule: { type: 'integer' }, title: '付款状态', span: 6, itemRender: { name: '$select', props: { options: options_paid_status } } },
{ field: 'remark', title: '备注', span: 24, itemRender: { name: '$input', props: { } } },
{ field: 'remark', title: '备注', span: 24, itemRender: { name: '$input' } },
]
},
//
@ -216,39 +231,7 @@ export default {
created() {
// id
let dataId = this.getDataId();
// id
if (dataId) {
this.$mk.post({
url: this.actions.get,
loading: "加载中...",
data: { id: this.$mk.toBigInt(dataId) },
useBigInt: true
}).then(a => {
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].order_molds || []));
this.detailsDataInit();
});
this.isEdit = true;
} else {
// id
this.addModeItems.forEach(item => {
this.formOptions.items.push(item);
})
this.detailsDataInit();
}
this.pageInit();
this.heightInit();
@ -256,6 +239,59 @@ export default {
},
//
methods: {
pageInit() {
// id
let dataId = this.getDataId();
// id
if (dataId) {
this.$mk.post({
url: this.actions.get,
loading: "加载中...",
data: { id: this.$mk.toBigInt(dataId) },
useBigInt: true
}).then(a => {
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].order_molds || []));
if (a.data[this.detailDataFieldName].auditor_uid) {
this.pageStatus = 'approved';
}
this.setPageReadonly(this.pageStatus == 'approved');
this.detailsDataInit();
});
this.isEdit = true;
} else {
// id
this.addModeItems.forEach(item => {
this.formOptions.items.push(item);
})
this.setPageReadonly(this.pageStatus == 'approved');
this.detailsDataInit();
}
},
setPageReadonly(readonly) {
this.formOptions.items.forEach(item => {
if (item.itemRender && item.itemRender.name == "$select") {
item.itemRender.props.disabled = readonly;
}
if (item.itemRender && item.itemRender.props) {
item.itemRender.props.readonly = readonly;
}
});
},
@ -264,6 +300,9 @@ export default {
this.$nextTick(() => {
let h = this.$mk.getWindowSize().height - this.$mk.getOffsetTop(this.$refs.xTable.$el) - 300;
if (h < 300) {
h = 300;
}
this.table1Height = h;
});
@ -313,7 +352,7 @@ export default {
//
ok() {
let save = () => {
@ -330,23 +369,23 @@ export default {
list: this.detailsData,
deletedList: this.deletedDetailsData,
fieldName: 'order_id',
dataRule:[
{field:'id',type:'bigint'} ,
{field:'production_type',type:'integer'},
{field:'manufacture_cycle',type:'timestamp'},
{field:'draw_start_time',type:'timestamp'},
{field:'split_design_time',type:'timestamp'},
{field:'draw_time',type:'timestamp'},
{field:'draw2D_time',type:'timestamp'},
{field:'draw3D_time',type:'timestamp'},
{field:'horizontal_frame_time',type:'timestamp'},
{field:'inlay_deep_hole_time',type:'timestamp'} ,
{field:'update_uid',type:'bigint'} ,
{field:'mold_id',type:'bigint'} ,
{field:'mold_master_uid',type:'bigint'} ,
dataRule: [
{ field: 'id', type: 'bigint' },
{ field: 'production_type', type: 'integer' },
{ field: 'manufacture_cycle', type: 'timestamp' },
{ field: 'draw_start_time', type: 'timestamp' },
{ field: 'split_design_time', type: 'timestamp' },
{ field: 'draw_time', type: 'timestamp' },
{ field: 'draw2D_time', type: 'timestamp' },
{ field: 'draw3D_time', type: 'timestamp' },
{ field: 'horizontal_frame_time', type: 'timestamp' },
{ field: 'inlay_deep_hole_time', type: 'timestamp' },
{ field: 'update_uid', type: 'bigint' },
{ field: 'mold_id', type: 'bigint' },
{ field: 'mold_master_uid', type: 'bigint' },
{field:'create_uid',type:'bigint'}
{ field: 'create_uid', type: 'bigint' }
]
});
@ -421,6 +460,9 @@ export default {
this.detailsData.splice($table.getRowSeq(row) - 1, 1);
},
beforeEditMethod({ column, row }) {
if (this.pageStatus == "approved") {
return false;
}
console.log(column, row);
return true;
},
@ -438,6 +480,35 @@ export default {
console.log(rows, name, params);
},
pageApproved() {
let dataId = this.getDataId();
if (!dataId) {
return;
}
let sendApproved = () => {
this.$mk.post({
url: `${BASE_URL.BASE_URL}/MoldOrder/v1/mold/order/audit`,
loading: '审批中...',
data: {
id: this.getDataId_BigInt()
},
useBigInt: true
}).then(a => {
if (a.code == "200") {
this.$mk.success("审批成功");
this.pageInit();
}
else {
this.$mk.error(a.msg);
}
});
}
sendApproved("");
},
},
//

View File

@ -151,7 +151,7 @@ export default {
children: [
{ field: 'code', title: '模型编码', span: 12, itemRender: { name: '$input' } },
{ field: 'name', title: '模型名称', span: 12, itemRender: { name: '$input' } },
/*
{
title: '分类', span: 12,
field: 'mold_scheme_category',
@ -171,6 +171,8 @@ export default {
}
}
},
*/
]
},
{