需求概述

U9条码移动端组件样式设计遵循用友公司UI/UE交互设计规范,功能理念遵循简单、易用、数据驱动方式。所有组件尽量将业务无关功能封装透明,统一样式交互。

目前组件包含了大部分应用所涉及的交互功能。包括扫码(红外,摄像头,手工录入),布局,参照(存储地点,库位,工序),基础组件等。如果有其他组件或功能需求,可联系U9条码开发人员或通过SPS支持网获取帮助。

组件设计

  • im-val属性值均为单向的字符串传递
  • ng-model属性值代表双向绑定
  • handle属性值代表”&”函数类型传递,可理解为eval()。传递的函数总是带括号的执行态,可传递当前作用域的变量作为参数。常见使用方法: handle=”qtyChange()” 或 handle=”qtyChange(line.DocLine)”
  • handle-change属性代表单向绑定”<”的函数变量,且函数变量为(value,context)=>{} 类型的委托,即只带有两个参数的回调函数。常见使用方法:handle-change=”onChange” handle-change-context=”data” ,注意传值时不带括号。

    设计规范

  • im-card中label-width:2文字=30pt 3文字=40pt 4文字=50pt 6文字=70pt

  • im-blue-tag背景颜色 | 常用场景 | 背景颜色 | 字体颜色 | 效果 | | —- | —- | —- | —- | | 料码 | #1777FF | #FFFFFF | 料码 | | 调出库位 | #00E255 | #FFFFFF | 调出库位 | | 调入库位 | #09AD05 | #FFFFFF | 调入库位 |

优秀实现

  • 货位整理应用 MTransBetweenBin (该应用大量实践了各种设计规范与组件使用,是优秀的实现案例)
  • 调拨验货 MTransRcvIn (该应用实践了多页面之间跳转和数据共享,支持在首页,明细页同时扫码,并处理了连续跳转后页面返回问题)

可用指令

  • 触摸开始 ng-touchstart
  • 触摸停止 ng-touchend

ng-touchstart

触摸开始事件,可放置在任意组件或标签元素上,使用方法类似ng-click

ng-touchend

触摸停止离开事件,可放置在任意组件或标签元素上,使用方法类似ng-click

示例代码

  1. <im-content ng-touchend="touchend()" />

布局组件

  • 页面头
  • 页面主内容
  • 页面尾
  • 列表
  • 卡片
  • 内部卡片已废弃,请使用im-card的card-type属性)

    im-header,im-content,im-bottom

    其中 header,content,bottom 主要负责将页面分成三块,首尾固定,以及一些通用的padding。通过flex布局,content内容自适应页面剩余高度。

    im-list

    im-list内部可以自适应滚动,但是im-list嵌套会有问题,请避免im-list嵌套。通常用im-list包裹im-card等控件

im-card

该控件通常和*-row类控件搭配使用,可以呈现如下效果。
image.pngimage.pngimage.png

im-card件属性说明

属性名 可选值 传递类型 说明
label-width 30pt,30px,任意长度类型字符串 字符串(@) im-common-row,im-qty-row等带有label属性的子控件搭配使用时,统一控制label列宽度。
title 任意字符串 字符串(@) 带有card头样式的头部内容。
tag-type 指定字符串和任意颜色类型#ffffff 字符串(@) 默认为common即代表蓝色标签,boxcode/orange代表黄色标签,
pin代表图钉样式,
或自由指定标签颜色的#ffffff颜色类型
tag-val 任意字符串 字符串(@) 带有折叠按钮card头,蓝色标签内容
action-type expand,delete 字符串(@) 结尾按钮类型,折叠箭头,删除按钮,或者没有
header-bk-cl #ffffff 颜色字符串 字符串(@) card头背景颜色
handle 函数传递(&) 带有删除按钮card头,删除按钮回调
带有折叠按钮card头,折叠按钮回调
is-open true,false 单向绑定(<) 带有折叠按钮card头,是否展开,默认展开
row-border true,false 单向绑定(<) card中每行是否带有下划线,最后一行默认不带下划线。支持的行元素有im-common-row,im-qty-row,im-ref-row
card-type common,inner-box,inner 字符串(@) 用来区分卡片类型,代替之前的im-inner-card。
common即默认卡片,带有缩进和周围阴影。
inner-box嵌套的内部卡片,没有缩进但有少量周围阴影,可区分边界
inner嵌套内部卡片,无缩进和阴影,无法区分卡片之间边界,但融合度好。

