|
|
1de3146c3a
|
feat(card-diy): 2.19.10 C 端消费 detail 对齐 + 区块独立样式字段
- mini.vue: 8 detail 字段消费(三列行/复制范围外观/QR 多行/URL 行/hero 徽章)
+ rowsBlockStyle/qrBlockCustomStyle computed(与操作区 actsBlockStyle 同款模式)
+ rowsFinalStyle/qrBlockFinalStyle 合并独立块样式
- show.vue/self.vue: miniConfig 透传 14 字段(8 detail + 6 独立样式)
- 测试 ×3: 2.19.10 契约锁(配置层/透传/面板/预览消费/反例: layoutCards 已移除)
前端 7 套 123 项全绿
|
2026-10-24 17:03:57 +08:00 |
|
|
|
8617bb0395
|
fix(diy-card): 操作区独立样式改单绑定 — uni-app 静默丢弃数组绑定(2.18 缺陷)
2026-10-22 线上问题(qrBlockStyle)同根因漏网: 4 个操作区分支
:style="[actsBlockStyle, cornerClearStyle]" 数组绑定被 uni-app 运行时
静默丢弃(style 属性整体为 null) → 操作区独立成块(actsBlockBg/Radius/Pad)
与 corner 让位在 C 端全部失效, 后端配置了也不生效。
- mini.vue: 新增 actsBlockFinalStyle 合并 computed(块样式字符串 +
cornerClearStyle.marginTop), 4 分支(上/下 x grid/chips)改单绑定
- 契约锁死: style-v2/ab-visual 数组绑定反例 + 单绑定断言
- H5 实测(8080 diy2699, 配置 #F7F8FA/12/12): 修复前 computed
transparent/0/0 → 修复后 rgb(247,248,250)/12px/12px 与配置一致
验证: 名片 7 套件全绿 + 三回归 79/41/56
|
2026-10-24 14:03:28 +08:00 |
|
|
|
bd691d2d30
|
feat(diy-card): Show 组件弃自绘版式恢复 diy-card-mini 基件(方案A 用户定稿)
决策依据: 后端 design.html 面板预览按 mini 基件渲染消费全部 53 字段,
方案A 下 C 端与编辑器预览逐字段一致(用户要求取与后端预览最接近的方案)。
- diy-card-show.vue: 恢复 2.19.3 末版 mini 基件实现(236 行, miniConfig
全字段透传 含字号7/设计资产3/二维码6/宫格图层全套), 弃自绘版式(+888 行)
- 测试口径切换: qr-style 10 个/ab-visual 2 个/detail-jump 1 个「show: 自绘…」
实现细节断言 → 改写为 miniConfig 全字段透传锁(防 merge 冲突解决再丢透传)
- 背景: 今晨两次 merge 保留自绘线丢弃透传致 27 字段 C 端失效(字段审核报告)
验证: 名片 7 套件全绿 + 全量仅剩 card-admin/card-api 存量失败(非本次) + 三回归 79/41/56
|
2026-10-24 11:53:34 +08:00 |
|
|
|
ba7988765a
|
fix(diy-card): 修复 merge 冲突解决丢失的二维码 qrSrc 消费 + 断言口径对齐
- mini.vue: bottom 档展示挂点被 merge 拼回旧直连 card.qr_url → 恢复 qrSrc
(自定义二维码图优先); 分享抽屉 ss-qr 保留名片原码(分享扫码语义, 非回归)
- style-v2: doesNotMatch 收紧为 qr-img 展示挂点, 新增 ss-qr 原码语义锁
- qr-style: qrStyle/qrSize 断言放宽为 chips/slide 绑定形态(v-model 与
@click/field: 两种形态均算生效, 与现面板实现对齐)
背景: 今晨 10:56/11:28 两次 merge 在 diy-card-show.vue/mini.vue 冲突解决时
保留自绘版式线, 丢弃 2.19.1 miniConfig 透传(见字段审核报告, 待产品决策)
|
2026-10-24 11:42:02 +08:00 |
|
|
|
b36e1d0b5c
|
Merge branch 'feat/camcard' of http://git.aigc-quickapp.com/Uniapp/lucky_shop into feat/camcard
# Conflicts:
# components-diy/diy-card-show.vue
# tests/diy-card-style-v2.test.js
|
2026-10-24 11:28:34 +08:00 |
|
|
|
f64b00c5f5
|
test(diy-card): 按自绘架构收敛 show.vue 的契约断言到 self.vue
diy-card-show.vue 自 2026-10-21 起改为自绘(不再经 miniConfig 复用
diy-card-mini 通用布局), 配置由 computed 直读 this.c, 不持有 v 数据对象;
故将假定 show.vue 走 miniConfig/v 对象架构的契约断言(2.17 字号透传、
2.19 actVis/actLabels/actOrder/customActs 透传)收敛到仍走该架构的
diy-card-self.vue。diy-card-mini.vue 的 acts 合成与远端特性保持不变。
|
2026-10-24 11:04:44 +08:00 |
|
|
|
a08d0c2026
|
Merge remote-tracking branch 'origin/feat/camcard' into feat/camcard
# Conflicts:
# components-diy/diy-card-mini.vue
# components-diy/diy-card-show.vue
# tests/diy-card-ab-visual.test.js
# tests/diy-card-qr-style.test.js
|
2026-10-24 10:56:20 +08:00 |
|
|
|
f4998d1582
|
test(diy-card): 面板颜色占位与预览同链契约(2.19.7)
|
2026-10-24 10:21:03 +08:00 |
|
|
|
7d1349f336
|
test(diy-card): 线稿图标 mask+currentColor 契约(2.19.6) — 5 类禁固定色 background-image
|
2026-10-24 10:15:10 +08:00 |
|
|
|
549a98204a
|
test(diy-card): QR 选图委托契约(js-qr-media + 零内联 openAlbum)
|
2026-10-24 09:56:58 +08:00 |
|
|
|
5845474be3
|
feat(diy-card): 自定义操作扩至 8 类(2.19.3) — sms/map/link 白名单 + doAct 分支 + map 地址回落
|
2026-10-24 09:49:49 +08:00 |
|
|
|
1b6114ef58
|
feat(diy-card): 默认操作删除+恢复(2.19.2) — normalizeActDeleted + acts 双重过滤 + 透传
|
2026-10-24 09:42:32 +08:00 |
|
|
|
6977b914d3
|
test(diy-card): 锁死资源引用版本参数契约(6 条 ?v={$version} + 零无版本引用)
|
2026-10-24 09:18:40 +08:00 |
|
|
|
0acd9e0e7b
|
test(diy-card): 锁死快捷操作面板存量组件防炸契约(v-if 守卫/零裸读/防御式写回)
|
2026-10-24 09:00:58 +08:00 |
|
|
|
a26b9d6601
|
feat(diy-card): 快捷操作 2.17~2.19.1 — 5 动作/图标自定义/图层式管理/素材图标库/次序调整
- common.js: ACT_GRID_ICONS 结构化{glyph|css} + save 紫档 + WAP_LINE_ICONS(SVG 线稿
data URI, 自写 b64ascii) + CARD_ICON_LIB 素材库 30 枚(与后端三源同步) +
normalizeActVis/ActLabels/CustomActs/ActOrder + libIconBg 实时上色
- mini.vue: 宫格图标优先级 img > 素材库 > SVG 线稿 > 首字; acts computed 重构
(actVis 显隐过滤 + actLabels 改名 + actOrder 次序 + order 外扩展类型尾接 +
customActs 尾接 + 四 cfg 字段合并); 操作区双位置 + 独立成块样式 + qrSrc 自定义图
- show/self.vue: doAct 补 save 分支(goSaveContact 资料白名单下发) + miniConfig
透传 actVis/actLabels/actOrder/customActs/qrImage 等 2.17~2.19 字段
- 测试: diy-card 7 套件 111 项全绿(style-v2 22 项含 svg 快照/素材库三源同步/
template 配平/嵌套结构反例)
|
2026-10-24 08:48:28 +08:00 |
|
|
|
ff530cd6a2
|
chore:二维码外观
|
2026-10-24 08:39:32 +08:00 |
|
|
|
c9d77e901d
|
chore:我的名片组件二维码外观正常
|
2026-10-23 15:17:25 +08:00 |
|
|
|
0c0a6a1cb8
|
feat(card-diy): 四组件字号定制化消费 + 契约测试(12 项)
- entry: 主/副标题与按钮字号内联消费(titleSize/subSize/btnSize, px→rpx ×2),
文字箭头拆 btnArrowStyle(比按钮大一档=28rpx)
- list: 拆 gridNameStyle/scrollNameStyle/metaStyle/scrollMetaStyle, 横滑与
人数徽标按 -1px 派生保持历史渲染; infoStyle 保持纯色(箭头/空态共用)
- mini(Show/Self 基件): name/cardTitle/sub/label/value/act/btn 七项字号内联,
拆 cardTitleStyle/rowLabelStyle/detailTextStyle; labelStyle 保持纯色给图标/qr tip
- self: miniConfig 透传 7 个字号字段
- 新增 tests/diy-card-font-size.test.js: 三层口径契约(diy_view 默认值 ↔
design.html 面板/重置 ↔ vue 消费) + 派生关系 + 颜色 value 兜底 + 反例自测
验证: 契约 12/12 绿; diy-card 全套测试 0 失败; E2E 截图目检通过
|
2026-10-23 14:21:36 +08:00 |
|
|
|
a595a4ae1b
|
chore:微信小程序分享正常
|
2026-10-23 14:01:20 +08:00 |
|
|
|
ecc81b9b31
|
chore:我的名片组件发送名片正常
|
2026-10-23 10:44:03 +08:00 |
|
|
|
8348cbb179
|
chore:我的名片组件,隐藏我的名片组件的下面登录后即可展示我的名片隐藏,
|
2026-10-23 10:21:25 +08:00 |
|
|
|
cb454db326
|
chore:我的名片样式
|
2026-10-23 09:59:12 +08:00 |
|
|
|
5f4a0ecea1
|
chore:精选名片的快捷按钮样式改变
|
2026-10-23 09:01:20 +08:00 |
|
|
|
f26d11f38a
|
chore:我的名片组件网站的图标显示正常
|
2026-10-22 18:31:46 +08:00 |
|
|
|
efa7c736f9
|
chore:主题渐变饰条正常
|
2026-10-22 18:25:00 +08:00 |
|
|
|
31f67c109b
|
chore:我的名片快捷按钮样式
|
2026-10-22 16:01:32 +08:00 |
|
|
|
df9db2e2ed
|
chore:精选名片发送名片正常
|
2026-10-22 14:38:09 +08:00 |
|
|
|
6c2619a33c
|
chore:开启隐藏精选名片的资料行图标可控
|
2026-10-22 14:20:44 +08:00 |
|
|
|
3bcf0c8c87
|
chore:二维码微调值可以正常调动
|
2026-10-22 11:26:43 +08:00 |
|
|
|
3d144a7492
|
chore:二维码的尺寸可以调
|
2026-10-22 10:52:47 +08:00 |
|
|
|
b294fc3640
|
chore:“发送名片”按钮功能正常
|
2026-10-22 09:53:27 +08:00 |
|
|
|
6f9ac29aa6
|
chore:二维码位置和后台同步
|
2026-10-21 18:16:49 +08:00 |
|
|
|
a1d8ee8d7a
|
chore:二维码精选名片后台控制开启显示
|
2026-10-21 17:32:30 +08:00 |
|
|
|
724e7ac134
|
chore:精选名片组件可以支持头像开启关闭
|
2026-10-21 16:05:59 +08:00 |
|
|
|
37cd3c2f30
|
chore:新增精选名片组件,样式
|
2026-10-21 15:53:15 +08:00 |
|
|
|
f1bd606e0b
|
fix(diy-card): 审计修复——corner 档头部水平让位动态化 + self 首载骨架屏
- 修复 P1: corner 档自定义 qrSize>120 时静态 padding-right:180rpx
让位不足, 浮层压住头部姓名区 → 新增 cornerHeadStyle 按浮层实际
宽度(尺寸+衬底+右偏移20+呼吸20)动态反算, 与 cornerClearStyle
垂直让位同口径; 废弃静态 CSS 值(负断言锁定)
- 修复: self.vue 已登录首次加载三分支都不渲染(loading 且无 card)
→ 白屏闪烁; 改 v-else-if="loading || card" 挂上 mini 骨架屏
- 契约测试: 新增 cornerHeadStyle 断言 + resolveQrSize 三处口径 +
静态让位废弃负断言; 3 项变异验证全抓住; 四文件 67 项全绿
|
2026-10-21 14:09:56 +08:00 |
|
|
|
805bbb9598
|
feat(diy-card): 4.0 头像开关 + 二维码四档外观/自定义尺寸/微调位移/提示开关
- common.js: QR_STYLES 四档枚举 + normalizeQrStyle(未知回落 card) +
resolveQrSize(自定义 px×2>档位自动 rpx) + qrTransform(位移经
translate, WXSS 不支持 calc)
- mini.vue 基件: 头像可隐藏(默认显示, 兼容历史配置); qrBlockStyle
统一四档外观(plain 原图/card 白卡/theme 主题色/gradient 渐变,
多彩只装饰外围衬底, 码黑白保可扫); cornerClearStyle 按实际尺寸
反算让位(自定义大尺寸/关 tip 自动跟随); 扫码提示可关
- show/self: 6 新字段透传; ab-visual 测试 corner 断言改锚动态让位
- 新增 qr-style 契约测试 20 项(纯函数真值 + 基件 + 透传 + 两个
design.html 面板控件绑定与预览消费 + 反例), 9 项变异验证全抓住
- 前端四测试文件共 66 项全绿; E2E 143 项; 三回归 79/41/56 全绿
|
2026-10-21 12:28:18 +08:00 |
|
|
|
8bdd9f1291
|
fix(diy-card): 修复两处 WXSS 不兼容 calc() + MP 兼容契约测试
微信小程序 WXSS 不支持 calc(), 两处布局在小程序上会失效:
- mini.vue corner 档: max-width: calc(100% - 170rpx) →
.mini-head { padding-right: 180rpx }(固定值, 浮层宽 120+偏移 20+呼吸 20)
- list.vue 网格: itemStyle width calc(50% - gap/2) →
布局盒 50% 宽 + 左右各 half-gap padding, 视觉移入内层 .item-card
(border/圆角/padding 随之下移, 布局盒透明只算 gutter)
- 新增 tests/diy-card-mp-compat.test.js 20 项: 全组件禁 calc()/var(--)
(先剥注释再断言) + template 标签配平(栈式匹配, 兼容插槽嵌套 template)
+ 反例自测
注: 渐变角度 linear-gradient(deg,...) 有生产先例(detail/enterprise/
forward 均在生产小程序运行), 不在禁项; 真机渲染需 HBuilderX 构建验证。
验证: 46/46(三个名片测试文件) + npm test 仅剩两个存量失败
|
2026-10-21 11:58:35 +08:00 |
|
|
|
a841af8f5b
|
feat(diy-card): A+B 视觉升级(资料行图标/可点 + 二维码四档任意位)
配合后端 f031476, 组件内直接复刻参考图视觉, 功能仍归详情页(路径A):
- common.js: rowIconFor(field→iconfont glyph, 无字形退化空串) +
rowActOf(href 派生 tel/mail/copy, 空 href 不可点) +
normalizeQrPosition/QR_SIZES(四档归一化+尺寸表)
- mini.vue: 资料行图标列(与文字标签列同宽, 值列左缘对齐) +
行点击 emit row-act; 二维码四档渲染:
rows 行下(默认) / head 头部右侧(三段 flex 零遮挡) /
corner 右上浮层(白底衬底+Logo 避让+资料行让位 108rpx) /
bottom 主按钮上方; 二维码尺寸随档位(180/120/120/180)
- show/self: miniConfig 透传 showRowIcons/rowTap/qrPosition,
模板挂 @row-act="doAct" 复用既有动作分发
- 新增 tests/diy-card-ab-visual.test.js 13 项(真函数+源码断言,
7 项变异验证全抓住)
node --test tests/diy-card-ab-visual.test.js → 13/13
|
2026-10-21 11:44:37 +08:00 |
|
|
|
35137ae814
|
test(diy-card): 路径A链路契约测试(组件卡跳完整名片页)
参考图(名片卡+二维码+发名片)的完整功能在详情页, 组件靠「查看完整名片」
全宽主按钮把用户送过去。固化为 13 项断言(先剥注释再断言, 7 项变异验证):
- show/self: miniConfig 透传 showDetailBtn/detailBtnText
- show/self: 模板挂 @detail="goDetail"; goDetail 跳
/pages_tool/card/detail 带 card_id + 空 id 守卫
- mini 基件: showDetailBtn flagOn 默认开 + mini-detail emit('detail')
- detail.vue: 错误信封带 wap_url → fallbackToPublicPage
(H5 直跳/非 H5 走 share 中转 web-view, 游客不死路)
- 反例: 虚构字段/错误落点必须查不到
node --test tests/diy-card-detail-jump.test.js → 13/13
|
2026-10-21 11:24:50 +08:00 |
|
|
|
8fa16d9b14
|
chore:保留test
|
2026-10-19 10:12:44 +08:00 |
|
|
|
9c9d1a412f
|
Merge remote-tracking branch 'origin/dev/1.0' into feat/camcard
|
2026-10-19 09:55:43 +08:00 |
|
|
|
7909cf2b22
|
test:导出脚本增加零漏拷/零多拷硬保证
质疑"某个目录有没有被打进 zip"时, 原先只能人工逐目录核对。现在把这个检查做进
脚本, 每次导出都跑:
copyDir 记录每个被复制文件在 zip 中应有的条目名, verifyZipFile 把它与实际 zip
条目做**逐个双向比对** —— 少一个报"漏拷"并列出文件名, 多一个报"多拷"。这样
漏拷会当场失败, 而不是等在别的电脑上解压缩时才发现。
自检输出新增一行, 例如:
自检: 零漏拷 ✅(1381/1381) / CRC 逐条 ✅ / 偏移一致 ✅ / ...
同时把 copyDir 的条目名拼接由"从 nameOfParent 反推"改为显式传 relBase, 去掉
原先那段绕的 split/map 逻辑。
新增 3 条测试(漏拷拒绝 / 多拷拒绝 / 清单吻合时放行且 README.txt 豁免), 本
测试文件 19/19 通过, npm test 全量 17 个测试文件通过。
|
2026-10-17 16:13:09 +08:00 |
|
|
|
336b4d21da
|
test:鸿蒙工程包导出增加产出自检与单元测试
手写 ZIP 编码器的典型 bug 都是静默的 —— 包能生成、看着正常, 但某些机器上
解不开或解出畸形路径。开发期已真实踩过两次(中央目录偏移漏算文件数据长度、
localOffset 记成数据区起点), 两次都只有靠 unzip -t 才发现, 因此加两层保障。
一、脚本内产出自检 (每次导出都跑)
新增 verifyZipFile(), 把写好的 zip 重新解析一遍, 任一项不符直接抛错、不输出
「完成」。刻意用独立解析实现, 不复用写入端逻辑, 避免自证其说:
- EOCD / 中央目录: 签名、条目数、偏移与长度边界一致
- localOffset: 每条必须真的指向本地文件头, 且文件名与中央目录一致
- CRC: 逐条解压后重算 CRC32 比对
- 条目名: 必须正斜杠、必须置 UTF-8 标志位、必须可逆解码为合法 UTF-8
- 内容断言: 必需文件齐全; node_modules/build/.preview 等排除项不得混入
二、单元测试 tests/pack-harmony-project.test.js (16 条)
正向用例写夹具目录打包再独立解析还原, 校验内容/目录/中文名/零字节/空目录/
可压缩与不可压缩内容; 反向用例故意篡改 zip 断言自检能抓到 —— 反向用例一旦
失效自检就形同虚设, 故必须保持通过。
过程中自检抓到自身一条误判: 排除校验原先用子串匹配, 把合法源码
entry/src/ohosTest/ets/test/Ability.test.ets 当成 .test 构建产物。已改为按
路径分段精确匹配, 并加了一条反向用例锁定。
同时修掉两个隐患: stats 是模块级累加器(同进程重复调用会翻倍), main() 原先
无条件执行(require 脚本就会跑一遍打包), 现加 require.main 守卫并导出内部
实现供测试使用。
已验证: 本测试文件 16/16 通过, npm test 全量 17 个测试文件通过, 实打包
2.99MiB 包自检通过且 unzip -t 交叉验证无错误。
|
2026-10-17 14:42:28 +08:00 |
|
|
|
5290271017
|
chore:名片样式和后端同步
|
2026-10-16 16:41:13 +08:00 |
|
|
|
e60b3e2e52
|
chore:名片样式的名片模板第一个模板
|
2026-10-14 16:53:03 +08:00 |
|
|
|
389d87b82c
|
chore:名片样式更改
|
2026-10-13 15:39:56 +08:00 |
|
|
|
15b0d2a18a
|
chore:接口
|
2026-10-13 10:38:08 +08:00 |
|
|
|
b92f474ac8
|
feat(card): 员工端「我的人脉」页 + 与潜在客户导航互链
- 新增 contacts.vue: 搜索/来源筛选/列表卡(来源徽标)/编辑/转潜在客户/删除
- 新增 contact-edit.vue: 新增编辑复用, 姓名红星必填, 其余(选填)
- leads.vue 顶部互链「我的人脉 ›」(导航合并第一步)
- pages.json 注册两页; PAGE_KEY_MAP 补 PAGE_CARD_CONTACTS
- card-platform.test.js 追加 4 测试(25/25)
|
2026-10-12 17:35:16 +08:00 |
|
|
|
8cf70b617d
|
feat(card): 更新名片夹相关文本和导航,优化用户体验
|
2026-10-12 15:56:40 +08:00 |
|