middle-admin-ant/src/pages/Middle/Mold/MoldProductionOrder/Detail.vue

1047 lines
29 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="page-body">
<div class="approvedbg" v-if="pageStatus == 'approved'"></div>
<div class="voucher-toolbar">
<div class="voucher-toolbar-left">
<a-button @click="print">打印</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="2" tab="工序详情">
<div style="margin: 5px;">
<a-radio-group v-model="departmentId" :options="departmentOptions" @change="departmentChange">
</a-radio-group>
</div>
<a-collapse :activeKey="collapseActiveKey">
<a-collapse-panel v-for="info in infos" :key="info.key" :header="info.header">
<component-detail :readonly="true" :dataId="getDataId()" :itemData="info.data"
@reloadData="pageInit"></component-detail>
</a-collapse-panel>
</a-collapse>
</a-tab-pane>
<a-tab-pane key="3" tab="部门进度汇总" v-if="isEdit">
<vxe-table border show-overflow keep-source ref="xTable3" :height="table1Height" :data="detailsData3">
<vxe-column field="name" title="部门名称" width="160"></vxe-column>
<vxe-column field="process_num" title="工序数量" width="160"></vxe-column>
<vxe-column field="progress" :cellRender="{ name: 'progress' }" title="进度" width="180"></vxe-column>
</vxe-table>
</a-tab-pane>
</a-tabs>
<h4 style="margin-top: 5px;">出现问题及建议反馈</h4>
<vxe-form :data="formOptions2.data" ref="xForm" :title-width="formOptions2.titleWidth"
:title-align="formOptions2.titleAlign" :rules="formOptions2.rules" :items="formOptions2.items" :titleColon="false"
vertical>
</vxe-form>
<div class="mk-toolbar" v-if="isEdit">
</div>
</div>
</template>
<script>
import ComponentDetail from './ComponentDetail'
import BASE_URL from '@/services/mes/api.js';
import XEUtils from 'xe-utils' // 加载xe-utils
const settings = require('../basic/settings.js');
export default {
name: '',
components: { ComponentDetail },
props: {
pageMode: {
type: String,
default: "edit"
},
dataId: {
}
},
data() {
const options_production_type = settings.options_production_type;
const options_is_complete = settings.options_is_complete;
const options_is_send = settings.options_is_send;
const options_user_type = settings.options_user_type;
//let _this = this;
// 页面数据变量
var pageData = {
options_production_type: options_production_type,
options_is_complete: options_is_complete,
options_is_send: options_is_send,
options_user_type: options_user_type,
collapseActiveKey: [],
infos: [], //所有的组件数据
// 当前项目名称
currentConfigName: "",
// 当前项目ID
currentBeid: 0,
pageStatus: '',
uploadDefaultImg: null,
detailDataFieldName: "mold_production_order",
actions: {
get: `${BASE_URL.BASE_URL}/MoldProductionOrder/v1/mold/production/order/detail`,
create: `${BASE_URL.BASE_URL}/MoldProductionOrder/v1/mold/production/order/create`,
update: `${BASE_URL.BASE_URL}/MoldProductionOrder/v1/mold/production/order/update`
},
keyName: 'id',
// 是否编辑模式
isEdit: false,
// 表单数据
formOptions: {
data: {
production_type: "1"
},
// 标题宽度
titleWidth: 180,
// 标题对齐方式
titleAlign: 'right',
// 表单校验规则
rules: {
code: [
{ required: true, message: '请输入编号' }
],
mold_order: [
{ required: true, message: '请选择订单' }
],
mold_scheme: [
{ required: true, message: '请选择模具' }
],
},
// 表单项
items: [
{
title: '订单', span: 8,
field: 'mold_order',
itemRender: {
name: 'MkFormInputShow', props: {
params: {
dataType: "object",
valueField: "id",
textField: "name"
}
}
}
}, {
title: '模具', span: 8,
field: 'mold_detail',
itemRender: {
name: 'MkFormInputShow', props: {
params: {
dataType: "object",
valueField: "id",
textField: "name"
}
}
}
},
{ field: 'code', title: '编号', span: 8, itemRender: { name: '$input' } },
{ 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' } } },
{ 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: 'inlay_deep_hole_time', dataRule: { type: 'timestamp' }, title: '镶件深孔钻到厂日期预计', span: 8, itemRender: { name: '$input', props: { type: 'date' } } },
{ field: 'horizontal_frame_time', dataRule: { type: 'timestamp' }, title: '横架到厂日期预计', span: 8, itemRender: { name: '$input', props: { type: 'date' } } },
{
field: 'progress', title: '进度', span: 24, itemRender: {
name: 'MkFormProgress', props: {
params: {
type: "line"
}
}
}
},
]
},
formOptions2: {
data: {
},
// 标题宽度
titleWidth: 180,
// 标题对齐方式
titleAlign: 'top',
// 表单校验规则
rules: {
},
// 表单项
items: [
{ showTitle: false, field: 'problem', title: '', span: 24, itemRender: { name: '$textarea', props: {} } },
]
},
departments: [],
departmentOptions: [],
departmentId: null,
// 新增模式表单项
addModeItems: [
],
table1Height: 400,
detailsSourceData: [
],
detailsData: [
],
deletedDetailsData: [
],
detailsData2: [
],
deletedDetailsData2: [
],
editor_component: {
dataType: "object",
valueField: "id",
textField: "name",
listdataFieldName: 'MoldComponent',
mapper: [
{ fromField: "id", field: "component_id" }
],
dataUrl: `${BASE_URL.BASE_URL}/MoldComponent/v1/mold/component/list`
},
editor_department: {
dataType: "object",
valueField: "id",
textField: "name",
listdataFieldName: 'BaseDepartment',
mapper: [
{ fromField: "id", field: "department_id" }
],
dataUrl: `${BASE_URL.BASE_URL}/BaseDepartment/v1/base/department/list`
},
editor_processes: {
dataType: "object",
valueField: "id",
textField: "name",
listdataFieldName: 'MesProcesses',
mapper: [
{ fromField: "id", field: "process_id" }
],
dataUrl: `${BASE_URL.BASE_URL}/MesProcesses/v1/mes/processes/list`
},
editor_d1_process: {
dataType: "object",
valueField: "id",
textField: "name",
listdataFieldName: 'MesStaff',
mapper: [
{ fromField: "id", field: "process_uid" }
],
dataUrl: `${BASE_URL.BASE_URL}/MesStaff/v1/mes/staff/list`
},
editor_d1_send: {
dataType: "object",
valueField: "id",
textField: "name",
listdataFieldName: 'MesStaff',
mapper: [
{ fromField: "id", field: "send_uid" }
],
dataUrl: `${BASE_URL.BASE_URL}/MesStaff/v1/mes/staff/list`
},
editor_process_uid: {
dataType: "object",
valueField: "id",
textField: "name",
listdataFieldName: 'MesStaff',
mapper: [
{ fromField: "id", field: "process_uid" }
],
dataUrl: `${BASE_URL.BASE_URL}/MesStaff/v1/mes/staff/list`
},
loadCount: 0,
};
// 合并表单数据及配置
pageData.formOptions = Object.assign({}, this.$mk.config.defaults.formOptions, pageData.formOptions);
return pageData;
},
computed: {
desc() {
return this.$t('editPageDesc')
}
},
created() {
this.pageInit();
this.heightInit();
this.loadDepartments();
},
// 函数
methods: {
loadDepartments() {
this.$mk.post({
url: `${BASE_URL.BASE_URL}/BaseDepartment/v1/base/department/list`,
loading: '加载中...',
data: {
"page": 1,
"limit": 1000,
"end_time": 0,
"order_bys": [
],
"search_rules": [
],
"start_time": 0
},
useBigInt: true
}).then(a => {
this.departments = a.data.BaseDepartment;
this.departmentOptions = [{ value: null, label: '全部部门' }];
this.departments.forEach(item => {
this.departmentOptions = [... this.departmentOptions, {
value: item.id + '',
label: item.name
}]
})
});
},
departmentChange() {
this.initComponentDetail();
},
pageInit() {
this.pageStatus = '';
// 获取路由的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 });
this.formOptions2.data = {
problem: a.data[this.detailDataFieldName].problem
}
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 || []));
this.initComponentDetail();
this.detailsData3 = JSON.parse(JSON.stringify(a.data[this.detailDataFieldName].department_progress || []));
if (a.data[this.detailDataFieldName].auditor_uid) {
this.pageStatus = 'approved';
}
this.setPageReadonly(this.pageStatus == 'approved');
this.$forceUpdate();
});
this.isEdit = true;
} else {
// 如果没有id参数说明是新增模式
this.addModeItems.forEach(item => {
this.formOptions.items.push(item);
})
this.setPageReadonly(this.pageStatus == 'approved');
}
},
initComponentDetail() {
let infos = [];
let keys = [];
this.loadCount++;
this.detailsData.forEach(item => {
if (!item.component_id) {
return;
}
let key = infos.length + '' + (this.loadCount + '');
let info = {
key: key, data: {
mold_production_order_component: [item],
mold_production_order_component_processes: []
},
header: item.component_detail.name
};
this.detailsData2.forEach(pitem => {
if (pitem.component_line == item.component_line) {
if (this.departmentId) {
if (pitem.department_id && pitem.department_id.toString() == this.departmentId) {
info.data.mold_production_order_component_processes.push(pitem);
}
} else {
info.data.mold_production_order_component_processes.push(pitem);
}
}
});
if (this.departmentId && item.production_type != 2) {
if (!info.data.mold_production_order_component_processes.length) {
return;
}
}
keys.push(key);
infos.push(info);
})
this.collapseActiveKey = keys;
this.infos = infos
},
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;
}
});
},
getDateValue(v) {
return new Date(v * 1000);
},
getDateValueString(v) {
if (!v) return '';
return XEUtils.toDateString(new Date(v * 1000), 'yyyy-MM-dd');
},
clearInfos() {
this.collapseActiveKey = [];
this.infos = [];
},
addInfo({ rows1, rows2, header }) {
let key = this.infos.length + '';
let info = {
key: key, data: {
mold_production_order_component: rows1,
mold_production_order_component_processes: rows2
},
header: header
};
this.collapseActiveKey = [...this.collapseActiveKey, key];
this.infos = [...this.infos, info];
},
pageSelectOrder() {
let { width, height } = this.$mk.getWindowSize();
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_detail = 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.loadMoleData(detail.mold_id);
this.$forceUpdate()
}
})
},
loadMoleData(mold_id) {
this.$mk.post({
url: `${BASE_URL.BASE_URL}/MoldScheme/v1/mold/scheme/detail`,
data: {
id: this.$mk.toBigInt(mold_id)
},
useBigInt: true
}).then((a) => { // 成功回调
if (a.data && a.data.mold_scheme) {
let row = a.data.mold_scheme;
let mold_scheme_processes = row.mold_scheme_processes || [];
let currentAddRows1 = [];
let currentAddRows2 = [];
mold_scheme_processes.forEach(pitem => {
if (!currentAddRows1.filter(a => a.component_id == pitem.component_id.toString()).length) {
currentAddRows1.push({
component_id: pitem.component_id.toString(),
component_num: 1,
component_detail: { id: pitem.mold_component.id, name: pitem.mold_component.name },
})
}
currentAddRows2.push({
component_id: pitem.component_id.toString(),
process_id: pitem.mes_processes_id,
process_detail: { id: pitem.mes_processes_id, name: pitem.mes_processes.name },
})
});
this.clearInfos();
currentAddRows1.forEach(row => {
this.addInfo({
rows1: [row],
rows2: currentAddRows2.filter(a => a.component_id == row.component_id),
header: row.component_detail.name
});
})
}
});
},
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;
});
},
// 获取路由的id参数
getDataId() {
let dataId = this.dataId;
if (this.$route && this.$route.params && this.$route.params.id) {
dataId = this.$route.params.id;
}
if (!dataId) {
dataId = 0;
}
return dataId;
},
getDataId_BigInt() {
let dataId = this.getDataId();
return this.$mk.toBigInt(dataId);
},
// 返回
back() {
// 如果是新增模式,关闭当前页面
if (!this.isEdit) {
this.$closePage({
closeRoute: "/Mold/MoldProductionOrderAdd"
});
} else {
// 如果是编辑模式,关闭当前页面
this.$closePage({
closeRoute: "/Mold/MoldProductionOrderUpdate"
});
}
// 打开列表页面
this.$openPage('/Mold/MoldProductionOrder')
},
// 保存
ok() {
let save = () => {
// 如果是新增模式,提交新增接口 如果是编辑模式,提交编辑接口
let action = !this.isEdit ? this.actions.create : this.actions.update;
// 如果是新增模式提交的数据中加入id 如果是编辑模式提交的数据中不加入id
let postdata = Object.assign({}, this.formOptions.data);
// 格式化提交的数据
this.$mk.formatFormData({ data: postdata, rules: this.formOptions.items });
if (postdata.id) {
postdata.id = this.$mk.toBigInt(postdata.id);
}
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.isEdit ? [] : { insertList: [], deleteList: [], updateList: [] };
postdata.mold_production_order_component_processes = !this.isEdit ? [] : { insertList: [], deleteList: [], updateList: [] };
this.infos.forEach(info => {
if (!info.data.postdata) {
return;
}
if (!this.isEdit) {
postdata.mold_production_order_component = [...postdata.mold_production_order_component, ...info.data.postdata.mold_production_order_component];
postdata.mold_production_order_component_processes = [...postdata.mold_production_order_component_processes, ...info.data.postdata.mold_production_order_component_processes];
} else {
postdata.mold_production_order_component.insertList = [...postdata.mold_production_order_component.insertList, ...info.data.postdata.mold_production_order_component.insertList];
postdata.mold_production_order_component.deleteList = [...postdata.mold_production_order_component.deleteList, ...info.data.postdata.mold_production_order_component.deleteList];
postdata.mold_production_order_component.updateList = [...postdata.mold_production_order_component.updateList, ...info.data.postdata.mold_production_order_component.updateList];
postdata.mold_production_order_component_processes.insertList = [...postdata.mold_production_order_component_processes.insertList, ...info.data.postdata.mold_production_order_component_processes.insertList];
postdata.mold_production_order_component_processes.deleteList = [...postdata.mold_production_order_component_processes.deleteList, ...info.data.postdata.mold_production_order_component_processes.deleteList];
postdata.mold_production_order_component_processes.updateList = [...postdata.mold_production_order_component_processes.updateList, ...info.data.postdata.mold_production_order_component_processes.updateList];
}
})
if (this.isEdit) {
postdata.mold_production_order_component = this.$mk.formatPostFieldValue({
dataId: this.getDataId(),
oldlistdata: this.detailsData,
value: postdata.mold_production_order_component
});
postdata.mold_production_order_component_processes = this.$mk.formatPostFieldValue({
dataId: this.getDataId(),
oldlistdata: this.detailsData2,
value: postdata.mold_production_order_component_processes
});
}
// 提交数据
this.$mk.post({
url: action,
loading: "保存中...",
data: postdata,
useBigInt: true,
}).then((a) => { // 成功回调
if (a.code == "200") {
this.$mk.success("保存成功");
if (!this.isEdit) { // 如果是新增模式,关闭当前页面
this.back();
}
} else {
this.$mk.error(a.msg || a.message);
}
});
};
// 验证表单
this.$mk.validateForm({ form: this.$refs.xForm }).then(() => { // 验证表单
save(); // 提交保存
}).catch(count => { // 验证失败
this.$mk.error(`存在${count}项错误,请检查`);
});
},
// 取消 返回
cancel() {
this.back();
},
pageApproved() {
let dataId = this.getDataId();
if (!dataId) {
return;
}
let sendApproved = () => {
this.$mk.post({
url: `${BASE_URL.BASE_URL}/MoldProductionOrder/v1/mold/production/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("");
},
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;
let template = JSON.parse(JSON.stringify(settings.printTemplate));
let addedHeight = 0;
let departments = [];
this.detailsData2.forEach(item => {
if (item.department_detail && item.department_detail.name && !departments.filter(a => a.id == item.department_detail.id + "").length) {
departments.push({
id: item.department_detail.id + "",
name: item.department_detail.name
})
}
})
departments.forEach((department, index) => {
let details2 = JSON.parse(JSON.stringify(this.detailsData2));
let ds2 = [];
let component_line_list = [];
details2.forEach(item => {
if (item.component_detail && item.component_detail.name) {
item.component_detail_name = item.component_detail.name;
}
if (item.department_detail && item.department_detail.name) {
if ((item.department_detail.id + '') != (department.id + '')) {
return;
}
item.department_detail_name = item.department_detail.name;
}
if (!item.component_id) {
return;
}
if (!component_line_list.filter(a => a == item.component_line).length) {
component_line_list.push(item.component_line);
}
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);
item.progress = (item.progress || 0) + "%";
ds2.push(item);
});
let groups = []; //按部件进行分组
component_line_list.forEach(component_line => {
let group = {};
let d1 = [];
let d2 = [];
let ds1 = JSON.parse(JSON.stringify(this.detailsData));
ds1.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;
}
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);
item.production_type = item.production_type == 1 ? '正常布产' : '委外布产';
if (item.component_line == component_line) {
d1.push(item);
}
})
ds2.forEach(item => {
if (item.component_line == component_line) {
d2.push(item);
}
})
group.d1 = d1;
group.d2 = d2;
groups.push(group);
})
let ele2 = JSON.parse(JSON.stringify(settings.printTemplateDepartment));
let ele3 = JSON.parse(JSON.stringify(settings.printTemplateProgress));
ele2.options.field = 'department_' + index;
ele3.options.field = 'progress_' + index;
let progress = 0;
var dps = this.detailsData3.filter(a => a.id.toString() == department.id.toString());
if (dps.length) {
progress = dps[0].progress;
}
tdata['department_' + index] = department.name;
tdata['progress_' + index] = progress + "%";
ele2.options.top += addedHeight;
ele3.options.top += addedHeight;
template.panels[0].printElements.push(ele2)
template.panels[0].printElements.push(ele3)
groups.forEach((group, groupIndex) => {
let key1 = 'details1_' + index + "_" + groupIndex;
let key2 = 'details2_' + index + "_" + groupIndex;
tdata[key1] = group.d1;
tdata[key2] = group.d2;
let elet1 = JSON.parse(JSON.stringify(settings.printTemplateTable1))
let elet2 = JSON.parse(JSON.stringify(settings.printTemplateTable2))
elet1.options.field = key1;
elet2.options.field = key2;
elet1.options.top += addedHeight;
elet2.options.top += addedHeight;
template.panels[0].printElements.push(elet1)
template.panels[0].printElements.push(elet2)
addedHeight += 80;
})
addedHeight += 20;
});
hiprint.init(); // 初始化打印组件
var hiprintTemplate = new hiprint.PrintTemplate({ // 创建打印模板
template: template
});
hiprintTemplate.print(tdata, { printer: '', title: '工艺布产' }); // 打印
},
},
// 监听属性
watch: {
}
};
</script>
<style scoped lang="less">
.page-body {
padding: 30px;
background: @base-bg-color;
}
.formtabs .ant-tabs-tabpane {
/* background: white; */
padding: 12px;
}
.gridPanel {
height: calc(100vh - 600px);
}
.footerbar {
padding-left: 10px;
}
.imagePanel {
cursor: pointer;
padding: 10px;
width: 100px;
img {
width: 80px;
height: 80px;
}
}
.oplinks2 svg {
width: 18px;
height: 18px;
}
.oplinks2 i {
margin-left: 5px;
}
</style>