im-card可用具名插槽

  • 如果tag-val和title属性无法满足时可使用header插槽进行自定义card头。具名插槽甚至可以和tag-val,title属性同时使用。

示例代码:

  1. <im-list>
  2. <im-card
  3. ng-repeat="info in homeData.Lines track by $index"
  4. action-type="expand"
  5. title="{{info.barcode}}"
  6. tag-val="条码"
  7. is-open="true"
  8. label-width="55pt">
  9. <im-common-row label="料品:">{{info.ItemName}}<im-blue-label im-val="{{info.Spec}}"></im-blue-label></im-common-row>
  10. <im-qty-row label="调出数量:" can-edit="false" ng-model="info.OutQty" im-val="info.OutQty" uom="{{info.UOMName}}"></im-qty-row>
  11. <im-qty-row label="实拣数量:" can-edit="false" ng-model="info.SumQty" im-val="info.SumQty" uom="{{info.UOMName}}"></im-qty-row>
  12. </im-card>
  13. </im-list>

im-inner-card(已废弃)。

已废弃
请改用im-card组件中的card-type属性进行区分

im-inner-card基本和im-card逻辑保持一致,唯一是不支持折叠功能。一般内嵌于im-card控件,并去掉了im-card内部元素的默认padding,保持和父card同样的缩进级别。

该控件通常和*-row类控件搭配使用,下图中存储地点和打印机类型是im-card的row,而inner-title和数量是im-inner-card的内部元素。可见他们之间的缩进级别是相同的。

呈现效果如下:
image.png

im-inner-card件属性说明

属性名 可选值 传递类型 说明
label-width 30pt,30px,任意长度类型字符串 字符串(@) im-common-row,im-qty-row等带有label属性的子控件搭配使用时,统一控制label列宽度。
title 任意字符串 字符串(@) 带有card头样式的头部内容。
tag-type 指定字符串和任意颜色类型#ffffff 字符串(@) 默认为common即代表蓝色标签,boxcode/orange代表黄色标签,
pin代表图钉样式,
或自由指定标签颜色的#ffffff颜色类型
tag-val 任意字符串 字符串(@) 带有折叠按钮card头,蓝色标签内容
action-type delete 字符串(@) 结尾按钮类型,删除按钮,或者没有(暂时不支持折叠)
handle 函数传递(&) 带有删除按钮card头,删除按钮回调
带有折叠按钮card头,折叠按钮回调
row-border true,false 单向绑定(<) card中每行是否带有下划线,最后一行默认不带下划线。支持的行元素有im-common-row,im-qty-row,im-ref-row
headerBkCl lightblue,#ffffff 字符串(@) card头背景颜色,lightblue是带有删除按钮类型的默认颜色。

im-inner-card-header可用具名插槽

  • 如果tag-val和title属性无法满足时可使用header插槽进行自定义card头。具名插槽甚至可以和tag-val,title属性同时使用。

示例代码:

  1. <im-list>
  2. <im-card title="title" action-type="expand" max-height="400pt" label-width="60pt">
  3. <im-inner-card label-width="60pt" title="inner-title" action-type="delete">
  4. <im-inner-card-header></im-inner-card-header>
  5. <im-qty-row label="数量" can-edit="false" ng-model="info.SumQty" im-val="info.SumQty" uom="{{info.UOMName}}"></im-qty-row>
  6. </im-inner-card >
  7. </im-card>
  8. </im-list>

卡片行,Card-Row组件

  • 通用行
  • 数量行
  • 开关行
  • 参照行
  • 富集行

其中im-rich-row不带有label属性,因此不受card组件的label-width控制。

im-common-row

最常用的行组件,自带有label列。值内容通过插槽传入即可。

呈现效果如下:
image.png
image.png

im-common-row控件属性值说明

属性名 可选值 传递类型 说明
label 任意字符串 字符串(@) 左侧label列内容

