No Description

details.js 28KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624
  1. /**
  2. * Created by TT on 2017/7/7.
  3. */
  4. ;
  5. spa_define(function () {
  6. return $.use(["spa", "util", "form", "code"], function (spa, util, fb, code) {
  7. return {
  8. modal: function (data) {
  9. var root = spa.findInModal(".sys_professornew_details");
  10. var ca = {ready: true, items: []};
  11. var dp = code.parseCode(root.find(".dt-project"));
  12. var dh = code.parseCode(root.find(".dt-honor"));
  13. var dj = code.parseCode(root.find(".dt-job"));
  14. var de = code.parseCode(root.find(".dt-edu"));
  15. var form = fb.build(root.find(".newForm"), {
  16. industryList: ca,
  17. subjectList: ca,
  18. researchAreaList: ca
  19. });
  20. var oValue;
  21. var oJudge;
  22. var trim = function (str) { //删除左右两端的空格   
  23. return str.replace(/(^\s*)|(\s*$)/g, "");
  24. };
  25. var saveBtn = root.find(".opt-save"),
  26. save = function () {
  27. var researchAreas = [];
  28. var researchList = form.val().researchAreaList || [];
  29. for (var i = 0; i < researchList.length; ++i) {
  30. var item = {caption: researchList[i], professorId: data.data.id};
  31. researchAreas.push(item);
  32. }
  33. form.val({researchAreas: researchAreas});
  34. if(form.val().industryList) {
  35. form.val({
  36. industry: oString(form.val().industryList)
  37. });
  38. }else {
  39. form.val({industry: null});
  40. }
  41. if(form.val().subjectList) {
  42. form.val({
  43. subject: oString(form.val().subjectList)
  44. });
  45. }else {
  46. form.val({subject: null});
  47. }
  48. form.val({
  49. subjectList: "", industryList: "", researchAreaList: ""
  50. });
  51. if (form.val().title) {
  52. var title = trim(form.val().title);
  53. if (title.length > 20) {
  54. util.alert("职称不得超过20个字");
  55. return;
  56. }
  57. }
  58. if (form.val().office) {
  59. var office = trim(form.val().office);
  60. if (office.length > 20) {
  61. util.alert("职位不得超过20个字");
  62. return;
  63. }
  64. }
  65. if (form.val().orgName) {
  66. var orgName = trim(form.val().orgName);
  67. if (orgName.length > 50) {
  68. util.alert("所在机构不得超过50个字");
  69. return;
  70. }
  71. }
  72. if (form.val().department) {
  73. var department = trim(form.val().department);
  74. if (department.length > 20) {
  75. util.alert("所在部门不得超过20个字");
  76. return;
  77. }
  78. }
  79. if (form.val().descp) {
  80. var descp = trim(form.val().descp);
  81. if (descp.length > 500) {
  82. util.alert("个人简介不得超过500个字");
  83. }
  84. }
  85. if (form.val().phone) {
  86. var phone = trim(form.val().phone);
  87. if (trim(phone)) {
  88. if (phone.length > 50) {
  89. util.alert('提示', '联系电话不得超过50个字');
  90. return;
  91. }
  92. }
  93. }
  94. if (form.val().email) {
  95. var email = trim(form.val().email);
  96. var gunf = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
  97. if (!gunf.test(email)) {
  98. util.alert("联系邮箱格式有误,请检查后重新填写");
  99. return;
  100. }
  101. }
  102. if (form.val().name) {
  103. var name = trim(form.val().name);
  104. if (name.length > 10) {
  105. util.alert("姓名最长为10个字");
  106. return;
  107. }
  108. }
  109. if (form.val().name == null) {
  110. util.alert("请输入专家姓名");
  111. } else if (form.val().loginPhone || form.val().loginEmail) {
  112. form.doPut("../ajax/sys/professor", function () {
  113. spa.closeModal();
  114. if (data.hand) {
  115. data.hand();
  116. }
  117. }, {"50000":"只能修改未激活用户信息"});
  118. } else {
  119. util.alert("手机或邮箱至少输入一项");
  120. }
  121. };
  122. var part = function (one, list) {
  123. oValue = one;
  124. oJudge = list || [];
  125. var repeat,
  126. b;
  127. if (!oValue) {
  128. util.alert('提示', '请先填写内容');
  129. return;
  130. }
  131. if (oValue.length > 15) {
  132. util.alert('提示', '添加内容不能超过15个字');
  133. } else {
  134. var oValueList = oValue.split(","),
  135. length = oValueList.length;
  136. for (var m = 0;m<oValueList.length;m++) {
  137. oValueList[m] = trim(oValueList[m]);
  138. }
  139. for (var j = 0; j < length; j++) {
  140. for (var n = j + 1; n < oValueList.length + 1;) {
  141. if (oValueList[j] == oValueList[n]) {
  142. oValueList.remove(n);
  143. repeat = false;
  144. } else {
  145. n++;
  146. }
  147. }
  148. }
  149. for (var j = 0; j < oValueList.length;) {
  150. for (var i = 0; i < oJudge.length; i++) {
  151. if (oValueList[j] == oJudge[i]) {
  152. oValueList.remove(j);
  153. repeat = false;
  154. b = true;
  155. }
  156. }
  157. if (b) {
  158. b = false
  159. } else j++;
  160. }
  161. if (repeat == false) {
  162. util.alert('提示', '添加内容不能重复');
  163. }
  164. for (var m = 0; m < oValueList.length; m++) {
  165. ca.items.push({code: oValueList[m], caption: oValueList[m]});
  166. oJudge.push(oValueList[m]);
  167. }
  168. }
  169. };
  170. var part2 = function (one, list) {
  171. oValue = one;
  172. oJudge = list || [];
  173. var repeat,
  174. b;
  175. if (!oValue) {
  176. util.alert('提示', '请先填写内容');
  177. return;
  178. }
  179. if (oValue.length > 20) {
  180. util.alert('提示', '添加内容不能超过20个字');
  181. } else {
  182. var oValueList = oValue.split(","),
  183. length = oValueList.length;
  184. for (var m = 0;m<oValueList.length;m++) {
  185. oValueList[m] = trim(oValueList[m]);
  186. }
  187. for (var j = 0; j < length; j++) {
  188. for (var n = j + 1; n < oValueList.length + 1;) {
  189. if (oValueList[j] == oValueList[n]) {
  190. oValueList.remove(n);
  191. repeat = false;
  192. } else {
  193. n++;
  194. }
  195. }
  196. }
  197. for (var j = 0; j < oValueList.length;) {
  198. for (var i = 0; i < oJudge.length; i++) {
  199. if (oValueList[j] == oJudge[i]) {
  200. oValueList.remove(j);
  201. repeat = false;
  202. b = true;
  203. }
  204. }
  205. if (b) {
  206. b = false
  207. } else j++;
  208. }
  209. if (repeat == false) {
  210. util.alert('提示', '添加内容不能重复');
  211. }
  212. for (var m = 0; m < oValueList.length; m++) {
  213. ca.items.push({code: oValueList[m], caption: oValueList[m]});
  214. oJudge.push(oValueList[m]);
  215. }
  216. }
  217. };
  218. var split = function (data) {
  219. var index = data.split(",");
  220. var arr = [];
  221. for (var m = 0; m < index.length; m++) {
  222. ca.items.push({code: index[m], caption: index[m]});
  223. arr.push(index[m]);
  224. }
  225. return arr;
  226. };
  227. var split2 = function (data) {
  228. var arr = [];
  229. for (var m = 0; m < data.length; m++) {
  230. ca.items.push({code: data[m].caption, caption: data[m].caption});
  231. arr.push(data[m].caption);
  232. }
  233. return arr;
  234. };
  235. if (data.data.industry) {
  236. form.val({industryList: split(data.data.industry)});
  237. }
  238. if (data.data.subject) {
  239. form.val({subjectList: split(data.data.subject)});
  240. }
  241. if (data.data.researchAreas) {
  242. form.val({researchAreaList: split2(data.data.researchAreas)});
  243. }
  244. Array.prototype.remove = function (obj) {
  245. for (var i = 0; i < this.length; i++) {
  246. var temp = this[i];
  247. if (!isNaN(obj)) {
  248. temp = i;
  249. }
  250. if (temp == obj) {
  251. for (var j = i; j < this.length; j++) {
  252. this[j] = this[j + 1];
  253. }
  254. this.length = this.length - 1;
  255. }
  256. }
  257. };
  258. function oString(data) {
  259. var arry = [];
  260. if (data) {
  261. for (var i = 0; i < data.length; i++) {
  262. arry.push(data[i]);
  263. }
  264. }
  265. return arry.join(",");
  266. }
  267. root.find(".name").on("focusout", function () {
  268. if (form.val().name != data.data.name) {
  269. if (form.val().name) {
  270. var name = trim(form.val().name);
  271. if (name.length > 10) {
  272. util.alert("姓名最长为10个字,请重新修改");
  273. form.val({name: data.data.name});
  274. return;
  275. }
  276. }
  277. if (form.val().name == null) {
  278. util.alert("专家姓名不可为空,请重新修改");
  279. form.val({name: data.data.name});
  280. return;
  281. }
  282. util.boxMsg({
  283. title: "确认修改",
  284. content: "您修改了姓名,该专家的专利和论文将取消关联,确定修改?",
  285. btns: [{
  286. caption: "确认",
  287. hand: function () {
  288. util.post("../ajax/sys/professor/updateName", {
  289. name: form.val().name,
  290. id: data.data.id
  291. }, function () {
  292. data.data.name = form.val().name;
  293. }, {});
  294. }
  295. },
  296. {
  297. caption: "取消",hand:function () {
  298. form.val({name: data.data.name});
  299. }}
  300. ]
  301. });
  302. }
  303. });
  304. root.find(".org").on("focusout", function () {
  305. if (form.val().orgName != data.data.orgName) {
  306. if (form.val().orgName) {
  307. var orgName = trim(form.val().orgName);
  308. if (orgName.length > 50) {
  309. util.alert("机构名最长为50个字,请重新修改");
  310. form.val({orgName: data.data.orgName});
  311. return;
  312. }
  313. }
  314. util.boxMsg({
  315. title: "确认修改",
  316. content: "修改了所在机构,该专家认证员工身份将失效,为企业发布的需求也将关闭,确定修改?",
  317. btns: [{
  318. caption: "确认",
  319. hand: function () {
  320. util.post("../ajax/sys/professor/updateOrgName", {
  321. orgName: form.val().orgName,
  322. orgId:data.data.orgId,
  323. id: data.data.id
  324. }, function () {
  325. data.data.orgName = form.val().orgName;
  326. }, {});
  327. }
  328. },
  329. {caption: "取消",hand:function () {
  330. form.val({orgName: data.data.orgName});
  331. }}
  332. ]
  333. });
  334. }
  335. });
  336. root.find(".opt-industry").on("click", function () {
  337. part(form.val().newIndustry, form.val().industryList);
  338. form.val({newIndustry: "", industryList: oJudge});
  339. });
  340. root.find(".opt-subject").on("click", function () {
  341. part(form.val().newSubject, form.val().subjectList);
  342. form.val({newSubject: "", subjectList: oJudge});
  343. });
  344. root.find(".opt-ra").on("click", function () {
  345. part2(form.val().newResearchArea, form.val().researchAreaList);
  346. form.val({newResearchArea: "", researchAreaList: oJudge});
  347. });
  348. root.find(".modal-ctrl .icon-times").on("click", function () {
  349. spa.closeModal();
  350. });
  351. root.find(".opt-project-new").on("click", function () {
  352. spa.showModal("sys_professornew_project_new", {
  353. data: data.data.id, hand: function () {
  354. loadPorject();
  355. }
  356. });
  357. });
  358. root.on("click", ".opt-project-edit", function () {
  359. var pid = $(this).parent().attr("pid");
  360. util.get("../ajax/project/" + pid, null, function (project) {
  361. if (project) {
  362. spa.showModal("sys_professornew_project_edit", {
  363. data: project, hand: function () {
  364. loadPorject();
  365. }
  366. });
  367. } else {
  368. util.alert("该项目经历不存在");
  369. }
  370. });
  371. });
  372. root.on("click", ".opt-project-del", function () {
  373. var pid = $(this).parent().attr("pid");
  374. util.get("../ajax/project/" + pid, null, function (project) {
  375. if (project) {
  376. util.boxMsg({
  377. title: "确认删除",
  378. content: "确认删除该项目经历?删除后无法恢复。",
  379. btns: [{
  380. caption: "删除",
  381. hand: function () {
  382. util.del("../ajax/project/" + pid, function () {
  383. loadPorject();
  384. }, {});
  385. }
  386. },
  387. {caption: "取消"}
  388. ]
  389. });
  390. } else {
  391. util.alert("该项目经历不存在");
  392. }
  393. });
  394. });
  395. root.find(".opt-honor-new").on("click", function () {
  396. spa.showModal("sys_professornew_honor_new", {
  397. data: data.data.id, hand: function () {
  398. loadHonor();
  399. }
  400. });
  401. });
  402. root.on("click", ".opt-honor-edit", function () {
  403. var hid = $(this).parent().attr("hid");
  404. util.get("../ajax/honor/" + hid, null, function (honor) {
  405. if (honor) {
  406. spa.showModal("sys_professornew_honor_edit", {
  407. data: honor, hand: function () {
  408. loadHonor();
  409. }
  410. });
  411. } else {
  412. util.alert("该荣誉奖项不存在");
  413. }
  414. });
  415. });
  416. root.on("click", ".opt-honor-del", function () {
  417. var hid = $(this).parent().attr("hid");
  418. util.get("../ajax/honor/" + hid, null, function (honor) {
  419. if (honor) {
  420. util.boxMsg({
  421. title: "确认删除",
  422. content: "确认删除该荣誉奖项?删除后无法恢复。",
  423. btns: [{
  424. caption: "删除",
  425. hand: function () {
  426. util.del("../ajax/honor/" + hid, function () {
  427. loadHonor();
  428. }, {});
  429. }
  430. },
  431. {caption: "取消"}
  432. ]
  433. });
  434. } else {
  435. util.alert("该荣誉奖项不存在");
  436. }
  437. });
  438. });
  439. root.find(".opt-job-new").on("click", function () {
  440. spa.showModal("sys_professornew_job_new", {
  441. data: data.data.id, hand: function () {
  442. loadJob();
  443. }
  444. });
  445. });
  446. root.on("click", ".opt-job-edit", function () {
  447. var jid = $(this).parent().attr("jid");
  448. util.get("../ajax/job/" + jid, null, function (job) {
  449. if (job) {
  450. spa.showModal("sys_professornew_job_edit", {
  451. data: job, hand: function () {
  452. loadJob();
  453. }
  454. });
  455. } else {
  456. util.alert("该工作经历不存在");
  457. }
  458. });
  459. });
  460. root.on("click", ".opt-job-del", function () {
  461. var jid = $(this).parent().attr("jid");
  462. util.get("../ajax/job/" + jid, null, function (job) {
  463. if (job) {
  464. util.boxMsg({
  465. title: "确认删除",
  466. content: "确认删除该工作经历?删除后无法恢复。",
  467. btns: [{
  468. caption: "删除",
  469. hand: function () {
  470. util.del("../ajax/job/" + jid, function () {
  471. loadJob();
  472. }, {});
  473. }
  474. },
  475. {caption: "取消"}
  476. ]
  477. });
  478. } else {
  479. util.alert("该工作经历不存在");
  480. }
  481. });
  482. });
  483. root.find(".opt-edu-new").on("click", function () {
  484. spa.showModal("sys_professornew_edu_new", {
  485. data: data.data.id, hand: function () {
  486. loadEdu();
  487. }
  488. });
  489. });
  490. root.on("click", ".opt-edu-edit", function () {
  491. var eid = $(this).parent().attr("eid");
  492. util.get("../ajax/edu/" + eid, null, function (edu) {
  493. if (edu) {
  494. spa.showModal("sys_professornew_edu_edit", {
  495. data: edu, hand: function () {
  496. loadEdu();
  497. }
  498. });
  499. } else {
  500. util.alert("该教育经历不存在");
  501. }
  502. });
  503. });
  504. root.on("click", ".opt-edu-del", function () {
  505. var eid = $(this).parent().attr("eid");
  506. util.get("../ajax/edu/" + eid, null, function (edu) {
  507. if (edu) {
  508. util.boxMsg({
  509. title: "确认删除",
  510. content: "确认删除该教育经历?删除后无法恢复。",
  511. btns: [{
  512. caption: "删除",
  513. hand: function () {
  514. util.del("../ajax/edu/" + eid, function () {
  515. loadEdu();
  516. }, {});
  517. }
  518. },
  519. {caption: "取消"}
  520. ]
  521. });
  522. } else {
  523. util.alert("该教育经历不存在");
  524. }
  525. });
  526. });
  527. $.fn.citySelect();
  528. $(document).on("click", "#City li a", function () {
  529. var aVal = $(this).text();
  530. $(this).parent().parent().parent().find('.mr_show').text(aVal);
  531. $(this).parent().parent().parent().find('input[name=cho_City]').val(aVal);
  532. if ($("#ocity").text() == "请选择城市") {
  533. $("#ocity").removeClass("mr_select");
  534. } else {
  535. $("#ocity").addClass("mr_select");
  536. }
  537. if ($("#oprovince").text() != "请选择省份") {
  538. form.val({province: $("#oprovince").text()});
  539. }
  540. if ($("#ocity").text() != "请选择城市") {
  541. form.val({address: $("#ocity").text()});
  542. }
  543. });
  544. if (data.data.province) {
  545. $("#oprovince").text(data.data.province);
  546. }
  547. if (data.data.address) {
  548. $("#ocity").text(data.data.address);
  549. }
  550. saveBtn.on("click", function () {
  551. save();
  552. });
  553. // data.data.projects = data.data.projects || [];
  554. // for (var i = 0; i < data.data.projects.length; ++i) {
  555. // data.data.projects[i].no = i;
  556. // }
  557. // dp.val(data.data.projects);
  558. //
  559. // data.data.honors = data.data.honors || [];
  560. // for (var i = 0; i < data.data.honors.length; ++i) {
  561. // data.data.honors[i].no = i;
  562. // }
  563. // dh.val(data.data.honors);
  564. //
  565. // data.data.jobs = data.data.jobs || [];
  566. // for (var i = 0; i < data.data.jobs.length; ++i) {
  567. // data.data.jobs[i].no = i;
  568. // }
  569. // dj.val(data.data.jobs);
  570. //
  571. // data.data.edus = data.data.edus || [];
  572. // for (var i = 0; i < data.data.edus.length; ++i) {
  573. // data.data.edus[i].no = i;
  574. // }
  575. // de.val(data.data.edus);
  576. /*
  577. 加载项目经历、荣誉奖项、工作经历、教育背景
  578. */
  579. var loadPorject = function () {
  580. util.get("../ajax/project/professor", {professorId: data.data.id}, function (projects) {
  581. dp.val(projects);
  582. });
  583. };
  584. var loadHonor = function () {
  585. util.get("../ajax/honor/professor", {professorId: data.data.id}, function (honors) {
  586. dh.val(honors);
  587. });
  588. };
  589. var loadJob = function () {
  590. util.get("../ajax/job/professor", {professorId: data.data.id}, function (jobs) {
  591. dj.val(jobs);
  592. });
  593. };
  594. var loadEdu = function () {
  595. util.get("../ajax/edu/professor", {professorId: data.data.id}, function (edus) {
  596. de.val(edus);
  597. });
  598. };
  599. form.val(data.data);
  600. loadPorject();
  601. loadHonor();
  602. loadJob();
  603. loadEdu();
  604. }
  605. }
  606. });
  607. });