From 9bb2e38751eda3271844d6b2b27231d0d98ebd6c Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 09 八月 2025 16:18:21 +0800
Subject: [PATCH] 8月8号问题修复

---
 zy-asrs-admin/src/components/print/orderPrint/template/template1.vue |    6 +
 zy-asrs-admin/src/components/order/order/orderIn.vue                 |   48 +++++++++++-----
 zy-asrs-admin/src/components/order/order/orderOut.vue                |   38 +++++++++++-
 zy-asrs-admin/src/views/loc/locDetl/index.vue                        |   38 ++++++++++--
 4 files changed, 100 insertions(+), 30 deletions(-)

diff --git a/zy-asrs-admin/src/components/order/order/orderIn.vue b/zy-asrs-admin/src/components/order/order/orderIn.vue
index c8fd6d6..d93b74e 100644
--- a/zy-asrs-admin/src/components/order/order/orderIn.vue
+++ b/zy-asrs-admin/src/components/order/order/orderIn.vue
@@ -1,5 +1,5 @@
 <script setup>
-import {getCurrentInstance, ref, computed, reactive, defineProps, nextTick} from 'vue';
+import { getCurrentInstance, ref, computed, reactive, defineProps, nextTick } from 'vue';
 import { useRouter } from "vue-router";
 import { get, post, postBlob, postForm } from '@/utils/request.js'
 import { message, Modal } from 'ant-design-vue';
@@ -14,10 +14,12 @@
   UploadOutlined,
   DownloadOutlined,
 } from "@ant-design/icons-vue";
+import { filters } from 'pixi.js';
 const context = getCurrentInstance()?.appContext.config.globalProperties;
 
 const router = useRouter();
-
+const orderBy = ref({});
+const order = ref("")
 const props = defineProps({
   ioModel: null
 })
@@ -60,6 +62,7 @@
     dataIndex: 'orderTime',
     width: 180,
     ellipsis: true,
+    sorter: true,
     ...getColumnSearchProps('orderTime'),
   },
   {
@@ -145,14 +148,26 @@
     state.selectedRowKeys = [];
   }, 1000);
 };
+
 const onSelectChange = selectedRowKeys => {
   // console.log('selectedRowKeys changed: ', selectedRowKeys);
   state.selectedRowKeys = selectedRowKeys;
 };
 
