| <template> | 
|     <div class="adjustment"> | 
|         <div class="box"> | 
|             <div class="adjustment_item" @click="showList.show = true"> | 
|                 <span>单据类型</span> | 
|                 <div class="adjustment_item_xz"> | 
|                     <span :style="dataValue.documentTypeName ? 'color: #000' : ''">{{dataValue.documentTypeName ? dataValue.documentTypeName : '点击选择'}}</span> | 
|                     <van-icon name="arrow" size="20" color="#999999" /> | 
|                 </div> | 
|             </div> | 
|             <div class="adjustment_item" @click="showList.show1 = true"> | 
|                 <span>入库仓库</span> | 
|                 <div class="adjustment_item_xz"> | 
|                     <span :style="dataValue.warehouseName ? 'color: #000' : ''">{{dataValue.warehouseName ? dataValue.warehouseName : '点击选择'}}</span> | 
|                     <van-icon name="arrow" size="20" color="#999999" /> | 
|                 </div> | 
|             </div> | 
|         </div> | 
|         <div class="adjustment_title">入库物料清单</div> | 
|         <van-swipe-cell v-for="(item, index) in list" :key="item.code"> | 
|             <div class="box"> | 
|                 <div class="adjustment_item"> | 
|                     <span>工装器具</span> | 
|                     <div class="adjustment_item_xz"> | 
|                         <span class="black">{{ item.code }}</span> | 
|                     </div> | 
|                 </div> | 
|                 <div class="adjustment_item" @click="openWL(index)"> | 
|                     <span>入库物料</span> | 
|                     <div class="adjustment_item_xz"> | 
|                         <span :style="item.wlName ? 'color: #000;' : ''">{{item.wlName ? item.wlName : '点击选择入库物料'}}</span> | 
|                         <van-icon name="arrow" size="20" color="#999999" /> | 
|                     </div> | 
|                 </div> | 
|                 <div class="sweep"> | 
|                     <div class="sweep_box" @click="openCode('请扫描物料码', index)"> | 
|                         <img src="@/assets/icon/jianyan_ic_saoma@2x.png" alt="" /> | 
|                         <span>扫描物料</span> | 
|                     </div> | 
|                 </div> | 
|                 <div class="adjustment_item" @click="openGX(index)" v-if="item.wlName && item.type"> | 
|                     <span>生产工序</span> | 
|                     <div class="adjustment_item_xz"> | 
|                         <span :style="item.gxName ? 'color: #000;' : ''">{{item.gxName ? item.gxName : '点击选择'}}</span> | 
|                         <van-icon name="arrow" size="20" color="#999999" /> | 
|                     </div> | 
|                 </div> | 
|                 <div class="adjustment_item" @click="openSX(index)" v-if="item.wlName"> | 
|                     <span>质量属性</span> | 
|                     <div class="adjustment_item_xz"> | 
|                         <span :style="item.sxName ? 'color: #000;' : ''">{{item.sxName ? item.sxName : '点击选择'}}</span> | 
|                         <van-icon name="arrow" size="20" color="#999999" /> | 
|                     </div> | 
|                 </div> | 
|                 <div class="adjustment_item" v-if="item.wlName"> | 
|                     <span>批次号</span> | 
|                     <div class="adjustment_item_xz"> | 
|                         <input type="text" v-model="item.pch" placeholder="请输入" /> | 
|                     </div> | 
|                 </div> | 
|                 <div class="adjustment_item" v-if="item.wlName"> | 
|                     <span>入库数量({{ item.dw }})</span> | 
|                     <div class="adjustment_item_xz"> | 
|                         <input type="text" @blur="numBlur(index)" v-model="item.num" placeholder="0" /> | 
|                     </div> | 
|                 </div> | 
|             </div> | 
|             <template #right> | 
|                 <van-button style="height: 100%;" square type="danger" text="删除" @click="dele(index)" /> | 
|             </template> | 
|         </van-swipe-cell> | 
|         <div class="zw"></div> | 
|         <div class="footer"> | 
|             <div class="footer_jx" @click="openCode('请扫描工装码')">继续扫码</div> | 
|             <div class="footer_w"></div> | 
|             <button class="footer_tj" v-preventReClick @click="submit">提交入库</button> | 
|         </div> | 
|     </div> | 
|     <!--  单据类型  --> | 
|     <van-popup v-model:show="showList.show" position="bottom" round :style="{ height: '45%' }"> | 
|         <van-picker | 
|             title="请选择单据类型" | 
|             :columns="showList.columns" | 
|             @confirm="onConfirm" | 
|             @cancel="onCancel" | 
|         /> | 
|     </van-popup> | 
|     <!--  选择仓库  --> | 
|     <Warehouse :show="showList.show1" @close="close" @value="getValue" /> | 
|     <!--  入库物料  --> | 
|     <Material :show="showList.show2" @close="close1" @value="getValue1" /> | 
|     <!--  生产工序  --> | 
|     <van-popup v-model:show="showList.show3" position="bottom" round :style="{ height: '45%' }"> | 
|         <van-picker | 
|             title="请选择生产工序" | 
|             :columns="showList.columns3" | 
|             @confirm="onConfirm3" | 
|             @cancel="onCancel3" | 
|         /> | 
|     </van-popup> | 
|     <!--  质量属性  --> | 
|     <van-popup v-model:show="showList.show4" position="bottom" round :style="{ height: '45%' }"> | 
|         <van-picker | 
|             title="请选择质量属性" | 
|             :columns="showList.columns4" | 
|             @confirm="onConfirm4" | 
|             @cancel="onCancel4" | 
|         /> | 
|     </van-popup> | 
|     <!--  扫码  --> | 
|     <v-ScanCode | 
|         :openCode="showList.openCode" | 
|         :infos="showList.info" | 
|         @closePopup="closePopup" | 
|         @onDecode="onDecode" /> | 
| </template> | 
|   | 
| <script setup lang="ts"> | 
|     import { ref, reactive, onMounted } from 'vue' | 
|     import { useRoute, useRouter } from "vue-router" | 
|     import { getBarcodeContent, getListByCondition } from "@/apis/WorkOrderAPI" | 
|     import { wOutBoundForStockUp, getMaterialItem, getListByMaterialId } from '@/apis/ExWarehouse' | 
|     import { QRCodeType, Attribute } from '@/enum' | 
|     import { REGULAR } from '@/utils/utils' | 
|     import { Toast } from 'vant' | 
|     import Warehouse from '@/components/common/Warehouse.vue' | 
|     import Material from '@/components/common/Material.vue' | 
|   | 
|     const route = useRoute() | 
|     const router = useRouter() | 
|   | 
|     // 控制页面数据验证 | 
|     interface verification { | 
|         info: Array<string>, | 
|         openCode: boolean, | 
|         show: boolean, | 
|         columns: Array<any>, | 
|         show1: boolean, | 
|         show2: boolean, | 
|         show3: boolean, | 
|         columns3: Array<any>, | 
|         show4: boolean, | 
|         columns4: Array<any> | 
|     } | 
|   | 
|     // 清单数据验证 | 
|     interface list { | 
|         id: string | number, | 
|         code: string, | 
|         attribute: string, | 
|         dw: string, | 
|         wlId: string, | 
|         wlName: string, | 
|         wlCompany: string, | 
|         gxId: string, | 
|         gxName: string, | 
|         sxId: string, | 
|         sxName: string, | 
|         pch: string, | 
|         num: string, | 
|         type: boolean // 判断有没有工序 | 
|     } | 
|   | 
|     // 单据类型/入库仓库数据验证 | 
|     interface ckVerification { | 
|         warehouseName: string, | 
|         warehouseId: string, | 
|         documentTypeName: string, | 
|         documentTypeId: string, | 
|         warehouseAttribute: string | 
|     } | 
|   | 
|     // 单据类型/入库仓库 | 
|     let dataValue = ref<ckVerification>({ | 
|         warehouseName: '', | 
|         warehouseId: '', | 
|         warehouseAttribute: '', | 
|         documentTypeName: '库存调整', | 
|         documentTypeId: '28' | 
|     }) | 
|   | 
|     // 插入物料详细索引 | 
|     let index = ref<number>() | 
|   | 
|     // 入库清单 | 
|     let list = ref<Array<list>>([]) | 
|   | 
|     // 控制下拉显示/隐藏/数据 | 
|     let showList = reactive<verification>({ | 
|         info: [], | 
|         openCode: false, | 
|         show: false, | 
|         // 13 客返返修入库 | 
|         // 17 客退返修入库 | 
|         // 28 库存调整 | 
|         columns: [{ text: '库存调整', id: '28' }], | 
|         // ,{ text: '客返检验入库', id: '1' },{ text: '客退检验入库', id: '2' }], | 
|         show1: false, | 
|         show2: false, | 
|         show3: false, | 
|         columns3: [], | 
|         show4: false, | 
|         columns4: [] | 
|     }) | 
|   | 
|     // 删除对应的工装 | 
|     const dele = (i: number): void => { | 
|         if (list.value.length === 1) { | 
|             Toast.fail({ message: "至少保留一个工装" }) | 
|             return | 
|         } | 
|         list.value.splice(i, 1) | 
|     } | 
|   | 
|     // 提交调整入库 | 
|     const submit = () => { | 
|         let isOpen: boolean = true | 
|         if (!dataValue.value.documentTypeId) return Toast.fail({ message: '单据类型不能为空' }) | 
|         if (!dataValue.value.warehouseId) return Toast.fail({ message: '入库仓库不能为空' }) | 
|         list.value.forEach((element: any) => { | 
|             if (element.type && !element.gxId) { | 
|                 isOpen = false | 
|                 return Toast.fail({message: `请完善[${element.code}]的生产工序`}) | 
|             } | 
|             if (!element.wlId) { | 
|                 isOpen = false | 
|                 return Toast.fail({message: `请完善[${element.code}]的入库物料`}) | 
|             } | 
|             if (!element.sxId) { | 
|                 isOpen = false | 
|                 return Toast.fail({message: `请完善[${element.code}]的质量属性`}) | 
|             } | 
|             if (!element.num) { | 
|                 isOpen = false | 
|                 return Toast.fail({message: `请完善[${element.code}]的入库数量`}) | 
|             } | 
|         }) | 
|         if (isOpen) { | 
|             let woutboundInBodyBeanList: Array<any> = [] | 
|             list.value.forEach((element: any) => { | 
|                 woutboundInBodyBeanList.push({ | 
|                     appliancesId: element.id, | 
|                     batch: element.pch, | 
|                     materialId: element.wlId, | 
|                     num: Number(element.num), | 
|                     procedureId: element.gxId, | 
|                     qualityType: Number(element.sxId), | 
|                     unitId: element.wlCompany | 
|                 }) | 
|             }) | 
|             wOutBoundForStockUp({ | 
|                 type: Number(dataValue.value.documentTypeId), | 
|                 warehouseId: Number(dataValue.value.warehouseId), | 
|                 woutboundInBodyBeanList | 
|             }).then(res => { | 
|                 if (res.code === 200) { | 
|                     Toast.success({ message: '创建成功', forbidClick: true, duration: 2000 }) | 
|                     setTimeout(() => { | 
|                         router.go(-1) | 
|                     }, 2000) | 
|                 } | 
|             }) | 
|         } | 
|     } | 
|   | 
|     // 输入数量失去焦点校验单位 | 
|     const numBlur = (i: number): void => { | 
|         if (Number(list.value[i].wlCompany) === 0) { | 
|             if (!REGULAR.positiveInteger.test(list.value[i].num)) { | 
|                 list.value[i].num = '' | 
|                 Toast.fail({ message: `物料[${list.value[i].code}]只能输入正整数` }) | 
|             } | 
|         } else if (Number(list.value[i].wlCompany) === 1) { | 
|             if (!REGULAR.number.test(list.value[i].num)) { | 
|                 list.value[i].num = '' | 
|                 Toast.fail({ message: `物料[${list.value[i].code}]只能输入整数或小数(四位)` }) | 
|             } | 
|         } | 
|     } | 
|   | 
|     // 打开质量属性选择 | 
|     const openSX = (i: number) => { | 
|         setIndexes(i) | 
|         if (list.value[i].attribute === Attribute.HH) {  // 混合 | 
|             showList.columns4 = [{ text: '合格', id: '0' },{ text: '不良', id: '1' },{ text: '报废', id: '2' }] | 
|         } else if (list.value[i].attribute === Attribute.HG) {  // 合格 | 
|             showList.columns4 = [{ text: '合格', id: '0' }] | 
|         } else if (list.value[i].attribute === Attribute.BL) {  // 不良 | 
|             showList.columns4 = [{ text: '不良', id: '1' }] | 
|         } else if (list.value[i].attribute === Attribute.BF) {  // 报废 | 
|             showList.columns4 = [{ text: '报废', id: '2' }] | 
|         } | 
|         showList.show4 = true | 
|     } | 
|   | 
|     // 打开工序选择 | 
|     const openGX = async (i: number) => { | 
|         setIndexes(i) | 
|         let res = await getListByMaterialId({ | 
|             materialId: list.value[i].wlId | 
|         }) | 
|         if (res.code === 200) { | 
|             showList.columns3 = [] | 
|             res.data.forEach((element: any) => { | 
|                 showList.columns3.push({ text: element.name, id: element.id }) | 
|             }) | 
|             showList.show3 = true | 
|         } | 
|     } | 
|   | 
|     const openWL = (i: number) => { | 
|         setIndexes(i) | 
|         showList.show2 = true | 
|     } | 
|   | 
|     // 设置插入索引 | 
|     const setIndexes = (i: number): void => { | 
|         index.value = i | 
|     } | 
|   | 
|     // 打开扫码 | 
|     const openCode = (type: string, i: number): void => { | 
|         if (type === '请扫描工装码' && !dataValue.value.warehouseId) { | 
|             Toast.fail({ message: '请先选择入库仓库' }) | 
|             return | 
|         } | 
|         setIndexes(i) | 
|         showList.info = [type] | 
|         showList.openCode = true | 
|     } | 
|   | 
|     // 获取扫码回调 | 
|     const onDecode = async (data: string[]): Promise<void> => { | 
|         showList.openCode = false | 
|         let res = await getBarcodeContent({ | 
|             barcode: data[0] | 
|         }) | 
|         if (showList.info[0] === '请扫描物料码') { | 
|             if (res.data.barcodeType === QRCodeType.WL) { | 
|                 let wl = await getMaterialItem({ materialId: res.data.id }) | 
|                 if (wl.code === 200) { | 
|                     list.value[index.value as number].wlName = wl.data.mmodelUnionName | 
|                     list.value[index.value as number].wlId = wl.data.id | 
|                     list.value[index.value as number].wlCompany = wl.data.umodelAttributeData | 
|                     let gx = await getListByMaterialId({ | 
|                         materialId: wl.data.id | 
|                     }) | 
|                     if (gx.code === 200) { | 
|                         list.value[index.value as number].type = gx.code === 200 && gx.data.length > 0 | 
|                         if (gx.data && gx.data.length > 0) { | 
|                             list.value[index.value as number].gxId = gx.data[0].id | 
|                             list.value[index.value as number].gxName = gx.data[0].name | 
|                         } | 
|                     } | 
|                 } | 
|             } else { | 
|                 Toast.fail({ message: '请扫描正确的物料码' }) | 
|             } | 
|         } else if (showList.info[0] === '请扫描工装码') { | 
|             if (res.data.barcodeType === QRCodeType.GZ) { | 
|                 let gz = await getListByCondition({ id: res.data.id }) | 
|                 if (gz.code === 200) { | 
|                     let isOpen: boolean = true | 
|                     list.value.forEach((element: any) => { | 
|                         if (element.id === gz.data[0].id) { | 
|                             isOpen = false | 
|                             Toast.fail({ message: '工装不能重复添加' }) | 
|                         } | 
|                     }) | 
|                     if (isOpen) { | 
|                         if (gz.data[0].status === 1) { | 
|                             if (dataValue.value.warehouseAttribute === Attribute.HH) { | 
|                                 setData(gz.data[0], gz.data[0].smodelLabel) | 
|                                 return | 
|                             } else if (dataValue.value.warehouseAttribute === Attribute.HG) { | 
|                                 if (gz.data[0].smodelLabel !== Attribute.HG) { | 
|                                     Toast.fail({ message: '工装属性必须和仓库属性一致' }) | 
|                                     return | 
|                                 } | 
|                                 setData(gz.data[0], gz.data[0].smodelLabel) | 
|                             } else if (dataValue.value.warehouseAttribute === Attribute.BL) { | 
|                                 if (gz.data[0].smodelLabel !== Attribute.BL) { | 
|                                     Toast.fail({ message: '工装属性必须和仓库属性一致' }) | 
|                                     return | 
|                                 } | 
|                                 setData(gz.data[0], gz.data[0].smodelLabel) | 
|                             } else if (dataValue.value.warehouseAttribute === Attribute.BF) { | 
|                                 if (gz.data[0].smodelLabel !== Attribute.BF) { | 
|                                     Toast.fail({ message: '工装属性必须和仓库属性一致' }) | 
|                                     return | 
|                                 } | 
|                                 setData(gz.data[0], gz.data[0].smodelLabel) | 
|                             } | 
|                         } else { | 
|                             Toast.fail({ message: '请扫描空的工装' }) | 
|                         } | 
|                     } | 
|                 } | 
|             } else { | 
|                 Toast.fail({ message: '请扫描正确的工装码' }) | 
|             } | 
|         } | 
|     } | 
|   | 
|     // 插入物料清单 | 
|     const setData = async (element: any, type: string): Promise<void> => { | 
|         let item = { | 
|             id: element.id, | 
|             code: element.code, | 
|             attribute: element.smodelLabel, | 
|             dw: list.value[list.value.length - 1].dw, | 
|             wlId: list.value[list.value.length - 1].wlId, | 
|             wlName: list.value[list.value.length - 1].wlName, | 
|             gxId: list.value[list.value.length - 1].gxId, | 
|             gxName: list.value[list.value.length - 1].gxName, | 
|             sxId: '', | 
|             sxName: '', | 
|             pch: list.value[list.value.length - 1].pch, | 
|             num: list.value[list.value.length - 1].num, | 
|             type: list.value[list.value.length - 1].type | 
|         } | 
|         if (type === Attribute.HH) { | 
|             item.sxId = '0' | 
|             item.sxName = '合格' | 
|         } else if (type === Attribute.HG) { | 
|             item.sxId = '0' | 
|             item.sxName = '合格' | 
|         } else if (type === Attribute.BL) { | 
|             item.sxId = '1' | 
|             item.sxName = '不良' | 
|         } else if (type === Attribute.BF) { | 
|             item.sxId = '2' | 
|             item.sxName = '报废' | 
|         } | 
|         list.value.unshift(item as never) | 
|     } | 
|   | 
|     // 关闭扫码 | 
|     const closePopup = () => { | 
|         showList.openCode = false | 
|     } | 
|   | 
|     // 单据类型确认 | 
|     const onConfirm = (val: any): void => { | 
|         dataValue.value.documentTypeId = val.id | 
|         dataValue.value.documentTypeName = val.text | 
|         showList.show = false | 
|     } | 
|   | 
|     const onCancel = (val: any): void => { | 
|         showList.show = false | 
|     } | 
|   | 
|     const close = (val: any): void => { | 
|         showList.show1 = false | 
|     } | 
|   | 
|     // 仓库确认 | 
|     const getValue = (val: any): void => { | 
|         if (val.tmodel.label === Attribute.HH) { | 
|             console.log('仓库是混合') | 
|             dataValue.value.warehouseId = val.id | 
|             dataValue.value.warehouseName = val.name | 
|             dataValue.value.warehouseAttribute = val.tmodel.label | 
|         } else if (list.value[0].attribute === Attribute.HG && val.tmodel.label === Attribute.HG) { | 
|             console.log('都是合格') | 
|             dataValue.value.warehouseId = val.id | 
|             dataValue.value.warehouseName = val.name | 
|             dataValue.value.warehouseAttribute = val.tmodel.label | 
|         } else if (list.value[0].attribute === Attribute.BL && val.tmodel.label === Attribute.BL) { | 
|             console.log('都是不良') | 
|             dataValue.value.warehouseId = val.id | 
|             dataValue.value.warehouseName = val.name | 
|             dataValue.value.warehouseAttribute = val.tmodel.label | 
|         } else if (list.value[0].attribute === Attribute.BF && val.tmodel.label === Attribute.BF) { | 
|             console.log('都是报废') | 
|             dataValue.value.warehouseId = val.id | 
|             dataValue.value.warehouseName = val.name | 
|             dataValue.value.warehouseAttribute = val.tmodel.label | 
|         } else { | 
|             Toast.fail({ message: '工装属性和仓库属性不一致' }) | 
|         } | 
|         showList.show1 = false | 
|     } | 
|   | 
|     const close1 = (val: any): void => { | 
|         showList.show2 = false | 
|     } | 
|   | 
|     // 物料确认 | 
|     const getValue1 = async (val: any): Promise<void> => { | 
|         let res = await getListByMaterialId({ | 
|             materialId: val.id | 
|         }) | 
|         if (res.code === 200) { | 
|             list.value[index.value as number].type = res.code === 200 && res.data.length > 0 | 
|             list.value[index.value as number].wlId = val.id | 
|             list.value[index.value as number].wlName = val.mmodelUnionName | 
|             list.value[index.value as number].wlCompany = val.umodelAttributeData | 
|             list.value[index.value as number].dw = val.umodelName | 
|             showList.columns4 = [] | 
|             if (list.value[index.value as number].attribute === Attribute.HH) {  // 混合 | 
|                 showList.columns4 = [{ text: '合格', id: '0' },{ text: '不良', id: '1' },{ text: '报废', id: '2' }] | 
|             } else if (list.value[index.value as number].attribute === Attribute.HG) {  // 合格 | 
|                 showList.columns4 = [{ text: '合格', id: '0' }] | 
|             } else if (list.value[index.value as number].attribute === Attribute.BL) {  // 不良 | 
|                 showList.columns4 = [{ text: '不良', id: '1' }] | 
|             } else if (list.value[index.value as number].attribute === Attribute.BF) {  // 报废 | 
|                 showList.columns4 = [{ text: '报废', id: '2' }] | 
|             } | 
|             if (showList.columns4.length > 0) { | 
|                 list.value[index.value as number].sxId = showList.columns4[0].id | 
|                 list.value[index.value as number].sxName = showList.columns4[0].text | 
|             } | 
|             let gx = await getListByMaterialId({ | 
|                 materialId: val.id | 
|             }) | 
|             if (gx.code === 200) { | 
|                 if (gx.data && gx.data.length > 0) { | 
|                     list.value[index.value as number].gxId = gx.data[0].id | 
|                     list.value[index.value as number].gxName = gx.data[0].name | 
|                 } | 
|             } | 
|         } | 
|         showList.show2 = false | 
|     } | 
|   | 
|     const onConfirm2 = (val: any): void => { | 
|         showList.show2 = false | 
|     } | 
|   | 
|     const onCancel2 = (val: any): void => { | 
|         showList.show2 = false | 
|     } | 
|   | 
|     // 工序确认 | 
|     const onConfirm3 = (val: any): void => { | 
|         list.value[index.value as number].gxId = val.id | 
|         list.value[index.value as number].gxName = val.text | 
|         showList.show3 = false | 
|     } | 
|   | 
|     const onCancel3 = (val: any): void => { | 
|         showList.show3 = false | 
|     } | 
|   | 
|     // 质量属性确认 | 
|     const onConfirm4 = (val: any): void => { | 
|         list.value[index.value as number].sxId = val.id | 
|         list.value[index.value as number].sxName = val.text | 
|         showList.show4 = false | 
|     } | 
|   | 
|     const onCancel4 = (val: any): void => { | 
|         showList.show4 = false | 
|     } | 
|   | 
|     // 获取工装信息 | 
|     const getLKLKInfo = (id: string): void => { | 
|         getListByCondition({ id }) | 
|             .then(res => { | 
|                 if (res.code === 200) { | 
|                     if (res.data[0].status === 1) { | 
|                         let obj = { | 
|                             id: res.data[0].id, | 
|                             code: res.data[0].code, | 
|                             attribute: res.data[0].smodelLabel, | 
|                             dw: res.data[0].umodelName, | 
|                             wlId: '', | 
|                             wlName: '', | 
|                             gxId: '', | 
|                             gxName: '', | 
|                             sxId: '', | 
|                             sxName: '', | 
|                             pch: '', | 
|                             num: '' | 
|                         } | 
|                         list.value.push(obj as never) | 
|                     } else { | 
|                         Toast.fail({ message: '请扫描空的工装' }) | 
|                     } | 
|                 } | 
|             }) | 
|     } | 
|   | 
|     onMounted(() => { | 
|         getLKLKInfo(route.query.id as string) | 
|     }) | 
| </script> | 
|   | 
| <style lang="scss" scoped> | 
| .adjustment { | 
|     position: absolute; | 
|     top: 0; | 
|     left: 0; | 
|     width: 100%; | 
|     height: 100%; | 
|     .box { | 
|         padding: 0 30px; | 
|         background: #ffffff; | 
|         margin-bottom: 30px; | 
|         &:last-child { | 
|             margin-bottom: 0 !important; | 
|         } | 
|         .sweep { | 
|             padding: 20px 0 30px 0; | 
|             .sweep_box { | 
|                 display: flex; | 
|                 align-items: center; | 
|                 justify-content: flex-end; | 
|                 img { | 
|                     width: 28px; | 
|                     height: 28px; | 
|                     margin-right: 12px; | 
|                 } | 
|                 span { | 
|                     font-size: 28px; | 
|                     font-weight: 400; | 
|                     color: $nav-color; | 
|                 } | 
|             } | 
|         } | 
|         .adjustment_item { | 
|             height: 98px; | 
|             display: flex; | 
|             align-items: center; | 
|             justify-content: space-between; | 
|             border-bottom: 1PX solid #E5E5E5; | 
|             &:last-child { | 
|                 border-bottom: 0 !important; | 
|             } | 
|             span { | 
|                 font-size: 30px; | 
|                 font-weight: 400; | 
|                 color: #222222; | 
|             } | 
|             .adjustment_item_xz { | 
|                 display: flex; | 
|                 align-items: center; | 
|                 input { | 
|                     text-align: right; | 
|                     padding: 0 30px; | 
|                     box-sizing: border-box; | 
|                     width: 400px; | 
|                     height: 60px; | 
|                     border-radius: 8px; | 
|                     font-size: 28px; | 
|                     border: 1PX solid #CCCCCC; | 
|                 } | 
|                 input::-webkit-input-placeholder { | 
|                     font-size: 28px; | 
|                     font-weight: 400; | 
|                     color: #999999; | 
|                 } | 
|                 .black { | 
|                     color: black !important; | 
|                 } | 
|                 span { | 
|                     font-size: 28px; | 
|                     font-weight: 400; | 
|                     color: #999999; | 
|                     margin-right: 10px; | 
|                 } | 
|             } | 
|         } | 
|     } | 
|     .adjustment_title { | 
|         padding: 40px 30px 30px 30px; | 
|         font-size: 32px; | 
|         font-weight: 500; | 
|         color: #222222; | 
|     } | 
|     .zw { | 
|         height: 168px; | 
|     } | 
|     .footer { | 
|         position: fixed; | 
|         bottom: 0; | 
|         left: 30px; | 
|         width: calc(100% - 60px); | 
|         padding-bottom: 68px; | 
|         display: flex; | 
|         align-items: center; | 
|         .footer_jx { | 
|             flex: 1; | 
|             height: 88px; | 
|             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; | 
|             font-size: 30px; | 
|             font-weight: 500; | 
|             color: $nav-color; | 
|         } | 
|         .footer_w { | 
|             width: 22px; | 
|         } | 
|         .footer_tj { | 
|             border: none; | 
|             flex: 1; | 
|             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> |