<template> 
 | 
    <div class="rework"> 
 | 
        <div class="rework_list"> 
 | 
            <div class="rework_list_item" @click="show = true"> 
 | 
                <span>检验申请类型</span> 
 | 
                <div class="rework_list_item_right"> 
 | 
                    <span :class="form.typeName ? 'black' : ''">{{form.typeName ? form.typeName : '点击选择'}}</span> 
 | 
                    <van-icon name="arrow" size="20" color="#999999" /> 
 | 
                </div> 
 | 
            </div> 
 | 
            <div class="rework_list_item" @click="openDH = true"> 
 | 
                <span>客返单号</span> 
 | 
                <div class="rework_list_item_right"> 
 | 
                    <span :class="form.singleName ? 'black' : ''">{{form.singleName ? form.singleName : '点击选择客返单号'}}</span> 
 | 
                    <van-icon name="arrow" size="20" color="#999999" /> 
 | 
                </div> 
 | 
            </div> 
 | 
            <div class="rework_list_item"> 
 | 
                <span>客返客户</span> 
 | 
                <div class="rework_list_item_right"> 
 | 
                    <span class="black">{{form.clientName}}</span> 
 | 
                </div> 
 | 
            </div> 
 | 
            <div class="rework_list_item"> 
 | 
                <span>退回原因</span> 
 | 
                <div class="rework_list_item_right"> 
 | 
                    <input type="text" v-model="form.reason" placeholder="请输入退回原因" /> 
 | 
                </div> 
 | 
            </div> 
 | 
        </div> 
 | 
        <div class="rework_qd"> 
 | 
            <div class="rework_qd_title"> 
 | 
                <div class="x"></div> 
 | 
                <span>退回工装清单(1)</span> 
 | 
            </div> 
 | 
            <van-swipe-cell> 
 | 
                <div class="rework_qd_item"> 
 | 
                    <div class="rework_qd_item_i"> 
 | 
                        <span class="black">LK0001:</span><span class="black">10件</span> 
 | 
                    </div> 
 | 
                    <div class="rework_qd_item_i"> 
 | 
                        <span>物料信息:</span><span>花键2993 | 21E8-002-2993-H1</span> 
 | 
                    </div> 
 | 
                    <div class="rework_qd_item_i"> 
 | 
                        <span>批次号:</span><span>PC-20220719-0001</span> 
 | 
                    </div> 
 | 
                </div> 
 | 
                <template #right> 
 | 
                    <van-button style="height: 100%;" square type="danger" text="删除" /> 
 | 
                </template> 
 | 
            </van-swipe-cell> 
 | 
        </div> 
 | 
        <div class="rework_footer"> 
 | 
            <div class="rework_footer_add" @click="open">扫码添加工装</div> 
 | 
            <div style="width: 22px;"></div> 
 | 
            <button class="rework_footer_submit">提交</button> 
 | 
        </div> 
 | 
        <v-ScanCode 
 | 
            :openCode="openCode" 
 | 
            :infos="['请扫描工装码']" 
 | 
            @closePopup="closePopup" 
 | 
            @onDecode="onDecode"> 
 | 
        </v-ScanCode> 
 | 
        <!--    类型    --> 
 | 
        <van-popup v-model:show="show" position="bottom" round :style="{ height: '45%' }"> 
 | 
            <van-picker 
 | 
                title="请选择类型" 
 | 
                :columns="columns" 
 | 
                @confirm="onConfirm" 
 | 
                @cancel="onCancel" 
 | 
            /> 
 | 
        </van-popup> 
 | 
        <!--    单号    --> 
 | 
        <van-popup v-model:show="openDH" position="bottom" round :style="{ height: '45%' }"> 
 | 
            <van-picker 
 | 
                title="请选择单号" 
 | 
                :columns="columns3" 
 | 
                @confirm="onConfirm3" 
 | 
                @cancel="onCancel3" 
 | 
            /> 
 | 
        </van-popup> 
 | 
    </div> 
 | 
</template> 
 | 
  
 | 