+const handleTableChange = (pagination, filters, sorter) => {
+  if (sorter != null) {
+    if (sorter?.order == "ascend") {
+      orderBy.__v_raw = { order: "asc", field: sorter.field }
+    } else if (sorter?.order == "descend") {
+      orderBy.__v_raw = { order: "desc", field: sorter.field }
+    }
+  }
+
+  getPage()
+}
+
 function getPage() {
   state.loading = true;
-
   let apiUrl = '/api/order/page';
   if (props.ioModel == 'in') {
     apiUrl = '/api/order/in/page';
@@ -161,6 +176,7 @@
   }
 
   post(apiUrl, {
+    orderBy: orderBy?.__v_raw,
     current: currentPage,
     pageSize: pageSize,
     condition: searchInput.value,
@@ -254,7 +270,7 @@
 };
 
 const onSearch = () => {
-      currentPage = 1;
+  currentPage = 1;
 
   getPage()
 }
@@ -343,13 +359,15 @@
       <div>
         <a-input v-model:value="searchParam.orderNo" :placeholder="formatMessage('page.order.orderNo.input', '璇疯緭鍏ヨ鍗曠紪鍙�')"
           style="width: 140px;margin-right: 10px;" />
-        <a-select v-model:value="searchParam.orderSettle" :placeholder="formatMessage('page.order.orderSettle.select', '璇烽�夋嫨鍗曟嵁鐘舵��')"
-          style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderSettleQueryList" optionFilterProp="label"
-          optionLabelProp="label">
+        <a-select v-model:value="searchParam.orderSettle"
+          :placeholder="formatMessage('page.order.orderSettle.select', '璇烽�夋嫨鍗曟嵁鐘舵��')"
+          style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderSettleQueryList"
+          optionFilterProp="label" optionLabelProp="label">
         </a-select>
-        <a-select v-model:value="searchParam.orderType" :placeholder="formatMessage('page.order.orderType.select', '璇烽�夋嫨鍗曟嵁绫诲瀷')"
-          style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderTypeQueryList" optionFilterProp="label"
-          optionLabelProp="label">
+        <a-select v-model:value="searchParam.orderType"
+          :placeholder="formatMessage('page.order.orderType.select', '璇烽�夋嫨鍗曟嵁绫诲瀷')"
+          style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderTypeQueryList"
+          optionFilterProp="label" optionLabelProp="label">
         </a-select>
 
         <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
@@ -386,20 +404,20 @@
     </div>
     <a-table :row-selection="{ selectedRowKeys: state.selectedRowKeys, onChange: onSelectChange }"
       :data-source="tableData.records" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id"
-      :pagination="{ total: tableData.total, onChange: onPageChange }"
+      @change="handleTableChange" :pagination="{ total: tableData.total, onChange: onPageChange }"
       :scroll="{ y: 768, scrollToFirstRowOnChange: true }" :columns="columns" @resizeColumn="handleResizeColumn"
       :loading="state.loading">
       <template #bodyCell="{ column, text, record }">
         <template v-if="column.dataIndex === 'oper'">
           <div style="display: flex;justify-content: space-evenly;">
             <a-button type="link" primary @click="showDetl(record)">{{ formatMessage('page.order.orderDetl', '璁㈠崟鏄庣粏')
-              }}</a-button>
+            }}</a-button>
             <a-button type="link" primary @click="handlePrint(record)">{{ formatMessage('page.order.orderDetl',
-                '鎵撳嵃璁㈠崟')
-              }}</a-button>
+              '鎵撳嵃璁㈠崟')
+            }}</a-button>
             <a-button type="link" primary @click="handleEdit(record)">{{ formatMessage('page.edit', '缂栬緫') }}</a-button>
             <a-button type="link" danger @click="handleDel([record])">{{ formatMessage('page.delete', '鍒犻櫎')
-              }}</a-button>
+            }}</a-button>
           </div>
         </template>
       </template>
diff --git a/zy-asrs-admin/src/components/order/order/orderOut.vue b/zy-asrs-admin/src/components/order/order/orderOut.vue
index 2551e97..da6dec3 100644
--- a/zy-asrs-admin/src/components/order/order/orderOut.vue
+++ b/zy-asrs-admin/src/components/order/order/orderOut.vue
@@ -215,6 +215,31 @@
     editChild.value.isSave = item == null;
 }
 
+// const handleDone = (item) => {
+//         Modal.confirm({
+//         title: formatMessage('page.delete', '瀹岀粨'),
+//         content: formatMessage('page.delete.confirm', '纭畾瀹屾垚璇ラ」鍚楋紵'),
+//         maskClosable: true,
+//         onOk: async () => {
+//             const hide = message.loading(formatMessage('common.loading', '璇锋眰涓�'));
+//             try {
+//                 post('/api/order/done/' + rows.map((row) => row.id).join(','), {}).then(resp => {
+//                     let result = resp.data;
+//                     if (result.code === 200) {
+//                         message.success(result.msg);
+//                     } else {
+//                         message.error(result.msg);
+//                     }
+//                     getPage()
+//                     hide()
+//                 })
+//             } catch (error) {
+//                 message.error(formatMessage('common.fail', '璇锋眰澶辫触'));
+//             }
+//         },
+//     });
+// }
+
 const handleDel = (rows) => {
     Modal.confirm({
         title: formatMessage('page.delete', '鍒犻櫎'),
@@ -270,6 +295,7 @@
         newItem.specs = item.mat$.specs
         newItem.batch = item.batch
         newItem.anfme = item.anfme
+        newItem.wareType$ = item.wareType$
         printData.push(newItem)
     })
     printChild.value.printData = printData;
@@ -438,7 +464,7 @@
                     <a-select v-model:value="channel" :options="channelList" mode="multiple"
                         style="width: 100px;"></a-select>
                     <a-button @click="handleGenerateWave()">{{ formatMessage('common.generateWave', '鐢熸垚娉㈡')
-                    }}</a-button>
+                        }}</a-button>
                 </div>
             </div>
 
