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

1719 行
62 KiB

  1. // pages/apply/paymentTemplate/add/add.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 DISTRIBUTE_ENVIROMENT = 'IMGURL';
  6. let {
  7. URL_PREFIX,
  8. } = EVN_CONFIG[DISTRIBUTE_ENVIROMENT];
  9. const app = getApp();
  10. Page({
  11. /**
  12. * 页面的初始数据
  13. */
  14. data: {
  15. minDate: new Date(2008, 5, 1).getTime(),
  16. maxDate: new Date(2040, 0, 31).getTime(),
  17. isIPX: app.globalData.isIPX,
  18. radio:'1',
  19. active:0,
  20. projectText:'',
  21. balance:0,
  22. capitalExpenditureTypeOptions:[],
  23. transferTypeOptions:[],
  24. projectOptions:[],
  25. projectFundTypeOptions:[],
  26. contractionOptions:[],
  27. accountOptions:[],
  28. moneyorderOptions:[],
  29. topInputTirme:false,
  30. form:{
  31. approvalItemTemplate:{
  32. approvalItems:'',//审批事项
  33. submitCompany:'',//提交单位
  34. submitDate:'',//提交日期
  35. submitter:'',//提交人
  36. telephone:'',//联系方式
  37. totalAmount:"0.00",//合计金额
  38. templateName:'',//模板名称 选择保存模板的时候添加
  39. dataType:'',//数据类型
  40. },
  41. transfers:[{//事项信息集合以下是List对象信息
  42. num:"一",
  43. amountReadonly:false,
  44. expenditureAmountTirme:false,
  45. remarkTirme:false,
  46. showCapitalExpenditureType:false,
  47. showApplyDate:false,
  48. showTransferType:false,
  49. showProject:false,
  50. showProjectFundType:false,
  51. showAccount:false,
  52. showDialog:false,
  53. showContraction:false,
  54. showMoneyOrder:false,
  55. cashForm:{
  56. payee:'',
  57. phone:'',
  58. unit:'',
  59. leader:'',
  60. remark:'',
  61. },
  62. SJimage:[],
  63. FPimage:[],
  64. QTimage:[],
  65. showTitle:true,
  66. collapseDis:false,
  67. capitalExpenditureType:'1',//资金支出类别
  68. capitalExpenditureTypeText:'结算类',//资金支出类别(展示用)
  69. succeedAmount:'',//成功支付金额
  70. payer:'',//付款方
  71. paymentPattern:'1',
  72. payerAccount:'',//付款方账户
  73. bankType:'',//所属银行
  74. bankTypeText:'',//所属银行(展示用)
  75. isPeers:'N',//是否同行
  76. operatorCode:'',//操作员代码
  77. enterpriseCode:'',//企业编码
  78. expenditureAmount:'',//支出总金额
  79. applyDate:'',//申请时间
  80. transferStatus:'',//转账状态
  81. auditStatus:'0',//审批状态
  82. paymentState:'',//支付状态
  83. approvalMode:'1',//审批模式
  84. paymentTime:'',//支付时间
  85. bankPriority:'',//银行处理优先级
  86. clientPriority:'',//客户处理优先级
  87. transferType:'1',//付款方式
  88. transferTypeText:'垫付报销:电子支付',//付款方式(展示用)
  89. requiredTransferTime:'',//要求转账时间
  90. remark:'',//付款事由
  91. startTime:'',//开票日期
  92. endTime:'',//到期日期
  93. orderType:'',//汇票类型
  94. bankAccountType:'2',//账户类别1 公户2私户
  95. villageAccountType:'',//账户分类
  96. payeeList:[{//收款方账户集合
  97. payeeId:'0',//收款方id
  98. payee:'',//收款方
  99. bankDeposit:'',//开户行
  100. incomeAmount:'',//收入金额
  101. bankType:'',//所属银行0其他银行1中国银行2农商行(山东省)3农业银行4建设银行5工商银行
  102. payeeAccount:'',//收款账户
  103. }],
  104. projectForm:{
  105. projectId:'',
  106. projectName:'',
  107. projectContractor:'',
  108. projectAmount:'',
  109. projectBillNum:'',
  110. projectFundType:'',
  111. outId:'',
  112. ynType:'1',
  113. },
  114. contractionForm:{
  115. contractionId:'',
  116. name:'',
  117. code:'',
  118. totalAmount:'',
  119. },
  120. moneyOrderForm:{
  121. orderNum:'',
  122. orderType:'',
  123. orderAmount:'',
  124. billPayUnit:'',
  125. billReceiveUnit:'',
  126. startTime:'',
  127. endTime:'',
  128. orderStatus:'',
  129. remark:'',
  130. }
  131. }],
  132. },
  133. accountForm:{},
  134. fileForm:[],
  135. isUpdate:false,
  136. SJimage: [],
  137. FPimage: [],
  138. QTimage: [],
  139. imgcount:0,
  140. activeNames: 0,
  141. applyDate:'',
  142. minDate: new Date(2010, 0, 1).getTime(),
  143. maxDate: new Date(2010, 0, 31).getTime(),
  144. },
  145. /**
  146. * 生命周期函数--监听页面加载
  147. */
  148. onLoad(options) {
  149. var that = this;
  150. //所属银行
  151. UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'bank_type', {method:'GET'}, {
  152. success: (res) => {
  153. this.setData({
  154. bankTypeOptions:res.data
  155. });
  156. }
  157. })
  158. // 资金支出类别字典查询
  159. UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'capital_expenditure_type', {method:'GET'}, {
  160. success: (res) => {
  161. that.setData({
  162. capitalExpenditureTypeOptions:res.data,
  163. })
  164. }
  165. })
  166. // 汇票列表查询
  167. UTIL.httpRequest(API.URL_GET_GETMONEYORDERLIST, {method:'GET'}, {
  168. success: (res) => {
  169. that.setData({
  170. moneyOrderOptions:res.rows,
  171. })
  172. }
  173. })
  174. // 付款方式类型字典查询 (2.0)
  175. UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'yn_pay_type', {method:'GET'}, {
  176. success: (res) => {
  177. that.setData({
  178. transferTypeOptions:res.data,
  179. })
  180. }
  181. })
  182. // 项目工程列表
  183. UTIL.httpRequest(API.URL_GET_GETPROJECTLIST , {method:'GET'}, {
  184. success: (res) => {
  185. that.setData({
  186. projectOptions:res.rows,
  187. })
  188. }
  189. })
  190. // 工程款类型字典查询
  191. UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'project_fund_type', {method:'GET'}, {
  192. success: (res) => {
  193. that.setData({
  194. projectFundTypeOptions:res.data,
  195. })
  196. }
  197. })
  198. // 获取合同信息列表
  199. UTIL.httpRequest(API.URL_GET_CONTRACTIONLIST , {method:'GET',contractionStatus:1}, {
  200. success: (res) => {
  201. that.setData({
  202. contractionOptions:res.rows,
  203. })
  204. }
  205. })
  206. if(options.type == 'template'){
  207. wx.showLoading({
  208. title: '正在加载模板',
  209. mask:true
  210. })
  211. let list = JSON.parse(options.option);
  212. that.setData({
  213. templateModel:JSON.parse(options.option),
  214. formType:options.type,
  215. })
  216. var perames = {
  217. pageNum:1,
  218. pageSize:999,
  219. accountType:'102',
  220. method:'POST',
  221.   params: {
  222.          "townAccountType":"0"
  223.     }
  224. }
  225. // 付款方列表
  226. UTIL.httpRequest(API.URL_GET_SELECTACCOUNTLIST , perames, {
  227. success: (res) => {
  228. that.setData({
  229. accountOptions:res.rows,
  230. ["form.transfers[0].applyDate"]: UTIL.formatDate(new Date()),
  231. applyDate: UTIL.formatDate(new Date()),
  232. })
  233. }
  234. })
  235. // if(options.type == "template"){list.approvalItemTemplate.id=""}
  236. console.log(list);
  237. if(options.type == "template"){list.applyData.approvalItemTemplate.id=""}
  238. setTimeout(function(){
  239. for (let i = 0; i < list.applyData.transfers.length; i++) {
  240. list.applyData.transfers[i].payeeList.forEach((item2,index2)=>{
  241. list.applyData.transfers[i].payeeList[index2].incomeAmount = parseFloat(0).toFixed(2);
  242. })
  243. console.log(that.data.capitalExpenditureTypeOptions);
  244. list.applyData.transfers[i].capitalExpenditureTypeText = UTIL.getTransform(list.applyData.transfers[i].capitalExpenditureType,that.data.capitalExpenditureTypeOptions);
  245. list.applyData.transfers[i].transferTypeText = UTIL.getTransform(list.applyData.transfers[i].paymentPattern,that.data.transferTypeOptions);
  246. list.applyData.transfers[i].bankTypeText = UTIL.getTransform(list.applyData.transfers[i].bankType,that.data.bankTypeOptions);
  247. list.applyData.transfers[i].num = UTIL.convertToChinaNum(i+1);
  248. list.applyData.transfers[i].expenditureAmount = '';
  249. list.applyData.transfers[i].cashierType = list.applyData.transfers[i].cashierId != '' && list.applyData.transfers[i].cashierId != null && list.applyData.transfers[i].cashierId != null ? 'edit':'add' ;
  250. list.applyData.transfers[i].cashForm=[{
  251. payee:'',
  252. phone:'',
  253. unit:'',
  254. leader:'',
  255. remark:'',
  256. }];
  257. if(list.applyData.transfers[i].capitalExpenditureType == 2){
  258. let prames = {
  259. outId:list.applyData.transfers[i].id,
  260. ynType: list.applyData.transfers[i].transferType=='1'||list.applyData.transfers[i].transferType=='2'||list.applyData.transfers[i].transferType=='4'?'1':'2'
  261. }
  262. // 工程项目查询
  263. UTIL.httpRequest(API.URL_GET_GETPROJECTTO , prames, {
  264. success: (res) => {
  265. res.data.projectFundTypeText = UTIL.getTransform(res.data.projectFundType,that.data.projectFundTypeOptions);
  266. list.applyData.transfers[i].projectForm = res.data
  267. }
  268. })
  269. }
  270. if(list.applyData.transfers[i].capitalExpenditureType == 4){
  271. let prames = {
  272. transferId:list.applyData.transfers[i].id,
  273. }
  274. // 关联合同查询
  275. UTIL.httpRequest(API.URL_GET_GETSELECTINFOBYOUTID , prames, {
  276. success: (res) => {
  277. list.applyData.transfers[i].contractionForm = res.data
  278. console.log(list.applyData.transfers[i]);
  279. }
  280. })
  281. }
  282. if(list.applyData.transfers[i].transferType == '12'){
  283. list.applyData.transfers[i].moneyOrderForm = {
  284. billPayUnit : '',
  285. orderNum : '',
  286. id : '',
  287. startTime : '',
  288. endTime : '',
  289. orderType : '',
  290. orderAmount:''
  291. };
  292. list.applyData.transfers[i].amountReadonly = true;
  293. // 关联收票方查询
  294. UTIL.httpRequest(API.URL_GET_GETCASHLISTCASGBYID+list.applyData.transfers[i].id , {method:'get'}, {
  295. success: (res) => {
  296. list.applyData.transfers[i].cashForm = res.data
  297. }
  298. })
  299. }
  300. let fileForm = [];
  301. UTIL.httpRequest(
  302. API.URL_GET_FINDLIST,
  303. {
  304. method:'GET',
  305. tableName:'t_yinnong_transfer',
  306. tableId:list.applyData.transfers[i].id,
  307. fileType:1
  308. },
  309. {
  310. success: (res) => {
  311. let list2 = [];
  312. res.data.forEach((item2,index2)=>{
  313. wx.downloadFile({
  314. url: URL_PREFIX+item2.fileUrl, //仅为示例,并非真实的资源
  315. success (response) {
  316. if (response.statusCode === 200) {
  317. fileForm.push({
  318. file: response.tempFilePath,
  319. fileType:'1',
  320. bizPath:'transfer',
  321. tableName:'t_yinnong_transfer',
  322. tableId:''
  323. })
  324. console.log("--------------fileForm2 start----------------");
  325. console.log(fileForm);
  326. console.log("--------------fileForm2 end----------------");
  327. list2.push({
  328. tempFilePath:response.tempFilePath,
  329. id:item2.id
  330. })
  331. list.applyData.transfers[i].SJimage = list2;
  332. }
  333. }
  334. })
  335. })
  336. }
  337. })
  338. //发票
  339. UTIL.httpRequest(
  340. API.URL_GET_FINDLIST,
  341. {
  342. method:'GET',
  343. tableName:'t_yinnong_transfer',
  344. tableId:list.applyData.transfers[i].id,
  345. fileType:2
  346. },
  347. {
  348. success: (res) => {
  349. let list2 = [];
  350. res.data.forEach((item2,index2)=>{
  351. wx.downloadFile({
  352. url: URL_PREFIX+item2.fileUrl, //仅为示例,并非真实的资源
  353. success (response) {
  354. if (response.statusCode === 200) {
  355. fileForm.push({
  356. file: response.tempFilePath,
  357. fileType:'2',
  358. bizPath:'transfer',
  359. tableName:'t_yinnong_transfer',
  360. tableId:''
  361. })
  362. console.log("--------------fileForm2 start----------------");
  363. console.log(fileForm);
  364. console.log("--------------fileForm2 end----------------");
  365. list2.push({
  366. tempFilePath:response.tempFilePath,
  367. id:item2.id
  368. })
  369. list.applyData.transfers[i].FPimage = list2;
  370. }
  371. }
  372. })
  373. })
  374. }
  375. })
  376. //其他
  377. UTIL.httpRequest(
  378. API.URL_GET_FINDLIST,
  379. {
  380. method:'GET',
  381. tableName:'t_yinnong_transfer',
  382. tableId:list.applyData.transfers[i].id,
  383. fileType:3
  384. },
  385. {
  386. success: (res) => {
  387. let list2 = [];
  388. res.data.forEach((item2,index2)=>{
  389. wx.downloadFile({
  390. url: URL_PREFIX+item2.fileUrl, //仅为示例,并非真实的资源
  391. success (response) {
  392. if (response.statusCode === 200) {
  393. fileForm.push({
  394. file: response.tempFilePath,
  395. fileType:'3',
  396. bizPath:'transfer',
  397. tableName:'t_yinnong_transfer',
  398. tableId:''
  399. })
  400. console.log("--------------fileForm2 start----------------");
  401. console.log(fileForm);
  402. console.log("--------------fileForm2 end----------------");
  403. list2.push({
  404. tempFilePath:response.tempFilePath,
  405. id:item2.id
  406. })
  407. list.applyData.transfers[i].QTimage = list2;
  408. }
  409. }
  410. })
  411. })
  412. }
  413. })
  414. list.applyData.transfers[i].id = "";
  415. list.applyData.transfers[i].fileForm = fileForm;
  416. }
  417. },1000)
  418. var timer2 = setTimeout(function(){
  419. that.setData({
  420. form:list.applyData,
  421. activeNames:null,
  422. applyDate: UTIL.formatDate(new Date()),
  423. ["form.approvalItemTemplate.totalAmount"]:parseFloat(0).toFixed(2),
  424. })
  425. UTIL.httpRequest(API.URL_GET_GETINFO, {method:'GET'}, {
  426. success: (res) => {
  427. if (res.code == API.SUCCESS_CODE) {
  428. that.setData({
  429. ["form.approvalItemTemplate.submitCompany"]:res.user.bookName,
  430. ["form.approvalItemTemplate.submitDate"]:UTIL.js_date_time(new Date()),
  431. ["form.approvalItemTemplate.submitter"]:res.user.nickName,
  432. ["form.approvalItemTemplate.telephone"]:res.user.phonenumber,
  433. })
  434. }
  435. }
  436. })
  437. wx.hideLoading();
  438. },3000)
  439. }else if(options.id && options.type != 'template'){
  440. UTIL.showLoadingHaveMask();
  441. setTimeout(function(){
  442. UTIL.httpRequest(API.URL_GET_APPROVALITEMS+options.id, {method:'GET'}, {
  443. success: (res) => {
  444. if (res.code == API.SUCCESS_CODE) {
  445. console.log(that.data.capitalExpenditureTypeOptions);
  446. if(res.data.approvalItemTemplate == null){return;}
  447. res.data.approvalItemTemplate.totalAmount = parseFloat(res.data.approvalItemTemplate.totalAmount).toFixed(2)
  448. res.data.transfers.forEach( (item,index) => {
  449. that.setData({
  450. applyDate: res.data.transfers[0].applyDate,
  451. })
  452. res.data.transfers[index].capitalExpenditureTypeText = UTIL.getTransform(item.capitalExpenditureType,that.data.capitalExpenditureTypeOptions);
  453. console.log(item.paymentPattern);
  454. console.log(that.data.transferTypeOptions);
  455. res.data.transfers[index].cashierType = res.data.transfers[index].cashierId != '' && res.data.transfers[index].cashierId != null && res.data.transfers[index].cashierId != null ? 'edit':'add' ;
  456. res.data.transfers[index].transferTypeText = UTIL.getTransform(item.paymentPattern,that.data.transferTypeOptions);
  457. res.data.transfers[index].bankTypeText = UTIL.getTransform(item.bankType,that.data.bankTypeOptions);
  458. res.data.transfers[index].num = UTIL.convertToChinaNum(index+1);
  459. res.data.transfers[index].collapseDis = true;
  460. res.data.transfers[index].expenditureAmount = parseFloat(res.data.transfers[index].expenditureAmount).toFixed(2);
  461. res.data.transfers[index].moneyOrderForm = [];
  462. // res.data.transfers[index].expenditureAmount = parseFloat(0).toFixed(2);
  463. res.data.transfers[index].payeeList.forEach( (response,i) => {
  464. res.data.transfers[index].payeeList[i].bankTypeText = UTIL.getTransform(response.bankType,that.data.bankTypeOptions);
  465. })
  466. res.data.transfers[index].showTitle = false;
  467. if(res.data.transfers[index].capitalExpenditureType == 2){
  468. let prames = {
  469. outId:res.data.transfers[index].id,
  470. ynType: res.data.transfers[index].transferType=='1'||res.data.transfers[index].transferType=='2'||res.data.transfers[index].transferType=='4'?'1':'2'
  471. }
  472. // 工程项目查询
  473. UTIL.httpRequest(API.URL_GET_GETPROJECTTO , prames, {
  474. success: (res) => {
  475. res.data.projectFundTypeText = UTIL.getTransform(res.data.projectFundType,that.data.projectFundTypeOptions);
  476. that.setData({
  477. ["form.transfers["+index+"].projectForm"]:res.data,
  478. })
  479. }
  480. })
  481. }
  482. if(res.data.transfers[index].capitalExpenditureType == 4){
  483. let prames = {
  484. transferId:res.data.transfers[index].id,
  485. }
  486. // 关联合同查询
  487. UTIL.httpRequest(API.URL_GET_GETSELECTINFOBYOUTID , prames, {
  488. success: (res) => {
  489. that.setData({
  490. ["form.transfers["+index+"].contractionForm"]:res.data,
  491. })
  492. }
  493. })
  494. }
  495. if(res.data.transfers[index].transferType == '12'){
  496. var transferTimer = setTimeout(function(){
  497. that.setData({
  498. ["form.transfers["+index+"].moneyOrderForm"]:{
  499. billPayUnit : res.data.transfers[index].payer,
  500. orderNum : res.data.transfers[index].payerAccount,
  501. id : res.data.transfers[index].cashierId,
  502. startTime : res.data.transfers[index].startTime,
  503. endTime : res.data.transfers[index].endTime,
  504. orderType : res.data.transfers[index].orderType,
  505. orderAmount:res.data.transfers[index].expenditureAmount
  506. },
  507. ["form.transfers["+index+"].amountReadonly"]:true
  508. })
  509. },1000)
  510. }
  511. UTIL.httpRequest(
  512. API.URL_GET_FINDLIST,
  513. {
  514. method:'GET',
  515. tableName:'t_yinnong_transfer',
  516. tableId:item.id,
  517. fileType:1
  518. },
  519. {
  520. success: (res) => {
  521. let list = [];
  522. res.data.forEach((item2,index2)=>{
  523. let fileForm = item.fileForm?item.fileForm:[];
  524. fileForm.push({
  525. file: URL_PREFIX+item2.fileUrl,
  526. fileType:'1',
  527. bizPath:'transfer',
  528. tableName:'t_yinnong_transfer',
  529. tableId:''
  530. })
  531. list.push({
  532. tempFilePath:URL_PREFIX+item2.fileUrl,
  533. id:item2.id
  534. })
  535. that.setData({
  536. ["form.transfers["+index+"].SJimage"]:list,
  537. ["form.transfers["+index+"].fileForm"]:fileForm
  538. });
  539. })
  540. }
  541. })
  542. //发票
  543. UTIL.httpRequest(
  544. API.URL_GET_FINDLIST,
  545. {
  546. method:'GET',
  547. tableName:'t_yinnong_transfer',
  548. tableId:item.id,
  549. fileType:2
  550. },
  551. {
  552. success: (res) => {
  553. let list = [];
  554. res.data.forEach((item2,index2)=>{
  555. let fileForm = item.fileForm?item.fileForm:[];
  556. fileForm.push({
  557. file: URL_PREFIX+item2.fileUrl,
  558. fileType:'2',
  559. bizPath:'transfer',
  560. tableName:'t_yinnong_transfer',
  561. tableId:item.id
  562. })
  563. list.push({
  564. tempFilePath:URL_PREFIX+item2.fileUrl,
  565. id:item2.id
  566. })
  567. that.setData({
  568. ["form.transfers["+index+"].FPimage"]:list,
  569. ["form.transfers["+index+"].fileForm"]:fileForm
  570. });
  571. })
  572. }
  573. })
  574. //其他
  575. UTIL.httpRequest(
  576. API.URL_GET_FINDLIST,
  577. {
  578. method:'GET',
  579. tableName:'t_yinnong_transfer',
  580. tableId:item.id,
  581. fileType:3
  582. },
  583. {
  584. success: (res) => {
  585. let list = [];
  586. res.data.forEach((item2,index2)=>{
  587. let fileForm = item.fileForm?item.fileForm:[];
  588. fileForm.push({
  589. file: URL_PREFIX+item2.fileUrl,
  590. fileType:'3',
  591. bizPath:'transfer',
  592. tableName:'t_yinnong_transfer',
  593. tableId:item.id
  594. })
  595. list.push({
  596. tempFilePath:URL_PREFIX+item2.fileUrl,
  597. id:item2.id
  598. })
  599. that.setData({
  600. ["form.transfers["+index+"].QTimage"]:list,
  601. ["form.transfers["+index+"].fileForm"]:fileForm
  602. });
  603. })
  604. }
  605. })
  606. })
  607. that.setData({
  608. form:res.data,
  609. activeNames:null
  610. })
  611. UTIL.httpRequest(API.URL_GET_GETINFO, {method:'GET'}, {
  612. success: (res) => {
  613. if (res.code == API.SUCCESS_CODE) {
  614. that.setData({
  615. ["form.approvalItemTemplate.submitCompany"]:res.user.bookName,
  616. ["form.approvalItemTemplate.submitDate"]:UTIL.js_date_time(new Date()),
  617. ["form.approvalItemTemplate.submitter"]:res.user.nickName,
  618. ["form.approvalItemTemplate.telephone"]:res.user.phonenumber,
  619. })
  620. }
  621. }
  622. })
  623. UTIL.hideLoadingHaveMask();
  624. }
  625. }
  626. })
  627. },1000)
  628. }else{
  629. //村账户查询参数
  630. var perames = {
  631. pageNum:1,
  632. pageSize:999,
  633. accountType:'102',
  634. method:'post',
  635.   params: {
  636.          "townAccountType":"0"
  637.     }
  638. }
  639. // 付款方列表
  640. UTIL.httpRequest(API.URL_GET_SELECTACCOUNTLIST , perames, {
  641. success: (res) => {
  642. that.setData({
  643. accountOptions:res.rows,
  644. ["form.transfers[0].applyDate"]: UTIL.formatDate(new Date()),
  645. applyDate: UTIL.formatDate(new Date()),
  646. })
  647. }
  648. })
  649. UTIL.httpRequest(API.URL_GET_GETINFO, {method:'GET'}, {
  650. success: (res) => {
  651. if (res.code == API.SUCCESS_CODE) {
  652. that.setData({
  653. ["form.approvalItemTemplate.submitCompany"]:res.user.bookName,
  654. ["form.approvalItemTemplate.submitDate"]:UTIL.js_date_time(new Date()),
  655. ["form.approvalItemTemplate.submitter"]:res.user.nickName,
  656. ["form.approvalItemTemplate.telephone"]:res.user.phonenumber,
  657. })
  658. }
  659. }
  660. })
  661. }
  662. },
  663. onChangeBox(event) {
  664. console.log(event);
  665. this.setData({
  666. activeNames: event.detail,
  667. });
  668. },
  669. /**
  670. * 生命周期函数--监听页面初次渲染完成
  671. */
  672. onReady() {
  673. },
  674. /**
  675. * 生命周期函数--监听页面显示
  676. */
  677. onShow() {
  678. },
  679. openBox(even){
  680. console.log(even.currentTarget.dataset.name);
  681. this.setData({
  682. [even.currentTarget.dataset.name]:true
  683. })
  684. },
  685. closeBox(even){
  686. console.log(even.currentTarget.dataset.name);
  687. this.setData({
  688. [even.currentTarget.dataset.name]:false
  689. })
  690. },
  691. onConfirm(event) {
  692. this.setData({
  693. [event.currentTarget.dataset.name]: false,
  694. [event.currentTarget.dataset.value]: UTIL.formatDate(event.detail),
  695. });
  696. },
  697. onConfirmPick(event) {
  698. console.log(event);
  699. this.setData({
  700. [event.currentTarget.dataset.name]: false,
  701. [event.currentTarget.dataset.value]: event.detail.value.dictValue,
  702. [event.currentTarget.dataset.value+'Text']: event.detail.value.dictLabel,
  703. });
  704. },
  705. onConfirmAccount(event) {
  706. console.log(event);
  707. var that = this;
  708. // 所属银行字典查询
  709. UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'bank_type', {method:'GET'}, {
  710. success: (res) => {
  711. this.setData({
  712. [event.currentTarget.dataset.name]: false,
  713. [event.currentTarget.dataset.value+'.payer']: event.detail.value.accountName,
  714. [event.currentTarget.dataset.value+'.cashierId']: event.detail.value.id,
  715. [event.currentTarget.dataset.value+'.payerAccount']: event.detail.value.bankAccountNumber,
  716. [event.currentTarget.dataset.value+'.bankTypeText']: UTIL.getTransform(event.detail.value.bankType,that.data.bankTypeOptions),
  717. [event.currentTarget.dataset.value+'.bankType']: event.detail.value.bankType,
  718. [event.currentTarget.dataset.value+'.payerAccount']:event.detail.value.balance,
  719. });
  720. }
  721. })
  722. },
  723. onConfirmaTransfer(event) {
  724. console.log(event);
  725. var that = this;
  726. let perames = {};
  727. this.setData({
  728. [event.currentTarget.dataset.value+'.payer']: '',
  729. [event.currentTarget.dataset.value+'.payerAccount']: '',
  730. [event.currentTarget.dataset.value+'.bankTypeText']: '',
  731. [event.currentTarget.dataset.value+'.bankType']: '',
  732. [event.currentTarget.dataset.value+'.bankAccountType']: '2',
  733. [event.currentTarget.dataset.value+'.isPeers']: '',
  734. [event.currentTarget.dataset.value+'.paymentPattern']: event.detail.value.dictValue,
  735. [event.currentTarget.dataset.value+'.amountReadonly']:false,
  736. balance:0,
  737. });
  738. console.log(event.detail.value.dictValue);
  739. if(event.detail.value.dictValue == 1 || event.detail.value.dictValue == 2 || event.detail.value.dictValue == 4 || event.detail.value.dictValue == 6 || event.detail.value.dictValue == 7 ){event.detail.value.dictValue = 1 ;}
  740. else if(event.detail.value.dictValue == 3){event.detail.value.dictValue = 2 ;}
  741. else if(event.detail.value.dictValue == 5){event.detail.value.dictValue = 12 ;}
  742. else if(event.detail.value.dictValue == 8){event.detail.value.dictValue = 11 ;}
  743. if(event.detail.value.dictValue == 1){//村账户查询参数
  744. perames = {
  745. pageNum:1,
  746. pageSize:999,
  747. accountType:'102',
  748. method:'post',
  749.   params: {
  750.          "townAccountType":"0"
  751.     }
  752. }
  753. // 付款方列表
  754. UTIL.httpRequest(API.URL_GET_SELECTACCOUNTLIST , perames, {
  755. success: (res) => {
  756. that.setData({
  757. accountOptions:res.rows,
  758. })
  759. }
  760. })
  761. }
  762. if(event.detail.value.dictValue == 2 || event.detail.value.dictValue == 10){//公务卡和现金提现查询参数
  763. perames = {
  764. pageNum:1,
  765. pageSize:999,
  766. accountType:'102',
  767. method:'GET',
  768. villageAccountType:''
  769. }
  770. // 付款方列表
  771. UTIL.httpRequest(API.URL_GET_ACCOUNTLIST , perames, {
  772. success: (res) => {
  773. that.setData({
  774. accountOptions:res.rows,
  775. })
  776. }
  777. })
  778. }
  779. if(event.detail.value.dictValue == 11){//现金使用查询参数
  780. perames = {
  781. pageNum:1,
  782. pageSize:999,
  783. accountType:'101',
  784. method:'GET'
  785. }
  786. // 付款方列表
  787. UTIL.httpRequest(API.URL_GET_ACCOUNTLIST , perames, {
  788. success: (res) => {
  789. that.setData({
  790. accountOptions:res.rows
  791. })
  792. }
  793. })
  794. }
  795. if(event.detail.value.dictValue == 4){//代管账户查询参数
  796. perames = {
  797. pageNum:1,
  798. pageSize:999,
  799. accountType:'102',
  800. method:'GET',
  801. villageAccountType:'1'
  802. }
  803. // 付款方列表
  804. UTIL.httpRequest(API.URL_GET_ACCOUNTLIST , perames, {
  805. success: (res) => {
  806. that.setData({
  807. accountOptions:res.rows,
  808. })
  809. }
  810. })
  811. }
  812. if(event.detail.value.dictValue == 12){//汇票支出查询参数
  813. perames = {
  814. pageNum:1,
  815. pageSize:999,
  816. }
  817. // 付款方列表
  818. UTIL.httpRequest(API.URL_GET_MONEYORDERLIST , perames, {
  819. success: (res) => {
  820. that.setData({
  821. moneyorderOptions:res.rows,
  822. [event.currentTarget.dataset.value+'.amountReadonly']:true
  823. })
  824. }
  825. })
  826. }
  827. this.setData({
  828. [event.currentTarget.dataset.name]: false,
  829. [event.currentTarget.dataset.value+'.transferType']: event.detail.value.dictValue,
  830. [event.currentTarget.dataset.value+'.transferTypeText']: event.detail.value.dictLabel,
  831. });
  832. },
  833. onConfirmProject(event) {
  834. console.log(event);
  835. this.setData({
  836. [event.currentTarget.dataset.name]: false,
  837. [event.currentTarget.dataset.value+'.projectName']: event.detail.value.projectName,
  838. [event.currentTarget.dataset.value+'.projectId']: event.detail.value.id,
  839. [event.currentTarget.dataset.value+'.projectContractor']: event.detail.value.projectContractor,
  840. [event.currentTarget.dataset.value+'.projectAmount']: event.detail.value.projectAmount,
  841. });
  842. },
  843. onConfirmContraction(event) {
  844. console.log(event);
  845. this.setData({
  846. [event.currentTarget.dataset.name]: false,
  847. [event.currentTarget.dataset.value+".name"]: event.detail.value.name,
  848. [event.currentTarget.dataset.value+'.code']: event.detail.value.code,
  849. [event.currentTarget.dataset.value+'.totalAmount']: event.detail.value.totalAmount,
  850. [event.currentTarget.dataset.value+'.contractionId']: event.detail.value.id,
  851. });
  852. },
  853. onConfirmMoneyOrder(event) {
  854. console.log(event);
  855. var that = this ;
  856. this.setData({
  857. [event.currentTarget.dataset.name]: false,
  858. [event.currentTarget.dataset.value+'.moneyOrderForm']: event.detail.value,
  859. [event.currentTarget.dataset.value+'.expenditureAmount']: event.detail.value.orderAmount,
  860. [event.currentTarget.dataset.value+".payeeList[0].incomeAmount"]: event.detail.value.orderAmount,
  861. [event.currentTarget.dataset.value+'.payer']:event.detail.value.billPayUnit,
  862. [event.currentTarget.dataset.value+'.payerAccount'] : event.detail.value.orderNum,
  863. [event.currentTarget.dataset.value+'.cashierId'] : event.detail.value.id,
  864. [event.currentTarget.dataset.value+'.startTime'] : event.detail.value.startTime,
  865. [event.currentTarget.dataset.value+'.endTime'] : event.detail.value.endTime,
  866. [event.currentTarget.dataset.value+'.orderType'] : event.detail.value.orderType
  867. });
  868. var moneyCount = 0 ;
  869. for (let i = 0; i < that.data.form.transfers.length; i++) {
  870. const element = that.data.form.transfers[i];
  871. for (let j = 0; j < element.payeeList.length; j++) {
  872. const element2 = element.payeeList[j];
  873. var allCount = 0 ;
  874. moneyCount = parseFloat(moneyCount)+parseFloat(element2.incomeAmount);
  875. // allCount = parseFloat(allCount)+parseFloat(element2.incomeAmount);
  876. // this.setData({
  877. // ["form.transfers["+i+"].expenditureAmount"]:allCount,
  878. // })
  879. }
  880. }
  881. console.log(moneyCount.toFixed(2));
  882. this.setData({
  883. ["form.approvalItemTemplate.totalAmount"]:moneyCount.toFixed(2),
  884. })
  885. },
  886. goPayeeList(event){
  887. console.log(event.currentTarget.dataset.transfertype)
  888. if(event.currentTarget.dataset.payer == null || event.currentTarget.dataset.payer == ''){
  889. UTIL.showToastNoneIcon('请先选择付款方!');
  890. return;
  891. }
  892. if(event.currentTarget.dataset.accounttype == null ){
  893. event.currentTarget.dataset.accounttype = ''
  894. }
  895. // '/pages/payee/index?isPeers='+event.currentTarget.dataset.ispeers+'&bankType='+event.currentTarget.dataset.banktype+'&accountType='+event.currentTarget.dataset.accounttype+'&transferType='+event.currentTarget.dataset.transfertype + '&index='+event.currentTarget.dataset.index+'&money='+this.data.form.transfers
  896. wx.navigateTo({
  897. url: '/pages/payee/index?transferType='+event.currentTarget.dataset.transfertype+'&money='+this.data.form.transfers[event.currentTarget.dataset.index].expenditureAmount + '&index='+event.currentTarget.dataset.index,
  898. })
  899. },
  900. onChange(event){
  901. console.log(event);
  902. this.setData({
  903. [event.currentTarget.dataset.value]: event.detail,
  904. })
  905. },
  906. onChangeTime(event){
  907. console.log(event);
  908. this.setData({
  909. applyDate: event.detail,
  910. })
  911. },
  912. onConfirmTime(event){
  913. this.setData({
  914. [event.currentTarget.dataset.name]: false,
  915. applyDate: UTIL.formatDate(event.detail),
  916. });
  917. for (let i = 0; i < this.data.form.transfers.length; i++) {
  918. this.setData({
  919. ["form.transfers["+i+"].applyDate"]:UTIL.formatDate(event.detail),
  920. })
  921. }
  922. },
  923. onChangeMoneyOut(event){
  924. console.log(event);
  925. var that = this;
  926. if( !(event.detail.value > -1)){
  927. this.setData({
  928. ["form.transfers["+event.currentTarget.dataset.index+"].expenditureAmount"]:'',
  929. })
  930. return;
  931. }
  932. if( event.detail.value.indexOf('.')>0 && event.detail.value.toString().split(".")[1].length>2){
  933. this.setData({
  934. ["form.transfers["+event.currentTarget.dataset.index+"].expenditureAmount"]:event.detail.value.toString().split(".")[0] + '.' + event.detail.value.toString().split(".")[1].substr(0,2),
  935. })
  936. return;
  937. }
  938. this.setData({
  939. // ["form.transfers["+event.currentTarget.dataset.index+"].payeeList["+event.currentTarget.dataset.childrenindex+"].incomeAmount"]: event.detail,
  940. ["form.transfers["+event.currentTarget.dataset.index+"].payeeList[0].incomeAmount"]: event.detail.value,
  941. ["form.transfers["+event.currentTarget.dataset.index+"].expenditureAmount"]:event.detail.value,
  942. // ["form.transfers["+event.currentTarget.dataset.index+"].expenditureAmount"]:event.detail,
  943. })
  944. if(event.detail.value == ''){
  945. that.data.form.transfers[event.currentTarget.dataset.index].payeeList[0].incomeAmount = parseFloat(0).toFixed(2);
  946. that.data.form.transfers[event.currentTarget.dataset.index].expenditureAmount = parseFloat(0).toFixed(2);
  947. }
  948. var moneyCount = 0 ;
  949. for (let i = 0; i < that.data.form.transfers.length; i++) {
  950. const element = that.data.form.transfers[i];
  951. for (let j = 0; j < element.payeeList.length; j++) {
  952. const element2 = element.payeeList[j];
  953. console.log(element2.incomeAmount);
  954. var allCount = 0 ;
  955. moneyCount = parseFloat(moneyCount) + parseFloat(element2.incomeAmount);
  956. // allCount = parseFloat(allCount)+parseFloat(element2.incomeAmount);
  957. // this.setData({
  958. // ["form.transfers["+i+"].expenditureAmount"]:allCount,
  959. // })
  960. }
  961. }
  962. this.setData({
  963. ["form.approvalItemTemplate.totalAmount"]:moneyCount.toFixed(2),
  964. })
  965. },
  966. onChangeMoney(event){
  967. console.log(event);
  968. var that = this;
  969. if( !(event.detail > -1)){
  970. this.setData({
  971. ["form.transfers["+event.currentTarget.dataset.index+"].expenditureAmount"]:'',
  972. })
  973. return;
  974. }
  975. if( event.detail.indexOf('.')>0 && event.detail.toString().split(".")[1].length>2){
  976. this.setData({
  977. ["form.transfers["+event.currentTarget.dataset.index+"].expenditureAmount"]:event.detail.toString().split(".")[0] + '.' + event.detail.toString().split(".")[1].substr(0,2),
  978. })
  979. return;
  980. }
  981. this.setData({
  982. // ["form.transfers["+event.currentTarget.dataset.index+"].payeeList["+event.currentTarget.dataset.childrenindex+"].incomeAmount"]: event.detail,
  983. ["form.transfers["+event.currentTarget.dataset.index+"].payeeList[0].incomeAmount"]: event.detail,
  984. ["form.transfers["+event.currentTarget.dataset.index+"].expenditureAmount"]:event.detail,
  985. // ["form.transfers["+event.currentTarget.dataset.index+"].expenditureAmount"]:event.detail,
  986. })
  987. console.log(that.data.form);
  988. var moneyCount = 0 ;
  989. for (let i = 0; i < that.data.form.transfers.length; i++) {
  990. const element = that.data.form.transfers[i];
  991. for (let j = 0; j < element.payeeList.length; j++) {
  992. const element2 = element.payeeList[j];
  993. var allCount = 0 ;
  994. moneyCount = parseFloat(moneyCount)+parseFloat(element2.incomeAmount);
  995. // allCount = parseFloat(allCount)+parseFloat(element2.incomeAmount);
  996. // this.setData({
  997. // ["form.transfers["+i+"].expenditureAmount"]:allCount,
  998. // })
  999. }
  1000. }
  1001. console.log(moneyCount.toFixed(2));
  1002. this.setData({
  1003. ["form.approvalItemTemplate.totalAmount"]:moneyCount.toFixed(2),
  1004. })
  1005. console.log(that.data.form);
  1006. console.log(allCount.toFixed(2));
  1007. },
  1008. back:function(){
  1009. wx.navigateBack({
  1010. delta: 1
  1011. })
  1012. },
  1013. goSubmitMB(){
  1014. this.setData({
  1015. showDialog:true
  1016. })
  1017. },
  1018. onClose(){
  1019. this.setData({
  1020. showDialog:false
  1021. })
  1022. },
  1023. bindNameInput(even){
  1024. this.setData({
  1025. ["form.approvalItemTemplate.templateName"]:even.detail.value
  1026. })
  1027. },
  1028. goSubmit(e){
  1029. var that = this;
  1030. console.log(that.data.form);
  1031. var list = that.data.form,
  1032. approvalItems = list.approvalItemTemplate.approvalItems;
  1033. if(approvalItems == ''){
  1034. UTIL.showToastNoneIcon('请填写审批事项名称!');
  1035. that.setData({
  1036. topInputTirme:true
  1037. })
  1038. return;
  1039. }
  1040. for (let i = 0; i < list.transfers.length; i++) {
  1041. const element = list.transfers[i];
  1042. if(element.applyDate == ''){
  1043. UTIL.showToastNoneIcon('请选择事项'+UTIL.convertToChinaNum(i+1)+'的申请时间!');
  1044. return;
  1045. }
  1046. if(element.remark == ''){
  1047. UTIL.showToastNoneIcon('请填写事项'+UTIL.convertToChinaNum(i+1)+'的支出原因!');
  1048. that.setData({
  1049. ["form.transfers["+i+"].remarkTirme"]:true
  1050. })
  1051. return;
  1052. }
  1053. if(element.expenditureAmount == ''){
  1054. UTIL.showToastNoneIcon('请填写事项'+UTIL.convertToChinaNum(i+1)+'的支出金额!');
  1055. that.setData({
  1056. ["form.transfers["+i+"].expenditureAmountTirme"]:true
  1057. })
  1058. return;
  1059. }
  1060. console.log(parseFloat(element.expenditureAmount).toFixed(2))
  1061. console.log(parseFloat(element.payerAccount).toFixed(2))
  1062. console.log(element.transferType);
  1063. if((parseFloat(element.expenditureAmount).toFixed(2) - parseFloat(element.payerAccount).toFixed(2) >0) && element.transferType == 11){
  1064. UTIL.showToastNoneIcon('事项'+UTIL.convertToChinaNum(i+1)+'的支出金额不能超过付款账户余额!');
  1065. return;
  1066. }
  1067. if(element.payer == ''&&element.transferType != 12){
  1068. UTIL.showToastNoneIcon('请选择事项'+UTIL.convertToChinaNum(i+1)+'的付款方!');
  1069. return;
  1070. }
  1071. if(element.payeeList[0].payee == ''&&element.transferType!=12){
  1072. UTIL.showToastNoneIcon('请选择事项'+UTIL.convertToChinaNum(i+1)+'的收款方!');
  1073. return;
  1074. }
  1075. if((element.payeeList[0].incomeAmount == '' || element.payeeList[0].incomeAmount == undefined)&&element.transferType!=12){
  1076. UTIL.showToastNoneIcon('请填写事项'+UTIL.convertToChinaNum(i+1)+'收款方的收入金额!');
  1077. return;
  1078. }
  1079. if(element.transferType == '12'){
  1080. list.transfers[i].payer = list.transfers[i].moneyOrderForm.billPayUnit;
  1081. list.transfers[i].payerAccount = list.transfers[i].moneyOrderForm.orderNum;
  1082. list.transfers[i].cashierId = list.transfers[i].moneyOrderForm.id;
  1083. list.transfers[i].startTime = list.transfers[i].moneyOrderForm.startTime;
  1084. list.transfers[i].endTime = list.transfers[i].moneyOrderForm.endTime;
  1085. list.transfers[i].orderType = list.transfers[i].moneyOrderForm.orderType;
  1086. }
  1087. }
  1088. if(e.currentTarget.dataset.type == 1){
  1089. if(that.data.form.approvalItemTemplate.templateName == ''){
  1090. UTIL.showToastNoneIcon('请输入模板名称!');
  1091. return;
  1092. }
  1093. }
  1094. if(e.currentTarget.dataset.type == 3){
  1095. for (let i = 0; i < that.data.form.transfers.length; i++) {
  1096. that.data.form.transfers[i].approvalMode = '2';
  1097. }
  1098. that.data.form.approvalItemTemplate.dataType = e.currentTarget.dataset.type
  1099. }
  1100. that.data.form.method = 'POST';
  1101. that.data.form.approvalItemTemplate.dataType = e.currentTarget.dataset.type;
  1102. console.log(that.data.form);
  1103. UTIL.httpRequest(API.URL_GET_SAVE, that.data.form, {
  1104. success: (res) => {
  1105. if (res.code == API.SUCCESS_CODE) {
  1106. for (let j = 0; j < res.data.transfers.length; j++) {
  1107. if(that.data.form.transfers[j].capitalExpenditureType == 2){
  1108. that.data.form.transfers[j].projectForm.ynType = res.data.transfers[j].transferType=='1'||res.data.transfers[j].transferType=='2'||res.data.transfers[j].transferType=='4'?'1':'2';
  1109. that.data.form.transfers[j].projectForm.outId = res.data.transfers[j].id;
  1110. that.data.form.transfers[j].projectForm.method = 'POST';
  1111. // 工程项目提交
  1112. UTIL.httpRequest(API.URL_GET_ADDPROJECTTO , that.data.form.transfers[j].projectForm, {
  1113. success: (res) => {
  1114. }
  1115. })
  1116. }
  1117. if(that.data.form.transfers[j].capitalExpenditureType == 4){
  1118. that.data.form.transfers[j].contractionForm.transferId = res.data.transfers[j].id;
  1119. that.data.form.transfers[j].contractionForm.id = '';
  1120. that.data.form.transfers[j].contractionForm.method = 'POST';
  1121. // 关联合同提交
  1122. UTIL.httpRequest(API.URL_GET_GETRELATIONADD , that.data.form.transfers[j].contractionForm, {
  1123. success: (res) => {
  1124. }
  1125. })
  1126. }
  1127. // if(that.data.form.transfers[j].transferType == '12'){
  1128. // console.log(that.data.form.transfers[j].cashForm);
  1129. // that.data.form.transfers[j].cashForm.cashId = res.data.transfers[j].id;
  1130. // that.data.form.transfers[j].cashForm.method = 'POST';
  1131. // if(that.data.form.transfers[j].cashierType == 'edit'){
  1132. // // 收票方信息增加
  1133. // UTIL.httpRequest(API.URL_GET_GETCASHDETAILEDIT , that.data.form.transfers[j].cashForm, {
  1134. // success: (res) => {
  1135. // }
  1136. // })
  1137. // }else{
  1138. // // 收票方信息修改
  1139. // UTIL.httpRequest(API.URL_GET_GETCASHDETAILADD , that.data.form.transfers[j].cashForm, {
  1140. // success: (res) => {
  1141. // }
  1142. // })
  1143. // }
  1144. // }
  1145. if(that.data.form.transfers[j].fileForm == undefined){continue;}
  1146. console.log(that.data.form.transfers[j].fileForm);
  1147. for (let i = 0; i < that.data.form.transfers[j].fileForm.length; i++) {
  1148. that.data.form.transfers[j].fileForm[i].tableId = res.data.transfers[j].id
  1149. const element = that.data.form.transfers[j].fileForm[i];
  1150. wx.uploadFile({
  1151. url: API.URL_GET_UPLOAD,
  1152. filePath: element.file,
  1153. name: 'file',
  1154. header: {
  1155. "Content-Type": "multipart/form-data",//记得设置
  1156. "chartset":"utf-8",
  1157. 'Authorization':'Bearer '+getApp().globalData.userInfo.token
  1158. },
  1159. formData:element,
  1160. success (response){
  1161. console.log(res);
  1162. },
  1163. fail(res){
  1164. console.log(res)
  1165. }
  1166. })
  1167. }
  1168. }
  1169. if(e.currentTarget.dataset.type == 0){
  1170. wx.navigateTo({
  1171. url: '/pages/apply/approval/approval?id='+res.data.approvalItemTemplate.id+'&deptId='+res.data.approvalItemTemplate.deptId+'&form='+JSON.stringify(res.data)+'&type='+that.data.formType+'&applyOptions='+JSON.stringify(that.data.templateModel),
  1172. })
  1173. }
  1174. if(e.currentTarget.dataset.type == 2){
  1175. wx.showToast({
  1176. title: '保存成功',
  1177. icon: 'success',
  1178. duration: 2000,
  1179. })
  1180. }
  1181. if(e.currentTarget.dataset.type == 1){
  1182. console.log("aaa");
  1183. wx.showToast({
  1184. title: '保存成功',
  1185. icon: 'success',
  1186. duration: 2000,
  1187. complete(){
  1188. setTimeout(function(){
  1189. that.back();
  1190. },2000)
  1191. }
  1192. })
  1193. }
  1194. if(e.currentTarget.dataset.type == 3){
  1195. UTIL.httpRequest(API.URL_GET_TOREVIEWSUBMIT+res.data.approvalItemTemplate.id , {method:'POST'}, {
  1196. success: (res2) => {
  1197. if (res2.code == API.SUCCESS_CODE) {
  1198. wx.showToast({
  1199. title: '操作成功',
  1200. icon: 'success',
  1201. duration: 2000,
  1202. complete(){
  1203. setTimeout(function(){
  1204. that.back();
  1205. },2000)
  1206. }
  1207. })
  1208. }else{
  1209. wx.showToast({
  1210. title: '操作失败',
  1211. icon: 'error',
  1212. duration: 2000
  1213. })
  1214. }
  1215. }
  1216. })
  1217. }
  1218. }
  1219. }
  1220. })
  1221. },
  1222. bindKeyInput(even){
  1223. console.log(even);
  1224. this.setData({
  1225. ["form.approvalItemTemplate.approvalItems"]: even.detail,
  1226. })
  1227. },
  1228. errorPd(e){
  1229. console.log(e);
  1230. this.setData({
  1231. [e.currentTarget.dataset.formname+"Tirme"]:e.detail.value == '' ? true:false
  1232. })
  1233. },
  1234. errorJE(e){
  1235. console.log(e);
  1236. this.setData({
  1237. [e.currentTarget.dataset.formname+"Tirme"]:e.detail.value == '' ? true:false
  1238. })
  1239. },
  1240. errorYY(e){
  1241. console.log(e);
  1242. this.setData({
  1243. [e.currentTarget.dataset.formname+"Tirme"]:e.detail.value == '' ? true:false
  1244. })
  1245. },
  1246. SJtakephoto(e){
  1247. var that = this;
  1248. let fileForm = that.data.form.transfers[e.currentTarget.dataset.index].fileForm?that.data.form.transfers[e.currentTarget.dataset.index].fileForm:[];
  1249. wx.chooseMedia({
  1250. mediaType: ['image'],
  1251. sourceType: ['album', 'camera'],
  1252. camera: 'back',
  1253. success(res) {
  1254. console.log(res);
  1255. res.tempFiles.forEach(item => {
  1256. fileForm.push({
  1257. file: item.tempFilePath,
  1258. fileType:'1',
  1259. bizPath:'transfer',
  1260. tableName:'t_yinnong_transfer',
  1261. tableId:''
  1262. })
  1263. })
  1264. console.log(fileForm);
  1265. let tem = that.data.form.transfers[e.currentTarget.dataset.index].SJimage?that.data.form.transfers[e.currentTarget.dataset.index].SJimage:[];
  1266. res.tempFiles.forEach(r=>{
  1267. tem.push({
  1268. tempFilePath:r.tempFilePath
  1269. })
  1270. })
  1271. console.log(tem);
  1272. that.setData({
  1273. ["form.transfers["+e.currentTarget.dataset.index+"].SJimage"]:tem,
  1274. ["form.transfers["+e.currentTarget.dataset.index+"].fileForm"]:fileForm,
  1275. })
  1276. let SJlength = that.data.form.transfers[e.currentTarget.dataset.index].SJimage == undefined ? 0:that.data.form.transfers[e.currentTarget.dataset.index].SJimage.length;
  1277. let FPlength = that.data.form.transfers[e.currentTarget.dataset.index].FPimage == undefined ? 0:that.data.form.transfers[e.currentTarget.dataset.index].FPimage.length;
  1278. let QTlength = that.data.form.transfers[e.currentTarget.dataset.index].QTimage == undefined ? 0:that.data.form.transfers[e.currentTarget.dataset.index].QTimage.length;
  1279. let fileNum = parseInt( SJlength ) + parseInt( FPlength ) + parseInt( QTlength ) ;
  1280. that.setData({
  1281. ["form.transfers["+e.currentTarget.dataset.index+"].fileNum"]:fileNum,
  1282. })
  1283. },fail(err){
  1284. console.log(err);
  1285. }
  1286. })
  1287. },
  1288. FPtakephoto(e){
  1289. var that = this;
  1290. let fileForm = that.data.form.transfers[e.currentTarget.dataset.index].fileForm?that.data.form.transfers[e.currentTarget.dataset.index].fileForm:[];
  1291. console.log(fileForm);
  1292. wx.chooseMedia({
  1293. mediaType: ['image'],
  1294. sourceType: ['album', 'camera'],
  1295. camera: 'back',
  1296. success(res) {
  1297. console.log(res);
  1298. res.tempFiles.forEach(item => {
  1299. fileForm.push({
  1300. file: item.tempFilePath,
  1301. fileType:'2',
  1302. bizPath:'transfer',
  1303. tableName:'t_yinnong_transfer',
  1304. tableId:''
  1305. })
  1306. })
  1307. let tem = that.data.form.transfers[e.currentTarget.dataset.index].FPimage?that.data.form.transfers[e.currentTarget.dataset.index].FPimage:[];
  1308. res.tempFiles.forEach(r=>{
  1309. tem.push({
  1310. tempFilePath:r.tempFilePath
  1311. })
  1312. })
  1313. console.log(tem);
  1314. that.setData({
  1315. ["form.transfers["+e.currentTarget.dataset.index+"].FPimage"]:tem,
  1316. ["form.transfers["+e.currentTarget.dataset.index+"].fileForm"]:fileForm
  1317. })
  1318. let SJlength = that.data.form.transfers[e.currentTarget.dataset.index].SJimage == undefined ? 0:that.data.form.transfers[e.currentTarget.dataset.index].SJimage.length;
  1319. let FPlength = that.data.form.transfers[e.currentTarget.dataset.index].FPimage == undefined ? 0:that.data.form.transfers[e.currentTarget.dataset.index].FPimage.length;
  1320. let QTlength = that.data.form.transfers[e.currentTarget.dataset.index].QTimage == undefined ? 0:that.data.form.transfers[e.currentTarget.dataset.index].QTimage.length;
  1321. let fileNum = parseInt( SJlength ) + parseInt( FPlength ) + parseInt( QTlength ) ;
  1322. that.setData({
  1323. ["form.transfers["+e.currentTarget.dataset.index+"].fileNum"]:fileNum,
  1324. })
  1325. },fail(err){
  1326. console.log(err);
  1327. }
  1328. })
  1329. },
  1330. QTtakephoto(e){
  1331. var that = this;
  1332. let fileForm = that.data.form.transfers[e.currentTarget.dataset.index].fileForm?that.data.form.transfers[e.currentTarget.dataset.index].fileForm:[];
  1333. wx.chooseMedia({
  1334. mediaType: ['image'],
  1335. sourceType: ['album', 'camera'],
  1336. camera: 'back',
  1337. success(res) {
  1338. console.log(res);
  1339. res.tempFiles.forEach(item => {
  1340. fileForm.push({
  1341. file: item.tempFilePath,
  1342. fileType:'3',
  1343. bizPath:'transfer',
  1344. tableName:'t_yinnong_transfer',
  1345. tableId:''
  1346. })
  1347. })
  1348. console.log(fileForm);
  1349. let tem = that.data.form.transfers[e.currentTarget.dataset.index].QTimage?that.data.form.transfers[e.currentTarget.dataset.index].QTimage:[];
  1350. res.tempFiles.forEach(r=>{
  1351. tem.push({
  1352. tempFilePath:r.tempFilePath
  1353. })
  1354. })
  1355. that.setData({
  1356. ["form.transfers["+e.currentTarget.dataset.index+"].QTimage"]:tem,
  1357. ["form.transfers["+e.currentTarget.dataset.index+"].fileForm"]:fileForm
  1358. })
  1359. let SJlength = that.data.form.transfers[e.currentTarget.dataset.index].SJimage == undefined ? 0:that.data.form.transfers[e.currentTarget.dataset.index].SJimage.length;
  1360. let FPlength = that.data.form.transfers[e.currentTarget.dataset.index].FPimage == undefined ? 0:that.data.form.transfers[e.currentTarget.dataset.index].FPimage.length;
  1361. let QTlength = that.data.form.transfers[e.currentTarget.dataset.index].QTimage == undefined ? 0:that.data.form.transfers[e.currentTarget.dataset.index].QTimage.length;
  1362. let fileNum = parseInt( SJlength ) + parseInt( FPlength ) + parseInt( QTlength ) ;
  1363. that.setData({
  1364. ["form.transfers["+e.currentTarget.dataset.index+"].fileNum"]:fileNum,
  1365. })
  1366. },fail(err){
  1367. console.log(err);
  1368. }
  1369. })
  1370. },
  1371. addList(){
  1372. var that = this;
  1373. let transList = this.data.form.transfers;
  1374. console.log(this.data.form);
  1375. for (let i = 0; i < transList.length; i++) {
  1376. const element = transList[i];
  1377. if(element.applyDate == '' || element.remark == '' || element.expenditureAmount == '' || element.payer == '' || element.payeeList[0].payee == '' || element.payeeList[0].incomeAmount == '' || element.payeeList[0].incomeAmount == undefined){
  1378. UTIL.showToastNoneIcon('事项'+UTIL.convertToChinaNum(i+1)+'的信息填写不完整,检查后重试!');
  1379. return;
  1380. }
  1381. }
  1382. transList.push({
  1383. num:UTIL.convertToChinaNum(transList.length+1),
  1384. expenditureAmountTirme:false,
  1385. remarkTirme:false,
  1386. showCapitalExpenditureType:false,
  1387. showApplyDate:false,
  1388. showTransferType:false,
  1389. showProject:false,
  1390. showProjectFundType:false,
  1391. showAccount:false,
  1392. showDialog:false,
  1393. showContraction:false,
  1394. SJimage:[],
  1395. FPimage:[],
  1396. QTimage:[],
  1397. cashForm:{
  1398. payee:'',
  1399. phone:'',
  1400. unit:'',
  1401. leader:'',
  1402. remark:'',
  1403. },
  1404. showTitle:true,
  1405. capitalExpenditureType:'1',//资金支出类别
  1406. capitalExpenditureTypeText:'结算类',//资金支出类别(展示用)
  1407. succeedAmount:'',//成功支付金额
  1408. payer:'',//付款方
  1409. payerAccount:'',//付款方账户
  1410. bankType:'',//所属银行
  1411. bankTypeText:'',//所属银行(展示用)
  1412. isPeers:'N',//是否同行
  1413. operatorCode:'',//操作员代码
  1414. enterpriseCode:'',//企业编码
  1415. expenditureAmount:'',//支出总金额
  1416. applyDate:that.data.applyDate,//申请时间
  1417. transferStatus:'',//转账状态
  1418. auditStatus:'0',//审批状态
  1419. paymentState:'',//支付状态
  1420. approvalMode:'1',//审批模式
  1421. paymentTime:'',//支付时间
  1422. bankPriority:'',//银行处理优先级
  1423. clientPriority:'',//客户处理优先级
  1424. paymentPattern:'1',
  1425. transferType:'1',//付款方式
  1426. transferTypeText:'垫付报销:电子支付',//付款方式(展示用)
  1427. requiredTransferTime:'',//要求转账时间
  1428. remark:'',//付款事由
  1429. startTime:'',//开票日期
  1430. endTime:'',//到期日期
  1431. orderType:'',//汇票类型
  1432. bankAccountType:'2',//账户类别1 公户2私户
  1433. villageAccountType:'',//账户分类
  1434. payeeList:[{//收款方账户集合
  1435. payeeId:'0',//收款方id
  1436. payee:'',//收款方
  1437. bankDeposit:'',//开户行
  1438. incomeAmount:'0.00',//收入金额
  1439. bankType:'',//所属银行0其他银行1中国银行2农商行(山东省)3农业银行4建设银行5工商银行
  1440. payeeAccount:'',//收款账户
  1441. }],
  1442. projectForm:{
  1443. projectId:'',
  1444. projectName:'',
  1445. projectContractor:'',
  1446. projectAmount:'',
  1447. projectBillNum:'',
  1448. projectFundType:'',
  1449. outId:'',
  1450. ynType:'1',
  1451. },
  1452. contractionForm:{
  1453. contractionId:'',
  1454. name:'',
  1455. code:'',
  1456. totalAmount:'',
  1457. },
  1458. });
  1459. //村账户查询参数
  1460. var perames = {
  1461. pageNum:1,
  1462. pageSize:999,
  1463. accountType:'102',
  1464. method:'post',
  1465.   params: {
  1466.          "townAccountType":"0"
  1467.     }
  1468. }
  1469. // 付款方列表
  1470. UTIL.httpRequest(API.URL_GET_SELECTACCOUNTLIST , perames, {
  1471. success: (res) => {
  1472. that.setData({
  1473. accountOptions:res.rows,
  1474. ["form.transfers[0].applyDate"]: UTIL.formatDate(new Date()),
  1475. applyDate: UTIL.formatDate(new Date()),
  1476. })
  1477. }
  1478. })
  1479. this.setData({
  1480. ["form.transfers"] : transList,
  1481. activeNames:transList.length-1
  1482. })
  1483. for (let i = 0; i < this.data.form.transfers.length; i++) {
  1484. const element = this.data.form.transfers[i];
  1485. this.setData({
  1486. ["form.transfers["+i+"].showTitle"] : false,
  1487. })
  1488. }
  1489. this.setData({
  1490. ["form.transfers["+(transList.length-1)+"].showTitle"] : true,
  1491. })
  1492. console.log(this.data.form);
  1493. },
  1494. openPreview(e){
  1495. let array = [];
  1496. console.log(e);
  1497. e.currentTarget.dataset.option.forEach(item=>{
  1498. array.push(item.tempFilePath)
  1499. })
  1500. console.log(array);
  1501. wx.previewImage({
  1502. urls: array,
  1503. showmenu:true,
  1504. current:array[e.currentTarget.dataset.index]
  1505. })
  1506. },
  1507. goKeep(){
  1508. var that = this;
  1509. let pages = getCurrentPages();
  1510. let currentPage = null; //当前页面
  1511. let prevPage = null; //上一个页面
  1512. currentPage = pages[pages.length - 1]; //获取当前页面,将其赋值
  1513. prevPage = pages[pages.length - 2]; //获取上一个页面,将其赋值
  1514. console.log(that.data.form);
  1515. if (prevPage) {
  1516. prevPage.setData({
  1517. form : that.data.form,//将想要传的信息赋值给上一个页面data中的值
  1518. })
  1519. that.back()
  1520. }
  1521. },
  1522. deleteTransfers(e){
  1523. var that = this ;
  1524. console.log(e.currentTarget.dataset.index);
  1525. // that.data.form.transfers[e.currentTarget.dataset.index].collapseDis = true;
  1526. that.setData({
  1527. ["form.transfers["+e.currentTarget.dataset.index+"].collapseDis"]:true
  1528. })
  1529. if(that.data.form.transfers.length<2){
  1530. UTIL.showToastNoneIcon('最少保留一条事项');
  1531. return;
  1532. }
  1533. that.data.form.transfers[e.currentTarget.dataset.index].expenditureAmount = that.data.form.transfers[e.currentTarget.dataset.index].expenditureAmount == '' ? '0' : that.data.form.transfers[e.currentTarget.dataset.index].expenditureAmount;
  1534. that.data.form.approvalItemTemplate.totalAmount = parseFloat(parseFloat(that.data.form.approvalItemTemplate.totalAmount)- parseFloat(that.data.form.transfers[e.currentTarget.dataset.index].expenditureAmount)).toFixed(2);
  1535. that.data.form.transfers.splice(e.currentTarget.dataset.index,1);
  1536. for (let i = 0; i < that.data.form.transfers.length; i++) {
  1537. that.data.form.transfers[i].num = UTIL.convertToChinaNum(i+1)
  1538. }
  1539. console.log(that.data.form);
  1540. that.setData({
  1541. form:that.data.form,
  1542. })
  1543. },
  1544. disabledNone(e){
  1545. console.log("b");
  1546. var that = this ;
  1547. that.setData({
  1548. ["form.transfers["+e.currentTarget.dataset.index+"].collapseDis"]:true
  1549. })
  1550. },
  1551. disabledBlock(e){
  1552. console.log("a");
  1553. var that = this ;
  1554. that.setData({
  1555. ["form.transfers["+e.currentTarget.dataset.index+"].collapseDis"]:false
  1556. })
  1557. },
  1558. onOpen(e){
  1559. var that = this ;
  1560. console.log(that.data.activeNames);
  1561. console.log(e);
  1562. for (let i = 0; i < this.data.form.transfers.length; i++) {
  1563. const element = this.data.form.transfers[i];
  1564. this.setData({
  1565. ["form.transfers["+i+"].showTitle"] : false,
  1566. })
  1567. }
  1568. that.setData({
  1569. ["form.transfers["+e.detail+"].showTitle"]:true
  1570. })
  1571. },
  1572. onCloseSecond(e){
  1573. var that = this ;
  1574. console.log(e);
  1575. that.setData({
  1576. ["form.transfers["+e.detail+"].showTitle"]:false
  1577. })
  1578. },
  1579. deleteimg(e){
  1580. let options = e.currentTarget.dataset.options;
  1581. console.log(options);
  1582. let file = this.data.form.transfers[e.currentTarget.dataset.parentsindex].fileForm;
  1583. for (let i = 0; i < file.length; i++) {
  1584. const element = file[i];
  1585. if(element.file == options[e.currentTarget.dataset.index].tempFilePath){
  1586. file.splice(i,1);
  1587. }
  1588. }
  1589. options.splice(e.currentTarget.dataset.index,1);
  1590. let length = this.data.form.transfers[e.currentTarget.dataset.parentsindex].fileNum - 1;
  1591. this.setData({
  1592. [e.currentTarget.dataset.name]:options,
  1593. ["form.transfers["+e.currentTarget.dataset.parentsindex+"].fileNum"]:length,
  1594. ["form.transfers["+e.currentTarget.dataset.parentsindex+"].fileForm"]:file,
  1595. })
  1596. UTIL.httpRequest(API.URL_GET_GETFILEREMOVE+e.currentTarget.dataset.id , {method:'GET'}, {
  1597. success: (res) => {
  1598. wx.showToast({
  1599. title: '删除成功!',
  1600. icon: 'success',
  1601. duration: 2000,
  1602. })
  1603. }
  1604. })
  1605. },
  1606. /**
  1607. * 生命周期函数--监听页面隐藏
  1608. */
  1609. onHide() {
  1610. },
  1611. /**
  1612. * 生命周期函数--监听页面卸载
  1613. */
  1614. onUnload() {
  1615. },
  1616. /**
  1617. * 页面相关事件处理函数--监听用户下拉动作
  1618. */
  1619. onPullDownRefresh() {
  1620. },
  1621. /**
  1622. * 页面上拉触底事件的处理函数
  1623. */
  1624. onReachBottom() {
  1625. },
  1626. /**
  1627. * 用户点击右上角分享
  1628. */
  1629. onShareAppMessage() {
  1630. }
  1631. })