Browse Source

优化

wulanhaote
庞东旭 2 years ago
parent
commit
2f90ebcdf4
9 changed files with 794 additions and 14 deletions
  1. +43
    -0
      src/api/sunVillage_info/fixedAssets.js
  2. +3
    -2
      src/permission.js
  3. +19
    -1
      src/router/index.js
  4. +1
    -1
      src/views/sunVillage_info/fixedAssets.vue
  5. +136
    -3
      src/views/sunVillage_info/index.vue
  6. +192
    -0
      src/views/sunVillage_info/index_code.vue
  7. +1
    -1
      src/views/sunVillage_info/information.vue
  8. +386
    -0
      src/views/sunVillage_info/list_finance.vue
  9. +13
    -6
      src/views/sunVillage_info/login.vue

+ 43
- 0
src/api/sunVillage_info/fixedAssets.js View File

@@ -102,3 +102,46 @@ export function updateInfo(data) {
data: data
})
}
// 财务公开列表
export function financePublicList(query) {
console.log(query)
return request({
url: '/villageAffairs/public/financePublicList',
method: 'get',
params: query
})
}

//获取区、镇、村地区
export function treeselectByUser(query) {
return request({
url: '/system/dept/treeselectByUser',
method: 'get',
params: query
})
}
//获取账套列表
export function listByDeptId(query) {
return request({
url: '/finance/book/listByDeptId',
method: 'get',
params: query
})
}

// 切换部门
export function changeDept(query) {
return request({
url: '/system/user/changeDept',
method: 'get',
params: query
})
}
// 切换账套
export function changeBook(query) {
return request({
url: '/system/user/changeBook',
method: 'get',
params: query
})
}

+ 3
- 2
src/permission.js View File

@@ -106,14 +106,15 @@ const whiteList = [

//宅基地
'/zjdLogin',
//阳光村务--新
'/sunVillage_info/login', //登录
'/sunVillage_info/index', //首页
'/sunVillage_info/list_tourists', //二页列表-游客
'/sunVillage_info/fixedAssets', //固定资产
'/sunVillage_info/information', //合同信息
'/sunVillage_info/details' //详情页
'/sunVillage_info/details', //详情页
'/sunVillage_info/index_code' //详情页
]