@@ -481,15 +507,17 @@
                     <div style="display: flex;justify-content: space-evenly;">
                         <a-button type="link" primary @click="showDetl(record)">{{ formatMessage('page.order.orderDetl',
                             '璁㈠崟鏄庣粏')
-                            }}</a-button>
+                        }}</a-button>
                         <a-button type="link" primary @click="handlePrint(record)">{{
                             formatMessage('page.order.orderDetl',
                                 '鎵撳嵃璁㈠崟')
-                            }}</a-button>
+                        }}</a-button>
                         <a-button type="link" primary @click="handleEdit(record)">{{ formatMessage('page.edit', '缂栬緫')
-                        }}</a-button>
+                            }}</a-button>
+                        <!-- <a-button type="link" primary @click="handleDone(record)">{{ formatMessage('page.edit', '瀹岀粨')
+                            }}</a-button> -->
                         <a-button type="link" danger @click="handleDel([record])">{{ formatMessage('page.delete', '鍒犻櫎')
-                        }}</a-button>
+                            }}</a-button>
                     </div>
                 </template>
             </template>
diff --git a/zy-asrs-admin/src/components/print/orderPrint/template/template1.vue b/zy-asrs-admin/src/components/print/orderPrint/template/template1.vue
index b788655..720b004 100644
--- a/zy-asrs-admin/src/components/print/orderPrint/template/template1.vue
+++ b/zy-asrs-admin/src/components/print/orderPrint/template/template1.vue
@@ -62,18 +62,20 @@
                     <td align="center" colspan="1">搴忓彿</td>
                     <td align="center" colspan="2">鍟嗗搧缂栧彿</td>
                     <td align="center" colspan="3">鍟嗗搧鍚嶇О</td>
-                    <td align="center" colspan="2">鎵规</td>
+                    <td align="center" :colspan="inModel == 'in' ? '2' : '1'">鎵规</td>
                     <td align="center" colspan="2">瑙勬牸</td>
                     <td align="center" colspan="1">鏁伴噺 </td>
+                    <td align="center" colspan="1" v-if="inModel != 'in'">浠撳簱绫诲瀷 </td>
                 </tr>
                 <template v-for="(item, index) in list" :key="index">
                     <tr style="height: 40px">
                         <td align="center" colspan="1">{{ index + 1 }}</td>
                         <td align="center" colspan="2">{{ item.matnr }}</td>
                         <td align="center" colspan="3">{{ item.maktx }}</td>
-                        <td align="center" colspan="2">{{ item.batch }}</td>
+                        <td align="center" :colspan="inModel == 'in' ? '2' : '1'">{{ item.batch }}</td>
                         <td align="center" colspan="2">{{ item.specs }}</td>
                         <td align="center" colspan="1">{{ item.anfme }}</td>
+                        <td align="center" colspan="1" v-if="inModel != 'in'">{{ item.wareType$ }}</td>
                     </tr>
                 </template>
             </table>
diff --git a/zy-asrs-admin/src/views/loc/locDetl/index.vue b/zy-asrs-admin/src/views/loc/locDetl/index.vue
index 66a2c7c..2afcbdc 100644
--- a/zy-asrs-admin/src/views/loc/locDetl/index.vue
+++ b/zy-asrs-admin/src/views/loc/locDetl/index.vue
@@ -14,6 +14,7 @@
 let currentPage = 1;
 let pageSize = 10;
 const searchInput = ref("")
