zhangback
2025-12-16 ca98866230c89e247bf4b93222c07cea0437ff20
ui/admin-ui3/src/views/tms/tmsDispatchOrder/index.vue
@@ -44,14 +44,14 @@
            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="success"-->
<!--            icon="Promotion"-->
<!--            :disabled="pageF.multiple"-->
<!--            @click="handleGenerate"-->
<!--            v-hasPermi="['tms:tmsDispatchOrder:generate']"-->
<!--        >生成应收应付费用-->
<!--        </el-button>-->
        <el-button
            type="warning"
            icon="Female"
@@ -115,10 +115,10 @@
                 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>
<!--        <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"
@@ -126,26 +126,26 @@
        </el-link>
      </template>
      <template #shipperId-form>
      <template #shipperId-form="{disabled}">
        <div style="display:flex; align-items: center;justify-content: space-between">
          <avue-input-table :props="consignorProps"
                            :children="consignorOption"
          <avue-input-table :props="consignorProps" dataType="string"
                            :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" @click="handleAddShipper"></el-button>
          <el-button icon="plus"  :disabled="disabled" @click="handleAddShipper"></el-button>
        </div>
      </template>
      <template #receiverId-form>
      <template #receiverId-form="{disabled}">
        <div style="display:flex; align-items: center;justify-content: space-between">
          <avue-input-table :props="consignorProps"
                            :children="consignorOption"
                            :children="consignorOption" dataType="string"
                            :on-load="onConsignorLoad" suffixIcon="search"
                            v-model="form.receiverId"
                            v-model="form.receiverId"  :disabled="disabled"
                            @change="changeReceiver" style="width: 80%"
                            placeholder="请选择卸货点"></avue-input-table>
          <el-button icon="plus" @click="handleAddReceiver"></el-button>
          <el-button icon="plus"  :disabled="disabled" @click="handleAddReceiver"></el-button>
        </div>
      </template>