示例代码:

  1. <im-card label-width="55pt">
  2. <im-common-row label="料品:">{{info.ItemName}}<im-blue-label im-val="{{info.Spec}}"></im-blue-label></im-common-row>
  3. </im-card>

im-input-row

用于显示带普通文本框控件行,可切换是否可编辑。

呈现效果如下:

im-input-row控件属性说明

属性名 可选值 传递类型 说明
label 任意字符串 字符串(@) 左侧label列内容
can-edit true,false 单向绑定(<) 文本框是否可编辑
ng-model 数字类型 双向绑定(=) 文本值
handle 函数传递(&) 文本变化时的回调
placeholder 任意字符串 字符串(@) 占位符

示例代码:

  1. <im-card label-width="40pt">
  2. <im-input-row label="批号" can-edit="!bar.BoxCode || bar.BarCode==BarCode" ng-model="bar.lot" handle="onChanged(index)"></im-input-row>
  3. </im-card>

im-qty-row

用于显示带有单位的数量控件,可切换是否可编辑。

呈现效果如下:
image.pngimage.png

im-qty-row控件属性说明

属性名 可选值 传递类型 说明
label 任意字符串 字符串(@) 左侧label列内容
uom 任意字符串 字符串(@) 最右侧单位名称
can-edit true,false 单向绑定(<) 数量是否可编辑
can-negative true,false 单向绑定(<) 编辑状态时允许为负数
ng-model 数字类型 双向绑定(=) 数量值
handle 函数传递(&) 数量变化时的回调
placeholder 任意字符串 字符串(@) 占位符
precision 正整数 字符串(@) 精度值
round-type 0,1,2 字符串(@) 舍入类型,参考U9舍入类型枚举
round-value 0-9 字符串(@) 舍入值

示例代码:

  1. <im-card label-width="40pt">
  2. <im-qty-row label="数量:" can-edit="!bar.BoxCode || bar.BarCode==BarCode" ng-model="bar.Qty" handle="QtyChanged(index)" uom="{{info.UOMName}}"></im-qty-row>
  3. </im-card>

im-pair-qty-row

可显示两个数量,并用分隔符分隔,行位可显示单位。

呈现效果如下:
image.png

im-pair-qty-row控件属性说明

属性名 可选值 传递类型 说明
label 任意字符串 字符串(@) 左侧label列内容
label-width 30pt,40pt等 字符串(@) 该行label的宽度
left-qty 数字类型 单向绑定(<) 分隔符左侧内容,通常代表已扫料品数量、已拣货数量。
right-qty 数字类型 单向绑定(<) 分隔符右侧内容,通常代表需求数量,应扫数量。
separator 字符串 字符串(@) 分隔符
show-right-qty-when-zero true,false 单向绑定(<) 当右侧数量为0是,是否显示分隔符及右侧数量,默认false
uom 任意字符串 字符串(@) 最右侧单位名称

示例代码:

  1. <im-card label-width="40pt">
  2. <im-pair-qty-row label="数量"
  3. left-qty="lineInfo.scanItemQty" right-qty="lineInfo.IssueQty" uom="{{lineInfo.IssueUOM}}"></im-pair-qty-row>
  4. </im-card>

im-ref-row

参照样式控件,可点击,右侧带有箭头

im-ref-row控件通常由参照组件封装使用,封装成不同完整参照组件,如存储地点参照。

显示效果如下:
image.png

im-ref-row控件属性说明

属性名 可选值 传递类型 说明
label 任意字符串 字符串(@) 左侧label列内容
im-val 任意字符串 字符串(@) 通常是拼接编码+名称进行显示
handle 函数传递(&) 点击时触发的事件
placeholder 任意字符串 字符串(@) 占位符

示例代码:

  1. <im-card label-width="40pt">
  2. <im-re-row label="数量:" im-val="{{wh.Code+'/'+wh.Name}}" handle="onClick(index)" "></im-ref-row>
  3. </im-card>

im-rich-row

富集内容控件,不带label列。该容器强制flex布局,内部元素需使用flex:1自动布局。

目前有搭配 im-large-info控件使用。

呈现效果如下:
image.png
im-rich-row控件属性说明

属性名 可选值 传递类型 说明