+const orderBy = ref({});
 const searchParam = ref({
   locNo: null,
   matnr: null,
@@ -52,6 +53,19 @@
   // console.log('selectedRowKeys changed: ', selectedRowKeys);
   state.selectedRowKeys = selectedRowKeys;
 };
+
+
+const handleTableChange = (pagination, filters, sorter) => {
+  if (sorter != null) {
+    if (sorter?.order == "ascend") {
+      orderBy.__v_raw = { order: "asc", field: "createTime" }
+    } else if (sorter?.order == "descend") {
+      orderBy.__v_raw = { order: "desc", field: "createTime" }
+    }
+  }
+
+  getPage()
+}
 
 state.columns = [
   // {
@@ -136,6 +150,7 @@
     dataIndex: 'dewell$',
     width: 140,
     ellipsis: true,
+    sorter: true,
     ...getColumnSearchProps('dewell$'),
   },
   {
@@ -236,6 +251,7 @@
 function getPage() {
   state.loading = true;
   post('/api/locDetl/page', {
+    orderBy: orderBy.__v_raw,
     current: currentPage,
     pageSize: pageSize,
     condition: searchInput.value,
@@ -245,7 +261,6 @@
     if (result.code == 200) {
       let data = result.data;
       tableData.value = data;
-
       state.loading = false;
     } else if (result.code === 401) {
       message.error(result.msg);
@@ -277,7 +292,6 @@
         post('/api/out/locs/stock', params).then(resp => {
           let result = resp.data;
           if (result.code === 200) {
-            console.log(result);
             message.success(result.msg);
           } else {
             message.error(result.msg);
@@ -333,7 +347,6 @@
 };
 
 const onSearch = () => {
-  // console.log('search');
   currentPage = 1;
   getPage()
 }
@@ -348,12 +361,15 @@
   getPage()
 }
 
+const total = computed(() => tableData.value?.records?.reduce((sum, item) => sum + item.anfme, 0))
+
 </script>
 
 <script>
 export default {
-  name: '搴撳瓨鏄庣粏'
+  name: '搴撳瓨鏄庣粏',
 }
+
 </script>
 
 <template>
@@ -372,9 +388,10 @@
           style="width: 140px;margin-right: 10px;" />
         <a-input v-model:value="searchParam.batch" :placeholder="formatMessage('page.locDetl.batch.input', '璇疯緭鍏ユ壒鍙�')"
           style="width: 140px;margin-right: 10px;" />
-        <a-select v-model:value="searchParam.orderType" :placeholder="formatMessage('page.locDetl.orderNo.input', '浠撳簱绫诲瀷')"
-          :options="[
-           { label: '鍏ㄩ儴', value: null },  { label: '绔嬪簱', value: 1 }, { label: '骞冲簱', value: 2 }]" style="width: 140px;margin-right: 10px;">
+        <a-select v-model:value="searchParam.orderType"
+          :placeholder="formatMessage('page.locDetl.orderNo.input', '浠撳簱绫诲瀷')" :options="[
+            { label: '鍏ㄩ儴', value: null }, { label: '绔嬪簱', value: 1 }, { label: '骞冲簱', value: 2 }]"
+          style="width: 140px;margin-right: 10px;">
         </a-select>
         <a-select v-model:value="searchParam.tagId" :placeholder="formatMessage('page.locDetl.orderNo.input', '璇烽�夋嫨鍝佺被')"
           :options="[
@@ -394,7 +411,7 @@
     </div>
     <a-table :row-selection="{ selectedRowKeys: state.selectedRowKeys, onChange: onSelectChange }"
       :data-source="tableData.records" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id"
-      :pagination="{ total: tableData.total, onChange: onPageChange }"
+      :pagination="{ total: tableData.total, onChange: onPageChange }" @change="handleTableChange"
       :scroll="{ y: 768, scrollToFirstRowOnChange: true }" :columns="state.columns" @resizeColumn="handleResizeColumn"
       :loading="state.loading">
       <template #bodyCell="{ column, text, record }">
@@ -406,6 +423,11 @@
           </div>
         </template>
       </template>
+      <template #footer>
+        <div>
+          <span>褰撳墠椤垫�婚噺锛歿{ total }}</span>
+        </div>
+      </template>
     </a-table>
   </div>
 </template>

--
Gitblit v1.9.1