
哲亨ATMM.store智能仓管系统
等级由注册时长自动决定,无需任何操作
T1-A-11-1)或一个型号从头到尾发生过什么:什么时候进的货、
谁改的数量、从多少改到多少、什么时候取完消失的。
ic)改成标准的 IC-。只改名字这个字符串——
库存数量、库位绑定认的是型号的内部 id,不认名字,改名不影响它们,也不影响正在用的库位编号。
供应商印在包装箱上,方便扫码录入型号。内容可自定义(如英文型号、SKU编号等)。
选择格式后会弹出「另存为」对话框(Chrome/Edge),可选保存路径;其他浏览器直接下载到默认路径。
一件代发 / 转运 / 快拆建单时会自动存一笔客户号,这里能回头查、改名字和联系方式
只能填字母(最多 6 个)。改了以后新开的单号用新前缀,已经开出去的单号不变。
供应商编号、名称、联系方式——收货入库时用得上,这里能回头查、改
currentTable 默认值(写死的 'shelfBlack'=零散货架区),新仓库零散货架区常常还没导入数据、货全在整箱堆货区,点了只看到"这个范围内没有内容"。改成跟「找货查库」共用同一套「挑一个有货的区」逻辑(新抽出 _pickStockZone()),先切到有货的区再打开「数量」?v=2 提到 ?v=3——如果你上一版看到的还是旧的金黄底+✦符号,多半是浏览器缓存了旧页面,这次连带逼一下缓存;如果还没换过来,试试把这个页面强制刷新一次(下拉刷新 / 清一下 Safari 缓存)/zecode/zehem-logo.png),底色还是浅金黄,logo 缩小留白当徽章用,不是贴边裁切?pklist=1,跟原来「扫码录入」跳回首页开「一件代发」是同一套路数).sheet-cancel 写死了 width:100%,这三处又是"关闭"和另一个按钮并排放的唯一几处——按钮各自的 flex 设置管不住 width:100%(两个不是同一个属性,谁也压不过谁),"关闭"就撑成了满宽。现在给这三处单独加 width:auto 和收紧的内边距,尺寸正常了ic 也会统一改成标准的 IC-)。已经对的不碰,只补缺的;描述跟型号名现有前缀对不上(比如描述说该是 WV 但型号名已经是 IC- 开头)、或者改完会跟库里已有型号重名的,都不自动改,摆出来单独列给你看。点开先给预览(哪个型号会从什么改成什么),确认了才真的改;只改名字这个字符串,库存数量、库位绑定认的是型号内部 id 不是名字,一概不受影响,一并留痕modal-top)——这两个之前是本站少数几个还从底部滑出的弹窗,不符合站内其它弹窗的规矩,这次一并改对JSON.stringify() 的结果——它输出的是双引号,onclick="…" 这个属性本身也用双引号包着,拼进去当场就把属性截断了,点击时浏览器解析到的是半截 JS,抛"Unexpected token"。这是 v18.16/18.17 新加的三处快捷键/搜索按钮共同的坑(选一个空库位的托盘快捷键、现场找空位绑型号的托盘快捷键、里面的搜型号候选列表),一次性改成跟本站其它地方一样的写法:双引号转成 " 实体再拼进去console.warn,人在现场开会不可能去翻控制台,出了问题只会看着"正在记"却什么都没存下来,还以为是自己操作错了。现在网络异常、存进数据库失败、请求太频繁这几处都会弹一次提示(跟原来"转文字出错"那条一样,只吵一次不刷屏);另外连续 6 段(约 20 多秒)都没识别出一个字也会提醒一句"检查麦克风/网络"——这种情况以前是彻底沉默的,跟"真的没人说话"完全分不出来。每次点「我要说」重新开始一轮,提示额度也跟着重新给一次,不会因为上一轮吵过就这一轮不吭声.style.gridTemplateColumns 在这台设备上没能稳定生效(没查出具体是什么在盖它,但这条新路径谁都盖不掉),麻烦再试一次看看这次对不对gridTemplateColumns:'repeat(3,1fr)',写死 3 列,逻辑上不可能自己变成 4 列)。如果你现在看到的还是一行 4 个,大概率是手机还留着旧版本的缓存——可以下拉刷新页面,或者看一眼首页角标版本号是不是已经是 v17.7,不是的话强制刷新一下(长按刷新按钮选"清缓存刷新",或者退出重进一次)T-1-B9-1-6,光「T」和「1」中间就占一个横杠;现在是 T1-B9-1-6,少打一次、也少认一段J1-A-2-03 这种)2016-2024 Chevy Malibu Mug(供应商那串长名),名字里根本没有 WV- —— 而你嘴上一定会带。现在按前缀找不着时会把前缀摘掉再找一次WV-coro0913 仍然只命中那一个,没被带坏T-1…/J-1… 这种「字母-数字」的形状 —— T-Shirt、J-Crew 这类型号名不会被误当成库位supabase/meeting.sql(新增待办表;整份重跑安全)supabase/meeting.sql(整份重跑安全,用的是 add column if not exists)supabase/meeting.sql(整份重跑是安全的),删除权限才会生效supabase/meeting.sql。没跑的话会议页会直接告诉你该跑它wvcoro0913 套 wvcorolla090713 —— w·v·c·o·r·o 连着命中,再依次找到 0·9·1·3。实测这一条只命中那一个型号,其它 Corolla 全都排掉了CLAUDE.md,以后改什么都不会再混T-1-A7),是从这盘第一格的编号推出来的 —— 没另起一套写法touch-action:none —— iOS Safari 会把双指手势当成「缩放网页」,在事件派发到我们之前就截走了,代码里那句「别抢」根本没机会跑到。加上之后双指同向拖=平移,和捏合缩放各走各的MV-CIVIC 去掉横杠就是 mvcivic —— 里面就含着 ic。所以它「匹配」了,而且分数还和真正的 IC- 一样高civ-IC、cc 混进 IC-Camry)。前缀这一条现在和车身型 CC/QC/DC 走同一套「拆段 → 整段相等」的做法,不再靠子串<script> 加上 crossorigin 之后,以后这类错会显示真正的报错信息和行号new row violates row-level security policyT-1-A1-2-2 能中,全缩写没横杠的 t1a122 也能中,半截的 A1-2 会把那一列全高亮100vh,而 iOS 上它并不等于你实际看得见的那块 —— 它把被地址栏、底部工具栏盖住的部分也算进去了。于是弹窗被撑得比屏幕还高,底下那排就被顶出去了。现在改成按真正可见的高度来算-CC 和 -QC 再也不会被当成同一个型号了。 IC-05TCM-CC 和 IC-05TCM-QC 前缀一样、中间一样,就差这一个字母,但它们是两款不同的车(CC=Crew Cab 双排、QC=Quad Cab 四门)。这种最容易出事 —— 扣错了货,屏幕上还显示得好好的-CC 时,-QC 那个根本不会出现在候选里。只有一边写了车身型 → 那是信息不足不是矛盾,不动分,免得把本来对的挤掉…ccme 和 …qcme 本来就是两条不同的记录,教过 CC 不会连 QC 一起教了cc 拿去 IC-Camry 里一搜,「i-cc-amry」当中就含 cc。这个坑这两天已经踩了三次(前缀 civ-IC、后缀 i-cc-amry),这次一并按整段匹配写死WV-TOCORO204D-MUG 分出来是 wvtocoro / 204 / dmugwvtocoro 这种垃圾 —— 等于没拆。这就是它找不到 WV-Corolla 20 的原因IC-07SIL-CC_ME 的后缀 CC 拿去 IC-Camry 里一搜,「i-cc-amry」当中就含 cc,白拿分把正主 IC-Silver 07 挤到了第二。现在后缀必须整段对上才算WV-TOCORO204D-MUG→WV-Corolla 20、IC-07SIL-CC_ME→IC-Silver 07、WV-LEXIS06-MUG→WV-IS 0613、WV-TPRIUS1015-MUG→WV-Prius 1015…IC-05TCM-DC_PH 竟然把 WV-CIVIC 0105 排在 IC-Tacoma 05 前面。查出来是两个候选算出来分数一模一样,同分就退化成型号库里的原始顺序,谁在前纯属偶然IC- WV- MG- 是分类标识,可算分时它只是普通字符 —— 更糟的是 WV-CIVIC 里的「civ-IC」偶然也含 ic,白拿了一份 IC 前缀的分。现在前缀单独算:对上加重分,对不上倒扣IC-05TCM-DC_PH → IC-Tacoma 05 排第一;IC-24TCM-DC_ME → IC-Tacoma 24(TCM=Tacoma、24=2024,原来给的是 IC-Camry 18)WV-17CIVHB-MUG_ME),你库里是自己的叫法(WV-CIVIC 17 HB)—— 字面差得远,但一眼就知道是同一个东西。以前只会红着脸说「未匹配」,等于把问题原样丢回给你17CIVHB 能对上 CIVIC 17 HB 靠的就是 civ 这三个字母 + 17 这个数字。还额外按 - 和 _ 拆一遍,比 AI 助手那边更准 —— 整串挤成一坨时只能靠开头三个字母碰,拆开后 civhb / mug / me 各自去比WV-CIVIC 17 HB),所以带连字符的尾巴一个都统计不到。现在两种都认,并且给最常见的那个前缀最多三颗(WV-…Mug / WV-…CH / WV-…BK)1,型号」写在一行,ShipSaving 的 PACKING SLIP 是「Order Qty | SKU」分成两列的表格,数量和型号中间连个逗号都没有。现在两种排版都认,你不用先告诉系统这是哪家的单,拖进来它自己分辨… , MD, 21222-5157, US」—— 这个邮编尾巴长得和「数量,型号」一模一样,旧代码把它读成了「5157 件 US」,而真正那行 SKU 一个字都没读到。现在地址行被挡住了:真型号都带「-」或「_」且不止三两个字符,州名国名过不了这一关1 x WV-17CIVHB-MUG_ME。型号库还空着的时候也能正确分辨排版WV-TPRIUS1015-M... —— 这几个字纸上根本没印,AI 也读不出来。系统拿前缀去型号库比:只对上一个就自动补齐并标黄提醒你看一眼;对上好几个就标红,必须你点一个,没点完不让确认display 的,所以这条隐藏规则必须 !important,否则下一帧就被行内样式盖回去 —— 会表现成「字闪一下又回来了」_canTidy() 管的那一类,所以直接复用同一个判断,没另起一套index.html 是全平台共用的,写死等于让所有租户都变成这个形状 —— 每家现场都不一样。这些是数据,由老板/经理在界面上按自己现场填;全平台的默认值一个没动wvcivic 也认得<input> 在弹性布局里默认的最小宽度是它自己的固有宽度(不小的一块),它顶着不让,就把右边的按钮一路挤出去了flex-basis:0 + width:0)—— 三颗按钮先占住自己的位置,剩多少给框多少,永远撑不破一行。按 375 宽的屏算过:三颗按钮 209px,还能给搜索框留 132pxCLAUDE.md 的权限表改成和代码一致:原来写的是「型号库上传:老板✅ 经理✅ 操作员❌」,和实际行为对不上。现在拆成两行:进「型号库 & 收货」/ 收货入库 → 三种角色都可以;导入时的「替换全部」→ 只有老板/经理。并在代码里写明理由,免得以后有人照着老表格又把它关上lib-stats.js,判定、计数、画面、点击筛选全在里面,两个页面引同一份 —— 这个项目已经被「同一件事写两份」坑过好几次(型号库导出漏了 CSV 分支、两页的图片压根不是同一批),这回从根上避开id / name / type / aisles 的区对象 —— zone.trayMode 就这么丢了,通道还被换成 2 排 × 15 列的老队形。也就是说:你重置完再导入,会发现托盘编号没了,得重新落一次库trayMode 仍为真、A/B 两条通道各 56 列 = 14 个托盘位、列名仍是「托盘1·列1」requestDeleteContainer 里写着理由),插列却一直是敞开的 —— 这就是这次的口子。现在点它会直接说明白:托盘位是钉在地上的,4 列 = 1 盘,要加位置请去「托盘编号」页加托盘位,这一列不够高就点「+ 格位」_palTrays() 取盘名,而那个函数会顺手往数据里补写 14 条托盘记录,而 render() 末尾就是 saveState() —— 等于每画一次总览就往真实数据里写一次。改成只读查找el.style.display = '' —— 这一句把行内的 display:flex 一并抹掉了,退回 .icon-btn 的 display:grid,图标和文字就竖着叠;而 .icon-btn 又把高度钉死在 36px,第三行自然掉到框外#upload-btn 比 .icon-btn 优先),style.display='' 再也打不掉它。按钮加宽了、高度放开,排版按你说的:图标在左,「型号库」右上,「收货入库」右下,全在框内Number('2013-2020 Acura ILX') 是 NaN,兜底成 0,整列加下来自然就是 0display:none),而浏览器的「手指底下是谁」根本不会返回隐藏元素 —— 手指底下其实只有「那一列」本身,代码往上找格位找不到,于是什么都没发生models / zones(重置那处还带了叫法本),于是行业规则包、导入对照记录、托盘重排快照、重建快照、自定义模板全都悄无声息地没了,连提示都没有 —— 其中规则包和叫法本正是 AI 助手认货的两条腿imageData,主页型号库和列表用的是 imageUrl —— 两个完全不同的字段,所以你在一边传的图,另一边根本看不到。现在统一成同一批,三处看到的是同一组 9 张MV-…-MUG,带「嵌入式…」→ 自己叫 IC-…(还分 CC/QC/SC)。而这些前后缀在厂家标签的「型号」那一栏里根本没有 —— 只看型号永远对不上,看商品名称才对得上inventory-*.csv、型号库 models-*、各区「数量」清单T-1-A1-2-8),并记进操作留痕T-1-A1-2-8 是个现场根本不存在的位置。现在到 7 就拦住,并告诉你「放下一列或换个托盘」_zoneStock)一直是算附加型号的,工作台却只数主型号 —— 只要有人用过「+ 附加型号」,同一批货在两块屏幕上就是两个数,而且谁对谁错看不出来。现在两处算法统一了。你这次没撞上,是因为目前还没用附加型号T-1-C1-1-1)。这条通道摆在仓库哪儿、还是暂时放门外,你现场定,系统只管编号连得上T-1-A-1-5,AI 查得到,会告诉你它现在叫什么。落库时那张新旧对照表存在本仓库里,不会丢T-1-A1-2-3 = 整箱1区 · A通道 · 1号托盘 · 第2列 · 第3层。横杠还是 4 个、还是 5 段,只是第 3 段从「A」变成「A1」,按 5 段解析的地方一处都不用重写data: 地址直接挂在下载链接上 —— iOS Safari 对这种地址基本忽略下载属性:点了什么都不发生,也不报错。图越大越容易被丢掉(1024 的图有一两 MB),而且那个链接元素还没挂进页面,有的浏览器不挂就不触发。现在改用 blob: 并真的挂进页面<b> 标签被当成文字显示出来了(截图里那句「识别到一个<b>不属于本仓库</b>的哲享码」)。是我加粗体时忘了状态条走的是纯文本。已改;少数会拼进报错信息的调用点做了转义iHbRJI) 这种碰巧全是可打印字符的噪声,光看内容根本分不出来,想靠猜是猜不干净的。所以代价从「被甩出 APP、扫码流程中断」降到「多点一下」。本仓库自己的库位码 / 型号码照旧直接带你到那个位置,一步都没多$ 锚点一次只吃一个,剥掉 📋 正好剩下 🔊);② 正文自带的 📦 ✅ 这类图标也会被念。现在取文字前先把整行工具键藏起来,朗读前再把正文图标一并剥掉/zecode/zehem-logo.png 实际放的是实心版(被错命名),而解码器优先拿本站这份去造匹配模板 —— 于是就算贴了角标也一样对不上。已换成正确的描边版,并改了地址逼浏览器重取旧缓存。这两个坑各自独立,缺一个修都还是扫不出gemini-3.7-flash $0.75/$3.75 👁),选中后下方还有一张说明卡:价格 · 能不能看图 · 场景定位。切换时不用另开网页查glm-4v-plus/glm-4v、千问 qwen-vl-max/plus、Kimi moonshot-v1-*-vision-preview。以后想换哪家,选择框里切一下就行0.299R+0.587G+0.114B),而且块均值太黑或太白会被直接跳过不参与识别。所以底图会被压进安全亮度区(40–215),两头都不碰死区,文字与底的对比度仍有约 10:1audio/mp4,而代码里一律写死了 webm —— 文件是 mp4 却挂着 webm 的名字和类型,播放器认不出来。现在录出什么格式就存什么格式(Safari 走 .m4a、Chrome/安卓走 .webm),录之前还会先挑一个本机真支持的容器.atmm 时图标变 📗,下面多一个「用 ATMM 表格打开」按钮 —— 点一下自动下载、解析、填好「列对应」,直接跳到导入页。同事在群里发盘点表,你点一下就能核对导入,不用先存到手机再去选文件.atmm 直接打开表格」—— 填盘点表/入库单不用装 Excel,填完导出回来直接上传入库0套套套…。已改为按数量列求和并强制转成数字,数量为空或不是数字时算 080vh/90vh 算高度,而手机浏览器的 vh 是按「没有工具栏」算的,实际可见区更矮,底下就露不出来。改成按可见高度算(支持的浏览器用 dvh)。这条修的是全平台所有靠上弹窗longName,品名/描述照旧存 description(列表和数量页显示的还是品名)。型号编辑页两个格子各改各的.atmm 文件了。.atmm 里自带「哪列是型号、哪列是数量」的说明,所以列对应会自动填好,不用再一个个选;读进来还会告诉你这是哪种单据(入库单 / 盘点表 / 增加型号)。.xlsx / .csv 等照旧支持