<template> 
 | 
    <div class="page"> 
 | 
        <V-WorkOrderInfo :info="info"></V-WorkOrderInfo> 
 | 
        <div class="page_h"></div> 
 | 
        <div class="page_lx_item padding"> 
 | 
            <span>检验类型</span> 
 | 
            <div class="page_lx_item_is"> 
 | 
                <div class="page_lx_item_is_i" :class="{ 'active': item.active }" v-for="(item, index) in typeList" :key="index" @click="clickTag(index)"> 
 | 
                    <span>{{item.name}}</span> 
 | 
                </div> 
 | 
            </div> 
 | 
        </div> 
 | 
        <div class="page_h"></div> 
 | 
        <div class="page_content"> 
 | 
            <div class="page_content_title">{{infos.cmodel1BigName}} {{infos.code}}</div> 
 | 
            <div class="page_content_item"> 
 | 
                <span>合格数量</span> 
 | 
                <div class="page_content_item_i"> 
 | 
                    <input v-model="data.qualified" type="number" placeholder="0" /> 
 | 
                    <span v-if="info.umodel">{{info.umodel.name}}</span> 
 | 
                </div> 
 | 
            </div> 
 | 
            <div class="page_content_item"> 
 | 
                <span>不良数量</span> 
 | 
                <div class="page_content_item_i"> 
 | 
                    <input v-model="data.unqualified" placeholder="0" type="number" /> 
 | 
                    <span v-if="info.umodel">{{info.umodel.name}}</span> 
 | 
                </div> 
 | 
            </div> 
 | 
            <div class="page_content_item" v-if="isShow" @click="openGZ"> 
 | 
                <span>不良工装</span> 
 | 
                <div class="page_content_item_is"> 
 | 
                    <span :style="data.defectiveToolingName ? 'color: #000;' : ''">{{data.defectiveToolingName ? data.defectiveToolingName : '点击选择工装'}}</span> 
 | 
                    <van-icon name="arrow" color="#999999" size="18" /> 
 | 
                </div> 
 | 
            </div> 
 | 
            <div class="page_content_sm" v-if="isShow"> 
 | 
                <div class="page_content_sm_box" @click="openSM('1')"> 
 | 
                    <img src="@/assets/icon/jianyan_ic_saoma@2x.png" alt="" /> 
 | 
                    <span>扫描工装</span> 
 | 
                </div> 
 | 
            </div> 
 | 
        </div> 
 | 
        <div class="page_lx"> 
 | 
            <div class="page_lx_item" v-if="isShow" @click="openBL"> 
 | 
                <span>不良原因</span> 
 | 
                <div class="page_lx_item_i"> 
 | 
                    <span :style="data.defectDescriptionName ? 'color: #000;' : ''">{{data.defectDescriptionName ? data.defectDescriptionName : '点击选择不良原因'}}</span> 
 | 
                    <van-icon name="arrow" /> 
 | 
                </div> 
 | 
            </div> 
 | 
        </div> 
 | 
        <div class="page_remark"> 
 | 
            <textarea v-model="remark" placeholder="请输入检验备注说明信息,非必填"></textarea> 
 | 
        </div> 
 | 
        <div class="page_zw"></div> 
 | 
        <div class="page_footer"> 
 | 
            <div class="page_footer_jx" @click="openSM('2')">继续检验</div> 
 | 
            <button class="page_footer_tj" v-preventReClick @click="submit">提交</button> 
 | 
        </div> 
 | 
        <!--    不良原因    --> 
 | 
        <van-popup v-model:show="show1" position="bottom" round :style="{ height: '40%' }"> 
 | 
            <van-picker 
 | 
                title="选择不良原因" 
 | 
                :columns="columns1" 
 | 
                @confirm="onConfirm1" 
 | 
                @cancel="onCancel1" 
 | 
            /> 
 | 
        </van-popup> 
 | 
        <!--    扫码    --> 
 | 
        <v-ScanCode 
 | 
            :openCode="openCode" 
 | 
            :infos="['请扫描工装码']" 
 | 
            @closePopup="closePopup" 
 | 
            @onDecode="onDecode" /> 
 | 
        <!--  工装器具  --> 
 | 
        <Tooling :show="gzShow" :attribute="info.type === 2 ? Attribute.BF : Attribute.BL + ',' + Attribute.BF" @close="close1" @value="getValue" /> 
 | 
    </div> 
 | 
