zhangback
2025-12-16 6f79796cf6c3b32a19b7d2075bf2e548e4cfed0d
ui/admin-ui3/src/views/tms/generationCost/index.vue
@@ -78,7 +78,7 @@
        <el-descriptions-item label="车型">{{form.$actualVehicleType}}</el-descriptions-item>
        <el-descriptions-item label="车牌">{{form.licensePlate}}</el-descriptions-item>
      </el-descriptions>
      <avue-tabs :option="tabsOption2"
      <avue-tabs :option="tabsOption2" ref="tabsOption2Ref"
                 @change="handleChange2"></avue-tabs>
      <div v-if="active === 'tab1'">
        <avue-crud
@@ -150,6 +150,15 @@
                         :true-value="1"
                         :false-value="0"
                         @change="(e:number) =>isYFChange(e, row)" ></el-checkbox>
          </template>
          <template #yfServiceProviderId="{row}">
            <el-select v-model="row.yfServiceProviderIdType"  placeholder="请选择服务商"
                      @change="(e:any)=>ysServiceProviderChange(e,row)"
                      :filterable="true">
              <el-option v-for="item in serviceProviderList"
                         :key="item.serviceProviderId + '_'+ item.serviceProviderType" :label="item.serviceProviderName"
                         :value="item.serviceProviderId + '_'+ item.serviceProviderType"></el-option>
            </el-select>
          </template>
          <template #yfPrice="{row}">
            <el-input v-model="row.yfPrice" :min="1"
@@ -227,7 +236,9 @@
  getTmsDispatchOrder,
  costListTmsDispatchOrder,
  updateTmsDispatchOrder,
  generateTmsDispatchOrder, initGenerate, initYSGenerate, ysGenerateTmsDispatchOrder, initYFGenerate,yfGenerateTmsDispatchOrder
  generateTmsDispatchOrder, initGenerate, initYSGenerate,
  ysGenerateTmsDispatchOrder, initYFGenerate,yfGenerateTmsDispatchOrder,
  getServiceProvider
} from "@/api/tms/tmsDispatchOrder";
import useCurrentInstance from "@/utils/useCurrentInstance";
import {computed, onMounted, reactive, ref, toRefs, watch, getCurrentInstance, nextTick} from "vue";
@@ -244,6 +255,7 @@
import {listTmsLoadingServiceProvider} from "@/api/tms/tmsLoadingServiceProvider";
import {selectPaymentTmsQuotePlan} from "@/api/tms/tmsQuotePlan";
import {addTmsQuoteFee, listTmsQuoteFee, pushTmsQuoteFee} from "@/api/tms/tmsQuoteFee";
import {an} from "vue-router/dist/router-CWoNjPRp";
const {appContext} = getCurrentInstance();
@@ -293,12 +305,13 @@
  isCustoms:<any> -1,
  isLoad: -1,
  active: 'tab1',
  quotationItems:[]
  quotationItems:[],
  serviceProviderList: <any>[]
})
const {
  queryParams, form, page, selectionList,
  boxTableData, optionType,open,
  boxFormOption, boxForm, boxTableOption,boxItemTableOption,selectionList2,isCustoms,isLoad,active,quotationItems
  boxFormOption, boxForm, boxTableOption,boxItemTableOption,selectionList2,isCustoms,isLoad,active,quotationItems,serviceProviderList
} = toRefs(data);
const option = ref({
  pageKey: 'TmsDispatchOrder',
@@ -672,13 +685,21 @@
      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,
          message: "状态不能为空", trigger: "change"
        }
      ],
    },
    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,
@@ -908,6 +929,12 @@
      label: '是否应付费用',
      display: true,
      type: 'radio', dicUrl: '/system/dict/data/type/sys_number_is', dataType: 'string',
    },
    yfServiceProviderId:{
      label: '服务商',
      display: true,
      type: 'select',
    },
    yfPrice:{
@@ -1178,6 +1205,7 @@
        message: "操作成功!",
        type: 'success'
      })
      boxFormRef.value?.resetFields();
      getTab2Data();
    })
  }
@@ -1194,11 +1222,14 @@
  boxTableOption.value = itineraryTableOption.value;
  listTmsTrip({dispatchOrderId: row.id, pageNum: 1, pageSize: 999}).then(res => {
    boxTableData.value = res.rows || [];
    pageF.open = true;
    open.value =  true;
    pageF.title = '查看行程';
    boxFormOption.value.title = '';
  })
}
const tabsOption2Ref = ref();
const handleAddFinance = async (row: any) => {
  pageF.open = true;
@@ -1207,8 +1238,11 @@
  boxFormOption.value = financeOption.value;
  boxTableOption.value = financeTableOption.value;
  form.value = row;
  await getTab1Data();
  handleChange2(tabsOption2.value.column[0]);
  nextTick(()=>{
    tabsOption2Ref.value.active = "0";
  })
}
@@ -1258,18 +1292,22 @@
const getTab2Data = async () =>{
  let serviceProvider = await getServiceProvider(form.value.id);
  serviceProviderList.value = serviceProvider.data || [];
  listTmsFinanceDetail({
    dispatchOrderId: form.value.id, financeType: 2,
    pageNum: 1, pageSize: 999
  }).then(res => {
  }).then(async res => {
    boxTableData.value = res.rows || [];
    boxForm.value = {
      dispatchOrderId:  form.value.id,
      dispatchOrderId: form.value.id,
      dataSource: 0,
      financeType: 2,
    }
  })
}
@@ -1357,6 +1395,10 @@
          row.serviceProviderId = serviceProviderId;
        }
      }
      if (row.serviceProviderType){
        serviceProviderChange(row);
      }
@@ -1480,6 +1522,12 @@
}
const ysServiceProviderChange = (e:any,row:any) => {
  let  active = serviceProviderList.value.find((item:any) => item.serviceProviderId + '_'+ item.serviceProviderType == e)
  row.yfServiceProviderId = active.serviceProviderId;
  row.yfServiceProviderName = active.serviceProviderName;
  row.yfServiceProviderType = active.serviceProviderType;
}
</script>