view-dialog.vue 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <template>
  2. <ele-modal
  3. :visible.sync="visible"
  4. title="BOM详情"
  5. width="80%"
  6. @close="cancel"
  7. >
  8. <headerTitle title="基本信息"></headerTitle>
  9. <el-form label-width="100px" label-position="left">
  10. <el-row>
  11. <el-col :span="8">
  12. <el-form-item label="BOM编码" prop="code">
  13. {{ formData.code }}
  14. </el-form-item>
  15. </el-col>
  16. <el-col :span="8">
  17. <el-form-item label="BOM名称" prop="name">
  18. {{ formData.name }}
  19. </el-form-item>
  20. </el-col>
  21. <el-col :span="8">
  22. <el-form-item label="所属工厂" prop="factoryId">
  23. {{ formData.factoryName }}
  24. </el-form-item>
  25. </el-col>
  26. <el-col :span="8">
  27. <el-form-item label="产品编码" prop="categoryCode">
  28. {{ formData.categoryCode }}
  29. </el-form-item>
  30. </el-col>
  31. <el-col :span="8">
  32. <el-form-item label="产品名称" prop="categoryName">
  33. {{ formData.categoryName }}
  34. </el-form-item>
  35. </el-col>
  36. <el-col :span="8">
  37. <el-form-item label="版本号" prop="version">
  38. {{ formData.version }}
  39. </el-form-item>
  40. </el-col>
  41. <el-col :span="8">
  42. <el-form-item label="基本数量" prop="baseCount">
  43. {{ formData.baseCount }}
  44. {{ formData.baseCountUnit }}
  45. </el-form-item>
  46. </el-col>
  47. <el-col :span="8">
  48. <el-form-item label="状态" prop="status">
  49. {{ statusOpt[formData.status] }}
  50. </el-form-item>
  51. </el-col>
  52. <el-col :span="8">
  53. <el-form-item label="工序" prop="taskName">
  54. {{ formData.taskName }}
  55. </el-form-item>
  56. </el-col>
  57. </el-row>
  58. </el-form>
  59. <ele-pro-table
  60. ref="table"
  61. :columns="columns"
  62. :datasource="datasource"
  63. height="calc(100vh - 350px)"
  64. :initLoad="false"
  65. >
  66. </ele-pro-table>
  67. <!-- <div slot="footer" class="footer">
  68. <el-button @click="cancel">返回</el-button>
  69. </div> -->
  70. </ele-modal>
  71. </template>
  72. <script>
  73. import factorySelect from '@/components/CommomSelect/factory-select.vue';
  74. import { getById, detailPage } from '@/api/material/BOM';
  75. export default {
  76. components: { factorySelect },
  77. props: {
  78. statusOpt: Object
  79. },
  80. data () {
  81. return {
  82. visible: false,
  83. row: {},
  84. formData: {
  85. code: '',
  86. name: '',
  87. factoryId: '',
  88. categoryCode: '',
  89. categoryId: '',
  90. categoryName: '',
  91. categoryType: '',
  92. baseCount: '',
  93. baseCountUnit: '',
  94. status: '-1'
  95. },
  96. columns: [
  97. {
  98. type: 'index',
  99. width: 55,
  100. align: 'center'
  101. },
  102. {
  103. label: '子项编号',
  104. prop: 'subCode'
  105. },
  106. {
  107. label: '物料名称',
  108. prop: 'categoryName'
  109. },
  110. {
  111. label: '物料编码',
  112. prop: 'categoryCode'
  113. },
  114. {
  115. label: '牌号',
  116. prop: 'brandNum'
  117. },
  118. {
  119. label: '型号',
  120. prop: 'model'
  121. },
  122. {
  123. label: '数量',
  124. prop: 'count'
  125. },
  126. {
  127. label: '单位',
  128. prop: 'unit'
  129. // },
  130. // {
  131. // action: 'action',
  132. // slot: 'action',
  133. // label: '操作'
  134. }
  135. ],
  136. categoryList: [
  137. {
  138. value: '1',
  139. label: '产品'
  140. },
  141. {
  142. value: '2',
  143. label: '部件'
  144. },
  145. {
  146. value: '3',
  147. label: '零件'
  148. }
  149. ],
  150. };
  151. },
  152. methods: {
  153. open (row) {
  154. this.visible = true;
  155. this._getById(row.id);
  156. this.$nextTick(() => {
  157. this.$refs.table.reload({ where: { bomId: row.id } });
  158. });
  159. },
  160. async _getById (id) {
  161. const data = await getById(id);
  162. this.formData = data;
  163. },
  164. cancel () {
  165. this.visible = false;
  166. },
  167. datasource (res) {
  168. const { page, limit, where } = res;
  169. return detailPage({
  170. pageNum: page,
  171. size: limit,
  172. ...where
  173. });
  174. }
  175. }
  176. };
  177. </script>