parent
efd2d44563
commit
89135365bc
54
src/api/mes/print/labelCategory.js
Normal file
54
src/api/mes/print/labelCategory.js
Normal file
@ -0,0 +1,54 @@
|
||||
import request from '@/router/axios'
|
||||
import {nlv_print} from "@/api/prefix";
|
||||
|
||||
export function fetchList(query) {
|
||||
return request({
|
||||
url: nlv_print('/label-category/page'),
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function addObj(obj) {
|
||||
return request({
|
||||
url: nlv_print('/label-category'),
|
||||
method: 'post',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
|
||||
export function getObj(id) {
|
||||
return request({
|
||||
url: nlv_print(`/label-category/${id}`),
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function getByCode(code) {
|
||||
return request({
|
||||
url: nlv_print(`/label-category/by-code?code=${code}`),
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function delByCode(code) {
|
||||
return request({
|
||||
url: nlv_print(`/label-category/delete-by-code?code=${code}`),
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function delObj(id) {
|
||||
return request({
|
||||
url: nlv_print(`/label-category/${id}`),
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function putObj(obj) {
|
||||
return request({
|
||||
url: nlv_print('/label-category'),
|
||||
method: 'put',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
54
src/api/mes/print/labelfieldallocation.js
Normal file
54
src/api/mes/print/labelfieldallocation.js
Normal file
@ -0,0 +1,54 @@
|
||||
import request from '@/router/axios'
|
||||
import {nlv_print} from "@/api/prefix";
|
||||
|
||||
export function fetchList(query) {
|
||||
return request({
|
||||
url: nlv_print('/label-field-allocation/page'),
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function addObj(obj) {
|
||||
return request({
|
||||
url: nlv_print('/label-field-allocation'),
|
||||
method: 'post',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
|
||||
export function getObj(id) {
|
||||
return request({
|
||||
url: nlv_print(`/label-field-allocation/${id}`),
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function getByCode(code) {
|
||||
return request({
|
||||
url: nlv_print(`/label-field-allocation/by-code?code=${code}`),
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function delByCode(code) {
|
||||
return request({
|
||||
url: nlv_print(`/label-field-allocation/delete-by-code?code=${code}`),
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function delObj(id) {
|
||||
return request({
|
||||
url: nlv_print(`/label-field-allocation/${id}`),
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function putObj(obj) {
|
||||
return request({
|
||||
url: nlv_print('/label-field-allocation'),
|
||||
method: 'put',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
40
src/api/mes/print/print-label-template.js
Normal file
40
src/api/mes/print/print-label-template.js
Normal file
@ -0,0 +1,40 @@
|
||||
import request from '@/router/axios'
|
||||
import {nlv_print} from "@/api/prefix";
|
||||
|
||||
export function fetchList(query) {
|
||||
return request({
|
||||
url: nlv_print('/printlabeltemplate/page'),
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function addObj(obj) {
|
||||
return request({
|
||||
url: nlv_print('/printlabeltemplate'),
|
||||
method: 'post',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
|
||||
export function getObj(id) {
|
||||
return request({
|
||||
url: nlv_print(`/printlabeltemplate/${id}`),
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function delObj(id) {
|
||||
return request({
|
||||
url: nlv_print(`/printlabeltemplate/${id}`),
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function putObj(obj) {
|
||||
return request({
|
||||
url: nlv_print('/printlabeltemplate'),
|
||||
method: 'put',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
33
src/api/mes/print/printRuleMaintenance.js
Normal file
33
src/api/mes/print/printRuleMaintenance.js
Normal file
@ -0,0 +1,33 @@
|
||||
import request from '@/router/axios'
|
||||
import {nlv_print} from "@/api/prefix";
|
||||
|
||||
export function getObj(obj) {
|
||||
return request({
|
||||
url: nlv_print('/printRule/search'),
|
||||
method: 'post',
|
||||
params: obj
|
||||
})
|
||||
}
|
||||
|
||||
export function addObj(obj) {
|
||||
return request({
|
||||
url: nlv_print('/printRule/save'),
|
||||
method: 'post',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
|
||||
export function deleteObj(obj) {
|
||||
return request({
|
||||
url: nlv_print('/printRule/delete'),
|
||||
method: 'post',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
|
||||
export function getTemplateCategoryList(site) {
|
||||
return request({
|
||||
url: nlv_print(`/printRule/getLabelCategoryList/${site}`),
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
56
src/api/mes/print/printer.js
Normal file
56
src/api/mes/print/printer.js
Normal file
@ -0,0 +1,56 @@
|
||||
import request from '@/router/axios'
|
||||
import {nlv_print} from "@/api/prefix";
|
||||
|
||||
export function fetchList(query) {
|
||||
return request({
|
||||
url: nlv_print('/printer/page'),
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function addObj(obj) {
|
||||
return request({
|
||||
url: nlv_print('/printer'),
|
||||
method: 'post',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
|
||||
export function getObj(id) {
|
||||
return request({
|
||||
url: nlv_print(`/printer/${id}`),
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function getByCode(param) {
|
||||
return request({
|
||||
url: nlv_print('/printer/by-code'),
|
||||
method: 'get',
|
||||
params: param
|
||||
})
|
||||
}
|
||||
|
||||
export function delByCode(param) {
|
||||
return request({
|
||||
url: nlv_print('/printer/delete-by-code'),
|
||||
method: 'delete',
|
||||
params: param
|
||||
})
|
||||
}
|
||||
|
||||
export function delObj(id) {
|
||||
return request({
|
||||
url: nlv_print(`/printer/${id}`),
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function putObj(obj) {
|
||||
return request({
|
||||
url: nlv_print('/printer'),
|
||||
method: 'put',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
54
src/api/mes/print/systemfield.js
Normal file
54
src/api/mes/print/systemfield.js
Normal file
@ -0,0 +1,54 @@
|
||||
import request from '@/router/axios'
|
||||
import {nlv_print} from "@/api/prefix";
|
||||
|
||||
export function fetchList(query) {
|
||||
return request({
|
||||
url: nlv_print('/system-field/page'),
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function addObj(obj) {
|
||||
return request({
|
||||
url: nlv_print('/system-field'),
|
||||
method: 'post',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
|
||||
export function getObj(id) {
|
||||
return request({
|
||||
url: nlv_print(`/system-field/${id}`),
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function getByCode(code) {
|
||||
return request({
|
||||
url: nlv_print(`/system-field/by-code?code=${code}`),
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function delByCode(code) {
|
||||
return request({
|
||||
url: nlv_print(`/system-field/delete-by-code?code=${code}`),
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function delObj(id) {
|
||||
return request({
|
||||
url: nlv_print(`/system-field/${id}`),
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function putObj(obj) {
|
||||
return request({
|
||||
url: nlv_print('/system-field'),
|
||||
method: 'put',
|
||||
data: obj
|
||||
})
|
||||
}
|
||||
@ -15,6 +15,7 @@ export const iepMsa = 'iep-msa'
|
||||
export const iepRpt = 'iep-rpt'
|
||||
export const iepDcc = 'iep-dcc'
|
||||
export const nlvWms = 'nlv-wms'
|
||||
export const nlvPrint = 'nlv-print'
|
||||
|
||||
export function iep(url) {
|
||||
return SLASH + iepApp + url
|
||||
@ -47,10 +48,6 @@ export function wms(url) {
|
||||
return SLASH + iepWms + url
|
||||
}
|
||||
|
||||
export function nlv_wms(url) {
|
||||
return SLASH + nlvWms + url
|
||||
}
|
||||
|
||||
export function flow(url) {
|
||||
return SLASH + iepFlow + url
|
||||
}
|
||||
@ -76,7 +73,15 @@ export function rpt(url) {
|
||||
|
||||
export function dcc(url) {
|
||||
return SLASH + iepDcc + url
|
||||
}
|
||||
}
|
||||
|
||||
export function nlv_wms(url) {
|
||||
return SLASH + nlvWms + url
|
||||
}
|
||||
|
||||
export function nlv_print(url) {
|
||||
return SLASH + nlvPrint + url
|
||||
}
|
||||
|
||||
export default {
|
||||
iep,
|
||||
@ -93,5 +98,7 @@ export default {
|
||||
int,
|
||||
msa,
|
||||
rpt,
|
||||
dcc
|
||||
dcc,
|
||||
nlv_wms,
|
||||
nlv_print
|
||||
}
|
||||
|
||||
220
src/components/dialog/input-multiple-select-checkbox-dialog.vue
Normal file
220
src/components/dialog/input-multiple-select-checkbox-dialog.vue
Normal file
@ -0,0 +1,220 @@
|
||||
<template>
|
||||
<el-dialog v-el-drag-dialog :title="modalObj.title" :visible="visible" top="10" width="60%" center
|
||||
:before-close="modalClose" @open="getData(false)">
|
||||
<div style="display:flex; align-items:center; justify-content:center; flex-direction:column">
|
||||
<div style="width: 100%;">
|
||||
<div>已选数据:{{ selectedData }}</div>
|
||||
<el-input size="small" v-model="searchVal" @change="getData(true)">
|
||||
<el-button slot="append" icon="el-icon-search" @click="getData(true)"></el-button>
|
||||
</el-input>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div v-if="modalObj.page !== false" style="width: 100%">
|
||||
<el-table ref="multipleSelectTable"
|
||||
:row-key="getRowKey"
|
||||
@selection-change="handleSelectionChange"
|
||||
border highlight-current-row
|
||||
:data="dataList.records"
|
||||
:height="tableHeight"
|
||||
v-loading="tableLoading">
|
||||
<el-table-column
|
||||
type="selection"
|
||||
:reserve-selection=true
|
||||
width="55">
|
||||
</el-table-column>
|
||||
<el-table-column v-for="(item, key) in modalObj.tableColumn" :prop="item.prop" :label="item.label"
|
||||
:width="item.width" :key="key" :formatter="item.formatter"></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div v-else style="width: 100%">
|
||||
<el-table ref="multipleSelectTable"
|
||||
:row-key="getRowKey"
|
||||
@selection-change="handleSelectionChange"
|
||||
border highlight-current-row
|
||||
:data="dataListWithoutPage" :height="tableHeight" v-loading="tableLoading">
|
||||
<el-table-column
|
||||
type="selection"
|
||||
:reserve-selection=true
|
||||
width="55">
|
||||
</el-table-column>
|
||||
<el-table-column v-for="(item, key) in modalObj.tableColumn" :prop="item.prop" :label="item.label"
|
||||
:width="item.width" :key="key" :formatter="item.formatter"></el-table-column>
|
||||
</el-table>
|
||||
<el-row>
|
||||
<el-button @click="handleMultipleSelectClick" type="primary" size="mini">当页全选</el-button>
|
||||
<el-button @click="handleMultipleSelectClick" type="danger" size="mini">清除选定</el-button>
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
<div v-if="modalObj.page !== false"
|
||||
style="width: 100%;display: inline-block;flex-direction: column;align-items: center;justify-content: center;">
|
||||
<el-button @click="selectCurrentPageDataClick" type="primary" size="mini">当页全选</el-button>
|
||||
<el-button @click="cleanMultipleSelectedClick" type="danger" size="mini">清除选定</el-button>
|
||||
<el-pagination layout="total, sizes, prev, pager, next, jumper" :total="dataList.total"
|
||||
style="display: inline-block;"
|
||||
:page-size="dataList.size" @size-change="handleSizeChange" @current-change="handleCurrentChange">
|
||||
</el-pagination>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 20px">
|
||||
<el-button @click="handleMultipleSelectClick" type="primary">确定</el-button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import '@/util/dialogdrag.js'
|
||||
import {isBlank} from "@/util/string"; // 引入移动事件(el-drag-dialog.js的内容为上面的代码块)
|
||||
|
||||
export default {
|
||||
name: "input-multiple-select-checkbox-dialog",
|
||||
props: {
|
||||
modalObj: Object,
|
||||
modalFetchFun: Function,
|
||||
beforeLoadingFun: Function,
|
||||
modalShow: Boolean
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
searchVal: '',
|
||||
tableLoading: false,
|
||||
visible: this.modalShow,
|
||||
dataList: {},
|
||||
dataListWithoutPage: [],
|
||||
returnSelectedData: [],
|
||||
queryParam: { current: 1, size: 20 },
|
||||
selectedData: ''
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clear() {
|
||||
this.searchVal = null
|
||||
this.dataList = {
|
||||
records: [],
|
||||
total: 0,
|
||||
size: 20
|
||||
}
|
||||
},
|
||||
modalClose() {
|
||||
this.visible = false
|
||||
// 清掉已经选择的数据
|
||||
this.$refs.multipleSelectTable.clearSelection();
|
||||
},
|
||||
getData(resetCurrentPage) {
|
||||
let me = this;
|
||||
let keyColumn = this.modalObj.tableColumn[0].prop;
|
||||
if (me.searchVal) {
|
||||
me.queryParam[me.modalObj.condition || "searchText"] = me.searchVal;
|
||||
} else {
|
||||
delete me.queryParam[me.modalObj.condition || "searchText"];
|
||||
}
|
||||
me.tableLoading = true;
|
||||
if (resetCurrentPage){
|
||||
// 修正如果是重新查询时,需要将当前页重新置为第一页
|
||||
me.queryParam.current = 1;
|
||||
}
|
||||
let fetch = me.modalFetchFun(Object.assign(me.queryParam, me.modalObj.queryParam))
|
||||
fetch.then(function (resp) {
|
||||
me.tableLoading = false;
|
||||
if (me.beforeLoadingFun) {
|
||||
me.beforeLoadingFun(resp);
|
||||
}
|
||||
if (me.modalObj.page !== false) {
|
||||
me.dataList = resp.data.data || {};
|
||||
let record = me.dataList.records;
|
||||
for (let i = 0; i < record.length; i++) {
|
||||
// me.dataList.records[i].id = ((currentPage-1)*size) + i; // 追加id列,用于多选分页依旧保留已选数据
|
||||
me.dataList.records[i].id = me.dataList.records[i][keyColumn]; // 追加id列,用于多选分页依旧保留已选数据
|
||||
}
|
||||
} else {
|
||||
me.dataListWithoutPage = resp.data.data || [];
|
||||
}
|
||||
|
||||
}).catch(function (e) {
|
||||
me.tableLoading = false;
|
||||
me.$message({
|
||||
message: e,
|
||||
type: 'warning'
|
||||
});
|
||||
});
|
||||
},
|
||||
handleSelectionChange(val){
|
||||
this.returnSelectedData = val;
|
||||
// 去掉重覆对象
|
||||
this.returnSelectedData = val.filter(function(item, index, array) {
|
||||
return array.indexOf(item) === index;
|
||||
});
|
||||
|
||||
// 标题头部显示已选择的数据
|
||||
let length = this.returnSelectedData.length;
|
||||
this.selectedData = '';
|
||||
let keyColumn = this.modalObj.tableColumn[0].prop;
|
||||
for (let i = 0; i < length; i++) {
|
||||
let minData = this.returnSelectedData[i];
|
||||
if (isBlank(this.selectedData)){
|
||||
this.selectedData = minData[keyColumn];
|
||||
}else{
|
||||
this.selectedData = this.selectedData+';'+ minData[keyColumn];
|
||||
}
|
||||
}
|
||||
},
|
||||
getRowKey(row){
|
||||
return row.id;
|
||||
},
|
||||
handleMultipleSelectClick() {
|
||||
let me = this;
|
||||
me.$emit("inputDialogSelected", this.returnSelectedData);
|
||||
me.modalClose();
|
||||
},
|
||||
// 选定当页的数据
|
||||
selectCurrentPageDataClick() {
|
||||
let me = this;
|
||||
let rows = me.dataList.records;
|
||||
rows.forEach(row => {
|
||||
this.$refs.multipleSelectTable.toggleRowSelection(row);
|
||||
});
|
||||
},
|
||||
// 清掉所有选定的数据
|
||||
cleanMultipleSelectedClick() {
|
||||
let me = this;
|
||||
this.selectedData = [];
|
||||
this.$refs.multipleSelectTable.clearSelection();
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
let me = this;
|
||||
me.queryParam.size = val;
|
||||
me.getData(false);
|
||||
// 清掉选择的符号,但不清除选择的数据
|
||||
// this.$refs.multipleSelectTable.clearSelection();
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
let me = this;
|
||||
me.queryParam.current = val;
|
||||
me.getData(false);
|
||||
// 清掉选择的符号,但不清除选择的数据
|
||||
// this.$refs.multipleSelectTable.clearSelection();
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
tableHeight() {
|
||||
return document.body.clientHeight - 400;
|
||||
}
|
||||
},
|
||||
//这个地方需要监听modalShow的变化,如果modalShow发生变化后,触发父组件对modal-show的更新
|
||||
watch: {
|
||||
modalShow: function (val) {
|
||||
this.searchVal = ""
|
||||
this.$emit('update:modalShow', null)
|
||||
this.visible = true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
146
src/components/dialog/input-multiple-select-dialog.vue
Normal file
146
src/components/dialog/input-multiple-select-dialog.vue
Normal file
@ -0,0 +1,146 @@
|
||||
<template>
|
||||
<el-dialog v-el-drag-dialog :title="modalObj.title" :visible="visible" top="10" width="60%" center
|
||||
:before-close="modalClose" @open="getData">
|
||||
<div style="display:flex; align-items:center; justify-content:center; flex-direction:column">
|
||||
<div style="width: 100%;">
|
||||
<el-input size="small" v-model="searchVal" @change="getData" style="width: 50%;">
|
||||
<el-button slot="append" icon="el-icon-search" @click="getData"></el-button>
|
||||
</el-input>
|
||||
<el-input size="small" v-model="confirmValue" style="width: 50%;" clearable>
|
||||
<el-button slot="append" icon="el-icon-check" @click="confirmClose"></el-button>
|
||||
</el-input>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div v-if="modalObj.page !== false" style="width: 100%">
|
||||
<el-table border highlight-current-row :data="dataList.records" :height="tableHeight"
|
||||
@row-click="handleRowDblclick" v-loading="tableLoading">
|
||||
<el-table-column v-for="(item, key) in modalObj.tableColumn" :prop="item.prop" :label="item.label"
|
||||
:width="item.width" :key="key" :formatter="item.formatter"></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div v-else style="width: 100%">
|
||||
<el-table border highlight-current-row :data="dataListWithoutPage" :height="tableHeight"
|
||||
@row-click="handleRowDblclick" v-loading="tableLoading">
|
||||
<el-table-column v-for="(item, key) in modalObj.tableColumn" :prop="item.prop" :label="item.label"
|
||||
:width="item.width" :key="key" :formatter="item.formatter"></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
|
||||
<div v-if="modalObj.page !== false"
|
||||
style="width: 100%;display: flex;flex-direction: column;align-items: center;justify-content: center;">
|
||||
<el-pagination layout="total, sizes, prev, pager, next, jumper" :total="dataList.total"
|
||||
:page-size="dataList.size" @size-change="handleSizeChange" @current-change="handleCurrentChange">
|
||||
</el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import '@/util/dialogdrag.js'; // 引入移动事件(el-drag-dialog.js的内容为上面的代码块)
|
||||
|
||||
export default {
|
||||
name: "input-select-dialog",
|
||||
props: {
|
||||
modalObj: Object,
|
||||
modalFetchFun: Function,
|
||||
beforeLoadingFun: Function,
|
||||
modalShow: Boolean
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
searchVal: '',
|
||||
tableLoading: false,
|
||||
visible: this.modalShow,
|
||||
dataList: {},
|
||||
dataListWithoutPage: [],
|
||||
queryParam: {current: 1, size: 20},
|
||||
confirmValue: ''
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
clear() {
|
||||
this.searchVal = null;
|
||||
this.confirmValue = '';
|
||||
this.dataList = {
|
||||
records: [],
|
||||
total: 0,
|
||||
size: 20
|
||||
};
|
||||
},
|
||||
modalClose() {
|
||||
this.visible = false;
|
||||
},
|
||||
getData() {
|
||||
let me = this;
|
||||
if (me.searchVal) {
|
||||
me.queryParam[me.modalObj.condition || "searchText"] = me.searchVal;
|
||||
} else {
|
||||
delete me.queryParam[me.modalObj.condition || "searchText"];
|
||||
}
|
||||
me.tableLoading = true;
|
||||
let fetch = me.modalFetchFun(Object.assign(me.queryParam, me.modalObj.queryParam));
|
||||
fetch.then(function (resp) {
|
||||
me.tableLoading = false;
|
||||
if (me.beforeLoadingFun) {
|
||||
me.beforeLoadingFun(resp);
|
||||
}
|
||||
if (me.modalObj.page !== false) {
|
||||
me.dataList = resp.data.data || {};
|
||||
} else {
|
||||
me.dataListWithoutPage = resp.data.data || [];
|
||||
}
|
||||
|
||||
}).catch(function (e) {
|
||||
me.tableLoading = false;
|
||||
me.$message({
|
||||
message: e,
|
||||
type: 'warning'
|
||||
});
|
||||
});
|
||||
},
|
||||
handleRowDblclick(row, column, event) {
|
||||
let me = this;
|
||||
let value = row[me.modalObj.callBackKey], regex = me.modalObj.regex ? me.modalObj.regex : ',';
|
||||
if (value && me.confirmValue.indexOf(value) < 0) {
|
||||
me.confirmValue += me.confirmValue.length > 0 ? regex + value : value;
|
||||
}
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
let me = this;
|
||||
me.queryParam.size = val;
|
||||
me.getData();
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
let me = this;
|
||||
me.queryParam.current = val;
|
||||
me.getData();
|
||||
},
|
||||
confirmClose() {
|
||||
let me = this;
|
||||
me.$emit("inputDialogSelected", me.confirmValue);
|
||||
me.modalClose();
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
tableHeight() {
|
||||
return document.body.clientHeight - 200;
|
||||
}
|
||||
},
|
||||
//这个地方需要监听modalShow的变化,如果modalShow发生变化后,触发父组件对modal-show的更新
|
||||
watch: {
|
||||
modalShow: function (val) {
|
||||
this.searchVal = "";
|
||||
this.confirmValue = "";
|
||||
this.$emit('update:modalShow', null);
|
||||
this.visible = true;
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@ -3,7 +3,7 @@ import i18n from '@/i18n';
|
||||
export default {
|
||||
title: 'iMES',
|
||||
subtitle: 'iMES',
|
||||
copyright: 'Copyright 2020-2024 SEMI-TECH. All Rights Reserved.',
|
||||
copyright: 'Copyright 2020-2024 NLINV. All Rights Reserved.',
|
||||
isFirstPage: true, // 配置首页不可关闭
|
||||
key: 'mom', // 配置主键,目前用于存储
|
||||
validateCode: false, //是否开启验证码校验
|
||||
|
||||
@ -23,6 +23,9 @@ import AvueFormDesign from 'pig-avue-form-design'
|
||||
import basicContainer from './components/basic-container/main'
|
||||
import inputSelectDialog from './components/dialog/input-select-dialog'
|
||||
import inputSelectCustDialog from './components/dialog/input-select-dialog-cust'
|
||||
import inputMultipleSelectCheckboxDialog from './components/dialog/input-multiple-select-checkbox-dialog'
|
||||
import inputMultipleSelectDialog from './components/dialog/input-multiple-select-dialog'
|
||||
|
||||
import topBar from './components/top-bar/main'
|
||||
import moment from 'moment'
|
||||
import AttachmentUpload from './components/attachment/index'
|
||||
@ -132,6 +135,9 @@ Vue.component('attachment-upload', AttachmentUpload)
|
||||
// 注册公用input弹出框
|
||||
Vue.component('input-select-dialog', inputSelectDialog)
|
||||
Vue.component('input-select-dialog-cust', inputSelectCustDialog)
|
||||
// 多选项含checkBox的弹出框,多选后点击确定按钮回传选中的参数
|
||||
Vue.component('input-multiple-select-checkbox-dialog', inputMultipleSelectCheckboxDialog)
|
||||
Vue.component('input-multiple-select-dialog', inputMultipleSelectDialog)
|
||||
|
||||
// 注册公用固钉
|
||||
Vue.component('c-top-bar', topBar)
|
||||
|
||||
214
src/views/mes/print/labelCategory/index.vue
Normal file
214
src/views/mes/print/labelCategory/index.vue
Normal file
@ -0,0 +1,214 @@
|
||||
<template>
|
||||
<div class="execution">
|
||||
<input-select-dialog :modal-obj="labelCategoryDialogObj" :modal-fetch-fun='labelCategoryDialogFetchFun' :modal-show.sync="labelCategoryDialogVisible" @inputDialogSelected="labelCategorySelected"></input-select-dialog>
|
||||
<basic-container style="margin-top: -20px">
|
||||
<c-top-bar :offset="50">
|
||||
<el-button v-if="mes_label_category_retrive" type="text" icon="el-icon-search" @click="doRetrive('formObj')">检索</el-button>
|
||||
<el-divider v-if="mes_label_category_retrive" direction="vertical"></el-divider>
|
||||
<el-button v-if="mes_label_category_save" type="text" icon="el-icon-circle-check" @click="doSave('formObj')">保存</el-button>
|
||||
<el-divider v-if="mes_label_category_save" direction="vertical"></el-divider>
|
||||
<el-button type="text" icon="el-icon-circle-close" @click="doClear()">清除</el-button>
|
||||
<el-divider v-if="mes_label_category_del" direction="vertical"></el-divider>
|
||||
<el-button v-if="mes_label_category_del" type="text" icon="el-icon-delete" @click="doRemove('formObj')">删除</el-button>
|
||||
<el-divider style="margin-top: 0px;"></el-divider>
|
||||
</c-top-bar>
|
||||
<el-form ref="formObj" :rules="rules" :model="formObj" label-width="200px">
|
||||
<el-row :gutter="10">
|
||||
<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="6">
|
||||
<el-form-item label="标签类别编号:" prop="labelCategoryId">
|
||||
<el-input placeHolder="标签类别编号" v-model.trim="formObj.labelCategoryId"><i slot="suffix" class="el-input__icon el-icon-search" @click.stop="showLabelCategoryDialog()"></i></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24"><hr class="el-hr" /></el-col>
|
||||
<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="6">
|
||||
<el-form-item label="标签类别名称:" prop="labelCategoryName">
|
||||
<el-input placeHolder="标签类别名称" v-model.trim="formObj.labelCategoryName"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</basic-container>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
fetchList,
|
||||
getByCode,
|
||||
delByCode,
|
||||
addObj,
|
||||
putObj,
|
||||
delObj
|
||||
} from '@/api/mes/print/labelCategory'
|
||||
import { showLoading, hideLoading } from '@/const/loading'
|
||||
import {stringFormat, isBlank} from "@/util/string"
|
||||
import {
|
||||
mapGetters
|
||||
} from 'vuex'
|
||||
|
||||
export default {
|
||||
name: "label-category_maintain",
|
||||
data(){
|
||||
return {
|
||||
formObj: {},
|
||||
retrivedLabelCategory: "",
|
||||
mes_label_category_save: false,
|
||||
mes_label_category_del: false,
|
||||
mes_label_category_retrive: false,
|
||||
labelCategoryDialogVisible : false,
|
||||
initData: {
|
||||
handle: "",
|
||||
site: "",
|
||||
labelCategoryId: "",
|
||||
labelCategoryName: "",
|
||||
creator: "",
|
||||
updater: "",
|
||||
dateCreate: "",
|
||||
dateUpdate: "",
|
||||
},
|
||||
rules: {
|
||||
labelCategoryId: [
|
||||
{ required: true, message: '请输入标签类别编号' }
|
||||
],
|
||||
},
|
||||
labelCategoryDialogFetchFun: fetchList,
|
||||
labelCategoryDialogObj: {
|
||||
condition: "searchText",
|
||||
tableColumn: [
|
||||
{prop: "labelCategoryId", label: "标签类别编号"},
|
||||
|
||||
{prop: "labelCategoryName", label: "标签类别名称"},
|
||||
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.mes_label_category_save = this.permissions['mes_label_category_save']
|
||||
this.mes_label_category_del = this.permissions['mes_label_category_del']
|
||||
this.mes_label_category_retrive = this.permissions['mes_label_category_retrive']
|
||||
this.formObj = Object.assign({}, this.initData)
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['permissions']),
|
||||
permissionList() {
|
||||
return {
|
||||
|
||||
};
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
//显示操作弹窗框
|
||||
showLabelCategoryDialog() {
|
||||
this.labelCategoryDialogVisible = true
|
||||
},
|
||||
labelCategorySelected(row) {
|
||||
let me = this
|
||||
me.formObj.labelCategoryId = row.labelCategoryId
|
||||
},
|
||||
doRetrive(formName) {
|
||||
let me = this
|
||||
me.$refs[formName].validateField(['labelCategoryId'], (errorMessage) => {
|
||||
if (errorMessage) {
|
||||
return false;
|
||||
} else {
|
||||
showLoading()
|
||||
let labelCategoryId = me.formObj.labelCategoryId;
|
||||
getByCode(labelCategoryId).then(response => {
|
||||
hideLoading()
|
||||
if(!response.data.data || response.data.data.length === 0) {
|
||||
me.doClear({labelCategoryId: labelCategoryId})
|
||||
let errorMsg = stringFormat('{0} 不存在', labelCategoryId)
|
||||
return me.$message.error(errorMsg)
|
||||
}
|
||||
me.formObj = Object.assign({}, response.data.data)
|
||||
me.retrivedLabelCategory = me.formObj.labelCategoryId
|
||||
}).catch(() => {
|
||||
hideLoading()
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
doSave(formName) {
|
||||
let me = this
|
||||
me.$refs[formName].validate((valid) => {
|
||||
if (valid) {
|
||||
if(me.isUpdate()) {
|
||||
me.doUpdate()
|
||||
} else {
|
||||
me.doAdd()
|
||||
}
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
});
|
||||
},
|
||||
doAdd() {
|
||||
let me = this
|
||||
showLoading()
|
||||
addObj(me.formObj).then(respData => {
|
||||
hideLoading()
|
||||
me.doRetrive('formObj')
|
||||
this.$message.success('新增成功')
|
||||
}).catch(error => {
|
||||
hideLoading()
|
||||
});
|
||||
},
|
||||
doUpdate() {
|
||||
let me = this
|
||||
showLoading()
|
||||
putObj(me.formObj).then(respData => {
|
||||
hideLoading()
|
||||
me.doRetrive('formObj')
|
||||
this.$message.success('更新成功')
|
||||
}).catch(error => {
|
||||
hideLoading()
|
||||
});
|
||||
},
|
||||
doRemove(formName) {
|
||||
let me = this
|
||||
let code = me.formObj.labelCategoryId
|
||||
me.$refs[formName].validateField(['labelCategoryId'], (errorMessage) => {
|
||||
if (errorMessage) {
|
||||
return
|
||||
} else {
|
||||
if(!me.isUpdate()) {
|
||||
return this.$message.warning('必须先检索记录,然后才能将其删除')
|
||||
}
|
||||
showLoading()
|
||||
me.$confirm('是否确认删除' + code, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(function() {
|
||||
hideLoading()
|
||||
return delByCode(code)
|
||||
}).then(data => {
|
||||
hideLoading()
|
||||
this.$message.success('删除成功')
|
||||
me.doClear()
|
||||
}).catch(() => {
|
||||
hideLoading()
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
doClear(retainData) {
|
||||
let me = this
|
||||
me.formObj = retainData ? Object.assign({}, this.initData, retainData) : Object.assign({}, this.initData)
|
||||
me.retrivedLabelCategory = ""
|
||||
},
|
||||
isUpdate() {
|
||||
let me = this
|
||||
if(me.formObj.labelCategoryId === me.retrivedLabelCategory) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
301
src/views/mes/print/labelFieldAllocation/index.vue
Normal file
301
src/views/mes/print/labelFieldAllocation/index.vue
Normal file
@ -0,0 +1,301 @@
|
||||
<template>
|
||||
<div class="execution">
|
||||
<input-select-dialog :modal-obj="labelFieldAllocationDialogObj" :modal-fetch-fun='labelFieldAllocationDialogFetchFun' :modal-show.sync="labelFieldAllocationDialogVisible" @inputDialogSelected="labelFieldAllocationSelected"></input-select-dialog>
|
||||
<input-select-dialog :modal-obj="fieldNumberDialogObj" :modal-fetch-fun='fieldNumberDialogFetchFun' :modal-show.sync="fieldNumberDialogVisible" @inputDialogSelected="fieldNumberSelected"></input-select-dialog>
|
||||
<basic-container style="margin-top: -20px">
|
||||
<c-top-bar :offset="50">
|
||||
<el-button v-if="mes_label_field_retrive" type="text" icon="el-icon-search" @click="doRetrive('formObj')">检索</el-button>
|
||||
<el-divider v-if="mes_label_field_retrive" direction="vertical"></el-divider>
|
||||
<el-button v-if="mes_label_field_save" type="text" icon="el-icon-circle-check" @click="doSave('formObj')">保存</el-button>
|
||||
<el-divider v-if="mes_label_field_save" direction="vertical"></el-divider>
|
||||
<el-button type="text" icon="el-icon-circle-close" @click="doClear()">清除</el-button>
|
||||
<el-divider v-if="mes_label_field_del" direction="vertical"></el-divider>
|
||||
<el-button v-if="mes_label_field_del" type="text" icon="el-icon-delete" @click="doRemove('formObj')">删除</el-button>
|
||||
<el-divider style="margin-top: 0px;"></el-divider>
|
||||
</c-top-bar>
|
||||
<el-form ref="formObj" :rules="rules" :model="formObj" label-width="200px">
|
||||
<el-row :gutter="10">
|
||||
<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="6">
|
||||
<el-form-item label="模板编号:" prop="labelNumber">
|
||||
<el-input placeHolder="模板编号" v-model="formObj.labelNumber"><i slot="suffix" class="el-input__icon el-icon-search" @click.stop="showLabelFieldAllocationDialog()"></i></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24"><hr class="el-hr" /></el-col>
|
||||
<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="6">
|
||||
<el-form-item label="模板名称:" prop="labelDescription">
|
||||
<el-input placeHolder="模板名称" v-model="formObj.labelDescription"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-tabs v-model="tabActiveName">
|
||||
<el-tab-pane label="明细" name="labelFieldAllocationDetailTab">
|
||||
<el-col :span="24">
|
||||
<el-button type="primary" @click="addLabelFieldAllocationDetailDetail()">新增</el-button>
|
||||
</el-col>
|
||||
<el-table size="mini" height="250" :data="formObj.labelFieldAllocationDetailList" border style="width: 100%" highlight-current-row>
|
||||
<el-table-column prop="seq" label="序号">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model.trim="scope.row.seq" :disabled="true"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="labelField" label="模板字段名">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model.trim="scope.row.labelField"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="fieldNumber" label="字段编号">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model.trim="scope.row.fieldNumber">
|
||||
<i slot="suffix" class="el-input__icon el-icon-search" @click.stop="showFieldNumberDialog(scope.row,scope.$index)"></i>>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="fieldDescription" label="字段描述">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model.trim="scope.row.fieldDescription" :disabled="true"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right" label="操作" width="60">
|
||||
<template slot-scope="scope">
|
||||
<span class="el-tag el-tag--danger el-tag--mini" style="cursor: pointer;" @click="removeLabelFieldAllocationDetailDetail(scope.row,scope.$index)">删除</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-form>
|
||||
</basic-container>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
fetchList,
|
||||
getByCode,
|
||||
delByCode,
|
||||
addObj,
|
||||
putObj,
|
||||
delObj
|
||||
} from '@/api/mes/print/labelfieldallocation'
|
||||
import {fetchList as fetchFieldNumberList} from '@/api/mes/print/systemfield'
|
||||
import { showLoading, hideLoading } from '@/const/loading'
|
||||
import {stringFormat, isBlank} from "@/util/string"
|
||||
import {
|
||||
mapGetters
|
||||
} from 'vuex'
|
||||
|
||||
export default {
|
||||
name: "label-field-allocation_maintain",
|
||||
data(){
|
||||
return {
|
||||
tabActiveName: "labelFieldAllocationDetailTab",
|
||||
formObj: {},
|
||||
selectedIndex: 0,
|
||||
retrivedLabelFieldAllocation: "",
|
||||
mes_label_field_save: false,
|
||||
mes_label_field_del: false,
|
||||
mes_label_field_retrive: false,
|
||||
labelFieldAllocationDialogVisible : false,
|
||||
fieldNumberDialogVisible : false,
|
||||
initData: {
|
||||
handle: "",
|
||||
site: "",
|
||||
labelNumber: "",
|
||||
labelType: "",
|
||||
labelDescription: "",
|
||||
creator: "",
|
||||
updater: "",
|
||||
dateCreate: "",
|
||||
dateUpdate: "",
|
||||
labelFieldAllocationDetailList: [],
|
||||
},
|
||||
rules: {
|
||||
labelNumber: [
|
||||
{ required: true, message: '请输入模板编号' }
|
||||
],
|
||||
},
|
||||
labelFieldAllocationDialogFetchFun: fetchList,
|
||||
fieldNumberDialogFetchFun: fetchFieldNumberList,
|
||||
labelFieldAllocationDialogObj: {
|
||||
condition: "searchText",
|
||||
tableColumn: [
|
||||
{prop: "labelNumber", label: "模板编号"},
|
||||
{prop: "labelDescription", label: "模板名称"},
|
||||
]
|
||||
},
|
||||
fieldNumberDialogObj: {
|
||||
condition: "searchText",
|
||||
tableColumn: [
|
||||
{prop: "fieldNumber", label: "字段编号"},
|
||||
{prop: "fieldDescription", label: "字段描述"},
|
||||
]
|
||||
},
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.mes_label_field_save = this.permissions['mes_label_field_save']
|
||||
this.mes_label_field_del = this.permissions['mes_label_field_del']
|
||||
this.mes_label_field_retrive = this.permissions['mes_label_field_retrive']
|
||||
this.formObj = Object.assign({}, this.initData)
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['permissions']),
|
||||
permissionList() {
|
||||
return {
|
||||
|
||||
};
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
//显示操作弹窗框
|
||||
showLabelFieldAllocationDialog() {
|
||||
this.labelFieldAllocationDialogVisible = true
|
||||
},
|
||||
showFieldNumberDialog(row, index) {
|
||||
this.fieldNumberDialogVisible = true
|
||||
this.selectedIndex = index
|
||||
},
|
||||
labelFieldAllocationSelected(row) {
|
||||
let me = this
|
||||
me.formObj.labelNumber = row.labelNumber
|
||||
},
|
||||
fieldNumberSelected(row){
|
||||
let me = this
|
||||
me.formObj.labelFieldAllocationDetailList[me.selectedIndex].fieldNumber = row.fieldNumber
|
||||
me.formObj.labelFieldAllocationDetailList[me.selectedIndex].fieldDescription = row.fieldDescription
|
||||
},
|
||||
doRetrive(formName) {
|
||||
let me = this
|
||||
me.$refs[formName].validateField(['labelNumber'], (errorMessage) => {
|
||||
if (errorMessage) {
|
||||
return false;
|
||||
} else {
|
||||
showLoading()
|
||||
let labelNumber = me.formObj.labelNumber;
|
||||
getByCode(labelNumber).then(response => {
|
||||
hideLoading()
|
||||
if(!response.data.data || response.data.data.length === 0) {
|
||||
me.doClear({labelNumber: labelNumber})
|
||||
let errorMsg = stringFormat('{0} 不存在', labelNumber)
|
||||
return me.$message.error(errorMsg)
|
||||
}
|
||||
me.formObj = Object.assign({}, response.data.data)
|
||||
me.retrivedLabelFieldAllocation = me.formObj.labelNumber
|
||||
}).catch(() => {
|
||||
hideLoading()
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
doSave(formName) {
|
||||
let me = this
|
||||
for (let i = 0; i <me.formObj.labelFieldAllocationDetailList.length; i++) {
|
||||
for (let j=i+1;j<me.formObj.labelFieldAllocationDetailList.length;j++){
|
||||
if (me.formObj.labelFieldAllocationDetailList[i].fieldNumber == me.formObj.labelFieldAllocationDetailList[j].fieldNumber){
|
||||
return me.$message.error("明细项的字段编号不能重复")
|
||||
}
|
||||
}
|
||||
}
|
||||
me.$refs[formName].validate((valid) => {
|
||||
if (valid) {
|
||||
if(me.isUpdate()) {
|
||||
me.doUpdate()
|
||||
} else {
|
||||
me.doAdd()
|
||||
}
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
});
|
||||
},
|
||||
doAdd() {
|
||||
let me = this
|
||||
showLoading()
|
||||
addObj(me.formObj).then(respData => {
|
||||
hideLoading()
|
||||
me.doRetrive('formObj')
|
||||
this.$message.success('新增成功')
|
||||
}).catch(error => {
|
||||
hideLoading()
|
||||
});
|
||||
},
|
||||
doUpdate() {
|
||||
let me = this
|
||||
showLoading()
|
||||
putObj(me.formObj).then(respData => {
|
||||
hideLoading()
|
||||
me.doRetrive('formObj')
|
||||
this.$message.success('更新成功')
|
||||
}).catch(error => {
|
||||
hideLoading()
|
||||
});
|
||||
},
|
||||
doRemove(formName) {
|
||||
let me = this
|
||||
let code = me.formObj.labelNumber
|
||||
me.$refs[formName].validateField(['labelNumber'], (errorMessage) => {
|
||||
if (errorMessage) {
|
||||
return
|
||||
} else {
|
||||
if(!me.isUpdate()) {
|
||||
return this.$message.warning('必须先检索记录,然后才能将其删除')
|
||||
}
|
||||
showLoading()
|
||||
me.$confirm('是否确认删除' + code, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(function() {
|
||||
hideLoading()
|
||||
return delByCode(code)
|
||||
}).then(data => {
|
||||
hideLoading()
|
||||
this.$message.success('删除成功')
|
||||
me.doClear()
|
||||
}).catch(() => {
|
||||
hideLoading()
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
doClear(retainData) {
|
||||
let me = this
|
||||
me.formObj = retainData ? Object.assign({}, this.initData, retainData) : Object.assign({}, this.initData)
|
||||
me.retrivedLabelFieldAllocation = ""
|
||||
},
|
||||
isUpdate() {
|
||||
let me = this
|
||||
if(me.formObj.labelNumber === me.retrivedLabelFieldAllocation) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
},
|
||||
addLabelFieldAllocationDetailDetail() {
|
||||
let me = this
|
||||
if (!me.formObj.labelFieldAllocationDetailList) {
|
||||
me.formObj.labelFieldAllocationDetailList = []
|
||||
}
|
||||
let maxSeq = 0;
|
||||
for (let i = 0; i < me.formObj.labelFieldAllocationDetailList.length; i++) {
|
||||
let labelFieldAllocationDetailLists = me.formObj.labelFieldAllocationDetailList[i]
|
||||
if (labelFieldAllocationDetailLists.seq > maxSeq) {
|
||||
maxSeq = labelFieldAllocationDetailLists.seq
|
||||
}
|
||||
}
|
||||
let obj = {
|
||||
seq: Math.floor(maxSeq / 10) * 10 + 10,
|
||||
fieldNumber: "",
|
||||
fieldDescription: "",
|
||||
}
|
||||
me.formObj.labelFieldAllocationDetailList.push(obj)
|
||||
},
|
||||
removeLabelFieldAllocationDetailDetail(row, index) {
|
||||
this.formObj.labelFieldAllocationDetailList.splice(index, 1)
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
394
src/views/mes/print/masterData/index.vue
Normal file
394
src/views/mes/print/masterData/index.vue
Normal file
@ -0,0 +1,394 @@
|
||||
<template>
|
||||
<div class="execution">
|
||||
<basic-container style="margin-top: -20px">
|
||||
<c-top-bar :offset="50">
|
||||
<el-button type="text" icon="el-icon-search" @click="doRetrieve()">检索</el-button>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<el-button type="text" icon="el-icon-circle-check" @click="doSaveAll()">保存</el-button>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<el-button type="text" icon="el-icon-circle-close" @click="doReset()">清除</el-button>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<el-button type="text" icon="el-icon-delete" @click="doDelete()">删除</el-button>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<el-divider style="margin-top: 0px;"></el-divider>
|
||||
</c-top-bar>
|
||||
<el-form ref="formObj" :rules="rules" :model="formObj" label-width="100px">
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="客户编码:" prop="customerCode">
|
||||
<el-input v-model="formObj.customerCode">
|
||||
<i slot="suffix" class="el-input__icon el-icon-search" @click.stop="showCustomerCodeDialog()"></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="">
|
||||
<el-button type="primary" @click="addNew()">新增规则</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-table size="mini" :data="formObj.list" border style="width: 100%" ref="multipleTable" @selection-change="selectionChange" highlight-current-row>
|
||||
<el-table-column
|
||||
type="selection"
|
||||
align="center"
|
||||
width="50">
|
||||
</el-table-column>
|
||||
<el-table-column prop="seq" label="序号" width="50">
|
||||
</el-table-column>
|
||||
<el-table-column label="客户代码" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-input size="mini" v-model="scope.row.customerCode" :disabled="scope.row.editable"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="operation" label="对应工序" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-select v-model="scope.row.operation" placeholder="JM" :disabled="scope.row.editable">
|
||||
<el-option key="JM" label="基膜" value="JM"/>
|
||||
<el-option key="DFQ" label="大分切" value="DFQ"/>
|
||||
<el-option key="TF" label="涂覆" value="TF"/>
|
||||
<el-option key="XFQ" label="小分切" value="XFQ"/>
|
||||
<el-option key="JL" label="浆料" value="JL"/>
|
||||
<el-option key="BZ" label="包装" value="BZ"/>
|
||||
<el-option key="FH" label="发货" value="FH"/>
|
||||
<el-option key="ZT" label="发货组托" value="ZT"/>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="status" label="规则状态" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-select v-model="scope.row.status" placeholder="Y" :disabled="scope.row.editable">
|
||||
<el-option key="Y" label="Y" value="Y"/>
|
||||
<el-option key="N" label="N" value="N"/>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="qty" label="规则维护" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="primary" @click="doEdit(scope.row,scope.$index)">编辑</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</basic-container>
|
||||
|
||||
<input-select-dialog :modal-obj='customerCodeDialogObj' :modal-fetch-fun='customerCodeDialogFetchFun'
|
||||
:modal-show.sync="customerCodeDialogVisible"
|
||||
@inputDialogSelected="customerCodeSelected"></input-select-dialog>
|
||||
|
||||
<el-drawer
|
||||
title=""
|
||||
:visible.sync="drawer"
|
||||
:with-header="false"
|
||||
size="40%">
|
||||
<div style="height: 40px"></div>
|
||||
<el-row>
|
||||
<el-col :span="16">
|
||||
<span style="text-align: center;display:block;">规则公式</span>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<span style="text-align: center;display:block;">打印次数</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row >
|
||||
<el-col :span="16">
|
||||
<div style="text-align: center;display:block;">
|
||||
<el-select v-model="rule1">
|
||||
<el-option v-for="item in templateCategoryList" :key="item.LABEL_CATEGORY_ID" :label="item.LABEL_CATEGORY_NAME" :value="item.LABEL_CATEGORY_ID"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<div style="text-align: center;display:block;">
|
||||
<el-select v-model="printNumber1" placeholder="1">
|
||||
<el-option key="1" label="1" value="1"/>
|
||||
<el-option key="2" label="2" value="2"/>
|
||||
<el-option key="3" label="3" value="3"/>
|
||||
<el-option key="4" label="4" value="4"/>
|
||||
<el-option key="5" label="5" value="5"/>
|
||||
<el-option key="6" label="6" value="6"/>
|
||||
<el-option key="7" label="7" value="7"/>
|
||||
<el-option key="8" label="8" value="8"/>
|
||||
<el-option key="9" label="9" value="9"/>
|
||||
<el-option key="10" label="10" value="10"/>
|
||||
</el-select>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-divider></el-divider>
|
||||
<el-row>
|
||||
<el-col :span="16">
|
||||
<div style="text-align: center;display:block;">
|
||||
<el-select v-model="rule2">
|
||||
<el-option v-for="item in templateCategoryList" :key="item.LABEL_CATEGORY_ID" :label="item.LABEL_CATEGORY_NAME" :value="item.LABEL_CATEGORY_ID"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<div style="text-align: center;display:block;">
|
||||
<el-select v-model="printNumber2" placeholder="1">
|
||||
<el-option key="1" label="1" value="1"/>
|
||||
<el-option key="2" label="2" value="2"/>
|
||||
<el-option key="3" label="3" value="3"/>
|
||||
</el-select>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-divider></el-divider>
|
||||
<el-row>
|
||||
<el-col :span="16">
|
||||
<div style="text-align: center;display:block;">
|
||||
<el-select v-model="rule3">
|
||||
<el-option v-for="item in templateCategoryList" :key="item.LABEL_CATEGORY_ID" :label="item.LABEL_CATEGORY_NAME" :value="item.LABEL_CATEGORY_ID"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<div style="text-align: center;display:block;">
|
||||
<el-select v-model="printNumber3" placeholder="1">
|
||||
<el-option key="1" label="1" value="1"/>
|
||||
<el-option key="2" label="2" value="2"/>
|
||||
<el-option key="3" label="3" value="3"/>
|
||||
</el-select>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-divider></el-divider>
|
||||
<div style="text-align: center;display:block;">
|
||||
<el-button type="primary" @click="doSave()">保存</el-button>
|
||||
<el-button @click="doCancel()">取消</el-button>
|
||||
</div>
|
||||
</el-drawer>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getObj,addObj,deleteObj,getTemplateCategoryList} from '@/api/mes/print/printRuleMaintenance'
|
||||
import {getStore} from '@/util/store'
|
||||
import {isBlank, trimString} from '@/util/string'
|
||||
import {showLoading, hideLoading} from '@/const/loading'
|
||||
import {removeTableSelected} from '@/util/table'
|
||||
import {mapGetters} from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'printRuleMaintenance',
|
||||
data() {
|
||||
return {
|
||||
activeName: 'main',
|
||||
user: '',
|
||||
formObj: {},
|
||||
initData: {
|
||||
site: getStore({name: 'tenantId'}),
|
||||
customerCode: '',
|
||||
list: []
|
||||
},
|
||||
rules: {},
|
||||
multipleSelection: [],
|
||||
selectedIndex: 0,
|
||||
rule1: '',
|
||||
printNumber1:'',
|
||||
rule2: '',
|
||||
printNumber2:'',
|
||||
rule3: '',
|
||||
printNumber3:'',
|
||||
templateCategoryList: [],
|
||||
drawer:false,
|
||||
|
||||
customerCodeDialogVisible : false,
|
||||
customerCodeDialogObj: {
|
||||
"condition": "searchText",
|
||||
"page": false,
|
||||
tableColumn: [
|
||||
{prop: "customerCode", label: "客户代码"}
|
||||
]
|
||||
},
|
||||
customerCodeDialogFetchFun: getObj,
|
||||
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.formObj = Object.assign({}, this.initData)
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['permissions']),
|
||||
permissionList() {
|
||||
return {}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
showCustomerCodeDialog() {
|
||||
this.customerCodeDialogObj.queryParam = {"site": this.formObj.site};
|
||||
this.customerCodeDialogVisible = true;
|
||||
},
|
||||
customerCodeSelected(row) {
|
||||
let me = this;
|
||||
me.formObj.customerCode = row.customerCode;
|
||||
},
|
||||
|
||||
doRetrieve() {
|
||||
let me = this;
|
||||
var param = {"site":me.formObj.site};
|
||||
if(!isBlank(me.formObj.customerCode)){
|
||||
param.customerCode = me.formObj.customerCode;
|
||||
}
|
||||
this.$refs.multipleTable.clearSelection();
|
||||
getObj(param).then(respData => {
|
||||
if (respData.data.code !== 0) {
|
||||
return me.$message.error(respData.data.msg);
|
||||
}
|
||||
if(respData.data.data.length === 0){
|
||||
me.formObj.list = [];
|
||||
return me.$message.error("检索无数据");
|
||||
}
|
||||
for(var i =0;i<respData.data.data.length;i++){
|
||||
respData.data.data[i].seq = i+1;
|
||||
respData.data.data[i].editable = false;
|
||||
}
|
||||
me.formObj.list = respData.data.data;
|
||||
me.$message.success("查询成功");
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
doSaveAll() {
|
||||
let me = this;
|
||||
|
||||
if (me.formObj.list.length ===0 ){
|
||||
return me.$message.error("没有要保存的客户编码");
|
||||
}
|
||||
let param = [];
|
||||
for (let i = 0; i < me.formObj.list.length; i++) {
|
||||
if(me.formObj.list[i].customerCode===""){
|
||||
return me.$message.error("序号"+me.formObj.list[i].seq+"的客户编码不可为空");
|
||||
}
|
||||
if(i>0){
|
||||
for (var j = 0; j < i; j++) {
|
||||
if(me.formObj.list[i].customerCode===me.formObj.list[j].customerCode && me.formObj.list[i].operation===me.formObj.list[j].operation){
|
||||
return me.$message.error("第"+(j+1)+"行和第"+(i+1)+"行客户编码和对应工序重复");
|
||||
}
|
||||
}
|
||||
}
|
||||
if(me.formObj.list[i].rule1==="" && me.formObj.list[i].rule2==="" && me.formObj.list[i].rule3==="" && me.formObj.list[i].status==="Y"){
|
||||
return me.$message.error("客户编码"+me.formObj.list[i].customerCode+"没有维护一条以上的规则,规则状态不可为启用");
|
||||
}
|
||||
param.push({
|
||||
"handle":"PrintRuleBO:"+me.formObj.site+","+me.formObj.list[i].customerCode+","+me.formObj.list[i].operation,
|
||||
"site":me.formObj.site,
|
||||
"customerCode":me.formObj.list[i].customerCode,
|
||||
"operation":me.formObj.list[i].operation,
|
||||
"status":me.formObj.list[i].status,
|
||||
"rule1":me.formObj.list[i].rule1,
|
||||
"printNumber1":me.formObj.list[i].printNumber1,
|
||||
"rule2":me.formObj.list[i].rule2,
|
||||
"printNumber2":me.formObj.list[i].printNumber2,
|
||||
"rule3":me.formObj.list[i].rule3,
|
||||
"printNumber3":me.formObj.list[i].printNumber3,
|
||||
"createdUser":me.user
|
||||
})
|
||||
}
|
||||
addObj(param).then(respData => {
|
||||
if(respData.data.code !== 0){
|
||||
return me.$message.error(respData.data.msg);
|
||||
}
|
||||
me.doReset();
|
||||
me.$message.success("保存成功");
|
||||
}).catch(() => {
|
||||
});
|
||||
},
|
||||
doReset() {
|
||||
this.formObj = Object.assign({}, this.initData);
|
||||
this.formObj.list = [];
|
||||
this.$refs.multipleTable.clearSelection();
|
||||
},
|
||||
selectionChange(val) {
|
||||
this.multipleSelection = val;
|
||||
},
|
||||
doDelete() {
|
||||
let me = this;
|
||||
if(me.multipleSelection.length===0){
|
||||
return me.$message.warning("至少选中1行客户编码!");
|
||||
}
|
||||
let param = [];
|
||||
for (var m = 0; m < me.multipleSelection.length; m++) {
|
||||
param.push({"handle":"PrintRuleBO:"+me.formObj.site+","+me.multipleSelection[m].customerCode+","+me.multipleSelection[m].operation});
|
||||
}
|
||||
deleteObj(param).then(respData => {
|
||||
if(respData.data.code !== 0){
|
||||
return me.$message.error(respData.data.msg);
|
||||
}
|
||||
removeTableSelected(me.formObj.list, me.multipleSelection);
|
||||
for (let j = 0;j < me.formObj.list.length;j++) {
|
||||
me.formObj.list[j].seq=j+1;
|
||||
}
|
||||
this.$refs.multipleTable.clearSelection();
|
||||
me.$message.success("删除成功");
|
||||
}).catch(() => {
|
||||
});
|
||||
},
|
||||
addNew() {
|
||||
let me = this;
|
||||
let seq = me.formObj.list.length+1;
|
||||
me.formObj.list.push({
|
||||
seq: seq,
|
||||
customerCode:"",
|
||||
operation:"JM",
|
||||
status:"Y",
|
||||
rule1:"",
|
||||
printNumber1:"1",
|
||||
rule2:"",
|
||||
printNumber2:"1",
|
||||
rule3:"",
|
||||
printNumber3:"1",
|
||||
});
|
||||
},
|
||||
doEdit: function (row,index) {
|
||||
var me = this;
|
||||
|
||||
me.selectedIndex = index;
|
||||
getTemplateCategoryList(me.formObj.site).then(respData => {
|
||||
if(respData.data.code !== 0){
|
||||
return me.$message.error(respData.data.msg);
|
||||
}
|
||||
respData.data.data.splice(0, 0, {"LABEL_CATEGORY_ID":"","LABEL_CATEGORY_NAME":""});
|
||||
me.templateCategoryList = respData.data.data;
|
||||
me.rule1 = row.rule1===undefined?"":row.rule1===null?"":row.rule1;
|
||||
me.printNumber1 = row.printNumber1;
|
||||
me.rule2 = row.rule2===undefined?"":row.rule2===null?"":row.rule2;
|
||||
me.printNumber2 = row.printNumber2;
|
||||
me.rule3 = row.rule3===undefined?"":row.rule3===null?"":row.rule3;
|
||||
me.printNumber3 = row.printNumber3;
|
||||
me.drawer = true;
|
||||
}).catch(() => {
|
||||
});
|
||||
},
|
||||
doSave: function () {
|
||||
var me = this;
|
||||
|
||||
if(me.rule1==="" && me.rule2==="" && me.rule3===""){
|
||||
return me.$message.error("至少有一条规则不为空");
|
||||
}
|
||||
if(me.rule1!=="" && (me.rule1===me.rule2 || me.rule1===me.rule3)){
|
||||
return me.$message.error("规则公式重复");
|
||||
}
|
||||
if(me.rule2!=="" && me.rule2===me.rule3){
|
||||
return me.$message.error("规则公式重复");
|
||||
}
|
||||
me.formObj.list[me.selectedIndex].rule1 = me.rule1;
|
||||
me.formObj.list[me.selectedIndex].printNumber1 = me.printNumber1;
|
||||
me.formObj.list[me.selectedIndex].rule2 = me.rule2;
|
||||
me.formObj.list[me.selectedIndex].printNumber2 = me.printNumber2;
|
||||
me.formObj.list[me.selectedIndex].rule3 = me.rule3;
|
||||
me.formObj.list[me.selectedIndex].printNumber3 = me.printNumber3;
|
||||
me.drawer = false;
|
||||
me.$message.success("保存成功");
|
||||
},
|
||||
doCancel: function () {
|
||||
var me = this;
|
||||
|
||||
me.drawer = false;
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
288
src/views/mes/print/printLabelTemplate/index.vue
Normal file
288
src/views/mes/print/printLabelTemplate/index.vue
Normal file
@ -0,0 +1,288 @@
|
||||
<template>
|
||||
<div class="execution">
|
||||
<input-select-dialog :modal-obj="templateCategoryDialogObj" :modal-fetch-fun='templateCategoryDialogFetchFun' :modal-show.sync="templateCategoryDialogVisible" @inputDialogSelected="templateCategorySelected"></input-select-dialog>
|
||||
<basic-container>
|
||||
<avue-crud ref="crud"
|
||||
:page="page"
|
||||
:data="tableData"
|
||||
v-model="formObj"
|
||||
:before-open="beforeOpen"
|
||||
:permission="permissionList"
|
||||
:table-loading="tableLoading"
|
||||
:option="tableOption"
|
||||
:upload-before="uploadBefore"
|
||||
@on-load="getList"
|
||||
@search-change="searchChange"
|
||||
@refresh-change="refreshChange"
|
||||
@size-change="sizeChange"
|
||||
@current-change="currentChange"
|
||||
@row-update="handleUpdate"
|
||||
@row-save="handleSave"
|
||||
@row-del="handleDel">
|
||||
<template slot-scope="scope" slot="customerCodeForm">
|
||||
<el-input placeholder="客户编码" v-model="formObj.customerCode" :disabled="formObj.externalRules === 'N' ? true : false"></el-input>
|
||||
</template>
|
||||
<template slot-scope="scope" slot="templateCategoryForm">
|
||||
<el-input placeholder="模板类别" v-model="formObj.templateCategory"><i slot="suffix" class="el-input__icon el-icon-search" @click.stop="showTemplateCategoryDialog()"></i></el-input>
|
||||
</template>
|
||||
<!-- <template slot-scope="scope" slot="fileForm">-->
|
||||
<!-- </template>-->
|
||||
</avue-crud>
|
||||
</basic-container>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {fetchList, getObj, addObj, putObj, delObj} from '@/api/mes/print/print-label-template'
|
||||
// import {tableOption} from '@/const/crud/nei/production/print-label-template'
|
||||
import {fetchList as fetchTemplateCategoryList} from '@/api/mes/print/labelCategory'
|
||||
import {mapGetters} from 'vuex'
|
||||
import {isBlank} from "@/util/string";
|
||||
|
||||
export default {
|
||||
name: 'print-label-template',
|
||||
data() {
|
||||
return {
|
||||
|
||||
tableOption: {
|
||||
"align": "center",
|
||||
"index": true,
|
||||
"border": true,
|
||||
"gutter": 0,
|
||||
"menuWidth": "180",
|
||||
"menuPosition": "center",
|
||||
"height": "auto",
|
||||
"calcHeight": 100,
|
||||
"dialogFullscreen":true,
|
||||
"column": [{
|
||||
"label": "模板编码",
|
||||
"prop": "templateCode",
|
||||
"disabled": true,
|
||||
"type": "input",
|
||||
"width": "120",
|
||||
"search":true,
|
||||
"rules": [{
|
||||
"message": "工单编号必须填写",
|
||||
"required": true
|
||||
}],
|
||||
"display": true,
|
||||
"required": true
|
||||
},{
|
||||
"type": "input",
|
||||
"label": "模板名称",
|
||||
"prop": "templateName",
|
||||
"width": "120",
|
||||
"disabled": true,
|
||||
"search":true,
|
||||
"rules": [{
|
||||
"message": "模板名称不能为空",
|
||||
"required": true
|
||||
}],
|
||||
}, {
|
||||
"label": "模板类别",
|
||||
"prop": "templateCategory",
|
||||
"type": "input",
|
||||
"width": "150",
|
||||
"search":true,
|
||||
"filterable": true
|
||||
}, {
|
||||
"type": "switch",
|
||||
"label": "是否外部规则",
|
||||
"prop": "externalRules",
|
||||
"dicData": [{
|
||||
label: '否',
|
||||
value: 'N'
|
||||
}, {
|
||||
label: '是',
|
||||
value: 'Y'
|
||||
}]
|
||||
},{
|
||||
"type": "input",
|
||||
"label": "客户编码",
|
||||
"search":true,
|
||||
"prop": "customerCode",
|
||||
},{
|
||||
"label": "状态",
|
||||
"prop": "status",
|
||||
"type": "select",
|
||||
"dicData": [{
|
||||
"label": "启用",
|
||||
"value": "Y"
|
||||
}, {
|
||||
"label": "停用",
|
||||
"value": "N"
|
||||
}],
|
||||
"required": true,
|
||||
"rules": [{
|
||||
"message": "请选择状态",
|
||||
"required": true
|
||||
}],
|
||||
},
|
||||
{
|
||||
"label": '上传模板文件',
|
||||
"prop": 'file',
|
||||
"type": 'upload',
|
||||
"loadText": '模板文件上传中,请稍等',
|
||||
"span": 24,
|
||||
"propsHttp": {
|
||||
"url":'url',
|
||||
"name":'name',
|
||||
"res": 'data'
|
||||
},
|
||||
"action": "/mom-mes-nei/printlabeltemplate/upload"
|
||||
}
|
||||
],
|
||||
"stripe": true,
|
||||
"menuBtn": true,
|
||||
"menuAlign": "center",
|
||||
"submitBtn": true,
|
||||
"indexLabel": "序号",
|
||||
"labelWidth": 100,
|
||||
"submitSize": "medium",
|
||||
"menuPostion": "center",
|
||||
"searchMenuSpan": 6
|
||||
},
|
||||
templateCategoryDialogVisible: false,
|
||||
formObj: {},
|
||||
searchForm: {},
|
||||
tableData: [],
|
||||
templateCategoryDialogFetchFun: fetchTemplateCategoryList,
|
||||
templateCategoryDialogObj: {
|
||||
condition: "templateCategory",
|
||||
tableColumn: [
|
||||
{prop: "labelCategoryId", label: "标签类别编号"},
|
||||
{prop: "labelCategoryName", label: "标签类别名称"},
|
||||
]
|
||||
},
|
||||
page: {
|
||||
total: 0, // 总页数
|
||||
currentPage: 1, // 当前页数
|
||||
pageSize: 20 // 每页显示多少条
|
||||
},
|
||||
tableLoading: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['permissions']),
|
||||
permissionList() {
|
||||
return {
|
||||
addBtn: this.vaildData(this.permissions.mes_printlabeltemplate_add, false),
|
||||
delBtn: this.vaildData(this.permissions.mes_printlabeltemplate_del, false),
|
||||
editBtn: this.vaildData(this.permissions.mes_printlabeltemplate_edit, false)
|
||||
};
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
showTemplateCategoryDialog() {
|
||||
this.templateCategoryDialogVisible = true
|
||||
},
|
||||
templateCategorySelected(row) {
|
||||
let me = this
|
||||
me.formObj.templateCategory = row.labelCategoryId
|
||||
},
|
||||
uploadBefore(file, done, loading,column) {
|
||||
console.log(file,column)
|
||||
this.formObj.templateName = file.name
|
||||
//如果你想修改file文件,由于上传的file是只读文件,必须复制新的file才可以修改名字,完后赋值到done函数里,如果不修改的话直接写done()即可
|
||||
let newFile = new File([file], this.formObj.templateCode, { type: "lab" });
|
||||
done(newFile)
|
||||
},
|
||||
beforeOpen(done, type) {
|
||||
if (['views', 'edit'].includes(type)) {
|
||||
// 查看和编辑逻辑
|
||||
getObj(this.formObj.handle).then(response => {
|
||||
Object.assign(this.formObj, response.data.data)
|
||||
}).catch(() => {
|
||||
|
||||
});
|
||||
} else {
|
||||
//新增逻辑
|
||||
//一定要用setTimeout包裹,由于form组件底层一些机制的设计
|
||||
setTimeout(() => {
|
||||
let now = new Date();
|
||||
let year = now.getFullYear()+"";
|
||||
let month = (now.getMonth()+1)<10?"0"+(now.getMonth()+1):(now.getMonth()+1)+"";
|
||||
let day = now.getDate()<10?"0"+now.getDate():now.getDate()+"";
|
||||
let hh = now.getHours()<10?"0"+now.getHours():now.getHours()+"";
|
||||
let mm = now.getMinutes()<10?"0"+now.getMinutes():now.getMinutes()+"";
|
||||
let ss = now.getSeconds()<10?"0"+now.getSeconds():now.getSeconds()+"";
|
||||
this.formObj.templateCode = "MB"+year+month+day+hh+mm+ss
|
||||
this.formObj.status = 'Y'
|
||||
this.formObj.externalRules = 'N'
|
||||
}, 0)
|
||||
}
|
||||
done();
|
||||
},
|
||||
// 列表查询
|
||||
getList(page, params) {
|
||||
this.tableLoading = true
|
||||
fetchList(Object.assign({
|
||||
current: page.currentPage,
|
||||
size: page.pageSize
|
||||
}, params, this.searchForm )).then(response => {
|
||||
this.tableData = response.data.data.records
|
||||
this.page.total = response.data.data.total
|
||||
this.tableLoading = false
|
||||
}).catch(() => {
|
||||
this.tableLoading=false
|
||||
})
|
||||
},
|
||||
// 删除
|
||||
handleDel: function (row, index) {
|
||||
this.$confirm('是否确认删除ID为' + row.handle, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(function () {
|
||||
return delObj(row.handle)
|
||||
}).then(data => {
|
||||
this.$message.success('删除成功')
|
||||
this.getList(this.page)
|
||||
})
|
||||
},
|
||||
// 更新
|
||||
handleUpdate: function (row, index, done,loading) {
|
||||
let updateParm = Object.assign({}, row, {
|
||||
})
|
||||
putObj(updateParm).then(data => {
|
||||
this.$message.success('修改成功')
|
||||
done()
|
||||
this.getList(this.page)
|
||||
}).catch(() => {
|
||||
loading();
|
||||
});
|
||||
},
|
||||
// 保存
|
||||
handleSave: function (row, done,loading) {
|
||||
let saveParm = Object.assign({}, row, {
|
||||
})
|
||||
addObj(saveParm).then(data => {
|
||||
this.$message.success('添加成功')
|
||||
done()
|
||||
this.getList(this.page)
|
||||
}).catch(() => {
|
||||
loading();
|
||||
});
|
||||
},
|
||||
// 每页条数改变事件
|
||||
sizeChange(pageSize){
|
||||
this.page.pageSize = pageSize
|
||||
},
|
||||
// 当前页发生改变事件
|
||||
currentChange(current){
|
||||
this.page.currentPage = current
|
||||
},
|
||||
// 查询事件
|
||||
searchChange(form, done) {
|
||||
this.searchForm = form
|
||||
this.page.currentPage = 1
|
||||
this.getList(this.page, form)
|
||||
done()
|
||||
},
|
||||
// 刷新事件
|
||||
refreshChange() {
|
||||
this.getList(this.page)
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
295
src/views/mes/print/printer/index.vue
Normal file
295
src/views/mes/print/printer/index.vue
Normal file
@ -0,0 +1,295 @@
|
||||
<template>
|
||||
<div class="execution">
|
||||
<input-select-dialog :modal-obj="printerIdDialogObj" :modal-fetch-fun='printerIdDialogFetchFun' :modal-show.sync="printerIdDialogVisible" @inputDialogSelected="printerIdSelected"></input-select-dialog>
|
||||
<!-- 关联资源弹出框 -->
|
||||
<input-multiple-select-checkbox-dialog
|
||||
:modal-obj="resourceDialogObj"
|
||||
:modal-fetch-fun="resourceDialogFetchFun"
|
||||
:modal-show.sync="resourceDialogVisible"
|
||||
@inputDialogSelected="resourceSelected"
|
||||
></input-multiple-select-checkbox-dialog>
|
||||
<basic-container style="margin-top: -20px">
|
||||
<c-top-bar :offset="50">
|
||||
<el-button v-if="mes_printer_retrive" type="text" icon="el-icon-search" @click="doRetrive('formObj')">检索</el-button>
|
||||
<el-divider v-if="mes_printer_retrive" direction="vertical"></el-divider>
|
||||
<el-button v-if="mes_printer_save" type="text" icon="el-icon-circle-check" @click="doSave('formObj')">保存</el-button>
|
||||
<el-divider v-if="mes_printer_save" direction="vertical"></el-divider>
|
||||
<el-button type="text" icon="el-icon-circle-close" @click="doClear()">清除</el-button>
|
||||
<el-divider v-if="mes_printer_del" direction="vertical"></el-divider>
|
||||
<el-button v-if="mes_printer_del" type="text" icon="el-icon-delete" @click="doRemove('formObj')">删除</el-button>
|
||||
<el-divider style="margin-top: 0px;"></el-divider>
|
||||
</c-top-bar>
|
||||
<el-form ref="formObj" :rules="rules" :model="formObj" label-width="200px">
|
||||
<el-row :gutter="10">
|
||||
<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="打印机编号:" prop="printerId">
|
||||
<el-input placeHolder="打印机编号" v-model="formObj.printerId"><i slot="suffix" class="el-input__icon el-icon-search" @click.stop="showPrinterIdDialog()"></i></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24"><hr class="el-hr" /></el-col>
|
||||
<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="工序类型:" prop="operationType">
|
||||
<el-select placeHolder="请选择" v-model="formObj.operationType">
|
||||
<el-option key="基膜-JM" label="基膜" value="基膜-JM"/>
|
||||
<el-option key="大分切-DFQ" label="大分切" value="大分切-DFQ"/>
|
||||
<el-option key="涂覆-TF" label="涂覆" value="涂覆-TF"/>
|
||||
<el-option key="小分切-XFQ" label="小分切" value="小分切-XFQ"/>
|
||||
<el-option key="浆料-JL" label="浆料" value="浆料-JL"/>
|
||||
<el-option key="包装-BZ" label="包装" value="包装-BZ"/>
|
||||
<el-option key="发货-FH" label="发货" value="发货-FH"/>
|
||||
<el-option key="发货组托-ZT" label="发货组托" value="发货组托-ZT"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="打印场景:" prop="printScenario">
|
||||
<el-select placeHolder="请选择" v-model="formObj.printScenario">
|
||||
<el-option key="工序打印-operation" label="工序打印" value="工序打印-operation"/>
|
||||
<el-option key="条码补打印-barcode" label="条码补打印" value="条码补打印-barcode"/>
|
||||
<el-option key="包装批次打印-package" label="包装批次打印" value="包装批次打印-package"/>
|
||||
<el-option key="物流载具打印-tool" label="物流载具打印" value="物流载具打印-tool"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="位置说明:" prop="locationDesc">
|
||||
<el-input placeHolder="位置说明" v-model="formObj.locationDesc"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="关联资源:" prop="resource">
|
||||
<el-input v-model="formObj.resource" clearable>
|
||||
<i slot="suffix" class="el-input__icon el-icon-copy-document" @click.stop="showResourceDialog"></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
|
||||
<el-form-item label="IP地址:" prop="ipAddress">
|
||||
<el-input placeHolder="IP地址" v-model="formObj.ipAddress"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</basic-container>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
fetchList,
|
||||
getByCode,
|
||||
delByCode,
|
||||
addObj,
|
||||
putObj,
|
||||
delObj
|
||||
} from '@/api/mes/print/printer'
|
||||
import { showLoading, hideLoading } from '@/const/loading'
|
||||
import {stringFormat, isBlank} from "@/util/string"
|
||||
import {fetchList as fetchResourceList}from '@/api/mes/pms/resrce'
|
||||
import {
|
||||
mapGetters
|
||||
} from 'vuex'
|
||||
|
||||
export default {
|
||||
name: "storage-bin_maintain",
|
||||
data(){
|
||||
return {
|
||||
formObj: {},
|
||||
retrivedPrinterId: "",
|
||||
selectedIndex: 0,
|
||||
mes_printer_save: false,
|
||||
mes_printer_del: false,
|
||||
mes_printer_retrive: false,
|
||||
printerIdDialogVisible : false,
|
||||
resourceDialogVisible : false,
|
||||
initData: {
|
||||
handle: "",
|
||||
site: "",
|
||||
printerId: "",
|
||||
operationType: "",
|
||||
printScenario: "",
|
||||
locationDesc: "",
|
||||
resource: "",
|
||||
ipAddress: "",
|
||||
},
|
||||
rules: {
|
||||
printerId: [
|
||||
{ required: true, message: '请输入打印机编号' }
|
||||
],
|
||||
},
|
||||
printerIdDialogFetchFun: fetchList,
|
||||
resourceDialogFetchFun: fetchResourceList,
|
||||
printerIdDialogObj: {
|
||||
condition: "searchText",
|
||||
tableColumn: [
|
||||
{prop: "printerId", label: "打印机编码"},
|
||||
{prop: "operationType", label: "工序类型"},
|
||||
{prop: "printScenario", label: "打印场景"},
|
||||
{prop: "locationDesc", label: "位置说明"},
|
||||
]
|
||||
},
|
||||
resourceDialogObj: {
|
||||
title: '关联资源选择',
|
||||
condition: "searchText",
|
||||
tableColumn: [
|
||||
{prop: "resrce", label: "资源"},
|
||||
{prop: "description", label: "描述"}
|
||||
]
|
||||
},
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.mes_printer_save = this.permissions['mes_printer_save']
|
||||
this.mes_printer_del = this.permissions['mes_printer_del']
|
||||
this.mes_printer_retrive = this.permissions['mes_printer_retrive']
|
||||
this.formObj = Object.assign({}, this.initData)
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['permissions']),
|
||||
permissionList() {
|
||||
return {
|
||||
|
||||
};
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
//显示操作弹窗框
|
||||
showPrinterIdDialog() {
|
||||
this.printerIdDialogVisible = true
|
||||
},
|
||||
showResourceDialog(){
|
||||
// let me = this;
|
||||
this.resourceDialogVisible = true
|
||||
// this.selectedIndex = index
|
||||
},
|
||||
printerIdSelected(row) {
|
||||
let me = this
|
||||
me.formObj.printerId = row.printerId
|
||||
},
|
||||
resourceSelected(row){
|
||||
let me = this
|
||||
let resourceStr = '';
|
||||
for (let i = 0; i < row.length; i++) {
|
||||
let resource = row[i].resrce;
|
||||
if (isBlank(resourceStr)) {
|
||||
resourceStr = resource;
|
||||
} else {
|
||||
resourceStr = resourceStr + '@' + resource;
|
||||
}
|
||||
}
|
||||
me.formObj.resource = resourceStr;
|
||||
},
|
||||
doRetrive(formName) {
|
||||
let me = this
|
||||
me.$refs[formName].validateField(['printerId'], (errorMessage) => {
|
||||
if (errorMessage) {
|
||||
return false;
|
||||
} else {
|
||||
showLoading()
|
||||
let printerId = me.formObj.printerId;
|
||||
let param = {
|
||||
code:printerId
|
||||
};
|
||||
getByCode(param).then(response => {
|
||||
hideLoading()
|
||||
if(!response.data.data || response.data.data.length === 0) {
|
||||
me.doClear({printerId: printerId})
|
||||
let errorMsg = stringFormat('{0} 不存在', printerId)
|
||||
return me.$message.error(errorMsg)
|
||||
}
|
||||
me.formObj = Object.assign({}, response.data.data)
|
||||
me.retrivedPrinterId = me.formObj.printerId
|
||||
}).catch(() => {
|
||||
hideLoading()
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
doSave(formName) {
|
||||
let me = this
|
||||
me.$refs[formName].validate((valid) => {
|
||||
if (valid) {
|
||||
if(me.isUpdate()) {
|
||||
me.doUpdate()
|
||||
} else {
|
||||
me.doAdd()
|
||||
}
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
});
|
||||
},
|
||||
doAdd() {
|
||||
let me = this
|
||||
showLoading()
|
||||
addObj(me.formObj).then(respData => {
|
||||
hideLoading()
|
||||
me.doRetrive('formObj')
|
||||
this.$message.success('新增成功')
|
||||
}).catch(error => {
|
||||
hideLoading()
|
||||
});
|
||||
},
|
||||
doUpdate() {
|
||||
let me = this
|
||||
showLoading()
|
||||
putObj(me.formObj).then(respData => {
|
||||
hideLoading()
|
||||
me.doRetrive('formObj')
|
||||
this.$message.success('更新成功')
|
||||
}).catch(error => {
|
||||
hideLoading()
|
||||
});
|
||||
},
|
||||
doRemove(formName) {
|
||||
let me = this
|
||||
let code = me.formObj.printerId
|
||||
me.$refs[formName].validateField(['printerId'], (errorMessage) => {
|
||||
if (errorMessage) {
|
||||
return
|
||||
} else {
|
||||
if(!me.isUpdate()) {
|
||||
return this.$message.warning('必须先检索记录,然后才能将其删除')
|
||||
}
|
||||
showLoading()
|
||||
me.$confirm('是否确认删除' + code, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(function() {
|
||||
hideLoading()
|
||||
return delByCode({code:code})
|
||||
}).then(data => {
|
||||
hideLoading()
|
||||
this.$message.success('删除成功')
|
||||
me.doClear()
|
||||
}).catch(() => {
|
||||
hideLoading()
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
doClear(retainData) {
|
||||
let me = this
|
||||
me.formObj = retainData ? Object.assign({}, this.initData, retainData) : Object.assign({}, this.initData)
|
||||
me.retrivedPrinterId = ""
|
||||
},
|
||||
isUpdate() {
|
||||
let me = this
|
||||
if(me.formObj.printerId === me.retrivedPrinterId) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.el-transfer-panel {
|
||||
width: 40%;
|
||||
}
|
||||
.el-divider--horizontal {
|
||||
margin-top: 5px !important;
|
||||
}
|
||||
</style>
|
||||
315
src/views/mes/print/systemField/index.vue
Normal file
315
src/views/mes/print/systemField/index.vue
Normal file
@ -0,0 +1,315 @@
|
||||
<template>
|
||||
<div class="execution">
|
||||
<input-select-dialog :modal-obj="systemFieldDialogObj" :modal-fetch-fun='systemFieldDialogFetchFun' :modal-show.sync="systemFieldDialogVisible" @inputDialogSelected="systemFieldSelected"></input-select-dialog>
|
||||
<basic-container style="margin-top: -20px">
|
||||
<c-top-bar :offset="50">
|
||||
<el-button v-if="mes_system_field_retrive" type="text" icon="el-icon-search" @click="doRetrive('formObj')">检索</el-button>
|
||||
<el-divider v-if="mes_system_field_retrive" direction="vertical"></el-divider>
|
||||
<el-button v-if="mes_system_field_save" type="text" icon="el-icon-circle-check" @click="doSave('formObj')">保存</el-button>
|
||||
<el-divider v-if="mes_system_field_save" direction="vertical"></el-divider>
|
||||
<el-button type="text" icon="el-icon-circle-close" @click="doClear()">清除</el-button>
|
||||
<el-divider v-if="mes_system_field_del" direction="vertical"></el-divider>
|
||||
<el-button v-if="mes_system_field_del" type="text" icon="el-icon-delete" @click="doRemove('formObj')">删除</el-button>
|
||||
<el-divider style="margin-top: 0px;"></el-divider>
|
||||
</c-top-bar>
|
||||
<el-form ref="formObj" :rules="rules" :model="formObj" label-width="200px">
|
||||
<el-row :gutter="10">
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="relationContainer">
|
||||
<el-form-item label="字段编号:" prop="fieldNumber">
|
||||
<el-input placeHolder="字段编号" v-model="formObj.fieldNumber" style="width:250px">
|
||||
<i slot="suffix" class="el-input__icon el-icon-search" @click.stop="showSystemFieldDialog()"></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="relationContainer">
|
||||
<el-form-item label="类型:" prop="type">
|
||||
<el-select placeHolder="请选择" v-model="formObj.type" @change="changeType" style="width:250px">
|
||||
<el-option key="sql" label="数据库字段" value="sql"/>
|
||||
<el-option key="pattern" label="JSON路径" value="pattern"/>
|
||||
<el-option key="fixed" label="固定值" value="fixed"/>
|
||||
<el-option key="script" label="javaScript" value="script"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" class="relationContainer">
|
||||
<el-form-item label="字段描述:" prop="fieldDescription">
|
||||
<el-input type="textarea" :rows="4" placeHolder="字段描述" v-model="formObj.fieldDescription"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" class="relationContainer">
|
||||
<el-form-item label="取值逻辑:" prop="getValueContext">
|
||||
<el-input type="textarea" :rows="6" v-model="formObj.getValueContext"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" class="relationContainer">
|
||||
<el-form-item label="注意事项:">‘固定值’的默认值EMPTY代表空字符串,若要改成其他字符串,请先删除EMPTY,再输入具体的值,否则不需要动</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" class="relationContainer">
|
||||
<el-form-item label="字段配置参考:">
|
||||
<el-button type="info" @click="dialogFormVisible = true">参考案例</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" class="relationContainer">
|
||||
<el-dialog title="帮助" :visible.sync="dialogFormVisible">
|
||||
<el-form :model="form">
|
||||
<el-form-item label="用法示例:" :label-width="formLabelWidth">
|
||||
<el-input type="textarea" :rows="15" v-model="form.name" :disabled="true"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="用法示例:" :label-width="formLabelWidth">
|
||||
<el-input type="textarea" :rows="27" v-model="form.region" :disabled="true"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="dialogFormVisible = false">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</basic-container>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
fetchList,
|
||||
getByCode,
|
||||
delByCode,
|
||||
addObj,
|
||||
putObj,
|
||||
delObj
|
||||
} from '@/api/mes/print/systemfield'
|
||||
import { showLoading, hideLoading } from '@/const/loading'
|
||||
import {stringFormat, isBlank} from "@/util/string"
|
||||
import {
|
||||
mapGetters
|
||||
} from 'vuex'
|
||||
|
||||
export default {
|
||||
name: "system-field_maintain",
|
||||
data(){
|
||||
return {
|
||||
formObj: {},
|
||||
retrivedSystemField: "",
|
||||
mes_system_field_save: false,
|
||||
mes_system_field_del: false,
|
||||
mes_system_field_retrive: false,
|
||||
systemFieldDialogVisible : false,
|
||||
initData: {
|
||||
handle: "",
|
||||
site: "",
|
||||
fieldNumber: "",
|
||||
fieldDescription: "",
|
||||
type: "",
|
||||
getValueContext: "",
|
||||
creator: "",
|
||||
updater: "",
|
||||
dateCreate: "",
|
||||
dateUpdate: "",
|
||||
},
|
||||
rules: {
|
||||
fieldNumber: [
|
||||
{ required: true, message: '请输入字段编号' }
|
||||
],
|
||||
},
|
||||
systemFieldDialogFetchFun: fetchList,
|
||||
systemFieldDialogObj: {
|
||||
condition: "searchText",
|
||||
tableColumn: [
|
||||
{prop: "fieldNumber", label: "字段编号"},
|
||||
|
||||
{prop: "fieldDescription", label: "字段描述"},
|
||||
|
||||
{prop: "type", label: "类型"},
|
||||
|
||||
{prop: "getValueContext", label: "取值逻辑"},
|
||||
|
||||
]
|
||||
},
|
||||
dialogFormVisible: false,
|
||||
form: {
|
||||
name: 'JSON路径: \n' +
|
||||
' $.barcodeNumber\n' +
|
||||
' $.shopOrderCustomData.shippingCustomer\n' +
|
||||
'javaScript: \n' +
|
||||
' var a = data.shopOrderData.qtyDone;\n' +
|
||||
' var b = data.shopOrderData.qtyReleased;\n' +
|
||||
' return a+b;\n' +
|
||||
'数据库字段(SQL返回的字段名需和系统字段名称相同):\n' +
|
||||
' SELECT PLANNED_ITEM_BO AS SHOP_ORDER_ITEM\n' +
|
||||
' FROM SHOP_ORDER\n' +
|
||||
' WHERE SITE = ${site}\n' +
|
||||
' AND SHOP_ORDER = ${shopOrder}\n' +
|
||||
'固定值:\n' +
|
||||
' 其他字串\n' +
|
||||
' 若是空字符串,此处填写EMPTY',
|
||||
region: '{\n' +
|
||||
' "dateTime": "2021-09-02 03:59:50",\n' +
|
||||
' "shopOrder": "X921H1DM020",\n' +
|
||||
' "item": "D1120343101",\n' +
|
||||
' "site": "1000",\n' +
|
||||
' "barcodeNumber": "P100020210902-0004",\n' +
|
||||
' "shopOrderData": {\n' +
|
||||
' "handle": "ShopOrderBO:1000,X921H1DM020",\n' +
|
||||
' "itemBo": "ItemBO:1000,D1120343101,1.0",\n' +
|
||||
' "qtyDone": 0,\n' +
|
||||
' "qtyOrdered": 1000,\n' +
|
||||
' "qtyReleased": 4,\n' +
|
||||
' "qtyScrapped": 0,\n' +
|
||||
' "qtyToBuild": 1000,\n' +
|
||||
' "releasedDate": "2021-09-02T10:55:20",\n' +
|
||||
' "statusBo": "StatusBO:1000,501"\n' +
|
||||
' },\n' +
|
||||
' "barcodeType": "CP",\n' +
|
||||
' "shopOrderCustomData": {\n' +
|
||||
' "shippingCustomer": "HW01"\n' +
|
||||
' },\n' +
|
||||
' "user": "SITE_ADMIN",\n' +
|
||||
' "itemCustomData": {\n' +
|
||||
' "itemModel": "ST173XX002BKF",\n' +
|
||||
' "packageCapacity": "2"\n' +
|
||||
' }\n' +
|
||||
'}',
|
||||
},
|
||||
formLabelWidth: '120px'
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.mes_system_field_save = this.permissions['mes_system_field_save']
|
||||
this.mes_system_field_del = this.permissions['mes_system_field_del']
|
||||
this.mes_system_field_retrive = this.permissions['mes_system_field_retrive']
|
||||
this.formObj = Object.assign({}, this.initData)
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['permissions']),
|
||||
permissionList() {
|
||||
return {
|
||||
|
||||
};
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
//显示操作弹窗框
|
||||
showSystemFieldDialog() {
|
||||
this.systemFieldDialogVisible = true
|
||||
},
|
||||
systemFieldSelected(row) {
|
||||
let me = this
|
||||
me.formObj.fieldNumber = row.fieldNumber
|
||||
},
|
||||
doRetrive(formName) {
|
||||
let me = this
|
||||
me.$refs[formName].validateField(['fieldNumber'], (errorMessage) => {
|
||||
if (errorMessage) {
|
||||
return false;
|
||||
} else {
|
||||
showLoading()
|
||||
let fieldNumber = me.formObj.fieldNumber;
|
||||
getByCode(fieldNumber).then(response => {
|
||||
hideLoading()
|
||||
if(!response.data.data || response.data.data.length === 0) {
|
||||
me.doClear({fieldNumber: fieldNumber})
|
||||
let errorMsg = stringFormat('{0} 不存在', fieldNumber)
|
||||
return me.$message.error(errorMsg)
|
||||
}
|
||||
me.formObj = Object.assign({}, response.data.data)
|
||||
me.retrivedSystemField = me.formObj.fieldNumber
|
||||
}).catch(() => {
|
||||
hideLoading()
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
doSave(formName) {
|
||||
let me = this
|
||||
me.$refs[formName].validate((valid) => {
|
||||
if (valid) {
|
||||
if(me.isUpdate()) {
|
||||
me.doUpdate()
|
||||
} else {
|
||||
me.doAdd()
|
||||
}
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
});
|
||||
},
|
||||
doAdd() {
|
||||
let me = this
|
||||
showLoading()
|
||||
addObj(me.formObj).then(respData => {
|
||||
hideLoading()
|
||||
me.doRetrive('formObj')
|
||||
this.$message.success('新增成功')
|
||||
}).catch(error => {
|
||||
hideLoading()
|
||||
});
|
||||
},
|
||||
doUpdate() {
|
||||
let me = this
|
||||
showLoading()
|
||||
putObj(me.formObj).then(respData => {
|
||||
hideLoading()
|
||||
me.doRetrive('formObj')
|
||||
this.$message.success('更新成功')
|
||||
}).catch(error => {
|
||||
hideLoading()
|
||||
});
|
||||
},
|
||||
doRemove(formName) {
|
||||
let me = this
|
||||
let code = me.formObj.fieldNumber
|
||||
me.$refs[formName].validateField(['fieldNumber'], (errorMessage) => {
|
||||
if (errorMessage) {
|
||||
return
|
||||
} else {
|
||||
if(!me.isUpdate()) {
|
||||
return this.$message.warning('必须先检索记录,然后才能将其删除')
|
||||
}
|
||||
showLoading()
|
||||
me.$confirm('是否确认删除' + code, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(function() {
|
||||
hideLoading()
|
||||
return delByCode(code)
|
||||
}).then(data => {
|
||||
hideLoading()
|
||||
this.$message.success('删除成功')
|
||||
me.doClear()
|
||||
}).catch(() => {
|
||||
hideLoading()
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
doClear(retainData) {
|
||||
let me = this
|
||||
me.formObj = retainData ? Object.assign({}, this.initData, retainData) : Object.assign({}, this.initData)
|
||||
me.retrivedSystemField = ""
|
||||
},
|
||||
isUpdate() {
|
||||
let me = this
|
||||
if(me.formObj.fieldNumber === me.retrivedSystemField) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
},
|
||||
changeType: function () {
|
||||
//‘固定值’的默认值EMPTY代表空字符串
|
||||
if (this.formObj.type == "fixed") {
|
||||
this.formObj.getValueContext = 'EMPTY';
|
||||
}else
|
||||
{
|
||||
this.formObj.getValueContext ='';
|
||||
}
|
||||
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
Loading…
Reference in New Issue
Block a user