@@ -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%; | |||
} |