<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> 
 |