datalist.html 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858
  1. {extend name="common/base"/}
  2. <!-- 主体 -->
  3. {block name="body"}
  4. <div class="p-3">
  5. <div class="gg-form-bar border-t border-x">
  6. <form id="taskForm" class="layui-form" lay-filter="barsearchform">
  7. <div class="layui-input-inline" style="width:100px;">
  8. <select name="project_status" lay-filter="status">
  9. <option value="">项目状态</option>
  10. <option value="1">财政局立项中</option>
  11. <option value="2">审批中</option>
  12. <option value="3">待接收</option>
  13. <option value="4">分配中</option>
  14. <option value="5">作业中</option>
  15. <option value="6">归档中</option>
  16. <option value="7">退审中</option>
  17. <option value="8">已归档</option>
  18. <option value="9">已退审</option>
  19. <option value="100">立项中</option>
  20. <option value="101">审核中</option>
  21. <option value="102">待接收</option>
  22. </select>
  23. </div>
  24. <div class="layui-input-inline" style="width:100px;">
  25. <select id="province" lay-filter="province" name="province">
  26. <option value="">省</option>
  27. </select>
  28. </div>
  29. <div class="layui-input-inline" style="width:100px;">
  30. <select id="city" lay-filter="city" name="city">
  31. <option value="">市</option>
  32. </select>
  33. </div>
  34. <div class="layui-input-inline" style="width:100px;">
  35. <select id="area" lay-filter="area" name="area">
  36. <option value="">县</option>
  37. </select>
  38. </div>
  39. <div id="time_date" class="layui-input-inline" style="margin: 0;">
  40. <div class="layui-input-inline" style="width:150px;">
  41. <input type="text" id="start_time" name="project_start_time" readonly placeholder="起始日期"
  42. class="layui-input" value="">
  43. </div>
  44. <div class="layui-input-inline">-</div>
  45. <div class="layui-input-inline" style="width:150px;">
  46. <input type="text" id="end_time" name="project_end_time" readonly placeholder="截止日期"
  47. class="layui-input" value="">
  48. </div>
  49. </div>
  50. <div class="layui-input-inline" style="width:200px;">
  51. <input type="text" name="sent_review_unit_name" placeholder="送审单位" class="layui-input"
  52. autocomplete="off"/>
  53. </div>
  54. <div class="layui-input-inline" style="width:200px;">
  55. <input type="text" name="entrust_unit_name" placeholder="委托单位" class="layui-input"
  56. autocomplete="off"/>
  57. </div>
  58. <div class="layui-input-inline" style="width:200px;">
  59. <input type="text" name="keyword" placeholder="项目名称关键字" class="layui-input" autocomplete="off"/>
  60. </div>
  61. <div class="layui-input-inline" style="width:150px;">
  62. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i
  63. class="layui-icon layui-icon-search mr-1"></i>搜索
  64. </button>
  65. <button class="layui-btn layui-btn-reset" lay-submit="" lay-filter="reset1">清空</button>
  66. </div>
  67. </form>
  68. </div>
  69. <table class="layui-hide" id="cost_project" lay-filter="cost_project"></table>
  70. </div>
  71. <script type="text/html" id="toolbarDemo">
  72. <div class="layui-btn-container">
  73. <span class="layui-btn layui-btn-sm" lay-event="add" data-title="添加造价项目">+ 添加造价项目</span>
  74. </div>
  75. </script>
  76. <!--<script type="text/html" id="barDemo">-->
  77. <!-- <div class="layui-btn-group">-->
  78. <!-- <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>-->
  79. <!-- <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="finish">归档</a>-->
  80. <!-- <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="dismissal">退审</a>-->
  81. <!-- </div>-->
  82. <!--</script>-->
  83. <script type="text/html" id="barDemo">
  84. {{# if(d.project_status==4 || d.project_status==5){ }}
  85. <div class="layui-clear-space">
  86. <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
  87. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="more">
  88. 更多
  89. <i class="layui-icon layui-icon-down"></i>
  90. </a>
  91. </div>
  92. {{# } else { }}
  93. <div class="layui-btn-group">
  94. </div>
  95. {{# } }}
  96. </script>
  97. {/block}
  98. <!-- /主体 -->
  99. <!-- 脚本 -->
  100. {block name="script"}
  101. <script>
  102. const moduleInit = ['tool'];
  103. const field = '<?=json_encode($field)?>';
  104. function gouguInit() {
  105. var table = layui.table, tool = layui.tool, form = layui.form;
  106. var dropdown = layui.dropdown;
  107. var allcount;
  108. layui.laydate.render({
  109. elem: '#time_date',
  110. range: ['#start_time', '#end_time'],
  111. rangeLinked: true
  112. });
  113. layui.pageTable = table.render({
  114. elem: '#cost_project',
  115. title: '造价项目',
  116. toolbar: '#toolbarDemo',
  117. url: '/admin/project.cost_company/datalist',
  118. page: true,
  119. limit: 20,
  120. parseData: function (res) { // 数据解析回调函数
  121. // 在这里可以获取数据总数
  122. allcount = res.count;
  123. return {
  124. code: res.code, // 数据状态码
  125. msg: res.msg, // 状态信息
  126. count: res.count, // 数据总数
  127. data: res.data // 当前页数据
  128. };
  129. },
  130. cols: [
  131. [
  132. {
  133. fixed: 'left', field: 'id', title: '编号', align: 'center', width: 80,
  134. templet: function (d) {
  135. return allcount - (d.LAY_NUM - 1);
  136. }
  137. },
  138. {
  139. fixed: 'left',
  140. field: 'project_status',
  141. title: '项目状态',
  142. align: 'center',
  143. width: 100,
  144. hide: field.project_status,
  145. templet: function (item) {
  146. var html;
  147. if (item.project_status === 5) {
  148. html = '<span class="layui-badge layui-bg-blue" style="background-color: #1e9fff !important">作业中</span> ';
  149. } else if (item.project_status === 4) {
  150. html = '<span class="layui-badge" style="background-color: #005fa8 !important">分配中</span> ';
  151. } else if (item.project_status === 6) {
  152. html = '<span class="layui-badge layui-bg-orange" style="background-color: #007244 !important">归档中</span> ';
  153. } else if (item.project_status === 8) {
  154. html = '<span class="layui-badge layui-bg-green" style="background-color: #16b777 !important">已归档</span> ';
  155. } else if (item.project_status === 7) {
  156. html = '<span class="layui-badge layui-bg-orange" style="background-color: #881f1f !important">退审中</span> ';
  157. } else if (item.project_status === 9) {
  158. html = '<span class="layui-badge layui-bg-green" style="background-color: #d81e06 !important">已退审</span> ';
  159. }
  160. return html;
  161. }
  162. },
  163. {
  164. fixed: 'left',
  165. field: 'report_status',
  166. title: '报告状态',
  167. align: 'center',
  168. width: 100,
  169. hide: false,
  170. templet: function (item) {
  171. var html;
  172. if (item.report_status === 0) {
  173. html = '<span>初稿中</span> ';
  174. } else if (item.report_status === 1) {
  175. html = '<span>对数中</span> ';
  176. } else if (item.report_status === 2) {
  177. html = '<span>审定中</span> ';
  178. } else if (item.report_status === 3) {
  179. html = '<span>已审定</span> ';
  180. }else {
  181. html = '<span >未知</span> ';
  182. }
  183. return html;
  184. }
  185. },
  186. {
  187. fixed: 'left',
  188. field: 'project_name',
  189. title: '项目名称',
  190. align: 'center',
  191. width: 400,
  192. hide: field.project_name,
  193. templet: function (d) {
  194. var html = "";
  195. if (d.red) {
  196. //判断是否有新消息,有就有new
  197. html = '<a class="side-a" lay-event="read" lay-event="read">' + d.project_name + ' <span class="layui-badge-dot hongdian"></span></a>';
  198. } else {
  199. html = '<a class="side-a" lay-event="read" lay-event="read">' + d.project_name + '</a>';
  200. }
  201. return '<div style="text-align:left">' + html + '</div>'
  202. }
  203. },
  204. {
  205. field: 'project_num',
  206. title: '项目编号',
  207. align: 'center',
  208. width: 150, hide: field.project_num,
  209. },
  210. {
  211. field: 'project_time',
  212. title: '项目周期',
  213. align: 'center',
  214. width: 270,
  215. hide: field.project_time,
  216. templet: function (item) {
  217. let outcome = Math.round(new Date().getTime() / 1000).toString();
  218. var advent_time = item.project_end_time - outcome
  219. var time = getDuration(advent_time);
  220. var timestr = "<span style='color: green'>" + "剩余" + time + "</span>";
  221. if (advent_time < 0) {
  222. advent_time = -advent_time
  223. time = getDuration(advent_time);
  224. timestr = "<span style='color: red'>" + "逾期" + time + "</span>";
  225. }
  226. var html;
  227. if (item.project_status == 8 || item.project_status == 9 ){
  228. html =
  229. "<div>" +
  230. layui.util.toDateString(item.project_start_time * 1000, 'yyyy-MM-dd') +
  231. "至" +
  232. layui.util.toDateString(item.project_end_time * 1000, 'yyyy-MM-dd') +
  233. "</div>";
  234. }else{
  235. html =
  236. "<div>" +
  237. layui.util.toDateString(item.project_start_time * 1000, 'yyyy-MM-dd') +
  238. "至" +
  239. layui.util.toDateString(item.project_end_time * 1000, 'yyyy-MM-dd') +
  240. "&nbsp;&nbsp;" + timestr +
  241. "</div>";
  242. }
  243. function getDuration(second) {
  244. var duration
  245. var days = Math.floor(second / 86400);
  246. var hours = Math.floor((second % 86400) / 3600);
  247. if (days > 0) duration = days + "天";
  248. else if (hours > 0) duration = "不足一天";
  249. else if (hours == 0) duration = "不足一天";
  250. return duration;
  251. }
  252. return html;
  253. }
  254. },
  255. {
  256. field: 'entrust_unit_name',
  257. title: '委托单位',
  258. align: 'center',
  259. width: 150,
  260. hide: field.entrust_unit,
  261. },
  262. {
  263. field: 'entrust_maker_name',
  264. title: '委托单位负责人',
  265. align: 'center',
  266. width: 150,
  267. hide: field.entrust_head,
  268. },
  269. {
  270. field: 'entrust_phone',
  271. title: '委托单位负责人电话',
  272. align: 'center',
  273. width: 150,
  274. hide: field.entrust_phone,
  275. },
  276. {
  277. field: 'sent_review_unit_name',
  278. title: '送审单位',
  279. align: 'center',
  280. width: 150,
  281. hide: field.sent_review_unit,
  282. },
  283. {
  284. field: 'sent_review_head_name',
  285. title: '送审单位负责人',
  286. align: 'center',
  287. width: 150,
  288. hide: field.sent_review_head,
  289. },
  290. {
  291. field: 'sent_review_phone',
  292. title: '送审单位负责人电话',
  293. align: 'center',
  294. width: 150,
  295. hide: field.sent_review_phone,
  296. },
  297. {
  298. field: 'project_scale',
  299. title: '项目规模',
  300. align: 'center',
  301. width: 150,
  302. hide: field.project_scale,
  303. },
  304. {
  305. field: 'engineering_category',
  306. title: '工程类别',
  307. align: 'center',
  308. width: 150,
  309. hide: field.engineering_category,
  310. },
  311. {
  312. field: 'engineering_type',
  313. title: '项目类型',
  314. align: 'center',
  315. width: 150,
  316. hide: field.engineering_type,
  317. },
  318. {
  319. field: 'project_region',
  320. title: '项目区域',
  321. align: 'center',
  322. width: 150,
  323. hide: field.project_region,
  324. },
  325. {
  326. field: 'fiscal_nature',
  327. title: '财政性质',
  328. align: 'center',
  329. width: 150,
  330. hide: field.fiscal_nature,
  331. },
  332. {
  333. field: 'sent_review_cost',
  334. title: '送审服务费',
  335. align: 'center',
  336. width: 100,
  337. hide: field.sent_review_cost,
  338. },
  339. {
  340. field: 'sent_review_amount',
  341. title: '送审金额',
  342. align: 'center',
  343. width: 150,
  344. hide: field.sent_review_amount,
  345. },
  346. {
  347. field: 'authorize_amount',
  348. title: '审定金额',
  349. align: 'center',
  350. width: 150,
  351. hide: field.authorize_amount,
  352. },
  353. {
  354. field: 'review_add_amount',
  355. title: '审增额',
  356. align: 'center',
  357. width: 150,
  358. hide: field.review_add_reduce_amount
  359. },
  360. {
  361. field: 'review_reduce_amount',
  362. title: '审减额',
  363. align: 'center',
  364. width: 150,
  365. hide: field.review_add_reduce_amount
  366. },
  367. {
  368. field: 'review_add_reduce_rate',
  369. title: '审增减率',
  370. align: 'center',
  371. width: 150,
  372. hide: field.review_add_reduce_rate,
  373. },
  374. {
  375. field: 'report_time',
  376. title: '报告时间',
  377. align: 'center',
  378. width: 150,
  379. hide: field.report_time,
  380. templet: function (d) {
  381. if (d.report_time) {
  382. return layui.util.toDateString(d.report_time * 1000, "yyyy-MM-dd")
  383. } else {
  384. return "";
  385. }
  386. }
  387. },
  388. {
  389. field: 'charge_standard',
  390. title: '收费标准',
  391. align: 'center',
  392. width: 150,
  393. hide: field.charge_standard,
  394. },
  395. {
  396. field: 'operate_head_name',
  397. title: '作业负责人',
  398. align: 'center',
  399. width: 150,
  400. hide: field.operate_name,
  401. },
  402. {
  403. field: 'operate_team_names',
  404. title: '作业成员',
  405. align: 'center',
  406. width: 300,
  407. hide: field.operate_team_names
  408. },
  409. {
  410. field: 'creator',
  411. title: '创建人',
  412. align: 'center',
  413. width: 150,
  414. },
  415. {
  416. field: 'create_time',
  417. title: '项目创建日期',
  418. align: 'center',
  419. width: 180,
  420. hide: field.create_time,
  421. },
  422. {
  423. field: 'project_dead_time',
  424. title: '项目归档日期',
  425. align: 'center',
  426. width: 120,
  427. hide: field.project_dead_time,
  428. templet: function (d) {
  429. if (d.project_dead_time) {
  430. return layui.util.toDateString(d.project_dead_time * 1000, "yyyy-MM-dd")
  431. } else {
  432. return "";
  433. }
  434. }
  435. },
  436. {fixed: 'right', title: '操作', align: 'center', width: 170, toolbar: '#barDemo'},
  437. ]
  438. ]
  439. });
  440. //监听表头工具栏事件
  441. table.on('toolbar(cost_project)', function (obj) {
  442. if (obj.event === 'add') {
  443. tool.side("/admin/project.cost_company/add");
  444. return false;
  445. }
  446. });
  447. //监听表格行工具事件
  448. table.on('tool(cost_project)', function (obj) {
  449. var data = obj.data;
  450. if (obj.event === 'read') {
  451. tool.side('/admin/project.cost_company/read?id=' + obj.data.id);
  452. } else if (obj.event === 'edit') {
  453. if (obj.data.project_status < 6) {
  454. tool.side('/admin/project.cost_company/edit?id=' + obj.data.id);
  455. } else {
  456. layer.msg("已归档/已退审")
  457. }
  458. } else if (obj.event === 'finish') {
  459. if (obj.data.project_status == 5 || obj.data.project_status == 4) {
  460. var ttxx = layer.prompt({
  461. title: '请输入<span style="color: red">归档</span>原因',
  462. formType: 2,
  463. area: ['35vw', '15vw']
  464. }, function (text, index) {
  465. let callback = function (e) {
  466. window.location.reload()
  467. layer.msg(e.msg);
  468. setTimeout(function () {
  469. layer.close(index);
  470. }, 2000)
  471. }
  472. if (text !== "") {
  473. tool.post("/admin/project.cost_company/finish", {
  474. id: data.id,
  475. finish_reason: text
  476. }, callback);
  477. } else {
  478. layer.msg("归档原因不能为空")
  479. }
  480. });
  481. } else {
  482. layer.msg("已归档/已退审")
  483. }
  484. } else if (obj.event === 'dismissal') {
  485. if (obj.data.project_status == 5 || obj.data.project_status == 4) {
  486. var ttxx = layer.prompt({
  487. title: '请输入<span style="color: red">退审</span>原因',
  488. formType: 2,
  489. area: ['35vw', '15vw']
  490. }, function (text, index) {
  491. let callback = function (e) {
  492. window.location.reload()
  493. layer.msg(e.msg);
  494. setTimeout(function () {
  495. layer.close(index);
  496. }, 2000)
  497. }
  498. if (text !== "") {
  499. tool.post("/admin/project.cost_company/dismissal", {
  500. id: data.id,
  501. dismissal_reason: text,
  502. }, callback);
  503. } else {
  504. layer.msg("退审原因不能为空")
  505. }
  506. });
  507. } else {
  508. layer.msg("已归档/已退审")
  509. }
  510. } else if (obj.event === 'more') {
  511. // 更多 - 下拉菜单
  512. dropdown.render({
  513. elem: this, // 触发事件的 DOM 对象
  514. show: true, // 外部事件触发即显示
  515. data: [
  516. {
  517. title: '状态',
  518. id: 'set_status',
  519. templet: function () {
  520. return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="set_status" class="dropbtn">状态</button>';
  521. }
  522. },{
  523. title: '归档',
  524. id: 'finish',
  525. templet: function () {
  526. return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="finish" class="dropbtn">归档</button>';
  527. }
  528. }, {
  529. title: '退审',
  530. id: 'dismissal',
  531. templet: function () {
  532. return '<button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="dismissal" class="dropbtn">退审</button>';
  533. }
  534. }
  535. ],
  536. click: function (menudata) {
  537. if (menudata.id === 'finish') {
  538. if (obj.data.project_status == 5 || obj.data.project_status == 4) {
  539. var ttxx = layer.prompt({
  540. title: '请输入<span style="color: red">归档</span>原因',
  541. formType: 2,
  542. area: ['35vw', '15vw']
  543. }, function (text, index) {
  544. let callback = function (e) {
  545. window.location.reload()
  546. layer.msg(e.msg);
  547. setTimeout(function () {
  548. layer.close(index);
  549. }, 2000)
  550. }
  551. if (text !== "") {
  552. tool.post("/admin/project.cost_company/finish", {
  553. id: data.id,
  554. finish_reason: text
  555. }, callback);
  556. } else {
  557. layer.msg("归档原因不能为空")
  558. }
  559. });
  560. } else {
  561. layer.msg("已归档/已退审")
  562. }
  563. } else if (menudata.id === 'dismissal') {
  564. if (obj.data.project_status == 5 || obj.data.project_status == 4) {
  565. var ttxx = layer.prompt({
  566. title: '请输入<span style="color: red">退审</span>原因',
  567. formType: 2,
  568. area: ['35vw', '15vw']
  569. }, function (text, index) {
  570. let callback = function (e) {
  571. window.location.reload()
  572. layer.msg(e.msg);
  573. setTimeout(function () {
  574. layer.close(index);
  575. }, 2000)
  576. }
  577. if (text !== "") {
  578. tool.post("/admin/project.cost_company/dismissal", {
  579. id: data.id,
  580. dismissal_reason: text,
  581. }, callback);
  582. } else {
  583. layer.msg("退审原因不能为空")
  584. }
  585. });
  586. } else {
  587. layer.msg("已归档/已退审")
  588. }
  589. }else if (menudata.id === 'set_status') {
  590. setStatus(data.id);
  591. }
  592. },
  593. align: 'center', // 右对齐弹出
  594. style: 'min-width: 0px' // 设置额外样式
  595. })
  596. }
  597. return false;
  598. });
  599. function setStatus(project_id) {
  600. layer.open({
  601. title: '选择状态',
  602. type:1,
  603. area: ['480px', '336px'],
  604. content: '<div class="picker-table"><div id="boxselect"></div></div>',
  605. success: function() {
  606. table_a = table.render({
  607. elem: '#boxselect',
  608. cols: [
  609. [{
  610. type: 'radio',
  611. title: '选择',
  612. width: 100
  613. }, {
  614. field: 'title',
  615. title: '状态'
  616. }]
  617. ],
  618. data: [{
  619. "type": "0",
  620. "title": "初稿中"
  621. },{
  622. "type": "1",
  623. "title": "对数中"
  624. }, {
  625. "type": "2",
  626. "title": "审定中"
  627. }]
  628. });
  629. },
  630. btn:['确定'],
  631. yes: function(index) {
  632. var checkStatus = table.checkStatus(table_a.config.id);
  633. var data = checkStatus.data;
  634. console.log(checkStatus,data);
  635. if (data.length > 0) {
  636. let callbacl = function (e) {
  637. layui.pageTable.reload();
  638. layer.msg(e.msg)
  639. }
  640. data = {project_id:project_id,report_status:data[0].type}
  641. tool.post("/admin/project.api/set_status",data,callbacl);
  642. layer.close(index);
  643. }
  644. else{
  645. layer.msg('选择合同性质');
  646. }
  647. }
  648. })
  649. }
  650. //监听搜索提交
  651. form.on('submit(webform)', function (data) {
  652. console.log(data.field)
  653. layui.pageTable.reload({where: data.field});
  654. return false;
  655. });
  656. form.on('submit(reset1)', function () {
  657. $(".layui-form").reset();
  658. layui.pageTable.reload();
  659. return false;
  660. });
  661. layui.use(['form', 'jquery'], function () {
  662. var form = layui.form;
  663. const $ = layui.jquery;
  664. let adress;
  665. $.ajax({
  666. type: "get", //使用get方式
  667. url: "/static/assets/layui/adress.json", //json文件相对于这个HTML的路径
  668. dataType: "json",
  669. async: false,
  670. success: function (data) {
  671. //这个data就是json数据
  672. adress = data
  673. var province = Object.keys(adress)
  674. var proStrs = '<option value="">省</option>';
  675. for (var i = 0; i < province.length; i++) {
  676. proStrs += '<option value="' + province[i] + '">' + province[i] + '</option>';
  677. }
  678. $("#province").html(proStrs);
  679. layui.form.render("select")
  680. },
  681. error: function () {
  682. layui.alert("地址请求失败!! ");
  683. }
  684. });
  685. function getFirstAttr(obj) {
  686. for (var k in obj) return k;
  687. }
  688. function selectOption(selectedProvince, selectedCity = '', selectedArea = '') {
  689. var proStr = '<option value="">省</option>', cityStr = '<option value="">市</option>',
  690. areaStr = '<option value="">县</option>';
  691. var pro = adress[selectedProvince], ci = adress[selectedProvince][selectedCity];
  692. for (var province in adress) {
  693. if (province == selectedProvince) proStr += '<option value="' + province + '" selected>' + province + '</option>';
  694. else proStr += '<option value="' + province + '">' + province + '</option>';
  695. }
  696. $("#province").html(proStr);
  697. for (var city in pro) {
  698. if (city == selectedCity) cityStr += '<option value="' + city + '" selected>' + city + '</option>';
  699. else cityStr += '<option value="' + city + '">' + city + '</option>';
  700. }
  701. $("#city").html(cityStr);
  702. for (var area in ci) {
  703. if (area == "remove") {
  704. continue;
  705. }
  706. if (ci[area] == selectedArea) areaStr += '<option value="' + ci[area] + '" selected>' + ci[area] + '</option>';
  707. else areaStr += '<option value="' + ci[area] + '">' + ci[area] + '</option>';
  708. }
  709. $("#area").html(areaStr);
  710. form.render();
  711. }
  712. /*selectOption(1,2, 3);*/
  713. form.on('select(province)', function (data) {
  714. let thisProvince = data.value;
  715. let thisCity = getFirstAttr(adress[thisProvince]);
  716. selectOption(data.value);
  717. });
  718. form.on('select(city)', function (data) {
  719. selectOption($("#province").val(), data.value, getFirstAttr(data.value));
  720. });
  721. window.hongdianselect = function () {
  722. let num = $(document).find('.hongdian').length
  723. console.log(num, '我是数量')
  724. if (num === 0) {
  725. parent.showhongdian()
  726. console.log('2执行了')
  727. }
  728. }
  729. })
  730. }
  731. </script>
  732. {/block}
  733. <!-- /脚本 -->