From ffeda1528cb303dee5f73e0a16ab4a21b2fcbe26 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期二, 27 一月 2026 15:45:21 +0800
Subject: [PATCH] ERP生产管理-生成收料通知单-增加按钮重新同步 -对应前端
---
src/main/webapp/views/erpReceiving/erpReceiving.html | 354 +++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 249 insertions(+), 105 deletions(-)
diff --git a/src/main/webapp/views/erpReceiving/erpReceiving.html b/src/main/webapp/views/erpReceiving/erpReceiving.html
index 80f51a8..75b08f2 100644
--- a/src/main/webapp/views/erpReceiving/erpReceiving.html
+++ b/src/main/webapp/views/erpReceiving/erpReceiving.html
@@ -13,88 +13,99 @@
<body>
<div id="app">
<el-card>
- <el-form :inline="true">
- <el-form-item label="寮�宸ユ棩鏈�">
- <el-date-picker
- v-model="tableSearchParam.fplancommitdate"
- type="date"
- placeholder="閫夋嫨鏃ユ湡"
- :default-value="defaultTime"
+ <el-form :inline="true">
+ <el-form-item label="寮�宸ユ棩鏈�">
+ <el-date-picker v-model="tableSearchParam.fplancommitdate" type="date" placeholder="閫夋嫨鏃ユ湡"
+ :default-value="defaultTime" />
+ </el-form-item>
+ <el-form-item label="鐢熶骇鍗曞彿">
+ <el-input v-model="tableSearchParam.soCode" placeholder="璇疯緭鍏ョ敓浜у崟鍙�"></el-input>
+ </el-form-item>
+ <el-form-item label="杞﹂棿">
+ <el-select v-model="tableSearchParam.depName" placeholder="閫夋嫨杞﹂棿" style="width: 240px">
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="">
+ <el-button type="primary" @click="page" circle>
+ <el-icon>
+ <Search />
+ </el-icon>
+ </el-button>
+ </el-form-item>
+ </el-form>
+ <el-form :inline="true">
+ <el-form-item label="">
+ <el-button type="primary" @click="tongbu">鍚屾</el-button>
+ </el-form-item>
+ <el-form-item label="">
+ <el-button type="primary" @click="caneltongbu1">鎾ら攢鍚屾</el-button>
+ </el-form-item>
+ <el-form-item label="">
+ <el-button type="primary" @click="tongbureturn">閫�鏂�</el-button>
+ </el-form-item>
+ <el-form-item label="">
+ <el-button type="primary" @click="caneltongbureturn">鎾ら攢閫�鏂�</el-button>
+ </el-form-item>
+ <el-form-item label="">
+ <el-button type="primary" @click="retongbu">閲嶆柊鍚屾</el-button>
+ </el-form-item>
+ </el-form>
+ <el-table :data="tableData" border style="width: 100%" row-key="finterid"
+ @selection-change="handleSelectionChange" max-height="650">
+ <el-table-column type="selection">
+ </el-table-column>
+ <el-table-column type="index" width="50">
+ </el-table-column>
+ <el-table-column prop="soCode" label="鐢熶骇鍗曞彿">
+ </el-table-column>
+ <el-table-column prop="fbillno" label="浠诲姟鍗曞彿">
+ </el-table-column>
+ <el-table-column prop="invCode" label="鐗╂枡缂栫爜">
+ </el-table-column>
+ <el-table-column prop="invName" label="鐗╂枡鍚嶇О" width="300" :show-overflow-tooltip="true">
+ </el-table-column>
+ <el-table-column prop="invStd" label="瑙勬牸" width="200" :show-overflow-tooltip="true">
+ </el-table-column>
+ <el-table-column prop="depName" label="杞﹂棿">
+ </el-table-column>
+ <el-table-column prop="fauxqty" label="鏁伴噺" width="90">
+ </el-table-column>
+ <el-table-column prop="fplancommitdate" label="璁″垝寮�宸ユ椂闂�">
+ </el-table-column>
+ <el-table-column prop="fplanfinishdate" label="璁″垝瀹屽伐鏃堕棿">
+ </el-table-column>
+ <el-table-column prop="izSyncReceive" label="鏄惁鍚屾" width="90">
+ </el-table-column>
+ <el-table-column prop="izSyncReceiveReturn" label="鏄惁閫�鏂�" width="90">
+ </el-table-column>
+ </el-table>
+ <!-- <div style="margin-top: 10px">-->
+ <!-- <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"-->
+ <!-- :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize"-->
+ <!-- layout="total, sizes, prev, pager, next, jumper" :total="pageTotal">-->
+ <!-- </el-pagination>-->
+ <!-- </div>-->
- />
- </el-form-item>
- <el-form-item label="鐢熶骇鍗曞彿">
- <el-input v-model="tableSearchParam.soCode" placeholder="璇疯緭鍏ョ敓浜у崟鍙�"></el-input>
- </el-form-item>
- <el-form-item label="杞﹂棿">
- <el-select v-model="tableSearchParam.depName" placeholder="閫夋嫨杞﹂棿" style="width: 240px" >
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- />
- </el-select>
- </el-form-item>
- <el-form-item label="">
- <el-button type="primary" @click="page" circle >
- <el-icon><Search /></el-icon>
- </el-button>
- </el-form-item>
- </el-form>
- <el-form :inline="true">
- <el-form-item label="">
- <el-button type="primary" @click="tongbu" >鍚屾</el-button>
- </el-form-item>
- <el-form-item label="">
- <el-button type="primary" @click="caneltongbu1">鎾ら攢鍚屾</el-button>
- </el-form-item>
- <el-form-item label="">
- <el-button type="primary" @click="tongbureturn">閫�鏂�</el-button>
- </el-form-item>
- <el-form-item label="">
- <el-button type="primary" @click="caneltongbureturn">鎾ら攢閫�鏂�</el-button>
- </el-form-item>
- </el-form>
- <el-table :data="tableData" border style="width: 100%" row-key="finterid" @selection-change="handleSelectionChange" max-height="650">
- <el-table-column type="selection" >
- </el-table-column>
- <el-table-column type="index" width="50" >
- </el-table-column>
- <el-table-column prop="soCode" label="鐢熶骇鍗曞彿" >
- </el-table-column>
- <el-table-column prop="fbillno" label="浠诲姟鍗曞彿">
- </el-table-column>
- <el-table-column prop="invCode" label="鐗╂枡缂栫爜">
- </el-table-column>
- <el-table-column prop="invName" label="鐗╂枡鍚嶇О" width="300" show-overflow-tooltip="true">
- </el-table-column>
- <el-table-column prop="invStd" label="瑙勬牸" width="200" show-overflow-tooltip="true">
- </el-table-column>
- <el-table-column prop="depName" label="杞﹂棿">
- </el-table-column>
- <el-table-column prop="fauxqty" label="鏁伴噺" width="90">
- </el-table-column>
- <el-table-column prop="fplancommitdate" label="璁″垝寮�宸ユ椂闂�">
- </el-table-column>
- <el-table-column prop="fplanfinishdate" label="璁″垝瀹屽伐鏃堕棿">
- </el-table-column>
- <el-table-column prop="izSyncReceive" label="鏄惁鍚屾" width="90">
- </el-table-column>
- <el-table-column prop="izSyncReceiveReturn" label="鏄惁閫�鏂�" width="90">
- </el-table-column>
- </el-table>
-<!-- <div style="margin-top: 10px">-->
-<!-- <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"-->
-<!-- :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize"-->
-<!-- layout="total, sizes, prev, pager, next, jumper" :total="pageTotal">-->
-<!-- </el-pagination>-->
-<!-- </div>-->
-
</el-card>
+
+ <!-- 閲嶆柊鍚屾鏁伴噺杈撳叆寮圭獥 -->
+ <el-dialog v-model="retongbuDialogVisible" title="閲嶆柊鍚屾" width="400px">
+ <el-form :model="retongbuForm" label-width="100px">
+ <el-form-item label="鏁伴噺">
+ <el-input-number v-model="retongbuForm.fauxqty" :min="0" :precision="0" style="width: 100%"></el-input-number>
+ </el-form-item>
+ </el-form>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="retongbuDialogVisible = false">鍙栨秷</el-button>
+ <el-button type="primary" @click="submitRetongbu">鎻愪氦</el-button>
+ </span>
+ </template>
+ </el-dialog>
</div>
-
+
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script src="../../static/evn/vue.global.js"></script>
@@ -102,21 +113,21 @@
<script src="../../static/evn/icons-vue.js"></script>
<script type="module">
// 瀵煎叆涓枃璇█鍖�
- import zhCn from './zh-cn.js';
-
+ import zhCn from '../../static/js/erp/zh-cn.js';
+
const { createApp, ref, onMounted } = Vue;
-
+
const app = createApp({
setup() {
const currentPage = ref(1)
- const pageSizes = ref([15,20, 30, 50, 100, 200])
+ const pageSizes = ref([15, 20, 30, 50, 100, 200])
const pageSize = ref(15)
const pageTotal = ref(0)
const tableSearchParam = ref({
soCode: null,
fplancommitdate: new Date(),
- depName:null
+ depName: null
})
const tableData = ref([])
const defaultTime = ref(new Date())
@@ -135,8 +146,12 @@
]
const selectList = ref([])
-
- function page(){
+ const retongbuDialogVisible = ref(false)
+ const retongbuForm = ref({
+ fauxqty: 0
+ })
+
+ function page() {
let data = JSON.parse(JSON.stringify(tableSearchParam.value))
data.curr = currentPage.value
data.limit = pageSize.value
@@ -144,8 +159,13 @@
data.datetime = null
data.create_time = tableSearchParam.value.datetime[0] + " - " + tableSearchParam.value.datetime[1]
}
+ const loading = ElementPlus.ElLoading.service({
+ lock: true,
+ text: 'Loading',
+ background: 'rgba(0, 0, 0, 0.7)',
+ })
$.ajax({
- url: "http://127.0.0.1:9090/mo/materialreceive/getList",
+ url: "http://127.0.0.1:8133/mo/materialreceive/getList",
headers: {
'token': localStorage.getItem('token')
},
@@ -153,10 +173,14 @@
dataType: 'json',
contentType: 'application/json;charset=UTF-8',
method: 'GET',
- success: function(res) {
+ success: function (res) {
+ loading.close()
if (res.code == 200) {
tableData.value = res.data
-
+ ElementPlus.ElMessage({
+ message: "鎷夊彇鏁版嵁瀹屾垚",
+ type: 'success'
+ });
} else if (res.code === 403) {
top.location.href = baseUrl + "/";
} else {
@@ -169,14 +193,21 @@
});
}
- function tongbu(){
+ function tongbu() {
+ if (selectList.value.length === 0) {
+ ElementPlus.ElMessage({
+ message: "璇峰厛閫夋嫨",
+ type: 'error'
+ });
+ return;
+ }
const loading = ElementPlus.ElLoading.service({
lock: true,
text: 'Loading',
background: 'rgba(0, 0, 0, 0.7)',
})
$.ajax({
- url:"http://127.0.0.1:9090/mo/materialreceive/tongbu",
+ url: "http://127.0.0.1:8133/mo/materialreceive/tongbu",
headers: {
'token': localStorage.getItem('token')
},
@@ -184,13 +215,14 @@
dataType: 'json',
contentType: 'application/json;charset=UTF-8',
method: 'POST',
- success: function(res) {
+ success: function (res) {
loading.close();
if (res.code == 200) {
ElementPlus.ElMessage({
message: "鍚屾瀹屾垚",
type: 'success'
});
+ page()
} else if (res.code === 403) {
top.location.href = baseUrl + "/";
} else {
@@ -203,14 +235,30 @@
});
}
- function caneltongbu1(){
+ function caneltongbu1() {
+ if (selectList.value.length === 0) {
+ ElementPlus.ElMessage({
+ message: "璇峰厛閫夋嫨",
+ type: 'error'
+ });
+ return;
+ }
+ // 妫�鏌ユ槸鍚︽湁宸查��鏂欑殑璁板綍
+ const hasReturned = selectList.value.some(item => item.izSyncReceiveReturn === '鏄�');
+ if (hasReturned) {
+ ElementPlus.ElMessage({
+ message: "閫変腑鐨勬暟鎹腑瀛樺湪宸查��鏂欑殑璁板綍锛屼笉鍏佽鎾ら攢鍚屾",
+ type: 'error'
+ });
+ return;
+ }
const loading = ElementPlus.ElLoading.service({
lock: true,
text: 'Loading',
background: 'rgba(0, 0, 0, 0.7)',
})
$.ajax({
- url: "http://127.0.0.1:9090/mo/materialreceive/caneltongbu1",
+ url: "http://127.0.0.1:8133/mo/materialreceive/caneltongbu1",
headers: {
'token': localStorage.getItem('token')
},
@@ -218,13 +266,14 @@
dataType: 'json',
contentType: 'application/json;charset=UTF-8',
method: 'POST',
- success: function(res) {
+ success: function (res) {
loading.close();
if (res.code == 200) {
ElementPlus.ElMessage({
message: "鎾ら攢鍚屾瀹屾垚",
type: 'success'
});
+ page()
} else if (res.code === 403) {
top.location.href = baseUrl + "/";
} else {
@@ -237,14 +286,30 @@
});
}
- function tongbureturn(){
+ function tongbureturn() {
+ if (selectList.value.length === 0) {
+ ElementPlus.ElMessage({
+ message: "璇峰厛閫夋嫨",
+ type: 'error'
+ });
+ return;
+ }
+ // 妫�鏌ユ槸鍚︽湁宸查��鏂欑殑璁板綍
+ const hasReturned = selectList.value.some(item => item.izSyncReceive !== '鏄�');
+ if (hasReturned) {
+ ElementPlus.ElMessage({
+ message: "閫変腑鐨勬暟鎹腑瀛樺湪鏈悓姝ョ殑璁板綍锛屼笉鍏佽鐢熸垚閫�鏂�",
+ type: 'error'
+ });
+ return;
+ }
const loading = ElementPlus.ElLoading.service({
lock: true,
text: 'Loading',
background: 'rgba(0, 0, 0, 0.7)',
})
$.ajax({
- url: "http://127.0.0.1:9090/mo/materialreceive/tongbureturn",
+ url: "http://127.0.0.1:8133/mo/materialreceive/tongbureturn",
headers: {
'token': localStorage.getItem('token')
},
@@ -252,13 +317,14 @@
dataType: 'json',
contentType: 'application/json;charset=UTF-8',
method: 'POST',
- success: function(res) {
+ success: function (res) {
loading.close();
if (res.code == 200) {
ElementPlus.ElMessage({
message: "閫�鏂欏畬鎴�",
type: 'success'
});
+ page()
} else if (res.code === 403) {
top.location.href = baseUrl + "/";
} else {
@@ -271,14 +337,21 @@
});
}
- function caneltongbureturn(){
+ function caneltongbureturn() {
+ if (selectList.value.length === 0) {
+ ElementPlus.ElMessage({
+ message: "璇峰厛閫夋嫨",
+ type: 'error'
+ });
+ return;
+ }
const loading = ElementPlus.ElLoading.service({
lock: true,
text: 'Loading',
background: 'rgba(0, 0, 0, 0.7)',
})
$.ajax({
- url: "http://127.0.0.1:9090/mo/materialreceive/caneltongbureturn",
+ url: "http://127.0.0.1:8133/mo/materialreceive/caneltongbureturn",
headers: {
'token': localStorage.getItem('token')
},
@@ -286,13 +359,14 @@
dataType: 'json',
contentType: 'application/json;charset=UTF-8',
method: 'POST',
- success: function(res) {
+ success: function (res) {
loading.close();
if (res.code == 200) {
ElementPlus.ElMessage({
message: "鎾ら攢閫�鏂欏畬鎴�",
type: 'success'
});
+ page()
} else if (res.code === 403) {
top.location.href = baseUrl + "/";
} else {
@@ -304,18 +378,84 @@
}
});
}
-
+
+ function retongbu() {
+ if (selectList.value.length === 0) {
+ ElementPlus.ElMessage({
+ message: "璇峰厛閫夋嫨",
+ type: 'error'
+ });
+ return;
+ }
+ // 榛樿鏁伴噺涓虹涓�涓�変腑椤圭殑褰撳墠鏁伴噺
+ if (selectList.value.length > 0 && selectList.value[0].fauxqty) {
+ retongbuForm.value.fauxqty = selectList.value[0].fauxqty;
+ } else {
+ retongbuForm.value.fauxqty = 0;
+ }
+ retongbuDialogVisible.value = true;
+ }
+
+ function submitRetongbu() {
+ if (!retongbuForm.value.fauxqty || retongbuForm.value.fauxqty <= 0) {
+ ElementPlus.ElMessage({
+ message: "璇疯緭鍏ユ湁鏁堢殑鏁伴噺",
+ type: 'error'
+ });
+ return;
+ }
+ retongbuDialogVisible.value = false;
+ const loading = ElementPlus.ElLoading.service({
+ lock: true,
+ text: 'Loading',
+ background: 'rgba(0, 0, 0, 0.7)',
+ })
+ // 鏇存柊閫変腑椤圭殑鏁伴噺
+ const dataList = selectList.value.map(item => {
+ const newItem = JSON.parse(JSON.stringify(item));
+ newItem.fauxqty = retongbuForm.value.fauxqty;
+ return newItem;
+ });
+ $.ajax({
+ url: "http://127.0.0.1:8133/mo/materialreceive/retongbu",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: JSON.stringify(dataList),
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ loading.close();
+ if (res.code == 200) {
+ ElementPlus.ElMessage({
+ message: "閲嶆柊鍚屾瀹屾垚",
+ type: 'success'
+ });
+ page()
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ ElementPlus.ElMessage({
+ message: res.msg,
+ type: 'error'
+ });
+ }
+ }
+ });
+ }
+
function handleSizeChange(val) {
pageSize.value = val
currentPage.value = 1 // 閲嶇疆鍒扮涓�椤�
page()
}
-
+
function handleCurrentChange(val) {
currentPage.value = val
page()
}
- function handleSelectionChange(val) {
+ function handleSelectionChange(val) {
console.log(val)
selectList.value = val
}
@@ -333,19 +473,23 @@
tableSearchParam,
defaultTime,
options,
+ retongbuDialogVisible,
+ retongbuForm,
page,
tongbu,
caneltongbu1,
tongbureturn,
caneltongbureturn,
+ retongbu,
+ submitRetongbu,
handleSizeChange,
handleCurrentChange,
handleSelectionChange
-
+
}
}
});
-
+
app.use(ElementPlus, {
locale: zhCn.default || zhCn
});
--
Gitblit v1.9.1