add.vue 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <template>
  2. <div>
  3. <el-button size="small" :type="data.status == '审核'?'':'primary'" @click="addShow" :disabled="data.status == '审核'">添 加</el-button>
  4. <el-drawer
  5. title="添加收入明细"
  6. :visible.sync="drawerVisible"
  7. size="70%"
  8. direction="rtl"
  9. append-to-body
  10. @close="onClose">
  11. <div class="drawer__panel" style="margin-bottom: 0!important;">
  12. <el-input style="width:200px;margin-bottom: 10px" 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="input-with-select inline-16 layout_search__panel" clearable>
  13. </el-input>
  14. <tableNewLayout :layout="tablecols" :data="list" :opwidth="200" height="calc(100vh - 235px)" :width="true" :custom="true" :checkbox="true" @selectionChange="selectionChange">
  15. <template v-slot:customcol="scope">
  16. <div v-if="scope.column.columnname === 'amount'">
  17. {{scope.column.data[[scope.column.columnname]]?'¥ '+tool.formatAmount(scope.column.data[[scope.column.columnname]],2):scope.column.data[[scope.column.columnname]] == 0?'¥ 0.00':'--'}}
  18. </div>
  19. <div v-else-if="scope.column.columnname === 'orderExpectedamount'">
  20. {{scope.column.data[[scope.column.columnname]]?'¥ '+tool.formatAmount(scope.column.data[[scope.column.columnname]],2):scope.column.data[[scope.column.columnname]] == 0?'¥ 0.00':'¥ 0.00'}}
  21. </div>
  22. <div v-else-if="scope.column.columnname === 'orderprice'">
  23. {{scope.column.data[[scope.column.columnname]]?'¥ '+tool.formatAmount(scope.column.data[[scope.column.columnname]],2):scope.column.data[[scope.column.columnname]] == 0?'¥ 0.00':'--'}}
  24. </div>
  25. <div v-else-if="scope.column.columnname === 'orderamount'">
  26. {{scope.column.data[[scope.column.columnname]]?'¥ '+tool.formatAmount(scope.column.data[[scope.column.columnname]],2):scope.column.data[[scope.column.columnname]] == 0?'¥ 0.00':'--'}}
  27. </div>
  28. <div v-else-if="scope.column.columnname === 'price'">
  29. {{scope.column.data[[scope.column.columnname]]?'¥ '+tool.formatAmount(scope.column.data[[scope.column.columnname]],2):scope.column.data[[scope.column.columnname]] == 0?'¥ 0.00':'--'}}
  30. </div>
  31. <div v-else-if="scope.column.columnname === 'rewardamount'">
  32. {{scope.column.data[[scope.column.columnname]]?'¥ '+tool.formatAmount(scope.column.data[[scope.column.columnname]],2):scope.column.data[[scope.column.columnname]] == 0?'¥ 0.00':'--'}}
  33. </div>
  34. <div v-else-if="scope.column.columnname === 'payapplyamount'">
  35. {{scope.column.data[[scope.column.columnname]]?'¥ '+tool.formatAmount(scope.column.data[[scope.column.columnname]],2):scope.column.data[[scope.column.columnname]] == 0?'¥ 0.00':'--'}}
  36. </div>
  37. <div v-else-if="scope.column.columnname === 'unpayapplyamount'">
  38. {{scope.column.data[[scope.column.columnname]]?'¥ '+tool.formatAmount(scope.column.data[[scope.column.columnname]],2):scope.column.data[[scope.column.columnname]] == 0?'¥ 0.00':'--'}}
  39. </div>
  40. <div v-else-if="scope.column.columnname === 'rate'">
  41. {{scope.column.data[[scope.column.columnname]]?Math.round(tool.formatAmount(scope.column.data[[scope.column.columnname]]*100)*100)/100 + '%':scope.column.data[[scope.column.columnname]] == 0?'0%':'--'}}
  42. </div>
  43. <div v-else-if="scope.column.columnname === 'allocation_rate'">
  44. {{scope.column.data[[scope.column.columnname]]?Math.round(tool.formatAmount(scope.column.data[[scope.column.columnname]]*100)*100)/100 + '%':scope.column.data[[scope.column.columnname]] == 0?'0%':'--'}}
  45. </div>
  46. <div v-else-if="scope.column.columnname === 'afterrebateprice'">
  47. {{scope.column.data[[scope.column.columnname]]?'¥ '+tool.formatAmount(scope.column.data[[scope.column.columnname]],2):scope.column.data[[scope.column.columnname]] == 0?'¥ 0.00':'¥ 0.00'}}
  48. </div>
  49. <div v-else-if="scope.column.columnname === 'afterrebateamount'">
  50. {{scope.column.data[[scope.column.columnname]]?'¥ '+tool.formatAmount(scope.column.data[[scope.column.columnname]],2):scope.column.data[[scope.column.columnname]] == 0?'¥ 0.00':'¥ 0.00'}}
  51. </div>
  52. <div v-else-if="scope.column.columnname === 'subhrcashbilldetailamount'">
  53. {{scope.column.data[[scope.column.columnname]]?'¥ '+tool.formatAmount(scope.column.data[[scope.column.columnname]],2):scope.column.data[[scope.column.columnname]] == 0?'¥ 0.00':'¥ 0.00'}}
  54. </div>
  55. <div v-else>
  56. {{scope.column.data[[scope.column.columnname]] || scope.column.columnname === 'operation'?scope.column.data[[scope.column.columnname]]:'--'}}
  57. </div>
  58. </template>
  59. </tableNewLayout>
  60. <div class="container normal-panel" style="text-align:right">
  61. <el-pagination
  62. background
  63. @size-change="handleSizeChange"
  64. @current-change="handleCurrentChange"
  65. :current-page="currentPage"
  66. :page-sizes="[50, 100, 150, 200]"
  67. :page-size="100"
  68. layout="total,sizes, prev, pager, next, jumper"
  69. :total="total">
  70. </el-pagination>
  71. </div>
  72. </div>
  73. <div class="fixed__btn__panel">
  74. <el-button size="small" @click="onClose" class="normal-btn-width">取 消</el-button>
  75. <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">确 定</el-button>
  76. </div>
  77. </el-drawer>
  78. </div>
  79. </template>
  80. <script>
  81. export default {
  82. name: "add",
  83. props:['data'],
  84. data(){
  85. return {
  86. drawerVisible:false,
  87. param:{
  88. "id": 20240111143204,
  89. "content": {
  90. "hrid": "",
  91. "sa_hraccountclassid":"",
  92. "sa_hrcashbillid":"",
  93. "pageNumber": 1,
  94. "pageSize": 100,
  95. "where": {
  96. "condition": ""
  97. }
  98. }
  99. },
  100. currentPage:0,
  101. total:0,
  102. selectData:[],
  103. tablecols:'',
  104. list:[],
  105. }
  106. },
  107. methods:{
  108. addShow(){
  109. this.drawerVisible = true
  110. this.listData(this.param.content.pageNumber = 1)
  111. },
  112. async listData(){
  113. this.param.content.hrid = this.data.hrid
  114. this.param.content.sa_hraccountclassid = this.data.sa_hraccountclassid
  115. this.param.content.sa_hrcashbillid = this.data.sa_hrcashbillid
  116. const res = await this.$api.requested(this.param)
  117. this.list = res.data
  118. this.total = res.total
  119. this.currentPage = res.pageNumber
  120. },
  121. async onSubmit(){
  122. const res = await this.$api.requested({
  123. "id": 20240111131204,
  124. "content": {
  125. "sa_hrcashbillid": this.$route.query.id,
  126. "hrcashbilldetail": this.selectData
  127. }
  128. })
  129. this.tool.showMessage(res,()=>{
  130. this.drawerVisible = false
  131. this.listData(this.param.content.pageNumber = 1)
  132. this.$emit('onSuccess')
  133. })
  134. },
  135. onClose(){
  136. },
  137. selectionChange(data){
  138. this.selectData = data.map(item=>{
  139. return {
  140. "sa_hrcashbilldetailid": 0,
  141. "allocation_rate": item.allocation_rate,
  142. "ownerid": item.sa_hrcashbilldetailid,
  143. "rate": item.rate,
  144. "price": item.price,
  145. "sa_orderitemsid": item.sa_orderitemsid,
  146. "sa_orderid": item.sa_orderid,
  147. "remarks": '',
  148. "orderprice": item.orderprice,
  149. "amount": item.amount
  150. }
  151. })
  152. },
  153. handleSizeChange(val) {
  154. // console.log(`每页 ${val} 条`);
  155. this.param.content.pageSize = val
  156. this.listData()
  157. },
  158. handleCurrentChange(val) {
  159. // console.log(`当前页: ${val}`);
  160. this.param.content.pageNumber = val
  161. this.listData()
  162. },
  163. },
  164. created() {
  165. this.tablecols = this.tool.tabelCol(this.$route.name).incomeSelectTable.tablecols
  166. }
  167. }
  168. </script>
  169. <style scoped>
  170. </style>