Parcourir la source

0702JW需求开发

rongxin_dev
庞东旭 il y a 3 jours
Parent
révision
86e58a6054
27 fichiers modifiés avec 3632 ajouts et 3 suppressions
  1. +51
    -0
      src/api/sunVillage_info/fixedAssets.js
  2. +10
    -0
      src/permission.js
  3. +72
    -0
      src/router/index.js
  4. +243
    -0
      src/views/sunVillage_info/index_code_rights_new.vue
  5. +477
    -0
      src/views/sunVillage_info/list_operatingAssets.vue
  6. +193
    -0
      src/views/sunVillage_info/list_operatingAssets_detail.vue
  7. +199
    -0
      src/views/sunVillage_info/list_operatingAssets_detail2.vue
  8. +470
    -0
      src/views/sunVillage_info/list_revenueAndExpenditure.vue
  9. +6
    -0
      src/views/sunVillage_info/list_special_add.vue
  10. +2
    -1
      src/views/sunVillage_info/list_special_detail.vue
  11. +7
    -2
      src/views/sunVillage_info/list_special_detail_vote.vue
  12. +5
    -0
      src/views/sunVillage_info/list_special_edit.vue
  13. +326
    -0
      src/views/sunVillage_info/login_code_new.vue
  14. +178
    -0
      src/views/sunVillage_info/otherOpenNew/otherOpenDetail.vue
  15. +280
    -0
      src/views/sunVillage_info/otherOpenNew/otherOpenEdit.vue
  16. +485
    -0
      src/views/sunVillage_info/otherOpenNew/otherOpenList.vue
  17. +187
    -0
      src/views/sunVillage_info/otherOpenNew/otherOpenVisitDetail.vue
  18. +441
    -0
      src/views/sunVillage_info/otherOpenNew/otherOpenVisitList.vue
  19. BIN
      static/images/sunVillage_info/code_new/1.png
  20. BIN
      static/images/sunVillage_info/code_new/2.png
  21. BIN
      static/images/sunVillage_info/code_new/3.png
  22. BIN
      static/images/sunVillage_info/code_new/address.png
  23. BIN
      static/images/sunVillage_info/code_new/back.png
  24. BIN
      static/images/sunVillage_info/code_new/index_bg.png
  25. BIN
      static/images/sunVillage_info/code_new/list_icon.png
  26. BIN
      static/images/sunVillage_info/code_new/sunVillage_info_index_code_right_header.png
  27. BIN
      static/images/sunVillage_info/sunVillage_info_login_code_new_bg.png

+ 51
- 0
src/api/sunVillage_info/fixedAssets.js Voir le fichier

@@ -1372,6 +1372,15 @@ export function specialPublicityDetail(query) {
})
}

// 查询四议两公开列表
export function addReadCount(query) {
return request({
url: '/subcontract/publicity/addReadCount',
method: 'get',
params: query
})
}

