index.vue 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  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="addModel"></slot>
  16. <slot name="calcPrice"></slot>
  17. </div>
  18. <div style="margin-top: 15px">
  19. <tableLayout :layout="tablecols" :data="list" :opwidth="200" :custom="true" :width="false" :height="tableHieght" fixedName="operation writeoffamount unwriteoffamount">
  20. <template v-slot:customcol="scope">
  21. <div v-if="scope.column.columnname == 'groupname'">
  22. <el-input size="small" v-if="currentModel.sa_promotion_itemgroupid == scope.column.data.sa_promotion_itemgroupid" v-model="scope.column.data.groupname"></el-input>
  23. <span v-else>{{scope.column.data.groupname}}</span>
  24. </div>
  25. <div v-else-if="scope.column.columnname == 'groupqty'">
  26. <el-input size="small" v-if="currentModel.sa_promotion_itemgroupid == scope.column.data.sa_promotion_itemgroupid" v-model="scope.column.data.groupqty"></el-input>
  27. <span v-else>{{scope.column.data.groupqty}}</span>
  28. </div>
  29. <div v-else-if="scope.column.columnname == 'requard'">
  30. <div v-if="currentModel.sa_promotion_itemgroupid == scope.column.data.sa_promotion_itemgroupid">
  31. <el-checkbox v-model="scope.column.data.requard" :true-label="1" :false-label="0"></el-checkbox>
  32. </div>
  33. <span v-else>
  34. <span v-if="scope.column.data.requard">是</span>
  35. <span v-else>否</span>
  36. </span>
  37. </div>
  38. <p v-else>{{scope.column.data[scope.column.columnname]}}</p>
  39. <p v-if="!scope.column.data[scope.column.columnname] && scope.column.data[scope.column.columnname] !== 0 && scope.column.columnname != 'operation'">--</p>
  40. </template>
  41. <template v-slot:opreation="scope">
  42. <el-button class="inline-16" type="text" size="mini" @click="save(scope.data)" v-if="currentModel.sa_promotion_itemgroupid == scope.data.sa_promotion_itemgroupid">保 存</el-button>
  43. <slot v-else name="editModel" :data="scope.data"></slot>
  44. <slot name="product" :data="scope.data"></slot>
  45. <slot name="delModel" :data="scope.data"></slot>
  46. </template>
  47. </tableLayout>
  48. </div>
  49. <div style="margin-top:16px;text-align:right">
  50. <el-pagination
  51. background
  52. small
  53. @size-change="handleSizeChange"
  54. @current-change="handleCurrentChange"
  55. :current-page="params.content.pageNumber"
  56. :page-size="params.content.pageSize"
  57. layout="total, prev, pager, next, jumper"
  58. :total="total">
  59. </el-pagination>
  60. </div>
  61. </div>
  62. </template>
  63. <script>
  64. export default {
  65. props:["data"],
  66. data () {
  67. return {
  68. tableHieght:"calc(100vh - 380px)",
  69. tablecols:[],
  70. list:[],
  71. total:0,
  72. params:{
  73. "id": 20230102112303,
  74. "version":1,
  75. "content": {
  76. "sa_promotionid":'',
  77. "pageNumber":1,
  78. "pageSize":20,
  79. "where":{
  80. "condition":''
  81. }
  82. }
  83. },
  84. options:[
  85. ],
  86. productList:'',
  87. currentModel:{}
  88. }
  89. },
  90. provide () {
  91. return {
  92. }
  93. },
  94. methods:{
  95. async save (data) {
  96. let res = await this.$api.requested({
  97. "id": 20230102112203,
  98. "version":1,
  99. "content": {
  100. "sa_promotion_itemgroupid":data.sa_promotion_itemgroupid, //sat_notice_classid<=0时 为新增
  101. "sa_promotionid": data.sa_promotionid,
  102. "requard":data.requard,
  103. "groupname": data.groupname,
  104. "groupqty": data.groupqty
  105. }
  106. })
  107. this.tool.showMessage(res,() => {
  108. this.$emit('onSuccess')
  109. this.listData()
  110. this.currentModel = ''
  111. })
  112. },
  113. async listData(){
  114. this.params.content.sa_promotionid = this.$route.query.id
  115. const res = await this.$api.requested(this.params)
  116. this.list = res.data
  117. this.total = res.total
  118. console.log(this.list)
  119. },
  120. handleSizeChange(val) {
  121. // console.log(`每页 ${val} 条`);
  122. this.params.content.pageSize = val
  123. this.listData()
  124. },
  125. handleCurrentChange(val) {
  126. // console.log(`当前页: ${val}`);
  127. this.params.content.pageNumber = val
  128. this.listData()
  129. },
  130. clearData(){
  131. this.listData()
  132. },
  133. queryClick(){
  134. this.listData()
  135. }
  136. },
  137. created() {
  138. this.listData()
  139. this.tablecols = this.tool.tabelCol(this.$route.name).promotionModelTable.tablecols
  140. }
  141. }
  142. </script>
  143. <style scoped>
  144. </style>