微信小程序
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

paymentManager.js 13 KiB

3年前
3年前
3年前
3年前
3年前
3ヶ月前
3年前
3ヶ月前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3ヶ月前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454
  1. // pages/paymentManager/paymentManager.js
  2. import * as UTIL from '../../utils/util.js';
  3. import * as API from '../../utils/API.js';
  4. let EVN_CONFIG = require('../../env/env');
  5. const app = getApp();
  6. Page({
  7. /**
  8. * 页面的初始数据
  9. */
  10. data: {
  11. isIPX: app.globalData.isIPX,
  12. list:[],
  13. isLoading:false,
  14. pageNums:1,
  15. scrollHeight:"",
  16. name:"",
  17. showUpload:false,
  18. uploadOptions:[],
  19. fileList:[],
  20. showPopup:false,
  21. fileEvent:{},
  22. itemId:"",
  23. assetTypeOptions:[],
  24. option1: [
  25. { text: '支付状态', value: '' },
  26. { text: '待支付', value: '1' },
  27. { text: '银行受理', value: '3' },
  28. { text: '支付失败', value: '4' },
  29. { text: '部分失败', value: '5' },
  30. ],
  31. option2: [
  32. { text: '支出类别', value: '' },
  33. { text: '结算类', value: '1' },
  34. { text: '工程项目类', value: '2' },
  35. { text: '合同类', value: '4' },
  36. { text: '其他', value: '5' },
  37. ],
  38. option3: [
  39. { text: '申请类别', value: '' },
  40. { text: '银行卡转账', value: '1' },
  41. { text: '信用卡还款', value: '2' },
  42. ],
  43. value1: '',
  44. value2: '',
  45. value3: '',
  46. },
  47. goAdd(){
  48. wx.navigateTo({
  49. url: 'add/add',
  50. })
  51. },
  52. back:function(){
  53. wx.navigateBack({
  54. delta: 1
  55. })
  56. },
  57. assetTypeDict(val){
  58. this.data.assetTypeOptions.map(res => {
  59. if(res.dictValue == val){
  60. return res.dictLabel
  61. }
  62. })
  63. },
  64. /**
  65. * 生命周期函数--监听页面加载
  66. */
  67. onLoad(options) {
  68. var that = this;
  69. let qu = wx.createSelectorQuery()
  70. qu.select("#top_view1").boundingClientRect()
  71. qu.select("#top_ban").boundingClientRect()
  72. qu.exec(res => {
  73. that.setData({
  74. scrollHeight:wx.getSystemInfoSync().windowHeight-res[0].height-res[0].top
  75. })
  76. })
  77. this.getList();
  78. },
  79. /**
  80. * 生命周期函数--监听页面初次渲染完成
  81. */
  82. onReady() {
  83. //获取附件字典
  84. UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'bookkeeping_type', {method:'GET'}, {
  85. success: (res) => {
  86. if(res.data.length>0){
  87. this.setData({
  88. uploadOptions:res.data,
  89. })
  90. }
  91. }
  92. })
  93. },
  94. getList:function(){
  95. let params = {
  96. pageNum:this.data.pageNums,
  97. pageSize:10,
  98. name:this.data.name,
  99. remark:this.data.name,
  100. paymentState:this.data.value1,
  101. capitalExpenditureType:this.data.value2,
  102. transferType:this.data.value3,
  103. auditStatus:'3',
  104. method:'POST'
  105. }
  106. UTIL.httpRequest(API.URL_GET_TRANSFERLIST,params,{
  107. success: (res) => {
  108. let _this = this
  109. if(res.code == 200){
  110. for (let i = 0; i < res.rows.length; i++) {
  111. const element = res.rows[i];
  112. res.rows[i].expenditureAmount = parseFloat(res.rows[i].expenditureAmount).toFixed(2);
  113. }
  114. if(this.data.pageNums!=1&&this.data.list.length<res.total){
  115. console.log("11111");
  116. let lists = []
  117. res.rows.map((rr,index) => {
  118. rr.expenditureAmount = Number(rr.expenditureAmount ).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => {
  119. return $1 + ","; }).replace(/\.$/, "")
  120. if(index==(res.rows.length-1)){
  121. lists = _this.data.list.concat(res.rows)
  122. }
  123. })
  124. //获取资产类别
  125. UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'asset_type', {method:'GET'}, {
  126. success: (r) => {
  127. if(r.data.length>0){
  128. let li = lists.map( res => {
  129. r.data.map(rr => {
  130. if(res.assetType == rr.dictValue){
  131. res.assetType = rr.dictLabel
  132. }
  133. })
  134. return res
  135. })
  136. _this.setData({list:li})
  137. }else{
  138. _this.setData({list:lists})
  139. }
  140. }
  141. })
  142. }else if(this.data.pageNums==1){
  143. console.log("22222");
  144. //获取资产类别
  145. UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'asset_type', {method:'GET'}, {
  146. success: (r) => {
  147. if(r.data.length>0){
  148. let li = res.rows.map( ress => {
  149. ress.originalValue = Number(ress.originalValue ).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => {
  150. return $1 + ","; }).replace(/\.$/, "")
  151. r.data.map(rr => {
  152. if(ress.assetType == rr.dictValue){
  153. ress.assetType = rr.dictLabel
  154. }
  155. })
  156. return ress
  157. })
  158. _this.setData({list:li})
  159. }else{
  160. _this.setData({list:res.rows})
  161. }
  162. }
  163. })
  164. }
  165. }else{
  166. UTIL.showToastNoneIcon(res.msg);
  167. }
  168. }
  169. })
  170. },
  171. paging(){
  172. this.setData({
  173. pageNums:this.data.pageNums+1,
  174. })
  175. this.getList();
  176. },
  177. goSearch(e){
  178. this.setData({name:e.detail});
  179. this.setData({remark:e.detail});
  180. this.setData({pageNums:1});
  181. this.getList();
  182. },
  183. toPay(e){
  184. wx.navigateTo({
  185. url: '/pages/paymentManager/toPay/toPay?id='+e.currentTarget.dataset.ids
  186. })
  187. },
  188. toPayDetail(e){
  189. wx.navigateTo({
  190. url: '/pages/handle/expenditureAuditNew/expenditureAuditNew?id='+e.currentTarget.dataset.ids+'&&ids='+e.currentTarget.dataset.ids+'&&type=see',
  191. })
  192. },
  193. toPayReapply(e){
  194. let that = this;
  195. wx.showModal({
  196. title: '提示',
  197. content: '此操作会将单据中支付失败的记录重新申请,请先确保在【首页-收款方】中已修改准确,再执行此操作!',
  198. success (res) {
  199. if (res.confirm) {
  200. UTIL.httpRequest(API.reapply + e.currentTarget.dataset.ids, {method:'GET'}, {
  201. success: (res) => {
  202. if(res.code == 200){
  203. wx.showToast({
  204. title: '重新申请成功',
  205. icon: 'success',
  206. duration: 2000
  207. })
  208. that.getList();
  209. }else{
  210. UTIL.showToastNoneIcon('申请失败');
  211. }
  212. }
  213. })
  214. } else if (res.cancel) {
  215. console.log('用户点击取消')
  216. }
  217. }
  218. })
  219. },
  220. scrap(e){
  221. console.log(e.currentTarget.dataset.data.id,e.currentTarget.dataset.data.index);
  222. if(e.currentTarget.dataset.data.assetStatus != 1){
  223. UTIL.showToastNoneIcon('只允许修改资产状态为正常的资产!');
  224. return false;
  225. }else if(e.currentTarget.dataset.data.useType == 3){
  226. UTIL.showToastNoneIcon('使用状态为出租或出借不允许操作!');
  227. return false;
  228. }else{
  229. UTIL.httpRequest(API.URL_GET_UPDATERSCRAP + e.currentTarget.dataset.data.id , {method:'GET'}, {
  230. success: (res) => {
  231. if(res.code==200){
  232. let new_list = this.data.list
  233. new_list.splice(e.currentTarget.dataset.data.index,1)
  234. this.setData({'list':new_list})
  235. UTIL.showToastNoneIcon('报废成功!');
  236. }else{
  237. UTIL.showToastNoneIcon('报废失败!:'+res.msg);
  238. }
  239. }
  240. })
  241. }
  242. },
  243. sell(e){
  244. console.log(e.currentTarget.dataset.data.id,e.currentTarget.dataset.data.index);
  245. if(e.currentTarget.dataset.data.assetStatus != 1){
  246. UTIL.showToastNoneIcon('只允许修改资产状态为正常的资产!');
  247. return false;
  248. }else if(e.currentTarget.dataset.data.useType == 3){
  249. UTIL.showToastNoneIcon('使用状态为出租或出借不允许操作!');
  250. return false;
  251. }else{
  252. UTIL.httpRequest(API.URL_GET_UPDATERSALE + e.currentTarget.dataset.data.id , {method:'GET'}, {
  253. success: (res) => {
  254. if(res.code==200){
  255. let new_list = this.data.list
  256. new_list.splice(e.currentTarget.dataset.data.index,1)
  257. this.setData({'list':new_list})
  258. UTIL.showToastNoneIcon('出售成功!');
  259. }else{
  260. UTIL.showToastNoneIcon('出售失败!:'+res.msg);
  261. }
  262. }
  263. })
  264. }
  265. },
  266. change(e){
  267. var that = this ;
  268. that.setData({value:e.detail,pageNum:1})
  269. this.getList()
  270. },
  271. changeTab(e){
  272. var that = this ;
  273. that.setData({value1:e.detail,pageNums:1})
  274. this.getList()
  275. },
  276. changeTab2(e){
  277. var that = this ;
  278. that.setData({value2:e.detail,pageNums:1})
  279. this.getList()
  280. },
  281. changeTab3(e){
  282. var that = this ;
  283. that.setData({value3:e.detail,pageNums:1})
  284. this.getList()
  285. },
  286. upload(e){
  287. this.setData({itemId:e.currentTarget.dataset.id});
  288. this.asyncFun(e.currentTarget.dataset.id)
  289. },
  290. asyncFun(id){
  291. this.setData({"fileList":[]})
  292. let uploadList = this.data.uploadOptions
  293. let _this = this
  294. uploadList.map( (res,idx) => {
  295. res.list=[]
  296. console.log(res);
  297. let oData = {
  298. tableId: id,
  299. tableName: "t_yinnong_transfer", //上传表
  300. bizPath: "transfer",
  301. fileType: res.dictValue, //附件类型 1原始发票 2会议纪要 3会议照片 4 参会人员签字
  302. method:'GET'
  303. }
  304. UTIL.httpRequest(API.URL_GET_ATTACHMENTLIST, oData, {
  305. success: (rr) => {
  306. if(rr.rows.length>0){
  307. rr.rows.map((rrr,index) => {
  308. rrr.url = wx.getStorageSync('dressCode') + rrr.fileUrl
  309. rrr.name = rrr.fileName
  310. if(index==rr.rows.length-1){
  311. res.list = rr.rows
  312. let lis = uploadList
  313. lis[idx] = res
  314. _this.setData({"fileList":lis});
  315. _this.setData({"showUpload":true})
  316. }
  317. })
  318. }
  319. else{
  320. _this.setData({"showUpload":true})
  321. }
  322. }
  323. })
  324. })
  325. },
  326. closeBox(){
  327. this.setData({"showUpload":false})
  328. },
  329. uploadFile(uploadFile,event) {
  330. let _this = this
  331. return new Promise((resolve, reject) => {
  332. wx.uploadFile({
  333. url: API.URL_GET_UPLOAD,
  334. filePath: uploadFile.file.file.url,
  335. name: 'file',
  336. header: {
  337. "Content-Type": "multipart/form-data",//记得设置
  338. "chartset":"utf-8",
  339. 'Authorization':'Bearer '+getApp().globalData.userInfo.token
  340. },
  341. formData:uploadFile,
  342. success: (res) => {
  343. res.data = JSON.parse(res.data);
  344. if(res.statusCode == 200){
  345. let files = _this.data.fileList
  346. let fName = res.data.fileUrl.split('/')
  347. let fLength = fName.length
  348. files[event.currentTarget.dataset.idx].list.push({
  349. "fileName": fName[fLength-1],
  350. "name":fName[fLength-1],
  351. "fileType": "0",
  352. "fileUrl":res.data.fileUrl ,
  353. "id": res.data.id,
  354. "tableId": 6,
  355. "url":wx.getStorageSync('dressCode')+res.data.fileUrl
  356. })
  357. _this.setData({"fileList":files})
  358. wx.hideLoading()
  359. }
  360. },
  361. fail: (err) => {
  362. //上传失败:修改pedding为reject
  363. reject(err)
  364. }
  365. });
  366. })
  367. },
  368. afterRead(event) {
  369. let _this = this
  370. wx.showLoading({
  371. title: '上传中...'
  372. })
  373. let fileForm={
  374. file: event.detail,
  375. fileType:event.currentTarget.dataset.idx,
  376. tableName: "t_yinnong_transfer", //上传表
  377. bizPath: "transfer",
  378. tableId:_this.data.itemId
  379. }
  380. this.uploadFile(fileForm,event)
  381. },
  382. lookDown(e){
  383. let file =e
  384. // 获取指定字符串最后一次出现的位置,返回index
  385. var index1 = file.detail.url.lastIndexOf('.');
  386. // substr(start, length) 抽取从start下标开始的length个字符,返回新的字符串;
  387. var style = file.detail.url.substr(index1 + 1)
  388. //判断图片类型,不需要下载,不做处理
  389. if(style=='png'||style=='jpg'||style=='jpeg'||style=='bmp'||style=='gif'||style=='webp'||style=='psd'||style== 'svg'||style=='tiff'){
  390. //判断非图片类型
  391. }else{
  392. wx.downloadFile({
  393. url: file.detail.url,
  394. success(data){
  395. wx.openDocument({
  396. filePath: data.tempFilePath,
  397. fileType: style,
  398. showMenu:true,
  399. success(res){
  400. }
  401. })
  402. }
  403. })
  404. }
  405. },
  406. /**
  407. * 生命周期函数--监听页面显示
  408. */
  409. onShow() {
  410. this.setData({'pageNums':1})
  411. this.getList();
  412. },
  413. /**
  414. * 生命周期函数--监听页面隐藏
  415. */
  416. onHide() {
  417. },
  418. /**
  419. * 生命周期函数--监听页面卸载
  420. */
  421. onUnload() {
  422. },
  423. /**
  424. * 页面相关事件处理函数--监听用户下拉动作
  425. */
  426. onPullDownRefresh() {
  427. },
  428. /**
  429. * 页面上拉触底事件的处理函数
  430. */
  431. onReachBottom() {
  432. },
  433. /**
  434. * 用户点击右上角分享
  435. */
  436. onShareAppMessage() {
  437. }
  438. })