// 查询四议两公开列表
export function specialPublicityEdit(data) {
return request({
@@ -1406,3 +1415,45 @@ export function updateSpecialPublicityCount(query) {
params: query
})
}

// 收支明细公开
export function financialPublicDetailReport(query) {
return request({
url: '/open/finance/financialPublicDetailReport',
method: 'get',
params: query
})
}


// 收支明细公开
export function jyxzcqkgkList(query) {
return request({
url: '/open/asset/jyxzcqkgk/list',
method: 'get',
params: query
})
}

// 收支明细公开
export function jyxzyqkgkList(query) {
return request({
url: '/open/assetresource/jyxzyqkgk/list',
method: 'get',
params: query
})
}

export function jyxzcqkgkDetail(id) {
return request({
url: '/open/asset/jyxzcqkgk/detail/' + id,
method: 'get'
})
}

export function jyxzyqkgkDetail(id) {
return request({
url: '/open/assetresource/jyxzyqkgk/detail/' + id,
method: 'get'
})
}

+ 10
- 0
src/permission.js Voir le fichier

@@ -214,6 +214,16 @@ const whiteList = [
'/sunVillage_info/financeOpen', //村民主页


'/sunVillage_info/login_code_new', //村民登录
'/sunVillage_info/index_code_rights_new', //村民登录
'/sunVillage_info/list_revenueAndExpenditure', //村民登录
'/sunVillage_info/list_operatingAssets', //村民登录
'/sunVillage_info/list_operatingAssets_detail', //村民登录
'/sunVillage_info/list_operatingAssets_detail2', //村民登录
'/sunVillage_info/otherOpenVisitIndexNew', //村民登录
'/sunVillage_info/otherOpenVisitDetailNew', //村民登录


//承包地确权
'/contracted/login',//登录
'/contracted/index',//首页


+ 72
- 0
src/router/index.js Voir le fichier

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

{ ////阳光村务(新)-- 发包方审核
path: '/sunVillage_info/list_employer_process',
@@ -6468,6 +6486,60 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/pest/temperatureAndHumidity/temperatureAndHumidity'], resolve)
},
{ // 阳光村务(一村一码)-- 村民登录
path: '/sunVillage_info/login_code_new',
name: 'sunVillageInfoCodeLoginNew',
meta: {
title: '登录',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/login_code_new'], resolve)
},
{ // 阳光村务(一村一码)-- 村民登录
path: '/sunVillage_info/index_code_rights_new',
name: 'sunVillageInfoCodeRightsNew',
meta: {
title: '首页',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/index_code_rights_new'], resolve)
},
{ // 阳光村务(一村一码)-- 村民登录
path: '/sunVillage_info/list_revenueAndExpenditure',
name: 'sunVillageInfoRevenueAndExpendituresNew',
meta: {
title: '收支明细公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_revenueAndExpenditure'], resolve)
},
{ // 阳光村务(一村一码)-- 村民登录
path: '/sunVillage_info/list_operatingAssets',
name: 'sunVillageInfoOperatingAssets',
meta: {
title: '经营性资产情况公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_operatingAssets'], resolve)
},
{ // 阳光村务(一村一码)-- 村民登录
path: '/sunVillage_info/list_operatingAssets_detail',
name: 'sunVillageInfoOperatingAssetsDetail',
meta: {
title: '经营性资产情况公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_operatingAssets_detail'], resolve)
},
{ // 阳光村务(一村一码)-- 村民登录
path: '/sunVillage_info/list_operatingAssets_detail2',
name: 'sunVillageInfoOperatingAssetsDetail2',
meta: {
title: '经营性资产情况公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_operatingAssets_detail2'], resolve)
},
{ // 阳光村务(一村一码)-- 村民登录
path: '/sunVillage_info/login_farmer',
name: 'sunVillageInfoFarmerLogin',


+ 243
- 0
src/views/sunVillage_info/index_code_rights_new.vue Voir le fichier

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

<div class="address"><i class="icon"></i>{{deptName}}</div>

<div class="address">{{bookName}}</div>

</div>
<div class="exit_btn" @click="goOut">
<p>{{userName}}</p>
<i class="icon"></i>
</div>
</div>
<img src="../../../static/images/sunVillage_info/code_new/sunVillage_info_index_code_right_header.png" style="display:block;width:94%;margin:0 auto;" alt="">
<div class="index_info">
<div class="nav_box">
<p class="nav_tit">公示公开</p>
<div class="nav_list">
<router-link
:to="{name:'sunVillageInfoRevenueAndExpendituresNew',query:{}}"
class="nav_item"
>
<img src="../../../static/images/sunVillage_info/code_new/1.png" style="display:block;" alt="">
<span>收支明细公开</span>
</router-link>
<router-link
:to="{name:'sunVillageInfoOperatingAssets',query:{}}"
class="nav_item"
>
<img src="../../../static/images/sunVillage_info/code_new/2.png" style="display:block;" alt="">
<span>经营性资产情况</span>
</router-link>
<router-link
:to="{name:'otherOpenVisitIndexNew',query:{}}"
class="nav_item"
>
<img src="../../../static/images/sunVillage_info/code_new/3.png" style="display:block;" alt="">
<span>其他公开</span>
</router-link>
</div>
</div>
</div>
<div class="footer">
投诉电话:044-1234567
</div>
</div>
</template>
<script>
import {bookInfo, nologinMenus} from "@/api/sunVillage_info/fixedAssets";
import Cookies from "js-cookie";
import {sysConfig} from "@/api/homesteadSurvey";
export default {
name: "certificateList",
data() {
return {
wdqlList:[],
qqbzList:[],
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:[],
bookId:"",
deptId:"",
book:"",
userName:"",
};
},
created() {
this.deptId = Cookies.get('deptId')
this.bookId = Cookies.get('bookId')
if(this.bookId)
{
bookInfo(this.bookId).then((res) => {
if (res.code == 200) {
this.deptName = res.data.deptName;
this.bookName = res.data.bookName;
}
});
}
if(Cookies.get('user')){
this.userName = JSON.parse(Cookies.get('user')).memberName
}
},
methods: {
goCode(){
this.$router.push({path:'/sunVillage_info/login_code'})
},
goOut(){
// Cookies.remove("memberName");
// Cookies.remove("idcard");
Cookies.remove("user");
this.$router.push({name:'sunVillageInfoIndexCode',query:{deptId:this.deptId,bookId:this.bookId}})
}
},
}
</script>
<style scoped lang="scss">
.fixed_btn{
position: fixed;
right: 0;
width: 115PX;
bottom: 15%;
border-top-left-radius: 115PX;
border-bottom-left-radius: 115PX;
box-shadow: 0px 2px 5px #ccc;
}
.home_wrapper{
width: 100vw;
min-height: 100vh;
background: #F5F6F9 url('../../../static/images/sunVillage_info/page_bg.png') no-repeat top center;
background-size: 100% auto;
.head_main{
position: relative;
display: flex;
align-items: self-start;
justify-content: space-between;
width: 94%;
margin: 0 auto;
padding: 2vh 0 0;
.location{
line-height: 42px;
display: flex;
flex-direction: column;
align-items: self-start;
.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;
margin-bottom: 10PX;
.icon{
display: block;
width: 20px;
height: 26px;
background: url('../../../static/images/sunVillage_info/index_icon_1.png') no-repeat;
background-size: 100% 100%;
margin-right: 10PX;
}
}
.user{
.icon{
width: 32px;
height: 32px;
background: url('../../assets/images/sunVillage_info/user_icon.png') no-repeat!important;
background-size: 100% 100%;
}
}
}
.exit_btn{
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
p{
background: #3f3d56;
color: #ffffff;
padding: 3PX 15PX;
position: relative;
right: -6PX;
border-top-left-radius: 20PX;
border-bottom-left-radius: 20PX;
box-shadow: -3PX 2PX 4PX rgba(0,0,0,0.3);
}
.icon{
width: 61px;
height: 61px;
background: url('../../assets/images/sunVillage_info/login_head_h_rights.png') no-repeat;
background-size: 100% 100%;
box-shadow: -3PX 2PX 4PX rgba(0,0,0,0.3);
border-radius: 100%;
}
}
}
.index_info{
/*padding-top: 4.1vh;*/
.title{
width: 521px;
height: 52px;
background: url('../../assets/images/sunVillage_info/index_title2_rights.png') no-repeat;
background-size: 100% 100%;
margin:0 auto;
}
.nav_box{
margin: 0 auto;
padding: 30px 30px 40px;
.nav_tit{
font-size: 35px;
margin-bottom: 15PX;
font-weight: bold;
}
.nav_list{
display: flex;
flex-flow: wrap;
justify-content: space-between;
.nav_item{
font-size: 24px;
text-align: center;
width: 30%;
position: relative;
span{
position: absolute;
bottom: 20%;
color: #ffffff;
display: block;
width: 100%;
text-align: center;
}
}
}
}
}
.footer{
position: absolute;
bottom: 2vh;
width: 100%;
color: #707070;
text-align: center;
}
}
</style>

+ 477
- 0
src/views/sunVillage_info/list_operatingAssets.vue Voir le fichier

@@ -0,0 +1,477 @@
<template>
<div class="home_wrapper">
<div class="header_main">
经营性资产情况公开
<div class="return_btn" @click="onClickLeft"></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.ny == '' ? '全部': queryParams.ny}}</div>-->
<!-- <div class="total_r">共{{listLength}}条公告</div>-->
<!-- </div>-->
<!-- <van-popup v-model="showTab" position="bottom">-->
<!-- <van-datetime-picker-->
<!-- v-model="currentDate"-->
<!-- type="year-month"-->
<!-- title="选择年月"-->
<!-- :min-date="minDate"-->
<!-- :max-date="maxDate"-->
<!-- :formatter="formatter"-->
<!-- @confirm="onConfirmOpenNy"-->
<!-- />-->
<!-- </van-popup>-->
<!-- </div>-->
<van-tabs v-model="active">
<van-tab title="固定资产">
<van-dropdown-menu>
<van-dropdown-item v-model="queryParams.useType" :options="useTypeOptions" @change="changeUseType" />
</van-dropdown-menu>
<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" @click="goDetail(item.id)">
<div class="title">
<!-- <i class="icon_box"></i>-->
<p class="news_title">{{item.name}}</p>
</div>
<div class="time">
{{selectDictLabel(useTypeOptionsY, item.useType)}}
<p>{{item.originalValue}}元</p>
</div>
</div>
</div>

</van-list>
</div>
</van-tab>
<van-tab title="资源性资产">
<van-dropdown-menu>
<van-dropdown-item v-model="queryParams2.useType" :options="useTypeOptions" @change="changeUseType2" />
</van-dropdown-menu>
<div class="list_main">
<van-list
v-model="loading2"
:finished="finished2"
finished-text="没有更多了"
@load="getList2"
>
<!----1-->
<div class="item" v-for="(item,index) in applicationList2" :key="index" >
<div class="info" @click="goDetail2(item.id)">
<div class="title">
<!-- <i class="icon_box"></i>-->
<p class="news_title">{{selectDictLabel(resourceTypeOptionsY, item.resourceType)}}</p>
</div>
<div class="time">
{{selectDictLabel(useTypeOptionsY, item.useType)}}
<p>{{item.totalArea}}亩</p>
</div>
</div>
</div>

</van-list>
</div>
</van-tab>
</van-tabs>
</div>
</template>

