Browse Source

Task 综合公开

rongxin_dev
zhaodengke 7 months ago
parent
commit
c2c110b264
10 changed files with 667 additions and 7 deletions
  1. +11
    -0
      src/api/onlineHome/villageAffairs.js
  2. +21
    -0
      src/api/sunVillage_info/otherOpen.js
  3. +13
    -0
      src/components/common/PagedList.vue
  4. +2
    -0
      src/permission.js
  5. +18
    -0
      src/router/index.js
  6. +3
    -5
      src/views/sunVillage_info/index_code.vue
  7. +0
    -1
      src/views/sunVillage_info/otherOpen/otherOpenDetail.vue
  8. +34
    -1
      src/views/sunVillage_info/otherOpen/otherOpenList.vue
  9. +187
    -0
      src/views/sunVillage_info/otherOpen/otherOpenVisitDetail.vue
  10. +378
    -0
      src/views/sunVillage_info/otherOpen/otherOpenVisitList.vue

+ 11
- 0
src/api/onlineHome/villageAffairs.js View File

@@ -17,3 +17,14 @@ export function getVillageAffairs(id) {
})
}

// 查询地区下的账套列表
export function bookListByDept(deptId, bookType) {
return request({
url: '/open/villageAffairs/public/bookList/' + deptId,
method: 'get',
params: {
bookType,
},
})
}


+ 21
- 0
src/api/sunVillage_info/otherOpen.js View File

@@ -43,3 +43,24 @@ export function delOther(id) {
})
}

// 查询其他公开列表 游客
export function otherOpenList(query) {
return request({
url: '/open/villageAffairs/public/otherOpenList',
method: 'get',
params: query
})
}

// 查询其他公开详细 游客
export function otherOpenDetail(bookId, id) {
return request({
url: '/open/villageAffairs/public/otherOpenDetail',
method: 'get',
params: {
bookId,
id,
},
})
}


+ 13
- 0
src/components/common/PagedList.vue View File

@@ -48,6 +48,10 @@ export default {
type: Function,
default: null,
},
reload: { // 变更此值为true则重新加载数据 监听
type: Boolean,
default: false,
},
},
components: {
},
@@ -177,6 +181,15 @@ export default {
console.log('[PagedList]: ', ...arguments);
},
},
watch: {
reload(newVal) {
if(newVal)
{
this.$emit('update:reload', false);
this.getList();
}
},
},
}
</script>



+ 2
- 0
src/permission.js View File

