outsource-chose.vue 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. <template>
  2. <div>
  3. <el-dialog
  4. title="选择委外物品"
  5. width="70%"
  6. :close-on-click-modal="false"
  7. :visible.sync="visible">
  8. <el-form :inline="true" :model="dataForm" @keyup.enter.native="search()">
  9. <el-form-item label="物品名称">
  10. <el-input v-model="dataForm.productName" placeholder="物品名称" clearable></el-input>
  11. </el-form-item>
  12. <el-form-item>
  13. <el-button @click="search()">查询</el-button>
  14. <el-button type="primary" @click="addItems()">添加</el-button>
  15. <!-- <el-button @click="visible = false" type="primary">返回</el-button>-->
  16. </el-form-item>
  17. </el-form>
  18. <el-table
  19. :data="dataList"
  20. border
  21. v-loading="dataListLoading"
  22. @selection-change="selectionChangeHandle"
  23. style="width: 100%;">
  24. <el-table-column
  25. type="selection">
  26. </el-table-column>
  27. <el-table-column
  28. label="序号"
  29. type="index"
  30. width="50"
  31. align="center">
  32. </el-table-column>
  33. <el-table-column
  34. prop="purchaseCode"
  35. header-align="center"
  36. align="center"
  37. min-width="180"
  38. :show-tooltip-when-overflow="true"
  39. label="采购编码">
  40. </el-table-column>
  41. <el-table-column
  42. prop="productName"
  43. header-align="center"
  44. align="center"
  45. width="160"
  46. :show-tooltip-when-overflow="true"
  47. label="产品名称">
  48. </el-table-column>
  49. <el-table-column
  50. prop="specificationExplian"
  51. header-align="center"
  52. align="center"
  53. width="160"
  54. :show-tooltip-when-overflow="true"
  55. label="要求说明">
  56. </el-table-column>
  57. <el-table-column
  58. prop="cnt"
  59. header-align="center"
  60. align="center"
  61. label="数量">
  62. </el-table-column>
  63. <el-table-column
  64. prop="unitName"
  65. header-align="center"
  66. align="center"
  67. min-width="100"
  68. :show-tooltip-when-overflow="true"
  69. label="单位">
  70. </el-table-column>
  71. <el-table-column
  72. prop="deadline"
  73. header-align="center"
  74. align="center"
  75. min-width="160"
  76. :show-tooltip-when-overflow="true"
  77. label="委外期限">
  78. </el-table-column>
  79. <el-table-column
  80. prop="arrivedTime"
  81. header-align="center"
  82. align="center"
  83. min-width="160"
  84. :show-tooltip-when-overflow="true"
  85. label="到料时间">
  86. </el-table-column>
  87. <el-table-column
  88. prop="batchNumber"
  89. header-align="center"
  90. align="center"
  91. min-width="160"
  92. :show-tooltip-when-overflow="true"
  93. label="批次号/用途">
  94. </el-table-column>
  95. <el-table-column
  96. prop="notes"
  97. header-align="center"
  98. align="center"
  99. min-width="180"
  100. :show-overflow-tooltip="true"
  101. label="备注">
  102. </el-table-column>
  103. </el-table>
  104. <el-pagination
  105. @size-change="sizeChangeHandle"
  106. @current-change="currentChangeHandle"
  107. :current-page="pageIndex"
  108. :page-sizes="[10, 20, 50, 100]"
  109. :page-size="pageSize"
  110. :total="totalPage"
  111. layout="total, sizes, prev, pager, next, jumper">
  112. </el-pagination>
  113. </el-dialog>
  114. </div>
  115. </template>
  116. <script>
  117. export default {
  118. name: 'outsource-chose',
  119. data () {
  120. return {
  121. visible: false,
  122. dataForm: {},
  123. dataList: [],
  124. pageIndex: 1,
  125. pageSize: 10,
  126. totalPage: 0,
  127. dataListLoading: false,
  128. dataListSelections: []
  129. }
  130. },
  131. methods: {
  132. init () {
  133. this.visible = true
  134. this.getDataList()
  135. },
  136. search () {
  137. this.pageIndex = 1
  138. this.getDataList()
  139. },
  140. // 获取数据列表
  141. getDataList () {
  142. this.dataListLoading = true
  143. this.$http({
  144. url: this.$http.adornUrl('/biz-service/purCommDetail/listDetail'),
  145. method: 'get',
  146. params: this.$http.adornParams({
  147. 'current': this.pageIndex,
  148. 'size': this.pageSize,
  149. 'productName': this.dataForm.productName ? this.dataForm.productName : null,
  150. 'purchaseState': 3
  151. })
  152. }).then(({data}) => {
  153. if (data && data.code === '200') {
  154. this.dataList = data.data.records
  155. this.totalPage = Number(data.data.total)
  156. } else {
  157. this.dataList = []
  158. this.totalPage = 0
  159. }
  160. this.dataListLoading = false
  161. })
  162. },
  163. // 每页数
  164. sizeChangeHandle (val) {
  165. this.pageSize = val
  166. this.pageIndex = 1
  167. this.getDataList()
  168. },
  169. // 当前页
  170. currentChangeHandle (val) {
  171. this.pageIndex = val
  172. this.getDataList()
  173. },
  174. // 多选
  175. selectionChangeHandle (val) {
  176. this.dataListSelections = val
  177. },
  178. // 添加
  179. exportItem (item) {
  180. this.$emit('addItem', item)
  181. },
  182. addItems () {
  183. if (this.dataListSelections.length === 0) {
  184. this.$message.warning('请选择物品')
  185. return
  186. }
  187. this.visible = false
  188. this.$emit('addItems', this.dataListSelections)
  189. }
  190. }
  191. }
  192. </script>
  193. <style scoped>
  194. </style>