From 90c1b83a5456995bfe57c037ea820ebe111b7f68 Mon Sep 17 00:00:00 2001 From: zlwu <704541015@qq.com> Date: Fri, 16 Oct 2026 17:39:39 +0800 Subject: [PATCH] fix(mobile-oa-h5): hide collector staff on protocol UI Keep collectorUserId in form state as a hidden field with create defaults. Co-authored-by: Cursor --- mobile-oa-h5/src/market/list-presenter.js | 1 - mobile-oa-h5/src/market/list-presenter.test.js | 2 +- mobile-oa-h5/src/market/mobile-parity-ui.test.js | 2 +- mobile-oa-h5/src/market/module-contracts.test.js | 4 +++- mobile-oa-h5/src/market/modules/protocol.js | 3 +-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mobile-oa-h5/src/market/list-presenter.js b/mobile-oa-h5/src/market/list-presenter.js index 7b23bf93..6ed4011d 100644 --- a/mobile-oa-h5/src/market/list-presenter.js +++ b/mobile-oa-h5/src/market/list-presenter.js @@ -177,7 +177,6 @@ function protocolCard(item) { field('新生儿体重(克)', item.newbornWeightGram), field('采集地区', referenceName(item.regionName, item.regionId)), field('采集医院', referenceName(item.hospitalName, item.hospitalId)), - field('采集专员', personName(item.collectorUserName, item.collectorUserId)), field('市场专员', personName(item.salesUserName, item.salesUserId)), field('样本采集时间', item.sampleCollectTime), field('创建时间', item.createTime) diff --git a/mobile-oa-h5/src/market/list-presenter.test.js b/mobile-oa-h5/src/market/list-presenter.test.js index 209c125b..fe6e1689 100644 --- a/mobile-oa-h5/src/market/list-presenter.test.js +++ b/mobile-oa-h5/src/market/list-presenter.test.js @@ -267,7 +267,7 @@ test('list cards hide unresolved reference and dictionary codes while retaining assert.ok(protocol.subtitle.includes('S-KEEP-1')) assert.ok(protocol.subtitle.startsWith('未知 ·')) assert.equal(protocol.status, '未知') - assert.equal(protocol.fields.find((field) => field.label === '采集专员').value, '未知人员') + assert.ok(!protocol.fields.some((field) => field.label === '采集专员')) assert.equal(protocol.fields.find((field) => field.label === '采集地区').value, '未知') const freight = buildMarketCard('freight', 'manager', { diff --git a/mobile-oa-h5/src/market/mobile-parity-ui.test.js b/mobile-oa-h5/src/market/mobile-parity-ui.test.js index b43469ec..ff2d4ddb 100644 --- a/mobile-oa-h5/src/market/mobile-parity-ui.test.js +++ b/mobile-oa-h5/src/market/mobile-parity-ui.test.js @@ -566,7 +566,7 @@ test('protocol cards expose the same business fields as the web list', async () assert.deepEqual(card.fields.map((field) => field.label), [ '样本编码', '登记日期', '母亲电话', '母亲身份证号', '父亲姓名', '新生儿性别', '分娩方式', '新生儿体重(克)', '采集地区', '采集医院', - '采集专员', '市场专员', '样本采集时间', '创建时间' + '市场专员', '样本采集时间', '创建时间' ]) assert.ok(card.fields.every((field) => !field.wide)) assert.deepEqual(card.actions, ['view', 'edit', 'delete']) diff --git a/mobile-oa-h5/src/market/module-contracts.test.js b/mobile-oa-h5/src/market/module-contracts.test.js index 9f588bc5..7f3f6f40 100644 --- a/mobile-oa-h5/src/market/module-contracts.test.js +++ b/mobile-oa-h5/src/market/module-contracts.test.js @@ -205,7 +205,9 @@ test('payment adapters initialize only editable fields from real detail shapes', test('protocol personnel fields use isolated hydrated option collections', () => { const fields = getMarketModule('protocol').formSections.flatMap((section) => section.fields) - assert.equal(fields.find((field) => field.key === 'collectorUserId').optionKey, 'collectorStaff') + const collector = fields.find((field) => field.key === 'collectorUserId') + assert.equal(collector.optionKey, 'collectorStaff') + assert.equal(collector.hidden, true) assert.equal(fields.find((field) => field.key === 'salesUserId').optionKey, 'salesStaff') assert.equal(fields.find((field) => field.key === 'regionManagerUserId').optionKey, 'managerStaff') }) diff --git a/mobile-oa-h5/src/market/modules/protocol.js b/mobile-oa-h5/src/market/modules/protocol.js index 818303c6..b475d17b 100644 --- a/mobile-oa-h5/src/market/modules/protocol.js +++ b/mobile-oa-h5/src/market/modules/protocol.js @@ -457,7 +457,6 @@ export default { tagType: bizStatus.tagType }, { label: source === 'research_donation' ? '捐赠日期' : '登记日期', value: value(basic, dateKey) }, - { label: '采集专员', value: person(basic?.collectorUserName, basic?.collectorUserId) }, ...(source === 'cell_storage' ? [{ label: '协议总金额', value: value(basic, 'protocolTotalAmount') }] : []), { label: '备注', value: value(basic, 'remark') }, { label: '创建时间', value: value(basic, 'createTime') }, @@ -737,7 +736,7 @@ export default { { key: 'donationNo', label: '捐赠编号', source: 'research_donation', hidden: true }, { key: 'registerDate', label: '登记日期', type: 'date', valueFormat: 'YYYYMMDD', source: 'cell_storage' }, { key: 'donationDate', label: '捐赠日期', type: 'date', valueFormat: 'YYYYMMDD', source: 'research_donation' }, - { key: 'collectorUserId', label: '采集专员', type: 'select', optionKey: 'collectorStaff' }, + { key: 'collectorUserId', label: '采集专员', type: 'select', optionKey: 'collectorStaff', hidden: true }, // 展示在缴费信息面板(ProtocolSamplePaymentPanel / ProtocolV1PaymentPanel) { key: 'protocolTotalAmount', label: '协议总金额', type: 'number', source: 'cell_storage', hidden: true }, { key: 'remark', label: '备注', type: 'textarea' }