xyCj_excelAdd.ss.jsp 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. .left-div, .right-div {
  5. float: left;
  6. /*width: 48%;*/
  7. height: 94%;
  8. box-sizing: border-box;
  9. position: relative;
  10. }
  11. .left-div {
  12. width: 37%;
  13. }
  14. .right-div {
  15. width: 62.7%;
  16. }
  17. table.list {
  18. margin-left: 0px !important;
  19. }
  20. table.list th{
  21. /* width: 158px;*/
  22. }
  23. table.list td{
  24. /* width: 158px;*/
  25. }
  26. .list-div tr {
  27. border-bottom: 1px solid #e4e4e4;
  28. background-color: #f0f0f0;
  29. }
  30. .list-div tr:hover {
  31. border-bottom: 1px solid #e4e4e4;
  32. background-color: #c7e3fc;
  33. }
  34. .list tr:nth-child(even):hover {
  35. background-color:#c7e3fc;
  36. }
  37. .list-div td {
  38. /*max-width: 140px !important;*/
  39. padding: 0px 12px 0px 12px !important;
  40. }
  41. .list-div th {
  42. padding: 0px 12px 0px 12px !important;
  43. }
  44. .left-button {
  45. width: 100%;
  46. float: left;
  47. text-align: center;
  48. position: absolute;
  49. bottom: 0;
  50. }
  51. .left-div {
  52. margin-right: 1px;
  53. }
  54. .times {
  55. width: 80px !important;
  56. }
  57. .form-text {
  58. overflow: hidden;
  59. text-overflow: ellipsis;
  60. white-space: nowrap;
  61. }
  62. .cjfs {
  63. width: 60px !important;
  64. }
  65. .list tr td {
  66. padding-right: 28px;
  67. }
  68. input::-webkit-outer-spin-button, input::-webkit-inner-spin-button {
  69. -webkit-appearance: none;
  70. }
  71. input[type="text"] {
  72. -moz-appearance: textfield;
  73. width: 65px;
  74. text-align: right;
  75. }
  76. .content-div {
  77. padding-right:15px!important;
  78. }
  79. .xylist {
  80. display: block;
  81. height: 630px;
  82. overflow-y: auto;
  83. }
  84. .list tr{
  85. display: table;
  86. width: 100%;
  87. table-layout: fixed;
  88. }
  89. .list-highlight {
  90. color: #2b368f!important;
  91. font-size: 14px!important;
  92. }
  93. </style>
  94. <script type="text/javascript">
  95. $(document).ready(function(){
  96. var nowDate = new Date();
  97. var year = nowDate.getFullYear();
  98. var month = nowDate.getMonth() + 1 < 10 ? "0" + (nowDate.getMonth() + 1) : nowDate.getMonth() + 1;
  99. var day = nowDate.getDate() < 10 ? "0" + nowDate.getDate() : nowDate.getDate();
  100. var dateStr = year + "-" + month + "-" + day;
  101. $("[name='qdrq']").val(dateStr)
  102. });
  103. function qk_wj(id, ryid) {
  104. var cjlyObj = $("#" + id);
  105. var fsObj = $("#fs" + ryid);
  106. if (cjlyObj.hasClass("content-onButton")) {
  107. if(cjly[cjlyObj.attr("ssVal")]||0==cjly[cjlyObj.attr("ssVal")]){
  108. fsObj.val(cjly[cjlyObj.attr("ssVal")]);
  109. }else{
  110. fsObj.val("");
  111. }
  112. hscj(fsObj[0]);
  113. fsObj.removeAttr("disabled");
  114. } else {
  115. fsObj.val("");
  116. //fsObj.attr("disabled", "disabled");
  117. }
  118. }
  119. function bk(id, ryid) {
  120. var cjlyObj = $("#" + id);
  121. var fsObj = $("#fs" + ryid);
  122. fsObj.val("");
  123. //fsObj.val(cjly[cjlyObj.attr("wdvalue")]);
  124. }
  125. function callbackFunction(obj) {
  126. var id = $(obj).attr("id");
  127. var ryid = $(obj).attr("ryid");
  128. if ($(obj).attr("ssVal") == "51") {
  129. //bk(id, ryid);
  130. qk_wj(id, ryid)
  131. } else {
  132. qk_wj(id, ryid);
  133. }
  134. }
  135. function loadXsCj(e){
  136. var nowDate = new Date();
  137. var year = nowDate.getFullYear();
  138. var month = nowDate.getMonth() + 1 < 10 ? "0" + (nowDate.getMonth() + 1) : nowDate.getMonth() + 1;
  139. var day = nowDate.getDate() < 10 ? "0" + nowDate.getDate() : nowDate.getDate();
  140. var dateStr = year + "-" + month + "-" + day;
  141. var cjlbval = $('input[name="cjlb"]').val();
  142. if (!cjlbval) {
  143. return;
  144. }
  145. qzcx();
  146. var bjid = wd.edit.objectPicker.instance.bjid.getValue();
  147. var kcid = wd.edit.objectPicker.instance.kcid.getValue();
  148. var xqm = wd.edit.objectPicker.instance.xqm.getValue();
  149. var qdrq=$("[name='qdrq']").val();
  150. if(bjid&&kcid&&xqm){//&&isJlTrigger(window.event.currentTarget)&&isJlTriggerEvent
  151. $.ajax({
  152. /* 改。Lin
  153. url : '@service{name:"m_bj_djcj_jl_cx"}@', //查找数据的请求 :这里调用的ajax服务如果改变了,请注意看核算成绩逻辑,否则核算成绩出错就麻烦了。
  154. */ url : "<serv.ss name='xyCj_excelSearch'/>", //查找数据的请求 :这里调用的ajax服务如果改变了,请注意看核算成绩逻辑,否则核算成绩出错就麻烦了。
  155. type : 'post',
  156. async : false,
  157. data : {
  158. 'bjid' : bjid,
  159. 'kcid' : kcid,
  160. 'cjlbm' : cjlbval,
  161. 'xqm' : xqm,
  162. 'qdrq':qdrq
  163. },
  164. success : function(result) {
  165. var data = eval("(" + result + ")");
  166. var infoData = data.info[0];
  167. $("#td3").html(infoData.rxnd + "(" + (infoData.mm == "09" ? "秋季" : "春季") + ")");
  168. if (data.cjinfo.length != 0) {
  169. $('input[name="save"]').css("display", "");
  170. $('input[name="subm"]').css("display", "");
  171. var cjInfoData = data.cjinfo[0];
  172. if ("qdrq" in cjInfoData)
  173. $('input[name="qdrq"]').val(formatDate(cjInfoData.qdrq));
  174. else
  175. $('input[name="qdrq"]').val(dateStr);
  176. if ("gbkssj" in cjInfoData)
  177. $('input[name="gbkssj"]').val(formatDate(cjInfoData.gbkssj));
  178. else
  179. $('input[name="gbkssj"]').val("");
  180. if ("gbjssj" in cjInfoData)
  181. $('input[name="gbjssj"]').val(formatDate(cjInfoData.gbjssj));
  182. else
  183. $('input[name="gbjssj"]').val("");
  184. } else {
  185. $('input[name="qdrq"]').val(dateStr);
  186. $('input[name="gbkssj"]').val("");
  187. $('input[name="gbjssj"]').val("");
  188. }
  189. $('.xylist').empty();
  190. //学员信息
  191. var stuData = data.stulist;
  192. var stuStr = "";
  193. var jlztmBoolean=true;
  194. for (var i in stuData) {
  195. console.log(stuData[i]);
  196. var stu = stuData[i];
  197. var str = "";
  198. if(stu.jlztm && stu.jlztm == 51){//加灰色样式
  199. str += "<tr class='filter'>";
  200. }else{//不加
  201. str += "<tr>";
  202. }
  203. str += "<input type='hidden' value='" + stu.ryid + "' name='xyid' />";
  204. str += "<input type='hidden' value='";
  205. if ("cjid" in stu)
  206. str += stu.cjid;
  207. else
  208. str += "null";
  209. str += "' name='cjid' />";
  210. str += "<td style='width: 140px;'>" + (stu.xyh ? stu.xyh : "") + "</td>";
  211. str += "<td style='width:85px;' class='list-highlight'>" + stu.xm + "</td>";
  212. str += "<td style='width: 275px;'>";
  213. var tempName = stu.ryid + 'cjly';
  214. str += '<input id="' + tempName + '_onoffbutton_list" type="radio" value="" wdname="' + tempName + '" nullable="false" onclass="content-onButton" offclass="content-offButton" style="display: none;"/>';
  215. str += '<input id=qk_' + stu.ryid + ' name="' + tempName + '" type="button" value="缺考" ssVal="11" ryid="' + stu.ryid + '" style="margin-right:10px;" class="content-offButton"/>';
  216. str += '<input id=wj_' + stu.ryid + ' name="' + tempName + '" type="button" value="违纪" ssVal="31" ryid="' + stu.ryid + '" style="margin-right:10px;" class="content-offButton"/>';
  217. str += '<input id=bk_' + stu.ryid + ' name="' + tempName + '" type="button" value="补考" ssVal="51" ryid="' + stu.ryid + '" style="margin-right:10px;display:none;" class="content-offButton" />';
  218. str += '<input id=mk_' + stu.ryid + ' name="' + tempName + '" type="button" value="免考" ssVal="61" ryid="' + stu.ryid + '" class="content-offButton" />';
  219. str += '<script>(function(){wd.edit.onoffInit("radio","' + tempName + '","",true,"content-onButton","content-offButton",callbackFunction,"edit");'
  220. + 'wd.edit.onoffEdit("' + tempName + '",' + stu.cjlym + ');'
  221. + '})();';
  222. str += "<" + "/" + "script>";
  223. str += "</td>";
  224. var zpcj = stu.zpcj;
  225. zpcj = zpcj == 0 ? "" : zpcj.toFixed(1);
  226. var zpcjs = zpcj;
  227. var jyfs="";
  228. if(stu.jlztm==51){
  229. jyfs=" readonly='true' ";
  230. }
  231. if ("fs" in stu) {
  232. //判断是否有平时成绩总评
  233. /* 改,.sfpscjzp 的值 "1" 改为 true。Lin
  234. if(1==stu.cjlbm&&1==stu.sfpscjzp&&stu.pscj&&stu.fs){
  235. */ if ((stu.cjlbm == 1) && stu.sfpscjzp && stu.pscj && stu.fs) {
  236. var val = ((parseFloat(stu.pscj)+parseFloat(stu.fs))/2)*parseFloat(qz);
  237. zpcj = (parseFloat(zpcj)-(parseFloat(stu.pscj)*parseFloat(qz)))+parseFloat(val);
  238. }
  239. str += "<td style='width:120px;text-align: right;'><input "+jyfs+" type='text' value='" + stu.fs + "' id='fs" + stu.ryid + "' zpcj='" + zpcjs + "' pscj='" + stu.pscj + "' pscjcs='" + stu.pscjcs + "' pscjs='" + stu.pscjs + "' qzcj='" + stu.qzcj + "' qmcj='" + stu.qmcj + "' name='cjfs' onkeyup='clearNoNum(this)' onblur='hscj(this)' onfocus='keydown_to_tab(this)' onkeypress='if(event.keyCode==13) focusNextInput(this);'/></td>";
  240. str += "<td id='hscj'>" + zpcj + "</td>";
  241. } else { //为空时
  242. str += "<td style='width:120px;text-align: right;'><input "+jyfs+" type='text' value='' zpcj='" + zpcjs + "' pscj='" + stu.pscj + "' pscjcs='" + stu.pscjcs + "' pscjs='" + stu.pscjs + "' qzcj='" + stu.qzcj + "' qmcj='" + stu.qmcj + "' name='cjfs' id='fs" + stu.ryid + "' onkeyup='clearNoNum(this)' onblur='hscj(this)' onfocus='keydown_to_tab(this)' onkeypress='if(event.keyCode==13) focusNextInput(this);'/></td>";
  243. str += "<td id='hscj'>" + zpcj + "</td>";
  244. }
  245. str += "</tr>";
  246. $('.xylist').append($(str));
  247. if(stu.jlztm==1||!stu.jlztm)
  248. jlztmBoolean=false;
  249. }
  250. //if (stuData[0].jlztm && stuData[0].jlztm != 1) {
  251. if(jlztmBoolean){
  252. if (stuData[0].qdrq)
  253. $('input[name="qdrq"]').val(stuData[0].qdrq);
  254. if (stuData[0].gbkssj)
  255. $('input[name="gbkssj"]').val(stuData[0].gbkssj);
  256. if (stuData[0].gbjssj)
  257. $('input[name="gbjssj"]').val(stuData[0].gbjssj);
  258. $('.xylist input').attr("disabled", "disabled");
  259. $('input[name="save"]').attr('disabled', 'disabled');
  260. $('input[name="subm"]').attr('disabled', 'disabled');
  261. $('input[name="save"]').css("color", "#aaa");
  262. $('input[name="subm"]').css("color", "#aaa");
  263. } else {
  264. $('input[name="save"]').attr('disabled', false);
  265. $('input[name="subm"]').attr('disabled', false);
  266. $('input[name="save"]').css("color", "");
  267. $('input[name="subm"]').css("color", "");
  268. }
  269. }
  270. });
  271. }
  272. }
  273. function afterSelectPlan(event) {
  274. /*if(isJlTriggerEvent){
  275. wd.edit.objectPicker.instance.xqm.onchange();
  276. return;
  277. }*/
  278. //选中值
  279. var val; //安排id
  280. var cjlbval; //成绩类别类型
  281. var type;
  282. var isAllow = true; //允许发出请求
  283. if (event == 1) {
  284. type = 1;
  285. val = $('input[name="jxapid"]').val();
  286. //赋值到 aptype 以及 apid
  287. $('input[name="aptype"]').val(1);
  288. $('input[name="apid"]').val(val);
  289. } else {
  290. console.log("-==33" + val);
  291. if ($('input[name="jxapid"]').val() != '') {
  292. type = 1;
  293. val = $('input[name="jxapid"]').val();
  294. } else {
  295. isAllow = false;
  296. console.log('没选择安排');
  297. }
  298. }
  299. cjlbval = $('input[name="cjlb"]').val();
  300. if (cjlbval == null || cjlbval == "") {
  301. isAllow = false;
  302. }
  303. var qz = $("input[name='cjlb'][class='content-onButton']").attr("qz");
  304. if (undefined == qz || null == qz || "" == qz) {
  305. qz = 0;
  306. }
  307. if (isAllow && val != "") {
  308. //查找选中值的相关属性。
  309. if(cjlbval.indexOf(",")!=-1){
  310. cjlbval = null;
  311. }
  312. $.ajax({
  313. url : '@service{name:"m_xy_gl_djcj_cx"}@', //查找数据的请求
  314. type : 'post',
  315. async : false,
  316. data : {
  317. 'apid' : val,
  318. 'type' : type,
  319. 'cjlb' : cjlbval,
  320. 'searchType' : "${searchType}",
  321. 'xyid' : "${xyid}"
  322. },
  323. success : function(result) {
  324. var data = eval("(" + result + ")");
  325. //填入值
  326. //分别填入安排信息和学员信息
  327. //安排信息
  328. var infoData = data.info[0];
  329. $("#td3").html(infoData.rxnd + "(" + (infoData.mm == "09" ? "秋季" : "春季") + ")");
  330. wd.edit.objectPicker.instance.bjid.initValue(infoData.bjid);
  331. wd.edit.objectPicker.instance.kcid.initValue(infoData.kcid);
  332. wd.edit.objectPicker.instance.xqm.initValue(infoData.xqm);
  333. //$("#td1").html(infoData.bjmc);
  334. //$("#td2").html(infoData.kcmc);
  335. //$("#td4").html(infoData.xqmc);
  336. //成绩信息
  337. /*if (data.cjinfo.length != 0) {
  338. $('input[name="save"]').css("display", "");
  339. $('input[name="subm"]').css("display", "");
  340. var cjInfoData = data.cjinfo[0];
  341. if ("qdrq" in cjInfoData)
  342. $('input[name="qdrq"]').val(formatDate(cjInfoData.qdrq));
  343. else
  344. $('input[name="qdrq"]').val("");
  345. if ("gbkssj" in cjInfoData)
  346. $('input[name="gbkssj"]').val(formatDate(cjInfoData.gbkssj));
  347. else
  348. $('input[name="gbkssj"]').val("");
  349. if ("gbjssj" in cjInfoData)
  350. $('input[name="gbjssj"]').val(formatDate(cjInfoData.gbjssj));
  351. else
  352. $('input[name="gbjssj"]').val("");
  353. } else {
  354. $('input[name="qdrq"]').val("");
  355. $('input[name="gbkssj"]').val("");
  356. $('input[name="gbjssj"]').val("");
  357. }
  358. $('.xylist').empty();
  359. //学员信息
  360. var stuData = data.stulist;
  361. var stuStr = "";
  362. for (var i in stuData) {
  363. console.log(stuData[i]);
  364. var stu = stuData[i];
  365. var str = "";
  366. str += "<tr>";
  367. str += "<input type='hidden' value='" + stu.ryid + "' name='xyid' />";
  368. str += "<input type='hidden' value='";
  369. if ("cjid" in stu)
  370. str += stu.cjid;
  371. else
  372. str += "null";
  373. str += "' name='cjid' />";
  374. str += "<td style='width: 205px;'>" + (stu.xyh ? stu.xyh : "") + "</td>";
  375. str += "<td>" + stu.xm + "</td>";
  376. str += "<td style='width: 275px;'>";
  377. var tempName = stu.ryid + 'cjly';
  378. str += '<input id="' + tempName + '_onoffbutton_list" type="radio" value="" wdname="' + tempName + '" nullable="false" onclass="content-onButton" offclass="content-offButton" style="display: none;"/>';
  379. str += '<input id=qk_' + stu.ryid + ' name="' + tempName + '" type="button" value="缺考" wdvalue="11" ryid="' + stu.ryid + '" style="margin-right:10px;" class="content-offButton"/>';
  380. str += '<input id=wj_' + stu.ryid + ' name="' + tempName + '" type="button" value="违纪" wdvalue="31" ryid="' + stu.ryid + '" style="margin-right:10px;" class="content-offButton"/>';
  381. str += '<input id=bk_' + stu.ryid + ' name="' + tempName + '" type="button" value="补考" wdvalue="51" ryid="' + stu.ryid + '" style="margin-right:10px; class="content-offButton" />';
  382. str += '<input id=mk_' + stu.ryid + ' name="' + tempName + '" type="button" value="免考" wdvalue="61" ryid="' + stu.ryid + '" class="content-offButton" />';
  383. str += '<script>(function(){wd.edit.onoffInit("radio","' + tempName + '","",true,"content-onButton","content-offButton",callbackFunction,"edit");'
  384. + 'wd.edit.onoffEdit("' + tempName + '",' + stu.cjlym + ');'
  385. + '})();';
  386. str += "<" + "/" + "script>";
  387. str += "</td>";
  388. var zpcj = stu.zpcj;
  389. zpcj = zpcj == 0 ? "" : zpcj.toFixed(1);
  390. var zpcjs = zpcj;
  391. if ("fs" in stu) {
  392. //判断是否有平时成绩总评
  393. if(1==stu.cjlbm&&1==stu.sfpscjzp&&stu.pscj&&stu.fs){
  394. var val = ((parseFloat(stu.pscj)+parseFloat(stu.fs))/2)*parseFloat(qz);
  395. zpcj = (parseFloat(zpcj)-(parseFloat(stu.pscj)*parseFloat(qz)))+parseFloat(val);
  396. }
  397. str += "<td><input type='text' value='" + stu.fs + "' id='fs" + stu.ryid + "' zpcj='" + zpcjs + "' pscj='" + stu.pscj + "' pscjcs='" + stu.pscjcs + "' pscjs='" + stu.pscjs + "' qzcj='" + stu.qzcj + "' qmcj='" + stu.qmcj + "' name='cjfs' onkeyup='clearNoNum(this)' onblur='hscj(this)' onfocus='keydown_to_tab(this)' onkeypress='if(event.keyCode==13) focusNextInput(this);'/></td>";
  398. str += "<td id='hscj'>" + zpcj + "</td>";
  399. } else { //为空时
  400. str += "<td><input type='text' value='' zpcj='" + zpcjs + "' pscj='" + stu.pscj + "' pscjcs='" + stu.pscjcs + "' pscjs='" + stu.pscjs + "' qzcj='" + stu.qzcj + "' qmcj='" + stu.qmcj + "' name='cjfs' id='fs" + stu.ryid + "' onkeyup='clearNoNum(this)' onblur='hscj(this)' onfocus='keydown_to_tab(this)' onkeypress='if(event.keyCode==13) focusNextInput(this);'/></td>";
  401. str += "<td id='hscj'>" + zpcj + "</td>";
  402. }
  403. str += "</tr>";
  404. $('.xylist').append($(str));
  405. }
  406. if(stuData.length>0){
  407. if (stuData[0].jlztm && stuData[0].jlztm != 1) {
  408. if (stuData[0].qdrq)
  409. $('input[name="qdrq"]').val(stuData[0].qdrq);
  410. if (stuData[0].gbkssj)
  411. $('input[name="gbkssj"]').val(stuData[0].gbkssj);
  412. if (stuData[0].gbjssj)
  413. $('input[name="gbjssj"]').val(stuData[0].gbjssj);
  414. $('.xylist input').attr("disabled", "disabled");
  415. $('input[name="save"]').attr('disabled', 'disabled');
  416. $('input[name="subm"]').attr('disabled', 'disabled');
  417. $('input[name="save"]').css("color", "#aaa");
  418. $('input[name="subm"]').css("color", "#aaa");
  419. } else {
  420. $('input[name="save"]').attr('disabled', false);
  421. $('input[name="subm"]').attr('disabled', false);
  422. $('input[name="save"]').css("color", "");
  423. $('input[name="subm"]').css("color", "");
  424. }
  425. }else{
  426. $('input[name="save"]').attr('disabled', false);
  427. $('input[name="subm"]').attr('disabled', false);
  428. $('input[name="save"]').css("color", "");
  429. $('input[name="subm"]').css("color", "");
  430. } */
  431. }
  432. });
  433. } else {
  434. var nowDate = new Date();
  435. var year = nowDate.getFullYear();
  436. var month = nowDate.getMonth() + 1 < 10 ? "0" + (nowDate.getMonth() + 1) : nowDate.getMonth() + 1;
  437. var day = nowDate.getDate() < 10 ? "0" + nowDate.getDate() : nowDate.getDate();
  438. var dateStr = year + "-" + month + "-" + day;
  439. $('input[name="qdrq"]').val(dateStr);
  440. $('input[name="gbkssj"]').val("");
  441. $('input[name="gbjssj"]').val("");
  442. $('.xylist').empty();
  443. }
  444. }
  445. </script>
  446. </head>
  447. <body>
  448. <!-- 查询 -->
  449. <form action="" name="cjform" method="post">
  450. <input type="hidden" name="xxx" value="${dataType}" /> <input
  451. type="hidden" name="aptype" /> <input type="hidden" name="apid" />
  452. <input type="hidden" name="zzz" value="${bjid}" />
  453. <div class="left-div" ssFith="true">
  454. <div class="content-div" >
  455. <table class="form" style="width: 100%!important;">
  456. <tr>
  457. <th>教学安排</th>
  458. <td>
  459. <%-- 先去掉,简单点,用到再弄???Lin
  460. searchType 不知在哪赋值
  461. <input name="jxapid" type="hidden" value="" />
  462. <input name="jxapidName" style="width:260px;overflow: hidden" type="text" />
  463. <equal.ss val='${searchType == "single"}' val2="true">
  464. <objp.ss name="jxapid" cb="xy_djcj_jxap" filter='{xyid:"${xyid}"}' inp="true" />
  465. </equal.ss>
  466. <equal.ss val='${searchType == "double"}' val2="true">
  467. <objp.ss name="jxapid" cb="all_djcj_jxap" inp="true" />
  468. </equal.ss>
  469. --%>
  470. </td>
  471. </tr>
  472. <tr>
  473. <th>班级</th>
  474. <td id="td1">
  475. <input name="bjid" type="hidden" placeholder="班级" width="260px" />
  476. <%-- 先改,简单点,只是为了出现 Excel 录入界面,不实现级联 bj_kc_xq。用到再看???Lin
  477. <txt.ss val="${bj.mc}" /> --%>
  478. <objp.ss name="bjid" cb="bj"/> <%-- 先不实现级联 bj_kc_xq。Lin --%>
  479. </td>
  480. </tr>
  481. <tr>
  482. <th>课程</th>
  483. <td id="td2">
  484. <input name="kcid" type="hidden" placeholder="课程" width="160px" />
  485. <objp.ss name="kcid" cb="kc"/> <%-- 增加,先不实现级联 bj_kc_xq。Lin --%>
  486. </td>
  487. </tr>
  488. <tr>
  489. <th style="width:120px;">入学年度</th>
  490. <td id="td3">
  491. </td>
  492. </tr>
  493. <tr>
  494. <th>学期</th>
  495. <td id="td4">
  496. <input name="xqm" type="hidden" placeholder="学期" width="110px" />
  497. <%-- 先改,简单点,只是为了出现 Excel 录入界面,不实现级联 bj_kc_xq。用到再看???Lin
  498. <ccp.ss name="bj_kc_xq" /> --%>
  499. <objp.ss name="xqm" cb="xq"/> <%-- 先不实现级联 bj_kc_xq。Lin --%>
  500. </td>
  501. </tr>
  502. <tr>
  503. <th>成绩类别</th>
  504. <td>
  505. <input name="cjlb" type="button" value="平时" ssVal="1" id="pscj" qz="" zpqz=""/>
  506. <input name="cjlb" type="button" value="期中" ssVal="51" id="jzcj" qz="" />
  507. <input name="cjlb" type="button" value="期末" ssVal="61" id="jmcj" qz="" />
  508. <input name="cjlb" type="button" value="总评" ssVal="81" style="display: none" />
  509. <onoff.ss rad="true" name="cjlb" val="1,51,61,81" mode="edit" run="loadXsCj" /> <%-- 去掉 nullable="true",不能为空。Lin --%>
  510. </td>
  511. </tr>
  512. <tr>
  513. <th>取得日期</th>
  514. <td><input type='text' value="${m_bjcy.qdrq}" name='qdrq'
  515. onClick="wd.edit.datePicker({dateFmt:'yyyy-MM-dd'})"
  516. readonly="readonly" onfocus="this.removeAttribute('readonly');"
  517. onblur="this.setAttribute('readonly',true);" autocomplete="off"
  518. style="width:82px;text-align: left;" />
  519. </td>
  520. </tr>
  521. <tr>
  522. <th>公布时间</th>
  523. <td>
  524. <input type='text' class="times" name='gbkssj'
  525. readonly="readonly" onfocus="this.removeAttribute('readonly');"
  526. onblur="this.setAttribute('readonly',true);" autocomplete="off"
  527. value="${m_bjcy.gbkssj}"
  528. onClick="wd.edit.datePicker({dateFmt:'yyyy-MM-dd'})" style="text-align: left;" />
  529. <input
  530. type='text' class="times" name='gbjssj' readonly="readonly"
  531. onfocus="this.removeAttribute('readonly');"
  532. onblur="this.setAttribute('readonly',true);" autocomplete="off"
  533. value="${m_bjcy.gbjssj}"
  534. onClick="wd.edit.datePicker({dateFmt:'yyyy-MM-dd'})" />
  535. </td>
  536. </tr>
  537. </table>
  538. </div>
  539. </div>
  540. <div class="list-div list-search-div right-div content-div "
  541. style="height: 90% overflow-x:hidden; min-height:80%;">
  542. <table class="list aa" style=" float:right;width:100%!important;">
  543. <thead style="width: 100%">
  544. <tr style="border:none;">
  545. <th style="padding: 0 0 0 12px;width: 140px;">学员号</th>
  546. <th style="width:85px;">姓名</th>
  547. <th style="width: 275px;">来源</th>
  548. <th style="width:120px;">分数</th>
  549. <th style="">核算成绩</th>
  550. </tr>
  551. </thead>
  552. <tbody ssOddClazz="list-odd" ssEvenClazz="list-even" ssHovClazz="list-hover" class="xylist scrollbar" ssFith="{list:true,rowHeight:35}" >
  553. <rpt.ss name="ssList" id="item">
  554. <tr class="list-dim" >
  555. <td style='width: 205px;'></td>
  556. <td></td>
  557. <td style='width: 275px;'>
  558. <onoff.ss name="qxfs" val="1,2" mode="play" />
  559. </td>
  560. <td></td>
  561. <td></td>
  562. </tr>
  563. </rpt.ss>
  564. </tbody>
  565. </table>
  566. </div>
  567. <div class="bottom-div">
  568. <equal.ss val='${dataType=="play"}' val2="false">
  569. <div class="bottom-down-div">
  570. <input type="button" name="save" value="保存" class="bottom-button"
  571. onclick="submitForm(1);" style="display: inline-block !important;">
  572. <input type="button" name="subm" value="提交" class="bottom-button"
  573. onclick="tjConfirm();" style="display: inline-block !important;">
  574. <input type="button" value="取消" class="bottom-button"
  575. onclick="wd.display.closeDialog();">
  576. </div>
  577. </equal.ss>
  578. </div>
  579. </form>
  580. <script type="text/javascript">
  581. //选择教学安排 或 考试安排后的操作
  582. <%-- 先去掉,简单点,用到再弄???Lin
  583. searchType 不知在哪赋值
  584. wd.edit.objectPicker.getInstance("jxapid").onchange = function() {
  585. //do something
  586. //qzcx();
  587. afterSelectPlan(1);
  588. }
  589. --%>
  590. wd.edit.objectPicker.instance.bjid.onchange = wd.edit.objectPicker.instance.kcid.onchange = function() {
  591. var bjid = wd.edit.objectPicker.instance.bjid.getValue();
  592. var kcid = wd.edit.objectPicker.instance.kcid.getValue();
  593. if(!bjid||!kcid){
  594. $('.xylist').empty();
  595. }
  596. }
  597. wd.edit.objectPicker.instance.xqm.onchange = loadXsCj;
  598. /*var isJlTriggerEvent = false;//标记上一次操作的动作true:级联;false:jxap
  599. function isJlTrigger(dom){
  600. if(dom.id&&dom.id.indexOf("jxapid")!=-1){//教学安排下拉触发
  601. isJlTriggerEvent = false;
  602. return false;
  603. }else if (dom.id&&(dom.id.indexOf("bjid")!=-1||dom.id.indexOf("kcid")!=-1||dom.id.indexOf("xqm")!=-1)){//级联下拉触发
  604. isJlTriggerEvent = true;
  605. return true;
  606. }
  607. return isJlTriggerEvent;
  608. }*/
  609. var cjly = {
  610. 1:null,
  611. 11:null,
  612. 31:null,
  613. 51:null,
  614. 61:null
  615. }
  616. //事件触发
  617. //$('select[name="jxapid"]').change({'type': 1}, afterSelectPlan);
  618. //$('select[name="cjlb"]').change({'type': 3}, afterSelectPlan);
  619. function tjConfirm(){
  620. wd.display.confirm(" ","请确认成绩已全部录完,提交后不能在此页面修改!",function(){submitForm(2)},function(){return;});
  621. }
  622. function submitForm(type) {
  623. var qdsj = $("input[name='qdrq']").val();
  624. if (!qdsj || qdsj == undefined || qdsj == null) {
  625. wd.display.alert("请输入取得时间");
  626. return;
  627. }
  628. var gbkssj = $("input[name='gbkssj']").val();
  629. if (!(!gbkssj || gbkssj == undefined || gbkssj == null)&&new Date(gbkssj).getTime()<new Date(qdsj).getTime()) {
  630. wd.display.alert("公布开始时间需大于取得时间");
  631. return;
  632. }
  633. var gbjssj = $("input[name='gbjssj']").val();
  634. if (!(!gbjssj || gbjssj == undefined || gbjssj == null)&&new Date(gbjssj).getTime()<new Date(gbkssj).getTime()) {
  635. wd.display.alert("公布开始时间需大小于等于公布结束时间");
  636. return;
  637. }
  638. var cjlbval = $('input[name="cjlb"]').val();
  639. if (!cjlbval) {
  640. wd.display.alert("请选择成绩类别");
  641. return;
  642. }
  643. //若是 保存更新,就不提交表单
  644. var f = $('form[name="cjform"]');
  645. if (type == 1) {
  646. $.ajax({
  647. url : '@service{name:"m_xy_gl_djcj_bc"}@',
  648. type : "post",
  649. data : f.serialize(),
  650. beforeSend : function(result) {
  651. //将 保存 提交按钮改为 不可用
  652. $('input[name="save"]').attr('disabled', 'disabled');
  653. $('input[name="subm"]').attr('disabled', 'disabled');
  654. $('input[name="save"]').css("color", "#aaa");
  655. $('input[name="subm"]').css("color", "#aaa");
  656. },
  657. success : function(result) {
  658. var data = eval("(" + result + ")");
  659. if (data.result)
  660. //eval('@service{dest:"sys_info",show:"wdDialog",param:{"msg":"保存成功"}}@');
  661. wd.display.alert("保存成功");
  662. else
  663. //eval('@service{dest:"sys_info",show:"wdDialog",param:{"msg":"保存失败"}}@');
  664. wd.display.alert("保存失败");
  665. },
  666. error : function(result) {
  667. //eval('@service{dest:"sys_info",show:"wdDialog",param:{"msg":"保存失败"}}@');
  668. wd.display.alert("保存失败");
  669. },
  670. complete : function(result) {
  671. afterSelectPlan(1);
  672. /*$('input[name="save"]').attr('disabled', false);
  673. $('input[name="subm"]').attr('disabled', false);
  674. $('input[name="save"]').css("color", "#015a31");
  675. $('input[name="subm"]').css("color", "#015a31");*/
  676. }
  677. });
  678. }
  679. if (type == 2) {
  680. f.attr('action', '@service{name:"m_xy_gl_djcj_tj",dest:"sys_info"}@');
  681. f.submit();
  682. }
  683. }
  684. function formatDate(date) {
  685. var date = new Date(date),
  686. year = '' + date.getFullYear(),
  687. month = '' + (date.getMonth() + 1),
  688. day = '' + date.getDate();
  689. if (month.length < 2)
  690. month = '0' + month;
  691. if (day.length < 2)
  692. day = '0' + day;
  693. var str = [ year, month, day ].join('-');
  694. return str;
  695. }
  696. // 回车下一个获取焦点
  697. function focusNextInput(thisInput) {
  698. var inputs = $("input[name='cjfs']");
  699. for (var i = 0; i < inputs.length; i++) {
  700. // 如果是最后一个,则焦点回到第一个
  701. if (i == (inputs.length - 1)) {
  702. inputs[0].focus(); break;
  703. } else if (thisInput == inputs[i]) {
  704. inputs[i + 1].focus(); break;
  705. }
  706. }
  707. }
  708. // 上一个获取焦点
  709. function focusUpInput(thisInput) {
  710. // console.log(11111);
  711. var inputs = $("input[name='cjfs']");
  712. for (var i = 0; i < inputs.length; i++) {
  713. // 如果是第一个,则焦点回到最后一个
  714. if (thisInput == inputs[i]) {
  715. inputs[i - 1].focus(); break;
  716. } else if (thisInput == inputs[0]) {
  717. inputs[inputs.length - 1].focus(); break;
  718. }
  719. }
  720. }
  721. function keydown_to_tab($input) { //聚焦
  722. // console.log($input)
  723. $($input).bind("keydown", function(e) {
  724. var n = $('.cjfs').length;
  725. // console.log(n,e.keyCode)
  726. if (e.keyCode == 40) { //键盘按下
  727. focusNextInput($input)
  728. } else if (e.keyCode == 38) { //键盘按上
  729. focusUpInput($input)
  730. }
  731. });
  732. }
  733. //input只能输入数字和小数点
  734. function clearNoNum(obj) {
  735. obj.value = obj.value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符
  736. obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
  737. obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
  738. obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d).*$/, '$1$2.$3'); //只能输入一位小数
  739. if (obj.value.indexOf(".") < 0 && obj.value != "") { //以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
  740. obj.value = parseFloat(obj.value);
  741. }
  742. }
  743. function qz(obj) {
  744. hscjbs = $(obj).attr("qz");
  745. }
  746. function isEmpty(obj) {
  747. if (typeof obj == "undefined" || obj == null || obj == "") {
  748. return true;
  749. } else {
  750. return false;
  751. }
  752. }
  753. function hscj(obj) {
  754. var qz = $("input[name='cjlb'][class='content-onButton']").attr("qz");
  755. var cjlb = $("input[name='cjlb'][class='content-onButton']").attr("ssVal");
  756. var zpcj = $(obj).attr("zpcj");
  757. var val = 0;
  758. var obj_value = obj.value;
  759. if (isEmpty(obj.value)) {
  760. return;
  761. }
  762. if (isEmpty(qz)) {
  763. return;
  764. }
  765. if (isEmpty(zpcj)) {
  766. zpcj = 0;
  767. }
  768. if (1 == cjlb) {
  769. qz = $("input[name='cjlb'][class='content-onButton']").attr("zpqz");
  770. if (isEmpty(qz)) {
  771. return;
  772. }
  773. var pscj = $(obj).attr("pscj");
  774. var pscjs = $(obj).attr("pscjs");
  775. var pscjcs = $(obj).attr("pscjcs");
  776. if (isEmpty(pscj)) {
  777. pscj = 0;
  778. }
  779. if (isEmpty(pscjs)) {
  780. pscjs = 0;
  781. }
  782. if (isEmpty(pscjcs)) {
  783. pscjcs = 0;
  784. }
  785. zpcj = parseFloat(zpcj) - (parseFloat(pscj) * parseFloat(qz));
  786. val = ((((parseFloat(obj_value)) + (parseFloat(pscjs) * parseFloat(pscjcs))) / (parseFloat(pscjcs) + 1)) * parseFloat(qz)) + parseFloat(zpcj);
  787. } else if (51 == cjlb) {
  788. var qzcj = $(obj).attr("qzcj");
  789. if (isEmpty(qzcj)) {
  790. qzcj = 0;
  791. }
  792. zpcj = parseFloat(zpcj) - (parseFloat(qzcj) * parseFloat(qz)); //先减去再加上
  793. val = (parseFloat(obj_value) * parseFloat(qz)) + parseFloat(zpcj);
  794. } else if (61 == cjlb) {
  795. var qmcj = $(obj).attr("qmcj");
  796. if (isEmpty(qmcj)) {
  797. qmcj = 0;
  798. }
  799. zpcj = parseFloat(zpcj) - (parseFloat(qmcj) * parseFloat(qz)); //先减去再加上
  800. val = (parseFloat(obj_value) * parseFloat(qz)) + parseFloat(zpcj);
  801. }
  802. $(obj).parent().siblings("#hscj").text(val == 0 ? "" : val.toFixed(1));
  803. }
  804. function qzcx() {
  805. //选中值
  806. var jxapid; //安排id
  807. var pscj = $("#pscj");
  808. var jzcj = $("#jzcj");
  809. var jmcj = $("#jmcj");
  810. pscj.val("平时");
  811. jzcj.val("期中");
  812. jmcj.val("期末");
  813. pscj.attr("zpqz","");
  814. pscj.attr("qz", "");
  815. jzcj.attr("qz", "");
  816. jmcj.attr("qz", "");
  817. var isAllow = true; //允许发出请求
  818. jxapid = $('input[name="jxapid"]').val();
  819. var bjid = wd.edit.objectPicker.instance.bjid.getValue();
  820. var kcid = wd.edit.objectPicker.instance.kcid.getValue();
  821. if ((bjid&&kcid) || jxapid) {
  822. //查找选中值的相关属性。
  823. $.ajax({
  824. url : '@service{name:"m_xy_gl_djcj_qzcx"}@', //查找数据的请求
  825. type : 'post',
  826. async : false,
  827. data : {
  828. 'jxapid' : jxapid,
  829. 'bjid':bjid,
  830. 'kcid':kcid
  831. },
  832. success : function(result) {
  833. var data = JSON.parse(result);
  834. for (var item in data.cjqz) {
  835. if (pscj.attr("ssVal") == data.cjqz[item].cjlbm) {
  836. pscj.val(pscj.val() + "(" + data.cjqz[item].qz + ")");
  837. pscj.attr("qz", data.cjqz[item].qz);
  838. }
  839. if (jzcj.attr("ssVal") == data.cjqz[item].cjlbm) {
  840. jzcj.val(jzcj.val() + "(" + data.cjqz[item].qz + ")");
  841. jzcj.attr("qz", data.cjqz[item].qz);
  842. }
  843. if (jmcj.attr("ssVal") == data.cjqz[item].cjlbm) {
  844. jmcj.val(jmcj.val() + "(" + data.cjqz[item].qz + ")");
  845. jmcj.attr("qz", data.cjqz[item].qz);
  846. }
  847. //总评权重
  848. if ("41" == data.cjqz[item].cjlbm){
  849. pscj.attr("zpqz", data.cjqz[item].qz);
  850. }
  851. }
  852. for (var item of data.cjly) {
  853. if(item.fs||0==item.fs){
  854. cjly[item.cjlym] = item.fs;
  855. }
  856. }
  857. }
  858. });
  859. }
  860. }
  861. </script>
  862. </body>
  863. </html>