diff --git a/src/api/aftersales/aftersalesWorkOrder.js b/src/api/aftersales/aftersalesWorkOrder.js
index 389d5083..baed09b7 100644
--- a/src/api/aftersales/aftersalesWorkOrder.js
+++ b/src/api/aftersales/aftersalesWorkOrder.js
@@ -274,3 +274,12 @@ export const $_getAbnormalPackage = (params) => {
     params
   })
 }
+
+//查询申述数据
+export const $_listAppeal = (params) => {
+  return request({
+    url: '/api/logpm-aftersales/aftersalesAppeal/listAppeal',
+    method: 'get',
+    params
+  })
+}
diff --git a/src/option/aftersales/vueTvemp.js b/src/option/aftersales/vueTvemp.js
index e7749a9a..d36cd424 100644
--- a/src/option/aftersales/vueTvemp.js
+++ b/src/option/aftersales/vueTvemp.js
@@ -644,5 +644,15 @@ export const Claimsfield = [
     sortable: true,
     head: false,
   },
+  {
+    prop: 'createUserName',
+    label: '操作',
+    type: 6,
+    values: '',
+    width: '220',
+    checkarr: [],
+    fixed: 'right',
+    sortable: false,
+  },
 ]
 
diff --git a/src/page/index/top/index.vue b/src/page/index/top/index.vue
index 3de4b69e..0ee9e0e6 100644
--- a/src/page/index/top/index.vue
+++ b/src/page/index/top/index.vue
@@ -67,7 +67,7 @@
   </div>
   <el-dialog v-model="isshow" title="切换仓库" width="30%">
     <div style="display: flex; flex-direction: column; align-items: center">
-      <el-select class="selecin" v-model="warehousevalue" placeholder="请选择切换的仓库">
+      <el-select class="selecin" v-model="warehousevalue"  filterable placeholder="请选择切换的仓库">
         <el-option
           v-for="(item, index) in datalist"
           :key="item.id"
diff --git a/src/router/views/index.js b/src/router/views/index.js
index 08cd3f34..d35eb521 100644
--- a/src/router/views/index.js
+++ b/src/router/views/index.js
@@ -1216,6 +1216,21 @@ export default [
       },
     ],
   },
+
+  {
+    path: '/aftersales/aftersalesWorkOrderInfo',
+    component: Layout,
+    redirect: '/aftersales/aftersalesWorkOrderInfo',
+    children: [
+      {
+        path: '/aftersales/aftersalesWorkOrderInfo',
+        name: '工单详情查看',
+        component: () => import('@/views/aftersales/aftersalesWorkOrderInfo.vue'),
+      },
+    ],
+  },
+
+
   {
     path: '/aftersales/aftersalesWorkOrderend',
     component: Layout,
diff --git a/src/views/aftersales/aftersalesWorkOrder.vue b/src/views/aftersales/aftersalesWorkOrder.vue
index e0478b35..77e05ba8 100644
--- a/src/views/aftersales/aftersalesWorkOrder.vue
+++ b/src/views/aftersales/aftersalesWorkOrder.vue
@@ -2,6 +2,7 @@
   <div class="content_max">
     <!-- 菜单  -->
     <el-tabs type="border-card" v-model="tabValue" @tab-change="tabChenge" class="el_tabs">
+      <div>  </div>
       <el-tab-pane :name="item.name" :label="item.label" v-for="item in TabList" :key="item.name">
       </el-tab-pane>
       <div class="content_right">
@@ -89,7 +90,7 @@
                   <el-button type="primary" @click="assign">工单指派</el-button>
                   <el-button type="primary" @click="arbitrate">申请仲裁</el-button>
                   <el-button type="primary" @click="Batchcompletion">批量完结</el-button>
-                  <el-button type="primary" @click="appeal">申诉</el-button>
+                  <el-button type="primary" @click="appeal" v-if="details.query.workOrderStatus == 30">申诉</el-button>
                   <!-- <el-button type="primary" @click="ProcessingParty"> 处理方信息</el-button> -->
                 </div>
                 <!-- 头部右侧按钮模块 -->
@@ -126,11 +127,14 @@
                   <template v-if="slotProps.scope.column.label === '操作'">
                     <div class="ElBtnClass">
                       <el-button @click="addingRecord(slotProps.scope)">新增记录</el-button>
-                      <el-button @click="view(slotProps.scope)">查看</el-button>
+                      <el-button v-if="!ClaimStatus" @click="view(slotProps.scope)">查看</el-button>
                       <!-- <el-button @click="ViewEvent(slotProps.scope)">编辑</el-button> -->
                       <el-button @click="reply(slotProps.scope)">回复</el-button>
                       <!-- <el-button @click="ViewDelete(slotProps.scope)">删除</el-button> -->
                       <el-button @click="CompletionButton(slotProps.scope)">完结</el-button>
+                      <el-button v-if="ClaimStatus" @click="appeal(slotProps.scope)"
+                        >申诉</el-button
+                      >
                     </div>
                   </template>
                 </template>
@@ -1013,7 +1017,7 @@ import {
   $_addCompletionEnd,
   $_appealSubmit,
   $_listSettlement,
-  $_getAbnormalPackage,
+  $_listAppeal,
 } from '@/api/aftersales/aftersalesWorkOrder';
 import { getToken } from '@/utils/auth';
 import { getDictionaryBiz } from '@/api/system/dict'; //字典
@@ -1469,11 +1473,10 @@ const searchHide = () => {
 const view = val => {
   console.log(val.row.id);
   $router.push({
-    path: '/aftersales/aftersalesWorkOrderAdd',
+    path: '/aftersales/aftersalesWorkOrderInfo',
     query: {
       id: val.row.id,
       name: val.row.id + '-信息查看',
-      routerState: 'view',
     },
   });
   return;
@@ -1586,6 +1589,13 @@ const appeal = val => {
     });
     return;
   }
+  if (details.selectionList.length>1) {
+    ElMessage({
+      message: '只能单条申诉',
+      type: 'warning',
+    });
+    return;
+  }
   dialogappeal.value = true; //展开申诉弹窗
 };
 // 工单申诉确认按钮
