| <template> | 
|     <div class="desc"> | 
|         <div class="desc_info"> | 
|             <div class="desc_info_title"> | 
|                 <span>{{ data.title }}</span> | 
|                 <span class="yellow" v-if="data.status === 0">待审核</span> | 
|                 <span class="green" v-else-if="data.status === 1">审批通过</span> | 
|                 <span class="red" v-else-if="data.status === 2">审批未通过</span> | 
|                 <span class="red" v-else-if="data.status === 3">审批终止</span> | 
|             </div> | 
|             <div class="desc_info_company">{{ store.state.userInfo.rootDepartment.name }}</div> | 
|             <div class="desc_info_box"> | 
|                 <div class="desc_info_box_item"> | 
|                     <span>申请编号:</span> | 
|                     <span>{{ data.code }}</span> | 
|                 </div> | 
|                 <div class="desc_info_box_item"> | 
|                     <span>申请日期:</span> | 
|                     <span>{{ data.createTime }}</span> | 
|                 </div> | 
|                 <div class="desc_info_box_item"> | 
|                     <span>申请类型:</span> | 
|                     <span>工序报废申请</span> | 
|                 </div> | 
|                 <div class="desc_info_box_item"> | 
|                     <span>当前工厂:</span> | 
|                     <span>{{data.factoryName}}</span> | 
|                 </div> | 
|                 <div class="desc_info_box_item"> | 
|                     <span>出库仓库:</span> | 
|                     <span>{{data.warehouseOutName}}</span> | 
|                 </div> | 
|                 <div class="desc_info_box_item"> | 
|                     <span>入库仓库:</span> | 
|                     <span>{{data.warehouseName}}</span> | 
|                 </div> | 
|                 <div class="desc_info_box_item"> | 
|                     <span>报废原因:</span> | 
|                     <span>{{data.content}}</span> | 
|                 </div> | 
|                 <div class="desc_info_box_item"> | 
|                     <span>申请人:</span> | 
|                     <span>{{ data.createUserName }} / {{data.departmentName}}</span> | 
|                 </div> | 
|             </div> | 
|         </div> | 
|         <div class="desc_qd"> | 
|             <div class="desc_qd_header"> | 
|                 <div class="desc_qd_header_x"></div> | 
|                 <span>报废工装清单({{ detailList.length }})</span> | 
|             </div> | 
|             <div class="desc_qd_info" v-for="(item, index) in data.detailList" :key="index"> | 
|                 <div class="rework_qd_item_i"> | 
|                     <span class="black">工装信息:{{ item.applianceCode ? item.applianceCode : '-' }} / </span><span class="black">{{ item.num + item.unitName }}</span> | 
|                 </div> | 
|                 <div class="rework_qd_item_i"> | 
|                     <span>物料信息:</span><span>{{ item.materialName + ' | ' + item.materialCode }}</span> | 
|                 </div> | 
|                 <div class="rework_qd_item_i"> | 
|                     <span>批次号:</span><span>{{ item.batch ?? '-' }}</span> | 
|                 </div> | 
|                 <div class="rework_qd_item_i"> | 
|                   <span>生产工序:</span><span>{{ item.procedureName }}</span> | 
|                 </div> | 
|             </div> | 
|         </div> | 
|         <div class="desc_process"> | 
|             <div class="desc_process_title"> | 
|                 <div class="desc_process_title_x"></div> | 
|                 <span>流程</span> | 
|             </div> | 
|             <div class="desc_process_box"> | 
|                 <div class="desc_process_content"> | 
|                     <div class="item" v-for="(item, index) in data.recordList" :key="index"> | 
|                         <div class="item_left"> | 
|                             <div class="item_x" v-if="data.recordList.length - 1 !== index"></div> | 
|                             <div class="item_left_img"> | 
|                                 <p>{{item.userModel ? item.userModel.name.substr(0, 1) : '-'}}</p> | 
|                                 <img src="../../assets/icon/ic_pass@2x.png" alt="" v-if="item.operationResult === 'AGREE'" /> | 
|                                 <img src="../../assets/icon/ic_notpass@2x.png" alt="" v-else-if="item.operationResult === 'REFUSE'" /> | 
|                                 <img src="../../assets/icon/ic_shenhe@2x.png" alt="" v-else-if="item.operationResult === 'NONE'" /> | 
|                             </div> | 
|                             <div class="item_left_text"> | 
|                                 <span>{{index === 0 ? '发起申请' : '审批人'}}</span> | 
|                                 <span>{{item.userModel ? item.userModel.name : '-'}}</span> | 
|                                 <div class="item_left_text_info" v-if="item.remark"> | 
|                                     <span>{{item.remark}}</span> | 
|                                 </div> | 
|                             </div> | 
|                         </div> | 
|                         <div class="item_right">{{item.date}}</div> | 
|                     </div> | 
|                 </div> | 
|             </div> | 
|         </div> | 
|     </div> | 
| </template> | 
|   | 
| <script setup lang="ts"> | 
|   | 
| import { onMounted, ref } from 'vue' | 
| import { useRoute, useRouter } from "vue-router" | 
| import { useStore } from "vuex" | 
| import { Toast } from 'vant' | 
|   | 
| import { getsqdInfo } from '@/apis/WorkOrderAPI' | 
|   | 
| const route = useRoute() | 
| const store = useStore() | 
|   | 
| // 报废清单 | 
| let data = ref<object>({}) | 
| let detailList = ref<Array<any>>([]) | 
|   | 
| onMounted(() => { | 
|   getInfo(route.query.id as string) | 
| }) | 
|   | 
| const getInfo = async (id: string | number): Promise<void> => { | 
|   let res = await getsqdInfo(id) | 
|   if (res.code === 200) { | 
|     data.value = res.data | 
|     detailList.value = res.data.detailList | 
|   } else { | 
|     Toast.fail({ message: res.message }) | 
|   } | 
| } | 
|   | 
| </script> | 
|   | 
| <style lang="scss" scoped> | 
|     .desc { | 
|         position: absolute; | 
|         top: 0; | 
|         width: 100%; | 
|         height: 100%; | 
|         .desc_info { | 
|             padding: 30px; | 
|             background: #ffffff; | 
|             .desc_info_title { | 
|                 display: flex; | 
|                 align-items: center; | 
|                 justify-content: space-between; | 
|                 span { | 
|                     &:first-child { | 
|                         font-size: 32px; | 
|                         font-weight: 500; | 
|                         color: #333333; | 
|                     } | 
|                     &:last-child { | 
|                         font-size: 26px; | 
|                         font-weight: 400; | 
|                         color: #F5A400; | 
|                     } | 
|                 } | 
|             } | 
|             .desc_info_company { | 
|                 font-size: 24px; | 
|                 font-weight: 400; | 
|                 color: #666666; | 
|                 margin: 24px 0; | 
|             } | 
|             .desc_info_box { | 
|                 padding: 24px 30px; | 
|                 background: #F7F7F7; | 
|                 border-radius: 16px; | 
|                 display: flex; | 
|                 flex-direction: column; | 
|                 .desc_info_box_item { | 
|                     display: flex; | 
|                     align-items: center; | 
|                     margin-bottom: 24px; | 
|                     &:last-child { | 
|                         margin-bottom: 0 !important; | 
|                     } | 
|                     span { | 
|                         font-size: 26px; | 
|                         font-weight: 400; | 
|                         &:first-child { | 
|                             color: #666666; | 
|                         } | 
|                         &:last-child { | 
|                             color: #222222; | 
|                         } | 
|                     } | 
|                 } | 
|             } | 
|         } | 
|         .desc_qd { | 
|             margin-top: 40px; | 
|             .desc_qd_header { | 
|                 display: flex; | 
|                 align-items: center; | 
|                 padding: 0 30px; | 
|                 .desc_qd_header_x { | 
|                     width: 8px; | 
|                     height: 30px; | 
|                     background: #4275FC; | 
|                     border-radius: 2px; | 
|                     margin-right: 12px; | 
|                 } | 
|                 span { | 
|                     font-size: 32px; | 
|                     font-weight: 500; | 
|                     color: #222222; | 
|                 } | 
|             } | 
|             .desc_qd_info { | 
|                 background: white; | 
|                 padding: 30px; | 
|                 margin-top: 30px; | 
|                 .desc_qd_info_item { | 
|                     display: flex; | 
|                     align-items: center; | 
|                     margin-bottom: 24px; | 
|                     &:last-child { | 
|                         margin-bottom: 0; | 
|                     } | 
|                     .black { | 
|                         font-size: 28px !important; | 
|                         font-weight: 400 !important; | 
|                         color: #222222 !important; | 
|                     } | 
|                     span { | 
|                         font-size: 26px; | 
|                         font-weight: 400; | 
|                         &:first-child { | 
|                             color: #666666; | 
|                         } | 
|                         &:last-child { | 
|                             color: #333333; | 
|                         } | 
|                     } | 
|                 } | 
|             } | 
|         } | 
|         .desc_process { | 
|             margin-top: 40px; | 
|             .desc_process_title { | 
|                 display: flex; | 
|                 align-items: center; | 
|                 padding: 0 30px; | 
|                 span { | 
|                     font-size: 32px; | 
|                     font-weight: 500; | 
|                     color: #222222; | 
|                 } | 
|                 .desc_process_title_x { | 
|                     margin-right: 12px; | 
|                     width: 8px; | 
|                     height: 30px; | 
|                     background: #4275FC; | 
|                     border-radius: 2px; | 
|                 } | 
|             } | 
|             .desc_process_box { | 
|                 padding: 30px; | 
|                 margin-top: 30px; | 
|                 background: white; | 
|                 .desc_process_content { | 
|                     overflow: hidden; | 
|                     .item { | 
|                         display: flex; | 
|                         margin-bottom: 60px; | 
|                         position: relative; | 
|                         &:last-child { | 
|                             margin-bottom: 0 !important; | 
|                         } | 
|                         .item_left { | 
|                             width: 100%; | 
|                             display: flex; | 
|                             align-items: center; | 
|                             position: relative; | 
|                             .item_x { | 
|                                 position: absolute; | 
|                                 bottom: -100%; | 
|                                 left: 38px; | 
|                                 height: 400px; | 
|                                 border-right: 2PX solid #E5E5E5; | 
|                             } | 
|                             .item_left_img { | 
|                                 flex-shrink: 0; | 
|                                 width: 76px; | 
|                                 height: 76px; | 
|                                 background: #4275FC; | 
|                                 border: 4px solid #FFFFFF; | 
|                                 position: relative; | 
|                                 z-index: 9; | 
|                                 border-radius: 50%; | 
|                                 display: flex; | 
|                                 align-content: center; | 
|                                 justify-content: center; | 
|                                 white-space: nowrap; | 
|                                 p { | 
|                                     font-size: 22px; | 
|                                     font-weight: 400; | 
|                                     color: #FFFFFF; | 
|                                 } | 
|                                 img { | 
|                                     position: absolute; | 
|                                     bottom: 0; | 
|                                     right: 0; | 
|                                     width: 28px; | 
|                                     height: 28px; | 
|                                 } | 
|                             } | 
|                             .item_left_text { | 
|                                 width: 100%; | 
|                                 display: flex; | 
|                                 flex-direction: column; | 
|                                 .item_left_text_info { | 
|                                     width: 100%; | 
|                                     padding: 5px; | 
|                                     box-sizing: border-box; | 
|                                     background: #e7e7e7; | 
|                                     margin-left: 20px; | 
|                                     border-radius: 5px; | 
|                                     margin-top: 10px; | 
|                                     span { | 
|                                         font-size: 24px; | 
|                                         color: #474747; | 
|                                     } | 
|                                 } | 
|                                 span { | 
|                                     margin-left: 20px; | 
|                                     &:first-child { | 
|                                         font-size: 28px; | 
|                                         font-weight: 400; | 
|                                         color: #111111; | 
|                                     } | 
|                                     &:last-child { | 
|                                         font-size: 24px; | 
|                                         font-weight: 400; | 
|                                         color: #999999; | 
|                                         margin-top: 10px; | 
|                                     } | 
|                                 } | 
|                             } | 
|                         } | 
|                         .item_right { | 
|                             position: absolute; | 
|                             right: 0; | 
|                             top: 0; | 
|                             font-size: 24px; | 
|                             font-weight: 400; | 
|                             color: #999999; | 
|                         } | 
|                     } | 
|                 } | 
|             } | 
|         } | 
|         .rework_qd_item_i { | 
|             display: flex; | 
|             align-items: center; | 
|             margin-bottom: 30px; | 
|             &:last-child { | 
|                 margin-bottom: 0!important; | 
|             } | 
|             .black { | 
|                 font-size: 30px!important; | 
|                 font-weight: 400!important; | 
|                 color: #222222!important; | 
|             } | 
|             span { | 
|                 &:first-child { | 
|                     font-size: 26px; | 
|                     font-weight: 400; | 
|                     color: #666666; | 
|                 } | 
|                 &:last-child { | 
|                     font-size: 26px; | 
|                     font-weight: 400; | 
|                     color: #333333; | 
|                 } | 
|             } | 
|         } | 
|     } | 
| </style> |