Commit d07a92d4 by liangjianmin

refactor(arrivalRegister): 优化包装尺寸输入逻辑,提升用户体验

- 替换标准包装长宽高选择器为直接输入框,简化用户操作
- 统一了单位和标准包装的输入逻辑,确保一致性
- 增强了输入验证,确保用户填写完整信息
parent 0576a842
---
description: 到货登记页面开发规范和组件结构说明
globs: pages/arrivalRegister/index.vue
---
# 到货登记页面 (pages/arrivalRegister/index.vue) 开发规范
## 页面功能概述
到货登记页面主要处理入库单的登记和管理,包含三个主要弹窗:
1. **入库单详情弹窗** (ref="showRight")
2. **无单号登记弹窗** (ref="showRightAdd")
3. **自营商品到货登记弹窗** (ref="showRightZyGoodsDat")
## 关键组件结构
### 自营商品到货登记弹窗 (showRightZyGoodsDat)
- **用途**: 处理深圳自营商品的第一次入库登记
- **数据源**: `zyGoodsData` 和 `saveZyGoodsParams`
- **轮播组件**: 使用 swiper 组件逐个处理商品信息
### 重要字段说明
#### 尺寸相关字段 (已修改为独立显示)
```javascript
// 标准包装尺寸 - 必填
standard_length // 标准包装长
standard_width // 标准包装宽
standard_high // 标准包装高
// 单位尺寸 - 必填
unit_length // 单位长
unit_width // 单位宽
unit_high // 单位高
```
#### 重量相关字段 (仍使用picker切换)
```javascript
// 净重 - 通过 netWeightIndex 切换
standard_net_weight // 标准包装净重
unit_net_weight // 单位净重
// 毛重 - 通过 grossWeightIndex 切换
standard_gross_weight // 标准包装毛重
unit_gross_weight // 单位毛重
```
## 验证规则
### 必填字段验证 (saveZyGoodsDataSubmit 方法)
1. **标准包装量** (`mpq`) - 必填
2. **包装方式为编带时的尺寸字段** - 6个字段全部必填:
- `standard_length`, `standard_width`, `standard_high`
- `unit_length`, `unit_width`, `unit_high`
### 验证逻辑示例
```javascript
// 检查包装方式为编带(packing === 5)时的必填字段
var hasError = this.saveZyGoodsParams.filter(item => item.packing === 5).some(({
standard_length, standard_width, standard_high,
unit_length, unit_width, unit_high
}, index) => {
// 分别验证6个尺寸字段
});
```
## Picker 处理器 (bindPickerZYChange)
### Case 映射关系
- **Case 1**: 包装方式选择
- **Case 2**: 拣货方式选择
- **Case 5**: 净重类型切换 (标准/单位)
- **Case 6**: 净重单位选择 (kg/g)
- **Case 7**: 毛重类型切换 (标准/单位)
- **Case 8**: 毛重单位选择 (kg/g)
- **Case 9**: 其他属性选择
**注意**: Case 3 (标准包装长宽高切换) 已移除,因为现在6个尺寸字段独立显示
## 修改注意事项
### 1. 尺寸字段修改
- 标准包装长宽高和单位长宽高现在**同时显示**
- 不再通过picker切换,直接独立输入
- 所有6个字段都标记为必填 (`required` 样式)
### 2. 验证逻辑修改
- 修改 `saveZyGoodsDataSubmit` 验证时需要检查全部6个尺寸字段
- 每个字段提供具体的错误提示信息
### 3. 数据结构保持
- `saveZyGoodsParams` 数组结构保持不变
- 字段名称保持原有命名规范
### 4. 样式类名规范
```css
.uni-swiper-input-multipl // 多输入字段容器
.label.required // 必填字段标签
.multipl-input // 多输入框容器
.timesSymbol // 乘号分隔符 ✖
.unit // 单位显示 (cm)
```
## API 调用
- `saveZyGoodsData`: 保存自营商品数据
- `addStockInRegister`: 添加入库登记
- `getZyGoodsData`: 获取自营商品数据
## 代码规范
- 使用 `var` 声明变量
- 使用箭头函数和ES6+特性
- 每个逻辑块添加简洁注释
- 遵循驼峰命名法
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment