<template> 
 | 
    <div class="lk"> 
 | 
        <!--   详情   --> 
 | 
        <div class="lk_box"> 
 | 
            <div class="lk_box_title">{{info.mmodelName ? info.mmodelName : '-'}} | {{info.mmodelCode ? info.mmodelCode : '-'}} | {{info.batch ? info.batch : '-'}}</div> 
 | 
            <div class="lk_box_info"> 
 | 
                <div class="lk_box_info_item"><span>所在仓库:</span><span>{{info.whmodelName}}</span></div> 
 | 
                <div class="lk_box_info_item"><span>所在货位:</span><span>{{info.lmodelUnionName}}</span></div> 
 | 
                <div class="lk_box_info_item"> 
 | 
                    <span>质量属性:</span> 
 | 
                    <span class="green" v-if="info.qualityType === 0">合格</span> 
 | 
                    <span class="yellow" v-else-if="info.qualityType === 1">不良</span> 
 | 
                    <span class="red" v-else-if="info.qualityType === 2">报废</span> 
 | 
                    <span v-else></span> 
 | 
                </div> 
 | 
                <div class="lk_box_info_item"><span>产生工序:</span><span>{{info.pmodelName ? info.pmodelName : '-'}}</span></div> 
 | 
                <div class="lk_box_info_item"><span>返修工序:</span><span>{{info.fxpmodelName ? info.fxpmodelName : '-'}}</span></div> 
 | 
                <div class="lk_box_info_item"><span>客返单号:</span><span>{{info.saleorderId ? info.saleorderId : '-'}}</span></div> 
 | 
                <div class="lk_box_info_item"><span>客返客户:</span><span>{{info.cmodelName ? info.cmodelName : '-'}}</span></div> 
 | 
            </div> 
 | 
        </div> 
 | 
        <!--   扫工装   --> 
 | 
        <div class="lk_scode"> 
 | 
            <div class="lk_scode_jiu" @click="openScanCode('old')"> 
 | 
                <img src="@/assets/icon/jianyan_ic_saoma@2x.png" alt="" /> 
 | 
                <span>扫码旧工装</span> 
 | 
            </div> 
 | 
            <div class="z"></div> 
 | 
            <div class="lk_scode_xin" @click="openScanCode('new')"> 
 | 
                <img src="@/assets/icon/gon1gdan_ic_saoma@2x.png" alt="" /> 
 | 
                <span>扫码新工装</span> 
 | 
            </div> 
 | 
        </div> 
 | 
        <div class="lk_content"> 
 | 
            <!--   旧工装   --> 
 | 
            <div class="lk_content_jiu"> 
 | 
                <div class="lk_content_jiu_title"> 
 | 
                    <div class="lk_content_jiu_title_left"> 
 | 
                        <div class="x"></div> 
 | 
                        <span>旧工装码</span> 
 | 
                    </div> 
 | 
                    <div class="lk_content_jiu_title_right" @click="openGZ(1)"> 
 | 
                        <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt=""> 
 | 
                        <span>新增</span> 
 | 
                    </div> 
 | 
                </div> 
 | 
                <div class="lk_content_jiu_box"> 
 | 
                    <template v-if="data.oldList.length > 0"> 
 | 
                        <van-swipe-cell v-for="(item, i) in data.oldList" :key="item.code"> 
 | 
                            <div class="item"> 
 | 
                                <div class="item_wz"> 
 | 
                                    <span class="green" v-if="item.smodelLabel === Attribute.HG">[合格]</span> 
 | 
                                    <span class="yellow" v-else-if="item.smodelLabel === Attribute.BL">[不良]</span> 
 | 
                                    <span class="red" v-else-if="item.smodelLabel === Attribute.BF">[报废]</span> 
 | 
                                    <span class="green" v-else-if="item.smodelLabel === Attribute.HH">[混合]</span> 
 | 
                                    <span> {{item.code}}</span> 
 | 
                                </div> 
 | 
                                <div class="item_num">{{item.num}}{{item.umodelName}}</div> 
 | 
                            </div> 
 | 
                            <template #right> 
 | 
                                <van-button style="height: 100%" square type="danger" text="删除" @click="dele(1, i)" /> 
 | 
                            </template> 
 | 
                        </van-swipe-cell> 
 | 
                    </template> 
 | 
                    <template v-else> 
 | 
                        <div class="items">暂无数据</div> 
 | 
                    </template> 
 | 
                </div> 
 | 
            </div> 
 | 
            <!--   新工装   --> 
 | 
            <div class="lk_content_jiu"> 
 | 
                <div class="lk_content_jiu_title"> 
 | 
                    <div class="lk_content_jiu_title_left"> 
 | 
                        <div class="x"></div> 
 | 
                        <span>新工装码</span> 
 | 
                    </div> 
 | 
                    <div class="lk_content_jiu_title_right" @click="openGZ(2)"> 
 | 
                        <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt=""> 
 | 
                        <span>新增</span> 
 | 
                    </div> 
 | 
                </div> 
 | 
                <div class="lk_content_jiu_box"> 
 | 
                    <template v-if="data.newList.length > 0"> 
 | 
                        <van-swipe-cell v-for="(item, i) in data.newList" :key="item.code"> 
 | 
                            <div class="item"> 
 | 
                                <div class="item_wz"> 
 | 
                                    <span class="green" v-if="item.smodelLabel === Attribute.HG">[合格]</span> 
 | 
                                    <span class="yellow" v-else-if="item.smodelLabel === Attribute.BL">[不良]</span> 
 | 
                                    <span class="red" v-else-if="item.smodelLabel === Attribute.BF">[报废]</span> 
 | 
                                    <span class="green" v-else-if="item.smodelLabel === Attribute.HH">[混合]</span> 
 | 
                                    <span> {{item.code}}</span> 
 | 
                                </div> 
 | 
                                <div class="item_num"> 
 | 
                                    <input type="number" v-model="item.num" @blur="changeNum(item.num, i, item.umodelData)" placeholder="0" /> 
 | 
                                    <span>{{data.oldList[0].umodelName}}</span> 
 | 
                                </div> 
 | 
                            </div> 
 | 
                            <template #right> 
 | 
                                <van-button style="height: 100%" square type="danger" text="删除" @click="dele(2, i)" /> 
 | 
                            </template> 
 | 
                        </van-swipe-cell> 
 | 
                    </template> 
 | 
                    <template v-else> 
 | 
                        <div class="items">暂无数据</div> 
 | 
                    </template> 
 | 
                </div> 
 | 
            </div> 
 | 
        </div> 
 | 
        <div class="lk_zw"></div> 
 | 
        <div class="lk_footer"> 
 | 
            <button class="lk_footer_submit" @click="submit" v-preventReClick>提交</button> 
 | 
        </div> 
 | 
        <!--  扫码  --> 
 | 
        <v-ScanCode 
 | 
            :openCode="openCode" 
 | 
            :infos="['请扫描工装码']" 
 | 
            @closePopup="closePopup" 
 | 
            @onDecode="onDecode"> 
 | 
        </v-ScanCode> 
 | 
        <!--  工装器具  --> 
 | 
        <Tooling :show="gzShow" :classification="true" :statusname="'1'" @close="close" @value="getValue" /> 
 | 
    </div> 
 | 
