0202.html 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <!--
  2. 费用明细
  3. -->
  4. <div class="el-main">
  5. <div class="el-tit">
  6. <div class="el-t-l">费用总计</div>
  7. <div class="el-t-m" ms-text="data['总费用']"></div>
  8. </div>
  9. <ul class="el-list" ms-if="data['费用'] && data['费用'].length > 0">
  10. <li class="el-item" ms-repeat="data['费用']">
  11. <p ms-if="el['分类']">
  12. <div ms-repeat-el="el['分类']">
  13. <div class="el-title" ms-if="el['分类']['分类名称'] && el['分类']['分类名称'].trim()">
  14. <span ms-text="el['分类']['分类名称']"></span>
  15. <span ms-text="el['分类']['费用']"></span>
  16. </div>
  17. <div ms-if="el['分类']['详情']">
  18. <p ms-repeat-elem="el['分类']['详情']">
  19. <span class="el-list" ms-if="elem['项目名称'] && elem['项目名称'].length > 0">
  20. <b ms-text="elem['项目名称']"></b>
  21. <b ms-text="elem['总价']"></b>
  22. </span>
  23. </p>
  24. </div>
  25. </div>
  26. </p>
  27. <p ms-if="!el['分类']">
  28. <div class="el-title noline" ms-if="el['项目名称'].trim()"><span ms-text="el['项目名称']"></span><span ms-text="el['总价']"></span></div>
  29. </p>
  30. </li>
  31. </ul>
  32. </div>
  33. <script>
  34. function dsXmlToJson0202_2(xmlStr) {
  35. var $xmlDom = $(xmlStr),
  36. $nodes = {
  37. "费用" :$xmlDom.find('component section entry')
  38. },
  39. countMon = 0;
  40. return {
  41. data:{
  42. "费用": (function() {
  43. var arr = [];
  44. _.each($nodes["费用"].find('group'),function(el,index) {
  45. var $ele = $(el);
  46. arr[index] = {
  47. '分类': {
  48. '分类名称': $ele.find('type').text(),
  49. '费用': $ele.find('fee').text() ? parseFloat($ele.find('fee').text()).toFixed(2) : '',
  50. '详情': []
  51. }
  52. };
  53. _.each($ele.find('item'),function(it,ind) {
  54. var $it = $(it);
  55. arr[index]['分类']['详情'][ind] = {
  56. "扣费时间": $it.find('date').text(), // 该字段实际与提供的文档不符
  57. "项目名称": $it.find('value').text(),
  58. "规格": $it.find('spec').text(), // 提供的文档没有提到该字段
  59. "数量": $it.find('quantity').text() ? parseFloat($it.find('quantity').text()).toFixed(0) + $it.find('unit').text() : '',
  60. "单价": $it.find('price').text() ? parseFloat($it.find('price').text()).toFixed(2) : '',
  61. "总价": $it.find('total').text(),
  62. "备注": $it.find('notes').text()
  63. };
  64. });
  65. });
  66. if(arr.length==0) {
  67. // arr = [{
  68. // "扣费时间": " ",
  69. // "项目名称": " ",
  70. // "数量": " ",
  71. // "单价": " ",
  72. // "总价": " ",
  73. // "备注": " "
  74. // }]
  75. arr = []
  76. } else {
  77. countMon = (function () {
  78. var c = 0;
  79. console.log(arr);
  80. _.each(arr,function (item,index) {
  81. var n = item['分类']['费用'];
  82. c += parseFloat(n);
  83. });
  84. return c.toFixed(2);
  85. })();
  86. }
  87. return arr;
  88. })(),
  89. '总费用':countMon
  90. }
  91. }
  92. }
  93. function dsXmlToJson0202_1(xmlStr) {
  94. var $xmlDom = $(xmlStr),
  95. $nodes = {
  96. "费用" :$xmlDom
  97. } ;
  98. return {
  99. data:{
  100. "费用": (function() {
  101. var arr = [];
  102. _.each($nodes["费用"].find('item'),function(it) {
  103. var $it = $(it);
  104. arr.push({
  105. "项目名称": $it.text(),
  106. "扣费时间": $it.attr('date'),
  107. "规格": $it.attr('spec'),
  108. "数量": $it.attr('quantity') ? parseFloat($it.attr('quantity')).toFixed(2) + $it.attr('unit') : '',
  109. "单价": $it.attr('price') ? parseFloat($it.attr('price')).toFixed(2) : '',
  110. "总价": $it.attr('total'),
  111. "备注": $it.text('notes')
  112. });
  113. })
  114. if(arr.length==0) {
  115. // arr = [{
  116. // "项目名称":" ",
  117. // "扣费时间":" ",
  118. // "规格": " ",
  119. // "数量": " ",
  120. // "单价": " ",
  121. // "总价": " ",
  122. // "备注": " "
  123. // }]
  124. arr = []
  125. } else {
  126. countMon = (_.reduce( _.pluck(arr, '总价'), function(a, b){ return a*1 + b*1; }, 0)).toFixed(2);
  127. }
  128. return arr;
  129. })(),
  130. '总费用':countMon
  131. }
  132. }
  133. }
  134. </script>