template-delivery-detail.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <template>
  2. <el-dialog
  3. :title="!id ? '新增': display ? '查看' : '出库'"
  4. width="70%"
  5. :close-on-click-modal="false"
  6. :visible.sync="visible">
  7. <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="auto">
  8. <el-row class="my-row">
  9. <el-col :span="8">
  10. <el-form-item label="模板出库编码" prop="recordCode">
  11. <el-input v-model="dataForm.recordCode" :disabled="true" placeholder="模板出库编码"></el-input>
  12. </el-form-item>
  13. </el-col>
  14. <el-col :span="8" style="padding-left: 20px">
  15. <el-form-item label="产品编号" prop="recordNumber">
  16. <el-input v-model="dataForm.recordNumber" :disabled="true" placeholder="产品编号"></el-input>
  17. </el-form-item>
  18. </el-col>
  19. <el-col :span="8" style="padding-left: 20px">
  20. <el-form-item label="模板名称" prop="templateName">
  21. <el-input v-model="dataForm.templateName" :disabled="true" placeholder="模板名称"></el-input>
  22. </el-form-item>
  23. </el-col>
  24. </el-row>
  25. <el-row class="my-row">
  26. <el-form-item label="备注说明" prop="notes">
  27. <el-input v-model="dataForm.notes" :disabled="true" placeholder="备注说明"></el-input>
  28. </el-form-item>
  29. </el-row>
  30. <el-row>
  31. <div class="title"><span style="color: red">*</span> 模板对应的零件</div>
  32. <el-table
  33. :data="dataList"
  34. border
  35. style="width: 100%;">
  36. <el-table-column
  37. label="序号"
  38. type="index"
  39. width="50"
  40. align="center">
  41. </el-table-column>
  42. <el-table-column
  43. prop="materialName"
  44. header-align="center"
  45. align="center"
  46. label="物品名称">
  47. </el-table-column>
  48. <el-table-column
  49. prop="specifications"
  50. header-align="center"
  51. align="center"
  52. label="规格">
  53. </el-table-column>
  54. <el-table-column
  55. prop="planCnt"
  56. header-align="center"
  57. align="center"
  58. label="计划数量">
  59. </el-table-column>
  60. <el-table-column
  61. prop="unitName"
  62. header-align="center"
  63. align="center"
  64. label="单位">
  65. </el-table-column>
  66. <el-table-column
  67. prop="cnt"
  68. header-align="center"
  69. align="center"
  70. label="仓库库存数量">
  71. </el-table-column>
  72. <el-table-column
  73. v-if="display"
  74. prop="deliveredCnt"
  75. header-align="center"
  76. align="center"
  77. label="已出库">
  78. </el-table-column>
  79. <el-table-column
  80. v-if="!display"
  81. :key="display"
  82. prop="planCntUser"
  83. header-align="center"
  84. align="center"
  85. label="请选择数量">
  86. <template slot-scope="scope">
  87. <el-input-number v-model="scope.row.planCntUser" :min="1" style="width: 140px;"/>
  88. </template>
  89. </el-table-column>
  90. <el-table-column
  91. v-if="!display"
  92. prop="undeliveredCnt"
  93. header-align="center"
  94. align="center"
  95. label="未出库数量">
  96. </el-table-column>
  97. <el-table-column
  98. v-if="display"
  99. prop="batchName"
  100. header-align="center"
  101. align="center"
  102. label="选择零件的批次和数量">
  103. </el-table-column>
  104. <el-table-column
  105. prop="notes"
  106. header-align="center"
  107. align="center"
  108. label="备注">
  109. </el-table-column>
  110. </el-table>
  111. </el-row>
  112. </el-form>
  113. <span slot="footer" class="dialog-footer">
  114. <el-button v-if="!display" @click="visible = false">取消</el-button>
  115. <el-button v-if="!display" type="primary" @click="dataFormSubmit()">确定</el-button>
  116. </span>
  117. </el-dialog>
  118. </template>
  119. <script>
  120. import {getDeliveryDetail, templateOut} from '@/api/warehouse'
  121. export default {
  122. name: 'template-delivery-detail',
  123. data () {
  124. return {
  125. visible: false,
  126. display: false,
  127. dataList: [],
  128. id: 0,
  129. dataForm: { },
  130. dataRule: {
  131. }
  132. }
  133. },
  134. methods: {
  135. async init (id, display) {
  136. this.visible = true
  137. this.id = id || 0
  138. this.display = display
  139. this.dataForm = {}
  140. this.dataList = []
  141. if (!id) return
  142. // 获取详情
  143. await getDeliveryDetail(this.id).then(({data}) => {
  144. if (data && data.code === '200') {
  145. this.dataForm = data.data
  146. if (data.data.whTemplateItemPlanList) {
  147. data.data.whTemplateItemPlanList.forEach((item) => {
  148. this.dataList.push(item)
  149. })
  150. }
  151. }
  152. })
  153. },
  154. // 表单提交
  155. dataFormSubmit () {
  156. this.$refs['dataForm'].validate((valid) => {
  157. if (valid) {
  158. let params = {
  159. 'recordId': this.id,
  160. 'whTemplateItemPlanList': this.dataList
  161. }
  162. templateOut(params).then(({data}) => {
  163. if (data && data.code === '200') {
  164. this.$message({
  165. message: '操作成功',
  166. type: 'success',
  167. duration: 1500,
  168. onClose: () => {
  169. this.visible = false
  170. this.$emit('refreshDataList')
  171. }
  172. })
  173. } else {
  174. this.$message.error(data.msg)
  175. }
  176. })
  177. }
  178. })
  179. },
  180. validateField (type) {
  181. this.$refs.dataForm.validateField(type)
  182. }
  183. }
  184. }
  185. </script>
  186. <style scoped>
  187. .my-line{
  188. border-bottom: 1px solid #c0c4cc;
  189. margin-bottom: 10px;
  190. }
  191. </style>