zhangback
2026-01-26 6705efe18a3d82c1baf4130e74872f2509af760f
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>仅允许导入xls、xlsx格式文件。</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>