From cc41746818af3b619167947ecb4401ccdfbec2d8 Mon Sep 17 00:00:00 2001
From: sen <sen@qq.com>
Date: 星期二, 31 三月 2026 10:40:47 +0800
Subject: [PATCH] 修改搜索
---
ui/admin-ui3/src/views/tms/tmsDispatchOrder/index.vue | 536 ++++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 455 insertions(+), 81 deletions(-)
diff --git a/ui/admin-ui3/src/views/tms/tmsDispatchOrder/index.vue b/ui/admin-ui3/src/views/tms/tmsDispatchOrder/index.vue
index a90207d..617f7c9 100644
--- a/ui/admin-ui3/src/views/tms/tmsDispatchOrder/index.vue
+++ b/ui/admin-ui3/src/views/tms/tmsDispatchOrder/index.vue
@@ -90,43 +90,97 @@
<template #menu="{ row, index, size }">
<el-tooltip content="鏌ョ湅" placement="top" :enterable="false">
- <el-link type="primary" icon="el-icon-view" :underline="false" class="link-btn"
- @click="$refs.crudRef.rowView(row, index)">
+ <el-link type="primary" icon="el-icon-view" underline="never" class="link-btn"
+ v-hasPermi="['tms:tmsDispatchOrder:query']" @click="$refs.crudRef.rowView(row, index)">
+
+ </el-link>
+ </el-tooltip>
+ <el-tooltip content="鍒犻櫎" placement="top" :enterable="false">
+ <el-link type="primary" icon="el-icon-delete" underline="never" class="link-btn"
+ v-hasPermi="['tms:tmsDispatchOrder:remove']" v-if="row.status == 0"
+ @click="$refs.crudRef.rowDel(row, index)">
+
</el-link>
</el-tooltip>
<el-tooltip content="缂栬緫" placement="top" :enterable="false">
- <el-link type="primary" icon="el-icon-edit" :underline="false" class="link-btn"
+ <el-link type="primary" icon="el-icon-edit" underline="never" class="link-btn"
+ v-hasPermi="['tms:tmsDispatchOrder:edit']" v-if="[0, 1].includes(row.status)"
@click="$refs.crudRef.rowEdit(row, index)">
+
</el-link>
</el-tooltip>
</template>
<template #menu-before="{ row }">
+
+
<el-tooltip content="杩愯緭璐у搧鐧昏" placement="top">
<el-link size="small" type="primary" @click="handleAddGoods(row)" class="link-btn"
- v-hasPermi="['tms:tmsGoodsDetail:add']" v-if="[0, 1, 2].includes(row.status)" :underline="false"
+ v-hasPermi="['tms:tmsGoodsDetail:add']" v-if="[0, 1, 2].includes(row.status)" underline="never"
icon="el-icon-document-add">
+
</el-link>
</el-tooltip>
-
<el-tooltip content="瀹為檯杩愯緭璁板綍" placement="top">
<el-link size="small" type="primary" @click="handleActual(row)" class="link-btn"
- v-hasPermi="['tms:tmsDispatchOrder:update']" v-if="[0, 1, 2].includes(row.status)" :underline="false"
+ v-hasPermi="['tms:tmsDispatchOrder:update']" v-if="[0, 1, 2].includes(row.status)" underline="never"
icon="el-icon-set-up">
+
+ </el-link>
+ </el-tooltip>
+ <el-tooltip content="纭畾" placement="top">
+ <el-link size="small" type="primary" v-if="row.status == 0" @click="handleConfirm(row)" class="link-btn"
+ v-hasPermi="['tms:tmsDispatchOrder:confirmOrder']" underline="never" icon="el-icon-pointer">
+
+ </el-link>
+ </el-tooltip>
+ <el-tooltip content="浣滃簾" placement="top">
+ <el-link size="small" type="primary" v-if="[0, 1, 2].includes(row.status)" @click="handleClose(row)"
+ class="link-btn" v-hasPermi="['tms:tmsDispatchOrder:closeOrder']" underline="never" icon="el-icon-close">
+
+ </el-link>
+ </el-tooltip>
+ <el-tooltip content="澶嶅埗" placement="top">
+ <el-link size="small" type="primary" @click="handleCopy(row)" class="link-btn" underline="never"
+ v-hasPermi="['tms:tmsDispatchOrder:copyOrder']" icon="el-icon-connection">
+
+ </el-link>
+ </el-tooltip>
+ <el-tooltip content="涓婁紶琛岀▼" placement="top">
+ <el-link size="small" type="primary" v-if="[1, 2].includes(row.status)" @click="handleUploadItinerary(row)"
+ v-hasPermi="['tms:tmsTrip:add']" class="link-btn" underline="never" icon="el-icon-upload">
+
+ </el-link>
+ </el-tooltip>
+ <el-tooltip content="鏌ョ湅琛岀▼" placement="top">
+ <el-link size="small" type="primary" v-if="![0, 1].includes(row.status)" @click="handleLogItinerary(row)"
+ v-hasPermi="['tms:tmsTrip:list']" class="link-btn" underline="never" icon="Finished">
+
+ </el-link>
+ </el-tooltip>
+ <el-tooltip content="瀹屾垚琛岀▼" placement="top">
+ <el-link size="small" type="primary" v-if="[2].includes(row.status)" @click="handleOk(row)" class="link-btn"
+ v-hasPermi="['tms:tmsDispatchOrder:okOrder']" underline="never" icon="el-icon-circle-check">
+
+ </el-link>
+ </el-tooltip>
+ <!--
+ <el-tooltip content="瀹屾垚琛岀▼" placement="top">
+ <el-link size="small" type="primary" v-if="[2].includes(row.status)" @click="handleOk(row)" class="link-btn"
+ v-hasPermi="['tms:tmsDispatchOrder:okOrder']" underline="never" icon="el-icon-circle-check">
+
+ </el-link>
+ </el-tooltip> -->
+
+ <el-tooltip content="鏃ュ織" placement="top">
+ <el-link size="small" type="primary" @click="handleFlow(row)" class="link-btn"
+ v-hasPermi="['cwgl:estimatedReceivable:flog']" underline="never" icon="el-icon-document">
+
</el-link>
</el-tooltip>
- <el-tooltip content="澶嶅埗" placement="top">
- <el-link size="small" type="primary" @click="handleCopy(row)" class="link-btn" :underline="false"
- v-hasPermi="['tms:tmsDispatchOrder:copyOrder']" icon="el-icon-connection">
- </el-link>
- </el-tooltip>
- <el-tooltip content="鏃ュ織" placement="top">
- <el-link size="small" type="primary" @click="handleLog(row)" class="link-btn" :underline="false"
- icon="el-icon-tickets">
- </el-link>
- </el-tooltip>
+
</template>
<!-- <template #menu="{row}">
@@ -160,7 +214,7 @@
min="0"></el-input-number>
</template>
</avue-crud>
- <h2 v-if="optionType == 'addFinance'">瀹炴姤瀹為攢璐圭敤1</h2>
+ <h2 v-if="optionType == 'addFinance'">瀹炴姤瀹為攢璐圭敤</h2>
<avue-form v-if="optionType == 'addItinerary' || optionType == 'addFinance'" v-model="boxForm" ref="boxFormRef"
:option="boxFormOption">
@@ -294,7 +348,7 @@
</avue-crud>
<div v-if="active === 'tab4'">
- <h2>瀹炴姤瀹為攢璐圭敤</h2>
+ <h2>瀹炴姤瀹為攢璐圭敤3</h2>
<!-- <avue-form v-model="boxForm" ref="boxFormRef" :option="boxFormOption">
</avue-form> -->
@@ -303,7 +357,6 @@
<el-input-number v-model="row.actualFeeAmount" :precision="2" :min="0" controls-position="right"
placeholder="杈撳叆閲戦" style="width: 100%" />
</template>
-
<template #currency="{ row }">
<el-radio-group v-model="row.currency">
<el-radio v-for="item in sys_currency" :key="item.value" :label="item.value">
@@ -312,8 +365,19 @@
</el-radio-group>
</template>
<template #voucherUrl="{ row }">
- <avue-upload v-model="row.voucherUrl" :action="'/common/upload2'" type="upload" accept="image/*"
- @upload-after="(res, done, loading, column) => handleUploadAfter(res, done, loading, column, row)"></avue-upload>
+ <!-- <avue-upload v-model="row.voucherUrl" :action="'/common/upload2'" type="upload" accept="image/*"
+ @upload-after="(res, done, loading, column) => handleUploadAfter(res, done, loading, column, row)"></avue-upload> -->
+
+ <!-- 鍑瘉鍥剧墖 -->
+ <el-upload class="upload-demo" ref="uploadRef" :limit="1" drag :action="urlApi + '/common/upload2'" multiple
+ :show-file-list="true" :on-success="(res) => handleUploadAfter(res, row)"
+ :on-exceed="(files) => handleExceed(files, row)">
+ <el-icon class="el-icon--upload"><upload-filled /></el-icon>
+ <div class="el-upload__text">
+ 鐐瑰嚮鎴栧皢鍥剧墖鎷栨嫿鍒版鍖哄煙涓婁紶
+ </div>
+
+ </el-upload>
</template>
<template #remark="{ row }">
<el-input v-model="row.remark" placeholder="濉啓澶囨敞" clearable />
@@ -449,7 +513,7 @@
<div class="dialog-footer">
<el-button @click="print = 0" v-if="print == 1">閲嶆柊濉啓</el-button>
<el-button type="primary" :loading="pageF.isUploading" @click="submitForm6">
- {{ pageF.isUploading ? '鎻愪氦涓�' : '纭� 瀹�2' }}
+ {{ pageF.isUploading ? '鎻愪氦涓�' : '纭� 瀹�' }}
</el-button>
<el-button @click="open6 = false">鍙� 娑�</el-button>
@@ -467,7 +531,7 @@
<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;"
+ <el-link type="primary" underline="never" style="font-size:12px;vertical-align: baseline;"
@click="importTemplate">涓嬭浇妯℃澘</el-link>
</div>
</template>
@@ -524,10 +588,16 @@
<avue-crud :data="importLogData" :option="importLogOption" :table-loading="importLogLoading"
@on-load="getImportLogList"></avue-crud>
</el-dialog>
+
+ <flowLog ref="flowLogIshow" :isShow="false" :flowParams="flowParams"></flowLog>
+
</basicContainer>
+
+
</template>
<script setup name="tmsDispatchOrder" lang="ts">
+import { listTmsDispatchOrderLog } from "@/api/tms/tmsDispatchOrderLog";
import {
TmsDispatchOrderI,
addTmsDispatchOrder,
@@ -536,6 +606,7 @@
getTmsDispatchOrder,
listTmsDispatchOrder,
updateTmsDispatchOrder,
+ tmsDispatchOrderRecord,
confirmOrder,
copyOrder,
okOrder,
@@ -550,10 +621,11 @@
printDispatchOrder,
importTemplateTmsDispatchOrder, ypdddjSumbit,
tmsTmsDispatchOrderImportLog,
- saveTmsFinanceDetail2
+ saveTmsFinanceDetail2,
+ getLastLicensePlate
} from "@/api/tms/tmsDispatchOrder";
import useCurrentInstance from "@/utils/useCurrentInstance";
-import { computed, onMounted, reactive, ref, toRefs, watch, getCurrentInstance, nextTick } from "vue";
+import { computed, onMounted, onBeforeUnmount, reactive, ref, toRefs, watch, getCurrentInstance, nextTick } from "vue";
import { PagesInterface, PageQueryInterface } from "@/utils/globalInterface";
import { usePagePlus } from "@/hooks/usePagePlus";
import { hasPermission } from "@/utils/permissionUtils";
@@ -586,6 +658,7 @@
import { pushTmsQuoteFee } from "@/api/tms/tmsQuoteFee";
import { $Print } from '@smallwei/avue'
import { getToken } from "@/utils/auth";
+import { useAvueTableShowHide } from "@/hooks/useAvueTableShowHide";
const { appContext } = getCurrentInstance();
@@ -611,11 +684,30 @@
return true;
}
};
+const getNextDayMidnight = () => {
+ const date = new Date();
+
+ // 1. 灏嗘棩鏈熸帹杩涘埌鏄庡ぉ
+ date.setDate(date.getDate() + 1);
+
+ // 2. 灏嗘椂鍒嗙姣鍏ㄩ儴娓呴浂
+ date.setHours(0, 0, 0, 0);
+
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, '0');
+ const day = String(date.getDate()).padStart(2, '0');
+ const hours = String(date.getHours()).padStart(2, '0');
+ const minutes = String(date.getMinutes()).padStart(2, '0');
+ const seconds = String(date.getSeconds()).padStart(2, '0');
+
+ // 杩斿洖鏍煎紡锛�2024-01-20 00:00:00
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+};
const data = reactive({
form: <TmsDispatchOrderI>{},
queryParams: <TmsDispatchOrderI & PageQueryInterface>{},
page: <PagesInterface>{
- pageSize: 10,
+ pageSize: 30,
total: 0,
currentPage: 1,
},
@@ -648,8 +740,10 @@
} = toRefs(data);
const option = ref({
menuType: 'icon',
+
viewBtn: false, // 鍏抽棴鍘熺敓鏌ョ湅
editBtn: false, // 鍏抽棴鍘熺敓缂栬緫
+ delBtn: false, // 鍏抽棴鍘熺敓缂栬緫
searchIndex: 7, // 鍏抽敭锛氭姌鍙犳椂鏄剧ず鐨勪釜鏁帮紙鏍规嵁浣犵殑瀛楁鏁伴噺璋冩暣锛�
searchIcon: true, // 鍏抽敭锛氭樉绀烘姌鍙�/灞曞紑鎸夐挳
@@ -660,7 +754,7 @@
labelWidth: 130,
searchSpan: 6,
searchLabelWidth: 150,
- menuWidth: 300,
+ menuWidth: 350,
height: 530,
group: [
{
@@ -1025,6 +1119,7 @@
},
latestDeparture: {
label: '瑕佹眰鏈�鏅氬嚭鍙戞椂闂�',
+ value: getNextDayMidnight(),
type: 'datetime', // 鏀逛负 datetime 绫诲瀷
format: 'YYYY-MM-DD HH:mm:ss', labelWidth: 150,
valueFormat: 'YYYY-MM-DD HH:mm:ss',
@@ -1038,6 +1133,7 @@
},
latestArrival: {
label: '瑕佹眰鏈�鏅氬埌杈炬椂闂�', labelWidth: 150,
+ value: getNextDayMidnight(),
type: 'datetime', // 鏀逛负 datetime 绫诲瀷
format: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'YYYY-MM-DD HH:mm:ss',
@@ -1067,7 +1163,6 @@
}
],
change: ({ value }: any) => {
- console.log(value)
option.value.group.forEach((item: any) => {
if (item.prop == 'pcxx') {
item.column.commissionModel.display = value != 1;
@@ -1190,24 +1285,64 @@
}
],
change: (val: any) => {
+ // 闃叉閲嶅鎵ц
+ if (data.isChanging) return;
+ data.isChanging = true;
+
const table = crudRef.value?.getPropRef?.('mainDriverId')?.$refs?.temp;
- if (!table) return;
+ if (!table) {
+ data.isChanging = false;
+ return;
+ }
+
let active = table.active;
if (Array.isArray(active)) active = active[0];
+
if (active) {
Object.assign(form.value, {
mainDriverId: active.id,
mainDriverName: active.driverName,
});
+
+ // 鑾峰彇杞︾墝鍙峰苟璧嬪��
+ getLastLicensePlate(active.driverName).then(res => {
+ if (res.code == 200) {
+ form.value.licensePlate = res.data.licensePlate;
+ form.value.vehicleId = res.data.vehicleId
+ }
+ }).finally(() => {
+ data.isChanging = false;
+ });
+ } else {
+ data.isChanging = false;
}
},
+ // change: (val: any) => {
+ // const table = crudRef.value?.getPropRef?.('mainDriverId')?.$refs?.temp;
+ // if (!table) return;
+ // let active = table.active;
+ // if (Array.isArray(active)) active = active[0];
+ // console.log(active,'888');
+
+ // if (active) {
+ // Object.assign(form.value, {
+ // mainDriverId: active.id,
+ // mainDriverName: active.driverName,
+ // });
+ // console.log(active.driverName,'44');
+ // getLastLicensePlate(active.driverName).then(res => {
+ // console.log(res);
+
+ // })
+ // }
+ // },
type: 'table', suffixIcon: 'search',
children: {
border: true,
searchMenuSpan: 5,
column: {
vehicleProviderName: {
- label: '杞﹁締鏈嶅姟鍟�', minWidth: 130,
+ label: '杞﹁締鏈嶅姟鍟�1', minWidth: 130,
search: true,
},
driverName: {
@@ -1318,7 +1453,7 @@
},
vehicleId: {
- label: '杞︾墝鍙�', dataType: 'string',
+ label: '杞︾墝鍙�1', dataType: 'string',
display: true,
rules: [
{
@@ -1681,24 +1816,28 @@
column: {
dispatchNo: {
- label: '璋冨害鍗曞彿', minWidth: 120,
+ label: '璋冨害鍗曞彿', minWidth: 180,
display: false,
search: true,
+ overHidden: true
},
licensePlate: {
label: '杞︾墝鍙�', minWidth: 120,
display: false,
search: true,
+ overHidden: true
},
customerName: {
label: '瀹㈡埛',
- display: false, minWidth: 120,
+ display: false, minWidth: 250,
search: true,
+ overHidden: true
},
mainDriverName: {
label: '涓婚┚椹跺憳',
display: false, minWidth: 120,
search: true,
+ overHidden: true
},
requiredVehicleTypes: {
label: '涓嬪崟杞﹀瀷', minWidth: 130,
@@ -1708,35 +1847,67 @@
},
createTimeRange: {
- label: '鍒涘缓鏃堕棿', display: false, search: true, searchRange: true, type: 'date',
- format: 'YYYY-MM-DD', hide: true, searchSpan: 5,
+ label: '鍒涘缓鏃堕棿', display: false, searchRange: true, type: 'date',
+ format: 'YYYY-MM-DD', hide: true, searchSpan: 6,
valueFormat: 'YYYY-MM-DD',
+ overHidden: true
+ },
+ createTimeRangeArray: {
+ label: '鍒涘缓鏃堕棿',
+ minWidth: 150,
+ search: true,
+ searchRange: true,
+ addDisplay: false, // 鏂板鏃朵笉鏄剧ず
+ editDisplay: false, // 淇敼鏃朵笉鏄剧ず
+ type: 'daterange',
+ startPlaceholder: '寮�濮嬫棩鏈�',
+ endPlaceholder: '缁撴潫鏃ユ湡',
+ valueFormat: 'YYYY-MM-DD',
+ hide: true
},
updateTimeRange: {
- label: '鏇存柊鏃堕棿', display: false, search: true, searchRange: true, type: 'date',
- format: 'YYYY-MM-DD', hide: true, searchSpan: 5,
+ label: '鏇存柊鏃堕棿', display: false, searchRange: true, type: 'date',
+ format: 'YYYY-MM-DD', hide: true, searchSpan: 6,
valueFormat: 'YYYY-MM-DD',
+ overHidden: true
+ },
+ updateTimeRangeArray: {
+ label: '鏇存柊鏃堕棿',
+ minWidth: 150,
+ search: true,
+ searchRange: true,
+ addDisplay: false, // 鏂板鏃朵笉鏄剧ず
+ editDisplay: false, // 淇敼鏃朵笉鏄剧ず
+ type: 'daterange',
+ startPlaceholder: '寮�濮嬫棩鏈�',
+ endPlaceholder: '缁撴潫鏃ユ湡',
+ valueFormat: 'YYYY-MM-DD',
+ hide: true
},
loadingServiceProviderName: {
label: '瑁呰揣鏈嶅姟鍟嗗悕绉�', minWidth: 150,
display: false,
search: true,
+ overHidden: true
},
customsServiceProviderName: {
label: '鎶ュ叧鏈嶅姟鍟嗗悕绉�', minWidth: 150,
display: false,
search: true,
+ overHidden: true
},
projectName: {
label: '椤圭洰鍚嶇О',
- display: false, minWidth: 120,
+ display: false, minWidth: 250,
search: true,
+ overHidden: true
},
contractName: {
- label: '鍏宠仈鍚堝悓鍚嶇О', minWidth: 120,
+ label: '鍏宠仈鍚堝悓鍚嶇О', minWidth: 250,
display: false,
search: true,
+ overHidden: true
},
orderType: {
label: '璁㈠崟绫诲瀷',
@@ -1764,6 +1935,7 @@
label: '杞﹁締鏈嶅姟鍟嗗悕绉�', minWidth: 150,
display: false,
search: true,
+ overHidden: true
},
@@ -1790,7 +1962,7 @@
},
isPrint: {
label: '鏄惁鎵撳嵃鎵胯繍鍗�',
- display: false, minWidth: 100,
+ display: false, minWidth: 120,
search: true,
type: 'select', dicUrl: '/system/dict/data/type/sys_number_is', dataType: 'string',
@@ -1814,13 +1986,15 @@
shipperName: {
label: '瑁呰揣鐐瑰悕绉�',
- display: false, minWidth: 120,
+ display: false, minWidth: 200,
search: true,
+ overHidden: true
},
receiverName: {
- label: '鍗歌揣鐐瑰悕绉�', minWidth: 120,
+ label: '鍗歌揣鐐瑰悕绉�', minWidth: 200,
display: false,
search: true,
+ overHidden: true
},
// accountsReceivableStatus: {
// label: '搴旀敹璐圭敤鐢熸垚鐘舵��', minWidth: 160,
@@ -1861,16 +2035,18 @@
},
confirmTime: {
- label: '纭鏃堕棿', minWidth: 180,
+ label: '纭鏃堕棿', minWidth: 200,
display: false,
hide: false,
search: false,
+ searchSpan: 6,
},
orderTime: {
label: '涓嬪崟鏃堕棿', minWidth: 180,
display: false,
hide: false,
search: false,
+ searchSpan: 6,
},
createBy: {
label: '鍒涘缓浜�', minWidth: 150,
@@ -1887,6 +2063,8 @@
viewDisplay: false,
hide: false,
search: false,
+ overHidden: true,
+ searchSpan: 6,
},
updateBy: {
@@ -1904,22 +2082,64 @@
viewDisplay: false,
hide: false,
search: false,
+ overHidden: true,
+ searchSpan: 6,
+
},
confirmTimeRange: {
- label: '纭鏃堕棿', display: false, search: true, searchRange: true, type: 'date',
- format: 'YYYY-MM-DD', hide: true, searchSpan: 5,
+ label: '纭鏃堕棿', display: false, searchRange: true, type: 'date',
+ format: 'YYYY-MM-DD', hide: true, searchSpan: 6,
valueFormat: 'YYYY-MM-DD',
+ },
+ confirmTimeRangeArray: {
+ label: '纭鏃堕棿',
+ minWidth: 150,
+ search: true,
+ searchRange: true,
+ addDisplay: false, // 鏂板鏃朵笉鏄剧ず
+ editDisplay: false, // 淇敼鏃朵笉鏄剧ず
+ type: 'daterange',
+ startPlaceholder: '寮�濮嬫棩鏈�',
+ endPlaceholder: '缁撴潫鏃ユ湡',
+ valueFormat: 'YYYY-MM-DD',
+ hide: true
},
okTimeRange: {
- label: '瀹屾垚鏃堕棿', display: false, search: true, searchRange: true, type: 'date',
- format: 'YYYY-MM-DD', hide: true, searchSpan: 5,
+ label: '瀹屾垚鏃堕棿', display: false, searchRange: true, type: 'date',
+ format: 'YYYY-MM-DD', hide: true, searchSpan: 6,
valueFormat: 'YYYY-MM-DD',
},
- orderTimeRange: {
- label: '涓嬪崟鏃堕棿', display: false, search: true, searchRange: true, type: 'date',
- format: 'YYYY-MM-DD', hide: true, searchSpan: 5,
+ okTimeRangeArray: {
+ label: '瀹屾垚鏃堕棿',
+ minWidth: 150,
+ search: true,
+ searchRange: true,
+ addDisplay: false, // 鏂板鏃朵笉鏄剧ず
+ editDisplay: false, // 淇敼鏃朵笉鏄剧ず
+ type: 'daterange',
+ startPlaceholder: '寮�濮嬫棩鏈�',
+ endPlaceholder: '缁撴潫鏃ユ湡',
valueFormat: 'YYYY-MM-DD',
+ hide: true
+ },
+ orderTimeRange: {
+ label: '涓嬪崟鏃堕棿', display: false, searchRange: true, type: 'date',
+ format: 'YYYY-MM-DD', hide: true, searchSpan: 6,
+ valueFormat: 'YYYY-MM-DD',
+ },
+ orderTimeRangeArray: {
+ label: '涓嬪崟鏃堕棿',
+ minWidth: 150,
+ search: true,
+ searchRange: true,
+ addDisplay: false, // 鏂板鏃朵笉鏄剧ず
+ editDisplay: false, // 淇敼鏃朵笉鏄剧ず
+ type: 'daterange',
+ startPlaceholder: '寮�濮嬫棩鏈�',
+ endPlaceholder: '缁撴潫鏃ユ湡',
+ valueFormat: 'YYYY-MM-DD',
+ hide: true
},
}
@@ -2012,7 +2232,7 @@
},
}
})
-
+const urlApi = ref(import.meta.env.VITE_APP_BASE_API)
const itineraryTableOption = ref({
menu: false,
addBtn: false,
@@ -2091,19 +2311,19 @@
],
},
currency: {
- label: '甯佺',
+ label: '甯佸埗',
display: true,
type: 'radio', dataType: 'string', dicUrl: '/system/dict/data/type/sys_currency',
rules: [
{
required: true,
- message: "甯佺涓嶈兘涓虹┖", trigger: "change"
+ message: "甯佸埗涓嶈兘涓虹┖", trigger: "change"
}
],
},
voucherUrl: {
- label: '璐圭敤鍑瘉',
+ label: '璐圭敤鍑瘉1',
display: true,
accept: 'string', dataType: 'string',
type: 'upload',
@@ -2154,7 +2374,7 @@
display: true,
},
currency: {
- label: '甯佺',
+ label: '甯佸埗',
display: true,
type: 'radio', dataType: 'string', dicUrl: '/system/dict/data/type/sys_currency',
},
@@ -2940,13 +3160,71 @@
zxhdjSingle.value = false;
}
},
+
getBeginListFunc: (params = {}) => {
- queryParams.value = proxy.addDateRangeNew(queryParams.value, queryParams.value?.createTimeRange, 'createTime') || {};
- queryParams.value = proxy.addDateRangeNew(queryParams.value, queryParams.value?.updateTimeRange, 'updateTime') || {};
- queryParams.value = proxy.addDateRangeNew(queryParams.value, queryParams.value?.confirmTimeRange, 'confirmTime') || {};
- queryParams.value = proxy.addDateRangeNew(queryParams.value, queryParams.value?.okTimeRange, 'okTime') || {};
- queryParams.value = proxy.addDateRangeNew(queryParams.value, queryParams.value?.orderTimeRange, 'orderTime') || {};
- return params;
+ // 1. 鏃ユ湡杞崲
+ let newParams = <any>{ ...params };
+ if (newParams) {
+ // 1. 瀹氫箟鏃ユ湡瀛楁鏄犲皠 (鏁扮粍鍚� : 鎺ュ彛闇�瑕佺殑鍓嶇紑)
+ // 杩欐牱鍐欑殑濂藉鏄細濡傛灉浣犳湁澶氫釜鏃ユ湡锛岀洿鎺ュ湪杩欓噷娣诲姞涓�琛屽嵆鍙�
+ const dateMap = {
+ confirmTimeRangeArray: 'confirmTimeRange',
+ createTimeRangeArray: 'createTime',
+ updateTimeRangeArray: 'updateTimeRange',
+ okTimeRangeArray: 'okTime',
+ orderTimeRangeArray: 'orderTime'
+ };
+
+ // 2. 閬嶅巻澶勭悊鏃ユ湡
+ Object.keys(dateMap).forEach(arrayKey => {
+ const prefix = dateMap[arrayKey];
+ const range = newParams[arrayKey];
+
+ if (Array.isArray(range) && range.length > 0) {
+ // 璧嬪�� Begin 鍜� End
+ newParams[`${prefix}Begin`] = range[0];
+ newParams[`${prefix}End`] = range[1];
+ }
+
+ // 銆愭牳蹇冩敼鍔ㄣ�戯細鏃犺鏄惁鏈夊�硷紝澶勭悊瀹屽悗閮芥妸鍘熷鐨� Array 瀛楁鍒犳帀
+ // 杩欐牱璇锋眰閲屽氨涓嶄細鍑虹幇 confirmTimeRangeArray: [...]
+ delete newParams[arrayKey];
+ });
+
+ // 3. 閫氱敤娓呮礂锛氬垹闄ゆ墍鏈夌┖瀛楃涓层�乶ull 鎴� undefined 鐨勫叾浠栧瓧娈�
+ Object.keys(newParams).forEach(key => {
+ const val = newParams[key];
+ if (val === '' || val === null || val === undefined) {
+ delete newParams[key];
+ }
+ });
+
+ } else {
+ newParams = {};
+ }
+
+ return newParams;
+ // newParams = proxy.addDateRangeNew(queryParams.value, queryParams.value?.createTimeRangeArray, 'createTime');
+ // newParams = proxy.addDateRangeNew(queryParams.value, queryParams.value?.updateTimeRangeArray, 'updateTime');
+ // newParams = proxy.addDateRangeNew(queryParams.value, queryParams.value?.confirmTimeRangeArray, 'confirmTime');
+ // newParams = proxy.addDateRangeNew(queryParams.value, queryParams.value?.okTimeRangeArray, 'okTime');
+ // newParams = proxy.addDateRangeNew(queryParams.value, queryParams.value?.orderTimeRangeArray, 'orderTime');
+
+ // delete newParams.createTimeRangeArray;
+ // delete newParams.updateTimeRangeArray;
+ // delete newParams.confirmTimeRangeArray;
+ // delete newParams.okTimeRangeArray;
+ // delete newParams.orderTimeRangeArray;
+
+
+
+
+ // delete newParams.updateTimeArray;
+ // delete newParams.businessTimeArray;
+ // delete newParams.payableConfirmTimeArray;
+
+ queryParams.value = newParams;
+ return newParams;
},
handleBeforeOpenFunc: (type: string) => {
if (type == 'add') {
@@ -2955,6 +3233,9 @@
}
})
+
+useAvueTableShowHide(option.value);
+
const handleConfirm = (row: any) => {
ElMessageBox.confirm("鏄惁瀵硅皟搴﹀崟鍙�" + row.dispatchNo + "纭畾 锛�", '绯荤粺鎻愮ず', {
confirmButtonText: '纭畾',
@@ -3007,7 +3288,6 @@
const handleUploadItinerary = (row: any) => {
optionType.value = 'addItinerary';
boxFormOption.value = itineraryOption.value;
- console.log(itineraryOption.value);
boxTableOption.value = itineraryTableOption.value;
listTmsTrip({ dispatchOrderId: row.id, pageNum: 1, pageSize: 999 }).then(res => {
@@ -3023,8 +3303,7 @@
vehicleNumber: row.licensePlate,
vehicleId: row.vehicleId,
}
- console.log(boxForm.value);
-
+
})
}
const cancelBox = () => {
@@ -3294,7 +3573,7 @@
}
const submitForm3 = () => {
- updateTmsDispatchOrder(actualForm.value).then(res => {
+ tmsDispatchOrderRecord(actualForm.value).then(res => {
ElMessage({
message: "鎿嶄綔鎴愬姛锛�",
type: 'success'
@@ -3667,7 +3946,6 @@
form2.value.districtId = districtCode;
form2.value.streetId = townshipCode;
form2.value.dispatchTransportArea = params.regeocode.formatted_address || params.regeocode.formattedAddress;
- console.log(form2.value, "form2")
}
});
}
@@ -3876,7 +4154,6 @@
getQuotationItems();
const getTabData = (val: string) => {
- console.log(val)
let filter = quotationItems.value.filter((item: any) => {
return item.remark == val;
});
@@ -3894,9 +4171,7 @@
dispatchOrderId: form.value.id, financeType: 2,
pageNum: 1, pageSize: 999
}).then(async res => {
-
boxTableData.value = res.rows || [];
-
boxForm.value = {
dispatchOrderId: form.value.id,
dataSource: 0,
@@ -3923,7 +4198,7 @@
//boxForm.value.rowItems = boxTableData.value;
// console.log(tmsFinanceDetails.value);
// console.log(boxForm.value);
-// 1. 鎻愬彇濉啓浜嗛噾棰濈殑鏁版嵁锛堥噾棰濆ぇ浜�0锛�
+ // 1. 鎻愬彇濉啓浜嗛噾棰濈殑鏁版嵁锛堥噾棰濆ぇ浜�0锛�
const validDetails = tmsFinanceDetails.value.filter(item => item.actualFeeAmount && item.actualFeeAmount > 0);
if (validDetails.length === 0) {
@@ -3940,8 +4215,12 @@
// 3. 澶勭悊鍑瘉 URL (濡傛灉鏈夊崟寮犳垨澶氬紶涓婁紶鐨勯�昏緫)
// 鍋囪鍚庣闇�瑕佺殑鏄�楀彿鍒嗛殧鐨勫瓧绗︿覆
- const submitData = validDetails.map(item => {
+ const submitData = validDetails.map((item: any) => {
let url = item.voucherUrl;
+ item.dispatchOrderId = form.value.id;
+ item.financeType = 2;
+ item.status = 0;
+ item.dataSource = 1;
if (Array.isArray(url)) {
url = url.join(',');
}
@@ -3954,8 +4233,8 @@
message: "鎿嶄綔鎴愬姛锛�",
type: 'success'
})
- open4.value = false;
- onLoad(page.value)
+ open4.value = false;
+ onLoad(page.value)
boxFormRef.value?.resetFields();
getTab4Data();
})
@@ -4502,13 +4781,12 @@
},
{
- label: '璐圭敤鍑瘉',
+ label: '璐圭敤鍑瘉2',
display: true,
span: 24,
accept: 'string', dataType: 'object',
type: 'upload',
// action: '/common/upload2',
-
prop: 'voucherUrl', // 杩欓噷鏀规垚 prop 灞炴��
slot: true, // 寮�鍚彃妲�
width: 200
@@ -4522,6 +4800,7 @@
});
// 3. 鍥炴樉鍒濆鍖�
const initExpenditureData = () => {
+ tmsFinanceDetails.value = []
if (fee_type.value && fee_type.value.length > 0 && tmsFinanceDetails.value.length === 0) {
tmsFinanceDetails.value = fee_type.value.map(item => ({
feeType: item.value,
@@ -4539,18 +4818,39 @@
initExpenditureData();
}
});
-const handleUploadAfter = (res, done, loading, column, row) => {
+const handleUploadAfter = (res: any, row: any) => {
// res 鏄帴鍙h繑鍥炵殑瀹屾暣鏁版嵁
- if (res && res.url) {
+ if (res.code === 200) {
// 鎵嬪姩缁欒繖涓�琛岀殑鏁版嵁璧嬪��
- row.voucherUrl = res.url;
- console.log('涓婁紶鎴愬姛锛屽綋鍓嶈鏁版嵁锛�', row);
+ row.voucherUrl = res.data.url;
} else if (res.data && res.data.url) {
// 濡傛灉杩斿洖鐨勬暟鎹寘瑁瑰湪 data 閲�
row.voucherUrl = res.data.url;
}
- done(); // 蹇呴』璋冪敤 done 缁撴潫涓婁紶鐘舵��
};
+/** 褰撴枃浠惰秴鍑洪檺鍒舵椂锛堝疄鐜拌嚜鍔ㄦ浛鎹㈤�昏緫锛� */
+const handleExceed = (files: any, row: any) => {
+ // 1. 娓呴櫎褰撳墠鏄剧ず鐨勬枃浠跺垪琛�
+ uploadRef.value.clearFiles();
+ // 2. 鎵嬪姩鎶婃柊閫夋嫨鐨勬枃浠舵坊鍔犺繘鍘婚噸鏂颁笂浼�
+ const file = files[0];
+ uploadRef.value.handleStart(file);
+ uploadRef.value.submit();
+};
+
+const flowLogIshow = ref()
+const flowParams = ref([])
+
+const handleFlow = (row: string) => {
+ let data = {
+ headId: row.id,
+ }
+ listTmsDispatchOrderLog(data).then((res) => {
+ flowParams.value = res.rows
+ flowLogIshow.value.openModel()
+
+ })
+}
</script>
<style lang="scss" scoped>
::v-deep .cydprint .el-dialog__body {
@@ -4622,4 +4922,78 @@
padding: 1px 11px;
box-shadow: 0 0 0 1px var(--el-disabled-border-color) inset;
}
-</style>
\ No newline at end of file
+
+.link-btn {
+ font-size: 18px;
+}
+
+/* */
+/* 鐜版湁鐨勬牱寮忎繚鎸佷笉鍙�... */
+.specific-drag-area {
+ width: 100%;
+
+ :deep(.full-width-drag) {
+
+ // 1. 鏍稿績锛氶殣钘� Avue 榛樿鍦� dragger 涓嬫柟鐢熸垚鐨勯偅涓�滅偣鍑讳笂浼犫�濇寜閽�
+ // 鍦� 3.x 鐗堟湰涓紝瀹冩槸 el-upload 鍚庣殑涓�涓厔寮熻妭鐐规垨鑰呮槸鍐呴儴鑺傜偣
+ .el-button--primary {
+ display: none !important;
+ }
+
+ .el-upload {
+ width: 100%;
+ display: block; // 纭繚鍧楃骇鏄剧ず
+
+ .el-upload-dragger {
+ width: 100%;
+ height: 120px;
+ background-color: #fcfdfe;
+ border: 2px dashed #dcdfe6;
+ border-radius: 8px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 0 !important;
+
+ // 瑕嗙洊 Element Plus 榛樿鐨勫唴閮ㄦ枃瀛楁帓鐗堬紝闃叉鍐茬獊
+ .el-upload__text {
+ display: none !important;
+ }
+
+ &:hover {
+ border-color: #409eff;
+ background-color: #f5f7fa;
+ }
+ }
+ }
+ }
+
+ // 3. 鑷畾涔夊唴瀹圭殑鏍峰紡锛堢‘淇濆畠涓嶈 display:none 褰卞搷锛�
+ .drag-zone-inner {
+ pointer-events: none;
+ text-align: center;
+
+ .upload-icon {
+ font-size: 32px !important;
+ color: #909399;
+ margin-bottom: 8px;
+ }
+
+ .drag-text {
+ .main-title {
+ font-size: 14px;
+ color: #606266;
+ font-weight: bold;
+ line-height: 1.5;
+ }
+
+ .sub-title {
+ font-size: 12px;
+ color: #a8abb2;
+ margin-top: 4px;
+ }
+ }
+ }
+}
+</style>
--
Gitblit v1.8.0