tender.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393
  1. /**
  2. * 标段相关js
  3. *
  4. * @author CaiAoLin
  5. * @date 2018/2/5
  6. * @version
  7. */
  8. // 整理数据
  9. let tenderData = [];
  10. try {
  11. if (tenderList.length <= 0) {
  12. throw '数据为空';
  13. }
  14. for(const tmp of tenderList) {
  15. const tmpData = {
  16. value: 7814964.00,
  17. name: tmp.name,
  18. };
  19. tenderData.push(tmpData);
  20. }
  21. } catch (error) {
  22. }
  23. // 属性
  24. function loadCommonProperty () {
  25. // 合同信息
  26. $('#build-name').val(property.deal_info.buildName);
  27. $('#deal-code').val(property.deal_info.dealCode);
  28. $('#deal-name').val(property.deal_info.dealName);
  29. // 参建单位
  30. // 建设单位
  31. $('#build-company').val(property.construction_unit.build.company);
  32. $('#build-corporation').val(property.construction_unit.build.corporation);
  33. $('#build-date').val(property.construction_unit.build.date);
  34. // 承包单位1
  35. $('#contract1-company').val(property.construction_unit.contract1.company);
  36. $('#contract1-corporation').val(property.construction_unit.contract1.corporation);
  37. $('#contract1-date').val(property.construction_unit.contract1.date);
  38. // 承包单位2
  39. $('#contract2-company').val(property.construction_unit.contract2.company);
  40. $('#contract2-corporation').val(property.construction_unit.contract2.corporation);
  41. $('#contract2-date').val(property.construction_unit.contract2.date);
  42. // 监理单位1
  43. $('#supervision1-company').val(property.construction_unit.supervision1.company);
  44. $('#supervision1-corporation').val(property.construction_unit.supervision1.corporation);
  45. $('#supervision1-date').val(property.construction_unit.supervision1.date);
  46. // 监理单位2
  47. $('#supervision2-company').val(property.construction_unit.supervision2.company);
  48. $('#supervision2-corporation').val(property.construction_unit.supervision2.corporation);
  49. $('#supervision2-date').val(property.construction_unit.supervision2.date);
  50. // 技术参数
  51. $('#loadLevel').val(property.tech_param.loadLevel);
  52. $('#length').val(property.tech_param.loadLength);
  53. $('#start-peg').val(property.tech_param.startPeg);
  54. $('#end-peg').val(property.tech_param.endPeg);
  55. $('#lane-count').val(property.tech_param.laneCount);
  56. $('#deal-period').val(property.tech_param.dealPeriod);
  57. $('#start-date').val(property.tech_param.startDate);
  58. $('#plan-end-date').val(property.tech_param.planEndDate);
  59. }
  60. // 小数位数
  61. function loadCalculateProperty () {
  62. $('#decimal-up').val(property.decimal.up);
  63. $('#decimal-tp').val(property.decimal.tp);
  64. $('#decimal-pay')[0].checked = property.decimal.pay;
  65. $('#decimal-pay-tp').val(property.decimal.payTp);
  66. }
  67. // 清单精度
  68. function loadPrecisionProperty () {
  69. $('#unit-t').val(property.precision.t.value);
  70. $('#unit-km').val(property.precision.km.value);
  71. $('#unit-m').val(property.precision.m.value);
  72. $('#unit-m2').val(property.precision.m2.value);
  73. $('#unit-m3').val(property.precision.m3.value);
  74. $('#unit-kg').val(property.precision.kg.value);
  75. $('#unit-ge').val(property.precision.ge.value);
  76. $('#unit-tai').val(property.precision.tai.value);
  77. $('#unit-tao').val(property.precision.tao.value);
  78. $('#unit-ke').val(property.precision.ke.value);
  79. $('#unit-zu').val(property.precision.zu.value);
  80. $('#unit-xitong').val(property.precision.xitong.value);
  81. $('#unit-other').val(property.precision.other.value);
  82. }
  83. // 合同参数
  84. function loadDealProperty () {
  85. $('#contract-price').val(property.deal_param.contractPrice);
  86. $('#zan-lie-price').val(property.deal_param.zanLiePrice);
  87. $('#c-zl').val(property.deal_param.contractPrice - property.deal_param.zanLiePrice);
  88. $('#start-advance').val(property.deal_param.startAdvance);
  89. $('#material-advance').val(property.deal_param.materialAdvance);
  90. }
  91. // 显示设置
  92. function loadDisplayProperty () {
  93. $('#ledger-dgn-qty')[0].checked = property.display.ledger.dgnQty;
  94. }
  95. // 设置某个div下全部的input、select是否只读
  96. function setReadOnly(obj, readOnly) {
  97. if (readOnly) {
  98. $('input', obj).attr('readonly', '');
  99. $('select', obj).attr('disabled', '');
  100. $('input[type=checkbox]', obj).attr('disabled', '');
  101. } else {
  102. $('input', obj).removeAttr('readonly');
  103. $('select', obj).removeAttr('disabled');
  104. $('input[type=checkbox]', obj).removeAttr('disabled');
  105. }
  106. }
  107. // 标段属性
  108. function loadTenderProperty() {
  109. // 加载属性
  110. loadCommonProperty();
  111. loadCalculateProperty();
  112. loadPrecisionProperty();
  113. loadDealProperty();
  114. loadDisplayProperty();
  115. // 设置只读
  116. setReadOnly('#shuxing', true);
  117. }
  118. // 获取当前合同支付应该使用的小数位数
  119. function getDealTpDecimal() {
  120. const spec = $('#decimal-pay')[0].checked;
  121. return spec ? _.toNumber($('#decimal-pay-tp').val()) : _.toNumber($('#decimal-tp').val());
  122. }
  123. // 四舍五入
  124. function roundPrice(obj) {
  125. const iDecimal = getDealTpDecimal();
  126. obj.val(_.round(_.toNumber(obj.val()), iDecimal));
  127. }
  128. // 计算签约合同价(不含暂列金额)
  129. function calculateC2() {
  130. const constract = _.toNumber($('#contract-price').val());
  131. const zanLie = _.toNumber($('#zan-lie-price').val());
  132. const iDecimal = getDealTpDecimal();
  133. $('#c-zl').val(_.round(constract - zanLie, iDecimal));
  134. }
  135. // 根据小数位数,计算全部的合同参数
  136. function CalculateAllDealParam() {
  137. roundPrice($('#contract-price'));
  138. roundPrice($('#zan-lie-price'));
  139. roundPrice($('#start-advance'));
  140. roundPrice($('#material-advance'));
  141. calculateC2();
  142. }
  143. // 根据Min Max限制Input输入
  144. function limitInputMinMax (obj) {
  145. if (obj.value > obj.max) {
  146. obj.value = obj.max;
  147. }
  148. if(obj.value < obj.min) {
  149. obj.value = obj.min;
  150. }
  151. }
  152. $(document).ready(function() {
  153. loadTenderProperty();
  154. /**
  155. * 属性
  156. */
  157. // 编辑
  158. $('#edit-1').click(() => {
  159. setReadOnly('#v-pills-1', false);
  160. $('#post-1').parent().show();
  161. $('#edit-1').parent().hide();
  162. });
  163. // 取消
  164. $('#cancel-1').click(() => {
  165. setReadOnly('#v-pills-1', true);
  166. loadCommonProperty();
  167. $('#post-1').parent().hide();
  168. $('#edit-1').parent().show();
  169. });
  170. // 提交
  171. $('#post-1').click(() => {
  172. const prop = {
  173. deal_info: {
  174. buildName: $('#build-name').val(),
  175. dealCode: $('#deal-code').val(),
  176. dealName: $('#deal-name').val(),
  177. },
  178. construction_unit: {
  179. build: {
  180. company: $('#build-company').val(),
  181. corporation: $('#build-corporation').val(),
  182. date: $('#build-date').val(),
  183. },
  184. contract1: {
  185. company: $('#contract1-company').val(),
  186. corporation: $('#contract1-corporation').val(),
  187. date: $('#contract1-date').val(),
  188. },
  189. contract2: {
  190. company: $('#contract2-company').val(),
  191. corporation: $('#contract2-corporation').val(),
  192. date: $('#contract2-date').val(),
  193. },
  194. supervision1: {
  195. company: $('#supervision1-company').val(),
  196. corporation: $('#supervision1-corporation').val(),
  197. date: $('#supervision1-date').val(),
  198. },
  199. supervision2: {
  200. company: $('#supervision2-company').val(),
  201. corporation: $('#supervision2-corporation').val(),
  202. date: $('#supervision2-date').val(),
  203. },
  204. },
  205. tech_param: {
  206. loadLevel: _.toNumber($('#loadLevel').val()),
  207. loadLength: _.toNumber($('#length').val()),
  208. startPeg: $('#start-peg').val(),
  209. endPeg: $('#end-peg').val(),
  210. laneCount: _.toNumber($('#lane-count').val()),
  211. dealPeriod: $('#deal-period').val(),
  212. startDate: $('#start-date').val(),
  213. planEndDate: $('#plan-end-date').val(),
  214. }
  215. };
  216. const tenderId = window.location.pathname.split('/')[2];
  217. postData('/tender/' + tenderId + '/save', prop, function (data) {
  218. setReadOnly('#v-pills-1', true);
  219. property.deal_info = data.deal_info;
  220. property.construction_unit = data.construction_unit;
  221. property.tech_param = data.tech_param;
  222. $('#post-1').parent().hide();
  223. $('#edit-1').parent().show();
  224. });
  225. });
  226. /**
  227. * 计算参数
  228. */
  229. // 编辑
  230. $('#edit-2').click(() => {
  231. setReadOnly('#v-pills-2', false);
  232. $('#post-2').parent().show();
  233. $('#edit-2').parent().hide();
  234. });
  235. // 取消
  236. $('#cancel-2').click(() => {
  237. setReadOnly('#v-pills-2', true);
  238. loadCalculateProperty();
  239. $('#post-2').parent().hide();
  240. $('#edit-2').parent().show();
  241. });
  242. // 提交
  243. $('#post-2').click(() => {
  244. const prop = {
  245. decimal: {
  246. up: _.toNumber($('#decimal-up').val()),
  247. tp: _.toNumber($('#decimal-tp').val()),
  248. pay: $('#decimal-pay')[0].checked,
  249. payTp: _.toNumber($('#decimal-pay-tp').val()),
  250. }
  251. };
  252. const tenderId = window.location.pathname.split('/')[2];
  253. console.log(prop);
  254. postData('/tender/' + tenderId + '/save', prop, function (data) {
  255. setReadOnly('#v-pills-2', true);
  256. property.decimal = data.decimal;
  257. $('#post-2').parent().hide();
  258. $('#edit-2').parent().show();
  259. });
  260. });
  261. /**
  262. * 清单精度
  263. */
  264. // 编辑
  265. $('#edit-3').click(() => {
  266. setReadOnly('#v-pills-3', false);
  267. $('#post-3').parent().show();
  268. $('#edit-3').parent().hide();
  269. });
  270. // 取消
  271. $('#cancel-3').click(() => {
  272. setReadOnly('#v-pills-3', true);
  273. loadPrecisionProperty();
  274. $('#post-3').parent().hide();
  275. $('#edit-3').parent().show();
  276. });
  277. // 提交
  278. $('#post-3').click(() => {
  279. const prop = { precision: JSON.parse(JSON.stringify(property.precision)) };
  280. prop.precision.t.value = _.toNumber($('#unit-t').val());
  281. prop.precision.km.value = _.toNumber($('#unit-km').val());
  282. prop.precision.m.value = _.toNumber($('#unit-m').val());
  283. prop.precision.m2.value = _.toNumber($('#unit-m2').val());
  284. prop.precision.m3.value = _.toNumber($('#unit-m3').val());
  285. prop.precision.kg.value = _.toNumber($('#unit-kg').val());
  286. prop.precision.ge.value = _.toNumber($('#unit-ge').val());
  287. prop.precision.tai.value = _.toNumber($('#unit-tai').val());
  288. prop.precision.tao.value = _.toNumber($('#unit-tao').val());
  289. prop.precision.ke.value = _.toNumber($('#unit-ke').val());
  290. prop.precision.zu.value = _.toNumber($('#unit-zu').val());
  291. prop.precision.xitong.value = _.toNumber($('#unit-xitong').val());
  292. prop.precision.other.value = _.toNumber($('#unit-other').val());
  293. const tenderId = window.location.pathname.split('/')[2];
  294. postData('/tender/' + tenderId + '/save', prop, function (data) {
  295. setReadOnly('#v-pills-3', true);
  296. property.precision = data.precision;
  297. $('#post-3').parent().hide();
  298. $('#edit-3').parent().show();
  299. });
  300. });
  301. /**
  302. * 合同参数
  303. */
  304. // 编辑
  305. $('#edit-4').click(() => {
  306. setReadOnly('#v-pills-4', false);
  307. $('#post-4').parent().show();
  308. $('#edit-4').parent().hide();
  309. });
  310. // 取消
  311. $('#cancel-4').click(() => {
  312. setReadOnly('#v-pills-4', true);
  313. loadDealProperty();
  314. $('#post-4').parent().hide();
  315. $('#edit-4').parent().show();
  316. });
  317. // 提交
  318. $('#post-4').click(() => {
  319. const prop = {
  320. deal_param: {
  321. contractPrice: _.toNumber($('#contract-price').val()),
  322. zanLiePrice: _.toNumber($('#zan-lie-price').val()),
  323. startAdvance: _.toNumber($('#start-advance').val()),
  324. materialAdvance: _.toNumber($('#material-advance').val()),
  325. }
  326. };
  327. const tenderId = window.location.pathname.split('/')[2];
  328. postData('/tender/' + tenderId + '/save', prop, function (data) {
  329. setReadOnly('#v-pills-4', true);
  330. property.deal_param = data.deal_param;
  331. $('#post-4').parent().hide();
  332. $('#edit-4').parent().show();
  333. });
  334. });
  335. /**
  336. * 显示设置
  337. */
  338. // 编辑
  339. $('#edit-5').click(() => {
  340. setReadOnly('#v-pills-5', false);
  341. $('#post-5').parent().show();
  342. $('#edit-5').parent().hide();
  343. });
  344. // 取消
  345. $('#cancel-5').click(() => {
  346. setReadOnly('#v-pills-5', true);
  347. loadDisplayProperty();
  348. $('#post-5').parent().hide();
  349. $('#edit-5').parent().show();
  350. });
  351. // 提交
  352. $('#post-5').click(() => {
  353. const prop = {
  354. display: {
  355. ledger: { dgnQty: $('#ledger-dgn-qty')[0].checked, },
  356. },
  357. };
  358. const tenderId = window.location.pathname.split('/')[2];
  359. console.log(prop);
  360. postData('/tender/' + tenderId + '/save', prop, function (data) {
  361. setReadOnly('#v-pills-5', true);
  362. property.display = data.display;
  363. $('#post-5').parent().hide();
  364. $('#edit-5').parent().show();
  365. });
  366. });
  367. //标段类型选择
  368. $('#tender_type_select').change(function () {
  369. const type = $(this).val() != 0 ? '/?type='+$(this).val() : '';
  370. window.location.href = '/tender' + type;
  371. });
  372. //编辑标段 选择
  373. $('.save-btn').on('click',function () {
  374. $('#saveid').val($(this).attr('tender-id'));
  375. $('#savename').val($(this).attr('tender-name'));
  376. $('#savetype').val($(this).attr('tender-type'));
  377. });
  378. //删除标段 选择
  379. $('.del-btn').on('click',function () {
  380. $('#delid').val($(this).attr('tender-id'));
  381. });
  382. });