This commit is contained in:
parent
c53295bdad
commit
2ff447e713
|
|
@ -3,27 +3,30 @@
|
||||||
<vxe-pulldown class="edit-down-pulldown" ref="xDown" transfer>
|
<vxe-pulldown class="edit-down-pulldown" ref="xDown" transfer>
|
||||||
<template>
|
<template>
|
||||||
<vxe-input class="edit-down-input" ref="inputx" :type="enalbedPopup ? 'search' : 'input'" v-model="textboxValue"
|
<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"
|
:readonly="readonly" @keyup="keyupEvent" @keydown="keydownEvent" :placeholder="placeholder"
|
||||||
@suffix-click="suffixClick" @focus="onFocus" @search-click="popupEvent"></vxe-input>
|
@click="clickEvent"
|
||||||
|
@suffix-click="suffixClick" @focus="onFocus" @search-click="popupEvent"></vxe-input>
|
||||||
|
|
||||||
<div style="margin-top: 10px;" v-if="buttons && buttons.length">
|
<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"
|
<a-icon v-for="(btn, index) in buttons" :key="index" @click="buttonClick(btn)" :type="btn.type"
|
||||||
:style="{ fontSize: '26px', color: '#08c' }"></a-icon>
|
:style="{ fontSize: '26px', color: '#08c' }"></a-icon>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
|
|
||||||
<vxe-grid :keyboard-config="{ isArrow: true }" auto-resize height="400" ref="xgrid"
|
<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"
|
:row-config="{ isCurrent: true, isHover: true }" :loading="loading" :pager-config="tablePage"
|
||||||
:columns="tableColumn" :treeConfig="treeConfig" @cell-click="selectEvent" @page-change="pageChangeEvent">
|
:data="tableData"
|
||||||
|
:columns="tableColumn" :treeConfig="treeConfig" @cell-click="selectEvent"
|
||||||
|
@page-change="pageChangeEvent">
|
||||||
</vxe-grid>
|
</vxe-grid>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</vxe-pulldown>
|
</vxe-pulldown>
|
||||||
|
|
||||||
<vxe-modal show-footer class-name="vxe-table--ignore-clear edit-popup-box" title="选择数据" :width="modalWidth"
|
<vxe-modal show-footer class-name="vxe-table--ignore-clear edit-popup-box" title="选择数据" :width="modalWidth"
|
||||||
:height="modalHeight" v-model="modalVisible" @confirm="confirmEvent">
|
:height="modalHeight" v-model="modalVisible" @confirm="confirmEvent">
|
||||||
<!-- vxe-modal 有以下属性
|
<!-- vxe-modal 有以下属性
|
||||||
show-footer 显示底部按钮
|
show-footer 显示底部按钮
|
||||||
width 宽度
|
width 宽度
|
||||||
|
|
@ -42,7 +45,6 @@
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import BASE_URL from '@/services/base/api.js'; // 加载api地址
|
import BASE_URL from '@/services/base/api.js'; // 加载api地址
|
||||||
export default {
|
export default {
|
||||||
name: 'MkFormDataSelector', // 组件名称
|
name: 'MkFormDataSelector', // 组件名称
|
||||||
|
|
@ -81,8 +83,8 @@ export default {
|
||||||
popupPageMode: '', // 弹出框页面模式
|
popupPageMode: '', // 弹出框页面模式
|
||||||
|
|
||||||
tableColumn: [ // 表格列
|
tableColumn: [ // 表格列
|
||||||
{ field: 'name', title: '名称' }, // 字段名称,字段标题
|
{field: 'name', title: '名称'}, // 字段名称,字段标题
|
||||||
{ field: 'code', title: '编码' } // 字段名称,字段标题
|
{field: 'code', title: '编码'} // 字段名称,字段标题
|
||||||
],
|
],
|
||||||
treeConfig: null,
|
treeConfig: null,
|
||||||
modalWidth: 800, // 弹出框宽度
|
modalWidth: 800, // 弹出框宽度
|
||||||
|
|
@ -99,7 +101,7 @@ export default {
|
||||||
this.load() // 加载
|
this.load() // 加载
|
||||||
this.heightInit(); // 高度初始化
|
this.heightInit(); // 高度初始化
|
||||||
|
|
||||||
const { params } = this
|
const {params} = this
|
||||||
if (params.autoFocus) {
|
if (params.autoFocus) {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
|
|
||||||
|
|
@ -114,22 +116,20 @@ export default {
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
value() {
|
value() {
|
||||||
const { params } = this
|
const {params} = this
|
||||||
if (params.dataType == "string") {
|
if (params.dataType == "string") {
|
||||||
this.textboxValue = this.value || "";
|
this.textboxValue = this.value || "";
|
||||||
}
|
} else if (params.dataType == "object") {
|
||||||
else if (params.dataType == "object") {
|
|
||||||
if (this.value) {
|
if (this.value) {
|
||||||
this.textboxValue = this.getShowValue({ obj: this.value, path: params.textField });
|
this.textboxValue = this.getShowValue({obj: this.value, path: params.textField});
|
||||||
}
|
}
|
||||||
}
|
} else if (this.value && this.value[1]) {
|
||||||
else if (this.value && this.value[1]) {
|
|
||||||
this.textboxValue = this.value[1];
|
this.textboxValue = this.value[1];
|
||||||
} else {
|
} else {
|
||||||
this.textboxValue = "";
|
this.textboxValue = "";
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
params(){
|
params() {
|
||||||
|
|
||||||
console.log(this.params)
|
console.log(this.params)
|
||||||
}
|
}
|
||||||
|
|
@ -137,7 +137,7 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
|
|
||||||
getShowValue({ obj, path }) {
|
getShowValue({obj, path}) {
|
||||||
const parts = path.split('.');
|
const parts = path.split('.');
|
||||||
let value = obj;
|
let value = obj;
|
||||||
for (let i = 0; i < parts.length; i++) {
|
for (let i = 0; i < parts.length; i++) {
|
||||||
|
|
@ -158,7 +158,7 @@ export default {
|
||||||
|
|
||||||
|
|
||||||
load() { // 加载
|
load() { // 加载
|
||||||
const { params } = this // 参数
|
const {params} = this // 参数
|
||||||
if (params) { // 如果参数存在
|
if (params) { // 如果参数存在
|
||||||
this.modelName = params.modelName; // 模块名称
|
this.modelName = params.modelName; // 模块名称
|
||||||
this.orderBy = params.orderBy; // 排序
|
this.orderBy = params.orderBy; // 排序
|
||||||
|
|
@ -188,23 +188,19 @@ export default {
|
||||||
|
|
||||||
if (params.dataType == "string") {
|
if (params.dataType == "string") {
|
||||||
this.textboxValue = this.value || "";
|
this.textboxValue = this.value || "";
|
||||||
}
|
} else if (params.dataType == "object") {
|
||||||
else if (params.dataType == "object") {
|
|
||||||
if (this.value) {
|
if (this.value) {
|
||||||
this.textboxValue = this.getShowValue({ obj: this.value, path: params.textField });
|
this.textboxValue = this.getShowValue({obj: this.value, path: params.textField});
|
||||||
}
|
}
|
||||||
}
|
} else if (params && params.dataType == 'mapper') {
|
||||||
else if (params && params.dataType == 'mapper') {
|
|
||||||
this.textboxValue = this.row[params.showField];
|
this.textboxValue = this.row[params.showField];
|
||||||
}
|
} else if (this.value && this.value[1]) {
|
||||||
else if (this.value && this.value[1]) {
|
|
||||||
this.textboxValue = this.value[1];
|
this.textboxValue = this.value[1];
|
||||||
} else {
|
} else {
|
||||||
this.textboxValue = "";
|
this.textboxValue = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
let f = params.listdataFieldName || "Records";
|
let f = params.listdataFieldName || "Records";
|
||||||
this.getData().then(data => {
|
this.getData().then(data => {
|
||||||
if ('Total' in data) {
|
if ('Total' in data) {
|
||||||
|
|
@ -218,7 +214,7 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
getData(key) { // 获取数据
|
getData(key) { // 获取数据
|
||||||
var params = Object.assign({}, this.params.actionParams || {}) // 定义请求参数
|
var params = JSON.parse(JSON.stringify(this.params.actionParams || {}))
|
||||||
|
|
||||||
|
|
||||||
params.page = this.tablePage.currentPage; // 当前页码
|
params.page = this.tablePage.currentPage; // 当前页码
|
||||||
|
|
@ -247,11 +243,11 @@ export default {
|
||||||
},
|
},
|
||||||
clickEvent() { // 点击事件
|
clickEvent() { // 点击事件
|
||||||
|
|
||||||
const { params } = this
|
const {params} = this
|
||||||
if (this.readonly) { // 如果只读
|
if (this.readonly) { // 如果只读
|
||||||
return; // 返回
|
return; // 返回
|
||||||
}
|
}
|
||||||
if(params.isClickToLoad){
|
if (params.isClickToLoad) {
|
||||||
const cellValue = this.textboxValue;
|
const cellValue = this.textboxValue;
|
||||||
let f = params.listdataFieldName || "Records";
|
let f = params.listdataFieldName || "Records";
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
|
@ -271,7 +267,7 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
handleScanInput(event) {
|
handleScanInput(event) {
|
||||||
const { params } = this
|
const {params} = this
|
||||||
const input = event.target;
|
const input = event.target;
|
||||||
const inputValue = input.value;
|
const inputValue = input.value;
|
||||||
this.scanEntry = input.value;
|
this.scanEntry = input.value;
|
||||||
|
|
@ -286,7 +282,7 @@ export default {
|
||||||
|
|
||||||
}, 10);
|
}, 10);
|
||||||
if (params.scan) {
|
if (params.scan) {
|
||||||
params.scan({ value: inputValue, input: input })
|
params.scan({value: inputValue, input: input})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -295,13 +291,13 @@ export default {
|
||||||
},
|
},
|
||||||
keydownEvent(e) {
|
keydownEvent(e) {
|
||||||
|
|
||||||
const { params } = this
|
const {params} = this
|
||||||
if (params.scan) {
|
if (params.scan) {
|
||||||
this.handleScanInput(e.$event);
|
this.handleScanInput(e.$event);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
keyupEvent(e) {
|
keyupEvent(e) {
|
||||||
const { params } = this
|
const {params} = this
|
||||||
if (this.readonly) {
|
if (this.readonly) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -338,19 +334,17 @@ export default {
|
||||||
if (params.dataType == "string") {
|
if (params.dataType == "string") {
|
||||||
this.$emit('input', "");
|
this.$emit('input', "");
|
||||||
if (params.onDataChanged) {
|
if (params.onDataChanged) {
|
||||||
params.onDataChanged({ value: "" })
|
params.onDataChanged({value: ""})
|
||||||
}
|
}
|
||||||
}
|
} else if (params.dataType == "object") {
|
||||||
else if (params.dataType == "object") {
|
|
||||||
this.$emit('input', null);
|
this.$emit('input', null);
|
||||||
if (params.onDataChanged) {
|
if (params.onDataChanged) {
|
||||||
params.onDataChanged({ value: null })
|
params.onDataChanged({value: null})
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
this.$emit('input', ["", ""]);
|
this.$emit('input', ["", ""]);
|
||||||
if (params.onDataChanged) {
|
if (params.onDataChanged) {
|
||||||
params.onDataChanged({ value: ["", ""] })
|
params.onDataChanged({value: ["", ""]})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -368,8 +362,8 @@ export default {
|
||||||
this.tableData = data[f];
|
this.tableData = data[f];
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
onFocus(){
|
onFocus() {
|
||||||
const { params } = this
|
const {params} = this
|
||||||
if (params.focusToLoad) {
|
if (params.focusToLoad) {
|
||||||
const cellValue = this.textboxValue;
|
const cellValue = this.textboxValue;
|
||||||
let f = params.listdataFieldName || "Records";
|
let f = params.listdataFieldName || "Records";
|
||||||
|
|
@ -393,11 +387,11 @@ export default {
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
pageChangeEvent({ currentPage, pageSize }) { // 分页改变事件
|
pageChangeEvent({currentPage, pageSize}) { // 分页改变事件
|
||||||
this.tablePage.currentPage = currentPage
|
this.tablePage.currentPage = currentPage
|
||||||
this.tablePage.pageSize = pageSize
|
this.tablePage.pageSize = pageSize
|
||||||
this.loading = true
|
this.loading = true
|
||||||
const { params } = this
|
const {params} = this
|
||||||
let f = params.listdataFieldName || "Records";
|
let f = params.listdataFieldName || "Records";
|
||||||
this.getData(this.lastKey).then(data => {
|
this.getData(this.lastKey).then(data => {
|
||||||
|
|
||||||
|
|
@ -411,28 +405,24 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
selectEvent(e) { // 选择事件
|
selectEvent(e) { // 选择事件
|
||||||
const { params } = this
|
const {params} = this
|
||||||
let textField = params.textField;
|
let textField = params.textField;
|
||||||
this.textboxValue = e.row[textField];
|
this.textboxValue = e.row[textField];
|
||||||
if (params.dataType == "string") {
|
if (params.dataType == "string") {
|
||||||
this.$emit('input', e.row[textField]);
|
this.$emit('input', e.row[textField]);
|
||||||
}
|
} else if (params.dataType == "object") {
|
||||||
else if (params.dataType == "object") {
|
|
||||||
this.$emit('input', e.row);
|
this.$emit('input', e.row);
|
||||||
}
|
} else if (params.dataType == 'mapper') {
|
||||||
|
|
||||||
else if (params.dataType == 'mapper') {
|
|
||||||
if (params.showField) {
|
if (params.showField) {
|
||||||
this.$emit('input', e.row[params.showField]);
|
this.$emit('input', e.row[params.showField]);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
this.$emit('input', [e.row.ID, e.row[textField]]);
|
this.$emit('input', [e.row.ID, e.row[textField]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (params.onDataChanged) {
|
if (params.onDataChanged) {
|
||||||
params.onDataChanged({ value: [e.row.ID, e.row[textField]], data: e.row })
|
params.onDataChanged({value: [e.row.ID, e.row[textField]], data: e.row})
|
||||||
}
|
}
|
||||||
this.$refs.xDown.hidePanel()
|
this.$refs.xDown.hidePanel()
|
||||||
},
|
},
|
||||||
|
|
@ -441,29 +431,26 @@ export default {
|
||||||
this.modalVisible = true;
|
this.modalVisible = true;
|
||||||
},
|
},
|
||||||
confirmEvent() {
|
confirmEvent() {
|
||||||
const { params } = this
|
const {params} = this
|
||||||
let selectedRow = this.$refs.popup.getSelectdRow();
|
let selectedRow = this.$refs.popup.getSelectdRow();
|
||||||
let textField = params.textField;
|
let textField = params.textField;
|
||||||
this.textboxValue = selectedRow[textField];
|
this.textboxValue = selectedRow[textField];
|
||||||
this.modalVisible = false;
|
this.modalVisible = false;
|
||||||
if (params.dataType == "string") {
|
if (params.dataType == "string") {
|
||||||
this.$emit('input', selectedRow[textField]);
|
this.$emit('input', selectedRow[textField]);
|
||||||
}
|
} else if (params.dataType == "object") {
|
||||||
else if (params.dataType == "object") {
|
|
||||||
this.$emit('input', selectedRow);
|
this.$emit('input', selectedRow);
|
||||||
}
|
} else if (params.dataType == 'mapper') {
|
||||||
else if (params.dataType == 'mapper') {
|
|
||||||
if (params.showField) {
|
if (params.showField) {
|
||||||
this.$emit('input', selectedRow[params.showField]);
|
this.$emit('input', selectedRow[params.showField]);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
this.$emit('input', [selectedRow.ID, selectedRow[textField]]);
|
this.$emit('input', [selectedRow.ID, selectedRow[textField]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (params.onDataChanged) {
|
if (params.onDataChanged) {
|
||||||
params.onDataChanged({ value: [selectedRow.ID, selectedRow[textField]], data: selectedRow })
|
params.onDataChanged({value: [selectedRow.ID, selectedRow[textField]], data: selectedRow})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -476,7 +463,6 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.edit-down-wrapper {
|
.edit-down-wrapper {
|
||||||
width: 600px;
|
width: 600px;
|
||||||
height: 300px;
|
height: 300px;
|
||||||
|
|
|
||||||
|
|
@ -25,25 +25,21 @@
|
||||||
<!-- 基础信息 End -->
|
<!-- 基础信息 End -->
|
||||||
<!-- 料品属性 Start -->
|
<!-- 料品属性 Start -->
|
||||||
<vxe-form :data="options.formOptions2.data" ref="xForm2" :title-width="options.formOptions2.titleWidth"
|
<vxe-form :data="options.formOptions2.data" ref="xForm2" :title-width="options.formOptions2.titleWidth"
|
||||||
:title-align="options.formOptions2.titleAlign" :rules="options.formOptions2.rules"
|
:title-align="options.formOptions2.titleAlign" :rules="options.formOptions2.rules"
|
||||||
:items="options.formOptions2.items" titleColon>
|
:items="options.formOptions2.items" titleColon>
|
||||||
</vxe-form>
|
</vxe-form>
|
||||||
<!-- 料品属性 End -->
|
<!-- 料品属性 End -->
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- <a-tab-pane key="2" tab="料品自定义属性">-->
|
||||||
<!-- <a-tab-pane key="2" tab="料品自定义属性">-->
|
<!-- -->
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- </a-tab-pane>-->
|
||||||
|
|
||||||
<!-- </a-tab-pane>-->
|
|
||||||
</a-tabs>
|
</a-tabs>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="footerbar">
|
<div class="footerbar">
|
||||||
<a-button type="primary" @click="ok">确定</a-button>
|
<a-button type="primary" @click="ok">确定</a-button>
|
||||||
<a-button @click="cancel">取消</a-button>
|
<a-button @click="cancel">取消</a-button>
|
||||||
|
|
@ -64,8 +60,7 @@ export default {
|
||||||
type: String,
|
type: String,
|
||||||
default: "edit"
|
default: "edit"
|
||||||
},
|
},
|
||||||
dataId: {
|
dataId: {}
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
|
|
@ -202,8 +197,7 @@ export default {
|
||||||
isEdit: false,
|
isEdit: false,
|
||||||
// 表单数据
|
// 表单数据
|
||||||
formOptions: {
|
formOptions: {
|
||||||
data: {
|
data: {},
|
||||||
},
|
|
||||||
// 标题宽度
|
// 标题宽度
|
||||||
titleWidth: 150,
|
titleWidth: 150,
|
||||||
// 标题对齐方式
|
// 标题对齐方式
|
||||||
|
|
@ -232,6 +226,7 @@ export default {
|
||||||
{ field: 'code', title: '编号', span: 12, itemRender: { name: '$input' } },
|
{ field: 'code', title: '编号', span: 12, itemRender: { name: '$input' } },
|
||||||
{ field: 'name', title: '名称', span: 12, itemRender: { name: '$input' } },
|
{ field: 'name', title: '名称', span: 12, itemRender: { name: '$input' } },
|
||||||
{ title: '分类', span: 12, slots: { default: 'sort_id' } },
|
{ title: '分类', span: 12, slots: { default: 'sort_id' } },
|
||||||
|
{ field: 'price', title: '单价', dataRule: { type: 'number' }, span: 12, itemRender: { name: '$input', props: { type: "number" } } },
|
||||||
{ field: 'size', title: '尺寸', span: 12, itemRender: { name: '$input' } },
|
{ field: 'size', title: '尺寸', span: 12, itemRender: { name: '$input' } },
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
@ -423,34 +418,23 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
// 新增模式表单项
|
// 新增模式表单项
|
||||||
addModeItems: [
|
addModeItems: [],
|
||||||
|
|
||||||
],
|
|
||||||
|
|
||||||
formOptions2Done: false,
|
formOptions2Done: false,
|
||||||
formOptions2: {
|
formOptions2: {
|
||||||
data: {
|
data: {},
|
||||||
|
|
||||||
},
|
|
||||||
// 标题宽度
|
// 标题宽度
|
||||||
titleWidth: 150,
|
titleWidth: 150,
|
||||||
// 标题对齐方式
|
// 标题对齐方式
|
||||||
titleAlign: 'right',
|
titleAlign: 'right',
|
||||||
|
|
||||||
// 表单校验规则
|
// 表单校验规则
|
||||||
rules: {
|
rules: {},
|
||||||
|
|
||||||
},
|
|
||||||
// 表单项
|
// 表单项
|
||||||
items: [
|
items: []
|
||||||
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -499,11 +483,15 @@ export default {
|
||||||
a.data.attribute.forEach(item => {
|
a.data.attribute.forEach(item => {
|
||||||
|
|
||||||
let formItem = { field: '', title: '', span: 12, itemRender: {} };
|
let formItem = { field: '', title: '', span: 12, itemRender: {} };
|
||||||
let groupName = item.category.name;
|
let groupName = item.category.name;
|
||||||
if(groupName && !groupNames.filter(a=>a == groupName).length){
|
if (groupName && !groupNames.filter(a => a == groupName).length) {
|
||||||
|
|
||||||
this.options.formOptions2.items.push({ span: 24, itemRender: { name:"MkFormInputShow" ,props:{ showType:"divider",header:groupName } },showTitle:false });
|
this.options.formOptions2.items.push({
|
||||||
groupNames.push(groupName);
|
span: 24,
|
||||||
|
itemRender: { name: "MkFormInputShow", props: { showType: "divider", header: groupName } },
|
||||||
|
showTitle: false
|
||||||
|
});
|
||||||
|
groupNames.push(groupName);
|
||||||
}
|
}
|
||||||
|
|
||||||
formItem.field = "attr" + item.id;
|
formItem.field = "attr" + item.id;
|
||||||
|
|
@ -514,8 +502,7 @@ export default {
|
||||||
|
|
||||||
formItem.itemRender.name = "$input";
|
formItem.itemRender.name = "$input";
|
||||||
formData[formItem.field] = 0;
|
formData[formItem.field] = 0;
|
||||||
}
|
} else if (item.typeName == "3" ||
|
||||||
else if (item.typeName == "3" ||
|
|
||||||
item.typeName == "4" ||
|
item.typeName == "4" ||
|
||||||
item.typeName == "5") {
|
item.typeName == "5") {
|
||||||
|
|
||||||
|
|
@ -523,16 +510,14 @@ export default {
|
||||||
formItem.itemRender.props = { type: "date" };
|
formItem.itemRender.props = { type: "date" };
|
||||||
|
|
||||||
formData[formItem.field] = '';
|
formData[formItem.field] = '';
|
||||||
}
|
} else if (item.typeName == "6") {
|
||||||
else if (item.typeName == "6") {
|
|
||||||
formItem.itemRender.name = "$select";
|
formItem.itemRender.name = "$select";
|
||||||
formItem.itemRender.options = getOptions(item.id);
|
formItem.itemRender.options = getOptions(item.id);
|
||||||
if (!formItem.itemRender.options.length) {
|
if (!formItem.itemRender.options.length) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
formData[formItem.field] = formItem.itemRender.options[0].value;
|
formData[formItem.field] = formItem.itemRender.options[0].value;
|
||||||
}
|
} else if (item.typeName == "7") {
|
||||||
else if (item.typeName == "7") {
|
|
||||||
formItem.itemRender.name = "$switch";
|
formItem.itemRender.name = "$switch";
|
||||||
formItem.itemRender.props = { openLabel: '是', openValue: "true", closeValue: "false", closeLabel: '否' };
|
formItem.itemRender.props = { openLabel: '是', openValue: "true", closeValue: "false", closeLabel: '否' };
|
||||||
|
|
||||||
|
|
@ -565,9 +550,6 @@ export default {
|
||||||
dataInit() {
|
dataInit() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 获取路由的id参数
|
// 获取路由的id参数
|
||||||
let dataId = this.getDataId();
|
let dataId = this.getDataId();
|
||||||
// 如果有id参数,说明是编辑模式
|
// 如果有id参数,说明是编辑模式
|
||||||
|
|
@ -754,7 +736,7 @@ export default {
|
||||||
this.back();
|
this.back();
|
||||||
}
|
}
|
||||||
}).catch((a) => { // 失败回调
|
}).catch((a) => { // 失败回调
|
||||||
console.log("a.data.code"+a)
|
console.log("a.data.code" + a)
|
||||||
this.$mk.error(a.data.msg); // 显示错误信息
|
this.$mk.error(a.data.msg); // 显示错误信息
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -806,9 +788,7 @@ export default {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
// 监听属性
|
// 监听属性
|
||||||
watch: {
|
watch: {}
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,7 @@ import BASE_URL from '@/services/mes/api.js';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
i18n: require("./i18n"),
|
i18n: require("./i18n"),
|
||||||
props: {
|
props: {},
|
||||||
|
|
||||||
},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
pageOptions: {}
|
pageOptions: {}
|
||||||
|
|
@ -75,18 +73,18 @@ export default {
|
||||||
},
|
},
|
||||||
// 搜索区配置
|
// 搜索区配置
|
||||||
searchRules: [
|
searchRules: [
|
||||||
{ key: "title", mode: "like" },
|
{key: "title", mode: "like"},
|
||||||
{ key: "desc", mode: "like" }
|
{key: "desc", mode: "like"}
|
||||||
],
|
],
|
||||||
//搜索区
|
//搜索区
|
||||||
searchFormItems: [ // 子项
|
searchFormItems: [ // 子项
|
||||||
{ field: 'title', title: '标题', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入标题' } } },
|
{field: 'title', title: '标题', span: 5, itemRender: {name: '$input', props: {placeholder: '请输入标题'}}},
|
||||||
{ field: 'desc', title: '描述', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入描述' } } },
|
{field: 'desc', title: '描述', span: 5, itemRender: {name: '$input', props: {placeholder: '请输入描述'}}},
|
||||||
{ span: 8, slots: { default: 'date' } }, // 自定义列
|
{span: 8, slots: {default: 'date'}}, // 自定义列
|
||||||
{
|
{
|
||||||
align: 'right', span: 4, itemRender: { // 按钮列
|
align: 'right', span: 4, itemRender: { // 按钮列
|
||||||
name: '$buttons', children: [{ props: { type: 'submit', content: '搜索', status: 'primary' } }, // 搜索按钮
|
name: '$buttons', children: [{props: {type: 'submit', content: '搜索', status: 'primary'}}, // 搜索按钮
|
||||||
{ props: { type: 'reset', content: '重置' } }]
|
{props: {type: 'reset', content: '重置'}}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
@ -99,31 +97,45 @@ export default {
|
||||||
id: 'datagrid_1', // 表格唯一标识
|
id: 'datagrid_1', // 表格唯一标识
|
||||||
|
|
||||||
columns: [
|
columns: [
|
||||||
{ type: 'checkbox', width: '40' }, // 多选框
|
{type: 'checkbox', width: '40'}, // 多选框
|
||||||
{ type: 'seq', width: '40' }, // 序号
|
{type: 'seq', width: '40'}, // 序号
|
||||||
|
|
||||||
{ title: '操作', slots: { default: 'op' }, width: 120 },
|
{title: '操作', slots: {default: 'op'}, width: 120},
|
||||||
|
|
||||||
// =============================== 表格列 自动生成 Start ===============================
|
// =============================== 表格列 自动生成 Start ===============================
|
||||||
|
|
||||||
{ field: 'code', sortable: true, title: '编码', width: 250 }, // 编码
|
{field: 'code', sortable: true, title: '编码', width: 250}, // 编码
|
||||||
{ field: 'name', sortable: true, title: '名称', width: 250 },
|
{field: 'name', sortable: true, title: '名称', width: 250},
|
||||||
|
{field: 'price', sortable: true, title: '单价(¥)', width: 120},
|
||||||
|
|
||||||
|
|
||||||
|
{field: 'spec', title: '规格型号', width: 150},
|
||||||
|
{field: 'size', title: '尺寸', width: 150},
|
||||||
|
{field: 'color', title: '颜色', width: 150},
|
||||||
|
{field: 'face', title: '花面', width: 150},
|
||||||
|
{field: 'molding', title: '成型方式', width: 150},
|
||||||
|
{field: 'production_type', title: '布产方式', width: 150},
|
||||||
|
|
||||||
{ field: 'spec', title: '规格型号', width: 150 },
|
{field: 'theoretical_load', title: '理论装车量', width: 150},
|
||||||
{ field: 'size', title: '尺寸', width: 150 },
|
{field: 'soil', title: '土质', width: 150},
|
||||||
{ field: 'color', title: '颜色', width: 150 },
|
{field: 'unit', title: '单位', width: 150},
|
||||||
{ field: 'face', title: '花面', width: 150 },
|
|
||||||
{ field: 'molding', title: '成型方式', width: 150 },
|
|
||||||
{ field: 'production_type', title: '布产方式', width: 150 },
|
|
||||||
|
|
||||||
{ field: 'theoretical_load', title: '理论装车量', width: 150 },
|
{
|
||||||
{ field: 'soil', title: '土质', width: 150 },
|
field: 'create_time',
|
||||||
{ field: 'unit', title: '单位', width: 150 },
|
formatter: 'formatDate',
|
||||||
|
width: 100,
|
||||||
{ field: 'create_time', formatter: 'formatDate', width: 100, sortable: true, title: '创建时间', showHeaderOverflow: true }, // 创建时间
|
sortable: true,
|
||||||
{ field: 'update_time', formatter: 'formatDate', width: 100, sortable: true, title: '更新时间', showHeaderOverflow: true }, // 更新时间
|
title: '创建时间',
|
||||||
|
showHeaderOverflow: true
|
||||||
|
}, // 创建时间
|
||||||
|
{
|
||||||
|
field: 'update_time',
|
||||||
|
formatter: 'formatDate',
|
||||||
|
width: 100,
|
||||||
|
sortable: true,
|
||||||
|
title: '更新时间',
|
||||||
|
showHeaderOverflow: true
|
||||||
|
}, // 更新时间
|
||||||
|
|
||||||
// =============================== 表格列 自动生成 Start ===============================
|
// =============================== 表格列 自动生成 Start ===============================
|
||||||
|
|
||||||
|
|
@ -143,9 +155,7 @@ export default {
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {}
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -337,8 +337,9 @@ export default {
|
||||||
{ title: '操作', slots: { default: 'op' }, width: 120 },
|
{ title: '操作', slots: { default: 'op' }, width: 120 },
|
||||||
|
|
||||||
// =============================== 表格列 自动生成 Start ===============================
|
// =============================== 表格列 自动生成 Start ===============================
|
||||||
{ field: 'code', sortable: true, title: '编码', width: 250 }, // 编码
|
{ field: 'code', sortable: true, title: '编码', width: 100 }, // 编码
|
||||||
{ field: 'name', sortable: true, title: '名称', width: 250 },
|
{ field: 'name', sortable: true, title: '名称', width: 250 },
|
||||||
|
{ field: 'price', sortable: true, title: '单价(¥)', width: 120 },
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -123,10 +123,11 @@ export default {
|
||||||
{field: 'product_detail.image', slots: {default: 'column2'}, sortable: true, title: '料品图片', width: 100}, // 产品详情
|
{field: 'product_detail.image', slots: {default: 'column2'}, sortable: true, title: '料品图片', width: 100}, // 产品详情
|
||||||
{field: 'product_detail.name', sortable: true, title: '料品名称', width: 250}, // 产品详情
|
{field: 'product_detail.name', sortable: true, title: '料品名称', width: 250}, // 产品详情
|
||||||
{field: 'product_detail.code', sortable: true, title: '料品编码', width: 120}, // 产品详情
|
{field: 'product_detail.code', sortable: true, title: '料品编码', width: 120}, // 产品详情
|
||||||
|
{field: 'product_detail.price', sortable: true, formatter: 'formatNumber', title: '单价(¥)', width: 120}, // 单价
|
||||||
|
{field: 'stock', sortable: true, title: '库存数量', width: 100}, // 库存数量
|
||||||
{field: 'product_detail.spec', sortable: true, title: '规格型号', width: 150}, // 规格型号
|
{field: 'product_detail.spec', sortable: true, title: '规格型号', width: 150}, // 规格型号
|
||||||
{field: 'product_detail.size', sortable: true, title: '尺寸', width: 100}, // 尺寸
|
{field: 'product_detail.size', sortable: true, title: '尺寸', width: 100}, // 尺寸
|
||||||
{field: 'product_detail.color', sortable: true, title: '颜色', width: 100}, // 颜色
|
{field: 'product_detail.color', sortable: true, title: '颜色', width: 100}, // 颜色
|
||||||
{field: 'stock', sortable: true, title: '库存数量', width: 100}, // 库存数量
|
|
||||||
{slots: {default: 'column1'}, sortable: true, title: '操作', width: 160, fixed: "right"}, // 出入库操作
|
{slots: {default: 'column1'}, sortable: true, title: '操作', width: 160, fixed: "right"}, // 出入库操作
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,13 @@
|
||||||
<basic-page-list :desc="desc" :options="pageOptions">
|
<basic-page-list :desc="desc" :options="pageOptions">
|
||||||
|
|
||||||
<template v-slot:column1="{ row }">
|
<template v-slot:column1="{ row }">
|
||||||
<a-button class="in" type="default" @click="LogDetail(row.id)">查看详情</a-button>
|
<a-button class="in" type="default" @click="LogDetail(row.id)">查看详情</a-button>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template v-slot:column2="{ row }">
|
||||||
|
<img v-if="row.product_detail.image" style="width:50px;height:50px;" :src="row.product_detail.image"
|
||||||
|
@click.stop="$hevueImgPreview(row.product_detail.image)"/>
|
||||||
|
<span v-else></span>
|
||||||
</template>
|
</template>
|
||||||
</basic-page-list>
|
</basic-page-list>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -13,9 +19,7 @@ import BASE_URL from '@/services/mes/api.js';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
i18n: require("../i18n"),
|
i18n: require("../i18n"),
|
||||||
props: {
|
props: {},
|
||||||
|
|
||||||
},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
pageOptions: {}
|
pageOptions: {}
|
||||||
|
|
@ -70,25 +74,97 @@ export default {
|
||||||
|
|
||||||
//搜索区
|
//搜索区
|
||||||
searchFormData: {
|
searchFormData: {
|
||||||
title: '',
|
warehouse_id: '',
|
||||||
desc: '',
|
warehouse_pos_id: '',
|
||||||
},
|
},
|
||||||
// 搜索区配置
|
// 搜索区配置
|
||||||
searchRules: [
|
searchRules: [
|
||||||
{ key: "materials", mode: "like" },
|
{key: "materials", mode: "like"},
|
||||||
{ key: "warehouse", mode: "like" },
|
{key: "warehouse_id", mode: "="},
|
||||||
{ key: "warehouse_pos", mode: "like" }
|
{key: "warehouse_pos_id", mode: "="}
|
||||||
|
|
||||||
],
|
],
|
||||||
//搜索区
|
|
||||||
searchFormItems: [ // 子项
|
searchFormItems: [ // 子项
|
||||||
{ field: 'materials', title: '料品', span: 4, itemRender: { name: '$input', props: { placeholder: '请输入料品' } } },
|
{
|
||||||
{ field: 'warehouse', title: '仓库', span: 4, itemRender: { name: '$input', props: { placeholder: '请输入仓库' } } },
|
field: 'materials',
|
||||||
{ field: 'warehouse_pos', title: '库位', span: 4, itemRender: { name: '$input', props: { placeholder: '请输入库位' } } },
|
title: '料品',
|
||||||
{ span: 8, slots: { default: 'date' } }, // 自定义列
|
span: 4,
|
||||||
|
itemRender: {name: '$input', props: {placeholder: '请输入料品'}}
|
||||||
|
}, {
|
||||||
|
title: '仓库', span: 5,
|
||||||
|
field: 'warehouse_id',
|
||||||
|
dataRule: {
|
||||||
|
fromField: "id",
|
||||||
|
saveField: "warehouse_id"
|
||||||
|
},
|
||||||
|
itemRender: {
|
||||||
|
name: 'MkFormDataSelector',
|
||||||
|
props: {
|
||||||
|
searchFieldNames: ["warehouse_title", "code"],
|
||||||
|
params: {
|
||||||
|
dataType: "object",
|
||||||
|
valueField: "id",
|
||||||
|
textField: "warehouse_title",
|
||||||
|
columns: [
|
||||||
|
{field: 'warehouse_title', title: '名称'},
|
||||||
|
{field: 'code', title: '编码'}
|
||||||
|
],
|
||||||
|
listdataFieldName: 'MesWarehouse',
|
||||||
|
dataUrl: `${BASE_URL.BASE_URL}/MesWarehouse/v1/mes/warehouse/list`,
|
||||||
|
onDataChanged: ({data}) => {
|
||||||
|
|
||||||
|
console.log(data)
|
||||||
|
// this.pageOptions.searchFormItems.data.warehouse_pos_detail = {};
|
||||||
|
// this.pageOptions.searchFormItems.data.warehouse_pos_id = null;
|
||||||
|
this.pageOptions.searchFormItems[2].itemRender.props.params.actionParams.search_rules[0].value = data.id.toString();
|
||||||
|
this.pageOptions.searchFormItems[2].itemRender.props.params = JSON.parse(JSON.stringify(this.pageOptions.searchFormItems[2].itemRender.props.params));
|
||||||
|
this.$forceUpdate(); // 强制刷新
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// {
|
||||||
|
// title: '仓位', span: 4,
|
||||||
|
// field: 'warehouse_pos_id',
|
||||||
|
// dataRule: {
|
||||||
|
// fromField: "id",
|
||||||
|
// saveField: "warehouse_pos_id"
|
||||||
|
// },
|
||||||
|
// itemRender: {
|
||||||
|
// name: 'MkFormDataSelector', props: {
|
||||||
|
// searchFieldNames: ["warehouse_id", "code"],
|
||||||
|
// params: {
|
||||||
|
// dataType: "object",
|
||||||
|
// valueField: "id",
|
||||||
|
// textField: "warehouse_location_name",
|
||||||
|
// columns: [
|
||||||
|
// {field: 'warehouse_location_name', title: '名称'},
|
||||||
|
// {field: 'code', title: '编码'}
|
||||||
|
// ],
|
||||||
|
// isClickToLoad: true,
|
||||||
|
// actionParams: {
|
||||||
|
// search_rules: [
|
||||||
|
// {
|
||||||
|
// column: "warehouse_id",
|
||||||
|
// mode: "=",
|
||||||
|
// value: "0"
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
//
|
||||||
|
// listdataFieldName: 'WarehouseLocation',
|
||||||
|
// dataUrl: `${BASE_URL.BASE_URL}/MesWarehouse/v1/warehouse/location/list`
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// {span: 8, slots: {default: 'date'}}, // 自定义列
|
||||||
{
|
{
|
||||||
align: 'right', span: 4, itemRender: { // 按钮列
|
align: 'right', span: 4, itemRender: { // 按钮列
|
||||||
name: '$buttons', children: [{ props: { type: 'submit', content: '搜索', status: 'primary' } }, // 搜索按钮
|
name: '$buttons', children: [{props: {type: 'submit', content: '搜索', status: 'primary'}}, // 搜索按钮
|
||||||
{ props: { type: 'reset', content: '重置' } }]
|
{props: {type: 'reset', content: '重置'}}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
@ -101,8 +177,8 @@ export default {
|
||||||
id: 'datagrid_1', // 表格唯一标识
|
id: 'datagrid_1', // 表格唯一标识
|
||||||
|
|
||||||
columns: [
|
columns: [
|
||||||
{ type: 'checkbox', width: '40' }, // 多选框
|
{type: 'checkbox', width: '40'}, // 多选框
|
||||||
{ type: 'seq', width: '40' }, // 序号
|
{type: 'seq', width: '40'}, // 序号
|
||||||
|
|
||||||
// "id,optional" validate:"" message:"" label:""` // 主键
|
// "id,optional" validate:"" message:"" label:""` // 主键
|
||||||
// "stock_pos_id,optional" validate:"" message:"" label:""` // 库位ID
|
// "stock_pos_id,optional" validate:"" message:"" label:""` // 库位ID
|
||||||
|
|
@ -136,27 +212,50 @@ export default {
|
||||||
//
|
//
|
||||||
// =============================== 表格列 自动生成 Start ===============================
|
// =============================== 表格列 自动生成 Start ===============================
|
||||||
|
|
||||||
{ field: 'id' , slots: { default: 'column1' }, sortable: true, title: '查看详情', width: 100 }, // 查看详情
|
{field: 'id', slots: {default: 'column1'}, sortable: true, title: '查看详情', width: 100}, // 查看详情
|
||||||
{ field: 'product_detail.name', sortable: true, title: '料品名称', width: 250 }, // 料品名称
|
{field: 'product_detail.image', slots: {default: 'column2'}, sortable: true, title: '料品图片', width: 100}, // 产品详情
|
||||||
{ field: 'in_type', sortable: true, title: '入库类型', width: 100 }, // 入库类型
|
{field: 'product_detail.name', sortable: true, title: '料品名称', width: 250}, // 料品名称
|
||||||
{ field: 'in_stock', sortable: true, title: '入库数量', width: 100 }, // 入库数量
|
{field: 'product_detail.code', sortable: true, title: '料品编号', width: 100}, // 料品名称
|
||||||
{ field: 'stock', sortable: true, title: '剩余库存', width: 100 }, // 入库数量
|
{field: 'in_type', sortable: true, title: '入库类型', width: 100}, // 入库类型
|
||||||
{ field: 'warehouse_idetail.name', sortable: true, title: '仓库', width: 150 }, // 仓库名称
|
{field: 'in_stock', sortable: true, title: '入库数量', width: 100}, // 入库数量
|
||||||
{ field: 'warehouse_pos_idetail.name', sortable: true, title: '库位', width: 150 }, // 库位信息
|
{field: 'price', sortable: true, formatter: 'formatNumber', title: '单价(¥)', width: 120}, // 单价
|
||||||
{ field: 'in_user_name', sortable: true, title: '入库人', width: 100 }, // 入库人
|
{field: 'total_price', sortable: true, formatter: 'formatNumber', title: '总价(¥)', width: 150}, // 出库数量
|
||||||
{ field: 'bill_date',formatter: 'formatDate', sortable: true, title: '单据日期', width: 100 }, // 单据日期
|
{field: 'stock', sortable: true, title: '剩余库存', width: 100}, // 入库数量
|
||||||
{ field: 'business_type', sortable: true, title: '业务类型', width: 100 }, // 业务类型
|
{field: 'warehouse_idetail.name', sortable: true, title: '仓库', width: 150}, // 仓库名称
|
||||||
{ field: 'business_no', sortable: true, title: '业务单号', width: 100 }, // 业务单号
|
{field: 'warehouse_pos_idetail.name', sortable: true, title: '库位', width: 150}, // 库位信息
|
||||||
{ field: 'out_type', sortable: true, title: '入库类型', width: 100 }, // 入库类型
|
{field: 'in_user_name', sortable: true, title: '入库人', width: 100}, // 入库人
|
||||||
{ field: 'handler_name', sortable: true, title: '经手人', width: 100 }, // 经手人
|
{field: 'bill_date', formatter: 'formatDate', sortable: true, title: '单据日期', width: 100}, // 单据日期
|
||||||
{ field: 'check_user_name', sortable: true, title: '验货人', width: 100 }, // 验货人
|
{field: 'business_type', sortable: true, title: '业务类型', width: 100}, // 业务类型
|
||||||
|
{field: 'business_no', sortable: true, title: '业务单号', width: 100}, // 业务单号
|
||||||
|
{field: 'out_type', sortable: true, title: '入库类型', width: 100}, // 入库类型
|
||||||
|
{field: 'handler_name', sortable: true, title: '经手人', width: 100}, // 经手人
|
||||||
|
{field: 'check_user_name', sortable: true, title: '验货人', width: 100}, // 验货人
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
field: 'in_time',
|
||||||
{ field: 'in_time', formatter: 'formatDate', width: 100, sortable: true, title: '入库时间', showHeaderOverflow: true }, // 入库时间
|
formatter: 'formatDate',
|
||||||
{ field: 'create_time', formatter: 'formatDate', width: 100, sortable: true, title: '创建时间', showHeaderOverflow: true }, // 创建时间
|
width: 100,
|
||||||
{ field: 'update_time', formatter: 'formatDate', width: 100, sortable: true, title: '更新时间', showHeaderOverflow: true }, // 更新时间
|
sortable: true,
|
||||||
|
title: '入库时间',
|
||||||
|
showHeaderOverflow: true
|
||||||
|
}, // 入库时间
|
||||||
|
{
|
||||||
|
field: 'create_time',
|
||||||
|
formatter: 'formatDate',
|
||||||
|
width: 100,
|
||||||
|
sortable: true,
|
||||||
|
title: '创建时间',
|
||||||
|
showHeaderOverflow: true
|
||||||
|
}, // 创建时间
|
||||||
|
{
|
||||||
|
field: 'update_time',
|
||||||
|
formatter: 'formatDate',
|
||||||
|
width: 100,
|
||||||
|
sortable: true,
|
||||||
|
title: '更新时间',
|
||||||
|
showHeaderOverflow: true
|
||||||
|
}, // 更新时间
|
||||||
// { field: 'stock_id', sortable: true, title: '库存id', width: 250 }, // 库存id
|
// { field: 'stock_id', sortable: true, title: '库存id', width: 250 }, // 库存id
|
||||||
|
|
||||||
// =============================== 表格列 自动生成 Start ===============================
|
// =============================== 表格列 自动生成 Start ===============================
|
||||||
|
|
@ -182,15 +281,13 @@ export default {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
LogDetail(id){
|
LogDetail(id) {
|
||||||
console.log("LogDetail:"+id)
|
console.log("LogDetail:" + id)
|
||||||
this.$router.push('/MesStock/MesStockOutInLogDetail/'+id) // 跳转路由
|
this.$router.push('/MesStock/MesStockOutInLogDetail/' + id) // 跳转路由
|
||||||
},
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {},
|
||||||
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,10 @@
|
||||||
<!-- 出入库记录 -->
|
<!-- 出入库记录 -->
|
||||||
<template>
|
<template>
|
||||||
<div class="page-body">
|
<div class="page-body">
|
||||||
|
|
||||||
|
<a-button type="primary" icon="eye" @click="preView">
|
||||||
|
预览
|
||||||
|
</a-button>
|
||||||
<h2> {{ title }}</h2>
|
<h2> {{ title }}</h2>
|
||||||
<!-- <vxe-form :data="formOptions.data" ref="xForm" :title-width="formOptions.titleWidth"-->
|
<!-- <vxe-form :data="formOptions.data" ref="xForm" :title-width="formOptions.titleWidth"-->
|
||||||
<!-- :title-align="formOptions.titleAlign" :rules="formOptions.rules" :items="formOptions.items" titleColon>-->
|
<!-- :title-align="formOptions.titleAlign" :rules="formOptions.rules" :items="formOptions.items" titleColon>-->
|
||||||
|
|
@ -23,23 +27,37 @@
|
||||||
{{ product_detail.code }}
|
{{ product_detail.code }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr class="table-row-2">
|
||||||
|
<th class="table-cell">
|
||||||
|
单价
|
||||||
|
</th>
|
||||||
|
<td class="table-cell" colspan="3">
|
||||||
|
{{ formOptions.data.price|formatNumber }} 元
|
||||||
|
</td>
|
||||||
|
<th class="table-cell">
|
||||||
|
总价
|
||||||
|
</th>
|
||||||
|
<td class="table-cell" colspan="6">
|
||||||
|
{{ formOptions.data.total_price|formatNumber }} 元
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr class="table-row-3" v-if="formOptions.data.out_time === 0">
|
<tr class="table-row-3" v-if="formOptions.data.out_time === 0">
|
||||||
<th class="table-cell">
|
<th class="table-cell">
|
||||||
入库数量
|
入库数量
|
||||||
</th>
|
</th>
|
||||||
<td class="table-cell" colspan="3">
|
<td class="table-cell" colspan="2">
|
||||||
{{ formOptions.data.in_stock }}
|
{{ formOptions.data.in_stock }}
|
||||||
</td>
|
</td>
|
||||||
<th class="table-cell">
|
<th class="table-cell">
|
||||||
单据日期
|
单据日期
|
||||||
</th>
|
</th>
|
||||||
<td class="table-cell" colspan="3">
|
<td class="table-cell" colspan="2">
|
||||||
{{ formOptions.data.bill_date | formatDate }}
|
{{ formOptions.data.bill_date | formatDate }}
|
||||||
</td>
|
</td>
|
||||||
<th class="table-cell">
|
<th class="table-cell">
|
||||||
入库人员姓名
|
入库人员姓名
|
||||||
</th>
|
</th>
|
||||||
<td class="table-cell" colspan="3">
|
<td class="table-cell" colspan="4">
|
||||||
{{ formOptions.data.in_user_name }}
|
{{ formOptions.data.in_user_name }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
@ -47,19 +65,19 @@
|
||||||
<th class="table-cell">
|
<th class="table-cell">
|
||||||
剩余库存数量
|
剩余库存数量
|
||||||
</th>
|
</th>
|
||||||
<td class="table-cell" colspan="3">
|
<td class="table-cell" colspan="2">
|
||||||
{{ formOptions.data.stock }}
|
{{ formOptions.data.stock }}
|
||||||
</td>
|
</td>
|
||||||
<th class="table-cell">
|
<th class="table-cell">
|
||||||
入库类型
|
入库类型
|
||||||
</th>
|
</th>
|
||||||
<td class="table-cell" colspan="3">
|
<td class="table-cell" colspan="2">
|
||||||
{{ formOptions.data.in_type }}
|
{{ formOptions.data.in_type }}
|
||||||
</td>
|
</td>
|
||||||
<th class="table-cell">
|
<th class="table-cell">
|
||||||
入库时间
|
入库时间
|
||||||
</th>
|
</th>
|
||||||
<td class="table-cell" colspan="3">
|
<td class="table-cell" colspan="4">
|
||||||
{{ formOptions.data.in_time | formatDate }}
|
{{ formOptions.data.in_time | formatDate }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
@ -67,19 +85,19 @@
|
||||||
<th class="table-cell">
|
<th class="table-cell">
|
||||||
出库数量
|
出库数量
|
||||||
</th>
|
</th>
|
||||||
<td class="table-cell" colspan="3">
|
<td class="table-cell" colspan="2">
|
||||||
{{ formOptions.data.out_stock }}
|
{{ formOptions.data.out_stock }}
|
||||||
</td>
|
</td>
|
||||||
<th class="table-cell">
|
<th class="table-cell">
|
||||||
单据日期
|
单据日期
|
||||||
</th>
|
</th>
|
||||||
<td class="table-cell" colspan="3">
|
<td class="table-cell" colspan="2">
|
||||||
{{ formOptions.data.bill_date | formatDate }}
|
{{ formOptions.data.bill_date | formatDate }}
|
||||||
</td>
|
</td>
|
||||||
<th class="table-cell">
|
<th class="table-cell">
|
||||||
出库人员姓名
|
出库人员姓名
|
||||||
</th>
|
</th>
|
||||||
<td class="table-cell" colspan="3">
|
<td class="table-cell" colspan="4">
|
||||||
{{ formOptions.data.out_user_name }}
|
{{ formOptions.data.out_user_name }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
@ -87,20 +105,20 @@
|
||||||
<th class="table-cell">
|
<th class="table-cell">
|
||||||
剩余库存数量
|
剩余库存数量
|
||||||
</th>
|
</th>
|
||||||
<td class="table-cell" colspan="3">
|
<td class="table-cell" colspan="2">
|
||||||
{{ formOptions.data.stock }}
|
{{ formOptions.data.stock }}
|
||||||
</td>
|
</td>
|
||||||
<th class="table-cell">
|
<th class="table-cell">
|
||||||
出库类型
|
出库类型
|
||||||
</th>
|
</th>
|
||||||
<td class="table-cell" colspan="3">
|
<td class="table-cell" colspan="2">
|
||||||
{{ formOptions.data.out_type }}
|
{{ formOptions.data.out_type }}
|
||||||
</td>
|
</td>
|
||||||
<th class="table-cell">
|
<th class="table-cell">
|
||||||
出库时间
|
出库时间
|
||||||
</th>
|
</th>
|
||||||
<td class="table-cell" colspan="3">
|
<td class="table-cell" colspan="4">
|
||||||
{{ formOptions.data.out_time | formatTime}}
|
{{ formOptions.data.out_time | formatTime }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<!-- <tr class="table-row-3">-->
|
<!-- <tr class="table-row-3">-->
|
||||||
|
|
@ -123,23 +141,44 @@
|
||||||
<!-- {{formOptions.data.salesman_name}}-->
|
<!-- {{formOptions.data.salesman_name}}-->
|
||||||
<!-- </td>-->
|
<!-- </td>-->
|
||||||
<!-- </tr>-->
|
<!-- </tr>-->
|
||||||
|
|
||||||
|
<tr class="table-row-3">
|
||||||
|
<th class="table-cell">
|
||||||
|
客户姓名
|
||||||
|
</th>
|
||||||
|
<td class="table-cell" colspan="1">
|
||||||
|
{{ formOptions.data.customer_name }}
|
||||||
|
</td>
|
||||||
|
<th class="table-cell">
|
||||||
|
客户联系电话
|
||||||
|
</th>
|
||||||
|
<td class="table-cell" colspan="2">
|
||||||
|
{{ formOptions.data.customer_phone }}
|
||||||
|
</td>
|
||||||
|
<th class="table-cell">
|
||||||
|
客户联系地址
|
||||||
|
</th>
|
||||||
|
<td class="table-cell" colspan="5">
|
||||||
|
{{ formOptions.data.customer_address }}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr class="table-row-4">
|
<tr class="table-row-4">
|
||||||
<th class="table-cell">
|
<th class="table-cell">
|
||||||
验货时间
|
验货时间
|
||||||
</th>
|
</th>
|
||||||
<td class="table-cell" colspan="2">
|
<td class="table-cell" colspan="1">
|
||||||
{{ formOptions.data.check_time | formatTime }}
|
{{ formOptions.data.check_time | formatTime }}
|
||||||
</td>
|
</td>
|
||||||
<th class="table-cell">
|
<th class="table-cell">
|
||||||
发货单号
|
发货单号
|
||||||
</th>
|
</th>
|
||||||
<td class="table-cell" colspan="2">
|
<td class="table-cell" colspan="1">
|
||||||
{{ formOptions.data.delivery_no }}
|
{{ formOptions.data.delivery_no }}
|
||||||
</td>
|
</td>
|
||||||
<th class="table-cell">
|
<th class="table-cell">
|
||||||
联系人
|
联系人
|
||||||
</th>
|
</th>
|
||||||
<td class="table-cell" colspan="2">
|
<td class="table-cell" colspan="1">
|
||||||
{{ formOptions.data.contact }}
|
{{ formOptions.data.contact }}
|
||||||
</td>
|
</td>
|
||||||
<th class="table-cell">
|
<th class="table-cell">
|
||||||
|
|
@ -162,19 +201,24 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- <zk-table-view />-->
|
<!-- <zk-table-view />-->
|
||||||
|
|
||||||
|
<!-- 预览 -->
|
||||||
|
<print-preview ref="preView"/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import BASE_URL from '@/services/mes/api.js';
|
import BASE_URL from '@/services/mes/api.js';
|
||||||
|
import XEUtils from 'xe-utils' // 加载xe-utils
|
||||||
|
import printPreview from './preview'
|
||||||
|
import providers from './providers'
|
||||||
|
|
||||||
import XEUtils from 'xe-utils' // 加载xe-utils
|
let hiprintTemplate;
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
||||||
i18n: require('../i18n'),
|
i18n: require('../i18n'),
|
||||||
components: {},
|
components: {printPreview},
|
||||||
props: {
|
props: {
|
||||||
pageMode: {
|
pageMode: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|
@ -183,6 +227,7 @@ export default {
|
||||||
dataId: {},
|
dataId: {},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return this.optionsInit()
|
return this.optionsInit()
|
||||||
},
|
},
|
||||||
|
|
@ -211,11 +256,58 @@ export default {
|
||||||
currentConfigName: "",
|
currentConfigName: "",
|
||||||
// 当前项目ID
|
// 当前项目ID
|
||||||
currentBeid: 0,
|
currentBeid: 0,
|
||||||
|
|
||||||
addPageUrl: "/MesStock/MesStockAdd",
|
addPageUrl: "/MesStock/MesStockAdd",
|
||||||
editPageUrl: "/MesStock/MesStockUpdate/",
|
editPageUrl: "/MesStock/MesStockUpdate/",
|
||||||
listPageUrl: "/MesStock/MesStockList",
|
listPageUrl: "/MesStock/MesStockList",
|
||||||
|
|
||||||
|
// 打印参数
|
||||||
|
|
||||||
|
template: null,
|
||||||
|
// 模板选择
|
||||||
|
mode: 0,
|
||||||
|
modeList: [],
|
||||||
|
// 当前纸张
|
||||||
|
curPaper: {
|
||||||
|
type: 'other',
|
||||||
|
width: 220,
|
||||||
|
height: 80
|
||||||
|
},
|
||||||
|
// 纸张类型
|
||||||
|
paperTypes: {
|
||||||
|
'A3': {
|
||||||
|
width: 420,
|
||||||
|
height: 296.6
|
||||||
|
},
|
||||||
|
'A4': {
|
||||||
|
width: 210,
|
||||||
|
height: 296.6
|
||||||
|
},
|
||||||
|
'A5': {
|
||||||
|
width: 210,
|
||||||
|
height: 147.6
|
||||||
|
},
|
||||||
|
'B3': {
|
||||||
|
width: 500,
|
||||||
|
height: 352.6
|
||||||
|
},
|
||||||
|
'B4': {
|
||||||
|
width: 250,
|
||||||
|
height: 352.6
|
||||||
|
},
|
||||||
|
'B5': {
|
||||||
|
width: 250,
|
||||||
|
height: 175.6
|
||||||
|
}
|
||||||
|
},
|
||||||
|
scaleValue: 1,
|
||||||
|
scaleMax: 5,
|
||||||
|
scaleMin: 0.5,
|
||||||
|
// 自定义纸张
|
||||||
|
paperPopVisible: false,
|
||||||
|
paperWidth: '220',
|
||||||
|
paperHeight: '80',
|
||||||
|
lastjson: '',
|
||||||
|
|
||||||
|
|
||||||
uploadDefaultImg: null,
|
uploadDefaultImg: null,
|
||||||
|
|
||||||
|
|
@ -243,8 +335,8 @@ export default {
|
||||||
// 是否编辑模式
|
// 是否编辑模式
|
||||||
isEdit: false,
|
isEdit: false,
|
||||||
|
|
||||||
title:"",
|
title: "",
|
||||||
product_detail:{},
|
product_detail: {},
|
||||||
// 表单数据
|
// 表单数据
|
||||||
formOptions: {
|
formOptions: {
|
||||||
data: {
|
data: {
|
||||||
|
|
@ -337,7 +429,6 @@ export default {
|
||||||
pageData.formOptions = Object.assign({}, this.$mk.config.defaults.formOptions, pageData.formOptions);
|
pageData.formOptions = Object.assign({}, this.$mk.config.defaults.formOptions, pageData.formOptions);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return pageData;
|
return pageData;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -393,9 +484,98 @@ export default {
|
||||||
|
|
||||||
return dataId;
|
return dataId;
|
||||||
},
|
},
|
||||||
|
init() {
|
||||||
|
this.modeList = providers.map((e) => {
|
||||||
|
return {type: e.type, name: e.name, value: e.value}
|
||||||
|
})
|
||||||
|
this.changeMode()
|
||||||
|
},
|
||||||
|
changeMode() {
|
||||||
|
let {mode} = this
|
||||||
|
let provider = providers[mode]
|
||||||
|
this.$hiprint.init({
|
||||||
|
providers: [provider.f]
|
||||||
|
});
|
||||||
|
this.$hiprint.PrintElementTypeManager.build('.hiprintEpContainer', provider.value);
|
||||||
|
// let templates = this.$ls.get('KEY_TEMPLATES', {})
|
||||||
|
let data = require('./data.json')
|
||||||
|
let templates = data.value
|
||||||
|
console.log("templates:", templates)
|
||||||
|
let template = templates[provider.value] ? templates[provider.value] : {}
|
||||||
|
this.template = hiprintTemplate = new this.$hiprint.PrintTemplate({
|
||||||
|
template: template,
|
||||||
|
dataMode: 1, // 1:getJson 其他:getJsonTid 默认1
|
||||||
|
history: false, // 是否需要 撤销重做功能
|
||||||
|
onDataChanged: (type, json) => {
|
||||||
|
console.log(type); // 新增、移动、删除、修改(参数调整)、大小、旋转
|
||||||
|
console.log(json); // 返回 template
|
||||||
|
// 更新模板
|
||||||
|
// hiprintTemplate.update(json)
|
||||||
|
// console.log(hiprintTemplate.historyList)
|
||||||
|
},
|
||||||
|
settingContainer: '#PrintElementOptionSetting',
|
||||||
|
paginationContainer: '.hiprint-printPagination'
|
||||||
|
});
|
||||||
|
hiprintTemplate.design('#hiprint-printTemplate');
|
||||||
|
// 获取当前放大比例, 当zoom时传true 才会有
|
||||||
|
this.scaleValue = hiprintTemplate.editingPanel.scale || 1;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 设置纸张大小
|
||||||
|
* @param type [A3, A4, A5, B3, B4, B5, other]
|
||||||
|
* @param value {width,height} mm
|
||||||
|
*/
|
||||||
|
setPaper(type, value) {
|
||||||
|
try {
|
||||||
|
if (Object.keys(this.paperTypes).includes(type)) {
|
||||||
|
this.curPaper = {type: type, width: value.width, height: value.height}
|
||||||
|
hiprintTemplate.setPaper(value.width, value.height)
|
||||||
|
} else {
|
||||||
|
this.curPaper = {type: 'other', width: value.width, height: value.height}
|
||||||
|
hiprintTemplate.setPaper(value.width, value.height)
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
this.$message.error(`操作失败: ${error}`)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
changeScale(big) {
|
||||||
|
let scaleValue = this.scaleValue;
|
||||||
|
if (big) {
|
||||||
|
scaleValue += 0.1;
|
||||||
|
if (scaleValue > this.scaleMax) scaleValue = 5;
|
||||||
|
} else {
|
||||||
|
scaleValue -= 0.1;
|
||||||
|
if (scaleValue < this.scaleMin) scaleValue = 0.5;
|
||||||
|
}
|
||||||
|
if (hiprintTemplate) {
|
||||||
|
// scaleValue: 放大缩小值, false: 不保存(不传也一样), 如果传 true, 打印时也会放大
|
||||||
|
hiprintTemplate.zoom(scaleValue, true);
|
||||||
|
this.scaleValue = scaleValue;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
otherPaper() {
|
||||||
|
let value = {}
|
||||||
|
value.width = this.paperWidth
|
||||||
|
value.height = this.paperHeight
|
||||||
|
this.paperPopVisible = false
|
||||||
|
this.setPaper('other', value)
|
||||||
|
},
|
||||||
|
preView() {
|
||||||
|
|
||||||
|
let hiPrint = this.$hiPrint
|
||||||
|
let data = require('./data.json')
|
||||||
|
let templates = data.value
|
||||||
|
console.log("templates:", templates)
|
||||||
|
let template = {}
|
||||||
|
let hiprintTemplate = new hiPrint.PrintTemplate({
|
||||||
|
template: template,
|
||||||
|
});
|
||||||
|
let {width} = this.curPaper
|
||||||
|
this.$refs.preView.show(hiprintTemplate, {}, width)
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
filters: {
|
filters: {
|
||||||
formatDate(cellValue) {
|
formatDate(cellValue) {
|
||||||
if (!cellValue) {
|
if (!cellValue) {
|
||||||
|
|
@ -415,6 +595,13 @@ export default {
|
||||||
}
|
}
|
||||||
return XEUtils.toDateString(cellValue, 'yyyy-MM-dd HH:mm:ss')
|
return XEUtils.toDateString(cellValue, 'yyyy-MM-dd HH:mm:ss')
|
||||||
},
|
},
|
||||||
|
// 小数点后保留2位
|
||||||
|
formatNumber(cellValue) {
|
||||||
|
if (!cellValue) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
return cellValue.toFixed(2);
|
||||||
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
// 监听属性
|
// 监听属性
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,13 @@
|
||||||
<basic-page-list :desc="desc" :options="pageOptions">
|
<basic-page-list :desc="desc" :options="pageOptions">
|
||||||
|
|
||||||
<template v-slot:column1="{ row }">
|
<template v-slot:column1="{ row }">
|
||||||
<a-button class="in" type="default" @click="LogDetail(row.id)">查看详情</a-button>
|
<a-button class="in" type="default" @click="LogDetail(row.id)">查看详情</a-button>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template v-slot:column2="{ row }">
|
||||||
|
<img v-if="row.product_detail.image" style="width:50px;height:50px;" :src="row.product_detail.image"
|
||||||
|
@click.stop="$hevueImgPreview(row.product_detail.image)"/>
|
||||||
|
<span v-else></span>
|
||||||
</template>
|
</template>
|
||||||
</basic-page-list>
|
</basic-page-list>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -13,9 +19,7 @@ import BASE_URL from '@/services/mes/api.js';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
i18n: require("../i18n"),
|
i18n: require("../i18n"),
|
||||||
props: {
|
props: {},
|
||||||
|
|
||||||
},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
pageOptions: {}
|
pageOptions: {}
|
||||||
|
|
@ -68,27 +72,63 @@ export default {
|
||||||
end_time: 0, // 结束时间
|
end_time: 0, // 结束时间
|
||||||
|
|
||||||
|
|
||||||
//搜索区
|
//搜索区
|
||||||
searchFormData: {
|
searchFormData: {
|
||||||
title: '',
|
warehouse_id: '',
|
||||||
desc: '',
|
warehouse_pos_id: '',
|
||||||
},
|
},
|
||||||
// 搜索区配置
|
// 搜索区配置
|
||||||
searchRules: [
|
searchRules: [
|
||||||
{ key: "materials", mode: "like" },
|
{key: "materials", mode: "like"},
|
||||||
{ key: "warehouse", mode: "like" },
|
{key: "warehouse_id", mode: "="},
|
||||||
{ key: "warehouse_pos", mode: "like" }
|
{key: "warehouse_pos_id", mode: "="}
|
||||||
|
|
||||||
],
|
],
|
||||||
//搜索区
|
|
||||||
searchFormItems: [ // 子项
|
searchFormItems: [ // 子项
|
||||||
{ field: 'materials', title: '料品', span: 4, itemRender: { name: '$input', props: { placeholder: '请输入料品' } } },
|
{
|
||||||
{ field: 'warehouse', title: '仓库', span: 4, itemRender: { name: '$input', props: { placeholder: '请输入仓库' } } },
|
field: 'materials',
|
||||||
{ field: 'warehouse_pos', title: '库位', span: 4, itemRender: { name: '$input', props: { placeholder: '请输入库位' } } },
|
title: '料品',
|
||||||
{ span: 8, slots: { default: 'date' } }, // 自定义列
|
span: 4,
|
||||||
|
itemRender: {name: '$input', props: {placeholder: '请输入料品'}}
|
||||||
|
}, {
|
||||||
|
title: '仓库', span: 5,
|
||||||
|
field: 'warehouse_id',
|
||||||
|
dataRule: {
|
||||||
|
fromField: "id",
|
||||||
|
saveField: "warehouse_id"
|
||||||
|
},
|
||||||
|
itemRender: {
|
||||||
|
name: 'MkFormDataSelector',
|
||||||
|
props: {
|
||||||
|
searchFieldNames: ["warehouse_title", "code"],
|
||||||
|
params: {
|
||||||
|
dataType: "object",
|
||||||
|
valueField: "id",
|
||||||
|
textField: "warehouse_title",
|
||||||
|
columns: [
|
||||||
|
{field: 'warehouse_title', title: '名称'},
|
||||||
|
{field: 'code', title: '编码'}
|
||||||
|
],
|
||||||
|
listdataFieldName: 'MesWarehouse',
|
||||||
|
dataUrl: `${BASE_URL.BASE_URL}/MesWarehouse/v1/mes/warehouse/list`,
|
||||||
|
onDataChanged: ({data}) => {
|
||||||
|
|
||||||
|
console.log(data)
|
||||||
|
// this.pageOptions.searchFormItems.data.warehouse_pos_detail = {};
|
||||||
|
// this.pageOptions.searchFormItems.data.warehouse_pos_id = null;
|
||||||
|
this.pageOptions.searchFormItems[2].itemRender.props.params.actionParams.search_rules[0].value = data.id.toString();
|
||||||
|
this.pageOptions.searchFormItems[2].itemRender.props.params = JSON.parse(JSON.stringify(this.pageOptions.searchFormItems[2].itemRender.props.params));
|
||||||
|
this.$forceUpdate(); // 强制刷新
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// {span: 8, slots: {default: 'date'}}, // 自定义列
|
||||||
{
|
{
|
||||||
align: 'right', span: 4, itemRender: { // 按钮列
|
align: 'right', span: 4, itemRender: { // 按钮列
|
||||||
name: '$buttons', children: [{ props: { type: 'submit', content: '搜索', status: 'primary' } }, // 搜索按钮
|
name: '$buttons', children: [{props: {type: 'submit', content: '搜索', status: 'primary'}}, // 搜索按钮
|
||||||
{ props: { type: 'reset', content: '重置' } }]
|
{props: {type: 'reset', content: '重置'}}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
@ -101,8 +141,8 @@ export default {
|
||||||
id: 'datagrid_1', // 表格唯一标识
|
id: 'datagrid_1', // 表格唯一标识
|
||||||
|
|
||||||
columns: [
|
columns: [
|
||||||
{ type: 'checkbox', width: '40' }, // 多选框
|
{type: 'checkbox', width: '40'}, // 多选框
|
||||||
{ type: 'seq', width: '40' }, // 序号
|
{type: 'seq', width: '40'}, // 序号
|
||||||
|
|
||||||
// "id,optional" validate:"" message:"" label:""` // 主键
|
// "id,optional" validate:"" message:"" label:""` // 主键
|
||||||
// "stock_pos_id,optional" validate:"" message:"" label:""` // 库位ID
|
// "stock_pos_id,optional" validate:"" message:"" label:""` // 库位ID
|
||||||
|
|
@ -136,27 +176,50 @@ export default {
|
||||||
//
|
//
|
||||||
// =============================== 表格列 自动生成 Start ===============================
|
// =============================== 表格列 自动生成 Start ===============================
|
||||||
|
|
||||||
{ field: 'id' , slots: { default: 'column1' }, sortable: true, title: '查看详情', width: 100 }, // 查看详情
|
{field: 'id', slots: {default: 'column1'}, sortable: true, title: '查看详情', width: 100}, // 查看详情
|
||||||
{ field: 'product_detail.name', sortable: true, title: '料品名称', width: 250 }, // 料品名称
|
{field: 'product_detail.image', slots: {default: 'column2'}, sortable: true, title: '料品图片', width: 100}, // 产品详情
|
||||||
{ field: 'out_type', sortable: true, title: '出库类型', width: 100 }, // 出库类型
|
{field: 'product_detail.name', sortable: true, title: '料品名称', width: 250}, // 料品名称
|
||||||
{ field: 'out_stock', sortable: true, title: '出库数量', width: 100 }, // 出库数量
|
{field: 'product_detail.code', sortable: true, title: '料品编号', width: 100}, // 料品名称
|
||||||
{ field: 'stock', sortable: true, title: '剩余库存', width: 100 }, // 出库数量
|
{field: 'out_type', sortable: true, title: '出库类型', width: 100}, // 出库类型
|
||||||
{ field: 'warehouse_idetail.name', sortable: true, title: '仓库', width: 150 }, // 仓库名称
|
{field: 'out_stock', sortable: true, title: '出库数量', width: 100}, // 出库数量
|
||||||
{ field: 'warehouse_pos_idetail.name', sortable: true, title: '库位', width: 150 }, // 库位信息
|
{field: 'price', sortable: true, formatter: 'formatNumber', title: '单价(¥)', width: 120}, // 单价
|
||||||
{ field: 'out_user_name', sortable: true, title: '出库人', width: 100 }, // 出库人
|
{field: 'total_price', sortable: true, formatter: 'formatNumber', title: '总价(¥)', width: 150}, // 出库数量
|
||||||
{ field: 'bill_date', formatter: 'formatDate',sortable: true, title: '单据日期', width: 100 }, // 单据日期
|
{field: 'stock', sortable: true, title: '剩余库存', width: 100}, // 出库数量
|
||||||
{ field: 'business_type', sortable: true, title: '业务类型', width: 100 }, // 业务类型
|
{field: 'warehouse_idetail.name', sortable: true, title: '仓库', width: 150}, // 仓库名称
|
||||||
{ field: 'business_no', sortable: true, title: '业务单号', width: 100 }, // 业务单号
|
{field: 'warehouse_pos_idetail.name', sortable: true, title: '库位', width: 150}, // 库位信息
|
||||||
{ field: 'out_type', sortable: true, title: '出库类型', width: 100 }, // 出库类型
|
{field: 'out_user_name', sortable: true, title: '出库人', width: 100}, // 出库人
|
||||||
{ field: 'handler_name', sortable: true, title: '经手人', width: 100 }, // 经手人
|
{field: 'bill_date', formatter: 'formatDate', sortable: true, title: '单据日期', width: 100}, // 单据日期
|
||||||
{ field: 'check_user_name', sortable: true, title: '验货人', width: 100 }, // 验货人
|
{field: 'business_type', sortable: true, title: '业务类型', width: 100}, // 业务类型
|
||||||
|
{field: 'business_no', sortable: true, title: '业务单号', width: 100}, // 业务单号
|
||||||
|
{field: 'out_type', sortable: true, title: '出库类型', width: 100}, // 出库类型
|
||||||
|
{field: 'handler_name', sortable: true, title: '经手人', width: 100}, // 经手人
|
||||||
|
{field: 'check_user_name', sortable: true, title: '验货人', width: 100}, // 验货人
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
field: 'out_time',
|
||||||
{ field: 'out_time', formatter: 'formatDate', width: 100, sortable: true, title: '出库时间', showHeaderOverflow: true }, // 出库时间
|
formatter: 'formatDate',
|
||||||
{ field: 'create_time', formatter: 'formatDate', width: 100, sortable: true, title: '创建时间', showHeaderOverflow: true }, // 创建时间
|
width: 100,
|
||||||
{ field: 'update_time', formatter: 'formatDate', width: 100, sortable: true, title: '更新时间', showHeaderOverflow: true }, // 更新时间
|
sortable: true,
|
||||||
|
title: '出库时间',
|
||||||
|
showHeaderOverflow: true
|
||||||
|
}, // 出库时间
|
||||||
|
{
|
||||||
|
field: 'create_time',
|
||||||
|
formatter: 'formatDate',
|
||||||
|
width: 100,
|
||||||
|
sortable: true,
|
||||||
|
title: '创建时间',
|
||||||
|
showHeaderOverflow: true
|
||||||
|
}, // 创建时间
|
||||||
|
{
|
||||||
|
field: 'update_time',
|
||||||
|
formatter: 'formatDate',
|
||||||
|
width: 100,
|
||||||
|
sortable: true,
|
||||||
|
title: '更新时间',
|
||||||
|
showHeaderOverflow: true
|
||||||
|
}, // 更新时间
|
||||||
// { field: 'stock_id', sortable: true, title: '库存id', width: 250 }, // 库存id
|
// { field: 'stock_id', sortable: true, title: '库存id', width: 250 }, // 库存id
|
||||||
|
|
||||||
// =============================== 表格列 自动生成 Start ===============================
|
// =============================== 表格列 自动生成 Start ===============================
|
||||||
|
|
@ -183,15 +246,13 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
LogDetail(id){
|
LogDetail(id) {
|
||||||
console.log("LogDetail:"+id)
|
console.log("LogDetail:" + id)
|
||||||
this.$router.push('/MesStock/MesStockOutInLogDetail/'+id) // 跳转路由
|
this.$router.push('/MesStock/MesStockOutInLogDetail/' + id) // 跳转路由
|
||||||
},
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {},
|
||||||
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,88 @@
|
||||||
|
<template>
|
||||||
|
<a-modal :visible="visible" :maskClosable="false"
|
||||||
|
@cancel="hideModal" :width="width+'mm'">
|
||||||
|
<a-spin :spinning="spinning" style="min-height: 100px">
|
||||||
|
<div id="preview_content_custom"></div>
|
||||||
|
</a-spin>
|
||||||
|
<template slot="title">
|
||||||
|
<a-space>
|
||||||
|
<div style="margin-right: 20px">打印预览</div>
|
||||||
|
<a-button :loading="waitShowPrinter" type="primary" icon="printer" @click.stop="print">打印</a-button>
|
||||||
|
<a-button type="primary" icon="printer" @click.stop="toPdf">pdf</a-button>
|
||||||
|
</a-space>
|
||||||
|
</template>
|
||||||
|
<template slot="footer">
|
||||||
|
<a-button key="close" type="info" @click="hideModal">
|
||||||
|
关闭
|
||||||
|
</a-button>
|
||||||
|
</template>
|
||||||
|
</a-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "printPreview",
|
||||||
|
props: {},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
spinning: true,
|
||||||
|
waitShowPrinter: false,
|
||||||
|
// 纸张宽 mm
|
||||||
|
width: 0,
|
||||||
|
// 模板
|
||||||
|
hiprintTemplate: {},
|
||||||
|
// 数据
|
||||||
|
printData: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
watch: {},
|
||||||
|
created() {
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
hideModal() {
|
||||||
|
this.visible = false
|
||||||
|
},
|
||||||
|
show(hiprintTemplate, printData, width = '210') {
|
||||||
|
console.log("hiprintTemplate:", hiprintTemplate)
|
||||||
|
console.log("hiprintTemplate.getHtml(printData):", hiprintTemplate.getHtml())
|
||||||
|
console.log("printData:", printData)
|
||||||
|
this.visible = true
|
||||||
|
this.spinning = true
|
||||||
|
this.width = hiprintTemplate.editingPanel ? hiprintTemplate.editingPanel.width : width;
|
||||||
|
this.hiprintTemplate = hiprintTemplate
|
||||||
|
this.printData = printData
|
||||||
|
setTimeout(() => {
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
$('#preview_content_custom').html(hiprintTemplate.getHtml(printData))
|
||||||
|
this.spinning = false
|
||||||
|
}, 500)
|
||||||
|
},
|
||||||
|
print() {
|
||||||
|
this.waitShowPrinter = true
|
||||||
|
this.hiprintTemplate.print(this.printData, {}, {
|
||||||
|
callback: () => {
|
||||||
|
this.waitShowPrinter = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
toPdf() {
|
||||||
|
this.hiprintTemplate.toPdf(this.printData, '打印预览pdf');
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
|
||||||
|
/deep/ .ant-modal-body {
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/deep/ .ant-modal-content {
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,342 @@
|
||||||
|
/* eslint-disable */
|
||||||
|
|
||||||
|
|
||||||
|
// 自定义设计元素1
|
||||||
|
export const aProvider = function (ops) {
|
||||||
|
var addElementTypes = function (context) {
|
||||||
|
context.removePrintElementTypes("aProviderModule"); // 移除已有的元素
|
||||||
|
context.addPrintElementTypes( // 添加新的元素
|
||||||
|
"aProviderModule",
|
||||||
|
[
|
||||||
|
new this.$hiPrint.PrintElementTypeGroup("基本数据", [
|
||||||
|
{
|
||||||
|
tid: 'aProviderModule.printDate', title: '打印时间', data: '2022-01-01 09:00', type: 'text',
|
||||||
|
options: {
|
||||||
|
field: 'printDate',
|
||||||
|
testData: '2022-01-01 09:00',
|
||||||
|
height: 16,
|
||||||
|
fontSize: 6.75,
|
||||||
|
fontWeight: "700",
|
||||||
|
textAlign: "left",
|
||||||
|
textContentVerticalAlign: "middle"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tid: 'aProviderModule.customer_name', title: '客户名称', data: '', type: 'text',
|
||||||
|
options: {
|
||||||
|
title: '客户名称:',
|
||||||
|
testData: '李四',
|
||||||
|
field: 'data.product_stock_log.customer_name',
|
||||||
|
height: 16,
|
||||||
|
fontSize: 12,
|
||||||
|
fontWeight: "700",
|
||||||
|
textAlign: "left",
|
||||||
|
textContentVerticalAlign: "middle"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tid: 'aProviderModule.customer_phone', title: '联系电话', data: '', type: 'text',
|
||||||
|
options: {
|
||||||
|
title: '联系电话:',
|
||||||
|
testData: '13800138000',
|
||||||
|
field: 'data.product_stock_log.customer_phone',
|
||||||
|
height: 16,
|
||||||
|
fontSize: 12,
|
||||||
|
fontWeight: "700",
|
||||||
|
textAlign: "left",
|
||||||
|
textContentVerticalAlign: "middle"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tid: 'aProviderModule.customer_address', title: '联系地址', data: '', type: 'text',
|
||||||
|
options: {
|
||||||
|
title: '联系地址:',
|
||||||
|
testData: '潮州市浮洋镇潮汕公路乌洋路段',
|
||||||
|
field: 'data.product_stock_log.customer_address',
|
||||||
|
height: 16,
|
||||||
|
fontSize: 12,
|
||||||
|
fontWeight: "700",
|
||||||
|
textAlign: "left",
|
||||||
|
textContentVerticalAlign: "middle"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tid: 'aProviderModule.code', title: '单据编号', data: '', type: 'text',
|
||||||
|
options: {
|
||||||
|
title: '单据编号:',
|
||||||
|
field: 'data.product_stock_log.code',
|
||||||
|
height: 16,
|
||||||
|
fontSize: 12,
|
||||||
|
fontWeight: "700",
|
||||||
|
textAlign: "left",
|
||||||
|
textContentVerticalAlign: "middle"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tid: 'aProviderModule.creater', title: '制单人', data: '吴淑银', type: 'text',
|
||||||
|
options: {
|
||||||
|
title: '制单人:',
|
||||||
|
testData: '张三',
|
||||||
|
field: 'data.product_stock_log.out_user_name',
|
||||||
|
height: 16,
|
||||||
|
fontSize: 16,
|
||||||
|
fontWeight: "700",
|
||||||
|
textAlign: "left",
|
||||||
|
textContentVerticalAlign: "middle"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tid: 'aProviderModule.signer', title: '送货人', data: '', type: 'text',
|
||||||
|
options: {
|
||||||
|
title: '送货人:',
|
||||||
|
height: 16,
|
||||||
|
fontSize: 16,
|
||||||
|
fontWeight: "700",
|
||||||
|
textAlign: "left",
|
||||||
|
textContentVerticalAlign: "middle"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tid: 'aProviderModule.signer', title: '收货人', data: '', type: 'text',
|
||||||
|
options: {
|
||||||
|
title: '收货人:',
|
||||||
|
height: 16,
|
||||||
|
fontSize: 16,
|
||||||
|
fontWeight: "700",
|
||||||
|
textAlign: "left",
|
||||||
|
textContentVerticalAlign: "middle"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
]),
|
||||||
|
new hiprint.PrintElementTypeGroup("表格/其他", [
|
||||||
|
{
|
||||||
|
tid: 'aProviderModule.table', title: '出货单数据',
|
||||||
|
type: 'table',
|
||||||
|
options: {
|
||||||
|
field: 'data.table',
|
||||||
|
tableHeaderRepeat: 'first', // 表头重复方式
|
||||||
|
tableFooterRepeat: 'last', // 表尾重复方式
|
||||||
|
fields: [
|
||||||
|
{text: "商品编号", field: "code"},
|
||||||
|
{text: "商品名称", field: "name"},
|
||||||
|
{text: "规格", field: "spec"},
|
||||||
|
{text: "单位", field: "unit"},
|
||||||
|
{text: "数量", field: "stock"},
|
||||||
|
{text: "单价", field: "price"},
|
||||||
|
{text: "金额", field: "total_price"},
|
||||||
|
{text: "备注", field: "remark"}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
editable: true, // 是否可编辑
|
||||||
|
columnDisplayEditable: true,//列显示是否能编辑
|
||||||
|
columnDisplayIndexEditable: true,//列顺序显示是否能编辑
|
||||||
|
columnTitleEditable: true,//列标题是否能编辑
|
||||||
|
columnResizable: true, //列宽是否能调整
|
||||||
|
columnAlignEditable: true,//列对齐是否调整
|
||||||
|
isEnableEditField: true, //编辑字段
|
||||||
|
isEnableContextMenu: true, //开启右键菜单 默认true
|
||||||
|
isEnableInsertRow: true, //插入行
|
||||||
|
isEnableDeleteRow: true, //删除行
|
||||||
|
isEnableInsertColumn: true, //插入列
|
||||||
|
isEnableDeleteColumn: true, //删除列
|
||||||
|
isEnableMergeCell: true, //合并单元格
|
||||||
|
columns: [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
width: 84.61538461538461,
|
||||||
|
title: "商品编号",
|
||||||
|
field: "code",
|
||||||
|
columnId: "code",
|
||||||
|
checked: true,
|
||||||
|
fixed: false,
|
||||||
|
align: "center"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
width: 108.43929187999774,
|
||||||
|
title: "商品名称",
|
||||||
|
field: "name",
|
||||||
|
columnId: "name",
|
||||||
|
checked: true,
|
||||||
|
fixed: false,
|
||||||
|
align: "center"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
width: 57.83428900266546,
|
||||||
|
title: "规格",
|
||||||
|
field: "spec",
|
||||||
|
columnId: "spec",
|
||||||
|
checked: true,
|
||||||
|
fixed: false,
|
||||||
|
align: "center"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
width: 71.59763313609467,
|
||||||
|
title: "单位",
|
||||||
|
field: "unit",
|
||||||
|
columnId: "unit",
|
||||||
|
checked: true,
|
||||||
|
fixed: false,
|
||||||
|
align: "center"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
width: 60.58261265361857,
|
||||||
|
title: "数量",
|
||||||
|
field: "stock",
|
||||||
|
columnId: "stock",
|
||||||
|
checked: true,
|
||||||
|
fixed: false,
|
||||||
|
rowspan: 1,
|
||||||
|
colspan: 1,
|
||||||
|
align: "center"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
width: 51.26221070690802,
|
||||||
|
title: "单价",
|
||||||
|
field: "price",
|
||||||
|
columnId: "price",
|
||||||
|
checked: true,
|
||||||
|
fixed: false,
|
||||||
|
rowspan: 1,
|
||||||
|
colspan: 1,
|
||||||
|
align: "center"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
width: 43.3757167519991,
|
||||||
|
title: "金额",
|
||||||
|
field: "total_price",
|
||||||
|
columnId: "total_price",
|
||||||
|
checked: true,
|
||||||
|
fixed: false,
|
||||||
|
rowspan: 1,
|
||||||
|
colspan: 1,
|
||||||
|
align: "center"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
width: 72.29286125333182,
|
||||||
|
title: "备注",
|
||||||
|
field: "remark",
|
||||||
|
columnId: "remark",
|
||||||
|
checked: true,
|
||||||
|
fixed: false,
|
||||||
|
rowspan: 1,
|
||||||
|
colspan: 1,
|
||||||
|
align: "center"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
|
// 表格行样式
|
||||||
|
footerFormatter: function (options, rows, data, currentPageGridRowsData) {
|
||||||
|
// console.log("footerFormatter['options']:",options)
|
||||||
|
console.log("footerFormatter['rows']:", rows)
|
||||||
|
console.log("footerFormatter['data']:", data)
|
||||||
|
console.log("footerFormatter['currentPageGridRowsData']:", currentPageGridRowsData)
|
||||||
|
let total = 0;
|
||||||
|
currentPageGridRowsData.map((item, index) => {
|
||||||
|
total += item.total_price;
|
||||||
|
})
|
||||||
|
// 转换为大写
|
||||||
|
let digitUppercase = function (n) {
|
||||||
|
var fraction = ['角', '分'];
|
||||||
|
var digit = [
|
||||||
|
'零', '壹', '贰', '叁', '肆',
|
||||||
|
'伍', '陆', '柒', '捌', '玖'
|
||||||
|
];
|
||||||
|
var unit = [
|
||||||
|
['元', '万', '亿'],
|
||||||
|
['', '拾', '佰', '仟']
|
||||||
|
];
|
||||||
|
var head = n < 0 ? '欠' : '';
|
||||||
|
n = Math.abs(n);
|
||||||
|
var s = '';
|
||||||
|
for (var i = 0; i < fraction.length; i++) {
|
||||||
|
s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
|
||||||
|
}
|
||||||
|
s = s || '整';
|
||||||
|
n = Math.floor(n);
|
||||||
|
for (var i = 0; i < unit[0].length && n > 0; i++) {
|
||||||
|
var p = '';
|
||||||
|
for (var j = 0; j < unit[1].length && n > 0; j++) {
|
||||||
|
p = digit[n % 10] + unit[1][j] + p;
|
||||||
|
n = Math.floor(n / 10);
|
||||||
|
}
|
||||||
|
s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
|
||||||
|
}
|
||||||
|
return head + s.replace(/(零.)*零元/, '元')
|
||||||
|
.replace(/(零.)+/g, '零')
|
||||||
|
.replace(/^整$/, '零元整');
|
||||||
|
}
|
||||||
|
|
||||||
|
// if (data && data['total_price']) {
|
||||||
|
// return `<td style="padding:0 10px" colspan="100">${'应收金额大写: ' + data['total_price']}</td>`
|
||||||
|
// }
|
||||||
|
return '<td style="padding:0 10px" colspan="100">应收金额大写: ' + digitUppercase(total) + '</td>'
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]),
|
||||||
|
new hiprint.PrintElementTypeGroup("辅助",
|
||||||
|
[
|
||||||
|
// {tid: 'aProviderModule.logo', title: 'Logo', data: '', type: 'image'},
|
||||||
|
|
||||||
|
{
|
||||||
|
tid: 'aProviderModule.customText',
|
||||||
|
title: '文本',
|
||||||
|
customText: '自定义文本',
|
||||||
|
custom: true,
|
||||||
|
type: 'text'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tid: 'aProviderModule.longText', title: '长文本', type: 'longText', options: {
|
||||||
|
field: 'test.longText',
|
||||||
|
width: 200,
|
||||||
|
testData: '长文本分页/不分页测试'
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tid: 'aProviderModule.hline',
|
||||||
|
title: '横线',
|
||||||
|
type: 'hline'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tid: 'aProviderModule.vline',
|
||||||
|
title: '竖线',
|
||||||
|
type: 'vline'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tid: 'aProviderModule.rect',
|
||||||
|
title: '矩形',
|
||||||
|
type: 'rect'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tid: 'aProviderModule.oval',
|
||||||
|
title: '椭圆',
|
||||||
|
type: 'oval'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tid: 'aProviderModule.barcode',
|
||||||
|
title: '条形码',
|
||||||
|
type: 'barcode',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tid: 'aProviderModule.qrcode',
|
||||||
|
title: '二维码',
|
||||||
|
type: 'qrcode',
|
||||||
|
}
|
||||||
|
])
|
||||||
|
]
|
||||||
|
);
|
||||||
|
};
|
||||||
|
return {
|
||||||
|
addElementTypes: addElementTypes
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// type: 1供货商 2经销商
|
||||||
|
export default [{
|
||||||
|
name: 'A设计',
|
||||||
|
value: 'aProviderModule',
|
||||||
|
type: 1,
|
||||||
|
f: aProvider()
|
||||||
|
}]
|
||||||
|
|
@ -29,7 +29,8 @@ export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
pageOptions: {},
|
pageOptions: {},
|
||||||
warehouse_search: []
|
warehouse_search: [],
|
||||||
|
warehouse_id: null,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
// 计算属性
|
// 计算属性
|
||||||
|
|
@ -84,7 +85,7 @@ export default {
|
||||||
end_time: 0, // 结束时间
|
end_time: 0, // 结束时间
|
||||||
|
|
||||||
|
|
||||||
//搜索区
|
//搜索区
|
||||||
searchFormData: {
|
searchFormData: {
|
||||||
warehouse_id: '',
|
warehouse_id: '',
|
||||||
warehouse_pos_id: '',
|
warehouse_pos_id: '',
|
||||||
|
|
@ -96,17 +97,13 @@ export default {
|
||||||
{key: "warehouse_pos_id", mode: "="}
|
{key: "warehouse_pos_id", mode: "="}
|
||||||
|
|
||||||
],
|
],
|
||||||
//搜索区
|
|
||||||
searchFormItems: [ // 子项
|
searchFormItems: [ // 子项
|
||||||
{
|
{
|
||||||
field: 'materials',
|
field: 'materials',
|
||||||
title: '料品',
|
title: '料品',
|
||||||
span: 4,
|
span: 4,
|
||||||
itemRender: {name: '$input', props: {placeholder: '请输入料品'}}
|
itemRender: {name: '$input', props: {placeholder: '请输入料品'}}
|
||||||
},
|
}, {
|
||||||
|
|
||||||
|
|
||||||
{
|
|
||||||
title: '仓库', span: 5,
|
title: '仓库', span: 5,
|
||||||
field: 'warehouse_id',
|
field: 'warehouse_id',
|
||||||
dataRule: {
|
dataRule: {
|
||||||
|
|
@ -130,48 +127,16 @@ export default {
|
||||||
onDataChanged: ({data}) => {
|
onDataChanged: ({data}) => {
|
||||||
|
|
||||||
console.log(data)
|
console.log(data)
|
||||||
this.warehouse_search.clear();
|
// this.pageOptions.searchFormItems.data.warehouse_pos_detail = {};
|
||||||
this.warehouse_search = [{
|
// this.pageOptions.searchFormItems.data.warehouse_pos_id = null;
|
||||||
column: "warehouse_id",
|
this.pageOptions.searchFormItems[2].itemRender.props.params.actionParams.search_rules[0].value = data.id.toString();
|
||||||
mode: "=",
|
this.pageOptions.searchFormItems[2].itemRender.props.params = JSON.parse(JSON.stringify(this.pageOptions.searchFormItems[2].itemRender.props.params));
|
||||||
value: data.id.toString()
|
|
||||||
}]
|
|
||||||
this.$forceUpdate(); // 强制刷新
|
this.$forceUpdate(); // 强制刷新
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: '仓位', span: 5,
|
|
||||||
field: 'warehouse_pos_id',
|
|
||||||
dataRule: {
|
|
||||||
fromField: "id",
|
|
||||||
saveField: "warehouse_pos_id"
|
|
||||||
},
|
|
||||||
itemRender: {
|
|
||||||
name: 'MkFormDataSelector', props: {
|
|
||||||
searchFieldNames: ["warehouse_id", "id"],
|
|
||||||
params: {
|
|
||||||
dataType: "object",
|
|
||||||
valueField: "id",
|
|
||||||
textField: "warehouse_location_name",
|
|
||||||
columns: [
|
|
||||||
{field: 'warehouse_location_name', title: '名称'},
|
|
||||||
{field: 'code', title: '编码'}
|
|
||||||
],
|
|
||||||
isClickToLoad: true,
|
|
||||||
actionParams: {
|
|
||||||
search_rules: this.warehouse_search
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
listdataFieldName: 'WarehouseLocation',
|
|
||||||
dataUrl: `${BASE_URL.BASE_URL}/MesWarehouse/v1/warehouse/location/list`
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
align: 'right', span: 4, itemRender: { // 按钮列
|
align: 'right', span: 4, itemRender: { // 按钮列
|
||||||
|
|
@ -202,11 +167,12 @@ export default {
|
||||||
{field: 'warehouse_pos_idetail.name', sortable: true, title: '库位', width: 120}, // 库位信息
|
{field: 'warehouse_pos_idetail.name', sortable: true, title: '库位', width: 120}, // 库位信息
|
||||||
{field: 'product_detail.image', slots: {default: 'column2'}, sortable: true, title: '料品图片', width: 100}, // 产品详情
|
{field: 'product_detail.image', slots: {default: 'column2'}, sortable: true, title: '料品图片', width: 100}, // 产品详情
|
||||||
{field: 'product_detail.name', sortable: true, title: '料品名称', width: 250}, // 产品详情
|
{field: 'product_detail.name', sortable: true, title: '料品名称', width: 250}, // 产品详情
|
||||||
{field: 'product_detail.code', sortable: true, title: '料品编号', width: 150}, // 产品详情
|
{field: 'product_detail.code', sortable: true, title: '料品编号', width: 120}, // 产品详情
|
||||||
|
{field: 'product_detail.price', sortable: true, title: '单价(¥)', width: 120}, // 产品详情
|
||||||
|
{field: 'stock', sortable: true, title: '库存数量', width: 100}, // 库存数量
|
||||||
{field: 'product_detail.spec', sortable: true, title: '规格型号', width: 150}, // 规格型号
|
{field: 'product_detail.spec', sortable: true, title: '规格型号', width: 150}, // 规格型号
|
||||||
{field: 'product_detail.size', sortable: true, title: '尺寸', width: 100}, // 尺寸
|
{field: 'product_detail.size', sortable: true, title: '尺寸', width: 100}, // 尺寸
|
||||||
{field: 'product_detail.color', sortable: true, title: '颜色', width: 100}, // 颜色
|
{field: 'product_detail.color', sortable: true, title: '颜色', width: 100}, // 颜色
|
||||||
{field: 'stock', sortable: true, title: '库存数量', width: 100}, // 库存数量
|
|
||||||
{
|
{
|
||||||
field: 'create_time',
|
field: 'create_time',
|
||||||
formatter: 'formatDate',
|
formatter: 'formatDate',
|
||||||
|
|
|
||||||
|
|
@ -1,40 +1,92 @@
|
||||||
var config = {
|
var config = {
|
||||||
|
|
||||||
|
|
||||||
|
printTagConfig: {
|
||||||
printTagConfig:{
|
|
||||||
"name": "标签信息",
|
"name": "标签信息",
|
||||||
"title": "标签信息",
|
"title": "标签信息",
|
||||||
"fields": [{
|
"fields": [{
|
||||||
"name": "sequance",
|
"name": "sequance",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"title": "批次号"
|
"title": "批次号"
|
||||||
}, {
|
}, {
|
||||||
"name": "voucherdate",
|
"name": "voucherdate",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"title": "单据日期"
|
"title": "单据日期"
|
||||||
}, {
|
}, {
|
||||||
"name": "vouchercode",
|
"name": "vouchercode",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"title": "单据号"
|
"title": "单据号"
|
||||||
}, {
|
}, {
|
||||||
"name": "departmentName",
|
"name": "departmentName",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"title": "生产车间"
|
"title": "生产车间"
|
||||||
}, {
|
}, {
|
||||||
"name": "inventoryName",
|
"name": "inventoryName",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"title": "存货名称"
|
"title": "存货名称"
|
||||||
}, {
|
}, {
|
||||||
"name": "quantity",
|
"name": "quantity",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"title": "数量"
|
"title": "数量"
|
||||||
|
}, {
|
||||||
|
"name": "table",
|
||||||
|
"type": "table",
|
||||||
|
"title": "table",
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
"name": "inventoryName",
|
||||||
|
"type": "string",
|
||||||
|
"title": "存货名称"
|
||||||
|
}, {
|
||||||
|
"name": "quantity",
|
||||||
|
"type": "string",
|
||||||
|
"title": "数量"
|
||||||
|
}
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
printTagTemplate: {
|
||||||
|
"panels": [{
|
||||||
|
"index": 0,
|
||||||
|
"name": 1,
|
||||||
|
"height": 70,
|
||||||
|
"width": 60,
|
||||||
|
"paperHeader": 4.5,
|
||||||
|
"paperFooter": 190.5,
|
||||||
|
"printElements": [{
|
||||||
|
"options": {
|
||||||
|
"left": 10.5,
|
||||||
|
"top": 28.5,
|
||||||
|
"height": 17,
|
||||||
|
"width": 142.5,
|
||||||
|
"field": "sequance",
|
||||||
|
"fontSize": 21.75,
|
||||||
|
"fontWeight": "400",
|
||||||
|
"textAlign": "center",
|
||||||
|
"hideTitle": true,
|
||||||
|
"title": "批次号",
|
||||||
|
"coordinateSync": false,
|
||||||
|
"widthHeightSync": false,
|
||||||
|
"qrCodeLevel": 0,
|
||||||
|
"right": 153,
|
||||||
|
"bottom": 45.5,
|
||||||
|
"vCenter": 81.75,
|
||||||
|
"hCenter": 37,
|
||||||
|
"lineHeight": 27
|
||||||
|
}, "printElementType": {"title": "批次号", "type": "text"}
|
||||||
|
}],
|
||||||
|
"paperNumberLeft": 142.5,
|
||||||
|
"paperNumberTop": 199.5,
|
||||||
|
"paperNumberDisabled": true
|
||||||
}]
|
}]
|
||||||
},
|
}
|
||||||
|
|
||||||
printTagTemplate:{"panels":[{"index":0,"name":1,"height":70,"width":60,"paperHeader":4.5,"paperFooter":190.5,"printElements":[{"options":{"left":10.5,"top":28.5,"height":17,"width":142.5,"field":"sequance","fontSize":21.75,"fontWeight":"400","textAlign":"center","hideTitle":true,"title":"批次号","coordinateSync":false,"widthHeightSync":false,"qrCodeLevel":0,"right":153,"bottom":45.5,"vCenter":81.75,"hCenter":37,"lineHeight":27},"printElementType":{"title":"批次号","type":"text"}}],"paperNumberLeft":142.5,"paperNumberTop":199.5,"paperNumberDisabled":true}]}
|
};
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = config
|
module.exports = config
|
||||||
|
|
@ -14,11 +14,11 @@
|
||||||
<div slot="content">
|
<div slot="content">
|
||||||
<a-input-group compact style="margin: 10px 10px">
|
<a-input-group compact style="margin: 10px 10px">
|
||||||
<a-input type="number" v-model="paperWidth" style=" width: 100px; text-align: center"
|
<a-input type="number" v-model="paperWidth" style=" width: 100px; text-align: center"
|
||||||
placeholder="宽(mm)" />
|
placeholder="宽(mm)"/>
|
||||||
<a-input style=" width: 30px; border-left: 0; pointer-events: none; backgroundColor: #fff"
|
<a-input style=" width: 30px; border-left: 0; pointer-events: none; backgroundColor: #fff"
|
||||||
placeholder="~" disabled />
|
placeholder="~" disabled/>
|
||||||
<a-input type="number" v-model="paperHeight" style="width: 100px; text-align: center; border-left: 0"
|
<a-input type="number" v-model="paperHeight" style="width: 100px; text-align: center; border-left: 0"
|
||||||
placeholder="高(mm)" />
|
placeholder="高(mm)"/>
|
||||||
</a-input-group>
|
</a-input-group>
|
||||||
<a-button type="primary" style="width: 100%" @click="otherPaper">确定</a-button>
|
<a-button type="primary" style="width: 100%" @click="otherPaper">确定</a-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -27,7 +27,8 @@
|
||||||
</a-button-group>
|
</a-button-group>
|
||||||
<a-button type="text" icon="zoom-out" @click="changeScale(false)"></a-button>
|
<a-button type="text" icon="zoom-out" @click="changeScale(false)"></a-button>
|
||||||
<a-input-number :value="scaleValue" :min="scaleMin" :max="scaleMax" :step="0.1" disabled style="width: 70px;"
|
<a-input-number :value="scaleValue" :min="scaleMin" :max="scaleMax" :step="0.1" disabled style="width: 70px;"
|
||||||
:formatter="value => `${(value * 100).toFixed(0)}%`" :parser="value => value.replace('%', '')" />
|
:formatter="value => `${(value * 100).toFixed(0)}%`"
|
||||||
|
:parser="value => value.replace('%', '')"/>
|
||||||
<a-button type="text" icon="zoom-in" @click="changeScale(true)"></a-button>
|
<a-button type="text" icon="zoom-in" @click="changeScale(true)"></a-button>
|
||||||
<!-- 预览/打印 -->
|
<!-- 预览/打印 -->
|
||||||
<a-button-group>
|
<a-button-group>
|
||||||
|
|
@ -35,10 +36,10 @@
|
||||||
预览
|
预览
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-popconfirm title="是否确认清空?" okType="danger" okText="确定清空" @confirm="clearPaper">
|
<a-popconfirm title="是否确认清空?" okType="danger" okText="确定清空" @confirm="clearPaper">
|
||||||
<a-icon slot="icon" type="question-circle-o" style="color: red" />
|
<a-icon slot="icon" type="question-circle-o" style="color: red"/>
|
||||||
<a-button type="danger">
|
<a-button type="danger">
|
||||||
清空
|
清空
|
||||||
<a-icon type="close" />
|
<a-icon type="close"/>
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-popconfirm>
|
</a-popconfirm>
|
||||||
</a-button-group>
|
</a-button-group>
|
||||||
|
|
@ -68,7 +69,7 @@
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
<!-- 预览 -->
|
<!-- 预览 -->
|
||||||
<print-preview ref="preView" />
|
<print-preview ref="preView"/>
|
||||||
</a-card>
|
</a-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -76,14 +77,15 @@
|
||||||
|
|
||||||
import printPreview from './preview'
|
import printPreview from './preview'
|
||||||
|
|
||||||
import { hiprint } from "vue-plugin-hiprint";
|
import {hiprint} from "vue-plugin-hiprint";
|
||||||
import providers from './providers'
|
import providers from './providers'
|
||||||
import printData from './print-data'
|
import printData from './print-data'
|
||||||
import $ from "jquery"
|
import $ from "jquery"
|
||||||
|
|
||||||
let hiprintTemplate;
|
let hiprintTemplate;
|
||||||
export default {
|
export default {
|
||||||
name: "printCustom",
|
name: "printCustom",
|
||||||
components: { printPreview },
|
components: {printPreview},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
template: null,
|
template: null,
|
||||||
|
|
@ -139,7 +141,7 @@ export default {
|
||||||
let types = this.paperTypes
|
let types = this.paperTypes
|
||||||
for (const key in types) {
|
for (const key in types) {
|
||||||
let item = types[key]
|
let item = types[key]
|
||||||
let { width, height } = this.curPaper
|
let {width, height} = this.curPaper
|
||||||
if (item.width === width && item.height === height) {
|
if (item.width === width && item.height === height) {
|
||||||
type = key
|
type = key
|
||||||
}
|
}
|
||||||
|
|
@ -154,7 +156,7 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
init() {
|
init() {
|
||||||
this.modeList = providers.map((e) => {
|
this.modeList = providers.map((e) => {
|
||||||
return { type: e.type, name: e.name, value: e.value }
|
return {type: e.type, name: e.name, value: e.value}
|
||||||
})
|
})
|
||||||
this.changeMode()
|
this.changeMode()
|
||||||
},
|
},
|
||||||
|
|
@ -167,7 +169,7 @@ export default {
|
||||||
data.fields.forEach(field => {
|
data.fields.forEach(field => {
|
||||||
|
|
||||||
|
|
||||||
if (field.type == "one2many" && field.fields) {
|
if ((field.type == "one2many" || field.type == "table") && field.fields) {
|
||||||
|
|
||||||
let subFields = [];
|
let subFields = [];
|
||||||
var columns = [];
|
var columns = [];
|
||||||
|
|
@ -184,21 +186,21 @@ export default {
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
elements2.push(
|
elements2.push(
|
||||||
{
|
{
|
||||||
tid: 'bProviderModule.' + field.name, title: field.title,
|
tid: 'bProviderModule.' + field.name, title: field.title,
|
||||||
type: 'table',
|
type: 'table',
|
||||||
options: {
|
options: {
|
||||||
field: field.name,
|
field: field.name,
|
||||||
fields: subFields,
|
fields: subFields,
|
||||||
},
|
},
|
||||||
editable: true,
|
editable: true,
|
||||||
columnDisplayEditable: true,//列显示是否能编辑
|
columnDisplayEditable: true,//列显示是否能编辑
|
||||||
columnDisplayIndexEditable: true,//列顺序显示是否能编辑
|
columnDisplayIndexEditable: true,//列顺序显示是否能编辑
|
||||||
columnTitleEditable: true,//列标题是否能编辑
|
columnTitleEditable: true,//列标题是否能编辑
|
||||||
columnResizable: true, //列宽是否能调整
|
columnResizable: true, //列宽是否能调整
|
||||||
columnAlignEditable: true,//列对齐是否调整
|
columnAlignEditable: true,//列对齐是否调整
|
||||||
columns: [columns]
|
columns: [columns]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
@ -224,46 +226,52 @@ export default {
|
||||||
|
|
||||||
context.removePrintElementTypes("aProviderModule");
|
context.removePrintElementTypes("aProviderModule");
|
||||||
context.addPrintElementTypes(
|
context.addPrintElementTypes(
|
||||||
"aProviderModule", [
|
"aProviderModule", [
|
||||||
|
|
||||||
new hiprint.PrintElementTypeGroup("常规", elements),
|
new hiprint.PrintElementTypeGroup("常规", elements),
|
||||||
|
|
||||||
|
|
||||||
new hiprint.PrintElementTypeGroup("表格/其他", [
|
new hiprint.PrintElementTypeGroup("表格/其他", [
|
||||||
...elements2,
|
...elements2,
|
||||||
{ tid: 'bProviderModule.customText', title: '文本', customText: '自定义文本', custom: true, type: 'text' },
|
{
|
||||||
{
|
tid: 'bProviderModule.customText',
|
||||||
tid: 'bProviderModule.longText', title: '长文本', type: 'longText', options: {
|
title: '文本',
|
||||||
field: 'test.longText',
|
customText: '自定义文本',
|
||||||
width: 200,
|
custom: true,
|
||||||
testData: '长文本分页/不分页测试'
|
type: 'text'
|
||||||
},
|
},
|
||||||
}
|
{
|
||||||
]),
|
tid: 'bProviderModule.longText', title: '长文本', type: 'longText', options: {
|
||||||
|
field: 'test.longText',
|
||||||
|
width: 200,
|
||||||
|
testData: '长文本分页/不分页测试'
|
||||||
|
},
|
||||||
|
}
|
||||||
|
]),
|
||||||
|
|
||||||
new hiprint.PrintElementTypeGroup("辅助", [
|
new hiprint.PrintElementTypeGroup("辅助", [
|
||||||
{
|
{
|
||||||
tid: 'aProviderModule.hline',
|
tid: 'aProviderModule.hline',
|
||||||
title: '横线',
|
title: '横线',
|
||||||
type: 'hline'
|
type: 'hline'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tid: 'aProviderModule.vline',
|
tid: 'aProviderModule.vline',
|
||||||
title: '竖线',
|
title: '竖线',
|
||||||
type: 'vline'
|
type: 'vline'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tid: 'aProviderModule.rect',
|
tid: 'aProviderModule.rect',
|
||||||
title: '矩形',
|
title: '矩形',
|
||||||
type: 'rect'
|
type: 'rect'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tid: 'aProviderModule.oval',
|
tid: 'aProviderModule.oval',
|
||||||
title: '椭圆',
|
title: '椭圆',
|
||||||
type: 'oval'
|
type: 'oval'
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
|
|
@ -272,7 +280,7 @@ export default {
|
||||||
|
|
||||||
},
|
},
|
||||||
changeMode() {
|
changeMode() {
|
||||||
let { mode } = this
|
let {mode} = this
|
||||||
let provider = providers[mode]
|
let provider = providers[mode]
|
||||||
console.log(provider)
|
console.log(provider)
|
||||||
hiprint.init({
|
hiprint.init({
|
||||||
|
|
@ -309,10 +317,10 @@ export default {
|
||||||
setPaper(type, value) {
|
setPaper(type, value) {
|
||||||
try {
|
try {
|
||||||
if (Object.keys(this.paperTypes).includes(type)) {
|
if (Object.keys(this.paperTypes).includes(type)) {
|
||||||
this.curPaper = { type: type, width: value.width, height: value.height }
|
this.curPaper = {type: type, width: value.width, height: value.height}
|
||||||
hiprintTemplate.setPaper(value.width, value.height)
|
hiprintTemplate.setPaper(value.width, value.height)
|
||||||
} else {
|
} else {
|
||||||
this.curPaper = { type: 'other', width: value.width, height: value.height }
|
this.curPaper = {type: 'other', width: value.width, height: value.height}
|
||||||
hiprintTemplate.setPaper(value.width, value.height)
|
hiprintTemplate.setPaper(value.width, value.height)
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
@ -342,21 +350,21 @@ export default {
|
||||||
this.setPaper('other', value)
|
this.setPaper('other', value)
|
||||||
},
|
},
|
||||||
preView() {
|
preView() {
|
||||||
let { width } = this.curPaper
|
let {width} = this.curPaper
|
||||||
this.$refs.preView.show(hiprintTemplate, printData, width)
|
this.$refs.preView.show(hiprintTemplate, printData, width)
|
||||||
},
|
},
|
||||||
print() {
|
print() {
|
||||||
if (window.hiwebSocket.opened) {
|
if (window.hiwebSocket.opened) {
|
||||||
const printerList = hiprintTemplate.getPrinterList();
|
const printerList = hiprintTemplate.getPrinterList();
|
||||||
console.log(printerList)
|
console.log(printerList)
|
||||||
hiprintTemplate.print2(printData, { printer: '', title: 'hiprint测试打印' });
|
hiprintTemplate.print2(printData, {printer: '', title: 'hiprint测试打印'});
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.$message.error('客户端未连接,无法直接打印')
|
this.$message.error('客户端未连接,无法直接打印')
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
initDesigner({ config, template }) {
|
initDesigner({config, template}) {
|
||||||
|
|
||||||
if (!config || !config.fields || !config.fields.length) {
|
if (!config || !config.fields || !config.fields.length) {
|
||||||
return;
|
return;
|
||||||
|
|
@ -392,29 +400,29 @@ export default {
|
||||||
// 获取当前放大比例, 当zoom时传true 才会有
|
// 获取当前放大比例, 当zoom时传true 才会有
|
||||||
this.scaleValue = hiprintTemplate.editingPanel.scale || 1;
|
this.scaleValue = hiprintTemplate.editingPanel.scale || 1;
|
||||||
},
|
},
|
||||||
setValue({ value, config }) {
|
setValue({value, config}) {
|
||||||
|
|
||||||
console.log(value, config)
|
console.log(value, config)
|
||||||
|
|
||||||
var a4 = {
|
var a4 = {
|
||||||
width: 210,
|
width: 210,
|
||||||
height: 296.6
|
height: 296.6
|
||||||
};
|
};
|
||||||
|
|
||||||
this.curPaper = { type: value.PrintPage || "A4", width: value.Width || a4.width, height: value.Height || a4.height }
|
this.curPaper = {type: value.PrintPage || "A4", width: value.Width || a4.width, height: value.Height || a4.height}
|
||||||
|
|
||||||
this.paperWidth = this.curPaper.width;
|
this.paperWidth = this.curPaper.width;
|
||||||
this.pagerHeight = this.curPaper.heigth;
|
this.pagerHeight = this.curPaper.heigth;
|
||||||
|
|
||||||
let template = value.TemplateBody;
|
let template = value.TemplateBody;
|
||||||
if(typeof(template) == 'string'){
|
if (typeof (template) == 'string') {
|
||||||
template = JSON.parse(template);
|
template = JSON.parse(template);
|
||||||
}
|
}
|
||||||
this.initDesigner({ template: template, config: config });
|
this.initDesigner({template: template, config: config});
|
||||||
},
|
},
|
||||||
getValue() {
|
getValue() {
|
||||||
|
|
||||||
let { width, height } = this.curPaper
|
let {width, height} = this.curPaper
|
||||||
return {
|
return {
|
||||||
TemplateBody: hiprintTemplate.getJson(),
|
TemplateBody: hiprintTemplate.getJson(),
|
||||||
PrintPage: this.curPaperType,
|
PrintPage: this.curPaperType,
|
||||||
|
|
@ -442,7 +450,7 @@ export default {
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
// build 拖拽
|
// build 拖拽
|
||||||
/deep/ .hiprint-printElement-type>li>ul>li>a {
|
/deep/ .hiprint-printElement-type > li > ul > li > a {
|
||||||
padding: 4px 4px;
|
padding: 4px 4px;
|
||||||
color: #1296db;
|
color: #1296db;
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
|
|
@ -451,7 +459,6 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 设计容器
|
// 设计容器
|
||||||
.card-design {
|
.card-design {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue