template-delivery-detail.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. <template>
  2. <!-- <el-dialog
  3. title="查看"
  4. width="70%"
  5. :close-on-click-modal="false"
  6. :visible.sync="visible"> -->
  7. <div>
  8. <div class="my-title">查看</div>
  9. <div style="margin-left: 20px;margin-right: 20px">
  10. <!-- 工作流 -->
  11. <div v-show="dataForm.workFlowBusinessExt">
  12. <el-steps :active="activeNo" finish-status="success" align-center style="margin-bottom: 20px">
  13. <template v-for="(item, i) in stepList">
  14. <el-step :icon="item.icon" :title="item.title" :description="item.description"></el-step>
  15. </template>
  16. </el-steps>
  17. <el-collapse style="margin-bottom: 20px">
  18. <el-collapse-item>
  19. <template slot="title">
  20. <span style="color: red">审批日志(展开查看更多):</span>
  21. </template>
  22. <template v-for="(item, i) in logList">
  23. <div>{{++i}}:{{item.approverName}} {{item.createTime}} {{item.approvalValue}}</div>
  24. </template>
  25. </el-collapse-item>
  26. </el-collapse>
  27. </div>
  28. <div v-if="isFlow">
  29. <approve-component ref="approve" @approveFinished="approveFinished"/>
  30. </div>
  31. <e-desc title="基本信息" column="3">
  32. <e-desc-item label="模板出库编码">{{dataForm.recordCode}}</e-desc-item>
  33. <e-desc-item label="物料编号">{{dataForm.recordNumber}}</e-desc-item>
  34. <e-desc-item label="模板名称">{{dataForm.templateName}}</e-desc-item>
  35. <e-desc-item label="备注说明" span="3">{{dataForm.notes}}</e-desc-item>
  36. </e-desc>
  37. <e-desc title="模板对应的零件">
  38. <el-table
  39. :data="materialList"
  40. border
  41. style="width: 100%;">
  42. <el-table-column
  43. label="序号"
  44. type="index"
  45. width="50"
  46. align="center">
  47. </el-table-column>
  48. <el-table-column
  49. prop="materialName"
  50. header-align="center"
  51. align="center"
  52. label="物品名称">
  53. </el-table-column>
  54. <el-table-column
  55. prop="specifications"
  56. header-align="center"
  57. align="center"
  58. label="规格">
  59. </el-table-column>
  60. <el-table-column
  61. prop="cnt"
  62. header-align="center"
  63. align="center"
  64. label="数量">
  65. </el-table-column>
  66. <el-table-column
  67. prop="unitName"
  68. header-align="center"
  69. align="center"
  70. label="单位">
  71. </el-table-column>
  72. <el-table-column
  73. prop="deliveredCnt"
  74. header-align="center"
  75. align="center"
  76. label="已出库">
  77. </el-table-column>
  78. <el-table-column
  79. prop="batchName"
  80. header-align="center"
  81. align="center"
  82. width="180"
  83. :show-tooltip-when-overflow="true"
  84. label="选择零件的批次和数量">
  85. </el-table-column>
  86. <el-table-column
  87. prop="notes"
  88. header-align="center"
  89. align="center"
  90. width="120"
  91. :show-tooltip-when-overflow="true"
  92. label="备注">
  93. </el-table-column>
  94. </el-table>
  95. </e-desc>
  96. </div>
  97. <span slot="footer" class="dialog-footer">
  98. <el-button @click="onChose">返回</el-button>
  99. </span>
  100. </div>
  101. <!-- </el-dialog> -->
  102. </template>
  103. <script>
  104. import EDesc from '../common/e-desc'
  105. import EDescItem from '../common/e-desc-item'
  106. import { getDeliveryDetail } from '@/api/warehouse'
  107. import { dealStepData, dealStepLogs } from '@/api/util'
  108. import ApproveComponent from '../common/approve-component'
  109. export default {
  110. name: 'template-deliver-detail',
  111. components: {
  112. EDesc, EDescItem, ApproveComponent
  113. },
  114. data () {
  115. return {
  116. visible: false,
  117. isFlow: false,
  118. id: 0,
  119. dataForm: {},
  120. materialList: [],
  121. activeNo: 0,
  122. stepList: [],
  123. logList: []
  124. }
  125. },
  126. methods: {
  127. onChose () {
  128. this.$emit('onChose')
  129. },
  130. async init (id, businessType) {
  131. this.visible = true
  132. this.isFlow = !!(businessType && businessType !== '')
  133. this.stepList = []
  134. this.logList = []
  135. this.id = id || 0
  136. this.dataForm = {}
  137. this.materialList = []
  138. this.getDetails(businessType)
  139. },
  140. getDetails (businessType) {
  141. getDeliveryDetail(this.id).then(({data}) => {
  142. if (data && data.code === '200') {
  143. this.dataForm = data.data
  144. // 流程图展示
  145. if (data.data.workFlowBusinessExt) {
  146. dealStepData(data.data.workFlowBusinessExt.workFlowProcessStepList, this.stepList)
  147. dealStepLogs(data.data.workFlowBusinessExt.processLogList, this.logList)
  148. }
  149. if (data.data.workFlowProcessStepList) {
  150. this.activeNo = Number(data.data.workFlowProcessStepList.activeNo)
  151. }
  152. // 模板对应的零件
  153. this.materialList = data.data.whTemplateItemPlanList
  154. // 初始化审批Form
  155. this.showApproveForm(businessType, this.id)
  156. }
  157. })
  158. },
  159. // 初始化审批Form
  160. showApproveForm (businessType, businessId) {
  161. if (this.isFlow) {
  162. this.$nextTick(() => {
  163. this.$refs.approve.init(businessType, businessId)
  164. })
  165. }
  166. },
  167. // 审批完成
  168. approveFinished () {
  169. this.onChose()
  170. this.$emit('approveFinished')
  171. },
  172. rowStyle ({row, rowIndex}) {
  173. let styles = {}
  174. if (Number(row.deliveredCnt) < Number(row.cnt)) {
  175. styles.background = '#e0838f'
  176. styles.color = 'black'
  177. return styles
  178. } else {
  179. return ''
  180. }
  181. }
  182. }
  183. }
  184. </script>
  185. <style scoped>
  186. .my-line{
  187. border-bottom: 1px solid #c0c4cc;
  188. margin-bottom: 10px;
  189. }
  190. .title{
  191. padding: 10px 0 ;
  192. }
  193. </style>