productCode.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464
  1. /**
  2. * @FH QQ:
  3. */
  4. var locat = (window.location+'').split('/');
  5. $(function(){if('createCode'== locat[3]){locat = locat[0]+'//'+locat[2];}else{locat = locat[0]+'//'+locat[2]+'/'+locat[3];};});
  6. //生成
  7. function save(){
  8. if($("#TITLE").val()==""){
  9. $("#TITLE").tips({
  10. side:3,
  11. msg:'输入说明',
  12. bg:'#AE81FF',
  13. time:2
  14. });
  15. $("#TITLE").focus();
  16. return false;
  17. }
  18. if($("#packageName").val()==""){
  19. $("#packageName").tips({
  20. side:3,
  21. msg:'输入包名',
  22. bg:'#AE81FF',
  23. time:2
  24. });
  25. $("#packageName").focus();
  26. return false;
  27. }else{
  28. var pat = new RegExp("^[A-Za-z]+$");
  29. if(!pat.test($("#packageName").val())){
  30. $("#packageName").tips({
  31. side:3,
  32. msg:'只能输入字母',
  33. bg:'#AE81FF',
  34. time:2
  35. });
  36. $("#packageName").focus();
  37. return false;
  38. }
  39. }
  40. if($("#objectName").val()==""){
  41. $("#objectName").tips({
  42. side:3,
  43. msg:'输入类名',
  44. bg:'#AE81FF',
  45. time:2
  46. });
  47. $("#objectName").focus();
  48. return false;
  49. }else{
  50. var headstr = $("#objectName").val().substring(0,1);
  51. var pat = new RegExp("^[a-z0-9]+$");
  52. if(pat.test(headstr)){
  53. $("#objectName").tips({
  54. side:3,
  55. msg:'类名首字母必须为大写字母或下划线',
  56. bg:'#AE81FF',
  57. time:2
  58. });
  59. $("#objectName").focus();
  60. return false;
  61. }
  62. }
  63. if($("#fields").html() == ''){
  64. $("#table_report").tips({
  65. side:3,
  66. msg:'请添加属性',
  67. bg:'#AE81FF',
  68. time:2
  69. });
  70. return false;
  71. }
  72. if(!confirm("确定要生成吗?")){
  73. return false;
  74. }
  75. var strArField = '';
  76. for(var i=0;i<arField.length;i++){
  77. strArField = strArField + arField[i] + "Q ";
  78. }
  79. $("#FIELDLIST").val(strArField); //属性集合
  80. $("#Form").submit(); //提交
  81. $("#objectName").val('');
  82. $("#fields").html('');
  83. $("#productc").tips({
  84. side:3,
  85. msg:'提交成功,等待下载',
  86. bg:'#AE81FF',
  87. time:9
  88. });
  89. window.parent.jzts();
  90. $("#zhongxin").hide();
  91. $("#zhongxin2").show();
  92. timer(9);
  93. setTimeout("top.Dialog.close()",10000);
  94. }
  95. //倒计时
  96. function timer(intDiff){
  97. window.setInterval(function(){
  98. $('#second_show').html('<s></s>'+intDiff+'秒');
  99. intDiff--;
  100. }, 1000);
  101. }
  102. //选择类型
  103. function selectType(value){
  104. if("sontable" == value){
  105. $("#faobjectid").removeAttr("disabled");
  106. $("#faobjectid").css("background","white");
  107. }else{
  108. $("#faobjectid").attr("disabled","disabled");
  109. $("#faobjectid").css("background","#F5F5F5");
  110. $("#faobjectid").val("");
  111. inpOpen();
  112. };
  113. }
  114. //选择主表
  115. function selectFa(CREATECODE_ID){
  116. if("" != CREATECODE_ID){
  117. inpClose();
  118. $.ajax({
  119. type: "POST",
  120. url: locat+'/createCode/findById.do',
  121. data: {CREATECODE_ID:CREATECODE_ID,tm:new Date().getTime()},
  122. dataType:'json',
  123. cache: false,
  124. success: function(data){
  125. $("#TITLE").val(data.pd.TITLE + '(明细)');
  126. $("#packageName").val(data.pd.PACKAGENAME);
  127. $("#objectName").val(data.pd.OBJECTNAME+"Mx");
  128. var tb = data.pd.TABLENAME.split(",fh,");
  129. $("#tabletop").val(tb[0]);
  130. $("#faobject").val(data.pd.OBJECTNAME);
  131. }
  132. });
  133. }else{
  134. inpOpen();
  135. }
  136. }
  137. //input启用
  138. function inpOpen(){
  139. $("#TITLE").attr("readonly",false);
  140. $("#packageName").attr("readonly",false);
  141. $("#objectName").attr("readonly",false);
  142. $("#tabletop").attr("readonly",false);
  143. }
  144. //input禁用
  145. function inpClose(){
  146. $("#TITLE").attr("readonly",true);
  147. $("#packageName").attr("readonly",true);
  148. $("#objectName").attr("readonly",true);
  149. $("#tabletop").attr("readonly",true);
  150. }
  151. //清空引用数据字典
  152. function deldid(){
  153. $("#dictionariesid").val('');
  154. }
  155. //保存编辑属性
  156. function saveD(){
  157. var dname = $("#dname").val(); //属性名
  158. var dtype = $("#dtype").val(); //类型
  159. var dbz = $("#dbz").val(); //备注
  160. var isQian = $("#isQian").val(); //是否前台录入
  161. var ddefault = $("#ddefault").val(); //默认值
  162. var msgIndex = $("#msgIndex").val(); //msgIndex不为空时是修改
  163. var flength = $("#flength").val(); //长度
  164. var decimal = $("#decimal").val(); //小数
  165. var dictionariesid = $("#dictionariesid").val(); //数据字典ID
  166. if(dname==""){
  167. $("#dname").tips({
  168. side:3,
  169. msg:'输入属性名',
  170. bg:'#AE81FF',
  171. time:2
  172. });
  173. $("#dname").focus();
  174. return false;
  175. }else{
  176. dname = dname.toUpperCase(); //转化为大写
  177. if(isSame(dname)){
  178. var headstr = dname.substring(0,1);
  179. var pat = new RegExp("^[0-9]+$");
  180. if(pat.test(headstr)){
  181. $("#dname").tips({
  182. side:3,
  183. msg:'属性名首字母必须为字母或下划线',
  184. bg:'#AE81FF',
  185. time:2
  186. });
  187. $("#dname").focus();
  188. return false;
  189. }
  190. }else{
  191. if(msgIndex != ''){
  192. var hcdname = $("#hcdname").val();
  193. if(hcdname != dname){
  194. if(!isSame(dname)){
  195. $("#dname").tips({
  196. side:3,
  197. msg:'属性名重复',
  198. bg:'#AE81FF',
  199. time:2
  200. });
  201. $("#dname").focus();
  202. return false;
  203. };
  204. };
  205. }else{
  206. $("#dname").tips({
  207. side:3,
  208. msg:'属性名重复',
  209. bg:'#AE81FF',
  210. time:2
  211. });
  212. $("#dname").focus();
  213. return false;
  214. }
  215. }
  216. }
  217. if(dbz==""){
  218. $("#dbz").tips({
  219. side:3,
  220. msg:'输入备注',
  221. bg:'#AE81FF',
  222. time:2
  223. });
  224. $("#dbz").focus();
  225. return false;
  226. }
  227. if((0-flength >=0) || flength==""){
  228. $("#flength").tips({
  229. side:3,
  230. msg:'输入长度',
  231. bg:'#AE81FF',
  232. time:2
  233. });
  234. $("#flength").focus();
  235. return false;
  236. }
  237. if('' == decimal) decimal = 0;
  238. dbz = dbz == '' ? '无':dbz;
  239. ddefault = ddefault == '' ? '无':ddefault;
  240. if(dictionariesid != ''){
  241. dtype = 'String';
  242. flength = '100';
  243. }else{
  244. dictionariesid = 'null'; //数据字典不引用的时候值为 null
  245. }
  246. var fields = dname + ',fh,' + dtype + ',fh,' + dbz + ',fh,' + isQian + ',fh,' + ddefault + ',fh,' + flength + ',fh,' + decimal + ',fh,' + dictionariesid;
  247. if(msgIndex == ''){
  248. arrayField(fields);
  249. }else{
  250. editArrayField(fields,msgIndex);
  251. }
  252. $("#dialog-add").css("display","none");
  253. }
  254. //选择数据字典
  255. function selectDid(){
  256. top.jzts();
  257. var diag = new top.Dialog();
  258. diag.Drag = true;
  259. diag.Title = "数据字典";
  260. diag.URL = locat+'/dictionaries/listAllDictToCreateCode.do',
  261. diag.Width = 320;
  262. diag.Height = 420;
  263. diag.CancelEvent = function(){ //关闭事件
  264. var dictionariesid = diag.innerFrame.contentWindow.document.getElementById('DICTIONARIES_ID').value;
  265. if("" != dictionariesid){
  266. $("#dictionariesid").val(dictionariesid); //引入数据字典ID
  267. }
  268. diag.close();
  269. };
  270. diag.show();
  271. }
  272. //打开编辑属性(新增)
  273. function dialog_open(){
  274. $("#dialog-add").css("display","block");
  275. $("#dname").val('');
  276. $("#dbz").val('');
  277. $("#ddefault").val('');
  278. $("#msgIndex").val('');
  279. $("#dtype").val('String');
  280. $("#isQian").val('是');
  281. $("#form-field-radio1").attr("checked",true);
  282. $("#form-field-radio1").click();
  283. $("#form-field-radio4").attr("checked",true);
  284. $("#form-field-radio4").click();
  285. $("#flength").val(255);
  286. $("#ddefault").attr("disabled",true);
  287. $("#dictionariesid").val('');
  288. }
  289. //打开编辑属性(修改)
  290. function editField(value,msgIndex){
  291. $("#dialog-add").css("display","block");
  292. var efieldarray = value.split(',fh,');
  293. $("#dname").val(efieldarray[0]); //属性名
  294. $("#hcdname").val(efieldarray[0]); //属性名 备份一份
  295. $("#dbz").val(efieldarray[2]); //备注
  296. $("#msgIndex").val(msgIndex); //数组ID
  297. if(efieldarray[1] == 'String'){ //类型
  298. $("#form-field-radio1").attr("checked",true);
  299. $("#form-field-radio1").click();
  300. $("#dtype").val('String');
  301. }else if(efieldarray[1] == 'Integer'){
  302. $("#form-field-radio2").attr("checked",true);
  303. $("#form-field-radio2").click();
  304. $("#dtype").val('Integer');
  305. }else if(efieldarray[1] == 'Double'){
  306. $("#form-field-radio33").attr("checked",true);
  307. $("#form-field-radio33").click();
  308. $("#dtype").val('Double');
  309. }else{
  310. $("#form-field-radio3").attr("checked",true);
  311. $("#form-field-radio3").click();
  312. $("#dtype").val('Date');
  313. }
  314. if(efieldarray[3] == '是'){
  315. $("#form-field-radio4").attr("checked",true);
  316. $("#form-field-radio4").click();
  317. $("#isQian").val('是');
  318. }else{
  319. $("#form-field-radio5").attr("checked",true);
  320. $("#form-field-radio5").click();
  321. $("#isQian").val('否');
  322. }
  323. $("#flength").val(efieldarray[5]); //长度
  324. $("#decimal").val(efieldarray[6]); //小数点
  325. if(efieldarray[7] == 'null'){
  326. $("#dictionariesid").val(''); //数据字典ID
  327. }else{
  328. $("#dictionariesid").val(efieldarray[7]); //数据字典ID
  329. }
  330. $("#ddefault").val(efieldarray[4]); //默认值
  331. }
  332. //关闭编辑属性
  333. function cancel_pl(){
  334. $("#dialog-add").css("display","none");
  335. }
  336. //赋值类型
  337. function setType(value){
  338. $("#dtype").val(value);
  339. $("#decimal").val('');
  340. $("#decimal").attr("disabled",true);
  341. if(value == 'Integer'){
  342. if(Number($("#flength").val())-0>11){
  343. $("#flength").val(11);
  344. }
  345. }else if(value == 'Date'){
  346. $("#flength").val(32);
  347. }else if(value == 'Double'){
  348. if(Number($("#flength").val())-0>11){
  349. $("#flength").val(11);
  350. }
  351. $("#decimal").val(2);
  352. $("#decimal").attr("disabled",false);
  353. }else{
  354. $("#flength").val(255);
  355. }
  356. }
  357. //赋值是否前台录入
  358. function isQian(value){
  359. if(value == '是'){
  360. $("#isQian").val('是');
  361. $("#ddefault").val("无");
  362. $("#ddefault").attr("disabled",true);
  363. }else{
  364. $("#isQian").val('否');
  365. $("#ddefault").val('');
  366. $("#ddefault").attr("disabled",false);
  367. }
  368. }
  369. var arField = new Array();
  370. var index = 0;
  371. //追加属性列表
  372. function appendC(value){
  373. var fieldarray = value.split(',fh,');
  374. $("#fields").append(
  375. '<tr>'+
  376. '<td class="center">'+Number(index+1)+'</td>'+
  377. '<td class="center">'+fieldarray[0]+'<input type="hidden" name="field0'+index+'" value="'+fieldarray[0]+'"></td>'+
  378. '<td class="center">'+fieldarray[1]+'<input type="hidden" name="field1'+index+'" value="'+fieldarray[1]+'"></td>'+
  379. '<td class="center">'+fieldarray[5]+'<input type="hidden" name="field5'+index+'" value="'+fieldarray[5]+'"></td>'+
  380. '<td class="center">'+fieldarray[6]+'<input type="hidden" name="field6'+index+'" value="'+fieldarray[6]+'"></td>'+
  381. '<td class="center">'+fieldarray[2]+'<input type="hidden" name="field2'+index+'" value="'+fieldarray[2]+'"></td>'+
  382. '<td class="center">'+fieldarray[3]+'<input type="hidden" name="field3'+index+'" value="'+fieldarray[3]+'"></td>'+
  383. '<td class="center">'+fieldarray[4]+'<input type="hidden" name="field4'+index+'" value="'+fieldarray[4]+'"></td>'+
  384. '<td class="center" style="width:100px;">'+
  385. '<input type="hidden" name="field'+index+'" value="'+value+'">'+
  386. '<a class="btn btn-mini btn-info" title="编辑" onclick="editField(\''+value+'\',\''+index+'\')"><i class="ace-icon fa fa-pencil-square-o bigger-120"></i></a>&nbsp;'+
  387. '<a class="btn btn-mini btn-danger" title="删除" onclick="removeField(\''+index+'\')"><i class="ace-icon fa fa-trash-o bigger-120"></i></a>'+
  388. '</td>'+
  389. '</tr>'
  390. );
  391. index++;
  392. $("#zindex").val(index);
  393. }
  394. //保存属性后往数组添加元素
  395. function arrayField(value){
  396. arField[index] = value;
  397. appendC(value);
  398. }
  399. //修改属性
  400. function editArrayField(value,msgIndex){
  401. arField[msgIndex] = value;
  402. index = 0;
  403. $("#fields").html('');
  404. for(var i=0;i<arField.length;i++){
  405. appendC(arField[i]);
  406. }
  407. }
  408. //删除数组添加元素并重组列表
  409. function removeField(value){
  410. index = 0;
  411. $("#fields").html('');
  412. arField.splice(value,1);
  413. for(var i=0;i<arField.length;i++){
  414. appendC(arField[i]);
  415. }
  416. }
  417. //判断属性名是否重复
  418. function isSame(value){
  419. for(var i=0;i<arField.length;i++){
  420. var array0 = arField[i].split(',fh,')[0];
  421. if(array0 == value){
  422. return false;
  423. }
  424. }
  425. return true;
  426. }
  427. /**
  428. * @FH QQ: 3 1 3 596790
  429. */