@@ -0,0 +1,457 @@ | |||||
// pages/apply/index.js | |||||
import * as UTIL from '../../../utils/util.js'; | |||||
import * as API from '../../../utils/API.js'; | |||||
const app = getApp(); | |||||
Page({ | |||||
/** | |||||
* 页面的初始数据 | |||||
*/ | |||||
data: { | |||||
isIPX: app.globalData.isIPX, | |||||
bookName:'', //付款单位 | |||||
formData:{ | |||||
accountType:'', //账户类型 | |||||
accountDate:'', //收入时间 | |||||
jieAmount:'', //收入金额 | |||||
accountName:'', //存入账户 | |||||
incomeType:'', //收入类型 | |||||
billNum:'', //单据编码 | |||||
accountSummary:'', //备注说明 | |||||
contractionId:'', //合同编码 | |||||
incomeExpensesType:1, //收支类别 | |||||
isBill:0 | |||||
}, | |||||
incomeTypeOptions:[], //收入类型选项 | |||||
incomeTypeText:'222', //收入类型显示文字 | |||||
contractionOptions:[], //付款人合同信息列表接口 | |||||
showHt:false, | |||||
payerText:'', //付款人 | |||||
sjPics:[], //收据图片列表数据 | |||||
fpPics:[], //发票图片列表数据 | |||||
qtPics:[], //其他图片列表数据 | |||||
//收入时间弹窗显隐 | |||||
srShow:false, | |||||
minDate: new Date(2021, 6, 1).getTime(), | |||||
maxDate: new Date(2023, 0, 31).getTime(), | |||||
crzhShow:false, | |||||
accountListOptions:[], //存入账户类型选项 | |||||
crlxShow:false, //收入类型弹窗显隐 | |||||
}, | |||||
onCancelcrlx(){ | |||||
this.setData({crlxShow:false,}) | |||||
}, | |||||
oncrlxShow(){ this.setData({crlxShow:true})}, | |||||
onCancelcrzh(){ | |||||
this.setData({crzhShow:false}) | |||||
}, | |||||
oncrzhShow(){ this.setData({crzhShow:true})}, | |||||
onConfirmcrzh(e){ | |||||
let data = e.detail.value; | |||||
this.setData({ | |||||
crzhShow:false, | |||||
'formData.accountName':data.accountName, | |||||
'formData.accountId':data.id, | |||||
'formData.accountType':data.accountType | |||||
}) | |||||
}, | |||||
onsrDate(){ | |||||
this.setData({srShow:true}) | |||||
}, | |||||
onClose(){ this.setData({srShow:false})}, | |||||
onConfirm(e){ | |||||
let data = this.getNewDate(new Date(e.detail)); | |||||
this.setData({'formData.accountDate':data}) | |||||
this.setData({srShow:false}) | |||||
}, | |||||
closeBox(){ | |||||
this.setData({showHt:false}) | |||||
}, | |||||
getNewDate(date){ | |||||
//date是传过来的时间戳,注意需为13位,10位需*1000 | |||||
//也可以不传,获取的就是当前时间 | |||||
var time = new Date(date); | |||||
var year= time.getFullYear() //年 | |||||
var month = ("0" + (time.getMonth() + 1)).slice(-2); //月 | |||||
var day = ("0" + time.getDate()).slice(-2); //日 | |||||
var mydate = year + "-" + month + "-" + day; | |||||
return mydate | |||||
}, | |||||
onConfirmContraction(value){ | |||||
let obj = value.detail.value; | |||||
this.setData({ | |||||
payerText:obj.name, | |||||
showHt:false, | |||||
'formData.contractionId':obj.id, | |||||
contractionIdID:obj.code | |||||
}) | |||||
}, | |||||
selectContraction(){ | |||||
this.setData({showHt:true}) | |||||
}, | |||||
bindPickerChange (e) { | |||||
let obj = e.detail.value; | |||||
this.setData({ | |||||
crlxShow:false, | |||||
'formData.incomeType':obj.dictValue, | |||||
incomeTypeText:obj.dictLabel | |||||
}) | |||||
}, | |||||
inputChange(e){ | |||||
this.setData({ | |||||
[e.currentTarget.dataset.prop]: e.detail.value | |||||
}) | |||||
}, | |||||
/** | |||||
* 生命周期函数--监听页面加载 | |||||
*/ | |||||
onShow: function () { | |||||
}, | |||||
/** | |||||
* 生命周期函数--监听页面初次渲染完成 | |||||
*/ | |||||
onLoad: function (options) { | |||||
console.log(options); | |||||
var that = this; | |||||
//获取附件字典 | |||||
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'bookkeeping_type', {method:'GET'}, { | |||||
success: (res) => { | |||||
if(res.data.length>0){ | |||||
this.setData({ | |||||
uploadOptions:res.data, | |||||
}) | |||||
let uploadList = res.data | |||||
let newList = [] | |||||
let _this = this | |||||
uploadList.map( res => { | |||||
let oData = { | |||||
tableId: id, | |||||
tableName: "t_contraction_info", //上传表 | |||||
bizPath: "contraction", | |||||
fileType: res.dictValue, //附件类型 1原始发票 2会议纪要 3会议照片 4 参会人员签字 | |||||
method:'GET' | |||||
} | |||||
UTIL.httpRequest(API.URL_GET_ATTACHMENTLIST, oData, { | |||||
success: (rr) => { | |||||
console.log(rr.rows); | |||||
rr.rows.map((rrr,index) => { | |||||
rrr.url = URL_PREFIX + rrr.fileUrl | |||||
if(index==rr.rows.length-1){ | |||||
newList.push(Object.assign({},res,{"list":rr.rows})) | |||||
_this.setData({"fileList":_this.data.fileList.concat(newList)}); | |||||
_this.setData({"showUpload":true}) | |||||
} | |||||
}) | |||||
}, | |||||
fail:(rr) =>{ | |||||
console.log(rr); | |||||
}, | |||||
complete:(rr) => { | |||||
console.log(rr); | |||||
} | |||||
}) | |||||
}) | |||||
} | |||||
} | |||||
}) | |||||
//查询收入详情 | |||||
UTIL.httpRequest(API.URL_GET_FLOWGET + options.id , {method:'GET'}, { | |||||
success: (res) => { | |||||
if(res.data.incomeType == 2){ | |||||
UTIL.httpRequest(API.URL_GET_INFOGET + res.data.contractionId , {method:'GET'}, { | |||||
success: (res3) => { | |||||
that.setData({ | |||||
contractionIdID:res3.data.code, | |||||
payerText:res3.data.name, | |||||
}) | |||||
} | |||||
}) | |||||
} | |||||
//获取收入类型状态 | |||||
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'income_type', {method:'GET'}, { | |||||
success: (res2) => { | |||||
if(res2.data.length>0){ | |||||
that.setData({ | |||||
incomeTypeOptions:res2.data, | |||||
}) | |||||
that.setData({ | |||||
formData:res.data, | |||||
contractionIdID:res.data.code, | |||||
incomeTypeText:UTIL.getTransform(res.data.incomeType,res2.data) | |||||
}) | |||||
} | |||||
} | |||||
}) | |||||
console.log(res); | |||||
} | |||||
}) | |||||
}, | |||||
/** | |||||
* 生命周期函数--监听页面显示 | |||||
*/ | |||||
onReady: function () { | |||||
let that = this; | |||||
//获取收入单位 | |||||
UTIL.httpRequest(API.URL_GET_GETINFO, {method:'GET'}, { | |||||
success: (res) => { | |||||
if (res.code == API.SUCCESS_CODE) { | |||||
this.setData({bookName:res.user.bookName}) | |||||
} | |||||
} | |||||
}) | |||||
// 获取合同信息列表 | |||||
UTIL.httpRequest(API.URL_GET_CONTRACTIONLIST , {method:'GET'}, { | |||||
success: (res) => { | |||||
that.setData({ | |||||
contractionOptions:res.rows, | |||||
}) | |||||
} | |||||
}) | |||||
//获取当前账套付款账户列表 | |||||
UTIL.httpRequest(API.URL_GET_ACCOUNTLIST , {method:'GET'}, { | |||||
success: (res) => { | |||||
that.setData({ | |||||
accountListOptions:res.rows, | |||||
}) | |||||
} | |||||
}) | |||||
}, | |||||
deleteimg:function(e){ | |||||
let oData = e.currentTarget.dataset; | |||||
let file = this.data[oData.status]; | |||||
file.splice(oData.id,1) | |||||
this.setData({ | |||||
[oData.status]:file | |||||
}) | |||||
}, | |||||
back:function(){ | |||||
wx.navigateBack({ | |||||
delta: 1 | |||||
}) | |||||
}, | |||||
uploadSjPics: function (e) { //这里是选取图片的方法 | |||||
var that = this; | |||||
var detailPics = that.data.sjPics; | |||||
if (detailPics.length >= that.data.count) { | |||||
wx.showToast({ | |||||
title: '最多选择' + that.data.count + '张!', | |||||
}) | |||||
return; | |||||
} | |||||
wx.chooseImage({ | |||||
count: that.data.count, // 最多可以选择的图片张数,默认9 | |||||
sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有 | |||||
sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有 | |||||
success: function (res) { | |||||
let fileForm = that.data.sjPics | |||||
res.tempFilePaths.forEach(item => { | |||||
fileForm.push({ | |||||
file: item, | |||||
fileType:'1', | |||||
bizPath:'cashier', | |||||
tableName:'t_cashier_account_flow', | |||||
tableId:'' | |||||
}) | |||||
}) | |||||
that.setData({ | |||||
sjPics:fileForm | |||||
}) | |||||
}, | |||||
}) | |||||
}, | |||||
uploadFpPics: function (e) { //这里是选取图片的方法 | |||||
var that = this; | |||||
var pics = []; | |||||
var detailPics = that.data.fpPics; | |||||
if (detailPics.length >= that.data.count) { | |||||
wx.showToast({ | |||||
title: '最多选择' + that.data.count + '张!', | |||||
}) | |||||
return; | |||||
} | |||||
wx.chooseImage({ | |||||
count: that.data.count, // 最多可以选择的图片张数,默认9 | |||||
sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有 | |||||
sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有 | |||||
success: function (res) { | |||||
let fileForm = that.data.fpPics | |||||
res.tempFilePaths.forEach(item => { | |||||
fileForm.push({ | |||||
file: item, | |||||
fileType:'2', | |||||
bizPath:'cashier', | |||||
tableName:'t_cashier_account_flow', | |||||
tableId:'' | |||||
}) | |||||
}) | |||||
that.setData({ | |||||
fpPics:fileForm | |||||
}) | |||||
}, | |||||
}) | |||||
}, | |||||
uploadQtPics: function (e) { //这里是选取图片的方法 | |||||
var that = this; | |||||
var pics = []; | |||||
var detailPics = that.data.qtPics; | |||||
if (detailPics.length >= that.data.count) { | |||||
wx.showToast({ | |||||
title: '最多选择' + that.data.count + '张!', | |||||
}) | |||||
return; | |||||
} | |||||
wx.chooseImage({ | |||||
count: that.data.count, // 最多可以选择的图片张数,默认9 | |||||
sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有 | |||||
sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有 | |||||
success: function (res) { | |||||
let fileForm = that.data.qtPics | |||||
res.tempFilePaths.forEach(item => { | |||||
fileForm.push({ | |||||
file: item, | |||||
fileType:'3', | |||||
bizPath:'cashier', | |||||
tableName:'t_cashier_account_flow', | |||||
tableId:'' | |||||
}) | |||||
}) | |||||
that.setData({ | |||||
qtPics:fileForm | |||||
}) | |||||
}, | |||||
}) | |||||
}, | |||||
swichAccounting:function(e){ | |||||
let codeStr = e.currentTarget.dataset.code; | |||||
let formDataObj = this.data.formData; | |||||
if(formDataObj.jieAmount==''){ //收入金额 | |||||
UTIL.showToastNoneIcon('请填写收入金额!'); | |||||
return false; | |||||
}else if(formDataObj.accountName==''){ //存入账户 | |||||
UTIL.showToastNoneIcon('请选择存入账户!'); | |||||
return false; | |||||
}else if(formDataObj.billNum==''){ //单据编码 | |||||
UTIL.showToastNoneIcon('请输入单据编码!'); | |||||
return false; | |||||
}else if(formDataObj.accountSummary==''){ //备注说明 | |||||
UTIL.showToastNoneIcon('请输入备注说明!'); | |||||
return false; | |||||
}else if(formDataObj.incomeType == '2' && formDataObj.contractionId==''){ | |||||
UTIL.showToastNoneIcon('收入类型为发包收入,必须选择关联合同!'); | |||||
return false; | |||||
} | |||||
let data = this.data.formData; | |||||
data.method = "POST"; | |||||
data.checkedStatus = codeStr; | |||||
console.log(data); | |||||
UTIL.httpRequest(API.URL_POST_GERFLOWEDIT,data,{ | |||||
success: (res) => { | |||||
if(res.code == 200){ | |||||
let vouerId = res.data; | |||||
// let vouerId = 1; | |||||
let updataList = [...this.data.sjPics,...this.data.fpPics,...this.data.qtPics]; | |||||
for(let i=0; i<updataList.length; i++){ | |||||
let arrData=updataList[i]; | |||||
arrData.tableId = vouerId; | |||||
wx.uploadFile({ | |||||
url: API.URL_GET_UPLOAD, | |||||
filePath: arrData.file, | |||||
name: 'file', | |||||
header: { | |||||
"Content-Type": "multipart/form-data",//记得设置 | |||||
"chartset":"utf-8", | |||||
'Authorization':'Bearer '+getApp().globalData.userInfo.token | |||||
}, | |||||
formData:arrData, | |||||
success (response){ | |||||
console.log(response); | |||||
}, | |||||
fail(res){ | |||||
console.log(response) | |||||
} | |||||
}) | |||||
} | |||||
wx.redirectTo({ | |||||
url: '/pages/index/index' | |||||
}) | |||||
}else{ | |||||
UTIL.showToastNoneIcon(res.msg); | |||||
} | |||||
} | |||||
}) | |||||
}, | |||||
onChange(event){ | |||||
this.setData({ | |||||
[event.currentTarget.dataset.value]: event.detail, | |||||
}) | |||||
}, | |||||
imgPreviewImage(e){ | |||||
let currentImgList = e.currentTarget.dataset; | |||||
//获取当前附件列表 | |||||
let currentStatus = this.data[currentImgList.status]; | |||||
//当前选中图片index | |||||
let currentIndex = currentImgList.id; | |||||
let imgList = [] | |||||
for(let i = 0; i<currentStatus.length; i++){ | |||||
imgList.push(currentStatus[i].file) | |||||
} | |||||
wx.previewImage({ | |||||
current: imgList[currentIndex], // 当前显示图片的http链接 | |||||
urls: imgList // 需要预览的图片http链接列表 | |||||
}) | |||||
}, | |||||
/** | |||||
* 生命周期函数--监听页面隐藏 | |||||
*/ | |||||
onHide: function () { | |||||
}, | |||||
/** | |||||
* 生命周期函数--监听页面卸载 | |||||
*/ | |||||
onUnload: function () { | |||||
}, | |||||
/** | |||||
* 页面相关事件处理函数--监听用户下拉动作 | |||||
*/ | |||||
onPullDownRefresh: function () { | |||||
}, | |||||
/** | |||||
* 页面上拉触底事件的处理函数 | |||||
*/ | |||||
onReachBottom: function () { | |||||
}, | |||||
/** | |||||
* 用户点击右上角分享 | |||||
*/ | |||||
onShareAppMessage: function () { | |||||
} | |||||
}) |
@@ -0,0 +1,24 @@ | |||||
{ | |||||
"navigationStyle": "custom", | |||||
"usingComponents": { | |||||
"van-row": "@vant/weapp/row/index", | |||||
"van-col": "@vant/weapp/col/index", | |||||
"van-cell": "@vant/weapp/cell/index", | |||||
"van-cell-group": "@vant/weapp/cell-group/index", | |||||
"van-tag": "@vant/weapp/tag/index", | |||||
"van-icon": "@vant/weapp/icon/index", | |||||
"van-steps": "@vant/weapp/steps/index", | |||||
"van-button": "@vant/weapp/button/index", | |||||
"van-radio": "@vant/weapp/radio/index", | |||||
"van-radio-group": "@vant/weapp/radio-group/index", | |||||
"van-field": "@vant/weapp/field/index", | |||||
"van-popup": "@vant/weapp/popup/index", | |||||
"van-picker": "@vant/weapp/picker/index", | |||||
"van-calendar": "@vant/weapp/calendar/index", | |||||
"van-dialog": "@vant/weapp/dialog/index", | |||||
"van-collapse": "@vant/weapp/collapse/index", | |||||
"van-collapse-item": "@vant/weapp/collapse-item/index" | |||||
} | |||||
} |
@@ -0,0 +1,237 @@ | |||||
<!--pages/apply/index.wxml--> | |||||
<view class="ns" style="height:{{isIPX?'88px':'64px'}};"> | |||||
<image src="/image/apply/back.png" style="top:{{isIPX?'54px':'30px'}};" mode="widthFix" bindtap="back"></image> | |||||
<text style="top:{{isIPX?'54px':'30px'}};">收入登记</text> | |||||
</view> | |||||
<!-- 付款单位开始 --> | |||||
<view class="top" style="margin-top:{{isIPX?'100px':'75px'}};"> | |||||
<image src="/image/apply/dress_icon.png" mode="widthFix"></image> | |||||
<view class="top-tit">收入单位</view> | |||||
<view class="top-title">{{bookName}}</view> | |||||
</view> | |||||
<text class="title">基础信息</text> | |||||
<view class="main-box table-box"> | |||||
<view class="flex-block"> | |||||
<text class="rules">收入时间</text> | |||||
<view class="wrap" bindtap="onsrDate" > | |||||
{{formData.accountDate}} | |||||
</view> | |||||
<van-calendar | |||||
show="{{ srShow }}" | |||||
min-date="{{ minDate }}" | |||||
max-date="{{ maxDate }}" | |||||
bind:close="onClose" | |||||
bind:confirm="onConfirm" | |||||
/> | |||||
</view> | |||||
<view class="flex-block"> | |||||
<text class="rules">收入金额</text> | |||||
<input class="wrap" data-prop="formData.jieAmount" type="number" value="{{formData.jieAmount}}" bindinput="inputChange" placeholder="请输入收入金额"/> | |||||
</view> | |||||
<view class="flex-block"><text class="rules">存入账户</text> | |||||
<!-- <input class="wrap" type="number" bindinput="inputChange" data-prop="formData.accountName" value="{{formData.accountName}}" placeholder="请输入存入账户"/> --> | |||||
<view bindtap="oncrzhShow" class="wrap"> | |||||
<text wx:if="{{formData.accountName==''}}" class="color-gray">请选择存入账户</text> | |||||
<text wx:else>{{formData.accountName}}</text> | |||||
</view> | |||||
<!-- custom-style="height: 20%;"--> | |||||
<van-popup | |||||
show="{{ crzhShow }}" | |||||
position="bottom" | |||||
bind:close="onCancelcrzh" | |||||
> | |||||
<van-picker columns="{{ accountListOptions }}" value-key="accountName" bind:cancel="onCancelcrzh" | |||||
show-toolbar="{{true}}" | |||||
bind:confirm="onConfirmcrzh"/> | |||||
</van-popup> | |||||
</view> | |||||
<view class="flex-block"> | |||||
<text class="rules">收入类型</text> | |||||
<view bindtap="oncrlxShow" class="wrap"> | |||||
<text wx:if="{{incomeTypeText==''}}" class="color-gray">请选择收入类型</text> | |||||
<text wx:else>{{incomeTypeText}}</text> | |||||
</view> | |||||
</view> | |||||
<van-popup | |||||
show="{{ crlxShow }}" | |||||
position="bottom" | |||||
bind:close="onCancelcrlx" | |||||
> | |||||
<van-picker | |||||
columns="{{ incomeTypeOptions }}" | |||||
value-key="dictLabel" | |||||
bind:cancel="onCancelcrlx" | |||||
show-toolbar="{{true}}" | |||||
bind:confirm="bindPickerChange"/> | |||||
<!-- <picker bindchange="bindPickerChange" class="wrap picker_wrap" | |||||
value="{{incomeTypeText}}" | |||||
range="{{incomeTypeOptions}}" | |||||
range-key="dictLabel"> | |||||
</picker> --> | |||||
</van-popup> | |||||
<view class="flex-block"><text class="rules">单据编码</text> <input class="wrap" type="number" bindinput="inputChange" data-prop="formData.billNum" value="{{formData.billNum}}" placeholder="请输入单据编码"/></view> | |||||
<view class="flex-block"><text class="rules">备注说明</text> <input class="wrap" type="number" bindinput="inputChange" data-prop="formData.accountSummary" placeholder="请输入备注说明" value="{{formData.accountSummary}}"/></view> | |||||
</view> | |||||
<block wx:if="{{incomeType == 2}}"> | |||||
<view class="title"> | |||||
<text>关联合同</text> | |||||
</view> | |||||
<view class="main-box table-box"> | |||||
<view class="flex-block"> | |||||
<text class="rules {{formData.incomeType == '2' ?'':'no'}}">付款人{{}}</text> | |||||
<view class="wrap" bindtap="selectContraction"> | |||||
<text wx:if="{{payerText==''}}" class="color-gray">请选择付款人</text> | |||||
<text wx:else>{{payerText}}</text> | |||||
</view> | |||||
<van-popup show="{{showHt}}" round position="bottom" bind:close="closeBox" > | |||||
<van-picker | |||||
columns="{{contractionOptions}}" | |||||
show-toolbar | |||||
value-key="name" | |||||
bind:cancel="closeBox" | |||||
bind:confirm="onConfirmContraction" | |||||
/> | |||||
</van-popup> | |||||
</view> | |||||
<view class="flex-block"><text class="rules {{formData.incomeType == '2' ?'':'no'}}">合同编码</text> | |||||
<view class="wrap" bindtap="selectContraction"> | |||||
<text wx:if="{{contractionIdID==''}}" class="color-gray">请选择合同编码</text> | |||||
<text wx:else>{{contractionIdID}}</text> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</block> | |||||
<view class="main-box table-box" style="margin-top: 15px;"> | |||||
<van-cell> | |||||
<!-- <view slot="icon"> | |||||
<van-icon class-prefix="my-icon" name="extra" /> | |||||
</view> --> | |||||
<view slot="title"> | |||||
<view class="van-cell-text">附件<van-tag type="danger" style="margin-left: 10px;">可拍照</van-tag></view> | |||||
</view> | |||||
<view> | |||||
<view class="van-cell-text">总数<van-tag round color="#5CAE77" plain style="margin-left: 10px;"> {{form.transfers[index].fileNum?form.transfers[index].fileNum:0}}张 </van-tag></view> | |||||
</view> | |||||
</van-cell> | |||||
<view class="fj-box"> | |||||
<view class="fj-li"> | |||||
<view> | |||||
<text>收\n据</text> | |||||
</view> | |||||
<view class="img_box"> | |||||
<view class="img_list" wx:for="{{sjPics}}" wx:for-index="index" wx:key="index"> | |||||
<image class="img_li" src="{{item.file}}"bindlongpress="bindlongpressimg" data-status="sjPics" bindtap="imgPreviewImage" data-id='{{index}}'></image> | |||||
<van-icon name="/image/apply/img_delete.png" data-id="{{index}}" size="20px" data-status="sjPics" bindtap="deleteimg" /> | |||||
</view> | |||||
<view class="img_list"> | |||||
<image class="img_li img_add" src="/image/apply/fj_upload.png" data-index="{{index}}" bindtap="uploadSjPics"></image> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view class="fj-li"> | |||||
<view> | |||||
<text>发\n票</text> | |||||
</view> | |||||
<view class="img_box"> | |||||
<view class="img_list" wx:for="{{fpPics}}" wx:for-index="index" wx:key="index"> | |||||
<image class="img_li" src="{{item.file}}" data-status="fpPics" bindtap="imgPreviewImage" bindlongpress="bindlongpressimg" data-id='{{index}}'></image> | |||||
<van-icon name="/image/apply/img_delete.png" size="20px" data-id="{{index}}" data-status="fpPics" bindtap="deleteimg" /> | |||||
</view> | |||||
<view class="img_list"> | |||||
<image class="img_li img_add" src="/image/apply/fj_upload.png" data-index="{{index}}" bindtap="uploadFpPics"></image> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view class="fj-li"> | |||||
<view> | |||||
<text>其\n他</text> | |||||
</view> | |||||
<view class="img_box"> | |||||
<view class="img_list" wx:for="{{qtPics}}" wx:for-index="index" wx:key="index"> | |||||
<image class="img_li" src="{{item.file}}" data-status="qtPics" bindtap="imgPreviewImage" bindlongpress="bindlongpressimg" data-id='{{index}}'></image> | |||||
<van-icon name="/image/apply/img_delete.png" size="20px" data-id="{{index}}" data-status="qtPics" bindtap="deleteimg" /> | |||||
</view> | |||||
<view class="img_list"> | |||||
<image class="img_li img_add" src="/image/apply/fj_upload.png" data-index="{{index}}" bindtap="uploadQtPics"></image> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<!-- <view style="margin:10px 0 5px;" class="flex-block"> | |||||
<text class="fjLable">收据</text> | |||||
<view class='content'> | |||||
<view class='img-box'> | |||||
<view class='img-list'> | |||||
<block wx:for="{{sjPics}}" wx:for-index="index" wx:key="index"> | |||||
<view class='img-item'> | |||||
<van-icon class="close-ico" data-id="{{index}}" name="/image/apply/img_delete.png" size="20px" data-status="sjPics" bindtap="deleteimg" /> | |||||
<image src='{{item.file}}' class="imagea" bindlongpress="bindlongpressimg" data-status="sjPics" bindtap="imgPreviewImage" data-id='{{index}}'></image> | |||||
</view> | |||||
</block> | |||||
<view class='chooseimg' bindtap='uploadSjPics'> | |||||
<view class="weui-uploader__input-box"></view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view style="margin:10px 0 5px;" class="flex-block"> | |||||
<text class="fjLable">发票</text> | |||||
<view class='content'> | |||||
<view class='img-box'> | |||||
<view class='img-list'> | |||||
<block wx:for="{{fpPics}}" wx:for-index="index" wx:key="index"> | |||||
<view class='img-item'> | |||||
<van-icon class="close-ico" data-id="{{index}}" name="/image/apply/img_delete.png" size="20px" data-status="fpPics" bindtap="deleteimg" /> | |||||
<image src='{{item.file}}' data-status="fpPics" bindtap="imgPreviewImage" class="imagea" bindlongpress="bindlongpressimg" data-id='{{index}}'></image> | |||||
</view> | |||||
</block> | |||||
<view class='chooseimg' bindtap='uploadFpPics'> | |||||
<view class="weui-uploader__input-box"></view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view style="margin:10px 0 5px;" class="flex-block"> | |||||
<text class="fjLable">其他</text> | |||||
<view class='content'> | |||||
<view class='img-box'> | |||||
<view class='img-list'> | |||||
<block wx:for="{{qtPics}}" wx:for-index="index" wx:key="index"> | |||||
<view class='img-item'> | |||||
<van-icon class="close-ico" name="/image/apply/img_delete.png" size="20px" data-id="{{index}}" data-status="qtPics" bindtap="deleteimg" /> | |||||
<image src='{{item.file}}' data-status="qtPics" bindtap="imgPreviewImage" class="imagea" bindlongpress="bindlongpressimg" data-id='{{index}}'></image> | |||||
</view> | |||||
</block> | |||||
<view class='chooseimg' bindtap='uploadQtPics'> | |||||
<view class="weui-uploader__input-box"></view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> --> | |||||
</view> | |||||
<view class="bottom"> | |||||
<!-- <view class="btn1" data-type="3" bindtap="goSubmit">提交复核</view> --> | |||||
<view class="btn1" data-code="1" bindtap="swichAccounting">暂存</view> | |||||
<view class="btn2" data-code="2" bindtap="swichAccounting">提交</view> | |||||
</view> | |||||
<!-- <view class="main-box table-box" style="margin-top: 30rpx;"> | |||||
<view class="btn flex-block"> | |||||
<button type="primary" data-code="1" bindtap="swichAccounting" plain="true">暂存</button> | |||||
<button type="primary" data-code="2" bindtap="swichAccounting">提交</button> | |||||
</view> | |||||
</view> --> |
@@ -0,0 +1,292 @@ | |||||
/* pages/apply/index.wxss */ | |||||
.inComeUnit{ | |||||
border:1rpx solid #ddd; | |||||
width:90%; | |||||
margin:0 auto; | |||||
} | |||||
.top{ | |||||
display: flex; | |||||
width: 94%; | |||||
margin: 0 auto; | |||||
border-radius: 10rpx; | |||||
margin-top: 3vw; | |||||
overflow: hidden; | |||||
} | |||||
.top view{ | |||||
padding: 40rpx 15rpx; | |||||
align-items: center; | |||||
justify-content: center; | |||||
position: relative; | |||||
} | |||||
.top image{ | |||||
position: absolute; | |||||
width: 94%; | |||||
} | |||||
.top-title{ | |||||
flex: 1; | |||||
text-align: center; | |||||
} | |||||
.top-tit{ | |||||
color: #fff; | |||||
} | |||||
.rules:before{ | |||||
content:'*'; | |||||
color:red; | |||||
} | |||||
.rules.no::before{ | |||||
content:' '; | |||||
padding-left: 14rpx; | |||||
color:'#fff'; | |||||
} | |||||
.main-title{ | |||||
background-image: linear-gradient(to right, #2C8E68 , #B3DB62); | |||||
color: #ffffff; | |||||
font-size: 18rpx; | |||||
padding: 10rpx 0; | |||||
text-align: center; | |||||
} | |||||
.main-box{ | |||||
background: #ffffff; | |||||
padding: 20px; | |||||
width: 94%; | |||||
margin: 0 auto; | |||||
border-radius: 10px; | |||||
box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.16); | |||||
} | |||||
.main-box block{ | |||||
float: right; | |||||
} | |||||
.main-box .color-gray{ | |||||
color: #888; | |||||
} | |||||
.title{ | |||||
padding: 10px calc(3% + 20px); | |||||
display: block; | |||||
} | |||||
.van-cell{ | |||||
padding-left: 0!important; | |||||
padding-right: 0!important; | |||||
padding-top: 0!important; | |||||
margin-bottom: 15px; | |||||
} | |||||
.table-box .flex-block{ | |||||
margin-bottom: 15px; | |||||
display: flex; | |||||
justify-content: space-between; | |||||
align-items: center; | |||||
} | |||||
.table-box .flex-block:last-child{ | |||||
margin-bottom: 0px; | |||||
} | |||||
.table-box .rules{ | |||||
width: 200rpx; | |||||
} | |||||
.table-box .picker_wrap{ | |||||
/* display: flex; | |||||
justify-content: flex-end; | |||||
align-items: center; */ | |||||
} | |||||
.table-box .picker{text-align: right;} | |||||
.table-box .wrap{flex:1; text-align: right;} | |||||
.fjLable{ | |||||
display: flex; | |||||
width:24px; | |||||
margin:25rpx 5rpx; | |||||
color:#fff; | |||||
background:#07c160; | |||||
text-align: center; | |||||
border-radius: 10rpx; | |||||
justify-content: center; /* 相对父元素水平居中 */ | |||||
align-items: center; | |||||
padding:25rpx 0; | |||||
} | |||||
.content { | |||||
width: 100%; | |||||
background-color: #fff; | |||||
} | |||||
.img-list { | |||||
display: flex; | |||||
display: -webkit-flex; | |||||
flex-direction: row; | |||||
justify-content: flex-start; | |||||
align-items: center; | |||||
flex-wrap: wrap; | |||||
} | |||||
.img-item { | |||||
width: 30%; | |||||
text-align: left; | |||||
margin-right: 3%; | |||||
margin-bottom: 10rpx; | |||||
position: relative; | |||||
} | |||||
.img-item .close-ico{ | |||||
position: absolute; | |||||
right: -10rpx; | |||||
top: -10rpx; | |||||
} | |||||
.img-item .imagea { | |||||
width: 160rpx; | |||||
height: 160rpx; | |||||
} | |||||
.submit-btn { | |||||
width: 100%; | |||||
background-color: #fff; | |||||
height: 80rpx; | |||||
text-align: center; | |||||
line-height: 80rpx; | |||||
font-size: 30rpx; | |||||
position: fixed; | |||||
bottom: 100rpx; | |||||
} | |||||
.chooseimg { | |||||
height: 160rpx; | |||||
background-color: #fff; | |||||
display: flex; | |||||
justify-content: center; /* 相对父元素水平居中 */ | |||||
align-items: center; | |||||
} | |||||
.weui-uploader__input-box { | |||||
float: left; | |||||
position: relative; | |||||
/* margin-right: 9rpx; | |||||
margin-bottom: 9rpx; */ | |||||
width: 120rpx; | |||||
height: 120rpx; | |||||
border: 1px solid #d9d9d9; | |||||
} | |||||
.weui-uploader__input-box:before { | |||||
width: 2px; | |||||
height: 39.5px; | |||||
} | |||||
.weui-uploader__input-box:after, .weui-uploader__input-box:before { | |||||
content: " "; | |||||
position: absolute; | |||||
top: 50%; | |||||
left: 50%; | |||||
-webkit-transform: translate(-50%, -50%); | |||||
transform: translate(-50%, -50%); | |||||
background-color: #d9d9d9; | |||||
} | |||||
.weui-uploader__input-box:after { | |||||
width: 39.5px; | |||||
height: 2px; | |||||
} | |||||
.weui-uploader__input-box:after, .weui-uploader__input-box:before { | |||||
content: " "; | |||||
position: absolute; | |||||
top: 50%; | |||||
left: 50%; | |||||
-webkit-transform: translate(-50%, -50%); | |||||
transform: translate(-50%, -50%); | |||||
background-color: #d9d9d9; | |||||
} | |||||
.tips { | |||||
color: #666; | |||||
font-size: 24rpx; | |||||
padding-bottom: 20rpx; | |||||
} | |||||
.img-box { | |||||
width: 92%; | |||||
margin: auto; | |||||
padding-top: 20rpx; | |||||
} | |||||
.btn button{ | |||||
line-height: 1.7; | |||||
padding-left:80rpx; | |||||
padding-right:80rpx; | |||||
border-radius: 30rpx; | |||||
} | |||||
.fj-box text{ | |||||
background-color: #5CAE77; | |||||
color: #ffffff; | |||||
text-align: center; | |||||
border-radius: 5px; | |||||
white-space:pre-wrap; | |||||
padding: 22px 8px; | |||||
display: block; | |||||
} | |||||
.fj-li{ | |||||
margin-top: 20px; | |||||
display: flex; | |||||
/* flex-wrap: wrap; */ | |||||
} | |||||
.fj-li .img_li{ | |||||
width: 100%; | |||||
height: 18.5vw; | |||||
} | |||||
.fj-li .img_add{ | |||||
overflow: hidden; | |||||
} | |||||
.img_box{ | |||||
position: relative; | |||||
width: 100%; | |||||
display: flex; | |||||
flex-wrap: wrap; | |||||
} | |||||
.img_box .img_list{ | |||||
width: 25%; | |||||
margin-left: 5%; | |||||
position: relative; | |||||
} | |||||
.img_box .img_list .van-icon{ | |||||
font-size: 20px; | |||||
position: absolute; | |||||
top: 0; | |||||
right: 0; | |||||
transform: translate(50%,-50%); | |||||
} | |||||
.img_box .img_list:nth-child(n+4){ | |||||
margin-top: 15px; | |||||
} | |||||
.bottom{ | |||||
width: 84%; | |||||
margin: 0 auto; | |||||
text-align: center; | |||||
margin-top: 50px; | |||||
margin-bottom: 50px; | |||||
display: flex; | |||||
} | |||||
.bottom view { | |||||
width: 47%; | |||||
margin: 0 auto; | |||||
border-radius: 30px; | |||||
display: inline-block; | |||||
} | |||||
.bottom .btn1{ | |||||
border: 1px solid #2C8E68; | |||||
padding: 8px 0px; | |||||
color: #2C8E68; | |||||
} | |||||
.bottom .btn2{ | |||||
border: 1px solid transparent; | |||||
padding: 8px 0px; | |||||
background-image: linear-gradient(to right, #2C8E68, #5CAE77); | |||||
margin-left: 6%; | |||||
color: #fff; | |||||
} | |||||
.bottom .btn3{ | |||||
border: 1px solid transparent; | |||||
padding: 8px 0px; | |||||
background-image: linear-gradient(to right, #2C8E68, #5CAE77); | |||||
color: #fff; | |||||
width: 100%; | |||||
} |