From 90c4fbd121dd18013e333346c99bbc9844cd6fec Mon Sep 17 00:00:00 2001
From: zhangback <zhangback@163.com>
Date: 星期一, 08 十二月 2025 13:24:16 +0800
Subject: [PATCH] 提交
---
ui/admin-ui3/src/views/tms/tmsDispatchOrder/index.vue | 3729 ++++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 3,157 insertions(+), 572 deletions(-)
diff --git a/ui/admin-ui3/src/views/tms/tmsDispatchOrder/index.vue b/ui/admin-ui3/src/views/tms/tmsDispatchOrder/index.vue
index 9cbf189..afdb80f 100644
--- a/ui/admin-ui3/src/views/tms/tmsDispatchOrder/index.vue
+++ b/ui/admin-ui3/src/views/tms/tmsDispatchOrder/index.vue
@@ -21,21 +21,21 @@
@on-load="onLoad"
>
<template #menu-left>
- <el-button
- type="success"
- icon="Edit"
- :disabled="pageF.single"
- v-hasPermi="['tms:tmsDispatchOrder:edit']"
- @click="handleUpdate">淇敼
- </el-button>
- <el-button
- type="danger"
- icon="Delete"
- :disabled="pageF.multiple"
- @click="handleDelete"
- v-hasPermi="['tms:tmsDispatchOrder:remove']"
- >鍒犻櫎
- </el-button>
+ <!-- <el-button-->
+ <!-- type="success"-->
+ <!-- icon="Edit"-->
+ <!-- :disabled="pageF.single"-->
+ <!-- v-hasPermi="['tms:tmsDispatchOrder:edit']"-->
+ <!-- @click="handleUpdate">淇敼-->
+ <!-- </el-button>-->
+ <!-- <el-button-->
+ <!-- type="danger"-->
+ <!-- icon="Delete"-->
+ <!-- :disabled="pageF.multiple"-->
+ <!-- @click="handleDelete"-->
+ <!-- v-hasPermi="['tms:tmsDispatchOrder:remove']"-->
+ <!-- >鍒犻櫎-->
+ <!-- </el-button>-->
<el-button
type="warning"
plain
@@ -44,8 +44,257 @@
v-hasPermi="['tms:tmsDispatchOrder:export']"
>瀵煎嚭
</el-button>
+ <el-button
+ type="success"
+ icon="Promotion"
+ :disabled="pageF.multiple"
+ @click="handleGenerate"
+ v-hasPermi="['tms:tmsDispatchOrder:generate']"
+ >鐢熸垚搴旀敹搴斾粯璐圭敤
+ </el-button>
+ <el-button
+ type="warning"
+ icon="Female"
+ :disabled="pageF.single"
+ @click="handleDropHook"
+ v-hasPermi="['tms:tmsDispatchOrder:dropHook']"
+ >鐢╂寕
+ </el-button>
+ <el-button
+ type="primary"
+ icon="Male"
+ :disabled="pageF.single"
+ @click="handleConnectHang"
+ v-hasPermi="['tms:tmsDispatchOrder:connectHang']"
+ >鎺ユ寕
+ </el-button>
+
+ <el-button
+ type="warning"
+ icon="Avatar"
+ :disabled="!( isCustoms == 0)"
+ @click="handleCustoms"
+ v-hasPermi="['tms:tmsDispatchOrder:customs']"
+ >濮旀墭鎶ュ叧淇℃伅
+ </el-button>
+ <el-button
+ type="primary"
+ icon="UserFilled"
+ :disabled="!( isLoad == 0)"
+ @click="handleLoading"
+ v-hasPermi="['tms:tmsDispatchOrder:loading']"
+ >濮旀墭鍗歌揣淇℃伅
+ </el-button>
</template>
+ <template #menu-before="{row}">
+ <el-link size="small" type="primary" @click="handleAddGoods(row)" class="link-btn"
+ v-hasPermi="['tms:tmsGoodsDetail:add']"
+ :underline="false" icon="el-icon-document-add">杩愯緭璐у搧鐧昏
+ </el-link>
+ <el-link size="small" type="primary" @click="handleActual(row)" class="link-btn"
+ v-hasPermi="['tms:tmsDispatchOrder:update']"
+ :underline="false" icon="el-icon-set-up">瀹為檯杩愯緭璁板綍
+ </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="false" icon="el-icon-pointer">纭畾
+ </el-link>
+ <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" 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="![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="[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,3].includes(row.status)" @click="handleAddFinance(row)"
+ class="link-btn" v-hasPermi="['tms:tmsFinanceDetail:add']"
+ :underline="false" icon="el-icon-edit-pen">璐圭敤鐧昏
+ </el-link>
+ </template>
+ <template #menu="{row}">
+ <el-link size="small" type="primary" @click="handleLog(row)" class="link-btn" :underline="false"
+ icon="el-icon-tickets">鏃ュ織
+ </el-link>
+ </template>
+
+ <template #shipperId-form="{disabled}">
+ <div style="display:flex; align-items: center;justify-content: space-between">
+ <avue-input-table :props="consignorProps"
+ :children="consignorOption" :disabled="disabled"
+ :on-load="onShipperLoad" suffixIcon="search"
+ v-model="form.shipperId" style="width: 80%"
+ @change="changeShipper"
+ placeholder="璇烽�夋嫨瑁呰揣鐐�"></avue-input-table>
+ <el-button icon="plus" :disabled="disabled" @click="handleAddShipper"></el-button>
+ </div>
+ </template>
+ <template #receiverId-form="{disabled}">
+ <div style="display:flex; align-items: center;justify-content: space-between">
+ <avue-input-table :props="consignorProps"
+ :children="consignorOption"
+ :on-load="onConsignorLoad" suffixIcon="search"
+ v-model="form.receiverId" :disabled="disabled"
+ @change="changeReceiver" style="width: 80%"
+ placeholder="璇烽�夋嫨鍗歌揣鐐�"></avue-input-table>
+ <el-button icon="plus" :disabled="disabled" @click="handleAddReceiver"></el-button>
+ </div>
+ </template>
+
</avue-crud>
+ <el-dialog :title="pageF.title" v-model="pageF.open" class="avue-dialog avue-dialog--top" width="80%">
+ <h2 v-if="optionType == 'addFinance'">鎶ヤ环璐圭敤</h2>
+ <avue-crud v-if="optionType == 'addFinance'"
+ :option="itemsTableOption"
+ :data="itemsTableData"
+ @selection-change="selectionChange2"
+ >
+ <template #count="{row}">
+ <el-input-number v-model="row.count" @change="countChange(row)" placeholder="璇疯緭鍏ヨ璐规暟閲�"
+ min="0"></el-input-number>
+ </template>
+ </avue-crud>
+ <h2 v-if="optionType == 'addFinance'">瀹炴姤瀹為攢璐圭敤</h2>
+ <avue-form v-if="optionType == 'addItinerary' || optionType == 'addFinance'" v-model="boxForm" ref="boxFormRef"
+ :option="boxFormOption">
+
+ </avue-form>
+ <avue-crud
+ :option="boxTableOption"
+ :data="boxTableData"
+ >
+ </avue-crud>
+ <template #footer>
+ <div class="dialog-footer">
+ <el-button type="primary" v-if="optionType == 'addItinerary' || optionType == 'addFinance'"
+ :loading="pageF.isUploading" @click="submitForm">
+ {{ pageF.isUploading ? '鎻愪氦涓�' : '纭� 瀹�' }}
+ </el-button>
+
+ <el-button type="primary" v-if="optionType == 'generate' " :loading="pageF.isUploading"
+ @click="submitGenerate">
+ {{ pageF.isUploading ? '鐢熸垚涓�' : '鐢熸垚璐圭敤' }}
+ </el-button>
+ <el-button @click="cancelBox">鍙� 娑�</el-button>
+ </div>
+ </template>
+ </el-dialog>
+
+ <el-dialog :title="title" v-model="open" class="avue-dialog avue-dialog--top" width="40%">
+ <div v-if="optionType === 'dropHook'">
+ <el-descriptions
+ :column="2"
+ border
+ >
+ <el-descriptions-item label="璋冨害鍗曞彿">{{ form.dispatchNo }}</el-descriptions-item>
+ <el-descriptions-item label="瀹㈡埛">{{ form.customerName }}</el-descriptions-item>
+ <el-descriptions-item label="瀹為檯杩愯緭宸ュ叿绫诲瀷">{{ form.$actualVehicleType }}</el-descriptions-item>
+ <el-descriptions-item label="杩愯緭宸ュ叿鍙风爜">{{ form.licensePlate }}</el-descriptions-item>
+ <el-descriptions-item label="鎵樻灦鍙�">{{ form.shelfCode }}</el-descriptions-item>
+ <el-descriptions-item label="涓婚┚椹跺憳">{{ form.mainDriverName }}</el-descriptions-item>
+ <el-descriptions-item label="鍓┚椹跺憳">{{ form.assistantDriverName }}</el-descriptions-item>
+ </el-descriptions>
+ </div>
+ <div v-if="optionType == 'connectHang'">
+ <el-descriptions style="margin-bottom: 20px"
+ :column="2"
+ border
+ >
+ <el-descriptions-item label="璋冨害鍗曞彿">{{ form.dispatchNo }}</el-descriptions-item>
+ <el-descriptions-item label="瀹㈡埛">{{ form.customerName }}</el-descriptions-item>
+ <el-descriptions-item label="瀹為檯杩愯緭宸ュ叿绫诲瀷">{{ form.$actualVehicleType }}</el-descriptions-item>
+ <el-descriptions-item label="鎵樻灦鍙�">{{ form.shelfCode }}</el-descriptions-item>
+ </el-descriptions>
+ <avue-form v-model="form" ref="boxFormRef" :option="boxFormOption">
+
+ </avue-form>
+ </div>
+
+ <div v-if="optionType == 'customs'">
+ <el-descriptions style="margin-bottom: 20px"
+ :column="2"
+ border
+ >
+ <el-descriptions-item label="璋冨害鍗曞彿">{{ form.dispatchNo }}</el-descriptions-item>
+ <el-descriptions-item label="瀹㈡埛">{{ form.customerName }}</el-descriptions-item>
+ <el-descriptions-item label="椤圭洰鍚嶇О">{{ form.projectName }}</el-descriptions-item>
+ <el-descriptions-item label="杩愯緭璺嚎">{{ form.transportLine }}</el-descriptions-item>
+ </el-descriptions>
+ <avue-form v-model="form" ref="boxFormRef" :option="boxFormOption">
+
+ </avue-form>
+ </div>
+
+ <div v-if="optionType == 'loading'">
+ <el-descriptions style="margin-bottom: 20px"
+ :column="2"
+ border
+ >
+ <el-descriptions-item label="璋冨害鍗曞彿">{{ form.dispatchNo }}</el-descriptions-item>
+ <el-descriptions-item label="瀹㈡埛">{{ form.customerName }}</el-descriptions-item>
+ <el-descriptions-item label="椤圭洰鍚嶇О">{{ form.projectName }}</el-descriptions-item>
+ <el-descriptions-item label="杩愯緭璺嚎">{{ form.transportLine }}</el-descriptions-item>
+ </el-descriptions>
+ <avue-form v-model="form" ref="boxFormRef" :option="boxFormOption">
+
+ </avue-form>
+ </div>
+ <template #footer>
+ <div class="dialog-footer">
+ <el-button type="primary" :loading="pageF.isUploading" @click="submitForm2">
+ {{ pageF.isUploading ? '鎻愪氦涓�' : '纭� 瀹�' }}
+ </el-button>
+ <el-button @click="cancelBox2">鍙� 娑�</el-button>
+ </div>
+ </template>
+ </el-dialog>
+
+
+ <el-dialog title="璐у搧淇℃伅鐧昏" v-model="open2" class="avue-dialog avue-dialog--top" width="80%">
+ <avue-crud
+ :option="goodsTableOption"
+ v-model="goodsForm"
+ @row-update="rowGoodsUpdate"
+ @row-save="rowGoodsSave"
+ @row-del="rowGoodsDel"
+ :data="goodsTableData" ref="goodsCrudRef"
+ >
+ </avue-crud>
+ <!-- <template #footer>-->
+ <!-- <div class="dialog-footer">-->
+ <!-- <el-button type="primary" :loading="pageF.isUploading" @click="submitForm2">-->
+ <!-- {{ pageF.isUploading ? '鎻愪氦涓�' : '纭� 瀹�' }}-->
+ <!-- </el-button>-->
+ <!-- <el-button @click="open2 = false">鍙� 娑�</el-button>-->
+ <!-- </div>-->
+ <!-- </template>-->
+ </el-dialog>
+
+ <el-dialog title="瀹為檯杩愯緭淇℃伅" v-model="open3" class="avue-dialog avue-dialog--top" width="80%">
+ <avue-form v-model="actualForm"
+ ref="actualFormRef"
+ :option="actualFormOption">
+
+ </avue-form>
+ <template #footer>
+ <div class="dialog-footer">
+ <el-button type="primary" :loading="pageF.isUploading" @click="submitForm3">
+ {{ pageF.isUploading ? '鎻愪氦涓�' : '纭� 瀹�' }}
+ </el-button>
+ <el-button @click="open3 = false">鍙� 娑�</el-button>
+ </div>
+ </template>
+ </el-dialog>
+
+
</basicContainer>
</template>
@@ -57,26 +306,57 @@
exportTmsDispatchOrder,
getTmsDispatchOrder,
listTmsDispatchOrder,
- updateTmsDispatchOrder
+ updateTmsDispatchOrder,
+ confirmOrder, copyOrder, okOrder, initGenerate, generateTmsDispatchOrder, dropHook, connectHang,customsOrder,loadingOrder,
} from "@/api/tms/tmsDispatchOrder";
import useCurrentInstance from "@/utils/useCurrentInstance";
-import {computed, reactive, ref, toRefs} from "vue";
+import {computed, onMounted, reactive, ref, toRefs, watch, getCurrentInstance} from "vue";
import {PagesInterface, PageQueryInterface} from "@/utils/globalInterface";
import {usePagePlus} from "@/hooks/usePagePlus";
import {hasPermission} from "@/utils/permissionUtils";
+import {getTmsProject, listTmsProject} from "@/api/tms/tmsProject";
+import {getTmsServiceProvider, listTmsServiceProvider} from "@/api/tms/tmsServiceProvider";
+import {getTmsLoadingServiceProvider, listTmsLoadingServiceProvider} from "@/api/tms/tmsLoadingServiceProvider";
+import {getTmsCustomsServiceProvider, listTmsCustomsServiceProvider} from "@/api/tms/tmsCustomsServiceProvider";
+import {getTmsDriver, listTmsDriver} from "@/api/tms/tmsDriver";
+import {getTmsVehicle, listTmsVehicle} from "@/api/tms/tmsVehicle";
+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 {addTmsTrip, listTmsTrip} from "@/api/tms/tmsTrip";
+import {addTmsFinanceDetail, listTmsFinanceDetail, updateTmsFinanceDetail} from "@/api/tms/tmsFinanceDetail";
+import {getTmsProductInfo, listTmsProductInfo} from "@/api/tms/tmsProductInfo";
+import {addTmsGoodsDetail, delTmsGoodsDetail, listTmsGoodsDetail, updateTmsGoodsDetail} from "@/api/tms/tmsGoodsDetail";
+import {getTransportRouteVi, listTransportRouteVi} from "@/api/tms/tmsTransportRouteVi";
+import {listTmsQuoteItem} from "@/api/tms/tmsQuotePlanItem";
+import {$DialogForm} from '@smallwei/avue'
+import {getTmsCustomerInfo, listTmsCustomerInfo} from "@/api/tms/tmsCustomerInfo";
+import {getAddressCode} from "@/api/tms/tmsRegion";
+import {mapRegeo} from "@/api/common";
+
+const {appContext} = getCurrentInstance();
const {proxy} = useCurrentInstance();
const crudRef = ref();
+const boxFormRef = ref();
+const goodsCrudRef = ref();
+const actualFormRef = ref();
-const permissionList = computed(() => {
- return {
- addBtn: hasPermission(["tms:tmsDispatchOrder:add"]),
- delBtn: hasPermission(["tms:tmsDispatchOrder:remove"]),
- editBtn: hasPermission(["tms:tmsDispatchOrder:edit"]),
- viewBtn: hasPermission(["tms:tmsDispatchOrder:query"]),
+
+const permissionList = (key: any, row: any, index: any) => {
+ if (key == 'addBtn') {
+ return hasPermission(["tms:tmsDispatchOrder:add"])
+ } else if (key == 'delBtn') {
+ return hasPermission(["tms:tmsDispatchOrder:remove"]) && row?.status == 0
+ } else if (key == 'editBtn') {
+ return hasPermission(["tms:tmsDispatchOrder:edit"]) && [0, 1].includes(row?.status)
+ } else if (key == 'viewBtn') {
+ return hasPermission(["tms:tmsDispatchOrder:query"])
+ } else {
+ return true;
}
-})
-
+};
const data = reactive({
form: <TmsDispatchOrderI>{},
queryParams: <TmsDispatchOrderI & PageQueryInterface>{},
@@ -86,583 +366,1158 @@
currentPage: 1,
},
selectionList: [],
+ optionType: '',
+ boxTableData: <any>[],
+ boxForm: <any>{},
+ boxFormOption: <any>{},
+ boxTableOption: <any>{},
+ title: '',
+ open: false,
+ open2: false,
+ goodsTableData: <any>[],
+ selectionList2: <any>[],
+ goodsForm: <any>{},
+ open3: false,
+ actualForm: <any>{},
+ isCustoms:<any> -1,
+ isLoad: -1,
})
-const {queryParams, form, page, selectionList} = toRefs(data);
+const {
+ queryParams, form, page, selectionList, open3,
+ boxTableData, optionType,
+ boxFormOption, boxForm, boxTableOption, title, open, open2,
+ goodsTableData, goodsForm, actualForm, selectionList2,isCustoms,isLoad
+} = toRefs(data);
const option = ref({
pageKey: 'TmsDispatchOrder',
rowKey: 'id',
- group:[
+ labelWidth: 130,
+ searchSpan: 6,
+ searchLabelWidth: 150,
+ menuWidth: 300,
+ group: [
{
label: '鍩烘湰淇℃伅',
prop: 'jbxx',
- column:{
- dispatchNo: {
- label: '璋冨害鍗曞彿',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: true,
- hide: false,
- search: true,
+ column: {
+
+ quoteDetailId: {
+ label: '杩愯緭绾胯矾', span: 24,
+ display: true,
rules: [
{
required: true,
- message: "璋冨害鍗曞彿涓嶈兘涓虹┖", trigger: "blur"
+ message: "璇烽�夋嫨杩愯緭璺嚎", trigger: "change"
}
],
+ type: 'table', suffixIcon: 'search',dataType: 'string',
+ change: (val: any) => {
+ console.log(val)
+ const table = crudRef.value?.getPropRef?.('quoteDetailId')?.$refs?.temp;
+ if (!table) return;
+ let active = table.active;
+ if (Array.isArray(active)) active = active[0];
+ if (active) {
+ console.log(active)
+ Object.assign(form.value, {
+ quoteDetailId: active.quoteDetailId,
+ transportLine: active.transportRoute,
+ startRegionCode: active.startRegionCode,
+ endRegionCode: active.endRegionCode,
+ projectId: active.projectId,
+ projectName: active.projectName,
+ customerId: active.customerId,
+ customerName: active.customerFullName,
+ customerCode: active.customerCode,
+ contractId: active.contractId,
+ contractName: active.contractName,
+ requiredVehicleTypes: active.vehicleType,
+ quotePlanId: active.quotePlanId,
+ });
+ }
+ },
+ children: {
+ border: true,
+ searchMenuSpan: 5,
+ column: {
+ transportRoute: {
+ label: '杩愯緭璺嚎', minWidth: 130,
+ search: true,
+ },
+ customerFullName: {
+ label: '瀹㈡埛鍏ㄧО', minWidth: 120,
+ search: true,
+ },
+ projectName: {
+ label: '鍏宠仈椤圭洰',
+ display: false, minWidth: 150,
+ search: true,
+ },
+
+ contractName: {
+ label: '鍏宠仈鍚堝悓',
+ display: false, minWidth: 150,
+ search: true,
+ },
+ vehicleType: {
+ label: '杞﹀瀷', dataType: 'string',
+ type: 'select', dicUrl: '/system/dict/data/type/vehicle_type', minWidth: 150,
+ hide: false,
+ search: true,
+ },
+ },
+
+ },
+ props: {
+ label: 'transportRoute',
+ value: 'quoteDetailId'
+ },
+ onLoad: ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
+ if (value) {
+ let id = value;
+ if (Array.isArray(value)) {
+ id = value[0]
+ }
+ getTransportRouteVi(id).then(res => {
+ return callback(res.data || {})
+ })
+ } else {
+ listTransportRouteVi({pageSize: page.pageSize, pageNum: page.currentPage, ...data}).then(res => {
+ return callback({
+ total: res.total,
+ data: res.rows || [],
+ })
+ })
+ }
+
+ }
},
customerName: {
label: '瀹㈡埛鍚嶇О',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: true,
- hide: false,
- search: true,
- rules: [
- {
- required: true,
- message: "瀹㈡埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur"
- }
- ],
- },
- customerCode: {
- label: '瀹㈡埛缂栫爜',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
+ display: true, disabled: true
},
projectName: {
- label: '椤圭洰鍚嶇О',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: true,
- hide: false,
- search: true,
+ label: '鍏宠仈椤圭洰',
+ display: true, disabled: true
+ },
+ // customerCode: {
+ // label: '瀹㈡埛缂栫爜',
+ // display: true,disabled:true
+ // },
+ contractName: {
+ label: '鍏宠仈鍚堝悓',
+ display: true, disabled: true
+ },
+ requiredVehicleTypes: {
+ label: '涓嬪崟杞﹀瀷', disabled: true,
+ display: true, type: 'select', dicUrl: '/system/dict/data/type/vehicle_type', dataType: 'string',
rules: [
{
required: true,
- message: "椤圭洰鍚嶇О涓嶈兘涓虹┖", trigger: "blur"
+ message: "涓嬪崟杞﹀瀷涓嶈兘涓虹┖", trigger: "blur"
}
],
},
- transportPlanNo: {
- label: '杩愯緭璁″垝缂栧彿',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: true,
- hide: false,
- search: true,
+ orderType: {
+ label: '璁㈠崟绫诲瀷',
+ display: true,
+ type: 'select', dataType: 'string',
+ dicUrl: '/system/dict/data/type/order_type',
rules: [
{
required: true,
- message: "杩愯緭璁″垝缂栧彿涓嶈兘涓虹┖", trigger: "blur"
+ message: "璁㈠崟绫诲瀷涓嶈兘涓虹┖", trigger: "change"
}
],
+ change: ({value}: any) => {
+ option.value.group.forEach((item: any) => {
+ if (item.prop == 'pcxx') {
+ item.column.shipperId.rules.forEach((cItem: any) => {
+ cItem.required = !(value == 1);
+ });
+ item.column.receiverId.rules.forEach((cItem: any) => {
+ cItem.required = !(value == 1);
+ });
+ }
+ })
+ }
},
- }
+ // signType: {
+ // label: '绛炬敹绫诲瀷',
+ // display: true,
+ // type: 'select', dataType: 'string',
+ // dicUrl: '/system/dict/data/type/sign_type',
+ // rules: [
+ // {
+ // required: true,
+ // message: "绛炬敹绫诲瀷涓嶈兘涓虹┖", trigger: "change"
+ // }
+ // ],
+ // },
- }
+ // loadingServiceProviderId: {
+ // label: '瑁呰揣鏈嶅姟鍟�',
+ // display: true,
+ // rules: [
+ // {
+ // required: true,
+ // message: "瑁呰揣鏈嶅姟鍟嗕笉鑳戒负绌�", trigger: "change"
+ // }
+ // ],
+ // change: (val: any) => {
+ // const table = crudRef.value?.getPropRef?.('loadingServiceProviderId')?.$refs?.temp;
+ // if (!table) return;
+ // let active = table.active;
+ // if (Array.isArray(active)) active = active[0];
+ // if (active) {
+ // Object.assign(form.value, {
+ // loadingServiceProviderId: active.id,
+ // loadingServiceProviderName: active.serviceShortName,
+ // });
+ // }
+ // },
+ // type: 'table', suffixIcon: 'search',
+ // children: {
+ // border: true,
+ // searchLabelWidth: 100,
+ // searchMenuSpan: 5,
+ // column: {
+ // serviceCode: {
+ // label: '鏈嶅姟鍟嗙紪鐮�', minWidth: 130,
+ // search: true,
+ // },
+ // serviceShortName: {
+ // label: '鏈嶅姟鍟嗙畝绉�', minWidth: 120,
+ // search: true,
+ // },
+ // serviceType: {
+ // label: '鏈嶅姟绫诲瀷', multiple: true,
+ // type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/service_type',
+ // minWidth: 150,
+ // },
+ // contactName: {
+ // label: '鑱旂郴浜哄鍚�', minWidth: 120,
+ // },
+ // },
+ //
+ // },
+ // props: {
+ // label: 'serviceShortName',
+ // value: 'id'
+ // },
+ // onLoad: ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
+ // if (value) {
+ // let id = value;
+ // if (Array.isArray(value)) {
+ // id = value[0]
+ // }
+ // getTmsLoadingServiceProvider(id).then(res => {
+ // return callback(res.data || {})
+ // })
+ // } else {
+ // listTmsLoadingServiceProvider({pageSize: page.pageSize, pageNum: page.currentPage, ...data}).then(res => {
+ // return callback({
+ // total: res.total,
+ // data: res.rows || [],
+ // })
+ // })
+ // }
+ //
+ // }
+ //
+ // },
+ // customsServiceProviderId: {
+ // label: '鎶ュ叧鏈嶅姟鍟�',
+ // display: true,
+ // rules: [
+ // {
+ // required: true,
+ // message: "鎶ュ叧鏈嶅姟鍟嗕笉鑳戒负绌�", trigger: "change"
+ // }
+ // ],
+ // change: (val: any) => {
+ // const table = crudRef.value?.getPropRef?.('customsServiceProviderId')?.$refs?.temp;
+ // if (!table) return;
+ // let active = table.active;
+ // if (Array.isArray(active)) active = active[0];
+ // if (active) {
+ // Object.assign(form.value, {
+ // customsServiceProviderId: active.id,
+ // customsServiceProviderName: active.serviceShortName,
+ // });
+ // }
+ // },
+ // type: 'table', suffixIcon: 'search',
+ // children: {
+ // border: true,
+ // searchLabelWidth: 100,
+ // searchMenuSpan: 5,
+ // column: {
+ // serviceCode: {
+ // label: '鏈嶅姟鍟嗙紪鐮�', minWidth: 130,
+ // search: true,
+ // },
+ // serviceShortName: {
+ // label: '鏈嶅姟鍟嗙畝绉�', minWidth: 120,
+ // search: true,
+ // },
+ // serviceType: {
+ // label: '鏈嶅姟绫诲瀷', multiple: true,
+ // type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/service_type',
+ // minWidth: 150,
+ // },
+ // contactName: {
+ // label: '鑱旂郴浜哄鍚�', minWidth: 120,
+ // },
+ // },
+ //
+ // },
+ // props: {
+ // label: 'serviceShortName',
+ // value: 'id'
+ // },
+ // onLoad: ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
+ // if (value) {
+ // let id = value;
+ // if (Array.isArray(value)) {
+ // id = value[0]
+ // }
+ // getTmsCustomsServiceProvider(id).then(res => {
+ // return callback(res.data || {})
+ // })
+ // } else {
+ // listTmsCustomsServiceProvider({pageSize: page.pageSize, pageNum: page.currentPage, ...data}).then(res => {
+ // return callback({
+ // total: res.total,
+ // data: res.rows || [],
+ // })
+ // })
+ // }
+ //
+ // }
+ // },
+ isCustoms: {
+ label: '濮旀墭鎶ュ叧',
+ display: true,
+ type: 'radio', dicUrl: '/system/dict/data/type/sys_number_is', dataType: 'string',
+ rules: [
+ {
+ required: true,
+ message: "濮旀墭鎶ュ叧涓嶈兘涓虹┖", trigger: "blur"
+ }
+ ],
+ },
+ isLoad: {
+ label: '濮旀墭瑁呭嵏',
+ display: true,
+ type: 'radio', dicUrl: '/system/dict/data/type/sys_number_is', dataType: 'string',
+ rules: [
+ {
+ required: true,
+ message: "濮旀墭瑁呭嵏涓嶈兘涓虹┖", trigger: "blur"
+ }
+ ],
+ },
+ isUrgent: {
+ label: '鏄惁绱ф��',value: '1',
+ display: true,
+ type: 'radio', dicUrl: '/system/dict/data/type/sys_number_is', dataType: 'string',
+ rules: [
+ {
+ required: true,
+ message: "鏄惁绱ф�ヤ笉鑳戒负绌�", trigger: "blur"
+ }
+ ],
+ },
+ // transportType: {
+ // label: '杩愯緭鏂瑰紡',
+ // display: true, type: 'select', dicUrl: '/system/dict/data/type/dispatch_transport_mode', dataType: 'string',
+ //
+ // },
+ // loadMethod: {
+ // label: '閰嶈浇鏂瑰紡',
+ // display: true, type: 'select', dicUrl: '/system/dict/data/type/load_method', dataType: 'string',
+ // },
+ latestDeparture: {
+ label: '瑕佹眰鏈�鏅氬嚭鍙戞椂闂�',
+ type: 'datetime', // 鏀逛负 datetime 绫诲瀷
+ format: 'YYYY-MM-DD HH:mm:ss', labelWidth: 150,
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ display: true,
+ rules: [
+ {
+ required: true,
+ message: "瑕佹眰鏈�鏅氬嚭鍙戞椂闂翠笉鑳戒负绌�", trigger: "blur"
+ }
+ ],
+ },
+ latestArrival: {
+ label: '瑕佹眰鏈�鏅氬埌杈炬椂闂�', labelWidth: 150,
+ type: 'datetime', // 鏀逛负 datetime 绫诲瀷
+ format: 'YYYY-MM-DD HH:mm:ss',
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ display: true,
+ rules: [
+ {
+ required: true,
+ message: "瑕佹眰鏈�鏅氬埌杈炬椂闂翠笉鑳戒负绌�", trigger: "blur"
+ }
+ ],
+ },
+
+
+ }
+ },
+ {
+ label: '娲捐溅淇℃伅',
+ prop: 'pcxx',
+ column: {
+ operationMode: {
+ label: '鏄惁鏄嚜钀ヨ溅闃�', value: 0,
+ type: 'radio', dataType: 'string', dicUrl: '/system/dict/data/type/sys_number_is',
+ rules: [
+ {
+ required: true,
+ message: "鏄惁鏄嚜钀ヨ溅闃熶笉鑳戒负绌�", trigger: "change"
+ }
+ ],
+ change: ({value}: any) => {
+ console.log(value)
+ option.value.group.forEach((item: any) => {
+ if (item.prop == 'pcxx') {
+ item.column.commissionModel.display = value != 1;
+ item.column.containerId.display = value != 1;
+ item.column.shelfId.display = value != 1;
+ item.column.vehicleProviderId.display = value == 1;
+ item.column.containerNo.display = value == 1;
+ item.column.shelfCode.display = value == 1;
+ // item.column.vehicleProviderId.rules.forEach((cItem: any) => {
+ // cItem.required = value == 1;
+ // });
+ }
+ })
+
+ },
+ },
+ commissionModel:{
+ label: '鎻愭垚妯″紡',
+ display: true, type: 'radio', dicUrl: '/system/dict/data/type/commission_model', dataType: 'string',
+ rules: [
+ {
+ required: true,
+ message: "鎻愭垚妯″紡涓嶈兘涓虹┖", trigger: "change"
+ }
+ ],
+ },
+ vehicleProviderId: {
+ label: '杞﹁締鏈嶅姟鍟�',
+ display: true,
+ rules: [
+ {
+ required: true,
+ message: "杞﹁締鏈嶅姟鍟嗕笉鑳戒负绌�", trigger: "change"
+ }
+ ],
+ change: (val: any) => {
+ const table = crudRef.value?.getPropRef?.('vehicleProviderId')?.$refs?.temp;
+ if (!table) return;
+ let active = table.active;
+ if (Array.isArray(active)) active = active[0];
+ if (active) {
+ Object.assign(form.value, {
+ vehicleProviderId: active.id,
+ vehicleProviderName: active.serviceShortName,
+ });
+ }
+ },
+ type: 'table', suffixIcon: 'search',dataType: 'string',
+ children: {
+ border: true,
+ searchLabelWidth: 100,
+ searchMenuSpan: 5,
+ column: {
+ serviceCode: {
+ label: '鏈嶅姟鍟嗙紪鐮�', minWidth: 130,
+ search: true,
+ },
+ serviceShortName: {
+ label: '鏈嶅姟鍟嗙畝绉�', minWidth: 120,
+ search: true,
+ },
+ serviceType: {
+ label: '鏈嶅姟绫诲瀷', multiple: true,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/service_type',
+ minWidth: 150,
+ },
+ isTransport: {
+ label: '鏄惁杩愯緭鏈嶅姟鍟�',
+ type: 'radio', dataType: 'string', dicUrl: '/system/dict/data/type/sys_number_is',
+ minWidth: 150,
+ },
+ isStorage: {
+ label: '鏄惁浠撳偍鏈嶅姟鍟�',
+ type: 'radio', dataType: 'string', dicUrl: '/system/dict/data/type/sys_number_is',
+ minWidth: 150,
+ },
+ isExpress: {
+ label: '鏄惁蹇�掓湇鍔″晢',
+ type: 'radio', dataType: 'string', dicUrl: '/system/dict/data/type/sys_number_is',
+ minWidth: 150,
+ },
+ contactName: {
+ label: '鑱旂郴浜哄鍚�', minWidth: 120,
+ },
+ },
+
+ },
+ props: {
+ label: 'serviceShortName',
+ value: 'id'
+ },
+ onLoad: ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
+ if (value) {
+ let id = value;
+ if (Array.isArray(value)) {
+ id = value[0]
+ }
+ getTmsServiceProvider(id).then(res => {
+ return callback(res.data || {})
+ })
+ } else {
+ listTmsServiceProvider({pageSize: page.pageSize, pageNum: page.currentPage, ...data}).then(res => {
+ return callback({
+ total: res.total,
+ data: res.rows || [],
+ })
+ })
+ }
+
+ }
+
+ },
+ mainDriverId: {
+ label: '涓婚┚椹跺憳',
+ display: true, dataType: 'string',
+ rules: [
+ {
+ required: true,
+ message: "涓婚┚椹跺憳涓嶈兘涓虹┖", trigger: "change"
+ }
+ ],
+ 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];
+ if (active) {
+ Object.assign(form.value, {
+ mainDriverId: active.id,
+ mainDriverName: active.driverName,
+ });
+ }
+ },
+ type: 'table', suffixIcon: 'search',
+ children: {
+ border: true,
+ searchMenuSpan: 5,
+ column: {
+ vehicleProviderName: {
+ label: '杞﹁締鏈嶅姟鍟�', minWidth: 130,
+ search: true,
+ },
+ driverName: {
+ label: '椹鹃┒鍛樺鍚�', minWidth: 120,
+ search: true,
+ },
+ licenseType: {
+ label: '鍑嗛┚杞﹀瀷', minWidth: 120,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/license_type',
+ search: true, multiple: true,
+ },
+ },
+
+ },
+ props: {
+ label: 'driverName',
+ value: 'id'
+ },
+ onLoad: ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
+ if (value) {
+ let id = value;
+ if (Array.isArray(value)) {
+ id = value[0]
+ }
+ getTmsDriver(id).then(res => {
+ return callback(res.data || {})
+ })
+ } else {
+ listTmsDriver({
+ pageSize: page.pageSize,
+ pageNum: page.currentPage, ...data,
+ carrierType: form.value.operationMode,vehicleProviderId:form.value.vehicleProviderId
+ }).then(res => {
+ return callback({
+ total: res.total,
+ data: res.rows || [],
+ })
+ })
+ }
+
+ }
+
+
+ },
+ assistantDriverId: {
+ label: '鍓┚椹跺憳',
+ display: true, dataType: 'string',
+ change: (val: any) => {
+ const table = crudRef.value?.getPropRef?.('assistantDriverId')?.$refs?.temp;
+ if (!table) return;
+ let active = table.active;
+ if (Array.isArray(active)) active = active[0];
+ if (active) {
+ Object.assign(form.value, {
+ assistantDriverId: active.id,
+ assistantDriverName: active.driverName,
+ });
+ }
+ },
+ type: 'table', suffixIcon: 'search',
+ children: {
+ border: true,
+ searchMenuSpan: 5,
+ column: {
+ vehicleProviderName: {
+ label: '杞﹁締鏈嶅姟鍟�', minWidth: 130,
+ search: true,
+ },
+ driverName: {
+ label: '椹鹃┒鍛樺鍚�', minWidth: 120,
+ search: true,
+ },
+ licenseType: {
+ label: '鍑嗛┚杞﹀瀷', minWidth: 120, multiple: true,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/license_type',
+ search: true,
+ },
+ },
+
+ },
+ props: {
+ label: 'driverName',
+ value: 'id'
+ },
+ onLoad: ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
+ if (value) {
+ let id = value;
+ if (Array.isArray(value)) {
+ id = value[0]
+ }
+ getTmsDriver(id).then(res => {
+ return callback(res.data || {})
+ })
+ } else {
+ listTmsDriver({
+ pageSize: page.pageSize,
+ pageNum: page.currentPage, ...data,vehicleProviderId:form.value.vehicleProviderId,
+ carrierType: form.value.operationMode
+ }).then(res => {
+ return callback({
+ total: res.total,
+ data: res.rows || [],
+ })
+ })
+ }
+
+ }
+
+ },
+ vehicleId: {
+ label: '杞︾墝鍙�', dataType: 'string',
+ display: true,
+ rules: [
+ {
+ required: true,
+ message: "杞︾墝鍙蜂笉鑳戒负绌�", trigger: "change"
+ }
+ ],
+ change: (val: any) => {
+ const table = crudRef.value?.getPropRef?.('vehicleId')?.$refs?.temp;
+ if (!table) return;
+ let active = table.active;
+ if (Array.isArray(active)) active = active[0];
+ if (active) {
+ Object.assign(form.value, {
+ vehicleId: active.id,
+ licensePlate: active.licensePlate,
+ actualVehicleType: active.vehicleType,
+ });
+ }
+ },
+ type: 'table', suffixIcon: 'search',
+ children: {
+ border: true,
+ searchLabelWidth: 100,
+ searchMenuSpan: 5,
+ column: {
+ serviceProviderName: {
+ label: '杞﹁締鏈嶅姟鍟�', minWidth: 130,
+ search: true,
+ },
+ vehicleType: {
+ label: '杞﹁締绫诲瀷', minWidth: 120,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/vehicle_type',
+
+ search: true,
+ },
+ internalCode: {
+ label: '杞﹁締鍐呴儴缂栫爜', minWidth: 120,
+ search: true,
+ },
+ licensePlate: {
+ label: '杞︾墝鍙�', minWidth: 120,
+ search: true,
+ },
+ licenseHk: {
+ label: '棣欐腐鐗岀収', minWidth: 120,
+ search: true,
+ },
+ licenseMo: {
+ label: '婢抽棬鐗岀収', minWidth: 120,
+ search: true,
+ },
+ },
+
+ },
+ props: {
+ label: 'licensePlate',
+ value: 'id'
+ },
+ onLoad: ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
+ if (value) {
+ let id = value;
+ if (Array.isArray(value)) {
+ id = value[0]
+ }
+ getTmsVehicle(id).then(res => {
+ return callback(res.data || {})
+ })
+ } else {
+ listTmsVehicle({
+ pageSize: page.pageSize,
+ pageNum: page.currentPage, ...data,
+ carrierType: form.value.operationMode,serviceProviderId:form.value.vehicleProviderId
+ }).then(res => {
+ return callback({
+ total: res.total,
+ data: res.rows || [],
+ })
+ })
+ }
+
+ }
+
+ },
+ actualVehicleType: {
+ label: '娲惧嚭杞﹀瀷',
+ display: true, type: 'select', dicUrl: '/system/dict/data/type/vehicle_type', dataType: 'string',
+ },
+ shipperId: {
+ label: '瑁呰揣鐐�', dataType: 'string',
+ display: true,
+
+ rules: [
+ {
+ required: false,
+ message: "瑁呰揣鐐逛笉鑳戒负绌�", trigger: "change"
+ }
+ ],
+
+ },
+ shipperRegionLabel: {
+ label: '瑁呰揣鐐硅鏀垮尯鍩�',
+ display: true, disabled: true
+
+ },
+ shipperAddress: {
+ label: '瑁呰揣鐐硅缁嗗湴鍧�',
+ display: true, disabled: true
+ },
+ shipperMobile: {
+ label: '瑁呰揣鐐硅仈绯绘柟寮�',
+ display: true, disabled: true
+ },
+ receiverId: {
+ label: '鍗歌揣鐐�',
+ display: true, dataType: 'string',
+ rules: [
+ {
+ required: true,
+ message: "鍗歌揣鐐逛笉鑳戒负绌�", trigger: "change"
+ }
+ ],
+ },
+ receiverRegionLabel: {
+ label: '鍗歌揣鐐硅鏀垮尯鍩�',
+ display: true, disabled: true
+ },
+ receiverAddress: {
+ label: '鍗歌揣鐐硅缁嗗湴鍧�',
+ display: true, disabled: true
+ },
+ receiverMobile: {
+ label: '鍗歌揣鐐硅仈绯绘柟寮�',
+ display: true, disabled: true
+ },
+ containerNo: {
+ label: '闆嗚绠卞彿',
+ display: false,
+ },
+ containerId: {
+ label: '鍏宠仈闆嗚绠变俊鎭�',
+ display: true,
+ change: (val: any) => {
+ const table = crudRef.value?.getPropRef?.('containerId')?.$refs?.temp;
+ if (!table) return;
+ let active = table.active;
+ if (Array.isArray(active)) active = active[0];
+ if (active) {
+ Object.assign(form.value, {
+ containerId: active.id,
+ containerNo: active.containerCode,
+ });
+ }
+ },
+ type: 'table', suffixIcon: 'search',dataType: 'string',
+ children: {
+ border: true,
+ searchLabelWidth: 100,
+ searchMenuSpan: 5,
+ column: {
+ containerCode: {
+ label: '闆嗚绠卞彿', minWidth: 130,
+ search: true,
+ },
+ containerUseType: {
+ label: '闆嗚绠辩敤閫旂被鍨�', minWidth: 120,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/container_use_type',
+ search: true,
+ },
+ selfLeasType: {
+ label: '鑷绫诲瀷', minWidth: 120,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/self_leas_type',
+ search: true,
+ },
+ containerSize: {
+ label: '绠卞瀷',
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/container_type',
+ display: false,
+ hide: false, minWidth: 150,
+ search: true,
+ },
+ },
+
+ },
+ props: {
+ label: 'containerCode',
+ value: 'id'
+ },
+ onLoad: ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
+ if (value) {
+ let id = value;
+ if (Array.isArray(value)) {
+ id = value[0]
+ }
+ getTmsContainer(id).then(res => {
+ return callback(res.data || {})
+ })
+ } else {
+ listTmsContainer({pageSize: page.pageSize, pageNum: page.currentPage, ...data}).then(res => {
+ return callback({
+ total: res.total,
+ data: res.rows || [],
+ })
+ })
+ }
+
+ }
+
+ },
+ shelfCode: {
+ label: '鎵樻澘鍙�',
+ display: false,
+ },
+ shelfId: {
+ label: '鎵樻澘鍙�',
+ display: true,
+ change: (val: any) => {
+ const table = crudRef.value?.getPropRef?.('shelfId')?.$refs?.temp;
+ if (!table) return;
+ let active = table.active;
+ if (Array.isArray(active)) active = active[0];
+ if (active) {
+ Object.assign(form.value, {
+ shelfId: active.id,
+ shelfCode: active.shelfCode,
+ });
+ }
+ },
+ type: 'table', suffixIcon: 'search',dataType: 'string',
+ children: {
+ border: true,
+ searchLabelWidth: 100,
+ searchMenuSpan: 5,
+ column: {
+ shelfCode: {
+ label: '鎵樻灦鍙�', minWidth: 130,
+ search: true,
+ },
+ shelfType: {
+ label: '鎵樻灦绫诲瀷', minWidth: 120,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/shelf_type',
+ search: true,
+ },
+ selfLeasType: {
+ label: '鑷绫诲瀷', minWidth: 120,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/self_leas_type',
+ search: true,
+ },
+ compatibleContainerType: {
+ label: '閫傞厤闆嗚绠辩被鍨�', minWidth: 120,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/container_type',
+ search: true,
+ },
+ },
+
+ },
+ props: {
+ label: 'shelfCode',
+ value: 'id'
+ },
+ onLoad: ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
+ if (value) {
+ let id = value;
+ if (Array.isArray(value)) {
+ id = value[0]
+ }
+ getTmsShelf(id).then(res => {
+ return callback(res.data || {})
+ })
+ } else {
+ listTmsShelf({pageSize: page.pageSize, pageNum: page.currentPage, ...data}).then(res => {
+ return callback({
+ total: res.total,
+ data: res.rows || [],
+ })
+ })
+ }
+
+ }
+
+ },
+ remark: {
+ label: '澶囨敞', span: 24,
+ type: 'textarea', minRows: 3, maxRows: 5,
+ display: true,
+ },
+ },
+ },
+
+ // {
+ // label: '杩愯緭瑕佹眰淇℃伅',
+ // prop: 'ysyqxx',
+ // column: {
+ // earliestDeparture: {
+ // label: '瑕佹眰鏈�鏃╁嚭鍙戞椂闂�',
+ // type: 'datetime', // 鏀逛负 datetime 绫诲瀷
+ // format: 'YYYY-MM-DD HH:mm:ss',
+ // valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ // display: true,
+ // },
+ // latestDeparture: {
+ // label: '瑕佹眰鏈�鏅氬嚭鍙戞椂闂�',
+ // type: 'datetime', // 鏀逛负 datetime 绫诲瀷
+ // format: 'YYYY-MM-DD HH:mm:ss',
+ // valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ // display: true,
+ // },
+ // earliestArrival: {
+ // label: '瑕佹眰鏈�鏃╁埌杈炬椂闂�',
+ // type: 'datetime', // 鏀逛负 datetime 绫诲瀷
+ // format: 'YYYY-MM-DD HH:mm:ss',
+ // valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ // display: true,
+ // },
+ //
+ // }
+ // },
+ // {
+ // label: '杞﹁締淇℃伅',
+ // prop: 'clxx',
+ // column: {
+ // emptyMileage: {
+ // label: '绌鸿浇閲岀▼', append: 'Km',
+ // display: true,
+ // },
+ // emptyFuel: {
+ // label: '绌鸿浇娌硅��', append: 'L',
+ // display: true,
+ // },
+ // loadedMileage: {
+ // label: '閲嶈浇閲岀▼', append: 'Km',
+ // display: true,
+ // },
+ // loadedFuel: {
+ // label: '閲嶈浇娌硅��', append: 'L',
+ // display: true,
+ // },
+ // }
+ // },
+ // {
+ // label: '鍏朵粬淇℃伅',
+ // prop: 'qtyxx',
+ // column: {
+ // shiftNo: {
+ // label: '鐝鍙�',
+ // display: true,
+ // },
+ // lineNo: {
+ // label: '绾胯矾鍙�',
+ // display: true,
+ // },
+ // remark: {
+ // label: '澶囨敞', span: 24,
+ // type: 'textarea', minRows: 3, maxRows: 5,
+ // display: true,
+ // },
+ // }
+ // }
],
column: {
- // id: {
- // label: '涓婚敭ID',
- // addDisplay: false,
- // editDisplay: false,
- // viewDisplay: false,
- // hide: true,
- // search: false,
- // },
+
dispatchNo: {
- label: '璋冨害鍗曞彿',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: true,
- hide: false,
+ label: '璋冨害鍗曞彿', minWidth: 120,
+ display: false,
search: true,
- rules: [
- {
- required: true,
- message: "璋冨害鍗曞彿涓嶈兘涓虹┖", trigger: "blur"
- }
- ],
},
customerName: {
- label: '瀹㈡埛鍚嶇О',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: true,
- hide: false,
+ label: '瀹㈡埛',
+ display: false, minWidth: 120,
search: true,
- rules: [
- {
- required: true,
- message: "瀹㈡埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur"
- }
- ],
},
- customerCode: {
- label: '瀹㈡埛缂栫爜',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
+
projectName: {
label: '椤圭洰鍚嶇О',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: true,
- hide: false,
+ display: false, minWidth: 120,
search: true,
- rules: [
- {
- required: true,
- message: "椤圭洰鍚嶇О涓嶈兘涓虹┖", trigger: "blur"
- }
- ],
},
- transportPlanNo: {
- label: '杩愯緭璁″垝缂栧彿',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: true,
- hide: false,
+ contractName: {
+ label: '鍏宠仈鍚堝悓鍚嶇О', minWidth: 120,
+ display: false,
search: true,
- rules: [
- {
- required: true,
- message: "杩愯緭璁″垝缂栧彿涓嶈兘涓虹┖", trigger: "blur"
- }
- ],
},
- departureRegion: {
- label: '鍑哄彂鍦拌鏀垮尯鍩�',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: true,
- hide: false,
- search: true,
- rules: [
- {
- required: true,
- message: "鍑哄彂鍦拌鏀垮尯鍩熶笉鑳戒负绌�", trigger: "blur"
- }
- ],
+ orderType: {
+ label: '璁㈠崟绫诲瀷',
+ display: false,
+ search: true, minWidth: 120,
+ type: 'select', dataType: 'string',
+ dicUrl: '/system/dict/data/type/order_type',
},
- destinationRegion: {
- label: '鐩殑琛屾斂鍖哄煙',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: true,
- hide: false,
- search: true,
- rules: [
- {
- required: true,
- message: "鐩殑琛屾斂鍖哄煙涓嶈兘涓虹┖", trigger: "blur"
- }
- ],
+ signType: {
+ label: '璁㈠崟绫诲瀷',
+ display: false,
+ search: true, minWidth: 120,
+ type: 'select', dataType: 'string',
+ dicUrl: '/system/dict/data/type/order_type',
},
+
transportLine: {
label: '杩愯緭绾胯矾',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: true,
- hide: false,
- search: true,
- rules: [
- {
- required: true,
- message: "杩愯緭绾胯矾涓嶈兘涓虹┖", trigger: "blur"
- }
- ],
+ display: false,
+ search: true, minWidth: 180, overHidden: true
},
- vehicleProvider: {
- label: '杞﹁締鏈嶅姟鍟�',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: true,
- hide: false,
+
+
+ vehicleProviderName: {
+ label: '杞﹁締鏈嶅姟鍟嗗悕绉�', minWidth: 150,
+ display: false,
search: true,
- rules: [
- {
- required: true,
- message: "杞﹁締鏈嶅姟鍟嗕笉鑳戒负绌�", trigger: "blur"
- }
- ],
},
- mainDriver: {
+
+ loadingServiceProviderName: {
+ label: '瑁呰揣鏈嶅姟鍟嗗悕绉�', minWidth: 150,
+ display: false,
+ search: true,
+ },
+ customsServiceProviderName: {
+ label: '鎶ュ叧鏈嶅姟鍟嗗悕绉�', minWidth: 150,
+ display: false,
+ search: true,
+ },
+ isUrgent: {
+ label: '鏄惁绱ф�ュ惁',
+ display: false, minWidth: 100,
+ search: true,
+ type: 'select', dicUrl: '/system/dict/data/type/sys_number_is', dataType: 'string',
+
+ },
+ mainDriverName: {
label: '涓婚┚椹跺憳',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: true,
- hide: false,
+ display: false, minWidth: 120,
search: true,
- rules: [
- {
- required: true,
- message: "涓婚┚椹跺憳涓嶈兘涓虹┖", trigger: "blur"
- }
- ],
},
- assistantDriver: {
- label: '鍓┚椹跺憳',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- requiredVehicleType: {
- label: '瑕佹眰杩愯緭宸ュ叿绫诲瀷',
- type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/dispatch_transport_mode',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: true,
- hide: false,
- search: true,
- rules: [
- {
- required: true,
- message: "瑕佹眰杩愯緭宸ュ叿绫诲瀷涓嶈兘涓虹┖", trigger: "change"
- }
- ],
- },
- vehicleNumber: {
- label: '杩愯緭宸ュ叿鍙风爜',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: true,
- hide: false,
- search: true,
- rules: [
- {
- required: true,
- message: "杩愯緭宸ュ叿鍙风爜涓嶈兘涓虹┖", trigger: "blur"
- }
- ],
- },
- transportMode: {
- label: '杩愯緭鏂瑰紡',
- type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/dispatch_transport_mode',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- rules: [
- {
- required: true,
- message: "杩愯緭鏂瑰紡涓嶈兘涓虹┖", trigger: "change"
- }
- ],
- },
- loadMode: {
- label: '閰嶈浇鏂瑰紡',
- type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/load_method',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- rules: [
- {
- required: true,
- message: "閰嶈浇鏂瑰紡涓嶈兘涓虹┖", trigger: "change"
- }
- ],
- },
- goodsName: {
- label: '璐у搧鍚嶇О',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- quantity: {
- label: '鏁伴噺',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- goodsType: {
- label: '璐у搧绫诲瀷',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- weight: {
- label: '閲嶉噺(kg)',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- netWeight: {
- label: '鍑�閲�(kg)',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- volume: {
- label: '浣撶Н(m鲁)',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- loosePieces: {
- label: '鏁d欢鏁�',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- fullContainers: {
- label: '鏁寸鏁�',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- containerNo: {
- label: '闆嗚绠卞彿',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- palletCount: {
- label: '鎵樻暟',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- earliestDeparture: {
- label: '瑕佹眰鏈�鏃╁嚭鍙戞椂闂�',
- type: 'date', valueFormat: 'YYYY-MM-DD',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- latestDeparture: {
- label: '瑕佹眰鏈�鏅氬嚭鍙戞椂闂�',
- type: 'date', valueFormat: 'YYYY-MM-DD',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- earliestArrival: {
- label: '瑕佹眰鏈�鏃╁埌杈炬椂闂�',
- type: 'date', valueFormat: 'YYYY-MM-DD',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- latestArrival: {
- label: '瑕佹眰鏈�鏅氬埌杈炬椂闂�',
- type: 'date', valueFormat: 'YYYY-MM-DD',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- departureAddress: {
- label: '鍑哄彂鍦板湴鍧�',
- type: 'textarea', minRows: 3, maxRows: 5,
- addDisplay: false,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- destinationAddress: {
- label: '鐩殑鍦板湴鍧�',
- type: 'textarea', minRows: 3, maxRows: 5,
- addDisplay: false,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
+
+ // requiredVehicleTypes: {
+ // label: '瑕佹眰杩愯緭宸ュ叿绫诲瀷',
+ // display: false,
+ // search: true,
+ // },
actualVehicleType: {
- label: '瀹為檯杩愯緭宸ュ叿绫诲瀷',
- addDisplay: false,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
+ label: '瀹為檯杩愯緭宸ュ叿绫诲瀷', minWidth: 130,
+ display: false,
+ search: true,
+ type: 'select', dicUrl: '/system/dict/data/type/vehicle_type', dataType: 'string',
+
},
- actualLoadStart: {
- label: '瀹為檯瑁呰溅寮�濮嬫椂闂�',
- type: 'date', valueFormat: 'YYYY-MM-DD',
- addDisplay: false,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
+
+ licensePlate: {
+ label: '杞︾墝鍙�', minWidth: 120,
+ display: false,
+ search: true,
},
- actualUnloadEnd: {
- label: '瀹為檯鍗歌溅瀹屾垚鏃堕棿',
- type: 'date', valueFormat: 'YYYY-MM-DD',
- addDisplay: false,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
+
+ shipperName: {
+ label: '瑁呰揣鐐瑰悕绉�',
+ display: false, minWidth: 120,
+ search: true,
},
- actualDeparture: {
- label: '瀹為檯鍑哄彂鏃堕棿',
- type: 'date', valueFormat: 'YYYY-MM-DD',
- addDisplay: false,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
+ receiverName: {
+ label: '鍗歌揣鐐瑰悕绉�', minWidth: 120,
+ display: false,
+ search: true,
},
- actualArrival: {
- label: '瀹為檯鍒拌揪鏃堕棿',
- type: 'date', valueFormat: 'YYYY-MM-DD',
- addDisplay: false,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- actualQuantity: {
- label: '瀹炲彂鏁伴噺',
- addDisplay: false,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- actualWeight: {
- label: '瀹炲彂閲嶉噺(kg)',
- addDisplay: false,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- actualVolume: {
- label: '瀹炲彂浣撶Н(m鲁)',
- addDisplay: false,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- reweighWeight: {
- label: '澶嶇閲嶉噺(kg)',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- electronicLock: {
- label: '鐢靛瓙閿佺紪鍙�',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- containerInfo: {
- label: '闆嗚绠卞彿',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- carPlate: {
- label: '杞︽澘鍙�',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- emptyMileage: {
- label: '绌鸿浇閲岀▼(Km)',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- emptyFuel: {
- label: '绌鸿浇娌硅��(L)',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- loadedMileage: {
- label: '閲嶈浇閲岀▼(Km)',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- loadedFuel: {
- label: '閲嶈浇娌硅��(L)',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- shiftNo: {
- label: '鐝鍙�',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- lineNo: {
- label: '绾胯矾鍙�',
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- status: {
- label: '鐘舵��',
- type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/tms_dispatch_order_status',
- addDisplay: false,
- editDisplay: false,
- viewDisplay: true,
+ accountsReceivableStatus: {
+ label: '搴旀敹璐圭敤鐢熸垚鐘舵��', minWidth: 160,
+ display: false,
hide: false,
+ search: true,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/accounts_status',
+
+ },
+ accountsPayableStatus: {
+ label: '搴斾粯璐圭敤鐢熸垚鐘舵��', minWidth: 160,
+ display: false,
+ hide: false,
+ search: true,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/accounts_status',
+
+ },
+
+ status: {
+ label: '鐘舵��', minWidth: 150,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/tms_dispatch_order_status',
+ display: false,
+ hide: false, fixed: 'right',
search: true,
rules: [
{
@@ -671,25 +1526,9 @@
}
],
},
- createBy: {
- label: '鍒涘缓浜�',
- addDisplay: false,
- editDisplay: false,
- viewDisplay: false,
- hide: true,
- search: false,
- },
- createTime: {
- label: '鍒涘缓鏃堕棿',
- type: 'date', valueFormat: 'YYYY-MM-DD',
- addDisplay: false,
- editDisplay: false,
- viewDisplay: false,
- hide: true,
- search: false,
- },
+
updateBy: {
- label: '鏇存柊浜�',
+ label: '鏇存柊浜�', minWidth: 150,
addDisplay: false,
editDisplay: false,
viewDisplay: false,
@@ -697,25 +1536,877 @@
search: false,
},
updateTime: {
- label: '鏇存柊鏃堕棿',
- type: 'date', valueFormat: 'YYYY-MM-DD',
+ label: '鏇存柊鏃堕棿', minWidth: 180,
addDisplay: false,
editDisplay: false,
viewDisplay: false,
hide: false,
search: false,
},
- remark: {
- label: '澶囨敞',
- type: 'textarea', minRows: 3, maxRows: 5,
- addDisplay: true,
- editDisplay: true,
- viewDisplay: false,
- hide: true,
- search: false,
+ updateTimeRange: {
+ label: '鏇存柊鏃堕棿', display: false, search: true, searchRange: true, type: 'date',
+ format: 'YYYY-MM-DD', hide: true, searchSpan: 5,
+ valueFormat: 'YYYY-MM-DD',
+ },
+ confirmTimeRange: {
+ label: '纭鏃堕棿', display: false, search: true, searchRange: true, type: 'date',
+ format: 'YYYY-MM-DD', hide: true, searchSpan: 5,
+ valueFormat: 'YYYY-MM-DD',
+ },
+ okTimeRange: {
+ label: '瀹屾垚鏃堕棿', display: false, search: true, searchRange: true, type: 'date',
+ format: 'YYYY-MM-DD', hide: true, searchSpan: 5,
+ valueFormat: 'YYYY-MM-DD',
+ },
+
+ }
+})
+
+const itineraryOption = ref({
+ menuBtn: false,
+ labelWidth: 120,
+ column: {
+
+ driverName: {
+ label: '涓婚┚椹跺憳鍚嶇О',
+ display: true, disabled: true,
+ },
+ vehicleNumber: {
+ label: '杞︾墝鍙风爜',
+ display: true, disabled: true,
+
+ },
+ tripType: {
+ label: '琛岀▼绫诲瀷',
+ display: true,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/trip_type',
+ rules: [
+ {
+ required: true,
+ message: "琛岀▼绫诲瀷涓嶈兘涓虹┖", trigger: "change"
+ }
+ ],
+ },
+ tripTime: {
+ label: '鏃堕棿',
+ type: 'datetime', valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ display: true,
+ rules: [
+ {
+ required: true,
+ message: "鏃堕棿涓嶈兘涓虹┖", trigger: "change"
+ }
+ ],
+ },
+ odometer: {
+ label: '浠〃閲岀▼',
+ display: true,
+ rules: [
+ {
+ required: true,
+ message: "浠〃閲岀▼涓嶈兘涓虹┖", trigger: "change"
+ }
+ ],
+ },
+ address: {
+ label: '鍏蜂綋鍦板潃',
+ display: true,
+ rules: [
+ {
+ required: true,
+ message: "鍏蜂綋鍦板潃涓嶈兘涓虹┖", trigger: "change"
+ }
+ ],
+ },
+ voucherUrl: {
+ label: '琛岀▼鍑瘉',
+ display: true,
+ span: 24, dataType: 'string',
+ type: 'upload',
+ action: '/common/upload2',
+
+ },
+ dataSource: {
+ label: '鏁版嵁鏉ユ簮',
+ display: false,
+ value: 0
},
}
})
+
+const itineraryTableOption = ref({
+ menu: false,
+ addBtn: false,
+ header: false, selection: false,
+ title: '鍘嗗彶琛岀▼',
+ column: {
+ dataSource: {
+ label: '鏁版嵁鏉ユ簮',
+ display: false,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/data_source',
+
+ },
+ driverName: {
+ label: '涓婚┚椹跺憳鍚嶇О',
+ display: true, disabled: true,
+ },
+ vehicleNumber: {
+ label: '杞︾墝鍙风爜',
+ display: true, disabled: true,
+
+ },
+ tripType: {
+ label: '琛岀▼绫诲瀷',
+ display: true,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/trip_type',
+
+ },
+ tripTime: {
+ label: '鏃堕棿',
+ type: 'date', valueFormat: 'YYYY-MM-DD',
+ display: true,
+ },
+ odometer: {
+ label: '浠〃閲岀▼',
+ display: true,
+ },
+ address: {
+ label: '鍏蜂綋鍦板潃',
+ display: true,
+ },
+ voucherUrl: {
+ label: '琛岀▼鍑瘉',
+ display: true,
+ span: 24, dataType: 'string',
+ type: 'upload',
+ action: '/common/upload2',
+
+ },
+
+ }
+})
+
+const financeOption = ref({
+ menuBtn: false,
+ labelWidth: 120,
+ column: {
+ feeType: {
+ label: '璐圭敤绫诲瀷',
+ display: true,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/fee_type',
+ rules: [
+ {
+ required: true,
+ message: "璐圭敤绫诲瀷涓嶈兘涓虹┖", trigger: "change"
+ }
+ ],
+ },
+ actualFeeAmount: {
+ label: '璐圭敤閲戦',
+ type: 'number',
+ display: true,
+ rules: [
+ {
+ required: true,
+ message: "璐圭敤閲戦涓嶈兘涓虹┖", trigger: "change"
+ }
+ ],
+ },
+ voucherUrl: {
+ label: '琛岀▼鍑瘉',
+ display: true,
+ span: 24,
+ accept: 'string', dataType: 'string',
+ type: 'upload',
+ action: '/common/upload2',
+
+ },
+ dataSource: {
+ label: '鏁版嵁鏉ユ簮',
+ display: false,
+ value: 0
+ },
+ }
+})
+
+const financeTableOption = ref({
+ menu: false,
+ addBtn: false,
+ header: false, selection: false,
+ title: '鍘嗗彶鍨粯璐圭敤',
+ column: {
+ dataSource: {
+ label: '鏁版嵁鏉ユ簮',
+ display: false,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/data_source',
+
+ },
+ createBy: {
+ label: '娣诲姞浜�',
+ display: true, disabled: true,
+ },
+ feeCreateTime: {
+ label: '涓婁紶鏃堕棿',
+ display: true, disabled: true,
+
+ },
+ feeType: {
+ label: '璐圭敤绫诲瀷',
+ display: true,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/fee_type',
+
+ },
+ actualFeeAmount: {
+ label: '閲戦',
+ display: true,
+ },
+ feeVoucherUrl: {
+ label: '璐圭敤鍑瘉',
+ display: true,
+ span: 24,
+ accept: 'string', dataType: 'object',
+ type: 'upload',
+ action: '/common/upload2',
+
+ },
+
+ }
+})
+
+const generateTableOption = ref({
+ menu: false,
+ addBtn: false,
+ header: false, selection: false,
+ column: {
+ collectionPlanName: {
+ label: '鍖归厤搴旀敹鏂规鍚嶇О', minWidth: 160,
+ },
+ accountsReceivableStatus: {
+ label: '搴旀敹璐圭敤鐢熸垚鐘舵��', minWidth: 160,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/accounts_status',
+ },
+ paymentPlanName: {
+ label: '鍖归厤搴斾粯鏂规鍚嶇О', minWidth: 160,
+ },
+
+ accountsPayableStatus: {
+ label: '搴斾粯璐圭敤鐢熸垚鐘舵��', minWidth: 160,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/accounts_status',
+ },
+ dispatchNo: {
+ label: '璋冨害鍗曞彿', minWidth: 120,
+ display: false,
+ },
+ customerName: {
+ label: '瀹㈡埛',
+ display: false, minWidth: 120,
+ },
+ vehicleProviderName: {
+ label: '杞﹁締鏈嶅姟鍟嗗悕绉�', minWidth: 150,
+ display: false,
+ },
+ shipperName: {
+ label: '瑁呰揣鐐瑰悕绉�',
+ display: false, minWidth: 120,
+ },
+ receiverName: {
+ label: '鍗歌揣鐐瑰悕绉�', minWidth: 120,
+ display: false,
+ },
+ transportLine: {
+ label: '杩愯緭绾胯矾',
+ display: false, minWidth: 180, overHidden: true
+ },
+ actualVehicleType: {
+ label: '杞﹀瀷', minWidth: 130,
+ display: false,
+ type: 'select', dicUrl: '/system/dict/data/type/vehicle_type', dataType: 'string',
+
+ },
+ licensePlate: {
+ label: '杞︾墝鍙�', minWidth: 120,
+ display: false,
+ },
+
+ }
+})
+const connectHangOption = ref({
+ menuBtn: false,
+ labelWidth: 120,
+ column: {
+ vehicleId: {
+ label: '鎺ユ寕杞﹁締鍙风爜',
+ display: true,
+ rules: [
+ {
+ required: true,
+ message: "鎺ユ寕杞﹁締鍙风爜涓嶈兘涓虹┖", trigger: "change"
+ }
+ ],
+ type: 'table', suffixIcon: 'search', dataType: 'string',
+ children: {
+ border: true,
+ searchLabelWidth: 100,
+ searchMenuSpan: 5,
+ column: {
+ serviceProviderName: {
+ label: '杞﹁締鏈嶅姟鍟�', minWidth: 130,
+ search: true,
+ },
+ vehicleType: {
+ label: '杞﹁締绫诲瀷', minWidth: 120,
+ search: true,
+ },
+ internalCode: {
+ label: '杞﹁締鍐呴儴缂栫爜', minWidth: 120,
+ search: true,
+ },
+ licensePlate: {
+ label: '杞︾墝鍙�', minWidth: 120,
+ search: true,
+ },
+ licenseHk: {
+ label: '棣欐腐鐗岀収', minWidth: 120,
+ search: true,
+ },
+ licenseMo: {
+ label: '婢抽棬鐗岀収', minWidth: 120,
+ search: true,
+ },
+ },
+
+ },
+ props: {
+ label: 'licensePlate',
+ value: 'id'
+ },
+ onLoad: ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
+ if (value) {
+ let id = value;
+ if (Array.isArray(value)) {
+ id = value[0]
+ }
+ getTmsVehicle(id).then(res => {
+ return callback(res.data || {})
+ })
+ } else {
+ listTmsVehicle({pageSize: page.pageSize, pageNum: page.currentPage, ...data}).then(res => {
+ return callback({
+ total: res.total,
+ data: res.rows || [],
+ })
+ })
+ }
+
+ }
+ },
+ driverId: {
+ label: '鎺ユ寕鍙告満',
+ display: true,
+ rules: [
+ {
+ required: true,
+ message: "鎺ユ寕鍙告満涓嶈兘涓虹┖", trigger: "change"
+ }
+ ],
+ type: 'table', suffixIcon: 'search', dataType: 'string',
+ children: {
+ border: true,
+ searchMenuSpan: 5,
+ column: {
+ vehicleProviderName: {
+ label: '杞﹁締鏈嶅姟鍟�', minWidth: 130,
+ search: true,
+ },
+ driverName: {
+ label: '椹鹃┒鍛樺鍚�', minWidth: 120,
+ search: true,
+ },
+ licenseType: {
+ label: '鍑嗛┚杞﹀瀷', minWidth: 120,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/license_type',
+ search: true, multiple: true,
+ },
+ },
+
+ },
+ props: {
+ label: 'driverName',
+ value: 'id'
+ },
+ onLoad: ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
+ if (value) {
+ let id = value;
+ if (Array.isArray(value)) {
+ id = value[0]
+ }
+ getTmsDriver(id).then(res => {
+ return callback(res.data || {})
+ })
+ } else {
+ listTmsDriver({pageSize: page.pageSize, pageNum: page.currentPage, ...data}).then(res => {
+ return callback({
+ total: res.total,
+ data: res.rows || [],
+ })
+ })
+ }
+
+ }
+ },
+
+ }
+})
+
+
+const customsOption = ref({
+ menuBtn: false,
+ labelWidth: 120,
+ column: {
+ customsServiceProviderId: {
+ label: '鎶ュ叧鏈嶅姟鍟�', span:24,
+ display: true,
+ rules: [
+ {
+ required: true,
+ message: "鎶ュ叧鏈嶅姟鍟嗕笉鑳戒负绌�", trigger: "change"
+ }
+ ],
+ type: 'table', suffixIcon: 'search', dataType: 'string',
+ change: (val: any) => {
+ const table = boxFormRef.value?.getPropRef?.('customsServiceProviderId')?.$refs?.temp;
+ if (!table) return;
+ let active = table.active;
+ if (Array.isArray(active)) active = active[0];
+ if (active) {
+ Object.assign(form.value, {
+ customsServiceProviderId: active.id,
+ customsServiceProviderName: active.serviceShortName,
+ });
+ }
+ },
+ children: {
+ border: true,
+ searchLabelWidth: 100,
+ searchMenuSpan: 5,
+ column:{
+ serviceCode: {
+ label: '鏈嶅姟鍟嗙紪鐮�',
+ search: true,
+ },
+ serviceShortName: {
+ label: '鏈嶅姟鍟嗙畝绉�',minWidth:150,
+ search: true,
+ },
+ serviceName: {
+ label: '鏈嶅姟鍟嗗叏绉�',search: true,
+ },
+ serviceType: {
+ label: '鏈嶅姟绫诲瀷',minWidth:150,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/service_type',
+ multiple:true,
+ search: true,
+ },
+ }
+ },
+ props: {
+ label: 'serviceShortName',
+ value: 'id'
+ },
+ onLoad: ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
+ if (value) {
+ let id = value;
+ if (Array.isArray(value)) {
+ id = value[0]
+ }
+ getTmsCustomsServiceProvider(id).then(res => {
+ return callback(res.data || {})
+ })
+ } else {
+ listTmsCustomsServiceProvider({pageSize: page.pageSize, pageNum: page.currentPage, ...data}).then(res => {
+ return callback({
+ total: res.total,
+ data: res.rows || [],
+ })
+ })
+ }
+
+ }
+ },
+ }
+})
+
+
+const loadingOption = ref({
+ menuBtn: false,
+ labelWidth: 120,
+ column: {
+ loadingServiceProviderId: {
+ label: '瑁呭嵏鏈嶅姟鍟�',span:24,
+ display: true,
+ rules: [
+ {
+ required: true,
+ message: "瑁呭嵏鏈嶅姟鍟嗕笉鑳戒负绌�", trigger: "change"
+ }
+ ],
+ type: 'table', suffixIcon: 'search', dataType: 'string',
+ change: (val: any) => {
+ const table = boxFormRef.value?.getPropRef?.('loadingServiceProviderId')?.$refs?.temp;
+ if (!table) return;
+ let active = table.active;
+ if (Array.isArray(active)) active = active[0];
+ if (active) {
+ Object.assign(form.value, {
+ loadingServiceProviderId: active.id,
+ loadingServiceProviderName: active.serviceShortName,
+ });
+ }
+ },
+ children: {
+ border: true,
+ searchLabelWidth: 100,
+ searchMenuSpan: 5,
+ column:{
+ serviceCode: {
+ label: '鏈嶅姟鍟嗙紪鐮�',
+ search: true,
+ },
+ serviceShortName: {
+ label: '鏈嶅姟鍟嗙畝绉�',minWidth:150,
+ search: true,
+ },
+ serviceName: {
+ label: '鏈嶅姟鍟嗗叏绉�',search: true,
+ },
+ serviceType: {
+ label: '鏈嶅姟绫诲瀷',minWidth:150,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/service_type',
+ multiple:true,
+ search: true,
+ },
+ }
+ },
+ props: {
+ label: 'serviceShortName',
+ value: 'id'
+ },
+ onLoad: ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
+ if (value) {
+ let id = value;
+ if (Array.isArray(value)) {
+ id = value[0]
+ }
+ getTmsLoadingServiceProvider(id).then(res => {
+ return callback(res.data || {})
+ })
+ } else {
+ listTmsLoadingServiceProvider({pageSize: page.pageSize, pageNum: page.currentPage, ...data}).then(res => {
+ return callback({
+ total: res.total,
+ data: res.rows || [],
+ })
+ })
+ }
+
+ }
+ },
+ }
+})
+
+
+
+
+const goodsTableOption = ref({
+ pageKey: 'TmsGoodsDetail',
+ rowKey: 'id',
+ selection: false,
+ viewBtn: false,
+ column: {
+ productId: {
+ label: '璐у搧鍚嶇О', hide: true,
+ display: true, minWidth: 120, type: 'table', suffixIcon: 'search', dataType: 'string',
+ children: {
+ border: true,
+ searchLabelWidth: 100,
+ searchMenuSpan: 5,
+ column: {
+ productCode: {
+ label: '璐у搧缂栫爜', minWidth: 130,
+ search: true,
+ },
+ productName: {
+ label: '璐у搧鍚嶇О', minWidth: 120,
+ search: true,
+ },
+ grossWeight: {
+ label: '璐у搧閲嶉噺', minWidth: 120,
+ search: true,
+ },
+ netWeight: {
+ label: '璐у搧鍑�閲�', minWidth: 120,
+ search: true,
+ },
+ volume: {
+ label: '璐у搧浣撶Н', minWidth: 120,
+ search: true,
+ },
+ productType: {
+ label: '璐у搧绫诲瀷', minWidth: 120,
+ search: true,
+ },
+ },
+
+ },
+ props: {
+ label: 'productName',
+ value: 'id'
+ },
+ onLoad: ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
+ if (value) {
+ let id = value;
+ if (Array.isArray(value)) {
+ id = value[0]
+ }
+ getTmsProductInfo(id).then(res => {
+ return callback(res.data || {})
+ })
+ } else {
+ listTmsProductInfo({
+ pageSize: page.pageSize,
+ pageNum: page.currentPage,
+ ...data,
+ // customerId:form.value.customerId
+ }).then(res => {
+ return callback({
+ total: res.total,
+ data: res.rows || [],
+ })
+ })
+ }
+
+ },
+ change: (val: any) => {
+ const table = goodsCrudRef.value?.getPropRef?.('productId')?.$refs?.temp;
+ if (!table) return;
+ let active = table.active;
+ if (Array.isArray(active)) active = active[0];
+ if (active) {
+ Object.assign(goodsForm.value, {
+ productId: active.id,
+ productName: active.productName,
+ productType: active.productType,
+ grossWeight: active.grossWeight,
+ netWeight: active.netWeight,
+ volume: active.volume,
+ packUnit: active.packUnit,
+ });
+
+ goodsForm.value.sumWeight = active.grossWeight || 0 * goodsForm.value.quantity;
+ goodsForm.value.sumNetWeight = active.netWeight || 0 * goodsForm.value.quantity;
+ goodsForm.value.sumVolume = active.volume || 0 * goodsForm.value.quantity;
+
+ }
+ },
+ },
+ productName: {
+ label: '璐у搧鍚嶇О', minWidth: 120,
+ display: false,
+ hide: false,
+ },
+ quantity: {
+ label: '鏁伴噺',
+ addDisplay: true, minWidth: 100,
+ editDisplay: true,
+ viewDisplay: true,
+ value: 1,
+ change: () => {
+ goodsForm.value.sumWeight = goodsForm.value.grossWeight || 0 * goodsForm.value.quantity;
+ goodsForm.value.sumNetWeight = goodsForm.value.netWeight || 0 * goodsForm.value.quantity;
+ goodsForm.value.sumVolume = goodsForm.value.volume || 0 * goodsForm.value.quantity;
+ }
+ },
+ sumWeight: {
+ label: '閲嶉噺(kg)',
+ addDisplay: true, minWidth: 100, append: 'Kg',
+ editDisplay: true,
+ viewDisplay: true,
+ },
+ sumNetWeight: {
+ label: '鍑�閲�(kg)',
+ addDisplay: true,
+ editDisplay: true, minWidth: 100, append: 'Kg',
+ viewDisplay: true,
+ },
+ sumVolume: {
+ label: '浣撶Н(m鲁)',
+ addDisplay: true,
+ editDisplay: true, minWidth: 100, append: 'm鲁',
+ viewDisplay: true,
+ },
+
+
+ loosePieces: {
+ label: '鏁d欢鏁�',
+ addDisplay: true,
+ editDisplay: true, minWidth: 100,
+ viewDisplay: true,
+ },
+
+ fullContainers: {
+ label: '鏁寸鏁�',
+ addDisplay: true,
+ editDisplay: true, minWidth: 100,
+ viewDisplay: true,
+ },
+ containerNo: {
+ label: '闆嗚绠卞彿',
+ addDisplay: true,
+ editDisplay: true, minWidth: 100,
+ viewDisplay: true,
+ },
+ palletCount: {
+ label: '鎵樻暟',
+ addDisplay: true, minWidth: 100,
+ editDisplay: true,
+ viewDisplay: true,
+ }
+ }
+})
+
+const actualFormOption = ref({
+ menuBtn: false, labelWidth: 140,
+ column: {
+ departureAddress: {
+ label: '瀹為檯鍑哄彂鍦板湴鍧�',
+ span: 24,
+ },
+ destinationAddress: {
+ label: '瀹為檯鐩殑鍦板湴鍧�',
+ span: 24,
+ },
+ actualLoadStart: {
+ label: '瀹為檯瑁呰溅寮�濮嬫椂闂�',
+ type: 'datetime', // 鏀逛负 datetime 绫诲瀷
+ format: 'YYYY-MM-DD HH:mm:ss',
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ display: true,
+ },
+ actualUnloadEnd: {
+ label: '瀹為檯鍗歌溅瀹屾垚鏃堕棿',
+ type: 'datetime', // 鏀逛负 datetime 绫诲瀷
+ format: 'YYYY-MM-DD HH:mm:ss',
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ display: true,
+ },
+ actualDeparture: {
+ label: '瀹為檯鍑哄彂鏃堕棿',
+ type: 'datetime', // 鏀逛负 datetime 绫诲瀷
+ format: 'YYYY-MM-DD HH:mm:ss',
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ display: true,
+ },
+ actualArrival: {
+ label: '瀹為檯鍒拌揪鏃堕棿',
+ type: 'datetime', // 鏀逛负 datetime 绫诲瀷
+ format: 'YYYY-MM-DD HH:mm:ss',
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ display: true,
+ },
+ actualQuantity: {
+ label: '瀹炲彂鏁伴噺', type: 'number',
+ },
+ actualWeight: {
+ label: '瀹炲彂閲嶉噺', type: 'number',
+ },
+ actualVolume: {
+ label: '瀹炲彂浣撶Н', type: 'number',
+ },
+ reweighWeight: {
+ label: '澶嶇閲嶉噺', type: 'number',
+ },
+ electronicLock: {
+ label: '鐢靛瓙閿�',
+ }
+ }
+})
+
+
+const itemsTableOption = ref({
+ pageKey: 'itemsTable',
+ rowKey: 'rowKey',
+ header: false,
+ addBtn: false, menu: false,
+ column: {
+ feeType: {
+ label: '璐圭敤鍚嶇О',
+ },
+ unit: {
+ label: '*璁¢噺鍗曚綅',
+ },
+ price: {
+ label: '*璁¤垂閲戦',
+ },
+ currency: {
+ label: '甯佸埗',
+ },
+ count: {
+ label: '璁¤垂鏁伴噺', minWidth: 130,
+ },
+ sum: {
+ label: '鎬婚噾棰�',
+ }
+ }
+})
+
+const consignorOption = ref({
+ border: true,
+ searchLabelWidth: 100,
+ searchMenuSpan: 5,
+ column: {
+ consignorCode: {
+ label: '鏀惰璐х偣缂栫爜', minWidth: 130,
+ search: true,
+ },
+ consignorName: {
+ label: '鏀惰璐х偣鍚嶇О', minWidth: 130,
+ search: true,
+ },
+ consignorType: {
+ label: '鏀惰璐х偣绫诲瀷', minWidth: 80,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/consignor_type',
+ display: false,
+ hide: false,
+ search: true,
+ },
+ contactName: {
+ label: '鑱旂郴浜哄鍚�', minWidth: 110,
+ display: false,
+ hide: false,
+ search: true,
+ },
+ contactPhone: {
+ label: '鑱旂郴浜虹數璇�', minWidth: 110,
+ display: false,
+ hide: false,
+ search: true,
+ },
+ regionLabel: {
+ label: '琛屾斂鍖哄煙', minWidth: 180,
+ display: false,
+ hide: false,
+ search: true,
+ },
+ },
+})
+const consignorProps = ref({
+ label: 'consignorName',
+ value: 'id'
+})
+
+
+const itemsCrudRef = ref()
+const itemsTableData = ref<any>([])
const {
tableData,
@@ -751,8 +2442,902 @@
},
handleSelectionChangeFunc: (selection: any) => {
selectionList.value = selection;
- }
+ if (selection.length > 0){
+ isCustoms.value = selection[0].isCustoms;
+ isLoad.value = selection[0].isLoad ;
+ }else{
+ isCustoms.value = -1;
+ isLoad.value = -1;
+ }
+ isCustoms.value = isCustoms.value == 0 && !pageF.single ? 0 : -1;
+ isLoad.value = isLoad.value == 0 && !pageF.single ? 0 : -1;
+ console.log(pageF.single)
+ },
+ getBeginListFunc: () => {
+ 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') || {};
+ },
+
})
+const handleConfirm = (row: any) => {
+ ElMessageBox.confirm("鏄惁瀵硅皟搴﹀崟鍙�" + row.dispatchNo + "纭畾 锛�", '绯荤粺鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ return confirmOrder(row.id);
+ }).then(() => {
+ onLoad(page.value);
+ ElMessage({
+ message: "鎿嶄綔鎴愬姛锛�",
+ type: 'success'
+ })
+ });
+}
+
+const handleCopy = (row: any) => {
+ ElMessageBox.confirm("鏄惁瀵硅皟搴﹀崟鍙�" + row.dispatchNo + "澶嶅埗 锛�", '绯荤粺鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ return copyOrder(row.id);
+ }).then(() => {
+ onLoad(page.value);
+ ElMessage({
+ message: "鎿嶄綔鎴愬姛锛�",
+ type: 'success'
+ })
+ });
+}
+const handleOk = (row: any) => {
+ ElMessageBox.confirm("鏄惁纭瀹屾垚璋冨害鍗曞彿锛�" + row.dispatchNo + " 鐨勮绋� 锛�", '绯荤粺鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ return okOrder(row.id);
+ }).then(() => {
+ onLoad(page.value);
+ ElMessage({
+ message: "鎿嶄綔鎴愬姛锛�",
+ type: 'success'
+ })
+ });
+}
+/**
+ * 涓婁紶琛岀▼
+ */
+const handleUploadItinerary = (row: any) => {
+ optionType.value = 'addItinerary';
+ boxFormOption.value = itineraryOption.value;
+ boxTableOption.value = itineraryTableOption.value;
+ listTmsTrip({dispatchOrderId: row.id, pageNum: 1, pageSize: 999}).then(res => {
+ boxTableData.value = res.rows || [];
+ pageF.open = true;
+ pageF.title = '涓婁紶琛岀▼';
+
+ boxForm.value = {
+ dispatchOrderId: row.id,
+ dataSource: 0,
+ driverId: row.mainDriverId,
+ driverName: row.mainDriverName,
+ vehicleNumber: row.licensePlate,
+ vehicleId: row.vehicleId,
+ }
+ })
+}
+const cancelBox = () => {
+ if (optionType.value === 'addItinerary' || optionType.value === 'addFinance') {
+ boxForm.value = {};
+ boxFormRef.value.resetFields();
+ }
+ pageF.open = false;
+}
+
+const submitForm = () => {
+ if (optionType.value === 'addItinerary') {
+ if (Array.isArray(boxForm.value.voucherUrl)) {
+ boxForm.value.voucherUrl = boxForm.value.voucherUrl.toString();
+ }
+ addTmsTrip(boxForm.value).then(res => {
+ ElMessage({
+ message: "鎿嶄綔鎴愬姛锛�",
+ type: 'success'
+ })
+ cancelBox();
+ onLoad(page.value);
+ })
+ } else if (optionType.value === 'addFinance') {
+ if (Array.isArray(boxForm.value.feeVoucherUrl)) {
+ boxForm.value.feeVoucherUrl = boxForm.value.feeVoucherUrl.toString();
+ }
+ let filter = selectionList2.value.filter((item: any) => {
+ return !item.count
+ });
+ if (filter.length > 0) {
+ proxy.$modal.msgError("鍕鹃�夋姤浠疯垂鐢ㄨ濉啓璁¤垂鏁伴噺");
+ return;
+ }
+ boxForm.value.items = selectionList2.value;
+ addTmsFinanceDetail(boxForm.value).then(res => {
+ ElMessage({
+ message: "鎿嶄綔鎴愬姛锛�",
+ type: 'success'
+ })
+ cancelBox();
+ onLoad(page.value);
+ })
+ }
-</script>
+}
+
+
+const handleLog = (row: any) => {
+
+}
+const handleLogItinerary = (row: any) => {
+ optionType.value = 'view';
+ boxTableOption.value = itineraryTableOption.value;
+ listTmsTrip({dispatchOrderId: row.id, pageNum: 1, pageSize: 999}).then(res => {
+ boxTableData.value = res.rows || [];
+ pageF.open = true;
+ pageF.title = '鏌ョ湅琛岀▼';
+ boxFormOption.value.title = '';
+ })
+}
+
+const handleAddFinance = async (row: any) => {
+ optionType.value = 'addFinance';
+ boxFormOption.value = financeOption.value;
+ boxTableOption.value = financeTableOption.value;
+ const quotePlanItemRes = await listTmsQuoteItem({quotePlanId: row.quotePlanId, pageNum: 1, pageSize: 999});
+ let items = quotePlanItemRes.rows || [];
+ itemsTableData.value = items.map((item: any) => {
+ return {
+ rowKey: item.id,
+ feeType: item.freeName,
+ unit: item.unit,
+ price: item.price,
+ currency: item.currency,
+ count: 0,
+ sum: 0,
+ }
+ })
+
+ listTmsFinanceDetail({
+ dispatchOrderId: row.id, financeType: 2,
+ pageNum: 1, pageSize: 999
+ }).then(res => {
+
+
+ boxTableData.value = res.rows || [];
+ pageF.open = true;
+ pageF.title = '璐圭敤鐧昏';
+ boxForm.value = {
+ dispatchOrderId: row.id,
+ dataSource: 0,
+ financeType: 2,
+ }
+ })
+}
+
+const handleGenerate = () => {
+ let ids = selectionList.value.map((item: any) => item.id);
+ initGenerate(ids).then(res => {
+ boxTableData.value = res.data || [];
+ optionType.value = 'generate';
+ pageF.open = true;
+ pageF.title = '鐢熸垚搴旀敹搴斾粯璐圭敤鏁版嵁';
+ boxTableOption.value = generateTableOption.value;
+ })
+}
+
+const submitGenerate = () => {
+ pageF.isUploading = true;
+ let ids = selectionList.value.map((item: any) => item.id);
+
+ generateTmsDispatchOrder(ids).then(res => {
+ pageF.isUploading = false;
+ ElMessage({
+ message: "鎿嶄綔鎴愬姛锛�",
+ type: 'success'
+ })
+ cancelBox();
+ onLoad(page.value);
+ }).finally(() => {
+ pageF.isUploading = false;
+ })
+}
+/**
+ * 鐢╂寕
+ */
+const handleDropHook = () => {
+ title.value = '璋冨害鍗曠敥鎸�';
+ open.value = true;
+ form.value = selectionList.value[0];
+ optionType.value = 'dropHook';
+
+}
+/**
+ * 鎺ユ寕
+ */
+const handleConnectHang = () => {
+ title.value = '璋冨害鍗曟帴鎸�';
+ open.value = true;
+ form.value = selectionList.value[0];
+ optionType.value = 'connectHang';
+ boxFormOption.value = connectHangOption.value;
+}
+const submitForm2 = () => {
+ pageF.isUploading = true;
+ if (optionType.value === 'dropHook') {
+ dropHook(form.value.id).then(res => {
+ ElMessage({
+ message: "鎻愪氦鎴愬姛锛�",
+ type: 'success'
+ })
+ cancelBox2();
+ onLoad(page.value);
+ }).finally(() => {
+ pageF.isUploading = false;
+ })
+ }else if (optionType.value === 'customs') {
+ customsOrder({id:form.value.id}).then(res => {
+ ElMessage({
+ message: "鎻愪氦鎴愬姛锛�",
+ type: 'success'
+ })
+ cancelBox2();
+ onLoad(page.value);
+ }).finally(() => {
+ pageF.isUploading = false;
+ })
+ }else if (optionType.value === 'loading') {
+ loadingOrder({id:form.value.id}).then(res => {
+ ElMessage({
+ message: "鎻愪氦鎴愬姛锛�",
+ type: 'success'
+ })
+ cancelBox2();
+ onLoad(page.value);
+ }).finally(() => {
+ pageF.isUploading = false;
+ })
+ }else {
+ connectHang({
+ dispatchId: form.value.id,
+ vehicleId: form.value.vehicleId,
+ driverId: form.value.driverId
+ }).then(res => {
+ ElMessage({
+ message: "鎻愪氦鎴愬姛锛�",
+ type: 'success'
+ })
+ cancelBox2();
+ onLoad(page.value);
+ }).finally(() => {
+ pageF.isUploading = false
+ })
+ }
+}
+
+
+const cancelBox2 = () => {
+ open.value = false;
+}
+
+const handleAddGoods = (row: any) => {
+ listTmsGoodsDetail({dispatchId: row.id, pageSize: 999, pageNum: 1}).then(res => {
+ goodsTableData.value = res.rows || [];
+ form.value = row;
+ open2.value = true;
+ })
+}
+const rowGoodsUpdate = (row: any, index: any, done: any, loading: any) => {
+ updateTmsGoodsDetail(row).then(res => {
+ ElMessage({
+ message: "淇敼鎴愬姛锛�",
+ type: 'success'
+ })
+ handleAddGoods(form.value);
+ onLoad(page.value);
+ done();
+ }).catch(() => {
+ loading()
+ })
+}
+const rowGoodsSave = (row: any, done: any, loading: any) => {
+ row.dispatchId = form.value.id;
+ row.dispatchNo = form.value.dispatchNo;
+ addTmsGoodsDetail(row).then(res => {
+ ElMessage({
+ message: "鏂板鎴愬姛锛�",
+ type: 'success'
+ })
+ handleAddGoods(form.value);
+ onLoad(page.value);
+ done();
+ }).catch(() => {
+ loading()
+ })
+}
+const rowGoodsDel = (row: any) => {
+ ElMessageBox.confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎锛�", '绯荤粺鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ return delTmsGoodsDetail(row.id);
+ }).then(() => {
+ handleAddGoods(form.value);
+ ElMessage({
+ message: "鍒犻櫎鎴愬姛锛�",
+ type: 'success'
+ })
+ });
+}
+
+const handleActual = (row: any) => {
+ actualForm.value = row;
+ open3.value = true;
+
+}
+
+const submitForm3 = () => {
+ updateTmsDispatchOrder(actualForm.value).then(res => {
+ ElMessage({
+ message: "鎿嶄綔鎴愬姛锛�",
+ type: 'success'
+ })
+ open3.value = false;
+ onLoad(page.value)
+ })
+}
+const countChange = (row: any) => {
+ row.sum = Number(row.price) * Number(row.count);
+}
+
+const selectionChange2 = (selection?: any[]) => {
+ selectionList2.value = selection;
+}
+
+const onShipperLoad = ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
+ if (value) {
+ let id = value;
+ if (Array.isArray(value)) {
+ id = value[0]
+ }
+ getTmsConsignor(id).then(res => {
+ return callback(res.data || {})
+ })
+ } else {
+ if (form.value.startRegionCode) {
+ const split = form.value.startRegionCode.split(',');
+ const [provinceId, cityId, districtId, streetId] = split;
+
+ if (provinceId) data.provinceId = provinceId;
+ if (cityId) data.cityId = cityId;
+ if (districtId) data.districtId = districtId;
+ if (streetId) data.streetId = streetId;
+ }
+ listTmsConsignor({pageSize: page.pageSize, pageNum: page.currentPage, ...data}).then(res => {
+ return callback({
+ total: res.total,
+ data: res.rows || [],
+ })
+ })
+ }
+}
+const onConsignorLoad = ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
+ if (value) {
+ let id = value;
+ if (Array.isArray(value)) {
+ id = value[0]
+ }
+ getTmsConsignor(id).then(res => {
+ return callback(res.data || {})
+ })
+ } else {
+ if (form.value.endRegionCode) {
+ const split = form.value.endRegionCode.split(',');
+ const [provinceId, cityId, districtId, streetId] = split;
+
+ if (provinceId) data.provinceId = provinceId;
+ if (cityId) data.cityId = cityId;
+ if (districtId) data.districtId = districtId;
+ if (streetId) data.streetId = streetId;
+ }
+ listTmsConsignor({pageSize: page.pageSize, pageNum: page.currentPage, ...data}).then(res => {
+ return callback({
+ total: res.total,
+ data: res.rows || [],
+ })
+ })
+ }
+}
+const changeShipper = ({value}: any) => {
+
+ if (value) {
+ let id = value;
+ if (Array.isArray(value)) {
+ id = value[0]
+ }
+ getTmsConsignor(id).then(res => {
+ let active = res.data || {};
+ let shipperRegionCode = '';
+ if (active.provinceId) {
+ shipperRegionCode = active.provinceId;
+ }
+ if (active.cityId) {
+ shipperRegionCode = shipperRegionCode + "," + active.cityId;
+
+ }
+ if (active.districtId) {
+ shipperRegionCode = shipperRegionCode + "," + active.districtId;
+
+ }
+ if (active.streetId) {
+ shipperRegionCode = shipperRegionCode + "," + active.streetId;
+ }
+ Object.assign(form.value, {
+ shipperId: active.id,
+ shipperName: active.consignorName,
+ shipperRegionLabel: active.regionLabel,
+ shipperAddress: active.addressDetail,
+ shipperMobile: active.contactPhone,
+ shipperRegionCode: shipperRegionCode
+ });
+ })
+ }
+}
+const changeReceiver = ({value}: any) => {
+
+ if (value) {
+ let id = value;
+ if (Array.isArray(value)) {
+ id = value[0]
+ }
+ getTmsConsignor(id).then(res => {
+ let active = res.data || {};
+ let receiverRegionCode = '';
+ if (active.provinceId) {
+ receiverRegionCode = active.provinceId;
+ }
+ if (active.cityId) {
+ receiverRegionCode = receiverRegionCode + "," + active.cityId;
+
+ }
+ if (active.districtId) {
+ receiverRegionCode = receiverRegionCode + "," + active.districtId;
+
+ }
+ if (active.streetId) {
+ receiverRegionCode = receiverRegionCode + "," + active.streetId;
+ }
+
+ Object.assign(form.value, {
+ receiverId: active.id,
+ receiverName: active.consignorName,
+ receiverRegionLabel: active.regionLabel,
+ receiverAddress: active.addressDetail,
+ receiverMobile: active.contactPhone,
+ receiverRegionCode: receiverRegionCode,
+ });
+ })
+ }
+}
+const consignorAddOption =ref({
+ labelWidth: 120,
+ group: [
+ {
+ label: '鍩虹淇℃伅',
+ prop: 'jcxx',
+ column:{
+ // consignorCode: {
+ // label: '瑁呭嵏璐х偣缂栫爜',minWidth: 150,
+ // addDisplay: false, disabled: true,
+ // editDisplay: true,
+ // viewDisplay: true,
+ // hide: false,
+ // search: true,
+ // rules: [
+ // {
+ // required: true,
+ // message: "瑁呭嵏璐х偣缂栫爜涓嶈兘涓虹┖", trigger: "blur"
+ // }
+ // ],
+ // },
+ consignorName: {
+ label: '瑁呭嵏璐х偣鍚嶇О',minWidth: 150,
+ addDisplay: true,
+ editDisplay: true,
+ viewDisplay: true,
+ hide: false,
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: "瑁呭嵏璐х偣鍚嶇О涓嶈兘涓虹┖", trigger: "blur"
+ }
+ ],
+ },
+ customerName:{
+ label: '鎵�灞炲鎴�',minWidth: 150,disabled: true,
+ },
+ // customerId: {
+ // label: '鎵�灞炲鎴�',minWidth: 150,
+ // addDisplay: true,
+ // editDisplay: true,suffixIcon:'search',
+ // viewDisplay: true,
+ // hide: true,
+ // search: true,
+ // rules: [
+ // {
+ // required: true,
+ // message: "鎵�灞炲鎴蜂笉鑳戒负绌�", trigger: "change"
+ // }
+ // ],
+ // type: 'table',
+ // children:{
+ // border: true,
+ // searchMenuSpan: 5,
+ // column:{
+ // customerType: {
+ // label: '瀹㈡埛绫诲瀷', minWidth: 120,
+ // type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/customer_type',
+ // search: true,
+ // },
+ // customerShortName: {
+ // label: '瀹㈡埛绠�绉�', minWidth: 130,
+ // search: true,
+ // },
+ // customerCode: {
+ // label: '瀹㈡埛缂栧彿',minWidth: 120,
+ // search: true,
+ // },
+ // contactName: {
+ // label: '鑱旂郴浜哄鍚�',minWidth: 120,
+ // },
+ // signCompanyName: {
+ // label: '绛剧害鍏徃', minWidth: 150,
+ // },
+ // },
+ //
+ // },
+ // props:{
+ // label: 'customerShortName',
+ // value: 'id'
+ // },
+ // onLoad: ({ page, value, data }: { page: any, value: any, data: any }, callback:any) => {
+ // if (value){
+ // let id = value;
+ // if (Array.isArray(value)){
+ // id = value[0]
+ // }
+ // getTmsCustomerInfo(id).then(res=>{
+ // return callback(res.data||{})
+ // })
+ // }else{
+ // listTmsCustomerInfo({pageSize:page.pageSize,pageNum:page.currentPage,...data}).then(res=>{
+ // return callback({
+ // total: res.total,
+ // data: res.rows||[],
+ // })
+ // })
+ // }
+ //
+ // },
+ // change: ({value}: any) => {
+ // if(value){
+ // getTmsCustomerInfo(value).then(res=>{
+ // let active = res.data || {};
+ // if (active){
+ // console.log(dialForm.value)
+ // form2.value.customerId = active.id
+ // form2.value.customerSysCode = active.customerCode
+ // form2.value.customerName = active.customerShortName
+ // }
+ // })
+ // }
+ // },
+ // },
+ // customerSysCode: {
+ // label: '瀹㈡埛缂栫爜',minWidth: 150,
+ // addDisplay: true,
+ // editDisplay: true,
+ // viewDisplay: true,
+ // hide: false,
+ // search: true,
+ // disabled: true,
+ // rules: [
+ // {
+ // required: true,
+ // message: "瀹㈡埛缂栫爜涓嶈兘涓虹┖", trigger: "blur"
+ // }
+ // ],
+ // },
+ consignorType: {
+ label: '瑁呭嵏璐х偣绫诲瀷',minWidth: 150,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/consignor_type',
+ addDisplay: true,
+ editDisplay: true,
+ viewDisplay: true,
+ hide: false,
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: "瑁呭嵏璐х偣绫诲瀷涓嶈兘涓虹┖", trigger: "change"
+ }
+ ],
+ },
+ }
+ },
+ {
+ label: '鑱旂郴浜轰俊鎭�',
+ prop: 'lxrxx',
+ column:{
+ contactName: {
+ label: '鑱旂郴浜哄鍚�',minWidth: 150,
+ addDisplay: true,
+ editDisplay: true,
+ viewDisplay: true,
+ hide: false,
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: "鑱旂郴浜哄鍚嶄笉鑳戒负绌�", trigger: "blur"
+ }
+ ],
+ },
+ contactPhone: {
+ label: '鑱旂郴浜虹數璇�',minWidth: 150,
+ addDisplay: true,
+ editDisplay: true,
+ viewDisplay: true,
+ hide: true,
+ search: false,
+ },
+ contactEmail: {
+ label: '鑱旂郴浜洪偖绠�',minWidth: 150,
+ addDisplay: true,
+ editDisplay: true,
+ viewDisplay: true,
+ hide: true,
+ search: false,
+ },
+ }
+ },
+ {
+ label: '鍦板潃淇℃伅',
+ prop: 'dzxx',
+ column:{
+
+ mapLocationDetail: {
+ label: '鍦板浘浣嶇疆',minWidth: 150,
+ addDisplay: true,
+ editDisplay: true,span:24,
+ viewDisplay: true,
+ hide: true,
+ search: false,
+ type: 'map',
+ // mapChange: async (params:any)=>{
+ // if (params.info === "OK") {
+ // let { province, city, district, township } = params.regeocode.addressComponent || {};
+ // const res = await getAddressCode({province, city, district, township});
+ // const {provinceCode, cityCode, districtCode, townshipCode} = res.data || {};
+ // form2.value.regionLabel = province + " / " + city + " / " + district + " / " + township;
+ // //form2.value.region = [provinceCode, cityCode, districtCode, townshipCode];
+ // form2.value.provinceId = provinceCode;
+ // form2.value.cityId = cityCode;
+ // form2.value.districtId = districtCode;
+ // form2.value.streetId = townshipCode;
+ // form2.value.dispatchTransportArea = params.regeocode.formattedAddress;
+ // console.log(form2.value,"form2")
+ // }
+ // },
+ change: async ({value}:any)=>{
+ if (Array.isArray(value) && value.length === 3){
+ mapRegeo(value[1], value[0]).then(async res => {
+ let params = res.data || {};
+ if (params.info === "OK") {
+ let {province, city, district, township} = params.regeocode.addressComponent || {};
+ const res = await getAddressCode({province, city, district, township});
+ const {provinceCode, cityCode, districtCode, townshipCode} = res.data || {};
+ form2.value.regionLabel = province + " / " + city + " / " + district + " / " + township;
+ form2.value.provinceId = provinceCode;
+ form2.value.cityId = cityCode;
+ form2.value.districtId = districtCode;
+ form2.value.streetId = townshipCode;
+ form2.value.dispatchTransportArea = params.regeocode.formatted_address || params.regeocode.formattedAddress;
+ console.log(form2.value, "form2")
+ }
+ });
+ }
+ },
+ },
+ // dispatchTransportArea: {
+ // label: '璋冨害鍗曡繍杈撳湴',
+ // addDisplay: true,minWidth: 150,
+ // editDisplay: true,
+ // viewDisplay: true,
+ // hide: false,
+ // search: true,
+ // rules: [
+ // {
+ // required: true,
+ // message: "璋冨害鍗曡繍杈撳湴涓嶈兘涓虹┖", trigger: "blur"
+ // }
+ // ],
+ // },
+ electronicFenceRange: {
+ label: '鐢靛瓙鍥存爮鑼冨洿',
+ addDisplay: true,minWidth: 150,
+ editDisplay: true,
+ viewDisplay: true,append:'绫�',
+ hide: false,
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: "鐢靛瓙鍥存爮鑼冨洿涓嶈兘涓虹┖", trigger: "blur"
+ }
+ ],
+ },
+ }
+ },
+ {
+ label: '鍏朵粬淇℃伅',
+ prop: 'qtyxx',
+ column:{
+ remark: {
+ label: '澶囨敞',minWidth: 150,
+ type: 'textarea', minRows: 3, maxRows: 5,
+ addDisplay: true,
+ editDisplay: true,span:24,
+ viewDisplay: true,
+ hide: true,
+ search: false,
+ },
+ }
+ }
+ ],
+})
+const form2 = ref<any>({});
+const dialForm = ref();
+
+const handleAddShipper = () => {
+ if (!form.value.customerId){
+ return ElMessage.error('璇峰厛閫夋嫨杩愯緭璺嚎');
+ }
+ form2.value = {
+ customerId: form.value.customerId,
+ customerSysCode: form.value.customerCode,
+ customerName: form.value.customerName,
+ };
+ dialForm.value = $DialogForm(appContext)({
+ title: '鏂板瑁呰揣鍦�',
+ data:form2.value,
+ width: '80%',
+ option: consignorAddOption.value,
+ menuPosition: 'right',
+ callback: (res:any,) => {
+ let data1 = res.data;
+ if (data1.mapLocationDetail){
+ data1.mapLocation = data1.mapLocationDetail[0]+','+data1.mapLocationDetail[1];
+ data1.addressDetail = data1.mapLocationDetail[2]
+ }
+ addTmsConsignor({...form2.value,...data1}).then(res2=>{
+ let active = res2.data || {};
+ if (active) {
+ let shipperRegionCode = '';
+ if (active.provinceId){
+ shipperRegionCode = active.provinceId;
+ }
+ if (active.cityId){
+ shipperRegionCode =shipperRegionCode+ ","+active.cityId;
+
+ }
+ if (active.districtId){
+ shipperRegionCode =shipperRegionCode+ ","+active.districtId;
+
+ }
+ if (active.streetId){
+ shipperRegionCode =shipperRegionCode+ ","+active.streetId;
+ }
+ Object.assign(form.value, {
+ shipperId: active.id,
+ shipperName: active.consignorName,
+ shipperRegionLabel: active.regionLabel,
+ shipperAddress: active.addressDetail,
+ shipperMobile: active.contactPhone,
+ shipperRegionCode:shipperRegionCode
+ });
+ }
+ dialForm.value.close();
+ res.done();
+ }).catch(err=>{
+ res.done();
+ })
+ },
+ })
+}
+
+const handleAddReceiver = () => {
+ if (!form.value.customerId){
+ return ElMessage.error('璇峰厛閫夋嫨杩愯緭璺嚎');
+ }
+ form2.value = {
+ customerId: form.value.customerId,
+ customerSysCode: form.value.customerCode,
+ customerName: form.value.customerName,
+ };
+ dialForm.value = $DialogForm(appContext)({
+ title: '鏂板鍗歌揣鍦�',
+ data:form2.value,
+ width: '80%',
+ option: consignorAddOption.value,
+ menuPosition: 'right',
+ callback: (res:any,) => {
+ let data1 = res.data;
+ if (data1.mapLocationDetail){
+ data1.mapLocation = data1.mapLocationDetail[0]+','+data1.mapLocationDetail[1];
+ data1.addressDetail = data1.mapLocationDetail[2]
+ }
+ addTmsConsignor({...form2.value,...data1}).then(res2=>{
+ let active = res2.data || {};
+ if (active) {
+ let receiverRegionCode = '';
+ if (active.provinceId){
+ receiverRegionCode = active.provinceId;
+ }
+ if (active.cityId){
+ receiverRegionCode =receiverRegionCode+ ","+active.cityId;
+
+ }
+ if (active.districtId){
+ receiverRegionCode =receiverRegionCode+ ","+active.districtId;
+
+ }
+ if (active.streetId){
+ receiverRegionCode =receiverRegionCode+ ","+active.streetId;
+ }
+
+ Object.assign(form.value, {
+ receiverId: active.id,
+ receiverName: active.consignorName,
+ receiverRegionLabel: active.regionLabel,
+ receiverAddress: active.addressDetail,
+ receiverMobile: active.contactPhone,
+ receiverRegionCode:receiverRegionCode,
+ });
+ }
+ dialForm.value.close();
+ res.done();
+ }).catch(err=>{
+ res.done();
+ })
+ },
+ })
+}
+
+const handleCustoms = () => {
+ title.value = '琛ュ厖濮旀墭鎶ュ叧淇℃伅';
+ open.value = true;
+ form.value = selectionList.value[0];
+ optionType.value = 'customs';
+ boxFormOption.value = customsOption.value;
+}
+const handleLoading = () => {
+ title.value = '琛ュ厖濮旀墭瑁呭嵏淇℃伅';
+ open.value = true;
+ form.value = selectionList.value[0];
+ optionType.value = 'loading';
+ boxFormOption.value = loadingOption.value;
+}
+</script>
\ No newline at end of file
--
Gitblit v1.8.0