来自武功山的爱
IP:
33关注数
0粉丝数
0获得的赞
工作年
编辑资料
链接我:

创作·93

全部
问答
动态
项目
学习
专栏
来自武功山的爱

二维码可以防止截屏,防止拍照吗?

感觉这个需求类似“根据手机壳颜色改变app主题”..
0
0
0
浏览量0
来自武功山的爱

nextjs 服务器端渲染的问题?

是的,需要自行封装,或者有一些开源库,比如"swr" (https://link.segmentfault.com/?enc=2kDMlBfaUs0h%2BjFg0VMRBw%3D%3D.WTiBxOmmn1%2FHcT1CBHAKnhD8RZcSk8nrNvVqvFPco9c%3D)或者"react query" (https://link.segmentfault.com/?enc=pNpEpG126R%2FNX1c2wJeQnw%3D%3D.7Athbpy1lqydk4%2Fd9ZuoUhW1haSIIhpcRsbHbwhL8S0%3D)
0
0
0
浏览量0
来自武功山的爱

业务指标的采集与同步如何设计呢?

数据初始化的时候做一些验证,,用 Redis 的原子操作(INCR)来更新点击次数,增量的数据才做更新,给每个每个作品加一个最后时间的时间戳
0
0
0
浏览量0
来自武功山的爱

php正则如何匹配:除(中文加冒号)格式之外的字符串?

preg_match_all('/(?!.*[\x{4e00}-\x{9fa5}:]).*/u', $input, $matches);
0
0
0
浏览量0
来自武功山的爱

Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean?

把 spring-boot-starter-tomcat 这个依赖去掉,上面的 starter-web 里带了 你自己加了还把版本加错了…
0
0
0
浏览量0
来自武功山的爱

在App管理中心中无法找到已上传的应用版本提交。请问如何解决这个问题?

1. 如果没有上传成功,重新上传 2. 可能延长,晚点登入app管理查看,如果没有重新上传
0
0
0
浏览量0
来自武功山的爱

想要global覆盖样式:app/pages/components/AntdCustomStyle/index.module.css Unknown word?

:global(selector) { style... } 你咋能把 selector 和 style 都用小括号括起来呢……
0
0
0
浏览量0
来自武功山的爱

websocket会实时发送大量数据,导致页面卡顿?

websocket会实时发送大量数据时,我目前写的这些代码,会导致页面卡顿,性能优化我不知道怎么下手了,求大佬指教一下, 有偿。谢谢大佬们 let socketInfo = 'xxxx' let ws = new WebSocket(socketInfo) let pingInterval = ref(null) // 心跳间隔ID let viewer = null let entity = null let polylineInitialized = false; // 轨迹线是否已初始化的标志 let polylineEntity = null; // 用于存储轨迹线实体 let pointEntity = null; const bufferLimit = 50; // 缓冲区大小限制,可以根据需求调整 // 从服务器获取用户角色名 const userRole = computed(() => { return window.localStorage.getItem('roles') }) const dropdown1 = ref() // 点击地图获取经纬度 let longitude = ref(null); let latitude = ref(null); onMounted(() => { init() //加载3d地图, bindUid()//判断是否绑定uid LocusModel()//3D地图模型 }) // 地图的基础配置 function init() { viewer = new Cesium.Viewer('cesiumContainer', { //cesium的查看器的基本属性 baseLayerPicker: false,//配置图层底图的图标 //加载谷歌影像地图,UrlTemplateImageryProvider该接口是加载谷歌地图服务的接口 imageryProvider: new Cesium.ArcGisMapServerImageryProvider({ // url: "https://map.geoq.cn/arcgis/rest/services/ChinaOnlineStreetPurplishBlue/MapServer", url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer' //卫星地图 }) } // 判断是否绑定uid function bindUid(params) { if (window.localStorage.getItem('CardUID') === '') { return ElMessage({ message: '车辆终端ID未绑定,请点击右上角的“设置”图标进行绑定。', type: 'warning', showClose: true }); } else { webValue() } } // 加载websocket function webValue() { let oldPositionParams = [];//初始化一个变量来存储旧数据 let positionParams = []; // 用于存储所有的位置参数数据 // 初始Websocket const onOpen = () => { const data = JSON.stringify({ command: 1, serializeAlgorithm: 1, token: window.localStorage.getItem('token') }); ws.send(data); // 发送JSON字符串 // 设置心跳间隔为5秒 pingInterval.value = window.setInterval(() => { const pingMessage = JSON.stringify({ command: 2, serializeAlgorithm: 1 }); ws.send(pingMessage); }, 5000); }; // 接收websocket数据 const onMessage = async (event) => { const data = JSON.parse(event.data); if (data.data == undefined) { console.log('未响应'); } else { processPositionParams(data.data); updateCarModelPosition(positionParams);// 实时更新车辆移动位置 if (!polylineInitialized) { initializePolyline(positionParams); // 初始化轨迹线 polylineInitialized = true;// 标记轨迹线已初始化 } else { updatePolylinePosition(positionParams); // 更新轨迹线位置 } updateEntityPositions(positionParams); // 更新实体点的位置和标签文本。 } }; function processPositionParams(data) { const targetingTypes = { 0x10: 'RTK', 0x11: 'UWB', 0x12: '融合' }; const newPositionParam = { TargetingType: targetingTypes[data.type], UID: data.uid, Angle: data.angle, Height: data.height, longitude: data.longitude, latitude: data.latitude }; if (oldPositionParams.length > 0) { const oldPosition = oldPositionParams[oldPositionParams.length - 1]; if (isNewDataDifferent(newPositionParam, oldPosition)) { positionParams.push(newPositionParam); if (positionParams.length > bufferLimit) { positionParams.shift(); } } } else { positionParams.push(newPositionParam); } oldPositionParams.push(newPositionParam); if (oldPositionParams.length > bufferLimit) { oldPositionParams.shift(); } } function isNewDataDifferent(newData, oldData) { // 比较各个参数是否不同,如果有任何一个参数不同,就返回 true 表示数据不同 if ( newData.TargetingType !== oldData.TargetingType || newData.UID !== oldData.UID || newData.Angle !== oldData.Angle || newData.Height !== oldData.Height || newData.longitude !== oldData.longitude || newData.latitude !== oldData.latitude ) { return true; // 数据不同 } return false; // 数据相同 } const onClose = () => { window.clearInterval(pingInterval.value); // 清除心跳间隔定时器 console.log('Websocket连接关闭'); webValue(); }; const onError = (error) => { console.log('Websocket连接错误'); ws.close(); window.clearInterval(pingInterval.value); // 清除心跳间隔定时器 webValue(); }; ws.addEventListener('open', onOpen); ws.addEventListener('message', onMessage); ws.addEventListener('close', onClose); ws.addEventListener('error', onError); } // 点击按钮是否显示轨迹点和轨迹线 let checkedPoint = ref(true); let checkedLines = ref(false); // 保存checkedPoint和checkedLines的值到LocalStorage function saveCheckedValues() { localStorage.setItem('checkedPoint', JSON.stringify(checkedPoint.value)); localStorage.setItem('checkedLines', JSON.stringify(checkedLines.value)); } // 从LocalStorage中获取checkedPoint和checkedLines的值 function loadCheckedValues() { const storedCheckedPoint = localStorage.getItem('checkedPoint'); const storedCheckedLines = localStorage.getItem('checkedLines'); if (storedCheckedPoint) { checkedPoint.value = JSON.parse(storedCheckedPoint); } if (storedCheckedLines) { checkedLines.value = JSON.parse(storedCheckedLines); } } // 监听checkedPoint和checkedLines的变化,并保存到LocalStorage watch([checkedPoint, checkedLines], saveCheckedValues, { deep: true }); // 在页面加载时加载checkedPoint和checkedLines的值 window.addEventListener('load', loadCheckedValues); // 车辆模型 let carModelData = null; let shouldFollowCar = false; // 标志位 function updateCarModelPosition(positions) { if (positions.length === 0) { return; } const latestPosition = positions[positions.length - 1]; const cartesian3 = Cesium.Cartesian3.fromDegrees(latestPosition.longitude, latestPosition.latitude, 0.4); if (!carModelData) { createCarModel(cartesian3, latestPosition.Angle); } else { carModelData.position = cartesian3; const headingPitchRoll = new Cesium.HeadingPitchRoll( Cesium.Math.toRadians(latestPosition.Angle + 90), Cesium.Math.toRadians(0), Cesium.Math.toRadians(0) ); carModelData.orientation = Cesium.Transforms.headingPitchRollQuaternion(cartesian3, headingPitchRoll); } } function createCarModel(cartesian3, angle) { const headingPitchRoll = new Cesium.HeadingPitchRoll( Cesium.Math.toRadians(angle + 90), Cesium.Math.toRadians(0), Cesium.Math.toRadians(0) ); const scaleByDistance = new Cesium.NearFarScalar(200, 120, 1200, 0.6); const distanceDisplayCondition = new Cesium.DistanceDisplayCondition(0, 10000); carModelData = viewer.entities.add({ position: cartesian3, orientation: Cesium.Transforms.headingPitchRollQuaternion(cartesian3, headingPitchRoll), model: { uri: "http://127.0.0.1:5501/car/scene.gltf", scale: 75, scaleByDistance, distanceDisplayCondition, }, id: 'carModel' // 添加id属性 }); } // 轨迹点 and 标签文字 let positionsArray = []; let entityList = []; function updateEntityPositions(positions) { for (let i = 0; i { return entityIndex === entityList.length - 1; }, false), style: Cesium.LabelStyle.FILL_AND_OUTLINE, outlineWidth: 2, verticalOrigin: Cesium.VerticalOrigin.BOTTOM, pixelOffset: new Cesium.Cartesian2(0, -9), scaleByDistance: new Cesium.NearFarScalar(300, 1, 1200, 0.4), scale: 1, fillColor: Cesium.Color.WHITE, outlineColor: Cesium.Color.WHITE, }, }); entityList.push(pointLabel); viewer.entities.add(pointLabel); } } // 移除多余的实体点(如果有的话) if (entityList.length > positions.length) { for (let i = positions.length; i [pos.longitude, pos.latitude]); const positionsInCartesian = Cesium.Cartesian3.fromDegreesArray(positionsArray); polylineGeometry = new Cesium.PolylineGeometry({ positions: positionsInCartesian, width: 5, distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 500), scaleByDistance: new Cesium.NearFarScalar(100, 10, 500, 1), }); geometryInstance = new Cesium.GeometryInstance({ geometry: polylineGeometry, attributes: { color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED) } }); const primitive = new Cesium.Primitive({ geometryInstances: geometryInstance, appearance: new Cesium.PolylineMaterialAppearance({ material: Cesium.Material.fromType(Cesium.Material.ColorType) }) }); viewer.scene.primitives.add(primitive); } // 更新轨迹线位置 function updatePolylinePosition(positions) { if (geometryInstance) { const positionsArray = positions.flatMap(pos => [pos.longitude, pos.latitude]); const positionsInCartesian = Cesium.Cartesian3.fromDegreesArray(positionsArray); polylineGeometry.positions = positionsInCartesian; geometryInstance.geometry = polylineGeometry; geometryInstance.show = checkedLines.value; } } // 获取父组件传递的停车场信息的经纬度 let props = defineProps({ cesiumData: Object, }) // 3D地图模型 function LocusModel() { let modelMatrix = new Cesium.Transforms.eastNorthUpToFixedFrame(new Cesium.Cartesian3.fromDegrees(104.2255077, 30.57514052)); // gltf数据加载位置(自定义) let heading = Cesium.Math.toRadians(66); // 设置旋转角度 let orientation = Cesium.Matrix4.fromRotationTranslation( Cesium.Matrix3.fromRotationZ(heading), Cesium.Cartesian3.ZERO ); modelMatrix = Cesium.Matrix4.multiply(modelMatrix, orientation, new Cesium.Matrix4()); viewer.scene.primitives.add( new Cesium.Model.fromGltf({ url: 'http://127.0.0.1:5501/parking/lq_parking_space.gltf', //gltf文件的URL modelMatrix: modelMatrix, scale: 1, maximumSize: 1, minimumPixelSize: 0.1, scaleByDistance: new Cesium.NearFarScalar(300, 1, 1200, 0.5), //设置随图缩放距离和比例 distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 10000), //设置可见距离 10000米可见 })); }
9
1
0
浏览量348
来自武功山的爱

如何在C中调用bash指令并获得输出?

可以用 "popen" (https://link.segmentfault.com/?enc=QTvMIOvHTLbeTHBGjCQjHw%3D%3D.17I2of62AkcVhDCSEULywqdfOKb2d3jHz7wEHqCmEtLaVXvuNmM5wpBLAwD81trAB5N0YEAmcyoCjjjQT1mCWQ%3D%3D) 打开一个管道。 FILE *pipe = popen("ls", "r");
0
0
0
浏览量0
来自武功山的爱

开发uniapp用vue3有像uview一样的框架吗?

vue3中使用得比较高的应该是First UI了 "https://ext.dcloud.net.cn/plugin?id=7646" (https://link.segmentfault.com/?enc=OhjkqCSWGKlIHMYKr6NGaQ%3D%3D.yQHYu0HCj9g3VSflqeTdmUchPyBQpmbbWmfDyYKai1xfr2i55HbxF0S4kbPFMzh%2F)
0
0
0
浏览量0
来自武功山的爱

微信小程序样式中“*”编译不过?

wxss 是阉割的 css ,不支持通配符选择器。 "微信开发者文档" (https://link.segmentfault.com/?enc=syLdYJ6ZGKiHR994pqNdCw%3D%3D.BAyvBkRoSPmRCW4mUivfgqFYXZbrMWBNju7iWmFxlWiLjVVz1fqbM1373XnBq7LtY%2BhXfgT5UNA3THJtcsvxBAfMuCpg1aAnKAAYbeotPxQ%3D): "图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241227/659c3121770803e9d0a6a029041e6160.png) «👆 微信开发者文档,不过这个文档的质量一言难尽,没有完整列举支持的选择器,也没有说明哪些 css 选择器不予支持,真就全靠开发者自己摸索边界了。»
0
0
0
浏览量0
来自武功山的爱

vscode代码前面的竖线怎么去除?

从公司拉下来的代码,结果每个文件打开来前面都有竖线,看着很难受。怎么去除掉"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241225/7b6c027e4341d1aaf9d64e05a7a26154.png)
7
1
0
浏览量287
来自武功山的爱

React种,请问比如props有更新,应该再哪里进行打印呢?是某个生命周期方法内吗?

在组件函数内、"return"之前打印。
0
0
0
浏览量0
来自武功山的爱

vue路由跳转问题?

const newRoute = { path: '/new-route', component: () => import('@/views/helpPreview/index.vue'), }; this.$router.addRoute(newRoute); this.$router.push({path: '/new-route', query:{item:item}}) 在组件内部新增路由,并且跳转到这个路由,在vue系统的路由标签页中显示组件,为什么这种方式不显示呢? vue系统标签页 "1695627153447.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241222/9dd348a45ebde704b41ce51161b4a64a.png)
16
1
0
浏览量361
来自武功山的爱

科大讯飞 Websockets API 的问题?

是我自己的问题,在发送数据的时候必须有 3 种数据包:012 分别代表起始帧、中间、结束、否则就会没响应直接结束
0
0
0
浏览量0
来自武功山的爱

laravel 如何在不使用sanctum中间件在控制器中获取用户信息?

去掉中间件,然后在控制器里面写。 $auth = \Illuminate\Support\Facades\Auth::guard('sanctum'); 现在你就可以用这个 "$auth->check()" 和 "$auth->user()" 来获取用户信息了。
0
0
0
浏览量0
来自武功山的爱

如何禁用图例的默认交互行为?

移动端展示图表时,为了方便用户阅读,会将图表的图例扩大。但几乎每个图表库的图例组件都会默认给图例设置默认的交互行为,例如在点击时过滤数据。 在手指滑动时容易误触图例的默认交互,如何将图表的图例交互取消掉?
0
1
0
浏览量14
来自武功山的爱

vue3中,在一个模板下,共用同一个组件,如何区分?

打个比方,有一个日期选择组件,然后表单中有2个输入框 import { ref } from 'vue'; import Calenda from './Calenda.vue'; let isShow = ref(false) function showCalenda(){ isShow = true } 点击其中一个输入框,显示相对应日期选择组件,我该怎么写????除了将v-if用不同的属性外,有没有其他啥方法???
0
1
0
浏览量11
来自武功山的爱

k8s,filebeat将主机所有容器的控制台日志写入ES中,不成功?

https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241212/2e9a442c81dfd04cafd59e0c75a18fe3.png 这个是我的filebeat的配置。 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241212/3ad96ca0ad619d1a1eb9ae1f46f41ed5.png) 这个是我运行的filebeat服务的日志 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241212/9e47d0a3f7b930ec5ae170a0857fbf32.png) 这是我容器中的日志地址 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241212/b5edb3fb1a13eecae64fae97df01faf9.png) 这个是我在kibana上的索引。 按上面的操作 来说我这边应该已经将主机中所有启动的容器服务中的日志文件写入es中的“ test_index1”中的。可是没有写入。filebeat服务启动也正常的去监视获取了“/app/logs/*.jar.log”日志中的数据写入es中,但是不成功,es中的索引文件大小不变。到底是哪里出了问题呢? 新的内容 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241212/53859e878b8ee27a5404f4929e8ab7f6.png) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241212/94bcb03ff59f886b23cf94b922d07262.png) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241212/b9e6a24401b3c8d02edc35fc0900b00a.png) 这是filebeat启动时无法连接ES的问题
0
1
0
浏览量17
来自武功山的爱

如何将容器高效打包成docker镜像?

使用dockerfile打包太麻烦了!比如我想自己搭建一套php的开发环境,做成镜像,以后随时可用。并且我习惯使用堡塔作为面板工具。如果使用dockerfile的化,成本就太高了。 使用commit或者import/export的方式会导致镜像非常大! 是否有其他高效的打包方式可以,将容器打包成镜像?
0
1
0
浏览量10
来自武功山的爱

Google 翻译 插件 ?

"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241210/e2e85066abb6db34512b6c0afa7fb307.png) *** "疑惑":同一个单词不同位置,上面那个点击不会出现翻译,下面就可以。 "问":这是什么情况,可以修复吗?
0
1
0
浏览量21
来自武功山的爱

java double-check为啥要加volatile(是因为可见性还是有序性)?

都对,理论是基于可见性的考虑 实际上了也基于有序性的考虑, 见: "https://blog.csdn.net/java_1996/article/details/87472644" (https://link.segmentfault.com/?enc=UJI85DGMBQ5VtOt2fSr0bw%3D%3D.QRt%2Bk4jeAoPSLHwfW8R1zcBnhaAfbU6eU5zzKaCif4sPnQh7ipbZbnIS3qHfYITb%2BIYF2quY%2FulJVDB2myw0Qg%3D%3D) 你可以试试在double-check单例模式里去掉volatile跑一下代码就可以看到问题了
0
0
0
浏览量0
来自武功山的爱

公众号分享wx.config出错?

这具体会是哪里的问题?折腾可长时间了。。。wx.config需要的appid,timestamp,signature这些参数是后台给的,人家用可长时间了,按说这肯定没问题,那具体还可能是哪里的问题? 对的用的uniapp开会的,公众号的页面。 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241124/63f0ec3722c900a6e2bf1ca36104875d.png)
0
1
0
浏览量14
来自武功山的爱

小程序预览执行的错误,在微信工具上没问题?

我用的uniapp开发的,就下面的代码,也是这个页面内调的第一个接口,在微信工具上没什么问题,但是“预览”用手机,却提示下面的错误: console.log('a') const res = await this.$http({ url: '/CollectionDoc/GetDocInfoById', method: 'POST', data }).catch(e=>{ console.log('b') this.emptyLoading=false; this.doctorData = {} }) if (res.Code == 0) { console.log('c') this.doctorData=res.Data this.emw=res.Msg this.emptyLoading=false; }else{ console.log('d') this.emptyLoading=false; } "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241124/7b468eb06faecb68eac159d300dd8249.png) 如果我把catch去掉,会提Code有问题,我怎么感觉是这个接口压根没有走呀?有人遇到过没?微信开发工具上正常。
0
1
0
浏览量20
来自武功山的爱

vue.js 2组件每次都执行create是什么原因?

用的是vue-element-admin架子. 点击一个菜单连接后打开一个列表(A.create), 点击列表中的一个项(B.create)打开B页面. 再关闭B页面, 此时再回到A, 此时又执行了A页面的create方法 开发时以上操作不会触发A页面的create, 现在莫名的都create了
0
1
0
浏览量18
来自武功山的爱

求一个电脑软件,可以直接降低扬声器的噪音?

试试虚拟声卡,比如 Sonar、VoiceMeter 之类的,他们可以去除特定频率杂音
0
0
0
浏览量0
来自武功山的爱

python多进程共享一个可操作的变量, 如何保证原子操作?

from concurrent.futures import ProcessPoolExecutor import ctypes from multiprocessing import Manager, Lock import os # 创建 Manager 和 Lock manager = Manager() m = manager.Value(ctypes.c_int, 0) lock = manager.Lock() def calc_number(x: int, y: int, _m, total_tasks: int, _lock): """模拟耗时任务函数""" # 模拟耗时计算 res = x ** y # 用锁来保证原子操作 with _lock: _m.value += 1 current_value = _m.value # 当总任务数量和_m.value相等的时候, 通知第三方任务全部做完了 if current_value == total_tasks: print(True) print(f"m_value: {current_value}, p_id: {os.getpid()}, res: {res}") def main(): # 任务参数 t1 = (100, 200, 300, 400, 500, 600, 700, 800) t2 = (80, 70, 60, 50, 40, 30, 20, 10) len_t = len(t1) # 多进程执行任务 with ProcessPoolExecutor(max_workers=len_t) as executor: for x, y in zip(t1, t2): executor.submit(calc_number, x, y, m, len_t, lock) if __name__ == "__main__": main()
0
0
0
浏览量0
来自武功山的爱

如何选择能跑模型的硬件?

看 tflops 这个定量指标,如果要跑大模型,还要看显存大小 具体还可以分成 fp32 tflops、fp16 tflops、bf16 tflops、int8 tflops 对于传统的 resnet50、yolo v8 可以看 fp32 tflops 对于 LLM 大模型,就看 fp16 tflops、bf16 tflops、int8 tflops 如果你要看某个显卡的指标,就去谷歌搜索 a100 tflops techpowerup、RTX4060 tflops techpowerup 这样,去 techpowerup 这个网站看,非常的详细 "图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241115/2825b28afbbdf5e2d3374ce62ec631f5.png)
0
0
0
浏览量0
来自武功山的爱

请问 ts+eleme 中 App 如何理解呢?

"3FC5393E0E1F57565D31C394AD664FA4.jpg" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241114/eb56c0bee616702225966b08dd1765ae.png) 问题如题,感谢回答!
0
1
0
浏览量16
来自武功山的爱

go 嵌套数组构造出一个能添加结构的函数?

"ll"返回的是"dog","dog"默认没有"cat"写入。你在"ll"里调用的"oo"的返回值,根本没有接。改成"return &dog {name:name,age:age, cat: oo(id)}"看看
0
0
0
浏览量0
来自武功山的爱

有人有看出这用的uniapp的什么框架吗?

应该是这个: «"https://uniapp.dcloud.net.cn/component/uniui/quickstart.html" (https://link.segmentfault.com/?enc=Fx2jBYr00LnSBTr%2FgTmh8w%3D%3D.xKiJG%2FY%2BXFYPtZxwjUUVO83ySSY7uqHPJDNUOsciRvbjUmbgizeVXgjL7YFOJFhXo8T2%2FoNSmfQ8IliChy6qRg%3D%3D) ![image.png](https://wmprod.oss-cn-> shanghai.aliyuncs.com/images/20241112/4dc77d515ce1a1be89af0e587d6b7dfa.png)»
0
0
0
浏览量0
来自武功山的爱

如何在Excel文件中从特定名称的sheet读取数据?

其实各种Excel组件都有可以读取特定sheet的API。 下面是"GcExcel" (https://link.segmentfault.com/?enc=i1%2BjvKtQMzOzsRlwc2o1wg%3D%3D.%2FC%2BB4uI0deZZ9wYlUmcVFUwWyfKw%2FtPXJa%2BLFxPxMFgb6hmPBwrNGL7P1Rc5VUKbz3kpKiYkWS2C52VOHD9yhKftPfnmfQ2zZXp%2FuLUyRxQ%3D)读取特定sheet的代码,可以参考一下: public void ReadSpecificSheet() { ArrayList fileList = new ArrayList(); fileList.add("a.xlsx"); fileList.add("b.xlsx"); fileList.add("c.xlsx"); for (String filepath : fileList) { Workbook wb = new Workbook(); wb.open(filepath); IWorksheet sheet = wb.getWorksheets().get("SheetName"); //获取到 sheet 对象后,可以添加后续逻辑 } }
0
0
0
浏览量0
来自武功山的爱

hibernate存放指定Id,防止被hibernate自动生成的id覆盖?

保存的时候手动设置一下ID就可以了
0
0
0
浏览量0
来自武功山的爱

van-picker columns属性支持字符串数组吗?

Html: TS: import { ref } from 'vue'; export default { setup() { const columns = [ { text: '杭州', value: 'Hangzhou' }, { text: '宁波', value: 'Ningbo' }, { text: '温州', value: 'Wenzhou' }, { text: '绍兴', value: 'Shaoxing' }, { text: '湖州', value: 'Huzhou' }, ]; const fieldValue = ref(''); const showPicker = ref(false); const onConfirm = ({ selectedOptions }) => { showPicker.value = false; fieldValue.value = selectedOptions[0].text; }; return { columns, onConfirm, fieldValue, showPicker, }; }, }; columns的值只能是数组对象吗?支持字符串数组格式吗? 比如columns = ["sttrig","number"]这种格式 columns的值只能是数组对象吗?支持字符串数组格式吗? 比如columns = ["sttrig","number"]这种格式
0
1
0
浏览量17
来自武功山的爱

SpringCloud微服务部署环境参数动态设置?

更新: 我大概理解了你的问题了。 1. 你的问题应该是服务注册到nacos的时候,需要把实例的IP端口信息提交上去。问题出在每次部署的时候你需要手动指定这个上报的IP端口,比较麻烦。 这里可能会有问题: 1. gateway在转发请求到其他服务时,应该走“内网”传输。也就是服务应该使用内网IP去注册。所以你可以在启动的时候直接拿到节点的IP/端口(这个是完全可行的,和是不是传统部署都没有关系)。 2. 不知道你是不是使用了自动获取的方式去获取实例的IP,但是注册的时候出了问题,注册的服务都是docker容器内部的172.x开头的地址,这个问题导致了gateway没法正常工作。所以你才想到了去手动指定实例的IP。通过手动指定的方式也可以实现正常注册,但是没有必要多绕一圈。 如果你要用传统的方式部署微服务 1. 使用docker启动容器的时候,建议把网络模式改成host,这样在容器内,能直接获取到节点的IP,注册服务、在多节点的环境,gateway在转发时也都能正常工作。启动实例的时候直接 "docker run --network host -d image:tag" ,就不需要指定额外的参数了。 2. docker 默认情况下是只能单个节点运行的,即使 docker-compose 也是一样的。所以在每个节点上,不管怎么样都要考虑到端口分配问题,它需要手动去维护,所以是会有一些麻烦在。 3. 还是建议你试试用 docker swarm 来做容器编排,简单方便,虽然现在貌似用的不多,但还是docker官方推荐的生产环境部署方式之一。:"https://docs.docker.com/get-started/orchestration/" (https://link.segmentfault.com/?enc=dY9DacIdWDW6Agb54bXx7Q%3D%3D.5SnCeqDY69KtUb5V3ZX%2FFeXSrQbaHT3%2FCX1NX%2FGKVxUljxPkw5qYOTM0xvQDNv9S%2FfieJ0Fip41I%2BEL5xC0VJg%3D%3D) *** 问题1: 如何动态获取 VERSION 通常情况下,在构建的时候就能拿到版本号,通过脚本读取pom.xml文件(或者通过插件,但是实际上也是读取pom.xml) 问题2: 如何自动获取宿主机的SERVER_NAME 可以通过 “环境变量” *** 我举一个使用 docker swarm 部署微服务的例子(k8s也类似): docker-compose.yml ,会启动 gateway / auth / core 三个服务 services: gateway: image: example/gateway:v1 environment: # 给这个服务添加环境变量 - ENVIRONMENT=prod #当前环境/服务名字/nacos注册信息 - SERVER_NAME=gateway - NACOS_SERVER=nacos.domain.com - NACOS_namespace=e35500e1-2441-4001-b60f-3f7d55bxxxxx ports: - "8080:8080" # 暴露网关的端口 deploy: mode: replicated replicas: 2 # 给这个服务部署两个实例,下面的操作都类似。 auth: image: example/auth:v1 environment: - ENVIRONMENT=prod - SERVER_NAME=auth - NACOS_SERVER=nacos.domain.com - NACOS_namespace=e35500e1-2441-4001-b60f-3f7d55bxxxxx deploy: mode: replicated replicas: 2 core: image: example/core:v1 environment: - ENVIRONMENT=prod - SERVER_NAME=core - NACOS_SERVER=nacos.domain.com - NACOS_namespace=e35500e1-2441-4001-b60f-3f7d55bxxxxx deploy: mode: replicated replicas: 2 环境变量,通常都是在“运行时”获取的,但是你可以把一些默认的环境变量,在“构建时”时写入到镜像中。 使用“ARG”也是可以的,但是感觉不太方便。 如果你已经用了微服务,就不建议用 纯docker 去手动管理容器和服务了,你应该把部署的工作交给 “容器编排系统” 来做,比如 k8s / docker-swarm 。 *** nacos读取配置文件的时候,是可以直接从环境变量中取值的,可以不用手动传参数。 *** 补充一个k8s部署的例子: apiVersion: apps/v1 kind: Deployment metadata: name: gateway spec: selector: matchLabels: app: gateway template: metadata: labels: app: gateway spec: containers: - name: gateway image: example/gateway:v1 resources: limits: memory: "128Mi" cpu: "500m" env: - name: ENVIRONMENT value: prod - name: SERVER_NAME value: gateway ports: - containerPort: 8000 --- apiVersion: apps/v1 kind: Deployment metadata: name: auth spec: selector: matchLabels: app: auth template: metadata: labels: app: auth spec: containers: - name: auth image: example/auth:v1 resources: limits: memory: "128Mi" cpu: "500m" env: - name: ENVIRONMENT value: prod - name: SERVER_NAME value: auth ports: - containerPort: 8000 --- apiVersion: apps/v1 kind: Deployment metadata: name: core spec: selector: matchLabels: app: core template: metadata: labels: app: core spec: containers: - name: core image: example/core:v1 resources: limits: memory: "128Mi" cpu: "500m" env: - name: ENVIRONMENT value: prod - name: SERVER_NAME value: core ports: - containerPort: 8000 --- apiVersion: v1 kind: Service metadata: name: gateway spec: selector: app: gateway ports: - port: 8000 targetPort: 8000 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example-ingress labels: name: example-ingress spec: rules: - host: example.domain.com http: paths: - pathType: Prefix path: "/" backend: service: name: gateway port: number: 8000
0
0
0
浏览量0
来自武功山的爱

vue3+element-plus使用分页table,当多页时,如何在跨页切换时保留其他页已勾选项的勾选状态?

element-plus官方文档中有两个属性row-key和reserve-selection配合使用就可以跨页多选,首先多选肯定是要设置type="selection", , 其次再el-table上加 :row-key="getRowKeys" @selection-change="handleChange" ,然后再js中 getRowKeys(row) { return row.id }, handleChange(selection) { console.log(selection) } ,这里的selection就是分页选中的所有项数据。
0
0
0
浏览量0
来自武功山的爱

动态绑定src后,img标签不显示图片,点击右键加载后才显示图片?

动态绑定src后,img标签不显示图片,点击右键加载后才显示,这是为什么? 如下图 https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241014/5f0fd3c51e72c42cb9167cf128478eda.png 我在vue中动态绑定的img标签的src属性,其中src是一个服务端返回的网络地址 注:该src地址是我阿里云OSS中保存的图片URL地址,已经绑定了自定义域名,并且允许跨域访问,且没有设置防盗链。浏览器是edge 我在img标签中直接把url写在src中倒是可以显示图片
0
1
0
浏览量188
来自武功山的爱

函数参数的命名规范,有没有比较详细的介绍文档?

函数参数的命名规范,有没有比较详细的介绍文档,对这块老是似懂非懂。 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241013/12f10498b5e70adfb70b791aefca624a.png)
0
1
0
浏览量194
来自武功山的爱

docsify-cli?

换成淘宝的镜像应该就可以: npm config set registry https://registry.npm.taobao.org
0
0
0
浏览量0
来自武功山的爱

CSS 中图片是否应该存在文档结构中?

当然是图片更普遍,不然这种方法也不会惊到你。 用背景图片的优点: * 方便使用 CSS 进行图文混排(“正宗”的图文混排其实应该用 "float",何曾想 "float"最广泛的应用领域居然是横向排版 2333333); * 背景图片不影响排版,因此不会因为图片加载而引起重排(当然对于 img 标签,实际上可以通过明确给出 "width"&"height",来避免重排); * 不用刻意学习(老师懒得教)图片的排版(张鑫旭大神总结过一些); * 可以极其方便地制作加载提示/出错提示占位图(img 标签一般需要配合 JS)。 缺点么: * 语义化、SEO、blablabla……
0
0
0
浏览量0
来自武功山的爱

有什么办法可以和外部人员基于不同的 git 仓库协作吗?

1. 一般来说直接同步推就好了,最多就是泄露一些提交信息,问题不大 2. 配置文件不应该传 git 仓库,应该直接在服务器上配置
0
0
0
浏览量0
来自武功山的爱

wow.js 造成animation.css动画失效?

看起来应该不是 "wow.js" (https://link.segmentfault.com/?enc=kcG9GNfkid2%2B9OORymQfWA%3D%3D.7SUxgp8B9TY%2ByF8EIc7fRO4KnCAIjA3h89RWIhtjq22zqPtdEQ9xYwcdDbwDZFUw) 导致的问题。 下面是我复现的一个例子,没有遇到你说的问题。所以最好OP能提供一个自己的复现例子。 "🔗 CodePen Demo" (https://codepen.io/yogwang/pen/zYXPoap) 以防打不开在线Demo,以下是示例代码块: {{ index }}+ Lorem Ipsum is simply dummy text of the printing and typesetting industry. var app = new Vue({ el: '#app', mounted() { new WOW({ boxClass: 'wow', animateClass: 'animated', offset: 150, mobile: true, live: true, callback: function (c) { console.log(c, 'sss') }, scrollContainer: null, resetAnimation: true }).init(); }, }) // stylus #app height 500vh padding-top 85vh .item display flex margin 10px &-left width 30px margin-right 10px flex 0 0 auto &-color height @width background skyblue
0
0
0
浏览量0
来自武功山的爱

html给页面设置背景色后,给文字设置不同的背景色,文字的位置会发生偏移,无法对齐,如何解决?

html给页面设置背景色后,给文字设置不同的背景色,文字的位置会发生偏移,无法对齐,如何解决? 我也不知道为啥,截图粘贴过来后看起来几乎没区别,但自己跑起来,看着很明显。 详细描述: (1)当仅仅给文字设置不同背景色时,文字不会发生偏移: 代码: 编辑 删除 运行结果: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241004/9202ab22216afc3838a29e0cf4899f47.png) (2)当设置html背景色时,文字设置相同或不设置背景色时,文字不会发生偏移: 代码: 编辑 删除 运行结果: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241004/de5d746d7ff027cb6d18e9da9999b45e.png) (3)设置html背景色后给文字设置不同背景色时,文字位置发生偏移: 代码: 编辑 删除 运行结果: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241004/baed4f30eb01eb412c49455ec1263bb8.png) 期望运行结果: 希望文字位置不发生偏移
0
1
0
浏览量206
来自武功山的爱

Java单线程中指令重排序的可能性?

不会,指令重排如果能达到这种效果那就不是重排是乱排了 指令重排影响的是多线程,单线程是没问题的
0
0
0
浏览量0
来自武功山的爱

使用 html2canvas 生成图片时如何避免原页面的图片放大?

import html2canvas from "html2canvas"; const dom = document.getElementById(""); html2canvas(dom, { width: '', //宽度 height: '', //高度 backgroundColor: "#fff", //背景色,设置null为透明 allowTaint: false, //是否允许跨域图片 useCORS: true, //是否尝试使用CORS从服务器加载图像 scale: 2, //渲染的比例,默认为浏览器设备像素比例 logging: false //启用日志进行调试 foreignObjectrendering: false, //如果浏览器支持,使用ForeignObject渲染 } as any).then((canvas) => { let base64 = canvas.toDataURL("image/png"); console.log("====base64===", base64); });
0
0
0
浏览量0
来自武功山的爱

如何判断关闭浏览器事件?

使用vue3项目,我想关闭浏览器或者关闭浏览器的标签页清除token,该怎么操作
0
1
0
浏览量193
来自武功山的爱

docker swarm init 中 --advertise-addr 和 --listen-addr 的区别?

--advertise-addr 指供外部访问的地址(加入集群的节点连接的地址,类似 new Socket()的参数) --listen-addr是指swarm管理节点的监听地址 (类似 new ServerSocket()的参数) 通常,这两个地址设置一样。 特殊情况下,可以不同。比如:由于某种特殊需要,需要在监听地址和外部访问地址之间插入一个 代理层,做一些权限管理、地址白名单、流量控制之类时候。 监听地址如果设置:0.0.0.0:端口,表示在本机的所有网卡地址上监听;设置ip:端口表示在指定网卡地址上监听;设置127.0.0.1:端口,表示只允许本地连接。
0
0
0
浏览量0
来自武功山的爱

前端如何获取 springboot 接口的类型提示?

大家都知道trpc 可以方便地 在客户端获取服务端的接口的typescript类型提示(包括请求参数与返回消息体) 那么请问有可能获取 sprintboot 的接口的类型提示么 以往一般就是swagger 生成或者后端人员写开发文档对文档其实是很低效且不是很安全的做法。
0
1
0
浏览量200
来自武功山的爱

zsh: command not found: dockerd?

MacOS 上面的 docker 是跑在虚拟机里面的,所以在终端里面找不到 dockerd 是正常的。 看到你贴的链接,然后看了一下文档,如果要给dockerd增加配置 "--seccomp-profile",也是可以直接写在 daemon.json 里面的。 "https://docs.docker.com/reference/cli/dockerd/#daemon-configu..." (https://link.segmentfault.com/?enc=0D%2Bz1GmfBjUZ%2F16mqEzxHA%3D%3D.873fnysbfG6RRuEdikR%2FlsFMetucQPwCrrzbJ75%2FFSpRxMst1hukdXKPrXdwYk2Ia67ke3tc7gZypFMHSUYgpjoJ44TyIy9ulejXoDcjT3E%3D) 所以你如果需要修改这个配置,修改daemon.json就可以了。 (手上没有macos版本docker的环境,网上找的截图) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240927/5ac7406faf644a5271c265ae47d4726f.png)
0
0
0
浏览量0
来自武功山的爱

前端测试驱动开发中,我们先写什么类型的测试呢?单元测试?端到端测试?可视化测试?

前端测试驱动开发中,我们先写什么类型的测试呢?单元测试?端到端测试?可视化测试? * web app * page 1 * component 1 * compoenet 2 * page 2 * component 1 * component 3 * ... 如果我们采用组件驱动开发,自低向上开发我们的"web app"。当我们开发一个组件的时候,先单元测试、端到端测试还是可视化测试? 或者说测试驱动开发如何在前端实行?
0
1
0
浏览量150

履历