代码示例:

  1. <im-card>
  2. <im-rich-row>
  3. <im-large-info im-val="{{homeData.Lines[index].OutQty}}" label="调出数量"></im-large-info>
  4. <im-large-info im-val="{{homeData.Lines[index].SumQty}}" label="实拣数量"></im-large-info>
  5. </im-rich-row>
  6. </im-card>

im-swtich-row

带有开关的行,封装了im-switch 控件

呈现效果如下:
image.png
im-switch-row控件属性说明

属性名 可选值 传递类型 说明
ng-model true,false 双向绑定(=) 绑定开关的开启或者关闭状态
label 任意字符串 字符串(@) 左侧label值
handle-change 单向绑定(<) 开关状态变化时回调,返回开关当前状态的回调,先于handle方法执行。
handle 函数传递(&) 开关状态变化时回调

代码示例:

  1. <im-card>
  2. <im-switch-row label="开关" ng-model="data.isChecked" handle="toggleChange()">
  3. </im-switch-row>
  4. </im-card>

im-date-row

日期控件,支持日期和时间

呈现效果如下:
image.png
im-switch-row控件属性说明

属性名 可选值 传递类型 说明
ng-model true,false 双向绑定(=) 绑定开关的开启或者关闭状态
label 任意字符串 字符串(@) 左侧label值
placeholder 任意字符串 字符串(@) 占位符
handle-change 单向绑定(<) 状态变化时回调
handle-change-context 函数传递(&) 变化时回调的上下文数据
format YYYY-MM-DD ,YYYY-MM-DD hh:mm:ss 字符串(@) 日期格式

代码示例:

  1. <im-card>
  2. <im-date-row label="日期" ng-model="data.isChecked" handle="toggleChange()">
  3. </im-date-row>
  4. </im-card>

参照控件

  • 基础参照控件
  • 存储地点参照
  • 库位参照
  • 打印设备选择

参照说明:通过im-common-ref实现的参照控件,均支持handle-change和handle-change-context属性。handle-change-context属性目的是在触发change事件时,可以将参照原本上下文信息返回给父scope事件。
例如:handle-change=”selectBin” handle-change-context=”lineInfo”,则触发handle-change时,实际调用是selectBin(newValue,lineInfo);

im-common-ref

基础参照控件,包含Table行控件,弹框页面等相关交互。支持单选,多选,模糊查询,下拉加载分页等。

控件说明:
1、get-data-by-once是一次性获取所有数据,不涉及分页。Search查询也是控件内部实现,查询过滤字段通过filter-fields传入。
2、get-data-by-page支持分页查询,Search查询也是通过接口实现,控件不处理。可根据需要选择两种模式。
3、refresh-index是用来优化性能,减少接口调用的。只有当refresh-index改变时,才会调用get-data-by-*接口刷新全部数据,否则保留之前已加载的数据。(例如,当库位参照的whID发生变化时,应该改变refresh-index来)

呈现效果如下:
image.pngimage.png

im-common-ref控件属性说明

属性名 可选值 传递类型 说明
label 任意字符串 字符串(@) table行label名称
title 任意字符串 字符串(@) 弹出参照顶部标题
im-val 任意字符串 字符串(@) 通常是拼接编码+名称进行显示
key-field 任意字符串,如id,code,name等 字符串(@) 数据集合中每项的key值,用于匹配是否已经选中,只支持单层即id,code。不支持aa.id
is-multi-select true,false 单向绑定(<) 是否启用多选
im-selected-data 单向绑定(<) 已选数据,至少包含key-field段,可以和im-data结构保持一致。
如果启用「多选」则该参数是数组,「单选」则是对象即可。
get-data-by-once 单向绑定(<) 一次性获取数据集合,至少包含key-field段,和get-data-by-page互斥,请使用其中一种方式。
入口参数:(filter:过滤字符串,可空,当filter-fields为空时,查询操作会调用该方法。context:get-data-context属性传递的上下文对象)
filter-fields 字符串数组,如[“code”,”name”] 单向绑定(<) 用于Search框查询时,指定查询字段。该属性只适用于get-data-by-once情况。分页查询不支持。
get-data-by-page 单向绑定(<) 获取数据方法,请返回promise对象。入口参数为(filter:过滤字符串,可空,pageInfo:分页信息,
context:
get-data-context属性传递的上下文对象)
pageinfo:{PageIndex:页码0标起始,PageSize:默认15},可空
弹出参照的搜索框也使用该方法进行过滤
get-data-context 单向绑定(<) 调用查询接口时,父域的上下文,由组件调用方传递,并传递给getDataByOnce或getDataByPage
refresh-index 任意字符串 字符串(@) 当需要控件重新刷新调用get-data-by-*接口刷新数据时,改变refresh-index值即可。如果该字段不变,则不会刷新全部数据。
handle-change 单向绑定(<) 选择参照时回调事件
handle-change-context 单向绑定(<) 选择参照时回调的第二个参数,可用于绑定当前参照上下文。
row-label-width 长度如30pt,40pt 字符串(@) 控制参照弹出页面中label的宽度
row-transclude 字符串(@) 弹出参照页面,每行渲染插槽字符串(上下文可用变量 item:当前行对象,和im-data[0]保持一致)

