list.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>资金流水</title>
  6. <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  7. <link href="../../css/mui.min.css" rel="stylesheet" />
  8. <link href="../../css/mui.picker.min.css" rel="stylesheet" />
  9. <style>
  10. .m_box {padding: 10px 10px 25px 15px;box-shadow: 0 1px 6px #dbdbdb;border-radius: 8px;position: relative;overflow: hidden;}
  11. .fm{width: 100%;z-index: 1;}
  12. .mui-content{padding: 0px 15px!important;margin-top: -65px;z-index: 11111;}
  13. .items{padding: 10px 5px 10px 0px;font-size: 12px;margin-top:10px;background-color: white;border-bottom: 1px solid #eeeded;}
  14. .items:last-child{border: 0px;}
  15. .divider{margin-top: 25px;margin-bottom: 25px;}
  16. .qian{float: left;width: 40px;height: 40px;border-radius: 50%;background-color: orange;text-align: center;line-height: 40px;}
  17. .icsf{color: white;}
  18. .ccn{float: left;padding-left: 10px;width: 75%;}
  19. .ccn .stitle{font-size: 14px;width: 100%;color: #6c6c6c;}
  20. .sm7{overflow: hidden;}
  21. .money{float: right;color: orange;font-size: 15px;padding-top: 3px;}
  22. .ccn .time{color: darkgray;}
  23. .save{color:white;padding-top: 12px;}
  24. .year{position: absolute;font-size: 13px;color: darkgray;z-index: 2;}
  25. .mask{z-index: 3;}
  26. .popup{position: fixed;top: 20%;width: 100%;}
  27. .popup .conte{width: 85%;position: relative; background-color: white;margin: 0 auto;padding: 15px;border-radius: 8px;box-shadow:0 2px 12px 0 rgba(0, 0, 0, 0.1);}
  28. .zzxq{margin: 0 auto;border-radius: 20px;margin-top: -30px;position:relative;background-color: #4CAF50;width: 120px;text-align: center;color: white;padding: 7px;}
  29. .btn{margin-top: 25px;background-color: #9E9E9E;}
  30. [v-cloak] {display: none;}
  31. </style>
  32. </head>
  33. <body>
  34. <div id="app" v-cloak>
  35. <header class="mui-bar mui-bar-nav">
  36. <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
  37. <h1 class="mui-title">资金流水</h1>
  38. <div class="save mui-pull-right" @click="record()">请款记录</div>
  39. </header>
  40. <img src="../../images/top.png" class="fm" />
  41. <div class="mui-content">
  42. <div class="m_box">
  43. <div class="year" @click.stop="select()">
  44. <span>{{year}}年</span>
  45. <span class="icon">&#xe6b9;</span>
  46. </div>
  47. <div id="main" style="height:220px;"></div>
  48. <div class="divider">
  49. <div class="line" style="width: 30%;"></div>
  50. <div class="text" style="width: 40%;">资金明细</div>
  51. <div class="line" style="width: 30%;"></div>
  52. <div class="clear"></div>
  53. </div>
  54. <div v-if="list.length>0">
  55. <div class="items" v-for="(item,index) in list" @click="detail(item)">
  56. <div class="row">
  57. <div class="sm7">
  58. <div class="qian" style="background-color: #4CAF50;" v-if="item.type==0">
  59. <i class="icon icsf">收</i>
  60. </div>
  61. <div class="qian" style="background-color: #F44336;" v-if="item.type==1">
  62. <i class="icon icsf">支</i>
  63. </div>
  64. <div class="ccn omit">
  65. <div class="stitle omit">{{item.parttime_title}}</div>
  66. <div class="time" v-if="item.type==1">
  67. <span>{{item.pay_date.substring(5,16)}} </span>
  68. <span>转给:{{item.nickName}}</span>
  69. </div>
  70. <div class="time" v-if="item.type==0">
  71. <span>{{item.q_date.substring(5,16)}} </span>
  72. <span>收到转账</span>
  73. </div>
  74. </div>
  75. </div>
  76. <div class="sm3">
  77. <div class="money" v-if="item.type=='0'" style="color: #4CAF50;">+{{item.amount}}元</div>
  78. <div class="money" v-if="item.type=='1'" style="color: #F44336;">-{{item.amount}}元</div>
  79. </div>
  80. <div class="clear"></div>
  81. </div>
  82. </div>
  83. </div>
  84. <div class="no_data" v-else style="padding-top: 50px;">
  85. <i class="icon icon-48">&#xe61a;</i><br />没有数据
  86. </div>
  87. </div>
  88. </div>
  89. <div class="mask" v-if="show">
  90. <div class="popup">
  91. <div class="conte">
  92. <div class="zzxq">转账详情</div>
  93. <div class="row" v-if="item.type==1">
  94. <div class="ditem">
  95. <span class="fname">项目:</span>
  96. <span class="icon">&#xe61e;</span>
  97. <span class="bc omit">{{item.parttime_title}}{{item.parttime_title}}</span>
  98. <div class="clear"></div>
  99. </div>
  100. <div class="ditem">
  101. <span class="fname">收款人:</span>
  102. <span class="icon">&#xe61e;</span>
  103. <span class="bc omit">{{item.nickName}}</span>
  104. <div class="clear"></div>
  105. </div>
  106. <div class="ditem">
  107. <span class="fname">联系电话:</span>
  108. <span class="icon">&#xe61e;</span>
  109. <span class="bc omit">{{item.account}}</span>
  110. <div class="clear"></div>
  111. </div>
  112. <div class="ditem">
  113. <span class="fname">付款金额:</span>
  114. <span class="icon">&#xe61e;</span>
  115. <span class="bc omit">{{item.amount}}元</span>
  116. <div class="clear"></div>
  117. </div>
  118. <div class="ditem">
  119. <span class="fname">付款方式:</span>
  120. <span class="icon">&#xe61e;</span>
  121. <span class="bc omit">{{item.pay_mode}}</span>
  122. <div class="clear"></div>
  123. </div>
  124. <div class="ditem">
  125. <span class="fname">卡号:</span>
  126. <span class="icon">&#xe61e;</span>
  127. <span class="bc omit">{{item.kh}}</span>
  128. <div class="clear"></div>
  129. </div>
  130. <div class="ditem">
  131. <span class="fname">持卡人姓名:</span>
  132. <span class="icon">&#xe61e;</span>
  133. <span class="bc omit">{{item.kName}}</span>
  134. <div class="clear"></div>
  135. </div>
  136. <div class="ditem">
  137. <span class="fname">转账时间:</span>
  138. <span class="icon">&#xe61e;</span>
  139. <span class="bc omit">{{item.pay_date}}</span>
  140. <div class="clear"></div>
  141. </div>
  142. <div class="ditem">
  143. <span class="fname">转账状态:</span>
  144. <span class="icon">&#xe61e;</span>
  145. <span class="bc omit">平台已确认</span>
  146. <div class="clear"></div>
  147. </div>
  148. </div>
  149. <div class="row" v-if="item.type==0">
  150. <div class="ditem">
  151. <span class="fname">项目:</span>
  152. <span class="icon">&#xe61e;</span>
  153. <span class="bc omit">{{item.parttime_title}}{{item.parttime_title}}</span>
  154. <div class="clear"></div>
  155. </div>
  156. <div class="ditem">
  157. <span class="fname">付款金额:</span>
  158. <span class="icon">&#xe61e;</span>
  159. <span class="bc omit">{{item.amount}}元</span>
  160. <div class="clear"></div>
  161. </div>
  162. <div class="ditem">
  163. <span class="fname">付款方式:</span>
  164. <span class="icon">&#xe61e;</span>
  165. <span class="bc omit">{{item.pay_mode}}</span>
  166. <div class="clear"></div>
  167. </div>
  168. <div class="ditem">
  169. <span class="fname">卡号:</span>
  170. <span class="icon">&#xe61e;</span>
  171. <span class="bc omit">{{user.kh}}</span>
  172. <div class="clear"></div>
  173. </div>
  174. <div class="ditem">
  175. <span class="fname">持卡人姓名:</span>
  176. <span class="icon">&#xe61e;</span>
  177. <span class="bc omit">{{user.kName}}</span>
  178. <div class="clear"></div>
  179. </div>
  180. <div class="ditem">
  181. <span class="fname">转账时间:</span>
  182. <span class="icon">&#xe61e;</span>
  183. <span class="bc omit">{{item.q_date}}</span>
  184. <div class="clear"></div>
  185. </div>
  186. <div class="ditem">
  187. <span class="fname">收款状态:</span>
  188. <span class="icon">&#xe61e;</span>
  189. <span class="bc omit">甲方已确认</span>
  190. <div class="clear"></div>
  191. </div>
  192. </div>
  193. <div>
  194. <button class="btn" @click="show=false">关闭</button>
  195. </div>
  196. </div>
  197. </div>
  198. </div>
  199. </div>
  200. <script src="../../js/mui.min.js"></script>
  201. <script src="../../js/app.js"></script>
  202. <script src="../../js/vue.min.js"></script>
  203. <script src="../../js/echarts.min.js"></script>
  204. <script src="../../js/mui.picker.min.js"></script>
  205. <script type="text/javascript">
  206. var vm = new Vue({
  207. el: "#app",
  208. data: {
  209. user:getUser(),
  210. show:false,
  211. item:{},
  212. year:getDate('year'),
  213. list: [],
  214. xAxis: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
  215. chart: []
  216. },
  217. mounted: function() {
  218. this.getData();
  219. this.getChartData();
  220. },
  221. methods: {
  222. //请款记录
  223. record:function(){
  224. open('record', 'record.html', null, 'slide-in-bottom');
  225. },
  226. select:function(){
  227. var dtPicker = new mui.DtPicker({type:'month'});
  228. dtPicker.show(function (selectItems) {
  229. vm.year=selectItems.y.text;
  230. vm.getChartData();
  231. })
  232. },
  233. detail(item){
  234. vm.show=true;
  235. vm.item=item;
  236. },
  237. getData: function() {
  238. request(urls().finance_list, {userId: getUser().id,state:1}, function(res) {
  239. vm.list = res.data;
  240. plus.nativeUI.closeWaiting();
  241. })
  242. },
  243. //获取图表数据
  244. getChartData:function(){
  245. this.chart=[{series: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]},{series: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}];
  246. request(urls().chart_list, {userId: getUser().id,year:this.year}, function(res) {
  247. res.data.forEach((item, index) => {
  248. if (item.type ==0) {
  249. vm.chart[0].series[item.pay_date - 1] = item.amount;
  250. }
  251. if (item.type ==1) {
  252. vm.chart[1].series[item.pay_date - 1] = item.amount;
  253. }
  254. });
  255. vm.initChart();
  256. plus.nativeUI.closeWaiting();
  257. })
  258. },
  259. //初始化图表
  260. initChart: function() {
  261. var myChart = echarts.init(document.getElementById('main'));
  262. var option = {
  263. toolbox: {
  264. show: true,
  265. iconStyle: {
  266. borderColor: "#6c6c6c",
  267. },
  268. feature: {
  269. magicType: {
  270. type: ['line', 'bar']
  271. },
  272. }
  273. },
  274. tooltip: {
  275. trigger: 'axis',
  276. axisPointer: {
  277. type: "shadow"
  278. }
  279. },
  280. color: ['#4CAF50', '#F44336'],
  281. grid: {
  282. left: '15',
  283. top: '20%',
  284. right: '15',
  285. bottom: '5',
  286. containLabel: true
  287. },
  288. legend: {
  289. data: ['收入', '支出']
  290. },
  291. xAxis: {
  292. data: vm.xAxis
  293. },
  294. yAxis: {},
  295. series: [{
  296. name: '收入',
  297. type: 'bar',
  298. data: vm.chart[0].series,
  299. },
  300. {
  301. name: '支出',
  302. type: 'bar',
  303. data: vm.chart[1].series,
  304. }
  305. ]
  306. };
  307. myChart.setOption(option);
  308. }
  309. }
  310. })
  311. </script>
  312. </body>
  313. </html>