stock-order-detail.vue 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. <template>
  2. <!-- <el-dialog
  3. title="详情"
  4. width="80%"
  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="dataForm.workFlowBusinessExt && dataForm.workFlowBusinessExt.workFlowProcessStepList?dataForm.workFlowBusinessExt.workFlowProcessStepList.length + 2:0" 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. <div>
  32. <e-desc title="基本信息">
  33. <e-desc-item label="编码">{{dataForm.recordCode}}</e-desc-item>
  34. <e-desc-item label="出入库申请人">{{dataForm.applicant}}</e-desc-item>
  35. <e-desc-item label="申请人部门">{{dataForm.orgName}}</e-desc-item>
  36. </e-desc>
  37. <e-desc title="出入库详情">
  38. <el-table
  39. border
  40. :data="dataList">
  41. <el-table-column
  42. label="序号"
  43. type="index"
  44. align="center"
  45. width="50"
  46. >
  47. </el-table-column>
  48. <el-table-column
  49. prop="materialName"
  50. header-align="center"
  51. align="center"
  52. width="160"
  53. :show-tooltip-when-overflow="true"
  54. label="名称">
  55. </el-table-column>
  56. <el-table-column
  57. prop="categoryName"
  58. header-align="center"
  59. align="center"
  60. label="类别">
  61. </el-table-column>
  62. <el-table-column
  63. prop="unitName"
  64. header-align="center"
  65. align="center"
  66. label="单位">
  67. </el-table-column>
  68. <el-table-column
  69. prop="specifications"
  70. header-align="center"
  71. align="center"
  72. label="规格">
  73. </el-table-column>
  74. <el-table-column
  75. prop="batchNumber"
  76. header-align="center"
  77. align="center"
  78. width="140"
  79. :show-tooltip-when-overflow="true"
  80. label="批次号">
  81. </el-table-column>
  82. <el-table-column
  83. prop="price"
  84. header-align="center"
  85. align="center"
  86. label="单价">
  87. </el-table-column>
  88. <el-table-column
  89. prop="cnt"
  90. header-align="center"
  91. align="center"
  92. label="数量">
  93. </el-table-column>
  94. <el-table-column
  95. prop="-"
  96. header-align="center"
  97. align="center"
  98. label="金额">
  99. <template slot-scope="scope">
  100. <span>{{ scope.row.price * scope.row.cnt }}</span>
  101. </template>
  102. </el-table-column>
  103. <el-table-column
  104. prop="source"
  105. header-align="center"
  106. align="center"
  107. width="140"
  108. :show-tooltip-when-overflow="true"
  109. label="来源">
  110. </el-table-column>
  111. <el-table-column
  112. prop="expirationTime"
  113. header-align="center"
  114. align="center"
  115. width="160"
  116. label="到期时间">
  117. </el-table-column>
  118. <el-table-column
  119. prop="conversionName"
  120. header-align="center"
  121. align="center"
  122. width="140"
  123. :show-tooltip-when-overflow="true"
  124. label="是否换算">
  125. </el-table-column>
  126. <el-table-column
  127. prop="notes"
  128. header-align="center"
  129. align="center"
  130. width="140"
  131. :show-tooltip-when-overflow="true"
  132. label="备注">
  133. </el-table-column>
  134. </el-table>
  135. </e-desc>
  136. </div>
  137. </div>
  138. <span slot="footer" class="dialog-footer">
  139. <el-button @click="onChose">取消</el-button>
  140. </span>
  141. </div>
  142. <!-- </el-dialog> -->
  143. </template>
  144. <script>
  145. import EDesc from '../common/e-desc'
  146. import EDescItem from '../common/e-desc-item'
  147. import { getBoundDetails } from '@/api/warehouse'
  148. import { dealStepData, dealStepLogs } from '@/api/util'
  149. import ApproveComponent from '../common/approve-component'
  150. export default {
  151. name: 'stock-order-detail',
  152. components: {
  153. EDesc, EDescItem, ApproveComponent
  154. },
  155. data () {
  156. return {
  157. visible: false,
  158. isFlow: false,
  159. dataForm: {},
  160. dataList: [],
  161. stepList: [],
  162. logList: []
  163. }
  164. },
  165. methods: {
  166. onChose () {
  167. this.$emit('onChose')
  168. },
  169. async init (id, businessType) {
  170. this.visible = true
  171. this.isFlow = !!(businessType && businessType !== '')
  172. this.dataForm = {}
  173. this.dataList = []
  174. this.stepList = []
  175. this.logList = []
  176. await getBoundDetails(id).then(({data}) => {
  177. if (data && data.code === '200') {
  178. if (data.data[0]) {
  179. this.dataForm = data.data[0]
  180. // 流程图展示
  181. if (data.data[0].workFlowBusinessExt) {
  182. dealStepData(data.data[0].workFlowBusinessExt.workFlowProcessStepList, this.stepList)
  183. dealStepLogs(data.data[0].workFlowBusinessExt.processLogList, this.logList)
  184. }
  185. }
  186. this.dataList = data.data
  187. // 初始化审批Form
  188. this.showApproveForm(businessType, id)
  189. }
  190. })
  191. },
  192. // 初始化审批Form
  193. showApproveForm (businessType, businessId) {
  194. if (this.isFlow) {
  195. this.$nextTick(() => {
  196. this.$refs.approve.init(businessType, businessId)
  197. })
  198. }
  199. },
  200. // 审批完成
  201. approveFinished () {
  202. this.onChose()
  203. this.$emit('approveFinished')
  204. }
  205. }
  206. }
  207. </script>
  208. <style scoped>
  209. </style>