From 3623697d0c515ff38e5040ccd41315a8954e6a10 Mon Sep 17 00:00:00 2001
From: sen <sen@qq.com>
Date: 星期二, 29 七月 2025 18:45:10 +0800
Subject: [PATCH] 修改调度单
---
ui/admin-ui3/src/api/cwgl/dispatchOrder.ts | 19 +++
ui/admin-ui3/src/views/cwgl/dispatchOrder/index.vue | 294 ++++++++++++++++++++++++++++--------------------
2 files changed, 188 insertions(+), 125 deletions(-)
diff --git a/ui/admin-ui3/src/api/cwgl/dispatchOrder.ts b/ui/admin-ui3/src/api/cwgl/dispatchOrder.ts
index d2e6bfc..1eb189a 100644
--- a/ui/admin-ui3/src/api/cwgl/dispatchOrder.ts
+++ b/ui/admin-ui3/src/api/cwgl/dispatchOrder.ts
@@ -65,3 +65,22 @@
download('/cwgl/dispatchOrder/export',query);
})
}
+
+/**
+ * 鏌ヨ鏌ョ湅璐圭敤
+ */
+export const cwglDispatchOrderItem:requestType = (query) => {
+ return request({
+ url: '/cwgl/dispatchOrder/item',
+ method:'get',
+ params:query
+ })
+}
+/* 鏌ョ湅闄勪欢 */
+export const cwglDispatchOrderattAchment:requestType = (query) => {
+ return request({
+ url: '/cwgl/dispatchOrder/attachment',
+ method:'get',
+ params:query
+ })
+}
\ No newline at end of file
diff --git a/ui/admin-ui3/src/views/cwgl/dispatchOrder/index.vue b/ui/admin-ui3/src/views/cwgl/dispatchOrder/index.vue
index c14494e..bf5f280 100644
--- a/ui/admin-ui3/src/views/cwgl/dispatchOrder/index.vue
+++ b/ui/admin-ui3/src/views/cwgl/dispatchOrder/index.vue
@@ -1,79 +1,45 @@
<template>
<basicContainer>
- <avue-crud
- :option="option"
- :table-loading="pageF.loading"
- :data="tableData"
- :page="page"
- :permission="permissionList"
- :before-open="beforeOpen"
- v-model="form"
- ref="crudRef"
- @row-update="rowUpdate"
- @row-save="rowSave"
- @refresh-change="refreshChange"
- @row-del="rowDel"
- @search-change="searchChange"
- @search-reset="searchReset"
- @selection-change="selectionChange"
- @current-change="currentChange"
- @size-change="sizeChange"
- @on-load="onLoad"
- >
+ <avue-crud :option="option" :table-loading="pageF.loading" :data="tableData" :page="page"
+ :permission="permissionList" :before-open="beforeOpen" v-model="form" ref="crudRef" @row-update="rowUpdate"
+ @row-save="rowSave" @refresh-change="refreshChange" @row-del="rowDel" @search-change="searchChange"
+ @search-reset="searchReset" @selection-change="selectionChange" @current-change="currentChange"
+ @size-change="sizeChange" @on-load="onLoad">
<template #menu-left>
- <el-button
- type="warning"
- plain
- icon="Download"
- @click="handleExport"
- v-hasPermi="['cwgl:dispatchOrder:export']"
- >瀵煎嚭
+ <el-button type="warning" plain icon="Download" @click="handleExport"
+ v-hasPermi="['cwgl:dispatchOrder:export']">瀵煎嚭
</el-button>
- <el-button
- type="success"
- plain
- icon="Download"
- @click="handleExport"
- v-hasPermi="['cwgl:dispatchOrder:export']"
- >鐢熸垚鍙拌处鎶ヨ〃
+ <el-button type="success" plain icon="Download" @click="handleExport"
+ v-hasPermi="['cwgl:dispatchOrder:export']">鐢熸垚鍙拌处鎶ヨ〃
</el-button>
</template>
<template #menu="{ size, row, index }">
- <el-link class="link-btn"
- type="primary" :underline="false"
- plain :size="size"
- icon="View"
- @click="handleFy(row)"
- v-hasPermi="['cwgl:dispatchOrder:query']"
- > 鏌ョ湅璐圭敤
+ <el-link class="link-btn" type="primary" :underline="false" plain :size="size" icon="View"
+ @click="handleFy(row)" v-hasPermi="['cwgl:dispatchOrder:query']"> 鏌ョ湅璐圭敤
</el-link>
- <el-link class="link-btn"
- type="primary" :underline="false"
- plain
- icon="View"
- @click="handleFj(row)"
- v-hasPermi="['cwgl:dispatchOrder:query']"
- > 鏌ョ湅闄勪欢
+ <el-link class="link-btn" type="primary" :underline="false" plain icon="View" @click="handleFj(row)"
+ v-hasPermi="['cwgl:dispatchOrder:query']"> 鏌ョ湅闄勪欢
</el-link>
</template>
</avue-crud>
- <el-dialog title="鏌ョ湅璐圭敤" v-model="open1" class="avue-dialog avue-dialog--top" width="60%">
- <avue-crud
- :option="itemTableOption1"
- :data="itemTableData1"
- :table-loading="itemTableLoading1"
- >
+ <el-dialog title="鏌ョ湅璐圭敤" v-model="open1" class="avue-dialog avue-dialog--top" width="60%">
+ <avue-crud :option="itemTableOption1" :data="itemTableData1" :table-loading="itemTableLoading1">
</avue-crud>
</el-dialog>
- <el-dialog title="鏌ョ湅闄勪欢" v-model="open2" class="avue-dialog avue-dialog--top" width="60%">
- <avue-crud
- :option="itemTableOption2"
- :data="itemTableData2"
- :table-loading="itemTableLoading2"
- >
+ <el-dialog title="鏌ョ湅闄勪欢" v-model="open2" class="avue-dialog avue-dialog--top" width="60%">
+
+ <avue-crud :option="itemTableOption2" :data="itemTableData2" :page="pageAttachment"
+ :table-loading="itemTableLoading2" @current-change="handleAttachmentCurrentChange"
+ @size-change="handleAttachmentSizeChange">
+ <template #imageUrl="{ row }">
+ <el-image :src="row.imageUrl" style="width: 100px; height: 100px" fit="cover"
+ :preview-src-list="[row.imageUrl]" :preview-teleported="true" hide-on-click-modal
+ class="attachment-image" />
+ </template>
</avue-crud>
+
</el-dialog>
</basicContainer>
</template>
@@ -86,15 +52,15 @@
exportDispatchOrder,
getDispatchOrder,
listDispatchOrder,
- updateDispatchOrder
+ updateDispatchOrder, cwglDispatchOrderItem, cwglDispatchOrderattAchment
} from "@/api/cwgl/dispatchOrder";
import useCurrentInstance from "@/utils/useCurrentInstance";
-import {computed, reactive, ref, toRefs} from "vue";
-import {PagesInterface, PageQueryInterface} from "@/utils/globalInterface";
-import {usePagePlus} from "@/hooks/usePagePlus";
-import {hasPermission} from "@/utils/permissionUtils";
+import { computed, reactive, ref, toRefs } from "vue";
+import { PagesInterface, PageQueryInterface } from "@/utils/globalInterface";
+import { usePagePlus } from "@/hooks/usePagePlus";
+import { hasPermission } from "@/utils/permissionUtils";
-const {proxy} = useCurrentInstance();
+const { proxy } = useCurrentInstance();
const crudRef = ref();
const permissionList = computed(() => {
@@ -114,27 +80,34 @@
total: 0,
currentPage: 1,
},
+ pageAttachment: <PagesInterface>{
+ pageSize: 10,
+ total: 0,
+ currentPage: 1,
+ },
selectionList: [],
itemTableData1: [],
itemTableData2: [],
- open1:false,
- open2:false,
- itemTableLoading1:false,
- itemTableLoading2:false,
+ open1: false,
+ open2: false,
+ itemTableLoading1: false,
+ itemTableLoading2: false,
})
-const {queryParams, form, page, selectionList, itemTableData1, itemTableData2, open1, open2, itemTableLoading1, itemTableLoading2} = toRefs(data);
+const { queryParams, form, page, selectionList, itemTableData1, itemTableData2, open1, open2, itemTableLoading1, itemTableLoading2,
+ pageAttachment
+} = toRefs(data);
const option = ref({
pageKey: 'DispatchOrder',
rowKey: 'id',
- addBtn:false,
- editBtn:false,
- delBtn:false,
- viewBtn:false,
- selection:false,
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ viewBtn: false,
+ selection: false,
column: {
dispatchNo: {
- fixed:'left',
- label: '璋冨害鍗曞彿',search:true,minWidth: 180,
+ fixed: 'left',
+ label: '璋冨害鍗曞彿', search: true, minWidth: 180,
rules: [
{
required: true,
@@ -143,81 +116,81 @@
],
},
transportMode: {
- label: '杩愯緭鏂瑰紡',width: 120,
+ label: '杩愯緭鏂瑰紡', width: 120,
},
productName: {
- label: '鏈嶅姟浜у搧鍚嶇О',width: 120,showOverflowTooltip: true
+ label: '鏈嶅姟浜у搧鍚嶇О', width: 120, showOverflowTooltip: true
},
carrierName: {
- label: '鎵胯繍鍟�',search:true,width: 200,showOverflowTooltip: true
+ label: '鎵胯繍鍟�', search: true, width: 200, showOverflowTooltip: true
},
departureLocationName: {
- label: '鍑哄彂鍦板悕绉�',width: 210,showOverflowTooltip: true
+ label: '鍑哄彂鍦板悕绉�', width: 210, showOverflowTooltip: true
},
arrivalLocationName: {
- label: '鐩殑鍦板悕绉�',width: 200,showOverflowTooltip: true
+ label: '鐩殑鍦板悕绉�', width: 200, showOverflowTooltip: true
},
licensePlateNumber: {
- label: '杞︾墝',search:true,width: 120,
+ label: '杞︾墝', search: true, width: 120,
},
vehiclePlateId: {
- label: '杞︽澘鍙�',width: 120,
+ label: '杞︽澘鍙�', width: 120,
},
mainDriverName: {
- label: '涓婚┚椹跺憳',width: 120,
+ label: '涓婚┚椹跺憳', width: 120,
},
assistantDriverName: {
- label: '鍓┚椹跺憳',width: 120,
+ label: '鍓┚椹跺憳', width: 120,
},
pointNum: {
- label: '鎻愰�佽揣鐐规暟',width: 120,
+ label: '鎻愰�佽揣鐐规暟', width: 120,
},
quantity: {
- label: '浠舵暟',width: 120,
+ label: '浠舵暟', width: 120,
},
actualDepartureTime: {
- label: '瀹為檯鍑哄彂鏃堕棿',width: 180,
+ label: '瀹為檯鍑哄彂鏃堕棿', width: 180,
},
actualDepartureTimeRange: {
- label: '瀹為檯鍑哄彂鏃堕棿',display: false,search: true, searchRange: true, type: 'date',
- format: 'YYYY-MM-DD',hide: true,searchSpan: 6,searchLabelWidth: 110,
+ label: '瀹為檯鍑哄彂鏃堕棿', display: false, search: true, searchRange: true, type: 'date',
+ format: 'YYYY-MM-DD', hide: true, searchSpan: 6, searchLabelWidth: 110,
valueFormat: 'YYYY-MM-DD',
},
requiredArrivalTime: {
- label: '瑕佹眰鍒拌揪鏃堕棿',width: 180,
+ label: '瑕佹眰鍒拌揪鏃堕棿', width: 180,
},
requiredArrivalTimeRange: {
- label: '瑕佹眰鍒拌揪鏃堕棿',display: false,search: true, searchRange: true, type: 'date',
- format: 'YYYY-MM-DD',hide: true,searchSpan: 6,searchLabelWidth: 110,
+ label: '瑕佹眰鍒拌揪鏃堕棿', display: false, search: true, searchRange: true, type: 'date',
+ format: 'YYYY-MM-DD', hide: true, searchSpan: 6, searchLabelWidth: 110,
valueFormat: 'YYYY-MM-DD',
},
actualArrivalTime: {
- label: '瀹為檯鍒拌揪鏃堕棿',width: 180,
+ label: '瀹為檯鍒拌揪鏃堕棿', width: 180,
},
actualArrivalTimeRange: {
- label: '瑕佹眰鍒拌揪鏃堕棿',display: false,search: true, searchRange: true, type: 'date',
- format: 'YYYY-MM-DD',hide: true,searchSpan: 6,searchLabelWidth: 110,
+ label: '瑕佹眰鍒拌揪鏃堕棿', display: false, search: true, searchRange: true, type: 'date',
+ format: 'YYYY-MM-DD', hide: true, searchSpan: 6, searchLabelWidth: 110,
valueFormat: 'YYYY-MM-DD',
},
beReturn: {
- label: '鏄惁鍥炵▼',dataType:'string',width: 100,
+ label: '鏄惁鍥炵▼', dataType: 'string', width: 100,
type: 'select', dicUrl: '/system/dict/data/type/dispatch_order_status',
},
dispatchQuantity: {
- label: '瀹炲彂浠舵暟',width: 100,
+ label: '瀹炲彂浠舵暟', width: 100,
},
dispatchWeight: {
- label: '瀹炲彂閲嶉噺',width: 100,
+ label: '瀹炲彂閲嶉噺', width: 100,
},
dispatchVolume: {
- label: '瀹炲彂浣撶Н(绔嬫柟锛�',width: 160,
+ label: '瀹炲彂浣撶Н(绔嬫柟锛�', width: 160,
},
status: {
- label: '鐘舵��',search: true,dataType:'string',width: 100,
+ label: '鐘舵��', search: true, dataType: 'string', width: 100,
type: 'select', dicUrl: '/system/dict/data/type/dispatch_order_status',
},
remark: {
- label: '澶囨敞',width: 120,
+ label: '澶囨敞', width: 120,
type: 'textarea', minRows: 3, maxRows: 5,
},
// createBy: {
@@ -270,7 +243,7 @@
handleUpdateFunc: () => {
crudRef.value.rowEdit(selectionList.value[0]);
},
- getBeginListFunc(params:any = {}){
+ getBeginListFunc(params: any = {}) {
params = proxy.addDateRangeNew(params, params?.actualDepartureTimeRange, 'actualDepartureTime') || {};
params = proxy.addDateRangeNew(params, params?.requiredArrivalTimeRange, 'requiredArrivalTime') || {};
params = proxy.addDateRangeNew(params, params?.actualArrivalTimeRange, 'actualArrivalTime') || {};
@@ -286,17 +259,25 @@
menu: false,
header: false,
column: {
- packageTrackingNo: {
- label: '璐圭敤绫诲瀷',minWidth: 180,fixed: 'left'
+ feeItem: {
+ label: '璐圭敤绫诲瀷', minWidth: 180, fixed: 'left'
},
- ys: {
- label: '搴旀敹璐圭敤',minWidth: 180,
+ receivableFee: {
+ label: '搴旀敹璐圭敤', minWidth: 180,
},
- yf: {
- label: '搴斾粯璐圭敤',minWidth: 180,
+ receivableFeeCurrency: {
+ label: '搴旀敹甯佸埗绫诲瀷', minWidth: 180,
},
- isFY: {
- label: '鏄惁鍙粯娆�',minWidth: 180,
+ actualFee: {
+ label: '搴斾粯璐圭敤', minWidth: 180,
+ },
+ actualFeeCurrency: {
+ label: '搴斾粯璐圭敤甯佸埗绫诲瀷', minWidth: 180,
+ },
+ isSettlement: {
+ label: '鏄惁鍙粯娆�', dataType: 'string', minWidth: 180,
+ type: 'select',
+ dicUrl: '/system/dict/data/type/sys_whether_type',
},
}
})
@@ -307,31 +288,88 @@
menu: false,
header: false,
column: {
- packageTrackingNo: {
- label: '璐圭敤绫诲瀷',minWidth: 180,fixed: 'left'
+ feeItem: {
+ label: '璐圭敤绫诲瀷', minWidth: 180, fixed: 'left'
},
- ys: {
- label: '閲戦',minWidth: 180,
+ account: {
+ label: '閲戦', minWidth: 180,
},
- yf: {
- label: '甯佸��',minWidth: 180,
+ currency: {
+ label: '甯佸��', minWidth: 180,
},
- isFY: {
- label: '鍥剧墖',minWidth: 180,
+ imageUrl: {
+ label: '鍥剧墖',
+ prop: 'img',
+ dataType: 'string',
+ type: 'img'
},
+
}
})
-const handleFy = (row:DispatchOrderI) => {
- open1.value = true;
+const handleFy = (row: DispatchOrderI) => {
+
+ cwglDispatchOrderItem({ no: row.dispatchNo }).then((res: any) => {
+ if (res.code == 200) {
+ itemTableData1.value = res.data || [];
+ open1.value = true;
+ }
+ })
+}
+const pangeIshow = ref(false);
+const handleFj = (row: DispatchOrderI) => {
+ pageAttachment.value ={
+ pageSize: 10,
+ pageNum: 1,
+ no:row.dispatchNo
+ }
+ pangeIshow.value = true;
+ cwglDispatchOrderattAchment(pageAttachment.value).then((res: any) => {
+ if (res.code == 200) {
+ itemTableData2.value = res.rows || [];
+ pageAttachment.value.total = res.total || 0;
+ open2.value = true;
+ }
+ })
}
-const handleFj = (row:DispatchOrderI) => {
- open2.value = true;
+// 澶勭悊闄勪欢鍒嗛〉椤电爜鍙樺寲
+const handleAttachmentCurrentChange = (currentPage: number) => {
+ pageAttachment.value.pageNum = currentPage;
+ loadAttachmentData();
}
+// 澶勭悊闄勪欢鍒嗛〉澶у皬鍙樺寲
+const handleAttachmentSizeChange = (pageSize: number) => {
+ pageAttachment.value.pageSize = pageSize;
+ // pageAttachment.value.currentPage = 1; // 閲嶇疆鍒扮涓�椤�
+ loadAttachmentData();
+}
+
+// 鍔犺浇闄勪欢鏁版嵁鐨勫嚱鏁�
+const loadAttachmentData = () => {
+ itemTableLoading2.value = true;
+ cwglDispatchOrderattAchment({
+ no: pageAttachment.value.no,
+ pageNum: pageAttachment.value.pageNum,
+ pageSize: pageAttachment.value.pageSize
+ }).then((res: any) => {
+ if (res.code == 200) {
+ itemTableData2.value = res.rows || [];
+ pageAttachment.value.total = res.total || 0;
+ }
+ itemTableLoading2.value = false;
+ }).catch(() => {
+ itemTableLoading2.value = false;
+ });
+}
+
+// 闄勪欢琛ㄦ牸鍔犺浇浜嬩欢
+const attachmentChange = () => {
+ // loadAttachmentData();
+}
</script>
<style lang="scss" scoped>
@@ -340,4 +378,10 @@
flex: 1;
overflow: scroll;
}
+
+.attachment-image {
+ .el-image__preview {
+ z-index: 9999 !important;
+ }
+}
</style>
\ No newline at end of file
--
Gitblit v1.8.0