im-common-ref可用具名插槽

  • 可在参照im-val数据前显示插入前缀显示内容。如上述式样图中,调出存储地点中的【V】。

示例代码:

  1. <im-common-ref label="调入单单据类型"
  2. im-val="{{homeData.inDocType.Code?homeData.inDocType.Code+'/'+homeData.inDocType.Name:''}}"
  3. title="调入单单据类型"
  4. key-field="ID"
  5. get-data-by-once="getTransInDocTypes"
  6. filter-fields="['Code','Name']"
  7. im-selected-data="homeData.inDocType"
  8. handle-change="selectInDocType"
  9. row-transclude="{{transIndocTypeRowTransclude}}"
  10. >
  11. <im-common-ref-prefix><im-blue-tag ng-if="vm.showPrefix"
  12. im-val="V" background-color="#60a5fa"></im-blue-tag></im-common-ref-prefix>
  13. </im-common-ref>

  1. $scope.getTransInDocTypes = function () {
  2. var orgCode = BarCodeServices.getOrgCode();
  3. var param = '';
  4. if (type == '0') {
  5. param = 'TransInDocType&';
  6. $scope.homeData.selectDoctype = $scope.homeData.inDocType;
  7. } else {
  8. param = 'TransOutDocType&';
  9. $scope.homeData.selectDoctype = $scope.homeData.outDocType;
  10. }
  11. param += orgCode;
  12. return BarCodeServices.getSubAppSettingParam(param).then(function (datas) {
  13. var objs = angular.fromJson(datas);
  14. if (objs) {
  15. return objs;
  16. }
  17. }).catch(function (error) {
  18. error = BarCodeServices.getErrorMessage(error);//获取error中errorMessage信息
  19. imanDialog.alert(error);
  20. });
  21. }

im-wh-ref

存储地点参照控件,自动根据条件加载数据,并弹出选择页面。使用方法和im-ref-row类似。

呈现效果如下:
image.pngimage.png

im-wh-ref控件属性说明

属性名 可选值 传递类型 说明
label 任意字符串 字符串(@) 左侧label列内容,默认“存储地点”
im-val 任意字符串 字符串(@) 通常是拼接编码+名称进行显示
is-vmi true,false 单向绑定(<) 标识该存储地点是否VMI,用来显示V前缀标识
handle-change 单向绑定(<) 选择存储地点时回调事件
handle-change-context 单向绑定(<) 当前参照的上下文信息,会传递给handle-change作为第二个参数
cur-erpid 字符串(@) 当前已选存储地erpID,用于突出显示已选
org-code 任意字符串 字符串(@) 按照指定组织编码过滤存储地点,空则不过滤

示例代码:

  1. <im-card label-width="60pt">
  2. <im-wh-ref label="存储地点" im-val="{{homeData.OutWh.WhCode}} {{homeData.OutWh.WhID?'/':''}} {{homeData.OutWh.WhName}}" cur-erpid="{{homeData.OutWh.WhID}}" handle-change="selectWh" ></im-wh-ref>
  3. </im-card>

im-bin-ref

库位参照控件,自动根据条件加载数据,并弹出选择页面。使用方法和im-ref-row类似。

呈现效果如下:image.png
im-wh-ref控件属性说明