@@ -140,6 +140,8 @@ const whiteList = [
'/sunVillage_info/list_contract_ranking',
'/sunVillage_info/identity_check',
'/sunVillage_info/assetMapOpen',
'/sunVillage_info/otherOpenVisitIndex',
'/sunVillage_info/otherOpenVisitDetail',

// 新型经营主体
'newBusinessEntity/newsBulletin', //新闻公告


+ 18
- 0
src/router/index.js View File

@@ -3822,6 +3822,24 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/sunVillage_info/otherOpen/otherOpenEdit'], resolve)
},
{ ////阳光村务(新)-- 综合公开 游客
path: '/sunVillage_info/otherOpenVisitIndex',
name: 'otherOpenVisitIndex',
meta: {
title: '综合公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/otherOpen/otherOpenVisitList'], resolve)
},
{ ////阳光村务(新)-- 综合公开详情 游客
path: '/sunVillage_info/otherOpenVisitDetail',
name: 'otherOpenVisitDetail',
meta: {
title: '综合公开详情',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/otherOpen/otherOpenVisitDetail'], resolve)
},

{ ////阳光村务(新)-- 发包方审核
path: '/sunVillage_info/list_employer_process',


+ 3
- 5
src/views/sunVillage_info/index_code.vue View File

@@ -68,9 +68,10 @@
</div>
</template>
<script>
import {bookInfo, listByDeptId, nologinMenus} from "@/api/sunVillage_info/fixedAssets";
import {bookInfo, nologinMenus} from "@/api/sunVillage_info/fixedAssets";
import { sysConfig } from "@/api/homesteadSurvey/index";
import Cookies from "js-cookie";
import {bookListByDept} from "@/api/onlineHome/villageAffairs";
export default {
name: "sunVillageInfoIndexCode",
data() {
@@ -167,10 +168,7 @@ import {bookInfo, listByDeptId, nologinMenus} from "@/api/sunVillage_info/fixedA
this.bookVisbile = false
},
getBookList(e){
let params = {
loginDeptID:e
}
listByDeptId(params).then((response) => {
bookListByDept(e).then((response) => {
if (response.code == 200) {
this.bookList = response.rows;
}


+ 0
- 1
src/views/sunVillage_info/otherOpen/otherOpenDetail.vue View File

@@ -41,7 +41,6 @@
</template>
<script>
import CommonUpload from "@/components/form/CommonUpload.vue";
import {getRegistration} from "@/api/sunVillage_info/registration";
import {getOther} from "@/api/sunVillage_info/otherOpen";
export default {
name: "otherOpenDetail",


+ 34
- 1
src/views/sunVillage_info/otherOpen/otherOpenList.vue View File

@@ -7,6 +7,16 @@
<div class="return_btn" @click="back"></div>
<div class="add_btn" @click="add"></div>
</div>
<div class="record_main">
<div class="record_det">
<div class="year_l" @click="tabShow"><i :class="{'icon':true , 'zk':!showTab , 'ss':showTab } "></i>{{queryParams.openYear == '' ? '全部': queryParams.openYear}}<span class="unit">{{queryParams.openYear == '' ? '': '年'}}</span></div>
<div class="total_r">共{{total}}条公开</div>
</div>
<div class="record_list" v-if="showTab">
<div :class="{'flex_block':true , 'current':queryParams.openYear == ''}" @click="tabClick('')">全部</div>
<div v-for="(item,index) in yearList" :key="index" :class="{'flex_block':true , 'current':queryParams.openYear == item}" @click="tabClick(item)">{{item}}</div>
</div>
</div>

<div class="list_main">

@@ -16,6 +26,7 @@
:page-size.sync="queryParams.pageSize"
:total.sync="total"
:getListFunc="getListReq"
:reload.sync="reload"
@reload="dataList = []"
get-when-created>
<div class="item" v-for="(item,index) in dataList" :key="index" @click="viewItem(item.id)" >
@@ -50,6 +61,7 @@
import PagedList from "@/components/common/PagedList.vue";
import {Dialog, Toast} from "vant";
import {delOther, listOther} from "@/api/sunVillage_info/otherOpen";
import {getLoginBook} from "@/api/sunVillage_info/fixedAssets";
export default {
name: "otherOpenList",
components: {PagedList},
@@ -65,8 +77,10 @@ import {delOther, listOther} from "@/api/sunVillage_info/otherOpen";
openYear:'',
otherType: null,
},
yearMonth:[],
yearList: [],
title: '综合公开',
reload: false,
showTab: false,
};
},
created() {
@@ -79,6 +93,18 @@ import {delOther, listOther} from "@/api/sunVillage_info/otherOpen";
this.title = dict.dictLabel;
});
}
getLoginBook().then((resp) => {
let startYear = new Date().getFullYear();
let thisYear = startYear;
if(resp.data.startDay)
{
startYear = parseInt(resp.data.startDay.substring(0, resp.data.startDay.indexOf('-')))
}

for (let i = thisYear ; i >= startYear ; i--){
this.yearList.push('' + i);
}
});
},
methods: {
getListReq(pageInfo) {
@@ -140,6 +166,13 @@ import {delOther, listOther} from "@/api/sunVillage_info/otherOpen";
back() {
this.$router.back();
},
tabClick(year){
this.queryParams.openYear = year;
this.reload = true;
},
tabShow(){
this.showTab = !this.showTab;
},
},
}
</script>


+ 187
- 0
src/views/sunVillage_info/otherOpen/otherOpenVisitDetail.vue View File

@@ -0,0 +1,187 @@
<template>
<div class="home_wrapper">
<div class="header_main"
:style="`background-image:url(${require('@/assets/images/sunVillage_info/list_head_red.png')})`">
{{title}}
<div class="return_btn" @click="back"></div>
</div>

<van-form ref="formData" :readonly="true">
<div class="list_main">

<van-field name="otherName" :value="form.otherName" label="公开名称" input-align="right" :border="false" />
<van-field name="openAt" :value="form.openAt" label="公开时间" input-align="right" :border="false" />

<van-field name="openContent" label="公开内容" input-align="right" :border="false" />
<div class="open-content" v-html="form.openContent"></div>

<van-field
name="openPic"
label="公开图片"
input-align="right"
:border="false"
>
</van-field>
<CommonUpload name="openPic" :value="form.openPic" multiple :deletable="false" :show-upload="false"/>

<van-field
name="openFile"
label="公开文件"
input-align="right"
:border="false"
>
</van-field>
<CommonUpload name="openFile" :value="form.openFile" multiple :deletable="false" :show-upload="false"/>

<van-field name="remake" :value="form.remark" label="备注" input-align="left" :border="false"/>

</div>

</van-form>
</div>
</template>
<script>
import CommonUpload from "@/components/form/CommonUpload.vue";
import { otherOpenDetail} from "@/api/sunVillage_info/otherOpen";
import Cookies from "js-cookie";
export default {
name: "otherOpenVisitDetail",
components: {CommonUpload},
data() {
return {
form: {
id: null,
bookId: null,
deptId: null,
deptName: null,
otherName: null,
otherType: '1',
openYear: null,
openAt: null,
openContent: null,
openFile: null,
openPic: null,
remark: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
},
id:'',
title: '综合公开',
bookId: null,
};
},
created() {
this.bookId = Cookies.get('bookId');
if(!this.bookId)
{
this.back();
return;
}
this.id = this.$route.query.id;
this.getDetail();
},
methods: {
getDetail() {
if(!this.id)
{
this.back();
return;
}

otherOpenDetail(this.bookId, this.id).then((resp) => {
this.form = resp.data;
this.getDicts('other_gk_type').then((resp) => {
const dict = resp.data.find((x) => x.dictValue == this.form.otherType);
if(dict)
this.title = dict.dictLabel;
});
});
},
back() {
this.$router.back();
},
},
}
</script>
<style scoped lang="scss">
/deep/ .van-button--primary{
background: url("../../../assets/images/sunVillage_info/btn_bg.png") no-repeat;
background-size: 100% 100%;
border: none;
}
.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:25px;
background: #ffffff;
width: 94%;
margin: 25px auto 0;
border-radius: 15PX;
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1);
}
.titBox{
display: flex;
align-items: center;
}
.tit{
font-size: 36px;
font-weight: bold;
}
/deep/ .van-cell{
padding-left: 0!important;
padding-right: 0!important;
padding-bottom: 0!important;
}
/deep/ .van-field__label{
padding-left: 10PX;
width: 8.2em;
}
/deep/ .van-cell--required::before{
left: 0;
}

}

.open-content {
padding: .2rem .3rem;
max-height: 8rem;
}
</style>

+ 378
- 0
src/views/sunVillage_info/otherOpen/otherOpenVisitList.vue View File

@@ -0,0 +1,378 @@
<template>
<div class="home_wrapper">
<div class="header_main"
:style="`background-image:url(${require('@/assets/images/sunVillage_info/list_head_red.png')})`"
>
{{title}}
<div class="return_btn" @click="back"></div>
</div>
<div class="record_main">
<div class="record_det">
<div class="year_l" @click="tabShow"><i :class="{'icon':true , 'zk':!showTab , 'ss':showTab } "></i>{{queryParams.openYear == '' ? '全部': queryParams.openYear}}<span class="unit">{{queryParams.openYear == '' ? '': '年'}}</span></div>
<div class="total_r">共{{total}}条公开</div>
</div>
<div class="record_list" v-if="showTab">
<div :class="{'flex_block':true , 'current':queryParams.openYear == ''}" @click="tabClick('')">全部</div>
<div v-for="(item,index) in yearList" :key="index" :class="{'flex_block':true , 'current':queryParams.openYear == item}" @click="tabClick(item)">{{item}}</div>
</div>
</div>

<div class="list_main">

<paged-list
ref="pagedList"
:page-num.sync="queryParams.pageNum"
:page-size.sync="queryParams.pageSize"
:total.sync="total"
:getListFunc="getListReq"
:reload.sync="reload"
@reload="dataList = []"
get-when-created>
<div class="item" v-for="(item,index) in dataList" :key="index" @click="viewItem(item.id)" >
<div class="info">
<div class="title">
<p class="news_title">{{item.otherName}}</p>
</div>
<div class="time">
<div class="icon_time"></div>
{{item.openAt}}
</div>
</div>
<div class="operation">
<div class="opera_btn view" @click.stop="viewItem(item.id)">
<i class="icon "></i>
</div>
</div>
</div>
</paged-list>

</div>
</div>
</template>

<script>
import PagedList from "@/components/common/PagedList.vue";
import {Dialog, Toast} from "vant";
import { otherOpenList} from "@/api/sunVillage_info/otherOpen";
import {bookInfo, } from "@/api/sunVillage_info/fixedAssets";
import Cookies from "js-cookie";
export default {
name: "otherOpenVisitList",
components: {PagedList},
data() {
return {
dataList:[],
total: 0,
queryParams:{
pageNum:1,
pageSize:10,
orderByColumn:'openAt',
isAsc:'desc',
openYear:'',
otherType: null,
bookId: null,
deptId: null,
},
yearList: [],
title: '综合公开',
reload: false,
showTab: false,
};
},
created() {
this.queryParams.bookId = Cookies.get('bookId');
this.queryParams.deptId = Cookies.get('deptId');
if(!this.queryParams.bookId)
{
this.back();
return;
}

this.queryParams.otherType = this.$route.query.type;
if(this.$route.query.type)
{
this.getDicts('other_gk_type').then((resp) => {
const dict = resp.data.find((x) => x.dictValue == this.$route.query.type);
if(dict)
this.title = dict.dictLabel;
});
}
bookInfo(this.queryParams.bookId).then((resp) => {
let startYear = new Date().getFullYear();
let thisYear = startYear;
if(resp.data.startDay)
{
startYear = parseInt(resp.data.startDay.substring(0, resp.data.startDay.indexOf('-')))
}

for (let i = thisYear ; i >= startYear ; i--){
this.yearList.push('' + i);
}
});
},
methods: {
getListReq(pageInfo) {
return new Promise((resolve, reject) => {
otherOpenList(this.queryParams).then((response) => {
response.rows.forEach((x) => this.dataList.push(x));
resolve(response);
});
});
},
viewItem(id){
this.$router.push({
name: 'otherOpenVisitDetail',
query: {
id: id,
intent: 'view',
type: this.$route.query.type,
},
}).catch(() => {});
},
back() {
this.$router.back();
},
tabClick(year){
this.queryParams.openYear = year;
this.reload = true;
},
tabShow(){
this.showTab = !this.showTab;
},
},
}
</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:15px 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;
justify-content: space-between;
.info{
.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;
flex-shrink: 0;
}
.news_title{
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
word-break: break-all;
overflow: hidden;
}
.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;
flex-shrink: 0;
}
}
.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{
display: flex;
align-items: center;
justify-content: right;
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: 10PX;
.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;
margin-left: 10PX;
.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;
margin-left: 10PX;
.icon {
width: 29px;
height: 21px;
background: url('../../../assets/images/sunVillage_info/list_icon_3.png') no-repeat;
background-size: 100% 100%;
display: block;
}
}
&.list{
background: #79cf13;
margin-left: 10PX;
.icon {
width: 29px;
height: 21px;
background: url('../../../assets/images/sunVillage_info/list_icon_10.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;
}
}
}
.top_head_title{
font-size: 16PX;
text-align: center;
padding: 15PX 0;
}
</style>

Loading…
Cancel
Save