tender.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  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. // 小数位数
  63. $('#decimal-qty').val(property.decimal.qty);
  64. $('#decimal-tp').val(property.decimal.tp);
  65. $('#decimal-deal')[0].checked = property.decimal.deal;
  66. $('#decimal-deal-qty').val(property.decimal.dealQty);
  67. $('#decimal-deal-tp').val(property.decimal.dealTp);
  68. $('#decimal-pay')[0].checked = property.decimal.pay;
  69. $('#decimal-pay-qty').val(property.decimal.payQty);
  70. $('#decimal-pay-tp').val(property.decimal.payTp);
  71. // 合同参数
  72. $('#contract-price').val(property.deal_param.contractPrice);
  73. $('#zan-lie-price').val(property.deal_param.zanLiePrice);
  74. $('#c-zl').val(property.deal_param.contractPrice - property.deal_param.zanLiePrice);
  75. $('#start-advance').val(property.deal_param.startAdvance);
  76. $('#material-advance').val(property.deal_param.materialAdvance);
  77. }
  78. // 显示设置
  79. function loadDisplayProperty () {
  80. $('#ledger-dgn-qty')[0].checked = property.display.ledger.dgnQty;
  81. }
  82. // 设置某个div下全部的input、select是否只读
  83. function setReadOnly(obj, readOnly) {
  84. if (readOnly) {
  85. $('input', obj).attr('readonly', '');
  86. $('select', obj).attr('disabled', '');
  87. $('input[type=checkbox]', obj).attr('disabled', '');
  88. } else {
  89. $('input', obj).removeAttr('readonly');
  90. $('select', obj).removeAttr('disabled');
  91. $('input[type=checkbox]', obj).removeAttr('disabled');
  92. }
  93. }
  94. // 标段属性
  95. function loadTenderProperty() {
  96. // 加载属性
  97. loadCommonProperty();
  98. loadCalculateProperty();
  99. loadDisplayProperty();
  100. // 设置只读
  101. setReadOnly('#shuxing', true);
  102. }
  103. // 获取当前合同支付应该使用的小数位数
  104. function getDealTpDecimal() {
  105. const spec = $('#decimal-pay')[0].checked;
  106. return spec ? _.toNumber($('#decimal-pay-tp').val()) : _.toNumber($('#decimal-tp').val());
  107. }
  108. // 四舍五入
  109. function roundPrice(obj) {
  110. const iDecimal = getDealTpDecimal();
  111. obj.val(_.round(_.toNumber(obj.val()), iDecimal));
  112. }
  113. // 计算签约合同价(不含暂列金额)
  114. function calculateC2() {
  115. const constract = _.toNumber($('#contract-price').val());
  116. const zanLie = _.toNumber($('#zan-lie-price').val());
  117. const iDecimal = getDealTpDecimal();
  118. $('#c-zl').val(_.round(constract - zanLie, iDecimal));
  119. }
  120. // 根据小数位数,计算全部的合同参数
  121. function CalculateAllDealParam() {
  122. roundPrice($('#contract-price'));
  123. roundPrice($('#zan-lie-price'));
  124. roundPrice($('#start-advance'));
  125. roundPrice($('#material-advance'));
  126. calculateC2();
  127. }
  128. $(document).ready(function() {
  129. loadTenderProperty();
  130. /**
  131. * 属性
  132. */
  133. // 编辑
  134. $('#edit-agi').click(() => {
  135. setReadOnly('#v-pills-agi', false);
  136. $('#post-agi').parent().show();
  137. $('#edit-agi').parent().hide();
  138. });
  139. // 取消
  140. $('#cancel-agi').click(() => {
  141. setReadOnly('#v-pills-agi', true);
  142. loadCommonProperty();
  143. $('#post-agi').parent().hide();
  144. $('#edit-agi').parent().show();
  145. });
  146. // 提交
  147. $('#post-agi').click(() => {
  148. const prop = {
  149. deal_info: {
  150. buildName: $('#build-name').val(),
  151. dealCode: $('#deal-code').val(),
  152. dealName: $('#deal-name').val(),
  153. },
  154. construction_unit: {
  155. build: {
  156. company: $('#build-company').val(),
  157. corporation: $('#build-corporation').val(),
  158. date: $('#build-date').val(),
  159. },
  160. contract1: {
  161. company: $('#contract1-company').val(),
  162. corporation: $('#contract1-corporation').val(),
  163. date: $('#contract1-date').val(),
  164. },
  165. contract2: {
  166. company: $('#contract2-company').val(),
  167. corporation: $('#contract2-corporation').val(),
  168. date: $('#contract2-date').val(),
  169. },
  170. supervision1: {
  171. company: $('#supervision1-company').val(),
  172. corporation: $('#supervision1-corporation').val(),
  173. date: $('#supervision1-date').val(),
  174. },
  175. supervision2: {
  176. company: $('#supervision2-company').val(),
  177. corporation: $('#supervision2-corporation').val(),
  178. date: $('#supervision2-date').val(),
  179. },
  180. },
  181. tech_param: {
  182. loadLevel: _.toNumber($('#loadLevel').val()),
  183. loadLength: _.toNumber($('#length').val()),
  184. startPeg: $('#start-peg').val(),
  185. endPeg: $('#end-peg').val(),
  186. laneCount: _.toNumber($('#lane-count').val()),
  187. dealPeriod: $('#deal-period').val(),
  188. startDate: $('#start-date').val(),
  189. planEndDate: $('#plan-end-date').val(),
  190. }
  191. };
  192. const tenderId = window.location.pathname.split('/')[2];
  193. console.log(prop);
  194. postData('/api/tender/' + tenderId + '/save', prop, function (data) {
  195. setReadOnly('#v-pills-agi', true);
  196. property.deal_info = data.deal_info;
  197. property.construction_unit = data.construction_unit;
  198. property.tech_param = data.tech_param;
  199. $('#post-agi').parent().hide();
  200. $('#edit-agi').parent().show();
  201. });
  202. });
  203. /**
  204. * 计算参数
  205. */
  206. // 编辑
  207. $('#edit-count').click(() => {
  208. setReadOnly('#v-pills-count', false);
  209. $('#post-count').parent().show();
  210. $('#edit-count').parent().hide();
  211. });
  212. // 取消
  213. $('#cancel-count').click(() => {
  214. setReadOnly('#v-pills-count', true);
  215. loadCommonProperty();
  216. $('#post-count').parent().hide();
  217. $('#edit-count').parent().show();
  218. });
  219. // 提交
  220. $('#post-count').click(() => {
  221. const prop = {
  222. decimal: {
  223. qty: _.toNumber($('#decimal-qty').val()),
  224. tp: _.toNumber($('#decimal-tp').val()),
  225. deal: $('#decimal-deal')[0].checked,
  226. dealQty: _.toNumber($('#decimal-deal-qty').val()),
  227. dealTp: _.toNumber($('#decimal-deal-tp').val()),
  228. pay: $('#decimal-pay')[0].checked,
  229. payQty: _.toNumber($('#decimal-pay-qty').val()),
  230. payTp: _.toNumber($('#decimal-pay-tp').val()),
  231. },
  232. deal_param: {
  233. contractPrice: _.toNumber($('#contract-price').val()),
  234. zanLiePrice: _.toNumber($('#zan-lie-price').val()),
  235. startAdvance: _.toNumber($('#start-advance').val()),
  236. materialAdvance: _.toNumber($('#material-advance').val()),
  237. }
  238. };
  239. const tenderId = window.location.pathname.split('/')[2];
  240. console.log(prop);
  241. postData('/api/tender/' + tenderId + '/save', prop, function (data) {
  242. setReadOnly('#v-pills-count', true);
  243. property.decimal = data.decimal;
  244. property.deal_param = data.deal_param;
  245. $('#post-count').parent().hide();
  246. $('#edit-count').parent().show();
  247. });
  248. });
  249. /**
  250. * 显示设置
  251. */
  252. // 编辑
  253. $('#edit-display').click(() => {
  254. setReadOnly('#v-pills-display', false);
  255. $('#post-display').parent().show();
  256. $('#edit-display').parent().hide();
  257. });
  258. // 取消
  259. $('#cancel-display').click(() => {
  260. setReadOnly('#v-pills-display', true);
  261. loadCommonProperty();
  262. $('#post-display').parent().hide();
  263. $('#edit-display').parent().show();
  264. });
  265. // 提交
  266. $('#post-display').click(() => {
  267. const prop = {
  268. display: {
  269. ledger: { dgnQty: $('#ledger-dgn-qty')[0].checked, },
  270. },
  271. };
  272. const tenderId = window.location.pathname.split('/')[2];
  273. console.log(prop);
  274. postData('/api/tender/' + tenderId + '/save', prop, function (data) {
  275. setReadOnly('#v-pills-display', true);
  276. property.display = data.display;
  277. $('#post-display').parent().hide();
  278. $('#edit-display').parent().show();
  279. });
  280. });
  281. //标段类型选择
  282. $('#tender_type_select').change(function () {
  283. const type = $(this).val() != 0 ? '/?type='+$(this).val() : '';
  284. window.location.href = '/tender' + type;
  285. });
  286. //编辑标段 选择
  287. $('.save-btn').on('click',function () {
  288. $('#saveid').val($(this).attr('tender-id'));
  289. $('#savename').val($(this).attr('tender-name'));
  290. $('#savetype').val($(this).attr('tender-type'));
  291. });
  292. //删除标段 选择
  293. $('.del-btn').on('click',function () {
  294. $('#delid').val($(this).attr('tender-id'));
  295. });
  296. });