router.beforeEach((to, from, next) => {


+ 19
- 1
src/router/index.js View File

@@ -2840,7 +2840,7 @@ export const constantRoutes = [
path: '/sunVillage_info/index',
name: 'sunVillageInfoIndex',
meta: {
title: '报账员登录',
title: '阳光村务',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/index'], resolve)
@@ -2934,6 +2934,24 @@ export const constantRoutes = [
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/details'], resolve)
},
{ ////阳光村务(新)-- 合同信息
path: '/sunVillage_info/index_code',
name: 'sunVillageInfoIndexCode',
meta: {
title: '阳光村务',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/index_code'], resolve)
},
{ ////阳光村务(新)-- 合同信息
path: '/sunVillage_info/list_finance',
name: 'sunVillageInfoListFinance',
meta: {
title: '财务公开榜',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_finance'], resolve)
}
];



+ 1
- 1
src/views/sunVillage_info/fixedAssets.vue View File

@@ -21,7 +21,7 @@
@load="getList"
>
<!--1-->
<van-swipe-cell right-width="150" class="item" v-for="(item,index) in applicationList">
<van-swipe-cell right-width="150" class="item" v-for="(item,index) in applicationList" :key="index">
<div class="item_box" @click="$router.push({name:'sunVillageInfoFixedAssetsDetail',query:{id:item.id}})">
<div class="head_block">
<i class="icon"></i>


+ 136
- 3
src/views/sunVillage_info/index.vue View File

@@ -2,8 +2,31 @@
<div class="home_wrapper">
<div class="head_main">
<div class="location">
<div class="address"><i class="icon"></i>李家村</div>
<div class="address">李家村李家合作社</div>
<div class="address" @click="villageVisbile = true"><i class="icon"></i>{{deptName}}</div>
<van-popup v-model="villageVisbile" round position="bottom">
<van-cascader
v-model="villageValue"
title="请选择所在村"
:options="hcAreaInfoOption"
@close="hcAreaInfoClose"
@finish="hcAreaInfoFinish"
active-color="#1989fa"
:field-names="hcAreaInfoFieldName"
/>
</van-popup>

<div class="address" @click="bookVisbile = true">{{bookName}}</div>
<van-popup v-model="bookVisbile" round position="bottom">
<van-picker
title="请选择账套"
show-toolbar
:columns="bookList"
@confirm="onConfirmBook"
@cancel="onCancelBook"
value-key="bookName"
/>
</van-popup>

</div>
<div class="exit_btn">
<i class="icon"></i>
@@ -12,7 +35,7 @@
<div class="index_info">
<div class="title"></div>
<div class="nav_list">
<div class="nav_item n_1">财务公开榜</div>
<router-link :to="{name:'sunVillageInfoListFinance'}" class="nav_item n_1">财务公开榜</router-link>
<div class="nav_item n_2">零工公开榜</div>
<div class="nav_item n_3">重大事项</div>
<router-link :to="{name:'sunVillageInfoFixedAssets'}" class="nav_item n_4">固定资产</router-link>
@@ -24,6 +47,116 @@
</div>
</div>
</template>
<script>
import { changeBook , listByDeptId , treeselectByUser } from "@/api/sunVillage_info/fixedAssets";
import { getInfo } from "@/api/login/index";
import {changeDept} from "../../api/onlineHome/done";
import {bookListByDeptId} from "../../api/homestead";
import Cookies from "js-cookie";
export default {
name: "certificateList",
data() {
return {
deptIdOptions:[],
villageVisbile:false,
showBookList:false,
deptName:'',
//选中的值
villageValue: "",
//省市区区级list
hcAreaInfoOption: [],
hcAreaInfoFieldName: {
text: "label",
value: "value",
children: "children",
},
bookName:'',
queryParams: {
pageNum: 1,
pageSize: 100,
},
//账套列表
bookVisbile:false,
bookList:[],
bookName:"",
bookId:"",
book:"",
};
},
created() {
getInfo().then(response => {
this.bookName = response.user.bookName
this.deptName = response.user.deptName
Cookies.set("bookName", response.user.bookName, {
expires: 30,
});
Cookies.set("deptName", response.user.deptName, {
expires: 30,
});
Cookies.set("bookId", response.user.loginBookId, {
expires: 30,
});
Cookies.set("deptId", response.user.loginDeptId, {
expires: 30,
});
this.getBookList(response.user.loginDeptId);
});

treeselectByUser().then((res) => {
if (res.code == 200) {
this.hcAreaInfoOption = res.data;
}
});
this.$set(this.queryParams, "systemType", '4');
},
methods: {
//关闭选择地址弹窗
hcAreaInfoClose() {
this.villageVisbile = false;
},
hcAreaInfoFinish({ value, selectedOptions, tabIndex }) {
// 切换部门
let Depquery={"loginDeptID":value}
changeDept(Depquery).then((response) => {
if (response.code === 200) {
this.$store.dispatch("GetInfo").then(() => {
// this.$router.go(0);
window.location.href = "/sunVillage_info/index";
});
}
});
this.villageVisbile = false;
},
getBookList(e){
let params = {
loginDeptID:e
}
listByDeptId(params).then((response) => {
if (response.code == 200) {
this.bookList = response.rows;
}
})
},
onConfirmBook(e){
this.bookVisbile = false
this.bookName = e.bookName
let param={"loginBookId":e.id}
changeBook(param).then((response) => {
if (response.code === 200) {
this.$store.dispatch("GetInfo").then(() => {
// this.$router.go(0);
window.location.href = "/sunVillage_info/index";
});
}
});
},
onCancelBook(e){
this.bookVisbile = false
},

},
}
</script>
<style scoped lang="scss">
.home_wrapper{
background: #f1f2f2;


+ 192
- 0
src/views/sunVillage_info/index_code.vue View File

@@ -0,0 +1,192 @@
<template>
<div class="home_wrapper">
<div class="head_main">
<div class="location">

<div class="address" @click="villageVisbile = true"><i class="icon"></i>{{deptName}}</div>

<div class="address" @click="bookVisbile = true">{{bookName}}</div>

</div>
<div class="exit_btn" @click="$router.push({name:'sunVillageInfoLogin'})">
<i class="icon"></i>
</div>
</div>
<div class="index_info">
<div class="title"></div>
<div class="nav_list">
<div class="nav_item n_1">财务公开榜</div>
<div class="nav_item n_2">零工公开榜</div>
<div class="nav_item n_3">重大事项</div>
<!-- <router-link :to="{name:'sunVillageInfoFixedAssets'}" class="nav_item n_4">固定资产</router-link>-->
<!-- <router-link :to="{name:'sunVillageInfoInformation'}" class="nav_item n_5">合同登记</router-link>-->
</div>
</div>
<div class="footer">
技术支持:北京农燊高科信息技术有限公司
</div>
</div>
</template>
<script>
import { changeBook , listByDeptId , treeselectByUser } from "@/api/sunVillage_info/fixedAssets";
import { getInfo } from "@/api/login/index";
import {changeDept} from "../../api/onlineHome/done";
import {bookListByDeptId} from "../../api/homestead";
export default {
name: "certificateList",
data() {
return {
deptIdOptions:[],
villageVisbile:false,
showBookList:false,
deptName:'',
//选中的值
villageValue: "",
//省市区区级list
hcAreaInfoOption: [],
hcAreaInfoFieldName: {
text: "label",
value: "value",
children: "children",
},
bookName:'',
queryParams: {
pageNum: 1,
pageSize: 100,
},
//账套列表
bookVisbile:false,
bookList:[],
bookName:"",
bookId:"",
book:"",
};
},
created() {
this.deptName = this.$route.query.deptName;
this.bookName = this.$route.query.bookName;
},
methods: {

},
}
</script>
<style scoped lang="scss">
.home_wrapper{
background: #f1f2f2;
width: 100vw;
min-height: 100vh;
.head_main{
height: 340px;
background: url('../../assets/images/sunVillage_info/index_head.png') no-repeat;
background-size: 100% 100%;
position: relative;
.location{
height: 42px;
line-height: 42px;
position: absolute;
left: 38px;
top: 72px;
display: flex;
.address{
padding:0 18px;
background:rgba(255,255,255,0.75);
border-radius: 42px;
font-size: 28px;
color: #3f3d56;
margin-right: 12px;
display: flex;
align-items:center;
.icon{
display: block;
width: 20px;
height: 26px;
background: url('../../assets/images/sunVillage_info/index_icon_1.png') no-repeat;
background-size: 100% 100%;
margin-right: 10px;
}
}
}
.exit_btn{
width: 61px;
height: 61px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
top: 64px;
right: 36px;
.icon{
width: 100%;
height: 100%;
background: url('../../assets/images/sunVillage_info/login_head_t.png') no-repeat;
background-size: 100% 100%;
}
}
}
.index_info{
padding-top: 4.1vh;
.title{
width: 521px;
height: 52px;
background: url('../../assets/images/sunVillage_info/index_title.png') no-repeat;
background-size: 100% 100%;
margin:0 auto;
}
.nav_list{
margin-top: 6vh;
padding:0 38px;
display: flex;
flex-flow: wrap;

.nav_item{
flex:0 0 200px;
height: 249px;
margin-right: 34px;
margin-bottom: 35px;
box-shadow: 6px 0px 18px rgba(63,68,75,0.2);
border-radius: 30px;
font-size: 30px;
color: #fff;
text-align: center;
display: flex;
align-items: center;
justify-content: center;
padding-top: 120px;
&:nth-child(3){
margin-right: 0;
}
&.n_1{
background: url('../../assets/images/sunVillage_info/index_block_1.png') no-repeat;
background-size: 100% 100%;
}
&.n_2{
background: url('../../assets/images/sunVillage_info/index_block_2.png') no-repeat;
background-size: 100% 100%;
}
&.n_3 {
background: url('../../assets/images/sunVillage_info/index_block_3.png') no-repeat;
background-size: 100% 100%;
}
&.n_4 {
background: url('../../assets/images/sunVillage_info/index_block_4.png') no-repeat;
background-size: 100% 100%;
}
&.n_5 {
background: url('../../assets/images/sunVillage_info/index_block_5.png') no-repeat;
background-size: 100% 100%;
}
}
}
}
.footer{
position: absolute;
bottom: 5.5vh;
width: 100%;
font-size: 22px;
color: #3f3d56;
text-align: center;
}
}
</style>

+ 1
- 1
src/views/sunVillage_info/information.vue View File

@@ -20,7 +20,7 @@
@load="getList"
>
<!--1-->
<van-swipe-cell right-width="150" class="item" v-for="(item,index) in applicationList">
<van-swipe-cell right-width="150" class="item" v-for="(item,index) in applicationList" :key="index">
<div class="item_box" @click="$router.push({name:'sunVillageInfoInformationDetail',query:{id:item.id}})">
<div class="head_block">
<i class="icon"></i>


+ 386
- 0
src/views/sunVillage_info/list_finance.vue View File

@@ -0,0 +1,386 @@
<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="record_main">
<div class="record_det">
<div class="year_l"><i class="icon ss"></i>{{queryParams.year == '' ? '全部': queryParams.year}}<span class="unit">{{queryParams.year == '' ? '': '年'}}</span></div>
<div class="total_r">共{{listLength}}条公告</div>
</div>
<div class="record_list">
<div :class="{'flex_block':true , 'current':queryParams.year == ''}" @click="tabClick('')">全部</div>
<div :class="{'flex_block':true , 'current':queryParams.year == '2022'}" @click="tabClick('2022')">2022</div>
<div :class="{'flex_block':true , 'current':queryParams.year == '2021'}" @click="tabClick('2021')">2021</div>
<div :class="{'flex_block':true , 'current':queryParams.year == '2020'}" @click="tabClick('2020')">2020</div>
</div>
</div>
<div class="list_main">
<van-list
v-model="loading"
:finished="finished"
finished-text="没有更多了"
@load="getList"
>
<!----1-->
<div class="item" v-for="(item,index) in applicationList" :key="index" >
<div class="info">
<div class="title">
<i class="icon_box"></i>
<p class="news_title">{{item.openName}}</p>
<p class="tips_mark">新</p>
</div>
<div class="time">
<div class="icon_time"></div>
{{item.openNy}}
</div>
</div>
<div class="operation">
<!-- delete 删除 edit编辑 view查看 -->
<div class="opera_btn edit">
<i class="icon "></i>
</div>
<div class="opera_btn delete">
<i class="icon"></i>
</div>
<!-- <div class="opera_btn view">
<i class="icon "></i>
</div> -->

</div>
</div>
</van-list>
</div>
<!-- <div class="bottom_tips">-->
<!-- <span class="xs">已经到底啦</span>-->
<!-- </div>-->
</div>
</template>

<script>
import { financePublicList } from "@/api/sunVillage_info/fixedAssets";
import Cookies from "js-cookie";
import request from '@/utils/request'
export default {
name: "certificateList",
data() {
return {
applicationList:[],
applicationListSecond:[],
assetStatusOptions:[],
auditStatus:[],
loading: false,
finished: false,
show: false,
fileList:[],
listLength:'0',
searchInput:'',
queryParams:{
pageNum:1,
pageSize:10,
orderByColumn:'createTime',
isAsc:'desc',
year:'',
},
uploadFiles1:[],
projectId:'',
projectIndex:''
};
},
created() {
this.houseGetDicts("asset_status").then((response) => {
this.assetStatusOptions = response.data;
});
this.houseGetDicts("asset_type").then((response) => {
this.assetTypeOptions = response.data;
});
this.houseGetDicts("use_type").then((response) => {
this.useTypeOptions = response.data;
});
console.log(Cookies.get('bookId'))
this.queryParams.bookId = Cookies.get('bookId');
this.queryParams.deptId = Cookies.get('deptId');
},
methods: {
getList(){
var _this = this;
setTimeout(() => {
console.log(_this.queryParams)
financePublicList(_this.queryParams).then(response => {
_this.listLength = response.total;
_this.applicationList = response.rows;

if(_this.applicationList.length >= response.total){
_this.finished = true;
return;
}else{
_this.loading = false;
_this.queryParams.pageNum += 1 ;
}
});
}, 1000);
},
tabClick(year){
this.queryParams.year = year ;
this.applicationList = [];
this.getList();
},
/** 删除按钮操作 */
handleDelete(row,index) {
let assetStatus = row.assetStatus ? row.assetStatus : data[0].assetStatus;
if (assetStatus === '2' || assetStatus === '3') {
this.$notify({
message: "不允许删除已出售或已报废的资产",
type: "warning",
});
return;
}
let useType = row.useType;
if(useType == 3) {
this.$notify({
message: "出租或出借的资产不允许删除",
type: "warning",
});
return ;
}
const ids = row.id || this.ids;

this.$dialog.alert(
{
message:'是否确认删除固定资产?',
title:"警告",
confirmButtonText: "确定",
cancelButtonText: "取消",
}
)
.then(function () {
return delPermanent(ids);
})
.then(() => {
this.applicationList.splice(index, 1);
this.$notify({ type: 'success', message: '删除成功' });
});
},
goAdd(){
this.$router.push('/sunVillage_info/fixedAssetsAdd')
},
},
}
</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;
}
}
.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: 140px;
border-radius: 30px;
background: #fff;
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1);
padding:25px 32px;
display: flex;
margin-bottom: 20px;
.info{
flex:0 0 510px;
.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;
}
}
.time{
font-size: 24px;
color: #858585;
display: flex;
align-items: center;
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;
}
}
}
</style>

