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 | 325 +++++++++++++++++++++++++++++++++++------------------
1 files changed, 214 insertions(+), 111 deletions(-)
diff --git a/src/main/webapp/views/erpReceiving/erpReceiving.html b/src/main/webapp/views/erpReceiving/erpReceiving.html
index dd479be..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>
@@ -103,20 +114,20 @@
<script type="module">
// 瀵煎叆涓枃璇█鍖�
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
@@ -150,7 +165,7 @@
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')
},
@@ -158,7 +173,7 @@
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
@@ -178,13 +193,13 @@
});
}
- function tongbu(){
- if (selectList.value.length === 0){
+ function tongbu() {
+ if (selectList.value.length === 0) {
ElementPlus.ElMessage({
message: "璇峰厛閫夋嫨",
type: 'error'
});
- return ;
+ return;
}
const loading = ElementPlus.ElLoading.service({
lock: true,
@@ -192,7 +207,7 @@
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')
},
@@ -200,7 +215,7 @@
dataType: 'json',
contentType: 'application/json;charset=UTF-8',
method: 'POST',
- success: function(res) {
+ success: function (res) {
loading.close();
if (res.code == 200) {
ElementPlus.ElMessage({
@@ -220,13 +235,22 @@
});
}
- function caneltongbu1(){
- if (selectList.value.length === 0){
+ function caneltongbu1() {
+ if (selectList.value.length === 0) {
ElementPlus.ElMessage({
message: "璇峰厛閫夋嫨",
type: 'error'
});
- return ;
+ return;
+ }
+ // 妫�鏌ユ槸鍚︽湁宸查��鏂欑殑璁板綍
+ const hasReturned = selectList.value.some(item => item.izSyncReceiveReturn === '鏄�');
+ if (hasReturned) {
+ ElementPlus.ElMessage({
+ message: "閫変腑鐨勬暟鎹腑瀛樺湪宸查��鏂欑殑璁板綍锛屼笉鍏佽鎾ら攢鍚屾",
+ type: 'error'
+ });
+ return;
}
const loading = ElementPlus.ElLoading.service({
lock: true,
@@ -234,7 +258,7 @@
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')
},
@@ -242,7 +266,7 @@
dataType: 'json',
contentType: 'application/json;charset=UTF-8',
method: 'POST',
- success: function(res) {
+ success: function (res) {
loading.close();
if (res.code == 200) {
ElementPlus.ElMessage({
@@ -262,13 +286,22 @@
});
}
- function tongbureturn(){
- if (selectList.value.length === 0){
+ function tongbureturn() {
+ if (selectList.value.length === 0) {
ElementPlus.ElMessage({
message: "璇峰厛閫夋嫨",
type: 'error'
});
- return ;
+ return;
+ }
+ // 妫�鏌ユ槸鍚︽湁宸查��鏂欑殑璁板綍
+ const hasReturned = selectList.value.some(item => item.izSyncReceive !== '鏄�');
+ if (hasReturned) {
+ ElementPlus.ElMessage({
+ message: "閫変腑鐨勬暟鎹腑瀛樺湪鏈悓姝ョ殑璁板綍锛屼笉鍏佽鐢熸垚閫�鏂�",
+ type: 'error'
+ });
+ return;
}
const loading = ElementPlus.ElLoading.service({
lock: true,
@@ -276,7 +309,7 @@
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')
},
@@ -284,7 +317,7 @@
dataType: 'json',
contentType: 'application/json;charset=UTF-8',
method: 'POST',
- success: function(res) {
+ success: function (res) {
loading.close();
if (res.code == 200) {
ElementPlus.ElMessage({
@@ -304,13 +337,13 @@
});
}
- function caneltongbureturn(){
- if (selectList.value.length === 0){
+ function caneltongbureturn() {
+ if (selectList.value.length === 0) {
ElementPlus.ElMessage({
message: "璇峰厛閫夋嫨",
type: 'error'
});
- return ;
+ return;
}
const loading = ElementPlus.ElLoading.service({
lock: true,
@@ -318,7 +351,7 @@
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')
},
@@ -326,7 +359,7 @@
dataType: 'json',
contentType: 'application/json;charset=UTF-8',
method: 'POST',
- success: function(res) {
+ success: function (res) {
loading.close();
if (res.code == 200) {
ElementPlus.ElMessage({
@@ -345,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
}
@@ -374,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