</template> 
 | 
  
 | 
<script setup lang="ts"> 
 | 
    import { ref, reactive, onMounted, nextTick, watch } from 'vue' 
 | 
    import { useRoute, useRouter } from "vue-router" 
 | 
    import { createJY } from '@/apis/QualityAPI' 
 | 
    import { Toast } from 'vant' 
 | 
    import { QRCodeType, Attribute } from '@/enum' 
 | 
    import { queryById, getListByCondition, checkAllList, getBarcodeContent } from '@/apis/WorkOrderAPI' 
 | 
    import VWorkOrderInfo from '@/components/common/WorkOrderInfo.vue' 
 | 
    import Tooling from '@/components/common/Tooling.vue' 
 | 
    import * as dd from "dingtalk-jsapi"; 
 | 
  
 | 
    const route = useRoute() 
 | 
  
 | 
    const router = useRouter() 
 | 
  
 | 
    // 区分扫码 
 | 
    let index = ref<string>() 
 | 
  
 | 
    // 控制不良显示隐藏 
 | 
    const isShow = ref<boolean>(false) 
 | 
  
 | 
    let gzShow = ref<boolean>(false) 
 | 
  
 | 
    // 控制扫码显示隐藏 
 | 
    const openCode = ref<boolean>(false) 
 | 
  
 | 
    // 工装弹框显示隐藏 
 | 
    const show = ref<boolean>(false) 
 | 
  
 | 
    // 不良原因弹框显示隐藏 
 | 
    const show1 = ref<boolean>(false) 
 | 
  
 | 
    // 工装下拉数据 
 | 
    const columns: any = ref([]) 
 | 
  
 | 
    // 不良原因下拉数据 
 | 
    const columns1: any = ref([]) 
 | 
  
 | 
    // 工单详情数据 
 | 
    let info: any = ref({}) 
 | 
  
 | 
    // 工装器具详情 
 | 
    let infos: any = ref({}) 
 | 
  
 | 
    // 检验提交数据 
 | 
    let data: any = reactive({ 
 | 
        id: '',       // 工装id 
 | 
        qualified: '',       // 合格 
 | 
        unqualified: '',      // 不合格 
 | 
        defectiveTooling: '',// 不合格工装 
 | 
        defectiveToolingName: '',   // 不合格工装名称 
 | 
        defectDescription: '',// 不合格说明 
 | 
        defectDescriptionName: '',  // 不良原因名称 
 | 
        type: '1'             // 检验类型 
 | 
    }) 
 | 
  
 | 
    let remark = ref<string>('')    // 备注 
 | 
  
 | 
    // 检验类型 
 | 
    const typeList: any = ref([]) 
 | 
  
 | 
    const close1 = () => { 
 | 
        gzShow.value = false 
 | 
    } 
 | 
  
 | 
    // 获取工装数据 
 | 
    const getValue = (item: any) => { 
 | 
        data.defectiveTooling = item.id 
 | 
        data.defectiveToolingName = item.code 
 | 
        gzShow.value = false 
 | 
    } 
 | 
  
 | 
    // 获取扫码值 
 | 
    const onDecode = (datas: string[]): void => { 
 | 
        if (index.value === '1') { 
 | 
            getBarcodeContent({ 
 | 
                barcode: datas[0] 
 | 
            }).then(resa => { 
 | 
                if (resa.code === 200 && resa.data.barcodeType === QRCodeType.GZ) { 
 | 
                    getListByCondition({ 
 | 
                        id: resa.data.id 
 | 
                    }).then(res => { 
 | 
                        if (res.code === 200 && res.data && res.data.length !== 0) { 
 | 
                            if (info.value.type === 2) {    // 返工返修 
 | 
                                if (res.data[0].smodelLabel === Attribute.BF) { 
 | 
                                    if (res.data[0].status !== 0) { 
 | 
                                        data.defectiveTooling = res.data[0].id 
 | 
                                        data.defectiveToolingName = res.data[0].code 
 | 
                                    } else { 
 | 
                                        Toast.fail({ message: '扫描的工装状态不能为已报废' }) 
 | 
                                    } 
 | 
                                } else { 
 | 
                                    Toast.fail({ message: '只能扫描报废属性的工装' }) 
 | 
                                } 
 | 
                            } else { 
 | 
                                if (res.data[0].smodelLabel === Attribute.BL || res.data[0].smodelLabel === Attribute.BF) { 
 | 
                                    if (res.data[0].status !== 0) { 
 | 
                                        data.defectiveTooling = res.data[0].id 
 | 
                                        data.defectiveToolingName = res.data[0].code 
 | 
                                    } else { 
 | 
                                        Toast.fail({ message: '扫描的工装状态不能为已报废' }) 
 | 
                                    } 
 | 
                                } else { 
 | 
                                    Toast.fail({ message: '只能扫描不良或者报废属性的工装' }) 
 | 
                                } 
 | 
                            } 
 | 
                        } 
 | 
                    }) 
 | 
                } else { 
 | 
                    Toast.fail({ message: '请扫描正确的工装码' }) 
 | 
                } 
 | 
            }) 
 | 
        } else if (index.value === '2') { 
 | 
            getBarcodeContent({ 
 | 
                barcode: datas[0] 
 | 
            }).then(res => { 
 | 
                if (res.code === 200 && res.data.barcodeType === QRCodeType.GZ) { 
 | 
                    data.qualified = '' 
 | 
                    data.unqualified = 0 
 | 
                    data.defectiveTooling = '' 
 | 
                    data.defectiveToolingName = '' 
 | 
                    data.defectDescription = '' 
 | 
                    data.defectDescriptionName = '' 
 | 
                    data.type = '1' 
 | 
                    typeList.value.forEach((item: any, index: number) => { 
 | 
                        item.active = index === 0; 
 | 
                    }) 
 | 
                    getListByConditions(res.data.id) 
 | 
                } else { 
 | 
                    Toast.fail({ message: '请扫描正确的工装码' }) 
 | 
                } 
 | 
            }) 
 | 
        } 
 | 
        nextTick(() => { 
 | 
            openCode.value = false 
 | 
        }) 
 | 
    } 
 | 
  
 | 
    // 关闭扫码组件 
 | 
    const closePopup = (): void => { 
 | 
        openCode.value = false 
 | 
    } 
 | 
  
 | 
    // 确认选择工装 
 | 
    const onConfirm = (value: any, index: any) => { 
 | 
        data.defectiveTooling = value.id 
 | 
        data.defectiveToolingName = value.text 
 | 
        show.value = false 
 | 
    } 
 | 
  
 | 
    // 关闭工装弹框 
 | 
    const onCancel = () => { 
 | 
        show.value = false 
 | 
    } 
 | 
  
 | 
    // 确认选择不良原因 
 | 
    const onConfirm1 = (value: any) => { 
 | 
        data.defectDescription = value.id 
 | 
        data.defectDescriptionName = value.text 
 | 
        show1.value = false 
 | 
    } 
 | 
  
 | 
    // 关闭不良原因弹框 
 | 
    const onCancel1 = () => { 
 | 
        show1.value = false 
 | 
    } 
 | 
  
 | 
    // 打开工装 
 | 
    const openGZ = () => { 
 | 
        // show.value = true 
 | 
        gzShow.value = true 
 | 
    } 
 | 
  
 | 
    // 继续检验 
 | 
    const openSM = (type: string) => { 
 | 
        if (type === '1') {     // 扫描工装 
 | 
            index.value = type 
 | 
            openCode.value = true 
 | 
        } else if (type === '2') {     // 继续检验 
 | 
            if (!data.qualified) { 
 | 
                data.qualified = 0 
 | 
            } 
 | 
            if (!data.unqualified) { 
 | 
                data.unqualified = 0 
 | 
            } 
 | 
            if (data.qualified === 0 && data.unqualified === 0) { 
 | 
                return Toast({ message: '合格数量不能同时为0!', duration: 2000 }) 
 | 
            } 
 | 
            if (data.unqualified > 0) { 
 | 
                if (!data.defectiveTooling) return Toast.fail({ message: '不良工装不能为空!', duration: 2000 }) 
 | 
                if (!data.defectDescription) return Toast.fail({ message: '不良说明不能为空!', duration: 2000 }) 
 | 
            } 
 | 
            let checkType: any; 
 | 
            typeList.value.forEach((item: any) => { 
 | 
                if (item.active) { 
 | 
                    checkType = item.id 
 | 
                } 
 | 
            }) 
 | 
            createJY({ 
 | 
                workorderId: route.query.gdId, 
 | 
                appliancesId: data.id, 
 | 
                qualifiedNum: data.qualified, 
 | 
                unqualifiedNum: data.unqualified, 
 | 
                qualifiedApplianceId: data.defectiveTooling, 
 | 
                checkInfo: data.defectDescription, 
 | 
                checkType: checkType 
 | 
            }).then(res => { 
 | 
                if (res.code === 200) { 
 | 
                    // 清空操作 
 | 
                    data.qualified = '' 
 | 
                    data.unqualified = 0 
 | 
                    data.defectiveTooling = '' 
 | 
                    data.defectiveToolingName = '' 
 | 
                    data.defectDescription = '' 
 | 
                    data.defectDescriptionName = '' 
 | 
                    data.type = '1' 
 | 
                    // 还原类型 
 | 
                    typeList.value.forEach((item: any, index: number) => { 
 | 
                        item.active = index === 0; 
 | 
                    }) 
 | 
  
 | 
                    index.value = type 
 | 
  
 | 
                    Toast.success({ message: '检验成功!', duration: 2000 }) 
 | 
  
 | 
                    setTimeout(() => { 
 | 
                        openCode.value = true 
 | 
                    }, 2000) 
 | 
                } 
 | 
            }) 
 | 
        } 
 | 
  
 | 
    } 
 | 
  
 | 
    // 打开不良原因 
 | 
    const openBL = () => { 
 | 
        show1.value = true 
 | 
    } 
 | 
  
 | 
    // 切换类型 
 | 
    const clickTag = (index: number): void => { 
 | 
        typeList.value.forEach((item: any, i: number) => { 
 | 
            item.active = index === i; 
 | 
        }) 
 | 
    } 
 | 
  
 | 
    // 获取工单详情 
 | 
    const queryByIds = () => { 
 | 
        queryById(route.query.gdId) 
 | 
            .then(res => { 
 | 
                if (res.code === 200) { 
 | 
                    info.value = res.data 
 | 
                    let router: any = route.query.type 
 | 
                    let title: string = '' 
 | 
                    if (router == 1) {  // 巡线 
 | 
                        title = '生产巡线' 
 | 
                        typeList.value.push({ name: '巡线', id: '0', active: true }) 
 | 
                    } else if (router == 2) {  // 巡检 
 | 
                        title = '品质检验' 
 | 
                        typeList.value.push({ name: '巡检', id: '1', active: true }) 
 | 
                        if (res.data.status === 3) {    // 已检验状态才展示完工检验入口 
 | 
                            typeList.value.push({ name: '完工检验', id: '2', active: false }) 
 | 
                        } 
 | 
                    } 
 | 
                    document.title = title 
 | 
                    // 判断是否在钉钉内 
 | 
                    if (dd.env.platform !== 'notInDingTalk') { 
 | 
                        // 如果是钉钉登录,设置钉钉导航栏标题为router里meta标签里设置的title 
 | 
                        dd.biz.navigation.setTitle({ 
 | 
                            title: title, 
 | 
                            // @ts-ignore 
 | 
                            onSuccess: (result: any) => { 
 | 
                                console.log('设置钉钉title成功') 
 | 
                            }, 
 | 
                            onFail: (err: any) => { 
 | 
                                console.log('设置钉钉title失败') 
 | 
                            } 
 | 
                        }) 
 | 
                    } 
 | 
                } 
 | 
            }) 
 | 
    } 
 | 
  
 | 
    // 查询工装器具详情 
 | 
    const getListByConditions = (id: any): void => { 
 | 
        getListByCondition({ 
 | 
            id 
 | 
        }).then(res => { 
 | 
            if (res.code === 200 && res.data && res.data.length !== 0) { 
 | 
                infos.value = res.data[0] 
 | 
                data.id = infos.value.id 
 | 
            } 
 | 
        }) 
 | 
    } 
 | 
  
 | 
    // 不良原因数据 
 | 
    const checkAllLists = () => { 
 | 
        checkAllList({ bmodelCateType: '3' }) 
 | 
            .then(res => { 
 | 
                if (res.code === 200 && res.data && res.data.length !== 0) { 
 | 
                    res.data.forEach((item: any) => { 
 | 
                        columns1.value.push({ text: item.combinationName, id: item.id }) 
 | 
                    }) 
 | 
                } 
 | 
            }) 
 | 
    } 
 | 
  
 | 
    // 查询不良/报废工装 
 | 
    const getListByConditions1 = () => { 
 | 
        getListByCondition({ 
 | 
            smodelLabel: `${Attribute.BL},${Attribute.BF}` 
 | 
        }).then(res => { 
 | 
            if (res.code === 200 && res.data && res.data.length !== 0) { 
 | 
                res.data.forEach((item: any) => { 
 | 
                    columns.value.push({ text: item.code, id: item.id }) 
 | 
                }) 
 | 
            } 
 | 
        }) 
 | 
    } 
 | 
  
 | 
    // 提交检验 
 | 
    const submit = () => { 
 | 
        if (!data.qualified) { 
 | 
            data.qualified = 0 
 | 
        } 
 | 
        if (!data.unqualified) { 
 | 
            data.unqualified = 0 
 | 
        } 
 | 
        if (data.qualified === 0 && data.unqualified === 0) { 
 | 
            return Toast({ message: '合格数量不能同时为0!', duration: 2000 }) 
 | 
        } 
 | 
        if (data.unqualified > 0) { 
 | 
            if (!data.defectiveTooling) return Toast({ message: '不良工装不能为空!', duration: 2000 }) 
 | 
            if (!data.defectDescription) return Toast({ message: '不良原因不能为空!', duration: 2000 }) 
 | 
        } 
 | 
        let checkType: any; 
 | 
        typeList.value.forEach((item: any) => { 
 | 
            if (item.active) { 
 | 
                checkType = item.id 
 | 
            } 
 | 
        }) 
 | 
        createJY({ 
 | 
            workorderId: route.query.gdId, 
 | 
            appliancesId: data.id, 
 | 
            qualifiedNum: data.qualified, 
 | 
            unqualifiedNum: data.unqualified, 
 | 
            qualifiedApplianceId: data.defectiveTooling, 
 | 
            checkInfo: data.defectDescription, 
 | 
            remark: remark.value, 
 | 
            checkType: checkType 
 | 
        }).then(res => { 
 | 
            if (res.code === 200) { 
 | 
                Toast.success({ message: '检验成功!', duration: 2000, forbidClick: true }) 
 | 
                setTimeout(() => { 
 | 
                    router.go(-1) 
 | 
                }, 2000) 
 | 
            } 
 | 
        }) 
 | 
    } 
 | 
  
 | 
    // 监听不良数量 
 | 
    watch(() => data.unqualified, (news, old) => { 
 | 
        isShow.value = news > 0; 
 | 
        if (news > 0) { 
 | 
            data.defectiveTooling = '' 
 | 
            data.defectiveToolingName = '' 
 | 
            data.defectDescription = '' 
 | 
            data.defectDescriptionName = '' 
 | 
        } 
 | 
    }, { deep: true }) 
 | 
  
 | 
    onMounted(() => { 
 | 
        queryByIds() 
 | 
        getListByConditions(route.query.gzId) 
 | 
        checkAllLists() 
 | 
        getListByConditions1() 
 | 
    }) 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scoped> 
 | 
