0%

iot

涂鸦智能开发者文档

参考文献

其他

web读取nfc

chrome89支持

参考示例

查看手机内核版本

chrome官方的文档

参考文献

识别二维码

组网

如果使用ecs太贵了

图片详情找不到图片(Image not found)

usb开发

usb.core.NoBackendError No backend available

页面

功能需求

  • [x] 生成barcode的逻辑
  • [x] 点击图片上传图片
  • [x] p0,修改逻辑
  • [x] p0,增加逻辑
  • [x] p0,查询逻辑
    • [x] p0,分页逻辑
  • [ ] p0, 物品关联关系
  • [ ] p1,增加数校验
  • [ ] p2, 现存数量提供加减
  • [ ] p3, 增加复制功能
  • [ ] p3,删除逻辑x

样式需求

  • [x] 更新于、创建于缩小到右下角
  • [x] 删除、状态、类型合并到一行
  • [x] 订单、快递、平台(image)合并到一行
  • [x] 保存后需要一个右下角的toasts提示状态
  • [ ] p1,定位上传是一个圆圈图案,不使用bootstrap等框架,手写,考虑到获取定位时的网络环境可能比较差,还需要加载bootstrap的样式文件会很慢
  • [ ] p1 定位嵌入高德
  • [ ] p1,一开始的列表只保留
    • 条码图片下面加上数字(点击复制条码值)
    • 名称
    • 位置(icon)
    • 经纬度变成一个geo icon(点击tooltip显示高德定位的iframe)
    • 数量
    • 图片
    • 状态变成icon
    • 类型变成icon
    • 修改icon
    • p1,点击列展开手拉箱
  • [ ] p2 优化查询组件的手机、pc响应式展示,modal展开的时候,会分布混乱,modal具有container属性的时候修复了一部分
  • [ ] p2 优化分页组件的手机、PC响应式展示,modal展开的时候,会分布混乱,modal具有container属性的时候修复了一部分
  • [ ] p2 更改右下角更新、创建时间的透明度
  • [ ] p2 toast支持stacking
  • [ ] p2 toast支持错误信息展示truncate、wrap
  • [ ] p2 toast的样式中成功时【save】的提示文案展示跟按钮颜色一样
  • [ ] p2 toast的时间延长
  • [ ] p2 toast成功的背景为蓝色,失败的背景为红色
  • [ ] p3 页面加载性能优化:js脚本单独加载会不会快一点
  • [ ] p3 页面渲染性能优化:?
  • [ ] p3,上传图片、定位加上进度条
  • [ ] p3,删除有没有更好的设计
  • [ ] p3,夜间模式开关
  • [ ] p3,当到达一定的size的时候不能够再缩小
  • [ ] p4,tooltips 显示主页图标的作用、操作
  • [ ] p4,没有下一页的时候不要渲染空白

发布需求

  • [ ] p3,支持docker部署

bug

Uncaught (in promise) Error: {}

图片详情找不到图片(Image not found)

上传一次失败之后就会有奇怪的错误

图片详情找不到图片(Image not found)

rror uploading image: {readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}

【未修复】【严重】修改/创建的时候会多创建出一个拷贝?

经常偶现

感觉是idea debug + app.run(debug)就会出现

server

  • 状态应该是用表存着,因为可以通过页面新增,不能通过代码enum写死
  • 需要有一个流水表记录物品消耗、增加的记录

bug

query

代码详情
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
127.0.0.1 - - [07/Sep/2023 11:56:43] "OPTIONS /next-number HTTP/1.1" 200 -
Traceback (most recent call last):
File "D:\Anaconda3\lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "D:\Anaconda3\lib\site-packages\flask\app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "F:\stuff-manage\api.py", line 85, in next_number
return response.build_success_response(encoder.generate_next_number(request.get_json()["classify"]))
File "F:\stuff-manage\service.py", line 75, in generate_next_number
return result.code
File "D:\Anaconda3\lib\site-packages\sqlalchemy\orm\attributes.py", line 481, in __get__
return self.impl.get(state, dict_)
File "D:\Anaconda3\lib\site-packages\sqlalchemy\orm\attributes.py", line 941, in get
value = self._fire_loader_callables(state, key, passive)
File "D:\Anaconda3\lib\site-packages\sqlalchemy\orm\attributes.py", line 972, in _fire_loader_callables
return state._load_expired(state, passive)
File "D:\Anaconda3\lib\site-packages\sqlalchemy\orm\state.py", line 710, in _load_expired
self.manager.expired_attribute_loader(self, toload, passive)
File "D:\Anaconda3\lib\site-packages\sqlalchemy\orm\loading.py", line 1369, in load_scalar_attributes
raise orm_exc.DetachedInstanceError(
sqlalchemy.orm.exc.DetachedInstanceError: Instance <DNumberCode at 0x11b59441430> is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/14/bhk3)
127.0.0.1 - - [07/Sep/2023 11:56:43] "POST /next-number HTTP/1.1" 500 -

任何用到的地方entity需要用with包住

多个query共用一个session会auto flush

sessionmaker(bind=engine, autoflush=False)

代码详情
1
2
3
4
sqlalchemy.exc.DataError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely)
(pymysql.err.DataError) (1366, "Incorrect integer value: '' for column 'item_id' at row 1")
[SQL: UPDATE d_number_code SET item_id=%(item_id)s, update_time=CURRENT_TIMESTAMP WHERE d_number_code.id = %(d_number_code_id)s]
[parameters: {'item_id': '', 'd_number_code_id': 1}]