<script>
import { jyxzcqkgkList , jyxzyqkgkList } from "@/api/sunVillage_info/fixedAssets";
import Cookies from "js-cookie";
export default {
name: "certificateList",
data() {
return {
active: 0,
applicationList:[],
applicationList2:[],
useTypeOptionsY:[],
resourceTypeOptionsY:[],
useTypeOptions: [
{ text: '使用情况', value: '' },
],
loading: false,
finished: false,
loading2: false,
finished2: false,
show: false,
showTab: false,
listLength:'0',
listLength2:'0',
queryParams:{
pageNum:1,
pageSize:10,
isAsc:'desc',
useType:'',
},
queryParams2:{
pageNum:1,
pageSize:10,
isAsc:'desc',
useType:'',
},
nowYear:new Date().getFullYear(),
minDate: new Date(2020, 0, 1),
maxDate: new Date(),
currentDate: new Date(),
yearList:[]
};
},
created() {
this.queryParams.bookId = Cookies.get('bookId');
this.queryParams.deptId = Cookies.get('deptId');
this.getDicts("use_type").then((response) => {
this.useTypeOptionsY = response.data;
response.data.map(rr=>{
this.useTypeOptions.push({
text:rr.dictLabel,
value:rr.dictValue
})
})
});
this.getDicts("resource_type").then((response) => {
this.resourceTypeOptionsY = response.data;
response.data.map(rr=>{
this.resourceTypeOptions.push({
text:rr.dictLabel,
value:rr.dictValue
})
})
});
},
methods: {
getList(){
var _this = this;
console.log(_this.queryParams)
jyxzcqkgkList(_this.queryParams).then(response => {
_this.listLength = response.total;
response.rows.map(res=>{
// res.pictureType = this.selectDictLabel(this.pictureTypeOptions, res.pictureType);
_this.applicationList.push(res);
})

if(_this.applicationList.length >= response.total){
_this.finished = true;
return;
}else{
_this.loading = false;
_this.queryParams.pageNum += 1 ;
}
});
},
getList2(){
var _this = this;
console.log(_this.queryParams2)
jyxzyqkgkList(_this.queryParams2).then(response => {
_this.listLength2 = response.total;
response.rows.map(res=>{
// res.pictureType = this.selectDictLabel(this.pictureTypeOptions, res.pictureType);
_this.applicationList2.push(res);
})

if(_this.applicationList2.length >= response.total){
_this.finished2 = true;
return;
}else{
_this.loading2 = false;
_this.queryParams2.pageNum += 1 ;
}
});
},
changeUseType(val){
this.queryParams.useType = val;
this.queryParams.pageNum = 1;
this.applicationList = [];
this.getList();
},
changeUseType2(val){
this.queryParams2.useType = val;
this.queryParams2.pageNum = 1;
this.applicationList2 = [];
this.getList2();
},
formatter(type, val) {
if (type === 'year') {
return `${val}年`;
} else if (type === 'month') {
return `${val}月`;
}
return val;
},
onConfirmOpenNy(data){
this.queryParams.ny = this.format(data,'yyyy-MM');
this.currentDate = data;
this.showTab = false;
this.applicationList = [];
this.queryParams.pageNum = 1;
this.getList();
},
tabShow(){
this.showTab = !this.showTab;
},
goDetail(id){
this.$router.push({path:'/sunVillage_info/list_operatingAssets_detail',query: {id:id}})
},
goDetail2(id){
this.$router.push({path:'/sunVillage_info/list_operatingAssets_detail2',query: {id:id}})
}
},
}
</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;
margin-top: 15PX;
.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{
width: 100%;
.title{
display: flex;
font-size: 32px;
align-items: center;
height: 58px;
.icon_box{
width: 34px;
display: block;
height: 34px;
background: url('../../../static/images/sunVillage_info/code_new/list_icon.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;
width: 100%;
.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;
}
p{
margin-left: auto;
color:#df0707;
span{
font-size: 2.45vh;
}
}
}
}
.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;
}
}
&.copy{
background: #79cf13;
margin-left: 10PX;
.icon {
width: 25px;
height: 25px;
background: url('../../assets/images/sunVillage_info/list_icon_copy.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>

+ 193
- 0
src/views/sunVillage_info/list_operatingAssets_detail.vue Voir le fichier

@@ -0,0 +1,193 @@
<template>
<div class="home_wrapper">
<div class="header_main">
固定资产详情
<div class="return_btn" @click="onClickLeft"></div>
</div>
<div class="list_main">
<van-divider>固定资产信息</van-divider>
<van-field v-model="form.name" label="资产名称" placeholder="资产名称" input-align="right" :border="false"/>
<van-field v-model="form.useType" label="使用状态" placeholder="使用状态" input-align="right" :border="false"/>
<van-field v-model="form.originalValue" label="原值" placeholder="原值" input-align="right" :border="false"/>
<van-field v-model="form.buildTime" label="构建时间" placeholder="构建时间" input-align="right" :border="false"/>
<van-field v-model="form.quantity" label="数量" placeholder="数量" input-align="right" :border="false"/>
<van-field v-model="form.unit" label="单位" placeholder="单位" input-align="right" :border="false"/>
<div v-if="form.contractionId">
<van-divider>关联合同信息</van-divider>
<van-field v-model="form.rentLessee" label="承租人" placeholder="承租人" input-align="right" :border="false"/>
<van-field v-model="form.contractYears" label="年限" placeholder="年限" input-align="right" :border="false"/>
<van-field v-model="form.totalAmount" label="合同金额" placeholder="合同金额" input-align="right" :border="false"/>
<van-field v-model="form.receivedAmount" label="已结款" placeholder="已结款" input-align="right" :border="false"/>
</div>
</div>
</div>
</template>

<script>
import {jyxzcqkgkDetail} from "@/api/sunVillage_info/fixedAssets";

export default {
name: "listMultipleLotsDetail",
data() {
return {
form: {},
useTypeOptions: []
};
},
created() {
this.getDicts("use_type").then((response) => {
this.useTypeOptions = response.data;
});
this.getDetail();
},
methods: {
getDetail() {
let query = {
translate_dict: 1
};
jyxzcqkgkDetail(this.$route.query.id).then((res) => {
if (res.code === 200) {
res.data.useType = this.selectDictLabel(this.useTypeOptions, res.data.useType);
this.form = res.data;
}
})
},

},
}
</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;
}
}

.release_head {
height: 90px;
padding: 0 23px;
display: flex;
align-items: center;
font-size: 26px;
color: #929292;

.people {
flex: 1;
display: flex;
align-items: center;

.icon {
width: 24px;
height: 21px;
background: url('../../assets/images/sunVillage_info/details_icon_1.png') no-repeat;
background-size: 100% 100%;
display: block;
margin-right: 8px;
}
}

.time {
flex: 1;
display: flex;
align-items: center;
justify-content: flex-end;

.icon {
width: 25px;
height: 25px;
background: url('../../assets/images/sunVillage_info/details_icon_2.png') no-repeat;
background-size: 100% 100%;
display: block;
margin-right: 8px;
}
}
}

.release_conetnt {
padding: 0 22px;
font-size: 32px;
color: #252525;
line-height: 44px;

img {
max-width: 100%;
margin-bottom: 16px;
}

p {
margin-bottom: 16px;
}
}

.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: auto;
display: flex;
align-items: center;
}

