微信小程序
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

contract.js 12 KiB

3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
3 anos atrás
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444
  1. // pages/bank/bank.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. list:[],
  17. isLoading:false,
  18. pageNums:1,
  19. scrollHeight:"",
  20. name:"",
  21. showUpload:false,
  22. uploadOptions:[],
  23. fileList:[],
  24. showPopup:false,
  25. showPopupDel:false,
  26. showRelevance:false,
  27. relevanceList:[],
  28. fileEvent:{},
  29. itemId:"",
  30. contractionId:""
  31. },
  32. goAdd(){
  33. wx.navigateTo({
  34. url: 'add/add',
  35. })
  36. },
  37. back:function(){
  38. wx.navigateBack({
  39. delta: 1
  40. })
  41. },
  42. /**
  43. * 生命周期函数--监听页面加载
  44. */
  45. onLoad(options) {
  46. var that = this;
  47. let qu = wx.createSelectorQuery()
  48. qu.select("#top_view").boundingClientRect()
  49. qu.select("#top_ban").boundingClientRect()
  50. qu.exec(res => {
  51. that.setData({
  52. scrollHeight:wx.getSystemInfoSync().windowHeight-res[0].height-res[0].top
  53. })
  54. })
  55. },
  56. /**
  57. * 生命周期函数--监听页面初次渲染完成
  58. */
  59. onReady() {
  60. this.getList();
  61. //获取附件字典
  62. UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'common_attach', {method:'GET'}, {
  63. success: (res) => {
  64. if(res.data.length>0){
  65. this.setData({
  66. uploadOptions:res.data,
  67. })
  68. }
  69. }
  70. })
  71. },
  72. getList:function(){
  73. let _this = this
  74. let params = {
  75. pageNum:this.data.pageNums,
  76. pageSize:10,
  77. name:this.data.name
  78. }
  79. UTIL.httpRequest(API.URL_GET_CONTRACTLIST,params,{
  80. success: (res) => {
  81. if(res.code == 200){
  82. if(this.data.pageNums!=1&&this.data.list.length<res.total){
  83. res.rows.map((rr,index) => {
  84. rr.totalAmount = Number(rr.totalAmount ).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => {
  85. return $1 + ","; }).replace(/\.$/, "")
  86. if(index==(res.rows.length-1)){
  87. let lists = this.data.list.concat(res.rows)
  88. _this.setData({list:lists})
  89. }
  90. })
  91. }else if(this.data.pageNums==1){
  92. res.rows.map((rr,index) => {
  93. rr.totalAmount = Number(rr.totalAmount ).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => {
  94. return $1 + ","; }).replace(/\.$/, "")
  95. if(index==(res.rows.length-1)){
  96. _this.setData({list:res.rows})
  97. }
  98. })
  99. }
  100. }else{
  101. UTIL.showToastNoneIcon(res.msg);
  102. }
  103. }
  104. })
  105. },
  106. paging(){
  107. this.setData({
  108. pageNums:this.data.pageNums+1,
  109. })
  110. this.getList();
  111. },
  112. goSearch(e){
  113. this.setData({name:e.detail})
  114. this.getList();
  115. },
  116. goUpdate(e){
  117. this.setData({
  118. "itemId":"",
  119. "itemIndex":"",
  120. "contractionId":""
  121. });
  122. wx.navigateTo({
  123. url: '/pages/contract/add/add?id='+e.currentTarget.dataset.id,
  124. })
  125. },
  126. addAssets(e){
  127. wx.navigateTo({
  128. url: '/pages/contractAssets/fixedAssets?id='+this.data.contractionId,
  129. })
  130. },
  131. delete(e){
  132. this.setData({
  133. 'itemId':e.currentTarget.dataset.id,
  134. 'itemIndex':e.currentTarget.dataset.index,
  135. "showPopupDel":true
  136. });
  137. },
  138. cancelTemDel:function(e){
  139. this.setData({
  140. "itemId":"",
  141. "itemIndex":"",
  142. "showPopupDel":false
  143. });
  144. },
  145. confirmTemDel:function(e){
  146. this.setData({
  147. "showPopupDel":false
  148. });
  149. UTIL.httpRequest(API.URL_GET_CONTRACTDELETE+this.data.itemId , {method:'GET'}, {
  150. success: (res) => {
  151. if(res.code==200){
  152. let new_list = this.data.list
  153. new_list.splice(this.data.itemIndex,1)
  154. this.setData({'list':new_list})
  155. UTIL.showToastNoneIcon('删除成功!');
  156. }else{
  157. UTIL.showToastNoneIcon('删除失败!');
  158. }
  159. }
  160. })
  161. },
  162. relevanceBack(){
  163. let params = {
  164. contractionId:this.data.contractionId
  165. }
  166. UTIL.httpRequest(API.URL_GET_ASSETLIST, params, {
  167. success: (rr) => {
  168. this.setData({
  169. 'revelanceList':rr.rows,
  170. 'showRelevance':true
  171. })
  172. },
  173. })
  174. },
  175. terminate(e){
  176. UTIL.httpRequest(API.URL_GET_TERMINATEINFO+ e.currentTarget.dataset.id, {method:'GET'}, {
  177. success: (res) => {
  178. if(res.code==200){
  179. let list = this.data.list
  180. list[e.currentTarget.dataset.index].contractionStatus = '3'
  181. this.setData({'list':list})
  182. UTIL.showToastNoneIcon('终止成功!');
  183. }else{
  184. UTIL.showToastNoneIcon('终止失败!: '+res.msg);
  185. }
  186. }
  187. })
  188. },
  189. cancel(e){
  190. UTIL.httpRequest(API.URL_GET_CANCELINFO+ e.currentTarget.dataset.id, {method:'GET'}, {
  191. success: (res) => {
  192. if(res.code==200){
  193. let list = this.data.list
  194. list[e.currentTarget.dataset.index].contractionStatus = '2'
  195. this.setData({'list':list})
  196. UTIL.showToastNoneIcon('撤销成功!');
  197. }else{
  198. UTIL.showToastNoneIcon('撤销失败!: '+res.msg);
  199. }
  200. }
  201. })
  202. },
  203. relevanceDelete(e){
  204. UTIL.httpRequest(API.URL_GET_ASSETREMOVE+ e.currentTarget.dataset.id, {method:'GET'}, {
  205. success: (res) => {
  206. if(res.code==200){
  207. let new_list = this.data.revelanceList
  208. new_list.splice(e.currentTarget.dataset.index,1)
  209. this.setData({'revelanceList':new_list})
  210. UTIL.showToastNoneIcon('删除成功!');
  211. }else{
  212. UTIL.showToastNoneIcon('删除失败!');
  213. }
  214. }
  215. })
  216. },
  217. relevance(e){
  218. let params = {
  219. contractionId:e.currentTarget.dataset.id
  220. }
  221. UTIL.httpRequest(API.URL_GET_ASSETLIST, params, {
  222. success: (rr) => {
  223. this.setData({
  224. 'revelanceList':rr.rows,
  225. 'showRelevance':true,
  226. 'contractionId':e.currentTarget.dataset.id
  227. })
  228. }
  229. })
  230. },
  231. upload(e){
  232. this.setData({itemId:e.currentTarget.dataset.id});
  233. this.asyncFun(e.currentTarget.dataset.id)
  234. this.setData({"fileList":[]})
  235. },
  236. asyncFun(id){
  237. let uploadList = this.data.uploadOptions
  238. let newList = []
  239. let _this = this
  240. uploadList.map( res => {
  241. let oData = {
  242. tableId: id,
  243. tableName: "t_contraction_info", //上传表
  244. bizPath: "contraction",
  245. fileType: res.dictValue, //附件类型 1原始发票 2会议纪要 3会议照片 4 参会人员签字
  246. method:'GET'
  247. }
  248. UTIL.httpRequest(API.URL_GET_ATTACHMENTLIST, oData, {
  249. success: (rr) => {
  250. if(rr.code==200&&rr.rows.length>0){
  251. rr.rows.map((rrr,index) => {
  252. rrr.url = URL_PREFIX + rrr.fileUrl
  253. if(index==rr.rows.length-1){
  254. newList.push(Object.assign({},res,{"list":rr.rows}))
  255. _this.setData({"fileList":_this.data.fileList.concat(newList)});
  256. _this.setData({"showUpload":true})
  257. }
  258. })
  259. }else{
  260. let newuploadList = uploadList
  261. newuploadList.map(rd => {
  262. rd.list = newList
  263. })
  264. _this.setData({"fileList":newuploadList});
  265. _this.setData({"showUpload":true})
  266. }
  267. }
  268. })
  269. })
  270. },
  271. closeBox(){
  272. this.setData({"showUpload":false})
  273. this.setData({"showRelevance":false})
  274. },
  275. deleteImg(event){
  276. this.setData({"fileEvent":event})
  277. this.setData({"showPopup":true});
  278. },
  279. cancelTem:function(e){
  280. this.setData({"fileEvent":"{}"});
  281. this.setData({"showPopup":false});
  282. },
  283. confirmTem:function(e){
  284. let event = this.data.fileEvent
  285. UTIL.httpRequest(API.URL_GET_GETFILEREMOVE+event.detail.file.id , {method:'GET'}, {
  286. success: (res) => {
  287. if(res.code==200){
  288. let ll = this.data.fileList
  289. var jsonlist = ll[event.target.dataset.idx].list;
  290. jsonlist.splice(event.detail.index, 1)
  291. ll[event.target.dataset.idx].list = jsonlist
  292. this.setData({"fileList":ll})
  293. this.setData({showPopup:false});
  294. wx.showToast({
  295. title: '删除成功!',
  296. icon: 'success',
  297. duration: 2000,
  298. })
  299. }
  300. }
  301. })
  302. },
  303. uploadFile(uploadFile,event) {
  304. let _this = this
  305. return new Promise((resolve, reject) => {
  306. wx.uploadFile({
  307. url: API.URL_GET_UPLOAD,
  308. filePath: uploadFile.file.file.url,
  309. name: 'file',
  310. header: {
  311. "Content-Type": "multipart/form-data",//记得设置
  312. "chartset":"utf-8",
  313. 'Authorization':'Bearer '+getApp().globalData.userInfo.token
  314. },
  315. formData:uploadFile,
  316. success: (res) => {
  317. res.data = JSON.parse(res.data);
  318. if(res.statusCode == 200){
  319. let files = _this.data.fileList
  320. let fName = res.data.fileUrl.split('/')
  321. let fLength = fName.length
  322. files[event.currentTarget.dataset.idx].list.push({
  323. "fileName": fName[fLength-1],
  324. "fileType": "0",
  325. "fileUrl":res.data.fileUrl ,
  326. "id": res.data.id,
  327. "tableId": 6,
  328. "url":URL_PREFIX+res.data.fileUrl
  329. })
  330. _this.setData({"fileList":files})
  331. wx.hideLoading()
  332. }
  333. },
  334. fail: (err) => {
  335. //上传失败:修改pedding为reject
  336. reject(err)
  337. }
  338. });
  339. })
  340. },
  341. afterRead(event) {
  342. let _this = this
  343. wx.showLoading({
  344. title: '上传中...'
  345. })
  346. let fileForm={
  347. file: event.detail,
  348. fileType:event.currentTarget.dataset.idx,
  349. tableName: "t_contraction_info", //上传表
  350. bizPath: "contraction", //上传目录
  351. tableId:_this.data.itemId
  352. }
  353. this.uploadFile(fileForm,event)
  354. },
  355. lookDown(file,detail){
  356. // 获取指定字符串最后一次出现的位置,返回index
  357. var index1 = file.detail.url.lastIndexOf('.');
  358. // substr(start, length) 抽取从start下标开始的length个字符,返回新的字符串;
  359. var style = file.detail.url.substr(index1 + 1)
  360. //判断图片类型,不需要下载,不做处理
  361. if(style=='png'||style=='jpg'||style=='jpeg'||style=='bmp'||style=='gif'||style=='webp'||style=='psd'||style== 'svg'||style=='tiff'){
  362. //判断非图片类型
  363. }else{
  364. wx.downloadFile({
  365. url: file.detail.url,
  366. success(data){
  367. wx.openDocument({
  368. filePath: data.tempFilePath,
  369. fileType: style,
  370. showMenu:true,
  371. success(res){
  372. }
  373. })
  374. }
  375. })
  376. }
  377. },
  378. /**
  379. * 生命周期函数--监听页面显示
  380. */
  381. onShow() {
  382. if(this.data.contractionId!=""&&this.data.contractionId!=null){
  383. this.relevanceBack()
  384. }else{
  385. let _this = this
  386. let params = {
  387. pageNum:1,
  388. pageSize:10,
  389. name:this.data.name
  390. }
  391. UTIL.httpRequest(API.URL_GET_CONTRACTLIST,params,{
  392. success: (res) => {
  393. if(res.code == 200){
  394. res.rows.map((rr,index) => {
  395. rr.totalAmount = Number(rr.totalAmount ).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => {
  396. return $1 + ","; }).replace(/\.$/, "")
  397. if(index==(res.rows.length-1)){
  398. _this.setData({list:res.rows})
  399. }
  400. })
  401. }else{
  402. UTIL.showToastNoneIcon(res.msg);
  403. }
  404. }
  405. })
  406. }
  407. },
  408. /**
  409. * 生命周期函数--监听页面隐藏
  410. */
  411. onHide() {
  412. },
  413. /**
  414. * 生命周期函数--监听页面卸载
  415. */
  416. onUnload() {
  417. },
  418. /**
  419. * 页面相关事件处理函数--监听用户下拉动作
  420. */
  421. onPullDownRefresh() {
  422. },
  423. /**
  424. * 页面上拉触底事件的处理函数
  425. */
  426. onReachBottom() {
  427. },
  428. /**
  429. * 用户点击右上角分享
  430. */
  431. onShareAppMessage() {
  432. }
  433. })