开发工具: VS2015,SQL
开发环境: MVC 开发语言 :C#,JS,HTML5
前言:产品线是产品的集合,用于规定其内部产品的售价范围,方便供应商管理产品。
(1)功能实现1.添加产品线>> 点击加号小icon —> 弹出添加产品线模态框 —> 填写数据 —> 判断填写的数据是否规范 —> 弹出提示框是否确定添加 —>提交数据到控制器 —>查询用户产品线条数是否超出 —> 写入数据库 —> 添加产品线成功 —> 返回数据到页面 —> 提示添加成功 —> 刷新表格
2.修改产品线>> 点击表格中的修改 —> 弹出修改产品线模态框 —> 回填数据 —> 修改填写数据 —> 判断填写的数据是否规范 —> 弹出提示框是否确定修改 —>提交数据到控制器 —> 写入数据库 —> 修改产品线成功 —> 返回数据到页面 —> 提示修改成功 —> 刷新表格
3.删除产品线>> 点击表格中的删除 —> 弹出提示框是否确定删除 —>提交数据到控制器 —> 判断是否有下属产品 —> 判断是否是最后一条产品线 —> 写入数据库 —> 删除产品线成功 —> 返回数据到页面 —> 提示删除成功 —> 刷新表格
产品线的零售百分比区间决定了产品的销售区间,产品线的采购价百分比决定了产品的进价。
零售百分比区 × 产品基准价格 = 产品的销售区间
采购价百分比 × 产品基准价格 = 产品的进价
注意: 最后一条产品线无法删除,产品线数量不能超过规定数量。修改后产品线的原来已经纯在的产品不受产品线影响但是后面添加的产品需要符合产品线规范。
(2)数据库设计
(3)经典代码
根据bsgrid插件自带的行加载事件渲染图片,根据状态渲染不同的文字,根据数据大小渲染不同的颜色。
function MyProductButton(record, rowIndex) {
var td = $("#MyProduct tr").eq(rowIndex + 1).children();
td.eq(0).prepend('<img src="/ProductManage/MyPrdouct/GetProductImage?ProductID=' + record.ProductID + '" width="30" height="30"/> '); //图片渲染
var price = record.SmallPrice + ' <span class="glyphicon glyphicon-minus"></span> ' + record.MaxPrice;
td.eq(2).append(price);
if (record.PutawayState) {
PutawayState = '<color style="color:#449d44;">已铺货</color>'
td.eq(4).append(PutawayState);
} else {
PutawayState = '<color style="color:#c9302c;">未铺货</color>'
td.eq(4).append(PutawayState);
}
if (record.Inventory == 0) {
Inventory = '<color style="color:#c9302c;">' + record.Inventory + '</color>'
} else if (parseInt(record.Inventory) >= 100) {
Inventory = '<color style="color:#449d44;">' + record.Inventory + '</color>'
} else {
Inventory = '<color style="color:#f0ad4e;">' + record.Inventory + '</color>'
}
return Inventory;
}
(4)总结
这个模块我遇到了一个问题,JS获取页面数据进行大小判断不准确,经过翻阅资料得出,在js中的数据类型默认为字符串,而字符串大小比较是依次取字符,字符转ASCII码,ASCII码先大的即为大,也就是说在js中比较字符串大小前应该通过parseInt()方法或parseFloat()方法先转化为数字在进行比较,前者忽略小数直接截取整数部分转化为整数类型,后者转化为浮点数类型。
——宋心成