ADB 自动补全 及 offline 解决方法

部署运行你感兴趣的模型镜像

补全问题:

adb 在CMD 窗口下不能补全,试了xshell 也是不能补全,最后找到 cmder 是可以补全的

下载地址: http://cmder.net/ 

 

adb offline 问题:

D:\Program Files\cmder_mini
λ adb shell
error: device offline

 

在进行 adb kill-server 及 adb devices 后,依然 offline

D:\Program Files\cmder_mini
λ adb kill-server

D:\Program Files\cmder_mini
λ adb devices
List of devices attached
* daemon not running. starting it now at tcp:5037 *
* daemon started successfully *
1234567890ABCDEF        offline

 

查看 5037 端口是否被占用:

D:\Program Files\cmder_mini
λ adb nodaemon server
error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: 通常每个套接字地址(协议/网络地址/端口
)只允许使用一次。 (10048)

D:\Program Files\cmder_mini
λ netstat -ano | findstr "5037"
  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       3020

其中 3020 是 占用了5037端口号的程序的 pid

找到这个程序,关闭就可以了,如果无法关闭,只能重启电脑

转载于:https://www.cnblogs.com/CodingTheFuture/p/9984038.html

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

Line 3507: 01-01 19:26:38.540 01744 01744 I adbd : persist.adb.watchdog set to '' Line 3508: 01-01 19:26:38.542 01744 01744 I adbd : persist.sys.test_harness set to '' Line 3510: 01-01 19:26:38.542 01744 01744 I adbd : adb watchdog timeout set to 600 seconds Line 3511: 01-01 19:26:38.543 01744 01744 I adbd : adbd started Line 3511: 01-01 19:26:38.543 01744 01744 I adbd : adbd started Line 3513: 01-01 19:26:38.543 01744 01759 I adbd : opening control endpoint /dev/usb-ffs/adb/ep0 Line 3514: 01-01 19:26:38.544 01744 01757 I adbd : Waiting for persist.adb.tls_server.enable=1 Line 3517: 01-01 19:26:38.554 01744 01759 I adbd : UsbFfsConnection constructed Line 3526: 01-01 19:26:38.570 01744 01761 I adbd : UsbFfs-monitor thread spawned Line 4331: 01-01 19:26:39.572 01744 01761 W adbd : timed out while waiting for FUNCTIONFS_BIND, trying again Line 4332: 01-01 19:26:39.572 01744 01761 I adbd : UsbFfs: connection terminated: monitor thread finished Line 4333: 01-01 19:26:39.573 01744 01744 I adbd : UsbFfs: already offline Line 4334: 01-01 19:26:39.573 01744 01744 I adbd : destroying transport UsbFfs Line 4335: 01-01 19:26:39.573 01744 01744 I adbd : UsbFfsConnection being destroyed Line 4353: 01-01 19:26:39.642 01744 01759 I adbd : opening control endpoint /dev/usb-ffs/adb/ep0 Line 4355: 01-01 19:26:39.648 01744 01759 I adbd : UsbFfsConnection constructed Line 4363: 01-01 19:26:39.652 01744 01965 I adbd : UsbFfs-monitor thread spawned Line 6044: 01-01 19:26:40.669 01744 01965 W adbd : timed out while waiting for FUNCTIONFS_BIND, trying again Line 6045: 01-01 19:26:40.669 01744 01965 I adbd : UsbFfs: connection terminated: monitor thread finished Line 6046: 01-01 19:26:40.670 01744 01744 I adbd : UsbFfs: already offline Line 6047: 01-01 19:26:40.670 01744 01744 I adbd : destroying transport UsbFfs Line 6048: 01-01 19:26:40.670 01744 01744 I adbd : UsbFfsConnection being destroyed Line 6641: 01-01 19:26:40.810 01744 01759 I adbd : opening control endpoint /dev/usb-ffs/adb/ep0 Line 6703: 01-01 19:26:40.815 01744 01759 I adbd : UsbFfsConnection constructed Line 6726: 01-01 19:26:40.820 01744 02220 I adbd : UsbFfs-monitor thread spawned Line 7858: 01-01 19:26:41.384 01744 02220 I adbd : USB event: FUNCTIONFS_BIND Line 12899: 01-01 19:26:45.298 02952 02958 E Diag_Lib: DPL : gIsQXDMDisabled 0, gIsADBDisabled 0, gIsDebugDisabled 0, gIsIMSLogsDisabled 0 gIsDebugDataPathDisabled = 0 Line 13319: 01-01 19:26:45.317 02952 02958 E Diag_Lib: DPL : gIsQXDMDisabled 0, gIsADBDisabled 0, gIsDebugDisabled 0, gIsIMSLogsDisabled 0 gIsDebugDataPathDisabled = 0 Line 13978: 01-01 19:26:45.534 02924 02924 D CompatConfig: No directory /apex/com.android.adbd/etc/compatconfig, skipping Line 17407: 01-01 19:26:47.093 02924 02924 W PackageManager: No package known for package restrictions com.google.android.adbd Line 17766: 01-01 19:26:47.274 02924 02924 D PackageManager: Directories scanned as system partitions: [/system:0, /vendor:524288, /odm:4194304, /oem:262144, /product:1048576, /system_ext:2097152, /my_product/non_overlay:1048576, /mnt/opex/com.oplus.odmf@15002009:2097152, /mnt/opex/com.oplus.moduleservices@15000014:2097152, /mnt/opex/com.oplus.fancyIconLoader@1000000:2097152, /mnt/opex/com.oplus.NetworkAssistSys@15002031:2097152, /mnt/opex/com.oplus.CustCore@15000029:2097152, /my_company:1048576, /my_carrier:1048576, /my_bigball:1048576, /my_product/cust/TR:1048576, /apex/com.android.ipsec:41943040, /apex/com.android.ondevicepersonalization:41943040, /apex/com.android.cellbroadcast:41943040, /apex/com.android.profiling:41943040, /apex/com.android.nfcservices:41943040, /apex/com.android.media.swcodec:41943040, /apex/com.android.conscrypt:41943040, /apex/vendor.oplus.hardware.stability.aidl:42467328, /apex/com.android.os.statsd:41943040, /apex/com.android.wifi:41943040, /apex/com.android.uwb:41943040, /apex/com.android.virt:41943040, /apex/com.android.adservices:41943040, /apex/com.android.configinfrastructure:41943040, /apex/com.android.devicelock:41943040, /apex/com.android.appsearch:41943040, /apex/com.google.mainline.primary.libs:41943040, /apex/com.android.compos:44040192, /apex/com.android.tethering:41943040, /apex/com.android.resolv:41943040, /apex/com.android.mediaprovider:41943040, /apex/com.android.runtime:41943040, /apex/com.android.neuralnetworks:41943040, /apex/com.android.permission:41943040, /apex/com.android.adbd:41943040, /apex/com.android.i18n:41943040, /apex/com.android.scheduling:41943040, /apex/com.android.media:41943040, /apex/com.android.tzdata:41943040, /apex/vendor.oplus.hardware.engineer.aidl:42467328, /apex/com.android.sdkext:41943040, /apex/com.android.rkpd:41943040, /apex/com.android.apex.cts.shim:41943040, /apex/com.android.art:41943040, /apex/com.android.extservices:41943040, /apex/com.android.vndk.v33:44040192, /apex/com.android.healthfitness:41943040] Line 17819: 01-01 19:26:47.410 02924 02924 I PackageManager: /data/apex/decompressed/com.android.adbd@351010000.decompressed.apex changed; collecting certs Line 17823: 01-01 19:26:47.422 02924 02924 E PackageManagerServiceUtilsExtImpl: Fix up user restrict data of pkg: com.google.android.adbd Line 19413: 01-01 19:26:51.224 02924 02924 D PackageManager: No files in app dir /apex/com.android.adbd/priv-app Line 19414: 01-01 19:26:51.224 02924 02924 D PackageManager: No files in app dir /apex/com.android.adbd/app Line 20634: 01-01 19:26:52.985 02924 02924 W PackageSettings: Couldn't write -1 to /config/sdcardfs/com.google.android.adbd/appid Line 21520: 01-01 19:26:53.270 02924 02924 D OverlayManager: -> Updating overlay: target=com.google.android.adbd overlays=[OverlayPaths { resourceDirs = [], overlayPaths = [/data/resource-cache/com.android.systemui-neutral-coSn.frro, /data/resource-cache/com.android.systemui-accent-n7sV.frro, /data/resource-cache/com.android.systemui-dynamic-EysW.frro] }] userId=0 Line 29901: 01-01 19:26:55.625 02924 03113 I UsbDeviceManager: failed to write to /sys/class/android_usb/android0/f_rndis/ethaddr Line 29902: 01-01 19:26:55.626 02924 03113 D UsbPortManager: Querying USB Gadget HAL version Line 29915: 01-01 19:26:55.630 02924 03113 E UsbDeviceManager: connectToProxy: usb gadget hidl hal service not found. Line 29922: at com.android.server.usb.UsbDeviceManager.<init>(UsbDeviceManager.java:332) Line 29922: at com.android.server.usb.UsbDeviceManager.<init>(UsbDeviceManager.java:332) Line 29935: 01-01 19:26:55.630 02924 03113 E UsbPortManager: USB Gadget HAL AIDL/HIDL not present Line 29936: 01-01 19:26:55.630 02924 03113 D UsbDeviceManager: getInstance done Line 29946: 01-01 19:26:55.636 02924 03113 I UsbDeviceManager: mResetUsbGadgetDisableDebounce:false connected:0configured:0 Line 29948: 01-01 19:26:55.636 02924 03113 I UsbDeviceManager: removeMessages MSG_UPDATE_STATE Line 30039: 01-01 19:26:55.647 02924 03113 D UsbPortManager: Querying USB HAL version Line 30082: 01-01 19:26:55.658 02924 03113 I UsbPortManager: USB HAL HIDL present Line 30093: 01-01 19:26:55.665 02924 03304 I UsbPortManager: Usb hal service started android.hardware.usb@1.0::IUsb default Line 30103: 01-01 19:26:55.671 02924 03113 D UsbPortManager: getInstance done Line 33157: 01-01 19:26:56.637 02924 02969 I UsbDeviceManager: handleMessage MSG_UPDATE_STATE mConnected:false mConfigured:false Line 46190: 01-01 19:26:58.809 02924 03298 D UsbDeviceManager: systemReady Line 46192: 01-01 19:26:58.810 02924 02969 D UsbDeviceManager: UsbBootInfo: [mSystemReady: true, mBootCompleted: false, mConnected: false, mConfigured: false, mCurrentUsbFunctionsReceived: true, mPendingBootBroadcast: true, mScreenLocked: true, screenUnlockedFunctions: , isAdbEnabled: true] Line 46221: 01-01 19:26:58.814 02924 03304 I UsbPortManager: ClientCallback V1_2: port0 Line 46245: 01-01 19:26:58.818 02924 02969 I UsbPortManager: USB port added: port=UsbPort{id=port0, supportedModes=dual, audio_acc, supportedContaminantProtectionModes=0, supportsEnableContaminantPresenceProtection=false, supportsEnableContaminantPresenceDetection=false, supportsComplianceWarnings=false, status=UsbPortStatus{connected=true, currentMode=ufp, currentPowerRole=sink, currentDataRole=device, supportedRoleCombinations=[source:host, sink:device], contaminantDetectionStatus=0, contaminantProtectionStatus=0, usbDataStatus=unknown, isPowerTransferLimited=false, powerBrickConnectionStatus=unknown, complianceWarnings=[], plugState=0, displayPortAltModeInfo=null}, canChangeMode=true, canChangePowerRole=false, canChangeDataRole=false, connectedAtMillis=36033, lastConnectDurationMillis=0 Line 70581: 01-01 19:27:06.142 02924 02972 V UsbDeviceManager: onKeyguardStateChanged: isShowing:true secure:false user:0 Line 72918: 01-01 19:27:07.024 02924 02924 I UsbDeviceManager: updateHostState UsbPort{id=port0, supportedModes=dual, audio_acc, supportedContaminantProtectionModes=0, supportsEnableContaminantPresenceProtection=false, supportsEnableContaminantPresenceDetection=false, supportsComplianceWarnings=false status=UsbPortStatus{connected=true, currentMode=ufp, currentPowerRole=sink, currentDataRole=device, supportedRoleCombinations=[source:host, sink:device], contaminantDetectionStatus=0, contaminantProtectionStatus=0, usbDataStatus=unknown, isPowerTransferLimited=false, powerBrickConnectionStatus=unknown, complianceWarnings=[], plugState=0, displayPortAltModeInfo=null} Line 77542: 01-01 19:27:08.412 02924 02972 D UsbDeviceManager: boot completed Line 77613: 01-01 19:27:08.420 02924 02969 D UsbDeviceManager: UsbBootInfo: [mSystemReady: true, mBootCompleted: true, mConnected: false, mConfigured: false, mCurrentUsbFunctionsReceived: true, mPendingBootBroadcast: true, mScreenLocked: false, screenUnlockedFunctions: , isAdbEnabled: true] Line 77621: 01-01 19:27:08.421 02924 02969 D UsbDeviceManager: broadcasting Intent { act=android.hardware.usb.action.USB_STATE flg=0x31100000 (has extras) } extras: Bundle[{host_connected=false, connected=false, unlocked=false, adb=true, configured=false}] Line 77637: 01-01 19:27:08.423 02924 02969 D UsbDeviceManager: setEnabledFunctions [functions= ,forceRestart=false ,usbDataUnlocked=false ,mUsbDataUnlocked=false ,operationId=6] Line 77692: 01-01 19:27:08.444 02924 02969 D UsbDeviceManager: oplusFunctions: adb Line 77696: 01-01 19:27:08.446 02924 02969 D UsbDeviceManager: UsbFunc: [functions: adb, oemFunctions: adb, mCurrentFunctionsStr: adb, mCurrentOemFunctions: adb, forceRestart: false, mCurrentFunctionsApplied: true] Line 77700: 01-01 19:27:08.446 02924 02969 D UsbDeviceManager: updateMtpFunction , mtpEnabled: false, ptpEnabled: false, mIsMtpServiceBound: false Line 77814: 01-01 19:27:08.471 01744 01758 I adbd : adbd_auth: received a new framework connection Line 77814: 01-01 19:27:08.471 01744 01758 I adbd : adbd_auth: received a new framework connection Line 77815: 01-01 19:27:08.472 01744 01758 I adbd : adbd_auth: received new framework fd 16 (current = -1) Line 77815: 01-01 19:27:08.472 01744 01758 I adbd : adbd_auth: received new framework fd 16 (current = -1) Line 81135: 01-01 19:27:09.113 04893 04893 D vold_prepare_subdirs: Setting up mode 771 uid 0 gid 1000 context u:object_r:apex_module_data_file:s0 on path: /data/misc_ce/0/apexdata/com.android.adbd Line 82329: 01-01 19:27:09.362 02924 04870 W PackageManager: Skipping preparing app data for com.google.android.adbd Line 83351: 01-01 19:27:09.715 02924 02996 V UsbDeviceManager: onKeyguardStateChanged: isShowing:false secure:false user:0 分析adb链接中断原因
08-12
<template> <div class="content" :class="isDark ? 'is-dark' : ''"> <div class="total-info"> <span class="name" :title="titleText">{{ titleText }}</span> <span class="count"> {{ consumablesInfo.totalNum !== null ? consumablesInfo.totalNum : '--' }} </span> <span class="contrasts"> <img v-if="consumablesInfo.totalNumChange < 0" :src="arrowBottom" alt="" /> <img v-else :src="arrowTop" alt="" /> {{ consumablesInfo.totalNumChange !== null ? consumablesInfo.totalNumChange : '--' }} </span> </div> <!-- 引导线开始 --> <div class="out-line"></div> <div class="out-line2"></div> <div class="out-line3"></div> <div class="out-line4"></div> <div class="out-line5"></div> <div class="out-line6"></div> <div class="out-line7"></div> <div class="out-line8"></div> <div class="out-line10"></div> <!-- 引导线结束 --> <div class="online-info"> <div class="online-servers"> <span class="label" :title="$t('在线资产数')"> <span class="icon"></span> {{ $t('在线资产数') }} </span> <span class="num"> {{ consumablesInfo.onlineNum !== null ? consumablesInfo.onlineNum : '--' }} </span> </div> <div class="online-asset"> <span class="label" :title="$t('资产在线率')">{{ $t('资产在线率') }}</span> <span class="num"> {{ consumablesInfo.onlineRate !== null ? (consumablesInfo.onlineRate * 100).toFixed(2) : '--' }} <span v-if="consumablesInfo.onlineRate !== null">%</span> </span> </div> </div> <div class="offline-info"> <div class="offline-servers"> <span class="label" :title="$t('非在线资产数')"> <span class="icon"></span> {{ $t('非在线资产数') }} </span> <span class="num"> {{ consumablesInfo.totalNum !== null ? consumablesInfo.totalNum - consumablesInfo.onlineNum : '--' }} </span> <span class="contrasts"> <img v-if="consumablesInfo.offlineAssetCntAdd < 0" :src="arrowBottom" alt="" /> <img v-else :src="arrowTop" alt="" /> {{ consumablesInfo.offlineAssetCntAdd !== null ? Math.abs(consumablesInfo.offlineAssetCntAdd) : '--' }} </span> </div> <div class="offline-asset"> <span class="label" :title="$t('资产非在线率')">{{ $t('资产非在线率') }}</span> <span class="num"> {{ consumablesInfo.onlineRate !== null ? ((1 - consumablesInfo.onlineRate) * 100).toFixed(2) : '--' }} <span v-if="consumablesInfo.onlineRate !== null">%</span> </span> <span class="contrasts"> <img v-if="consumablesInfo.offlineAssetRateAdd < 0" :src="arrowBottom" alt="" /> <img v-else :src="arrowTop" alt="" /> {{ consumablesInfo.offlineAssetRateAdd !== null ? Math.abs(consumablesInfo.offlineAssetRateAdd) : '--' }} <span v-if="consumablesInfo.offlineAssetRateAdd !== null">%</span> </span> </div> </div> <div class="status-info"> <div class="legend"> <div> <span class="icon icon1"></span> {{ $t('历史') }} </div> <div> <span class="icon icon2"></span> {{ $t('本月新增') }} </div> <div> <span class="icon icon3"></span> {{ $t('本月流出') }} </div> </div> <div class="list-info"> <div v-for="(item, index) in statusList" :key="index" class="list" :class="item.nameEn"> <div class="top"> <div class="left"> <div class="name" :title="$t(item.name)" :class="{ 'is-link': item.nameEn === 'invigorating' }" @click="handleClick(item)" > {{ $t(item.name) }} </div> </div> <div class="right"> <div class="count"> <span class="his-count" :style="getHisWidth(item)"></span> <span v-if="consumablesInfo[item.netWorth] > 0" class="cur-add" :style="getAddWidth(item)" ></span> <span v-else class="outflow" :style="getOutWidth(item)"></span> <span class="num"> {{ consumablesInfo[item.netWorth] > 0 ? '+' : '' }} {{ consumablesInfo[item.netWorth] !== null ? consumablesInfo[item.netWorth] : '--' }} </span> </div> <div class="bottom"> <span class="total-count"> {{ $t('总量') }}: {{ consumablesInfo[item.total] !== null ? consumablesInfo[item.total] : '--' }} </span> <span class="his"> {{ $t('历史') }}: {{ consumablesInfo[item.total] !== null && consumablesInfo[item.netWorth] !== null ? Math.max(0, consumablesInfo[item.total] - consumablesInfo[item.netWorth]) : '--' }} </span> <span class="net-worth" :title="$t('本月净值')"> {{ $t('本月净值') }}: <i :style="{ color: consumablesInfo[item.netWorth] < 0 ? '#50d4ab' : '' }"> {{ consumablesInfo[item.netWorth] !== null ? consumablesInfo[item.netWorth] : '--' }} </i> </span> </div> </div> </div> </div> </div> </div> </div> </template> <script setup lang="ts"> import { computed, defineEmits, onMounted, ref, watch } from 'vue'; import { useI18n } from 'vue-i18n'; import { useStore } from 'vuex'; import arrowTop from '@/assets/images/01.png'; import arrowBottom from '@/assets/images/02.png'; import { getConsumablesInfoAPI } from '@/apis/dcPlanned.js'; import { ElMessage } from 'element-plus'; import { useMapLevelDataManager } from '@/application/core/infra-layout/composables/useMapLevelDataManager'; import { usePropertyMetricsManager } from '@/application/core/infra-layout/composables/usePropertyMetricsManager'; const propertyMetricsManager = usePropertyMetricsManager(); const mapLevelDataManager = useMapLevelDataManager(); const { mapLevelCode } = mapLevelDataManager; const { t } = useI18n(); interface StatusItem { name: string; nameEn: string; total: keyof consumablesInfoVO; netWorth: keyof consumablesInfoVO; } interface consumablesInfoVO { onlineRate: number | null; onlineRateChange: number | null; totalNum: number | null; totalNumChange: number | null; onlineNum: number | null; onlineNumChange: number | null; vitalizeNum: number | null; vitalizeNumChange: number | null; transmitNum: number | null; transmitNumChange: number | null; constructingNum: number | null; constructingNumChange: number | null; exitNum: number | null; exitNumChange: number | null; [key: string]: number | null; // 动态访问兼容 } const props = defineProps<{ isDark: boolean; activeName: { type: string; default: 'opticalModules'; }; }>(); const store = useStore(); const maxCount = ref(0); const consumablesInfo = ref<Partial<consumablesInfoVO>>({}); const titleText = computed(() => { return props.activeName === 'cables' ? t('线缆数量') : t('低端光模块数量'); }); const statusList = ref<StatusItem[]>([ { name: '在途', nameEn: 'inTransit', total: 'transmitNum', netWorth: 'transmitNumChange', }, { name: '在建', nameEn: 'underConstruction', total: 'constructingNum', netWorth: 'constructingNumChange', }, { name: '盘活中', nameEn: 'invigorating', total: 'vitalizeNum', netWorth: 'vitalizeNumChange', }, { name: '退出', nameEn: 'withdrawal', total: 'exitNum', netWorth: 'exitNumChange', }, ]); // 获取概览信息 const getConsumablesInfo = () => { const params = { type: props.activeName === 'opticalModules' ? 'optical' : 'cables', date: propertyMetricsManager.timeValue, area: mapLevelCode.areaCode ? mapLevelCode.areaCode : '', city: mapLevelCode.cityCode ? mapLevelCode.cityCode : '', }; getConsumablesInfoAPI(params) .then(res => { if (res.success) { if (res.data && Object.keys(res.data).length > 0) { consumablesInfo.value = res.data; gemaxData(); } } else { ElMessage.warning('暂无数据'); } }) .catch((err: Error) => { ElMessage.error(err.message); }); }; // 计算最大值用于条形图比例 const gemaxData = () => { const arr: number[] = []; statusList.value.forEach(item => { const total = consumablesInfo.value[item.total]; const netWorth = consumablesInfo.value[item.netWorth]; if (total !== null && netWorth !== null) { const historyCount = total - netWorth; arr.push(Math.abs(historyCount)); } }); maxCount.value = Math.max(...arr, 1); // 至少为1避免除以0 }; // 条形图宽度计算 const getHisWidth = (item: StatusItem) => { const total = consumablesInfo.value[item.total]; const netWorth = consumablesInfo.value[item.netWorth]; if (total === null || netWorth === null) { return { width: '0%' }; } const historyCount = total - netWorth; const value = Math.abs(historyCount); return { width: `${((value / maxCount.value) * 100).toFixed(2)}%` }; }; const getAddWidth = (item: StatusItem) => { const value = Math.abs(Number(consumablesInfo.value[item.netWorth] ?? 0)); return { width: `${((value / maxCount.value) * 100).toFixed(2)}%` }; }; const getOutWidth = (item: StatusItem) => { const value = Math.abs(Number(consumablesInfo.value[item.netWorth] ?? 0)); return { width: `${((value / maxCount.value) * 100).toFixed(2)}%` }; }; const emits = defineEmits(['detail-show']); // 处理点击“盘活中” const handleClick = (item: StatusItem) => { if (item.nameEn === 'invigorating') { emits('detail-show', true); } }; onMounted(() => { getConsumablesInfo(); }); watch( [ () => mapLevelCode.areaCode, () => mapLevelCode.cityCode, () => propertyMetricsManager.timeValue, () => props.activeName, ], () => getConsumablesInfo(), { deep: true, } ); </script> <style lang="less" scoped> @lineImg: '@/assets/images/line-move.png'; :deep(.el-overlay-dialog) { .el-dialog.is-dark { .el-dialog__header { margin-right: 0 !important; } .search-box { .label { color: #fff; } .el-select { .select-trigger { .el-input__wrapper { background-color: #282b33; color: #dfe1e6; } } } .el-input { .el-input__wrapper { background-color: #282b33; .el-input__inner { color: #dfe1e6; } } } } .el-popper.el-select__popper { background-color: #282b33; } .el-dialog__header, .el-dialog__body { background: #12151f; } .el-dialog__title { color: #fff; } .dialog-box { .label { color: #fff; } } .el-table.is-dark { .el-table__inner-wrapper { border-right: 1px solid #fff; .el-table__header-wrapper { .el-table__header { th { background: #3e4148; color: #dfe1e6; } } } } :deep(.el-scrollbar) { .el-table__empty-block { background: #33363d; } } .el-table__body-wrapper { .el-table__body tr:hover > td.el-table__cell { background-color: #2e3445 !important; } .el-table__body { tr { background: #33363d; .cell { color: #dfe1e6; } } } } } } } .el-overlay-dialog { :deep(.el-dialog) { .el-dialog__header { margin-right: 0; } } } .content.is-dark { background: #282b33; .left-content { .bg-box { background: #2e3445 !important; border-bottom: 1px solid #505050; color: #fff; &.is-active { background: #5e7ce0 !important; filter: none !important; } } } .middle-content { .type, .num { color: #fff; } } .total-info { background: #445266; .name, .contrasts { color: #dfd8c4; } .count { color: #fff; } } .online-info, .offline-info { background: #3c4551; .num { color: #fff; } .label { color: #adb0b8; } } .status-info { background: #2f343d; border-radius: 3px; } } .content { font-size: 14px; background: #fff; padding: 20px; position: relative; margin-bottom: 50px; border-radius: 8px; .label { max-width: 100px; overflow: hidden; text-overflow: ellipsis; display: inline-block; white-space: nowrap; } .name { max-width: 60px; overflow: hidden; text-overflow: ellipsis; display: inline-block; white-space: nowrap; } .net-worth { max-width: 80px; overflow: hidden; text-overflow: ellipsis; display: inline-block; white-space: nowrap; } .out-line { background: url('@{lineImg}') left top no-repeat; transform: translate(-16px, 111px) rotate(90deg); width: 86px; height: 3px; position: absolute; top: -3px; left: -1px; } .out-line2 { background: url('@{lineImg}') left top; transform: translate(-16px, 111px) rotate(90deg); width: 242px; height: 3px; position: absolute; top: 35.5%; left: -10.2%; } .out-line3 { background: url('@{lineImg}') left top; width: 24px; height: 2px; position: absolute; top: 20.4%; left: 5.5%; } .out-line4 { background: url('@{lineImg}') left top; width: 24px; height: 2px; position: absolute; top: 32.3%; left: 5.5%; } .out-line5 { background: url('@{lineImg}') left top; width: 18px; height: 2px; position: absolute; top: 49.8%; left: 10.6%; } .out-line6 { background: url('@{lineImg}') left top; width: 18px; height: 2px; position: absolute; top: 61.6%; left: 10.6%; } .out-line7 { background: url('@{lineImg}') left top; width: 18px; height: 2px; position: absolute; top: 73.6%; left: 10.6%; } .out-line8 { background: url('@{lineImg}') left top; width: 18px; height: 2px; position: absolute; top: 85%; left: 10.6%; } .out-line10 { width: 1px; background: #adb0b8; height: 214px; position: absolute; top: 46%; left: 24.2%; } .total-info { background: linear-gradient(90deg, #e8f5ff, #e9effd); padding: 14px; margin-bottom: 10px; display: flex; align-items: center; .name { font-weight: bold; color: #252b3a; max-width: 120px; } .count { color: #5e7ce0; font-weight: bold; margin: 0 10px; } .contrasts { color: #575d6c; font-size: 10px; } } .online-info, .offline-info { background: #f6faff; padding: 14px; display: flex; width: 97%; margin-bottom: 12px; margin-left: 15px; > div { width: 50%; display: flex; align-items: center; } .num { font-weight: bold; color: #252b3a; margin: 0 10px; } .contrasts { font-size: 10px; color: #575d6c; } .icon { display: inline-block; width: 8px; height: 8px; border-radius: 2px; margin-right: 4px; } .online-servers { .icon { background: linear-gradient(90deg, #92dd99, #6bc374); } } .offline-servers { .icon { background: linear-gradient(90deg, #afc5d3, #778e9e); } } } .status-info { margin-left: 30px; padding: 10px; background: #f6faff; .legend { display: flex; margin-bottom: 14px; color: #959aa8; margin-left: 15px; > div { margin-right: 20px; font-size: 10px; display: flex; align-items: center; .icon { display: inline-block; width: 8px; height: 8px; border-radius: 2px; margin-right: 4px; &.icon1 { background: linear-gradient(90deg, #76c0ff, #69a0ff); } &.icon2 { background: linear-gradient(90deg, #d8c1ff, #c89eff); } &.icon3 { background: #f0f5ff; border: 1px dashed #69a0ff; box-sizing: border-box; } } } } } .list-info { margin-left: 15px; .list { margin-bottom: 14px; &.invigorating { cursor: pointer; } .top { display: flex; margin-bottom: 6px; width: 100%; .left { width: 70px; .name { margin-top: 5px; &.is-link { color: #5e7ce0; text-decoration: underline; } } .days { color: #959aa8; font-size: 10px; margin-top: 8px; } } .right { font-size: 12px; color: #959aa8; width: 100%; .count { color: #252b3a; font-weight: bold; display: flex; width: 100%; > span { display: inline-block; height: 24px; width: 100px; line-height: 24px; padding-left: 8px; } .his-count { background: linear-gradient(90deg, #76c0ff, #69a0ff); } .cur-add { background: linear-gradient(90deg, #d8c1ff, #c89eff); } .outflow { background: #f0f5ff; color: #252b3a; border: 1px dashed #69a0ff; box-sizing: border-box; border-left: 0; } } .bottom { margin-top: 5px; font-size: 10px; padding-left: 10px; display: flex; > span { flex: 1; } i { color: #de5076; } .total-count { display: inline-block; width: 40%; font-style: normal; } .net-worth { display: inline-block; width: 40%; } } } } } } } .tooltip-info { font-size: 12px !important; h3 { display: flex; font-size: 12px; justify-content: space-between; padding-bottom: 4px; } .list { p { display: flex; justify-content: space-between; line-height: 24px; color: #575d6c; } } .outflow { display: flex; justify-content: space-between; border-top: 1px solid #e4eaf3; padding: 10px 0; font-weight: bold; } } .dialog-body { .search-box { margin-bottom: 15px; .label { margin-right: 10px; } } .content { display: flex; min-height: 220px; margin-bottom: 0; .left-content { width: 160px; .list-box { margin-top: 15px; border: 1px solid #5e7ce0; background: #5e7ce01a; padding: 10px; } .list { .bg-box { background: #fff; height: 30px; padding: 0 10px; margin-top: 3px; display: flex; align-items: center; justify-content: space-between; cursor: pointer; position: relative; .name { font-size: 12px; } .icon { font-family: fangsong; font-size: 12px; } &.is-active { width: 152px; height: 32px; color: #fff; background-color: rgb(92, 153, 251); filter: drop-shadow(rgba(179, 186, 210, 0.44) 0px 4px 2px); border-radius: 4.5px 0px 0px 4.5px; &::after { content: ''; position: absolute; top: 0; right: -32px; display: inline-block; width: 0; height: 0; border-width: 16.2px; border-style: solid; border-color: transparent transparent transparent rgb(92, 153, 251); } } } } } .middle-content { flex: 1; position: relative; .label-box { position: absolute; z-index: 1; width: 100%; right: 0; top: -10px; span { display: inline-block; font-size: 12px; &.type { position: absolute; top: 0; right: 27%; z-index: 1; } &.num { position: absolute; top: 0; right: 0; z-index: 1; } } } } } } </style> 当切换日期的时候,返回没有数据,但是视图却显示上一次的请求数据
最新发布
11-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值