| <template> | 
|   <div class="content2"> | 
|     <div class="order-message"> | 
|       <div class="content_list_item_top"> | 
|         <div class="content_list_item_top_left"> | 
| <!--          <span>转库单号:</span>--> | 
|           <span>{{ data.code }}</span> | 
|         </div> | 
|         <div class="content_list_item_top_right"> | 
|           <span class="created" v-if="data.status === 0">待出库</span> | 
|           <span class="warning" v-else-if="data.status === 1">已出库</span> | 
|           <span class="green" v-else-if="data.status == 2">已入库</span> | 
|           <span class="info" v-else-if="data.status === 3">已取消</span> | 
|         </div> | 
|       </div> | 
|       <!-- item主题信息部分 --> | 
|       <div class="content_list_item_content"> | 
|         <div style="margin-top: 0 " class="content_list_item_content_item"> | 
|           <div class="content_list_item_content_item_label">单据类型:</div> | 
|           <div class="content_list_item_content_item_nr"> | 
|             {{ tyepToStr(data.type) }} | 
|           </div> | 
|         </div> | 
|         <div class="content_list_item_content_item"> | 
|           <div class="content_list_item_content_item_label">转出组织:</div> | 
|           <div class="content_list_item_content_item_nr"> | 
|             {{ data.outDepartName }} | 
|           </div> | 
|         </div> | 
|         <div class="content_list_item_content_item"> | 
|           <div class="content_list_item_content_item_label">转入组织:</div> | 
|           <div class="content_list_item_content_item_nr"> | 
|             {{ data.inDepartName }} | 
|           </div> | 
|         </div> | 
|         <div class="content_list_item_content_item"> | 
|           <div class="content_list_item_content_item_label">转出仓库:</div> | 
|           <div class="content_list_item_content_item_nr"> | 
|             {{ data.outWarehouseName }} | 
|           </div> | 
|         </div> | 
|         <div class="content_list_item_content_item"> | 
|           <div class="content_list_item_content_item_label">转出仓管员:</div> | 
|           <div class="content_list_item_content_item_nr"> | 
|             {{ data.outUserName }} | 
|           </div> | 
|         </div> | 
|         <div class="content_list_item_content_item"> | 
|           <div class="content_list_item_content_item_label">转入仓库:</div> | 
|           <div class="content_list_item_content_item_nr"> | 
|             {{ data.inWarehouseName }} | 
|           </div> | 
|         </div> | 
|         <div class="content_list_item_content_item"> | 
|           <div class="content_list_item_content_item_label">转入仓管员:</div> | 
|           <div class="content_list_item_content_item_nr"> | 
|             {{ data.inUserName }} | 
|           </div> | 
|         </div> | 
|         <div class="content_list_item_content_item"> | 
|           <div class="content_list_item_content_item_label">计划转出日期:</div> | 
|           <div class="content_list_item_content_item_nr"> | 
|             {{ data.outPlandate }} | 
|           </div> | 
|         </div> | 
|         <div class="content_list_item_content_item"> | 
|           <div class="content_list_item_content_item_label">计划转入日期:</div> | 
|           <div class="content_list_item_content_item_nr"> | 
|             {{ data.inPlandate }} | 
|           </div> | 
|         </div> | 
|       </div> | 
|       <!-- 转库物料 --> | 
|       <div class="material-title"> | 
|         <div class="title"> | 
|           <span class="title-prefix"></span> | 
|           <span>转库物料</span> | 
|         </div> | 
|       </div> | 
|       <div class="material-content"> | 
|         <div class="item-style" v-for="(item, index) in data.wtransferDetailList" :key="index"> | 
|           <div class="item-title-style"> | 
|             <span style="font-weight: 500;">{{ item.materialName + ' | ' + item.materialCode}}</span> | 
|           </div> | 
|           <div class="item-content-style"> | 
|             <div class="content_list_item_content_item"> | 
|               <div class="content_list_item_content_item_label">批次号:</div> | 
|               <div class="content_list_item_content_item_nr"> | 
|                 {{ item.batch }} | 
|               </div> | 
|             </div> | 
|             <div class="content_list_item_content_item"> | 
|               <div class="content_list_item_content_item_label">工序:</div> | 
|               <div class="content_list_item_content_item_nr"> | 
|                 {{ item.procedureName || '-' }} | 
|               </div> | 
|             </div> | 
|             <div class="content_list_item_content_item"> | 
|               <div class="content_list_item_content_item_label">质量:</div> | 
|               <div class="content_list_item_content_item_nr"> | 
|                 <span v-if="item.qualityType==0" class="green">合格</span> | 
|                 <span v-else-if="item.qualityType==1" class="yellow">不良</span> | 
|                 <span v-else-if="item.qualityType==2" class="red">报废</span> | 
|                 <span v-else>-</span> | 
|               </div> | 
|             </div> | 
|             <div class="content_list_item_content_item"> | 
|               <div class="content_list_item_content_item_label">计划转库数量:</div> | 
|               <div class="content_list_item_content_item_nr"> | 
|                 {{ item.outPlannum + item.unitName }} | 
|               </div> | 
|             </div> | 
|             <div class="content_list_item_content_item"> | 
|               <div class="content_list_item_content_item_label">实际转出数量:</div> | 
|               <div class="content_list_item_content_item_nr"> | 
|                 {{ item.outActnum + item.unitName }} | 
|               </div> | 
|             </div> | 
|             <div class="content_list_item_content_item"> | 
|               <div class="content_list_item_content_item_label">实际转入数量:</div> | 
|               <div class="content_list_item_content_item_nr"> | 
|                 {{ item.inActnum + item.unitName }} | 
|               </div> | 
|             </div> | 
|           </div> | 
|         </div> | 
|       </div> | 
|     </div> | 
|     <div v-if="(data.status === 0 || data.status === 1) && show" style="background:#F7F7F7; height:94px"></div> | 
|     <div v-if="(data.status === 0 || data.status === 1) && show" class="bottom-button"> | 
|       <button class="button" @click="submit">{{ data.status === 0 ? '去出库' : '去入库' }}</button> | 
|     </div> | 
|   </div> | 
| </template> | 
|   | 
| <script setup lang="ts"> | 
|   import { onMounted, ref, reactive } from 'vue' | 
|   import { useRoute, useRouter } from 'vue-router' | 
|   import { useStore } from "vuex" | 
|   import { Toast } from 'vant' | 
|   import { wTransferExtDetail } from '@/apis/materialStorage' | 
|   | 
|   interface TransferDetailModel { | 
|     code: string; | 
|     status: number; | 
|     outDepartName: string; | 
|     inDepartName: string; | 
|     outWarehouseName: string; | 
|     inWarehouseName: string; | 
|     outPlandate: string; | 
|     inPlandate: string; | 
|     wtransferDetailList: Array<{ | 
|       materialName: string, | 
|       materialCode: string, | 
|       batch: string, | 
|       outPlannum: number, | 
|       inActnum: number, | 
|       outActnum: number, | 
|       unitName: string, | 
|     }>; | 
|   } | 
|   const route = useRoute() | 
|   const router = useRouter() | 
|   const store = useStore() | 
|   const data: any = ref<TransferDetailModel>( | 
| { | 
|       code: "", | 
|       status: 0, | 
|       outDepartName: "", | 
|       inDepartName: "", | 
|       outWarehouseName: "", | 
|       inWarehouseName: "", | 
|       outPlandate: "", | 
|       inPlandate: "", | 
|       wtransferDetailList: [] | 
|     } | 
|   ) | 
|   let show = ref<boolean>(false) | 
|   | 
|   // 跳转出库入库 | 
|   const submit = (): void => { | 
|     if (data.value.status === 0) {  // 出库 | 
|       router.push({ name: 'issueOperation', query: { id: route.query.id, type: 7 } }) | 
|     } else if (data.value.status === 1) {  // 入库 | 
|       if (data.value.type === 3) {  // 备料确认 | 
|         router.push({ name: 'orderStock', query: { id: route.query.id, status: data.value.status, next: 1 } }) | 
|         return | 
|       } | 
|       router.push({ name: 'warehousing', query: { id: route.query.id, type: 7 } }) | 
|     } | 
|   } | 
|   | 
|   const orderType = reactive<Array<{name: string; id: Number;}>>([ | 
|       { name: '车间领料', id: 1 }, | 
|       { name: '计划领料', id: 2 }, | 
|       { name: '机台备料', id: 3 }, | 
|       { name: '完工入库', id: 4 }, | 
|       { name: '车间转库', id: 5 }, | 
|       { name: '外协领料转库', id: 6 }, | 
|       { name: '外协完工转库', id: 7 }, | 
|       { name: '成品入库', id: 8 }, | 
|       { name: '成品转库', id: 9 }, | 
|       { name: '让步放行入库', id: 10 }, | 
|       { name: '让步放行转库', id: 11 }, | 
|       { name: '客返返修领料', id: 12 }, | 
|       { name: '客返返修入库', id: 13 }, | 
|       { name: '跨组织转库', id: 14 }, | 
|       { name: '工序报废', id: 15 }, | 
|       { name: '客退返修领料', id: 16 }, | 
|       { name: '客退返修入库', id: 17 }, | 
|   ]); | 
|   | 
|   | 
|   onMounted(() => { | 
|     wTransferExtDetail(route.query.id) | 
|       .then(res => { | 
|         data.value = res.data | 
|         if (res.data.inUserId == store.state.userInfo.id) { | 
|           show.value = true | 
|         } | 
|       }) | 
|   }) | 
|   | 
|   const tyepToStr = (type: number): string => { | 
|     //  <!-- 1、车间领料;2、车间备料;3、其他;4、完工入库 --> | 
|     for (const item of orderType) { | 
|       if (item.id == type) { | 
|         return item.name | 
|       } | 
|     } | 
|     return '-' | 
|   } | 
| </script> | 
|   | 
| <style lang="scss"> | 
| .content2 { | 
|   background: white; | 
|   .order-message { | 
|     padding-top: 30px; | 
|     // padding: 30px; | 
|     display: flex; | 
|     flex-direction: column; | 
|     // border-bottom: 1px solid #ececec; | 
|     .content_list_item_top { | 
|       padding: 0 30px; | 
|       display: flex; | 
|       align-items: center; | 
|       justify-content: space-between; | 
|       .content_list_item_top_left { | 
|         display: flex; | 
|         align-items: center; | 
|         span { | 
|           font-size: 32px; | 
|           font-weight: 500; | 
|           color: #333333; | 
|         } | 
|       } | 
|       .content_list_item_top_right { | 
|         font-size: 26px; | 
|         font-weight: 400; | 
|         .created { | 
|           color: $nav-stateColor1 !important; | 
|         } | 
|         .warning { | 
|           color: $nav-stateColor5 !important; | 
|         } | 
|         .green { | 
|           color: $nav-stateColor6 !important; | 
|         } | 
|         .info { | 
|           color: $nav-stateColor3 !important; | 
|         } | 
|       } | 
|     } | 
|     .material-title { | 
|       // background-color: #f7f7f7; | 
|       margin-top: 10px; | 
|     } | 
|     .content_list_item_content { | 
|       margin: 0 30px; | 
|       padding: 24px 30px; | 
|       background: #f7f7f7; | 
|       border-radius: 16px; | 
|       display: flex; | 
|       flex-wrap: wrap; | 
|       justify-content: space-between; | 
|       margin-top: 32px; | 
|       .content_list_item_content_item { | 
|         width: 100%; | 
|         display: flex; | 
|         margin-top: 24px; | 
|         // &:nth-child(1) { | 
|         //   margin-top: 0 !important; | 
|         // } | 
|         // &:nth-child(2) { | 
|         //   margin-top: 0 !important; | 
|         // } | 
|         .content_list_item_content_item_label { | 
|           font-size: 24px; | 
|           font-weight: 400; | 
|           color: #666666; | 
|           flex-shrink: 0; | 
|         } | 
|         .content_list_item_content_item_nr { | 
|           font-size: 24px; | 
|           font-weight: 400; | 
|           color: #222222; | 
|           margin-right: 10px; | 
|         } | 
|       } | 
|     } | 
|   } | 
|   .title { | 
|     height: 32px; | 
|     margin-left: 30px; | 
|     padding-top: 40px; | 
|     padding-bottom: 24px; | 
|     font-size: 30px; | 
|     .title-prefix { | 
|       display: inline-block; | 
|       background-color: #4275FC; | 
|       height: 30px; | 
|       width: 8px; | 
|       border-radius: 1px; | 
|       margin-right: 12px; | 
|     } | 
|   } | 
|   .material-content { | 
|     .item-style { | 
|       width: initial; | 
|       border-bottom: 1PX solid #ECECEC; | 
|       padding-bottom: 30px; | 
|       &:last-child { | 
|         border: none; | 
|       } | 
|       .item-title-style { | 
|         padding: 0 30px; | 
|         margin-top: 30px; | 
|         margin-bottom: 12px; | 
|         font-size: 30px; | 
|       } | 
|       .item-content-style { | 
|         margin: 0 30px; | 
|         background-color: #f7f7f7; | 
|         border-radius: 16px; | 
|         display: flex; | 
|         flex-wrap: wrap; | 
|         justify-content: space-between; | 
|         padding: 1px 1px 30px 1px; | 
|         .content_list_item_content_item { | 
|           width: 100%; | 
|           display: flex; | 
|           margin-top: 24px; | 
|           margin-left: 24px; | 
|           .content_list_item_content_item_label { | 
|             font-size: 24px; | 
|             font-weight: 400; | 
|             color: #666666; | 
|             flex-shrink: 0; | 
|           } | 
|           .content_list_item_content_item_nr { | 
|             font-size: 24px; | 
|             font-weight: 400; | 
|             color: #222222; | 
|             margin-right: 10px; | 
|           } | 
|         } | 
|       } | 
|     } | 
|   } | 
|   .bottom-button { | 
|     padding: 1px; | 
|     background-color: #f7f7f7; | 
|     position: fixed; | 
|     width: 100%; | 
|     bottom: 0; | 
|     height: 188px; | 
|     .button { | 
|       margin: 32px 32px 68px 32px; | 
|       height: 88px; | 
|       font-size: 30px; | 
|       width: calc(100% - 64px); | 
|       border: none; | 
|       border-radius: 8px; | 
|       background-color: $nav-color; | 
|       color: #fff; | 
|     } | 
|   } | 
| } | 
| </style> |