From e7dac9ecb16aa627f0603beec9930c75ee6aa3f7 Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期四, 08 一月 2026 22:22:24 +0800
Subject: [PATCH] 盘点
---
项目代码/WIDESEA_WMSClient/src/extension/inbound/takeStockOrderDetail.js | 251 +++++++++++++++++++++++++++++++++++++++----------
1 files changed, 197 insertions(+), 54 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/takeStockOrderDetail.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/takeStockOrderDetail.js"
index 24e1d94..1bfba85 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/takeStockOrderDetail.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/takeStockOrderDetail.js"
@@ -1,58 +1,201 @@
-
-//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+// 鑷畾涔夋墿灞曚笟鍔′唬鐮�
+import gridBody from "./extend/OrderStockTake.vue";
+// 寮曞叆鏉傛敹鏉傚彂骞宠处寮圭獥缁勪欢
+import gridHeader from "./extend/TakeStockSelect.vue";
+import { ElMessageBox, ElLoading, ElMessage } from "element-plus";
let extension = {
- components: {
- //鏌ヨ鐣岄潰鎵╁睍缁勪欢
- gridHeader: '',
- gridBody: '',
- gridFooter: '',
- //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
- modelHeader: '',
- modelBody: '',
- modelFooter: ''
- },
- tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
- buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
- methods: {
- //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
- onInit() {
- },
- onInited() {
- //妗嗘灦鍒濆鍖栭厤缃悗
- //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
- //this.detailOptions.columns.forEach(column=>{ });
- },
- searchBefore(param) {
- //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
- //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
- return true;
- },
- searchAfter(result) {
- //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
- return true;
- },
- addBefore(formData) {
- //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
- return true;
- },
- updateBefore(formData) {
- //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
- return true;
- },
- rowClick({ row, column, event }) {
- //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
- this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
- },
- modelOpenAfter(row) {
- //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
- //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
- //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
- //(3)this.editFormFields.瀛楁='xxx';
- //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
- //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+ components: {
+ // 鏌ヨ鐣岄潰鎵╁睍缁勪欢
+ gridHeader: gridHeader,
+ gridBody: gridBody, // 鍘熸湁鐩樼偣寮圭獥缁勪欢
+ gridFooter: '',
+ modelHeader: '',
+ modelBody: '',
+ modelFooter: ''
+ },
+ tableAction: '', // 鏃犻渶鎸囧畾琛ㄥ悕
+ buttons: { view: [], box: [], detail: [] }, // 鎵╁睍鎸夐挳
+ methods: {
+ onInit() {
+ // 鍘熸湁鐩樼偣鎸夐挳閫昏緫淇濈暀
+ let OrderStockTakeBtn = this.buttons.find(x => x.value === 'OrderStockTake');
+ if (OrderStockTakeBtn) {
+ OrderStockTakeBtn.onClick = function () {
+ let rows = this.$refs.table.getSelected();
+ if (rows.length === 0) return this.$error("璇烽�夋嫨涓�鏉$洏鐐瑰崟鎹暟鎹紒");
+ if (rows.length > 1) return this.$error("鍙兘閫夋嫨涓�鏉$洏鐐瑰崟鎹暟鎹紒");
+
+ const selectedReceiptNo = rows[0].orderNo;
+ if (!selectedReceiptNo) return this.$error("閫変腑鐨勫崟鎹己灏戞湁鏁堢殑鍗曟嵁鍙凤紒");
+ this.$refs.gridBody.open(selectedReceiptNo);
+ };
}
+
+ // 鐩戝惉鍘熸湁寮圭獥浜嬩欢锛堜繚鐣欙級
+ this.$nextTick(() => {
+ const stockTakeComp = this.$refs.gridBody;
+ if (stockTakeComp) {
+ stockTakeComp.$on('refresh', () => {
+ this.$refs.table.reload();
+ });
+ stockTakeComp.$on('box-returned', (boxNo) => {
+ this.$success(`鏂欑銆�${boxNo}銆戝洖搴撴垚鍔燂紝琛ㄦ牸灏嗗埛鏂帮紒`);
+ this.$refs.table.reload();
+ });
+ }
+
+ });
+
+ // ========== 鏂板鎿嶄綔鍒楋細浜哄伐骞宠处 + 鏉傛敹鏉傚彂骞宠处 ==========
+ this.columns.push({
+ field: 'operation',
+ title: '鎿嶄綔',
+ width: 200,
+ fixed: 'right',
+ align: 'center',
+ formatter: (row) => {
+ return `
+ <span style="cursor: pointer;color: #2d8cf0;margin-right: 10px;" class="manual-reconciliation">
+ <i class="el-icon-check"></i>浜哄伐骞宠处
+ </span>
+ <span style="cursor: pointer;color: #1989fa;" class="misc-reconciliation">
+ <i class="el-icon-edit"></i>鏉傛敹鏉傚彂骞宠处
+ </span>
+ `;
+ },
+ click: (row, column, event) => {
+ const target = event.target;
+ // 鍖哄垎鐐瑰嚮鐨勬槸浜哄伐骞宠处杩樻槸鏉傛敹鏉傚彂骞宠处
+ if (target.closest('.manual-reconciliation')) {
+ this.handleManualReconciliation(row); // 浜哄伐骞宠处閫昏緫
+ } else if (target.closest('.misc-reconciliation')) {
+ this.handleMiscReconciliation(row); // 鏉傛敹鏉傚彂骞宠处閫昏緫
+ }
+ }
+ });
+ },
+
+ // ========== 浜哄伐骞宠处鏍稿績閫昏緫 ==========
+ handleManualReconciliation(row) {
+ // 寮瑰嚭纭妗�
+ ElMessageBox.confirm(
+ '纭瑕佹墽琛屼汉宸ュ钩璐︽搷浣滃悧锛�',
+ '鎿嶄綔纭',
+ {
+ confirmButtonText: '纭',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }
+ ).then(async () => {
+ // 娣诲姞閬僵灞傞槻姝㈤噸澶嶇偣鍑�
+ const loading = ElLoading.service({
+ lock: true,
+ text: '澶勭悊涓紝璇风◢鍊�...',
+ background: 'rgba(0, 0, 0, 0.7)'
+ });
+
+ try {
+ // 璋冪敤浜哄伐骞宠处鎺ュ彛
+ const response = await this.http.get(`/api/TakeStockOrder/ManualReconciliation?id=${row.id}`);
+ if (response.status) {
+ ElMessage.success('浜哄伐骞宠处鎿嶄綔鎴愬姛锛�');
+ this.$refs.table.reload(); // 鍒锋柊琛ㄦ牸
+ } else {
+ ElMessage.error(`鎿嶄綔澶辫触锛�${response.message || '鏈煡閿欒'}`);
+ }
+ } catch (error) {
+ } finally {
+ // 鍏抽棴閬僵灞�
+ loading.close();
+ }
+ }).catch(() => {
+ ElMessage.info('宸插彇娑堜汉宸ュ钩璐︽搷浣�');
+ });
+ },
+
+ // ========== 鏉傛敹鏉傚彂骞宠处鏍稿績閫昏緫锛堜慨鏀瑰悗锛� ==========
+ handleMiscReconciliation(row) {
+ // 閫変腑褰撳墠琛�
+ const table = this.$refs.table.$refs.table;
+ if (table) {
+ table.clearSelection();
+ table.toggleRowSelection(row, true);
+ }
+
+ // 璋冪敤鎺ュ彛鑾峰彇鏉傛敹鏉傚彂骞宠处鏁版嵁
+ const fetchMiscData = async () => {
+ const loading = ElLoading.service({
+ lock: true,
+ text: '鍔犺浇鏁版嵁涓�...',
+ background: 'rgba(0, 0, 0, 0.7)'
+ });
+
+ try {
+ // 璋冪敤鎺ュ彛锛屼紶閫抮ow涓殑remark鍜宨d鍙傛暟
+ const response = await this.http.get(`/api/TakeStockOrder/SelectOrder?remark=${row.remark || ''}&id=${row.id}`);
+ loading.close();
+
+ if (response.status) {
+ if (!Array.isArray(response.data) || response.data.length === 0) {
+ ElMessage.warning("鏈煡璇㈠埌鐩稿叧鏁版嵁");
+ // 鎵撳紑绌烘暟鎹殑寮圭獥
+ this.$refs.gridHeader.open(row, []);
+ return;
+ }
+
+ // 鎻愬彇闇�瑕佸睍绀虹殑瀛楁
+ const displayData = response.data.map(item => ({
+ orderId: item.orderId || '',
+ materielCode: item.materielCode || '',
+ materielName: item.materielName || '',
+ batchNo: item.batchNo || '',
+ orderQuantity: item.orderQuantity || 0,
+ unit: item.unit || '',
+ supplyCode: item.supplyCode || '',
+ warehouseCode: item.warehouseCode || ''
+ }));
+
+ // 鎵撳紑寮圭獥骞朵紶閫掑鐞嗗悗鐨勬暟鎹�
+ this.$refs.gridHeader.open(row, displayData);
+ } else {
+ ElMessage.error(`鏌ヨ澶辫触锛�${response.message || '鏈煡閿欒'}`);
+ }
+ } catch (error) {
+ loading.close();
+ ElMessage.error(`缃戠粶寮傚父锛�${error.message || '鎺ュ彛璋冪敤澶辫触'}`);
+ }
+ };
+
+ // 鎵ц鏁版嵁鏌ヨ骞舵墦寮�寮圭獥
+ fetchMiscData();
+ },
+
+ onInited() {
+ // 妗嗘灦鍒濆鍖栧畬鎴愬悗鎵ц
+ },
+ searchBefore(param) {
+ // 鏌ヨ鍓嶆嫤鎴�
+ return true;
+ },
+ searchAfter(result) {
+ // 鏌ヨ鍚庢暟鎹鐞�
+ return true;
+ },
+ addBefore(formData) {
+ return true;
+ },
+ updateBefore(formData) {
+ return true;
+ },
+ rowClick({ row, column, event }) {
+ // 鍗曞嚮琛岄�変腑褰撳墠琛�
+ this.$refs.table.$refs.table.toggleRowSelection(row);
+ },
+ modelOpenAfter(row) {
+ // 鏂板缓/缂栬緫寮圭獥鎵撳紑鍚庡鐞�
}
- };
- export default extension;
-
\ No newline at end of file
+ }
+};
+
+export default extension;
\ No newline at end of file
--
Gitblit v1.9.3