布产单
This commit is contained in:
parent
e8077ff3da
commit
a3956e6f97
|
|
@ -466,6 +466,7 @@ export default {
|
||||||
|
|
||||||
let delParms = {};
|
let delParms = {};
|
||||||
let url = this.options.actions.delete;
|
let url = this.options.actions.delete;
|
||||||
|
|
||||||
|
|
||||||
if (url.indexOf('batchDelete') != -1) {
|
if (url.indexOf('batchDelete') != -1) {
|
||||||
delParms = {
|
delParms = {
|
||||||
|
|
@ -506,7 +507,12 @@ export default {
|
||||||
|
|
||||||
gridReload(){
|
gridReload(){
|
||||||
this.$refs.xGrid.commitProxy('query')
|
this.$refs.xGrid.commitProxy('query')
|
||||||
}
|
},
|
||||||
|
|
||||||
|
getConfirmData() {
|
||||||
|
let rows = this.$refs.xGrid.getCheckboxRecords();
|
||||||
|
return rows;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
// 监听属性
|
// 监听属性
|
||||||
watch: {
|
watch: {
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ export default {
|
||||||
},
|
},
|
||||||
modalVisible: false,
|
modalVisible: false,
|
||||||
listdataFieldName: 'list',
|
listdataFieldName: 'list',
|
||||||
keyFieldName :"id",
|
keyFieldName: "id",
|
||||||
lastKey: '',
|
lastKey: '',
|
||||||
modelName: '',
|
modelName: '',
|
||||||
orderBy: '',
|
orderBy: '',
|
||||||
|
|
@ -66,7 +66,7 @@ export default {
|
||||||
popupPage: null,
|
popupPage: null,
|
||||||
popupPageOptions: {},
|
popupPageOptions: {},
|
||||||
popupPageMode: '',
|
popupPageMode: '',
|
||||||
|
actionParams: null,
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ field: 'name', title: '名称' },
|
{ field: 'name', title: '名称' },
|
||||||
{ field: 'code', title: '编码' }
|
{ field: 'code', title: '编码' }
|
||||||
|
|
@ -123,13 +123,27 @@ export default {
|
||||||
if (column.params.listdataFieldName) {
|
if (column.params.listdataFieldName) {
|
||||||
this.listdataFieldName = column.params.listdataFieldName;
|
this.listdataFieldName = column.params.listdataFieldName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (column.params.actionParams) {
|
||||||
|
this.actionParams = column.params.actionParams;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(column && column.params && column.params.dataType == "object"){
|
if (column && column.params && column.params.dataType == "object") {
|
||||||
if(this.row[column.field]){
|
if (this.row[column.field]) {
|
||||||
this.textboxValue = this.row[column.field][column.params.textField];
|
this.textboxValue = this.row[column.field][column.params.textField];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (column && column.params && column.params.dataType == "string") {
|
||||||
|
if (this.row[column.field]) {
|
||||||
|
this.textboxValue = this.row[column.field];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (column.params && column.params.dataType == 'mapper') {
|
||||||
|
this.textboxValue = this.row[column.params.showField || column.field];
|
||||||
}
|
}
|
||||||
else if (this.row[column.field] && this.row[column.field][1]) {
|
else if (this.row[column.field] && this.row[column.field][1]) {
|
||||||
this.textboxValue = this.row[column.field][1];
|
this.textboxValue = this.row[column.field][1];
|
||||||
|
|
@ -137,7 +151,7 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.getData().then(data => {
|
this.getData().then(data => {
|
||||||
|
|
||||||
this.tablePage.total = data.total;
|
this.tablePage.total = data.total;
|
||||||
this.tableData = data[this.listdataFieldName];
|
this.tableData = data[this.listdataFieldName];
|
||||||
});
|
});
|
||||||
|
|
@ -148,12 +162,12 @@ export default {
|
||||||
this.lastKey = key;
|
this.lastKey = key;
|
||||||
|
|
||||||
|
|
||||||
var params = {}; // 定义请求参数
|
var params = Object.assign({}, this.actionParams || {}) // 定义请求参数
|
||||||
params.page = this.tablePage.currentPage; // 当前页码
|
params.page = this.tablePage.currentPage; // 当前页码
|
||||||
params.limit = this.tablePage.pageSize; // 每页条数
|
params.limit = this.tablePage.pageSize; // 每页条数
|
||||||
params.order_bys = []; // 排序信息
|
params.order_bys = []; // 排序信息
|
||||||
params.search_rules = []; // 搜索信息
|
params.search_rules = []; // 搜索信息
|
||||||
if(key){
|
if (key) {
|
||||||
key = this.$mk.trim(key);
|
key = this.$mk.trim(key);
|
||||||
}
|
}
|
||||||
if (key) {
|
if (key) {
|
||||||
|
|
@ -210,7 +224,7 @@ export default {
|
||||||
const cellValue = this.textboxValue;
|
const cellValue = this.textboxValue;
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
|
||||||
if(!cellValue){
|
if (!cellValue) {
|
||||||
row[column.field] = null;
|
row[column.field] = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -219,7 +233,7 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.tablePage.total = data.total;
|
this.tablePage.total = data.total;
|
||||||
this.tableData = data[this.listdataFieldName] || [];
|
this.tableData = data[this.listdataFieldName] || [];
|
||||||
}).catch(()=>{
|
}).catch(() => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
@ -236,48 +250,79 @@ export default {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.tablePage.total = data.total;
|
this.tablePage.total = data.total;
|
||||||
this.tableData = data[this.listdataFieldName];
|
this.tableData = data[this.listdataFieldName];
|
||||||
}).catch(()=>{
|
}).catch(() => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
getIdValue({row}){
|
getIdValue({ row }) {
|
||||||
let id = row[this.keyFieldName];
|
let id = row[this.keyFieldName];
|
||||||
if(!id) id = '';
|
if (!id) id = '';
|
||||||
if(id.toString) id = id.toString();
|
if (id.toString) id = id.toString();
|
||||||
return id;
|
return id;
|
||||||
},
|
},
|
||||||
selectEvent(params) {
|
selectEvent(params) {
|
||||||
const { row, column } = this
|
const { row, column } = this
|
||||||
|
|
||||||
let id = this.getIdValue({row:params.row});
|
let id = this.getIdValue({ row: params.row });
|
||||||
|
|
||||||
|
|
||||||
let textField = column.params.textField;
|
let textField = column.params.textField;
|
||||||
this.textboxValue = params.row[textField];
|
this.textboxValue = params.row[textField];
|
||||||
if(column.params && column.params.dataType == 'object'){
|
if (column.params && column.params.dataType == 'object') {
|
||||||
row[column.field] = Object.assign({},params.row)
|
row[column.field] = Object.assign({}, params.row)
|
||||||
}else{
|
}
|
||||||
|
else if (column.params && column.params.dataType == 'string') {
|
||||||
|
row[column.field] = params.row[textField]
|
||||||
|
}
|
||||||
|
else if (column.params && column.params.dataType == 'mapper') {
|
||||||
|
console.log(params.row)
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
row[column.field] = [id, params.row[textField]];
|
row[column.field] = [id, params.row[textField]];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
this.params.$table.$emit("pulldownSelected", { row,selectedData : params.row, column, name: column.params.name, params: this.params });
|
if (column.params.mapper) {
|
||||||
|
column.params.mapper.forEach(item => {
|
||||||
|
|
||||||
|
row[item.field] = params.row[item.fromField];
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
this.params.$table.$emit("pulldownSelected", { row, selectedData: params.row, column, name: column.params.name, params: this.params });
|
||||||
this.$refs.xDown.hidePanel()
|
this.$refs.xDown.hidePanel()
|
||||||
},
|
},
|
||||||
dblClickEvent(params) {
|
dblClickEvent(params) {
|
||||||
const { row, column } = this
|
const { row, column } = this
|
||||||
|
|
||||||
let id = this.getIdValue({row:params.row});
|
let id = this.getIdValue({ row: params.row });
|
||||||
|
|
||||||
let textField = column.params.textField;
|
let textField = column.params.textField;
|
||||||
this.textboxValue = params.row[textField];
|
this.textboxValue = params.row[textField];
|
||||||
|
|
||||||
if(column.params && column.params.dataType == 'object'){
|
if (column.params && column.params.dataType == 'object') {
|
||||||
row[column.field] = Object.assign({},params.row)
|
row[column.field] = Object.assign({}, params.row)
|
||||||
}else{
|
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (column.params && column.params.dataType == 'string') {
|
||||||
|
row[column.field] = params.row[textField]
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (column.params && column.params.dataType == 'mapper') {
|
||||||
|
console.log(column);
|
||||||
|
}
|
||||||
|
else {
|
||||||
row[column.field] = [id, params.row[textField]];
|
row[column.field] = [id, params.row[textField]];
|
||||||
}
|
}
|
||||||
|
if (column.params.mapper) {
|
||||||
|
column.params.mapper.forEach(item => {
|
||||||
|
|
||||||
|
row[item.field] = params.row[item.fromField];
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
console.log(id)
|
console.log(id)
|
||||||
this.modalVisible = false;
|
this.modalVisible = false;
|
||||||
|
|
@ -290,23 +335,37 @@ export default {
|
||||||
confirmEvent() {
|
confirmEvent() {
|
||||||
const { row, column } = this
|
const { row, column } = this
|
||||||
let selectedRow = this.$refs.popup.getSelectdRow();
|
let selectedRow = this.$refs.popup.getSelectdRow();
|
||||||
let id = this.getIdValue({row:selectedRow});
|
let id = this.getIdValue({ row: selectedRow });
|
||||||
let textField = column.params.textField;
|
let textField = column.params.textField;
|
||||||
this.textboxValue = selectedRow[textField];
|
this.textboxValue = selectedRow[textField];
|
||||||
|
|
||||||
|
|
||||||
if(column.params && column.params.dataType == 'object'){
|
|
||||||
row[column.field] = Object.assign({},selectedRow)
|
if (column.params && column.params.dataType == 'object') {
|
||||||
}else{
|
row[column.field] = Object.assign({}, selectedRow)
|
||||||
|
}
|
||||||
|
else if (column.params && column.params.dataType == 'string') {
|
||||||
|
row[column.field] = selectedRow[textField]
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (column.params && column.params.dataType == 'mapper') {
|
||||||
|
console.log(column)
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
row[column.field] = [id, selectedRow[textField]];
|
row[column.field] = [id, selectedRow[textField]];
|
||||||
}
|
}
|
||||||
|
if (column.params.mapper) {
|
||||||
|
column.params.mapper.forEach(item => {
|
||||||
|
|
||||||
|
row[item.field] = selectedRow[item.fromField];
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
this.modalVisible = false;
|
this.modalVisible = false;
|
||||||
|
|
||||||
let rows = this.$refs.popup.getConfirmData();
|
let rows = this.$refs.popup.getConfirmData();
|
||||||
this.params.$table.$emit("popupSelected", { rows, column:column, name: column.params.name, params: this.params });
|
this.params.$table.$emit("popupSelected", { rows, column: column, name: column.params.name, params: this.params });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ export default {
|
||||||
if (loading) { // 如果需要加载
|
if (loading) { // 如果需要加载
|
||||||
modal.hideLoading(); // 隐藏加载
|
modal.hideLoading(); // 隐藏加载
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
if (result.code != 200) { // 如果返回的状态码不是200
|
if (result.code != 200) { // 如果返回的状态码不是200
|
||||||
if (reject) { // 如果有错误回调
|
if (reject) { // 如果有错误回调
|
||||||
reject(response); // 返回错误
|
reject(response); // 返回错误
|
||||||
|
|
@ -41,6 +42,7 @@ export default {
|
||||||
}
|
}
|
||||||
return; // 返回
|
return; // 返回
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
resolve(result); // 返回成功
|
resolve(result); // 返回成功
|
||||||
}).catch((error) => { // 如果出错
|
}).catch((error) => { // 如果出错
|
||||||
if (loading) { // 如果需要加载
|
if (loading) { // 如果需要加载
|
||||||
|
|
|
||||||
|
|
@ -123,4 +123,36 @@ height: 17px;
|
||||||
.treepanel-header .anticon {
|
.treepanel-header .anticon {
|
||||||
margin-left: 8px;
|
margin-left: 8px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.voucher-toolbar{
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.voucher-toolbar-left .ant-btn {
|
||||||
|
margin-right: 8px;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.voucher-toolbar-left{
|
||||||
|
flex:1;
|
||||||
|
}
|
||||||
|
.voucher-toolbar-right{
|
||||||
|
flex:1;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.approvedbg {
|
||||||
|
width: 44px;
|
||||||
|
height: 22px;
|
||||||
|
background: url(../../../assets/img/approved.png) 0 0 no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
position: absolute;
|
||||||
|
left: 10px;
|
||||||
|
top: 50px;
|
||||||
|
z-index: 999;
|
||||||
}
|
}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 4.5 KiB |
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<basic-page-list :desc="desc" :options="pageOptions"></basic-page-list>
|
<basic-page-list ref="pageList" :desc="desc" :options="pageOptions"></basic-page-list>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
@ -31,7 +31,12 @@ export default {
|
||||||
},
|
},
|
||||||
// 动作
|
// 动作
|
||||||
methods: {
|
methods: {
|
||||||
|
getConfirmData() {
|
||||||
|
return this.$refs.pageList.getConfirmData();
|
||||||
|
},
|
||||||
|
getSelectdRow() {
|
||||||
|
return this.$refs.pageList.getSelectdRow();
|
||||||
|
},
|
||||||
optionsInit() {
|
optionsInit() {
|
||||||
// 页面数据
|
// 页面数据
|
||||||
var pageData = { // 页面数据变量
|
var pageData = { // 页面数据变量
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<basic-page-list :desc="desc" :options="pageOptions"></basic-page-list>
|
<basic-page-list ref="pageList" :desc="desc" :options="pageOptions"></basic-page-list>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
@ -32,31 +32,26 @@ export default {
|
||||||
// 动作
|
// 动作
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
|
getConfirmData() {
|
||||||
|
return this.$refs.pageList.getConfirmData();
|
||||||
|
},
|
||||||
|
getSelectdRow() {
|
||||||
|
return this.$refs.pageList.getSelectdRow();
|
||||||
|
},
|
||||||
optionsInit() {
|
optionsInit() {
|
||||||
// 页面数据
|
// 页面数据
|
||||||
var pageData = { // 页面数据变量
|
var pageData = { // 页面数据变量
|
||||||
|
|
||||||
keyName: 'id', // 主键字段名
|
keyName: 'id', // 主键字段名
|
||||||
listFieldName: 'MesUnit',
|
listFieldName: 'MesProductionOrder',
|
||||||
|
|
||||||
addPageUrl: "/MesUnit/MesUnitAdd",
|
|
||||||
editPageUrl: "/MesUnit/MesUnitUpdate/",
|
|
||||||
|
|
||||||
// 接口动作
|
// 接口动作
|
||||||
actions: { // Api 接口地址
|
actions: { // Api 接口地址
|
||||||
// =============================== 接口地址 自动生成 Start ===============================
|
getList: `${BASE_URL.BASE_URL}/MesProductionOrder/v1/mes/production/order/list`,
|
||||||
MesUnitList: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/list`, // 单位列表
|
|
||||||
MesUnitDetail: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/detail`, // 单位详情
|
|
||||||
MesUnitCreate: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/create`, // 创建单位
|
|
||||||
MesUnitUpdate: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/update`, // 更新单位
|
|
||||||
MesUnitDelete: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/detele`, // 删除单位
|
|
||||||
MesUnitBatchDelete: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/batchDelete`, // 批量删除单位
|
|
||||||
MesUnitBatchUpdate: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/batchUpdate`, // 批量更新单位
|
|
||||||
MesUnitBatchCreate: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/batchCreate`, // 批量创建单位
|
|
||||||
MesUnitExportExcel: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/export/excel`, // 导出单位数据到EXCEL
|
|
||||||
MesUnitImportExcel: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/import/excel`, // 批量导入EXCEL单位数据
|
|
||||||
|
|
||||||
// =============================== 接口地址 自动生成 End ===============================
|
delete: `${BASE_URL.BASE_URL}/MesProductionOrder/v1/mes/production/order/detele`,
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
start_time: 0, // 开始时间
|
start_time: 0, // 开始时间
|
||||||
|
|
@ -65,13 +60,10 @@ export default {
|
||||||
|
|
||||||
//搜索区
|
//搜索区
|
||||||
searchFormData: {
|
searchFormData: {
|
||||||
title: '',
|
code: ''
|
||||||
desc: '',
|
|
||||||
},
|
},
|
||||||
// 搜索区配置
|
// 搜索区配置
|
||||||
searchRules: [
|
searchRules: [
|
||||||
{ key: "title", mode: "like" },
|
|
||||||
{ key: "desc", mode: "like" }
|
|
||||||
],
|
],
|
||||||
//搜索区
|
//搜索区
|
||||||
searchFormItems: [ // 子项
|
searchFormItems: [ // 子项
|
||||||
|
|
@ -97,9 +89,8 @@ export default {
|
||||||
{ type: 'checkbox', width: 50 }, // 多选框
|
{ type: 'checkbox', width: 50 }, // 多选框
|
||||||
{ title: '操作', slots: { default: 'op' }, width: 120 },
|
{ title: '操作', slots: { default: 'op' }, width: 120 },
|
||||||
|
|
||||||
{ field: 'code', sortable: true, title: '编码', width: 250 }, // 编码
|
{ field: 'production_number', sortable: true, title: '单据编码', width: 250 }, // 编码
|
||||||
{ field: 'title', sortable: true, title: '单位名称', width: 250 }, // 单位名称
|
{ field: 'create_time', formatter: 'formatDate', width: 160, sortable: true, title: '单据日期', showHeaderOverflow: true }, // 创建时间
|
||||||
{ field: 'name', sortable: true, title: '单位英文名称', width: 250 }, // 单位英文名称
|
|
||||||
{ field: 'create_time', formatter: 'formatDate', width: 160, sortable: true, title: '创建时间', showHeaderOverflow: true }, // 创建时间
|
{ field: 'create_time', formatter: 'formatDate', width: 160, sortable: true, title: '创建时间', showHeaderOverflow: true }, // 创建时间
|
||||||
{ field: 'update_time', formatter: 'formatDate', width: 160, sortable: true, title: '更新时间', showHeaderOverflow: true }, // 更新时间
|
{ field: 'update_time', formatter: 'formatDate', width: 160, sortable: true, title: '更新时间', showHeaderOverflow: true }, // 更新时间
|
||||||
|
|
||||||
|
|
@ -107,9 +98,7 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
pageData.actions.getList = pageData.actions.MesUnitList;
|
|
||||||
pageData.actions.delete = pageData.actions.MesUnitBatchDelete;
|
|
||||||
pageData.gridOptions = Object.assign({}, this.$mk.config.defaults.gridOptions, pageData.gridOptions); // 合并表格数据
|
pageData.gridOptions = Object.assign({}, this.$mk.config.defaults.gridOptions, pageData.gridOptions); // 合并表格数据
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,751 @@
|
||||||
|
<template>
|
||||||
|
<div class="page-body">
|
||||||
|
|
||||||
|
<div class="approvedbg" v-if="pageStatus == 'approved'"></div>
|
||||||
|
<div class="voucher-toolbar">
|
||||||
|
<div class="voucher-toolbar-left">
|
||||||
|
<a-button @click="pageVoucherAdd">新增</a-button>
|
||||||
|
|
||||||
|
<a-dropdown :disabled="pageStatus == 'approved'">
|
||||||
|
<a-menu slot="overlay" @click="handleMenuClick">
|
||||||
|
<a-menu-item key="TP_outSourceOrder">
|
||||||
|
订单
|
||||||
|
</a-menu-item>
|
||||||
|
</a-menu>
|
||||||
|
<a-button> 选单
|
||||||
|
<a-icon type="down" />
|
||||||
|
</a-button>
|
||||||
|
</a-dropdown>
|
||||||
|
<a-button type="primary" @click="ok" :disabled="pageStatus == 'approved'">保存</a-button>
|
||||||
|
<a-button @click="pageApproved" type="primary" :disabled="!this.getDataId() || pageStatus == 'approved'">审批
|
||||||
|
</a-button>
|
||||||
|
<a-button @click="pageUnapproved" :disabled="!this.getDataId() || pageStatus != 'approved'">弃审</a-button>
|
||||||
|
<a-button @click="pageVoucherDelete" :disabled="!this.getDataId() || pageStatus == 'approved'">删除</a-button>
|
||||||
|
|
||||||
|
<a-button :disabled="!this.getDataId()" @click="pageExport">导出</a-button>
|
||||||
|
<a-button :disabled="!this.getDataId()" @click="pagePrint">打印</a-button>
|
||||||
|
</div>
|
||||||
|
<div class="voucher-toolbar-right">
|
||||||
|
<a-button-group>
|
||||||
|
<a-button @click="pageSearch">
|
||||||
|
<a-icon type="search" />
|
||||||
|
</a-button>
|
||||||
|
<a-button :disabled="!nextId" @click="pageNext">
|
||||||
|
<a-icon type="left" />
|
||||||
|
</a-button>
|
||||||
|
<a-button :disabled="!prevId" @click="pagePrev">
|
||||||
|
<a-icon type="right" />
|
||||||
|
</a-button>
|
||||||
|
</a-button-group>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<vxe-form :data="options.formOptions.data" ref="xForm" :title-width="options.formOptions.titleWidth"
|
||||||
|
:title-align="options.formOptions.titleAlign" :rules="options.formOptions.rules" :items="options.formOptions.items"
|
||||||
|
titleColon>
|
||||||
|
</vxe-form>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<vxe-table border show-overflow keep-source ref="xTable" :height="table1Height" :data="detailsData"
|
||||||
|
@pulldownSelected="onPulldownSelected" @popupSelected="onPopupSelected" :export-config="{}"
|
||||||
|
@edit-closed="afterEditEvent" @edit-actived="beforeEditEvent"
|
||||||
|
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: beforeEditMethod }">
|
||||||
|
<vxe-column width="70">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<div class="oplinks2">
|
||||||
|
<a @click.stop="pageAdd(row)" title="新增">
|
||||||
|
<a-icon class="icon" type="plus-circle" />
|
||||||
|
</a>
|
||||||
|
<a @click.stop="pageDelete(row)" title="删除">
|
||||||
|
<a-icon class="icon" type="delete" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
|
||||||
|
<vxe-column field="contract_number" title="合同号" width="160" :edit-render="{ name: '$input' }"></vxe-column>
|
||||||
|
<vxe-column field="materials_code" title="料品编码" width="160"></vxe-column>
|
||||||
|
<vxe-column field="materials_name" title="料品名称" width="160" :params="editorMaterials"
|
||||||
|
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
|
||||||
|
<vxe-column field="unit_name" title="单位名" width="160"></vxe-column>
|
||||||
|
|
||||||
|
<vxe-column field="process_route" title="工艺路线" width="160" :params="editor_process_route"
|
||||||
|
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
|
||||||
|
|
||||||
|
<vxe-column field="molding_type" title="成型方式" width="160" :params="editor_molding_type"
|
||||||
|
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
|
||||||
|
|
||||||
|
<vxe-column field="production_num" title="布产数量" width="160"
|
||||||
|
:edit-render="{ name: '$input', props: { type: 'integer' } }"></vxe-column>
|
||||||
|
<vxe-column field="batch_num" title="批次数量" width="160"
|
||||||
|
:edit-render="{ name: '$input', props: { type: 'integer' } }"></vxe-column>
|
||||||
|
<vxe-column field="remark" title="备注" width="160" :edit-render="{ name: '$input' }"></vxe-column>
|
||||||
|
|
||||||
|
|
||||||
|
</vxe-table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import BASE_URL from '@/services/mes/api.js';
|
||||||
|
|
||||||
|
|
||||||
|
export default {
|
||||||
|
|
||||||
|
i18n: require('./i18n'),
|
||||||
|
components: {},
|
||||||
|
props: {
|
||||||
|
pageMode: {
|
||||||
|
type: String,
|
||||||
|
default: "edit"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
|
||||||
|
let pageData = {
|
||||||
|
dataId: null,
|
||||||
|
actions: {
|
||||||
|
},
|
||||||
|
prevId: null,
|
||||||
|
nextId: null,
|
||||||
|
|
||||||
|
table1Height: 400,
|
||||||
|
detailsSourceData: [
|
||||||
|
],
|
||||||
|
detailsData: [
|
||||||
|
],
|
||||||
|
deletedDetailsData: [
|
||||||
|
|
||||||
|
],
|
||||||
|
|
||||||
|
pageStatus: '',
|
||||||
|
editorMaterials: {
|
||||||
|
dataType: "mapper",
|
||||||
|
mapper: [
|
||||||
|
{ field: "materials_id", fromField: "id" },
|
||||||
|
{ field: "materials_code", fromField: "code" },
|
||||||
|
{ field: "materials_name", fromField: "name" },
|
||||||
|
{ field: "unit_name", fromField: "unit" },
|
||||||
|
],
|
||||||
|
showField: "materials_name",
|
||||||
|
valueField: "id",
|
||||||
|
textField: "name",
|
||||||
|
listdataFieldName: 'MesMaterials',
|
||||||
|
dataUrl: `${BASE_URL.BASE_URL}/MesMaterials/v1/mes/materials/list`,
|
||||||
|
popup: {
|
||||||
|
page: () => import("../../MesMaterials/MesMaterials/List")
|
||||||
|
}
|
||||||
|
},
|
||||||
|
editor_process_route: {
|
||||||
|
dataType: "string",
|
||||||
|
valueField: "name",
|
||||||
|
textField: "name",
|
||||||
|
listdataFieldName: 'MesEnumValue',
|
||||||
|
actionParams: {
|
||||||
|
search_rules_enum: [
|
||||||
|
{
|
||||||
|
column: "code",
|
||||||
|
mode: "=",
|
||||||
|
value: "10"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
dataUrl: `${BASE_URL.BASE_URL}/MesEnum/v1/mes/enum/value/list`
|
||||||
|
},
|
||||||
|
editor_molding_type: {
|
||||||
|
dataType: "string",
|
||||||
|
valueField: "name",
|
||||||
|
textField: "name",
|
||||||
|
listdataFieldName: 'MesEnumValue',
|
||||||
|
actionParams: {
|
||||||
|
search_rules_enum: [
|
||||||
|
{
|
||||||
|
column: "code",
|
||||||
|
mode: "=",
|
||||||
|
value: "1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
dataUrl: `${BASE_URL.BASE_URL}/MesEnum/v1/mes/enum/value/list`
|
||||||
|
},
|
||||||
|
options: {}
|
||||||
|
};
|
||||||
|
|
||||||
|
return pageData;
|
||||||
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
desc() {
|
||||||
|
return this.$t('editPageDesc')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
created() {
|
||||||
|
|
||||||
|
this.optionsInit();
|
||||||
|
this.pageInit();
|
||||||
|
this.heightInit();
|
||||||
|
},
|
||||||
|
onload() {
|
||||||
|
if (this.$route.params.id) {
|
||||||
|
this.dataId = this.$route.params.id;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 函数
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
|
||||||
|
optionsInit() {
|
||||||
|
// 页面数据变量
|
||||||
|
var pageData = {
|
||||||
|
// 当前项目名称
|
||||||
|
currentConfigName: "",
|
||||||
|
// 当前项目ID
|
||||||
|
currentBeid: 0,
|
||||||
|
|
||||||
|
detailDataFieldName: "mes_production_order",
|
||||||
|
|
||||||
|
actions: {
|
||||||
|
get: `${BASE_URL.BASE_URL}/MesProductionOrder/v1/mes/production/order/detail`,
|
||||||
|
create: `${BASE_URL.BASE_URL}/MesProductionOrder/v1/mes/production/order/create`,
|
||||||
|
update: `${BASE_URL.BASE_URL}/MesProductionOrder/v1/mes/production/order/update`,
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
keyName: 'id',
|
||||||
|
// 是否编辑模式
|
||||||
|
isEdit: false,
|
||||||
|
// 表单数据
|
||||||
|
formOptions: {
|
||||||
|
data: {
|
||||||
|
},
|
||||||
|
// 标题宽度
|
||||||
|
titleWidth: 150,
|
||||||
|
// 标题对齐方式
|
||||||
|
titleAlign: 'right',
|
||||||
|
|
||||||
|
// 表单校验规则
|
||||||
|
rules: {
|
||||||
|
|
||||||
|
start_time: [
|
||||||
|
{ required: true, message: '请输入预计开始日期' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
// 表单项
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
field: 'production_number', title: '单据编号', span: 6, itemRender: {
|
||||||
|
name: '$input',
|
||||||
|
props: { radonly: true, disabled: true, placeholder: '自动编号' }
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ field: 'start_time', dataRule: { type: "timestamp" }, title: '预计开始日期', span: 6, itemRender: { name: '$input', props: { type: 'date' } } },
|
||||||
|
|
||||||
|
|
||||||
|
]
|
||||||
|
},
|
||||||
|
// 新增模式表单项
|
||||||
|
addModeItems: [
|
||||||
|
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
pageData.formOptions.items.forEach(item => {
|
||||||
|
|
||||||
|
pageData.formOptions.data[item.field] = '';
|
||||||
|
})
|
||||||
|
|
||||||
|
// 合并表单数据及配置
|
||||||
|
pageData.formOptions = Object.assign({}, this.$mk.config.defaults.formOptions, pageData.formOptions);
|
||||||
|
|
||||||
|
this.options = pageData;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
heightInit() {
|
||||||
|
|
||||||
|
this.$nextTick(() => {
|
||||||
|
let h = this.$mk.getWindowSize().height - this.$mk.getOffsetTop(this.$refs.xTable.$el) - 180;
|
||||||
|
|
||||||
|
this.table1Height = h;
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
getDefaultData() {
|
||||||
|
let data = {};
|
||||||
|
this.options.formOptions.items.forEach(item => {
|
||||||
|
data[item.field] = item.defaultValue || "";
|
||||||
|
});
|
||||||
|
return data;
|
||||||
|
},
|
||||||
|
|
||||||
|
setPageReadonly(readonly) {
|
||||||
|
this.options.formOptions.items.forEach(item => {
|
||||||
|
if (item.itemRender && item.itemRender.name == "$select") {
|
||||||
|
item.itemRender.props.disabled = readonly;
|
||||||
|
}
|
||||||
|
if (item.itemRender && item.itemRender.props) {
|
||||||
|
item.itemRender.props.readonly = readonly;
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
},
|
||||||
|
pageInit() {
|
||||||
|
|
||||||
|
this.pageStatus = '';
|
||||||
|
// 获取路由的id参数
|
||||||
|
let dataId = this.getDataId();
|
||||||
|
// 如果有id参数,说明是编辑模式
|
||||||
|
if (dataId) {
|
||||||
|
this.$mk.post({
|
||||||
|
url: this.options.actions.get,
|
||||||
|
loading: "加载中...",
|
||||||
|
data: {
|
||||||
|
id: this.getDataId_BigInt()
|
||||||
|
},
|
||||||
|
useBigInt: true
|
||||||
|
}).then(a => {
|
||||||
|
|
||||||
|
let detailDataFieldName = this.options.detailDataFieldName;
|
||||||
|
|
||||||
|
if (a.data[detailDataFieldName].create_time) {
|
||||||
|
a.data[detailDataFieldName].create_time = new Date(a.data[detailDataFieldName].create_time * 1000);
|
||||||
|
}
|
||||||
|
if (a.data[detailDataFieldName].update_time) {
|
||||||
|
a.data[detailDataFieldName].update_time = new Date(a.data[detailDataFieldName].update_time * 1000);
|
||||||
|
}
|
||||||
|
if (a.data[detailDataFieldName].start_time) {
|
||||||
|
a.data[detailDataFieldName].start_time = new Date(a.data[detailDataFieldName].start_time * 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
this.options.formOptions.data = a.data[detailDataFieldName];
|
||||||
|
|
||||||
|
if (a.data[detailDataFieldName].audit_status == 1) {
|
||||||
|
this.pageStatus = 'approved';
|
||||||
|
}
|
||||||
|
|
||||||
|
this.detailsData = a.dta[detailDataFieldName].production_order_materials || [];
|
||||||
|
|
||||||
|
this.detailsDataInit();
|
||||||
|
this.$forceUpdate()
|
||||||
|
}).catch((a) => {
|
||||||
|
this.detailsDataInit();
|
||||||
|
this.$mk.error(a.data.msg);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.options.isEdit = true;
|
||||||
|
|
||||||
|
this.$forceUpdate()
|
||||||
|
} else {
|
||||||
|
|
||||||
|
this.options.formOptions.data = this.getDefaultData();
|
||||||
|
this.detailsData = [];
|
||||||
|
this.pageStatus = '';
|
||||||
|
this.setPageReadonly(this.pageStatus == 'approved');
|
||||||
|
|
||||||
|
this.detailsDataInit();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
detailsDataInit() {
|
||||||
|
for (let i = this.detailsData.length; i < 100; i++) {
|
||||||
|
this.detailsData.push({});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取路由的id参数
|
||||||
|
getDataId() {
|
||||||
|
return this.dataId;
|
||||||
|
},
|
||||||
|
getDataId_BigInt() {
|
||||||
|
let dataId = this.getDataId();
|
||||||
|
return this.$mk.toBigInt(dataId);
|
||||||
|
},
|
||||||
|
|
||||||
|
// 返回
|
||||||
|
back() {
|
||||||
|
this.isEdit = this.options.isEdit;
|
||||||
|
// 如果是新增模式,关闭当前页面
|
||||||
|
if (!this.isEdit) {
|
||||||
|
this.$closePage({
|
||||||
|
closeRoute: this.options.addPageUrl
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$closePage({
|
||||||
|
closeRoute: this.options.editPageUrl
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 打开列表页面
|
||||||
|
this.$openPage(this.options.listPageUrl)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 保存
|
||||||
|
ok() {
|
||||||
|
|
||||||
|
let save = () => {
|
||||||
|
|
||||||
|
|
||||||
|
// 如果是新增模式,提交新增接口 如果是编辑模式,提交编辑接口
|
||||||
|
let action = !this.dataId ? this.options.actions.create : this.options.actions.update;
|
||||||
|
|
||||||
|
|
||||||
|
// 如果是新增模式,提交的数据中加入id 如果是编辑模式,提交的数据中不加入id
|
||||||
|
let postdata = Object.assign({}, this.options.formOptions.data);
|
||||||
|
// 如果是编辑模式
|
||||||
|
if (this.isEdit) {
|
||||||
|
// postdata = { MesUnit: postdata }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.dataId) {
|
||||||
|
postdata.id = this.getDataId_BigInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
postdata.production_order_materials = JSON.parse(JSON.stringify(this.detailsData));
|
||||||
|
postdata.production_order_materials = postdata.production_order_materials.filter(item => item.materials_id);
|
||||||
|
|
||||||
|
postdata.production_order_materials.forEach(item => {
|
||||||
|
|
||||||
|
if (this.dataId) {
|
||||||
|
item.production_order_id = this.getDataId_BigInt();
|
||||||
|
}
|
||||||
|
delete item._X_ROW_KEY;
|
||||||
|
|
||||||
|
item.materials_id = this.$mk.toBigInt(item.materials_id);
|
||||||
|
item.production_num = parseInt(item.production_num);
|
||||||
|
item.batch_num = parseInt(item.batch_num);
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
if (!postdata.production_order_materials || !postdata.production_order_materials.length) {
|
||||||
|
this.$mk.error(`数据行为空`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 格式化提交的数据
|
||||||
|
this.$mk.formatFormData({ data: postdata, rules: this.options.formOptions.items });
|
||||||
|
|
||||||
|
console.log(postdata)
|
||||||
|
|
||||||
|
// 提交数据
|
||||||
|
this.$mk.post({
|
||||||
|
url: action,
|
||||||
|
loading: "保存中...",
|
||||||
|
data: postdata,
|
||||||
|
useBigInt: true,
|
||||||
|
}).then((a) => { // 成功回调
|
||||||
|
console.log(a)
|
||||||
|
if (a.code == 200) {
|
||||||
|
this.$mk.success(a.msg || "保存成功");
|
||||||
|
if (!this.dataId) {
|
||||||
|
this.dataId = a.data.id;
|
||||||
|
|
||||||
|
this.pageInit();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.$mk.error(a.msg || "保存失败"); // 显示错误信息
|
||||||
|
}
|
||||||
|
|
||||||
|
}).catch((a) => { // 失败回调
|
||||||
|
console.log(a)
|
||||||
|
this.$mk.error(a.msg); // 显示错误信息
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 验证表单
|
||||||
|
this.$mk.validateForm({ form: this.$refs.xForm }).then(() => { // 验证表单
|
||||||
|
save(); // 提交保存
|
||||||
|
}).catch(count => { // 验证失败
|
||||||
|
this.$mk.error(`存在${count}项错误,请检查`);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
// 取消 返回
|
||||||
|
cancel() {
|
||||||
|
this.back();
|
||||||
|
},
|
||||||
|
|
||||||
|
pageExport() {
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
pagePrint() {
|
||||||
|
|
||||||
|
},
|
||||||
|
pageSearch() {
|
||||||
|
let { width, height } = this.$mk.getWindowSize();
|
||||||
|
this.$mk.dialog.open({
|
||||||
|
page: () => import("./List"),
|
||||||
|
title: "选择单据",
|
||||||
|
showFooter: true,
|
||||||
|
width: width * 0.9,
|
||||||
|
height: height * 0.9,
|
||||||
|
callback: ({ data }) => {
|
||||||
|
|
||||||
|
if (data && data[0]) {
|
||||||
|
this.dataId = data[0].id;
|
||||||
|
this.pageInit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
pageNext() {
|
||||||
|
this.dataId = this.nextId;
|
||||||
|
this.pageInit();
|
||||||
|
},
|
||||||
|
pagePrev() {
|
||||||
|
this.dataId = this.prevId;
|
||||||
|
this.pageInit();
|
||||||
|
},
|
||||||
|
pageApproved() {
|
||||||
|
let dataId = this.getDataId();
|
||||||
|
if (!dataId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
let sendApproved = () => {
|
||||||
|
this.$mk.post({
|
||||||
|
url: `${BASE_URL.BASE_URL}/MesProductionOrder/v1/mes/production/order/approve`,
|
||||||
|
loading: '审批中...',
|
||||||
|
data: {
|
||||||
|
id: this.getDataId_BigInt(),
|
||||||
|
audit_remark: ''
|
||||||
|
},
|
||||||
|
useBigInt: true
|
||||||
|
}).then(a => {
|
||||||
|
if (a.code == "200") {
|
||||||
|
this.$mk.success("审批成功");
|
||||||
|
this.pageInit();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.$mk.error(a.msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
sendApproved("");
|
||||||
|
|
||||||
|
},
|
||||||
|
pageUnapproved() {
|
||||||
|
let dataId = this.getDataId();
|
||||||
|
if (!dataId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.$mk.post({
|
||||||
|
url: `${BASE_URL.BASE_URL}//MesProductionOrder/v1/mes/production/order/cancelApprove`,
|
||||||
|
loading: '弃审中...',
|
||||||
|
data: {
|
||||||
|
id: this.getDataId_BigInt(),
|
||||||
|
audit_remark: ''
|
||||||
|
},
|
||||||
|
useBigInt: true
|
||||||
|
}).then(a => {
|
||||||
|
if (a.code == "200") {
|
||||||
|
this.$mk.success("弃审成功");
|
||||||
|
this.pageInit();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.$mk.error(a.msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
pageVoucherAdd() {
|
||||||
|
this.dataId = null;
|
||||||
|
this.pageInit();
|
||||||
|
},
|
||||||
|
handleMenuClick(e) {
|
||||||
|
let { width, height } = this.$mk.getWindowSize();
|
||||||
|
if (e.key == 'TP_outSourceOrder') {
|
||||||
|
this.$mk.dialog.open({
|
||||||
|
page: () => import("./List"),
|
||||||
|
title: "选择订单",
|
||||||
|
showFooter: true,
|
||||||
|
width: width * 0.9,
|
||||||
|
height: height * 0.9,
|
||||||
|
callback: ({ data }) => {
|
||||||
|
if (data.list && data.details && data.details.length) {
|
||||||
|
this.formOptions.data = this.getDefaultData();
|
||||||
|
this.formOptions.data.AAPartner = data.list[0].AAPartner;
|
||||||
|
this.formOptions.data.WorkingProcedure = data.list[0].WorkingProcedure;
|
||||||
|
|
||||||
|
|
||||||
|
var rows = [];
|
||||||
|
data.details.forEach(item => {
|
||||||
|
var row = {
|
||||||
|
AAProduct: item.AAInventory,
|
||||||
|
AAProductID: item.AAInventoryID
|
||||||
|
};
|
||||||
|
row.ProductCode = item.AAInventoryCode;
|
||||||
|
row.specification = item.specification;
|
||||||
|
row.UnitName = item.ProductionUnitTitle;
|
||||||
|
if (this.firstQuantityFieldName) {
|
||||||
|
row[this.firstQuantityFieldName] = (item.Quantity || 0) - (item.QuantityReceived || 0);
|
||||||
|
}
|
||||||
|
row.SourceTableName = "TP_outSourceOrder";
|
||||||
|
row.SourceTableID = item.OutSourceOrderID;
|
||||||
|
rows.push(row);
|
||||||
|
});
|
||||||
|
for (let i = rows.length; i < 10; i++) {
|
||||||
|
rows.push({});
|
||||||
|
}
|
||||||
|
console.log(rows)
|
||||||
|
this.detailsData = rows;
|
||||||
|
|
||||||
|
this.updateCurrentQuantity();
|
||||||
|
} else {
|
||||||
|
this.$mk.error("未选择任何数据");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
pageVoucherDelete() {
|
||||||
|
let dataId = this.getDataId();
|
||||||
|
if (!dataId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.$mk.confirm('您确定要删除吗?').then(type => {
|
||||||
|
if (type == 'confirm') {
|
||||||
|
this.$mk.post({
|
||||||
|
url: `${BASE_URL.BASE_URL}/MesProductionOrder/v1/mes/production/order/detele`,
|
||||||
|
loading: "删除中...",
|
||||||
|
data: {
|
||||||
|
id: this.getDataId_BigInt()
|
||||||
|
},
|
||||||
|
useBigInt: true
|
||||||
|
}).then(a => {
|
||||||
|
if (a.code == "200") {
|
||||||
|
this.$mk.success("删除成功");
|
||||||
|
this.dataId = null;
|
||||||
|
this.pageInit();
|
||||||
|
} else {
|
||||||
|
this.$mk.error(a.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
pageAdd(row) {
|
||||||
|
const $table = this.$refs.xTable
|
||||||
|
const record = {
|
||||||
|
}
|
||||||
|
if (row) {
|
||||||
|
|
||||||
|
this.detailsData.splice($table.getRowSeq(row), 0, record);
|
||||||
|
} else {
|
||||||
|
this.detailsData.push(record)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
pageDelete(row) {
|
||||||
|
const $table = this.$refs.xTable;
|
||||||
|
if (row.id) {
|
||||||
|
this.deletedDetailsData.push(this.$mk.toBigInt(row.id))
|
||||||
|
}
|
||||||
|
this.detailsData.splice($table.getRowSeq(row) - 1, 1);
|
||||||
|
},
|
||||||
|
beforeEditMethod({ column, row }) {
|
||||||
|
|
||||||
|
if (row.SourceTableID && column.field != "Quantity") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
afterEditEvent({ column, row }) {
|
||||||
|
if (column.field == "Quantity" || column.field == "Price") {
|
||||||
|
row.Amount = parseInt(row.Quantity || 0) * parseFloat(row.Price || 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (column.field == "specification") {
|
||||||
|
row.specification = this.specification;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
beforeEditEvent({ column, row }) {
|
||||||
|
if (row.SourceTableID && column.field != "Quantity") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (column.field == "specification") {
|
||||||
|
this.specification = row.specification;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onPulldownSelected({ row, name, params }) {
|
||||||
|
if (name == 'ag_inventory') {
|
||||||
|
this.updateToGrid(row, this.detailsData[params.$rowIndex]);
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
this.$refs.xTable.clearEdit();
|
||||||
|
}, 50);
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
onPopupSelected({ rows, name, params }) {
|
||||||
|
console.log(rows, name, params);
|
||||||
|
if (name == 'ag_inventory') {
|
||||||
|
|
||||||
|
for (let i = params.$rowIndex, ri = 0; i < params.$rowIndex + rows.length; i++, ri++) {
|
||||||
|
if (i == this.detailsData.length) {
|
||||||
|
let newrow = {
|
||||||
|
};
|
||||||
|
this.detailsData.push(newrow);
|
||||||
|
}
|
||||||
|
let inv = rows[ri];
|
||||||
|
|
||||||
|
this.updateToGrid(inv, this.detailsData[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
this.$refs.xTable.clearEdit();
|
||||||
|
}, 50);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
// 监听属性
|
||||||
|
watch: {
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.page-body {
|
||||||
|
background: white;
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.oplinks2 svg {
|
||||||
|
width: 18px;
|
||||||
|
height: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.oplinks2 i {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -31,21 +31,21 @@ routerMap[FunName + 'List']= {
|
||||||
icon: 'idcard',
|
icon: 'idcard',
|
||||||
path: `/${FunName}/${FunName}List`,
|
path: `/${FunName}/${FunName}List`,
|
||||||
meta:{
|
meta:{
|
||||||
|
invisible: true,
|
||||||
page:{ cacheAble:false}
|
page:{ cacheAble:false}
|
||||||
},
|
},
|
||||||
component: () => import(`@/pages/Middle/Mes/MesProductionOrder/MesProductionOrder/List`),
|
component: () => import(`@/pages/Middle/Mes/MesProductionOrder/MesProductionOrder/List`),
|
||||||
authority: {
|
authority: {
|
||||||
permission: [],
|
permission: [],
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
routerMap[FunName + 'Create']= {
|
routerMap[FunName + 'Create']= {
|
||||||
name: FunTitle,
|
name: '布产单',
|
||||||
icon: 'idcard',
|
icon: 'idcard',
|
||||||
path: `/${FunName}/${FunName}Add`,
|
path: `/${FunName}/${FunName}Voucher`,
|
||||||
component: () => import(`@/pages/Middle/Mes/MesProductionOrder/MesProductionOrder/Edit`),
|
component: () => import(`@/pages/Middle/Mes/MesProductionOrder/MesProductionOrder/voucher`),
|
||||||
meta: {
|
meta: {
|
||||||
invisible: true,
|
|
||||||
},
|
},
|
||||||
authority: {
|
authority: {
|
||||||
permission: [],
|
permission: [],
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue