微信小程序
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

454 行
13 KiB

  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. })