/deep/ .van-cell--required::before {
left: 85PX;
}

/deep/ .van-field__error-message {
display: none;
}
}
</style>

+ 199
- 0
src/views/sunVillage_info/list_operatingAssets_detail2.vue Voir le fichier

@@ -0,0 +1,199 @@
<template>
<div class="home_wrapper">
<div class="header_main">
资源性资产详情
<div class="return_btn" @click="onClickLeft"></div>
</div>
<div class="list_main">
<van-divider>资源性资产信息</van-divider>
<van-field v-model="form.resourceType" label="资源类型" placeholder="资源类型" input-align="right" :border="false"/>
<van-field v-model="form.useType" label="使用情况" placeholder="使用情况" input-align="right" :border="false"/>
<van-field v-model="form.totalArea" label="面积" placeholder="面积" input-align="right" :border="false"/>
<div v-if="form.contractionId">
<van-divider>关联合同信息</van-divider>
<van-field v-model="form.usedArea" label="承租规模" placeholder="承租规模" input-align="right" :border="false"/>
<van-field v-model="form.rentLessee" label="承租人" placeholder="承租人" input-align="right" :border="false"/>
<van-field v-model="form.contractYears" label="年限" placeholder="年限" input-align="right" :border="false"/>
<van-field v-model="form.totalAmount" label="合同金额" placeholder="合同金额" input-align="right" :border="false"/>
<van-field v-model="form.receivedAmount" label="已结款" placeholder="已结款" input-align="right" :border="false"/>
</div>
</div>
</div>
</template>

<script>
import {jyxzyqkgkDetail} from "@/api/sunVillage_info/fixedAssets";
export default {
name: "listMultipleLotsDetail",
data() {
return {
form: {},
useTypeOptions: [],
usedTypeOptions: [],
resourceTypeOptions: []
};
},
created() {
this.getDicts("use_type").then((response) => {
this.useTypeOptions = response.data;
});
this.getDicts("used_area").then((response) => {
this.usedTypeOptions = response.data;
});
this.getDicts("resource_type").then((response) => {
this.resourceTypeOptions = response.data;
});
this.getDetail();
},
methods: {
getDetail() {
let query = {
translate_dict: 1
};
jyxzyqkgkDetail(this.$route.query.id).then((res) => {
if (res.code === 200) {
res.data.useType = this.selectDictLabel(this.useTypeOptions, res.data.useType);
res.data.resourceType = this.selectDictLabel(this.resourceTypeOptions, res.data.resourceType);
this.form = res.data;
}
})
},

},
}
</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;
}
}

.release_head {
height: 90px;
padding: 0 23px;
display: flex;
align-items: center;
font-size: 26px;
color: #929292;

.people {
flex: 1;
display: flex;
align-items: center;

.icon {
width: 24px;
height: 21px;
background: url('../../assets/images/sunVillage_info/details_icon_1.png') no-repeat;
background-size: 100% 100%;
display: block;
margin-right: 8px;
}
}

.time {
flex: 1;
display: flex;
align-items: center;
justify-content: flex-end;

.icon {
width: 25px;
height: 25px;
background: url('../../assets/images/sunVillage_info/details_icon_2.png') no-repeat;
background-size: 100% 100%;
display: block;
margin-right: 8px;
}
}
}

.release_conetnt {
padding: 0 22px;
font-size: 32px;
color: #252525;
line-height: 44px;

img {
max-width: 100%;
margin-bottom: 16px;
}

p {
margin-bottom: 16px;
}
}

.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: auto;
display: flex;
align-items: center;
}

/deep/ .van-cell--required::before {
left: 85PX;
}

/deep/ .van-field__error-message {
display: none;
}
}
</style>

+ 470
- 0
src/views/sunVillage_info/list_revenueAndExpenditure.vue Voir le fichier

@@ -0,0 +1,470 @@
<template>
<div class="home_wrapper">
<div
class="header_main"
style=""
>
收支明细公开
<div class="return_btn" @click="onClickLeft"></div>
<div class="add_btn" @click="goAdd" v-show="showBtn"></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.ny == '' ? '全部': queryParams.ny}}</div>
<div class="total_r">共{{listLength}}条公告</div>
</div>
<van-popup v-model="showTab" position="bottom">
<van-datetime-picker
v-model="currentDate"
type="year-month"
title="选择年月"
:min-date="minDate"
:max-date="maxDate"
:formatter="formatter"
@confirm="onConfirmOpenNy"
/>
</van-popup>
<!-- <div class="record_list" v-if="showTab">-->
<!-- <div :class="{'flex_block':true , 'current':queryParams.year == ''}" @click="tabClick('')">全部</div>-->
<!-- <div v-for="(item,index) in yearList" :key="index" :class="{'flex_block':true , 'current':queryParams.year == item}" @click="tabClick(item)">{{item}}</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" @click="goDetail(item.id)">
<div class="title">
<i class="icon_box"></i>
<p class="news_title">{{item.voucherSummary}}</p>
</div>
<div class="time">
<!-- <div class="icon_time"></div>-->
{{item.bookDate}}
<p v-if="item.jieAmount" style="color: #df0707">¥ <span>{{item.jieAmount}}</span>元</p>
<p v-if="item.daiAmount" style="color: #1ddf07">¥ <span>{{item.daiAmount}}</span>元</p>
</div>
</div>
</div>

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

