From 6705efe18a3d82c1baf4130e74872f2509af760f Mon Sep 17 00:00:00 2001
From: zhangback <zhangback@163.com>
Date: 星期一, 26 一月 2026 13:59:17 +0800
Subject: [PATCH] 修改为下单类型

---
 ui/admin-ui3/src/views/tms/tmsDispatchOrder/index.vue |   99 +++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 95 insertions(+), 4 deletions(-)

diff --git a/ui/admin-ui3/src/views/tms/tmsDispatchOrder/index.vue b/ui/admin-ui3/src/views/tms/tmsDispatchOrder/index.vue
index 72a52fa..9ea29ad 100644
--- a/ui/admin-ui3/src/views/tms/tmsDispatchOrder/index.vue
+++ b/ui/admin-ui3/src/views/tms/tmsDispatchOrder/index.vue
@@ -44,6 +44,11 @@
             v-hasPermi="['tms:tmsDispatchOrder:export']"
         >瀵煎嚭
         </el-button>
+        <el-button
+            type="info"
+            icon="Upload"
+            @click="handleImport"
+            v-hasPermi="['tms:tmsDispatchOrder:import']">瀵煎叆</el-button>
 <!--        <el-button-->
 <!--            type="success"-->
 <!--            icon="Promotion"-->
@@ -269,7 +274,7 @@
       </div>
       <template #footer>
         <div class="dialog-footer">
-          <el-button type="primary" :loading="pageF.isUploading" @click="submitForm2">
+          <el-button type="primary" v-if="optionType != 'view'" :loading="pageF.isUploading" @click="submitForm2">
             {{ pageF.isUploading ? '鎻愪氦涓�' : '纭� 瀹�' }}
           </el-button>
           <el-button @click="cancelBox2">鍙� 娑�</el-button>
@@ -493,6 +498,38 @@
         </div>
       </template>
     </el-dialog>
+
+    <!-- 鐢ㄦ埛瀵煎叆瀵硅瘽妗� -->
+    <el-dialog title="璋冨害鍗曞鍏�" v-model="upload.open" width="400px" append-to-body>
+      <el-upload
+          ref="uploadRef"
+          :limit="1"
+          accept=".xlsx, .xls"
+          :headers="upload.headers"
+          :action="upload.url + '?updateSupport=' + upload.updateSupport"
+          :disabled="upload.isUploading"
+          :on-progress="handleFileUploadProgress"
+          :on-success="handleFileSuccess"
+          :auto-upload="false"
+          drag
+      >
+        <el-icon class="el-icon--upload"><upload-filled /></el-icon>
+        <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
+        <template #tip>
+          <div class="el-upload__tip text-center">
+            <span>浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�</span>
+            <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">涓嬭浇妯℃澘</el-link>
+          </div>
+        </template>
+      </el-upload>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="submitFileForm">纭� 瀹�</el-button>
+          <el-button @click="upload.open = false">鍙� 娑�</el-button>
+        </div>
+      </template>
+    </el-dialog>
+
   </basicContainer>
 </template>
 
@@ -505,8 +542,19 @@
   getTmsDispatchOrder,
   listTmsDispatchOrder,
   updateTmsDispatchOrder,
-  confirmOrder, copyOrder, okOrder, initGenerate, generateTmsDispatchOrder, dropHook,
-  connectHang,customsOrder,loadingOrder,checkCloseOrder,closeOrder,printDispatchOrder
+  confirmOrder,
+  copyOrder,
+  okOrder,
+  initGenerate,
+  generateTmsDispatchOrder,
+  dropHook,
+  connectHang,
+  customsOrder,
+  loadingOrder,
+  checkCloseOrder,
+  closeOrder,
+  printDispatchOrder,
+  importTemplateTmsDispatchOrder
 } from "@/api/tms/tmsDispatchOrder";
 import useCurrentInstance from "@/utils/useCurrentInstance";
 import {computed, onMounted, reactive, ref, toRefs, watch, getCurrentInstance, nextTick} from "vue";
@@ -522,7 +570,7 @@
 import {getTmsContainer, listTmsContainer} from "@/api/tms/tmsContainer";
 import {getTmsShelf, listTmsShelf} from "@/api/tms/tmsShelf";
 import {addTmsConsignor, getTmsConsignor, listTmsConsignor} from "@/api/tms/tmsConsignor";
-import {ElMessage, ElMessageBox} from "element-plus";
+import {ElMessage, ElMessageBox, type ElUpload} from "element-plus";
 import {addTmsTrip, listTmsTrip} from "@/api/tms/tmsTrip";
 import {
   addTmsFinanceDetail,
@@ -541,6 +589,7 @@
 import {getDicts} from "@/api/system/dict/data";
 import {pushTmsQuoteFee} from "@/api/tms/tmsQuoteFee";
 import { $Print } from '@smallwei/avue'
+import {getToken} from "@/utils/auth";
 
 const {appContext} = getCurrentInstance();
 
@@ -3949,6 +3998,48 @@
 
 
 }
+const upload = reactive({
+  // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
+  open: false,
+  // 鏄惁绂佺敤涓婁紶
+  isUploading: false,
+  // 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
+  updateSupport: 0,
+  // 璁剧疆涓婁紶鐨勮姹傚ご閮�
+  headers: { Authorization: "Bearer " + getToken() },
+  // 涓婁紶鐨勫湴鍧�
+  url: import.meta.env.VITE_APP_BASE_API + "tms/tmsDispatchOrder/importData"
+});
+
+
+const uploadRef = ref();
+
+function handleImport() {
+  upload.open = true;
+}
+
+
+/** 涓嬭浇妯℃澘鎿嶄綔 */
+function importTemplate() {
+  importTemplateTmsDispatchOrder();
+
+}
+const handleFileUploadProgress = (event:any, file:any) => {
+  upload.isUploading = true;
+};
+/** 鏂囦欢涓婁紶鎴愬姛澶勭悊 */
+const handleFileSuccess = (response:any, file:any) => {
+  upload.open = false;
+  upload.isUploading = false;
+  uploadRef.value!.clearFiles();
+  proxy.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "瀵煎叆缁撴灉", { dangerouslyUseHTMLString: true });
+  onLoad(page.value);
+};
+/** 鎻愪氦涓婁紶鏂囦欢 */
+function submitFileForm() {
+  uploadRef.value!.submit();
+}
+
 
 </script>
 <style lang="scss" scoped>

--
Gitblit v1.8.0