属性名 可选值 传递类型 说明
label 任意字符串 字符串(@) 左侧label列内容,默认“库位”
im-val 任意字符串 字符串(@) 通常是拼接编码+名称进行显示
handle-change 单向绑定(<) 选择库位时回调事件
handle-change-context 单向绑定(<) 当前参照的上下文信息,会传递给handle-change作为第二个参数
cur-erpid 字符串(@) 当前已选库位ErpID,用于突出显示已选
wh-id 任意字符串 字符串(@) 按照指定存储地点ErpID,空则不过滤

示例代码:

  1. <im-card label-width="60pt">
  2. <im-bin-ref label="库位" im-val="{{homeData.bin.Code}} {{homeData.bin.Code?'/':''}} {{homeData.bin.BinName}}" cur-erpid="{{homeData.bin.ErpID}}" handle-change="selectBin" ></im-bin-ref>
  3. </im-card>

im-operation-ref

工序参照控件,支持MO工序和PLS工序,自动根据条件加载数据,并弹出选择页面。

呈现效果如下:
image.pngimage.png

im-operation-ref控件属性说明

属性名 可选值 传递类型 说明
label 任意字符串 字符串(@) 左侧label列和页面标题,默认“工序”
im-val 任意字符串 字符串(@) 参照选择后页面显示的数据
handle-change 单向绑定(<) 选择工序时回调事件,返回对象
{OperationID:””,OperationNum:””,OperationDesc:””}
handle-change-context 单向绑定(<) 当前参照的上下文信息,会传递给handle-change作为第二个参数
cur-erpid 字符串(@) 当前已选工序ID,用于突出显示已选
mo 字符串(@) 生产订单ID,传值代表是MO工序
pls 字符串(@) 生产线日计划ID,传值代表是PLS工序
only-count-point true,false 单向绑定(<) 是否仅显示完工报告点工序,默认是

示例代码:

  1. <im-card label-width="60pt">
  2. <im-operation-ref label="工序" im-val="{item.operation.OperationNum}}/{{item.operation.OperationDesc}}" cur-erpid="{{homeData.opID}}" handle-change="selectOp" handle-change-context="homeData" mo="{{homeData.moID}}" ></im-operation-ref>
  3. </im-card>

im-print-device-select

蓝牙打印机设备选择,目前只支持下图所示的四个。该组件封装了im-select组件。

呈现效果如图:
image.png

im-print-device-select控件属性说明

属性名 可选值 传递类型 说明
label 任意字符串 字符串(@) 左侧label列内容,默认“打印机机型”
handle-change 单向绑定(<) 选择回调,value值[0,1,2,3]
ng-model 双向绑定(=) handle-change回调的参数和此保持一致

代码示例:

  1. <im-card label-width="60pt">
  2. <im-print-device-select cur-selected-val="printDevice" label= handle-change="test"></im-print-device-select>
  3. </im-card>

im-select

枚举类型选择框,打印机设备选择参照即封装的此空间

效果如图所示
image.png

im-select控件属性说明

属性名 可选值 传递类型 说明
label 任意字符串 字符串(@) 左侧label列内容,默认“打印机机型”
can-edit true,false 单向绑定(<) 是否可编辑,默认true
handle-change 单向绑定(<) 返回im-data-list中选项的Code值作为第一参数,返回
handle-change-context作为第二参数。
handle-change支持返回promise对象。
handle-change-context
单向绑定(<) 作为handle-change第二个参数
ng-model 双向绑定(=) 特殊:触发handle-change时,仍未更新ng-model绑定值,当handle-change返回false,不更新ng-model值。可参考示例代码。
im-data-list {“Code”:””,”Name”:””},此类型对象数组。 单向绑定(<) 枚举数据集合

代码示例:

  1. <im-card label-width="60pt">
  2. <im-select label="{{vm.label?vm.label:\'打印机机型\'}}" handle-change="vm.handleChange" im-data-list="vm.dataList" cur-selected-val="vm.curSelectedVal" ></im-select>
  3. </im-card>
  1. vm.handleChange = function(newValue,context){
  2. if ($scope.data.DocID > 0) {
  3. return imanDialog.confirm("切换数据来源将清空当前已扫数据,是否继续?").then(function (confirm) {
  4. if (confirm) {
  5. clearData();
  6. window.localStorage.setItem("ConfirmIssueDoc-SrcType", srcType);
  7. }else{
  8. //切换枚举时,如果弹框选择否,应返回false,则不修改枚举值。
  9. return false;
  10. }
  11. })
  12. } else {
  13. window.localStorage.setItem("ConfirmIssueDoc-SrcType", srcType);
  14. }
  15. }

