From 3ff0cb1e9dd0406b47d5aeb743e7993f004ac710 Mon Sep 17 00:00:00 2001 From: 15815213711 <a13118667520@163.com> Date: 星期三, 30 七月 2025 10:48:13 +0800 Subject: [PATCH] 修改ID,修改加密方式 --- ui/admin-ui3/src/views/cwgl/dispatchOrder/index.vue | 343 ++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 257 insertions(+), 86 deletions(-) diff --git a/ui/admin-ui3/src/views/cwgl/dispatchOrder/index.vue b/ui/admin-ui3/src/views/cwgl/dispatchOrder/index.vue index a39b9bc..d2b5e93 100644 --- a/ui/admin-ui3/src/views/cwgl/dispatchOrder/index.vue +++ b/ui/admin-ui3/src/views/cwgl/dispatchOrder/index.vue @@ -1,51 +1,46 @@ <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" v-model:search="queryParams" + @size-change="sizeChange" @on-load="onLoad"> <template #menu-left> - <el-button - type="success" - icon="Edit" - :disabled="pageF.single" - v-hasPermi="['cwgl:dispatchOrder:edit']" - @click="handleUpdate">淇敼 + + <el-button type="warning" plain icon="Download" @click="handleExport" + v-hasPermi="['cwgl:dispatchOrder:export']">瀵煎嚭 </el-button> - <el-button - type="danger" - icon="Delete" - :disabled="pageF.multiple" - @click="handleDelete" - v-hasPermi="['cwgl:dispatchOrder:remove']" - >鍒犻櫎 - </el-button> - <el-button - type="warning" - plain - icon="Download" - @click="handleExport" - v-hasPermi="['cwgl:dispatchOrder:export']" - >瀵煎嚭 + <el-button type="success" plain icon="Download" @click="handleExport2" + 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> + <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"> + + </avue-crud> + </el-dialog> + <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> @@ -57,16 +52,15 @@ exportDispatchOrder, getDispatchOrder, listDispatchOrder, - updateDispatchOrder + updateDispatchOrder, cwglDispatchOrderItem, cwglDispatchOrderattAchment, exportDispatchOrder2 } 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 {useTableColumnWidth} from "@/hooks/useAvueTableWidths"; +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(() => { @@ -86,15 +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, }) -const {queryParams, form, page, selectionList} = 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, column: { dispatchNo: { - label: '璋冨害鍗曞彿',search:true, + fixed: 'left', + label: '璋冨害鍗曞彿', search: true, minWidth: 180, rules: [ { required: true, @@ -103,81 +116,101 @@ ], }, transportMode: { - label: '杩愯緭鏂瑰紡', + label: '杩愯緭鏂瑰紡', width: 120, }, productName: { - label: '鏈嶅姟浜у搧鍚嶇О', + label: '鏈嶅姟浜у搧鍚嶇О', width: 120, showOverflowTooltip: true + }, + customerName: { + label: '瀹㈡埛鍚嶇О', search: true, width: 200, showOverflowTooltip: true }, carrierName: { - label: '鎵胯繍鍟�',search:true, + label: '鎵胯繍鍟�', search: true, width: 200, showOverflowTooltip: true }, departureLocationName: { - label: '鍑哄彂鍦板悕绉�', + label: '鍑哄彂鍦板悕绉�', width: 210, showOverflowTooltip: true }, arrivalLocationName: { - label: '鐩殑鍦板悕绉�', + label: '鐩殑鍦板悕绉�', width: 200, showOverflowTooltip: true }, licensePlateNumber: { - label: '杞︾墝',search:true, + label: '杞︾墝', search: true, width: 120, }, vehiclePlateId: { - label: '杞︽澘鍙�', + label: '杞︽澘鍙�', width: 120, }, mainDriverName: { - label: '涓婚┚椹跺憳', + label: '涓婚┚椹跺憳', width: 120, }, assistantDriverName: { - label: '鍓┚椹跺憳', + label: '鍓┚椹跺憳', width: 120, }, pointNum: { - label: '鎻愰�佽揣鐐规暟', + label: '鎻愰�佽揣鐐规暟', width: 120, }, quantity: { - label: '浠舵暟', + label: '浠舵暟', width: 120, }, actualDepartureTime: { - label: '瀹為檯鍑哄彂鏃堕棿', + label: '瀹為檯鍑哄彂鏃堕棿', width: 180, + }, + actualDepartureTimeRange: { + 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: '瑕佹眰鍒拌揪鏃堕棿', + label: '瑕佹眰鍒拌揪鏃堕棿', width: 180, + }, + requiredArrivalTimeRange: { + 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: '瀹為檯鍒拌揪鏃堕棿', + label: '瀹為檯鍒拌揪鏃堕棿', width: 180, + }, + actualArrivalTimeRange: { + 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: '鏄惁鍥炵▼(N,Y)', + label: '鏄惁鍥炵▼', dataType: 'string', width: 100, + type: 'select', dicUrl: '/system/dict/data/type/dispatch_order_status', }, dispatchQuantity: { - label: '瀹炲彂浠舵暟', + label: '瀹炲彂浠舵暟', width: 100, }, dispatchWeight: { - label: '瀹炲彂閲嶉噺', + label: '瀹炲彂閲嶉噺', width: 100, }, dispatchVolume: { - label: '瀹炲彂浣撶Н(绔嬫柟锛�', + label: '瀹炲彂浣撶Н(绔嬫柟锛�', width: 160, }, status: { - label: '鐘舵��', + label: '鐘舵��', search: true, dataType: 'string', width: 100, + type: 'select', dicUrl: '/system/dict/data/type/dispatch_order_status', }, remark: { - label: '澶囨敞', + label: '澶囨敞', width: 120, type: 'textarea', minRows: 3, maxRows: 5, }, - createBy: { - label: '鍒涘缓浜�', - }, - createTime: { - label: '鍒涘缓鏃堕棿', - }, - updateBy: { - label: '淇敼浜�', - }, - updateTime: { - label: '淇敼鏃堕棿', - }, - isDeleted: { - label: '鏄惁鍒犻櫎(0-鍚�,1-鏄�)', - }, + // createBy: { + // label: '鍒涘缓浜�', + // }, + // createTime: { + // label: '鍒涘缓鏃堕棿', + // }, + // updateBy: { + // label: '淇敼浜�', + // }, + // updateTime: { + // label: '淇敼鏃堕棿', + // }, + // isDeleted: { + // label: '鏄惁鍒犻櫎(0-鍚�,1-鏄�)', + // }, } }) @@ -213,11 +246,149 @@ handleUpdateFunc: () => { crudRef.value.rowEdit(selectionList.value[0]); }, + getBeginListFunc() { + queryParams.value = proxy.addDateRangeNew(queryParams.value, queryParams.value?.actualDepartureTimeRange, 'actualDepartureTime') || {}; + queryParams.value = proxy.addDateRangeNew(queryParams.value, queryParams.value?.requiredArrivalTimeRange, 'requiredArrivalTime') || {}; + queryParams.value = proxy.addDateRangeNew(queryParams.value, queryParams.value?.actualArrivalTimeRange, 'actualArrivalTime') || {}; + }, handleSelectionChangeFunc: (selection: any) => { selectionList.value = selection; } }) -useTableColumnWidth(option.value, crudRef); // 浣跨敤 Hook 绠$悊鍒楀 +const itemTableOption1 = ref({ + addBtn: false, + selection: false, + menu: false, + header: false, + column: { + feeItem: { + label: '璐圭敤绫诲瀷', minWidth: 180, fixed: 'left' + }, + receivableFee: { + label: '搴旀敹璐圭敤', minWidth: 180, + }, + receivableFeeCurrency: { + 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', + }, + } +}) + +const itemTableOption2 = ref({ + addBtn: false, + selection: false, + menu: false, + header: false, + column: { + feeItem: { + label: '璐圭敤绫诲瀷', minWidth: 180, fixed: 'left' + }, + account: { + label: '閲戦', minWidth: 180, + }, + currency: { + label: '甯佸��', minWidth: 180, + }, + imageUrl: { + label: '鍥剧墖', + prop: 'img', + dataType: 'string', + type: 'img' + }, + + } +}) + +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 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(); +} +const handleExport2 =()=>{ + queryParams.value = proxy.addDateRangeNew(queryParams.value, queryParams.value?.actualDepartureTimeRange, 'actualDepartureTime') || {}; + queryParams.value = proxy.addDateRangeNew(queryParams.value, queryParams.value?.requiredArrivalTimeRange, 'requiredArrivalTime') || {}; + queryParams.value = proxy.addDateRangeNew(queryParams.value, queryParams.value?.actualArrivalTimeRange, 'actualArrivalTime') || {}; + exportDispatchOrder2(queryParams.value); +} </script> +<style lang="scss" scoped> +.avue-dialog .el-dialog__body { + padding: 20px 20px; + flex: 1; + overflow: scroll; +} + +.attachment-image { + .el-image__preview { + z-index: 9999 !important; + } +} +</style> \ No newline at end of file -- Gitblit v1.8.0