saleClass.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <template>
  2. <div>
  3. <div style="display:flex;align-items:center">
  4. <el-input
  5. placeholder="请输入搜索内容"
  6. suffix-icon="el-icon-search"
  7. v-model="params.content.where.condition"
  8. style="width:200px"
  9. size="mini"
  10. class="input-with-select inline-16"
  11. @keyup.native.enter="listData(params.content.pageNumber=1)"
  12. @clear="clearData"
  13. clearable>
  14. </el-input>
  15. <slot name="addClass" :data="{checkArr:checkArr,data:data}"></slot>
  16. </div>
  17. <div style="margin-top: 15px">
  18. <tableLayout :layout="tablecols" :data="list" :opwidth="200" :custom="true" :width="false" :height="tableHieght" fixedName="operation">
  19. <template v-slot:customcol="scope">
  20. <div v-if="scope.column.columnname == 'price'">
  21. <el-input size="small" v-if="currentProduct.sa_aftersalesmag_itemsid == scope.column.data.sa_aftersalesmag_itemsid" v-model="scope.column.data.price"></el-input>
  22. <span v-else>{{scope.column.data.price}}</span>
  23. </div>
  24. <div v-else-if="scope.column.columnname == 'qty'">
  25. <el-input size="small" v-if="currentProduct.sa_aftersalesmag_itemsid == scope.column.data.sa_aftersalesmag_itemsid" v-model="scope.column.data.qty"></el-input>
  26. <span v-else>{{scope.column.data.qty}}</span>
  27. </div>
  28. <div v-else-if="scope.column.columnname == 'reason'">
  29. <div v-if="currentProduct.sa_aftersalesmag_itemsid == scope.column.data.sa_aftersalesmag_itemsid">
  30. <el-input type="textarea" size="mini" v-model="scope.column.data.reason"></el-input>
  31. </div>
  32. <div v-else>{{scope.column.data.reason ? scope.column.data.reason : '--'}}</div>
  33. </div>
  34. <p v-else>{{scope.column.data[scope.column.columnname]}}</p>
  35. <p v-if="!scope.column.data[scope.column.columnname] && scope.column.data[scope.column.columnname] !== 0 && scope.column.columnname != 'operation'&& scope.column.columnname != 'reason'">--</p>
  36. </template>
  37. <template v-slot:opreation="scope">
  38. <slot name="delProduct" :data="scope.data"></slot>
  39. </template>
  40. </tableLayout>
  41. </div>
  42. <div style="margin-top:16px;text-align:right">
  43. <el-pagination
  44. background
  45. small
  46. @size-change="handleSizeChange"
  47. @current-change="handleCurrentChange"
  48. :current-page="params.content.pageNumber"
  49. :page-size="params.content.pageSize"
  50. layout="total, prev, pager, next, jumper"
  51. :total="total">
  52. </el-pagination>
  53. </div>
  54. </div>
  55. </template>
  56. <script>
  57. export default {
  58. props:["data"],
  59. data () {
  60. return {
  61. tableHieght:"calc(100vh - 380px)",
  62. tablecols:[],
  63. list:[],
  64. total:0,
  65. params:{
  66. "id": 20220927090202,
  67. "content": {
  68. "itemid": "",
  69. "itemno": "",
  70. "pageNumber": 1,
  71. "pageSize": 20,
  72. "where": {
  73. "condition": ""
  74. }
  75. },
  76. },
  77. options:[
  78. ],
  79. productList:'',
  80. currentProduct:{},
  81. checkArr:[]
  82. }
  83. },
  84. methods:{
  85. async listData(){
  86. this.params.content.itemid = this.data.itemid
  87. this.params.content.itemno = this.data.itemno
  88. const res = await this.$api.requested(this.params)
  89. this.list = res.data
  90. this.total = res.total
  91. this.checkArr = this.list.map(item => item.itemclassid)
  92. console.log(this.list)
  93. },
  94. handleSizeChange(val) {
  95. // console.log(`每页 ${val} 条`);
  96. this.params.content.pageSize = val
  97. this.listData()
  98. },
  99. handleCurrentChange(val) {
  100. // console.log(`当前页: ${val}`);
  101. this.params.content.pageNumber = val
  102. this.listData()
  103. },
  104. clearData(){
  105. this.listData()
  106. },
  107. queryClick(){
  108. this.listData()
  109. }
  110. },
  111. created() {
  112. this.listData()
  113. this.tablecols = this.tool.tabelCol(this.$route.name).salerClassTable.tablecols
  114. }
  115. }
  116. </script>
  117. <style scoped>
  118. </style>