</template> 
 | 
  
 | 
<script setup lang="ts"> 
 | 
    import { ref, reactive, onMounted } from 'vue' 
 | 
    import { useRoute, useRouter } from "vue-router" 
 | 
    import { QRCodeType, Attribute } from '@/enum' 
 | 
    import { Toast } from 'vant' 
 | 
    import { REGULAR } from '@/utils/utils' 
 | 
    import { getBarcodeContent, getListByCondition, chageApplicance } from "@/apis/WorkOrderAPI" 
 | 
    import Tooling from '@/components/common/Tooling.vue' 
 | 
  
 | 
    const route = useRoute() 
 | 
  
 | 
    const router = useRouter() 
 | 
  
 | 
    let data = reactive<{ oldList: any, newList: any, type: string | number }>({    // 新旧工装数据 
 | 
        oldList: [], 
 | 
        newList: [], 
 | 
        type: '' 
 | 
    }) 
 | 
  
 | 
    let gzShow = ref<boolean>(false) 
 | 
    let info = ref<any>({})    // 详情数据 
 | 
    let openCode = ref<boolean>(false) 
 | 
    let type = ref<string>('') 
 | 
  
 | 
    // 修改新工装数量 
 | 
    const changeNum = (num: any, i: number, umodelData: number): void => { 
 | 
        if (umodelData === 0) { 
 | 
            if (!REGULAR.positiveInteger.test(num)) { 
 | 
                Toast.fail({ message: '数量只能输入正整数' }) 
 | 
                data.newList.forEach((element: any, index: number) => { 
 | 
                    if (i === index) { 
 | 
                        element.num = '' 
 | 
                    } 
 | 
                }) 
 | 
            } 
 | 
        } else if (umodelData === 1) { 
 | 
            if (!REGULAR.number.test(num)) { 
 | 
                Toast.fail({ message: '数量只能输入整数或小数(四位)' }) 
 | 
                data.newList.forEach((element: any, index: number) => { 
 | 
                    if (i === index) { 
 | 
                        element.num = '' 
 | 
                    } 
 | 
                }) 
 | 
            } 
 | 
            // if (!REGULAR.positiveInteger.test(num) && !REGULAR.decimal.test(num)) { 
 | 
            //     Toast.fail({ message: '数量只能输入整数或小数' }) 
 | 
            //     data.newList.forEach((element: any, index: number) => { 
 | 
            //         if (i === index) { 
 | 
            //             element.num = '' 
 | 
            //         } 
 | 
            //     }) 
 | 
            // } 
 | 
        } 
 | 
    } 
 | 
  
 | 
    const openGZ = (Type: number): void => { 
 | 
        data.type = Type 
 | 
        gzShow.value = true 
 | 
    } 
 | 
  
 | 
    // 删除新旧工装 
 | 
    const dele = (type: number, i: number): void => { 
 | 
        if (type === 1) { 
 | 
            if (data.oldList.length === 1) { 
 | 
                Toast.fail({ message: '至少保留一项旧工装', duration: 2000 }) 
 | 
                return 
 | 
            } 
 | 
            data.oldList.splice(i, 1) 
 | 
        } else if (type === 2) { 
 | 
            if (data.newList.length === 1) { 
 | 
                Toast.fail({ message: '至少保留一项新工装', duration: 2000 }) 
 | 
                return 
 | 
            } 
 | 
            data.newList.splice(i, 1) 
 | 
        } 
 | 
    } 
 | 
  
 | 
    // 获取工装数据 
 | 
    const getValue = (item: any): void => { 
 | 
        const arr: Array<any> = [...data.oldList, ...data.newList] 
 | 
        if (data.type == 1) { 
 | 
            let next: boolean = true 
 | 
            arr.forEach((element: any) => { 
 | 
                if (item.id === element.id) { 
 | 
                    next = false 
 | 
                    Toast.fail({ message: '不能重复添加相同的工装' }) 
 | 
                    return 
 | 
                } 
 | 
            }) 
 | 
            if (next) { 
 | 
                data.oldList.push(item) 
 | 
            } 
 | 
        } else if (data.type == 2) { 
 | 
            let next: boolean = true 
 | 
            arr.forEach((element: any) => { 
 | 
                if (item.id === element.id) { 
 | 
                    next = false 
 | 
                    Toast.fail({ message: '不能重复添加相同的工装' }) 
 | 
                    return 
 | 
                } 
 | 
            }) 
 | 
            if (next) { 
 | 
                data.newList.push(item) 
 | 
            } 
 | 
        } 
 | 
        gzShow.value = false 
 | 
    } 
 | 
  
 | 
    const close = (): void => { 
 | 
        gzShow.value = false 
 | 
    } 
 | 
  
 | 
    const closePopup = (): void => { 
 | 
        openCode.value = false 
 | 
    } 
 | 
  
 | 
    // 获取扫码回调 
 | 
    const onDecode = async (datas: string[]): Promise<void> => { 
 | 
        openCode.value = false 
 | 
        const arr: Array<any> = [...data.oldList, ...data.newList] 
 | 
        let res = await getBarcodeContent({    // 扫码请求返回类型和id 
 | 
            barcode: datas[0] 
 | 
        }) 
 | 
        if (res.code === 200) { 
 | 
            if (res.data.barcodeType === QRCodeType.GZ) { 
 | 
                let infos = await getListByCondition({ id: res.data.id }) 
 | 
                if (infos.code === 200) { 
 | 
  
 | 
                    if (type.value === 'new') { 
 | 
                        if (info.value.smodelLabel === infos.data[0].smodelLabel) { 
 | 
                            // if (infos.data[0].status === 1) { 
 | 
                                data.newList.push(infos.data[0]) 
 | 
                            // } else { 
 | 
                            //     Toast.fail({ message: '工装状态必须为空', duration: 2000 }) 
 | 
                            // } 
 | 
                        } else { 
 | 
                            Toast.fail({ message: '工装属性不一致', duration: 2000 }) 
 | 
                        } 
 | 
                        return 
 | 
                    } 
 | 
  
 | 
                    let next: boolean = true 
 | 
                    arr.forEach((element: any) => { 
 | 
                        if (element.id === infos.data[0].id) { 
 | 
                            next = false 
 | 
                            Toast.fail({ message: '不能重复添加相同的工装' }) 
 | 
                        } 
 | 
                    }) 
 | 
                    if (next) { 
 | 
                        if (type.value === 'old') { 
 | 
                            if (info.value.warehouseId === infos.data[0].warehouseId) { 
 | 
                                if (info.value.locationId === infos.data[0].locationId) { 
 | 
                                    if (info.value.qualityType === infos.data[0].qualityType) { 
 | 
                                        if (info.value.procedureId === infos.data[0].procedureId) { 
 | 
                                            if (info.value.fxpmodelName === infos.data[0].fxpmodelName) { 
 | 
                                                if (info.value.saleorderId === infos.data[0].saleorderId) { 
 | 
                                                    if (info.value.cmodelName === infos.data[0].cmodelName) { 
 | 
                                                        data.oldList.push(infos.data[0]) 
 | 
                                                    } else { 
 | 
                                                        Toast.fail({ message: '客返客户不一致', duration: 2000 }) 
 | 
                                                    } 
 | 
                                                } else { 
 | 
                                                    Toast.fail({ message: '客返单号不一致', duration: 2000 }) 
 | 
                                                } 
 | 
                                            } else { 
 | 
                                                Toast.fail({ message: '返修工序不一致', duration: 2000 }) 
 | 
                                            } 
 | 
                                        } else { 
 | 
                                            Toast.fail({ message: '产生工序不一致', duration: 2000 }) 
 | 
                                        } 
 | 
                                    } else { 
 | 
                                        Toast.fail({ message: '质量属性不一致', duration: 2000 }) 
 | 
                                    } 
 | 
                                } else { 
 | 
                                    Toast.fail({ message: '货位不一致', duration: 2000 }) 
 | 
                                } 
 | 
                            } else { 
 | 
                                Toast.fail({ message: '仓库不一致', duration: 2000 }) 
 | 
                            } 
 | 
                        } 
 | 
                        // else if (type.value === 'new') { 
 | 
                        //     if (info.value.smodelLabel === infos.data[0].smodelLabel) { 
 | 
                        //         if (infos.data[0].status === 1) { 
 | 
                        //             data.newList.push(infos.data[0]) 
 | 
                        //         } else { 
 | 
                        //             Toast.fail({ message: '工装状态必须为空', duration: 2000 }) 
 | 
                        //         } 
 | 
                        //     } else { 
 | 
                        //         Toast.fail({ message: '工装属性不一致', duration: 2000 }) 
 | 
                        //     } 
 | 
                        // } 
 | 
                    } 
 | 
                } else { 
 | 
                    Toast.fail({ message: '请扫描正确的工装码' }) 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
  
 | 
    // 打开扫一扫 
 | 
    const openScanCode = (Type: string): void => { 
 | 
        type.value = Type 
 | 
        openCode.value = true 
 | 
    } 
 | 
  
 | 
    // 获取工装详情 
 | 
    const getInfo = async () => { 
 | 
        let res = await getListByCondition({ id: route.query.id }) 
 | 
        if (res.code === 200) { 
 | 
            info.value = res.data[0] 
 | 
            data.oldList.push(res.data[0]) 
 | 
        } 
 | 
    } 
 | 
  
 | 
    // 提交换篮筐 
 | 
    const submit = async (): Promise<void> => { 
 | 
        if (data.oldList.length === 0) { 
 | 
            Toast.fail({ message: '旧工装不能为空' }) 
 | 
            return 
 | 
        } 
 | 
        if (data.newList.length === 0) { 
 | 
            Toast.fail({ message: '新工装不能为空' }) 
 | 
            return 
 | 
        } 
 | 
        let news: number = 0 
 | 
        let old: number = 0 
 | 
        data.oldList.forEach((element: any) => { 
 | 
            old = old + element.num 
 | 
        }) 
 | 
        data.newList.forEach((element: any) => { 
 | 
            news = news + element.num 
 | 
        }) 
 | 
        if (news !== old) { 
 | 
            Toast.fail({ message: '新旧工装数量必须一致' }) 
 | 
            return 
 | 
        } 
 | 
        let res = await chageApplicance({ 
 | 
            oldList: data.oldList, 
 | 
            newList: data.newList 
 | 
        }) 
 | 
        if (res.code === 200) { 
 | 
            Toast.success({ message: '操作成功', forbidClick: true, duration: 3000 }) 
 | 
            setTimeout(() => { 
 | 
                router.go(-1) 
 | 
            }, 2000) 
 | 
        } 
 | 
    } 
 | 
  
 | 
    onMounted(() => { 
 | 
        getInfo() 
 | 
    }) 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scoped> 
 | 
    .lk { 
 | 
        width: 100%; 
 | 
        height: 100%; 
 | 
        position: absolute; 
 | 
        background: #F7F7F7; 
 | 
        .lk_box { 
 | 
            padding: 30px; 
 | 
            background: white; 
 | 
            .lk_box_title { 
 | 
                font-size: 32px; 
 | 
                font-weight: 500; 
 | 
                color: #333333; 
 | 
            } 
 | 
            .lk_box_info { 
 | 
                margin-top: 30px; 
 | 
                background: #F7F7F7; 
 | 
                padding: 24px 30px; 
 | 
                .lk_box_info_item { 
 | 
                    display: flex; 
 | 
                    align-items: center; 
 | 
                    margin-bottom: 24px; 
 | 
                    &:last-child { 
 | 
                        margin-bottom: 0 !important; 
 | 
                    } 
 | 
                    span { 
 | 
                        font-size: 26px; 
 | 
                        font-weight: 400; 
 | 
                        &:first-child { 
 | 
                            color: #666666; 
 | 
                        } 
 | 
                        &:last-child { 
 | 
                            color: #222222; 
 | 
                        } 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        .lk_scode { 
 | 
            margin-top: 30px; 
 | 
            padding: 0 30px; 
 | 
            display: flex; 
 | 
            align-items: center; 
 | 
            .lk_scode_jiu { 
 | 
                flex: 1; 
 | 
                height: 76px; 
 | 
                background: #FFFFFF; 
 | 
                border-radius: 36px; 
 | 
                border: 1PX solid #E5E5E5; 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                justify-content: center; 
 | 
                img { 
 | 
                    width: 28px; 
 | 
                    height: 28px; 
 | 
                    margin-right: 12px; 
 | 
                } 
 | 
                span { 
 | 
                    font-size: 26px; 
 | 
                    font-weight: 400; 
 | 
                    color: #222222; 
 | 
                } 
 | 
            } 
 | 
            .z { 
 | 
                width: 30px; 
 | 
            } 
 | 
            .lk_scode_xin { 
 | 
                flex: 1; 
 | 
                height: 76px; 
 | 
                background: $nav-color; 
 | 
                border-radius: 36px; 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                justify-content: center; 
 | 
                img { 
 | 
                    width: 28px; 
 | 
                    height: 28px; 
 | 
                    margin-right: 12px; 
 | 
                } 
 | 
                span { 
 | 
                    font-size: 26px; 
 | 
                    font-weight: 400; 
 | 
                    color: #ffffff; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        .lk_content { 
 | 
            .lk_content_jiu { 
 | 
                margin-top: 40px; 
 | 
                .lk_content_jiu_title { 
 | 
                    padding: 0 30px; 
 | 
                    display: flex; 
 | 
                    align-items: center; 
 | 
                    justify-content: space-between; 
 | 
                    .lk_content_jiu_title_left { 
 | 
                        display: flex; 
 | 
                        align-items: center; 
 | 
                        .x { 
 | 
                            width: 8px; 
 | 
                            height: 30px; 
 | 
                            background: #4275FC; 
 | 
                            border-radius: 2px; 
 | 
                            margin-right: 12px; 
 | 
                        } 
 | 
                        span { 
 | 
                            font-size: 32px; 
 | 
                            font-weight: 500; 
 | 
                            color: #222222; 
 | 
                        } 
 | 
                    } 
 | 
                    .lk_content_jiu_title_right { 
 | 
                        display: flex; 
 | 
                        align-items: center; 
 | 
                        img { 
 | 
                            width: 28px; 
 | 
                            height: 28px; 
 | 
                            margin-right: 12px; 
 | 
                        } 
 | 
                        span { 
 | 
                            font-size: 28px; 
 | 
                            font-weight: 400; 
 | 
                            color: #4275FC; 
 | 
                        } 
 | 
                    } 
 | 
                } 
 | 
                .lk_content_jiu_box { 
 | 
                    margin-top: 28px; 
 | 
                    background: white; 
 | 
                    display: flex; 
 | 
                    flex-direction: column; 
 | 
                    .items { 
 | 
                        width: 100%; 
 | 
                        height: 98px; 
 | 
                        display: flex; 
 | 
                        align-items: center; 
 | 
                        justify-content: center; 
 | 
                        font-size: 28px; 
 | 
                        font-weight: 400; 
 | 
                        color: #000000; 
 | 
                    } 
 | 
                    .item { 
 | 
                        margin: 0 30px; 
 | 
                        height: 98px; 
 | 
                        display: flex; 
 | 
                        align-items: center; 
 | 
                        justify-content: space-between; 
 | 
                        border-bottom: 1PX solid #E5E5E5; 
 | 
                        &:last-child { 
 | 
                            border-bottom: 0PX !important; 
 | 
                        } 
 | 
                        .item_wz { 
 | 
                            span { 
 | 
                                font-size: 30px; 
 | 
                                font-weight: 400; 
 | 
                                color: #222222; 
 | 
                            } 
 | 
                        } 
 | 
                        .item_num { 
 | 
                            font-size: 28px; 
 | 
                            font-weight: 400; 
 | 
                            color: #333333; 
 | 
                            input { 
 | 
                                font-size: 28px; 
 | 
                                font-weight: 400; 
 | 
                                color: #333333; 
 | 
                                width: 180px; 
 | 
                                height: 60px; 
 | 
                                background: #FFFFFF; 
 | 
                                border-radius: 8px; 
 | 
                                border: 1PX solid #CCCCCC; 
 | 
                                padding: 0 30px; 
 | 
                                box-sizing: border-box; 
 | 
                                margin-right: 20px; 
 | 
                            } 
 | 
                            input::-webkit-input-placeholder { 
 | 
                                font-size: 28px; 
 | 
                                font-weight: 400; 
 | 
                                color: #999999; 
 | 
                            } 
 | 
                            span { 
 | 
                                font-size: 28px; 
 | 
                                font-weight: 400; 
 | 
                                color: #666666; 
 | 
                            } 
 | 
                        } 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        .lk_zw { 
 | 
            height: 168px; 
 | 
        } 
 | 
        .lk_footer { 
 | 
            position: fixed; 
 | 
            bottom: 0; 
 | 
            left: 30px; 
 | 
            padding-bottom: 60px; 
 | 
            width: calc(100% - 60px); 
 | 
            .lk_footer_submit { 
 | 
                border: none; 
 | 
                width: 100%; 
 | 
                height: 88px; 
 | 
                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; 
 | 
                font-size: 30px; 
 | 
                font-weight: 500; 
 | 
                color: #FFFFFF; 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
</style> 
 |