<script>
import { financialPublicDetailReport , otherRemove } from "@/api/sunVillage_info/fixedAssets";
import Cookies from "js-cookie";
import request from '@/utils/request'
export default {
name: "certificateList",
data() {
return {
applicationList:[],
applicationListSecond:[],
assetStatusOptions:[],
otherGkTypeOptions:[],
auditStatus:[],
loading: false,
finished: false,
show: false,
showTab: false,
fileList:[],
listLength:'0',
searchInput:'',
queryParams:{
pageNum:1,
pageSize:10,
ny: this.format(new Date(),'yyyy-MM'),
isAsc:'desc'
},
uploadFiles1:[],
projectId:'',
projectIndex:'',
showBtn:true,
nowYear:new Date().getFullYear(),
minDate: new Date(2020, 0, 1),
maxDate: new Date(),
currentDate: new Date(),
yearList:[]
};
},
created() {
this.queryParams.bookId = Cookies.get('bookId');
this.queryParams.deptId = Cookies.get('deptId');
this.queryParams.otherType = this.$route.query.typeX;
if (this.$route.query.type == 'code'){
this.showBtn = false;
}
},
methods: {
getList(){
var _this = this;
console.log(_this.queryParams)
financialPublicDetailReport(_this.queryParams).then(response => {
_this.listLength = response.total;
response.rows.map(res=>{
// res.pictureType = this.selectDictLabel(this.pictureTypeOptions, res.pictureType);
_this.applicationList.push(res);
})

if(_this.applicationList.length >= response.total){
_this.finished = true;
return;
}else{
_this.loading = false;
_this.queryParams.pageNum += 1 ;
}
});
},
formatter(type, val) {
if (type === 'year') {
return `${val}年`;
} else if (type === 'month') {
return `${val}月`;
}
return val;
},
onConfirmOpenNy(data){
this.queryParams.ny = this.format(data,'yyyy-MM');
this.currentDate = data;
this.showTab = false;
this.applicationList = [];
this.queryParams.pageNum = 1;
this.getList();
},
tabClick(year){
this.queryParams.year = year ;
this.applicationList = [];
this.getList();
},
tabShow(){
this.showTab = !this.showTab;
},
/** 删除按钮操作 */
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({path: '/sunVillage_info/list_contract_add', query: {type: this.$route.query.typeX}})
},
goDetail(id){
this.$router.push({path:'/sunVillage_info/list_contract_detail',query: {id:id,type:this.$route.query.typeX,showBtn:this.showBtn}})
},
goEdit(id, operation){
this.$router.push({path:'/sunVillage_info/list_contract_edit',query: {id:id,type:this.$route.query.typeX,operation: operation}})
},
goRanking(id,time){
this.$router.push({path:'/sunVillage_info/list_tourists_ranking',query: {id:id,time:time}})
},
goRemove(id,index){
this.$dialog.alert({
title: '提示',
message: '确认删除?',
showCancelButton:true,
})
.then(() => {
otherRemove(id).then(response => {
this.$notify({ type: 'success', message: '删除成功' });
this.applicationList.splice(index,1);
});
})
.catch(() => {
// on cancel
});

}
},
}
</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;
margin-top: 15PX;
.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{
width: 100%;
.title{
display: flex;
font-size: 32px;
align-items: center;
height: 58px;
.icon_box{
width: 34px;
display: block;
height: 34px;
background: url('../../../static/images/sunVillage_info/code_new/list_icon.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;
width: 100%;
.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;
}
p{
margin-left: auto;
color:#df0707;
span{
font-size: 2.45vh;
}
}
}
}
.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;
}
}
&.copy{
background: #79cf13;
margin-left: 10PX;
.icon {
width: 25px;
height: 25px;
background: url('../../assets/images/sunVillage_info/list_icon_copy.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>

+ 6
- 0
src/views/sunVillage_info/list_special_add.vue Voir le fichier

@@ -87,6 +87,12 @@
<!-- &lt;!&ndash; @delete="deleteFile1"&ndash;&gt;-->
<!-- <van-uploader v-model="qrcode" multiple :after-read="afterRead2" @delete="deleteFile2" style="margin-top: 10PX" />-->

<van-field v-model="form.openContent" placeholder="请输入内容" input-align="right" :border="false" >
<template #label>
<p style="margin-left: 5px;">内容</p>
</template>
</van-field>

<van-field v-model="form.remark" placeholder="请输入备注" input-align="right" :border="false" >
<template #label>
<p style="margin-left: 5px;">备注</p>


+ 2
- 1
src/views/sunVillage_info/list_special_detail.vue Voir le fichier

@@ -36,8 +36,9 @@
<van-field name="specialPublicityType" :value="form.differCount" label="有异议数" label-width="auto" input-align="right" :border="false" />
<van-field name="specialPublicityType" :value="form.agreeCount" label="无异议数" label-width="auto" input-align="right" :border="false" />

<van-field label="内容" :value="form.openContent" placeholder="请输入内容" input-align="right" :border="false" />
<van-field name="remake" :value="form.remark" label="备注" input-align="right" :border="false"/>
<van-field name="remake" :value="form.readCount" label="阅读量" input-align="right" :border="false"/>
</div>

</van-form>


+ 7
- 2
src/views/sunVillage_info/list_special_detail_vote.vue Voir le fichier

@@ -34,9 +34,11 @@
<van-field name="specialPublicityType" :value="form.specialPublicityType" label="公示类型" label-width="auto" input-align="right" :border="false" />
<van-field name="specialPublicityType" :value="form.differCount" label="有异议数" label-width="auto" input-align="right" :border="false" />
<van-field name="specialPublicityType" :value="form.agreeCount" label="无异议数" label-width="auto" input-align="right" :border="false" />
<van-field label="内容" :value="form.openContent" placeholder="请输入内容" input-align="right" :border="false" />
<van-field name="remake" :value="form.remark" label="备注" input-align="right" :border="false"/>

<van-field name="remake" :value="form.readCount" label="阅读量" input-align="right" :border="false"/>

</div>
<div v-if="showHasVote" style="margin: 16px auto;display: flex;justify-content: space-evenly;padding: 0 25px">
<van-button round block type="danger" @click="hasVote('1')">有异议</van-button>
@@ -47,7 +49,7 @@
</template>
<script>
import CommonUpload from "@/components/form/CommonUpload.vue";
import {specialPublicityDetail, updateSpecialPublicityCount} from "@/api/sunVillage_info/fixedAssets";
import {specialPublicityDetail, updateSpecialPublicityCount, addReadCount} from "@/api/sunVillage_info/fixedAssets";
import Cookies from "js-cookie";
export default {
name: "otherOpenDetail",
@@ -74,6 +76,9 @@
this.queryParams.deptId = Cookies.get('deptId');
this.queryParams.id = this.$route.query.id;
this.showBtn = this.$route.query.showBtn=='false'?false:true;
addReadCount({id: this.$route.query.id}).then((resp) => {

});
this.getDicts("special_publicity_type").then((response) => {
this.specialPublicityTypeOptions = response.data;
this.getDetail();


+ 5
- 0
src/views/sunVillage_info/list_special_edit.vue Voir le fichier

@@ -87,6 +87,11 @@
<!-- &lt;!&ndash; @delete="deleteFile1"&ndash;&gt;-->
<!-- <van-uploader v-model="qrcode" multiple :after-read="afterRead2" @delete="deleteFile2" style="margin-top: 10PX" />-->

<van-field v-model="form.openContent" placeholder="请输入内容" input-align="right" :border="false" >
<template #label>
<p style="margin-left: 5px;">内容</p>
</template>
</van-field>
<van-field v-model="form.remark" placeholder="请输入备注" input-align="right" :border="false" >
<template #label>
<p style="margin-left: 5px;">备注</p>


+ 326
- 0
src/views/sunVillage_info/login_code_new.vue Voir le fichier

@@ -0,0 +1,326 @@
<template>
<div class="home_wrapper">
<div class="return_btn" @click="onClickLeft"></div>
<div class="focus_head">
<div class="title">
<p>您好,</p>
<p>欢迎使用阳光三资</p>
</div>
</div>
<div class="login_main">
<van-form @submit="handleLogin">
<div class="login_from">
<div class="flex_block">
<div class="flex_input_main">
<div class="icon_wrap user"></div>
<div class="input_wrap">
<input type="text" v-model="formData.memberName" class="ipt" placeholder="姓名"/>
</div>
</div>
</div>
<div class="flex_block">
<div class="flex_input_main">
<div class="icon_wrap password"></div>
<div class="input_wrap">
<input type="text" v-model="formData.idcard" class="ipt" placeholder="身份证号码"/>
</div>
</div>
</div>
<!-- <div class="flex_block">-->
<!-- <div class="flex_input_main valid">-->
<!-- <div class="icon_wrap valid"></div>-->
<!-- <div class="input_wrap">-->
<!-- <input type="text" v-model="formData.code" class="ipt" maxlength="4" placeholder="请输入验证码"/>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="valid_main">-->
<!-- <img :src="codeUrl" @click="getCode" />-->
<!-- </div>-->
<!-- </div>-->
<!-- <div style="display: flex;align-items: center;justify-content: space-between;">
<van-checkbox v-model="formData.identityCheck">核身校验</van-checkbox>
<van-checkbox v-model="formData.rememberMe">记住我的信息</van-checkbox>
</div> -->
<!-- <van-checkbox v-model="formData.rememberMe">记住我的信息</van-checkbox>-->
</div>
<div class="login_btn">
<!-- <div class="btn" :loading="loading">登录</div>-->
<van-button
class="btn"
round
block
type="info"
native-type="submit"
:loading="loading"
>登录</van-button>
</div>

</van-form>
<p class="copy_name">技术支持:中农融信(北京)科技股份有限公司</p>
</div>
</div>
</template>

<script>
import { getCodeImg, getSmsCode } from "@/api/login";
import { checkFarmer, allowFaceVerify } from "@/api/sunVillage_info/fixedAssets";
import { getFamilyMemberList } from "@/api/sunVillage_info/homestead/familyMember";
import Cookies from "js-cookie";
import { encrypt, decrypt } from "../../utils/jsencrypt";
//引用wx sdk
import wx from "weixin-js-sdk";
export default {
name: "loginCode",
data() {
return {
formData: {
memberName:'',
idcard:'',
bookId:'',
deptId:null,
facialAt:null,
isFacial:null,
headSculpture:null,
rememberMe:false,
identityCheck:false,

},
loading: false,
codeUrl: "", //验证码
isSmsLogin: false, //是否手机验证码
computeTime: 0,
height:0,
show:true
};
},
created() {
this.height = document.body.clientHeight
this.getCookie();
//this.formData.deptId = Cookies.get('deptId'); // 要关掉这个
this.allowIdentityVerified();
},
methods: {
getCookie() {
const memberName = Cookies.get("memberName");
const idcard = Cookies.get("idcard");
const rememberMe = Cookies.get("rememberInformation");
this.formData = {
memberName: memberName === undefined ? this.formData.memberName : memberName,
idcard: idcard === undefined ? this.formData.idcard : idcard,
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
};

},
handleLogin(values) {
if (this.formData.rememberMe) {
Cookies.set("memberName", this.formData.memberName, { expires: 30 });
Cookies.set("idcard", this.formData.idcard, { expires: 30 });
Cookies.set("rememberInformation", this.formData.rememberMe, { expires: 30 });
} else {
Cookies.remove("username");
Cookies.remove("password");
Cookies.remove("rememberInformation");
}
//账号密码登录
if (this.formData.memberName == "") {
this.$dialog.alert({
message: '姓名不能为空',
});
return false;
} else if (this.formData.idcard == "") {
this.$dialog.alert({
message: '身份证不能为空',
});
return false;
}

checkFarmer(this.formData).then(response => {
// console.log(response.data)
if (response.code == 200){
let seconds = 3600;

let expires = new Date(new Date() * 1 + seconds * 1000);
getFamilyMemberList({idcard:this.formData.idcard/*,familyStatus:"02"*/}).then(res => {
const farmerCode = res.rows[0].farmerCode;
Cookies.set("farmerCode",farmerCode, { expires: 30 });
Cookies.set("user", response.data, { expires: expires });

// 可能不是从无权限公开页面跳入本页面的,可能直接封装的本页面作为入口,故重置以下
Cookies.set("bookId", res.rows[0].bookId, {expires: 30,});
Cookies.set("deptId", res.rows[0].deptId, {expires: 30,});

if (this.formData.identityCheck){
this.$router.push({
path: '/sunVillage_info/identity_check',
query: { responseData: response.data }});
return;
}
this.$router.push({path:'/sunVillage_info/index_code_rights_new'})
})

}
});
},
allowIdentityVerified() {
allowFaceVerify().then(response => {
this.formData.identityCheck = JSON.parse(response.data);
});
}
},
};
</script>

<style scoped lang="scss">
/deep/ .van-checkbox__label{
color: #2376EC;
}
/deep/ .van-checkbox{
/*justify-content: right;*/
}
.home_wrapper{
width: 100vw;
min-height: 100vh;
background: #F5F6F9 url('../../../static/images/sunVillage_info/sunVillage_info_login_code_new_bg.png') no-repeat center top;
background-size: 100% auto;
.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;
}
.focus_head{
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 0 0 7vw;
height: 30vh;
.title{
color: #112F6A;
font-family: 黑体;
font-size: 3.5vh;
margin-top: 80px;
p{
margin-bottom: 1vh;
}
}
}
.focus_info{
img{
width: 94%;
margin: 0 auto;
display: block;
}
}
.login_main{
width: 100%;
height: 70vh;
/*height: 550px;*/
background: #ffffff;
background-size: 100% 100%;
margin: -1PX auto 0;
padding:50px;
border-radius: 35PX 35PX 0 0;
position: relative;
.copy_name{
position: absolute;
bottom: 2vh;
text-align: center;
color: #707070;
width: calc(100% - 100px);
}
}
.login_from{

.flex_block{
margin-bottom: 40px;
display: flex;
justify-content:space-between;
.flex_input_main{
position: relative;
display: flex;
flex: 1;
align-items:center;
background: #E7F0FF;
border-radius: 62px;
height: 50Px;
.icon_wrap{
width: 35px;
height: 35px;
&.user{
background: url('../../assets/images/sunVillage_info/login_icon_1.png') no-repeat;
background-size: 100% 100%;
margin-left: 30px;
}
&.password{
background: url('../../assets/images/sunVillage_info/login_icon_2_code.png') no-repeat;
height: 25px;
background-size: 100% 100%;
margin-left: 30px;
}
&.valid{
background: url('../../assets/images/sunVillage_info/login_icon_3.png') no-repeat;
background-size: 100% 100%;
margin-left: 30px;
}
}
.input_wrap{
flex: 1;
margin-left: 16px;
padding-right: 30px;
.ipt{
width: 100%;
height: 48px;
background:transparent;
font-size: 30px;
color: #3f3d56;
}
}
.showHidden{
width: 32px;
height: 32px;
background: url('../../assets/images/sunVillage_info/login_icon_4.png') no-repeat;
background-size: 100% 100%;
position: absolute;
right: 38px;
cursor: pointer;
&.ico_hide{
background: url('../../assets/images/sunVillage_info/login_icon_5.png') no-repeat;
background-size: 100% 100%;
}
}
&.valid{
flex:0 0 380px;
}
}
.valid_main{
width: 165px;
height: 62px;
border-radius: 30px;
img{
width: 100%;
height: 100%;
border-radius: 30px;
}
}
}
}
.login_btn{
padding-top: 80px;
.btn{
width: 90%;
height: 50PX;
margin:0 auto;
font-size: 32px;
color: #fff;
line-height: 50PX;
text-align: center;
border: none;
background: linear-gradient(to right , #97EDF7 , #2376EC);
}
}
}

</style>

+ 178
- 0
src/views/sunVillage_info/otherOpenNew/otherOpenDetail.vue Voir le fichier

@@ -0,0 +1,178 @@
<template>
<div class="home_wrapper">
<div class="header_main">
{{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 {getOther} from "@/api/sunVillage_info/otherOpen";
export default {
name: "otherOpenDetail",
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: '综合公开',
};
},
created() {
this.id = this.$route.query.id;
this.getDetail();
},
methods: {
getDetail() {
if(!this.id)
{
this.back();
return;
}

getOther(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>

+ 280
- 0
src/views/sunVillage_info/otherOpenNew/otherOpenEdit.vue Voir le fichier

@@ -0,0 +1,280 @@
<template>
<div class="home_wrapper">
<div class="header_main">
{{titlePreifx}}{{title}}
<div class="return_btn" @click="back()"></div>
</div>

<van-form ref="formData" :show-error-message="false" @submit="submit">
<div class="list_main">

<field-select
v-if="showTypeSelector"
v-model="form.otherType"
label="公开类型"
value-key="dictLabel"
data-key="dictValue"
placeholder="请选择公开类型"
:rules="rules.otherType"
required
size="large"
:columns="otherTypeOptions"/>

<van-field name="otherName" v-model="form.otherName" label="公开名称" input-align="right" required :rules="rules.otherName" placeholder="请输入公开名称" size="large" :maxlength="150"/>

<field-date-picker
name="openAt"
class="field_no-label"
v-model="form.openAt"
placeholder="请选择公开时间"
formatter="yyyy-MM-dd"
input-align="right"
type="date"
label="公开时间"
:required="true"
:rules="rules.openAt"
size="large"
/>
<van-field name="openContent" label="公开内容" size="large" :border="false"/>
<vue-html5-editor :content="content" :height="300" @change="updateData" style="margin-top: 0.2rem;"></vue-html5-editor>

<van-field
name="openPic"
label="公开图片"
input-align="right"
:border="false"
>
</van-field>
<CommonUpload name="openPic" v-model="form.openPic" accept="image/*" multiple/>

<van-field
name="openFile"
label="公开文件"
input-align="right"
:border="false"
>
</van-field>
<CommonUpload name="openFile" v-model="form.openFile" accept="*" multiple/>

<van-field name="remark" v-model="form.remark" label="备注" input-align="left" size="large" :maxlength="255" placeholder="请输入备注"/>

</div>

<div style="margin: 16px auto;width: 50%;">
<van-button round block type="primary" native-type="submit">
保存
</van-button>
</div>

</van-form>
</div>
</template>
<script>
import CommonUpload from "@/components/form/CommonUpload.vue";
import FieldDatePicker from "@/components/form/FieldDatePicker.vue";
import {Toast} from "vant";
import {addOther, getOther, updateOther} from "@/api/sunVillage_info/otherOpen";
import FieldSelect from "@/components/form/FieldSelect.vue";
export default {
name: "otherOpenEdit",
components: {FieldSelect, FieldDatePicker, CommonUpload},
data() {
return {
form: {
id: null,
bookId: null,
deptId: null,
deptName: null,
otherName: null,
otherType: null,
openYear: null,
openAt: null,
openContent: null,
openFile: null,
openPic: null,
remark: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
},
rules: {
openAt: [{message: '请选择公开时间', required: true}],
otherName: [{message: '请输入公开名称', required: true}],
otherType: [{message: '请选择公开类型', required: true}],
},
id: null,
intent: null,
content: '',
otherTypeOptions: [],
otherType: null,
title: '综合公开',
};
},
created() {
this.id = this.$route.query.id;
this.intent = this.$route.query.intent;
this.otherType = this.$route.query.otherType;
if(this.isEdit)
this.getDetail();
else
{
this.form.otherType = this.$route.query.otherType;
this.getDicts('other_gk_type').then((resp) => {
this.otherTypeOptions = resp.data;
const dict = resp.data.find((x) => x.dictValue == this.form.otherType);
if(dict)
this.title = dict.dictLabel;
});
}
},
methods: {
getDetail() {
if(!this.id)
{
this.back();
return;
}

getOther(this.id).then((resp) => {
this.form = resp.data;
this.content = this.form.openContent || '';
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(ti) {
if(ti > 0)
setTimeout(() => this.$router.back(), ti);
else
this.$router.back();
},
updateData(t) {
this.form.openContent = t;
},
submit() {
const loading = Toast.loading({
message: '保存中...',
duration: 0,
});
if(this.form.id)
{
updateOther(this.form).then((resp) => {
this.$notify({ type: 'success', message: '保存成功' });
this.back(1500);
}).finally(() => {
loading.clear();
});
}
else
{
addOther(this.form).then((resp) => {
this.$notify({ type: 'success', message: '新增成功' });
this.back(1500);
}).finally(() => {
loading.clear();
});
}
},
},
computed: {
isAdd() {
return this.intent === 'add';
},
isEdit() {
return this.intent === 'edit';
},
titlePreifx() {
return this.intent === 'edit' ? '编辑' : '新增';
},
showTypeSelector() {
return this.isAdd && !this.otherType;
},
},
}
</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;
}

}







</style>

+ 485
- 0
src/views/sunVillage_info/otherOpenNew/otherOpenList.vue Voir le fichier

@@ -0,0 +1,485 @@
<template>
<div class="home_wrapper">
<div class="header_main"
:style="`background-image:url(${require('@/assets/images/sunVillage_info/list_head.png')})`"
>
<p class="title" @click="openTypeChooser">{{title}}</p>
<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">

<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 class="opera_btn edit" @click.stop="edit(item.id)">
<i class="icon "></i>
</div>
<div class="opera_btn delete" @click.stop="remove(item.id)">
<i class="icon"></i>
</div>
</div>
</div>
</paged-list>

</div>

<van-action-sheet
v-model="showType"
:actions="otherTypeOptions"
cancel-text="取消"
close-on-click-action
@select="changeType"
/>
</div>
</template>

<script>
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},
data() {
return {
dataList:[],
total: 0,
queryParams:{
pageNum:1,
pageSize:10,
orderByColumn:'openAt',
isAsc:'desc',
openYear:'',
otherType: null,
},
yearList: [],
reload: false,
showTab: false,
otherTypeOptions: [],
showType: false,
};
},
created() {
this.queryParams.otherType = this.$route.query.otherType || '';
this.getDicts('other_gk_type').then((resp) => {
let arr = [];
arr.push({
dictValue: '',
dictLabel: '综合公开',
name: '全部',
});
resp.data.forEach((x) => {
x.name = x.dictLabel;
arr.push(x);
});
this.otherTypeOptions = arr;
});
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) {
return new Promise((resolve, reject) => {
listOther(this.queryParams).then((response) => {
response.rows.forEach((x) => this.dataList.push(x));
resolve(response);
});
});
},
gotoViewItem(id) {
let parms = {
id: id,
intent: 'view',
};
if(this.queryParams.otherType)
parms.otherType = this.queryParams.otherType;
this.$router.push({
name: 'otherOpenDetail',
query: parms,
}).catch(() => {});
},
viewItem(id){
this.$router.replace(`/sunVillage_info/otherOpenIndex?otherType=${this.queryParams.otherType || ''}`, () => this.gotoViewItem(id), () => this.gotoViewItem(id) );
},
gotoAdd() {
let parms = {
intent: 'add',
};
if(this.queryParams.otherType)
parms.otherType = this.queryParams.otherType;
this.$router.push({
name: 'otherOpenEdit',
query: parms,
}).catch(() => {});
},
add() {
this.$router.replace(`/sunVillage_info/otherOpenIndex?otherType=${this.queryParams.otherType || ''}`, () => this.gotoAdd(), () => this.gotoAdd() );
},
gotoEdit(id) {
let parms = {
id: id,
intent: 'edit',
};
if(this.queryParams.otherType)
parms.otherType = this.queryParams.otherType;
this.$router.push({
name: 'otherOpenEdit',
query: parms,
}).catch(() => {});
},
edit(id) {
this.$router.replace(`/sunVillage_info/otherOpenIndex?otherType=${this.queryParams.otherType || ''}`, () => this.gotoEdit(id), () => this.gotoEdit(id) );
},
remove(id) {
Dialog.confirm({
title: '警告',
message: '确认删除该项?',
})
.then(() => {
const loading = Toast.loading({
message: '删除中...',
duration: 0,
});
delOther(id).then((resp) => {
this.$notify({ type: 'success', message: '删除成功' });
this.$refs.pagedList.getList();
}).finally(() => {
loading.clear();
});
})
.catch(() => {});
},
back() {
this.$router.replace('/sunVillage_info/otherOpenIndex', () => this.$router.back(), () => this.$router.back() );
},
tabClick(year){
this.queryParams.openYear = year;
this.reload = true;
},
tabShow(){
this.showTab = !this.showTab;
},
openTypeChooser() {
this.showType = true;
},
changeType(action, index) {
this.queryParams.otherType = action.dictValue;
this.reload = true;
},
},
computed: {
title() {
if(this.queryParams.otherType)
{
const dict = this.otherTypeOptions.find((x) => x.dictValue == this.queryParams.otherType);
if(dict)
return dict.dictLabel;
}
return '综合公开';
},
},
}
</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;
}

.title {
}
.title::before {
display: inline-block;
width: 24px;
height: 24px;
content: '';
background-image: url('../../../assets/images/icon/index_header_focus.png');
background-repeat: no-repeat;
background-size: contain;
margin-right: 0.2rem;
transform: rotate(
180deg
);
}
.title::after {
width: 0.32rem;
height: 0.32rem;
display: inline-block;
content: '';
background-image: url('../../../assets/images/icon/index_header_focus.png');
background-repeat: no-repeat;
background-size: contain;
margin-left: 0.2rem;
}
}
.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>

+ 187
- 0
src/views/sunVillage_info/otherOpenNew/otherOpenVisitDetail.vue Voir le fichier

@@ -0,0 +1,187 @@
<template>
<div class="home_wrapper">
<div class="header_main"
:style="`background-image:url(${require('@/assets/images/sunVillage_info/list_head.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.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>

+ 441
- 0
src/views/sunVillage_info/otherOpenNew/otherOpenVisitList.vue Voir le fichier

@@ -0,0 +1,441 @@
<template>
<div class="home_wrapper">
<div class="header_main"
:style="`background-image:url(${require('@/assets/images/sunVillage_info/list_head.png')})`"
>
<p class="title" @click="openTypeChooser">{{title}}</p>
<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>

<van-action-sheet
v-model="showType"
:actions="otherTypeOptions"
cancel-text="取消"
close-on-click-action
@select="changeType"
/>
</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: [],
reload: false,
showTab: false,
otherTypeOptions: [],
showType: 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.otherType || '';
this.getDicts('other_gk_type').then((resp) => {
let arr = [];
arr.push({
dictValue: '',
dictLabel: '综合公开',
name: '全部',
});
resp.data.forEach((x) => {
x.name = x.dictLabel;
arr.push(x);
});
this.otherTypeOptions = arr;
});
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);
});
});
},
gotoViewItem(id) {
let parms = {
id: id,
intent: 'view',
};
if(this.queryParams.otherType)
parms.otherType = this.queryParams.otherType;
this.$router.push({
name: 'otherOpenVisitDetailNew',
query: parms,
}).catch(() => {});
},
viewItem(id){
this.$router.replace(`/sunVillage_info/otherOpenVisitIndex?otherType=${this.queryParams.otherType || ''}`, () => this.gotoViewItem(id), () => this.gotoViewItem(id) );
},
back() {
this.$router.replace('/sunVillage_info/otherOpenVisitIndex', () => this.$router.back(), () => this.$router.back() );
},
tabClick(year){
this.queryParams.openYear = year;
this.reload = true;
},
tabShow(){
this.showTab = !this.showTab;
},
openTypeChooser() {
this.showType = true;
},
changeType(action, index) {
this.queryParams.otherType = action.dictValue;
this.reload = true;
},
},
computed: {
title() {
if(this.queryParams.otherType)
{
const dict = this.otherTypeOptions.find((x) => x.dictValue == this.queryParams.otherType);
if(dict)
return dict.dictLabel;
}
return '综合公开';
},
},
}
</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;
}

