| <template> | 
|     <div class="page"> | 
|         <!--    入库(转库单)    --> | 
|         <div class="page_info" v-if="info.wtransfer && type === QRCodeType.ZKD.toString()"> | 
|             <div class="page_info_title" v-if="info.wtransfer.inPlandate">{{'计划入库日期:' + info.wtransfer.inPlandate }}</div> | 
|             <div class="page_info_title" v-else>{{'计划入库日期:' + info.wtransfer.planDate }}</div> | 
|             <div class="page_info_list"> | 
|                 <div class="page_info_list_item"> | 
|                     <div class="page_info_list_item_label">来源类型:</div> | 
|                     <div class="page_info_list_item_nr" v-if="info.wtransfer.originType === 0">采购订单</div> | 
|                     <div class="page_info_list_item_nr" v-else-if="info.wtransfer.originType === 1">生产工单</div> | 
|                     <div class="page_info_list_item_nr" v-else-if="info.wtransfer.originType === 2">销售订单</div> | 
|                     <div class="page_info_list_item_nr" v-else-if="info.wtransfer.originType === 3">转库单</div> | 
|                     <div class="page_info_list_item_nr" v-else-if="info.wtransfer.originType === 4">盘点单</div> | 
|                     <div class="page_info_list_item_nr" v-else>-</div> | 
|                 </div> | 
|                 <div class="page_info_list_item"> | 
|                     <div class="page_info_list_item_label">申请人员:</div> | 
|                     <div class="page_info_list_item_nr" v-if="info.wtransfer.userName">{{ info.wtransfer.userName + '/' + info.wtransfer.userDepartName }}</div> | 
|                     <div class="page_info_list_item_nr" v-else>{{ info.wtransfer.inUserName + '/' + info.wtransfer.inDepartName }}</div> | 
|                 </div> | 
|                 <div class="page_info_list_items"> | 
|                     <div class="page_info_list_item_label">来源单号:</div> | 
|                     <div class="page_info_list_item_nr">{{ info.wtransfer.originCode ? info.wtransfer.originCode : '-' }}</div> | 
|                 </div> | 
|                 <div class="page_info_list_items"> | 
|                     <div class="page_info_list_item_label">申请时间:</div> | 
|                     <div class="page_info_list_item_nr">{{ info.wtransfer.createTime ? info.wtransfer.createTime : '-' }}</div> | 
|                 </div> | 
|             </div> | 
|             <div class="page_info_bz" v-if="info.wtransfer.abstracts"> | 
|                 <div class="page_info_bz_title">转库备注:</div> | 
|                 <div class="page_info_bz_nr">{{ info.wtransfer.abstracts }}</div> | 
|             </div> | 
|         </div> | 
|         <!--    入库(入库单)    --> | 
|         <div class="page_info" v-if="info.woutbound && type === QRCodeType.RKD.toString()"> | 
|             <div class="page_info_title">{{'计划入库日期:' + info.woutbound.planDate }}</div> | 
|             <div class="page_info_list"> | 
|                 <div class="page_info_list_item"> | 
|                     <div class="page_info_list_item_label">来源类型:</div> | 
|                     <div class="page_info_list_item_nr" v-if="info.woutbound.originType === 0">采购订单</div> | 
|                     <div class="page_info_list_item_nr" v-else-if="info.woutbound.originType === 1">生产工单</div> | 
|                     <div class="page_info_list_item_nr" v-else-if="info.woutbound.originType === 2">销售订单</div> | 
|                     <div class="page_info_list_item_nr" v-else-if="info.woutbound.originType === 3">转库单</div> | 
|                     <div class="page_info_list_item_nr" v-else-if="info.woutbound.originType === 4">盘点单</div> | 
|                     <div class="page_info_list_item_nr" v-else>-</div> | 
|                 </div> | 
|                 <div class="page_info_list_items"> | 
|                     <div class="page_info_list_item_label">来源单号:</div> | 
|                     <div class="page_info_list_item_nr">{{ info.woutbound.originCode ? info.woutbound.originCode : '-' }}</div> | 
|                 </div> | 
|                 <div class="page_info_list_item"> | 
|                     <div class="page_info_list_item_label">申请人员:</div> | 
|                     <div class="page_info_list_item_nr" v-if="info.woutbound.userName">{{ info.woutbound.userName + '/' + info.woutbound.userDepartName }}</div> | 
|                     <div class="page_info_list_item_nr" v-else>{{ info.woutbound.inUserName + '/' + info.woutbound.inDepartName }}</div> | 
|                 </div> | 
|                 <div class="page_info_list_items"> | 
|                     <div class="page_info_list_item_label">申请时间:</div> | 
|                     <div class="page_info_list_item_nr">{{ info.woutbound.createTime ? info.woutbound.createTime : '-' }}</div> | 
|                 </div> | 
|             </div> | 
|             <div class="page_info_bz" v-if="info.woutbound.abstracts"> | 
|                 <div class="page_info_bz_title">转库备注:</div> | 
|                 <div class="page_info_bz_nr">{{ info.woutbound.abstracts }}</div> | 
|             </div> | 
|         </div> | 
|         <div class="page_h"></div> | 
|         <!--    打开选择工装    --> | 
| <!--        <div class="switch" v-if="type === QRCodeType.ZKD.toString()">--> | 
| <!--            <button @click="openxz">手动选择</button>--> | 
| <!--        </div>--> | 
| <!--        <div class="page_h" v-if="type === QRCodeType.ZKD.toString()"></div>--> | 
|         <!--    待入库物料    --> | 
|         <van-collapse v-model="activeNames"> | 
|             <!--        转库单(多个仓库)        --> | 
|             <template v-if="route.query.type == 7"> | 
|                 <van-collapse-item v-for="(item, index) in info.wtransferWarehouseList" :key="index" :name="index"> | 
|                     <template #title> | 
|                         <div class="page_sfq"><img src="@/assets/icon/chuku_ic_cangku@2x.png" alt="" /> {{ item.warehouseName}}</div> | 
|                     </template> | 
|                     <div class="page_dck"> | 
|                         <div class="page_dck_title"> | 
|                             <div class="page_dck_title_x"></div> | 
|                             <span>待入库物料</span> | 
|                         </div> | 
|                     </div> | 
|                     <div class="page_content" v-for="(item1, idx) in item.wtransferDetailList" :key="idx"> | 
|                         <div class="page_content_title"> | 
|                             <div class="page_content_title_top"> | 
|                                 <span v-if="item1.batch">{{ item1.materialName + ' | ' + item1.materialCode }}</span> | 
|                                 <span v-else>{{ item1.materialName + ' | ' + item1.materialCode }}</span> | 
|                                 <span>{{item1.outActnum}}{{item1.unitName}}</span> | 
|                             </div> | 
|                             <div class="page_content_title_bottom"> | 
|                                 <span class="green" v-if="item1.qualityType === 0">合格 <span class="black">/</span> </span> | 
|                                 <span class="warning" v-else-if="item1.qualityType === 1">不良 <span class="black">/</span> </span> | 
|                                 <span class="error" v-else-if="item1.qualityType === 2">报废 <span class="black">/</span> </span> | 
|                                 <span v-else>- / </span> | 
|                                 <span>{{item1.procedureName ? item1.procedureName : '-'}} / </span> | 
|                                 <span>{{item1.batch ? item1.batch : '-'}}</span> | 
|                             </div> | 
|                         </div> | 
| <!--                        <div class="page_content_list" v-for="(item2, indx) in item1.wstockExtListVOList" :key="indx">--> | 
| <!--                            <div class="page_content_list_item">--> | 
| <!--                                <div class="page_content_list_item_label">入库货位:</div>--> | 
| <!--                                <div class="page_content_list_item_nr">{{item2.locationName}}</div>--> | 
| <!--                            </div>--> | 
| <!--                            <div class="page_content_list_items">--> | 
| <!--                                <div class="page_content_list_item_label">数量:</div>--> | 
| <!--                                <div class="page_content_list_item_nr">{{item2.num}}{{item2.unitName}}</div>--> | 
| <!--                            </div>--> | 
| <!--                        </div>--> | 
|                     </div> | 
|                 </van-collapse-item> | 
|             </template> | 
|             <!--        入库单(单个仓库)        --> | 
|             <template v-if="route.query.type == 9"> | 
|                 <van-collapse-item> | 
|                     <template #title> | 
|                         <div class="page_sfq" v-if="info.woutbound"><img src="@/assets/icon/chuku_ic_cangku@2x.png" alt="" /> {{ info.woutbound.warehouseName }}</div> | 
|                     </template> | 
|                     <div class="page_dck"> | 
|                         <div class="page_dck_title"> | 
|                             <div class="page_dck_title_x"></div> | 
|                             <span>待入库物料</span> | 
|                         </div> | 
|                     </div> | 
|                     <div class="page_content" v-for="(item, index) in info.woutboundDetailsWait" :key="index" :name="index"> | 
|                         <div class="page_content_title"> | 
|                             <div class="page_content_title_top"> | 
|                                 <span v-if="item.batch">{{ item.materialName + ' | ' + item.materialCode }}</span> | 
|                                 <span v-else>{{ item.materialName + ' | ' + item.materialCode }}</span> | 
|                             </div> | 
|                             <div class="page_content_title_bottom"> | 
|                                 <span class="green" v-if="item.qualityType === 0">合格 <span class="black">/</span> </span> | 
|                                 <span class="warning" v-else-if="item.qualityType === 1">不良 <span class="black">/</span> </span> | 
|                                 <span class="error" v-else-if="item.qualityType === 2">报废 <span class="black">/</span> </span> | 
|                                 <span v-else>- / </span> | 
|                                 <span>{{item.procedureName ? item.procedureName : '-'}} / </span> | 
|                                 <span>{{item.batch ? item.batch : '-'}}</span> | 
|                             </div> | 
|                         </div> | 
|                         <div class="page_content_list"> | 
|                             <div class="page_content_list_item"> | 
|                                 <div class="page_content_list_item_label">入库货位:</div> | 
|                                 <div class="page_content_list_item_nr"> | 
|                                     {{item.locationName ? item.locationName : '-'}} | 
|                                 </div> | 
|                             </div> | 
|                             <div class="page_content_list_items"> | 
|                                 <div class="page_content_list_item_label">数量:</div> | 
|                                 <div class="page_content_list_item_nr">{{item.num ? item.num : '-'}}{{item.unitName}}</div> | 
|                             </div> | 
|                         </div> | 
|                     </div> | 
|                 </van-collapse-item> | 
|             </template> | 
|         </van-collapse> | 
|         <div class="page_h"></div> | 
|         <div class="page_yxwl"> | 
|             <div class="page_yxwl_title"> | 
|                 <div class="left"> | 
|                     <div class="page_yxwl_title_x"></div> | 
|                     <span>已选择物料</span> | 
|                 </div> | 
|                 <div class="right" v-if="type === QRCodeType.ZKD.toString()" @click="openxz"> | 
|                     <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt=""><span>手动入库</span> | 
|                 </div> | 
|             </div> | 
|             <!--        入库单(单个仓库)        --> | 
|             <template v-if="route.query.type == 9 && info.woScanMaterialBeanList && info.woScanMaterialBeanList.length > 0"> | 
|                 <div class="page_yxwl_list"> | 
|                     <div class="page_yxwl_list_item" v-for="(item, index) in info.woScanMaterialBeanList" :key="index"> | 
|                         <div class="page_yxwl_list_item_top"> | 
| <!--                            <div class="page_yxwl_list_item_top_left" v-if="item.batch">{{item.materialName}} | {{item.materialCode}}|{{item.batch}}</div>--> | 
|                             <div class="page_yxwl_list_item_top_left">{{item.materialName}} | {{item.materialCode}}</div> | 
|                         </div> | 
|                         <div class="page_yxwl_list_item_sx"> | 
|                             <span class="green" v-if="item.qualityType === 0">合格 <span>/</span> </span> | 
|                             <span class="warning" v-else-if="item.qualityType === 1">不良 <span>/</span> </span> | 
|                             <span class="red" v-else-if="item.qualityType === 2">报废 <span>/</span> </span> | 
|                             <span>{{item.procedureName ? item.procedureName : '-'}} <span>/</span> </span> | 
|                             <span>{{item.batch ? item.batch : '-'}}</span> | 
|                         </div> | 
|                         <div class="page_yxwl_list_item_num"> | 
|                             <div class="dis"> | 
|                                 <div class="item"> | 
|                                     <div class="label">入库货位:</div> | 
|                                     <div class="nr"> | 
|                                         <span>{{item.locationName ? item.locationName : '-'}}</span> | 
|                                     </div> | 
|                                 </div> | 
|                                 <div class="items"> | 
|                                     <div class="label">数量:</div> | 
|                                     <div class="nr"> | 
|                                         <input type="text" v-model="item.scanNum" placeholder="请输入" /> | 
|                                         <span>{{item.unitName}}</span> | 
|                                     </div> | 
|                                 </div> | 
|                             </div> | 
|                             <div class="itemy" v-for="(item1, idx) in item.woutboundRedisCodeBeanList" :key="idx"> | 
|                                 <div class="label">工装{{item1.scanCode}}:</div> | 
|                                 <div class="nr">{{item1.num}}{{item1.unitName}}</div> | 
|                                 <div class="dele" @click="dele(item1)"> | 
|                                     <img src="@/assets/icon/chuku_ic_delete@2x.png" alt="" /> | 
|                                 </div> | 
|                             </div> | 
|                         </div> | 
|                     </div> | 
|                 </div> | 
|             </template> | 
|             <!--        转库单(多个仓库)        --> | 
|             <template v-else-if="route.query.type == 7 && seleMateriaList.length > 0"> | 
|                 <!-- <template v-for="(item, index) in info.wtransferWarehouseList" :key="index"> --> | 
|                     <div class="page_yxwl_list"> | 
|                         <div class="page_yxwl_list_item" v-for="(item1, idx) in seleMateriaList" :key="idx"> | 
|                             <div class="page_yxwl_list_item_top"> | 
| <!--                                <div class="page_yxwl_list_item_top_left" v-if="item1.batch">{{item1.materialName}} | {{item1.materialCode}}|{{item1.batch}}</div>--> | 
|                                 <div class="page_yxwl_list_item_top_left">{{item1.materialName}} | {{item1.materialCode}}</div> | 
|                             </div> | 
|                             <div class="page_yxwl_list_item_sx"> | 
|                                 <span class="green" v-if="item1.qualityType === 0">合格 <span>/</span> </span> | 
|                                 <span class="yellow" v-else-if="item1.qualityType === 1">不良 <span>/</span> </span> | 
|                                 <span class="red" v-else-if="item1.qualityType === 2">报废 <span>/</span> </span> | 
|                                 <span>{{item1.procedureName ? item1.procedureName : '-'}} <span>/</span> </span> | 
|                                 <span>{{item1.batch ? item1.batch : '-'}}</span> | 
|                             </div> | 
|                             <div class="page_yxwl_list_item_num"> | 
|                                 <!-- <div class="dis"> | 
|                                     <div class="item"> | 
|                                         <div class="label">入库货位:</div> | 
|                                         <div class="nr"> | 
|                                             <span>{{item1.locationName}}</span> | 
|                                         </div> | 
|                                     </div> | 
|                                     <div class="items"> | 
|                                         <div class="label">数量:</div> | 
|                                         <div class="nr"> | 
|                                             <input type="text" v-model="item1.outActnum" placeholder="请输入" /> | 
|                                             <span>{{item1.unitName}}</span> | 
|                                         </div> | 
|                                     </div> | 
|                                 </div> --> | 
|                                 <div class="itemy"> | 
|                                     <div class="itemy_item"> | 
|                                         <div class="label">入库货位:</div> | 
|                                         <div class="nr"> | 
|                                             <span>{{item1.locationName}}</span> | 
|                                         </div> | 
|                                     </div> | 
|                                     <div class="itemy_item"> | 
|                                         <div class="label">数量:</div> | 
|                                         <div class="nr"> | 
|                                             <!-- @input="inputNum(item1)"  --> | 
|                                             <input type="number" v-model="item1.outActnum" placeholder="请输入" /> | 
|                                             <span>{{item1.unitName}}</span> | 
|                                         </div> | 
|                                     </div> | 
|                                     <!-- @click="dele()" --> | 
|                                     <div class="dele" @click="dele(idx)"> | 
|                                         <img src="@/assets/icon/chuku_ic_delete@2x.png" alt="" /> | 
|                                     </div> | 
|                                 </div> | 
|                             </div> | 
|                         </div> | 
|                     </div> | 
|                 <!-- </template> --> | 
|             </template> | 
|             <div class="page_yxwl_kong" v-else>暂无数据</div> | 
|         </div> | 
|         <div class="page_zw"></div> | 
|         <!--    提交按钮    --> | 
|         <div class="page_footer"> | 
|             <!-- <div class="page_footer_qr" @click="scanCode"> | 
|                 <img src="@/assets/icon/daiban_btn_saoma@2x.png" alt="" /> | 
|                 <span>扫码入库</span> | 
|             </div> --> | 
|             <!-- <div style="width: 20px;"></div> --> | 
|             <div class="page_footer_ck" @click="submit"> | 
|                 <span>确认入库</span> | 
|             </div> | 
|         </div> | 
|         <!-- <v-ScanCode | 
|             :openCode="openCode" | 
|             :infos="smData.info" | 
|             :promptOrNot="false" | 
|             @closePopup="closePopup" | 
|             @onDecode="onDecode" /> --> | 
|         <!-- <v-ScanCode | 
|             :openCode="openCode1" | 
|             :infos="['请扫描货位码']" | 
|             @closePopup="closePopup1" | 
|             @onDecode="onDecode1" /> --> | 
|         <!--    插入操作弹框    --> | 
|         <van-popup v-model:show="show" position="bottom" :closeable="true" :style="{ height: '60%' }" round> | 
|             <div class="smrk" v-if="itemData"> | 
|                 <div class="smrk_header">扫码入库</div> | 
|                 <div class="smrk_content"> | 
|                     <div class="smrk_content_name"> | 
|                         <span v-if="itemData.batch">{{itemData.materialName}} | {{itemData.materialCode}} | {{itemData.batch}}</span> | 
|                         <span v-else>{{itemData.materialName}} | {{itemData.materialCode}}</span> | 
|                         <span>{{itemData.scanNum}}/{{itemData.total}}{{itemData.unitName}}</span> | 
|                     </div> | 
|                     <div class="smrk_content_sx"> | 
|                         <span class="green" v-if="itemData.qualityType === 0">合格 <span class="black">/</span> </span> | 
|                         <span class="yellow" v-else-if="itemData.qualityType === 1">不良 <span class="black">/</span> </span> | 
|                         <span class="error" v-else-if="itemData.qualityType === 2">报废 <span class="black">/</span> </span> | 
|                         <span v-else>- / </span> | 
|                         <span>{{itemData.procedureName ? itemData.procedureName : '-'}} / </span> | 
|                         <span>{{itemData.batch ? itemData.batch : '-'}}</span> | 
|                     </div> | 
|                     <!--          转库单          --> | 
|                     <div class="smrk_content_gz" v-if="itemData.wtransferRedisCodeBeanList"> | 
|                         <div class="smrk_content_gz_item" v-for="(item, index) in itemData.wtransferRedisCodeBeanList" :key="index"> | 
|                             <span>{{item.scanCode}}:</span> | 
|                             <span>{{item.num}}{{item.unitName}}</span> | 
|                         </div> | 
|                     </div> | 
|                     <!--          入库单          --> | 
|                     <div class="smrk_content_gz" v-else-if="itemData.woutboundRedisCodeBeanList"> | 
|                         <div class="smrk_content_gz_item" v-for="(item, index) in itemData.woutboundRedisCodeBeanList" :key="index"> | 
|                             <span>{{item.scanCode}}:</span> | 
|                             <span>{{item.num}}{{item.unitName}}</span> | 
|                         </div> | 
|                     </div> | 
|                 </div> | 
|                 <div class="smrk_footer"> | 
|                     <div class="smrk_footer_jx" @click="JXSM">继续扫码</div> | 
|                     <div class="smrk_footer_bc" @click="submitTK">保存</div> | 
|                 </div> | 
|             </div> | 
|         </van-popup> | 
|         <!-- 选择货位 --> | 
|         <Allocation :show="show1" :warehouseId="warehouseId" @close="closeBox" @value="getValue" /> | 
|         <!-- 选择物料 --> | 
|         <MaterialIn :show="show2" :list="MateriaList" @close="closeBox1" @value="getValue1" /> | 
|     </div> | 
| </template> | 
|   | 
| <script setup lang="ts"> | 
|     import { ref, reactive, onMounted, nextTick, watch } from 'vue' | 
|     import { useRoute, useRouter } from 'vue-router' | 
|     import { useStore } from "vuex" | 
|     import { Toast } from 'vant' | 
|     import { QRCodeType } from '@/enum' | 
|     import { | 
|         getList, | 
|         outScanAppliances, | 
|         getLocationInfo, | 
|         saveIn, | 
|         getInByWTransferId, | 
|         wTransferForInOut, | 
|         wOutBoundForInOut, | 
|         wOutBoundForUpload, | 
|         transferToInNew | 
|     } from '@/apis/ExWarehouse' | 
|     import { wTransferForInOutUpload } from '@/apis/ExWarehouse' | 
|     import { getBarcodeContent, getListByCondition, getListByWarehouseId } from '@/apis/WorkOrderAPI' | 
|     import { getDB } from '@/apis/agencyAPI' | 
|     // import vScanCode from '@/components/common/ScanCode.vue' | 
|     import Allocation from '@/components/common/allocation.vue' | 
|     import MaterialIn from '@/components/common/materialIn.vue' | 
|   | 
|     const route = useRoute() | 
|     const store = useStore() | 
|     const router = useRouter() | 
|   | 
|     let hwCode = ref<string>('') | 
|     let info: any = ref({}) | 
|     let openCode1 = ref<boolean>(false) | 
|     let show = ref<boolean>(false)  // 控制弹框打开 | 
|     let show1 = ref<boolean>(false)  // 控制弹框打开 | 
|   | 
|     let show2 = ref<boolean>(false)  // 控制弹框打开 | 
|     let MateriaList = ref<object[]>([])    // 物料 | 
|     let seleMateriaList = ref<object[]>([])    // 已选物料 | 
|     let location = ref<string | number>('')     // 货位id | 
|     let locationName = ref<string | number>('')     // 货位名称 | 
|   | 
|     let ids = ref<string>('') | 
|     let itemData: any = ref({}) // 已扫描数据 | 
|     let warehouseId = ref<string>('')   // 仓库编码 | 
|   | 
|     const activeNames = ref([0])   // 控制手风琴打开 | 
|   | 
|     let data: any = ref([])   // 详情数据 | 
|   | 
|     let selected: any = ref([])   // 已选数据 | 
|   | 
|     const whouseArray: any = ref([])     // 转库列表数据 | 
|   | 
|     let smData: any = reactive({     // 扫码记录后续操作数据 | 
|         wz: [], | 
|         item: [], | 
|         info: [] | 
|     }) | 
|   | 
|     const status = ref() // 0 待入库 1 已入库 | 
|   | 
|     const type: string = route.query.type as string  // 7 转库单  9 入库单 | 
|   | 
|     // 控制扫码显示隐藏 | 
|     const openCode = ref<boolean>(false) | 
|   | 
|     // 修改入库数量 | 
|     const inputNum = (item: any) => { | 
|         let totalNum = 0 | 
|         seleMateriaList.value.forEach((element: any) => { | 
|             if (element.id === item.id) { | 
|                 totalNum += Number(element.outActnum) | 
|             } | 
|         }) | 
|         info.value.wtransferWarehouseList[0].wtransferDetailList.forEach((element: any) => { | 
|             if (element.materialId === item.materialId) { | 
|                 if (element.outActnum < totalNum) { | 
|                     item.outActnum = '' | 
|                     Toast.fail({ message: '待入库数量不能小于已选择物料数量', duration: 2000 }) | 
|                 } | 
|             } | 
|         }) | 
|         console.log(totalNum) | 
|     } | 
|   | 
|     // 选择物料 | 
|     const getValue1 = async (obj: any) => { | 
|         let val: any = JSON.parse(JSON.stringify(obj)) | 
|         // 判断相同货位相同物料只能有一个 | 
|         for (let i = 0; i < seleMateriaList.value.length; i++) { | 
|             if (seleMateriaList.value[i].locationId === location.value) { | 
|                 if (seleMateriaList.value[i].qualityType == obj.qualityType && | 
|                 seleMateriaList.value[i].procedureId == obj.procedureId && | 
|                 seleMateriaList.value[i].batch == obj.batch && | 
|                 seleMateriaList.value[i].materialId == obj.materialId) { | 
|                     Toast.fail({ message: '相同货位,同一个物料只能有一个', duration: 2000 }) | 
|                     show2.value = false | 
|                     return | 
|                 } | 
|                 // if (val.materialId === seleMateriaList.value[i].materialId) { | 
|                 //     Toast.fail({ message: '相同货位,同一个物料只能有一个', duration: 2000 }) | 
|                 //     show2.value = false | 
|                 //     return | 
|                 // } | 
|             } | 
|         } | 
|         // 判断物料数量不能超出待入库数量 | 
|         let materialNum = 0 | 
|         let num = 0 | 
|         seleMateriaList.value.forEach((item: any) => { | 
|             if (item.id === val.id) { | 
|                 materialNum += Number(item.outActnum) | 
|             } | 
|         }) | 
|         info.value.wtransferWarehouseList[0].wtransferDetailList.forEach((item: any) => { | 
|             if (item.id === val.id) { | 
|                 num = item.outActnum - materialNum | 
|             } | 
|         }) | 
|         val['outActnum'] = num | 
|   | 
|         seleMateriaList.value.push({ ...val, locationId: location.value, locationName: locationName.value }) | 
|         show2.value = false | 
|     } | 
|   | 
|     // 提交工装 | 
|     const getValue = async (val: any, i: number) => { | 
|         // for(let i = 0; i < seleMateriaList.value.length; i++) { | 
|         //     if (seleMateriaList.value[i].locationId === val.id) { | 
|         //         Toast.fail({ message: '不能重复选择货位', duration: 2000 }) | 
|         //         return | 
|         //     } | 
|         // } | 
|         // 如果没有工装了,就收起弹框 | 
|         // if (i === 0) { | 
|             show1.value = false | 
|         // } | 
|         location.value = val.id | 
|         locationName.value = val.unionName | 
|         show2.value = true | 
|         // let sweepHw = await getBarcodeContent({ | 
|         //     barcode: hwCode.value | 
|         // }) | 
|         // if (sweepHw.code === 200) { | 
|         //     if (sweepHw.data.barcodeType === QRCodeType.HW) { | 
|         //         // show1.value = true | 
|         //         let hw = await getLocationInfo(sweepHw.data.id) | 
|         //         if (hw.code === 200) { | 
|         //             let judge: string = '' | 
|         //             info.value.wtransferWarehouseList.forEach((item: any) => { | 
|         //                 if (hw.data.warehouseId === item.warehouseId) { | 
|         //                     judge = '' | 
|         //                     outScanAppliances({ | 
|         //                         barCode: val.prefix + val.code, | 
|         //                         pId: info.value.wtransfer.id, | 
|         //                         type: 1, | 
|         //                         warehouseId: hw.data.warehouseId, | 
|         //                         locationId: hw.data.id | 
|         //                     }).then(sweepGz => { | 
|         //                         if (sweepGz.code === 200) { | 
|         //                             item.wtransferDetailList.forEach(async (item1: any) => { | 
|         //                                 if (sweepGz.data.materialId === item1.materialId && sweepGz.data.qualityType === item1.qualityType && sweepGz.data.procedureId === item1.procedureId && sweepGz.data.batch === item1.batch) { | 
|         //                                     judge = '' | 
|         //                                     let jsonBean = sweepGz.data | 
|         //                                     jsonBean.wtransferDetailId = item1.id | 
|         //                                     jsonBean.wtransferId = item1.transferId | 
|         //                                     jsonBean.appliancesId = sweepGz.data.id | 
|         //                                     jsonBean.warehouseId = item.warehouseId | 
|         //                                     jsonBean.warehouseName = item.warehouseName | 
|         //                                     jsonBean.locationId = hw.data.id | 
|         //                                     jsonBean.locationName = hw.data.unionName | 
|         //                                     let res = await wTransferForInOut({ | 
|         //                                         id: Number(route.query.id), | 
|         //                                         wTransferType: 1, | 
|         //                                         jsonBean: jsonBean, | 
|         //                                         optType: 1 | 
|         //                                     }) | 
|         //                                     if (res.code === 200) { | 
|         //                                         let open = await getInfo() | 
|         //                                         Toast.success({ message: '操作成功' }) | 
|         //                                         return | 
|         //                                     } else { | 
|         //                                         return | 
|         //                                     } | 
|         //                                     // }) | 
|         //                                 } else { | 
|         //                                     judge = 'wu' | 
|         //                                 } | 
|         //                             }) | 
|         //                         } else { | 
|         //                             return | 
|         //                         } | 
|         //                     }) | 
|         //                 } else { | 
|         //                     judge = 'ck' | 
|         //                 } | 
|         //             }) | 
|         //             if (judge === 'ck') { | 
|         //                 Toast.fail({ message: '仓库不一致' }) | 
|         //             } else if (judge === 'wu') { | 
|         //                 Toast.fail({ message: '未匹配到一致的数据' }) | 
|         //             } | 
|         //         } | 
|         //     } else { | 
|         //         Toast({ message: '请扫描正确的货位码' }) | 
|         //         return | 
|         //     } | 
|         // } | 
|         // show.value = false | 
|     } | 
|   | 
|     const onDecode1 = async (datas: string[]) => { | 
|         let arr: any = [] | 
|         if (info.value.wtransferRedisCodeBeanList.length !== 0) { | 
|             info.value.wtransferRedisCodeBeanList.forEach((element: any) => { | 
|                 arr.push(element.appliancesId) | 
|             }) | 
|             ids.value = arr.join(',') | 
|         } else { | 
|             ids.value = '' | 
|         } | 
|         hwCode.value = datas[0] | 
|         show1.value = true | 
|         openCode1.value = false | 
|     } | 
|   | 
|     // 打开手动选择工装弹框 | 
|     const openxz = () => { | 
|         // openCode1.value = true | 
|         getListByWarehouseId({ wareHouseId: warehouseId.value }) | 
|             .then(res => { | 
|                 if (res.code === 200) { | 
|                     if (res.data.length === 1) { | 
|                         location.value = res.data[0].id | 
|                         locationName.value = res.data[0].unionName | 
|                         show2.value = true | 
|                     } else { | 
|                         show1.value = true | 
|                     } | 
|                 } | 
|             }) | 
|          | 
|     } | 
|   | 
|     const closeBox = () => { | 
|         show1.value = false | 
|     } | 
|     const closeBox1 = () => { | 
|         show2.value = false | 
|     } | 
|   | 
|     // 获取详情 | 
|     const getInfo = async (): Promise<boolean> => { | 
|         if (type === QRCodeType.ZKD.toString()) { | 
|             console.log('转库单') | 
|             let res = await wTransferForInOut({ | 
|                 id: Number(route.query.id), | 
|                 wTransferType: 1 | 
|             }) | 
|             if (res.code === 200) { | 
|                 info.value = res.data | 
|                 warehouseId.value = res.data.wtransfer.inWarehouseId.toString() | 
|                 MateriaList.value = res.data.wtransferWarehouseList[0].wtransferDetailList | 
|                 return true | 
|             } else { | 
|                 Toast.fail({ message: res.message, forbidClick: false, duration: 2000 }) | 
|                 setTimeout(() => { | 
|                     router.go(-1) | 
|                 }, 2000) | 
|             } | 
|         } else if (type === QRCodeType.RKD.toString()) { | 
|             console.log('入库单') | 
|             let res = await wOutBoundForInOut({ | 
|                 id: Number(route.query.id), | 
|                 wOutboundType: 1 | 
|             }) | 
|             if (res.code === 200) { | 
|                 info.value = res.data | 
|                 return true | 
|             } else { | 
|                 Toast.fail({ message: res.message, forbidClick: false, duration: 2000 }) | 
|                 setTimeout(() => { | 
|                     router.go(-1) | 
|                 }, 2000) | 
|             } | 
|         } | 
|         return false | 
|     } | 
|   | 
|   | 
|     // 打开扫码 | 
|     const scanCode = (): void => { | 
|         if (type === QRCodeType.RKD.toString()){ | 
|             if (info.value.warehouse && info.value.warehouse.useLocation === 1) { | 
|                 smData.info = ['请扫描货位码', '请扫描工装码'] | 
|             } else if (info.value.warehouse && info.value.warehouse.useLocation === 0) { | 
|                 smData.info = ['请扫描工装码'] | 
|             } | 
|         } else { | 
|             smData.info = ['请扫描货位码', '请扫描工装码'] | 
|         } | 
|         openCode.value = true | 
|     } | 
|   | 
|     // 弹框打开扫码 | 
|     const JXSM = (): void => { | 
|         smData.info = ['请扫描工装码'] | 
|         openCode.value = true | 
|     } | 
|   | 
|     // 关闭扫码组件 | 
|     const closePopup = (): void => { | 
|         openCode.value = false | 
|     } | 
|   | 
|     // 关闭扫码组件 | 
|     const closePopup1 = (): void => { | 
|         openCode1.value = false | 
|     } | 
|   | 
|     // 提交入库 | 
|     const submit = () => { | 
|         if (type === QRCodeType.ZKD.toString()) { | 
|             if (seleMateriaList.value.length > 0) { | 
|                 let result = seleMateriaList.value.reduce((a: any, b: any) => { | 
|                     if (a[b.id]) { | 
|                         a[b.id].push(b); | 
|                     } else { | 
|                         a[b.id] = [b]; | 
|                     } | 
|                         return a; | 
|                 }, {}); | 
|                 for (let i = 0; i < info.value.wtransferWarehouseList[0].wtransferDetailList.length; i++) { | 
|                     for (let a in result) { | 
|                         if (info.value.wtransferWarehouseList[0].wtransferDetailList[i].id == a) { | 
|                             let total = 0 | 
|                             for (let b = 0; b < result[a].length; b++) { | 
|                                 total = Number(total) + Number(result[a][b].outActnum) | 
|                             } | 
|                             if (!total || total <= 0) { | 
|                                 return Toast.fail({ message: '入库数量不能小于0', forbidClick: true, duration: 2000 }) | 
|                             } | 
|                             if (total > info.value.wtransferWarehouseList[0].wtransferDetailList[i].outActnum) { | 
|                                 return Toast.fail({ message: '入库数量不能大于待入库数量', forbidClick: true, duration: 2000 }) | 
|                             } | 
|                         } | 
|                     } | 
|                 } | 
|                 let submitTransferInDetailDTOList: any = [] | 
|                 seleMateriaList.value.forEach((item: any) => { | 
|                     submitTransferInDetailDTOList.push({ | 
|                         inNum: item.outActnum, | 
|                         locationId: item.locationId, | 
|                         wtransferDetailId: item.id | 
|                     }) | 
|                 }) | 
|                 transferToInNew({ | 
|                     submitTransferInDetailDTOList, | 
|                     wtransferId: route.query.id | 
|                 }).then(res => { | 
|                     if (res.code === 200) { | 
|                         store.dispatch('getUpcomingNum') | 
|                         Toast.success({ message: '操作成功', forbidClick: true, duration: 2000 }) | 
|                         setTimeout(() => { | 
|                             if (route.query.Type == '4') {  // 跳转完工入库详情 | 
|                                 router.push({ name: 'completionDetails', query: { id: route.query.id, dbid: route.query.dbid, type: 7, isShow: 2 } }) | 
|                                 return | 
|                             } | 
|                             router.replace({ name: 'wTransferDetail', query: { id: route.query.id } }) | 
|                         }, 2000) | 
|                     } | 
|                 }) | 
|             } else { | 
|                 Toast.fail({ message: '转入物料不能为空', forbidClick: true, duration: 2000 }) | 
|             } | 
|             // wTransferForInOutUpload({ | 
|             //     id: info.value.wtransfer.id, | 
|             //     wTransferType: 1 | 
|             // }).then(res => { | 
|             //     if (res.code === 200) { | 
|             //         store.dispatch('getUpcomingNum') | 
|             //         Toast.success({ message: '操作成功', forbidClick: true, duration: 2000 }) | 
|             //         setTimeout(() => { | 
|             //             // router.go(-1) | 
|             //             if (route.query.Type == '4') {  // 跳转完工入库详情 | 
|             //                 router.push({ name: 'completionDetails', query: { id: route.query.id, dbid: route.query.dbid, type: 7, isShow: 2 } }) | 
|             //                 return | 
|             //             } | 
|             //             router.replace({ name: 'wTransferDetail', query: { id: route.query.id } }) | 
|             //         }, 2000) | 
|             //     } | 
|             // }) | 
|         } else if (type === QRCodeType.RKD.toString()) { | 
|             wOutBoundForUpload({ | 
|                 id: info.value.woutbound.id, | 
|                 wOutboundType: 1 | 
|             }).then(res => { | 
|                 if (res.code === 200) { | 
|                     store.dispatch('getUpcomingNum') | 
|                     Toast.success({ message: '操作成功', forbidClick: true, duration: 2000 }) | 
|                     setTimeout(() => { | 
|                         // router.go(-1) | 
|                         router.replace({ name: 'wInboundDetail', query: { id: route.query.id } }) | 
|                     }, 2000) | 
|                 } | 
|             }) | 
|         } | 
|     } | 
|   | 
|     // 删除操作 | 
|     const dele = (i: number) => { | 
|         if (type === QRCodeType.ZKD.toString()) { | 
|             seleMateriaList.value.forEach((item: any, index: number) => { | 
|                 if (i == index) { | 
|                     seleMateriaList.value.splice(index, 1) | 
|                 } | 
|             }) | 
|             // wTransferForInOut({ | 
|             //     id: Number(route.query.id), | 
|             //     wTransferType: 1, | 
|             //     optType: 2, | 
|             //     jsonBean: item | 
|             // }).then(res => { | 
|             //     if (res.code === 200) { | 
|             //         getInfo() | 
|             //     } | 
|             // }) | 
|         } else if (type === QRCodeType.RKD.toString()) { | 
|             wOutBoundForInOut({ | 
|                 id: Number(route.query.id), | 
|                 wOutboundType: 1, | 
|                 optType: 2, | 
|                 jsonBean: item | 
|             }).then(res => { | 
|                 if (res.code === 200) { | 
|                     getInfo() | 
|                 } | 
|             }) | 
|         } | 
|     } | 
|   | 
|     // 点击弹框保存 | 
|     const submitTK = () => { | 
|         itemData.value = {} | 
|         show.value = false | 
|     } | 
|   | 
|     // 获取扫码值 | 
|     const onDecode = async (datas: string[]): Promise<void> => { | 
|         await nextTick(() => { | 
|             openCode.value = false | 
|         }) | 
|         if (type == QRCodeType.RKD.toString()) {   // 入库单 | 
|             if (info.value.warehouse.useLocation === 0) {   // 禁用货位 | 
|                 let type = await getBarcodeContent({ | 
|                     barcode: datas[0] | 
|                 }) | 
|                 if (type.code === 200) { | 
|                     if (type.data.barcodeType === QRCodeType.GZ) { | 
|                         let gz = await getListByCondition({ id: type.data.id }) | 
|                         if (gz.code === 200) { | 
|                             let open: boolean = false | 
|                             let jsonBean: any = {} | 
|                             jsonBean.woutboundId = Number(route.query.id) | 
|                             jsonBean.appliancesId = gz.data[0].id | 
|                             jsonBean.scanCode = datas[0] | 
|                             jsonBean.warehouseId = info.value.warehouse.id | 
|                             jsonBean.warehouseName = info.value.warehouse.name | 
|                             jsonBean.materialId = gz.data[0].materialId | 
|                             jsonBean.materialCode = gz.data[0].mmodelCode | 
|                             jsonBean.materialName = gz.data[0].mmodelName | 
|                             for(let i = 0; i < info.value.woutboundDetailsWait.length; i++) { | 
|                                 // 判断批次号和物料id工序是否一致 | 
|                                 if (info.value.woutboundDetailsWait[i].batch === gz.data[0].batch && info.value.woutboundDetailsWait[i].materialId === gz.data[0].materialId && info.value.woutboundDetailsWait[i].procedureId === gz.data[0].procedureId) { | 
|                                     open = true | 
|                                     jsonBean.woutboundDetailId = info.value.woutboundDetailsWait[i].id | 
|                                     jsonBean.unitid = info.value.woutboundDetailsWait[i].unitId | 
|                                     jsonBean.unitName = info.value.woutboundDetailsWait[i].unitName | 
|                                     jsonBean.batch = info.value.woutboundDetailsWait[i].batch | 
|                                     jsonBean.num = info.value.woutboundDetailsWait[i].num | 
|                                     jsonBean.procedureId = info.value.woutboundDetailsWait[i].procedureId | 
|                                     jsonBean.procedureName = info.value.woutboundDetailsWait[i].pmodelName | 
|                                     jsonBean.qualityType = info.value.woutboundDetailsWait[i].qualityType | 
|                                     let submit = await wOutBoundForInOut({ | 
|                                         id: Number(route.query.id), | 
|                                         wOutboundType: 1, | 
|                                         jsonBean: jsonBean, | 
|                                         optType: 1 | 
|                                     }) | 
|                                     if (submit.code === 200) { | 
|                                         console.log(submit) | 
|                                         getInfo() | 
|                                     } | 
|                                 } | 
|                             } | 
|                             if (!open) { | 
|                                 Toast.fail({ message: '数据不一致' }) | 
|                             } | 
|                         } | 
|                     } else { | 
|                         Toast.fail({ message: '请扫描正确的工装码' }) | 
|                     } | 
|                 } | 
|                 return | 
|             } | 
|             if (smData.info.length === 1) {     // 弹框里的继续扫码 | 
|                 let res = await outScanAppliances({ | 
|                     barCode: datas.join(' '), | 
|                     pId: info.value.woutbound.id, | 
|                     type: 3, | 
|                     warehouseId: itemData.value.ckid, | 
|                     locationId: itemData.value.locationId | 
|                 }) | 
|                 if (res.code === 200) { | 
|                     let judge: string = '' | 
|                     if (itemData.value.materialId === res.data.materialId) { | 
|                         judge = '' | 
|                         info.value.woutboundDetailsWait.forEach((item: any) => { | 
|                             if (itemData.value.materialId === item.materialId && res.data.qualityType == item.qualityType && res.data.procedureId == item.procedureId && res.data.batch == item.batch) { | 
|                                 judge = '' | 
|                                 let jsonBean = res.data | 
|                                 jsonBean.woutboundDetailId = item.id | 
|                                 jsonBean.woutboundId = item.outboundId | 
|                                 jsonBean.wtransferDetailId = item.id | 
|                                 jsonBean.wtransferId = item.transferId | 
|                                 jsonBean.appliancesId = res.data.id | 
|                                 jsonBean.warehouseId = info.value.woutbound.warehouseId | 
|                                 jsonBean.warehouseName = info.value.woutbound.warehouseName | 
|                                 jsonBean.locationId = itemData.value.locationId | 
|                                 jsonBean.locationName = itemData.value.locationName | 
|                                 wOutBoundForInOut({ | 
|                                     id: Number(route.query.id), | 
|                                     wOutboundType: 1, | 
|                                     jsonBean: jsonBean, | 
|                                     optType: 1 | 
|                                 }).then(async (resa) => { | 
|                                     if (resa.code === 200) { | 
|                                         let open = await getInfo() | 
|                                         if (open) { | 
|                                             info.value.woScanMaterialBeanList.forEach((yitem: any) => { | 
|                                                 if (yitem.locationId === itemData.value.locationId) { | 
|                                                     itemData.value = yitem | 
|                                                     itemData.value.ckmc = info.value.woutbound.warehouseName | 
|                                                     itemData.value.ckid = info.value.woutbound.warehouseId | 
|                                                     itemData.value.wtransferDetailId = item.id | 
|                                                     itemData.value.wtransferId = item.id | 
|                                                     itemData.value.wtransferId = item.transferId | 
|                                                     itemData.value.appliancesId = res.data.id | 
|                                                     itemData.value.total = item.num | 
|                                                     console.log('itemData', itemData.value) | 
|                                                 } | 
|                                             }) | 
|                                         } | 
|                                     } else { | 
|                                         return | 
|                                     } | 
|                                 }) | 
|                             } else { | 
|                                 judge = 'wu' | 
|                             } | 
|                         }) | 
|                     } else { | 
|                         judge = 'ck' | 
|                     } | 
|                     if (judge === 'ck') { | 
|                         Toast.fail({ message: '仓库不一致' }) | 
|                     } else if (judge === 'wu') { | 
|                         Toast.fail({ message: '未匹配到一致的数据' }) | 
|                     } | 
|                 } | 
|             } else if (smData.info.length === 2) {     // 页面上的继续扫码 | 
|                 // 货位操作 | 
|                 let sweepHw = await getBarcodeContent({ | 
|                     barcode: datas[0] | 
|                 }) | 
|                 if (sweepHw.code === 200) { | 
|                     if (sweepHw.data.barcodeType === QRCodeType.HW) { | 
|                         let hw = await getLocationInfo(sweepHw.data.id) | 
|                         if (hw.code === 200) { | 
|                             let judge: string = '' | 
|                             if (info.value.woutbound.warehouseId === hw.data.warehouseId) { | 
|                                 judge = '' | 
|                                 for (let i = 0; i < info.value.woutboundDetailsWait.length; i++) { | 
|                                     if (info.value.woutboundDetailsWait[i].locationId ? info.value.woutboundDetailsWait[i].locationId === hw.data.id : true) { | 
|                                         judge = '' | 
|                                         let sweepGz = await outScanAppliances({ | 
|                                             barCode: datas[1], | 
|                                             pId: info.value.woutbound.id, | 
|                                             type: 3, | 
|                                             warehouseId: hw.data.warehouseId, | 
|                                             locationId: hw.data.id | 
|                                         }) | 
|                                         if (sweepGz.code === 200) { | 
|                                             for (let i = 0; i < info.value.woutboundDetailsWait.length; i++) { | 
|                                                 // sweepGz.data.procedureId == info.value.woutboundDetailsWait[i].procedureId && | 
|                                                 if (info.value.woutboundDetailsWait[i].materialId === sweepGz.data.materialId && sweepGz.data.qualityType == info.value.woutboundDetailsWait[i].qualityType && sweepGz.data.batch == info.value.woutboundDetailsWait[i].batch) { | 
|                                                     judge = '' | 
|                                                     let jsonBean = sweepGz.data | 
|                                                     jsonBean.woutboundDetailId = info.value.woutboundDetailsWait[i].id | 
|                                                     jsonBean.woutboundId = info.value.woutboundDetailsWait[i].outboundId | 
|                                                     jsonBean.appliancesId = sweepGz.data.id | 
|                                                     jsonBean.locationId = hw.data.id | 
|                                                     jsonBean.warehouseId = info.value.woutbound.warehouseId | 
|                                                     jsonBean.warehouseName = info.value.woutbound.warehouseName | 
|                                                     jsonBean.locationName = hw.data.unionName | 
|                                                     console.log(jsonBean) | 
|                                                     let tj = await wOutBoundForInOut({ | 
|                                                         id: Number(route.query.id), | 
|                                                         wOutboundType: 1, | 
|                                                         jsonBean: jsonBean, | 
|                                                         optType: 1 | 
|                                                     }) | 
|                                                     if (tj.code === 200) { | 
|                                                         let open = await getInfo() | 
|                                                         if (open) { | 
|                                                             info.value.woScanMaterialBeanList.forEach((yitem1: any) => { | 
|                                                                 if (yitem1.locationId === hw.data.id) { | 
|                                                                     itemData.value = yitem1 | 
|                                                                     itemData.value.ckmc = info.value.woutbound.warehouseName | 
|                                                                     itemData.value.ckid = info.value.woutbound.warehouseId | 
|                                                                     itemData.value.wtransferDetailId = info.value.woutboundDetailsWait[i].id | 
|                                                                     itemData.value.wtransferId = info.value.woutboundDetailsWait[i].id | 
|                                                                     itemData.value.wtransferId = info.value.woutboundDetailsWait[i].transferId | 
|                                                                     itemData.value.appliancesId = sweepGz.data.id | 
|                                                                     itemData.value.total = info.value.woutboundDetailsWait[i].num | 
|                                                                     console.log('itemData', itemData.value) | 
|                                                                     nextTick(() => { | 
|                                                                         show.value = true | 
|                                                                     }) | 
|                                                                 } | 
|                                                             }) | 
|                                                             await nextTick(() => { | 
|                                                                 show.value = true | 
|                                                             }) | 
|                                                             return | 
|                                                         } | 
|                                                     } else { | 
|                                                         Toast({ message: tj.message }) | 
|                                                         return | 
|                                                     } | 
|                                                 } else { | 
|                                                     judge = 'wu' | 
|                                                 } | 
|                                             } | 
|                                         } else { | 
|                                             Toast({ message: sweepGz.message }) | 
|                                             return | 
|                                         } | 
|                                     } else { | 
|                                         judge = 'wu' | 
|                                     } | 
|                                 } | 
|                             } else { | 
|                                 judge = 'ck' | 
|                             } | 
|                             if (judge === 'ck') { | 
|                                 Toast.fail({ message: '仓库不一致' }) | 
|                             } else if (judge === 'wu') { | 
|                                 Toast.fail({ message: '未匹配到一致的数据' }) | 
|                             } | 
|                         } | 
|                     } else { | 
|                         Toast({ message: '请扫描正确的货位码' }) | 
|                         return | 
|                     } | 
|                 } else { | 
|                     Toast({ message: sweepHw.message }) | 
|                     return | 
|                 } | 
|             } | 
|         } else if (type == QRCodeType.ZKD.toString()) {   // 转库单 | 
|             if (smData.info.length === 1) {     // 弹框里的继续扫码 | 
|                 let res = await outScanAppliances({ | 
|                     barCode: datas.join(' '), | 
|                     pId: info.value.wtransfer.id, | 
|                     type: 1, | 
|                     warehouseId: itemData.value.ckid, | 
|                     locationId: itemData.value.locationId | 
|                 }) | 
|                 if (res.code === 200) { | 
|                     if (itemData.value.materialId === res.data.materialId) { | 
|                         let judge: string = '' | 
|                         info.value.wtransferWarehouseList.forEach((item: any) => { | 
|                             if (itemData.value.ckid === item.warehouseId) {  // 判断仓库是否一致 | 
|                                 judge = '' | 
|                                 item.wtransferDetailList.forEach((item1: any) => { | 
|                                     if (itemData.value.materialId === item1.materialId && res.data.qualityType == item1.qualityType && res.data.procedureId == item1.procedureId && res.data.batch === item1.batch) {     // 物料一致 | 
|                                         judge = '' | 
|                                         let jsonBean = res.data | 
|                                         jsonBean.wtransferDetailId = item1.id | 
|                                         jsonBean.wtransferId = item1.transferId | 
|                                         jsonBean.appliancesId = res.data.id | 
|                                         jsonBean.warehouseId = item.warehouseId | 
|                                         jsonBean.warehouseName = item.warehouseName | 
|                                         jsonBean.locationId = itemData.value.locationId | 
|                                         jsonBean.locationName = itemData.value.locationName | 
|                                         wTransferForInOut({ | 
|                                             id: Number(route.query.id), | 
|                                             wTransferType: 1, | 
|                                             jsonBean: jsonBean, | 
|                                             optType: 1 | 
|                                         }).then(async (resa) => { | 
|                                             if (resa.code === 200) { | 
|                                                 let open = await getInfo() | 
|                                                 if (open) { | 
|                                                     info.value.wtransferWarehouseList.forEach((yitem: any) => { | 
|                                                         if (yitem.warehouseId === item.warehouseId) { | 
|                                                             yitem.wtScanMaterialBeanList.forEach((yitem1: any) => { | 
|                                                                 if (yitem1.locationId === itemData.value.locationId) { | 
|                                                                     itemData.value = yitem1 | 
|                                                                     itemData.value.ckmc = item.warehouseName | 
|                                                                     itemData.value.ckid = item.warehouseId | 
|                                                                     itemData.value.wtransferDetailId = item1.id | 
|                                                                     itemData.value.wtransferId = item1.id | 
|                                                                     itemData.value.wtransferId = item1.transferId | 
|                                                                     itemData.value.appliancesId = res.data.id | 
|                                                                     itemData.value.total = item1.outPlannum | 
|                                                                 } | 
|                                                             }) | 
|                                                         } | 
|                                                     }) | 
|                                                     return | 
|                                                 } | 
|                                             } else { | 
|                                                 return | 
|                                             } | 
|                                         }) | 
|                                     } else { | 
|                                         judge = 'wu' | 
|                                     } | 
|                                 }) | 
|                             } else { | 
|                                 judge = 'ck' | 
|                             } | 
|                         }) | 
|                         if (judge === 'ck') { | 
|                             Toast.fail({ message: '仓库不一致' }) | 
|                         } else if (judge === 'wu') { | 
|                             Toast.fail({ message: '未匹配到一致的数据' }) | 
|                         } | 
|                     } else { | 
|                         Toast.fail({ message: '物料不一致' }) | 
|                     } | 
|                 } | 
|             } else if (smData.info.length === 2) {     // 页面上的继续扫码 | 
|                 // 货位操作 | 
|                 let sweepHw = await getBarcodeContent({ | 
|                     barcode: datas[0] | 
|                 }) | 
|                 if (sweepHw.code === 200) { | 
|                     if (sweepHw.data.barcodeType === QRCodeType.HW) { | 
|                         let hw = await getLocationInfo(sweepHw.data.id) | 
|                         if (hw.code === 200) { | 
|                             let judge: string = '' | 
|                             info.value.wtransferWarehouseList.forEach((item: any) => { | 
|                                 console.log(hw.data.warehouseId, item.warehouseId) | 
|                                 if (hw.data.warehouseId === item.warehouseId) { | 
|                                     judge = '' | 
|                                     outScanAppliances({ | 
|                                         barCode: datas[1], | 
|                                         pId: info.value.wtransfer.id, | 
|                                         type: 1, | 
|                                         warehouseId: hw.data.warehouseId, | 
|                                         locationId: hw.data.id | 
|                                     }).then(sweepGz => { | 
|                                         if (sweepGz.code === 200) { | 
|                                             item.wtransferDetailList.forEach(async (item1: any) => { | 
|                                                 if (sweepGz.data.materialId === item1.materialId && sweepGz.data.qualityType === item1.qualityType && sweepGz.data.procedureId === item1.procedureId && sweepGz.data.batch === item1.batch) { | 
|                                                     judge = '' | 
|                                                     let jsonBean = sweepGz.data | 
|                                                     jsonBean.wtransferDetailId = item1.id | 
|                                                     jsonBean.wtransferId = item1.transferId | 
|                                                     jsonBean.appliancesId = sweepGz.data.id | 
|                                                     jsonBean.warehouseId = item.warehouseId | 
|                                                     jsonBean.warehouseName = item.warehouseName | 
|                                                     jsonBean.locationId = hw.data.id | 
|                                                     jsonBean.locationName = hw.data.unionName | 
|                                                     let res = await wTransferForInOut({ | 
|                                                         id: Number(route.query.id), | 
|                                                         wTransferType: 1, | 
|                                                         jsonBean: jsonBean, | 
|                                                         optType: 1 | 
|                                                     }) | 
|                                                     if (res.code === 200) { | 
|                                                         let open = await getInfo() | 
|                                                         if (open) { | 
|                                                             info.value.wtransferWarehouseList.forEach((yitem: any) => { | 
|                                                                 if (yitem.warehouseId === item.warehouseId) { | 
|                                                                     yitem.wtScanMaterialBeanList.forEach((yitem1: any) => { | 
|                                                                         if (yitem1.locationId === hw.data.id) { | 
|                                                                             itemData.value = yitem1 | 
|                                                                             itemData.value.ckmc = item.warehouseName | 
|                                                                             itemData.value.ckid = item.warehouseId | 
|                                                                             itemData.value.wtransferDetailId = item1.id | 
|                                                                             itemData.value.wtransferId = item1.id | 
|                                                                             itemData.value.wtransferId = item1.transferId | 
|                                                                             itemData.value.appliancesId = sweepGz.data.id | 
|                                                                             itemData.value.total = item1.outPlannum | 
|                                                                             console.log('itemData', itemData.value) | 
|                                                                             nextTick(() => { | 
|                                                                                 show.value = true | 
|                                                                             }) | 
|                                                                         } | 
|                                                                     }) | 
|                                                                 } | 
|                                                             }) | 
|                                                             return | 
|                                                         } | 
|                                                     } else { | 
|                                                         return | 
|                                                     } | 
|                                                     // }) | 
|                                                 } else { | 
|                                                     judge = 'wu' | 
|                                                 } | 
|                                             }) | 
|                                         } else { | 
|                                             return | 
|                                         } | 
|                                     }) | 
|                                 } else { | 
|                                     judge = 'ck' | 
|                                 } | 
|                             }) | 
|                             if (judge === 'ck') { | 
|                                 Toast.fail({ message: '仓库不一致' }) | 
|                             } else if (judge === 'wu') { | 
|                                 Toast.fail({ message: '未匹配到一致的数据' }) | 
|                             } | 
|                         } | 
|                     } else { | 
|                         Toast({ message: '请扫描正确的货位码' }) | 
|                         return | 
|                     } | 
|                 } | 
|             } | 
|         } | 
|     } | 
|   | 
|     // 获取待办详情(判断当前待办是否已处理) | 
|     const getDBs = async (id: string): Promise<any> => { | 
|         let res = await getDB(id) | 
|         if (res.code === 200) { | 
|             if (res.data.status === 1) { | 
|                 if (type === '7') { | 
|                     await router.replace({ name: 'wTransferDetail', query: { id: route.query.id } }) | 
|                 } else if (type === '9') { | 
|                     await router.replace({ name: 'wInboundDetail', query: { id: route.query.id } }) | 
|                 } | 
|             } else { | 
|                 await getInfo() | 
|             } | 
|         } | 
|     } | 
|   | 
|     // 监听弹框 | 
|     watch(() => show.value, (news) => { | 
|         if (!news) { | 
|             smData.wz = [] | 
|             smData.item = [] | 
|         } | 
|     }, { immediate: true }) | 
|   | 
|     onMounted(() => { | 
|         if (route.query.dbid) { | 
|             getDBs(route.query.dbid as string) | 
|         } else { | 
|             getInfo() | 
|         } | 
|     }) | 
| </script> | 
|   | 
| <style lang="scss" scoped> | 
|     .page { | 
|         width: 100%; | 
|         height: 100%; | 
|         position: absolute; | 
|         background: #F7F7F7; | 
|         .page_info { | 
|             padding: 30px; | 
|             background: #ffffff; | 
|             .page_info_title { | 
|                 font-size: 32px; | 
|                 font-weight: 500; | 
|                 color: #4275FC; | 
|             } | 
|             .page_info_list { | 
|                 display: flex; | 
|                 flex-wrap: wrap; | 
|                 margin: 30px 0 0 0; | 
|                 .page_info_list_items { | 
|                     width: 100%; | 
|                     display: flex; | 
|                     margin-top: 24px; | 
|                     .page_info_list_item_label { | 
|                         flex-shrink: 0; | 
|                         font-size: 26px; | 
|                         font-weight: 400; | 
|                         color: #666666; | 
|                     } | 
|                     .page_info_list_item_nr { | 
|                         flex: 1; | 
|                         font-size: 26px; | 
|                         font-weight: 400; | 
|                         color: #222222; | 
|                     } | 
|                 } | 
|                 .page_info_list_item { | 
|                     width: 100%; | 
|                     display: flex; | 
|                     margin-top: 24px; | 
|                     &:nth-child(1) { | 
|                         margin-top: 0; | 
|                     } | 
|                     .page_info_list_item_label { | 
|                         flex-shrink: 0; | 
|                         font-size: 26px; | 
|                         font-weight: 400; | 
|                         color: #666666; | 
|                     } | 
|                     .page_info_list_item_nr { | 
|                         flex: 1; | 
|                         font-size: 26px; | 
|                         font-weight: 400; | 
|                         color: #222222; | 
|                     } | 
|                 } | 
|             } | 
|             .page_info_bz { | 
|                 padding: 24px; | 
|                 background: #F7F7F7; | 
|                 .page_info_bz_title { | 
|                     font-size: 26px; | 
|                     font-weight: 500; | 
|                     color: #222222; | 
|                     margin-bottom: 20px; | 
|                 } | 
|                 .page_info_bz_nr { | 
|                     font-size: 24px; | 
|                     font-weight: 400; | 
|                     color: #333333; | 
|                 } | 
|             } | 
|         } | 
|         .page_h { | 
|             height: 20px; | 
|         } | 
|         .switch { | 
|             padding: 0 30px; | 
|             button { | 
|                 width: 100%; | 
|                 border: none; | 
|                 height: 76px; | 
|                 background: $nav-color; | 
|                 border-radius: 36px; | 
|                 font-size: 26px; | 
|                 font-weight: 400; | 
|                 color: #FFFFFF; | 
|             } | 
|         } | 
|         .page_sfq { | 
|             font-size: 32px; | 
|             font-weight: 500; | 
|             color: #222222; | 
|             display: flex; | 
|             align-items: center; | 
|             img { | 
|                 width: 36px; | 
|                 height: 36px; | 
|                 margin-right: 16px; | 
|             } | 
|         } | 
|         .page_dck { | 
|             .page_dck_title { | 
|                 display: flex; | 
|                 align-items: center; | 
|                 .page_dck_title_x { | 
|                     width: 8px; | 
|                     height: 30px; | 
|                     background: #4275FC; | 
|                     border-radius: 2px; | 
|                     margin-right: 16px; | 
|                 } | 
|                 span { | 
|                     font-size: 32px; | 
|                     font-weight: 500; | 
|                     color: #222222; | 
|                 } | 
|             } | 
|         } | 
|         .page_content { | 
|             margin-top: 36px; | 
|             .page_content_title { | 
|                 display: flex; | 
|                 flex-direction: column; | 
|                 margin-bottom: 10px; | 
|                 .page_content_title_top { | 
|                     display: flex; | 
|                     align-items: center; | 
|                     justify-content: space-between; | 
|                     span { | 
|                         &:nth-child(1) { | 
|                             font-size: 30px; | 
|                             font-weight: 500; | 
|                             color: #222222; | 
|                         } | 
|                         &:nth-child(2) { | 
|                             flex-shrink: 0; | 
|                             font-size: 24px; | 
|                             font-weight: 400; | 
|                             color: #333333; | 
|                             span { | 
|                                 font-size: 24px; | 
|                                 color: $nav-color; | 
|                             } | 
|                         } | 
|                     } | 
|                 } | 
|                 .page_content_title_bottom { | 
|                     .green { | 
|                         color: $nav-stateColor7 !important; | 
|                         .black { | 
|                             color: black !important; | 
|                         } | 
|                     } | 
|                     .warning { | 
|                         color: $nav-stateColor5 !important; | 
|                         .black { | 
|                             color: black !important; | 
|                         } | 
|                     } | 
|                     .error { | 
|                         color: $nav-stateColor4 !important; | 
|                         .black { | 
|                             color: black !important; | 
|                         } | 
|                     } | 
|                     span { | 
|                         font-size: 24px; | 
|                         font-weight: 400; | 
|                         color: #666666; | 
|                     } | 
|                 } | 
|             } | 
|             .lineBorder { | 
|                 border: none !important; | 
|                 padding-bottom: 0 !important; | 
|                 margin-bottom: 24px; | 
|             } | 
|             .page_content_list { | 
|                 width: 100%; | 
|                 display: flex; | 
|                 align-items: center; | 
|                 flex-wrap: wrap; | 
|                 &:first-child { | 
|                     margin: 0; | 
|                 } | 
|                 &:last-child { | 
|                     border: none; | 
|                 } | 
|                 .page_content_list_nums { | 
|                     width: 30%; | 
|                     display: flex; | 
|                     .page_content_list_num_label { | 
|                         font-size: 26px; | 
|                         font-weight: 400; | 
|                         color: #666666; | 
|                     } | 
|                     .page_content_list_num_nr { | 
|                         font-size: 26px; | 
|                         font-weight: 400; | 
|                         color: #222222; | 
|                     } | 
|                 } | 
|                 .page_content_list_num { | 
|                     width: 70%; | 
|                     display: flex; | 
|                     .page_content_list_num_label { | 
|                         font-size: 26px; | 
|                         font-weight: 400; | 
|                         color: #666666; | 
|                     } | 
|                     .page_content_list_num_nr { | 
|                         font-size: 26px; | 
|                         font-weight: 400; | 
|                         color: #222222; | 
|                     } | 
|                 } | 
|                 .page_content_list_items { | 
|                     width: 30%; | 
|                     display: flex; | 
|                     margin-top: 24px; | 
|                     .page_content_list_item_label { | 
|                         font-size: 26px; | 
|                         font-weight: 400; | 
|                         color: #666666; | 
|                         flex-shrink: 0; | 
|                     } | 
|                     .page_content_list_item_nr { | 
|                         font-size: 26px; | 
|                         font-weight: 400; | 
|                         color: #222222; | 
|                     } | 
|                 } | 
|                 .page_content_list_item { | 
|                     width: 70%; | 
|                     display: flex; | 
|                     .page_content_list_item_label { | 
|                         font-size: 26px; | 
|                         font-weight: 400; | 
|                         color: #666666; | 
|                         flex-shrink: 0; | 
|                     } | 
|                     .page_content_list_item_nr { | 
|                         font-size: 26px; | 
|                         font-weight: 400; | 
|                         color: #222222; | 
|                     } | 
|                 } | 
|             } | 
|         } | 
|         .page_yxwl { | 
|             padding: 30px; | 
|             background: #ffffff; | 
|             .page_yxwl_title { | 
|                 display: flex; | 
|                 align-items: center; | 
|                 justify-content: space-between; | 
|                 .page_yxwl_title_x { | 
|                     width: 8px; | 
|                     height: 30px; | 
|                     background: #4275FC; | 
|                     border-radius: 2px; | 
|                     margin-right: 16px; | 
|                 } | 
|                 span { | 
|                     font-size: 32px; | 
|                     font-weight: 500; | 
|                     color: #222222; | 
|                 } | 
|                 .left { | 
|                     display: flex; | 
|                     align-items: center; | 
|                     .page_yxwl_title_x { | 
|                         width: 8px; | 
|                         height: 30px; | 
|                         background: #4275FC; | 
|                         border-radius: 2px; | 
|                         margin-right: 16px; | 
|                     } | 
|                     span { | 
|                         font-size: 32px; | 
|                         font-weight: 500; | 
|                         color: #222222; | 
|                     } | 
|                 } | 
|                 .right { | 
|                     display: flex; | 
|                     align-items: center; | 
|                     img { | 
|                         width: 28px; | 
|                         height: 28px; | 
|                         margin-right: 14px; | 
|                     } | 
|                     span { | 
|                         font-size: 26px; | 
|                         font-weight: 400; | 
|                         color: #222222; | 
|                     } | 
|                 } | 
|             } | 
|             .page_yxwl_list { | 
|                 display: flex; | 
|                 flex-direction: column; | 
|                 padding-bottom: 30px; | 
|                 border-bottom: 1px solid #ececec; | 
|                 &:last-child { | 
|                     margin-bottom: 0; | 
|                     border: none; | 
|                 } | 
|                 .page_yxwl_list_item { | 
|                     margin-top: 28px; | 
|                     .page_yxwl_list_item_top { | 
|                         display: flex; | 
|                         align-items: center; | 
|                         justify-content: space-between; | 
|                         .page_yxwl_list_item_top_left { | 
|                             font-size: 30px; | 
|                             font-weight: 500; | 
|                             color: #222222; | 
|                         } | 
|                     } | 
|                     .page_yxwl_list_item_sx { | 
|                         display: flex; | 
|                         align-items: center; | 
|                         margin-top: 15px; | 
|                     } | 
|                     .page_yxwl_list_item_num { | 
|                         display: flex; | 
|                         flex-direction: column; | 
|                         // margin-top: 30px; | 
|                         &:first-child { | 
|                             margin-top: 0; | 
|                         } | 
|                         .dis { | 
|                             display: flex; | 
|                         } | 
|                         .itemy { | 
|                             margin-top: 20px; | 
|                             width: 100%; | 
|                             display: flex; | 
|                             align-items: center; | 
|                             position: relative; | 
|                             .itemy_item { | 
|                                 flex: 1; | 
|                                 display: flex; | 
|                                 align-items: center; | 
|                                 .label { | 
|                                     font-size: 26px; | 
|                                     font-weight: 400; | 
|                                     color: #666666; | 
|                                     flex-shrink: 0; | 
|                                 } | 
|                                 .nr { | 
|                                     font-size: 26px; | 
|                                     font-weight: 400; | 
|                                     color: #222222; | 
|                                     input { | 
|                                         width: 100px; | 
|                                         height: 35px; | 
|                                         border-radius: 8px; | 
|                                         border: 1PX solid #E5E5E5; | 
|                                         margin-right: 10px; | 
|                                         margin-left: 5px; | 
|                                     } | 
|                                     span { | 
|                                         font-size: 26px; | 
|                                         font-weight: 400; | 
|                                         color: #222222; | 
|                                     } | 
|                                 } | 
|                             } | 
|                             .dele { | 
|                                 position: absolute; | 
|                                 right: -30px; | 
|                                 width: 48px; | 
|                                 height: 48px; | 
|                                 img { | 
|                                     width: 100%; | 
|                                     height: 100%; | 
|                                 } | 
|                             } | 
|                         } | 
|                         .items { | 
|                             width: 50%; | 
|                             display: flex; | 
|                             align-items: center; | 
|                             .label { | 
|                                 font-size: 26px; | 
|                                 font-weight: 400; | 
|                                 color: #666666; | 
|                                 flex-shrink: 0; | 
|                             } | 
|                             .nr { | 
|                                 font-size: 26px; | 
|                                 font-weight: 400; | 
|                                 color: #222222; | 
|                                 input { | 
|                                     width: 100px; | 
|                                     height: 40px; | 
|                                     margin-right: 10px; | 
|                                 } | 
|                                 span { | 
|                                     font-size: 26px; | 
|                                     font-weight: 400; | 
|                                     color: #222222; | 
|                                 } | 
|                             } | 
|                         } | 
|                         .item { | 
|                             width: 70%; | 
|                             display: flex; | 
|                             align-items: center; | 
|                             .label { | 
|                                 font-size: 26px; | 
|                                 font-weight: 400; | 
|                                 color: #666666; | 
|                                 flex-shrink: 0; | 
|                             } | 
|                             .nr { | 
|                                 font-size: 26px; | 
|                                 font-weight: 400; | 
|                                 color: #222222; | 
|                                 input { | 
|                                     width: 100px; | 
|                                     height: 40px; | 
|                                     margin-right: 10px; | 
|                                 } | 
|                                 span { | 
|                                     font-size: 26px; | 
|                                     font-weight: 400; | 
|                                     color: #222222; | 
|                                 } | 
|                             } | 
|                         } | 
|                     } | 
|                 } | 
|             } | 
|             .page_yxwl_kong { | 
|                 padding: 50px 0; | 
|                 font-size: 25px; | 
|                 display: flex; | 
|                 align-items: center; | 
|                 justify-content: center; | 
|             } | 
|         } | 
|         .page_zw { | 
|             height: 160px; | 
|         } | 
|         .page_footer { | 
|             width: calc(100% - 60px); | 
|             background: #F7F7F7; | 
|             display: flex; | 
|             align-items: center; | 
|             justify-content: space-between; | 
|             position: fixed; | 
|             bottom: 0; | 
|             left: 30px; | 
|             padding-bottom: 68px; | 
|             .page_footer_qr { | 
|                 flex: 1; | 
|                 height: 88px; | 
|                 background: #fff; | 
|                 box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.08); | 
|                 border-radius: 8px; | 
|                 font-size: 32px; | 
|                 font-weight: 500; | 
|                 color: $nav-color; | 
|                 display: flex; | 
|                 align-items: center; | 
|                 justify-content: center; | 
|                 img { | 
|                     width: 30px; | 
|                     height: 30px; | 
|                     margin-right: 12px; | 
|                 } | 
|             } | 
|             .page_footer_ck { | 
|                 flex: 1; | 
|                 height: 88px; | 
|                 background: $nav-color; | 
|                 box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.08); | 
|                 border-radius: 8px; | 
|                 font-size: 32px; | 
|                 font-weight: 500; | 
|                 color: #FFFFFF; | 
|                 display: flex; | 
|                 align-items: center; | 
|                 justify-content: center; | 
|             } | 
|         } | 
|         .smrk { | 
|             width: 100%; | 
|             .smrk_header { | 
|                 width: 100%; | 
|                 height: 90px; | 
|                 text-align: center; | 
|                 line-height: 90px; | 
|                 font-size: 30px; | 
|                 font-weight: 500; | 
|                 color: #222222; | 
|             } | 
|             .smrk_content { | 
|                 padding: 30px; | 
|                 .smrk_content_sx { | 
|                     margin-bottom: 30px; | 
|                     span { | 
|                         color: #999999; | 
|                     } | 
|                 } | 
|                 .smrk_content_name { | 
|                     display: flex; | 
|                     align-items: center; | 
|                     justify-content: space-between; | 
|                     margin-bottom: 10px; | 
|                     span { | 
|                         &:first-child { | 
|                             font-size: 28px; | 
|                             font-weight: 400; | 
|                             color: #333333; | 
|                         } | 
|                         &:last-child { | 
|                             font-size: 28px; | 
|                             font-weight: 500; | 
|                             color: $nav-color; | 
|                             flex-shrink: 0; | 
|                         } | 
|                     } | 
|                 } | 
|                 .smrk_content_gz { | 
|                     min-height: 600px; | 
|                     overflow-y: scroll; | 
|                     .smrk_content_gz_item { | 
|                         margin-bottom: 30px; | 
|                         span { | 
|                             &:first-child { | 
|                                 font-size: 24px; | 
|                                 font-weight: 400; | 
|                                 color: #777777; | 
|                             } | 
|                             &:last-child { | 
|                                 font-size: 24px; | 
|                                 font-weight: 400; | 
|                                 color: #333333; | 
|                             } | 
|                         } | 
|                     } | 
|                 } | 
|             } | 
|             .smrk_footer { | 
|                 position: fixed; | 
|                 bottom: 0; | 
|                 width: 100%; | 
|                 padding: 0 30px 66px 30px; | 
|                 box-sizing: border-box; | 
|                 display: flex; | 
|                 align-items: center; | 
|                 justify-content: space-between; | 
|                 .smrk_footer_jx { | 
|                     width: 334px; | 
|                     height: 88px; | 
|                     background: #FFFFFF; | 
|                     box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.08); | 
|                     border-radius: 8px; | 
|                     font-size: 30px; | 
|                     font-weight: 500; | 
|                     color: $nav-color; | 
|                     display: flex; | 
|                     align-items: center; | 
|                     justify-content: center; | 
|                 } | 
|                 .smrk_footer_bc { | 
|                     width: 334px; | 
|                     height: 88px; | 
|                     background: #4275FC; | 
|                     box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.08); | 
|                     border-radius: 8px; | 
|                     font-size: 30px; | 
|                     font-weight: 500; | 
|                     color: #FFFFFF; | 
|                     display: flex; | 
|                     align-items: center; | 
|                     justify-content: center; | 
|                 } | 
|             } | 
|         } | 
|     } | 
| </style> |