.page { 
 | 
    width: 100%; 
 | 
    background: #F7F7F7; 
 | 
    height: 100%; 
 | 
    position: absolute; 
 | 
    .page_info { 
 | 
        padding: 30px; 
 | 
        background: white; 
 | 
        .page_info_title { 
 | 
            display: flex; 
 | 
            align-items: center; 
 | 
            justify-content: space-between; 
 | 
            .purple { 
 | 
                color: $nav-color !important; 
 | 
            } 
 | 
            .green { 
 | 
                color: $nav-stateColor6 !important; 
 | 
            } 
 | 
            .yellow { 
 | 
                color: $nav-stateColor1 !important; 
 | 
            } 
 | 
            span { 
 | 
                &:first-child { 
 | 
                    font-size: 32px; 
 | 
                    font-weight: 500; 
 | 
                    color: #333333; 
 | 
                } 
 | 
                &:last-child { 
 | 
                    font-size: 26px; 
 | 
                    font-weight: 400; 
 | 
                    color: #03AF76; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        .page_info_code { 
 | 
            margin: 24px 0; 
 | 
            font-size: 24px; 
 | 
            font-weight: 400; 
 | 
            color: #666666; 
 | 
        } 
 | 
        .page_info_nr { 
 | 
            padding: 30px; 
 | 
            background: #F7F7F7; 
 | 
            border-radius: 16px; 
 | 
            display: flex; 
 | 
            align-items: center; 
 | 
            justify-content: space-between; 
 | 
            flex-wrap: wrap; 
 | 
            .page_info_nr_item { 
 | 
                width: 50%; 
 | 
                display: flex; 
 | 
                align-items: flex-start; 
 | 
                margin-top: 24px; 
 | 
                &:nth-child(1) { 
 | 
                    margin-top: 0; 
 | 
                } 
 | 
                &:nth-child(2) { 
 | 
                    margin-top: 0; 
 | 
                } 
 | 
                span { 
 | 
                    &:nth-child(1) { 
 | 
                        font-size: 24px; 
 | 
                        font-weight: 400; 
 | 
                        color: #666666; 
 | 
                        flex-shrink: 0; 
 | 
                    } 
 | 
                    &:nth-child(2) { 
 | 
                        font-size: 24px; 
 | 
                        font-weight: 400; 
 | 
                        color: #222222; 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        .page_info_yq { 
 | 
            display: flex; 
 | 
            align-items: center; 
 | 
            justify-content: space-between; 
 | 
            margin-top: 30px; 
 | 
            .page_info_yq_nr { 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                span { 
 | 
                    &:nth-child(1) { 
 | 
                        font-size: 26px; 
 | 
                        font-weight: 400; 
 | 
                        color: #666666; 
 | 
                    } 
 | 
                    &:nth-child(2) { 
 | 
                        font-size: 26px; 
 | 
                        font-weight: 400; 
 | 
                        color: #222222; 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
    .page_h { 
 | 
        height: 20px; 
 | 
    } 
 | 
    .padding { 
 | 
        padding: 0 30px !important; 
 | 
    } 
 | 
    .page_lx_item { 
 | 
        background: white; 
 | 
        height: 98px; 
 | 
        display: flex; 
 | 
        align-items: center; 
 | 
        justify-content: space-between; 
 | 
        span { 
 | 
            font-size: 30px; 
 | 
            font-weight: 400; 
 | 
            color: #222222; 
 | 
        } 
 | 
        .page_lx_item_is { 
 | 
            display: flex; 
 | 
            align-items: center; 
 | 
            .active { 
 | 
                background: $nav-color !important; 
 | 
                span { 
 | 
                    color: #ffffff !important; 
 | 
                } 
 | 
            } 
 | 
            .page_lx_item_is_i { 
 | 
                padding: 18px 32px; 
 | 
                background: #F2F2F2; 
 | 
                border-radius: 8px; 
 | 
                margin-right: 20px; 
 | 
                &:last-child { 
 | 
                    margin: 0; 
 | 
                } 
 | 
                span { 
 | 
                    font-size: 26px; 
 | 
                    font-weight: 400; 
 | 
                    color: #333333; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        .page_lx_item_i { 
 | 
            display: flex; 
 | 
            align-items: center; 
 | 
            span { 
 | 
                font-size: 28px; 
 | 
                font-weight: 400; 
 | 
                color: #999999; 
 | 
                margin-right: 10px; 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
    .page_content { 
 | 
        padding: 30px 30px 0 30px; 
 | 
        background: white; 
 | 
        .page_content_title { 
 | 
            font-size: 32px; 
 | 
            font-weight: 500; 
 | 
            color: $nav-color; 
 | 
        } 
 | 
        .page_content_item { 
 | 
            display: flex; 
 | 
            align-items: center; 
 | 
            justify-content: space-between; 
 | 
            height: 98px; 
 | 
            border-bottom: 1px solid #E5E5E5; 
 | 
            &:last-child { 
 | 
                border: none; 
 | 
            } 
 | 
            span { 
 | 
                font-size: 30px; 
 | 
                font-weight: 400; 
 | 
                color: #222222; 
 | 
            } 
 | 
            .page_content_item_is { 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                span { 
 | 
                    font-size: 28px; 
 | 
                    font-weight: 400; 
 | 
                    color: #999999; 
 | 
                    margin-right: 10px; 
 | 
                } 
 | 
            } 
 | 
            .page_content_item_i { 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                input { 
 | 
                    padding: 0 30px; 
 | 
                    text-align: right; 
 | 
                    width: 180px; 
 | 
                    height: 60px; 
 | 
                    border-radius: 8px; 
 | 
                    border: 1PX solid #CCCCCC; 
 | 
                    font-size: 28px; 
 | 
                    font-weight: 400; 
 | 
                    color: #000000; 
 | 
                    margin-right: 20px; 
 | 
                } 
 | 
                span { 
 | 
                    font-size: 28px; 
 | 
                    font-weight: 400; 
 | 
                    color: #666666; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        .page_content_sm { 
 | 
            width: 100%; 
 | 
            text-align: right; 
 | 
            margin-top: 20px; 
 | 
            display: flex; 
 | 
            justify-content: flex-end; 
 | 
            .page_content_sm_box { 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                img { 
 | 
                    width: 28px; 
 | 
                    height: 28px; 
 | 
                    margin-right: 12px; 
 | 
                } 
 | 
                span { 
 | 
                    font-size: 28px; 
 | 
                    font-weight: 400; 
 | 
                    color: $nav-color; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
    .page_remark { 
 | 
        width: 100%; 
 | 
        height: 200px; 
 | 
        padding: 30px; 
 | 
        box-sizing: border-box; 
 | 
        background: #ffffff; 
 | 
        margin-top: 30px; 
 | 
        textarea { 
 | 
            width: 100%; 
 | 
            height: 100%; 
 | 
            resize: none; 
 | 
            padding: 10px; 
 | 
            box-sizing: border-box; 
 | 
            font-size: 26px; 
 | 
            color: black; 
 | 
            border-radius: 10px; 
 | 
            border: 1PX solid #bdbdbd; 
 | 
        } 
 | 
    } 
 | 
    .page_lx { 
 | 
        padding: 0 30px; 
 | 
        background: white; 
 | 
        .page_lx_item { 
 | 
            height: 98px; 
 | 
            display: flex; 
 | 
            align-items: center; 
 | 
            justify-content: space-between; 
 | 
            border-bottom: 1px solid #E5E5E5; 
 | 
            &:last-child { 
 | 
                border: none; 
 | 
            } 
 | 
            span { 
 | 
                font-size: 30px; 
 | 
                font-weight: 400; 
 | 
                color: #222222; 
 | 
            } 
 | 
            .page_lx_item_is { 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                .active { 
 | 
                    background: $nav-color !important; 
 | 
                    span { 
 | 
                        color: #ffffff !important; 
 | 
                    } 
 | 
                } 
 | 
                .page_lx_item_is_i { 
 | 
                    padding: 18px 32px; 
 | 
                    background: #F2F2F2; 
 | 
                    border-radius: 8px; 
 | 
                    margin-right: 20px; 
 | 
                    &:last-child { 
 | 
                        margin: 0; 
 | 
                    } 
 | 
                    span { 
 | 
                        font-size: 26px; 
 | 
                        font-weight: 400; 
 | 
                        color: #333333; 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
            .page_lx_item_i { 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                span { 
 | 
                    font-size: 28px; 
 | 
                    font-weight: 400; 
 | 
                    color: #999999; 
 | 
                    margin-right: 10px; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
    .page_zw { 
 | 
        height: 160px; 
 | 
    } 
 | 
    .page_footer { 
 | 
        width: 100%; 
 | 
        padding: 0 30px 67px 30px; 
 | 
        box-sizing: border-box; 
 | 
        display: flex; 
 | 
        align-items: center; 
 | 
        justify-content: space-between; 
 | 
        position: fixed; 
 | 
        bottom: 0; 
 | 
        left: 0; 
 | 
        .page_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: #4275FC; 
 | 
            display: flex; 
 | 
            align-items: center; 
 | 
            justify-content: center; 
 | 
        } 
 | 
        .page_footer_tj { 
 | 
            width: 334px; 
 | 
            height: 88px; 
 | 
            border: none; 
 | 
            background: #4275FC; 
 | 
            box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.08); 
 | 
            border-radius: 8px; 
 | 
            display: flex; 
 | 
            align-items: center; 
 | 
            justify-content: center; 
 | 
            font-size: 30px; 
 | 
            font-weight: 500; 
 | 
            color: #FFFFFF; 
 | 
        } 
 | 
    } 
 | 
} 
 | 
</style> 
 |