@SuppressWarnings ( "unchecked" )
@Transactional ( propagation = Propagation. REQUIRED, readOnly = true )
public List< TextValue> getCombobox ( ) {
List< TextValue> list = new ArrayList < TextValue> ( ) ;
List< _ModuleGroup> _list = ( List< _ModuleGroup> ) systemBaseDAO. findAll ( "from _ModuleGroup order by _inputdate desc" ) ;
for ( _ModuleGroup m : _list) {
TextValue tv = new TextValue ( m. get_name ( ) , m. get_id ( ) ) ;
list. add ( tv) ;
}
return list;
}
package auto. system. second. controller;
import java. util. List;
import javax. annotation. Resource;
import javax. servlet. http. HttpServletRequest;
import javax. servlet. http. HttpServletResponse;
import org. hibernate. transform. ToListResultTransformer;
import org. omg. CORBA. PUBLIC_MEMBER;
import org. springframework. stereotype. Controller;
import org. springframework. web. bind. annotation. RequestMapping;
import org. springframework. web. bind. annotation. ResponseBody;
import com. google. gwt. layout. client. Layout. Layer;
import com. sun. org. apache. bcel. internal. generic. RETURN;
import auto. system. common. entity. PageData;
import auto. system. second. model. _Protype;
import auto. system. second. server. ProtypeService;
import auto. system. utils. ActionResult;
import sun. security. krb5. internal. PAData;
@Controller
@RequestMapping ( value= "/protype" )
public class ProtypeController {
@Resource
private ProtypeService protypeService;
@RequestMapping ( value= "/index.do" )
public String index ( HttpServletRequest request) {
return "/jsp/second/protype/index.jsp" ;
}
@RequestMapping ( value= "/addUI.do" )
public String addUI ( HttpServletRequest request) {
return "/jsp/second/protype/addUI.jsp" ;
}
@RequestMapping ( value= "/editUI.do" )
public String editUI ( HttpServletRequest request) {
request. setAttribute ( "module" , protypeService. getObject ( request. getParameter ( "_id" ) ) ) ;
return "/jsp/second/protype/editUI.jsp" ;
}
@RequestMapping ( value= "/edit.do" )
public String edit ( HttpServletRequest request, HttpServletResponse response) {
try {
ActionResult result = protypeService. edit ( request) ;
if ( result. getSuccess ( ) ) {
return "/jsp/second/protype/index.jsp" ;
}
} catch ( Exception e) {
request. setAttribute ( "errMsg" , "违反了 UNIQUE KEY 约束 'IX__protype'。不能在对象 'dbo._protype' 中插入重复键" ) ;
}
return "/errMsg.jsp" ;
}
@RequestMapping ( value= "/add.do" )
@ResponseBody
public ActionResult add ( HttpServletRequest request, HttpServletResponse response) throws Exception{
return protypeService. add ( request, response) ;
}
@RequestMapping ( value= "/getList.do" )
@ResponseBody
public List< ? > getList ( HttpServletRequest request) {
return protypeService. getList ( request) ;
}
@RequestMapping ( value= "/toList.do" )
@ResponseBody
public PageData toList ( HttpServletRequest request , Integer limit, Integer page) throws Exception{
return protypeService. toList ( request, limit, page) ;
}
@RequestMapping ( value= "/getCombobox.do" )
@ResponseBody
public List< _Protype> getCombobox ( String search) {
return protypeService. getCombobox ( search) ;
}
@RequestMapping ( value= "/delete.do" )
@ResponseBody
public ActionResult delete ( HttpServletRequest request, String _id) {
return protypeService. delete ( _id) ;
}
}
package auto. system. second. server;
import java. util. List;
import javax. annotation. Resource;
import javax. servlet. http. HttpServletRequest;
import javax. servlet. http. HttpServletResponse;
import org. apache. commons. lang3. StringUtils;
import org. springframework. stereotype. Service;
import org. springframework. transaction. annotation. Propagation;
import org. springframework. transaction. annotation. Transactional;
import auto. system. common. entity. PageData;
import auto. system. module. core. DTOBuilder;
import auto. system. module. core. SessionUtils;
import auto. system. module. server. BaseService;
import auto. system. module. server. dao. SystemBaseDAO;
import auto. system. module. system. model. _ModuleGroup;
import auto. system. second. model. _Protype;
import auto. system. third. util. UUIDUtils;
import auto. system. utils. ActionResult;
import auto. system. utils. TimeUtils;
import db. utils. DBUtils;
@Service
public class ProtypeService extends BaseService {
@Resource
private SystemBaseDAO systemBaseDAO;
@Transactional ( propagation = Propagation. REQUIRED, readOnly = false )
public ActionResult edit ( HttpServletRequest request) throws Exception{
System. out. println ( "edit..." ) ;
ActionResult result = new ActionResult ( ) ;
String _id = res. getParameter ( request, "_id" , "" ) ;
_Protype obj = null;
if ( "" . equals ( _id) ) {
obj = new _Protype ( ) ;
obj = ( _Protype) DTOBuilder. getDTO ( request, _Protype. class ) ;
obj. set_id ( UUIDUtils. getUUID ( ) ) ;
obj. set_inputdate ( TimeUtils. getYearMonthDayHourMinuteStr ( ) ) ;
obj. set_inputmen ( SessionUtils. getUser ( request) . get_name ( ) ) ;
systemBaseDAO. save ( obj) ;
result. setSuccess ( true ) ;
} else {
obj = ( _Protype) systemBaseDAO. findById ( _Protype. class , _id) ;
DTOBuilder. updateDTO ( request, obj) ;
obj. set_inputdate ( TimeUtils. getYearMonthDayHourMinuteStr ( ) ) ;
obj. set_inputmen ( SessionUtils. getUser ( request) . get_name ( ) ) ;
systemBaseDAO. attachDirty ( obj, null) ;
result. setSuccess ( true ) ;
}
return result;
}
@Transactional ( propagation = Propagation. REQUIRED, readOnly = false )
public ActionResult add ( HttpServletRequest request, HttpServletResponse response) throws Exception{
ActionResult result = new ActionResult ( ) ;
String _id = res. getParameter ( request, "_id" , "" ) ;
_Protype obj = null;
if ( "" . equals ( _id) ) {
obj = new _Protype ( ) ;
obj = ( _Protype) DTOBuilder. getDTO ( request, _Protype. class ) ;
obj. set_id ( UUIDUtils. getUUID ( ) ) ;
obj. set_inputdate ( TimeUtils. getYearMonthDayHourMinuteStr ( ) ) ;
obj. set_inputmen ( SessionUtils. getUser ( request) . get_name ( ) ) ;
systemBaseDAO. save ( obj) ;
result. setSuccess ( true ) ;
} else {
obj = ( _Protype) systemBaseDAO. findById ( _Protype. class , _id) ;
DTOBuilder. updateDTO ( request, obj) ;
obj. set_inputdate ( TimeUtils. getYearMonthDayHourMinuteStr ( ) ) ;
obj. set_inputmen ( SessionUtils. getUser ( request) . get_name ( ) ) ;
systemBaseDAO. attachDirty ( obj, null) ;
result. setSuccess ( true ) ;
}
return result;
}
@SuppressWarnings ( "unchecked" )
@Transactional ( propagation = Propagation. REQUIRED, readOnly = true )
public List< ? > getList ( HttpServletRequest request) {
String search = res. getParameter ( request, "search" , "" ) ;
String hql = "from _Protype order by _inputdate desc" ;
if ( ! "" . equals ( search) ) {
hql = "from _Protype where _name like '%" + search + "%' order by _inputdate desc" ;
}
List< _Protype> list = ( List< _Protype> ) systemBaseDAO. findAll ( hql) ;
for ( _Protype t : list) {
if ( t. get_moduleGroupId ( ) != null) {
_ModuleGroup group = ( _ModuleGroup) systemBaseDAO. findById ( _ModuleGroup. class , t. get_moduleGroupId ( ) ) ;
t. set_moduleGroupName ( group. get_name ( ) ) ;
}
}
return list;
}
@SuppressWarnings ( "unchecked" )
@Transactional ( propagation = Propagation. REQUIRED, readOnly= true )
public PageData toList ( HttpServletRequest request , Integer limit, Integer page) throws Exception{
String _name= res. getParameter ( request, "_name" , "" ) ;
StringBuffer hql = new StringBuffer ( ) ;
StringBuffer sql = new StringBuffer ( ) ;
hql. append ( "from _Protype where 1=1" ) ;
sql. append ( "select count(1) from _Protype where 1=1" ) ;
if ( StringUtils. isNotEmpty ( _name) ) {
hql. append ( "and _name like '%" + _name + "%'" ) ;
sql. append ( "and _name like '%" + _name + "%'" ) ;
}
hql. append ( "order by _inputdate desc" ) ;
List< _Protype> list = ( List< _Protype> ) systemBaseDAO. findAll ( hql. toString ( ) , limit, page) ;
for ( _Protype t: list) {
if ( t. get_moduleGroupId ( ) != null) {
_ModuleGroup group = ( _ModuleGroup) systemBaseDAO. findById ( _ModuleGroup. class , t. get_moduleGroupId ( ) ) ;
t. set_moduleGroupName ( group. get_name ( ) ) ;
}
}
return PageData. successData ( list, DBUtils. getTotal ( sql. toString ( ) ) ) ;
}
@Transactional ( propagation = Propagation. REQUIRED, readOnly = true )
public _Protype getObject ( String id) {
return ( _Protype) systemBaseDAO. findById ( _Protype. class , id) ;
}
@SuppressWarnings ( "unchecked" )
@Transactional ( propagation = Propagation. REQUIRED, readOnly = true )
public List< _Protype> getCombobox ( String search) {
List< _Protype> list = ( List< _Protype> ) systemBaseDAO. findAll ( "from _Protype where _name like '%" + search + "%' order by _inputdate desc" , 10 , 1 ) ;
return list;
}
@Transactional ( propagation = Propagation. REQUIRED, readOnly = false )
public ActionResult delete ( String _id) {
ActionResult result = new ActionResult ( ) ;
try {
_Protype record = ( _Protype) systemBaseDAO. findById ( _Protype. class , _id) ;
int total = systemBaseDAO. getTotal ( "from _Bom where _protype = '" + record. get_name ( ) + "'" ) ;
if ( total > 0 ) {
result. setSuccess ( false ) ;
result. setMsg ( "BOM模块字段中有关联信息存在,请先清空相关模块字段信息,再删除该信息" ) ;
} else {
result. setSuccess ( true ) ;
systemBaseDAO. delete ( record) ;
}
} catch ( Exception e) {
result. setSuccess ( false ) ;
result. setMsg ( e. getMessage ( ) ) ;
e. printStackTrace ( ) ;
}
return result;
}
}
< % @page language= "java" contentType= "text/html; charset=UTF-8"
pageEncoding= "UTF-8" % >
< % @ include file= "/jsp/common.jsp" % >
< % @ taglib uri= "http://java.sun.com/jsp/jstl/core" prefix= "c" % >
< ! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" >
< html>
< head>
< base href= "<%=basePath%>" >
< meta charset= "utf-8" >
< title> 产品型号< / title>
< meta http- equiv= "pragma" content= "no-cache" >
< meta http- equiv= "cache-control" content= "no-cache" >
< meta http- equiv= "expires" content= "0" >
< meta http- equiv= "keywords" content= "keyword1,keyword2,keyword3" >
< meta http- equiv= "Content-Type" content= "text/html; charset=UTF-8" >
< meta http- equiv= "description" content= "This is my page" >
< link rel= "stylesheet" type= "text/css" href= "<%=basePath %>js/layui-v2.5.5/layui/css/layui.css" charset= "utf-8" >
< / head>
< body style= "padding-top:10px;" >
< div class = "layui-fluid" >
< div class = "layui-card" >
< div class = "layui-form layui-card-header" >
< div class = "layui-form-item" >
< div class = "layui-block" >
< label class = "layui-form-label" > 产品型号< / label>
< div class = "layui-input-inline" >
< input type= "text" name= "_name" placeholder= "请输入产品型号" autocomplete= "off" class = "layui-input" >
< / div>
< / div>
< div class = "layui-inline" >
< button class = "layui-btn layui-btn-sm" lay- submit lay- filter= "pro-tbl-search" > < i class = "layui-icon layui-icon-search" > < / i> 查 询< / button>
< / div>
< / div>
< / div>
< div class = "layui-card-body" >
< ! -- 系统模块原始容器: -- >
< table class = "layui-hide" id= "pro-tbl" lay- filter= "pro-tbl" > < / table>
< / div>
< / div>
< / div>
< ! -- 添加用户弹出层 -- >
< div id= "add-pro-layer" style= "display:none;padding:20px;" >
< form id= "add-pro-form" class = "layui-form layui-form-pane" >
< div class = "layui-form-item" style= "margin-top:5px;" >
< label class = "layui-form-label" > 生产线< / label>
< div class = "layui-input-block" >
< select class = "input" id= "_moduleGroupId" name= "_moduleGroupId" > < / select>
< / div>
< / div>
< div class = "layui-form-item" >
< label class = "layui-form-label" > 产品系列< / label>
< div class = "layui-input-block" >
< input type= "text" class = "layui-input" id = "_add_series" name= "_series" required lay- verify= "required" placeholder= "请输入产品系列" autocomplete= "off" >
< / div>
< / div>
< div class = "layui-form-item" >
< label class = "layui-form-label" > 产品型号< / label>
< div class = "layui-input-block" >
< input type= "text" id= "_add_name" name= "_name" required lay- verify= "required" placeholder= "请输入产品型号" autocomplete= "off" class = "layui-input" >
< / div>
< / div>
< div class = "layui-form-item" >
< label class = "layui-form-label" > 产品型号代号< / label>
< div class = "layui-input-block" >
< input type= "text" id= "_add_proNo" name= "_proNo" required lay- verify= "required" placeholder= "请输入产品型号代号" autocomplete= "off" class = "layui-input" >
< / div>
< / div>
< div class = "layui-form-item" >
< label class = "layui-form-label" > 代号< / label>
< div class = "layui-input-block" >
< input type= "text" id = "_add_no" name= "_no" required lay- verify= "required" placeholder= "请输入代号" autocomplete= "off" class = "layui-input" >
< / div>
< / div>
< div class = "layui-form-item" >
< label class = "layui-form-label" > 产品参数< / label>
< div class = "layui-input-block" >
< input type= "text" id= "_add_params" name= "_params" required lay- verify= "required" placeholder= "请输入产品参数" autocomplete= "off" class = "layui-input" >
< / div>
< / div>
< div class = "layui-form-item layui-form-text" >
< label class = "layui-form-label" > 备注< / label>
< div class = "layui-input-block" >
< textarea placeholder= "请输入内容" id= "_add_remarks" class = "layui-textarea" name= "_remarks" > < / textarea>
< / div>
< / div>
< div class = "layui-form-item" style= "float:right" >
< button class = "layui-btn" lay- submit lay- filter= "add-pro-form-submit" > 提交< / button>
< button type= "reset" class = "layui-btn layui-btn-primary" > 重置< / button>
< / div>
< / form>
< / div>
< ! -- 更新弹出层-- >
< div id= "update-pro-layer" style= "display: none; padding: 20px;" >
< form id= "update-pro-form" class = "layui-form layui-form-pane" lay- filter= "update-pro-form" >
< div class = "layui-form-item" style= "display:none" >
< label class = "layui-form-label" > _id< / label>
< div class = "layui-input-block" >
< input type= "text" name= "_id" id= "_id" class = "layui-input" >
< / div>
< / div>
< div class = "layui-form-item" >
< label class = "layui-form-label" > 工艺分组< / label>
< div class = "layui-input-block" >
< input type= "hidden" name= "_moduleGroupId" >
< select type= "text" id= "_update_moduleGroupId" name= "_moduleGroupId" autocomplete= "off" class = "layui-input" lay- verify= "required" > < / select>
< / div>
< / div>
< div class = "layui-form-item" >
< label class = "layui-form-label" > 产品系列< / label>
< div class = "layui-input-block" >
< input type= "text" id= "_update_series" class = "layui-input" name= "_series" required lay- verify= "required" placeholder= "请输入产品系列" autocomplete= "off" >
< / div>
< / div>
< div class = "layui-form-item" >
< label class = "layui-form-label" > 产品型号< / label>
< div class = "layui-input-block" >
< input class = "layui-input" id= "_update_name" name= "_name" autocomplete= "off" required lay- verify= "required" placeholder= "请输入产品型号" >
< / div>
< / div>
< div class = "layui-form-item" >
< label class = "layui-form-label" > 产品型号代号< / label>
< div class = "layui-input-block" >
< input name= "_proNo" id= "_update_proNo" required lay- verify= "required" autocomplete= "off" placeholder= "请输入产品型号代号" class = "layui-input" >
< / div>
< / div>
< div class = "layui-form-item" >
< label class = "layui-form-label" > 代号< / label>
< div class = "layui-input-block" >
< input class = "layui-input" id= "_update_no" name= "_no" required lay- verify= "required" autocomplete= "off" placeholder= "请输入代号" >
< / div>
< / div>
< div class = "layui-form-item" >
< label class = "layui-form-label" > 产品参数< / label>
< div class = "layui-input-block" >
< input class = "layui-input" id= "_update_params" name = "_params" required lay- verfy= "requird" placeholder= "请输入产品参数" autocomplete= "off" >
< / div>
< / div>
< div class = "layui-form-item layui-form-text" >
< label class = "layui-form-label" > 备注< / label>
< div class = "layui-input-block" >
< textarea placeholder= "请输入内容" class = "layui-textarea" id= "_update_remarks" id= "_update_remarks" name= "_remarks" > < / textarea>
< / div>
< / div>
< / form>
< / div>
< script type= "text/javascript" src= "<%=basePath %>js/layui-v2.5.5/layui/layui.js" charset= "utf-8" > < / script>
< script type= "text/html" id= "pro-tbl-toolbar" >
< div class = "layui-btn-container" >
< button class = "layui-btn layui-btn-sm" lay- event= "refresh" > 刷新< / button>
< button class = "layui-btn layui-btn-sm" lay- event= "add-pro-btn" > 添加< / button>
< / div>
< / script>
< script type= "text/html" id= "pro-rowtbl-toolbar" >
< a class = "layui-btn layui-btn-xs" lay- event= "updatePro" > 编辑< / a>
< a class = "layui-btn layui-btn-xs layui-btn-danger" lay- event= "deletePro" > 删除< / a>
< / script>
< script>
var basePath = "<%=basePath %>" ;
< / script>
< script type= "text/javascript" src= "<%=basePath %>pro_index.js?v=202030123" > < / script>
< / body>
< / html>
layui. use ( [ 'jquery' , 'table' , 'layer' , 'form' ] , function ( ) {
var $ = layui. $;
var table = layui. table;
var layer = layui. layer;
var form = layui. form;
table. render ( {
elem : '#pro-tbl' ,
url : 'protype/toList.do' ,
toolbar : '#pro-tbl-toolbar' ,
defaultToolbar : [ 'filter' , 'exports' , 'print' , {
title: '提示' ,
layEvent : 'LAYTABLE_TIPS' ,
icon : 'layui-icon-tips' ,
} ] ,
title : '产品型号数据' ,
cols : [ [ {
field : '_moduleGroupName' ,
title : '生产线' ,
} , {
field : '_series' ,
title : '产品系列'
} , {
field : '_name' ,
title : '产品型号'
} , {
field : '_proNo' ,
title : '产品型号代号'
} , {
field : '_no' ,
title : '代号'
} , {
field : '_params' ,
title : '产品参数'
} , {
field : '_remarks' ,
title : '备注'
} , {
field : '_inputmen' ,
title : '操作人员' ,
sort : true
} , {
field : '_inputdate' ,
title : '操作时间' ,
sort : true
} , {
fixed : 'right' ,
title : '操作' ,
width : 340 ,
toolbar : '#pro-rowtbl-toolbar'
} ] ] ,
page : true
} ) ;
form. on ( 'submit(pro-tbl-search)' , function ( data) {
console. log ( data)
table. reload ( 'pro-tbl' , {
where : data. field
} )
} ) ;
table. on ( 'toolbar(pro-tbl)' , function ( obj) {
var data = obj. data;
var event = obj. event;
if ( event == "add-pro-btn" ) {
$( '#add-pro-form' ) [ 0 ] . reset ( ) ;
layer. open ( {
type : 1 ,
title : '添加产品型号' ,
skin : 'layui-layer-molv' ,
area : [ '500' ] ,
content: $( '#add-pro-layer' )
} ) ;
} else if ( event == 'refresh' ) {
table. reload ( 'pro-tbl' )
}
} ) ;
form. on ( 'submit(add-pro-form-submit)' , function ( data) {
$. ajax ( {
url : basePath + 'protype/add.do' ,
type : 'POST' ,
data : data. field,
dataType : 'json' ,
success : function ( result) {
if ( result. success) {
layer. closeAll ( ) ;
layer. msg ( '添加成功' ) ;
table. reload ( 'pro-tbl' ) ;
} else {
layer. msg ( result. msg)
}
} ,
error : function ( ) {
console. log ( "ajax error" ) ;
}
} ) ;
return false ;
} ) ;
table. on ( 'tool(pro-tbl)' , function ( obj) {
var data = obj. data;
var event = obj. event;
switch ( event) {
case 'deletePro' :
layer. confirm ( '确定删除吗?' , function ( index) {
$. ajax ( {
url : basePath + "protype/delete.do?_id=" + data. _id,
type : 'GET' ,
dataType : 'json' ,
success: function ( result) {
if ( result. success) {
layer. msg ( "操作成功" ) ;
table. reload ( 'pro-tbl' ) ;
} else {
layer. msg ( result. msg) ;
}
} ,
error: function ( ) {
layer. msg ( "ajax error" )
}
} )
} ) ;
break ;
case 'updatePro' :
form. val ( 'update-pro-form' , {
"_id" : data. _id,
"_moduleGroupName" : data. _moduleGroupName,
"_moduleGroupId" : data. _moduleGroupId,
"_series" : data. _series,
"_name" : data. _name,
"_proNo" : data. _proNo,
"_no" : data. _no,
"_params" : data. _params,
"_remarks" : data. _remarks
} ) ;
layer. open ( {
type : 1 ,
title : '更新模块字段' ,
skin : 'layui-layer-molv' ,
area : [ '500px' ] ,
content: $( '#update-pro-layer' ) ,
btn: [ '确定' , '取消' ] ,
yes: function ( index, layer0) {
$. ajax ( {
url : basePath + 'protype/add.do' ,
type : "POST" ,
data : {
"_id" : $( '#_id' ) . val ( ) ,
"_moduleGroupName" : $( '#_moduleGroupName' ) . val ( ) ,
"_moduleGroupId" : $( '#_update_moduleGroupId' ) . val ( ) ,
"_series" : $( '#_update_series' ) . val ( ) ,
"_name" : $( '#_update_name' ) . val ( ) ,
"_proNo" : $( '#_update_proNo' ) . val ( ) ,
"_no" : $( '#_update_no' ) . val ( ) ,
"_params" : $( '#_update_params' ) . val ( ) ,
"_remarks" : $( '#_update_remarks' ) . val ( )
} ,
dataType : 'json' ,
success : function ( result) {
if ( result. success) {
layer. closeAll ( ) ;
layer. msg ( '修改成功' ) ;
table. reload ( 'pro-tbl' ) ;
} else {
layer. msg ( result. msg) ;
}
} ,
error : function ( ) {
console. log ( "ajax error" ) ;
}
} ) ;
return false ;
}
} ) ;
}
} )
} )
$( ( function ( ) {
$. ajax ( {
type : 'POST' ,
dataType : "json" ,
url : basePath+ 'modulegroup/getCombobox.do' ,
async : true ,
success : function ( data) {
var select = $( '#_moduleGroupId' ) ;
var options = "<option value=''>请选择所属生产线</option>"
for ( var i = 0 ; i< data. length; i++ ) {
options = options + "<option value='" + data[ i] . value + "'>" + data[ i] . text + "</option>"
}
select. append ( options) ;
}
} ) ;
}
) )
$( ) . ready ( function ( ) {
$. ajax ( {
type : 'POST' ,
dataType : "json" ,
url : basePath + "modulegroup/getCombobox.do" ,
async : false ,
success : function ( data) {
console. log ( data+ "===" )
var select = $( '#_update_moduleGroupId' ) ;
console. log ( select)
var options = "<option value=''>请选择所属生产线</option>"
for ( var i = 0 ; i< data. length; i++ ) {
if ( data[ i] . value == $( '#_moduleGroupId' ) . val ( ) ) {
options = options + "<option value='" + data[ i] . value + "' selected>" + data[ i] . text + "</option>"
} else {
options = options + "<option value='" + data[ i] . value + "'>" + data[ i] . text + "</option>"
}
}
select. append ( options) ;
}
} ) ;
} )