@@ -395,6 +395,7 @@
  searchSpan: 6,
  searchLabelWidth: 150,
  menuWidth: 300,
  height: 530,
  group: [
    {
      label: '基本信息',
@@ -432,6 +433,14 @@
                requiredVehicleTypes: active.vehicleType,
                quotePlanId: active.quotePlanId,
              });
              form.value.shipperId = undefined;
              form.value.shipperRegionLabel = undefined;
              form.value.shipperAddress = undefined;
              form.value.shipperMobile = undefined;
              form.value.receiverId = undefined;
              form.value.receiverRegionLabel = undefined;
              form.value.receiverAddress = undefined;
              form.value.receiverMobile = undefined;
            }
          },
          children: {
@@ -717,7 +726,7 @@
          ],
        },
        isUrgent: {
          label: '是否紧急',
          label: '是否紧急',value: '1',
          display: true,
          type: 'radio', dicUrl: '/system/dict/data/type/sys_number_is', dataType: 'string',
          rules: [
@@ -736,6 +745,13 @@
        //   label: '配载方式',
        //   display: true, type: 'select', dicUrl: '/system/dict/data/type/load_method', dataType: 'string',
        // },
        orderTime: {
          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 类型
@@ -784,12 +800,17 @@
            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:{
@@ -947,7 +968,7 @@
              listTmsDriver({
                pageSize: page.pageSize,
                pageNum: page.currentPage, ...data,
                carrierType: form.value.operationMode
                carrierType: form.value.operationMode,vehicleProviderId:form.value.vehicleProviderId
              }).then(res => {
                return callback({
                  total: res.total,
@@ -1012,7 +1033,7 @@
            } else {
              listTmsDriver({
                pageSize: page.pageSize,
                pageNum: page.currentPage, ...data,
                pageNum: page.currentPage, ...data,vehicleProviderId:form.value.vehicleProviderId,
                carrierType: form.value.operationMode
              }).then(res => {
                return callback({
@@ -1043,6 +1064,7 @@
              Object.assign(form.value, {
                vehicleId: active.id,
                licensePlate: active.licensePlate,
                actualVehicleType: active.vehicleType,
              });
            }
          },
@@ -1058,6 +1080,8 @@
              },
              vehicleType: {
                label: '车辆类型', minWidth: 120,
                type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/vehicle_type',
                search: true,
              },
              internalCode: {
@@ -1096,7 +1120,7 @@
              listTmsVehicle({
                pageSize: page.pageSize,
                pageNum: page.currentPage, ...data,
                carrierType: form.value.operationMode
                carrierType: form.value.operationMode,serviceProviderId:form.value.vehicleProviderId
              }).then(res => {
                return callback({
                  total: res.total,
@@ -1159,6 +1183,10 @@
          label: '卸货点联系方式',
          display: true, disabled: true
        },
        containerNo: {
          label: '集装箱号',
          display: false,
        },
        containerId: {
          label: '关联集装箱信息',
          display: true,
@@ -1187,6 +1215,11 @@
              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: {
@@ -1224,6 +1257,10 @@
          }
        },
        shelfCode: {
          label: '托板号',
          display: false,
        },
        shelfId: {
          label: '托板号',
          display: true,
@@ -1250,7 +1287,13 @@
                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: {
@@ -1394,13 +1437,13 @@
      type: 'select', dataType: 'string',
      dicUrl: '/system/dict/data/type/order_type',
    },
    signType: {
      label: '订单类型',
      display: false,
      search: true, minWidth: 120,
      type: 'select', dataType: 'string',
      dicUrl: '/system/dict/data/type/order_type',
    },
    // signType: {
    //   label: '订单类型',
    //   display: false,
    //   search: true, minWidth: 120,
    //   type: 'select', dataType: 'string',
    //   dicUrl: '/system/dict/data/type/order_type',
    // },
    transportLine: {
      label: '运输线路',
@@ -1467,29 +1510,29 @@
      display: false,
      search: 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',
    },
    // 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,
      search: false,
      rules: [
        {
          required: true,
@@ -1497,14 +1540,54 @@
        }
      ],
    },
    inStatusList: {
      label: '状态', minWidth: 150,
      type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/tms_dispatch_order_status',
      display: false,multiple:true,
      hide: true,
      search: true,
    },
    confirmTime: {
      label: '确认时间', minWidth: 180,
      display: false,
      hide: false,
      search: false,
    },
    orderTime: {
      label: '下单时间', minWidth: 180,
      display: false,
      hide: false,
      search: false,
    },
    createBy: {
      label: '创建人', minWidth: 150,
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: false,
      search: true,
    },
    createTime: {
      label: '创建时间', minWidth: 180,
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: false,
      search: false,
    },
    createTimeRange: {
      label: '创建时间', display: false, search: true, searchRange: true, type: 'date',
      format: 'YYYY-MM-DD', hide: true, searchSpan: 5,
      valueFormat: 'YYYY-MM-DD',
    },
    updateBy: {
      label: '更新人', minWidth: 150,
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: false,
      search: false,
      search: true,
    },
    updateTime: {
      label: '更新时间', minWidth: 180,
@@ -1526,6 +1609,11 @@
    },
    okTimeRange: {
      label: '完成时间', display: false, search: true, searchRange: true, type: 'date',
      format: 'YYYY-MM-DD', hide: true, searchSpan: 5,
      valueFormat: 'YYYY-MM-DD',
    },
    orderTimeRange: {
      label: '下单时间', display: false, search: true, searchRange: true, type: 'date',
      format: 'YYYY-MM-DD', hide: true, searchSpan: 5,
      valueFormat: 'YYYY-MM-DD',
    },
@@ -2430,6 +2518,11 @@
    queryParams.value = proxy.addDateRangeNew(queryParams.value, queryParams.value?.confirmTimeRange, 'confirmTime') || {};
    queryParams.value = proxy.addDateRangeNew(queryParams.value, queryParams.value?.okTimeRange, 'okTime') || {};
  },
  handleBeforeOpenFunc:(type:string)=>{
    if(type == 'add'){
      form.value = {};
    }
  }
})
const handleConfirm = (row: any) => {
@@ -2657,7 +2750,10 @@
      pageF.isUploading = false;
    })
  }else if (optionType.value === 'customs') {
    customsOrder(form.value.id).then(res => {
    customsOrder({id:form.value.id,
      customsServiceProviderId: form.value.customsServiceProviderId,
      customsServiceProviderName: form.value.customsServiceProviderName,
    }).then(res => {
      ElMessage({
        message: "提交成功!",
        type: 'success'
@@ -2668,7 +2764,10 @@
      pageF.isUploading = false;
    })
  }else if (optionType.value === 'loading') {
    loadingOrder(form.value.id).then(res => {
    loadingOrder({id:form.value.id,
      loadingServiceProviderId: form.value.loadingServiceProviderId,
      loadingServiceProviderName: form.value.loadingServiceProviderName,
    }).then(res => {
      ElMessage({
        message: "提交成功!",
        type: 'success'
@@ -2795,7 +2894,7 @@
      if (districtId) data.districtId = districtId;
      if (streetId) data.streetId = streetId;
    }
    listTmsConsignor({pageSize: page.pageSize, pageNum: page.currentPage, ...data}).then(res => {
    listTmsConsignor({pageSize: page.pageSize, pageNum: page.currentPage, ...data,customerId: form.value.customerId}).then(res => {
      return callback({
        total: res.total,
        data: res.rows || [],
@@ -2822,7 +2921,7 @@
      if (districtId) data.districtId = districtId;
      if (streetId) data.streetId = streetId;
    }
    listTmsConsignor({pageSize: page.pageSize, pageNum: page.currentPage, ...data}).then(res => {
    listTmsConsignor({pageSize: page.pageSize, pageNum: page.currentPage, ...data,customerId: form.value.customerId}).then(res => {
      return callback({
        total: res.total,
        data: res.rows || [],