index.vue 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. <template>
  2. <div>
  3. <div class="flex-align-center flex-between mt-10">
  4. <div>
  5. <el-input class="inline-16" style="width:200px" size="small" suffix-icon="el-icon-search" v-model="params.content.where.condition" placeholder="产品名称,编号" @keyup.enter.native="listData(params.content.pageNumber = 1)" @clear="listData(params.content.pageNumber = 1)" clearable></el-input>
  6. </div>
  7. <el-button type="primary" size="small" :disabled="tableSelectData.length === 0" @click="onConfirm">添加选中商品</el-button>
  8. </div>
  9. <div>
  10. <el-table
  11. ref="multipleTable"
  12. :data="tableData"
  13. style="width: 100%"
  14. :header-cell-style="{height:'50px',color:'#768093',fontWeight:'400'}"
  15. :cell-style="{height:'50px',color:'#768093',fontWeight:'400'}"
  16. size="mini"
  17. border
  18. @selection-change="selectionChange">
  19. <el-table-column
  20. type="selection"
  21. width="55"
  22. fixed>
  23. </el-table-column>
  24. <el-table-column
  25. prop="itemname"
  26. label="商品名称"
  27. width="180">
  28. </el-table-column>
  29. <el-table-column
  30. prop="itemno"
  31. label="编码"
  32. width="180">
  33. </el-table-column>
  34. <el-table-column
  35. label="型号"
  36. width="180">
  37. <template slot-scope="scope">
  38. <p><span>{{scope.row.model}}</span></p>
  39. </template>
  40. </el-table-column>
  41. <el-table-column
  42. label="规格"
  43. width="180">
  44. <template slot-scope="scope">
  45. <p><span>{{scope.row.spec}}</span></p>
  46. </template>
  47. </el-table-column>
  48. <el-table-column
  49. label="材质"
  50. width="180">
  51. <template slot-scope="scope">
  52. <p><span>{{scope.row.material || '--'}}</span></p>
  53. </template>
  54. </el-table-column>
  55. <el-table-column
  56. label="标准"
  57. width="180">
  58. <template slot-scope="scope">
  59. <p><span>{{scope.row.standards || '--'}}</span></p>
  60. </template>
  61. </el-table-column>
  62. <el-table-column
  63. prop="unit"
  64. label="计量单位">
  65. <template slot-scope="scope">
  66. <el-tag size="mini" type="info" effect="plain">{{scope.row.unit}}/{{scope.row.auxunit}}</el-tag>
  67. </template>
  68. </el-table-column>
  69. <el-table-column
  70. prop="prodline"
  71. label="产线"
  72. width="100">
  73. </el-table-column>
  74. <el-table-column
  75. prop="device"
  76. label="装置"
  77. width="100">
  78. </el-table-column>
  79. <el-table-column
  80. prop="specalnote"
  81. label="特殊说明"
  82. width="100">
  83. </el-table-column>
  84. </el-table>
  85. <div style="margin-top:16px;text-align:right">
  86. <el-pagination
  87. background
  88. small
  89. @size-change="handleSizeChange"
  90. @current-change="handleCurrentChange"
  91. :current-page="currentPage"
  92. :page-size="params.content.pageSize"
  93. layout="total, prev, pager, next, jumper"
  94. :total="total">
  95. </el-pagination>
  96. </div>
  97. </div>
  98. </div>
  99. </template>
  100. <script>
  101. import uploadFile from '@/components/upload/hw_obs_upload'
  102. import previewImage from '@/components/previewImage/index'
  103. export default {
  104. props:['data','drawer'],
  105. data () {
  106. return {
  107. params:{
  108. "id": null,
  109. "content": {
  110. "sa_orderid": 0, //订单ID
  111. "pageNumber": 1,
  112. "pageSize": 20,
  113. "where": {
  114. "condition": ""
  115. }
  116. },
  117. },
  118. tableSelectData:[],
  119. tableData: [],
  120. total:0,
  121. currentPage:0,
  122. }
  123. },
  124. components:{
  125. uploadFile,
  126. previewImage
  127. },
  128. methods:{
  129. async listData () {
  130. switch (this.data.type) {
  131. case '标准订单':
  132. this.params.id = 20221109153502
  133. break;
  134. case '项目订单':
  135. this.params.id = 20230103155002
  136. break;
  137. case '促销订单':
  138. this.params.id = 20230107182302
  139. break;
  140. case '工具订单':
  141. this.params.id = 20221109153502
  142. break;
  143. default:
  144. this.params.id = 20221109153502
  145. break;
  146. }
  147. this.params.content.sa_orderid = this.$route.query.id
  148. const res = await this.$api.requested(this.params)
  149. this.tableData = res.data
  150. this.total = res.total
  151. this.currentPage = res.pageNumber
  152. console.log(res,'mx')
  153. },
  154. handleSizeChange(val) {
  155. // console.log(`每页 ${val} 条`);
  156. this.params.content.pageSize = val
  157. this.listData()
  158. },
  159. handleCurrentChange(val) {
  160. // console.log(`当前页: ${val}`);
  161. this.params.content.pageNumber = val
  162. this.listData()
  163. },
  164. selectionChange (val) {
  165. this.tableSelectData = val
  166. },
  167. onConfirm () {
  168. this.params.content.where.condition = ''
  169. this.$emit('onConfirm',this.tableSelectData,false,true)
  170. this.tableSelectData.forEach(v => {
  171. this.tableData.splice(this.tableData.findIndex(j => j.itemid == v.itemid),1)
  172. })
  173. },
  174. clearSelection () {
  175. this.$refs.multipleTable.clearSelection();
  176. }
  177. },
  178. mounted () {
  179. this.listData()
  180. },
  181. watch:{
  182. drawer (val) {
  183. val?this.listData():''
  184. }
  185. }
  186. }
  187. </script>
  188. <style>
  189. </style>
  190. <style scoped>
  191. .produtMag-panel{
  192. /* margin: 30px; */
  193. padding:0 10px 10px 10px;
  194. background: #fff;
  195. border-radius:5px;
  196. overflow: hidden;
  197. border:1px solid rgb(0 0 0 / 5%)
  198. /* box-shadow: 0 5px 5px rgb(0 0 0 / 10%);
  199. transform: translate3d(0,-2px,0); */
  200. }
  201. .image {
  202. width:40px;height:40px;margin:0px auto;
  203. }
  204. </style>