GroupUnreviewed.vue 10 KB

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