ts_aimz/pages/copyright/applyRefund/applyRefund.js
itgaojian163 2f73078aa4 首页bug
2025-05-23 17:12:44 +08:00

304 lines
8.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// pages/copyright/applyRepair/applyRepair.js
import {
uploadImgUrl
} from '../../../net/http'
import ProApi from '../../../net/api/projectApi'
const Cache = require('../../../utils/storage')
const data = require('../../../utils/data')
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
imgAssets: app.globalData.imgAssetsUrl,
msgHint: '',
msgType: '',
msgShow: false,
selPro: null,
selType: null,
files: [],
proList: [],
tempSelPro: null,
typeList: data.kindList,
showSelPro: false,
showSelType: false,
tempSelType: null,
remark: '',
proKeywords: '',
proPageData: {
page: 1,
rows: 10,
keywords: ''
},
listRefreshTrig: false,
loadingState: 'loading',
hasMore: true,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
wx.setNavigationBarTitle({
title: '退款申请',
})
wx.setNavigationBarColor({
frontColor: '#000000', // 必写项,字体颜色仅支持#ffffff和#000000
backgroundColor: '#F0F0F0', // 传递的颜色值,仅支持十六进制颜色
animation: { // 可选项
duration: 500,
timingFunc: 'easeIn'
}
})
this.setData({
selectFile: this.selectFile.bind(this),
uploadFile: this.uploadFile.bind(this)
})
//获取可以申请补正的列表
this.getCanRepairList(false)
},
inputKeywords(e) {
this.setData({
proKeywords: e.detail.value
})
},
clearSearch() {
this.setData({
proKeywords: ''
})
this.doRefreshList()
},
//搜索项目
doSearchKeyWord() {
this.doRefreshList()
},
doRefreshList() {
const _self = this
_self.setData({
listRefreshTrig: true,
loadingState: 'loading',
hasMore: true,
isLoadMore: false,
'proPageData.page': 1,
'proPageData.keywords': _self.data.proKeywords
})
_self.getCanRepairList(true)
},
doLoadMore() {
//判断是否正在加载中 与是否存在更多数据
const _self = this
if (_self.data.isLoadMore || !_self.data.hasMore) {
return
}
_self.setData({
isLoadMore: true,
'proPageData.page': ++_self.data.proPageData.page,
'proPageData.keywords': _self.data.proKeywords
})
_self.getCanRepairList(false)
},
//获取可以补正的项目列表
getCanRepairList(isRefresh) {
const _self = this
_self.setData({
proList: isRefresh ? [] : _self.data.proList,
loadingState: isRefresh ? 'loading' : ''
})
ProApi.doGetCanRefundProList(_self.data.proPageData)
.then(res => {
console.log(res)
var status = 'success'
status = res.rows && res.rows.length > 0 ? 'success' : 'empty'
_self.setData({
loadingState: isRefresh ? status : '',
proList: _self.data.proList.concat(res.rows),
listRefreshTrig: false,
isLoadMore: false
})
_self.setData({
hasMore: _self.data.proList.length < res.total
})
})
.catch(err => {
_self.setData({
loadingState: 'error',
listRefreshTrig: false,
isLoadMore: false,
hasMore: true
})
})
},
//显示补正软著选择
showSelProDialog() {
const _self = this
_self.doRefreshList()
_self.setData({
showSelPro: true,
tempSelPro: _self.data.selPro
})
},
chooseType(e) {
this.setData({
tempSelType: e.currentTarget.dataset.value
})
},
choosePro(e) {
this.setData({
tempSelPro: e.currentTarget.dataset.value
})
},
//关闭补正软件选择
closeDialog(e) {
this.setData({
showSelPro: false,
showSelType: false
})
},
showSelTypeDialog() {
this.setData({
showSelType: true,
})
},
confirmSelType() {
this.setData({
showSelType: false,
selType: this.data.tempSelType,
tempSelType: null
})
},
//确定选择补正软著
confirmSelPro() {
this.setData({
showSelPro: false,
selPro: this.data.tempSelPro,
tempSelPro: null
})
},
inputRemark(e) {
this.setData({
remark: e.detail.value
})
},
deleteImage: function (e) {
var index = e.detail.index;
this.data.files.splice(index, 1);
},
previewImage(e) {
wx.previewImage({
current: e.currentTarget.id,
urls: this.data.files
})
},
selectFile(files) {
console.log('files', files)
},
uploadFile(files) {
console.log(files)
const tempFilePaths = files.tempFilePaths;
const token = Cache.get('token')
const header = {}
if (token) {
header.Auth = `Bearer ${token}`;
}
var that = this
for (let i = 0; i < tempFilePaths.length; i++) {
wx.uploadFile({
url: uploadImgUrl,
header: header,
filePath: tempFilePaths[i],
name: 'image',
success(res) {
console.log(res)
let result = JSON.parse(res.data)
that.data.files.push(result.data)
},
fail(err) {
console.log(err);
}
})
}
// 文件上传的函数返回一个promise
return new Promise((resolve, reject) => {
var result = {};
result['urls'] = tempFilePaths;
resolve(result);
})
},
//提交
doApply() {
const legal = this.checkParams()
if (legal) {
const _self = this
wx.showLoading({
title: '提交中...',
})
const ids = _self.data.files.map(item => item.fileId).join(',');
const data = {
projId: _self.data.selPro.projId,
refundReason: _self.data.remark,
refundVoucher: ids
}
ProApi.doApplyRefundPro(data)
.then(res => {
wx.hideLoading()
_self.setData({
msgHint: '提交操作已顺利完成,我们会尽快审核,还请耐心等待',
msgType: 'success',
msgShow: true
})
setTimeout(() => {
_self.backPageRefresh()
}, 2000);
})
.catch(err => {
wx.hideLoading()
_self.setData({
msgHint: err.msg ? err.msg : '提交失败,请稍后重试',
msgType: 'error',
msgShow: true
})
})
}
},
//校验参数
checkParams() {
const _self = this
if (_self.data.selPro == null) {
_self.setData({
msgHint: '请选择退款软著',
msgType: 'error',
msgShow: true
})
return false
}
if (_self.data.remark == '') {
_self.setData({
msgHint: '请输入退款原因',
msgType: 'error',
msgShow: true
})
return false
}
if (_self.data.files.length <= 0) {
_self.setData({
msgHint: '请上传退款凭证',
msgType: 'error',
msgShow: true
})
return false
}
return true
},
backPageRefresh() {
const _self = this
let pages = getCurrentPages();
let beforePage = pages[pages.length - 2];
beforePage.setData({
needRefresh: true
})
wx.navigateBack()
}
})