123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400 |
- <!DOCTYPE HTML>
- <html>
- <head>
- <meta charset="utf-8">
- <meta name="renderer" content="webkit|ie-comp|ie-stand">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <meta name="viewport"
- content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
- <meta http-equiv="Cache-Control" content="no-siteapp"/>
- <#include "/base/add_base.ftl">
- <style>
- .add-list>li{margin: 10px 0;}
- input[type=radio]{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
- input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(${path}/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
- </style>
- <title>添加Bom - Bom管理 - RST</title>
- </head>
- <body>
- <nav class="breadcrumb"><i class="Hui-iconfont"></i> 首页
- <span class="c-gray en">></span> Bom管理
- <span class="c-gray en">></span> 添加Bom
- <a class="btn radius r"
- style="line-height:1.6em;margin-top:3px;background: #32a3d8;color: #fff;border:1px solid #32a3d8;"
- href="javascript:location.replace(location.href);" title="刷新"><i class="Hui-iconfont"></i></a>
- </nav>
- <article class="page-container" style="padding: 10px;width: 600px;margin: 0 auto;">
- <form action="${path}/admin/bom/save_bom" method="post" class="form form-horizontal" id="form-bom-add">
- <div class="row cl">
- <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>所属产品:</label>
- <div class="formControls col-xs-8 col-sm-9"> <span class="select-box">
- <select class="select" size="1" name="produceId" datatype="*" errormsg="请选择产品">
- <#if produceList?? && (produceList?size > 0) >
- <#list produceList as produce>
- <option value="${produce.produceId}" >${produce.produceName}</option>
- </#list>
- <#else>
- <option value="">暂时没有产品,需要到生产产品页面添加产品</option>
- </#if>
- </select>
- </span>
- </div>
- </div>
- <div class="row cl">
- <label class="form-label col-xs-4 col-sm-3">修改基础:</label>
- <div class="formControls col-xs-8 col-sm-9"> <span class="select-box">
- <select class="select" size="1" name="bomId">
- </select>
- </span>
- </div>
- </div>
- <div class="row cl">
- <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>Bom名称:</label>
- <div class="formControls col-xs-8 col-sm-9">
- <input type="text" class="input-text" value="" id="bomName" name="bomName" placeholder="请输入1-20位字符的名称" datatype="*1-20" errormsg="请输入1-20位字符的名称!">
- </div>
- </div>
- <div class="row cl">
- <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>硬件版本:</label>
- <div class="formControls col-xs-8 col-sm-9">
- <input type="text" class="input-text" value="" id="bomVersion" name="bomVersion" placeholder="请输入1-10位的版本号" datatype="*1-10" errormsg="请输入1-10位的版本号!">
- </div>
- </div>
- <div class="row cl">
- <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>软件版本:</label>
- <div class="formControls col-xs-8 col-sm-9"> <span class="select-box">
- <select class="select" size="1" id="machineVersionId" name="machineVersionId" datatype="*" errormsg="请选择软件版本">
- <#if machineVersionList?? && (machineVersionList?size > 0) >
- <#list machineVersionList as version>
- <option value="${version.machineVersionId}">${version.machineVersionName}(${version.machineVersionNo})</option>
- </#list>
- <#else>
- <option value="">暂时没有产品,需要到生产产品页面添加产品</option>
- </#if>
- </select>
- </span>
- </div>
- </div>
- <div class="row cl">
- <label class="form-label col-xs-4 col-sm-3">备注:</label>
- <div class="formControls col-xs-8 col-sm-9">
- <textarea name="bomRemarks" id="bomRemarks" cols="" rows="" class="textarea"
- placeholder="Bom单备注,最多支持100字符" onKeyUp="$.Huitextarealength(this,100)" ></textarea>
- <p class="textarea-numberbar"><em class="textarea-length">0</em>/100</p>
- </div>
- </div>
- <div class="row cl">
- <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>Bom零件清单:</label>
- <div class="formControls col-xs-8 col-sm-9 components">
- <input type="hidden" id="bomComponentJson" name="bomComponentJson">
- <table class="table table-border table-bordered table-bg table-hover table-sort">
- <thead>
- <tr class="text-c">
- <th width="150">选择零件</th>
- <th width="60">零件数量</th>
- <th width="20">操作</th>
- </tr>
- </thead>
- <tbody id="componentaAll">
- </tbody>
- </table>
- <span id="componentsMsg" style="color: red"></span>
- </div>
- </div>
- <div class="row cl">
- <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
- <input class="btn btn-primary radius" type="button" value=" 新增零件 " onclick="addComponents('#','')">
- </div>
- </div>
- <div class="row cl">
- <label class="form-label col-xs-4 col-sm-3"></label>
- <span class="c-red">*提示</span><span>:新增的Bom,需要批次选中该Bom单,才会生效!</span>
- </div>
- <div class="row cl">
- <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
- <input class="btn btn-primary radius" type="submit" value=" 提交 ">
- </div>
- </div>
- </form>
- </article>
- <script type="text/javascript">
- $(function(){
- $("#form-bom-add").Validform({
- tiptype: function (msg, o, cssctl) {
- if (o.type == 3) {//失败
- layer.msg(msg, {icon: 5, time: 3000});
- $(window).scrollTop(o.obj.offset().top - 40);
- }
- },
- datatype: {//自定义验证类型
- "select": function (gets, obj, curform, regxp) {
- if (gets == "") {
- return false;
- } else {
- return true;
- }
- }
- },
- ignoreHidden: true,
- tipSweep: true, //若为true,则只在表单提交时验证
- ajaxPost: true, //异步提交
- beforeCheck: function (curform) { //验证通过之前执行的函数
- },
- beforeSubmit: function (curform) { //验证通过之后执行的函数
- var ptsBomComponentsList = new Array();
- $("#componentaAll").find("tr").each(function (){
- var ptsBomComponents = {};
- ptsBomComponents.componentsId = $(this).find("[name='comName']").eq(0).val();
- ptsBomComponents.bomComponentsQuantity = $(this).find("[name='comNumber']").eq(0).val() * 100;
- ptsBomComponentsList.push(ptsBomComponents);
- })
- $("#bomComponentJson").val(JSON.stringify(ptsBomComponentsList));
- },
- callback: function (data) {//异步回调函数
- if (data) {
- var index = layer.alert(data.resultMsg, function () {
- if (data.resultCode == 200) {
- location.href = "${path}/admin/bom/_bom_list";
- } else {
- layer.close(index);
- }
- });
- }
- }
- });
- })
- var allComponents; //所有零件的集合
- var staticProduceId; //产品id,用于判断产品更改
- var index;
- $(function () {
- /*添加页面初始化,添加一个零件选择框*/
- addComponents("#","");
- var produceId = $("[name='produceId']").val();
- staticProduceId = produceId;
- getBomByProduce(produceId); //获取bom单
- /*监听产品选择*/
- $("[name='produceId']").change(function(){
- var produceId = $(this).val();
- getBomByProduce(produceId);
- getMachineVersion(produceId);
- delComponent(0,"all");
- addComponents("#","");
- })
- /*监听修改基础 bom单*/
- $("[name='bomId']").change(function(){
- var bomId = $(this).val();
- getBom(bomId);
- })
- })
- /* 添加零件 */
- function addComponents(componentsId,number) {
- if(number == null || number == "" || typeof(number)=="undefined"){
- number = 1;
- }
- var tbody = $("#componentaAll");
- var produceId = $("[name='produceId']").val();
- if(allComponents == null || produceId != staticProduceId){ //获取零件列表
- staticProduceId = produceId;
- allComponents = listComponent(produceId);
- }
- var opHtml = '';
- for(var i=0;i<allComponents.length;i++){
- var components = allComponents[i];
- var isSelect = '';
- if(componentsId == components.componentsId){
- isSelect = 'selected="selected"';
- }
- opHtml += '<option value="'+ components.componentsId +'" '+ isSelect +'>'+ components.componentsName +'('+ components.componentsNo + ')</option>';
- }
- var html = '<tr class="text-c"> '
- +'<td> '
- +'<select class="select" size="1" name="comName" style="height: 30px;" datatype="*" errormsg="请选择零件"> '
- +''
- + opHtml
- +'</select> '
- +'</td> '
- +'<td> '
- //+'<input type="text" class="input-text" value="'+ number +'" id="" name="comNumber" placeholder="零件数量" datatype="n1-3" errormsg="零件数量只能为数字且不能超过1000件!"> '
- +'<input type="text" class="input-text" value="'+ number +'" id="" name="comNumber" placeholder="零件数量" datatype="/^([1-9]\\d{0,2}|0)(\\.\\d{0,2})?$/" errormsg="零件数量只能为数字且不能超过1000件!"> '
- +'</td> '
- +'<td> '
- +'<a style="" href="javascript:void(0);" title="删除" onclick="delComponent(this,1)"> '
- +'<i class="Hui-iconfont"></i> '
- +'</a> '
- +'</td> '
- +'</tr>';
- tbody.append(html);
- }
- /*删除零件 type=all时删除所有的零件 */
- function delComponent(node,type) {
- if(type == "all"){
- $("#componentaAll").find("tr").each(function () {
- $(this).remove();
- })
- }else{
- //删除零件必须保证还有一个零件
- var componentLength = $("#componentaAll").find("tr").length;
- if(componentLength > 1){
- $(node).parent().parent().remove();
- }else{
- layer.msg('必须要有一个零件', {icon: 5, time: 3000});
- }
- }
- }
- /*获取所有的零件*/
- function listComponent(produceId) {
- produceId = null; //查询出所有的零件;
- var list = new Array();
- $.ajax({
- type: "POST",
- data: {
- produceId : produceId
- },
- url: "${path}/admin/bom/get_listComponents",
- async: false,
- success: function(data){
- if (data.returnCode == 200) {
- $("#componentsMsg").html("");
- list = data.returnMsg.ptsComponentsList;
- }
- if(data.returnCode != 200 || list.length < 1){ //提示需要添加零件
- $("#componentsMsg").html("该产品没有对应的零件,请到零件管理添加零件");
- }
- },
- error: function(XmlHttpRequest, textStatus, errorThrown){
- }
- });
- return list;
- }
- /*根据产品id,获取bom集合*/
- function getBomByProduce(produceId){
- $.ajax({
- type: "POST",
- data: {
- produceId : produceId
- },
- url: "${path}/admin/bom/get_listBom",
- async: false,
- success: function(data){
- var html = '<option value="">不选择</option>';
- if (data.returnCode == 200) {
- var bomList = data.returnMsg.ptsBomsList;
- for(var i=0;i<bomList.length;i++){
- html += '<option value="'+ bomList[i].bomId +'">'+ bomList[i].bomName +'</option>';
- }
- }
- if(data.returnCode != 200 || data.returnMsg.ptsBomsList <1){
- defaultAllInput();
- }
- $("[name='bomId']").html(html);
- },
- error: function(XmlHttpRequest, textStatus, errorThrown){
- }
- });
- }
- /*获取bom信息,赋值在页面上*/
- function getBom(bomId){
- var index = layer.load(1, {
- shade: [0.5,'#fff'] //0.1透明度的白色背景
- });
- var bom = new Object();
- $.ajax({
- type: "POST",
- data: {
- bomId : bomId
- },
- url: "${path}/admin/bom/get_bom",
- async: true,
- success: function(data){
- if (data.returnCode == 200) {
- bom = data.returnMsg.ptsBom;
- if(bom != null && bom.bomId != null){
- $("#bomName").val(bom.bomName);
- $("#bomRemarks").val(bom.bomRemarks);
- $("#bomVersion").val(bom.bomVersion);
- delComponent(0,"all");
- var components = bom.ptsBomComponentsList;
- if(components != null && components.length > 0){
- for(var i=0;i<components.length;i++){
- addComponents(components[i].componentsId,components[i].bomComponentsQuantity/100);
- }
- }
- }else{
- defaultAllInput();
- }
- }else{
- defaultAllInput();
- }
- layer.close(index);
- },
- error: function(XmlHttpRequest, textStatus, errorThrown){
- }
- });
- }
- /* 获取软件版本 */
- function getMachineVersion(produceId){
- var html = '';
- $.ajax({
- type: "POST",
- data: {
- produceId : produceId
- },
- url: "${path}/admin/bom/get_listMachineVersion",
- async: false,
- success: function(data){
- if (data.returnCode == 200 && data.returnMsg.machineVersionList.length > 0) {
- for(var i=0;i<data.returnMsg.machineVersionList.length;i++){
- var version = data.returnMsg.machineVersionList[i];
- html += '<option value="'+ version.machineVersionId +'">'+ version.machineVersionName +'('+ version.machineVersionNo +')</option>';
- }
- }else{
- html += '<option value="">暂时没有软件版本,需要到生产产品页面添加软件版本</option>';
- }
- },
- error: function(XmlHttpRequest, textStatus, errorThrown){
- }
- });
- $("#machineVersionId").html(html);
- }
- /*当选择产品或者bom不选择时,都需要重置所有的输入框和表格*/
- function defaultAllInput() {
- $("#bomName").val("");
- $("#bomRemarks").val("");
- delComponent(0,"all");
- addComponents("#","");
- }
- </script>
- <!--/请在上方写此页面业务相关的脚本-->
- </body>
- </html>
|