@@ -1596,7 +1606,16 @@ const Appealbutton = () => {
   let data = {
     peopleEntityList: [], //参数一
   };
+  data.workOrderId=details.selectionList[0].id
+  data.reason=Reasonforappeal.value
+
+   data.appealPeopleName= warehouseData.value
+        .filter(item => Appealselection.value.includes(item.value))
+        .map(item => item.label)
+        .join(','), //实际责任人名称
+
   details.selectionList.forEach(item => {
+    console.log(item.id);
     console.log(item, '已经选择的列表');
     data['peopleEntityList'].push({
       workOrderId: item.id, //异常工单ID
@@ -1608,10 +1627,6 @@ const Appealbutton = () => {
         .filter(item => Appealselection.value.includes(item.value))
         .map(item => item.label)
         .join(','), //实际责任人名称
-      actualPersonId: warehouseData.value
-        .filter(item => Appealselection.value.includes(item.value))
-        .map(item => item.value)
-        .join(','), //实际责任人ID
     });
   });
   console.log(data, '处理好的值');
@@ -1646,6 +1661,11 @@ const AppealTab = val => {
     IndexTable({ workOrderStatus: 30 });
   } else {
     console.log('当前是申诉列表');
+    let data={}
+    $_listAppeal(data).then(res=>{
+      console.log(res,'申诉列表返回值')
+
+    })
   }
 };
 
@@ -2764,6 +2784,7 @@ const CompletedSubmission = () => {
   display: flex;
   align-items: flex-end;
   margin-bottom: 10px;
+
 }
 .el-times {
   :deep(.el-input__wrapper) {
@@ -3001,10 +3022,15 @@ const CompletedSubmission = () => {
 :deep(.el_tabs) {
   width: 100%;
   display: flex;
-  flex-direction: column;
+  // flex-direction: column;
+  flex-wrap: wrap;
   .el-tabs__content {
     padding: 0;
   }
+  .el-tabs__header{
+    height: 37px;
+    width: 100%;
+  }
 }
 :deep(.avue-crud__pagination) {
   padding-top: 2px !important;
@@ -3029,4 +3055,7 @@ const CompletedSubmission = () => {
   justify-content: flex-end;
   margin-top: 10px;
 }
+:deep(.avue-crud__header){
+  align-items: center;
+}
 </style>
diff --git a/src/views/aftersales/aftersalesWorkOrderAdd.vue b/src/views/aftersales/aftersalesWorkOrderAdd.vue
index ae0326a7..c1356494 100644
--- a/src/views/aftersales/aftersalesWorkOrderAdd.vue
+++ b/src/views/aftersales/aftersalesWorkOrderAdd.vue
@@ -21,6 +21,7 @@
                   placeholder="请输入包条码"
                   clearable
                   :rows="2"
+                  @change="ChangePackageInfo(item.packageCode, index)"
                 />
               </div>
 
@@ -36,6 +37,9 @@
             </div>
 
             <div class="el-btn">
+              <el-button v-if="item.state" type="primary" @click="historicalPackages(index)">
+                查看历史包件
+              </el-button>
               <el-button type="primary" @click="PackagRemoval(index)"> 移除 </el-button>
             </div>
           </div>
@@ -361,6 +365,17 @@
                   :rows="2"
                 />
               </div>
+
+              <div class="maxBox">
+                <span class="title">说明:</span>
+                <el-input
+                  v-model="item.responsibilityRatio"
+                  placeholder="请输入说明 "
+                  clearable
+                  :rows="2"
+                />
+              </div>
+
             </div>
             <div class="el-btn">
               <el-button type="primary" @click="ResponsibilityRemoval(index)"> 移除 </el-button>
@@ -454,6 +469,28 @@
       </span>
     </template>
   </el-dialog>
+
+  <el-dialog v-model="dialogHistoricalPackage" title="查看历史包件" width="30%">
+    <el-form-item label="历史包件选择">
+      <el-select v-model="HistoricalPackageinput" clearable filterable placeholder="请选择包件">
+        <el-option
+          v-for="item in HistoricalPackageList"
+          :key="item.value"
+          :label="item.workOrderNumber"
+          :value="item.workOrderId"
+        />
+      </el-select>
+      <el-button @click="ViewPackageDetails(HistoricalPackageinput)">查看详情</el-button>
+    </el-form-item>
+    <template #footer>
+      <span class="dialog-footer">
+        <el-button @click="dialogHistoricalPackage = false">取消</el-button>
+        <el-button type="primary" @click="HistoricalPackage(HistoricalPackageinput)">
+          确定选择
+        </el-button>
+      </span>
+    </template>
+  </el-dialog>
 </template>
 
 <script setup>
@@ -468,6 +505,7 @@ import {
   $_getDetail,
   $_remove,
   $_getBusinessDepartmentUser,
+  $_getAbnormalPackage,
 } from '@/api/aftersales/aftersalesWorkOrder';
 import { ref, reactive, toRefs, computed, onMounted, nextTick } from 'vue';
 import { getToken } from '@/utils/auth';
@@ -491,6 +529,7 @@ const DiscoveringNodes = ref([]); //发现节点下拉选择
 const warehouseData = ref([]); //处理方
 const SelectType = ref(null); //类型
 const StateType = ref(true); //类型
+const HistoricalPackageinput = ref(''); //历史包件选择
 const dialogImageUrl = ref(null); //图片
 const dialogVisible = ref(null); //图片
 const groundlineSet = ref(true); //干线条件都满足
@@ -505,6 +544,9 @@ const routerState = ref(''); //路由状态
 const personResponsibleList = ref([]); //责任人列表
 const companyProportion = ref(0); //公司占比
 const identifying = ref(1); //订单,零担状态
+const dialogHistoricalPackage = ref(false); //历史包件弹窗
+const HistoricalPackageList = ref([]); //历史包件数组
+const HistorIndex = ref(0); //历史包件索引
 const PackageInfo = ref([
   //包件信息
   { packageCode: '', orderCode: '', waybillNumber: '' },
@@ -690,6 +732,7 @@ const TopChange = val => {
     identifying.value = 2;
   }
 };
+
 //表单提交
 const ConfirmForm = () => {
   // 图片类型:10运损,20窜货
@@ -940,6 +983,70 @@ const moneyBtnB = () => {
   }
   fleeingState.value = true; //开启弹窗输入
 };
+// 查询包件信息自动回显
+const ChangePackageInfo = (val, index) => {
+  let data = {
+    packageCode: val,
+  };
+  $_getAbnormalPackage(data).then(res => {
+    console.log(res, '包件信息');
+    console.log(res.data.data, '包件信息');
+
+    const packageData = res.data.data[0];
+    PackageInfo.value[index].orderCode = packageData.orderCode; //订单自编码
+    PackageInfo.value[index].waybillNumber = packageData.waybillNumber; //运单号
+    PackageInfo.value[index].orderId = packageData.orderId; //运单号
+    PackageInfo.value[index].state = false; //状态
+
+    if (res.data.data.length > 1) {
+      HistoricalPackageList.value = res.data.data;
+      PackageInfo.value[index].state = true; //状态
+    }
+    // packageCode; //包件码
+    // //订单自编码
+    // orderCode: orderId; //运单号
+    // workOrderId; //工单id
+    // workOrderNumber; //工单名称
+    console.log(PackageInfo.value, '处理好的参数');
+  });
+};
+
+// 查看历史包件
+const historicalPackages = val => {
+  dialogHistoricalPackage.value = true; //打开历史包件弹窗
+  HistorIndex.value = val;
+  console.log(val);
+};
+// 历史包件确定选择
+const HistoricalPackage = val => {
+  let info = HistoricalPackageList.value.find(obj => obj.workOrderId == val);
+  PackageInfo.value[HistorIndex.value].orderCode = info.orderCode; //订单自编码
+  PackageInfo.value[HistorIndex.value].waybillNumber = info.waybillNumber; //运单号
+  PackageInfo.value[HistorIndex.value].orderId = info.orderId; //运单号
+  dialogHistoricalPackage.value = false; //关闭历史包件弹窗
+};
+// 历史包件里面的查看
+const ViewPackageDetails = val => {
+  if(!val){
+    ElMessage({
+    message: '请选择要查看的数据',
+    type: 'warning',
+  })
+  return
+  }
+  console.log(val);
+  let info = HistoricalPackageList.value.find(obj => obj.workOrderId == val);
+  console.log(info,'筛选的值');
+  $router.push({
+    path: '/aftersales/aftersalesWorkOrderInfo',
+    query: {
+      id: info.workOrderId,
+      name: info.workOrderId + '-信息查看',
+      routerState: 'view',
+    },
+  });
+  dialogHistoricalPackage.value = false; //打开历史包件弹窗
+};
 </script>
 
 <style scoped lang="scss">
@@ -957,6 +1064,7 @@ const moneyBtnB = () => {
     flex: 1 0 30%;
     :deep(.el-form-item__label) {
       width: 100px !important;
+      justify-content: flex-start;
     }
   }
   :deep(.el-form-item__content) {
@@ -1085,8 +1193,9 @@ const moneyBtnB = () => {
     display: flex;
     align-items: center;
     width: 30%;
+    margin-right: 16px;
     .title {
-      width: 120px;
+      width:  80px;
       font-size: 14px;
       color: #606266;
     }
diff --git a/src/views/aftersales/aftersalesWorkOrderInfo.vue b/src/views/aftersales/aftersalesWorkOrderInfo.vue
new file mode 100644
index 00000000..d31f3036
--- /dev/null
+++ b/src/views/aftersales/aftersalesWorkOrderInfo.vue
@@ -0,0 +1,1287 @@
+<template>
+    <el-card class="box-card">
+      <!-- <el-tabs type="border-card" class="topClass" @tab-change="TopChange">
+        <el-tab-pane label="订单"></el-tab-pane>
+        <el-tab-pane label="零担"></el-tab-pane>
+      </el-tabs> -->
+ 
+      <el-tabs type="border-card" class="PackageInformation">
+        <el-tab-pane label="包件信息">
+          <div class="ResponsibilityBoxS">
+            <!-- <div><el-button type="primary" @click="AddPackage"> 添加信息 </el-button></div> -->
+            <div class="el_btbox" v-for="(item, index) in PackageInfo" :key="index">
+              <div class="leftbox">
+                <div class="maxBox">
+                  <span class="title">包条码:</span>
+                  <el-input
+                    v-model="item.packageCode"
+                    placeholder="请输入包条码"
+                    clearable
+                    :rows="2"
+                    @change="ChangePackageInfo(item.packageCode, index)"
+                  />
+                </div>
+  
+                <div class="maxBox">
+                  <span class="title">订单自编码:</span>
+                  <el-input v-model="item.orderCode" placeholder="请输入订单自编号" clearable />
+                </div>
+  
+                <div class="maxBox">
+                  <span class="title">运单号:</span>
+                  <el-input v-model="item.waybillNumber" placeholder="请输入运单号" clearable />
+                </div>
+              </div>
+  
+              <div class="el-btn">
+                <!-- <el-button v-if="item.state" type="primary" @click="historicalPackages(index)">
+                  查看历史包件
+                </el-button> -->
+                <!-- <el-button type="primary" @click="PackagRemoval(index)"> 移除 </el-button> -->
+              </div>
+            </div>
+            <!-- <div class="NumTotal">
+              <span>总件数:{{ Indexform.number }}</span>
+            </div> -->
+          </div>
+        </el-tab-pane>
+      </el-tabs>
+      <el-form :model="Indexform" label-width="100px" class="IndexFrom" ref="IndexForm">
+        <el-form-item label="异常类型">
+          <el-select
+            v-model="Indexform.workOrderType"
+            clearable
+            placeholder="选择工单异常类型"
+            @change="abnormalChange"
+          >
+            <el-option
+              v-for="item in IndexException"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </el-form-item>
+  
+        <el-form-item label="发现节点">
+          <el-select
+            v-model="Indexform.discoveryNode"
+            clearable
+            placeholder="选择发现节点"
+            @change="DiscoveringNodesChange"
+          >
+            <el-option
+              v-for="item in DiscoveringNodes"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </el-form-item>
+  
+        <el-form-item label="异常工单号">
+          <el-input v-model="Indexform.workOrderNumber" disabled placeholder="异常工单号" clearable />
+        </el-form-item>
+        <!-- 必填(提货环节可以不填写运单号) -->
+        <!-- <el-form-item label="运单号" v-if="groundlineType != 1">
+        <el-input v-model="Indexform.waybillNumber" placeholder="请输入运单号" clearable />
+      </el-form-item> -->
+  
+        <!-- <el-form-item label="少货件数" v-if="StateType || SelectType == 2">
+        <div class="moneyNum">
+          <el-input
+            @change="ShortageTtems"
+            v-model="Indexform.number"
+            placeholder="请输入少货件数"
+            clearable
+          />
+          <div class="el_btn" @click="moneyBtnA"><span>编辑</span></div>
+        </div>
+      </el-form-item> -->
+  
+        <!-- <el-form-item label="窜货件数" v-if="StateType || SelectType == 3">
+        <div class="moneyNum">
+          <el-input
+            @change="fleeingTtems"
+            v-model="Indexform.number"
+            placeholder="请输入窜货件数"
+            clearable
+          />
+          <div class="el_btn" @click="moneyBtnB"><span>编辑</span></div>
+        </div>
+      </el-form-item> -->
+  
+        <!-- <el-form-item
+        label="包条码"
+        v-if="SelectType == 1 || SelectType == 2 || SelectType == 3 || StateType"
+      >
+        <el-input
+          v-model="Indexform.packageCode"
+          placeholder="请输入包条码,多个用逗号隔开"
+          clearable
+        />
+      </el-form-item> -->
+  
+        <!-- 必填 -->
+        <!-- <el-form-item label="订单自编号">
+        <el-input v-model="Indexform.orderCode" placeholder="请输入订单自编号" clearable />
+      </el-form-item> -->
+  
+        <el-form-item
+          label="车次号"
+          v-if="
+            groundlineSet ||
+            groundlineType == 1 ||
+            groundlineType == 3 ||
+            groundlineType == 4 ||
+            groundlineType == 8 ||
+            groundlineType == 5 ||
+            groundlineType == 7 ||
+            groundlineType == 8
+          "
+        >
+          <el-input
+            v-model="Indexform.trainNumber"
+            placeholder="请输入车次号(干线卸车环节)"
+            clearable
+          />
+        </el-form-item>
+        <!-- 必填 -->
+        <el-form-item label="一级品">
+          <el-input v-model="Indexform.first" placeholder="请输入一级品类" clearable />
+        </el-form-item>
+        <!-- 必填 -->
+        <el-form-item label="二级品">
+          <el-input v-model="Indexform.secondary" placeholder="请输入二级品类" clearable />
+        </el-form-item>
+  
+        <el-form-item label="车辆路线" v-if="groundlineSet || groundlineType == 3">
+          <el-input
+            v-model="Indexform.vehicleRoute"
+            placeholder="请输入车辆路线车次号(通过车次号自动带出车辆路线)"
+            clearable
+          />
+        </el-form-item>
+  
+        <el-form-item label="发货时间">
+          <el-date-picker
+            v-model="Indexform.deliverGoodsTime"
+            type="datetime"
+            format="YYYY-MM-DD HH:mm:ss"
+            value-format="YYYY-MM-DD HH:mm:ss"
+            placeholder="请选择发货时间"
+          />
+        </el-form-item>
+  
+        <el-form-item
+          label="发现时间"
+          v-if="
+            groundlineSet ||
+            groundlineType == 2 ||
+            groundlineType == 3 ||
+            groundlineType == 4 ||
+            groundlineType == 8 ||
+            groundlineType == 5 ||
+            groundlineType == 7 ||
+            groundlineType == 8
+          "
+        >
+          <el-date-picker
+            v-model="Indexform.discoveryTime"
+            type="datetime"
+            format="YYYY-MM-DD HH:mm:ss"
+            value-format="YYYY-MM-DD HH:mm:ss"
+            placeholder="请选择发现时间"
+          />
+        </el-form-item>
+  
+        <el-form-item
+          label="配送时间"
+          v-if="
+            groundlineSet ||
+            groundlineType == 3 ||
+            groundlineType == 4 ||
+            groundlineType == 8 ||
+            groundlineType == 5 ||
+            groundlineType == 7 ||
+            groundlineType == 8
+          "
+        >
+          <el-date-picker
+            v-model="Indexform.deliveryTime"
+            type="datetime"
+            format="YYYY-MM-DD HH:mm:ss"
+            value-format="YYYY-MM-DD HH:mm:ss"
+            placeholder="请选择配送时间"
+          />
+        </el-form-item>
+  
+        <el-form-item
+          label="入库时间"
+          v-if="groundlineSet || groundlineType == 2 || groundlineType == 4"
+        >
+          <el-date-picker
+            v-model="Indexform.warehousingTime"
+            type="datetime"
+            format="YYYY-MM-DD HH:mm:ss"
+            value-format="YYYY-MM-DD HH:mm:ss"
+            placeholder="请选择入库"
+          />
+        </el-form-item>
+        <!-- 必填 -->
+        <el-form-item label="运单商场">
+          <el-input v-model="Indexform.waybillMall" placeholder="请输入运单商场" clearable />
+        </el-form-item>
+  
+        <el-form-item
+          label="配送司机"
+          v-if="
+            groundlineSet ||
+            groundlineType == 3 ||
+            groundlineType == 4 ||
+            groundlineType == 8 ||
+            groundlineType == 5 ||
+            groundlineType == 7 ||
+            groundlineType == 8
+          "
+        >
+          <el-select
+            v-model="Indexform.deliveryDriver"
+            filterable
+            default-first-option
+            :reserve-keyword="false"
+            placeholder="请输入配送司机"
+          >
+            <el-option
+              v-for="item in DeliveryDriver"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </el-form-item>
+        <!-- 必填 -->
+        <el-form-item label="异常问题描述">
+          <el-input v-model="Indexform.problemDescription" placeholder="请输入异常问题" clearable />
+        </el-form-item>
+      </el-form>
+  
+      <!-- 必填 -->
+      <div class="el_clzr">
+        <el-form-item class="investigate" label="调查经过">
+          <el-input
+            v-model="Indexform.investigationPocess"
+            placeholder="请输入调查经过"
+            clearable
+            :rows="2"
+            type="textarea"
+          />
+        </el-form-item>
+  
+        <el-form-item label="处理方">
+          <el-select
+            v-model="Indexform.processor"
+            clearable
+            filterable
+            multiple
+            placeholder="请选择处理方"
+          >
+            <el-option
+              v-for="item in warehouseData"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </el-form-item>
+      </div>
+  
+      <el-tabs type="border-card">
+        <el-tab-pane label="责任方信息">
+          <div class="ResponsibilityBox">
+            <!-- <div><el-button type="primary" @click="responsibleParty"> 添加信息 </el-button></div> -->
+            <div class="el_btbox" v-for="(item, index) in FangAddList" :key="index">
+              <div class="leftbox">
+                <div class="maxBox">
+                  <span class="title">责任方:</span>
+  
+                  <!-- 提货环节  -->
+  
+                  <el-select
+                    v-model="item.businessName"
+                    clearable
+                    placeholder="请选提货择责任方"
+                    v-if="groundlineType == 1"
+                  >
+                    <el-option
+                      v-for="item in responsible"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                  </el-select>
+  
+                  <el-select
+                    v-else
+                    v-model="item.businessName"
+                    filterable
+                    placeholder="责任方"
+                    @change="ResponsiblePartychange(item.businessName, index)"
+                  >
+                    <el-option
+                      v-for="item in warehouseData"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                  </el-select>
+                </div>
+  
+                <div class="maxBox">
+                  <span class="title">责任人:</span>
+                  <el-select
+                    v-model="item.personResponsibleName"
+                    clearable
+                    filterable
+                    placeholder="责任人"
+                  >
+                    <el-option
+                      v-for="item in personResponsibleList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.id"
+                    />
+                  </el-select>
+                </div>
+                <div class="maxBox">
+                  <span class="title">占比:</span>
+                  <el-input
+                    v-model="item.responsibilityRatio"
+                    placeholder="占比 "
+                    clearable
+                    :rows="2"
+                  />
+                </div>
+
+                <div class="maxBox">
+                  <span class="title">说明:</span>
+                  <el-input
+                    v-model="item.responsibilityRatio"
+                    placeholder="说明 "
+                    clearable
+                    :rows="2"
+                  />
+                </div>
+              </div>
+              <div class="el-btn">
+                <!-- <el-button type="primary" @click="ResponsibilityRemoval(index)"> 移除 </el-button> -->
+              </div>
+            </div>
+            <div class="Proportion">
+              <!-- <span class="title">公司占比:{{ companyProportion }}</span> -->
+            </div>
+          </div>
+        </el-tab-pane>
+      </el-tabs>
+  
+      <div class="Transport_damage_photos" v-if="SelectType == 1 || SelectType == 3 || StateType">
+        <span class="title">{{
+          SelectType == 1 ? '运损照片' : SelectType == 3 ? '窜货照片' : '照片'
+        }}</span>
+        <el-upload
+          v-model:file-list="Indexform.packList"
+          list-type="picture-card"
+          :on-preview="pictureList"
+          :on-remove="ImgListRemove"
+          :action="doubledCount"
+          :on-success="ImgSuccess"
+          :before-upload="beforeAvatarUpload"
+          :headers="headers"
+          multiple
+          drag
+        >
+          <el-icon><Plus /></el-icon>
+        </el-upload>
+  
+        <el-dialog v-model="dialogVisible">
+          <img w-full :src="dialogImageUrl" alt="图片" />
+        </el-dialog>
+      </div>
+  
+      <!-- <div class="dialog-footer">
+        <el-button @click="Indexdialog = false">取消</el-button>
+        <el-button type="primary" @click="ConfirmForm"> 提交 </el-button>
+      </div> -->
+    </el-card>
+  
+    <div class="foot_btn">
+      <el-button type="primary" @click="ConfirmForm">新增记录</el-button>
+      <el-button type="primary" @click="ConfirmForm">完结 </el-button>
+      <el-button type="primary" @click="ConfirmForm">打回 </el-button>
+    </div>
+  
+    <!-- 少货件数大于3 -->
+    <el-dialog
+      :show-close="false"
+      v-model="ShortageState"
+      title="少货件数"
+      width="40%"
+      @close="ShortageStateFun"
+      lock-scroll
+      draggable
+    >
+      <div class="ShortageStatenum" v-for="item in ShortageList">
+        <span class="title">件数{{ item.number }}</span
+        ><el-input v-model="item.packageCode" placeholder="请输入包条码" />
+      </div>
+  
+      <template #footer>
+        <span class="dialog-footer">
+          <el-button @click="ShortageCancellation">取消</el-button>
+          <el-button type="primary" @click="ShortageState = false"> 确认信息 </el-button>
+        </span>
+      </template>
+    </el-dialog>
+  
+    <!-- 窜货件数大于3 -->
+    <el-dialog
+      :show-close="false"
+      v-model="fleeingState"
+      title="窜货件数"
+      width="40%"
+      @close="fleeingFun"
+      lock-scroll
+      draggable
+    >
+      <div class="ShortageStatenum" v-for="item in fleeingList">
+        <span class="title">件数{{ item.number }}</span
+        ><el-input v-model="item.packageCode" placeholder="请输入包条码" />
+      </div>
+  
+      <template #footer>
+        <span class="dialog-footer">
+          <el-button @click="fleeingCancellation">取消</el-button>
+          <el-button type="primary" @click="ShortageState = false"> 确认信息 </el-button>
+        </span>
+      </template>
+    </el-dialog>
+  
+    <el-dialog v-model="dialogHistoricalPackage" title="查看历史包件" width="30%">
+      <el-form-item label="历史包件选择">
+        <el-select v-model="HistoricalPackageinput" clearable filterable placeholder="请选择包件">
+          <el-option
+            v-for="item in HistoricalPackageList"
+            :key="item.value"
+            :label="item.workOrderNumber"
+            :value="item.workOrderId"
+          />
+        </el-select>
+        <el-button @click="ViewPackageDetails(HistoricalPackageinput)">查看详情</el-button>
+      </el-form-item>
+      <template #footer>
+        <span class="dialog-footer">
+          <el-button @click="dialogHistoricalPackage = false">取消</el-button>
+          <el-button type="primary" @click="HistoricalPackage(HistoricalPackageinput)">
+            确定选择
+          </el-button>
+        </span>
+      </template>
+    </el-dialog>
+  </template>
+  
+  <script setup>
+  import { ElMessage } from 'element-plus';
+  import { ElMessageBox } from 'element-plus';
+  import { useRouter, useRoute } from 'vue-router';
+  import { getDictionaryBiz } from '@/api/system/dict'; //字典
+  import { getDetailWarehouse, getDeptWarehouse } from '@/api/basicdata/basicdataWarehouse'; //处理方
+  import {
+    $_getList,
+    $_submit,
+    $_getDetail,
+    $_remove,
+    $_getBusinessDepartmentUser,
+    $_getAbnormalPackage,
+  } from '@/api/aftersales/aftersalesWorkOrder';
+  import { ref, reactive, toRefs, computed, onMounted, nextTick } from 'vue';
+  import { getToken } from '@/utils/auth';
+  const $router = useRouter();
+  const $route = useRoute();
+  const Indexform = ref({
+    packList: [
+      {
+        name: 'food.jpeg',
+        url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100',
+      },
+      {
+        name: 'food.jpeg',
+        url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100',
+      },
+    ],
+    decreaseImageEntityList: [], //处理好的图片数据
+  }); //首页新增表单
+  const IndexException = ref([]); //异常类型下拉选择
+  const DiscoveringNodes = ref([]); //发现节点下拉选择
+  const warehouseData = ref([]); //处理方
+  const SelectType = ref(null); //类型
+  const StateType = ref(true); //类型
+  const HistoricalPackageinput = ref(''); //历史包件选择
+  const dialogImageUrl = ref(null); //图片
+  const dialogVisible = ref(null); //图片
+  const groundlineSet = ref(true); //干线条件都满足
+  const groundlineType = ref(null); //干线状态
+  const ShortageState = ref(false); //少货件数弹窗状态
+  const fleeingState = ref(false); //窜货件数弹窗
+  const ShortageList = ref([]); //少货件数
+  const fleeingList = ref([]); //窜货件数
+  const valueStrictly = ref();
+  const routerID = ref(null); //路由参数ID
+  const routerState = ref(''); //路由状态
+  const personResponsibleList = ref([]); //责任人列表
+  const companyProportion = ref(0); //公司占比
+  const identifying = ref(1); //订单,零担状态
+  const dialogHistoricalPackage = ref(false); //历史包件弹窗
+  const HistoricalPackageList = ref([]); //历史包件数组
+  const HistorIndex = ref(0); //历史包件索引
+  const PackageInfo = ref([
+    //包件信息
+    { packageCode: '', orderCode: '', waybillNumber: '' },
+  ]);
+  // 责任方列表
+  const FangAddList = ref([{ businessName: '', personResponsibleName: '', responsibilityRatio: '' }]);
+  // 提货责任方
+  const responsible = ref([
+    {
+      value: '1',
+      label: '工厂',
+    },
+    {
+      value: '2',
+      label: '外包搬运',
+    },
+    {
+      value: '3',
+      label: '物流',
+    },
+  ]);
+  
+  const DeliveryDriver = ref([
+    {
+      value: '0',
+      label: '兰溪',
+    },
+    {
+      value: '1',
+      label: '李华',
+    },
+    {
+      value: '2',
+      label: '唐飞',
+    },
+  ]);
+  // 图片列表
+  const fileList = ref([]);
+  // 字典公共函数
+  function updateDictionary(targetArray, dictionaryType) {
+    getDictionaryBiz(dictionaryType).then(res => {
+      console.log(res, '字典');
+      res.data.data.forEach(item => {
+        targetArray.push({
+          value: item.dictKey,
+          label: item.dictValue,
+        });
+      });
+    });
+  }
+  // 图片上传必须携带TOKEN
+  const headers = computed(() => {
+    return { 'Blade-Auth': 'Bearer ' + getToken() };
+  });
+  // 图片上传接口
+  const doubledCount = computed(() => {
+    return '/api/blade-resource/oss/endpoint/put-file';
+  });
+  // 图片上传接口
+  
+  // 图片上传成功回调函数
+  const ImgSuccess = (response, uploadFile) => {
+    if (response.success === true) {
+      console.log(response);
+      Indexform.value['packList'].push({
+        name: response.data.originalName,
+        url: response.data.link,
+      });
+      console.log(Indexform.value['packList'], '图片列表');
+    }
+  };
+  
+  // 上传图片规则
+  const beforeAvatarUpload = rawFile => {
+    if (rawFile.type !== 'image/png') {
+      ElMessage.error('图片格式只能为image/png!');
+      return false;
+    } else if (rawFile.size / 1024 / 1024 > 2) {
+      ElMessage.error('图片大小不能大于2MB!');
+      return false;
+    }
+    return true;
+  };
+  // 点击图片列表回调
+  const pictureList = val => {
+    console.log(val, '图片列表');
+  };
+  // 点击图片移除
+  const ImgListRemove = val => {
+    console.log(val, '移除图片');
+  };
+  // 处理方和责任方获取数据
+  const handle = () => {
+    getDeptWarehouse().then(res => {
+      res.data.data.forEach(item => {
+        warehouseData.value.push({
+          value: item.id,
+          label: item.name,
+        });
+      });
+    });
+  };
+  
+  // 获取当前责任方的责任人
+  const ResponsiblePartychange = (val, index) => {
+    FangAddList.value[index].personResponsibleName = null; //清空当前选择的责任人
+    $_getBusinessDepartmentUser({
+      warehouseId: val,
+    }).then(res => {
+      console.log(res, '获取责任人列表');
+      personResponsibleList.value = res.data.data;
+    });
+  };
+  const onLoad = () => {
+    console.log($route.query.id, '页面初始化');
+    updateDictionary(IndexException.value, 'pc_work_order'); //异常类型
+    updateDictionary(DiscoveringNodes.value, 'pc_discovery_node'); //发现环节
+    handle(); //处理方和责任方信息
+  };
+  onLoad(); //初始化程序
+  // 异常类型事件
+  const abnormalChange = val => {
+    console.log(val, '异常事件类型');
+    console.log(StateType.value);
+    StateType.value = false;
+    if (val == 1 || val == 2 || val == 3) {
+      SelectType.value = val;
+    } else {
+      StateType.value = true;
+    }
+    // 运损无数据默认0
+    if (val == 1) {
+      Indexform.value.packageCode = 0;
+    } else {
+      Indexform.value.packageCode = null;
+    }
+  };
+  
+  // 发现节点事件
+  const DiscoveringNodesChange = val => {
+    groundlineSet.value = false; //干线条件都不满足
+    if (val == 1 || val == 2 || val == 3 || val == 4 || val == 5 || val == 8 || val == 7) {
+      groundlineType.value = val; //干线状态
+      console.log(val);
+    } else {
+      groundlineSet.value = true; //展示所有搜索框
+    }
+  };
+  
+  // 照片
+  const handleRemove = (uploadFile, uploadFiles) => {
+    console.log(uploadFile, uploadFiles);
+  };
+  
+  const handlePictureCardPreview = uploadFile => {
+    dialogImageUrl.value = uploadFile.url;
+    dialogVisible.value = true;
+  };
+  
+  // 添加包件
+  const AddPackage = () => {
+    PackageInfo.value.push({ packageCode: '', orderCode: '', waybillNumber: '' });
+  };
+  // 包件移除
+  const PackagRemoval = val => {
+    PackageInfo.value.splice(val, 1); //移除当前点击的按钮
+  };
+  // 责任方添加
+  const responsibleParty = () => {
+    FangAddList.value.push({ businessName: '', personResponsibleName: '', responsibilityRatio: '' });
+  };
+  // 责任移除
+  const ResponsibilityRemoval = val => {
+    FangAddList.value.splice(val, 1); //移除当前点击的按钮
+  };
+  // 顶部标签切换
+  const TopChange = val => {
+    console.log(val);
+    if (val == 0) {
+      identifying.value = 1;
+    } else {
+      identifying.value = 2;
+    }
+  };
+  
+  //表单提交
+  const ConfirmForm = () => {
+    // 图片类型:10运损,20窜货
+    // decreaseImageEntityList:[
+    //   {imageType:10,imageName:'图片名称',imagePath:'图片路径'},
+    //   {imageType:10,imageName:'图片名称',imagePath:'图片路径'},
+    // ]
+    console.log(Indexform.value['packList'], '图片列表');
+    // 处理图片(当类型为货损或为窜货才执行下面的东西)
+    if (SelectType.value == 1 || SelectType.value == 3) {
+      if (Indexform.value['packList']) {
+        Indexform.value['packList'].forEach(item => {
+          Indexform.value['decreaseImageEntityList'].push({
+            imageType: SelectType.value == 1 ? 10 : SelectType.value == 3 ? 20 : '',
+            imageName: item.name,
+            imagePath: item.url,
+          });
+        });
+      }
+    }
+  
+    console.log(Indexform.value['decreaseImageEntityList'], '处理好的图片');
+    //司机信息处理
+    if (Indexform.value.deliveryDriver) {
+      Indexform.value.deliveryDriver = DeliveryDriver.value.find(
+        item => item.value == Indexform.value.deliveryDriver
+      ).label;
+    }
+  
+    console.log(Indexform.value.deliveryDriver); // 输出李华
+    let processorEntityList = [];
+  
+    //处理方信息处理
+    if (Indexform.value.processor.length) {
+      Indexform.value.processor.forEach(item => {
+        let found = warehouseData.value.find(element => element.value == item.toString());
+        processorEntityList.push({
+          businessName: found ? found.label : '',
+          businessId: item,
+          conditions: 1,
+          typesOf: 2,
+        });
+      });
+    }
+  
+    // 提货责任方
+    // if (Indexform.value.businessMame) {
+    //   const found = responsible.value.find(item => item.value === Indexform.value.businessMame);
+    //   if (found) {
+    //     processorEntityList.push({
+    //       businessName: found.label,
+    //       businessId: found.id,
+    //       conditions: 1,
+    //       typesOf: 1,
+    //     });
+    //   }
+    // }
+    //  提货责任方
+  
+    console.log(Indexform.value.businessMame, '提货责任方');
+    let DataSubmit = {
+      personResponsibleDTO: [],
+      packageEntityList: [], ////包件信息
+      ...Indexform.value,
+    }; //解构表单参数
+    DataSubmit.processorEntityList = processorEntityList;
+    DataSubmit.decreaseImageEntityList = JSON.parse(
+      JSON.stringify(Indexform.value['decreaseImageEntityList'])
+    );
+  
+    // 包件信息
+    // packageEntityList
+  
+    DataSubmit['packageEntityList'].push({
+      workOrderId: Indexform.workOrderNumber, //异常ID
+      number: PackageInfo.value.length, //数量
+      packageCode: PackageInfo.value.map(item => item.packageCode).join(','), //包件码
+      warehouseId: '', //仓库ID
+      packageImage: Indexform.value['packList'].map(item => item.url).join(','), //包件图片路径
+      waybillNumber: PackageInfo.value.map(item => item.waybillNumber).join(','), //运单号
+      orderCode: PackageInfo.value.map(item => item.orderCode).join(','), //订单自编码
+    });
+    (DataSubmit.orderCode = PackageInfo.value.map(item => item.orderCode).join(',')), //订单自编码
+      // 总件数
+      (Indexform.value.number = PackageInfo.value.length);
+    console.log(DataSubmit['packageEntityList'], '包件信息');
+    // 调查经过
+    DataSubmit.surveyRecordDTO = {
+      content: Indexform.value.investigationPocess,
+      workOrderId: Indexform.value.workOrderNumber,
+    };
+    console.log(DataSubmit.surveyRecordDTO, '调查经过');
+    // 新责任方处理
+    // FangAddList.value
+  
+    // 责任方信息
+    FangAddList.value.forEach(item => {
+      DataSubmit['personResponsibleDTO'].push({
+        businessName: item.businessName, //责任方名称
+        businessId: warehouseData.value.find(obj => obj.label == item.businessName)?.value || null,
+        wordOrderId: Indexform.value.workOrderNumber, //异常工单ID
+        personResponsibleId:
+          personResponsibleList.value.find(obj => obj.id == item.personResponsibleName)?.id || null, //责任人ID   personResponsibleList
+        personResponsibleName:
+          personResponsibleList.value.find(obj => obj.id == item.personResponsibleName)?.name || null, //责任人名称
+        responsibilityRatio: item.responsibilityRatio, //责任比例
+      });
+    });
+    let proportion = 0; //责任比例之和
+    DataSubmit['personResponsibleDTO'].forEach(item => {
+      proportion += Number(item.responsibilityRatio);
+    });
+    console.log(proportion, '责任比例之和');
+    companyProportion.value = 100 - proportion;
+    DataSubmit.companyProportion = companyProportion.value; //公司占比
+    console.log(DataSubmit.companyProportion, '公司占比');
+    console.log(DataSubmit['personResponsibleDTO'], '新责任方处理的数据');
+    //console.log(Indexform.value.duty.length);
+    //责任方信息处理
+    if (FangAddList.value.length) {
+      console.log(warehouseData.value, 'warehouseData.value');
+      FangAddList.value.forEach(item => {
+        console.log(item, 'item');
+        processorEntityList.push({
+          businessName:
+            warehouseData.value.find(obj => obj.value == item.businessName)?.label || null,
+          businessId: item.businessName,
+          conditions: 1,
+          typesOf: 1,
+        });
+      });
+    }
+    DataSubmit.identifying = identifying.value; //1订单2零担3库存品
+  
+    console.log(processorEntityList, '老责任方处理好的数据');
+  
+    // //责任方信息处理
+    // if (Indexform.value.duty.length) {
+    //   Indexform.value.forEach(item => {
+    //     let found = warehouseData.value.find(element => element.value == item.toString());
+    //     processorEntityList.push({
+    //       businessName: found ? found.label : '',
+    //       businessId: item,
+    //       conditions: 1,
+    //       typesOf: 1,
+    //     });
+    //   });
+    // }
+  
+    delete DataSubmit.duty, //移除多余字段
+      delete DataSubmit.packList; //移除图片原始字段
+    delete DataSubmit.processor; //移除多余字段
+    console.log(DataSubmit, '处理好的数据');
+    //提交表单信息stringify
+    $_submit(DataSubmit).then(res => {
+      if (res.data.code == 200) {
+        ElMessage({
+          message: res.data.msg,
+          type: 'success',
+        });
+        Indexform.value = {}; //重置表单
+        $router.push('/aftersales/aftersalesWorkOrder'); //添加成功跳转到列表
+      }
+    });
+  };
+  
+  // 少货件数对应事件
+  const ShortageTtems = val => {
+    ShortageList.value = []; //进入之前重置参数
+    const pattern = /\s+/g;
+    const result = val.replace(pattern, '');
+    console.log(result); // 输出 "33"
+    Indexform.value.number = result;
+    if (Indexform.value.number > 1) {
+      ShortageState.value = true; //数量大于1,开启弹窗输入
+    }
+    for (let i = 0; i < val; i++) {
+      ShortageList.value.push({
+        number: i + 1, //件数
+        packageCode: null, //输入框
+      });
+    }
+  };
+  // 少货关闭回调
+  const ShortageStateFun = () => {
+    ShortageList.value.forEach(item => {
+      if (item.packageCode == null) {
+        Indexform.value.number = null;
+      }
+    });
+  };
+  // 少货按钮取消
+  const ShortageCancellation = () => {
+    Indexform.value.number = null; //少货件数
+    ShortageList.value = []; //进入之前重置参数
+    ShortageState.value = false; //关闭弹窗
+  };
+  // 窜货关闭回调
+  const fleeingFun = () => {
+    fleeingList.value.forEach(item => {
+      if (item.packageCode == null) {
+        Indexform.value.number = null;
+      }
+    });
+  };
+  // 窜货取消事件
+  const fleeingCancellation = () => {
+    Indexform.value.number = null; //少货件数
+    fleeingList.value = []; //进入之前重置参数
+    fleeingState.value = false; //关闭弹窗
+  };
+  // 窜货输入框
+  const fleeingTtems = val => {
+    fleeingList.value = []; //进入之前重置参数
+    const pattern = /\s+/g;
+    const result = val.replace(pattern, '');
+    console.log(result); // 输出 "33"
+    Indexform.value.number = result;
+    if (Indexform.value.number > 1) {
+      fleeingState.value = true; //数量大于1,开启弹窗输入
+    }
+    for (let i = 0; i < val; i++) {
+      fleeingList.value.push({
+        number: i + 1, //件数
+        packageCode: null, //输入框
+      });
+    }
+  };
+  // 少货编辑
+  const moneyBtnA = () => {
+    if (!Indexform.value.number) {
+      ElMessage({
+        message: '请输入少货数量',
+        type: 'warning',
+      });
+      return;
+    }
+    ShortageState.value = true; //开启弹窗输入
+  };
+  // 窜货编辑
+  const moneyBtnB = () => {
+    if (!Indexform.value.number) {
+      ElMessage({
+        message: '请输入窜货数量',
+        type: 'warning',
+      });
+      return;
+    }
+    fleeingState.value = true; //开启弹窗输入
+  };
+  // 查询包件信息自动回显
+  const ChangePackageInfo = (val, index) => {
+    let data = {
+      packageCode: val,
+    };
+    $_getAbnormalPackage(data).then(res => {
+      console.log(res, '包件信息');
+      console.log(res.data.data, '包件信息');
+  
+      const packageData = res.data.data[0];
+      PackageInfo.value[index].orderCode = packageData.orderCode; //订单自编码
+      PackageInfo.value[index].waybillNumber = packageData.waybillNumber; //运单号
+      PackageInfo.value[index].orderId = packageData.orderId; //运单号
+      PackageInfo.value[index].state = false; //状态
+  
+      if (res.data.data.length > 1) {
+        HistoricalPackageList.value = res.data.data;
+        PackageInfo.value[index].state = true; //状态
+      }
+      // packageCode; //包件码
+      // //订单自编码
+      // orderCode: orderId; //运单号
+      // workOrderId; //工单id
+      // workOrderNumber; //工单名称
+      console.log(PackageInfo.value, '处理好的参数');
+    });
+  };
+  
+  // 查看历史包件
+  const historicalPackages = val => {
+    dialogHistoricalPackage.value = true; //打开历史包件弹窗
+    HistorIndex.value = val;
+    console.log(val);
+  };
+  // 历史包件确定选择
+  const HistoricalPackage = val => {
+    let info = HistoricalPackageList.value.find(obj => obj.workOrderId == val);
+    PackageInfo.value[HistorIndex.value].orderCode = info.orderCode; //订单自编码
+    PackageInfo.value[HistorIndex.value].waybillNumber = info.waybillNumber; //运单号
+    PackageInfo.value[HistorIndex.value].orderId = info.orderId; //运单号
+    dialogHistoricalPackage.value = false; //关闭历史包件弹窗
+  };
+  // 历史包件里面的查看
+  const ViewPackageDetails = val => {
+    if(!val){
+      ElMessage({
+      message: '请选择要查看的数据',
+      type: 'warning',
+    })
+    return
+    }
+    console.log(val);
+    let info = HistoricalPackageList.value.find(obj => obj.workOrderId == val);
+    console.log(info,'筛选的值');
+    $router.push({
+      path: '/aftersales/aftersalesWorkOrderInfo',
+      query: {
+        id: info.workOrderId,
+        name: info.workOrderId + '-信息查看',
+      },
+    });
+    dialogHistoricalPackage.value = false; //打开历史包件弹窗
+  };
+  </script>
+  
+  <style scoped lang="scss">
+  .IndexFrom {
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: flex-start;
+  
+    .el-form-item {
+      height: 46px;
+      display: flex;
+      align-items: center;
+      margin: 0;
+      margin-bottom: 18px;
+      flex: 1 0 30%;
+      :deep(.el-form-item__label) {
+        width: 100px !important;
+        justify-content: flex-start;
+      }
+    }
+    :deep(.el-form-item__content) {
+      height: 100%;
+      width: 70% !important;
+      flex: none;
+      .el-input {
+        height: 100% !important;
+        display: flex;
+        align-items: center;
+      }
+    }
+    .el-input__wrapper {
+      height: 32px !important;
+    }
+    :deep(.el-input) {
+      width: 100% !important;
+    }
+    :deep(.el-input__wrapper) {
+      height: 30px !important;
+    }
+    :deep(.el-select) {
+      width: 100%;
+    }
+    :deep(.el-form-item__label) {
+      margin-left: 20px;
+    }
+  }
+  .el_clzr {
+    margin-top: 40px;
+  
+    :deep(.el-select) {
+      width: 100%;
+    }
+    :deep(.el-input) {
+      height: 38px;
+    }
+    :deep(.el-form-item__label) {
+      margin-left: 20px;
+      font-size: 14px;
+      width: 100px !important;
+    }
+    .el-form-item {
+      margin: 0;
+      margin-bottom: 34px;
+    }
+    :deep(.el-input__wrapper) {
+      height: 35px !important;
+    }
+    :deep(.el-form-item__content) {
+      height: 100%;
+      width: 90% !important;
+      flex: none;
+      .el-input {
+        height: 100% !important;
+        display: flex;
+        align-items: center;
+      }
+    }
+  }
+  .Transport_damage_photos {
+    display: flex;
+    padding: 0 15px;
+    margin-top: 20px;
+    .title {
+      width: 100px;
+      display: block;
+      margin-bottom: 10px;
+      font-size: 14px;
+    }
+  }
+  .dialog-footer {
+    width: 100%;
+    display: flex;
+    justify-content: flex-end;
+    padding: 0 10px;
+    box-sizing: border-box;
+    padding-right: 36px;
+  }
+  .investigate {
+    :deep(.el-form-item__content) {
+      width: 90% !important;
+      box-sizing: border-box;
+    }
+  }
+  .ShortageStatenum {
+    display: flex;
+    align-items: center;
+    margin-bottom: 10px;
+    .title {
+      width: 80px;
+    }
+    .remove {
+      width: 47px;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      cursor: pointer;
+      color: #ff0000;
+    }
+  }
+  .moneyNum {
+    display: flex;
+    flex: 1;
+    .el_btn {
+      width: 50px;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      border: 1px solid #ccc;
+      margin-left: 3px;
+      border-radius: 4px;
+      cursor: pointer;
+    }
+  }
+  .ResponsibilityBox {
+    width: 100%;
+    display: flex;
+    flex-direction: column;
+    .leftbox {
+      width: 80%;
+      display: flex;
+      justify-content: space-between;
+    }
+    .maxBox {
+      display: flex;
+      align-items: center;
+      width: 30%;
+      .title {
+        width: 120px;
+        font-size: 14px;
+        color: #606266;
+      }
+      .el-select {
+        width: 100%;
+      }
+    }
+    .el-btn {
+      margin-left: 5%;
+      border: none;
+    }
+    .el_btbox {
+      display: flex;
+      margin-top: 10px;
+    }
+  }
+  .ResponsibilityBoxS {
+    width: 100%;
+    display: flex;
+    flex-direction: column;
+    margin-bottom: 10px;
+    .leftbox {
+      width: 80%;
+      display: flex;
+      justify-content: space-between;
+    }
+    .maxBox {
+      display: flex;
+      align-items: center;
+      width: 30%;
+      .title {
+        width: 140px;
+        color: #606266;
+        font-size: 14px;
+      }
+      .el-select {
+        width: 100%;
+      }
+    }
+    .el-btn {
+      margin-left: 5%;
+      border: none;
+    }
+    .el_btbox {
+      display: flex;
+      margin-top: 10px;
+    }
+  }
+  .PackageInformation {
+    margin-bottom: 10px;
+  }
+  .NumTotal {
+    width: 30%;
+    margin-top: 16px;
+    display: flex;
+    align-items: center;
+    span {
+      width: 120px;
+      font-size: 14px;
+    }
+  }
+  .Proportion {
+    margin-top: 16px;
+    .title {
+      font-size: 14px;
+      color: #606266;
+    }
+  }
+  
+  :deep(.is-active) {
+    border-bottom: 1px solid #e4e7ed !important;
+  }
+  .topClass {
+    :deep(.el-tabs__content) {
+      padding: 0;
+    }
+  }
+  .foot_btn {
+    position: fixed;
+    bottom: 0;
+    left: 50%;
+    transform: translate(0, -50%);
+    width: 100%;
+    height: 40px;
+    background-color: #ffffff;
+    border-top: 1px solid #fff;
+    box-shadow: 3px -1px 1px #ccc;
+    display: flex;
+    align-items: center;
+    padding-left: 10px;
+  }
+  :deep(.el-card__body) {
+    margin-bottom: 50px;
+  }
+  </style>
+  
\ No newline at end of file
diff --git a/src/views/aftersales/aftersalesWorkOrderend.vue b/src/views/aftersales/aftersalesWorkOrderend.vue
index 6fef7fca..75ad7851 100644
--- a/src/views/aftersales/aftersalesWorkOrderend.vue
+++ b/src/views/aftersales/aftersalesWorkOrderend.vue
@@ -22,9 +22,32 @@
             <el-input v-model="endFrom.orderCode" placeholder="请输入订单自自编号" />
           </el-form-item>
 
-          <el-form-item label="包条码">
+          <!-- <el-form-item label="包条码">
             <el-input v-model="endFrom.orderPackageCode" placeholder="请输入包条码" />
-          </el-form-item>
+          </el-form-item> -->
+          
+
+          <!-- <div class="selector"> -->
+              <div class="el-form-item">
+                <span class="el-form-item__label">运损节点</span>
+                <el-select
+                  v-model="endFrom.transportloss"
+                  filterable
+                  default-first-option
+                  :reserve-keyword="false"
+                  placeholder="运损发现节点"
+                  @change="TransportChange"
+                >
+                  <el-option
+                    v-for="item in TransportlossList"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  />
+                </el-select>
+              </div>
+            <!-- </div> -->
+
 
           <el-form-item label="品类">
             <el-input v-model="endFrom.name" placeholder="请输入品类" />
@@ -98,26 +121,7 @@
             </el-form-item>
           </div> -->
 
-            <div class="selector">
-              <div class="el-form-item">
-                <span class="el-form-item__label">运损节点</span>
-                <el-select
-                  v-model="endFrom.transportloss"
-                  filterable
-                  default-first-option
-                  :reserve-keyword="false"
-                  placeholder="运损发现节点"
-                  @change="TransportChange"
-                >
-                  <el-option
-                    v-for="item in TransportlossList"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value"
-                  />
-                </el-select>
-              </div>
-            </div>
+
           </div>
           <!-- <div class="selector">
             <div class="el-form-item selector">
@@ -140,6 +144,48 @@
             </div>
           </div> -->
 
+          <el-tabs type="border-card" class="PackageInformation">
+            <el-tab-pane label="包件信息">
+              <div class="ResponsibilityBoxS">
+                <div><el-button type="primary" @click="AddPackage"> 添加信息 </el-button></div>
+                <div class="el_btbox" v-for="(item, index) in PackageInfo" :key="index">
+                  <div class="leftbox">
+                    <div class="maxBox">
+                      <span class="title">包条码:</span>
+                      <el-input
+                        v-model="item.packageCode"
+                        placeholder="请输入包条码"
+                        clearable
+                        :rows="2"
+                        @change="ChangePackageInfo(item.packageCode, index)"
+                      />
+                    </div>
+
+                    <div class="maxBox">
+                      <span class="title">订单自编码:</span>
+                      <el-input v-model="item.orderCode" placeholder="请输入订单自编号" clearable />
+                    </div>
+
+                    <div class="maxBox">
+                      <span class="title">运单号:</span>
+                      <el-input v-model="item.waybillNumber" placeholder="请输入运单号" clearable />
+                    </div>
+                  </div>
+
+                  <div class="el-btn">
+                    <el-button v-if="item.state" type="primary" @click="historicalPackages(index)">
+                      查看历史包件
+                    </el-button>
+                    <el-button type="primary" @click="PackagRemoval(index)"> 移除 </el-button>
+                  </div>
+                </div>
+                <div class="NumTotal">
+                  <span>总件数:{{ endFrom.number }}</span>
+                </div>
+              </div>
+            </el-tab-pane>
+          </el-tabs>
+
           <el-tabs type="border-card" style="width: 100%">
             <el-tab-pane label="责任方选择">
               <div class="ResponsibilityBox">
@@ -614,6 +660,30 @@
         </span>
       </template>
     </el-dialog>
+
+
+    <el-dialog v-model="dialogHistoricalPackage" title="查看历史包件" width="30%">
+    <el-form-item label="历史包件选择">
+      <el-select v-model="HistoricalPackageinput" clearable filterable placeholder="请选择包件">
+        <el-option
+          v-for="item in HistoricalPackageList"
+          :key="item.value"
+          :label="item.workOrderNumber"
+          :value="item.workOrderId"
+        />
+      </el-select>
+      <el-button @click="ViewPackageDetails(HistoricalPackageinput)">查看详情</el-button>
+    </el-form-item>
+    <template #footer>
+      <span class="dialog-footer">
+        <el-button @click="dialogHistoricalPackage = false">取消</el-button>
+        <el-button type="primary" @click="HistoricalPackage(HistoricalPackageinput)">
+          确定选择
+        </el-button>
+      </span>
+    </template>
+  </el-dialog>
+
   </el-card>
 </template>
 
@@ -630,6 +700,7 @@ import {
   $_savaSurveyRecord,
   $_addProcessingResults,
   $_getSurveyRecord,
+  $_getAbnormalPackage,
 } from '@/api/aftersales/aftersalesWorkOrder';
 import { columnList, recordList } from '@/option/aftersales/vueTvemp.js';
 import { getToken } from '@/utils/auth';
@@ -656,6 +727,13 @@ const Msgtextarea = ref(''); //回复框消息
 const msgState = ref(0); //回复消息状态
 const Msgloading = ref(false); //消息回复的加载效果
 const companyProportion = ref(0); //公司占比
+const HistoricalPackageList = ref([]); //历史包件数组
+const dialogHistoricalPackage=ref(false);//包件弹窗
+const HistoricalPackageinput=ref('');//历史包件选择
+const PackageInfo = ref([
+  //包件信息
+  { packageCode: '', orderCode: '', waybillNumber: '' },
+]);
 // 提货责任方
 const responsible = ref([
   {
@@ -1184,6 +1262,47 @@ const amountMoney = () => {
   console.log('收款总计金额', TotalamountReceived.value);
 };
 
+// 添加包件
+const AddPackage = () => {
+  PackageInfo.value.push({ packageCode: '', orderCode: '', waybillNumber: '' });
+};
+// 包件移除
+const PackagRemoval = val => {
+  PackageInfo.value.splice(val, 1); //移除当前点击的按钮
+};
+// 查看历史包件
+const historicalPackages = val => {
+  dialogHistoricalPackage.value = true; //打开历史包件弹窗
+  HistorIndex.value = val;
+  console.log(val);
+};
+// 查询包件信息自动回显
+const ChangePackageInfo = (val, index) => {
+  let data = {
+    packageCode: val,
+  };
+  $_getAbnormalPackage(data).then(res => {
+    console.log(res, '包件信息');
+    console.log(res.data.data, '包件信息');
+
+    const packageData = res.data.data[0];
+    PackageInfo.value[index].orderCode = packageData.orderCode; //订单自编码
+    PackageInfo.value[index].waybillNumber = packageData.waybillNumber; //运单号
+    PackageInfo.value[index].orderId = packageData.orderId; //运单号
+    PackageInfo.value[index].state = false; //状态
+
+    if (res.data.data.length > 1) {
+      HistoricalPackageList.value = res.data.data;
+      PackageInfo.value[index].state = true; //状态
+    }
+    // packageCode; //包件码
+    // //订单自编码
+    // orderCode: orderId; //运单号
+    // workOrderId; //工单id
+    // workOrderNumber; //工单名称
+    console.log(PackageInfo.value, '处理好的参数');
+  });
+};
 // 新视频预览
 const AddVideoPreview = val => {
   VideoPreviewStatus.value = true; //开启视频查看弹窗
@@ -1448,6 +1567,29 @@ const replyMessage = () => {
     }
   });
 };
+
+// 历史包件里面的查看
+const ViewPackageDetails = val => {
+  if(!val){
+    ElMessage({
+    message: '请选择要查看的数据',
+    type: 'warning',
+  })
+  return
+  }
+  console.log(val);
+  let info = HistoricalPackageList.value.find(obj => obj.workOrderId == val);
+  console.log(info,'筛选的值');
+  $router.push({
+    path: '/aftersales/aftersalesWorkOrderInfo',
+    query: {
+      id: info.workOrderId,
+      name: info.workOrderId + '-信息查看',
+      routerState: 'view',
+    },
+  });
+  dialogHistoricalPackage.value = false; //打开历史包件弹窗
+};
 </script>
 
 <style scoped lang="scss">
@@ -1480,6 +1622,9 @@ const replyMessage = () => {
     margin: 0;
     margin-bottom: 0.9375vw;
     flex: 1 0 30%;
+    :deep(.el-select){
+      width: 100%;
+    }
   }
   :deep(.el-form-item__label) {
     width: 100px !important;
@@ -1854,4 +1999,51 @@ const replyMessage = () => {
   display: flex;
   justify-content: flex-end;
 }
+.PackageInformation {
+  width: 100%;
+  margin-bottom: 10px;
+}
+.ResponsibilityBoxS {
+  width: 100%;
+  display: flex;
+  flex-direction: column;
+  margin-bottom: 10px;
+  .leftbox {
+    width: 80%;
+    display: flex;
+    justify-content: space-between;
+  }
+  .maxBox {
+    display: flex;
+    align-items: center;
+    width: 30%;
+    .title {
+      width: 140px;
+      color: #606266;
+      font-size: 14px;
+    }
+    .el-select {
+      width: 100%;
+    }
+  }
+  .el-btn {
+    margin-left: 5%;
+    border: none;
+    display: flex;
+  }
+  .el_btbox {
+    display: flex;
+    margin-top: 10px;
+  }
+}
+.NumTotal {
+  width: 30%;
+  margin-top: 16px;
+  display: flex;
+  align-items: center;
+  span {
+    width: 120px;
+    font-size: 14px;
+  }
+}
 </style>
diff --git a/src/views/basicdata/warehouse/goodsShelf/basicdataGoodsShelfView.vue b/src/views/basicdata/warehouse/goodsShelf/basicdataGoodsShelfView.vue
index a6c24102..aab34e96 100644
--- a/src/views/basicdata/warehouse/goodsShelf/basicdataGoodsShelfView.vue
+++ b/src/views/basicdata/warehouse/goodsShelf/basicdataGoodsShelfView.vue
@@ -647,11 +647,11 @@ onMounted(() => {
   initconfig();
   initnumber();
 });
-async function initnumber() {
-  let res = await Alloclocationsnub();
-  console.log(res.data.data);
-  details.countnumber = res.data.data;
-}
+// async function initnumber() {
+//   let res = await Alloclocationsnub();
+//   console.log(res.data.data);
+//   details.countnumber = res.data.data;
+// }
 // watchEffect(()=>{
 //   if(details.isshowupt){
 //     details.inputtxts=''
@@ -666,8 +666,10 @@ async function initconfig() {
   let res = await getstoreCargo();
   details.arrlist = res.data.data;
   console.log(details.arrlist, '仓库列表');
+  
   if (details.arrlist.length > 0) {
     $_locationsnub({ warehouseId: details.arrlist[0].id }).then(res => {
+      details.countnumber =res.data.data
       console.log('初始化仓库参数成功', res);
     });
   }
@@ -849,6 +851,7 @@ const checkcso = val => {
   console.log(details.arrlist[val].id, '选择的ID-=====');
   console.log(val, '货位接受参数');
   $_locationsnub({ warehouseId: details.arrlist[val].id }).then(res => {
+    details.countnumber =res.data.data
     console.log('切换请求成功', res);
   });
   if (details.arrlist[details.checkselect]?.warehouseGoodsAreaVOList.length > 0) {
diff --git a/src/views/distribution/checkInventoryTask/createTask.vue b/src/views/distribution/checkInventoryTask/createTask.vue
index d291648f..b205aa11 100644
--- a/src/views/distribution/checkInventoryTask/createTask.vue
+++ b/src/views/distribution/checkInventoryTask/createTask.vue
@@ -2462,17 +2462,17 @@ const InventorySubmit = () => {
     InventoryPopup.value = false; //关闭创建盘点任务弹窗
     loading.value = true; //开启表格加载
     console.log(SubData, '处理好的数据');
-    // postAddtaskQuest(SubData).then(res => {
-    //   onLoad(); //体积之后初始化页面
-    //   if ((res.data.code = 200)) {
-    //     ElMessage({
-    //       message: res.data.msg,
-    //       type: 'success',
-    //     });
-    //     onLoad(); //体积之后初始化页面
-    //   }
-    //   console.log(res, '盘点计划提交成功');
-    // });
+    postAddtaskQuest(SubData).then(res => {
+    
+      if ((res.data.code = 200)) {
+        ElMessage({
+          message: res.data.msg,
+          type: 'success',
+        });
+        onLoad(); //体积之后初始化页面
+      }
+      console.log(res, '盘点计划提交成功');
+    });
     return;
   }
 
@@ -2495,10 +2495,18 @@ const InventorySubmit = () => {
   SubData.startTime = formInventory.value.time[0];
   console.log(SubData, '处理好要提交的数据');
   InventoryPopup.value = false; //关闭创建盘点任务弹窗
-  // postAddtaskQuest(SubData).then(res => {
-  //   console.log(res, '盘点计划提交成功');
-  //   onLoad(); //体积之后初始化页面
-  // });
+  loading.value = true; //开启表格加载
+  postAddtaskQuest(SubData).then(res => {
+    if ((res.data.code = 200)) {
+        ElMessage({
+          message: res.data.msg,
+          type: 'success',
+        });
+        onLoad(); //体积之后初始化页面
+      }
+    console.log(res, '盘点计划提交成功');
+
+  });
 };
 // 顶部废弃按钮
 const discard = () => {
diff --git a/vite.config.js b/vite.config.js
index eacdd94d..ae6eea31 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -25,7 +25,8 @@ export default ({ mode, command }) => {
 
           target: 'http://192.168.6.122:8777',
           // target: 'http://192.168.6.116:8777',
-          // tjj
+           // tjj : 
+          // target:'http://192.168.10.25:13000',
           // sst
           // target: 'http://192.168.10.94:8888',
           // target: 'http://192.168.10.29:13000',