JayCoder
element plus和这种table合并的逻辑怎么写?
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20250121/af7c037e35a4c0b4a982aed9be48784b.png)
"Data": [
{
"PatientName": "导管室光盘刻录",
"sm": 5376.0,
"ct": 216.0,
"t": "微信",
"total": 7186.0
},
{
"PatientName": "导管室光盘刻录",
"sm": 405.0,
"ct": 16.0,
"t": "支付宝",
"total": 7186.0
},
{
"PatientName": "导管室光盘刻录",
"sm": 1405.0,
"ct": 119.0,
"t": "聚合付",
"total": 7186.0
},
{
"PatientName": "小儿内科(二)",
"sm": 561.1,
"ct": 133.0,
"t": "微信",
"total": 576.1
},
{
"PatientName": "小儿内科(二)",
"sm": 15.0,
"ct": 9.0,
"t": "支付宝",
"total": 576.1
},
{
"PatientName": "医疗服务(病历复印)",
"sm": 12040.0,
"ct": 888.0,
"t": "支付宝",
"total": 12040.0
},
{
"PatientName": "医疗服务(营养科)",
"sm": 4935.4,
"ct": 80.0,
"t": "支付宝",
"total": 4935.4
},
{
"PatientName": "医疗服务费(急诊))",
"sm": 3203.6,
"ct": 162.0,
"t": "微信",
"total": 3344.8
},
{
"PatientName": "医疗服务费(急诊))",
"sm": 141.2,
"ct": 5.0,
"t": "支付宝",
"total": 3344.8
},
{
"PatientName": "合计",
"sm": 28082.3,
"ct": 1628.0,
"t": "",
"total": 28082.3
}
],
我在objectSpanMethod中写逻辑,写了半天写不成,最关键的是需要合并的行个数不定,1,2,3,4,。。行合并都有可能。
const objectSpanMethod = ({row,column,rowIndex,columnIndex}) => {
let count=data.list.filter((item)=>item.PatientName===row.PatientName).length
if (columnIndex === 0 || columnIndex === 4) {
/*
if (rowIndex % count === 0) {
return {
rowspan: 2,
colspan: 1,
}
} else {
return {
rowspan: 0,
colspan: 0,
}
}
*/
}
}
JayCoder
mysql多结果集+覆盖索引无法满足需求的时候,有哪些优化sql的方式?什么时候会用到ES?
灰机:@唯一丶 另外关于将mysql的订单数据同步到es的情况,我目前总结有两点可能:
商户侧和用户侧的查询订单操作比较多,传统的分库表、查询优化已无法满足,所以用es分担mysql的读压力
有较多且复杂的聚合计算类需求,放到es上执行优势更明显
不知道这两点是否有问题,或者还有补充。
今天 12:13
来自北京
唯一丶:@灰机 我们使用的主要原因也是因为 ES 的查询、聚合更加强大,能较大限度的满足我们的需要,且不用过于的去考虑优化。
对于简单化的查询,仍然是在数据库进行,只是后台运营需要的复杂查询和统计才会放到 ES 端查询。
JayCoder
vue3 ts 提示模糊?
这个应该是ts的特性,跟vue没关系,在ts官方文档这一章节有说 "Literal
Inference" (https://link.segmentfault.com/?enc=de7woKyfXMlL3Aq1eohMgg%3D%3D.9FBrn5VJC1BOMhzPgdyriJSoOXcFq0y7B4F%2F%2FUsjrwL1pGmlV5CJa4NIFP%2B9dbQ8kt6YQVjtcQhSPUHLSsnK3i5MA%2FtSqIkj%2Bu4VhMnlUYAWvuegRO5m85G6gNoHTH9S)
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250104/dc5c0d162901cab10aea4c089245f26a.png)
因为一个对象是可以修改值的
有两种方式
1给属性加"as"
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250104/015ac79b1e33544ae1536eab94f1a6fa.png)
2给对象加个"as const"
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250104/1a31d018db9196c8e202d4ae33ad09b9.png)
感觉你这样在vue上没啥意义,因为属性多了就省略了:
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250104/9dde705ce7fcd158f27c5fb0feeadfc4.png)
JayCoder
Node项目中 CommonJs语法 和ES6 Module的语法 ,两个不同语法的文件可以互相导入吗?
现象
1. 项目A:ESM 模块文件中导入 CommonJS 模块文件。运行项目没报错
«"https://stackblitz.com/edit/stackblitz-starters-> pescaa?file=p..." (https://link.segmentfault.com/?enc=RHytx6FgBECDeSI%2BFFJYcg%3D%3D.FwAhcWkSYjSEHFSmmROFh0nI%2BJYMQ8XytSI%2BTBP1AFjtg5ThAADP06beugy20c8oo6YZ4cXamLvmBlfBcNaUp47h05Ak4BqFCqGvclFr3zY%3D)»
2. 项目B:CommonJS 模块文件中导入 ESM 模块文件,运行项目报错
«"https://stackblitz.com/edit/stackblitz-starters-> hujdvx?file=p..." (https://link.segmentfault.com/?enc=l6kDrWL9PrrmkGHxb2u30A%3D%3D.ENTBu%2F1WIHZEwPVoi6QcculOTJW2NtB1VIHpmUKk%2B14krlDFuNfbc9NNU%2Fx4%2Fd3mQahHSfm0ytV339MsXZkuFm62zm3Zh5%2FIoBsLjrFDIS0%3D)»
***
关于
在
"https://nodejs.org/api/packages.html" (https://link.segmentfault.com/?enc=7f%2FmvoF1zwRfL6LbpU2j%2Bg%3D%3D.OW%2FWtT78QiuUJC4R7vLgarYtF9jXCBAMQCiZ4Cug%2F0y9aCuzujHUMQxAtl3IggOn)
中有这样一段内容:
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250105/a6312514ee41c86bdc99e09ae0bfce95.png)
如果以模块的形式导入会使用模块自己的 package.json.
如果以路径的形式化导入会使用被导入文件就近的 package.json.
我的这个理解对不对?
***
问题
我一时也不知道该怎么表述这个问题了。大概就是 ESM 和 CommonJS 互相导入的问题吧。
1. 项目是 ESM,那么项目的某些文件中能不能用 CommonJS、然后在 ESM 中导入 CommonJS?或者项目是 CommonJS,项目的某些文件是 ESM,CommonJS 中能不能导入 ESM?
2. import 本地项目的某一个文件,为什么会使用导入文件附近的 package.json?被导入文件附近的 pacakge.josn 有什么影响?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250105/511a518c45b9ea4f9806e37295904ef9.png)
3. 如果是导入模块,是不是一般模块的 package.json 中都会指明使用 CommonJS 语法会导入哪个文件、使用 ESM 语法会导入哪个文件?
===============================================
对于以上的问题 "@然后去远足" (/u/rhqyz) 已经给出了准确的回答。
补充两个问题
另外就是 在
"https://nodejs.org/api/packages.html" (https://link.segmentfault.com/?enc=SlQbPIzEMDeq79xIBp3nRw%3D%3D.xV9FLgoehlZwMen8DBRqF%2F5NY2y%2Fkqj4WCY67LILHv3K5lea5sN1T%2FcQhUWbKIPs)
的开头部分 ES 模块和CommonJS模块的对比中提到了, ES可以 loader commonjs, commonjs不能loader es
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250105/7524305cc1ea9c82730fb64c6ad8f2a7.png)
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250105/865ddf70521b382ac46a67d0eb7967ab.png)
补充问题:
1.至于为什么 commonjs 不能loader es,我不确定,chatgpt的回复
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250105/3402e899c992fa04248fe44ea8d30387.png)
"@然后去远足" (/u/rhqyz) 求大佬再帮忙解释一下。
2.让chatgpt给个示例, 他给出的示例中 提到的输出顺序 也搞不懂为什么 顺序不确定。
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250105/2874f8d826039055752c889af4d44072.png)
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250105/42482817ff364339e8f9c7eeb07200a2.png)
按照我的理解: commonjs的require是同步的,es的import也是同步的。
所以main.js 中 require('./commonjsModule.js');
commonjsModule.js中 require('./es6Module.mjs');
所以 es6Module.mjs 不是应该先被加载并执行内部的代码吗?
JayCoder
阿里云主机监控可以导出结果吗?
公司使用一个阿里云账号监控30多台服务器的CPU,磁盘,内存的运行情况, 使用的是阿里云自带的agent, 现在查看监控结果只能在阿里云控制台查看,
但是想要将所有服务器的运行情况做一个汇总和分析, 应该怎么获取到监控的结果, 控制台只能查看, 不能导出, 也不好复制出来, 彦祖们有什么想法和建议吗?
JayCoder
IDEA怎样调试已打包tomcat项目?
项目代码
"https://wwi.lanzoup.com/ipdSO17mx3mj" (https://link.segmentfault.com/?enc=aLKodd4AXecJdCzvt0f05g%3D%3D.zRraxXi0NQ%2FZfh7M%2BHIwRW4N7%2FP%2Fi0Yyx2GCKH0wKKvyYBog13IMGMdfskqXRNlQ)
按这个配置了一下没成功.
"https://ca3tie1.github.io/post/shi-yong-idea-yuan-cheng-diao-..." (https://link.segmentfault.com/?enc=6Mc9Ei7j3uTtu6BfD5K4DQ%3D%3D.f6QYtfMpoVEvtYjfrGYQ3usOd4nIgQ%2BMU%2BHt3ETMQrtblCnan8pOP%2FqTdXoGciHBODYMir3nqHtfTIaCjKV9H7sLMJEv7X5XvRHKpGL4HUl%2B1NHfiUXFNCLxIfwsbFfK)
搜过了.也试过了
Tomcat Local Server,
Tomcat Remote Server
都没成功.可能是细节上有问题.
补充两个图
显示 connected to server ,但是下断点访问 / 没有断下来.
"Snipaste_2023-09-12_05-22-41.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250102/2fdf50bef90eb46097785c8b03a9f1b9.png)
"Snipaste_2023-09-12_05-22-15.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250102/6619dcd7a67bbc9c54ded21f032d50a1.png)
JayCoder
VLC 播放器如何快捷调整播放速度?
你这个是windows版本的吧,可以用快捷键:
* "["键代表减速
* "]"键代表加速
我用的是potPlayer,可以满足你的要求,这是下载网站"https://potplayer.daum.net/" (https://link.segmentfault.com/?enc=kBFIQwQy1zaOuawiZJS4Hw%3D%3D.J73Cnr6iIuEpF5iA%2BJIJjph1kUKNG2apWvDxARtXsUk%3D),快捷键是:
* Z(减速)
* X(重置)
* C(加速
JayCoder
微信小程序 新的用户隐私指引,wx.getPrivacySetting 不兼容ios系统报错?
不用做了,代码可以删掉了😁
"小程序隐私协议开发指南" (https://link.segmentfault.com/?enc=GxrWwMd6IFLUbYYXnzabgg%3D%3D.J5pOMLjWGVRDmF%2BMiIP0%2BA2fAURdx3uIbzyrtLiGXtnlANH9kK9VQxSq1O28BSssqJE6%2BOlvcQFLwxttcfYI10%2BavX8st5GcDySMBmA4Iw%2FDtVZJulLdQw96S87SbVho)
«2023.09.14更新:隐私相关功能启用时间延期至 2023年10月17日。在 2023年10月17日之前,在 app.json 中配置
"__usePrivacyCheck__: true" 后,会启用隐私相关功能,如果不配置或者配置为 false 则不会启用。在
2023年10月17日之后,不论 app.json 中是否有配置 "__usePrivacyCheck__",隐私相关功能都会启用。新增官方隐私授权弹窗功能,相关功能参考下方"官方隐私弹窗功能说明" (https://link.segmentfault.com/?enc=w5T870p%2FKn6Gp3TXdJXljg%3D%3D.iQ3WweWRcMfNUsKNdOU1tfhfeGThio5Cqe49FY8sgf5wMm9VXPpeY8FNDuZxKkpvDV165Skf5dX7Oul5GFqa1mnEWfW1mhYybso5xzdpNnIzLpUAlGfxMuRiZ9awAWHEIPHas1AP5ZJFSoo5mz8dp7SBOV5xuRJObd5lW4jKkqDWMXvFcpmSSGbN3bu2i8sMKJS766FlT44TmFLgigAJf6VDtGBK3h3cqx5C9juTL4EsLo%2B3AFLWbRhX3mfZrwvY1vgC6zuy18%2BLqMPHGlBj%2Bw%3D%3D)。»
JayCoder
如何实现下图的效果呢?
1.设置一个外层div元素盒子A,元素A的宽度为屏幕宽度
2.以整个时间段(图中为10:00-16:00)为维度获得计量时间 按小时的话为6小时,按分钟的话为360分钟,然后A的宽度/360
获得每分钟占用的元素宽度 W
3.根据车辆的进入时间-开始时间(图中为10:00)得到分钟差值,比如某车辆10:40分进入,10:40与10:00的差值就是40分钟。将40分钟*每分钟占用的元素宽度W即可得到该车辆元素距离外层div元素A的padding值
4.根据步骤3得到的动态padding值设置车辆元素的左内边距值
5.以此类推,车辆元素的宽度可以通过计算车辆离开时间-车辆进入时间的差值得到,从而根据这个插值设置车辆元素的宽度
JayCoder
怎样把电脑文档转换成手机可以浏览的形式呢?怎样把自己编写的的网页放在超链接里(比喻有点不恰当)?
首先,手机可以浏览的形式?你直接腾讯文档打开就是可以浏览的,没有什么说手机浏览的形式,只是你手机能不能支持打开这个文件的格式,也就是有没有打开word,ppt呀这种软件呀,有的话直接打开,其次你说的做的网页放在超链接里,我没猜错的话,你想说word,ppd这种里面做一个超链接然后直接链接到你的网页?这种的话,有两种,线上的话域名超链接,本地文件(你做的html)路径即可,如果你觉得对的话麻烦采纳一下,谢谢
JayCoder
vue3 的 defineProp和 defineEmit 为何只能定义一次?
defineProps 和 defineEmits 只能定义一次不利于 分离逻辑,
为何不 defineProp 并且可使用多次,
比如
const count = defineProp(Number)
const label = defineProp(String)
JayCoder
环形图中心指标能否设置选中时展示?
在环形图中,中心区域有大量的空白,我想利用这些区域,在单击某个扇区时,在图表正中间显示该扇形对应的数值。
JayCoder
swiper react要移除了?
确实Swiper计划在未来的版本中移除React组件,并建议迁移到Swiper Element。
如果你正在使用Swiper的React组件或计划使用,建议你考虑迁移到推荐的Swiper
Element,或者至少确保你知道如何在未来进行迁移,以避免潜在的中断或兼容性问题。
"https://swiperjs.com/migration-guide-v10" (https://link.segmentfault.com/?enc=t%2FOe%2FxXIhsAMfysVySB%2BRQ%3D%3D.NhEyhpcY2r%2FZy%2BF4%2F%2B1xRGS1WNGhfJZk519Hffsmfpu1L8thqHNYkklm5zbjQD9P)
JayCoder
如何完成这个 TS 函数的声明?
拿走不谢
type Opts = TMap[T]['param'] extends never
? [opts?: { query?: TMap[T]['query'] }]
: [opts: { param: TMap[T]['param']; query?: TMap[T]['query'] }]
function get(api: T, ...args: Opts): TMap[T]['data'] {
// TODO
throw 'Unimplented'
}
也可以使用函数重载,一个对外强制类型,一个对内稍微宽松一些
function get(api: T, ...args: Opts): TMap[T]['data'];
function get(api: Api, opts: {param?: object, query?: object} = {}): any {
// TODO
throw 'Unimplented'
}
JayCoder
idea启动springboot后, 关闭springboot服务,进程还在后台运行,如何能够关闭?
如题
操作系统:win11
idea版本:IntelliJ IDEA 2023.2.3 (Ultimate Edition)
操作:
运行 xxxApplication, 然后我点击图中的三个按钮, 均无法停止服务,进程还在后台运行
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241208/3663ab3266df0201873dcbfd853c9932.png)
JayCoder
ts类型implements后类型为never?
type ParamsA = { test: string }
type ParamsB = { test: number }
interface Base {
create(params: unknown): void
}
class PageA implements Base {
create(p: ParamsA) {
}
}
class PageB implements Base {
create(p: ParamsB) {
}
}
let a = 1
const e = a > 1 ? new PageA() : new PageB()
e.create({ test: '1' })
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241206/59d052d1c24be11c296c34dbc9b0be95.png)
这里的 "create" 方法参数的类型理想状态下应该是 "ParamsA | ParamsB",这里为什么会是 "ParamsA & ParamsB"
"在线查看代码" (https://link.segmentfault.com/?enc=tRAlKYgyWRH47uXPr61H%2Fw%3D%3D.Af6CljVP3iLsbMKBy3CWM5P9KlKkf8TbAVOv6Hqv182Y5E9nXmUjqghPqnxzWHewSgrARS19Tt67gs4zLHvp6Dx5OjfVRnfFxoYdfDkJeY9SC%2FGZIbGEsRxgLZApXsHrUxyhsNaUvBqcaIaHChNK3wEo4XDncpp25RXI2Lb2pW2WTndZOGle7VSCTdmMV0Z3nac06hn4pfIby%2B7LrEO5F7lC32OIC15wOM8CAX%2Fu8RLrP65E4omaTb9acFeIkRybt1of67PLSmbz11iBCFMrIJ7vMyiXfsVCCASjbWnnvWRObp71ruw0kzx2jRNECMcpSjaBVyYsSVBlnNmPi3qHuGhaqbFqUsT0MMPLJNozwBYlI1GyCU1xPFNmt8NShZbvjoltNX1ZVnjf9e%2BzPcPEbb7mp40%2F61YSgM%2B3XC6EA7yztEG9Fcu4PeYGKGnzxWIUe4MKGimPg88CGHkpBiodVV33GxyzNL3SFLgrebEOb2wDUTr0EvNVvBTHcacskNz5)
JayCoder
golang slice切片扩容问题?
s3 跟 Test2 中的 s 是两回事。
Test2 中 append 没有扩容,只是改变了 slice 的长度。但是它改变的是 s 的长度,而不是 s3
。它们依然共享这一个数组,但是他们有不同的长度。在 Test2 之后,数组中已经的是 [0,0,6,6,6,0,...] ,但是由于 s3 的长度还是 2
,所以打出来还是 [0,0] 。
s4 打出了数组中的全部内容。
JayCoder
CSS中的font合成属性的应用问题?
font合成属性可以用来作为font-style,font-weight,font-height;font-family属性的合成
font:[||||]?[/]?
eg:font:italic bold 20px/1.5 Arial,"微软雅黑";
实际编程练习中遇到的问题:
题目要求font属性用简写方式写:文字加粗,样式是斜体,字体变形,运行如下图:
https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241201/2e624b287ba5210a5e61fd7ca92056fa.png
出现错误,所以必须就是要有一个完整的后面的行高和字体类型都必须设置才可以吗?但是有些题目没有行高和字体的要求,这种情况应该怎么办?
成功的代码:
https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241201/8cfb84d924b959d0c5e4d4e6e7c88651.png
还有请问就是把颜色可以合成到font合成属性的这个中吗?
JayCoder
node+express使用multer上传的图片怎么让前端显示?
做了一个前后端分离的文件上传
前端使用react+antd的upload组件实现上传功能,后端使用node+multer,图片上传成功了,也存到数据库里了但是前端无法显示
前端代码
} />
后端代码
var express = require('express')
var router = express.Router()
const multer = require('multer')
const userController = require('../controllers/users')
const upload = multer({ dest: 'public/avatars/' })
router.post(
'/update-avatar',
upload.single('avatar'),
userController.updateAvatar
)
updateAvatar: async (req, res) => {
const { file } = req
const avatarUrl = `/public/avatars/${file.filename}`
const { id } = req.body
try {
const data = await userServices.updateAvatar(avatarUrl, id)
if (data[0]) {
res.send(sendData(true))
}
} catch (error) {
res.status(500).send(sendData(false, error.message))
}
},
上传成功后在本地文件显示为这样
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241130/787ed57f6d5f5809db322b65ede82bca.png)
数据库里
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241130/8b19e73cbf40bf13af30cff881666155.png)
显示在页面上
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241130/db96ffce594d23ddae9c3fa589390a1f.png)
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241130/f7e552e5123c79892692d8b20747c102.png)
JayCoder
如何实现一个倒计时,切换浏览器 tab之后定时器不暂停,和 segmentfault 的倒计时验证一样?
https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241130/72a07a01bbe09ba37da1f1282c983b81.png
JayCoder
如何从外网访问家中openWrt的管理页面?
看下防火墙,一般都防火墙没开
JayCoder
浏览器中的ctrl+F调用出的搜索功能是否只是浏览器自己特有的,electron项目是否有这样的功能?
这是浏览器的 Feature,跟 Chromium 内核无关。
你要是想自己做的话可以参考这个项目:"https://github.com/TheoXiong/electron-find" (https://link.segmentfault.com/?enc=4fmgAvgcisNm9kuAPrlIKg%3D%3D.qZw6nFHVzQ9gqscHm%2FW2tgoStHFSdrHFb9INenYYGw44Id798JMWWgyav%2Bu8HETX)
说白了就是自己注册个全局快捷键,然后再做处理。
JayCoder
ts 当一个属性为联合类型时,如何通过它的取值来控制其他属性的类型?
我想要通过 IMap 这接口来获得一个类型,类型中有两个属性type 和 props, props 属性的类型会随着 type 属性的取值发生改变,type
的类型为 IMap 接口中的所有属性名的联合类型,props 的类型就是 type 取值在 IMap 中同名属性对应的类型。
interface IMap {
a: number,
b: string,
c: boolean
//...
}
type Config = {
type: 'a',
props: IMap['a']
} | {
type: 'b',
props: IMap['b']
} | {
type: 'c',
props: IMap['c']
}
// ...
通过这种方式写联合类型的方式可以达到我想要的结果,但是 IMap 中的属性有特别多,做不到将所有的组合都罗列出来,有什么解决办法吗?
JayCoder
aliyun ESSD云盘是什么原理?
网络比磁盘慢n个数量级
而且 SSD 对 IOPS 要求很高,对延迟很敏感,需要低于 0.1ms
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241116/16d83e36525fafc20a70b0f785b3f078.png)
而网络延迟,内网基本也要 0.1ms 起步
***
但是 aliyun 的 SSD 叫做 「ESSD 云盘」,「云」不就是「网络」的意思吗?
为什么 「ESSD 云盘」 既可以做到低延迟
JayCoder
静态H5的Vue项目如何在单文件组件中实现动态加载依赖?
export default {
// ...
mounted() {
if (!window.echarts) {
const script = document.createElement('script');
script.src = "https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js";
script.onload = () => {
window.echarts = true;
this.initializeChart();
};
document.head.appendChild(script);
} else {
this.initializeChart();
}
},
methods: {
initializeChart() {
// 初始化 ECharts 图表
}
}
};
JayCoder
日期组件有有开始日期和结束日期 怎么处理选中的时间在一个月30天?
日期组件有有开始日期和结束日期 怎么处理选中的时间在一个月30天?
data() {
return {
form{
rovalDateStart :null,
rovalDateEnd :null
}
}
DateFn(dates, dateStrings) {
this.rovalDate = dates;
this.form.rovalDateStart = dateStrings[0];
this.form.rovalDateEnd = dateStrings[1];
},
JayCoder
onclick 点击拿到removeMarker的方法?
onclick点击怎样才能拿到removeMarker这个方法?
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241110/097bf51fd1c2a67aa18fdaa4e8b40798.png)
JayCoder
vue3 如何获取当前元素的后代元素有class="show"的元素?
无限级菜单
点击每项隐藏或显示每项的后代子菜单
let menus = defineProps({
'menu': Array
})
let hide = (item) => {
item['show'] = true
}
{{ item['name'] }}
0">
.item .hidden {
visibility: visible;
}
.item .show {
visibility: hidden;
}
这是另一个vue文件
import {reactive, ref} from "vue";
import IMenuItem from "@/pages/IMenuItem.vue";
let json = reactive([
{
name: '一级',
children: [
{
name: '二级',
children: [
{
name: '三级',
children: [
{
name: '四级',
children: []
}
]
}
]
},
{
name: '二级',
children: []
}
]
},
{
name: '一级',
children: [
{
name: '二级',
children: [
{
name: '三级',
children: [
{
name: '四级',
children: []
}
]
}
]
},
{
name: '二级',
children: []
}
]
},
])
以下是我实现的方法
let hide = (item, event) => {
event.stopPropagation()
let childMenus = event.target.querySelectorAll(".item");
if (item['show']) {
childMenus.forEach(childMenu => {
childMenu.style.visibility = "visible";
})
} else {
childMenus.forEach(childMenu => {
childMenu.style.visibility = "hidden";
})
}
item['show'] = !item['show']
}
JayCoder
如何查询 kubernetes 历史各个版本的发布时间点?
如何查询 kubernetes 历史各个版本的发布时间点?
"https://kubernetes.io/releases/" (https://link.segmentfault.com/?enc=WNEfqGpnX7yWPdakkkg0Qw%3D%3D.2a7FfHdppYw%2BQywpr%2Bw0QiDwGo50x523q1cfjjDg9yg%3D)
在这里只能看到最近几个版本的发布时间点,不能看到所有历史版本
JayCoder
能不能用 Java 实现把 Excel 文件转化为 PDF?
具体教程:
«"https://juejin.cn/post/7057793356516032526" (https://link.segmentfault.com/?enc=TRTeTDo1cNEEC1PGdm%2FHlw%3D%3D.mbuP6ndP9qrS%2F5gOL3tegU786M9xLjBojf8PGbTWkZrCe2mEsJ7TQ1YGNdVBf2j2)»
JayCoder
Java如何在运行时获取一个类的所有对象实例?
用起来嘎嘎爽
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241102/39445f3c811e3157d05ec79ad478121a.png)
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241102/73303f62cc8ce265dcbea89221cf61a9.png)
JayCoder
网站控制台打开后内容被清空?
这个网站的控制台打开后内容就清空了 "https://www.mddcloud.com.cn/"。这个用的是什么技术?
JayCoder
请问windows如何快速搜寻几千个PDF, Word里面的内容是否包含XXXX?
可以试试"我的abc软件工具箱" (https://link.segmentfault.com/?enc=fpOPz3FYusrxcYM31c0%2BvA%3D%3D.TXqE7CtriT0EppVRv5GNBnKIOVEggWqYEDUJjvjV2kgroZPyRYTmGGx4g8i4uv%2BTvdEPWJ0jcuLF9wVGxGqNSe5giXCWR%2FG%2FEHya2ISiOSSoSZcocdOM1ITx%2BExPW2RiK8K5UuBG5HKj1u9JG33vw3ekKWUUip5%2FIKcD1ydcB3HEU4rcPWOW6UgSpmWc6xb7TRVl%2Bm51StZ%2BE4kTjCjXYjxY3AWKKiaRqYssGBRjid2ZCxet0bMwspyQfe%2F2qbnup54aojddmSSQjE%2B%2FOTa1ynGvIXCOUFYzxFsiK3VITqxNYWBF%2Bbsu48WSXR4V%2BR%2BvSlDFjH%2BrPXrzGfw3bR5ERg%3D%3D)
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241102/208bf45cd068ddc0b31f164c34d18114.png)
JayCoder
mac 使用 adb 无法连接到小米手机做无线 adb 调试?
mac 使用 adb 无法连接到小米手机做无线 adb 调试
"图片.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241101/4ad9cf3102aff55f8fd487fae2281a20.png)
已开启小米手机的无线调试功能
在 mac 上检查和手机的连通性
─➤ nc -zv 192.168.35.66 40613
Connection to 192.168.35.66 port 40613 [tcp/*] succeeded!
─➤ ping 192.168.35.66
PING 192.168.35.66 (192.168.35.66): 56 data bytes
64 bytes from 192.168.35.66: icmp_seq=0 ttl=64 time=54.321 ms
64 bytes from 192.168.35.66: icmp_seq=1 ttl=64 time=71.361 ms
64 bytes from 192.168.35.66: icmp_seq=2 ttl=64 time=90.770 ms
^C
--- 192.168.35.66 ping statistics --- 3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 54.321/72.151/90.770/14.891 ms
但是连接就是会失败
─➤ adb connect 192.168.35.66:40613
failed to connect to 192.168.35.66:40613
mac 上的 adb 版本
─➤ adb --version
Android Debug Bridge version 1.0.41
Version 34.0.5-10900879
Installed as /opt/homebrew/bin/adb
Running on Darwin 23.1.0 (arm64)
已经重启过 mac 和 手机,都一样失败
如何排查?
JayCoder
用flask框架和yolov5开发html网页,打开摄像头检测框失败,该如何解决?
"cv2.VideoCapture(path)" 这里面的path要么是本地笔记本摄像头,填写数字0,要么是IP摄像头的rtsp地址,
要么是一个本地绝对路径文件 。你这里通过接口传递过去的那是啥?"gen(f'upload/{f}')"。
还有报错信息是什么?如果是本地文件路径的话,建议改成绝对路径,或者完整路径试试看。
还有你的 "/video_feed" 接口也没有调用啊。
JayCoder
如何关闭 iterm2 的 「command+回车」会放大缩小窗口的快捷键?
如何关闭 iterm2 的 「command+回车」会放大缩小窗口的快捷键?
"图片.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241026/ae7c8c0e3ae76a0488691e1a2f544b57.png)
"图片.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241026/7e4b9cfb2935080bb82d5015e4f46fbc.png)
"图片.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241026/6e0584a5e1bc659763422de395c49d42.png)
在设置里面没有看到这样的快捷键,不知道在哪里关闭
JayCoder
请问CMakeLists.txt文件之间有没有联系?
是有联系的:
根目录下的CMakeLists.txt通常用于配置整个项目的基本设置,例如定义项目名称、设置编译器选项、引入依赖项等。这个文件充当了项目的主干配置文件。
而在源码目录下的CMakeLists.txt则可能包含特定于该目录的配置,例如源文件的列表、编译选项等。这允许项目采用模块化的方式组织代码,使得每个子目录都可以有自己的构建和配置规则。
它们之间的联系通常通过CMake语言的命令和变量进行。在根目录的CMakeLists.txt文件中,可能会使用add_subdirectory()命令来引入其他子目录的CMakeLists.txt,从而将它们整合到整个项目的构建中。
如果你想详细了解这两个文件是如何关联的,你可以打开这两个文件,查看其内容。尤其是在根目录的CMakeLists.txt中,寻找是否有add_subdirectory()命令或其他相关的配置,这将是它们联系的线索。
JayCoder
如何解决Juint5每次执行测试方法都需要启动一次项目?
在进行单元测试时,执行一个测试类就要启动springboot项目,加载上下文数据,每次执行一次测试都要再重新加载上下文环境.这样导致每一次单元测试时都会花3-5分钟时间。如何解决这个问题?
网上找不到什么简单的可行方案
JayCoder
请问这种水滴形状用css怎么画呢?
如果要 纯CSS 可以改 "border-radius" 实现一个类似的,但一般绘图还是建议直接用 "canvas" 或者 "svg"
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241016/17186b6ae84841ea7ce23c5a15b33d8b.png)
.water-drop {
width: 100px;
height: 260px;
background-color: #3498db;
border-radius: 50% 50% 50% 50% / 20% 20% 80% 80%;
}
JayCoder
Flask读取MySQL数据库中的图片并返回给前端的步骤?
这行代码"image_data = MySql_†2.execute_query (sq1)"的返回值应该是一个元组类型,你需要提取出来:
row = MySql_t2.execute_query(sq1)
if row == None:
raise Exception('...')
image_bytes = row[0]
return send_file(image_bytes, mime_type='...')
作为动态类型语言,一定要注意代码编辑器的类型提示,能避免很多错误。
JayCoder
Vue 子组件渲染次数与父组件 props 和子组件数据变化的关系?
在Vue的源码中,当响应式数据发现改变的时候并不会立刻更新页面,而是执行执行queueWatcher函数,而这个函数内部维护着一个队列,而需要执行更新的组件会被推入到这个队列中,如果你在一个事件循环多次向这个队列中push同一个组件,它只会push一次,因为它每次push的时候都会拿你正在push的组件的id去跟队列中的组件的id比较,如果存在就不再push。Vue会把队列通过nextTick来执行,而nextTick也不是立刻执行的,它内部是以Promise,mutationObserver,setImmediate,setTimeout其中一个来执行,优先级就是上面的排列顺序,所以它就变成了一个异步任务。因此子组件只会更新一次。
Vue视图更新源码分析如下:
/**
*将观察程序推入观察程序队列。
*ID重复的作业将被跳过,除非
*在刷新队列时推送。
*/
export function queueWatcher(watcher: Watcher) {
// 首先获取当前 watcher 的 id
const id = watcher.id
// 判断这个 watcher 是否已经存在,因为 Vue 并不是在数据发生变化之后立刻更新视图
// 而是收集起来的,因此在上一次没有更新视图之前,即使数据发生改变也无需再添加,因为
// watcher 更新视图的时候使用的数据依然是最新的数据
if (has[id] != null) {
// 已经存在就不再收集
return
}
if (watcher === Dep.target && watcher.noRecurse) {
return
}
has[id] = true
if (!flushing) {
// 否则把 watcher 放到一个队列中,在下一次事件循环的时候再一次性更新视图;
queue.push(watcher)
} else {
// if already flushing, splice the watcher based on its id
// if already past its id, it will be run next immediately.
let i = queue.length - 1
while (i > index && queue[i].id > watcher.id) {
i-- }
queue.splice(i + 1, 0, watcher)
}
// queue the flush
// 接着就开始执行渲染
if (!waiting) {
waiting = true
if (__DEV__ && !config.async) {
flushSchedulerQueue()
return
}
// 执行渲染,可以看到它调用的就是 nextTick 方法;
// flushSchedulerQueue 就是刷新页面的
nextTick(flushSchedulerQueue)
}
}
function flushSchedulerQueue() {
currentFlushTimestamp = getNow()
flushing = true
let watcher, id
//刷新前对队列进行排序。
//这样可以确保:
//1。组件从父级更新到子级。(因为父母总是
//在子项之前创建)
//2。组件的用户观察程序在其渲染观察程序之前运行(因为
//用户观察程序是在渲染观察程序之前创建的)
//3。如果组件在父组件的观察程序运行期间被破坏,
//它的观察者可以被跳过。
queue.sort(sortCompareFn)
//不要缓存长度,因为可能会推送更多的观察者
//当我们运行现有的观察程序时
for (index = 0; index MAX_UPDATE_COUNT) {
warn(
'You may have an infinite update loop ' +
(watcher.user
? `in watcher with expression "${watcher.expression}"`
: `in a component render function.`),
watcher.vm
)
break
}
}
}
JayCoder
nodejs中怎么引入有ES6语法的npm包?
可以直接用 ESM 么?在 "package.json" 里用 ""type": "module"" 开启。
你差的知识太多,需要厘清很多概念。
1. 首先 ESM 和 CommonJS 是目前最主流的模块管理方式,前者标志是 "import",后者是 "require"
2. 这两者都只针对 JS。其中 node.js 都支持,web 则只支持 ESM。
3. 在 "package.json" 里声明 "type: module" 会指明该项目在 node.js 下使用 ESM。但是你这个是网页项目,所以跟 package.json 就没什么关系。
4. 既然你用了 babel,那么很可能也会配套使用 webpack 之类的打包工具。如果最终产品都走打包,那就无所谓。
5. 否则你就要区分你的 JS 运行在哪个环境下,并采取对应的手段。
6. 实在不好搞,我的建议是换个包,或者降版本先试试。或者,换个新工具从头开始。总之问题要一个一个解决,不要死抠。
JayCoder
js 匹配后台返回数据实现动态表头字段?
总的表格表头配置,可以手动新增字段
columns: [{
title: "海区",
key: "area",
}, {
title: "浪高(m)",
key: "waveHeight",
}, {
title: "水温(℃)",
key: "waterTemperature",
}],
接口返回数据如下的时候
0: {area: "刁口", waterTemperature: "-0.4 "}
1: {area: "黄河口", waterTemperature: "-0.1 "}
2: {area: "广利港", waterTemperature: "-0.5 "}
3: {area: "东营港", waterTemperature: "0.2 "}
4: {area: "新户", waterTemperature: "-0.7 "}
5: {area: "埕口", waterTemperature: "-0.4 "}
表格展示海区跟水温
就是动态表头,后台返回什么字段,表头配置的 columns 就是什么字段
有什么好的方法吗
JayCoder
请问小红书的banner滚动的指示器效果如何实现的?
看 swiper
"https://www.swiper.com.cn/demo/index.html" (https://link.segmentfault.com/?enc=SLC6oKdN%2FEBxtR8N6z22aA%3D%3D.7p2cxjvyNLgOxv3epV17jKCF%2Frorbr%2FGRCSc7Q7qWRRF8QUylTcmjvk4kihkKXvp)
分页器 / 动态指示点(040)
"测试传送门" (https://link.segmentfault.com/?enc=JBnAvGClgZ%2Fjskj4smk5rw%3D%3D.3YlNEWz4vTwl8D8v7%2FPqeY50koW4KCxinJ7gSK1ojj8zt1OHKUeAfpCUI3b3yeYggvC2RXPr8nh%2F7PdHqgqOqQ%3D%3D),swiper
是开源的,直接看源码就行
JayCoder
REACT Umi根据后端返回二进制文件流,前端输出成XLSX文件?
可以看一下 get 是怎么实现,盲猜还是内部转 json 了吧。不然纯 blob 的话,即使返回的是 json 也不会报错
JayCoder
如何在mysql中统计json数组中某些值的计数?
* 因为要"每个元素" ,OR 的只能查到 一共 有多少行 有交集SELECT
count( JSON_SEARCH( tags, 'one', "3467562849402896" ) ),
count( JSON_SEARCH( tags, 'one', "3467562861985809" ) ),
count( JSON_SEARCH( tags, 'one', "3465044211793921" ) )
FROM
XXXXXXXXXX
JayCoder
如何监听系统公共事件,如熄屏、亮屏、开机等?
解决措施
通过CES(Common Event
Service,公共事件服务)为应用程序提供订阅、发布、退订公共事件的能力。可以通过订阅系统公共事件监听熄屏和亮屏。另外开机事件可使用公共事件
“COMMON_EVENT_BOOT_COMPLETED“来监听。
示例代码
import { commonEventManager } from '@kit.BasicServicesKit';
let subscriber:commonEventManager.CommonEventSubscriber;
let subscribeInfo: commonEventManager.CommonEventSubscribeInfo = {
events: ['usual.event.SCREEN_OFF'], // 订阅灭屏公共事件
priority:80
}
commonEventManager.createSubscriber(subscribeInfo, (err, data) => {
if (err) {
console.error(`Failed to create subscriber. Code is ${err.code}, message is ${err.message}`);
return;
}
console.info('Succeeded in creating subscriber1.');
subscriber = data;
// 订阅公共事件回调
commonEventManager.subscribe(subscriber, (err, data) => {
if (err) {
console.error(`Failed to subscribe common event. Code is ${err.code}, message is ${err.message}`);
return;
} else {
console.info(`Succeeded in subscribe common event Succeeded1 `);
}
})
})
参考链接
"系统公共事件定义" (https://link.segmentfault.com/?enc=qF5lygFn1S%2Bo0stzuSTb%2FA%3D%3D.7KEmlXhQwP0pucZ0jQrq9kxCyYHu8G3bmznSH%2B2gqC6xNKhohPaUwzZ%2F5ZvFGeLdnP4tIL6MBWwU4rTF%2FHXPf828LXKQPQ3ZvS%2Bh4qeL5KMEv8Wn8%2FN1MptmNf5U2ZawyoEq%2BwrYzXVDgHhlHCrkdt4sQQQkHhm0w9DQ79rmtbI%3D)
JayCoder
Windows游戏接入微信登录?
应该是通过 微信API 生成二维码(带 token)
然后显示在登录界面上,让用户用微信扫码
在手机端
用户扫码后,通过微信的浏览器访问服务器入口页面(这是在用户手机上),然后通过token 微信返回的 openid 做关联,确定是 新用户(自动注册帐号)
还是 老用户登录,然后 数据库 标记 token 关联的 帐号
游戏客户端:
客户端 与服务器通信获取 token 绑定的帐号信息(轮询或者socket发送过来的消息),然后就可以识别用户身份了
具体方式,类似 网站微信扫码登录。
出于安全性考虑,token 应该有时效,且为一次性随机生成(UUID应该就行)。
整个过程逻辑上可以不使用 web相关功能,当然也可以用
JayCoder
Vue路由过渡效果问题?
应该是吧,transition包裹router-view
JayCoder
vue3+echarts实现柱状图?
这是后台返回的数据
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241011/6dd5708fa6e528307910a7047662593c.png)
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241011/d9226723035a170fba09c1ea59492323.png)
请问大佬们我该如何修改才能实现下面的需求?
const TrackImage = ref()
async function TrackTableList() {
const { data: res } = await api.Device()
const satCount = res.sat_count || res.sat_info.length; // 获取sat_count个数或者sat_info的长度
function transformData(satInfo) {
let seriesType;
if (satInfo.sat_type === 0) {
seriesType = 'GPS';
} else if (satInfo.sat_type === 1) {
seriesType = 'GLONASS';
} else if (satInfo.sat_type === 2) {
seriesType = 'GALILEO';
} else if (satInfo.sat_type === 3) {
seriesType = 'BDS';
} else if (satInfo.sat_type === 4) {
seriesType = 'QZSS';
} else if (satInfo.sat_type === 5) {
seriesType = 'NAVIC';
}
return {
seriesType: seriesType, // 添加一个新的属性,用于标识数据属于哪个系列
angle: satInfo.sat_angle_h,
radius: satInfo.sat_angle_p,
value: satInfo.sat_no
};
}
const transformedData = res.sat_info.slice(0, satCount).map(transformData);
}
//柱状图
function TrackImages() {
let MyChart = echarts.init(TrackImage.value)
let option = {
title: {
text: '信噪比:'
},
tooltip: { // 自定义 tooltip 内容
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
},
},
legend: {
textStyle: {
fontSize: 18, // 设置字体大小
}
},
grid: {
left: '3%',
right: '1%',
bottom: '1%',
containLabel: true
},
xAxis: {
type: 'category',
data: [1, 2, 3, 4, 5, 6]
},
yAxis: {
type: 'value'
},
series: [
// GPS
{
name: 'GPS',
type: 'bar',
data: [11, 21, 13, 34, 35, 56],
},
// GLONASS
{
name: 'GLONASS',
type: 'bar',
data: [21, 31, 14, 35, 36, 57],
},
// GALILEO
{
name: 'GALILEO',
type: 'bar',
data: [31, 41, 15, 46, 37, 58],
},
// BDS
{
name: 'BDS',
type: 'bar',
data: [41, 51, 16, 57, 38, 59],
},
// QZSS
{
name: 'QZSS',
type: 'bar',
data: [51, 25, 17, 58, 39, 10],
},
// NAVIC
{
name: 'NAVIC',
type: 'bar',
data: [55, 35, 25, 45, 37, 58],
},
]
};
MyChart.setOption(option);
let autoHeight = 6 * 54 + 100;
MyChart.getDom().style.height = autoHeight + "%";
MyChart.resize();
}
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241011/a8cf58b3368468c38b6cf54dcd9a5e28.png)