change_set.js 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548
  1. 'use strict';
  2. /**
  3. * 变更令上报和重新上报功能js
  4. *
  5. * @author EllisRan.
  6. * @date 2018/11/22
  7. * @version
  8. */
  9. $(document).ready(() => {
  10. // 上报时按钮点击
  11. $('a[data-target="#sub-ap"]').on('click', function () {
  12. let category = $(this).data('category');
  13. if (category === 'save_change') {
  14. // 保存修改modal
  15. $('.up-change').hide();
  16. $('.save-change').show();
  17. } else {
  18. // 上报审批modal
  19. $('.up-change').show();
  20. $('.save-change').hide();
  21. }
  22. });
  23. // 提交表单
  24. // 上报时按钮点击
  25. $('button[data-sumbit="sumbit_change"]').on('click', function () {
  26. let category = $(this).data('category');
  27. if (category === 'save_change') {
  28. // 保存修改modal
  29. $('#changeStatus').val(2);
  30. // 获取auditlist并填入input中
  31. getAuditList();
  32. if ($('input[name="code"]').val() === '') {
  33. toastr.error('申请编号不能为空!');
  34. return;
  35. }
  36. if ($('input[name="name"]').val() === '') {
  37. toastr.error('工程名称不能为空!');
  38. return;
  39. }
  40. $('#change_form').submit();
  41. } else {
  42. // 上报审批modal
  43. $('#changeStatus').val(1);
  44. getAuditList();
  45. let returnFlag = false;
  46. // 表单判断
  47. if ($('input[name="code"]').val() === '') {
  48. toastr.error('申请编号不能为空!');
  49. returnFlag = true;
  50. }
  51. if ($('input[name="name"]').val() === '') {
  52. toastr.error('工程名称不能为空!');
  53. returnFlag = true;
  54. }
  55. if ($('textarea[name="content"]').val() === '') {
  56. toastr.error('工程变更理由及内容不能为空!');
  57. returnFlag = true;
  58. }
  59. if ($('#change-list').val() === '' && $('#change-whitelist').val() === '') {
  60. toastr.error('请添加变更清单!');
  61. returnFlag = true;
  62. } else {
  63. let changeList = [];
  64. if ($('#change-list').val() !== '') {
  65. changeList = $('#change-list').val().split('^_^');
  66. }
  67. let changeWhiteList = [];
  68. if ($('#change-whitelist').val() !== '') {
  69. changeWhiteList = $('#change-whitelist').val().split('^_^');
  70. }
  71. changeList.push.apply(changeList, changeWhiteList);
  72. for (const [index, cl] of changeList.entries()) {
  73. const clInfo = cl.split(';');
  74. if (clInfo[0] === '' || clInfo[1] === '' || clInfo[3] === '' || clInfo[4] === '' || clInfo[5] === '') {
  75. toastr.error('变更清单第' + (index+1) + '行未完整填写数据(变更详情可空)');
  76. returnFlag = true;
  77. }
  78. }
  79. }
  80. if ($('#changeaudit').val() === '') {
  81. toastr.error('请添加审批流程!');
  82. returnFlag = true;
  83. }
  84. if (returnFlag) {
  85. return;
  86. }
  87. $('#change_form').submit();
  88. $(this).attr('disabled', true);
  89. }
  90. });
  91. // 搜索用户
  92. $('#search_audit_btn').click(function () {
  93. const keyword = $('#search_audit_input').val();
  94. if (keyword === '') {
  95. toastr.error('请输入姓名进行检索!');
  96. } else {
  97. $('#search_audit_list').html('');
  98. const data = { keyword: keyword, type: 'more' };
  99. postData('/search/user', data, function (result) {
  100. const searchList = result;
  101. $('#search_audit_list').html('');
  102. if (searchList.length === 0) {
  103. toastr.error('不存在该用户姓名!');
  104. } else {
  105. let search_audit_html = '';
  106. for (const s of searchList) {
  107. search_audit_html += '<div class="card border-primary" style="margin-bottom: 5px;">' +
  108. '<div class="card-body">' +
  109. '<h5 class="card-title">' +
  110. '<a class="btn btn-primary btn-sm pull-right add_audit_btn" ' +
  111. 'href="javascript:void(0);" data-user="' + s.id + '/%/' + s.name + '/%/' + s.role + '/%/' + s.company + '">添加</a>' + s.name +
  112. '</h5>' +
  113. '<h6 class="card-subtitle mb-2 text-muted">' + s.role + '</h6>' +
  114. '<p class="card-text">' + s.company + '</p>' +
  115. '</div>' +
  116. '</div>';
  117. }
  118. $('#search_audit_list').html(search_audit_html);
  119. }
  120. });
  121. }
  122. });
  123. // 添加到审批流程中
  124. $('body').on('click', '.add_audit_btn', function () {
  125. const userData = $(this).data('user').split('/%/');
  126. // 先判断是否已存在该审批流程的审批人,再添加(不包括上报)
  127. let auditListIdData = [];
  128. $('#auditList li').each(function () {
  129. let aid = $(this).data('auditid');
  130. auditListIdData.push(aid);
  131. });
  132. if (!in_array(auditListIdData, userData[0])) {
  133. // 令其它的审批人流程图标转换
  134. $('#auditList li i').removeClass('fa-stop-circle').addClass('fa-chevron-circle-down');
  135. // 添加新审批人
  136. const addhtml = '<li class="list-group-item" data-auditmsg="' + $(this).data('user') + '"' +
  137. 'data-auditid="' + userData[0] + '" >' +
  138. '<a href="javascript:void(0);" class="text-danger pull-right remove_audit_btn">移除</a>' +
  139. '<i class="fa fa-stop-circle"></i>' +
  140. userData[1] + '<small class="text-muted">' + userData[2] + '</small>' +
  141. '</li>';
  142. $('#auditList').append(addhtml);
  143. } else {
  144. toastr.error('审批流程中已存在该用户!');
  145. }
  146. });
  147. // 移除审批流程的审批人
  148. $('body').on('click', '.remove_audit_btn', function () {
  149. $(this).parents('li').remove();
  150. // 令最后一个图标转换
  151. if ($('#auditList li').length !== 0 && !$('#auditList li i').hasClass('fa-stop-circle')) {
  152. $('#auditList li').eq($('#auditList li').length-1).children('i')
  153. .removeClass('fa-chevron-circle-down').addClass('fa-stop-circle');
  154. }
  155. });
  156. // 打开签约清单modal并删除之前的操作
  157. $('#open-list-modal').click(function () {
  158. $('#table-list-select tr').removeClass('table-success');
  159. });
  160. // 清单选中和移除
  161. $('#table-list-select tr').on('click', function () {
  162. if ($(this).hasClass('table-success')) {
  163. $(this).removeClass('table-success');
  164. // 选中
  165. } else {
  166. $(this).addClass('table-success');
  167. // 移除
  168. }
  169. });
  170. // 添加空白清单or签约清单
  171. $('.add-list-btn').on('click', function () {
  172. //生成table清单
  173. if($(this).hasClass('btn-outline-primary')){
  174. maketablelist('addwhite');
  175. }else{
  176. maketablelist();
  177. }
  178. $('#addlist').modal('hide');
  179. });
  180. // 选中input所有值
  181. $('body').on('focus', ".clist input", function() {
  182. $(this).select();
  183. });
  184. // 移除已选清单并重新编号
  185. $('body').on('click', '#list td a', function () {
  186. const index = $(this).parents('tr').data('index');
  187. const lid = $(this).parents('tr').data('lid');
  188. // 判断属于空白还是普通清单,并删除对应的index值
  189. const changelist = isNaN(lid) ? $('#change-list').val().split('^_^') : $('#change-whitelist').val().split('^_^');
  190. if($.trim(changelist) != ''){
  191. changelist.splice(index, 1);
  192. if (isNaN(lid)) {
  193. $('#change-list').val(changelist.join('^_^'));
  194. } else {
  195. $('#change-whitelist').val(changelist.join('^_^'));
  196. }
  197. }
  198. // 重新绘制table
  199. maketablelist();
  200. });
  201. // 清单输入监控并更新
  202. $('body').on('valuechange', '.clist input', function (e, previous) {
  203. const index = $(this).parents('tr').data('index');
  204. const lid = $(this).parents('tr').data('lid');
  205. const isWhite = !isNaN(lid) ? true : false;
  206. const tr = $('#list tr[data-lid="' + lid + '"]').eq(0);
  207. const site = parseInt($(this).parents('td').data('site'));
  208. switch (site) {
  209. case 0:
  210. case 1:
  211. case 2:
  212. case 4:
  213. tr.children('td[data-site="' + site + '"]').children('input').val($(this).val());
  214. break;
  215. case 5:
  216. case 7:
  217. default:
  218. break;
  219. }
  220. const code = $.trim(tr.children('td[data-site="0"]').children('input').val()) || $.trim(tr.children('td[data-site="0"]').text());
  221. const name = $.trim(tr.children('td[data-site="1"]').children('input').val()) || $.trim(tr.children('td[data-site="1"]').text());
  222. const unit = $.trim(tr.children('td[data-site="3"]').children('select').val()) || $.trim(tr.children('td[data-site="3"]').text());
  223. const price = (tr.children('td[data-site="4"]').children('input').val() != '-' ? tr.children('td[data-site="4"]').children('input').val() : '') || tr.children('td[data-site="4"]').text();
  224. const oamount = (tr.children('td[data-site="5"]').children('input').val() != '-' ? tr.children('td[data-site="5"]').children('input').val() : '') || tr.children('td[data-site="5"]').text();
  225. const scnum = tr.children('td[data-site="7"]').children('input').val() != '-' ? tr.children('td[data-site="7"]').children('input').val() : '';
  226. const detail = $.trim(tr.children('td[data-site="2"]').children('input').val());
  227. const trlist = [code,name,unit,price,oamount,scnum,detail];
  228. console.log(code);
  229. if (isWhite) {
  230. let changelist = $('#change-whitelist').val().split('^_^');
  231. trlist.push(0);
  232. changelist.splice(index, 1, trlist.join(';'));
  233. $('#change-whitelist').val(changelist.join('^_^'));
  234. } else {
  235. let changelist = $('#change-list').val().split('^_^');
  236. trlist.push(lid.split('_')[0]);
  237. changelist.splice(index, 1, trlist.join(';'));
  238. $('#change-list').val(changelist.join('^_^'));
  239. }
  240. tr.children('td[data-site="6"]').text(price != '' && oamount != '' ? roundnum(parseFloat(price).mul(parseFloat(oamount)),totalPriceUnit) : '');
  241. tr.children('td[data-site="8"]').text(price != '' && scnum != '' ? roundnum(parseFloat(price).mul(parseFloat(scnum)),totalPriceUnit) : '');
  242. totalamount(totalPriceUnit);
  243. });
  244. // 空白清单单位选择监控并更新小数位数
  245. $('body').on("change", '.clist select', function () {
  246. const index = $(this).parents('tr').data('index');
  247. const tr = $('#list tr[data-lid="' + index + '"]');
  248. const code = $.trim(tr.children('td[data-site="0"]').children('input').val());
  249. const name = $.trim(tr.children('td[data-site="1"]').children('input').val());
  250. const unit = $(this).val();
  251. const price = tr.children('td[data-site="4"]').children('input').val() != '-' ? tr.children('td[data-site="4"]').children('input').val() : '';
  252. let oamount = tr.children('td[data-site="5"]').children('input').val() != '-' ? tr.children('td[data-site="5"]').children('input').val() : '';
  253. let scnum = tr.children('td[data-site="7"]').children('input').val() != '-' ? tr.children('td[data-site="7"]').children('input').val() : '';
  254. const detail = $.trim(tr.children('td[data-site="2"]').children('input').val());
  255. // 根据单位更新数量位数和合计
  256. const numdecimal = findDecimal(unit);
  257. oamount = roundnum(oamount, numdecimal);
  258. scnum = roundnum(scnum, numdecimal);
  259. tr.children('td[data-site="5"]').children('input').val(oamount);
  260. tr.children('td[data-site="5"]').children('input').attr('onkeyup','RegNum(this,event,'+ numdecimal +')');
  261. tr.children('td[data-site="7"]').children('input').val(scnum);
  262. tr.children('td[data-site="7"]').children('input').attr('onkeyup','RegNum(this,event,'+ numdecimal +')');
  263. const trlist = [code,name,unit,price,oamount,scnum,detail,0];
  264. let changelist = $('#change-whitelist').val().split('^_^');
  265. changelist.splice(index, 1, trlist.join(';'));
  266. $('#change-whitelist').val(changelist.join('^_^'));
  267. tr.children('td[data-site="6"]').text(price != '' && oamount != '' ? roundnum(parseFloat(price).mul(parseFloat(oamount)),totalPriceUnit) : '');
  268. tr.children('td[data-site="8"]').text(price != '' && scnum != '' ? roundnum(parseFloat(price).mul(parseFloat(scnum)),totalPriceUnit) : '');
  269. totalamount(totalPriceUnit);
  270. });
  271. // 自动编号
  272. $('.reduction-code').click(function () {
  273. const code = $(this).data('code');
  274. $('input[name="code"]').val(code);
  275. });
  276. });
  277. //判断元素是否在数组中,相当于php的in_array();
  278. function in_array(arr, obj) {
  279. let i = arr.length;
  280. while (i--) {
  281. if (arr[i] == obj) {
  282. return true;
  283. }
  284. }
  285. return false;
  286. }
  287. // 获取审批流程中审批人列表数据
  288. function getAuditList() {
  289. if ($('#auditList li').length === 0) {
  290. $('#changeaudit').val('');
  291. } else {
  292. let auditInfoArray = [];
  293. $('#auditList li').each(function () {
  294. const aMsg = $(this).data('auditmsg');
  295. auditInfoArray.push(aMsg);
  296. });
  297. $('#changeaudit').val(auditInfoArray.join(','));
  298. }
  299. }
  300. // 重新生成清单
  301. function maketablelist(status){
  302. // 金额位数
  303. const decimal = totalPriceUnit;
  304. let html = '';
  305. // 原有清单(不含空白清单)
  306. let radionList = $('#change-list').val() !== '' ? $('#change-list').val().split('^_^') : [];
  307. // 获取选中的签约清单并插入到原有清单中
  308. $('#table-list-select .table-success').each(function(){
  309. let code = $(this).children('td').eq(1).text();
  310. let name = $(this).children('td').eq(2).text();
  311. let unit = $(this).children('td').eq(3).text();
  312. let price = $(this).children('td').eq(4).text();
  313. let oamount = $(this).children('td').eq(5).text();
  314. // 根据单位获取数量的位数,并得出
  315. let numdecimal = findDecimal(unit);
  316. let scnum = makedecimalzero(numdecimal);
  317. let detail = '';
  318. let lid = $(this).data('lid');
  319. let trlist = [code, name, unit, price, oamount, scnum, detail, lid];
  320. radionList.push(trlist.join(';'));
  321. });
  322. // 排序
  323. radionList.sort();
  324. let index = 0;
  325. let whiteIndex = 0;
  326. let deteletr = '<td><a class="text-danger">移除</a></td>';
  327. for (const radion of radionList) {
  328. const radionArray = radion.split(';');
  329. let code = radionArray[0];
  330. let name = radionArray[1];
  331. let unit = radionArray[2];
  332. let price = radionArray[3];
  333. let oamount = radionArray[4];
  334. let scnum = radionArray[5];
  335. let detail = radionArray[6];
  336. let lid = radionArray[7];
  337. let sctotal = scnum !== '' && scnum !== '-' ? roundnum(parseFloat(price).mul(parseFloat(scnum)),decimal) : '';
  338. // 根据单位获取数量的位数,并得出
  339. let numdecimal = findDecimal(unit);
  340. html += '<tr class="clist clid" data-lid="' + lid + '_' + index + '" data-index="' + index + '">' +
  341. '<td data-site="0">'+ code +'</td>' +
  342. '<td data-site="1">'+ name +'</td>' +
  343. '<td data-site="2"><input class="form-control input-sm" type="text" placeholder="变更详情" value="' + detail + '"></td>' +
  344. '<td data-site="3">'+ unit +'</td>' +
  345. '<td data-site="4">'+ roundnum(price, decimal) +'</td>' +
  346. '<td data-site="5">'+ roundnum(oamount, numdecimal) +'</td>' +
  347. '<td data-site="6">'+ roundnum(parseFloat(price).mul(parseFloat(oamount)),decimal) +'</td>' +
  348. '<td data-site="7"><input class="form-control input-sm" type="text" onkeyup="RegNum(this,event,'+ numdecimal +')" placeholder="请输入变更数量" value="'+ (scnum != '-' ? roundnum(scnum, numdecimal) : '') +'"></td>' +
  349. '<td data-site="8">'+ sctotal +'</td>'+
  350. deteletr +'</tr>';
  351. index ++;
  352. }
  353. $('#change-list').val(radionList.join('^_^'));
  354. let radionWhiteList = $('#change-whitelist').val() !== '' ? $('#change-whitelist').val().split('^_^') : [];
  355. //判断是否添加空白清单
  356. if(status == 'addwhite'){
  357. let trlist = ['','',changeUnits.t.unit,makedecimalzero(decimal),makedecimalzero(changeUnits.t.value),makedecimalzero(changeUnits.t.value),'',0];
  358. radionWhiteList.push(trlist.join(';'));
  359. }
  360. for (const rw of radionWhiteList) {
  361. const radionArray = rw.split(';');
  362. let code = radionArray[0];
  363. let name = radionArray[1];
  364. let unit = radionArray[2];
  365. let price = radionArray[3];
  366. let oamount = radionArray[4];
  367. let scnum = radionArray[5];
  368. let detail = radionArray[6];
  369. let ototal = price != '' && oamount != '' ? roundnum(parseFloat(price).mul(parseFloat(oamount)),decimal) : '';
  370. let sctotal = price != '' && scnum != '' ? roundnum(parseFloat(price).mul(parseFloat(scnum)),decimal) : '';
  371. let optionlist = '';
  372. for (const j in changeUnits) {
  373. if (changeUnits[j].unit !== undefined && changeUnits[j].unit === unit) {
  374. optionlist += '<option selected="selected">'+ changeUnits[j].unit +'</option>';
  375. } else if(changeUnits[j].unit !== undefined) {
  376. optionlist += '<option>'+ changeUnits[j].unit +'</option>';
  377. }
  378. }
  379. // 根据单位获取数量的位数,并得出
  380. let numdecimal = findDecimal(unit);
  381. html += '<tr class="clist" data-lid="' + whiteIndex + '" data-index="' + whiteIndex + '">' +
  382. '<td data-site="0"><input class="form-control input-sm" type="text" value="'+ code +'" placeholder="请输入清单编号"></td>' +
  383. '<td data-site="1"><input class="form-control input-sm" type="text" value="'+ name +'" placeholder="请输入名称"></td>' +
  384. '<td data-site="2"><input class="form-control input-sm" type="text" value="'+ detail +'" placeholder="变更详情"></td>' +
  385. '<td data-site="3"><select class="form-control input-sm">'+ optionlist +'</select></td>' +
  386. '<td data-site="4"><input class="form-control input-sm" type="text" onkeyup="RegNum(this,event,'+ decimal +')" value="'+ roundnum(price, decimal) +'" placeholder="请输入单价"></td>' +
  387. '<td data-site="5"><input class="form-control input-sm" type="text" onkeyup="RegNum(this,event,'+ numdecimal +')" value="'+ roundnum(oamount, numdecimal) +'" placeholder="请输入数量"></td>' +
  388. '<td data-site="6">'+ ototal +'</td>' +
  389. '<td data-site="7"><input class="form-control input-sm" type="text" onkeyup="RegNum(this,event,'+ numdecimal +')" value="'+ roundnum(scnum, numdecimal) +'" placeholder="请输入变更数量"></td>' +
  390. '<td data-site="8">'+ sctotal +'</td>'+
  391. deteletr +'</tr>';
  392. whiteIndex ++;
  393. }
  394. $('#change-whitelist').val(radionWhiteList.join('^_^'));
  395. table.destroy();
  396. $('#list').html(html);
  397. table = $('#tablelist').removeAttr('width').DataTable({
  398. columnDefs: [
  399. { className: 'allwidth1', width: 100, targets: 0 },
  400. { className: 'allwidth2', width: 150, targets: [1,2] },
  401. { className: 'allwidth4', width: 40, targets: 9 },
  402. { className: 'allwidth5', width: 60, targets: 3 },
  403. { className: 'allwidth3',width: 80, targets: '_all' }
  404. ],
  405. fixedColumns: {
  406. leftColumns: 5
  407. }
  408. });
  409. // 判断是否显示变更详情
  410. if (!$('.change-detail-checkbox').is(':checked')) {
  411. const column = table.column(2);
  412. column.visible(!column.visible());
  413. }
  414. totalamount(decimal);
  415. $('#table-list-select tr').removeClass('table-success');
  416. }
  417. //统计合计金额
  418. function totalamount(decimal){
  419. let zero = makedecimalzero(decimal);
  420. let ctotalnum = 0;
  421. let ototalnum = 0;
  422. $('.clist').each(function(){
  423. let ctotal = $(this).children('td[data-site="8"]').text();
  424. ctotalnum = ctotal != '' ? parseFloat(ctotalnum).add(parseFloat(ctotal)) : parseFloat(ctotalnum);
  425. let ototal = $(this).children('td[data-site="6"]').text();
  426. ototalnum = ototal != '' ? parseFloat(ototalnum).add(parseFloat(ototal)) : parseFloat(ototalnum);
  427. });
  428. $('.ctatalamount').eq(1).text(ctotalnum != 0 ? roundnum(ctotalnum,decimal) : zero);
  429. $('.otatalamount').eq(1).text(ototalnum != 0 ? roundnum(ototalnum,decimal) : zero);
  430. }
  431. //四舍五入或末尾加零,实现类似php的 sprintf("%.".decimal."f", val);
  432. function roundnum(val,decimals){
  433. if(val !== ''){
  434. val = parseFloat(val);
  435. if(decimals < 1){
  436. val = (Math.round(val)).toString();
  437. }else{
  438. let num = val.toString();
  439. if(num.lastIndexOf('.') == -1){
  440. num += '.';
  441. num += makezero(decimals);
  442. val = num;
  443. }else{
  444. let valdecimals = num.split('.')[1].length;
  445. if(parseInt(valdecimals) < parseInt(decimals)){
  446. num += makezero(parseInt(decimals)-parseInt(valdecimals));
  447. val = num;
  448. }else if(parseInt(valdecimals) > parseInt(decimals)){
  449. val = parseFloat(val) != 0 ? Math.round(val.mul(makemultiple(decimals))).div(makemultiple(decimals)) : makedecimalzero(decimals);
  450. let num = val.toString();
  451. if(num.lastIndexOf('.') == -1){
  452. num += '.';
  453. num += makezero(decimals);
  454. val = num;
  455. }else {
  456. let valdecimals = num.split('.')[1].length;
  457. if (parseInt(valdecimals) < parseInt(decimals)) {
  458. num += makezero(parseInt(decimals) - parseInt(valdecimals));
  459. val = num;
  460. }
  461. }
  462. }
  463. }
  464. }
  465. }
  466. return val;
  467. }
  468. //根据位数生成编号,3位-》001 ,5位-》00001
  469. function makenum(num){
  470. let arr = new Array(num);
  471. for(let i=0;i< num;i++){
  472. if(i != num-1){
  473. arr[i] = 0;
  474. }else{
  475. arr[i] = 1;
  476. }
  477. }
  478. return arr.join('');
  479. }
  480. //生成num位的0
  481. function makezero(num){
  482. let arr = new Array(num);
  483. for(let i=0;i< num;i++){
  484. arr[i] = 0;
  485. }
  486. return arr.join('');
  487. }
  488. //生成num小数位数的0.
  489. function makedecimalzero(num){
  490. if(num < 1){
  491. return '0';
  492. }else{
  493. return '0.'+makezero(num);
  494. }
  495. }
  496. //生成num位的10倍数
  497. function makemultiple(num){
  498. return Math.pow(10,parseInt(num));
  499. }
  500. // 找出单位对应的小数位数值
  501. function findDecimal(unit) {
  502. let value = 2;
  503. for (const d in changeUnits) {
  504. if (changeUnits[d].unit !== undefined && changeUnits[d].unit === unit) {
  505. value = changeUnits[d].value;
  506. break;
  507. }
  508. }
  509. return value;
  510. }