| | |
| | | |
| | | <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" |
| | | v-hasPermi="['tms:tmsDispatchOrder:query']" |
| | | @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="false" class="link-btn" |
| | | v-hasPermi="['tms:tmsDispatchOrder:remove']" v-if="row.status == 0" |
| | | <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" |
| | | v-hasPermi="['tms:tmsDispatchOrder:edit']" v-if="[0, 1].includes(row.status)" |
| | | <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> |
| | | |
| | |
| | | |
| | | |
| | | <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" icon="el-icon-document-add"> |
| | | </el-link> |
| | | <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="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" icon="el-icon-set-up"> |
| | | </el-link> |
| | | <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="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="false" icon="el-icon-pointer"> |
| | | </el-link> |
| | | <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="false" icon="el-icon-close"> |
| | | </el-link> |
| | | <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="false" |
| | | v-hasPermi="['tms:tmsDispatchOrder:copyOrder']" |
| | | icon="el-icon-connection"> |
| | | </el-link> |
| | | <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="false" icon="el-icon-upload"> |
| | | </el-link> |
| | | <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="false" icon="el-icon-view"> |
| | | </el-link> |
| | | <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="el-icon-view"> |
| | | |
| | | </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="false" icon="el-icon-circle-check"> |
| | | </el-link> |
| | | <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> |
| | | |
| | | |
| | | </template> |
| | | |
| | |
| | | <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;" |
| | | <el-link type="primary" underline="never" style="font-size:12px;vertical-align: baseline;" |
| | | @click="importTemplate">下载模板</el-link> |
| | | </div> |
| | | </template> |
| | |
| | | <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, |
| | |
| | | getTmsDispatchOrder, |
| | | listTmsDispatchOrder, |
| | | updateTmsDispatchOrder, |
| | | tmsDispatchOrderRecord, |
| | | confirmOrder, |
| | | copyOrder, |
| | | okOrder, |
| | |
| | | import { pushTmsQuoteFee } from "@/api/tms/tmsQuoteFee"; |
| | | import { $Print } from '@smallwei/avue' |
| | | import { getToken } from "@/utils/auth"; |
| | | import {useAvueTableShowHide} from "@/hooks/useAvueTableShowHide"; |
| | | import { useAvueTableShowHide } from "@/hooks/useAvueTableShowHide"; |
| | | |
| | | const { appContext } = getCurrentInstance(); |
| | | |
| | |
| | | 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, |
| | | }, |
| | |
| | | } = toRefs(data); |
| | | const option = ref({ |
| | | menuType: 'icon', |
| | | |
| | | viewBtn: false, // 关闭原生查看 |
| | | editBtn: false, // 关闭原生编辑 |
| | | delBtn: false, // 关闭原生编辑 |
| | |
| | | }, |
| | | latestDeparture: { |
| | | label: '要求最晚出发时间', |
| | | value: getNextDayMidnight(), |
| | | type: 'datetime', // 改为 datetime 类型 |
| | | format: 'YYYY-MM-DD HH:mm:ss', labelWidth: 150, |
| | | valueFormat: 'YYYY-MM-DD HH:mm:ss', |
| | |
| | | }, |
| | | latestArrival: { |
| | | label: '要求最晚到达时间', labelWidth: 150, |
| | | value: getNextDayMidnight(), |
| | | type: 'datetime', // 改为 datetime 类型 |
| | | format: 'YYYY-MM-DD HH:mm:ss', |
| | | valueFormat: 'YYYY-MM-DD HH:mm:ss', |
| | |
| | | label: '调度单号', minWidth: 180, |
| | | display: false, |
| | | search: true, |
| | | overHidden: true |
| | | }, |
| | | licensePlate: { |
| | | label: '车牌号', minWidth: 120, |
| | | display: false, |
| | | search: true, |
| | | overHidden: true |
| | | }, |
| | | customerName: { |
| | | label: '客户', |
| | | display: false, minWidth: 250, |
| | | search: true, |
| | | overHidden: true |
| | | }, |
| | | mainDriverName: { |
| | | label: '主驾驶员', |
| | | display: false, minWidth: 120, |
| | | search: true, |
| | | overHidden: true |
| | | }, |
| | | requiredVehicleTypes: { |
| | | label: '下单车型', minWidth: 130, |
| | |
| | | |
| | | }, |
| | | 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: 250, |
| | | search: true, |
| | | overHidden: true |
| | | }, |
| | | |
| | | contractName: { |
| | | label: '关联合同名称', minWidth: 250, |
| | | display: false, |
| | | search: true, |
| | | overHidden: true |
| | | }, |
| | | orderType: { |
| | | label: '订单类型', |
| | |
| | | label: '车辆服务商名称', minWidth: 150, |
| | | display: false, |
| | | search: true, |
| | | overHidden: true |
| | | }, |
| | | |
| | | |
| | |
| | | label: '装货点名称', |
| | | display: false, minWidth: 200, |
| | | search: true, |
| | | overHidden: true |
| | | }, |
| | | receiverName: { |
| | | label: '卸货点名称', minWidth: 200, |
| | | display: false, |
| | | search: true, |
| | | overHidden: true |
| | | }, |
| | | // accountsReceivableStatus: { |
| | | // label: '应收费用生成状态', minWidth: 160, |
| | |
| | | |
| | | }, |
| | | 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, |
| | |
| | | viewDisplay: false, |
| | | hide: false, |
| | | search: false, |
| | | overHidden: true, |
| | | searchSpan: 6, |
| | | }, |
| | | |
| | | updateBy: { |
| | |
| | | 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 |
| | | }, |
| | | |
| | | } |
| | |
| | | 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 }; |
| | | console.log(newParams, '2'); |
| | | 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. 通用清洗:删除所有空字符串、null 或 undefined 的其他字段 |
| | | Object.keys(newParams).forEach(key => { |
| | | const val = newParams[key]; |
| | | if (val === '' || val === null || val === undefined) { |
| | | delete newParams[key]; |
| | | } |
| | | }); |
| | | |
| | | } else { |
| | | newParams = {}; |
| | | } |
| | | |
| | | console.log('最终发送给接口的参数:', 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') { |
| | |
| | | } |
| | | |
| | | const submitForm3 = () => { |
| | | updateTmsDispatchOrder(actualForm.value).then(res => { |
| | | tmsDispatchOrderRecord(actualForm.value).then(res => { |
| | | ElMessage({ |
| | | message: "操作成功!", |
| | | type: 'success' |
| | |
| | | //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) { |
| | |
| | | message: "操作成功!", |
| | | type: 'success' |
| | | }) |
| | | open4.value = false; |
| | | onLoad(page.value) |
| | | open4.value = false; |
| | | onLoad(page.value) |
| | | boxFormRef.value?.resetFields(); |
| | | getTab4Data(); |
| | | }) |
| | |
| | | } |
| | | done(); // 必须调用 done 结束上传状态 |
| | | }; |
| | | |
| | | |
| | | 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 { |
| | |
| | | padding: 1px 11px; |
| | | box-shadow: 0 0 0 1px var(--el-disabled-border-color) inset; |
| | | } |
| | | .link-btn{ |
| | | |
| | | .link-btn { |
| | | font-size: 18px; |
| | | } |
| | | </style> |