baseInfo.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <template>
  2. <div class="baseInfo">
  3. <el-form ref="form" :model="dataInfo">
  4. <el-col :span="4" label-width="80px">
  5. <el-form-item label="类型:" prop="type">
  6. {{
  7. dataInfo.bomType == 1
  8. ? 'PBOM'
  9. : dataInfo.bomType == 2
  10. ? 'MBOM'
  11. : dataInfo.bomType == 3
  12. ? 'ABOM'
  13. : dataInfo.bomType == 4
  14. ? 'EBOM'
  15. : ''
  16. }}
  17. </el-form-item>
  18. </el-col>
  19. <el-row>
  20. <el-col :span="5" label-width="78px">
  21. <el-form-item label="BOM编码:" prop="type">
  22. {{ dataInfo.code }}
  23. </el-form-item>
  24. </el-col>
  25. <el-col :span="5" label-width="78px">
  26. <el-form-item label="BOM名称:" prop="type">
  27. {{ dataInfo.name }}
  28. </el-form-item>
  29. </el-col>
  30. <el-col :span="4" label-width="78px">
  31. <el-form-item label="版本号:" prop="type">
  32. <span v-if="dataInfo.versions.includes('V')">{{
  33. dataInfo.versions
  34. }}</span>
  35. <span v-else> V{{ dataInfo.versions }}.0</span>
  36. </el-form-item>
  37. </el-col>
  38. <el-col :span="4" label-width="80px">
  39. <el-form-item label="审批状态:" prop="type">
  40. <el-select
  41. size="mini"
  42. style="width: 120px"
  43. disabled
  44. v-model="dataInfo.approvalStatus"
  45. placeholder="请选择"
  46. >
  47. <el-option
  48. v-for="item in statusOptions"
  49. :label="item.label"
  50. :value="item.value"
  51. :key="item.value"
  52. >
  53. </el-option>
  54. </el-select>
  55. </el-form-item>
  56. </el-col>
  57. <el-col :span="2" label-width="78px">
  58. <el-button
  59. type="text"
  60. @click="handleEdit"
  61. v-if="
  62. dataInfo.approvalStatus != 1 &&
  63. dataInfo.approvalStatus != 2 &&
  64. dataInfo.parentId == '0'
  65. "
  66. >
  67. 编辑</el-button
  68. >
  69. </el-col>
  70. </el-row>
  71. <el-button
  72. type="primary"
  73. size="medium"
  74. v-if="
  75. dataInfo.parentId != '0' &&
  76. dataInfo.resourceBomId &&
  77. dataInfo.id != dataInfo.resourceBomId
  78. "
  79. @click="bomConfig"
  80. >跳转来源版本</el-button
  81. >
  82. </el-form>
  83. <baseInfoSave
  84. v-if="baseInfoShow"
  85. @close="baseClose"
  86. :categoryObj="dataInfo"
  87. :isEdit="true"
  88. ></baseInfoSave>
  89. <BomDetailsPop ref="bomDrawer"></BomDetailsPop>
  90. </div>
  91. </template>
  92. <script>
  93. import baseInfoSave from './baseInfoSave.vue';
  94. import BomDetailsPop from './detailsPop.vue';
  95. export default {
  96. components: {
  97. baseInfoSave,
  98. BomDetailsPop
  99. },
  100. data() {
  101. return {
  102. baseInfoShow: false,
  103. statusOptions: [
  104. {
  105. label: '审批通过',
  106. value: 2
  107. },
  108. {
  109. label: '审批中',
  110. value: 1
  111. },
  112. {
  113. label: '草稿',
  114. value: 0
  115. },
  116. {
  117. label: '审核不通过',
  118. value: 3
  119. }
  120. ]
  121. };
  122. },
  123. props: {
  124. dataInfo: {
  125. type: Object,
  126. default() {
  127. return {};
  128. }
  129. }
  130. },
  131. mounted() {
  132. console.log(this.dataInfo, 'baseClose');
  133. },
  134. methods: {
  135. handleEdit() {
  136. this.baseInfoShow = true;
  137. },
  138. baseClose(formData) {
  139. if (formData) {
  140. this.$set(this.dataInfo, 'code', formData.code);
  141. this.$set(this.dataInfo, 'name', formData.name);
  142. this.$forceUpdate();
  143. }
  144. this.baseInfoShow = false;
  145. },
  146. bomConfig() {
  147. this.$emit('getNewBomData', this.dataInfo);
  148. // let rowData = {
  149. // categoryId: this.dataInfo.categoryId,
  150. // categoryName: this.dataInfo.name,
  151. // code: this.dataInfo.code,
  152. // versions: this.dataInfo.resourceBomVersion,
  153. // rootPathIdParent: this.dataInfo.categoryLevelPathIdParent,
  154. // isProduct: this.dataInfo,
  155. // bomType: Number(this.dataInfo.bomType),
  156. // isTemp: this.dataInfo.isTemp
  157. // }
  158. // this.$refs.bomDrawer.open(rowData);
  159. // this.open(rowData);
  160. // console.log(this.$refs, 'refs');
  161. }
  162. }
  163. };
  164. </script>
  165. <style lang="scss" scoped>
  166. .baseInfo {
  167. padding: 2px;
  168. box-sizing: border-box;
  169. border: 1px solid #f1f2f2;
  170. }
  171. .el-form-item {
  172. margin-bottom: 2px;
  173. }
  174. </style>