<script setup lang="ts"> 
 | 
    import { ref, reactive } from 'vue' 
 | 
  
 | 
    // 表单数据 
 | 
    let form = reactive({ 
 | 
        type: '', 
 | 
        typeName: '', 
 | 
        clientName: '客户', 
 | 
        single: '', 
 | 
        singleName: '', 
 | 
        reason: '' 
 | 
    }) 
 | 
  
 | 
    // 类型 
 | 
    const columns = [{ text: '工序返工', id: 1 },{ text: '客退返工', id: 2 },{ text: '客返返修', id: 3 }] 
 | 
  
 | 
    // 单号 
 | 
    const columns3 = ['杭州', '宁波', '温州', '绍兴', '湖州', '嘉兴', '金华'] 
 | 
  
 | 
    let show = ref<boolean>(false) 
 | 
  
 | 
    let openDH = ref<boolean>(false) 
 | 
  
 | 
    let openCode = ref<boolean>(false) 
 | 
  
 | 
    // 类型确认 
 | 
    const onConfirm = (value: any) => { 
 | 
        form.type = value.id 
 | 
        form.typeName = value.text 
 | 
        show.value = false 
 | 
    }; 
 | 
  
 | 
    const onCancel = () => { 
 | 
        show.value = false 
 | 
    } 
 | 
  
 | 
    const onConfirm3 = (value: any) => { 
 | 
        form.single = value.id 
 | 
        form.singleName = value.text 
 | 
        openDH.value = false 
 | 
    }; 
 | 
  
 | 
    const onCancel3 = () => { 
 | 
        openDH.value = false 
 | 
    } 
 | 
  
 | 
    const closePopup = (): void => { 
 | 
        openCode.value = false 
 | 
    } 
 | 
  
 | 
    const onDecode = (data: string[]): void => { 
 | 
        console.log(data) 
 | 
        openCode.value = false 
 | 
    } 
 | 
  
 | 
    const open = (): void => { 
 | 
        openCode.value = true 
 | 
    } 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scoped> 
 | 
    .rework { 
 | 
        width: 100%; 
 | 
        height: 100%; 
 | 
        position: absolute; 
 | 
        .rework_list { 
 | 
            display: flex; 
 | 
            flex-direction: column; 
 | 
            background: white; 
 | 
            margin-top: 20px; 
 | 
            .rework_list_item { 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                justify-content: space-between; 
 | 
                height: 98px; 
 | 
                padding: 0 30px; 
 | 
                border-bottom: 1PX solid #E5E5E5; 
 | 
                &:last-child { 
 | 
                    border: none; 
 | 
                } 
 | 
                span { 
 | 
                    font-size: 30px; 
 | 
                    font-weight: 400; 
 | 
                    color: #222222; 
 | 
                    flex-shrink: 0; 
 | 
                } 
 | 
                .rework_list_item_right { 
 | 
                    display: flex; 
 | 
                    align-items: center; 
 | 
                    span { 
 | 
                        font-size: 28px; 
 | 
                        font-weight: 400; 
 | 
                        color: #999999; 
 | 
                    } 
 | 
                    .black { 
 | 
                        color: black !important; 
 | 
                    } 
 | 
                    input { 
 | 
                        width: 230px; 
 | 
                        font-size: 28px; 
 | 
                        border: none; 
 | 
                    } 
 | 
                    input::-webkit-input-placeholder { /* WebKit browsers */ 
 | 
                        font-size: 28px; 
 | 
                        font-weight: 400; 
 | 
                        color: #B2B2B2; 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        .rework_qd { 
 | 
            margin-top: 40px; 
 | 
            .rework_qd_title { 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                padding: 0 30px 30px 30px; 
 | 
                span { 
 | 
                    font-size: 32px; 
 | 
                    font-weight: 500; 
 | 
                    color: #222222; 
 | 
                } 
 | 
                .x { 
 | 
                    width: 8px; 
 | 
                    height: 30px; 
 | 
                    background: #4275FC; 
 | 
                    border-radius: 2px; 
 | 
                    margin-right: 12px; 
 | 
                } 
 | 
            } 
 | 
            .rework_qd_item { 
 | 
                background: #ffffff; 
 | 
                padding: 30px; 
 | 
                display: flex; 
 | 
                flex-direction: column; 
 | 
                .rework_qd_item_i { 
 | 
                    display: flex; 
 | 
                    align-items: center; 
 | 
                    margin-bottom: 30px; 
 | 
                    &:last-child { 
 | 
                        margin-bottom: 0!important; 
 | 
                    } 
 | 
                    .black { 
 | 
                        font-size: 30px!important; 
 | 
                        font-weight: 400!important; 
 | 
                        color: #222222!important; 
 | 
                    } 
 | 
                    span { 
 | 
                        &:first-child { 
 | 
                            font-size: 26px; 
 | 
                            font-weight: 400; 
 | 
                            color: #666666; 
 | 
                        } 
 | 
                        &:last-child { 
 | 
                            font-size: 26px; 
 | 
                            font-weight: 400; 
 | 
                            color: #333333; 
 | 
                        } 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        .rework_footer { 
 | 
            width: calc(100% - 60px); 
 | 
            position: fixed; 
 | 
            bottom: 0; 
 | 
            display: flex; 
 | 
            align-items: center; 
 | 
            justify-content: space-between; 
 | 
            padding: 0 30px 68px 30px; 
 | 
            .rework_footer_add { 
 | 
                flex: 1; 
 | 
                height: 88px; 
 | 
                font-size: 30px; 
 | 
                font-weight: 500; 
 | 
                color: $nav-color; 
 | 
                background: #FFFFFF; 
 | 
                box-shadow: 0 0 12px 0 rgba(0,0,0,0.0800); 
 | 
                border-radius: 8px; 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                justify-content: center; 
 | 
            } 
 | 
            .rework_footer_submit { 
 | 
                flex: 1; 
 | 
                height: 88px; 
 | 
                font-size: 30px; 
 | 
                font-weight: 500; 
 | 
                color: #ffffff; 
 | 
                background: $nav-color; 
 | 
                box-shadow: 0 0 12px 0 rgba(0,0,0,0.0800); 
 | 
                border-radius: 8px; 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                justify-content: center; 
 | 
                border: none; 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
</style> 
 |