页面公共集成组件

  • 顶部标题栏
  • 扫码输入集成
  • 搜索控件
  • 料品信息
  • 按钮
  • 枚举选择
  • 开关

    im-top-tab

    页面顶部标题栏,显示标题并带有返回按钮。

呈现效果如下:
image.png

im-top-tab控件属性说明

属性名 可选值 传递类型 说明
title 任意字符串 字符串(@) 标题内容
handle 函数传递(&) 返回按钮调用事件,安卓物理返回也会触发该方法。默认提示”是否返回主页面?”,确认则关闭当前页面。建议覆盖此方法。
is-modal true,false 单向绑定(<) 默认false,标识当前页面是否模态框。模态框不额外监听安卓物理返回键,正常页面会监听。

示例代码:

  1. <im-header>
  2. <im-top-tab title="调拨拣货出库" handle="MyPageGoBack()">
  3. </im-top-tab>
  4. </im-header>

im-barcode-scan-input

扫码输入集成,包含监听PDA红外扫码事件,输入框回车事件,摄像头解析事件。

呈现效果如下:
image.png
im-barcode-scan-input控件属性说明

属性名 可选值 传递类型 说明
placeholder 任意字符串 字符串(@) 占位符
im-val 任意字符串 字符串(@) 要显示的文本框内容
handle-change 单向绑定(<) 输入框回车事件,摄像头解析事件,PDA红外解析事件回调。

示例代码:

  1. <im-header>
  2. <im-barcode-scan-input placeholder="{{holdstring}}" im-val="{{BarCode}}" handle-change="BarCodeScan" >
  3. </im-barcode-scan-input>
  4. </im-header>

im-search-input

查询输入框控件,默认400ms防抖间隔。目前用于存储地点参照选择页面中。

呈现效果如下:
image.png

im-search-input控件属性说明

属性名 可选值 传递类型 说明
placeholder 任意字符串 字符串(@) 占位符
im-val 任意字符串 字符串(@) 要显示的文本框内容
handle-change 单向绑定(<) ng-change事件通过防抖过滤后的回调
delay-time 任意数字型字符串 字符串(@) 防抖间隔时间,默认400(ms)。

示例代码:

  1. <im-header>
  2. <im-top-tab title="选择存储地点" handle="vm.modal.hide()"></im-top-tab>
  3. <im-search-input placeholder="Search" delay-time="500" handle-change="getDataByFilter"></im-search-input>
  4. </im-header>

im-item-info

料品信息控件,带有【料品】标识,品名,规格,料号。目前用在im-card-header中,也可用于其他位置。

呈现效果如下:
image.png

im-item-info控件属性说明

属性名 可选值 传递类型 说明
tag-val 任意字符串 字符串(@) 蓝色tag部分内容
item-code 任意字符串 字符串(@) 料号
item-name 任意字符串 字符串(@) 品名
item-specs 任意字符串 字符串(@) 规格

示例代码:

  1. <im-card label-width="55pt">
  2. <im-card-header>
  3. <im-item-info tag-val="料品" item-name='{{homeData.Lines[index].ItemName}}' item-code='{{homeData.Lines[index].ItemName}}' item-specs='{{homeData.Lines[index].Spec}}'></im-item-info>
  4. </im-card-header>
  5. <im-rich-row>
  6. <im-large-info im-val="{{homeData.Lines[index].OutQty}}" label="调出数量"></im-large-info>
  7. <im-large-info im-val="{{homeData.Lines[index].SumQty}}" label="实拣数量"></im-large-info>
  8. </im-rich-row>
  9. </im-card>

im-button

按钮控件

呈现效果如下:
image.pngimage.png

im-button控件属性说明

属性名 可选值 传递类型 说明
handle 函数传递(&) 点击按钮回调
im-val 任意字符串 字符串(@) 按钮名称
type primary,default 字符串(@) 按钮类型,primary(蓝色),default(白色,默认)
size large,minor 字符串(@) 按钮尺寸大小,large(默认)
can-edit true,false 单向引用(<) 按钮是否可点击,true(默认)

