GroupUnreviewed.vue 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. <template>
  2. <div class="groupunreviewed-all" v-loading.fullscreen.lock="groupunreviewedLoading">
  3. <div class="groupunreviewed-title">团组未审核数据</div>
  4. <div class="groupunreviewed-haed">
  5. <el-date-picker @change="datechange" style="width:350px" v-model="value" type="daterange" align="left"
  6. unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
  7. :picker-options="pickerOptions">
  8. </el-date-picker>
  9. <div v-if="jurisdiction">
  10. <el-button @click="examinebtn(1)" type="primary">审核通过</el-button>
  11. <el-button @click="examinebtn(2)" type="danger">审核不通过</el-button>
  12. </div>
  13. </div>
  14. <div class="tree-box">
  15. <el-tree
  16. @check="handleSelectionChange"
  17. :data="groupstableData"
  18. ref="tree"
  19. show-checkbox
  20. :default-expand-all="false"
  21. :default-checked-keys="defaultarr"
  22. node-key="id"
  23. :props="defaultProps"
  24. highlight-current>
  25. <span class="custom-tree-node" slot-scope="{ data }">
  26. <span>{{data.groupName?'(团组:'+data.groupName+')':'' }}</span>
  27. <span>
  28. {{ data.applicant?'申请人:'+data.applicant:''}}
  29. </span>
  30. <span>
  31. {{ data.payType?'【'+data.payType+'】':''}}
  32. </span>
  33. <span>
  34. {{ data.moduleName?'['+data.moduleName+']':''}}
  35. </span>
  36. <span>
  37. {{ data.priceName?data.priceName:''}}
  38. </span>
  39. <span>
  40. {{ data.payee?'(收款方:'+data.payee+')':'' }}
  41. </span>
  42. <span>
  43. {{ data.payCurrCode?' : '+data.payCurrCode+' ':'' }}
  44. </span>
  45. <span>
  46. {{ data.paymentAmount!=undefined?' '+twonumder(data.paymentAmount):'' }}
  47. </span>
  48. <span>
  49. {{ data.cnyTotalAmount!=undefined?'&nbsp;&nbsp;&nbsp;付款金额&nbsp;&nbsp;&nbsp;CNY '+twonumder(data.cnyTotalAmount):'' }}
  50. </span>
  51. <span>
  52. {{ data.cnySubTotalAmount!=undefined?' 、 CNY '+twonumder(data.cnySubTotalAmount=data.paymentAmount*data.payRate):'' }}
  53. </span>
  54. <!-- <span>
  55. {{ data.payRate!=undefined?'&nbsp;&nbsp;&nbsp;汇率:'+twonumders(data.cnyTotalAmount):'' }}
  56. </span> -->
  57. <!-- <el-input-number v-if="data.payRate!=undefined" style="width:100px" @blur="inputblur(data.id,data.payRate,data.hotelSubId)" :precision="4" placeholder="公务翻译费" v-model="data.payRate" :controls='false'>
  58. </el-input-number> -->
  59. </span>
  60. </el-tree>
  61. </div>
  62. </div>
  63. </template>
  64. <script>
  65. export default {
  66. data () {
  67. return {
  68. pickerOptions: {
  69. shortcuts: [{
  70. text: '最近一个月',
  71. onClick(picker) {
  72. const end = new Date();
  73. const start = new Date();
  74. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  75. picker.$emit('pick', [start, end]);
  76. }
  77. }, {
  78. text: '最近三个月',
  79. onClick(picker) {
  80. const end = new Date();
  81. const start = new Date();
  82. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  83. picker.$emit('pick', [start, end]);
  84. }
  85. }, {
  86. text: '最近六个月',
  87. onClick(picker) {
  88. const end = new Date();
  89. const start = new Date();
  90. start.setTime(start.getTime() - 3600 * 1000 * 24 * 180);
  91. picker.$emit('pick', [start, end]);
  92. }
  93. }, {
  94. text: '最近一年',
  95. onClick(picker) {
  96. const end = new Date();
  97. const start = new Date();
  98. start.setTime(start.getTime() - 3600 * 1000 * 24 * 365);
  99. picker.$emit('pick', [start, end]);
  100. }
  101. }]
  102. },
  103. userid:'',
  104. value:[],
  105. defaultarr:[],//团组勾选中
  106. groupstableData:[],//团组付款申请
  107. defaultProps: {
  108. children: 'childList',
  109. label: 'groupName'
  110. },
  111. groupunreviewedLoading:false,
  112. hotelSubIdarr:[],
  113. jurisdiction:false,//审核权限
  114. }
  115. },
  116. methods:{
  117. //两位小数
  118. twonumder(val){
  119. return val.toFixed(2)
  120. },
  121. //4位小数
  122. twonumders(val){
  123. return val.toFixed(4)
  124. },
  125. //处理日期
  126. datetime(val){
  127. var date=new Date(val);
  128. var y=date.getFullYear();
  129. var m=date.getMonth()+1>=10?date.getMonth()+1:'0'+(date.getMonth()+1).toString();
  130. var d=date.getDate()>=10?date.getDate():'0'+(date.getDate()).toString();
  131. return y+'-'+m+'-'+d
  132. },
  133. //切换时间
  134. datechange(){
  135. if(this.value==null){
  136. return
  137. }
  138. this.GroupUnAuditFeeList(this.datetime(this.value[0]),this.datetime(this.value[1]))
  139. },
  140. //获取团组未审核数据
  141. GroupUnAuditFeeList(beginDt,endDt){
  142. this.groupunreviewedLoading=true;
  143. var that = this;
  144. var url = "/api/Financial/GroupUnAuditFeeList?beginDt="+beginDt+"&endDt="+endDt
  145. this.$axios({
  146. method: 'get',
  147. url: url,
  148. headers: {
  149. Authorization: 'Bearer '
  150. },
  151. }).then(function (res) {
  152. if (res.data.code == 200) {
  153. that.groupstableData=res.data.data.dataList;
  154. that.groupunreviewedLoading=false;
  155. } else {
  156. that.$message.error(res.data.msg);
  157. that.groupunreviewedLoading=false;
  158. }
  159. })
  160. },
  161. //勾选
  162. handleSelectionChange(data,node) {
  163. for(let i=0;i<node.checkedNodes.length;i++){
  164. for(let j=0;j<node.checkedKeys.length;j++){
  165. if(node.checkedNodes[i].id==node.checkedKeys[j]){
  166. this.hotelSubIdarr.push(node.checkedNodes[i].hotelSubId)
  167. }
  168. }
  169. }
  170. this.defaultarr=node.checkedKeys
  171. },
  172. //审核通过
  173. examinebtn(val){
  174. var auditarr=''
  175. for (var i = 0; i < this.defaultarr.length; i++) {
  176. if (!isNaN(Number(this.defaultarr[i]))) {
  177. auditarr += this.defaultarr[i] + ','
  178. }
  179. }
  180. auditarr=auditarr.substring(0, auditarr.length - 1)
  181. console.log(auditarr);
  182. this.PostAuditGrpCreditCardPayment(val,auditarr);
  183. },
  184. //审核接口
  185. PostAuditGrpCreditCardPayment(val,auditarr) {
  186. var url = "/api/Groups/PostAuditGrpCreditCardPayment"
  187. var that = this
  188. this.$axios({
  189. method: 'post',
  190. url: url,
  191. headers: {
  192. Authorization: 'Bearer ' + that.token
  193. },
  194. data: {
  195. portType:1,
  196. userId:that.userid,
  197. pageId:47,
  198. CreditIdStr:auditarr,
  199. auditCode: val,//1审核通过,2审核未通过
  200. }
  201. }).then(function (res) {
  202. console.log(res);
  203. if (res.data.code == 200) {
  204. that.$message({
  205. message: res.data.msg,
  206. type: 'success',
  207. offset: 50
  208. });
  209. that.GroupUnAuditFeeList(that.datetime(that.value[0]),that.datetime(that.value[1]))
  210. }else{
  211. that.$message({
  212. message: res.data.msg,
  213. type: 'warning',
  214. offset: 50
  215. });
  216. }
  217. })
  218. },
  219. },
  220. mounted(){
  221. this.userid = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
  222. var Permissions=JSON.parse(localStorage.getItem('Permissions'));
  223. for(let y=0;y<Permissions.length;y++){
  224. if(Permissions[y].functionName=='审核'){
  225. this.jurisdiction=true
  226. }
  227. }
  228. }
  229. }
  230. </script>
  231. <style>
  232. .groupunreviewed-all{
  233. background-color: #fff;
  234. padding: 10px;
  235. box-shadow: 0 0 5px #0005;
  236. border-radius: 10px;
  237. height: 100%;
  238. min-height: 840px;
  239. min-width: 1400px;
  240. }
  241. .groupunreviewed-title{
  242. color: #555;
  243. margin-bottom: 5px;
  244. }
  245. .groupunreviewed-haed{
  246. display: flex;
  247. justify-content: space-between;
  248. }
  249. .groupunreviewed-all .tree-box{
  250. margin-top: 10px;
  251. border: 1px solid #EBEEF5;
  252. padding: 10px;
  253. max-height: 740px;
  254. overflow-y: auto;
  255. }
  256. .groupunreviewed-all .custom-tree-node{
  257. line-height: 25px;
  258. display: flex;
  259. flex-wrap: wrap;
  260. font-size: 15px;
  261. }
  262. .groupunreviewed-all .el-tree-node__content {
  263. height: 50px;
  264. }
  265. </style>