综合办公系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

budgetTable.vue 5.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <template>
  2. <div>
  3. <h2 style="text-align:center;">项目直接生产成本预算表</h2>
  4. <table border="1" class="table">
  5. <tr>
  6. <td class="head">项目名称</td>
  7. <td colspan="3">{{ projectForm.projectName }}</td>
  8. <td class="head">项目编号</td>
  9. <td colspan="2">{{ projectForm.projectNumber }}</td>
  10. </tr>
  11. <tr v-if="userLen != 1">
  12. <td :rowspan="userLen" class="head">人员</td>
  13. <td class="head">姓名</td>
  14. <td class="head">部门</td>
  15. <td class="head">岗位工资</td>
  16. <td class="head">人员成本(天)</td>
  17. <!-- <td class="head">进出场单价</td> -->
  18. <td class="head">预算天数</td>
  19. <td class="head">金额</td>
  20. </tr>
  21. <tr v-for="user in budgetForm.chooseUser" :key="'user' + user.userId">
  22. <td>{{ user.nickName }}</td>
  23. <td>{{ user.dept.deptName }}</td>
  24. <td>{{ user.salary.salary }}</td>
  25. <td>{{ parseFloat(user.salary.salary / 31).toFixed(2) }}</td>
  26. <!-- <td>{{ user.inOutPrice }}</td> -->
  27. <td>{{ user.days }}</td>
  28. <td>{{ user.staffCost }}</td>
  29. </tr>
  30. <tr v-if="carLen != 1">
  31. <td :rowspan="carLen" class="head">车辆</td>
  32. <td class="head">车牌号</td>
  33. <td class="head">油耗</td>
  34. <td class="head">总里程</td>
  35. <td class="head">折旧成天(天)</td>
  36. <td class="head">预算天数</td>
  37. <td class="head">金额</td>
  38. </tr>
  39. <tr v-for="car in budgetForm.chooseCar" :key="'car' + car.carId">
  40. <td>{{ car.licensePlate }}</td>
  41. <td>{{ car.mileage }}</td>
  42. <td>{{ car.distance }}</td>
  43. <td>{{ car.dayCost }}</td>
  44. <td>{{ car.days }}</td>
  45. <td>{{ car.expense }}</td>
  46. </tr>
  47. <tr v-if="deviceLen != 1">
  48. <td :rowspan="deviceLen" class="head">设备</td>
  49. <td class="head">设备名称</td>
  50. <td class="head">规格型号</td>
  51. <td class="head">品牌</td>
  52. <td class="head">折旧成本(天)</td>
  53. <td class="head">预算天数</td>
  54. <td class="head">金额</td>
  55. </tr>
  56. <tr v-for="device in budgetForm.chooseDevice" :key="'device' + device.deviceId">
  57. <td>{{ device.name }}</td>
  58. <td>{{ device.series }}</td>
  59. <td>{{ device.brand }}</td>
  60. <td>{{ device.dayCost }}</td>
  61. <td>{{ device.days }}</td>
  62. <td>{{ device.depreciation }}</td>
  63. </tr>
  64. <tr>
  65. <td colspan="6" class="head">间接成本小计</td>
  66. <td>{{ budgetForm.fixCost }}</td>
  67. </tr>
  68. <tr>
  69. <td :rowspan="workLen" class="head">预计结算金额</td>
  70. <td class="head">工作内容</td>
  71. <td class="head">比例尺</td>
  72. <td class="head">总工作量</td>
  73. <td class="head">单价</td>
  74. <td class="head">系数</td>
  75. <td class="head">金额</td>
  76. </tr>
  77. <tr v-for="(work, index) in budgetForm.workList" :key="'work' + index">
  78. <td>{{ work.content }}</td>
  79. <td>{{ work.scale }}</td>
  80. <td>{{ work.workload }}</td>
  81. <td>{{ work.price }}</td>
  82. <td>{{ work.coefficient }}</td>
  83. <td>{{ work.settle }}</td>
  84. </tr>
  85. <tr>
  86. <td colspan="5" class="head">进出场津贴</td>
  87. <td>{{ budgetForm.inOutPriceSum }}</td>
  88. </tr>
  89. <tr>
  90. <td colspan="5" class="head">外协费用</td>
  91. <td>{{ budgetForm.outExpense }}</td>
  92. </tr>
  93. <tr>
  94. <td colspan="5" class="head">商务费用</td>
  95. <td>{{ budgetForm.businessExpense }}</td>
  96. </tr>
  97. <tr>
  98. <td colspan="5" class="head">车船租赁</td>
  99. <td>{{ budgetForm.rentExpense }}</td>
  100. </tr>
  101. <tr>
  102. <td colspan="5" class="head">其他费用</td>
  103. <td>{{ budgetForm.otherExpense }}</td>
  104. </tr>
  105. <tr>
  106. <td colspan="6" class="head">直接成本小计</td>
  107. <td>{{ budgetForm.directExpense }}</td>
  108. </tr>
  109. <tr>
  110. <td colspan="6" class="head">总成本=(间接成本+直接成本)*120%</td>
  111. <td>{{ totalBudget }}</td>
  112. </tr>
  113. </table>
  114. </div>
  115. </template>
  116. <script>
  117. export default {
  118. props: {
  119. budgetForm: {
  120. type: Object,
  121. require: true
  122. },
  123. projectForm: {
  124. type: Object,
  125. require: true
  126. }
  127. },
  128. data() {
  129. return {
  130. userLen: 1,
  131. carLen: 1,
  132. deviceLen: 1,
  133. workLen: 1,
  134. totalBudget: 0
  135. }
  136. },
  137. created() {
  138. console.log(this.budgetForm);
  139. this.userLen = this.budgetForm.chooseUser.length + 1;
  140. this.carLen = this.budgetForm.chooseCar.length + 1;
  141. this.deviceLen = this.budgetForm.chooseDevice.length + 1;
  142. this.workLen = this.budgetForm.workList.length + 6;
  143. this.totalBudget = ((Number(this.budgetForm.directExpense) + Number(this.budgetForm.fixCost)) * 1.2).toFixed(2);
  144. let sum = 0
  145. for(let s of this.budgetForm.chooseUser){
  146. sum = sum + (Number(s.inOutPrice) * Number(s.days))
  147. }
  148. this.budgetForm.inOutPriceSum = sum.toFixed(2)
  149. this.$emit('getTotal',this.totalBudget)
  150. },
  151. methods: {
  152. },
  153. }
  154. </script>
  155. <style lang="scss" scoped>
  156. .table {
  157. /*居中*/
  158. // margin: 0 auto;
  159. /*边框*/
  160. /* border: 1px solid black; */
  161. text-align: center;
  162. border-collapse: collapse;
  163. margin: 0 auto;
  164. /*设置背景颜色*/
  165. /* background-color: #bfa; */
  166. td {
  167. padding: 5px;
  168. height: 40px;
  169. }
  170. }
  171. .head {
  172. // background-color: var(--current-color);
  173. // opacity: 0.5;
  174. // color: #fff;
  175. font-weight: bold;
  176. }
  177. </style>