.title {
}
.title::before {
display: inline-block;
width: 24px;
height: 24px;
content: '';
background-image: url('../../../assets/images/icon/index_header_focus.png');
background-repeat: no-repeat;
background-size: contain;
margin-right: 0.2rem;
transform: rotate(
180deg
);
}
.title::after {
width: 0.32rem;
height: 0.32rem;
display: inline-block;
content: '';
background-image: url('../../../assets/images/icon/index_header_focus.png');
background-repeat: no-repeat;
background-size: contain;
margin-left: 0.2rem;
}
}
.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>

BIN
static/images/sunVillage_info/code_new/1.png Voir le fichier

Avant Après
Largeur: 109  |  Hauteur: 107  |  Taille: 7.0 KiB

BIN
static/images/sunVillage_info/code_new/2.png Voir le fichier

Avant Après
Largeur: 109  |  Hauteur: 107  |  Taille: 9.0 KiB

BIN
static/images/sunVillage_info/code_new/3.png Voir le fichier

Avant Après
Largeur: 109  |  Hauteur: 107  |  Taille: 9.0 KiB

BIN
static/images/sunVillage_info/code_new/address.png Voir le fichier

Avant Après
Largeur: 10  |  Hauteur: 12  |  Taille: 512 B

BIN
static/images/sunVillage_info/code_new/back.png Voir le fichier

Avant Après
Largeur: 11  |  Hauteur: 12  |  Taille: 251 B

BIN
static/images/sunVillage_info/code_new/index_bg.png Voir le fichier

Avant Après
Largeur: 375  |  Hauteur: 226  |  Taille: 21 KiB

BIN
static/images/sunVillage_info/code_new/list_icon.png Voir le fichier

Avant Après
Largeur: 18  |  Hauteur: 18  |  Taille: 716 B

BIN
static/images/sunVillage_info/code_new/sunVillage_info_index_code_right_header.png Voir le fichier

Avant Après
Largeur: 345  |  Hauteur: 150  |  Taille: 40 KiB

BIN
static/images/sunVillage_info/sunVillage_info_login_code_new_bg.png Voir le fichier

Avant Après
Largeur: 750  |  Hauteur: 976  |  Taille: 288 KiB

Chargement…
Annuler
Enregistrer