RvsReport.vue 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. <template>
  2. <div>
  3. <div class="rvsreport-all">
  4. <div class="rvsreport-haed">
  5. <el-date-picker
  6. @change="datechange"
  7. style="width:350px"
  8. v-model="value2"
  9. type="daterange"
  10. align="left"
  11. unlink-panels
  12. range-separator="至"
  13. start-placeholder="开始日期"
  14. end-placeholder="结束日期"
  15. :picker-options="pickerOptions">
  16. </el-date-picker>
  17. <el-button @click="Skeclick" type="primary">生 成</el-button>
  18. </div>
  19. <div class="hjbox">
  20. 应收合计:{{total_fr}} 已收合计:{{total_pr}} 余款合计:{{total_balance}}
  21. </div>
  22. <div class="rvsreport-table">
  23. <el-table
  24. :data="tableData"
  25. border
  26. style="width: 100%">
  27. <el-table-column
  28. prop="no"
  29. label="序号"
  30. width="50">
  31. </el-table-column>
  32. <el-table-column
  33. prop="clientUnit"
  34. label="单位"
  35. width="180">
  36. </el-table-column>
  37. <el-table-column
  38. prop="teamName"
  39. label="团组名称"
  40. width="180">
  41. </el-table-column>
  42. <el-table-column
  43. prop="visitDate"
  44. label="出访时间"
  45. width="180">
  46. </el-table-column>
  47. <el-table-column
  48. prop="frPrice"
  49. label="应收"
  50. width="180">
  51. <template slot-scope="scope">
  52. {{scope.row.frPrice+' RMB'}}
  53. </template>
  54. </el-table-column>
  55. <el-table-column
  56. prop="prPrice"
  57. label="已收"
  58. width="180">
  59. <template slot-scope="scope">
  60. {{scope.row.prPrice+' RMB'}}
  61. </template>
  62. </el-table-column>
  63. <el-table-column
  64. prop="balPrice"
  65. label="余款"
  66. width="180">
  67. <template slot-scope="scope">
  68. {{scope.row.balPrice+' RMB'}}
  69. </template>
  70. </el-table-column>
  71. <el-table-column
  72. prop="prClient"
  73. label="收款单位"
  74. width="180">
  75. </el-table-column>
  76. <el-table-column
  77. prop="schedule"
  78. label="收款进度">
  79. </el-table-column>
  80. </el-table>
  81. </div>
  82. </div>
  83. </div>
  84. </template>
  85. <script>
  86. export default {
  87. data() {
  88. return {
  89. pickerOptions: {
  90. shortcuts: [{
  91. text: '最近一周',
  92. onClick(picker) {
  93. const end = new Date();
  94. const start = new Date();
  95. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  96. picker.$emit('pick', [start, end]);
  97. }
  98. }, {
  99. text: '最近一个月',
  100. onClick(picker) {
  101. const end = new Date();
  102. const start = new Date();
  103. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  104. picker.$emit('pick', [start, end]);
  105. }
  106. }, {
  107. text: '最近三个月',
  108. onClick(picker) {
  109. const end = new Date();
  110. const start = new Date();
  111. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  112. picker.$emit('pick', [start, end]);
  113. }
  114. }]
  115. },
  116. value2: '',
  117. tableData: [],
  118. total_balance:'0.00',
  119. total_fr:'0.00',
  120. total_pr:'0.00',
  121. };
  122. },
  123. methods:{
  124. datechange(){
  125. console.log(this.getdate(this.value2[0]))
  126. console.log(this.getdate(this.value2[1]))
  127. this.PostSyntheticalReceivableByDateRange(this.getdate(this.value2[0]),this.getdate(this.value2[1]),1)
  128. },
  129. getdate(val){
  130. var date=new Date(val);
  131. var y=date.getFullYear();
  132. var m=date.getMonth()+1<10?'0'+(date.getMonth()+1):date.getMonth()+1;
  133. var d=date.getDate()<10?'0'+date.getDate():date.getDate();
  134. return y+'-'+m+'-'+d
  135. },
  136. //生成
  137. Skeclick(){
  138. var beginDt=this.getdate(this.value2[0]);
  139. var endDt=this.getdate(this.value2[1]);
  140. var requestType=2;
  141. if(beginDt=='NaN-NaN-NaN'||endDt=='NaN-NaN-NaN'){
  142. this.$message.error('请选择时间段');
  143. return
  144. }
  145. var url = "/api/Financial/PostSyntheticalReceivableByDateRange"
  146. var that = this
  147. this.$axios({
  148. method: 'post',
  149. url: url,
  150. headers: {
  151. Authorization: 'Bearer ' + that.token
  152. },
  153. data:{
  154. portType: 1,
  155. beginDt: beginDt,
  156. endDt: endDt,
  157. requestType: requestType,
  158. }
  159. }).then(function (res) {
  160. console.log(res)
  161. if(res.data.code==200){
  162. window.open(res.data.data.url);
  163. }
  164. })
  165. },
  166. PostSyntheticalReceivableByDateRange(beginDt,endDt,requestType){
  167. var url = "/api/Financial/PostSyntheticalReceivableByDateRange"
  168. var that = this
  169. this.$axios({
  170. method: 'post',
  171. url: url,
  172. headers: {
  173. Authorization: 'Bearer ' + this.token
  174. },
  175. data:{
  176. portType: 1,
  177. beginDt: beginDt,
  178. endDt: endDt,
  179. requestType: requestType,
  180. }
  181. }).then(function (res) {
  182. console.log(res)
  183. if(res.data.code==200){
  184. that.tableData=res.data.data.dataList;
  185. that.total_fr=res.data.data.total_fr;
  186. that.total_pr=res.data.data.total_pr;
  187. that.total_balance=res.data.data.total_balance;
  188. }
  189. })
  190. },
  191. }
  192. }
  193. </script>
  194. <style>
  195. .rvsreport-all{
  196. background-color: #fff;
  197. padding: 10px;
  198. box-shadow: 0 0 5px #0005;
  199. border-radius: 10px;
  200. height: 100%;
  201. min-height: 830px;
  202. }
  203. .rvsreport-haed{
  204. display: flex;
  205. justify-content: space-between;
  206. margin-bottom: 20px;
  207. }
  208. .hjbox{
  209. font-size: 14px;
  210. color: #909399;
  211. font-weight:600 ;
  212. margin-bottom: 5px;
  213. }
  214. </style>