index.vue 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <template>
  2. <div>
  3. <el-input style="width:200px;" placeholder="输入搜索内容" :suffix-icon="param.content.where.condition?param.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="param.content.where.condition" @keyup.native.enter="listData(param.content.pageNumber = 1)" @clear="listData(param.content.pageNumber = 1)" size="small" class="mt-10 input-with-select inline-16 layout_search__panel" clearable>
  4. </el-input>
  5. <addPriceDiff ref="priceDiff" class="inline-16" :data="data" @adjustSuccess="adjustSuccess"></addPriceDiff>
  6. <table-detail :layout="tablecols" :data="list" :custom="true" :width="true" :height="tableHieght">
  7. <template v-slot:customcol="scope" >
  8. <div v-if="scope.column.columnname == 'orderratio'">
  9. {{scope.column.data[[scope.column.columnname]]?Math.round((scope.column.data[[scope.column.columnname]] * 100)*100)/100 + '%':scope.column.data[[scope.column.columnname]] == 0?'0%':'--'}}
  10. </div>
  11. <div v-else-if="scope.column.columnname == 'amount'">
  12. {{scope.column.data[[scope.column.columnname]]?tool.formatAmount(scope.column.data[[scope.column.columnname]],2):scope.column.data[[scope.column.columnname]] == 0?'0.00':'--'}}
  13. </div>
  14. <div v-else-if="scope.column.columnname == 'rebate'" style="color: red">
  15. {{scope.column.data[[scope.column.columnname]]?tool.formatAmount(scope.column.data[[scope.column.columnname]],2):scope.column.data[[scope.column.columnname]] == 0?'0.00':'--'}}
  16. </div>
  17. <div v-else>
  18. {{ scope.column.data[[scope.column.columnname]] || scope.column.columnname === 'operation' ? scope.column.data[[scope.column.columnname]] : '--' }}
  19. </div>
  20. </template>
  21. <template v-slot:opreation="scope">
  22. <el-button type="text" @click="adjustClick(scope.data)" size="mini">调整</el-button>
  23. <el-button type="text" size="mini" @click="goDetail(scope.data)">详 情</el-button>
  24. </template>
  25. </table-detail>
  26. <div class="container normal-panel" style="text-align:right;padding-bottom: 0!important;">
  27. <el-pagination
  28. background
  29. @size-change="handleSizeChange"
  30. @current-change="handleCurrentChange"
  31. :current-page="currentPage"
  32. :page-sizes="[50, 100, 150, 200]"
  33. :page-size="50"
  34. layout="total,sizes, prev, pager, next, jumper"
  35. :total="total">
  36. </el-pagination>
  37. </div>
  38. </div>
  39. </template>
  40. <script>
  41. import addPriceDiff from "./addPriceDiff"
  42. export default {
  43. name: "index",
  44. props:["data"],
  45. components:{addPriceDiff},
  46. data(){
  47. return {
  48. tableHieght:'calc(100vh - 380px)',
  49. tablecols:[],
  50. list:[],
  51. currentPage:0,
  52. total:0,
  53. pageTotal:0,
  54. listqueryid:'',
  55. param:{
  56. "id": 20240829103004,
  57. "content": {
  58. "sa_contractid": "",
  59. "pageNumber": 1,
  60. "pageSize": 50,
  61. "where": {
  62. "condition": ""
  63. }
  64. }
  65. }
  66. }
  67. },
  68. methods:{
  69. async listData(){
  70. this.param.content.sa_contractid = this.$route.query.id
  71. const res = await this.$api.requested(this.param)
  72. this.list = res.data
  73. this.total = res.total
  74. this.currentPage = res.pageNumber
  75. this.pageTotal = res.pageTotal
  76. this.listqueryid = res.listqueryid
  77. sessionStorage.setItem('total',res.total)
  78. },
  79. handleSizeChange(val) {
  80. // console.log(`每页 ${val} 条`);
  81. this.param.content.pageSize = val
  82. this.listData()
  83. },
  84. handleCurrentChange(val) {
  85. // console.log(`当前页: ${val}`);
  86. this.param.content.pageNumber = val
  87. this.listData()
  88. },
  89. adjustClick(data){
  90. this.$refs.priceDiff.drawerFormVisible = true
  91. this.$refs.priceDiff.editBtn(data)
  92. },
  93. adjustSuccess(){
  94. this.listData(this.param.content.pageNumner = 1)
  95. this.$emit('adjustSuccess')
  96. },
  97. goDetail(data){
  98. sessionStorage.setItem('listqueryid',this.listqueryid)
  99. sessionStorage.setItem('rowindexOld',data.rowindex)
  100. sessionStorage.setItem('listqueryidOld',this.$route.query.listqueryid)
  101. sessionStorage.setItem('contractId',this.$route.query.id)
  102. sessionStorage.setItem('typeOld',this.$route.query.type)
  103. sessionStorage.setItem('totalOld',this.total)
  104. sessionStorage.setItem('total',this.total)
  105. sessionStorage.setItem('isGo','1')
  106. this.$store.dispatch('changeDetailDrawer',false)
  107. setTimeout(()=>{
  108. this.$router.push({path:'/contractDetail',
  109. query:{
  110. id:data.sa_contractid,
  111. rowindex:data.rowindex,
  112. listqueryid:this.listqueryid,
  113. type:'居间',
  114. fieldname:'sa_contract'
  115. }})
  116. this.$store.dispatch('changeDetailDrawer',true)
  117. },500)
  118. }
  119. },
  120. mounted() {
  121. this.listData()
  122. },
  123. created() {
  124. this.tablecols = this.tool.tabelCol(this.$route.name).priceDifferenceTable.tablecols
  125. }
  126. }
  127. </script>
  128. <style scoped>
  129. </style>