微信小程序
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
3 anni fa
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680
  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. isIPX: app.globalData.isIPX,
  16. radio:'1',
  17. active:0,
  18. projectText:'',
  19. balance:0,
  20. showCapitalExpenditureType:false,
  21. showApplyDate:false,
  22. showTransferType:false,
  23. showProject:false,
  24. showProjectFundType:false,
  25. showAccount:false,
  26. showDialog:false,
  27. capitalExpenditureTypeOptions:[],
  28. transferTypeOptions:[],
  29. projectOptions:[],
  30. projectFundTypeOptions:[],
  31. contractionOptions:[],
  32. accountOptions:[],
  33. moneyorderOptions:[],
  34. form:{
  35. approvalItemTemplate:{
  36. approvalItems:'',//审批事项
  37. submitCompany:'',//提交单位
  38. submitDate:'',//提交日期
  39. submitter:'',//提交人
  40. telephone:'',//联系方式
  41. totalAmount:'',//合计金额
  42. templateName:'',//模板名称 选择保存模板的时候添加
  43. dataType:'',//数据类型
  44. },
  45. transfers:[{//事项信息集合以下是List对象信息
  46. num:"一",
  47. capitalExpenditureType:'',//资金支出类别
  48. capitalExpenditureTypeText:'',//资金支出类别(展示用)
  49. succeedAmount:'',//成功支付金额
  50. payer:'',//付款方
  51. payerAccount:'',//付款方账户
  52. bankType:'',//所属银行
  53. bankTypeText:'',//所属银行(展示用)
  54. isPeers:'',//是否同行
  55. operatorCode:'',//操作员代码
  56. enterpriseCode:'',//企业编码
  57. expenditureAmount:'',//支出总金额
  58. applyDate:'',//申请时间
  59. transferStatus:'',//转账状态
  60. auditStatus:'',//审批状态
  61. paymentState:'',//支付状态
  62. approvalMode:'',//审批模式
  63. paymentTime:'',//支付时间
  64. bankPriority:'',//银行处理优先级
  65. clientPriority:'',//客户处理优先级
  66. transferType:'',//付款方式
  67. transferTypeText:'',//付款方式(展示用)
  68. requiredTransferTime:'',//要求转账时间
  69. remark:'',//付款事由
  70. startTime:'',//开票日期
  71. endTime:'',//到期日期
  72. orderType:'',//汇票类型
  73. bankAccountType:'',//账户类别1 公户2私户
  74. villageAccountType:'',//账户分类
  75. payeeList:[{//收款方账户集合
  76. payeeId:'0',//收款方id
  77. payee:'',//收款方
  78. bankDeposit:'',//开户行
  79. incomeAmount:'',//收入金额
  80. bankType:'',//所属银行0其他银行1中国银行2农商行(山东省)3农业银行4建设银行5工商银行
  81. payeeAccount:'',//收款账户
  82. }],
  83. }],
  84. },
  85. projectForm:{
  86. projectId:'',
  87. projectName:'',
  88. projectContractor:'',
  89. projectAmount:'',
  90. projectBillNum:'',
  91. projectFundType:'',
  92. outId:'',
  93. ynType:'1',
  94. },
  95. contractionForm:{
  96. id:'',
  97. name:'',
  98. code:'',
  99. totalAmount:'',
  100. },
  101. accountForm:{},
  102. fileForm:[]
  103. },
  104. /**
  105. * 生命周期函数--监听页面加载
  106. */
  107. onLoad(options) {
  108. var that = this;
  109. setTimeout(function(){
  110. UTIL.httpRequest(API.URL_GET_USERAPPRO, {method:'GET'}, {
  111. success: (res) => {
  112. if (res.code == API.SUCCESS_CODE) {
  113. console.log(that.data.capitalExpenditureTypeOptions);
  114. res.data.transfers.forEach( (item,index) => {
  115. res.data.transfers[index].capitalExpenditureTypeText = UTIL.getTransform(item.capitalExpenditureType,that.data.capitalExpenditureTypeOptions);
  116. res.data.transfers[index].transferTypeText = UTIL.getTransform(item.transferType,that.data.transferTypeOptions);
  117. res.data.transfers[index].bankTypeText = UTIL.getTransform(item.bankType,that.data.bankTypeOptions);
  118. res.data.transfers[index].payeeList.forEach( (response,i) => {
  119. res.data.transfers[index].payeeList[i].bankTypeText = UTIL.getTransform(response.bankType,that.data.bankTypeOptions);
  120. })
  121. })
  122. that.setData({
  123. form:res.data
  124. })
  125. //收据附件
  126. UTIL.httpRequest(
  127. API.URL_GET_FINDLIST,
  128. {
  129. method:'GET',
  130. tableName:'t_yinnong_approval_item_template',
  131. tableId:res.data.approvalItemTemplate.id,
  132. fileType:1
  133. },
  134. {
  135. success: (res) => {
  136. let list = [];
  137. res.data.forEach(item=>{
  138. list.push({
  139. tempFilePath:URL_PREFIX+item.fileUrl
  140. })
  141. })
  142. that.setData({
  143. SJimage:list
  144. });
  145. }
  146. })
  147. //发票
  148. UTIL.httpRequest(
  149. API.URL_GET_FINDLIST,
  150. {
  151. method:'GET',
  152. tableName:'t_yinnong_approval_item_template',
  153. tableId:res.data.approvalItemTemplate.id,
  154. fileType:2
  155. },
  156. {
  157. success: (res) => {
  158. let list = [];
  159. res.data.forEach(item=>{
  160. list.push({
  161. tempFilePath:URL_PREFIX+item.fileUrl
  162. })
  163. })
  164. that.setData({
  165. FPimage:list
  166. });
  167. }
  168. })
  169. //其他
  170. UTIL.httpRequest(
  171. API.URL_GET_FINDLIST,
  172. {
  173. method:'GET',
  174. tableName:'t_yinnong_approval_item_template',
  175. tableId:res.data.approvalItemTemplate.id,
  176. fileType:3
  177. },
  178. {
  179. success: (res) => {
  180. let list = [];
  181. res.data.forEach(item=>{
  182. list.push({
  183. tempFilePath:URL_PREFIX+item.fileUrl
  184. })
  185. })
  186. that.setData({
  187. QTimage:list
  188. });
  189. }
  190. })
  191. }
  192. }
  193. })
  194. },1000)
  195. },
  196. /**
  197. * 生命周期函数--监听页面初次渲染完成
  198. */
  199. onReady() {
  200. },
  201. /**
  202. * 生命周期函数--监听页面显示
  203. */
  204. onShow() {
  205. var that = this;
  206. UTIL.httpRequest(API.URL_GET_GETINFO, {method:'GET'}, {
  207. success: (res) => {
  208. if (res.code == API.SUCCESS_CODE) {
  209. that.setData({
  210. ["form.approvalItemTemplate.submitCompany"]:res.user.bookName,
  211. ["form.approvalItemTemplate.submitDate"]:UTIL.js_date_time(new Date()),
  212. ["form.approvalItemTemplate.submitter"]:res.user.nickName,
  213. ["form.approvalItemTemplate.telephone"]:res.user.phonenumber,
  214. })
  215. }
  216. }
  217. })
  218. //所属银行
  219. UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'bank_type', {method:'GET'}, {
  220. success: (res) => {
  221. this.setData({
  222. bankTypeOptions:res.data
  223. });
  224. }
  225. })
  226. // 资金支出类别字典查询
  227. UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'capital_expenditure_type', {method:'GET'}, {
  228. success: (res) => {
  229. that.setData({
  230. capitalExpenditureTypeOptions:res.data,
  231. })
  232. }
  233. })
  234. // 付款方式类型字典查询
  235. UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'transfer_type', {method:'GET'}, {
  236. success: (res) => {
  237. that.setData({
  238. transferTypeOptions:res.data,
  239. })
  240. }
  241. })
  242. // 项目工程列表
  243. UTIL.httpRequest(API.URL_GET_GETPROJECTLIST , {method:'GET'}, {
  244. success: (res) => {
  245. that.setData({
  246. projectOptions:res.rows,
  247. })
  248. }
  249. })
  250. // 工程款类型字典查询
  251. UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'project_fund_type', {method:'GET'}, {
  252. success: (res) => {
  253. that.setData({
  254. projectFundTypeOptions:res.data,
  255. })
  256. }
  257. })
  258. // 获取合同信息列表
  259. UTIL.httpRequest(API.URL_GET_CONTRACTIONLIST , {method:'GET'}, {
  260. success: (res) => {
  261. that.setData({
  262. contractionOptions:res.rows,
  263. })
  264. }
  265. })
  266. },
  267. openBox(even){
  268. this.setData({
  269. [even.currentTarget.dataset.name]:true
  270. })
  271. },
  272. closeBox(even){
  273. console.log(even.currentTarget.dataset.name);
  274. this.setData({
  275. [even.currentTarget.dataset.name]:false
  276. })
  277. },
  278. onConfirm(event) {
  279. this.setData({
  280. [event.currentTarget.dataset.name]: false,
  281. [event.currentTarget.dataset.value]: UTIL.formatDate(event.detail),
  282. });
  283. },
  284. onConfirmPick(event) {
  285. console.log(event);
  286. this.setData({
  287. [event.currentTarget.dataset.name]: false,
  288. [event.currentTarget.dataset.value]: event.detail.value.dictValue,
  289. [event.currentTarget.dataset.value+'Text']: event.detail.value.dictLabel,
  290. });
  291. },
  292. onConfirmAccount(event) {
  293. console.log(event);
  294. var that = this;
  295. // 所属银行字典查询
  296. UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'bank_type', {method:'GET'}, {
  297. success: (res) => {
  298. let array = res.data.filter(function (e) { return e.dictValue == event.detail.value.bankType; });
  299. this.setData({
  300. [event.currentTarget.dataset.name]: false,
  301. [event.currentTarget.dataset.value+'.payer']: event.detail.value.accountName,
  302. [event.currentTarget.dataset.value+'.cashierId']: event.detail.value.id,
  303. [event.currentTarget.dataset.value+'.payerAccount']: event.detail.value.bankAccountNumber,
  304. [event.currentTarget.dataset.value+'.bankTypeText']: array[0].dictLabel,
  305. [event.currentTarget.dataset.value+'.bankType']: event.detail.value.bankType,
  306. balance:event.detail.value.balance,
  307. });
  308. }
  309. })
  310. },
  311. onConfirmaTransfer(event) {
  312. console.log(event);
  313. var that = this;
  314. let perames = {};
  315. this.setData({
  316. [event.currentTarget.dataset.value+'.payer']: '',
  317. [event.currentTarget.dataset.value+'.payerAccount']: '',
  318. [event.currentTarget.dataset.value+'.bankTypeText']: '',
  319. [event.currentTarget.dataset.value+'.bankType']: '',
  320. [event.currentTarget.dataset.value+'.bankAccountType']: '',
  321. [event.currentTarget.dataset.value+'.isPeers']: '',
  322. balance:0,
  323. });
  324. if(event.detail.value.dictValue == 1){//村账户查询参数
  325. perames = {
  326. pageNum:1,
  327. pageSize:999,
  328. accountType:'102',
  329. method:'post',
  330.   params: {
  331.          "townAccountType":"0"
  332.     }
  333. }
  334. // 付款方列表
  335. UTIL.httpRequest(API.URL_GET_SELECTACCOUNTLIST , perames, {
  336. success: (res) => {
  337. that.setData({
  338. accountOptions:res.rows,
  339. })
  340. }
  341. })
  342. }
  343. if(event.detail.value.dictValue == 2 || event.detail.value.dictValue == 10){//公务卡和现金提现查询参数
  344. perames = {
  345. pageNum:1,
  346. pageSize:999,
  347. accountType:'102',
  348. method:'GET',
  349. villageAccountType:''
  350. }
  351. // 付款方列表
  352. UTIL.httpRequest(API.URL_GET_ACCOUNTLIST , perames, {
  353. success: (res) => {
  354. that.setData({
  355. accountOptions:res.rows,
  356. })
  357. }
  358. })
  359. }
  360. if(event.detail.value.dictValue == 11){//现金使用查询参数
  361. perames = {
  362. pageNum:1,
  363. pageSize:999,
  364. accountType:'101',
  365. method:'GET'
  366. }
  367. // 付款方列表
  368. UTIL.httpRequest(API.URL_GET_ACCOUNTLIST , perames, {
  369. success: (res) => {
  370. that.setData({
  371. accountOptions:res.rows
  372. })
  373. }
  374. })
  375. }
  376. if(event.detail.value.dictValue == 4){//代管账户查询参数
  377. perames = {
  378. pageNum:1,
  379. pageSize:999,
  380. accountType:'102',
  381. method:'GET',
  382. villageAccountType:'1'
  383. }
  384. // 付款方列表
  385. UTIL.httpRequest(API.URL_GET_ACCOUNTLIST , perames, {
  386. success: (res) => {
  387. that.setData({
  388. accountOptions:res.rows,
  389. })
  390. }
  391. })
  392. }
  393. if(event.detail.value.dictValue == 12){//汇票支出查询参数
  394. perames = {
  395. pageNum:1,
  396. pageSize:999,
  397. }
  398. // 付款方列表
  399. UTIL.httpRequest(API.URL_GET_MONEYORDERLIST , perames, {
  400. success: (res) => {
  401. that.setData({
  402. moneyorderOptions:res.rows,
  403. })
  404. }
  405. })
  406. }
  407. this.setData({
  408. [event.currentTarget.dataset.name]: false,
  409. [event.currentTarget.dataset.value+'.transferType']: event.detail.value.dictValue,
  410. [event.currentTarget.dataset.value+'.transferTypeText']: event.detail.value.dictLabel,
  411. });
  412. },
  413. onConfirmProject(event) {
  414. console.log(event);
  415. this.setData({
  416. [event.currentTarget.dataset.name]: false,
  417. [event.currentTarget.dataset.value]: event.detail.value.projectName,
  418. ['projectForm.projectId']: event.detail.value.id,
  419. ['projectForm.projectContractor']: event.detail.value.projectContractor,
  420. ['projectForm.projectAmount']: event.detail.value.projectAmount,
  421. });
  422. },
  423. onConfirmContraction(event) {
  424. console.log(event);
  425. this.setData({
  426. [event.currentTarget.dataset.name]: false,
  427. [event.currentTarget.dataset.value]: event.detail.value.name,
  428. ['contractionForm.code']: event.detail.value.code,
  429. ['contractionForm.totalAmount']: event.detail.value.totalAmount,
  430. ['contractionForm.id']: event.detail.value.id,
  431. });
  432. },
  433. onConfirmMoneyorder(event) {
  434. console.log(event);
  435. this.setData({
  436. [event.currentTarget.dataset.name]: false,
  437. [event.currentTarget.dataset.value]: event.detail.value.name,
  438. ['contractionForm.code']: event.detail.value.code,
  439. ['contractionForm.totalAmount']: event.detail.value.totalAmount,
  440. ['contractionForm.id']: event.detail.value.id,
  441. });
  442. },
  443. goPayeeList(event){
  444. console.log(event);
  445. wx.navigateTo({
  446. url: '/pages/payee/index?isPeers='+event.currentTarget.dataset.ispeers+'&bankType='+event.currentTarget.dataset.banktype+'&accountType='+event.currentTarget.dataset.accounttype+'&transferType='+event.currentTarget.dataset.transfertype,
  447. })
  448. },
  449. onChange(event){
  450. console.log(event);
  451. this.setData({
  452. [event.currentTarget.dataset.value]: event.detail,
  453. })
  454. },
  455. onChangeMoney(event){
  456. console.log(event);
  457. this.setData({
  458. [event.currentTarget.dataset.value]: event.detail,
  459. ["form.approvalItemTemplate.totalAmount"]:event.detail,
  460. ["form.transfers[0].expenditureAmount"]:event.detail,
  461. })
  462. },
  463. back:function(){
  464. wx.navigateBack({
  465. delta: 1
  466. })
  467. },
  468. goSubmitMB(){
  469. this.setData({
  470. showDialog:true
  471. })
  472. },
  473. onClose(){
  474. this.setData({
  475. showDialog:false
  476. })
  477. },
  478. bindNameInput(even){
  479. this.setData({
  480. ["form.approvalItemTemplate.templateName"]:even.detail.value
  481. })
  482. },
  483. goSubmit(e){
  484. var that = this;
  485. if(e.currentTarget.dataset.type == 1){
  486. if(that.data.form.approvalItemTemplate.templateName == ''){
  487. UTIL.showToastNoneIcon('请输入模板名称!');
  488. return;
  489. }
  490. }
  491. that.setData({
  492. ['form.method']:'POST',
  493. ["form.approvalItemTemplate.dataType"]:e.currentTarget.dataset.type
  494. })
  495. UTIL.httpRequest(API.URL_GET_SAVE, that.data.form, {
  496. success: (res) => {
  497. if (res.code == API.SUCCESS_CODE) {
  498. for (let i = 0; i < that.data.fileForm.length; i++) {
  499. that.data.fileForm[i].tableId = res.data.id
  500. const element = that.data.fileForm[i];
  501. wx.uploadFile({
  502. url: API.URL_GET_UPLOAD,
  503. filePath: element.file,
  504. name: 'file',
  505. header: {
  506. "Content-Type": "multipart/form-data",//记得设置
  507. "chartset":"utf-8",
  508. 'Authorization':'Bearer '+getApp().globalData.userInfo.token
  509. },
  510. formData:element,
  511. success (response){
  512. console.log(res);
  513. if((i+1) == that.data.fileForm.length){
  514. wx.navigateTo({
  515. url: '/pages/apply/approval/approval?id='+res.data.id,
  516. })
  517. }
  518. },
  519. fail(res){
  520. console.log(res)
  521. }
  522. })
  523. }
  524. }
  525. }
  526. })
  527. },
  528. bindKeyInput(even){
  529. this.setData({
  530. ["form.approvalItemTemplate.approvalItems"]: even.detail.value,
  531. })
  532. },
  533. SJtakephoto(){
  534. var that = this;
  535. let fileForm = that.data.fileForm;
  536. wx.chooseMedia({
  537. count: 9,
  538. mediaType: ['image','video'],
  539. sourceType: ['album', 'camera'],
  540. maxDuration: 30,
  541. camera: 'back',
  542. success(res) {
  543. console.log(res);
  544. res.tempFiles.forEach(item => {
  545. fileForm.push({
  546. file: item.tempFilePath,
  547. fileType:'1',
  548. bizPath:'transfer',
  549. tableName:'t_yinnong_approval_item_template',
  550. tableId:''
  551. })
  552. })
  553. that.setData({
  554. SJimage:res.tempFiles,
  555. fileForm:fileForm
  556. })
  557. }
  558. })
  559. },
  560. FPtakephoto(){
  561. var that = this;
  562. let fileForm = that.data.fileForm;
  563. wx.chooseMedia({
  564. count: 9,
  565. mediaType: ['image','video'],
  566. sourceType: ['album', 'camera'],
  567. maxDuration: 30,
  568. camera: 'back',
  569. success(res) {
  570. res.tempFiles.forEach(item => {
  571. fileForm.push({
  572. file: item.tempFilePath,
  573. fileType:'2',
  574. bizPath:'transfer',
  575. tableName:'t_yinnong_approval_item_template',
  576. tableId:''
  577. })
  578. })
  579. that.setData({
  580. FPimage:res.tempFiles,
  581. fileForm:fileForm
  582. })
  583. }
  584. })
  585. },
  586. QTtakephoto(){
  587. var that = this;
  588. let fileForm = that.data.fileForm;
  589. wx.chooseMedia({
  590. count: 9,
  591. mediaType: ['image','video'],
  592. sourceType: ['album', 'camera'],
  593. maxDuration: 30,
  594. camera: 'back',
  595. success(res) {
  596. res.tempFiles.forEach(item => {
  597. fileForm.push({
  598. file: item.tempFilePath,
  599. fileType:'3',
  600. bizPath:'transfer',
  601. tableName:'t_yinnong_approval_item_template',
  602. tableId:''
  603. })
  604. })
  605. that.setData({
  606. QTimage:res.tempFiles,
  607. fileForm:fileForm
  608. })
  609. }
  610. })
  611. },
  612. addList(){
  613. let transList = this.data.form.transfers;
  614. transList.push({
  615. num:UTIL.convertToChinaNum(transList.length+1)
  616. });
  617. this.setData({
  618. ["form.transfers"] : transList
  619. })
  620. },
  621. openPreview(e){
  622. let array = [];
  623. console.log(e);
  624. e.currentTarget.dataset.option.forEach(item=>{
  625. array.push(item.tempFilePath)
  626. })
  627. console.log(array);
  628. wx.previewImage({
  629. urls: array,
  630. showmenu:true,
  631. current:array[e.currentTarget.dataset.index]
  632. })
  633. },
  634. /**
  635. * 生命周期函数--监听页面隐藏
  636. */
  637. onHide() {
  638. },
  639. /**
  640. * 生命周期函数--监听页面卸载
  641. */
  642. onUnload() {
  643. },
  644. /**
  645. * 页面相关事件处理函数--监听用户下拉动作
  646. */
  647. onPullDownRefresh() {
  648. },
  649. /**
  650. * 页面上拉触底事件的处理函数
  651. */
  652. onReachBottom() {
  653. },
  654. /**
  655. * 用户点击右上角分享
  656. */
  657. onShareAppMessage() {
  658. }
  659. })