@@ -437,3 +437,72 @@ export function publicPoll(id) { | |||
method: 'get' | |||
}) | |||
} | |||
// 获取会计科目列表 | |||
export const subjectData = (query) => { | |||
return request({ | |||
url: '/finance/subject/listAll', | |||
method: 'get', | |||
params: query | |||
}) | |||
} | |||
//普通明细账接口 | |||
export function listNormalDetails(query) { | |||
return request({ | |||
url: '/finance/balance/listNormalDetails', | |||
method: 'get', | |||
params: query | |||
}) | |||
} | |||
//查询凭证信息明细 | |||
export const voucherDetail = (data) => { | |||
return request({ | |||
url: '/finance/voucher/detail', | |||
method: 'get', | |||
params: data | |||
}) | |||
} | |||
//统计填报列表数据 | |||
export const statisticsList = (data) => { | |||
return request({ | |||
url: '/entity/statistics/list', | |||
method: 'get', | |||
params: data | |||
}) | |||
} | |||
// 删除统计填报列表数据 | |||
export function delStatisticsRemove(id) { | |||
return request({ | |||
url: '/entity/statistics/remove/' + id, | |||
method: 'get' | |||
}) | |||
} | |||
//统计填报 - 模板 | |||
export const entityStatisticsTemplate = (data) => { | |||
return request({ | |||
url: '/entity/statistics/entityStatisticsTemplate', | |||
method: 'get', | |||
params: data | |||
}) | |||
} | |||
//统计填报 -保存模板 | |||
export const entityStatisticsSave = (data) => { | |||
return request({ | |||
url: '/entity/statistics/save', | |||
method: 'post', | |||
data: data | |||
}) | |||
} | |||
//统计填报 - 编辑 | |||
export const entityStatisticsDetail = (id) => { | |||
return request({ | |||
url: '/entity/statistics/detail/'+id, | |||
method: 'get' | |||
}) | |||
} |
@@ -2431,6 +2431,36 @@ export const constantRoutes = [ | |||
}, | |||
component: (resolve) => require(['@/views/yinnong/bankAgriculture/bankOfDeposit/bankOfDepositModify'], resolve) | |||
}, | |||
{ | |||
path: '/yinnong/listBalanceRanking', | |||
name: 'yinnongListBalanceRanking', | |||
meta: { | |||
title: '科目余额表', | |||
hidden: true, | |||
}, | |||
component: (resolve) => require(['@/views/yinnong/listBalanceRanking'], resolve) | |||
}, | |||
{ | |||
path: '/yinnong/detailedLedger', | |||
name: 'yinnongDetailedLedger', | |||
meta: { | |||
title: '明细账', | |||
hidden: true, | |||
}, | |||
component: (resolve) => require(['@/views/yinnong/detailedLedger'], resolve) | |||
}, | |||
{ | |||
path: '/yinnong/detailedVoucher', | |||
name: 'yinnongDetailedVoucher', | |||
meta: { | |||
title: '记账凭证', | |||
hidden: true, | |||
}, | |||
component: (resolve) => require(['@/views/yinnong/voucher'], resolve) | |||
}, | |||
{ | |||
path: '/lawEnforcement', | |||
name: 'lawEnforcement', | |||
@@ -3422,6 +3452,42 @@ export const constantRoutes = [ | |||
}, | |||
component: (resolve) => require(['@/views/sunVillage_info/list_register_detail'], resolve) | |||
}, | |||
{ // 统计填报 | |||
path: '/sunVillage_info/statistical_report', | |||
name: 'sunVillageInfoStatisticalReport', | |||
meta: { | |||
title: '统计填报', | |||
hidden: true, | |||
}, | |||
component: (resolve) => require(['@/views/sunVillage_info/statistical_report'], resolve) | |||
}, | |||
{ // 统计填报--编辑 | |||
path: '/sunVillage_info/statistical_report_edit', | |||
name: 'sunVillageInfoStatisticalReportEdit', | |||
meta: { | |||
title: '统计填报', | |||
hidden: true, | |||
}, | |||
component: (resolve) => require(['@/views/sunVillage_info/statistical_report_edit'], resolve) | |||
}, | |||
{ //明细账 | |||
path: '/sunVillage_info/detailed_ledger', | |||
name: 'sunVillageInfoDetailedLedger', | |||
meta: { | |||
title: '明细账', | |||
hidden: true, | |||
}, | |||
component: (resolve) => require(['@/views/sunVillage_info/detailed_ledger'], resolve) | |||
}, | |||
{ //查看记账凭证 | |||
path: '/sunVillage_info/voucher', | |||
name: 'sunVillageInfoVoucher', | |||
meta: { | |||
title: '记账凭证', | |||
hidden: true, | |||
}, | |||
component: (resolve) => require(['@/views/sunVillage_info/voucher'], resolve) | |||
}, | |||
{ ////阳光村务(新)-- 合同信息 | |||
path: '/sunVillage_info/user', | |||
name: 'sunVillageInfoUser', | |||
@@ -6,7 +6,7 @@ const getters = { | |||
roles: state => state.user.roles, | |||
permissions: state => state.user.permissions, | |||
bookName: state => state.user.bookName, | |||
deptName: state => state.user.deptName, | |||
nickName: state => state.user.nickName, | |||
baseRoutingUrl: state => state.user.baseRoutingUrl, | |||
businessLevel: state => state.user.businessLevel, | |||
@@ -12,7 +12,7 @@ const user = { | |||
roles: [], | |||
permissions: [], | |||
bookName: '', | |||
deptName:'', | |||
nickName: '', | |||
baseRoutingUrl: '', | |||
businessLevel: '', | |||
@@ -64,7 +64,7 @@ service.interceptors.response.use(res => { | |||
if (code === 401) { | |||
Dialog.confirm({ | |||
title: '系统提示', | |||
message: '登录状态已过期,您可以继续留在该页面,或者重新登录', | |||
message: '登录状态已过期,请重新登录', | |||
confirmButtonText: '重新登录', | |||
cancelButtonText: '取消' | |||
}) | |||
@@ -0,0 +1,622 @@ | |||
<template> | |||
<div class="home_wrapper"> | |||
<div class="header_main"> | |||
明细账 | |||
<div class="return_btn" @click="onClickLeft"></div> | |||
</div> | |||
<!---期间--> | |||
<div class="period_main"> | |||
<div class="bt_title"> | |||
<div class="icon"></div> | |||
<div class="title">期间</div> | |||
</div> | |||
<div class="calendar_block" @click="startDateClick">{{queryParams.startDate.replace('-','年')}}月</div> | |||
<div class="to">至</div> | |||
<div class="calendar_block" @click="endDateClick">{{queryParams.endDate.replace('-','年')}}月</div> | |||
</div> | |||
<!--科目--> | |||
<div class="subject_main"> | |||
<div class="bt_title"> | |||
<div class="icon"></div> | |||
<div class="title">科目</div> | |||
</div> | |||
<div class="subject_block" @click="subjectClick"> | |||
<div class="title">{{subjectText}}</div> | |||
<div class="xs_icon"></div> | |||
</div> | |||
</div> | |||
<!--内容--> | |||
<div class="center_box"> | |||
<div class="vocher_name"> | |||
<van-row class="head_m"> | |||
<van-col :span="14" class="year_m"> | |||
<div class="year_text">2022</div> | |||
<div class="unit_m"> | |||
<div class="ubs">月</div> | |||
<div class="ubs">日</div> | |||
</div> | |||
</van-col> | |||
<van-col :span="10" class="credential_m">凭证字</van-col> | |||
</van-row> | |||
<van-row class="vocher_mTitle" v-for="(item,index) in tableList" :key="index"> | |||
<van-col :span="7">{{item.month}}</van-col> | |||
<van-col :span="7">{{item.day}}</van-col> | |||
<van-col :span="10"> | |||
<div class="pz_tx" @click="subjectNameFun(item.voucherWordNum)">{{item.voucherWordNum}}</div> | |||
</van-col> | |||
</van-row> | |||
<!-- <van-row class="vocher_mTitle"> | |||
<van-col :span="7">09</van-col> | |||
<van-col :span="7">09</van-col> | |||
<van-col :span="10"> | |||
<div class="pz_tx">记-06</div> | |||
</van-col> | |||
</van-row> --> | |||
</div> | |||
<div class="vocher_content"> | |||
<div class="vocher_cmain"> | |||
<van-row class="head_m"> | |||
<van-col :span="9">摘要</van-col> | |||
<van-col :span="4">借方</van-col> | |||
<van-col :span="4">贷方</van-col> | |||
<van-col :span="3">方向</van-col> | |||
<van-col :span="4">余额</van-col> | |||
</van-row> | |||
<div class="content_m"> | |||
<van-row v-for="(item,index) in tableList" :key="index"> | |||
<van-col :span="9" class="zy"> | |||
<span>{{item.voucherSummary}}</span> | |||
</van-col> | |||
<van-col :span="4" class="je">{{item.jieAmount}}</van-col> | |||
<van-col :span="4" class="je">{{item.daiAmount}}</van-col> | |||
<van-col :span="3" class="km">{{item.balanceDirection}}</van-col> | |||
<van-col :span="4" class="je">{{item.balance}}</van-col> | |||
</van-row> | |||
<!-- <van-row > | |||
<van-col :span="9" class="zy">摘要</van-col> | |||
<van-col :span="4" class="je">200.00</van-col> | |||
<van-col :span="4" class="je">20000.00</van-col> | |||
<van-col :span="3" class="km">借</van-col> | |||
<van-col :span="4" class="je">200.00</van-col> | |||
</van-row> --> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<!--开始日期--> | |||
<van-action-sheet v-model="dateObj.startVisbile" duration="0.2" > | |||
<van-datetime-picker | |||
v-model="dateObj.startDate" | |||
title="选择日期" | |||
:min-date="dateObj.minDate" | |||
:max-date="dateObj.maxDate" | |||
@confirm="startConfirm" | |||
@cancel ="startCancel" | |||
type="year-month" | |||
/> | |||
</van-action-sheet> | |||
<!--结束日期--> | |||
<van-action-sheet v-model="dateObj.endVisbile" duration="0.2" > | |||
<van-datetime-picker | |||
v-model="dateObj.endDate" | |||
title="选择日期" | |||
:min-date="dateObj.minDate" | |||
:max-date="dateObj.maxDate" | |||
@confirm="endConfirm" | |||
@cancel ="startCancel" | |||
type="year-month" | |||
/> | |||
</van-action-sheet> | |||
<!--科目选择--> | |||
<van-action-sheet v-model="dateObj.subjectVisbile" duration="0.2"> | |||
<van-cascader | |||
v-model="cascaderValue" | |||
title="请选择所在科目" | |||
:options="subjectsTree" | |||
@close="dateObj.subjectVisbile = false" | |||
@finish="onFinish" | |||
:field-names="fieldNames" | |||
@change="onChangeAcidentArea" | |||
/> | |||
</van-action-sheet> | |||
</div> | |||
</template> | |||
<script> | |||
import { subjectData ,getLoginBook,listNormalDetails} from "@/api/sunVillage_info/fixedAssets"; | |||
export default { | |||
name: "detailedLedger", | |||
data() { | |||
return{ | |||
//数据 | |||
tableList:[], | |||
// 查询参数 | |||
queryParams: { | |||
startDate:'', //开始日期 | |||
endDate:'', //结束日期 | |||
startSubjectId:'', //开始科目 | |||
endSubjectId:'', //结束科目 | |||
startSubjectLevel: 1, | |||
endSubjectLevel: 4, | |||
filterZero: true, | |||
includeNonVoucher: false, | |||
groupBySubject: true | |||
}, | |||
//日期相关 | |||
dateObj:{ | |||
//开始日期-弹窗显隐 | |||
startVisbile:false, | |||
startDate: new Date(), | |||
minDate:new Date(2018, 0, 1), | |||
maxDate:new Date(2028, 5, 1), | |||
//结束日期-弹窗显隐 | |||
endVisbile:false, | |||
endDate:new Date(), | |||
//科目选择 | |||
subjectVisbile:false | |||
}, | |||
subjectText:'', //科目页面显示 | |||
SubjectsList:[], //科目选项 | |||
subjectsTree: [], //会计科目显示列表(树) | |||
cascaderValue:"", //科目选择 | |||
fieldNames: { | |||
text: 'label', | |||
value: 'subjectId', | |||
children: 'children', | |||
}, | |||
subjectYear:'' | |||
} | |||
}, | |||
mounted(){ | |||
//初始化账套 | |||
this.initLoginBook(); | |||
this.initAxios() | |||
}, | |||
methods:{ | |||
initLoginBook(){ | |||
getLoginBook().then((res) => { | |||
if (res.code == 200) { | |||
let currentDays = res.data.currentDay; | |||
if (currentDays == null) { | |||
this.$notify({ | |||
message:'当前账套未开启!', | |||
type: 'error' | |||
}); | |||
return false; | |||
} | |||
this.$set(this.queryParams, "startDate", currentDays); | |||
this.$set(this.queryParams, "endDate", currentDays); | |||
let dataArr = currentDays.split('-') | |||
this.$set(this.dateObj, "startDate", new Date(dataArr[0], dataArr[1]-1), 1); | |||
this.$set(this.dateObj, "endDate", new Date(dataArr[0], dataArr[1]-1), 1); | |||
this.subjectYear = (currentDays.substr(0, 4)); | |||
} | |||
}) | |||
}, | |||
initAxios(){ | |||
//获取会计科目列表数据 | |||
this.getDicts("subject_type").then((resp) => { | |||
subjectData({year:this.subjectYear}).then((res) => { | |||
res.rows.forEach((x) => { | |||
x.label = x.subjectId + ' ' + x.subjectName | |||
}); | |||
this.SubjectsList = res.rows; | |||
let curObj = res.rows[0]; | |||
if(res.rows.length>0){ | |||
this.subjectText = curObj.label; | |||
this.queryParams.startSubjectId = curObj.subjectId; | |||
this.queryParams.endSubjectId = curObj.subjectId; | |||
this.cascaderValue = curObj.subjectId; | |||
this.initPage() | |||
this.makeSubjectsTree(res.rows, resp.data); | |||
}else{ | |||
this.subjectText = '暂无数据'; | |||
} | |||
}); | |||
}); | |||
}, | |||
subjectClick(){ | |||
this.dateObj.subjectVisbile = true | |||
}, | |||
makeSubjectsTree(SubjectsList, subjectTypes) { | |||
let func = (pid) => { | |||
let arr = null; | |||
for(let v of SubjectsList) | |||
{ | |||
let parentId = v.parentId || v.subjectId.substr(0, v.subjectId.length - 3) || null; | |||
if(parentId == pid) | |||
{ | |||
if(!arr) arr = []; | |||
let a = func(v.subjectId); | |||
if(a) | |||
v.children = a; | |||
v.label = v.subjectId + ' ' + v.subjectNameAll; | |||
v.is_last = 'Y'; | |||
v.disabled = false; | |||
arr.push(v); | |||
} | |||
} | |||
return arr; | |||
}; | |||
let res = func(null); | |||
let r = []; | |||
res.forEach((x) => { | |||
let subjectIdStart = x.subjectId[0]; | |||
let item = r.find((y) => y.subjectId == subjectIdStart); | |||
if(!item) | |||
{ | |||
let type = subjectTypes.find((y) => y.dictValue == subjectIdStart); | |||
if(!type) | |||
return; | |||
item = { | |||
subjectId: type.dictValue, | |||
label: type.dictLabel, | |||
sortFlag: type.dictSort, | |||
is_last: 'N', | |||
subjectNameAll: '', | |||
children: [], | |||
disabled: true | |||
}; | |||
r.push(item); | |||
} | |||
item.children.push(x); | |||
}); | |||
r.sort((a, b) => a.dictSort - b.dictSort); | |||
// console.log(r) | |||
this.subjectsTree = r; | |||
}, | |||
initPage(){ | |||
listNormalDetails(this.queryParams).then((res)=>{ | |||
if(res.code == 200){ | |||
let content = res.rows; | |||
if(content.length>0){ | |||
this.tableList = content[0].list; | |||
}else{ | |||
this.tableList = [] | |||
} | |||
} | |||
}) | |||
}, | |||
subjectNameFun(num){ | |||
let endNum = num.split("-"); | |||
this.$router.push({ | |||
path: "/sunVillage_info/voucher", | |||
query: { | |||
vocherId: endNum[1], | |||
num:encodeURI(num) | |||
}, | |||
}); | |||
}, | |||
onFinish({ selectedOptions }){ | |||
let lastArr = selectedOptions[selectedOptions.length-1]; | |||
this.queryParams.startSubjectId = lastArr.subjectId | |||
this.queryParams.endSubjectId = lastArr.subjectId | |||
this.subjectText = lastArr.label; | |||
this.initPage(); | |||
this.dateObj.subjectVisbile = false | |||
}, | |||
onChangeAcidentArea(aaa){ | |||
// console.log(aaa) | |||
}, | |||
//点击开始日期--显示弹窗 | |||
startDateClick(){ | |||
this.dateObj.startVisbile = true; | |||
}, | |||
//弹窗-开始日期-确定 | |||
startConfirm(value){ | |||
let years = this.format(value,'yyyy'); | |||
let months = this.format(value,'MM'); | |||
this.queryParams.startDate = years+'-'+months; | |||
this.dateObj.startVisbile = false; | |||
this.initPage(); | |||
}, | |||
//弹窗-开始日期-取消 | |||
startCancel(){ | |||
this.dateObj.startVisbile = false; | |||
this.dateObj.endVisbile = false; | |||
}, | |||
//点击结束日期-显示弹窗 | |||
endDateClick(){ | |||
this.dateObj.endVisbile = true; | |||
}, | |||
//弹窗--结束日期-确定 | |||
endConfirm(value){ | |||
let years = this.format(value,'yyyy'); | |||
let months = this.format(value,'MM'); | |||
this.queryParams.endDate = years+'-'+months; | |||
this.dateObj.endVisbile = false; | |||
this.initPage(); | |||
} | |||
} | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.home_wrapper{ | |||
background: #e9e9e9; | |||
min-height: 100vh; | |||
width: 100vw; | |||
.header_main { | |||
height: 116px; | |||
background: url('../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||
background-size: 100% 100%; | |||
position: fixed; | |||
top: 0; | |||
left: 0; | |||
width: 100%; | |||
font-size: 36px; | |||
line-height: 116px; | |||
text-align: center; | |||
color: #fff; | |||
position: relative; | |||
.return_btn { | |||
width: 24px; | |||
height: 43.2px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||
background-size: 20px 36px; | |||
position: absolute; | |||
left: 38px; | |||
top: 36px; | |||
} | |||
} | |||
.period_main{ | |||
padding:28px 22px 0; | |||
display: flex; | |||
align-items: center; | |||
.bt_title{ | |||
display: flex; | |||
align-items: center; | |||
margin-right: 15px; | |||
.icon{ | |||
width: 50px; | |||
height: 50px; | |||
border-radius: 50%; | |||
box-shadow: 4px 0px 7px rgba(63, 68, 75, 0.1); | |||
background:#2facfe url('../../assets/images/sunVillage_info/list_icon_13.png') center center no-repeat; | |||
background-size: 29px 25px; | |||
margin-right: 12px; | |||
} | |||
.title{ | |||
font-size: 30px; | |||
color: #2facfe; | |||
} | |||
} | |||
.calendar_block{ | |||
flex: 1; | |||
border-radius: 8px; | |||
box-shadow: 4px 4px 7px rgba(63, 68, 75, 0.1); | |||
background: #fff; | |||
height: 64px; | |||
font-size: 30px; | |||
display: flex; | |||
align-items: center; | |||
letter-spacing: 2px; | |||
justify-content: center; | |||
} | |||
.to{ | |||
width: 68px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
font-size: 30px; | |||
color: #868686; | |||
} | |||
} | |||
.subject_main{ | |||
padding:20px 22px 0; | |||
display: flex; | |||
align-items: center; | |||
.bt_title{ | |||
display: flex; | |||
align-items: center; | |||
margin-right: 15px; | |||
.icon{ | |||
width: 50px; | |||
height: 50px; | |||
border-radius: 50%; | |||
box-shadow: 4px 0px 7px rgba(63, 68, 75, 0.1); | |||
background:#2facfe url('../../assets/images/sunVillage_info/list_icon_13.png') center center no-repeat; | |||
background-size: 29px 25px; | |||
margin-right: 12px; | |||
} | |||
.title{ | |||
font-size: 30px; | |||
color: #2facfe; | |||
} | |||
} | |||
.subject_block{ | |||
flex: 1; | |||
border-radius: 8px; | |||
box-shadow: 4px 4px 7px rgba(63, 68, 75, 0.1); | |||
background: #fff; | |||
height: 64px; | |||
display: flex; | |||
padding:0 26px 0 22px; | |||
align-items: center; | |||
justify-content: space-between; | |||
.title{ | |||
width: 475px; | |||
height: 64px; | |||
line-height: 64px; | |||
font-size: 30px; | |||
white-space: nowrap; | |||
overflow: hidden; | |||
text-overflow: ellipsis; | |||
color: #2b2b2b; | |||
} | |||
.xs_icon{ | |||
width: 11px; | |||
height: 23px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_12.png') center center no-repeat; | |||
background-size: 100% 100%; | |||
} | |||
} | |||
} | |||
.center_box{ | |||
margin-left: 22px; | |||
display: flex; | |||
margin-top: 22px; | |||
background: #fff; | |||
border-top-left-radius: 8px; | |||
border-bottom-left-radius: 8px; | |||
.vocher_name{ | |||
width: 405px; | |||
.head_m{ | |||
height: 110px; | |||
background: #2facfe; | |||
border-radius: 8px; | |||
.year_m{ | |||
border-right: 1px solid #fff; | |||
.year_text{ | |||
height: 56px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
color: #fff; | |||
font-size: 30px; | |||
} | |||
.unit_m{ | |||
height: 54px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
padding-bottom: 10px; | |||
.ubs{ | |||
width: 94px; | |||
height: 43px; | |||
background: #cbeaff; | |||
font-size: 30px; | |||
color: #1a84c9; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
border-radius: 6px; | |||
&:nth-child(1){ | |||
margin-right: 12px; | |||
} | |||
} | |||
} | |||
} | |||
.credential_m{ | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
color: #fff; | |||
font-size: 30px; | |||
height: 110px; | |||
} | |||
} | |||
.vocher_mTitle{ | |||
background: #d7e8f3; | |||
.van-col{ | |||
height: 84px; | |||
font-size: 30px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
border-right: 1px solid #fff; | |||
.pz_tx{ | |||
color: #278dff; | |||
padding-bottom: 8px; | |||
border-bottom: 1px solid #278dff; | |||
} | |||
} | |||
&:nth-child(2n-1){ | |||
background: #e3f4ff; | |||
} | |||
} | |||
} | |||
.vocher_content{ | |||
flex: 1; | |||
overflow:hidden; | |||
overflow-x: scroll; | |||
// white-space:nowrap; | |||
display: -webkit-box; | |||
-webkit-overflow-scrolling: touch; | |||
.vocher_cmain{ | |||
width: 1200px; | |||
.head_m{ | |||
.van-col{ | |||
height: 110px; | |||
font-size: 30px; | |||
color: #2facfe; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
border-right: 1px solid #bfbfbf; | |||
&:last-child{ | |||
border-right: 0; | |||
} | |||
} | |||
} | |||
.content_m{ | |||
.van-row{ | |||
&:nth-child(2n-1){ | |||
background: #e9e9e9; | |||
} | |||
} | |||
.van-col{ | |||
height: 84px; | |||
font-size: 30px; | |||
padding:0 22px; | |||
display: flex; | |||
align-items: center; | |||
border-right: 1px solid #bfbfbf; | |||
&:last-child{ | |||
border-right: 0 none; | |||
} | |||
&.zy{ | |||
display: flex; | |||
align-items: center; | |||
span{ | |||
position: relative; | |||
overflow: hidden; | |||
text-overflow: -o-ellipsis-lastline; | |||
text-overflow: ellipsis; | |||
display: -webkit-box; | |||
-webkit-line-clamp: 2; | |||
line-clamp: 2; | |||
-webkit-box-orient: vertical; | |||
} | |||
} | |||
&.je{ | |||
justify-content: flex-end; | |||
} | |||
&.km{ | |||
justify-content: center; | |||
} | |||
} | |||
} | |||
} | |||
} | |||
} | |||
} | |||
</style> |
@@ -56,6 +56,7 @@ | |||
<router-link :to="{name:'sunVillageInfoListFinance'}" class="nav_item n_1">财务公开榜</router-link> | |||
<router-link :to="{name:'sunVillageInfoListTourists'}" class="nav_item n_2">零工公开榜</router-link> | |||
<router-link :to="{name:'sunVillageInfoListRegister'}" class="nav_item n_8">零工登记</router-link> | |||
<router-link :to="{name:'sunVillageInfoStatisticalReport'}" class="nav_item n_9">统计填报</router-link> | |||
<router-link :to="{name:'sunVillageInfoListIssues'}" class="nav_item n_3">重大事项</router-link> | |||
<router-link :to="{name:'sunVillageInfoListVote'}" class="nav_item n_5">发布投票</router-link> | |||
</div> | |||
@@ -142,7 +143,8 @@ | |||
<p style="font-weight: bold;font-size: 18px;display: inline-block">财务信息</p> | |||
</template> | |||
</van-cell> | |||
<router-link :to="{name:'sunVillageInfoListBalanceRanking'}" class="nav_item n_4">科目余额表</router-link> | |||
<router-link :to="{name:'sunVillageInfoListBalanceRanking'}" class="nav_item n_4">余额表</router-link> | |||
<router-link :to="{name:'sunVillageInfoDetailedLedger'}" class="nav_item n_10">明细账</router-link> | |||
<router-link :to="{name:'sunVillageInfoFixedAssets'}" class="nav_item n_6">固定资产</router-link> | |||
<router-link :to="{name:'sunVillageInfoInformation'}" class="nav_item n_7">合同信息</router-link> | |||
</div> | |||
@@ -273,7 +275,6 @@ | |||
}) | |||
}, | |||
selectChange(val){ | |||
console.log(val) | |||
val.index == 0 ? this.$router.push({path:"/sunVillage_info/user"}) : val.index == 1 ? this.$router.push({path:"/sunVillage_info/passWord"}) : val.index == 2 ? this.logout() : ''; | |||
} | |||
}, | |||
@@ -404,23 +405,38 @@ | |||
&.n_4 { | |||
background: url('../../assets/images/sunVillage_info/index_block_04.png') no-repeat center top; | |||
background-size: 50%; | |||
margin-bottom: 20PX; | |||
// margin-bottom: 20PX; | |||
} | |||
&.n_5 { | |||
background: url('../../assets/images/sunVillage_info/index_block_05.png') no-repeat center top; | |||
background-size: 50%; | |||
margin-bottom: 20PX; | |||
} | |||
&.n_6 { | |||
background: url('../../assets/images/sunVillage_info/index_block_06.png') no-repeat center top; | |||
background-size: 50%; | |||
// margin-bottom: 20PX; | |||
} | |||
&.n_7 { | |||
background: url('../../assets/images/sunVillage_info/index_block_07.png') no-repeat center top; | |||
background-size: 50%; | |||
// margin-bottom: 20PX; | |||
} | |||
&.n_8 { | |||
background: url('../../assets/images/sunVillage_info/index_block_08.png') no-repeat center top; | |||
background-size: 50%; | |||
margin-bottom: 20PX; | |||
} | |||
&.n_9 { | |||
background: url('../../assets/images/sunVillage_info/index_block_09.png') no-repeat center top; | |||
background-size: 50%; | |||
margin-bottom: 20PX; | |||
} | |||
&.n_10 { | |||
background: url('../../assets/images/sunVillage_info/index_block_10.png') no-repeat center top; | |||
background-size: 50%; | |||
// margin-bottom: 20PX; | |||
} | |||
} | |||
.icon{ | |||
@@ -441,6 +457,7 @@ | |||
font-size: 22px; | |||
color: #3f3d56; | |||
text-align: center; | |||
padding-top: 20px; | |||
padding-bottom: 25PX; | |||
} | |||
} | |||
@@ -0,0 +1,247 @@ | |||
<template> | |||
<div class="home_wrapper"> | |||
<div class="header_main"> | |||
统计填报 | |||
<div class="return_btn" @click="onClickLeft"></div> | |||
<div class="add_btn" @click="goAdd"></div> | |||
</div> | |||
<div class="list_main"> | |||
<van-list | |||
v-model="loading" | |||
:finished="finished" | |||
finished-text="没有更多了" | |||
@load="getList" | |||
> | |||
<!--1--> | |||
<van-swipe-cell right-width="150" class="item" v-for="(item,index) in applicationList" :key="index"> | |||
<div class="item_box" @click="$router.push({name:'sunVillageInfoStatisticalReportEdit',query:{id:item.id}})"> | |||
<div class="head_block"> | |||
<i class="icon"></i> | |||
<div class="title">{{item.templateName}}</div> | |||
</div> | |||
<div class="order_block"> | |||
<div class="flex_block"> | |||
<i class="icon icon_1"></i> | |||
<div class="text">{{item.time}}</div> | |||
</div> | |||
<div class="flex_block" v-if="item.applyUserName"> | |||
<i class="icon icon_2"></i> | |||
<div class="text">{{item.applyUserName}}</div> | |||
</div> | |||
<div class="flex_block" v-if="item.processKey"> | |||
<i class="icon icon_2"></i> | |||
<div class="text">{{item.processKey}}</div> | |||
</div> | |||
</div> | |||
</div> | |||
<template #right> | |||
<div style="background-color: #ee0a24;height: 100%" @click="handleDelete(item,index)" >删除</div> | |||
<router-link :to="{name:'sunVillageInfoStatisticalReportEdit',query:{id:item.id}}" style="background-color: #07c160">修改</router-link> | |||
</template> | |||
</van-swipe-cell> | |||
</van-list> | |||
</div> | |||
</div> | |||
</template> | |||
<script> | |||
import { statisticsList ,delStatisticsRemove} from "@/api/sunVillage_info/fixedAssets"; | |||
export default { | |||
name: "statisticalReport", | |||
data() { | |||
return { | |||
loading: false, | |||
finished: false, | |||
applicationList:[], | |||
queryParams:{ | |||
pageNum:1, | |||
pageSize:10, | |||
// orderByColumn:'createTime', | |||
// isAsc:'desc', | |||
}, | |||
}; | |||
}, | |||
created() { | |||
}, | |||
methods: { | |||
getList(){ | |||
statisticsList(this.queryParams).then((response)=>{ | |||
if(response.code == 200){ | |||
for (var i = 0; i < response.rows.length; i++) { | |||
this.applicationList.push(response.rows[i]); | |||
} | |||
if(this.applicationList.length >= response.total){ | |||
this.finished = true; | |||
return; | |||
}else{ | |||
this.loading = false; | |||
this.queryParams.pageNum += 1 ; | |||
} | |||
} | |||
}) | |||
}, | |||
/** 删除按钮操作 */ | |||
handleDelete(row,index) { | |||
const ids = row.id || this.ids; | |||
this.$dialog.alert( | |||
{ | |||
message:'是否确认删除填报信息?', | |||
title:"警告", | |||
showCancelButton:true, | |||
confirmButtonText: "确定", | |||
cancelButtonText: "取消", | |||
} | |||
) | |||
.then(function () { | |||
return delStatisticsRemove(ids) | |||
}) | |||
.then(() => { | |||
this.applicationList.splice(index, 1); | |||
this.$notify({ type: 'success', message: '删除成功' }); | |||
}) | |||
}, | |||
goAdd(){ | |||
this.$router.push('/sunVillage_info/statistical_report_edit') | |||
}, | |||
}, | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.home_wrapper{ | |||
background: #e9e9e9; | |||
min-height: 100vh; | |||
width: 100vw; | |||
.header_main { | |||
height: 116px; | |||
background: url('../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||
background-size: 100% 100%; | |||
position: fixed; | |||
top: 0; | |||
left: 0; | |||
width: 100%; | |||
font-size: 36px; | |||
line-height: 116px; | |||
text-align: center; | |||
color: #fff; | |||
position: relative; | |||
.return_btn { | |||
width: 24px; | |||
height: 43.2px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||
background-size: 20px 36px; | |||
position: absolute; | |||
left: 38px; | |||
top: 36px; | |||
} | |||
.add_btn { | |||
width: 56.4px; | |||
height: 40.8px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat; | |||
background-size: 47px 34px; | |||
position: absolute; | |||
right: 38px; | |||
top: 36px; | |||
} | |||
} | |||
.list_main{ | |||
padding:26px 22px 0; | |||
.item{ | |||
height: 162px; | |||
border-radius: 30px; | |||
background: #fff; | |||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||
margin-bottom: 20px; | |||
.item_box{ | |||
padding:25px 32px; | |||
} | |||
.head_block{ | |||
height: 62px; | |||
display: flex; | |||
align-items: center; | |||
width: 100%; | |||
.icon{ | |||
width: 34px; | |||
height: 30px; | |||
background: url('../../assets/images/sunVillage_info/fixedAssets_icon_4.png') no-repeat; | |||
background-size: 100% 100%; | |||
display: block; | |||
margin-right: 12px; | |||
} | |||
.title{ | |||
flex:1; | |||
font-size: 32px; | |||
color: #252525; | |||
overflow: hidden; | |||
text-overflow: ellipsis; | |||
white-space: nowrap; | |||
padding-right: 20px; | |||
} | |||
} | |||
.order_block{ | |||
display: flex; | |||
height: 52px; | |||
padding-top: 12px; | |||
font-size: 24px; | |||
color: #858585; | |||
align-items: center; | |||
padding-bottom: 10px; | |||
.flex_block{ | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
margin-right: 28px; | |||
height: 42px; | |||
.icon{ | |||
width: 25px; | |||
height: 25px; | |||
margin-top: 3px; | |||
margin-right: 8px; | |||
&.icon_1{ | |||
background: url('../../assets/images/sunVillage_info/fixedAssets_icon_3.png') no-repeat; | |||
background-size: 100% 100%; | |||
} | |||
&.icon_2{ | |||
background: url('../../assets/images/sunVillage_info/fixedAssets_icon_5.png') no-repeat; | |||
background-size: 100% 100%; | |||
} | |||
} | |||
} | |||
} | |||
} | |||
} | |||
/deep/ .van-swipe-cell__right{ | |||
display: flex; | |||
align-items: center; | |||
width: 150PX; | |||
margin-left: 5PX; | |||
a,div{ | |||
margin: 0; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
color: #ffffff; | |||
font-size: 14PX; | |||
height: 100%; | |||
flex: 1; | |||
} | |||
} | |||
} | |||
</style> |
@@ -0,0 +1,821 @@ | |||
<template> | |||
<div class="home_wrapper"> | |||
<div class="header_main"> | |||
统计填报 | |||
<div class="return_btn" @click="onClickLeft"></div> | |||
</div> | |||
<div class="template_main"> | |||
<div class="title_wrap"> | |||
<div class="icon"></div> | |||
<div class="title">模板</div> | |||
</div> | |||
<div class="search_wrap" @click="templateClick"> | |||
<div class="title">{{templateValue}}</div> | |||
<div class="xs_icon"></div> | |||
</div> | |||
</div> | |||
<div class="choose_main"> | |||
<div class="search_wrap"> | |||
<div class="title">申报类型</div> | |||
<div class="content" @click="typeDeclarationClick"> | |||
<div class="text">{{declarationTypeValue}}</div> | |||
<div class="xs_icon"></div> | |||
</div> | |||
</div> | |||
<div class="search_wrap"> | |||
<div class="title">负责人</div> | |||
<div class="content"> | |||
<div class="text"> | |||
<input v-model="from.principalName" type="text" class="fzr" placeholder="请输入"> | |||
</div> | |||
<div class="xs_icon"></div> | |||
</div> | |||
</div> | |||
</div> | |||
<!--div class="table_main"> | |||
<div class="head_wrap"> | |||
<div class="project_name">项目名称</div> | |||
<div class="unit_count">计数单位</div> | |||
<div class="numerical_value">数值</div> | |||
</div> | |||
<div class="thead_wrap"> | |||
<div class="basic_info"> | |||
<div class="basic_title"> | |||
<div class="s_title">合作社发展基本情况</div> | |||
</div> | |||
<div class="type_wrap"> | |||
<div class="industry_list"> | |||
<div class="subdivision_list"> | |||
<div class="subdivision_title">行业分布</div> | |||
<div class="subdivision_main"> | |||
<div class="planting_flex"> | |||
<div class="subclass">大豆种植</div> | |||
<div class="unit_munt">个</div> | |||
<div class="number_value"> | |||
<van-stepper v-model="stepperValue" /> | |||
</div> | |||
</div> | |||
<div class="planting_flex"> | |||
<div class="subclass">大豆种植</div> | |||
<div class="unit_munt">个</div> | |||
<div class="number_value"> | |||
<van-stepper v-model="stepperValue" /> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="industry_list"> | |||
<div class="type_project">各类合作社总数各类合</div> | |||
<div class="unit_munt">个</div> | |||
<div class="number_value"> | |||
<van-stepper v-model="stepperValue" /> | |||
</div> | |||
</div> | |||
<div class="industry_list"> | |||
<div class="type_project">牧业</div> | |||
<div class="unit_munt">个</div> | |||
<div class="number_value"> | |||
<van-stepper v-model="stepperValue" /> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="basic_info"> | |||
<div class="basic_title"> | |||
<div class="s_title">合作社发展基本情况</div> | |||
</div> | |||
<div class="type_wrap"> | |||
<div class="industry_list"> | |||
<div class="subdivision_list"> | |||
<div class="subdivision_title">行业分布</div> | |||
<div class="subdivision_main"> | |||
<div class="planting_flex"> | |||
<div class="subclass">大豆种植</div> | |||
<div class="unit_munt">个</div> | |||
<div class="number_value"> | |||
<van-stepper v-model="stepperValue" /> | |||
</div> | |||
</div> | |||
<div class="planting_flex"> | |||
<div class="subclass">大豆种植</div> | |||
<div class="unit_munt">个</div> | |||
<div class="number_value"> | |||
<van-stepper v-model="stepperValue" /> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="industry_list"> | |||
<div class="type_project">各类合作社总数各类合</div> | |||
<div class="unit_munt">个</div> | |||
<div class="number_value"> | |||
<van-stepper v-model="stepperValue" /> | |||
</div> | |||
</div> | |||
<div class="industry_list"> | |||
<div class="type_project">牧业</div> | |||
<div class="unit_munt">个</div> | |||
<div class="number_value"> | |||
<van-stepper v-model="stepperValue" /> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div--> | |||
<div class="table_main"> | |||
<div class="head_wrap"> | |||
<div class="project_name">项目名称</div> | |||
<div class="unit_count">单位</div> | |||
<div class="numerical_value">数值</div> | |||
</div> | |||
<div class="thead_wrap"> | |||
<!---1--> | |||
<div class="basic_info" v-for="(item,index) in tEntityStatisticsNumberList" :key="index" > | |||
<div class="basic_title"> | |||
<div class="s_title">{{item.projectName}}</div> | |||
</div> | |||
<div class="type_wrap"> | |||
<!---2---> | |||
<div class="industry_list" v-for="(data,idx) in item.children" :key="idx"> | |||
<div v-if="data.children && data.children!=null" class="industry_block"> | |||
<div class="subdivision_list"> | |||
<div class="subdivision_title">{{data.projectName}}</div> | |||
<div class="subdivision_main"> | |||
<!---3---> | |||
<div class="planting_flex" v-for="(val,num) in data.children" :key="num"> | |||
<div class="subclass">{{val.projectName}}</div> | |||
<div class="unit_munt">{{val.measuringUnit}}</div> | |||
<div class="number_value"> | |||
<!-- <van-stepper v-model="val.currentYearNumber" min="0"/> | |||
<input type=""> --> | |||
<van-field v-model="val.currentYearNumber" type="number" /> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div v-else class="industry_block"> | |||
<div class="type_project">{{data.projectName}}</div> | |||
<div class="unit_munt">{{data.measuringUnit}}</div> | |||
<div class="number_value"> | |||
<!-- <van-stepper v-model="data.currentYearNumber" min="0" /> --> | |||
<van-field v-model="data.currentYearNumber" type="number" /> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="submit_btn"> | |||
<van-button type="info" @click="submitFrom" size="normal">保存填报信息</van-button> | |||
</div> | |||
<van-action-sheet v-model="popObj.typeDeclarationVisibile" duration="0.2" > | |||
<van-picker | |||
title="申报类型" | |||
:columns="declarationTypeIdOptions" | |||
show-toolbar | |||
@confirm="declarationTypeIdConfirm" | |||
@cancel="declarationTypeIdCancel" | |||
> | |||
<template #option="option"> | |||
<div style="display: flex; flex-direction: column; align-items: center;"> | |||
<div>{{ option.dictLabel }}</div> | |||
<!-- <div>年龄:{{ option.age }}</div> --> | |||
</div> | |||
</template> | |||
</van-picker> | |||
</van-action-sheet> | |||
<van-action-sheet v-model="popObj.templateVisbile" duration="0.2" > | |||
<van-cascader | |||
v-model="cascaderValue" | |||
title="请选择所在地区" | |||
:options="statisticsProject" | |||
@close="popObj.templateVisbile = false" | |||
@finish="projectOnFinish" | |||
@change="projectOnChange" | |||
:field-names="fieldNames" | |||
/> | |||
</van-action-sheet> | |||
</div> | |||
</template> | |||
<script> | |||
import {entityStatisticsTemplate ,entityStatisticsSave ,entityStatisticsDetail} from "@/api/sunVillage_info/fixedAssets"; | |||
import {getInfo} from "../../api/login"; | |||
export default { | |||
name: "statisticalReportEdit", | |||
data() { | |||
return { | |||
from:{ | |||
applyTime:null, | |||
applyUserId:null, | |||
applyUserName:null, | |||
auditStatus:null, | |||
createBy:null, | |||
createTime:null, | |||
deptId:null, | |||
id:null, | |||
instanceId:null, | |||
processKey:null, | |||
remark:null, | |||
statisticsTypeId:null, | |||
templateId:null, //模板id | |||
updateBy:null, | |||
updateTime:null, | |||
templateName:null, //模板名称 | |||
declarationTypeId:null, //申报类型 1 | |||
principalName:null, //单位负责人 1 | |||
preparer:null, //填表人 1 | |||
preparerDeptName:'', //填报单位 1 | |||
time:this.format(new Date(),'yyyy-MM-dd'), //填报时间 | |||
tEntityStatisticsNumberList:[] | |||
}, | |||
//当前选中模板列表 | |||
tEntityStatisticsNumberList:[], | |||
//选择模板标题 | |||
templateValue :'请选择模板', | |||
popObj:{ | |||
typeDeclarationVisibile:false, | |||
templateVisbile:false | |||
}, | |||
// 申报类型ID字典 | |||
declarationTypeIdOptions: [], | |||
declarationTypeValue:'请选择', | |||
loading:true, | |||
//模板list | |||
//申报大项--列表 | |||
statisticsProject:[], | |||
cascaderValue:null, | |||
fieldNames:{ | |||
text: 'dictLabel', | |||
value: 'dictValue', | |||
children: 'children', | |||
} | |||
}; | |||
}, | |||
created() { | |||
this.getDicts("declaration_type_id").then(response => { | |||
let content = response.data | |||
this.declarationTypeIdOptions = content; | |||
if(content.length>0){ | |||
this.from.declarationTypeId = content[0].dictValue; | |||
this.declarationTypeValue = content[0].dictLabel; | |||
} | |||
}); | |||
}, | |||
mounted(){ | |||
getInfo().then(response => { | |||
this.from.preparer = response.user.nickName | |||
this.from.preparerDeptName = response.user.dept.deptName | |||
}); | |||
let query = this.$route.query; | |||
if(query&& query.id){ | |||
this.loading =true; | |||
//編輯 | |||
let oId = this.$route.query.id; | |||
entityStatisticsDetail(oId).then((res)=>{ | |||
if(res.code == 200){ | |||
let content = res.data; | |||
// let obj = { | |||
// applyTime:content.content, | |||
// applyTime:content.applyTime, | |||
// applyUserId:content.pplyUserId, | |||
// applyUserName:content.applyUserName, | |||
// auditStatus:content.auditStatus, | |||
// createBy:content.createBy, | |||
// createTime:content.createTime, | |||
// deptId:content.deptId, | |||
// id:content.id, | |||
// instanceId:content.instanceId, | |||
// processKey:content.processKey, | |||
// remark:content.remark, | |||
// statisticsTypeId:content.statisticsTypeId, | |||
// templateId:content.templateId, //模板id | |||
// updateBy:content.updateBy, | |||
// updateTime:content.updateTime, | |||
// templateName:content.templateName, //模板名称 | |||
// declarationTypeId:content.declarationTypeId, //申报类型 1 | |||
// principalName:content.principalName, //单位负责人 1 | |||
// preparer:content.preparer, //填表人 1 | |||
// preparerDeptName:content.preparerDeptName, //填报单位 1 | |||
// time:content.time, | |||
// tEntityStatisticsNumberList:content.tEntityStatisticsNumberList | |||
// } | |||
//当前选择模板 | |||
this.tEntityStatisticsNumberList = content.tEntityStatisticsNumberList; | |||
//申报类型 | |||
let declarationTypeObj = this.declarationTypeIdOptions.find((account) => { | |||
//model就是上面的数据源 | |||
return account.dictValue == content.declarationTypeId; //筛选出匹配数据 | |||
}); | |||
//请选择模板 | |||
this.templateValue = content.templateName | |||
// this.loading =false; | |||
this.declarationTypeValue = declarationTypeObj.dictLabel; | |||
this.from = res.data; | |||
} | |||
}) | |||
} | |||
this.getDicts("newBusinessEntity_statistics_project").then(res => { | |||
if(res.code == 200){ | |||
let content = res.data; | |||
content.forEach((v)=>{ | |||
v.children = []; | |||
}) | |||
this.statisticsProject = content; | |||
} | |||
}); | |||
}, | |||
methods: { | |||
projectOnFinish(data){ | |||
let content = data.selectedOptions[data.selectedOptions.length -1] | |||
console.log(content) | |||
this.tEntityStatisticsNumberList = content.templateForm.tEntityStatisticsNumberList; | |||
this.templateValue = content.dictLabel; | |||
// // this.from.templateName = data.label; | |||
this.from = content.templateForm; | |||
this.popObj.templateVisbile = false; | |||
}, | |||
projectOnChange(value){ | |||
if(value.tabIndex == 0){ | |||
//查看 | |||
entityStatisticsTemplate({statisticsTypeId:value.selectedOptions[0].dictValue}).then((response)=>{ | |||
if(response.code == 200){ | |||
let content = response.data; | |||
this.statisticsProject[Number(value.value)-1].children = content.map(item => { | |||
const recursionFileMap = obj => { | |||
obj.forEach((v,i)=>{ | |||
if(v.currentYearNumber == null){ | |||
v.currentYearNumber = 0; | |||
} | |||
if (v.children && v.children != null) { | |||
recursionFileMap(v.children) | |||
} | |||
}) | |||
} | |||
recursionFileMap(item.tEntityStatisticsNumberList) | |||
return { | |||
dictLabel:item.templateName, | |||
dictValue: item.templateId, | |||
templateForm:item, | |||
// templateForm:{ | |||
// templateId:item.id, | |||
// templateName:item.templateName, | |||
// declarationTypeId:item.declarationTypeId, | |||
// tEntityStatisticsNumberList:item.tEntityStatisticsNumberList | |||
// } | |||
}; | |||
}); | |||
this.loading =false; | |||
} | |||
}) | |||
} | |||
}, | |||
submitFrom(){ | |||
this.from.tEntityStatisticsNumberList = this.tEntityStatisticsNumberList; | |||
this.from.tentityStatisticsNumberList = this.tEntityStatisticsNumberList; | |||
if(this.from.templateName == null){ | |||
this.$notify({ | |||
message:'请选择模板!', | |||
type: 'danger' | |||
}); | |||
return false; | |||
}else if(this.from.declarationTypeId == null){ | |||
this.$notify({ | |||
message:'请选择申报类型!', | |||
type: 'danger' | |||
}); | |||
return false; | |||
}else if(this.from.principalName == null){ | |||
this.$notify({ | |||
message:'请填写负责人!', | |||
type: 'danger' | |||
}); | |||
return false; | |||
} | |||
entityStatisticsSave(this.from).then((res)=>{ | |||
if(res.code == 200){ | |||
this.$notify({ | |||
message:'保存成功!', | |||
type: 'success' | |||
}); | |||
setTimeout(()=>{ | |||
this.$router.push('/sunVillage_info/statistical_report') | |||
},1500) | |||
} | |||
}) | |||
}, | |||
typeDeclarationClick(){ | |||
this.popObj.typeDeclarationVisibile = true; | |||
}, | |||
declarationTypeIdConfirm(value,index){ | |||
this.from.declarationTypeId = value.dictValue; | |||
this.declarationTypeValue = value.dictLabel | |||
this.popObj.typeDeclarationVisibile = false; | |||
}, | |||
declarationTypeIdCancel(){ | |||
this.popObj.typeDeclarationVisibile = false; | |||
}, | |||
templateClick(){ | |||
this.popObj.templateVisbile = true; | |||
} | |||
}, | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.home_wrapper{ | |||
background: #e9e9e9; | |||
min-height: 100vh; | |||
width: 100vw; | |||
.header_main { | |||
height: 116px; | |||
background: url('../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||
background-size: 100% 100%; | |||
position: fixed; | |||
top: 0; | |||
left: 0; | |||
width: 100%; | |||
font-size: 36px; | |||
line-height: 116px; | |||
text-align: center; | |||
color: #fff; | |||
position: relative; | |||
.return_btn { | |||
width: 24px; | |||
height: 43.2px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||
background-size: 20px 36px; | |||
position: absolute; | |||
left: 38px; | |||
top: 36px; | |||
} | |||
} | |||
.template_main{ | |||
padding:30px 24px 0; | |||
display: flex; | |||
margin-bottom: 20px; | |||
align-items: center; | |||
.title_wrap{ | |||
display: flex; | |||
align-items: center; | |||
padding-right: 15px; | |||
.icon{ | |||
width: 50px; | |||
height: 50px; | |||
border-radius: 50%; | |||
box-shadow: 4px 0px 7px rgba(63, 68, 75, 0.1); | |||
background:#2facfe url('../../assets/images/sunVillage_info/list_icon_11.png') center center no-repeat; | |||
background-size: 27px 27px; | |||
margin-right: 12px; | |||
} | |||
.title{ | |||
font-size: 30px; | |||
color: #2facfe; | |||
} | |||
} | |||
.search_wrap{ | |||
flex: 1; | |||
height: 64px; | |||
border-radius: 8px; | |||
box-shadow: 4px 4px 7px rgba(63, 68, 75, 0.1); | |||
background: #fff; | |||
display: flex; | |||
padding:0 26px 0 22px; | |||
align-items: center; | |||
justify-content: space-between; | |||
.title{ | |||
width: 465px; | |||
height: 64px; | |||
line-height: 64px; | |||
font-size: 30px; | |||
white-space: nowrap; | |||
overflow: hidden; | |||
text-overflow: ellipsis; | |||
color: #2b2b2b; | |||
} | |||
.xs_icon{ | |||
width: 11px; | |||
height: 23px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_12.png') center center no-repeat; | |||
background-size: 100% 100%; | |||
} | |||
} | |||
} | |||
.choose_main{ | |||
padding:0 24px; | |||
display: flex; | |||
justify-content: space-between; | |||
margin-bottom: 26px; | |||
.search_wrap{ | |||
height: 64px; | |||
width: 48.5%; | |||
border-radius: 8px; | |||
box-shadow: 4px 4px 7px rgba(63, 68, 75, 0.1); | |||
background: #fff; | |||
display: flex; | |||
.title{ | |||
width: 145px; | |||
font-size: 30px; | |||
color: #fff; | |||
background: #2facfe; | |||
border-top-left-radius: 8px; | |||
border-bottom-left-radius: 8px; | |||
display: flex; | |||
justify-content: center; | |||
align-items: center; | |||
} | |||
.content{ | |||
flex: 1; | |||
padding:0 20px 0 10px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
.text{ | |||
width: 150px; | |||
// line-height: 64px; | |||
font-size: 30px; | |||
white-space: nowrap; | |||
text-align: center; | |||
overflow: hidden; | |||
text-overflow: ellipsis; | |||
.fzr{ | |||
width: 150px; | |||
} | |||
} | |||
.xs_icon{ | |||
width: 11px; | |||
height: 23px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_12.png') center center no-repeat; | |||
background-size: 100% 100%; | |||
} | |||
} | |||
} | |||
} | |||
.table_main{ | |||
padding:0px 24px 0 24px; | |||
div{ | |||
box-sizing: border-box; | |||
} | |||
.head_wrap{ | |||
height: 69px; | |||
display: flex; | |||
font-size: 30px; | |||
background: #fff; | |||
color: #2facfe; | |||
border-top-left-radius: 8px; | |||
border-bottom-left-radius: 8px; | |||
.project_name, | |||
.unit_count, | |||
.numerical_value{ | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
} | |||
.project_name{ | |||
width: 359px; | |||
background: #2facfe; | |||
color: #fff; | |||
border-radius: 8px; | |||
} | |||
.unit_count{ | |||
width: 140px; | |||
border-right: 1px solid #0469ab; | |||
} | |||
.numerical_value{ | |||
width: 204px; | |||
border-right: 1px solid #0469ab; | |||
} | |||
} | |||
.thead_wrap{ | |||
.basic_info{ | |||
display: flex; | |||
.basic_title{ | |||
width: 63px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
background: #6ac1fa; | |||
border-right: 1px solid #0469ab; | |||
border-bottom: 1px solid #0469ab; | |||
.s_title{ | |||
width: 28px; | |||
font-size: 28px; | |||
padding:14px 0; | |||
} | |||
} | |||
.type_wrap{ | |||
flex: 1; | |||
display: flex; | |||
flex-wrap: wrap; | |||
.industry_list{ | |||
width: 100%; | |||
display: flex; | |||
border-bottom: 1px solid #0469ab; | |||
min-height: 75px; | |||
.industry_block{ | |||
flex: 1; | |||
display: flex; | |||
} | |||
.type_project, | |||
.unit_munt, | |||
.number_value{ | |||
display: flex; | |||
justify-content: center; | |||
align-items: center; | |||
} | |||
.type_project{ | |||
width: 296px; | |||
font-size: 28px; | |||
background: #aad8f6; | |||
padding:0 14px; | |||
font-size: 28px; | |||
border-right: 1px solid #0469ab; | |||
} | |||
.unit_munt{ | |||
width: 140px; | |||
font-size: 28px; | |||
border-right: 1px solid #0469ab; | |||
} | |||
.number_value{ | |||
width: 204px; | |||
border-right: 1px solid #0469ab; | |||
.van-cell { | |||
padding:20px 16px; | |||
background: none; | |||
} | |||
} | |||
.subdivision_list{ | |||
flex: 1; | |||
display: flex; | |||
.subdivision_title{ | |||
width: 76px; | |||
background: #aad8f6; | |||
font-size: 28px; | |||
display: flex; | |||
align-items: center; | |||
padding:0 8px; | |||
justify-content: center; | |||
border-right: 1px solid #0469ab; | |||
} | |||
.subdivision_main{ | |||
flex: 1; | |||
display: flex; | |||
flex-wrap: wrap; | |||
.planting_flex{ | |||
width: 100%; | |||
display: flex; | |||
min-height: 75px; | |||
border-bottom: 1px solid #0469ab; | |||
&:last-child{ | |||
border-bottom: 0; | |||
} | |||
.subclass{ | |||
width: 220px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
font-size: 27px; | |||
padding:0 10px; | |||
background: #d7e8f3; | |||
border-right: 1px solid #0469ab; | |||
} | |||
} | |||
} | |||
} | |||
// <div class="subdivision_list"> | |||
// <div class="subdivision_title">行业分布</div> | |||
// <div class="subdivision_main"> | |||
// <!---3---> | |||
// <div class="planting_flex"> | |||
// 大豆种植 | |||
// </div> | |||
// <!---3---> | |||
// <div class="planting_flex"> | |||
// 大豆种植 | |||
// </div> | |||
// </div> | |||
// </div> | |||
} | |||
} | |||
} | |||
} | |||
} | |||
.submit_btn{ | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
height: 150px; | |||
} | |||
/deep/ { | |||
.van-stepper__minus, | |||
.van-stepper__plus{ | |||
background: #2facfe; | |||
color: #fff; | |||
} | |||
.van-stepper__minus--disabled{ | |||
color: #e9e9e9; | |||
} | |||
.van-stepper__input{ | |||
margin:0; | |||
background: #e0f1fc; | |||
font-size: 30px; | |||
color: #2facfe; | |||
} | |||
.van-field__control{ | |||
text-align: center; | |||
} | |||
} | |||
} | |||
</style> |
@@ -0,0 +1,388 @@ | |||
<template> | |||
<div class="home_wrapper"> | |||
<div class="head_main"> | |||
<div class="header_main"> | |||
记账凭证 | |||
<div class="return_btn" @click="onClickLeft"></div> | |||
</div> | |||
<div class="Account_sleeve"> | |||
<div class="flex_block"> | |||
<div class="x_m"></div> | |||
<div class="title">账套:</div> | |||
<div class="desc">{{$store.state.user.bookName}}</div> | |||
</div> | |||
<div class="flex_block"> | |||
<div class="x_m"></div> | |||
<div class="title">日期:</div> | |||
<div class="desc">{{vaocherObj.bookDate}}</div> | |||
</div> | |||
<div class="flex_block"> | |||
<div class="x_m"></div> | |||
<div class="title">凭证号:</div> | |||
<div class="desc">{{voucherNum}}号</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="vocher_mian"> | |||
<div class="minimum_hd">{{vaocherObj.detailList.length}}条</div> | |||
<!--1--> | |||
<div class="vocher_block" v-for="(item,index) in vaocherObj.detailList" :key="index"> | |||
<div class="flex_block"> | |||
<div class="m_title"> | |||
<div class="icon">1</div> | |||
摘要 | |||
</div> | |||
<div class="m_cont">{{item.voucherSummary}}</div> | |||
</div> | |||
<div class="flex_block"> | |||
<div class="m_title">会计科目</div> | |||
<div class="m_cont">{{ item.subjectNameAll }}</div> | |||
</div> | |||
<div class="flex_block"> | |||
<div class="m_title">借方金额</div> | |||
<div class="m_cont money" v-if="item.jieAmount">¥ {{item.jieAmount}} 元</div> | |||
</div> | |||
<div class="flex_block"> | |||
<div class="m_title">贷方金额</div> | |||
<div class="m_cont money" v-if="item.daiAmount">¥ {{item.daiAmount}} 元</div> | |||
</div> | |||
</div> | |||
<!--1--> | |||
<!-- <div class="vocher_block"> | |||
<div class="flex_block"> | |||
<div class="m_title"> | |||
<div class="icon">1</div> | |||
摘要 | |||
</div> | |||
<div class="m_cont">购买设备</div> | |||
</div> | |||
<div class="flex_block"> | |||
<div class="m_title">会计科目</div> | |||
<div class="m_cont">财政资金-人居环境整治</div> | |||
</div> | |||
<div class="flex_block"> | |||
<div class="m_title">借方金额</div> | |||
<div class="m_cont money">¥ 10,000.00 元</div> | |||
</div> | |||
<div class="flex_block"> | |||
<div class="m_title">贷方金额</div> | |||
<div class="m_cont money">¥ 10,000.00 元</div> | |||
</div> | |||
</div> --> | |||
</div> | |||
<div class="vocher_footer"> | |||
<div class="total_wrap">合计:<span class="money">{{capitalAmount}}</span></div> | |||
<div class="personnel_wrap"> | |||
<div class="f_block">制单员:{{ vaocherObj.preparedBy }}</div> | |||
<div class="f_block">审核员:{{ vaocherObj.checkedBy }}</div> | |||
</div> | |||
</div> | |||
</div> | |||
</template> | |||
<script> | |||
import { voucherDetail } from "@/api/sunVillage_info/fixedAssets"; | |||
export default { | |||
name: "sunVillageInfoVoucher", | |||
data() { | |||
return { | |||
//凭证号 | |||
voucherId:'', | |||
voucherNum:'', | |||
//凭证数据 | |||
vaocherObj:{ | |||
detailList:[] | |||
}, | |||
//大写总金额 | |||
capitalAmount:'' | |||
} | |||
}, | |||
mounted(){ | |||
this.voucherId = this.$route.query.vocherId; | |||
this.voucherNum = decodeURI(this.$route.query.num); | |||
this.initAxiox() | |||
}, | |||
methods:{ | |||
initAxiox(){ | |||
voucherDetail({id:this.voucherId}).then((res)=>{ | |||
if(res.code == 200){ | |||
let content = res.data; | |||
this.vaocherObj = content; | |||
let totalAmount = 0; | |||
if(content.detailList.length && content.detailList.length>0){ | |||
content.detailList.forEach((v,i)=>{ | |||
totalAmount +=v.jieAmount | |||
}) | |||
} | |||
this.capitalAmount = this.convertCurrency(totalAmount); | |||
} | |||
}) | |||
}, | |||
convertCurrency(money) { | |||
//汉字的数字 | |||
var cnNums = new Array( | |||
"零", | |||
"壹", | |||
"贰", | |||
"叁", | |||
"肆", | |||
"伍", | |||
"陆", | |||
"柒", | |||
"捌", | |||
"玖" | |||
); | |||
//基本单位 | |||
var cnIntRadice = new Array("", "拾", "佰", "仟"); | |||
//对应整数部分扩展单位 | |||
var cnIntUnits = new Array("", "万", "亿", "兆"); | |||
//对应小数部分单位 | |||
var cnDecUnits = new Array("角", "分", "毫", "厘"); | |||
//整数金额时后面跟的字符 | |||
var cnInteger = "整"; | |||
//整型完以后的单位 | |||
var cnIntLast = "元"; | |||
//最大处理的数字 | |||
var maxNum = 999999999999999.9999; | |||
//金额整数部分 | |||
var integerNum; | |||
//金额小数部分 | |||
var decimalNum; | |||
//输出的中文金额字符串 | |||
var chineseStr = ""; | |||
//分离金额后用的数组,预定义 | |||
var parts; | |||
if (money == "") { | |||
return ""; | |||
} | |||
money = parseFloat(money); | |||
if (money >= maxNum) { | |||
//超出最大处理数字 | |||
return ""; | |||
} | |||
if (money == 0) { | |||
chineseStr = cnNums[0] + cnIntLast + cnInteger; | |||
return chineseStr; | |||
} | |||
//转换为字符串 | |||
money = money.toString(); | |||
if (money.indexOf(".") == -1) { | |||
integerNum = money; | |||
decimalNum = ""; | |||
} else { | |||
parts = money.split("."); | |||
integerNum = parts[0]; | |||
decimalNum = parts[1].substr(0, 4); | |||
} | |||
//获取整型部分转换 | |||
if (parseInt(integerNum, 10) > 0) { | |||
var zeroCount = 0; | |||
var IntLen = integerNum.length; | |||
for (var i = 0; i < IntLen; i++) { | |||
var n = integerNum.substr(i, 1); | |||
var p = IntLen - i - 1; | |||
var q = p / 4; | |||
var m = p % 4; | |||
if (n == "0") { | |||
zeroCount++; | |||
} else { | |||
if (zeroCount > 0) { | |||
chineseStr += cnNums[0]; | |||
} | |||
//归零 | |||
zeroCount = 0; | |||
chineseStr += cnNums[parseInt(n)] + cnIntRadice[m]; | |||
} | |||
if (m == 0 && zeroCount < 4) { | |||
chineseStr += cnIntUnits[q]; | |||
} | |||
} | |||
chineseStr += cnIntLast; | |||
} | |||
//小数部分 | |||
if (decimalNum != "") { | |||
var decLen = decimalNum.length; | |||
for (var i = 0; i < decLen; i++) { | |||
var n = decimalNum.substr(i, 1); | |||
if (n != "0") { | |||
chineseStr += cnNums[Number(n)] + cnDecUnits[i]; | |||
} | |||
} | |||
} | |||
if (chineseStr == "") { | |||
chineseStr += cnNums[0] + cnIntLast + cnInteger; | |||
} else if (decimalNum == "") { | |||
chineseStr += cnInteger; | |||
} | |||
return chineseStr; | |||
}, | |||
} | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.home_wrapper{ | |||
background: #e9e9e9; | |||
min-height: 100vh; | |||
width: 100vw; | |||
.head_main{ | |||
height: 440px; | |||
background: url('../../assets/images/sunVillage_info/vocher_bg.png') no-repeat; | |||
background-size: 100% 100%; | |||
.header_main { | |||
height: 116px; | |||
// position: fixed; | |||
top: 0; | |||
left: 0; | |||
width: 100%; | |||
font-size: 36px; | |||
line-height: 116px; | |||
text-align: center; | |||
color: #fff; | |||
position: relative; | |||
.return_btn { | |||
width: 24px; | |||
height: 43.2px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||
background-size: 20px 36px; | |||
position: absolute; | |||
left: 38px; | |||
top: 36px; | |||
} | |||
} | |||
.Account_sleeve{ | |||
padding-left: 75px; | |||
margin-top: 20px; | |||
.flex_block{ | |||
padding-left: 30px; | |||
display: flex; | |||
font-size: 30px; | |||
line-height: 30px; | |||
color: #fff; | |||
margin-bottom: 28px; | |||
position: relative; | |||
.x_m{ | |||
position: absolute; | |||
width: 8px; | |||
height: 30px; | |||
left: 0; | |||
top: 0; | |||
background: #fff; | |||
border-radius: 8px; | |||
} | |||
.title{ | |||
width: 125px; | |||
} | |||
} | |||
} | |||
// <div class="Account_sleeve"> | |||
// <div class="flex_block"> | |||
// <div class="title">账套:</div> | |||
// <div class="desc">长山镇李四村经济合作社</div> | |||
// </div> | |||
// <div class="flex_block"> | |||
// <div class="title">日期:</div> | |||
// <div class="desc">2022-02-03</div> | |||
// </div> | |||
// <div class="flex_block"> | |||
// <div class="title">凭证号:</div> | |||
// <div class="desc">记-55号</div> | |||
// </div> | |||
// </div> | |||
} | |||
.vocher_mian{ | |||
margin:-120px 28px 0; | |||
background: #fff; | |||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||
border-radius: 20px; | |||
padding: 40px 40px 60px; | |||
.minimum_hd{ | |||
background: #2FACFE; | |||
padding:0 22px; | |||
height: 50px; | |||
color: #fff; | |||
line-height: 50px; | |||
border-radius: 50px; | |||
font-size: 30px; | |||
display: inline-block; | |||
} | |||
.vocher_block{ | |||
padding-top: 20px; | |||
padding-bottom: 15px; | |||
border-bottom: 1px dashed #DCDCDC; | |||
.flex_block{ | |||
display: flex; | |||
justify-content: space-between; | |||
height: 60px; | |||
font-size: 30px; | |||
.m_title{ | |||
display: flex; | |||
justify-content: center; | |||
align-items: center; | |||
color: #878787; | |||
.icon{ | |||
height: 38px; | |||
width: 38px; | |||
background: #2FACFE; | |||
border-radius: 50%; | |||
color: #fff; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
margin-right: 12px; | |||
} | |||
} | |||
.money{ | |||
color: #E90000; | |||
} | |||
} | |||
} | |||
} | |||
.vocher_footer{ | |||
margin:0 28px; | |||
padding: 38px 0; | |||
font-size: 30px; | |||
border-bottom: 1px dashed #dedede; | |||
.total_wrap{ | |||
margin:0 45px; | |||
// height: 60px; | |||
padding:18px 0; | |||
// line-height: 60px; | |||
display: flex; | |||
align-items: center; | |||
.money{ | |||
color: #f00; | |||
} | |||
} | |||
.personnel_wrap{ | |||
margin:0 45px; | |||
height: 50px; | |||
line-height: 50px; | |||
color: #2FACFE; | |||
justify-content: space-between; | |||
display: flex; | |||
} | |||
// <div class="vocher_footer"> | |||
// <div class="total_wrap">合计:<span class="money">贰万元整</span></div> | |||
// <div class="personnel_wrap"> | |||
// <div class="f_block">制单员:张三</div> | |||
// <div class="f_block">审核员:王五</div> | |||
// </div> | |||
// </div> | |||
} | |||
} | |||
</style> |
@@ -0,0 +1,622 @@ | |||
<template> | |||
<div class="home_wrapper"> | |||
<div class="header_main"> | |||
明细账 | |||
<div class="return_btn" @click="onClickLeft"></div> | |||
</div> | |||
<!---期间--> | |||
<div class="period_main"> | |||
<div class="bt_title"> | |||
<div class="icon"></div> | |||
<div class="title">期间</div> | |||
</div> | |||
<div class="calendar_block" @click="startDateClick">{{queryParams.startDate.replace('-','年')}}月</div> | |||
<div class="to">至</div> | |||
<div class="calendar_block" @click="endDateClick">{{queryParams.endDate.replace('-','年')}}月</div> | |||
</div> | |||
<!--科目--> | |||
<div class="subject_main"> | |||
<div class="bt_title"> | |||
<div class="icon"></div> | |||
<div class="title">科目</div> | |||
</div> | |||
<div class="subject_block" @click="subjectClick"> | |||
<div class="title">{{subjectText}}</div> | |||
<div class="xs_icon"></div> | |||
</div> | |||
</div> | |||
<!--内容--> | |||
<div class="center_box"> | |||
<div class="vocher_name"> | |||
<van-row class="head_m"> | |||
<van-col :span="14" class="year_m"> | |||
<div class="year_text">2022</div> | |||
<div class="unit_m"> | |||
<div class="ubs">月</div> | |||
<div class="ubs">日</div> | |||
</div> | |||
</van-col> | |||
<van-col :span="10" class="credential_m">凭证字</van-col> | |||
</van-row> | |||
<van-row class="vocher_mTitle" v-for="(item,index) in tableList" :key="index"> | |||
<van-col :span="7">{{item.month}}</van-col> | |||
<van-col :span="7">{{item.day}}</van-col> | |||
<van-col :span="10"> | |||
<div class="pz_tx" @click="subjectNameFun(item.voucherWordNum)">{{item.voucherWordNum}}</div> | |||
</van-col> | |||
</van-row> | |||
<!-- <van-row class="vocher_mTitle"> | |||
<van-col :span="7">09</van-col> | |||
<van-col :span="7">09</van-col> | |||
<van-col :span="10"> | |||
<div class="pz_tx">记-06</div> | |||
</van-col> | |||
</van-row> --> | |||
</div> | |||
<div class="vocher_content"> | |||
<div class="vocher_cmain"> | |||
<van-row class="head_m"> | |||
<van-col :span="9">摘要</van-col> | |||
<van-col :span="4">借方</van-col> | |||
<van-col :span="4">贷方</van-col> | |||
<van-col :span="3">方向</van-col> | |||
<van-col :span="4">余额</van-col> | |||
</van-row> | |||
<div class="content_m"> | |||
<van-row v-for="(item,index) in tableList" :key="index"> | |||
<van-col :span="9" class="zy"> | |||
<span>{{item.voucherSummary}}</span> | |||
</van-col> | |||
<van-col :span="4" class="je">{{item.jieAmount}}</van-col> | |||
<van-col :span="4" class="je">{{item.daiAmount}}</van-col> | |||
<van-col :span="3" class="km">{{item.balanceDirection}}</van-col> | |||
<van-col :span="4" class="je">{{item.balance}}</van-col> | |||
</van-row> | |||
<!-- <van-row > | |||
<van-col :span="9" class="zy">摘要</van-col> | |||
<van-col :span="4" class="je">200.00</van-col> | |||
<van-col :span="4" class="je">20000.00</van-col> | |||
<van-col :span="3" class="km">借</van-col> | |||
<van-col :span="4" class="je">200.00</van-col> | |||
</van-row> --> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<!--开始日期--> | |||
<van-action-sheet v-model="dateObj.startVisbile" duration="0.2" > | |||
<van-datetime-picker | |||
v-model="dateObj.startDate" | |||
title="选择日期" | |||
:min-date="dateObj.minDate" | |||
:max-date="dateObj.maxDate" | |||
@confirm="startConfirm" | |||
@cancel ="startCancel" | |||
type="year-month" | |||
/> | |||
</van-action-sheet> | |||
<!--结束日期--> | |||
<van-action-sheet v-model="dateObj.endVisbile" duration="0.2" > | |||
<van-datetime-picker | |||
v-model="dateObj.endDate" | |||
title="选择日期" | |||
:min-date="dateObj.minDate" | |||
:max-date="dateObj.maxDate" | |||
@confirm="endConfirm" | |||
@cancel ="startCancel" | |||
type="year-month" | |||
/> | |||
</van-action-sheet> | |||
<!--科目选择--> | |||
<van-action-sheet v-model="dateObj.subjectVisbile" duration="0.2"> | |||
<van-cascader | |||
v-model="cascaderValue" | |||
title="请选择所在科目" | |||
:options="subjectsTree" | |||
@close="dateObj.subjectVisbile = false" | |||
@finish="onFinish" | |||
:field-names="fieldNames" | |||
@change="onChangeAcidentArea" | |||
/> | |||
</van-action-sheet> | |||
</div> | |||
</template> | |||
<script> | |||
import { subjectData ,getLoginBook,listNormalDetails} from "@/api/sunVillage_info/fixedAssets"; | |||
export default { | |||
name: "detailedLedger", | |||
data() { | |||
return{ | |||
//数据 | |||
tableList:[], | |||
// 查询参数 | |||
queryParams: { | |||
startDate:'', //开始日期 | |||
endDate:'', //结束日期 | |||
startSubjectId:'', //开始科目 | |||
endSubjectId:'', //结束科目 | |||
startSubjectLevel: 1, | |||
endSubjectLevel: 4, | |||
filterZero: true, | |||
includeNonVoucher: false, | |||
groupBySubject: true | |||
}, | |||
//日期相关 | |||
dateObj:{ | |||
//开始日期-弹窗显隐 | |||
startVisbile:false, | |||
startDate: new Date(), | |||
minDate:new Date(2018, 0, 1), | |||
maxDate:new Date(2028, 5, 1), | |||
//结束日期-弹窗显隐 | |||
endVisbile:false, | |||
endDate:new Date(), | |||
//科目选择 | |||
subjectVisbile:false | |||
}, | |||
subjectText:'', //科目页面显示 | |||
SubjectsList:[], //科目选项 | |||
subjectsTree: [], //会计科目显示列表(树) | |||
cascaderValue:"", //科目选择 | |||
fieldNames: { | |||
text: 'label', | |||
value: 'subjectId', | |||
children: 'children', | |||
}, | |||
subjectYear:'' | |||
} | |||
}, | |||
mounted(){ | |||
//初始化账套 | |||
this.initLoginBook(); | |||
this.initAxios() | |||
}, | |||
methods:{ | |||
initLoginBook(){ | |||
getLoginBook().then((res) => { | |||
if (res.code == 200) { | |||
let currentDays = res.data.currentDay; | |||
if (currentDays == null) { | |||
this.$notify({ | |||
message:'当前账套未开启!', | |||
type: 'error' | |||
}); | |||
return false; | |||
} | |||
this.$set(this.queryParams, "startDate", currentDays); | |||
this.$set(this.queryParams, "endDate", currentDays); | |||
let dataArr = currentDays.split('-') | |||
this.$set(this.dateObj, "startDate", new Date(dataArr[0], dataArr[1]-1), 1); | |||
this.$set(this.dateObj, "endDate", new Date(dataArr[0], dataArr[1]-1), 1); | |||
this.subjectYear = (currentDays.substr(0, 4)); | |||
} | |||
}) | |||
}, | |||
initAxios(){ | |||
//获取会计科目列表数据 | |||
this.getDicts("subject_type").then((resp) => { | |||
subjectData({year:this.subjectYear}).then((res) => { | |||
res.rows.forEach((x) => { | |||
x.label = x.subjectId + ' ' + x.subjectName | |||
}); | |||
this.SubjectsList = res.rows; | |||
let curObj = res.rows[0]; | |||
if(res.rows.length>0){ | |||
this.subjectText = curObj.label; | |||
this.queryParams.startSubjectId = curObj.subjectId; | |||
this.queryParams.endSubjectId = curObj.subjectId; | |||
this.cascaderValue = curObj.subjectId; | |||
this.initPage() | |||
this.makeSubjectsTree(res.rows, resp.data); | |||
}else{ | |||
this.subjectText = '暂无数据'; | |||
} | |||
}); | |||
}); | |||
}, | |||
subjectClick(){ | |||
this.dateObj.subjectVisbile = true | |||
}, | |||
makeSubjectsTree(SubjectsList, subjectTypes) { | |||
let func = (pid) => { | |||
let arr = null; | |||
for(let v of SubjectsList) | |||
{ | |||
let parentId = v.parentId || v.subjectId.substr(0, v.subjectId.length - 3) || null; | |||
if(parentId == pid) | |||
{ | |||
if(!arr) arr = []; | |||
let a = func(v.subjectId); | |||
if(a) | |||
v.children = a; | |||
v.label = v.subjectId + ' ' + v.subjectNameAll; | |||
v.is_last = 'Y'; | |||
v.disabled = false; | |||
arr.push(v); | |||
} | |||
} | |||
return arr; | |||
}; | |||
let res = func(null); | |||
let r = []; | |||
res.forEach((x) => { | |||
let subjectIdStart = x.subjectId[0]; | |||
let item = r.find((y) => y.subjectId == subjectIdStart); | |||
if(!item) | |||
{ | |||
let type = subjectTypes.find((y) => y.dictValue == subjectIdStart); | |||
if(!type) | |||
return; | |||
item = { | |||
subjectId: type.dictValue, | |||
label: type.dictLabel, | |||
sortFlag: type.dictSort, | |||
is_last: 'N', | |||
subjectNameAll: '', | |||
children: [], | |||
disabled: true | |||
}; | |||
r.push(item); | |||
} | |||
item.children.push(x); | |||
}); | |||
r.sort((a, b) => a.dictSort - b.dictSort); | |||
// console.log(r) | |||
this.subjectsTree = r; | |||
}, | |||
initPage(){ | |||
listNormalDetails(this.queryParams).then((res)=>{ | |||
if(res.code == 200){ | |||
let content = res.rows; | |||
if(content.length>0){ | |||
this.tableList = content[0].list; | |||
}else{ | |||
this.tableList = [] | |||
} | |||
} | |||
}) | |||
}, | |||
subjectNameFun(num){ | |||
let endNum = num.split("-"); | |||
this.$router.push({ | |||
path: "/yinnong/detailedVoucher", | |||
query: { | |||
vocherId: endNum[1], | |||
num:encodeURI(num) | |||
}, | |||
}); | |||
}, | |||
onFinish({ selectedOptions }){ | |||
let lastArr = selectedOptions[selectedOptions.length-1]; | |||
this.queryParams.startSubjectId = lastArr.subjectId | |||
this.queryParams.endSubjectId = lastArr.subjectId | |||
this.subjectText = lastArr.label; | |||
this.initPage(); | |||
this.dateObj.subjectVisbile = false | |||
}, | |||
onChangeAcidentArea(aaa){ | |||
// console.log(aaa) | |||
}, | |||
//点击开始日期--显示弹窗 | |||
startDateClick(){ | |||
this.dateObj.startVisbile = true; | |||
}, | |||
//弹窗-开始日期-确定 | |||
startConfirm(value){ | |||
let years = this.format(value,'yyyy'); | |||
let months = this.format(value,'MM'); | |||
this.queryParams.startDate = years+'-'+months; | |||
this.dateObj.startVisbile = false; | |||
this.initPage(); | |||
}, | |||
//弹窗-开始日期-取消 | |||
startCancel(){ | |||
this.dateObj.startVisbile = false; | |||
this.dateObj.endVisbile = false; | |||
}, | |||
//点击结束日期-显示弹窗 | |||
endDateClick(){ | |||
this.dateObj.endVisbile = true; | |||
}, | |||
//弹窗--结束日期-确定 | |||
endConfirm(value){ | |||
let years = this.format(value,'yyyy'); | |||
let months = this.format(value,'MM'); | |||
this.queryParams.endDate = years+'-'+months; | |||
this.dateObj.endVisbile = false; | |||
this.initPage(); | |||
} | |||
} | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.home_wrapper{ | |||
background: #e9e9e9; | |||
min-height: 100vh; | |||
width: 100vw; | |||
.header_main { | |||
height: 116px; | |||
background: url('../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||
background-size: 100% 100%; | |||
position: fixed; | |||
top: 0; | |||
left: 0; | |||
width: 100%; | |||
font-size: 36px; | |||
line-height: 116px; | |||
text-align: center; | |||
color: #fff; | |||
position: relative; | |||
.return_btn { | |||
width: 24px; | |||
height: 43.2px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||
background-size: 20px 36px; | |||
position: absolute; | |||
left: 38px; | |||
top: 36px; | |||
} | |||
} | |||
.period_main{ | |||
padding:28px 22px 0; | |||
display: flex; | |||
align-items: center; | |||
.bt_title{ | |||
display: flex; | |||
align-items: center; | |||
margin-right: 15px; | |||
.icon{ | |||
width: 50px; | |||
height: 50px; | |||
border-radius: 50%; | |||
box-shadow: 4px 0px 7px rgba(63, 68, 75, 0.1); | |||
background:#2facfe url('../../assets/images/sunVillage_info/list_icon_13.png') center center no-repeat; | |||
background-size: 29px 25px; | |||
margin-right: 12px; | |||
} | |||
.title{ | |||
font-size: 30px; | |||
color: #2facfe; | |||
} | |||
} | |||
.calendar_block{ | |||
flex: 1; | |||
border-radius: 8px; | |||
box-shadow: 4px 4px 7px rgba(63, 68, 75, 0.1); | |||
background: #fff; | |||
height: 64px; | |||
font-size: 30px; | |||
display: flex; | |||
align-items: center; | |||
letter-spacing: 2px; | |||
justify-content: center; | |||
} | |||
.to{ | |||
width: 68px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
font-size: 30px; | |||
color: #868686; | |||
} | |||
} | |||
.subject_main{ | |||
padding:20px 22px 0; | |||
display: flex; | |||
align-items: center; | |||
.bt_title{ | |||
display: flex; | |||
align-items: center; | |||
margin-right: 15px; | |||
.icon{ | |||
width: 50px; | |||
height: 50px; | |||
border-radius: 50%; | |||
box-shadow: 4px 0px 7px rgba(63, 68, 75, 0.1); | |||
background:#2facfe url('../../assets/images/sunVillage_info/list_icon_13.png') center center no-repeat; | |||
background-size: 29px 25px; | |||
margin-right: 12px; | |||
} | |||
.title{ | |||
font-size: 30px; | |||
color: #2facfe; | |||
} | |||
} | |||
.subject_block{ | |||
flex: 1; | |||
border-radius: 8px; | |||
box-shadow: 4px 4px 7px rgba(63, 68, 75, 0.1); | |||
background: #fff; | |||
height: 64px; | |||
display: flex; | |||
padding:0 26px 0 22px; | |||
align-items: center; | |||
justify-content: space-between; | |||
.title{ | |||
width: 475px; | |||
height: 64px; | |||
line-height: 64px; | |||
font-size: 30px; | |||
white-space: nowrap; | |||
overflow: hidden; | |||
text-overflow: ellipsis; | |||
color: #2b2b2b; | |||
} | |||
.xs_icon{ | |||
width: 11px; | |||
height: 23px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_12.png') center center no-repeat; | |||
background-size: 100% 100%; | |||
} | |||
} | |||
} | |||
.center_box{ | |||
margin-left: 22px; | |||
display: flex; | |||
margin-top: 22px; | |||
background: #fff; | |||
border-top-left-radius: 8px; | |||
border-bottom-left-radius: 8px; | |||
.vocher_name{ | |||
width: 405px; | |||
.head_m{ | |||
height: 110px; | |||
background: #2facfe; | |||
border-radius: 8px; | |||
.year_m{ | |||
border-right: 1px solid #fff; | |||
.year_text{ | |||
height: 56px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
color: #fff; | |||
font-size: 30px; | |||
} | |||
.unit_m{ | |||
height: 54px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
padding-bottom: 10px; | |||
.ubs{ | |||
width: 94px; | |||
height: 43px; | |||
background: #cbeaff; | |||
font-size: 30px; | |||
color: #1a84c9; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
border-radius: 6px; | |||
&:nth-child(1){ | |||
margin-right: 12px; | |||
} | |||
} | |||
} | |||
} | |||
.credential_m{ | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
color: #fff; | |||
font-size: 30px; | |||
height: 110px; | |||
} | |||
} | |||
.vocher_mTitle{ | |||
background: #d7e8f3; | |||
.van-col{ | |||
height: 84px; | |||
font-size: 30px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
border-right: 1px solid #fff; | |||
.pz_tx{ | |||
color: #278dff; | |||
padding-bottom: 8px; | |||
border-bottom: 1px solid #278dff; | |||
} | |||
} | |||
&:nth-child(2n-1){ | |||
background: #e3f4ff; | |||
} | |||
} | |||
} | |||
.vocher_content{ | |||
flex: 1; | |||
overflow:hidden; | |||
overflow-x: scroll; | |||
// white-space:nowrap; | |||
display: -webkit-box; | |||
-webkit-overflow-scrolling: touch; | |||
.vocher_cmain{ | |||
width: 1200px; | |||
.head_m{ | |||
.van-col{ | |||
height: 110px; | |||
font-size: 30px; | |||
color: #2facfe; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
border-right: 1px solid #bfbfbf; | |||
&:last-child{ | |||
border-right: 0; | |||
} | |||
} | |||
} | |||
.content_m{ | |||
.van-row{ | |||
&:nth-child(2n-1){ | |||
background: #e9e9e9; | |||
} | |||
} | |||
.van-col{ | |||
height: 84px; | |||
font-size: 30px; | |||
padding:0 22px; | |||
display: flex; | |||
align-items: center; | |||
border-right: 1px solid #bfbfbf; | |||
&:last-child{ | |||
border-right: 0 none; | |||
} | |||
&.zy{ | |||
display: flex; | |||
align-items: center; | |||
span{ | |||
position: relative; | |||
overflow: hidden; | |||
text-overflow: -o-ellipsis-lastline; | |||
text-overflow: ellipsis; | |||
display: -webkit-box; | |||
-webkit-line-clamp: 2; | |||
line-clamp: 2; | |||
-webkit-box-orient: vertical; | |||
} | |||
} | |||
&.je{ | |||
justify-content: flex-end; | |||
} | |||
&.km{ | |||
justify-content: center; | |||
} | |||
} | |||
} | |||
} | |||
} | |||
} | |||
} | |||
</style> |
@@ -0,0 +1,632 @@ | |||
<template> | |||
<div class="home_wrapper"> | |||
<div class="header_main"> | |||
科目余额表 | |||
<div class="return_btn" @click="onClickLeft"></div> | |||
<!-- <div class="add_btn" v-show="showBtn" @click="goAdd"></div>--> | |||
</div> | |||
<div class="search_info"> | |||
<div class="date_box" @click="showPickerTime = true"> | |||
<img src="../../assets/images/sunVillage_info/date_icon.png"> | |||
<p>{{date}}</p> | |||
</div> | |||
<van-popup v-model="showPickerTime" position="bottom"> | |||
<van-datetime-picker | |||
v-model="currentDate" | |||
type="year-month" | |||
title="选择年月" | |||
:min-date="minDate" | |||
:max-date="maxDate" | |||
@confirm="onConfirm" | |||
@cancel="showPicker = false" | |||
:formatter="formatter" | |||
/> | |||
</van-popup> | |||
<div class="search_block"> | |||
<i class="icon"></i> | |||
<input readonly type="text" class="ipt" v-model="subjectName" placeholder="请选择科目查询" @click="visible=true"> | |||
<i class="delete_icon" v-show="subjectName" @click="emptyInput"></i> | |||
</div> | |||
<!-- <div class="total">共{{listLength}}个资产</div> @input="getSearch"--> | |||
</div> | |||
<div class="radio_box"> | |||
<van-checkbox v-model="queryParams.showSubSubject" @change="showSub" checked-color="#2facfe">显示明细</van-checkbox> | |||
<div class="total">共{{listLength}}条</div> | |||
</div> | |||
<div class="center_box"> | |||
<div class="name_box"> | |||
<van-row> | |||
<van-col :span="24">科目编码/科目名称</van-col> | |||
</van-row> | |||
<van-row v-for="(item,index) in applicationList" :key="index"> | |||
<van-col :span="24">{{item.subjectId}} {{item.subjectName}}</van-col> | |||
</van-row> | |||
<div class="name_bg"></div> | |||
<img src="../../assets/images/sunVillage_info/name_icon.png" class="name_icon"/> | |||
</div> | |||
<div class="right_box"> | |||
<div class="right_box_box"> | |||
<van-row> | |||
<van-col :span="8"> | |||
<p>期初余额</p> | |||
<div class="yue_type"> | |||
<p>借方</p> | |||
<p>贷方</p> | |||
</div> | |||
</van-col> | |||
<van-col :span="8"> | |||
<p>本期发生</p> | |||
<div class="yue_type"> | |||
<p>借方</p> | |||
<p>贷方</p> | |||
</div> | |||
</van-col> | |||
<van-col :span="8"> | |||
<p>期末余额</p> | |||
<div class="yue_type"> | |||
<p>借方</p> | |||
<p>贷方</p> | |||
</div> | |||
</van-col> | |||
</van-row> | |||
<van-row v-for="(item,index) in applicationList" :key="index"> | |||
<van-col :span="4">{{item.qcjfye}}</van-col> | |||
<van-col :span="4">{{item.qcdfye}}</van-col> | |||
<van-col :span="4">{{item.bqjffs}}</van-col> | |||
<van-col :span="4">{{item.bqdffs}}</van-col> | |||
<van-col :span="4">{{item.qmjffs}}</van-col> | |||
<van-col :span="4">{{item.qmdffs}}</van-col> | |||
</van-row> | |||
</div> | |||
</div> | |||
<div class="clear"></div> | |||
</div> | |||
<SubjectTreeChooser :visible.sync="visible" @select="getSearch" v-model="queryParams.startSubjectId" :can-select-non-leaf="true" height="480px"></SubjectTreeChooser> | |||
</div> | |||
</template> | |||
<script> | |||
import { trailBalanceList , getLoginBook } from "@/api/sunVillage_info/fixedAssets"; | |||
import SubjectTreeChooser from "@/components/form/SubjectTreeChooser"; | |||
import Cookies from "js-cookie"; | |||
import request from '@/utils/request' | |||
export default { | |||
name: "certificateList", | |||
components: { SubjectTreeChooser }, | |||
data() { | |||
return { | |||
subjectName:'', | |||
visible:false, | |||
subjectId:'', | |||
radio:'1', | |||
applicationList:[], | |||
applicationListSecond:[], | |||
assetStatusOptions:[], | |||
auditStatus:[], | |||
loading: false, | |||
finished: false, | |||
show: false, | |||
showTab: false, | |||
showPickerTime: false, | |||
fileList:[], | |||
listLength:'0', | |||
searchInput:'', | |||
queryParams:{ | |||
pageNum:1, | |||
pageSize:999, | |||
startDate:'', | |||
startSubjectId:'', | |||
endSubjectId:'', | |||
showSubSubject:false | |||
}, | |||
uploadFiles1:[], | |||
projectId:'', | |||
projectIndex:'', | |||
showBtn:true, | |||
yearMonth:[], | |||
deptName:'', | |||
minDate: new Date(2020, 0, 1), | |||
maxDate: new Date(2025, 10, 1), | |||
currentDate: new Date(), | |||
date:'' | |||
}; | |||
}, | |||
created() { | |||
getLoginBook().then((res) => { | |||
if (res.code == 200) { | |||
if (res.data.currentDay != null || res.data.startDay != null){ | |||
let resDate = res.data.currentDay != null ? res.data.currentDay : res.data.startDay != null ? res.data.startDay : this.format(new Date(),'yyyy-MM') | |||
this.queryParams.startDate = resDate; | |||
let date = resDate.split('-'); | |||
this.date = date[0] + '年' + date[1] + '月'; | |||
this.currentDate = new Date(date[0], date[1]-1, 1) | |||
} | |||
} | |||
}); | |||
this.getList(); | |||
}, | |||
methods: { | |||
getList(){ | |||
var _this = this; | |||
setTimeout(() => { | |||
console.log(_this.queryParams) | |||
trailBalanceList(_this.queryParams).then(response => { | |||
_this.listLength = response.total; | |||
response.rows.map(res=>{ | |||
res.bqjffs = Number(res.bqjffs).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => { | |||
return $1 + ","; }).replace(/\.$/, ""); | |||
res.bqdffs = Number(res.bqdffs).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => { | |||
return $1 + ","; }).replace(/\.$/, ""); | |||
res.qcjfye = Number(res.qcjfye).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => { | |||
return $1 + ","; }).replace(/\.$/, ""); | |||
res.qcdfye = Number(res.qcdfye).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => { | |||
return $1 + ","; }).replace(/\.$/, ""); | |||
res.qmjffs = Number(res.qmjffs).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => { | |||
return $1 + ","; }).replace(/\.$/, ""); | |||
res.qmdffs = Number(res.qmdffs).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => { | |||
return $1 + ","; }).replace(/\.$/, ""); | |||
}) | |||
_this.applicationList = response.rows; | |||
if(_this.applicationList.length >= response.total){ | |||
_this.finished = true; | |||
return; | |||
}else{ | |||
_this.loading = false; | |||
_this.queryParams.pageNum += 1 ; | |||
} | |||
}); | |||
}, 1000); | |||
}, | |||
onConfirm(time) { | |||
this.date = this.format(time,'yyyy年MM月'); | |||
this.queryParams.startDate = this.format(time,'yyyy-MM'); | |||
this.getList(); | |||
this.showPickerTime = false; | |||
}, | |||
formatter(type, val) { | |||
if (type === 'year') { | |||
return `${val}年`; | |||
} else if (type === 'month') { | |||
return `${val}月`; | |||
} | |||
return val; | |||
}, | |||
getSearch(val){ | |||
console.log(val) | |||
this.subjectName = val.subjectId + " " + val.subjectName; | |||
this.queryParams.endSubjectId = this.queryParams.startSubjectId; | |||
this.getList(); | |||
}, | |||
showSub(val){ | |||
console.log(val) | |||
this.queryParams.showSubSubject = val; | |||
this.getList(); | |||
}, | |||
emptyInput(){ | |||
this.subjectName = ''; | |||
this.queryParams.endSubjectId = ''; | |||
this.queryParams.startSubjectId = ''; | |||
this.getList(); | |||
} | |||
}, | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
/deep/ .van-radio__label{ | |||
font-size: 14PX; | |||
color: #2facfe; | |||
} | |||
.radio_box{ | |||
display: flex; | |||
justify-content: space-between; | |||
align-items: center; | |||
padding:20px 23px; | |||
} | |||
.date_box{ | |||
display: flex; | |||
align-items: center; | |||
img{ | |||
width: 30PX; | |||
border-radius: 100%; | |||
box-shadow: 0px 6px 10px rgba(63,68,75,0.5); | |||
} | |||
p{ | |||
font-size: 14PX; | |||
margin-left: 5PX; | |||
color: #2facfe; | |||
} | |||
} | |||
.search_info{ | |||
padding:20px 23px; | |||
display: flex; | |||
justify-content: space-between; | |||
align-items: center; | |||
.search_block{ | |||
height: 59px; | |||
width: 450px; | |||
border-radius: 59px; | |||
background: #fff; | |||
display: flex; | |||
padding-right: 35px; | |||
align-items: center; | |||
box-shadow: 0px 6px 5px rgba(63,68,75,0.2); | |||
.icon{ | |||
width: 30px; | |||
height: 30px; | |||
background: url('../../assets/images/sunVillage_info/fixedAssets_icon_1.png') no-repeat; | |||
background-size: 100% 100%; | |||
display: block; | |||
margin:0 8px 0 26px; | |||
} | |||
.delete_icon{ | |||
width: 15PX; | |||
height: 15PX; | |||
background: url('../../assets/images/sunVillage_info/delete_icon_input.png') no-repeat; | |||
background-size: 100% 100%; | |||
display: block; | |||
margin:0 8px 0 26px; | |||
} | |||
.ipt{ | |||
flex: 1; | |||
font-size: 26px; | |||
background: none; | |||
border:0 none; | |||
line-height: 59px; | |||
} | |||
} | |||
} | |||
.total{ | |||
font-size: 14PX; | |||
color: #858585; | |||
} | |||
.home_wrapper{ | |||
background: #e9e9e9; | |||
min-height: 100vh; | |||
width: 100vw; | |||
.header_main{ | |||
height: 116px; | |||
background: url('../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||
background-size: 100% 100%; | |||
position: fixed; | |||
top: 0; | |||
left: 0; | |||
width: 100%; | |||
font-size: 36px; | |||
line-height: 116px; | |||
text-align: center; | |||
color: #fff; | |||
position: relative; | |||
.return_btn{ | |||
width: 24px; | |||
height: 43.2px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||
background-size: 20px 36px; | |||
position: absolute; | |||
left: 38px; | |||
top: 36px; | |||
} | |||
.add_btn{ | |||
width: 56.4px; | |||
height: 40.8px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat; | |||
background-size: 47px 34px; | |||
position: absolute; | |||
right: 38px; | |||
top: 36px; | |||
} | |||
} | |||
.record_main{ | |||
padding:30px 22px; | |||
.record_det{ | |||
height: 38px; | |||
line-height: 38px; | |||
display: flex; | |||
justify-content:space-between; | |||
.year_l{ | |||
font-size: 30px; | |||
display: flex; | |||
align-items: center; | |||
color: #858585; | |||
.unit{ | |||
padding-left: 5px; | |||
} | |||
.icon{ | |||
width: 23px; | |||
height: 12px; | |||
display: block; | |||
background: url('../../assets/images/sunVillage_info/list_icon_1.png') no-repeat; | |||
background-size: 100% 100%; | |||
margin-bottom: 4px; | |||
margin-right: 8px; | |||
&.zk { | |||
transform: rotate(0deg) | |||
} | |||
&.ss{ | |||
transform: rotate(180deg) | |||
} | |||
} | |||
} | |||
.total_r{ | |||
font-size: 26px; | |||
letter-spacing: 2px; | |||
} | |||
} | |||
.record_list{ | |||
display: flex; | |||
flex-flow: wrap; | |||
margin-top: 12PX; | |||
.flex_block{ | |||
font-size: 30px; | |||
color: #878787; | |||
padding-right: 30px; | |||
&.current{ | |||
color: #4199fe; | |||
font-weight: bold; | |||
} | |||
} | |||
} | |||
} | |||
.list_main{ | |||
padding:0 22px; | |||
.item{ | |||
height: 100px; | |||
border-radius: 30px; | |||
background: #fff; | |||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||
padding:15px 32px; | |||
display: flex; | |||
margin-bottom: 20px; | |||
.info{ | |||
flex:1; | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
.title{ | |||
display: flex; | |||
font-size: 32px; | |||
align-items: center; | |||
height: 58px; | |||
.icon_box{ | |||
width: 34px; | |||
display: block; | |||
height: 30px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_2.png') no-repeat; | |||
background-size: 100% 100%; | |||
margin-right: 10px; | |||
} | |||
.news_title{ | |||
max-width:416px; | |||
overflow: hidden; | |||
white-space: nowrap; | |||
text-overflow: ellipsis; | |||
-o-text-overflow: ellipsis; | |||
} | |||
.tips_mark{ | |||
width: 34px; | |||
height: 34px; | |||
background: #fa0c0c; | |||
border-radius: 8px; | |||
font-size: 24px; | |||
color: #fff; | |||
text-align: center; | |||
line-height: 34px; | |||
margin-left: 10px; | |||
} | |||
} | |||
.red{ | |||
color: #fa0c0c; | |||
} | |||
.green{ | |||
color: #4caf50; | |||
} | |||
.time{ | |||
font-size: 32px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: right; | |||
height: 30px; | |||
margin-top: 6px; | |||
.icon_time{ | |||
width: 25px; | |||
height: 25px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_4.png') no-repeat; | |||
background-size: 100% 100%; | |||
margin-right: 10px; | |||
} | |||
} | |||
} | |||
.operation{ | |||
flex: 1; | |||
display: flex; | |||
align-items: center; | |||
justify-content: flex-end; | |||
text-align: right; | |||
.opera_btn{ | |||
width: 52px; | |||
height: 52px; | |||
border-radius: 50%; | |||
display: flex; | |||
align-items: center; | |||
justify-content:center; | |||
&.delete{ | |||
background:#df0707; | |||
margin-left: 28px; | |||
.icon{ | |||
width: 22px; | |||
height: 29px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_7.png') no-repeat; | |||
background-size: 100% 100%; | |||
display: block; | |||
} | |||
} | |||
&.edit{ | |||
background: #79cf13; | |||
.icon { | |||
width: 26px; | |||
height: 25px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_6.png') no-repeat; | |||
background-size: 100% 100%; | |||
display: block; | |||
} | |||
} | |||
&.view{ | |||
background: #3494ff; | |||
.icon { | |||
width: 29px; | |||
height: 21px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_3.png') no-repeat; | |||
background-size: 100% 100%; | |||
display: block; | |||
} | |||
} | |||
} | |||
} | |||
} | |||
} | |||
.bottom_tips{ | |||
font-size: 24px; | |||
color: #a7a6a6; | |||
text-align: center; | |||
margin-top: 32px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_8.png') center center no-repeat; | |||
background-size: 260px 2px; | |||
.xs{ | |||
padding:0 8px; | |||
background: #e9e9e9; | |||
} | |||
} | |||
.banner { | |||
display: flex; | |||
background:#3494ff; | |||
color:#fff; | |||
text-align: center; | |||
margin:3%; | |||
border-radius: 10PX; | |||
} | |||
.banner_tabs{ | |||
flex:1; | |||
padding:10PX 0; | |||
font-size: 16PX; | |||
div:nth-child(2){ | |||
font-size: 14PX; | |||
margin-top: 5PX; | |||
} | |||
} | |||
} | |||
.top_head_title{ | |||
font-size: 16PX; | |||
text-align: center; | |||
padding: 15PX 0; | |||
} | |||
.name_box{ | |||
float: left; | |||
width: 180PX; | |||
position: relative; | |||
.name_bg{ | |||
background-color: rgba(47,172,254,0.2); | |||
width: 180PX; | |||
height: 100%; | |||
position: absolute; | |||
top: 0; | |||
} | |||
.name_icon{ | |||
position: absolute; | |||
top: 60PX; | |||
left: 50%; | |||
transform: translateX(-50%); | |||
} | |||
.van-row:nth-child(odd){ | |||
.van-col { | |||
background-color: #ffffff; | |||
} | |||
} | |||
.van-row:nth-child(1){ | |||
border-top-left-radius: 10PX; | |||
border-bottom-left-radius: 10PX; | |||
background-color: #ffffff; | |||
.van-col { | |||
background-color: #2facfe; | |||
color: #ffffff; | |||
border-radius: 10PX; | |||
line-height: 60PX; | |||
text-align: center; | |||
} | |||
} | |||
.van-col{ | |||
font-size: 16PX; | |||
padding: 0PX 5PX; | |||
text-align: left; | |||
line-height: 40PX; | |||
display: -webkit-box; | |||
-webkit-box-orient: vertical; | |||
-webkit-line-clamp: 1; | |||
word-break: break-all; | |||
overflow: hidden; | |||
} | |||
} | |||
.center_box{ | |||
padding-left: 3%; | |||
} | |||
.right_box{ | |||
float: left; | |||
width: calc(100% - 180PX); | |||
overflow:hidden; | |||
overflow-x: scroll; | |||
white-space:nowrap; | |||
display: -webkit-box; | |||
-webkit-overflow-scrolling: touch; | |||
.right_box_box{ | |||
width: 600PX; | |||
} | |||
.van-row:nth-child(odd){ | |||
.van-col{ | |||
background-color: #ffffff; | |||
} | |||
} | |||
.van-row:nth-child(1){ | |||
.van-col{ | |||
color: #2facfe; | |||
height: 60PX; | |||
text-align: center; | |||
line-height: 30PX; | |||
border-right: 1px solid #ccc; | |||
} | |||
} | |||
.van-col{ | |||
font-size: 16PX; | |||
text-align: right; | |||
height: 40PX; | |||
line-height: 40PX; | |||
&:nth-child(2n){ | |||
border-right: 1px solid #ccc; | |||
} | |||
} | |||
.yue_type{ | |||
display: flex; | |||
border-top: 1px solid #2facfe; | |||
p{ | |||
width: 50%; | |||
line-height: 30PX; | |||
color: #333333; | |||
} | |||
} | |||
} | |||
.clear{ | |||
clear: both; | |||
} | |||
</style> |
@@ -0,0 +1,388 @@ | |||
<template> | |||
<div class="home_wrapper"> | |||
<div class="head_main"> | |||
<div class="header_main"> | |||
记账凭证 | |||
<div class="return_btn" @click="onClickLeft"></div> | |||
</div> | |||
<div class="Account_sleeve"> | |||
<div class="flex_block"> | |||
<div class="x_m"></div> | |||
<div class="title">账套:</div> | |||
<div class="desc">{{$store.state.user.bookName}}</div> | |||
</div> | |||
<div class="flex_block"> | |||
<div class="x_m"></div> | |||
<div class="title">日期:</div> | |||
<div class="desc">{{vaocherObj.bookDate}}</div> | |||
</div> | |||
<div class="flex_block"> | |||
<div class="x_m"></div> | |||
<div class="title">凭证号:</div> | |||
<div class="desc">{{voucherNum}}号</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="vocher_mian"> | |||
<div class="minimum_hd">{{vaocherObj.detailList.length}}条</div> | |||
<!--1--> | |||
<div class="vocher_block" v-for="(item,index) in vaocherObj.detailList" :key="index"> | |||
<div class="flex_block"> | |||
<div class="m_title"> | |||
<div class="icon">1</div> | |||
摘要 | |||
</div> | |||
<div class="m_cont">{{item.voucherSummary}}</div> | |||
</div> | |||
<div class="flex_block"> | |||
<div class="m_title">会计科目</div> | |||
<div class="m_cont">{{ item.subjectNameAll }}</div> | |||
</div> | |||
<div class="flex_block"> | |||
<div class="m_title">借方金额</div> | |||
<div class="m_cont money" v-if="item.jieAmount">¥ {{item.jieAmount}} 元</div> | |||
</div> | |||
<div class="flex_block"> | |||
<div class="m_title">贷方金额</div> | |||
<div class="m_cont money" v-if="item.daiAmount">¥ {{item.daiAmount}} 元</div> | |||
</div> | |||
</div> | |||
<!--1--> | |||
<!-- <div class="vocher_block"> | |||
<div class="flex_block"> | |||
<div class="m_title"> | |||
<div class="icon">1</div> | |||
摘要 | |||
</div> | |||
<div class="m_cont">购买设备</div> | |||
</div> | |||
<div class="flex_block"> | |||
<div class="m_title">会计科目</div> | |||
<div class="m_cont">财政资金-人居环境整治</div> | |||
</div> | |||
<div class="flex_block"> | |||
<div class="m_title">借方金额</div> | |||
<div class="m_cont money">¥ 10,000.00 元</div> | |||
</div> | |||
<div class="flex_block"> | |||
<div class="m_title">贷方金额</div> | |||
<div class="m_cont money">¥ 10,000.00 元</div> | |||
</div> | |||
</div> --> | |||
</div> | |||
<div class="vocher_footer"> | |||
<div class="total_wrap">合计:<span class="money">{{capitalAmount}}</span></div> | |||
<div class="personnel_wrap"> | |||
<div class="f_block">制单员:{{ vaocherObj.preparedBy }}</div> | |||
<div class="f_block">审核员:{{ vaocherObj.checkedBy }}</div> | |||
</div> | |||
</div> | |||
</div> | |||
</template> | |||
<script> | |||
import { voucherDetail } from "@/api/sunVillage_info/fixedAssets"; | |||
export default { | |||
name: "sunVillageInfoVoucher", | |||
data() { | |||
return { | |||
//凭证号 | |||
voucherId:'', | |||
voucherNum:'', | |||
//凭证数据 | |||
vaocherObj:{ | |||
detailList:[] | |||
}, | |||
//大写总金额 | |||
capitalAmount:'' | |||
} | |||
}, | |||
mounted(){ | |||
this.voucherId = this.$route.query.vocherId; | |||
this.voucherNum = decodeURI(this.$route.query.num); | |||
this.initAxiox() | |||
}, | |||
methods:{ | |||
initAxiox(){ | |||
voucherDetail({id:this.voucherId}).then((res)=>{ | |||
if(res.code == 200){ | |||
let content = res.data; | |||
this.vaocherObj = content; | |||
let totalAmount = 0; | |||
if(content.detailList.length && content.detailList.length>0){ | |||
content.detailList.forEach((v,i)=>{ | |||
totalAmount +=v.jieAmount | |||
}) | |||
} | |||
this.capitalAmount = this.convertCurrency(totalAmount); | |||
} | |||
}) | |||
}, | |||
convertCurrency(money) { | |||
//汉字的数字 | |||
var cnNums = new Array( | |||
"零", | |||
"壹", | |||
"贰", | |||
"叁", | |||
"肆", | |||
"伍", | |||
"陆", | |||
"柒", | |||
"捌", | |||
"玖" | |||
); | |||
//基本单位 | |||
var cnIntRadice = new Array("", "拾", "佰", "仟"); | |||
//对应整数部分扩展单位 | |||
var cnIntUnits = new Array("", "万", "亿", "兆"); | |||
//对应小数部分单位 | |||
var cnDecUnits = new Array("角", "分", "毫", "厘"); | |||
//整数金额时后面跟的字符 | |||
var cnInteger = "整"; | |||
//整型完以后的单位 | |||
var cnIntLast = "元"; | |||
//最大处理的数字 | |||
var maxNum = 999999999999999.9999; | |||
//金额整数部分 | |||
var integerNum; | |||
//金额小数部分 | |||
var decimalNum; | |||
//输出的中文金额字符串 | |||
var chineseStr = ""; | |||
//分离金额后用的数组,预定义 | |||
var parts; | |||
if (money == "") { | |||
return ""; | |||
} | |||
money = parseFloat(money); | |||
if (money >= maxNum) { | |||
//超出最大处理数字 | |||
return ""; | |||
} | |||
if (money == 0) { | |||
chineseStr = cnNums[0] + cnIntLast + cnInteger; | |||
return chineseStr; | |||
} | |||
//转换为字符串 | |||
money = money.toString(); | |||
if (money.indexOf(".") == -1) { | |||
integerNum = money; | |||
decimalNum = ""; | |||
} else { | |||
parts = money.split("."); | |||
integerNum = parts[0]; | |||
decimalNum = parts[1].substr(0, 4); | |||
} | |||
//获取整型部分转换 | |||
if (parseInt(integerNum, 10) > 0) { | |||
var zeroCount = 0; | |||
var IntLen = integerNum.length; | |||
for (var i = 0; i < IntLen; i++) { | |||
var n = integerNum.substr(i, 1); | |||
var p = IntLen - i - 1; | |||
var q = p / 4; | |||
var m = p % 4; | |||
if (n == "0") { | |||
zeroCount++; | |||
} else { | |||
if (zeroCount > 0) { | |||
chineseStr += cnNums[0]; | |||
} | |||
//归零 | |||
zeroCount = 0; | |||
chineseStr += cnNums[parseInt(n)] + cnIntRadice[m]; | |||
} | |||
if (m == 0 && zeroCount < 4) { | |||
chineseStr += cnIntUnits[q]; | |||
} | |||
} | |||
chineseStr += cnIntLast; | |||
} | |||
//小数部分 | |||
if (decimalNum != "") { | |||
var decLen = decimalNum.length; | |||
for (var i = 0; i < decLen; i++) { | |||
var n = decimalNum.substr(i, 1); | |||
if (n != "0") { | |||
chineseStr += cnNums[Number(n)] + cnDecUnits[i]; | |||
} | |||
} | |||
} | |||
if (chineseStr == "") { | |||
chineseStr += cnNums[0] + cnIntLast + cnInteger; | |||
} else if (decimalNum == "") { | |||
chineseStr += cnInteger; | |||
} | |||
return chineseStr; | |||
}, | |||
} | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.home_wrapper{ | |||
background: #e9e9e9; | |||
min-height: 100vh; | |||
width: 100vw; | |||
.head_main{ | |||
height: 440px; | |||
background: url('../../assets/images/sunVillage_info/vocher_bg.png') no-repeat; | |||
background-size: 100% 100%; | |||
.header_main { | |||
height: 116px; | |||
// position: fixed; | |||
top: 0; | |||
left: 0; | |||
width: 100%; | |||
font-size: 36px; | |||
line-height: 116px; | |||
text-align: center; | |||
color: #fff; | |||
position: relative; | |||
.return_btn { | |||
width: 24px; | |||
height: 43.2px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||
background-size: 20px 36px; | |||
position: absolute; | |||
left: 38px; | |||
top: 36px; | |||
} | |||
} | |||
.Account_sleeve{ | |||
padding-left: 75px; | |||
margin-top: 20px; | |||
.flex_block{ | |||
padding-left: 30px; | |||
display: flex; | |||
font-size: 30px; | |||
line-height: 30px; | |||
color: #fff; | |||
margin-bottom: 28px; | |||
position: relative; | |||
.x_m{ | |||
position: absolute; | |||
width: 8px; | |||
height: 30px; | |||
left: 0; | |||
top: 0; | |||
background: #fff; | |||
border-radius: 8px; | |||
} | |||
.title{ | |||
width: 125px; | |||
} | |||
} | |||
} | |||
// <div class="Account_sleeve"> | |||
// <div class="flex_block"> | |||
// <div class="title">账套:</div> | |||
// <div class="desc">长山镇李四村经济合作社</div> | |||
// </div> | |||
// <div class="flex_block"> | |||
// <div class="title">日期:</div> | |||
// <div class="desc">2022-02-03</div> | |||
// </div> | |||
// <div class="flex_block"> | |||
// <div class="title">凭证号:</div> | |||
// <div class="desc">记-55号</div> | |||
// </div> | |||
// </div> | |||
} | |||
.vocher_mian{ | |||
margin:-120px 28px 0; | |||
background: #fff; | |||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||
border-radius: 20px; | |||
padding: 40px 40px 60px; | |||
.minimum_hd{ | |||
background: #2FACFE; | |||
padding:0 22px; | |||
height: 50px; | |||
color: #fff; | |||
line-height: 50px; | |||
border-radius: 50px; | |||
font-size: 30px; | |||
display: inline-block; | |||
} | |||
.vocher_block{ | |||
padding-top: 20px; | |||
padding-bottom: 15px; | |||
border-bottom: 1px dashed #DCDCDC; | |||
.flex_block{ | |||
display: flex; | |||
justify-content: space-between; | |||
height: 60px; | |||
font-size: 30px; | |||
.m_title{ | |||
display: flex; | |||
justify-content: center; | |||
align-items: center; | |||
color: #878787; | |||
.icon{ | |||
height: 38px; | |||
width: 38px; | |||
background: #2FACFE; | |||
border-radius: 50%; | |||
color: #fff; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
margin-right: 12px; | |||
} | |||
} | |||
.money{ | |||
color: #E90000; | |||
} | |||
} | |||
} | |||
} | |||
.vocher_footer{ | |||
margin:0 28px; | |||
padding: 38px 0; | |||
font-size: 30px; | |||
border-bottom: 1px dashed #dedede; | |||
.total_wrap{ | |||
margin:0 45px; | |||
// height: 60px; | |||
padding:18px 0; | |||
// line-height: 60px; | |||
display: flex; | |||
align-items: center; | |||
.money{ | |||
color: #f00; | |||
} | |||
} | |||
.personnel_wrap{ | |||
margin:0 45px; | |||
height: 50px; | |||
line-height: 50px; | |||
color: #2FACFE; | |||
justify-content: space-between; | |||
display: flex; | |||
} | |||
// <div class="vocher_footer"> | |||
// <div class="total_wrap">合计:<span class="money">贰万元整</span></div> | |||
// <div class="personnel_wrap"> | |||
// <div class="f_block">制单员:张三</div> | |||
// <div class="f_block">审核员:王五</div> | |||
// </div> | |||
// </div> | |||
} | |||
} | |||
</style> |
@@ -56,7 +56,30 @@ | |||
<van-row class="indexCard"> | |||
<van-cell style="border-radius: 6px;"> | |||
<template #title> | |||
<p style="font-weight: bold;font-size: 18px;display: inline-block">银农支付</p> | |||
<p style="font-weight: bold;font-size: 18px;display: inline-block">财务监管</p> | |||
</template> | |||
</van-cell> | |||
<van-grid :border="false"> | |||
<van-grid-item text="科目余额表" :to="{name:'yinnongListBalanceRanking'}" > | |||
<div class="icon all" slot="default" > | |||
<img src="../../../static/images/onlineHome/icon_Y11.png" alt /> | |||
</div> | |||
<p style="margin-top: 5px;color: #666666;">科目余额表</p> | |||
</van-grid-item> | |||
<van-grid-item text="科目明细账" :to="{name:'yinnongDetailedLedger'}" > | |||
<div class="icon all" slot="default"> | |||
<img src="../../../static/images/onlineHome/icon_Y12.png" alt /> | |||
</div> | |||
<p style="margin-top: 5px;color: #666666;">科目明细账</p> | |||
</van-grid-item> | |||
</van-grid> | |||
</van-row> | |||
<van-row class="indexCard"> | |||
<van-cell style="border-radius: 6px;"> | |||
<template #title> | |||
<p style="font-weight: bold;font-size: 18px;display: inline-block">支出申请</p> | |||
</template> | |||
</van-cell> | |||
<van-grid :border="false"> | |||
@@ -66,24 +89,24 @@ | |||
</div> | |||
<p style="margin-top: 5px;color: #666666;">银行卡转账</p> | |||
</van-grid-item> | |||
<!-- <van-grid-item text="代管转账" :to="{name:'approvalList4'}" >--> | |||
<!-- <div class="icon" slot="default" style="background:#c568f5;" >--> | |||
<!-- <img src="../../../static/images/onlineHome/icon_Y4.png" alt />--> | |||
<!-- </div>--> | |||
<!-- <p style="margin-top: 5px;color: #666666;">代管转账</p>--> | |||
<!-- </van-grid-item>--> | |||
<!-- <van-grid-item text="代管转账" :to="{name:'approvalList4'}" >--> | |||
<!-- <div class="icon" slot="default" style="background:#c568f5;" >--> | |||
<!-- <img src="../../../static/images/onlineHome/icon_Y4.png" alt />--> | |||
<!-- </div>--> | |||
<!-- <p style="margin-top: 5px;color: #666666;">代管转账</p>--> | |||
<!-- </van-grid-item>--> | |||
<van-grid-item text="信用卡还款" :to="{name:'approvalList2'}" > | |||
<div class="icon" slot="default" style="background:#3ac2db;" > | |||
<img src="../../../static/images/onlineHome/icon_Y2.png" alt /> | |||
</div> | |||
<p style="margin-top: 5px;color: #666666;">信用卡还款</p> | |||
</van-grid-item> | |||
<!-- <van-grid-item text="现金提现" :to="{name:'approvalList10'}" >--> | |||
<!-- <div class="icon" slot="default" style="background:#FF6464;" >--> | |||
<!-- <img src="../../../static/images/onlineHome/icon_Y6.png" alt />--> | |||
<!-- </div>--> | |||
<!-- <p style="margin-top: 5px;color: #666666;">现金提现</p>--> | |||
<!-- </van-grid-item>--> | |||
<!-- <van-grid-item text="现金提现" :to="{name:'approvalList10'}" >--> | |||
<!-- <div class="icon" slot="default" style="background:#FF6464;" >--> | |||
<!-- <img src="../../../static/images/onlineHome/icon_Y6.png" alt />--> | |||
<!-- </div>--> | |||
<!-- <p style="margin-top: 5px;color: #666666;">现金提现</p>--> | |||
<!-- </van-grid-item>--> | |||
<van-grid-item text="备付金支出" :to="{name:'approvalList11'}" > | |||
<div class="icon" slot="default" style="background:#7790FE;" > | |||
<img src="../../../static/images/onlineHome/icon_Y7.png" alt /> | |||
@@ -122,6 +145,7 @@ | |||
</van-grid-item> | |||
</van-grid> | |||
</van-row> | |||
<yinnongIndex></yinnongIndex> | |||
</div> | |||
</template> | |||
@@ -261,6 +285,17 @@ | |||
>>> .icon img{ | |||
width:50px; | |||
} | |||
>>> .icon.all{ | |||
width: 80px; | |||
padding: 0; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
} | |||
>>> .icon.all img{ | |||
width: 80px; | |||
/* padding: 0; */ | |||
} | |||
>>> .indexCard{ | |||
margin:2%;width:96%;padding:20px 0;padding:20px 0;border-radius: 6px;box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);background: #fff | |||
} | |||