plan.vue 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. <template>
  2. <div class="pane-box">
  3. <HeaderTitle title="计划基本信息"> </HeaderTitle>
  4. <el-descriptions :column="5" border>
  5. <el-descriptions-item label="计划单号">{{
  6. productionPlan.code
  7. }}</el-descriptions-item>
  8. <el-descriptions-item
  9. :label="'计划数量'"
  10. >{{ productionPlan.productNum }} {{ clientEnvironmentId == '4' ? '(方)' : productionPlan.measuringUnit }}</el-descriptions-item
  11. >
  12. <el-descriptions-item label="计划创建人">{{
  13. productionPlan.createUserName
  14. }}</el-descriptions-item>
  15. <el-descriptions-item label="计划类型">{{
  16. ['', '内销计划', '外销计划', '预制计划'][productionPlan.planType]
  17. }}</el-descriptions-item>
  18. <el-descriptions-item label="计划重量">{{
  19. productionPlan.productNum &&
  20. productionPlan.productNum * productionPlan.productUnitWeight
  21. }}
  22. {{ productionPlan.weightUnit}}
  23. </el-descriptions-item>
  24. <el-descriptions-item label="计划创建时间">{{
  25. productionPlan.createTime
  26. }}</el-descriptions-item>
  27. <el-descriptions-item label="计划完成日期">{{
  28. productionPlan.planDeliveryTime
  29. }}</el-descriptions-item>
  30. <el-descriptions-item
  31. :label="'要求生产数量' + (clientEnvironmentId == '4' ? '(方)' : '')"
  32. >{{ productionPlan.requiredFormingNum }} {{ clientEnvironmentId == '4' ? '(方)' : productionPlan.measuringUnit }}</el-descriptions-item
  33. >
  34. <el-descriptions-item
  35. :label="'实际交货数量' + (clientEnvironmentId == '4' ? '(方)' : '')"
  36. >
  37. {{ productionPlan.deliveryNum }}
  38. </el-descriptions-item>
  39. <el-descriptions-item label="实际完成时间">
  40. {{ productionPlan.completeTime }}
  41. </el-descriptions-item>
  42. <el-descriptions-item label="要求生产重量">{{
  43. productionPlan.requiredFormingWeight
  44. }} {{ productionPlan.weightUnit}}</el-descriptions-item>
  45. <el-descriptions-item label="使用改型">{{
  46. productionPlan.modification ? '是' : '否'
  47. }}</el-descriptions-item>
  48. <el-descriptions-item label="备注" :span="5">{{
  49. productionPlan.notes
  50. }}</el-descriptions-item>
  51. </el-descriptions>
  52. <HeaderTitle title="产品需求信息" class="mt-20"> </HeaderTitle>
  53. <el-descriptions :column="5" border>
  54. <el-descriptions-item label="物料编码">{{
  55. productRequirementInfo.productCode
  56. }}</el-descriptions-item>
  57. <el-descriptions-item label="牌号">{{
  58. productRequirementInfo.bandNo
  59. }}</el-descriptions-item>
  60. <el-descriptions-item label="重量单位">{{
  61. productRequirementInfo.unitWeight
  62. }}</el-descriptions-item>
  63. <el-descriptions-item label="计量单位">{{
  64. productRequirementInfo.unitMeasurement
  65. }}</el-descriptions-item>
  66. <el-descriptions-item label="产品层次4">{{
  67. productRequirementInfo.productLevel4
  68. }}</el-descriptions-item>
  69. <el-descriptions-item label="产品层次5">{{
  70. productRequirementInfo.productLevel5
  71. }}</el-descriptions-item>
  72. <el-descriptions-item label="物料描述" :span="3">{{
  73. productRequirementInfo.materialDesc
  74. }}</el-descriptions-item>
  75. <el-descriptions-item label="技术要求" :span="2">{{
  76. productRequirementInfo.technicalRequirement
  77. }}</el-descriptions-item>
  78. <el-descriptions-item label="印字要求" :span="2">{{
  79. productRequirementInfo.printingRequirements
  80. }}</el-descriptions-item>
  81. </el-descriptions>
  82. <HeaderTitle title="销售订单信息" class="mt-20"> </HeaderTitle>
  83. <ele-pro-table
  84. ref="table"
  85. :columns="columns"
  86. :datasource="infoData.salesOrderList"
  87. >
  88. <template v-slot:contractNum="{ row }">
  89. {{ row.contractNum }} {{row.measuringUnit}}
  90. </template>
  91. <template v-slot:productSumWeight="{ row }">
  92. {{ row.productSumWeight }} {{row.weightUnit}}
  93. </template>
  94. <template v-slot:number="{ row }">
  95. <div class="progress-box">
  96. <div class="gress">
  97. <el-progress
  98. :percentage="
  99. +(((row.deliveryNum || 0) / row.contractNum) * 100).toFixed(2)
  100. "
  101. color="red"
  102. :show-text="false"
  103. text-color="#000"
  104. :stroke-width="16"
  105. ></el-progress
  106. ></div>
  107. <div :span="6">{{
  108. `${row.deliveryNum || 0}/ ${row.contractNum}`
  109. }}</div>
  110. </div>
  111. </template>
  112. </ele-pro-table>
  113. </div>
  114. </template>
  115. <script>
  116. export default {
  117. props: {
  118. infoData: {
  119. type: Object,
  120. default: () => ({})
  121. }
  122. },
  123. computed: {
  124. clientEnvironmentId() {
  125. return this.$store.state.user.info.clientEnvironmentId;
  126. },
  127. productionPlan() {
  128. return this.infoData.productionPlan || {};
  129. },
  130. productRequirementInfo() {
  131. return this.infoData.productRequirementInfo || {};
  132. }
  133. },
  134. data() {
  135. return {
  136. columns: [
  137. {
  138. prop: 'code',
  139. label: '销售订单',
  140. minWidth: 110
  141. },
  142. {
  143. prop: 'lineNumber',
  144. label: '行号'
  145. },
  146. {
  147. prop: 'contractNum',
  148. slot: 'contractNum',
  149. label: '订单数量'
  150. },
  151. {
  152. prop: 'productSumWeight',
  153. slot: 'productSumWeight',
  154. label: '订单重量'
  155. },
  156. {
  157. prop: 'orderLibraryType',
  158. label: '按单按库',
  159. formatter: (row) => ['', '按单', '按库'][row.orderLibraryType]
  160. },
  161. {
  162. prop: 'deliveryRequirements',
  163. label: '交付要求',
  164. formatter: (row) =>
  165. ['', '普通', '紧急', '重要'][row.deliveryRequirements]
  166. },
  167. {
  168. prop: 'orderType',
  169. label: '订单类型',
  170. formatter: (row) =>
  171. ['', '内销订单', '外销订单', '预制订单'][row.orderType]
  172. },
  173. {
  174. prop: 'releaseTime',
  175. label: '下达时间'
  176. },
  177. {
  178. prop: 'deliveryTime',
  179. label: '交付日期'
  180. },
  181. {
  182. prop: 'customerName',
  183. label: '客户名称'
  184. }
  185. ]
  186. };
  187. }
  188. };
  189. </script>
  190. <style lang="scss" scoped>
  191. .mt-20 {
  192. margin-top: 20px;
  193. }
  194. .progress-box {
  195. display: flex;
  196. justify-content: space-between;
  197. align-items: center;
  198. .gress {
  199. flex: 1;
  200. margin-right: 10px;
  201. }
  202. }
  203. </style>