+ 13
- 6
src/views/sunVillage_info/login.vue View File

@@ -20,9 +20,9 @@
<div class="flex_input_main">
<div class="icon_wrap password"></div>
<div class="input_wrap">
<input type="password" v-model="formData.password" class="ipt" maxlength="16" placeholder="密码"/>
<input :type="show ? 'password' : 'text'" v-model="formData.password" class="ipt" maxlength="16" placeholder="密码"/>
</div>
<div class="showHidden ico_hide"></div>
<div :class="{'showHidden':true,'ico_hide':show}" @click="showPassword"></div>
</div>
</div>
<div class="flex_block">
@@ -33,7 +33,7 @@
</div>
</div>
<div class="valid_main">
<img style="width: 100px" :src="codeUrl" @click="getCode" />
<img :src="codeUrl" @click="getCode" />
</div>
</div>
</div>
@@ -78,7 +78,8 @@
codeUrl: "", //验证码
isSmsLogin: false, //是否手机验证码
computeTime: 0,
height:0
height:0,
show:true
};
},
created() {
@@ -97,6 +98,9 @@
//分享要用encodeURIComponent()方法
},
methods: {
showPassword(){
this.show = !this.show;
},
getCode() {
getCodeImg().then((res) => {
this.formData.uuid = res.uuid;
@@ -306,9 +310,12 @@
.valid_main{
width: 165px;
height: 62px;
background: #3f3d56;
border-radius: 30px;
img{width: 100%; height: 100%;}
img{
width: 100%;
height: 100%;
border-radius: 30px;
}
}
}
}


Loading…
Cancel
Save