示例代码:

  1. <im-bottom>
  2. <im-button type='default' size="minor" im-val="取消" handle="Cancel()" ></im-button>
  3. <im-button type='primary' size="minor" im-val="确认" handle="ConfirmOk()" ></im-button>
  4. </im-bottom>

im-switch

开关控件

效果如图所示
image.pngimage.png

im-switch控件属性说明

属性名 可选值 传递类型 说明
ng-model true,false 双向绑定(=) 绑定开关的开启或者关闭状态
handle-change 单向绑定(<) 开关状态变化时回调,返回开关当前状态的回调,先于handle方法执行。
handle 函数传递(&) 开关状态变化时回调

代码示例:

  1. <im-switch ng-model="vm.ngModel"
  2. handle-change="vm.toggleChange"
  3. handle="vm.handle()">
  4. </im-switch>

Tiny组件

  • 蓝色标签
  • 蓝色标签
  • 大字信息
  • 底部信息

该分组是一些固定样式的小组件,均是可以单据使用,堆叠使用。

im-blue-label

蓝色标签①

呈现效果如下:
image.png

im-blue-label控件属性说明

属性名 可选值 传递类型 说明
im-val 任意字符串 字符串(@) 标签内容

代码示例:

  1. <im-list>
  2. <im-card ng-repeat="info in homeData.Lines track by $index"
  3. label-width="55pt">
  4. <im-common-row label="料品:">{{info.ItemName}}<im-blue-label im-val="{{info.Spec}}"></im-blue-label></im-common-row>
  5. </im-card>
  6. </im-list>

im-blue-tag

蓝色标签②

呈现效果如下:
image.pngimage.png

im-blue-tag控件属性说明

属性名 可选值 传递类型 说明
im-val 任意字符串 字符串(@) 标签内容
background-color 颜色类型#ffffff 字符串(@) 标签背景颜色,默认蓝色
font-color 颜色类型#ffffff 字符串(@) 标签字体颜色,默认白色

代码示例:

  1. <im-card>
  2. <im-card-header ng-if="bin.BinCode">
  3. <im-blue-tag im-val="库位" background-color='#fe9e02' ></im-blue-tag>{{bin.BinCode}}
  4. </im-card-header>
  5. </im-card>

im-large-info

大字汇总信息控件,可以搭配im-rich-row使用

呈现效果如下(两个一起使用效果):
image.png
im-large-info控件属性说明

属性名 可选值 传递类型 说明
im-val 任意字符串 字符串(@) 上方内容为im-val信息
label 任意字符串 字符串(@) 下方内容为label信息

代码示例:

  1. <im-card label-width="55pt">
  2. <im-rich-row>
  3. <im-large-info im-val="{{homeData.Lines[index].OutQty}}" label="调出数量"></im-large-info>
  4. <im-large-info im-val="{{homeData.Lines[index].SumQty}}" label="实拣数量"></im-large-info>
  5. </im-rich-row>
  6. </im-card>

im-barcode-sum

主要用于显示已扫条码汇总数量信息,触摸im-content元素时,隐藏该汇总数量,停止触摸短暂延迟后,恢复显示。
控件理论上可防止任意代码位置,通常放置于im-content结尾处。目前样式定位为绝对定位,只预留一行按钮高度,若有其他需要,请自行覆盖样式。

呈现效果如下:
image.png
im-barcode-sum 控件属性说明

属性名 可选值 传递类型 说明
im-val 任意字符串 字符串(@) 上方内容为im-val信息

示例代码

  1. <im-content>
  2. <im-list>
  3. </im-list>
  4. <im-barcode-sum im-val="已扫条码:{{barCodes.length}}"></im-barcode-sum>
  5. </im-content>

im-blue-up-icon/im-blue-down-icon

一个向上和向下的箭头。用来标记当前数据是调出或调入,

呈现效果如下:
image.png
im-barcode-sum 控件属性说明

属性名 可选值 传递类型 说明
background-color transout,transin,其他颜色值 字符串(@) transout只限up控件,
transin只限down控件