庞东旭 2 years ago
parent
commit
e9b8fbaf74
73 changed files with 1868 additions and 5305 deletions
  1. +2
    -0
      .gitignore
  2. +181
    -0
      src/api/sunVillage_info/entity/report.js
  3. BIN
      src/assets/images/sunVillage/1.jpg
  4. BIN
      src/assets/images/sunVillage/2.jpg
  5. BIN
      src/assets/images/sunVillage/3.jpg
  6. BIN
      src/assets/images/sunVillage/4.jpg
  7. BIN
      src/assets/images/sunVillage/5.jpg
  8. BIN
      src/assets/images/sunVillage/6.jpg
  9. BIN
      src/assets/images/sunVillage/7.jpg
  10. BIN
      src/assets/images/sunVillage/8.jpg
  11. BIN
      src/assets/images/sunVillage/9.jpg
  12. BIN
      src/assets/images/sunVillage/TakingPictures.png
  13. BIN
      src/assets/images/sunVillage/TakingPictures_2.png
  14. BIN
      src/assets/images/sunVillage/close.png
  15. BIN
      src/assets/images/sunVillage/consulting_icon.png
  16. BIN
      src/assets/images/sunVillage/head_portrait.jpg
  17. BIN
      src/assets/images/sunVillage/headings_return.png
  18. BIN
      src/assets/images/sunVillage/index_nav_1.png
  19. BIN
      src/assets/images/sunVillage/index_nav_2.png
  20. BIN
      src/assets/images/sunVillage/index_nav_3.png
  21. BIN
      src/assets/images/sunVillage/index_nav_4.png
  22. BIN
      src/assets/images/sunVillage/index_nav_5.png
  23. BIN
      src/assets/images/sunVillage/more.png
  24. BIN
      src/assets/images/sunVillage/select_date_icon.jpg
  25. BIN
      src/assets/images/sunVillage_info/plot_btn_01.png
  26. +57
    -7
      src/components/form/FieldDatePicker.vue
  27. +0
    -38
      src/permission.js
  28. +19
    -325
      src/router/index.js
  29. +512
    -0
      src/utils/expression.js
  30. +11
    -0
      src/utils/index.js
  31. +4
    -0
      src/utils/utils.js
  32. +2
    -1
      src/views/admin.vue
  33. +195
    -46
      src/views/plotPremisesMobile/index.vue
  34. +0
    -123
      src/views/sunVillage/dynamic/financial/details.vue
  35. +0
    -104
      src/views/sunVillage/dynamic/financial/index.vue
  36. +0
    -116
      src/views/sunVillage/dynamic/financial/loan.vue
  37. +0
    -116
      src/views/sunVillage/dynamic/financial/products.vue
  38. +0
    -123
      src/views/sunVillage/dynamic/importantItems/details.vue
  39. +0
    -125
      src/views/sunVillage/dynamic/importantItems/index.vue
  40. +0
    -153
      src/views/sunVillage/dynamic/injoint/assetsPublic.vue
  41. +0
    -174
      src/views/sunVillage/dynamic/injoint/assetsPublic_desc.vue
  42. +0
    -104
      src/views/sunVillage/dynamic/injoint/details.vue
  43. +0
    -100
      src/views/sunVillage/dynamic/injoint/index.vue
  44. +0
    -237
      src/views/sunVillage/dynamic/injoint/meansOf.vue
  45. +0
    -129
      src/views/sunVillage/dynamic/injoint/meansOf_desc.vue
  46. +0
    -153
      src/views/sunVillage/dynamic/injoint/publicResources.vue
  47. +0
    -169
      src/views/sunVillage/dynamic/injoint/publicResources_desc.vue
  48. +0
    -123
      src/views/sunVillage/dynamic/latestReport/details.vue
  49. +0
    -101
      src/views/sunVillage/dynamic/latestReport/index.vue
  50. +0
    -123
      src/views/sunVillage/dynamic/public/details.vue
  51. +0
    -132
      src/views/sunVillage/dynamic/public/index.vue
  52. +0
    -165
      src/views/sunVillage/equity/info.vue
  53. +0
    -118
      src/views/sunVillage/equity/info_desc.vue
  54. +0
    -202
      src/views/sunVillage/equity/shareBonus.vue
  55. +0
    -161
      src/views/sunVillage/equity/shareBonus_amount.vue
  56. +0
    -133
      src/views/sunVillage/equity/shareBonus_num.vue
  57. +0
    -118
      src/views/sunVillage/index.vue
  58. +0
    -109
      src/views/sunVillage/login.vue
  59. +0
    -94
      src/views/sunVillage/throughTrain/consulting.vue
  60. +0
    -143
      src/views/sunVillage/throughTrain/inquiries.vue
  61. +0
    -82
      src/views/sunVillage/throughTrain/kanban/affairsList.vue
  62. +0
    -78
      src/views/sunVillage/throughTrain/kanban/focusDesc.vue
  63. +0
    -79
      src/views/sunVillage/throughTrain/kanban/focusList.vue
  64. +0
    -215
      src/views/sunVillage/throughTrain/kanban/index.vue
  65. +0
    -139
      src/views/sunVillage/throughTrain/my_consulting.vue
  66. +0
    -87
      src/views/sunVillage/user/cooperative.vue
  67. +0
    -327
      src/views/sunVillage/user/index.vue
  68. +0
    -123
      src/views/sunVillage/user/information.vue
  69. +0
    -99
      src/views/sunVillage/user/mobile.vue
  70. +278
    -0
      src/views/sunVillage_info/entityReport/reportList.vue
  71. +596
    -0
      src/views/sunVillage_info/entityReport/reportView.vue
  72. +1
    -1
      src/views/sunVillage_info/login_code.vue
  73. +10
    -10
      src/views/yinnong/my.vue

+ 2
- 0
.gitignore View File

@@ -12,3 +12,5 @@ yarn-error.log*
*.ntvs*
*.njsproj
*.sln

dist.*

+ 181
- 0
src/api/sunVillage_info/entity/report.js View File

@@ -0,0 +1,181 @@
import request from '@/utils/request'

// 查询统计报列表
export function listReporttitle(query) {
return request({
url: '/entity/reporttitle/list',
method: 'get',
params: query
})
}

// 导出统计报
export function exportReporttitle(query) {
return request({
url: '/entity/reporttitle/export',
method: 'get',
params: query
})
}

// 查询统计报详细
export function getReporttitle(id) {
return request({
url: '/entity/reporttitle/get/' + id,
method: 'get'
})
}

// 新增统计报
export function addReporttitle(data) {
return request({
url: '/entity/reporttitle/add',
method: 'post',
data: data
})
}

// 修改统计报
export function updateReporttitle(data) {
return request({
url: '/entity/reporttitle/edit',
method: 'post',
data: data
})
}

// 删除统计报
export function delReporttitle(id) {
return request({
url: '/entity/reporttitle/remove/' + id,
method: 'get'
})
}

// 启用统计报
export function enableReporttitle(id) {
return request({
url: '/entity/reporttitle/enable/' + id,
method: 'post'
})
}

// 禁用统计报
export function disableReporttitle(id) {
return request({
url: '/entity/reporttitle/disable/' + id,
method: 'post'
})
}

// 获取模板
export function getReportTemplate(id) {
return request({
url: '/entity/reporttitle/template/' + id,
method: 'get'
})
}

// 获取横向模板
export function getReportHorizontalTemplate(id) {
return request({
url: '/entity/reporttitle/horizontalTemplate/' + id,
method: 'get'
})
}

// 查询统计填报列表
export function listReport(query) {
return request({
url: '/entity/report/list',
method: 'get',
params: query
})
}

// 导出统计填报
export function exportReport(query) {
return request({
url: '/entity/report/export',
method: 'get',
params: query
})
}

// 查询统计填报详细
export function getReport(id) {
return request({
url: '/entity/report/get/' + id,
method: 'get'
})
}

// 新增统计填报
export function addReport(data) {
return request({
url: '/entity/report/add',
method: 'post',
data: data
})
}

// 修改统计填报
export function updateReport(data) {
return request({
url: '/entity/report/edit',
method: 'post',
data: data
})
}

// 删除统计填报
export function delReport(id) {
return request({
url: '/entity/report/remove/' + id,
method: 'get'
})
}

// 导出统计填报
export function reportExport(id) {
return request({
url: '/entity/report/reportExport/' + id,
method: 'get',
})
}

// 竖向统计
export function summaryStatistics(query) {
return request({
url: '/entity/report/summaryStatistics',
method: 'get',
params: query
})
}

// 导出竖向统计
export function summaryStatisticsExport(query) {
return request({
url: '/entity/report/summaryStatisticsExport',
method: 'get',
params: query
})
}

// 横向统计
export function horizontalSummaryStatistics(query) {
return request({
url: '/entity/report/horizontalSummaryStatistics',
method: 'get',
params: query
})
}

// 导出横向统计
export function horizontalSummaryStatisticsExport(query) {
return request({
url: '/entity/report/horizontalSummaryStatisticsExport',
method: 'get',
params: query
})
}

BIN
src/assets/images/sunVillage/1.jpg View File

Before After
Width: 700  |  Height: 256  |  Size: 31 KiB

BIN
src/assets/images/sunVillage/2.jpg View File

Before After
Width: 116  |  Height: 116  |  Size: 7.4 KiB

BIN
src/assets/images/sunVillage/3.jpg View File

Before After
Width: 700  |  Height: 378  |  Size: 44 KiB

BIN
src/assets/images/sunVillage/4.jpg View File

Before After
Width: 700  |  Height: 256  |  Size: 42 KiB

BIN
src/assets/images/sunVillage/5.jpg View File

Before After
Width: 700  |  Height: 256  |  Size: 39 KiB

BIN
src/assets/images/sunVillage/6.jpg View File

Before After
Width: 319  |  Height: 162  |  Size: 15 KiB

BIN
src/assets/images/sunVillage/7.jpg View File

Before After
Width: 318  |  Height: 162  |  Size: 24 KiB

BIN
src/assets/images/sunVillage/8.jpg View File

Before After
Width: 700  |  Height: 256  |  Size: 34 KiB

BIN
src/assets/images/sunVillage/9.jpg View File

Before After
Width: 100  |  Height: 100  |  Size: 3.8 KiB

BIN
src/assets/images/sunVillage/TakingPictures.png View File

Before After
Width: 120  |  Height: 112  |  Size: 2.2 KiB

BIN
src/assets/images/sunVillage/TakingPictures_2.png View File

Before After
Width: 120  |  Height: 112  |  Size: 1.7 KiB

BIN
src/assets/images/sunVillage/close.png View File

Before After
Width: 55  |  Height: 55  |  Size: 1.2 KiB

BIN
src/assets/images/sunVillage/consulting_icon.png View File

Before After
Width: 144  |  Height: 76  |  Size: 4.7 KiB

BIN
src/assets/images/sunVillage/head_portrait.jpg View File

Before After
Width: 64  |  Height: 64  |  Size: 1.4 KiB

BIN
src/assets/images/sunVillage/headings_return.png View File

Before After
Width: 16  |  Height: 26  |  Size: 1.2 KiB

BIN
src/assets/images/sunVillage/index_nav_1.png View File

Before After
Width: 64  |  Height: 64  |  Size: 722 B

BIN
src/assets/images/sunVillage/index_nav_2.png View File

Before After
Width: 64  |  Height: 64  |  Size: 976 B

BIN
src/assets/images/sunVillage/index_nav_3.png View File

Before After
Width: 64  |  Height: 64  |  Size: 1.1 KiB

BIN
src/assets/images/sunVillage/index_nav_4.png View File

Before After
Width: 64  |  Height: 64  |  Size: 1.3 KiB

BIN
src/assets/images/sunVillage/index_nav_5.png View File

Before After
Width: 64  |  Height: 64  |  Size: 839 B

BIN
src/assets/images/sunVillage/more.png View File

Before After
Width: 14  |  Height: 26  |  Size: 1.1 KiB

BIN
src/assets/images/sunVillage/select_date_icon.jpg View File

Before After
Width: 26  |  Height: 26  |  Size: 1.5 KiB

BIN
src/assets/images/sunVillage_info/plot_btn_01.png View File

Before After
Width: 341  |  Height: 120  |  Size: 7.6 KiB

+ 57
- 7
src/components/form/FieldDatePicker.vue View File

@@ -14,18 +14,33 @@
:rules="rules"
:required="required"
:label-width="labelWidth || 'auto'"
:input-align="inputAlign || 'left'"
>
<!-- <template #button>
<van-icon name="notes-o" size="20"/>
</template>-->
</van-field>
<van-popup v-model="popupVisible" position="bottom">

<van-popup v-model="popupVisible" position="bottom" v-if="type === 'year'">
<van-picker
ref="picker"
:title="label"
show-toolbar
:columns="yearColumns"
:readonly="readonly"
v-model="internalValue"
@confirm="onConfirm"
@cancel="onCancel"
@change="onChanged"
/>
</van-popup>
<van-popup v-model="popupVisible" position="bottom" v-else>
<van-datetime-picker
ref="picker"
v-model="internalValue"
:type="type || 'date'"
:readonly="readonly"
:title="label"
:title="label || ''"
@confirm="onConfirm"
@cancel="onCancel"
@change="onChanged"
@@ -37,14 +52,16 @@
<script>

import { formatDate } from "element-ui/src/utils/date-util.js"
import {strtotime} from "@/utils";

export default {
name: "fieldDatePicker",
props: [
'name', 'readonly', 'value', 'label', 'placeholder', 'required', 'rules', 'labelWidth',
'type', // 类型, 仅支持 datetime date time year-month month-day datehour
'name', 'readonly', 'value', 'label', 'placeholder', 'required', 'rules', 'labelWidth', 'inputAlign',
'type', // 类型, 仅支持 datetime date time year-month month-day datehour, 额外支持year(但formatter必须为yyyy, 可以提供yearRangeLength=<Number>指定年范围)
'formatter', // value的格式化 String|Function|undefined 字符串为格式字符串, 函数则必须有返回 undefined则不转换
'clearable', // 点击取消时清空绑定值
'yearRangeLength', // type === 'year' 时生成的年份数量范围 [YEAR - yearRangeLength, YEAR + yearRangeLength]
],
watch: {
value: function (newVal, oldVal) {
@@ -75,7 +92,7 @@ export default {
openPopup() {
if(!this.readonly)
{
console.log(this.internalValue);
//console.log(this.internalValue);
this.popupVisible = true;
this.$nextTick(() => {
try
@@ -83,8 +100,9 @@ export default {
if(1)
{
let values = (this.visibleValue || this.getValue(new Date)).split(/\D+/); //TODO: 按非数字符号粗略分割解析初始值, 仅对于类似yyyy-MM-dd
console.log(values);
this.$refs.picker.getPicker().setValues(values);
//console.log(values);
let picker = this.$refs.picker.getPicker ? this.$refs.picker.getPicker() : this.$refs.picker;
picker.setValues(values);
}
else {
//TODO: 打开时保存初始值, 取消或点击遮罩未确定的时候恢复该初始值到v-model
@@ -132,7 +150,39 @@ export default {
this.internalValue = data;
this.visibleValue = this.getValue(data);
},
genYearColumns(num) {
let d;
try
{
if(this.value)
{
d = strtotime(this.value, 'yyyy');
}
else
d = new Date;
}
catch(e)
{
d = new Date;
}
let y = d.getFullYear();
let arr = ['' + y];
for(let i = 1; i <= num; i++)
{
arr.push('' + (y + i));
arr.splice(0, 0, '' + (y - i));
}
return arr;
},
strtotime,
},
computed: {
yearColumns() {
if(this.type !== 'year')
return [];
return this.genYearColumns(this.yearRangeLength || 100);
},
}
}
</script>



+ 0
- 38
src/permission.js View File

@@ -73,44 +73,6 @@ const whiteList = [
'/yinnongLogin',
'/lawEnforcement/userRegister',
'/lawEnforcement/companyRegister',
'/sunVillage/login',
//阳光村务公众号 -- 待删
'/sunVillage/index',
'/sunVillage/latestReport', //最新报道列表
'/sunVillage/latestReport/details', //最新报道详情
'/sunVillage/importantItems', //重大事项-列表
'/sunVillage/importantItems/details', //重大事项-详情
'/sunVillage/public', //三务公开
'/sunVillage/public/details', //三务公开-详情
'/sunVillage/financial', //惠民金融
'/sunVillage/financial/details', //惠民金融-详情
'/sunVillage/financial/products', //惠民金融 - 理财产品
'/sunVillage/financial/loan', //惠民金融 - 理财产品
'/sunVillage/injoint', //三资公开-财务公开
'/sunVillage/injoint/details',//三资公开-财务公开-详情
'/sunVillage/injoint/meansOf', //三资公开-清产核资
'/sunVillage/injoint/meansOf_desc', //三资公开-清产核资-详情页
'/sunVillage/injoint/assetsPublic', //三资公开-资产公开
'/sunVillage/injoint/assetsPublic_desc', //三资公开-资产公开-详情
'/sunVillage/injoint/publicResources', //三资公开-资源公开
'/sunVillage/injoint/publicResources_desc', //三资公开-资源公开-详情
'/sunVillage/consulting', //民生直通车
'/sunVillage/consulting/inquiries', //民生直通车-咨询
"/sunVillage/consulting/my_consulting", //民生直通车-我的咨询详情
'/sunVillage/consulting/kanban', //民生直通车-民生看板
'/sunVillage/consulting/kanban/focusList', //民生直通车-民生看板 -关注民生list
'/sunVillage/consulting/kanban/focusDesc', //民生直通车-民生看板 -关注民生详情
'/sunVillage/consulting/kanban/affairsList', //民生直通车-民生看板 - 民生办事list
'/sunVillage/equity', //股权查询-股民信息
'/sunVillage/equity_desc', // 股权查询-股民信息-详情
'/sunVillage/shareBonus', //股权查询-股权分红
'/sunVillage/shareBonus_num', //股权查询-股权分红-股数详情页
'/sunVillage/shareBonus_amount', //股权查询-股权分红-分红详情页
'/sunVillage/user/index', //个人中心
'/sunVillage/user/mobile', //个人中心-修改手机号
'/sunVillage/user/information', //个人中心-修改用户信息
'/sunVillage/user/cooperative', //个人中心-修改所属合作社
//阳光村务公众号 -- 待删

//宅基地
'/zjdLogin',


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

@@ -31,7 +31,7 @@ export const constantRoutes = [
path: '/admin',
name: 'admin',
meta: {
title: '主页',
title: '随手拍跳转',
keepAlive: true,
},
component: (resolve) => require(['@/views/admin'], resolve)
@@ -3011,330 +3011,6 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/onlineHome/homestead/homeApplication/proposerLite'], resolve)
},
{
path: '/sunVillage/login',
name: 'sunVillageLogin',
meta: {
title: '登录',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/login'], resolve)
},
{
path: '/sunVillage/index',
name: 'sunVillage',
meta: {
title: '阳光村务',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/index'], resolve)
},
{
path: '/sunVillage/latestReport',
name: 'latestReport',
meta: {
title: '最新报道',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/latestReport/index'], resolve)
},
{
path: '/sunVillage/latestReport/details',
name: 'latestReportDetails',
meta: {
title: '最新报道',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/latestReport/details'], resolve)
},
{
path: '/sunVillage/importantItems',
name: 'importantItems',
meta: {
title: '重大事项',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/importantItems/index'], resolve)
},
{
path: '/sunVillage/importantItems/details',
name: 'importantItemsDetails',
meta: {
title: '重大事项', //重大事项-详情页
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/importantItems/details'], resolve)
},
{
path: '/sunVillage/public',
name: 'sunVillagePublic',
meta: {
title: '三务公开',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/public/index'], resolve)
},
{
path: '/sunVillage/public/details',
name: 'sunVillagePublicDetails',
meta: {
title: '三务公开', //三务公开-详情页
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/public/details'], resolve)
},
{
path: '/sunVillage/financial',
name: 'sunVillageFinancial',
meta: {
title: '惠民金融',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/financial/index'], resolve)
},
{
path: '/sunVillage/financial/details',
name: 'sunVillageFinancialDetails',
meta: {
title: '惠民金融', //惠民金融-详情页
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/financial/details'], resolve)
},
{
path: '/sunVillage/financial/products',
name: 'sunVillageFinancialProducts',
meta: {
title: '惠民金融',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/financial/products'], resolve)
},
{
path: '/sunVillage/financial/loan',
name: 'sunVillageFinancialLoan',
meta: {
title: '惠民金融',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/financial/loan'], resolve)
},
{
path: '/sunVillage/injoint',
name: 'sunVillageInjoint',
meta: {
title: '三资公开', //财务公开
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/injoint/index'], resolve)
},
{
path: '/sunVillage/injoint/details',
name: 'sunVillageInjointDetails',
meta: {
title: '财务公开', //财务公开
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/injoint/details'], resolve)
},
{
path: '/sunVillage/injoint/meansOf',
name: 'sunVillageInjointMeansOf',
meta: {
title: '三资公开', //清产核资
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/injoint/meansOf'], resolve)
},
{
path: '/sunVillage/injoint/meansOf_desc',
name: 'sunVillageInjointMeansOfDesc',
meta: {
title: '清产核资', //清产核资 --详情页
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/injoint/meansOf_desc'], resolve)
},
{
path: '/sunVillage/injoint/assetsPublic',
name: 'sunVillageAssetsPublic',
meta: {
title: '三资公开', //资产公开
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/injoint/assetsPublic'], resolve)
},
{
path: '/sunVillage/injoint/assetsPublic_desc',
name: 'sunVillageAssetsPublicDesc',
meta: {
title: '资产公开', //资产公开
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/injoint/assetsPublic_desc'], resolve)
},
{
path: '/sunVillage/injoint/publicResources',
name: 'sunVillagePublicResources',
meta: {
title: '三资公开', //资源公开
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/injoint/publicResources'], resolve)
},
{
path: '/sunVillage/injoint/publicResources_desc',
name: 'sunVillagePublicResourcesDesc',
meta: {
title: '资源公开', //资源公开
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/dynamic/injoint/publicResources_desc'], resolve)
},
{
path: '/sunVillage/consulting',
name: 'sunVillageConsulting',
meta: {
title: '民生直通车', //民生直通车
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/throughTrain/consulting'], resolve)
},
{
path: '/sunVillage/consulting/inquiries',
name: 'sunVillageInquiries',
meta: {
title: '民生直通车', //民生直通车-咨询
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/throughTrain/inquiries'], resolve)
},
{
path: '/sunVillage/consulting/my_consulting',
name: 'sunVillageInquiries',
meta: {
title: '民生直通车', //民生直通车-我的咨询
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/throughTrain/my_consulting'], resolve)
},
{
path: '/sunVillage/consulting/kanban',
name: 'sunVillageKanban',
meta: {
title: '民生直通车', //民生直通车-民生看板
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/throughTrain/kanban/index'], resolve)
},
{
path: '/sunVillage/consulting/kanban/focusList',
name: 'sunVillageKanbanFocusList',
meta: {
title: '民生直通车', //民生直通车-民生看板-关注民生列表
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/throughTrain/kanban/focusList'], resolve)
},
{
path: '/sunVillage/consulting/kanban/focusDesc',
name: 'sunVillageKanbanFocusDesc',
meta: {
title: '民生直通车', //民生直通车-民生看板-关注民生详情
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/throughTrain/kanban/focusDesc'], resolve)
},
{
path: '/sunVillage/consulting/kanban/affairsList',
name: 'sunVillageKanbanAffairsList',
meta: {
title: '民生直通车', //民生直通车-民生看板-民生办事列表
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/throughTrain/kanban/affairsList'], resolve)
},
{
path: '/sunVillage/equity',
name: 'sunVillageEquity',
meta: {
title: '股权查询', //民生直通车-股民信息
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/equity/info'], resolve)
},
{
path: '/sunVillage/equity_desc',
name: 'sunVillageEquityDesc',
meta: {
title: '股权查询', //民生直通车-股民信息-详情页
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/equity/info_desc'], resolve)
},
{
path: '/sunVillage/shareBonus',
name: 'sunVillageShareBonus',
meta: {
title: '股权查询', //民生直通车-股权分红
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/equity/shareBonus'], resolve)
},
{
path: '/sunVillage/shareBonus_num',
name: 'sunVillageShareBonusNum',
meta: {
title: '股权查询', //民生直通车-股权分红-详股数情页
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/equity/shareBonus_num'], resolve)
},
{
path: '/sunVillage/shareBonus_amount',
name: 'sunVillageShareBonusAmount',
meta: {
title: '股权查询', //民生直通车-股权分红-分红详情页
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/equity/shareBonus_amount'], resolve)
},
{
path: '/sunVillage/user/index',
name: 'sunVillageUserIndex',
meta: {
title: '我的资料', //民生直通车-股权分红-分红详情页
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/user/index'], resolve)
},
{
path: '/sunVillage/user/mobile',
name: 'sunVillageUserMobile',
meta: {
title: '修改手机号', //民生直通车-股权分红-分红详情页
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/user/mobile'], resolve)
},
{
path: '/sunVillage/user/information',
name: 'sunVillageUserInformation',
meta: {
title: '修改用户信息', //民生直通车-股权分红-分红详情页
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/user/information'], resolve)
},
{
path: '/sunVillage/user/cooperative',
name: 'sunVillageUserCooperative',
meta: {
title: '修改所属合作社', //民生直通车-股权分红-分红详情页
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage/user/cooperative'], resolve)
},
{
path: '/zjdLogin',
name: 'zjdLogin',
@@ -3768,6 +3444,24 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/sunVillage_info/list_register_detail'], resolve)
},
{ // 综合填报
path: '/sunVillage_info/entityReportList',
name: 'entityReportList',
meta: {
title: '综合填报',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/entityReport/reportList'], resolve)
},
{ // 综合填报
path: '/sunVillage_info/entityReportView',
name: 'entityReportView',
meta: {
title: '综合填报',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/entityReport/reportView'], resolve)
},
{ // 统计填报
path: '/sunVillage_info/statistical_report',
name: 'sunVillageInfoStatisticalReport',


+ 512
- 0
src/utils/expression.js View File

@@ -0,0 +1,512 @@

export const Expression = function(_str, _flag = 0, _placeholderValueMap = {})
{
this.pos = 0; // 当前解析表达式字符串的位置
this.str = _str; // 表达式
this.errno = Expression.NO_ERROR; // 当前错误码
this.placeholderValueMap = _placeholderValueMap; // 占位符值字典
this.flag = _flag | Expression.PARSE_FLAG_ERROR_HANDLE_SCHEME_THROW_EXCEPTION; // 行为标记
this.placeholders = [];
}

Expression.NO_ERROR = 0;
Expression.ERROR = 1;
Expression.NULL_STRING = 2;
Expression.BY_ZERO = 3;
Expression.MISSING_DIGIT = 4;
Expression.MISSING_RIGHT_PARENT = 5;
Expression.MISSING_OPERATOR = 6;
Expression.INVALID_CHARACTER = 7;
Expression.MISSING_PLACEHOLDER = 8;
Expression.INVALID_DIGIT = 9;
Expression.INVALID_PLACEHOLDER = 10;
Expression.MISSING_RIGHT_PLACEHOLDER_END = 11;
Expression.INVALID_PLACEHOLDER_FUNCTION = 12;
Expression.MISSING_COMPARE_OPERATOR = 13;
Expression.INVALID_COMPARE_OPERATOR = 14;
Expression.INCOMPLETE = 15;
Expression.ErrorStr = [
"",
"错误",
"空字符串",
"除0",
"缺失数字",
"缺失右括号",
"缺失运算符",
"无效字符",
"缺失占位符",
"无效数字",
"无效占位符",
"缺失占位符结尾标识",
"无效占位符内置函数",
"缺失比较运算符",
"无效比较运算符",
"表达式不完整",
];

Expression.PARSE_FLAG_NONE = 0;
Expression.PARSE_FLAG_ERROR_HANDLE_SCHEME_RETURN_ZERO = 1; // 解析到错误则当前部分返回0
Expression.PARSE_FLAG_ERROR_HANDLE_SCHEME_THROW_EXCEPTION = 1 << 1; // 解析到错误则抛出异常
Expression.PARSE_FLAG_ALL_NUMBER_AS_PLACEHOLDER = 1 << 3; // 所有数字都作为占位符
Expression.PARSE_FLAG_IGNORE_ERROR_MISSING_PLACEHOLDER = 1 << 4; // 忽略占位符缺失
Expression.PARSE_FLAG_IGNORE_ERROR_BY_ZERO = 1 << 5; // 忽略除0

// 是否读取到字符串结尾
Expression.prototype.__EOF = function()
{
return !this.str || this.pos >= this.str.length;
};

// 字符串转为数字
Expression.prototype.__StrTo = function(numStr)
{
return Number(numStr)
};

// 开始解析, 重置状态
Expression.prototype.__Ready = function()
{
this.pos = 0;
this.errno = Expression.NO_ERROR;
this.placeholders = [];
let err = this.__CheckStr();
return (err === Expression.NO_ERROR);
};

// 解析 值 括号 占位符 的优先级最高的表达式
Expression.prototype.__EvalV = function()
{
if(this.__EOF())
{
return this.__FatalError(Expression.INCOMPLETE);
}
this.__SkipBlank();
let nStr = this.str.substring(this.pos);
let p = 0;
let nag = false;
let result = 0;
if(nStr.charAt(p) === '-')
{
nag = true;
this.pos++;
p++;
}
p += this.__SkipBlank();
if(nStr.charAt(p) === '(') // 括号表达式
{
p++;
this.pos++;
result = this.__EvalP();
if(this.str.charAt(this.pos) !== ')')
{
return this.__FatalError(Expression.MISSING_RIGHT_PARENT);
}
this.pos++;
}
else if(nStr.charAt(p) === '{') // 占位符
{
p++;
this.pos++;
p += this.__SkipBlank();
let d = '';
let size = 0;
let ch = nStr.charAt(p);
while("`~@#%^&*()-+=,/?:;\"'|\\[{]}".indexOf(ch) === -1) // 中文支持
{
size++;
d += ch;
p++;
this.pos++;
if(p >= nStr.length)
{
return this.__FatalError(Expression.MISSING_RIGHT_PLACEHOLDER_END);
}
ch = nStr.charAt(p);
}
p += this.__SkipBlank();
if(this.str.charAt(this.pos) !== '}')
{
return this.__FatalError(Expression.MISSING_RIGHT_PLACEHOLDER_END);
}
this.pos++;
if(size > 0)
{
result = this.__ParsePlaceholder(d);
}
else
{
return this.__NormalError(Expression.MISSING_PLACEHOLDER);
}
}
else // 纯数字
{
let d = '';
let size = 0;
let ch = nStr.charAt(p);
while((ch >= '0' && ch <= '9') || ch === '.')
{
size++;
d += ch;
p++;
this.pos++;
if(p >= nStr.length)
break;
ch = nStr.charAt(p);
}
if(size > 0)
{
let m = d.indexOf(".");
if(m !== -1)
{
let n = d.lastIndexOf(".");
if(n !== -1 && m !== n)
{
return this.__FatalError(Expression.INVALID_DIGIT);
}
if(m === 0 || m === d.length - 1)
d = d.substr(0, m) + d.substr(m + 1);
}
if(this.flag & Expression.PARSE_FLAG_ALL_NUMBER_AS_PLACEHOLDER)
result = this.__ParsePlaceholder(d);
else
result = this.__StrTo(d);
}
else
{
return this.__FatalError(Expression.MISSING_DIGIT);
}
}
if(nag)
result = -result;
return result;
};

// 解析* /的优先级相对较高的表达式
Expression.prototype.__EvalM = function()
{
if(this.__EOF())
{
return this.__FatalError(Expression.INCOMPLETE);
}
let first = this.__EvalV();
let result = first;
this.__SkipBlank();
let nStr = this.str.substring(this.pos);
while(nStr.length > 0)
{
let ch = nStr.charAt(0);
if(ch !== '*' && ch !== '/')
return result;
else
{
this.pos++;
let second = this.__EvalV();
if(ch === '*')
result = result *second;
else
{
if(second === 0)
{
return this.__NormalError(Expression.BY_ZERO);
}
result = result / second;
}
}
nStr = this.str.substring(this.pos);
}
return result;
};

// 解析+ -的优先级最低的表达式
Expression.prototype.__EvalP = function()
{
if(this.__EOF())
{
return this.__FatalError(Expression.INCOMPLETE);
}
this.__SkipBlank();
let first = this.__EvalM();
let result = first;
let nStr = this.str.substring(this.pos);
while(nStr.length > 0)
{
let ch = nStr.charAt(0);
if(ch !== '+' && ch !== '-')
return result;
else
{
this.pos++;
let second = this.__EvalM();
if(ch === '+')
result = result + second;
else
result = result - second;
}
nStr = this.str.substring(this.pos);
}
return result;
};

// 解析比较运算符
Expression.prototype.__EvalCmp = function()
{
if(this.__EOF())
{
return this.__FatalError(Expression.MISSING_COMPARE_OPERATOR);
}
this.__SkipBlank();
let result = '';
let nStr = this.str.substring(this.pos);
while(nStr.length > 0)
{
let ch = nStr.charAt(0);
if(ch !== '=' && ch !== '!' && ch !== '>' && ch !== '<')
break;
else
{
if(result.length === 0)
{
result += ch;
this.pos++;
}
else // === 1
{
if(result !== "=") // 如果第一个字符不是=, 第二个字符必定是=
{
if(ch !== '=')
return this.__FatalError(Expression.INVALID_COMPARE_OPERATOR);
}
else // 如果第一个字符是=, 第二个字符可以是=
{
if(ch === '=')
result += ch;
else
{
break;
}
}
result += ch;
this.pos++;
}
}
if(result.length >= 2)
break;
nStr = this.str.substring(this.pos);
}

if(result === "=")
result = "==";
return result;
};

// 开始计算
Expression.prototype.Calc = function()
{
if(!this.__Ready())
return this.__OnError(0);
return this.__EvalP();
};

// 判断表达式断言
Expression.prototype.Predicate = function()
{
if(!this.__Ready())
return this.__OnError(false);
let a = this.__EvalP();
if(this.HasError())
return this.__OnError(false);
let op = this.__EvalCmp();
if(this.HasError())
return this.__OnError(false);
let b = this.__EvalP();
if(this.HasError())
return this.__OnError(false);
//console.log(a + op + b);
return eval(a + op + b);
};

Expression.prototype.FLAG = function(flags)
{
for(let i of arguments)
{
if((this.flag & i) === i)
return true;
}
return false;
}

// 普通错误, 仅设置可允许忽略的错误时调用, 错误被忽略时不设置错误码
Expression.prototype.__NormalError = function(err)
{
switch(err)
{
case Expression.BY_ZERO:
if(this.FLAG(Expression.PARSE_FLAG_IGNORE_ERROR_BY_ZERO))
return 0;
break;
case Expression.MISSING_PLACEHOLDER:
if(this.FLAG(Expression.PARSE_FLAG_IGNORE_ERROR_MISSING_PLACEHOLDER))
return 0;
break;
case Expression.INVALID_DIGIT:
if(this.FLAG(Expression.PARSE_FLAG_IGNORE_ERROR_INVALID_DIGIT))
return 0;
break;
}
return this.__FatalError(err);
};

// 全局错误处理
Expression.prototype.__OnError = function(ifError)
{
if(this.FLAG(Expression.PARSE_FLAG_ERROR_HANDLE_SCHEME_THROW_EXCEPTION)) // 抛异常
{
throw new Error(this.Error());
}
else // 返回0
{
return ifError;
}
};

// 计算是否有错误
Expression.prototype.HasError = function()
{
return this.errno !== Expression.NO_ERROR;
};

// 返回计算的错误, 并清除错误
Expression.prototype.GetError = function()
{
let e = this.errno;
this.errno = Expression.NO_ERROR;
return e;
}

// 获取当前错误的字符串
Expression.prototype.Error = function()
{
return Expression.ErrorStr[this.errno];
}

// 致命错误
Expression.prototype.__FatalError = function(err)
{
this.errno = err;
throw new Error(this.Error());
};

Expression.prototype.ParsedPlaceholders = function()
{
return this.placeholders;
}

// 解析占位符
Expression.prototype.__ParsePlaceholder = function(name)
{
this.placeholders.push(name);
if(!this.placeholderValueMap)
{
return this.__NormalError(Expression.MISSING_PLACEHOLDER);
}
if(name.startsWith("$")) // 特殊环境变量
return this.__ParseNumber(this.placeholderValueMap[name]);

let ptr = this.placeholderValueMap;
let d = null;
let notFetch = false;
let i = 0;
do
{
let index = name.indexOf(".", i);
let s = index === -1 ? name.substring(i) : name.substring(i, index);
i += s.length + 1;
s = s.trim();
if(s.startsWith("$")) // 函数管线
{
if(!notFetch) // 此时当前值应该是数字, 不再继续向下取Object/Map
{
d = this.__ParseNumber(ptr); // 当前值转换为数字
notFetch = true; // 此时当前值应该是数字, 不再继续向下取Object/Map
}
switch(s.substring(1).toLowerCase())
{
case "abs":
d = Math.abs(d);
break;
case "neg":
d = -d;
break;
case "lt0":
if(d >= 0)
return 0;
break;
case "gt0":
if(d <= 0)
return 0;
break;
default:
return this.__FatalError(Expression.INVALID_PLACEHOLDER_FUNCTION);
}
}
else
{
if(notFetch/*null != d*/) // TODO: 被管线函数处理过, 占位符表达式书写不应该出现该情况, 管线函数应都在表达式尾部, 并且不在表达式起始
return d;
ptr = ptr[s];
if(null === ptr || undefined === ptr)
{
return this.__NormalError(Expression.MISSING_PLACEHOLDER);
}
}
} while(i < name.length);
if(null == d)
return this.__ParseNumber(ptr);
else
return d;
};

// 检查表达式字符串
Expression.prototype.__CheckStr = function()
{
if(!this.str)
{
return Expression.NULL_STRING;
}
return Expression.NO_ERROR;
};

// 跳过空白符
Expression.prototype.__SkipBlank = function()
{
let i = 0;
for(; (this.pos + i) < this.str.length; i++)
{
if(!/\s/.test(this.str.charAt(this.pos + i)))
break;
}
this.pos += i;
return i;
};

// 对象转数字
Expression.prototype.__ParseNumber = function(val)
{
if(null === val)
return this.__NormalError(Expression.INVALID_DIGIT);
if(val instanceof Number)
return val;
else
{
try
{
return this.__StrTo(val.toString());
}
catch(e)
{
console.error(e);
return this.__NormalError(Expression.INVALID_DIGIT);
}
}
};


+ 11
- 0
src/utils/index.js View File

@@ -1206,3 +1206,14 @@ export function manual_page(list, page_no = 1, page_size = 10)
let start = (page_no - 1) * page_size;
return list.slice(start, start + page_size);
}

export function array_toMap(arr, byFunc, overriding)
{
let res = {};
arr.forEach((x) => {
let a = byFunc(x);
if(!res.hasOwnProperty(a) || overriding)
res[a] = x;
});
return res;
}

+ 4
- 0
src/utils/utils.js View File

@@ -158,3 +158,7 @@ export function isBankCard (str_cardNo) {
return false;
}
}

export function is_not_number(val) {
return (val === null || val === undefined || val === '');
}

+ 2
- 1
src/views/admin.vue View File

@@ -16,7 +16,8 @@
},
methods:{
Run() {
window.location = 'http://116.255.223.226:81';
window.location = 'http://116.255.223.226:75';
// window.location = 'http://116.255.223.226:78/sunVillage_info/suishoupai';
},
},
}


+ 195
- 46
src/views/plotPremisesMobile/index.vue View File

@@ -76,10 +76,10 @@
<img src="../../../static/images/plotPremises/plotPremises_img.png" alt="">

<div class="pop_content_zd_right">
<van-row type="flex" justify="space-between">
<!-- <van-row type="flex" justify="space-between">
<van-col>租地位置:</van-col>
<van-col>{{deptName}}</van-col>
</van-row>
</van-row> -->
<van-row type="flex" justify="space-between">
<van-col>租地编号:</van-col>
<van-col class="num">{{ndItem.id}}</van-col>
@@ -116,10 +116,10 @@
<img src="../../../static/images/plotPremises/plotPremises_img.png" alt="">

<div class="pop_content_zd_right">
<van-row type="flex" justify="space-between">
<!-- <van-row type="flex" justify="space-between">
<van-col>租房位置:</van-col>
<van-col>{{deptName}}</van-col>
</van-row>
</van-row> -->
<van-row type="flex" justify="space-between">
<van-col>租房编号:</van-col>
<van-col class="num">{{nfItem.id}}</van-col>
@@ -235,6 +235,7 @@ export default {

landLayer: "", // 地块图层
homesteadLayer: "", // 宅基地图层
selectedLayer: "", // 选中的图层
deptInfo: {
leader: null, // 联系人
phone: null // 电话
@@ -287,6 +288,13 @@ export default {
this.deptName = selectedOptions.map((option) => option.label).join('/');
this.getData();
this.showAddress = false;
this.drawMap(selectedOptions);
this.deptInfo.leader = null;
this.deptInfo.phone = null;
getDept(this.deptId).then(res => {
this.deptInfo.leader = res.data.leader;
this.deptInfo.phone = res.data.phone;
});
},

tabChange(name){
@@ -298,8 +306,48 @@ export default {
this.show = false;
this.showZF = false;
this.showZD = false;
if (type=='nf'){this.showZF = true;this.nfItem = data;}
if (type=='nd'){this.showZD = true;this.ndItem = data;}
if (type=='nf') {
this.showZF = true;
this.nfItem = data;
}
if (type=='nd') {
this.showZD = true;
this.ndItem = data;
}

if (this.selectedLayer) {
this.map.removeLayer(this.selectedLayer);
this.selectedLayer = '';
}
if (data.theGeom) {
this.selectedLayer = new ol.layer.Vector({
source: new ol.source.Vector({
features: new ol.format.GeoJSON().readFeatures("{\n" +
" \"type\": \"Feature\",\n" +
" \"geometry\":" + data.theGeom + ", \"properties\":" + JSON.stringify(data.id) + "}"),
}),
name: 'selectedLayer',
style: new ol.style.Style({
fill: new ol.style.Fill({
//矢量图层填充颜色,以及透明度
color: "rgba(255, 84, 87, 0.5)",
}),
stroke: new ol.style.Stroke({
//边界样式
color: "#ff5457",
width: 2,
}),
}),
});
this.map.addLayer(this.selectedLayer);
let center = ol.extent.getCenter(this.selectedLayer.getSource().getExtent());
this.map.getView().animate({
center: center, // 中心点
zoom: 17, // 缩放级别
rotation: undefined, // 缩放完成view视图旋转弧度
duration: 500, // 缩放持续时间,默认不需要设置
});
}
},
//获取geoserver的地址
getGeoServerUrl() {
@@ -456,6 +504,12 @@ export default {
this.addDeptLayer(deptNode.children);
}
} else if (deptLevel === '2') {
this.deptId = deptId;
this.getData();
let parentNodes = [];
this.findParentNode(this.addrOptions, deptId, parentNodes);
this.villageValue = deptId;
this.deptName = parentNodes.map(node => node.label).join('/');
this.currentDeptLevel = '2';
this.map.removeLayer(this.borderLayer);
this.borderLayer = '';
@@ -489,6 +543,16 @@ export default {
});
}
}
} else {
const viewResolution = this.map.getView().getResolution();
const url1 = this.landLayer.getSource().getFeatureInfoUrl(evt.coordinate, viewResolution, 'EPSG:3857', {'INFO_FORMAT': 'application/json'});
if (url1) {
this.fetchUrl(url1);
}
const url2 = this.homesteadLayer.getSource().getFeatureInfoUrl(evt.coordinate, viewResolution, 'EPSG:3857', {'INFO_FORMAT': 'application/json'});
if (url2) {
this.fetchUrl(url2);
}
}
});

@@ -514,6 +578,10 @@ export default {
this.landLayer = "";
this.map.removeLayer(this.homesteadLayer);
this.homesteadLayer = "";
if (this.selectedLayer) {
this.map.removeLayer(this.selectedLayer);
this.selectedLayer = "";
}
this.deptInfo.leader = null;
this.deptInfo.phone = null;
} else if (this.currentDeptLevel === '3' && zoom < 11) {
@@ -560,6 +628,10 @@ export default {
this.landLayer = "";
this.map.removeLayer(this.homesteadLayer);
this.homesteadLayer = "";
if (this.selectedLayer) {
this.map.removeLayer(this.selectedLayer);
this.selectedLayer = "";
}
this.deptInfo.leader = null;
this.deptInfo.phone = null;
} else if (this.currentDeptLevel === '3' && zoom < 11) {
@@ -588,6 +660,76 @@ export default {
}
return null;
},
findParentNode(tree, deptId, result) {
for (let node of tree) {
if (node.id === deptId) {
result.unshift(node);
return true;
}
if (node.children && node.children.length > 0) {
let isFind = this.findParentNode(node.children, deptId, result);
if (isFind) {
result.unshift(node);
return true;
}
}
}
return false;
},
fetchUrl(url) {
fetch(url)
.then(response => response.json())
.then(data => {
if (data.features.length > 0) {
let arr = data.features[0].id.split(".");
let tableName = arr[0];
let id = arr[1];

this.show = false;
this.showList = false;
this.showZF = false;
this.showZD = false;
if (tableName.startsWith("t_homestead_zjdzdxx")) {
this.showZF = true;
this.nfItem = {
id: id,
zdmj: data.features[0].properties.ZDMJ,
};
}
if (tableName.startsWith("t_sys_dk")) {
this.showZD = true;
this.ndItem = {
id: id,
scmjm: data.features[0].properties.SCMJM,
};
}

if (this.selectedLayer) {
this.map.removeLayer(this.selectedLayer);
this.selectedLayer = "";
}
this.selectedLayer = new ol.layer.Vector({
source: new ol.source.Vector({
features: new ol.format.GeoJSON().readFeatures(data)
}),
name: 'selectedLayer',
style: new ol.style.Style({
fill: new ol.style.Fill({
//矢量图层填充颜色,以及透明度
color: "rgba(255, 84, 87, 0.3)",
}),
stroke: new ol.style.Stroke({
//边界样式
color: "#ff5457",
width: 3,
}),
})
});
this.map.addLayer(this.selectedLayer);
// this.map.getLayers().insertAt(4, this.selectedHomesteadLayer);
}
});
},
// 添加区县边界
addCountyBorder() {
this.borderLayer = new ol.layer.Image({
@@ -697,26 +839,6 @@ export default {
},
// 添加地块图层
addLandLayer(deptId) {
/* let params = {};
if (this.street === '全部' && this.cun === '全部') {
params = {
LAYERS: this.homesteadLayerName,
SRID: 3857,
};
} else if (this.street !== '全部' && this.cun === '全部') {
let villageDeptIds = this.houseCunship.map(item => item.deptId);
params = {
LAYERS: this.homesteadLayerName,
cql_filter: "dept_id in (" + villageDeptIds + ")",
SRID: 3857,
};
} else if (this.street !== '全部' && this.cun !== '全部') {
params = {
LAYERS: "zjd_dc:t_sys_dk", // 测试用的图层,正式使用时要换成自己发布的图层
cql_filter: "dept_id = '" + this.deptId + "'",
SRID: 3857,
};
} */
this.landLayer = new ol.layer.Image({
source: new ol.source.ImageWMS({
url: "http://218.59.175.43:8090/geoserver/zjd_dc/wms", // 测试用的geoserver服务器链接,正式使用时需要换掉
@@ -733,26 +855,6 @@ export default {
},
// 添加宅基地图层
addHomesteadLayer(deptId) {
/* let params = {};
if (this.street === '全部' && this.cun === '全部') {
params = {
LAYERS: this.homesteadLayerName,
SRID: 3857,
};
} else if (this.street !== '全部' && this.cun === '全部') {
let villageDeptIds = this.houseCunship.map(item => item.deptId);
params = {
LAYERS: this.homesteadLayerName,
cql_filter: "dept_id in (" + villageDeptIds + ")",
SRID: 3857,
};
} else if (this.street !== '全部' && this.cun !== '全部') {
params = {
LAYERS: "zjd_dc:t_sys_dk", // 测试用的图层,正式使用时要换成自己发布的图层
cql_filter: "dept_id = '" + this.deptId + "'",
SRID: 3857,
};
} */
this.homesteadLayer = new ol.layer.Image({
source: new ol.source.ImageWMS({
url: "http://218.59.175.43:8090/geoserver/zjd_dc/wms", // 测试用的geoserver服务器链接,正式使用时需要换掉
@@ -767,6 +869,53 @@ export default {
this.map.addLayer(this.homesteadLayer);
// this.map.getLayers().insertAt(3, this.homesteadLayer);
},
drawMap(selectedOptions) {
const villageNode = selectedOptions[selectedOptions.length - 1];
const ids = selectedOptions.map(option => option.id);

this.currentDeptLevel = '2';
this.townId = ids[ids.length - 2];
this.countyId = ids[ids.length - 3];
this.map.removeLayer(this.borderLayer);
this.borderLayer = '';
// 添加村边界
const cqlFilter = "dept_id = '" + villageNode.id + "'";
this.addVillageBorder(cqlFilter);

let villagePoint = {
id: villageNode.id,
label: villageNode.label,
lng: villageNode.lng,
lat: villageNode.lat,
deptLevel: villageNode.deptLevel,
};
let depts = [];
depts.push(villagePoint);
this.map.removeLayer(this.deptLayer);
this.deptLayer = '';
this.addDeptLayer(depts);

if (this.landLayer) {
this.map.removeLayer(this.landLayer);
this.landLayer = '';
}
if (this.homesteadLayer) {
this.map.removeLayer(this.homesteadLayer);
this.homesteadLayer = '';
}
if (this.selectedLayer) {
this.map.removeLayer(this.selectedLayer);
this.selectedLayer = "";
}
this.addLandLayer(villageNode.id);
this.addHomesteadLayer(villageNode.id);
this.map.getView().animate({
center: ol.proj.fromLonLat([villageNode.lng, villageNode.lat]), // 中心点
zoom: 17, // 缩放级别
rotation: undefined, // 缩放完成view视图旋转弧度
duration: 1000, // 缩放持续时间,默认不需要设置
});
},
},
};
</script>


+ 0
- 123
src/views/sunVillage/dynamic/financial/details.vue View File

@@ -1,123 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :currentNav="1" :headings="headingsTitle"></header-nav>
<div class="article_main">
<div class="title">国新办解读中央一号文件:乡村振兴求好不求快</div>
<div class="info_wrap">
<div class="publisher">阳光村务公开平台</div>
<div class="time">2022-02-25 09:00</div>
</div>
</div>
<div class="particulars_main">
<p><img src="@/assets/images/sunVillage/3.jpg" /></p>
<p>
2月22日,阿松大了看啥看三菱电机阿斯兰的阿阿莱克斯大家阿拉山口大家阿斯兰的骄傲
埃里克森加大了圣诞节阿拉山口道路喀什觉得拉克丝奥斯陆扩大急啊离开圣诞节奥斯陆扩大爱丽丝大家爱丽丝大家
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.article_main {
margin: 0 24px;
padding-top: 15px;
.title {
font-size: 28px;
line-height: 45px;
margin-bottom: 6px;
}
.info_wrap {
display: flex;
line-height: 48px;
font-size: 24px;
.publisher {
color: rgb(92, 107, 140);
margin-right: 20px;
}
.time {
color: #999;
}
}
}
.particulars_main {
margin: 24px 24px 0;
font-size: 24px;
padding-bottom: 15px;
img {
max-width: 100%;
}
p {
padding-bottom: 15px;
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
export default {
name: "latestReportDesc",
components: { headerNav },
data() {
return {
headingsTitle: "惠民金融",
};
},
mounted() {},
methods: {},
};
</script>

+ 0
- 104
src/views/sunVillage/dynamic/financial/index.vue View File

@@ -1,104 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav
:headings="headingsTitle"
:currentNav="1"
returnUrl="/sunVillage/index"
></header-nav>

<!---金融政策-->
<projectNav :serialTag="1"></projectNav>
<div class="focus_news">
<div class="news_img" @click="skip('/sunVillage/financial/details')">
<img src="@/assets/images/sunVillage/5.jpg" />
</div>
<div class="news_title" @click="skip('/sunVillage/financial/details')">
疫情之下,多为中小企业送上金融政策"急救包"
</div>
</div>
<div class="news_list">
<ul>
<li class="item_block" @click="skip('/sunVillage/financial/details')">
<div class="title">金融政策项目01</div>
<div class="insets">
<img src="@/assets/images/sunVillage/2.jpg" />
</div>
</li>
<li class="item_block" @click="skip('/sunVillage/financial/details')">
<div class="title">金融政策项目01</div>
<div class="insets">
<img src="@/assets/images/sunVillage/2.jpg" />
</div>
</li>
</ul>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;

.focus_news {
margin: 20px 24px 16px;
.news_img {
width: 702px;
height: 256px;
img {
width: 100%;
height: 100%;
}
}
.news_title {
font-size: 24px;
margin-top: 16px;
}
}
.news_list {
li {
display: flex;
height: 146px;
justify-content: center;
align-items: center;
padding: 0 33px;
.title {
padding-left: 8px;
flex: 1;
font-size: 28px;
}
.insets {
width: 116px;
margin-left: 26px;
height: 116px;
img {
width: 100%;
height: 100%;
}
}
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
import projectNav from "@/components/sunVillage/financial/nav";
export default {
name: "sunVillageFinancial",
components: { headerNav, projectNav },
data() {
return {
headingsTitle: "惠民金融",
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

+ 0
- 116
src/views/sunVillage/dynamic/financial/loan.vue View File

@@ -1,116 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav
:headings="headingsTitle"
:currentNav="1"
returnUrl="/sunVillage/index"
></header-nav>
<projectNav :serialTag="3"></projectNav>
<div class="products_main">
<ul>
<li>
<div class="advertising">
<img src="@/assets/images/sunVillage/7.jpg" />
</div>
<div class="title">贷款产品1</div>
</li>
<li>
<div class="advertising">
<img src="@/assets/images/sunVillage/7.jpg" />
</div>
<div class="title">贷款产品1</div>
</li>
<li>
<div class="advertising">
<img src="@/assets/images/sunVillage/7.jpg" />
</div>
<div class="title">贷款产品1</div>
</li>
<li>
<div class="advertising">
<img src="@/assets/images/sunVillage/7.jpg" />
</div>
<div class="title">贷款产品1</div>
</li>
<li>
<div class="advertising">
<img src="@/assets/images/sunVillage/7.jpg" />
</div>
<div class="title">贷款产品1</div>
</li>
<li>
<div class="advertising">
<img src="@/assets/images/sunVillage/7.jpg" />
</div>
<div class="title">贷款产品1</div>
</li>
<li>
<div class="advertising">
<img src="@/assets/images/sunVillage/7.jpg" />
</div>
<div class="title">贷款产品1</div>
</li>
</ul>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;

.products_main {
margin: 20px 24px;
ul {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
li {
width: 320px;
height: 210px;
margin-bottom: 24px;
.advertising {
width: 320px;
height: 160px;
border-radius: 10px;
img {
width: 320px;
height: 160px;
}
}
.title {
height: 48px;
font-size: 28px;
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
color: #999;
}
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
import projectNav from "@/components/sunVillage/financial/nav";
export default {
name: "sunVillageFinancialLoan",
components: { headerNav, projectNav },
data() {
return {
headingsTitle: "惠民金融",
};
},
mounted() {},
methods: {},
};
</script>

+ 0
- 116
src/views/sunVillage/dynamic/financial/products.vue View File

@@ -1,116 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav
:headings="headingsTitle"
:currentNav="1"
returnUrl="/sunVillage/index"
></header-nav>
<projectNav :serialTag="2"></projectNav>
<div class="products_main">
<ul>
<li>
<div class="advertising">
<img src="@/assets/images/sunVillage/6.jpg" />
</div>
<div class="title">农行福满盈</div>
</li>
<li>
<div class="advertising">
<img src="@/assets/images/sunVillage/6.jpg" />
</div>
<div class="title">农行福满盈</div>
</li>
<li>
<div class="advertising">
<img src="@/assets/images/sunVillage/6.jpg" />
</div>
<div class="title">农行福满盈</div>
</li>
<li>
<div class="advertising">
<img src="@/assets/images/sunVillage/6.jpg" />
</div>
<div class="title">农行福满盈</div>
</li>
<li>
<div class="advertising">
<img src="@/assets/images/sunVillage/6.jpg" />
</div>
<div class="title">农行福满盈</div>
</li>
<li>
<div class="advertising">
<img src="@/assets/images/sunVillage/6.jpg" />
</div>
<div class="title">农行福满盈</div>
</li>
<li>
<div class="advertising">
<img src="@/assets/images/sunVillage/6.jpg" />
</div>
<div class="title">农行福满盈</div>
</li>
</ul>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;

.products_main {
margin: 20px 24px;
ul {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
li {
width: 320px;
height: 210px;
margin-bottom: 24px;
.advertising {
width: 320px;
height: 160px;
border-radius: 10px;
img {
width: 320px;
height: 160px;
}
}
.title {
height: 48px;
font-size: 28px;
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
color: #999;
}
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
import projectNav from "@/components/sunVillage/financial/nav";
export default {
name: "sunVillageFinancial",
components: { headerNav, projectNav },
data() {
return {
headingsTitle: "惠民金融",
};
},
mounted() {},
methods: {},
};
</script>

+ 0
- 123
src/views/sunVillage/dynamic/importantItems/details.vue View File

@@ -1,123 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :currentNav="1" :headings="headingsTitle"></header-nav>
<div class="article_main">
<div class="title">国新办解读中央一号文件:乡村振兴求好不求快</div>
<div class="info_wrap">
<div class="publisher">阳光村务公开平台</div>
<div class="time">2022-02-25 09:00</div>
</div>
</div>
<div class="particulars_main">
<p><img src="@/assets/images/sunVillage/3.jpg" /></p>
<p>
2月22日,阿松大了看啥看三菱电机阿斯兰的阿阿莱克斯大家阿拉山口大家阿斯兰的骄傲
埃里克森加大了圣诞节阿拉山口道路喀什觉得拉克丝奥斯陆扩大急啊离开圣诞节奥斯陆扩大爱丽丝大家爱丽丝大家
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.article_main {
margin: 0 24px;
padding-top: 15px;
.title {
font-size: 28px;
line-height: 45px;
margin-bottom: 6px;
}
.info_wrap {
display: flex;
line-height: 48px;
font-size: 24px;
.publisher {
color: rgb(92, 107, 140);
margin-right: 20px;
}
.time {
color: #999;
}
}
}
.particulars_main {
margin: 24px 24px 0;
font-size: 24px;
padding-bottom: 15px;
img {
max-width: 100%;
}
p {
padding-bottom: 15px;
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
export default {
name: "latestReportDesc",
components: { headerNav },
data() {
return {
headingsTitle: "重大事项",
};
},
mounted() {},
methods: {},
};
</script>

+ 0
- 125
src/views/sunVillage/dynamic/importantItems/index.vue View File

@@ -1,125 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :headings="headingsTitle" :currentNav="1"></header-nav>
<div
class="article_main"
@click="skip('/sunVillage/importantItems/details')"
>
<div class="title">国新办解读中央一号文件:乡村振兴求好不求快</div>
<div class="info_wrap">
<div class="publisher">阳光村务公开平台</div>
<div class="time">2022-02-25 09:00</div>
</div>
</div>
<div class="focus_news">
<div class="news_img" @click="skip('/sunVillage/importantItems/details')">
<img src="@/assets/images/sunVillage/1.jpg" />
</div>
</div>
<div class="news_list">
<ul>
<li
class="item_block"
@click="skip('/sunVillage/importantItems/details')"
>
<div class="title">最新报道列表项目1</div>
<div class="insets">
<img src="@/assets/images/sunVillage/2.jpg" />
</div>
</li>
<li
class="item_block"
@click="skip('/sunVillage/importantItems/details')"
>
<div class="title">国新办解读中央一号文件:乡村振兴求好不求快</div>
<div class="insets">
<img src="@/assets/images/sunVillage/2.jpg" />
</div>
</li>
</ul>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.article_main {
margin: 0 24px;
padding: 15px 0;
.title {
font-size: 28px;
line-height: 45px;
margin-bottom: 6px;
}
.info_wrap {
display: flex;
line-height: 48px;
font-size: 24px;
.publisher {
color: rgb(92, 107, 140);
margin-right: 20px;
}
.time {
color: #999;
}
}
}
.focus_news {
margin: 10px 24px 16px;
.news_img {
width: 702px;
height: 256px;
img {
width: 100%;
height: 100%;
}
}
}
.news_list {
li {
display: flex;
height: 146px;
justify-content: center;
align-items: center;
padding: 0 33px;
.title {
padding-left: 8px;
flex: 1;
font-size: 28px;
}
.insets {
width: 116px;
margin-left: 26px;
height: 116px;
img {
width: 100%;
height: 100%;
}
}
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
export default {
name: "importantItems",
components: { headerNav },
data() {
return {
headingsTitle: "重大事项",
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

+ 0
- 153
src/views/sunVillage/dynamic/injoint/assetsPublic.vue View File

@@ -1,153 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav
:headings="headingsTitle"
:currentNav="1"
returnUrl="/sunVillage/index"
></header-nav>
<projectNav :serialTag="3"></projectNav>
<div class="public_details">
<div class="search_wrap">
<div class="search_ipt">
<input type="text" placeholder="请输入查询信息" class="ipt" />
</div>
<div class="search_btn">查询</div>
</div>
<div class="table_wrap">
<div class="head_main">
<div class="flex f1">资产名称</div>
<div class="flex f2">数量</div>
<div class="flex f3">性质</div>
<div class="flex f4">构建时间</div>
</div>
<div class="tbody_main">
<div
class="item_list"
@click="skip('/sunVillage/injoint/assetsPublic_desc')"
>
<div class="flex f1">3号厂房</div>
<div class="flex f2">1</div>
<div class="flex f3">经营</div>
<div class="flex f4">2022/02/25</div>
</div>
<div
class="item_list"
@click="skip('/sunVillage/injoint/assetsPublic_desc')"
>
<div class="flex f1">丰田小汽车</div>
<div class="flex f2">1</div>
<div class="flex f3">经营</div>
<div class="flex f4">2022/02/25</div>
</div>
</div>
</div>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.public_details {
margin: 20px 24px 0;
.search_wrap {
height: 84px;
display: flex;
border-bottom: 1px solid #e6e6e6;
.search_ipt {
flex: 1;
display: flex;
padding: 0 20px;
.ipt {
flex: 1;
font-size: 34px;
}
}
.search_btn {
width: 110px;
font-size: 34px;
color: #b3b3b3;
display: flex;
justify-content: center;
align-items: center;
border-left: 1px solid #e6e6e6;
}
}
.table_wrap {
.head_main {
height: 76px;
display: flex;
color: #bababa;
.flex {
display: flex;
justify-content: center;
align-items: center;
text-align: center;
&.f1 {
flex: 4;
}
&.f2 {
flex: 2;
}
&.f3 {
flex: 2;
}
&.f4 {
flex: 4;
}
}
}
.tbody_main {
.item_list {
height: 150px;
display: flex;
.flex {
display: flex;
justify-content: center;
align-items: center;
text-align: center;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
&.f1 {
flex: 4;
}
&.f2 {
flex: 2;
}
&.f3 {
flex: 2;
}
&.f4 {
flex: 4;
}
}
}
}
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
import projectNav from "@/components/sunVillage/injoint/nav";
export default {
name: "sunVillageInjoint",
components: { headerNav, projectNav },
data() {
return {
headingsTitle: "三资公开",
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

+ 0
- 174
src/views/sunVillage/dynamic/injoint/assetsPublic_desc.vue View File

@@ -1,174 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :headings="headingsTitle" :currentNav="1"></header-nav>
<div class="assetsPublic_main">
<div class="title_main">
<div class="subtitle">资产信息</div>
</div>
<div class="form_main">
<div class="form_item">
<div class="v_title">资产名称</div>
<div class="v_content single">办公电脑</div>
</div>
<div class="form_item">
<div class="v_title">数量</div>
<div class="v_content single">20</div>
</div>
<div class="form_item">
<div class="v_title">原值</div>
<div class="v_content single">16000原</div>
</div>
<div class="form_item">
<div class="v_title">经营状态</div>
<div class="v_content single">经营</div>
</div>
<div class="form_item">
<div class="v_title">构建时间</div>
<div class="v_content single">
<i class="icon_date"></i> 2022-02-28
</div>
</div>
<div class="form_item">
<div class="v_title">使用情况</div>
<div class="v_content single">正常</div>
</div>
<div class="form_item">
<div class="v_title">附件</div>
<div class="v_content multiple">
<ul class="download_list">
<li>2022一季度村财务报表.xlsx</li>
<li>2022一季度村财务报表.xlsx</li>
<li>2022一季度村财务报表.xlsx</li>
</ul>
</div>
</div>
</div>
<div class="title_main">
<div class="subtitle">经营属性</div>
</div>
<div class="form_main">
<div class="form_item">
<div class="v_title">资产名称</div>
<div class="v_content single">办公电脑</div>
</div>
</div>
</div>
</div>
</template>
<style scoped lang="scss">
.home_wrapper {
width: 100%;
min-height: 100vh;
background: #fff;
padding-top: 198px;
.assetsPublic_main {
margin: 0 24px;
.title_main {
height: 50px;
position: relative;
margin-top: 20px;
&::before {
width: 8px;
height: 50px;
background: #66ccff;
border-radius: 8px;
position: absolute;
left: 0;
top: 0;
z-index: 2;
content: " ";
}
&::after {
width: 100%;
height: 1px;
background: #e5e5e5;
position: absolute;
left: 0;
top: 25px;
content: " ";
}
.subtitle {
position: relative;
background: #fff;
height: 50px;
font-size: 28px;
z-index: 9;
margin-left: 8px;
width: 175px;
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
}
}

.form_main {
margin: 0 24px;
padding-bottom: 40px;
.form_item {
margin: 20px 20px 0;

display: flex;
font-size: 28px;
border-bottom: 1px solid #e6e6e6;
.v_title {
width: 308px;
color: #999;
height: 112px;
padding-right: 90px;
justify-content: flex-end;
display: flex;
align-items: center;
}
.v_content {
flex: 1;
&.single {
display: flex;
justify-content: center;
align-items: center;
}
.icon_date {
width: 26px;
height: 26px;
background: url("../../../../assets/images/sunVillage/select_date_icon.jpg")
no-repeat;
background-size: 100% 100%;
display: block;
margin-right: 12px;
}
&.multiple {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.download_list {
li {
font-size: 24px;
color: #799fe9;
}
}
}
}
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";

export default {
name: "sunVillageAssetsPublicDesc",
components: { headerNav },
data() {
return {
headingsTitle: "资产公开",
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

+ 0
- 104
src/views/sunVillage/dynamic/injoint/details.vue View File

@@ -1,104 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :currentNav="1" :headings="headingsTitle"></header-nav>
<div class="article_main">
<div class="title">国新办解读中央一号文件:乡村振兴求好不求快</div>
<div class="info_wrap">
<div class="publisher">阳光村务公开平台</div>
<div class="time">2022-02-25 09:00</div>
</div>
</div>
<div class="particulars_main">
<p><img src="@/assets/images/sunVillage/3.jpg" /></p>
<p>
2月22日,阿松大了看啥看三菱电机阿斯兰的阿阿莱克斯大家阿拉山口大家阿斯兰的骄傲
埃里克森加大了圣诞节阿拉山口道路喀什觉得拉克丝奥斯陆扩大急啊离开圣诞节奥斯陆扩大爱丽丝大家爱丽丝大家
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
</div>
<div class="particulars_download">
<div class="title">附件下载:</div>
<div class="main">
<ul>
<li><<2020一季度村务财务报表>>.xlsx</li>
</ul>
</div>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.article_main {
margin: 0 24px;
padding-top: 15px;
.title {
font-size: 28px;
line-height: 45px;
margin-bottom: 6px;
}
.info_wrap {
display: flex;
line-height: 48px;
font-size: 24px;
.publisher {
color: rgb(92, 107, 140);
margin-right: 20px;
}
.time {
color: #999;
}
}
}
.particulars_main {
margin: 24px 24px 0;
font-size: 24px;
padding-bottom: 15px;
img {
max-width: 100%;
}
p {
padding-bottom: 15px;
}
}
.particulars_download {
display: flex;
margin: 0 24px;
padding-bottom: 30px;
font-size: 24px;
.title {
}
.main {
flex: 1;
color: #588be7;
li {
text-decoration: underline;
}
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
export default {
name: "sunVillageInjointDetails",
components: { headerNav },
data() {
return {
headingsTitle: "财务公开",
};
},
mounted() {},
methods: {},
};
</script>

+ 0
- 100
src/views/sunVillage/dynamic/injoint/index.vue View File

@@ -1,100 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav
:headings="headingsTitle"
:currentNav="1"
returnUrl="/sunVillage/index"
></header-nav>
<projectNav :serialTag="1"></projectNav>
<div class="focus_news">
<div class="news_img">
<img src="@/assets/images/sunVillage/8.jpg" />
</div>
<div class="news_title">村一季度财务情况公布</div>
</div>
<div class="news_list">
<ul>
<li class="item_block" @click="skip('/sunVillage/injoint/details')">
<div class="title">一季度收入公开</div>
<div class="insets">
<img src="@/assets/images/sunVillage/2.jpg" />
</div>
</li>
<li class="item_block" @click="skip('/sunVillage/injoint/details')">
<div class="title">二季度收入公开</div>
<div class="insets">
<img src="@/assets/images/sunVillage/2.jpg" />
</div>
</li>
</ul>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;

.focus_news {
margin: 20px 24px 16px;
.news_img {
width: 702px;
height: 256px;
img {
width: 100%;
height: 100%;
}
}
.news_title {
font-size: 24px;
margin-top: 16px;
}
}
.news_list {
li {
display: flex;
height: 146px;
justify-content: center;
align-items: center;
padding: 0 33px;
.title {
padding-left: 8px;
flex: 1;
font-size: 28px;
}
.insets {
width: 116px;
margin-left: 26px;
height: 116px;
img {
width: 100%;
height: 100%;
}
}
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
import projectNav from "@/components/sunVillage/injoint/nav";
export default {
name: "sunVillageInjoint",
components: { headerNav, projectNav },
data() {
return {
headingsTitle: "三资公开",
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

+ 0
- 237
src/views/sunVillage/dynamic/injoint/meansOf.vue View File

@@ -1,237 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav
:headings="headingsTitle"
:currentNav="1"
returnUrl="/sunVillage/index"
></header-nav>
<projectNav :serialTag="2"></projectNav>
<div class="make_detail">
<div class="make_tab">
<div class="flex_block current">收支明细公开</div>
<div class="flex_block">资产负债公开</div>
</div>

<!--1--->
<div class="payment_details">
<div class="info_wrap">
<div class="date_main" @click="selectDateFun">
<i class="icon"></i>
<div class="year">2022</div>
<div class="month">1月</div>
</div>
<div class="unit">单位:张村</div>
</div>
<div class="table_wrap">
<div class="head_main">
<div class="flex f1">凭证号</div>
<div class="flex f2">摘要</div>
<div class="flex f3">收入金额<br />(元)</div>
<div class="flex f4">日期</div>
</div>
<div class="tbody_main">
<div
class="item_list"
@click="skip('/sunVillage/injoint/meansOf_desc')"
>
<div class="flex f1">记11号</div>
<div class="flex f2">收项目1季度预收款</div>
<div class="flex f3">4500</div>
<div class="flex f4">02/25</div>
</div>
<div
class="item_list"
@click="skip('/sunVillage/injoint/meansOf_desc')"
>
<div class="flex f1">记11号</div>
<div class="flex f2">收项目1季度预收款</div>
<div class="flex f3">4500</div>
<div class="flex f4">02/25</div>
</div>
</div>
</div>
</div>

<van-popup v-model:show="dateVisbile" round position="bottom">
<van-datetime-picker
v-model="selectDate.currentDate"
type="month-day"
title="选择月日"
:min-date="selectDate.minDate"
:max-date="selectDate.maxDate"
:formatter="formatter"
@confirm="onConfirmMonth"
@cancel="dateVisbile = false"
/>
</van-popup>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.make_detail {
margin: 20px 24px 0;
.make_tab {
height: 60px;
display: flex;
margin-bottom: 20px;
.flex_block {
background: rgba(247, 247, 247, 0.9);
color: rgb(151, 151, 151);
margin-right: 18px;
padding: 0 16px;
font-size: 32px;
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center;
&.current {
background: rgba(237, 237, 237, 0.9);
border-bottom: 1px solid #07c160;
color: #333;
}
}
}
.payment_details {
.info_wrap {
display: flex;
height: 68px;
margin-bottom: 12px;
justify-content: space-between;
.date_main {
width: 270px;
height: 68px;
border-bottom: 2px solid #ededed;
display: flex;
justify-content: center;
align-items: center;
font-size: 28px;
.icon {
width: 26px;
height: 26px;
background: url("../../../../assets/images/sunVillage/select_date_icon.jpg")
no-repeat;
background-size: 100% 100%;
display: block;
margin: 0 25px 0 12px;
}
.year {
margin-right: 30px;
}
}
.unit {
width: 270px;
display: flex;
justify-content: center;
align-items: center;
font-size: 28px;
}
}
.table_wrap {
font-size: 30px;
.head_main {
height: 76px;
display: flex;
color: #bababa;

.flex {
display: flex;
justify-content: center;
align-items: center;
text-align: center;
&.f1 {
flex: 3;
}
&.f2 {
flex: 5;
}
&.f3 {
flex: 2;
}
&.f4 {
flex: 2;
}
}
}
.tbody_main {
.item_list {
height: 150px;
display: flex;
.flex {
display: flex;
justify-content: center;
align-items: center;
text-align: center;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
&.f1 {
flex: 3;
}
&.f2 {
flex: 5;
}
&.f3 {
flex: 2;
}
&.f4 {
flex: 2;
}
}
}
}
}
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
import projectNav from "@/components/sunVillage/injoint/nav";
export default {
name: "sunVillageMeansOf",
components: { headerNav, projectNav },
data() {
return {
headingsTitle: "三资公开",
dateVisbile: false,
selectDate: {
currentDate: new Date(),
minDate: new Date(2020, 0, 1),
maxDate: new Date(2025, 10, 1),
},
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
selectDateFun() {
this.dateVisbile = !this.dateVisbile;
},
formatter(type, val) {
if (type === "month") {
return val + "月";
}
if (type === "day") {
return val + "日";
}
return val;
},
onConfirmMonth(val) {
let year = val.getFullYear();
let month = val.getMonth() + 1;
if (month >= 1 && month <= 9) {
month = `0${month}`;
}
console.log(year + "-" + month);
},
},
};
</script>

+ 0
- 129
src/views/sunVillage/dynamic/injoint/meansOf_desc.vue View File

@@ -1,129 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :headings="headingsTitle" :currentNav="1"></header-nav>
<div class="voucher_main">
<div class="voucher_item">
<div class="v_title">凭证号</div>
<div class="v_content single">记-21</div>
</div>
<div class="voucher_item">
<div class="v_title">摘要</div>
<div class="v_content single">支出劳务报酬</div>
</div>
<div class="voucher_item">
<div class="v_title">收入金额(元)</div>
<div class="v_content single">5500</div>
</div>
<div class="voucher_item">
<div class="v_title">日期</div>
<div class="v_content single">
<i class="icon_date"></i>
2022-02-28
</div>
</div>
<div class="voucher_item">
<div class="v_title">附件</div>
<div class="v_content multiple">
<div class="attachment_flex">
<img src="@/assets/images/sunVillage/9.jpg" class="img" />
</div>
<div class="attachment_flex">
<img src="@/assets/images/sunVillage/9.jpg" class="img" />
</div>
<div class="attachment_flex">
<img src="@/assets/images/sunVillage/9.jpg" class="img" />
</div>
<div class="attachment_flex">
<img src="@/assets/images/sunVillage/9.jpg" class="img" />
</div>
<div class="attachment_flex">
<img src="@/assets/images/sunVillage/9.jpg" class="img" />
</div>
<div class="attachment_flex">
<img src="@/assets/images/sunVillage/9.jpg" class="img" />
</div>
</div>
</div>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.voucher_main {
margin: 0 24px;
.voucher_item {
margin: 20px 20px 0;

display: flex;
font-size: 28px;
border-bottom: 1px solid #e6e6e6;
.v_title {
width: 308px;
color: #999;
height: 112px;
padding-right: 90px;
justify-content: flex-end;
display: flex;
align-items: center;
}
.v_content {
flex: 1;
&.single {
display: flex;
justify-content: center;
align-items: center;
}
.icon_date {
width: 26px;
height: 26px;
background: url("../../../../assets/images/sunVillage/select_date_icon.jpg")
no-repeat;
background-size: 100% 100%;
display: block;
margin-right: 12px;
}
&.multiple {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.attachment_flex {
width: 100px;
height: 100px;
margin-bottom: 20px;
img {
height: 100px;
width: 100px;
}
}
}
}
}
}
</style>


<script>
import headerNav from "@/components/sunVillage/common/header.vue";

export default {
name: "sunVillageInjointMeansOfDesc",
components: { headerNav },
data() {
return {
headingsTitle: "清产核资",
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

+ 0
- 153
src/views/sunVillage/dynamic/injoint/publicResources.vue View File

@@ -1,153 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav
:headings="headingsTitle"
:currentNav="1"
returnUrl="/sunVillage/index"
></header-nav>
<projectNav :serialTag="4"></projectNav>
<div class="public_details">
<div class="search_wrap">
<div class="search_ipt">
<input type="text" placeholder="请输入查询信息" class="ipt" />
</div>
<div class="search_btn">查询</div>
</div>
<div class="table_wrap">
<div class="head_main">
<div class="flex f1">资源名称</div>
<div class="flex f2">面积(㎡)</div>
<div class="flex f3">性质</div>
<div class="flex f4">状态</div>
</div>
<div class="tbody_main">
<div
class="item_list"
@click="skip('/sunVillage/injoint/publicResources_desc')"
>
<div class="flex f1">0001机动地</div>
<div class="flex f2">20</div>
<div class="flex f3">经营</div>
<div class="flex f4">正常</div>
</div>
<div
class="item_list"
@click="skip('/sunVillage/injoint/publicResources_desc')"
>
<div class="flex f1">西部山林地</div>
<div class="flex f2">19.5</div>
<div class="flex f3">经营</div>
<div class="flex f4">正常</div>
</div>
</div>
</div>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.public_details {
margin: 20px 24px 0;
.search_wrap {
height: 84px;
display: flex;
border-bottom: 1px solid #e6e6e6;
.search_ipt {
flex: 1;
display: flex;
padding: 0 20px;
.ipt {
flex: 1;
font-size: 34px;
}
}
.search_btn {
width: 110px;
font-size: 34px;
color: #b3b3b3;
display: flex;
justify-content: center;
align-items: center;
border-left: 1px solid #e6e6e6;
}
}
.table_wrap {
.head_main {
height: 76px;
display: flex;
color: #bababa;
.flex {
display: flex;
justify-content: center;
align-items: center;
text-align: center;
&.f1 {
flex: 6;
}
&.f2 {
flex: 2;
}
&.f3 {
flex: 2;
}
&.f4 {
flex: 2;
}
}
}
.tbody_main {
.item_list {
height: 150px;
display: flex;
.flex {
display: flex;
justify-content: center;
align-items: center;
text-align: center;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
&.f1 {
flex: 6;
}
&.f2 {
flex: 2;
}
&.f3 {
flex: 2;
}
&.f4 {
flex: 2;
}
}
}
}
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
import projectNav from "@/components/sunVillage/injoint/nav";
export default {
name: "sunVillagePublicResources",
components: { headerNav, projectNav },
data() {
return {
headingsTitle: "三资公开",
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

+ 0
- 169
src/views/sunVillage/dynamic/injoint/publicResources_desc.vue View File

@@ -1,169 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :headings="headingsTitle" :currentNav="1"></header-nav>
<div class="assetsPublic_main">
<div class="title_main">
<div class="subtitle">资源信息</div>
</div>
<div class="form_main">
<div class="form_item">
<div class="v_title">资源名称</div>
<div class="v_content single">办公电脑</div>
</div>
<div class="form_item">
<div class="v_title">总面积</div>
<div class="v_content single">20</div>
</div>
<div class="form_item">
<div class="v_title">资产状态</div>
<div class="v_content single">16000元</div>
</div>
<div class="form_item">
<div class="v_title">经营状态</div>
<div class="v_content single">经营</div>
</div>

<div class="form_item">
<div class="v_title">附件</div>
<div class="v_content multiple">
<ul class="download_list">
<li>《资源说明》.xlsx</li>
<li>《资源说明》.xlsx</li>
<li>《资源说明》.xlsx</li>
</ul>
</div>
</div>
</div>
<div class="title_main">
<div class="subtitle">经营属性</div>
</div>
<div class="form_main">
<div class="form_item">
<div class="v_title">承包方</div>
<div class="v_content single">张三</div>
</div>
<div class="form_item">
<div class="v_title">金额</div>
<div class="v_content single">450000</div>
</div>
</div>
</div>
</div>
</template>
<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.assetsPublic_main {
margin: 0 24px;
.title_main {
height: 50px;
position: relative;
margin-top: 20px;
&::before {
width: 8px;
height: 50px;
background: #66ccff;
border-radius: 8px;
position: absolute;
left: 0;
top: 0;
z-index: 2;
content: " ";
}
&::after {
width: 100%;
height: 1px;
background: #e5e5e5;
position: absolute;
left: 0;
top: 25px;
content: " ";
}
.subtitle {
position: relative;
background: #fff;
height: 50px;
font-size: 28px;
z-index: 9;
margin-left: 8px;
width: 175px;
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
}
}

.form_main {
margin: 0 24px;
padding-bottom: 40px;
.form_item {
margin: 20px 20px 0;

display: flex;
font-size: 28px;
border-bottom: 1px solid #e6e6e6;
.v_title {
width: 308px;
color: #999;
height: 112px;
padding-right: 90px;
justify-content: flex-end;
display: flex;
align-items: center;
}
.v_content {
flex: 1;
&.single {
display: flex;
justify-content: center;
align-items: center;
}
.icon_date {
width: 26px;
height: 26px;
background: url("../../../../assets/images/sunVillage/select_date_icon.jpg")
no-repeat;
background-size: 100% 100%;
display: block;
margin-right: 12px;
}
&.multiple {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.download_list {
li {
font-size: 24px;
color: #799fe9;
}
}
}
}
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";

export default {
name: "sunVillageInjoint",
components: { headerNav },
data() {
return {
headingsTitle: "资源公开",
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

+ 0
- 123
src/views/sunVillage/dynamic/latestReport/details.vue View File

@@ -1,123 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :currentNav="1" :headings="headingsTitle"></header-nav>
<div class="article_main">
<div class="title">国新办解读中央一号文件:乡村振兴求好不求快</div>
<div class="info_wrap">
<div class="publisher">阳光村务公开平台</div>
<div class="time">2022-02-25 09:00</div>
</div>
</div>
<div class="particulars_main">
<p><img src="@/assets/images/sunVillage/3.jpg" /></p>
<p>
2月22日,阿松大了看啥看三菱电机阿斯兰的阿阿莱克斯大家阿拉山口大家阿斯兰的骄傲
埃里克森加大了圣诞节阿拉山口道路喀什觉得拉克丝奥斯陆扩大急啊离开圣诞节奥斯陆扩大爱丽丝大家爱丽丝大家
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.article_main {
margin: 0 24px;
padding-top: 15px;
.title {
font-size: 28px;
line-height: 45px;
margin-bottom: 6px;
}
.info_wrap {
display: flex;
line-height: 48px;
font-size: 24px;
.publisher {
color: rgb(92, 107, 140);
margin-right: 20px;
}
.time {
color: #999;
}
}
}
.particulars_main {
margin: 24px 24px 0;
font-size: 24px;
padding-bottom: 15px;
img {
max-width: 100%;
}
p {
padding-bottom: 15px;
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
export default {
name: "latestReportDesc",
components: { headerNav },
data() {
return {
headingsTitle: "最新报道",
};
},
mounted() {},
methods: {},
};
</script>

+ 0
- 101
src/views/sunVillage/dynamic/latestReport/index.vue View File

@@ -1,101 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :headings="headingsTitle" :currentNav="1"></header-nav>
<div class="focus_news">
<div class="news_img" @click="skip('/sunVillage/latestReport/details')">
<img src="@/assets/images/sunVillage/1.jpg" />
</div>
<div class="news_title" @click="skip('/sunVillage/latestReport/details')">
国新办解读中央一号文件:乡村振兴求好不求快
</div>
</div>
<div class="news_list">
<ul>
<li
class="item_block"
@click="skip('/sunVillage/latestReport/details')"
>
<div class="title">最新报道列表项目1</div>
<div class="insets">
<img src="@/assets/images/sunVillage/2.jpg" />
</div>
</li>
<li
class="item_block"
@click="skip('/sunVillage/latestReport/details')"
>
<div class="title">国新办解读中央一号文件:乡村振兴求好不求快</div>
<div class="insets">
<img src="@/assets/images/sunVillage/2.jpg" />
</div>
</li>
</ul>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.focus_news {
margin: 20px 24px 16px;
.news_img {
width: 702px;
height: 256px;
img {
width: 100%;
height: 100%;
}
}
.news_title {
font-size: 24px;
margin-top: 16px;
}
}
.news_list {
li {
display: flex;
height: 146px;
justify-content: center;
align-items: center;
padding: 0 33px;
.title {
padding-left: 8px;
flex: 1;
font-size: 28px;
}
.insets {
width: 116px;
margin-left: 26px;
height: 116px;
img {
width: 100%;
height: 100%;
}
}
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
export default {
name: "latestReport",
components: { headerNav },
data() {
return {
headingsTitle: "最新报道",
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

+ 0
- 123
src/views/sunVillage/dynamic/public/details.vue View File

@@ -1,123 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :currentNav="1" :headings="headingsTitle"></header-nav>
<div class="article_main">
<div class="title">国新办解读中央一号文件:乡村振兴求好不求快</div>
<div class="info_wrap">
<div class="publisher">阳光村务公开平台</div>
<div class="time">2022-02-25 09:00</div>
</div>
</div>
<div class="particulars_main">
<p><img src="@/assets/images/sunVillage/3.jpg" /></p>
<p>
2月22日,阿松大了看啥看三菱电机阿斯兰的阿阿莱克斯大家阿拉山口大家阿斯兰的骄傲
埃里克森加大了圣诞节阿拉山口道路喀什觉得拉克丝奥斯陆扩大急啊离开圣诞节奥斯陆扩大爱丽丝大家爱丽丝大家
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
<p>
卢卡斯的急啊离开圣诞节阿斯兰的阿萨卢卡斯的骄傲啦卢卡斯的就按设按时打算科技大厦了的骄傲睡了多久啊是阿斯利康大家ask的埃里克森的奥斯陆扩大爱山东
</p>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.article_main {
margin: 0 24px;
padding-top: 15px;
.title {
font-size: 28px;
line-height: 45px;
margin-bottom: 6px;
}
.info_wrap {
display: flex;
line-height: 48px;
font-size: 24px;
.publisher {
color: rgb(92, 107, 140);
margin-right: 20px;
}
.time {
color: #999;
}
}
}
.particulars_main {
margin: 24px 24px 0;
font-size: 24px;
padding-bottom: 15px;
img {
max-width: 100%;
}
p {
padding-bottom: 15px;
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
export default {
name: "latestReportDesc",
components: { headerNav },
data() {
return {
headingsTitle: "三务公开",
};
},
mounted() {},
methods: {},
};
</script>

+ 0
- 132
src/views/sunVillage/dynamic/public/index.vue View File

@@ -1,132 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :headings="headingsTitle" :currentNav="1"></header-nav>
<div class="navigation_main">
<!-- <div class="flex_wrap current">村务公开</div>
<div class="flex_wrap">党务公开</div>
<div class="flex_wrap">政务公开</div> -->
<div
class="flex_wrap"
v-for="(item, index) in navList"
:key="index"
:class="[navIndex == index ? 'current' : '']"
@click="navIndex = index"
>
{{ item }}
</div>
</div>
<div class="focus_news">
<div class="news_img" @click="skip('/sunVillage/public/details')">
<img src="@/assets/images/sunVillage/4.jpg" />
</div>
<div class="news_title" @click="skip('/sunVillage/public/details')">
巨峰镇大官庄村2014年1-2月份阳光村务现场
</div>
</div>
<div class="news_list">
<ul>
<li class="item_block" @click="skip('/sunVillage/public/details')">
<div class="title">阳光村务内容01</div>
<div class="insets">
<img src="@/assets/images/sunVillage/2.jpg" />
</div>
</li>
<li class="item_block" @click="skip('/sunVillage/public/details')">
<div class="title">阳光村务内容01</div>
<div class="insets">
<img src="@/assets/images/sunVillage/2.jpg" />
</div>
</li>
</ul>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.navigation_main {
margin: 0 24px;
display: flex;
justify-content: space-between;
padding: 30px 0 10px;
.flex_wrap {
height: 80px;
background: #f8f8f8;
color: #07c160;
font-size: 32px;
display: flex;
justify-content: center;
align-items: center;
width: 216px;
border-radius: 12px;
&.current {
color: #fff;
background: #07c160;
}
}
}
.focus_news {
margin: 20px 24px 16px;
.news_img {
width: 702px;
height: 256px;
img {
width: 100%;
height: 100%;
}
}
.news_title {
font-size: 24px;
margin-top: 16px;
}
}
.news_list {
li {
display: flex;
height: 146px;
justify-content: center;
align-items: center;
padding: 0 33px;
.title {
padding-left: 8px;
flex: 1;
font-size: 28px;
}
.insets {
width: 116px;
margin-left: 26px;
height: 116px;
img {
width: 100%;
height: 100%;
}
}
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
export default {
name: "sunVillagePublic",
components: { headerNav },
data() {
return {
headingsTitle: "三务公开",
navList: ["村务公开", "党务公开", "政务公开"],
navIndex: 0,
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

+ 0
- 165
src/views/sunVillage/equity/info.vue View File

@@ -1,165 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :currentNav="3" returnUrl="/sunVillage/index"></header-nav>
<equityHeader :serialTag="1"></equityHeader>
<div class="equity_main">
<div class="header_mian">
<div class="flex3">
<div class="title">户人数</div>
<div class="cont">4</div>
</div>
<div class="flex4">
<div class="title">宅基地㎡</div>
<div class="cont">4500</div>
</div>
<div class="flex4">
<div class="title">宅基地㎡</div>
<div class="cont">4500</div>
</div>
</div>
<div class="households_main">
<div class="flex_block" @click="skip('/sunVillage/equity_desc')">
<div class="unit">户主</div>
<div class="head">
<img src="../../../assets/images/sunVillage/head_portrait.jpg" />
</div>
<div class="name">刘树人</div>
<div class="sex">男</div>
<div class="meberCode">
<div class="text">成员户编码</div>
<div class="code">15456456464646</div>
</div>
</div>
<div class="flex_block" @click="skip('/sunVillage/equity_desc')">
<div class="unit">妻子</div>
<div class="head">
<img src="../../../assets/images/sunVillage/head_portrait.jpg" />
</div>
<div class="name">刘淼</div>
<div class="sex">女</div>
<div class="meberCode">
<div class="text">成员户编码</div>
<div class="code">15456456464646</div>
</div>
</div>
<div class="flex_block" @click="skip('/sunVillage/equity_desc')">
<div class="unit">长子</div>
<div class="head">
<img src="../../../assets/images/sunVillage/head_portrait.jpg" />
</div>
<div class="name">刘大壮</div>
<div class="sex">男</div>
<div class="meberCode">
<div class="text">成员户编码</div>
<div class="code">15456456464646</div>
</div>
</div>
</div>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 126px;
min-height: 100vh;
background: #fff;
.equity_main {
margin: 0 24px;
padding: 15px 0;
.header_mian {
height: 80px;
display: flex;
margin-bottom: 15px;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
.flex3 {
flex: 3;
display: flex;
}
.flex4 {
flex: 4;
display: flex;
}
.title {
font-size: 30px;
padding: 0 15px;
color: #999;
}
.cont {
font-size: 30px;
color: #07c160;
flex: 1;
text-align: center;
}
}
.households_main {
.flex_block {
height: 115px;
position: relative;
margin-bottom: 18px;
margin-left: 60px;
display: flex;
border-bottom: 1px solid #e6e6e6;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
.unit {
width: 34px;
display: flex;
position: absolute;
left: -40px;
font-size: 28px;
color: #07c160;
}
.head {
width: 64px;
height: 64px;
margin-left: 10px;
img {
width: 100%;
height: 100%;
}
}
.name {
width: 170px;
text-align: center;
font-size: 30px;
}
.sex {
width: 100px;
font-size: 24px;
text-align: center;
}
.meberCode {
flex: 1;
font-size: 24px;
text-align: center;
.text {
color: #999;
margin-bottom: 8px;
}
}
}
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
import equityHeader from "@/components/sunVillage/equity_header";
export default {
name: "sunVillageEquity",
components: { headerNav, equityHeader },
data() {
return {};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

+ 0
- 118
src/views/sunVillage/equity/info_desc.vue View File

@@ -1,118 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav
:headings="headingsTitle"
:currentNav="3"
returnUrl="/sunVillage/equity"
></header-nav>
<equityHeader :serialTag="1"></equityHeader>

<div class="info_main">
<div class="info_item">
<div class="v_title">成员姓名</div>
<div class="v_content single">王万多</div>
</div>
<div class="info_item">
<div class="v_title">成员户编码</div>
<div class="v_content single">1231231231231231</div>
</div>
<div class="info_item">
<div class="v_title">家庭身份</div>
<div class="v_content single">户主</div>
</div>
<div class="info_item">
<div class="v_title">民族</div>
<div class="v_content single">汉</div>
</div>
<div class="info_item">
<div class="v_title">身份证号码</div>
<div class="v_content single">123111111111111123</div>
</div>
<div class="info_item">
<div class="v_title">户主联系电话</div>
<div class="v_content single">158545645121</div>
</div>
<div class="info_item">
<div class="v_title">承包地面积(㎡)</div>
<div class="v_content single">1500</div>
</div>
<div class="info_item">
<div class="v_title">宅基地面积(㎡)</div>
<div class="v_content single">
<input
type="text"
class="input_style"
placeholder="请输入宅基地面积"
maxlength="8"
/>
</div>
</div>
<div class="info_item">
<div class="v_title">开户银行</div>
<div class="v_content single">农业银行西峡村支行</div>
</div>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.info_main {
margin: 0 24px;
.info_item {
margin: 20px 20px 0;

display: flex;
font-size: 28px;
border-bottom: 1px solid #e6e6e6;
.v_title {
width: 308px;
color: #999;
height: 112px;
padding-right: 90px;
justify-content: flex-end;
display: flex;
align-items: center;
}
.v_content {
flex: 1;
&.single {
display: flex;
justify-content: center;
align-items: center;
.input_style {
width: 100%;
text-align: center;
height: 90px;
}
}
}
}
}
}
</style>


<script>
import headerNav from "@/components/sunVillage/common/header.vue";
import equityHeader from "@/components/sunVillage/equity_header";
export default {
name: "sunVillageInjointMeansOfDesc",
components: { headerNav, equityHeader },
data() {
return {
headingsTitle: "股民信息",
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

+ 0
- 202
src/views/sunVillage/equity/shareBonus.vue View File

@@ -1,202 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :currentNav="3" returnUrl="/sunVillage/index"></header-nav>
<equityHeader :serialTag="2"></equityHeader>
<div class="equity_main">
<div class="date_main" @click="selectDateFun">
<i class="icon"></i>
<div class="year">2022<span class="unit">年</span></div>
</div>
<div class="header_mian">
<div class="flex3">
<div class="title">户人数</div>
<div class="cont">4</div>
</div>
<div class="flex4">
<div class="title">总股数</div>
<div class="cont">4500</div>
</div>
<div class="flex4">
<div class="title">总分红</div>
<div class="cont">4500</div>
</div>
</div>
<div class="households_main">
<div class="flex_block">
<div class="unit">户主</div>
<div class="head">
<img src="../../../assets/images/sunVillage/head_portrait.jpg" />
</div>
<div class="name">刘树人</div>
<div class="numberShare" @click="skip('/sunVillage/shareBonus_num')">
<div class="text">股数</div>
<div class="code">2.00</div>
</div>
<div class="bonus" @click="skip('/sunVillage/shareBonus_amount')">
<div class="text">总分红(元)</div>
<div class="code">850.00</div>
</div>
</div>
</div>
</div>
<van-popup v-model:show="dateVisbile" round position="bottom">
<van-picker
title="选择年"
show-toolbar
:columns="yearColumns"
:default-index="yearSelect"
@confirm="yearConfirm"
@cancel="dateVisbile = false"
/>
</van-popup>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 126px;
min-height: 100vh;
background: #fff;
.equity_main {
margin: 0 24px;
padding: 15px 0;
.date_main {
width: 220px;
height: 68px;
border-bottom: 2px solid #ededed;
display: flex;
justify-content: center;
align-items: center;
font-size: 28px;
.icon {
width: 26px;
height: 26px;
background: url("../../../assets/images/sunVillage/select_date_icon.jpg")
no-repeat;
background-size: 100% 100%;
display: block;
margin: 0 25px 0 12px;
}
.year {
.unit {
padding: 0 10px;
}
}
}
.header_mian {
height: 80px;
display: flex;
margin-bottom: 15px;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
.flex3 {
flex: 3;
display: flex;
}
.flex4 {
flex: 4;
display: flex;
}
.title {
font-size: 30px;
padding: 0 15px;
color: #999;
}
.cont {
font-size: 30px;
color: #07c160;
flex: 1;
text-align: center;
}
}
.households_main {
.flex_block {
height: 115px;
position: relative;
margin-bottom: 18px;
margin-left: 60px;
display: flex;
border-bottom: 1px solid #e6e6e6;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
.unit {
width: 34px;
display: flex;
position: absolute;
left: -40px;
font-size: 28px;
color: #07c160;
}
.head {
width: 64px;
height: 64px;
margin-left: 10px;
img {
width: 100%;
height: 100%;
}
}
.name {
width: 150px;
text-align: center;
font-size: 30px;
}

.bonus,
.numberShare {
flex: 1;
font-size: 28px;
text-align: center;
.text {
color: #999;
margin-bottom: 8px;
}
}
}
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
import equityHeader from "@/components/sunVillage/equity_header";
export default {
name: "sunVillageEquity",
components: { headerNav, equityHeader },
data() {
return {
dateVisbile: false,
yearColumns: [2000, 2001, 2002],
yearSelect: null,
};
},
mounted() {
this.yearData();
},
methods: {
skip(url) {
this.$router.push(url);
},
selectDateFun() {
this.dateVisbile = !this.dateVisbile;
},
yearData() {
for (let i = 2000; i < 2060; i++) {
this.yearColumns.push(i);
}
//显示当前年份

var year = new Date().getFullYear();
this.yearSelect = this.yearColumns.indexOf(Number(year));
},
yearConfirm(value) {
// this.formatDate = value + "年";
// this.form.reportDate = value.toString();
// this.yearShow = false;
this.dateVisbile = false;
},
},
};
</script>

+ 0
- 161
src/views/sunVillage/equity/shareBonus_amount.vue View File

@@ -1,161 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav
:headings="headingsTitle"
:currentNav="3"
returnUrl="/sunVillage/shareBonus"
></header-nav>
<equityHeader :serialTag="2"></equityHeader>
<div class="holding_header">
<div class="unit">户主</div>
<div class="head">
<img src="../../../assets/images/sunVillage/head_portrait.jpg" />
</div>
<div class="name">刘说的</div>
</div>
<div class="info_main">
<div class="info_item">
<div class="v_title">年度</div>
<div class="v_content single"><i class="icon_date"></i> 2022</div>
</div>
<div class="info_item">
<div class="v_title">分红金额</div>
<div class="v_content single">10000</div>
</div>
<div class="info_item">
<div class="v_title">集体分红金额</div>
<div class="v_content single">10000</div>
</div>
<div class="info_item">
<div class="v_title">股民分红金额</div>
<div class="v_content single">10000</div>
</div>
<div class="info_item">
<div class="v_title">分红时间</div>
<div class="v_content single"><i class="icon_date"></i> 2022-02-11</div>
</div>

<div class="info_item">
<div class="v_title">分红说明</div>
<div class="v_content single">
<input
type="text"
class="input_style"
placeholder="请输入宅基地面积"
maxlength="8"
/>
</div>
</div>
<div class="info_item">
<div class="v_title">凭证号</div>
<div class="v_content single">记-01</div>
</div>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.holding_header {
margin: 20px 24px 0;
height: 112px;
display: flex;

align-items: center; /* 子元素相对父元素垂直居中 */
text-align: center;
font-size: 30px;
.unit {
width: 98px;

color: #07c160;
}
.head {
width: 64px;
height: 64px;
margin-left: 20px;
img {
width: 100%;
height: 100%;
}
}
.name {
width: 150px;
}
.allNum {
flex: 1;
color: #999;
text-align: left;
.num {
color: #07c160;
padding-left: 10px;
}
}
}
.info_main {
margin: 0 24px;
.info_item {
margin: 20px 20px 0;

display: flex;
font-size: 28px;
border-bottom: 1px solid #e6e6e6;
.v_title {
width: 308px;
color: #999;
height: 112px;
padding-right: 90px;
justify-content: flex-end;
display: flex;
align-items: center;
}
.v_content {
flex: 1;
.icon_date {
width: 26px;
height: 26px;
background: url("../../../assets/images/sunVillage/select_date_icon.jpg")
no-repeat;
background-size: 100% 100%;
display: block;
margin-right: 12px;
}
&.single {
display: flex;
justify-content: center;
align-items: center;
.input_style {
width: 100%;
text-align: center;
height: 90px;
}
}
}
}
}
}
</style>


<script>
import headerNav from "@/components/sunVillage/common/header.vue";
import equityHeader from "@/components/sunVillage/equity_header";
export default {
name: "sunVillageInjointMeansOfDesc",
components: { headerNav, equityHeader },
data() {
return {
headingsTitle: "股民信息",
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

+ 0
- 133
src/views/sunVillage/equity/shareBonus_num.vue View File

@@ -1,133 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav
:headings="headingsTitle"
:currentNav="3"
returnUrl="/sunVillage/shareBonus"
></header-nav>
<equityHeader :serialTag="2"></equityHeader>
<div class="holding_header">
<div class="unit">户主</div>
<div class="head">
<img src="../../../assets/images/sunVillage/head_portrait.jpg" />
</div>
<div class="name">刘说的</div>
<div class="allNum">总股数<span class="num">4500</span></div>
</div>
<div class="info_main">
<div class="info_item">
<div class="v_title">人人股</div>
<div class="v_content single">400</div>
</div>
<div class="info_item">
<div class="v_title">土土股</div>
<div class="v_content single">400</div>
</div>
<div class="info_item">
<div class="v_title">劳劳股</div>
<div class="v_content single">400</div>
</div>
<div class="info_item">
<div class="v_title">资资股</div>
<div class="v_content single">400</div>
</div>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.holding_header {
margin: 20px 24px 0;
height: 112px;
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
text-align: center;
font-size: 30px;
.unit {
width: 98px;

color: #07c160;
}
.head {
width: 64px;
height: 64px;
margin-left: 20px;
img {
width: 100%;
height: 100%;
}
}
.name {
width: 150px;
}
.allNum {
flex: 1;
color: #999;
text-align: left;
.num {
color: #07c160;
padding-left: 10px;
}
}
}
.info_main {
margin: 0 24px;
.info_item {
margin: 20px 20px 0;

display: flex;
font-size: 28px;
border-bottom: 1px solid #e6e6e6;
.v_title {
width: 308px;
color: #999;
height: 112px;
padding-right: 90px;
justify-content: flex-end;
display: flex;
align-items: center;
}
.v_content {
flex: 1;
&.single {
display: flex;
justify-content: center;
align-items: center;
.input_style {
width: 100%;
text-align: center;
height: 90px;
}
}
}
}
}
}
</style>


<script>
import headerNav from "@/components/sunVillage/common/header.vue";
import equityHeader from "@/components/sunVillage/equity_header";
export default {
name: "sunVillageInjointMeansOfDesc",
components: { headerNav, equityHeader },
data() {
return {
headingsTitle: "股权分红",
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

+ 0
- 118
src/views/sunVillage/index.vue View File

@@ -1,118 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :currentNav="1"></header-nav>
<div class="subnavigation_main">
<router-link tag="div" to="/sunVillage/latestReport" class="channel c1">
<div class="icon"></div>
<div class="title">最新报道</div>
</router-link>

<router-link tag="div" to="/sunVillage/importantItems" class="channel c2">
<div class="icon"></div>
<div class="title">重大事项</div>
</router-link>
<router-link tag="div" to="/sunVillage/public" class="channel c3">
<div class="icon"></div>
<div class="title">三务公开</div>
</router-link>

<router-link tag="div" to="/sunVillage/financial" class="channel c4">
<div class="icon"></div>
<div class="title">惠民金融</div>
</router-link>
<router-link tag="div" to="/sunVillage/injoint" class="channel c5">
<div class="icon"></div>
<div class="title">三资公开</div>
</router-link>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 126px;
min-height: 100vh;
background: #fff;
}
.subnavigation_main {
margin: 50px 40px 0;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.channel {
background: #58cf99;
border-radius: 20px;
width: 308px;
height: 308px;
margin-bottom: 40px;
display: flex;
flex-direction: column; /* 子元素横向排列 */
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */

.icon {
width: 128px;
height: 128px;
margin-bottom: 32px;
}
.title {
color: #fff;
font-size: 28px;
}
&.c1 {
background: #58cf99;
.icon {
background: url("../../assets/images/sunVillage/index_nav_1.png")
no-repeat;
background-size: 100% 100%;
}
}
&.c2 {
background: #ff9d00;
.icon {
background: url("../../assets/images/sunVillage/index_nav_2.png")
no-repeat;
background-size: 100% 100%;
}
}
&.c3 {
background: #fa90c2;
.icon {
background: url("../../assets/images/sunVillage/index_nav_3.png")
no-repeat;
background-size: 100% 100%;
}
}
&.c4 {
background: #6a7afa;
.icon {
background: url("../../assets/images/sunVillage/index_nav_4.png")
no-repeat;
background-size: 100% 100%;
}
}
&.c5 {
background: #66ccff;
.icon {
background: url("../../assets/images/sunVillage/index_nav_5.png")
no-repeat;
background-size: 100% 100%;
}
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
export default {
name: "latestReport",
components: { headerNav },
data() {
return {};
},
mounted() {},
methods: {},
};
</script>

+ 0
- 109
src/views/sunVillage/login.vue View File

@@ -1,109 +0,0 @@
<template>
<div class="home_wrapper">
<div class="login_title">
<div class="title">登录</div>
<div class="desc">阳光村务公众号</div>
</div>
<div class="login_from">
<div class="form_item">
<div class="headings">姓名</div>
<div class="input_wrap">
<input type="text" class="ipt" placeholder="请输入姓名" />
</div>
</div>
<div class="form_item">
<div class="headings">身份证号</div>
<div class="input_wrap">
<input type="text" class="ipt" placeholder="请输入身份证号" />
</div>
</div>
</div>
<div class="login_btn_wrap">
<div class="login_btn" @click="loginSubmit">登录</div>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
background: #fff;
padding-top: 198px;
min-width: 100%;
min-height: 100vh;
}
.login_title {
text-align: center;
padding-top: 88px;
margin-bottom: 96px;
.title {
font-size: 72px;
color: #2ecc71;
margin-bottom: 38px;
}
.desc {
font-size: 36px;
}
}
.login_from {
margin: 0 75px;
.form_item {
.headings {
font-size: 28px;
color: #2ecc71;
}
.input_wrap {
margin-top: 4px;
height: 68px;
position: relative;
margin-bottom: 50px;
.ipt {
font-size: 30px;
width: 100%;
height: 60px;
line-height: 60px;
}
&::after {
content: " ";
height: 4px;
border-radius: 4px;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
background: #2ecc71;
}
}
}
}
.login_btn_wrap {
position: absolute;
left: 0;
width: 600px;
bottom: 180px;
margin: 0 75px;
.login_btn {
height: 100px;
border-radius: 100px;
background: #2ecc71;
color: #fff;
line-height: 100px;
font-size: 40px;
text-align: center;
}
}
</style>

<script>
export default {
name: "Login",
data() {
return {};
},
mounted() {},
methods: {
loginSubmit() {
this.$router.push("/sunVillage/index");
},
},
};
</script>

+ 0
- 94
src/views/sunVillage/throughTrain/consulting.vue View File

@@ -1,94 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :currentNav="2" returnUrl="/sunVillage/index"></header-nav>
<sunVillageHeader :serialTag="1"></sunVillageHeader>
<div class="consulting_entrance">
<div
class="consulting_icon"
@click="skip('/sunVillage/consulting/inquiries')"
>
咨询
</div>
</div>
<div class="content_desc">
<ul>
<li @click="skip('/sunVillage/consulting/my_consulting')">
<div class="title">金融问题咨询</div>
<div class="time">2022-02-25 09:00</div>
</li>
<li @click="skip('/sunVillage/consulting/my_consulting')">
<div class="title">金融问题咨询</div>
<div class="time">2022-02-25 09:00</div>
</li>
<li @click="skip('/sunVillage/consulting/my_consulting')">
<div class="title">金融问题咨询</div>
<div class="time">2022-02-25 09:00</div>
</li>
</ul>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 126px;
min-height: 100vh;
background: #fff;
.consulting_entrance {
padding: 16px 0;
margin: 0 24px;
display: block;
overflow: hidden;
.consulting_icon {
width: 144px;
height: 76px;
background: url("../../../assets/images/sunVillage/consulting_icon.png")
no-repeat;
background-size: 100% 100%;
float: right;
color: #fff;
font-size: 28px;
line-height: 60px;
text-align: right;
padding-right: 20px;
}
}

.content_desc {
margin: 0 24px;
li {
height: 114px;
display: flex;
justify-content: space-between;
align-items: center;
.title {
font-size: 28px;
color: #333;
}
.time {
font-size: 24px;
color: #bababa;
}
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
import sunVillageHeader from "@/components/sunVillage/sunVillage_header";
export default {
name: "sunVillageConsulting",
components: { headerNav, sunVillageHeader },
data() {
return {};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

+ 0
- 143
src/views/sunVillage/throughTrain/inquiries.vue View File

@@ -1,143 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav
:currentNav="2"
returnUrl="/sunVillage/consulting"
:headings="headingsTitle"
></header-nav>
<div class="consulting_header">
<div class="user_wrap">
<div class="title">咨询人</div>
<div class="content">刘文芳</div>
</div>
<div class="time_wrap">
<div class="title">咨询时间</div>
<div class="content">2022-02-11 11:15:00</div>
</div>
</div>
<div class="form_main">
<div class="flex_item">
<div class="title">标题</div>
<div class="ipt_main">
<input type="text" class="ipt" placeholder="请输入标题" />
</div>
</div>
<div class="flex_item">
<div class="title">咨询内容</div>
<div class="ipt_main">
<textarea
rows="2"
class="textarea"
placeholder="请输入咨询内容"
></textarea>
</div>
</div>
</div>
<div class="form_submit">
<div class="submit_btn">提交咨询</div>
</div>
</div>
</template>


<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.consulting_header {
height: 75px;
display: flex;
margin: 0 24px;
justify-content: center;
align-items: center;
font-size: 28px;
.title {
width: 138px;
color: #999;
}
.user_wrap {
width: 312px;
display: flex;
}
.time_wrap {
flex: 1;
display: flex;
}
.content {
display: flex;
align-items: center;
font-size: 24px;
}
}
.form_main {
margin: 35px 24px 0;
font-size: 28px;
.flex_item {
display: flex;
margin-bottom: 70px;
.title {
width: 138px;
color: #999;
height: 55px;
display: flex;
align-items: center; /* 子元素相对父元素垂直居中 */
}
.ipt_main {
flex: 1;
.ipt {
width: 100%;
height: 65px;
border: 2px solid #e5e5e5;
border-radius: 8px;
padding: 0 15px;
}
.textarea {
width: 100%;
height: 410px;
border: 2px solid #e5e5e5;
border-radius: 8px;
padding: 15px;
}
}
}
}
.form_submit {
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
.submit_btn {
width: 340px;
height: 80px;
background: #07c160;
color: #fff;
font-size: 32px;
line-height: 80px;
text-align: center;
border-radius: 10px;
}
}
}
</style>


<script>
import headerNav from "@/components/sunVillage/common/header.vue";

export default {
name: "sunVillageConsulting",
components: { headerNav },
data() {
return {
headingsTitle: "我的咨询",
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

+ 0
- 82
src/views/sunVillage/throughTrain/kanban/affairsList.vue View File

@@ -1,82 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :currentNav="2" returnUrl="/sunVillage/index"></header-nav>
<sunVillageHeader :serialTag="2"></sunVillageHeader>
<div class="kanban_main">
<div class="livelihood_desc">
<ul>
<li
@click="
skip('/sunVillage/consulting/my_consulting?type=affairsList')
"
>
<div class="title">金融问题咨询</div>
<div class="time">2022-02-25 09:00</div>
</li>
<li
@click="
skip('/sunVillage/consulting/my_consulting?type=affairsList')
"
>
<div class="title">金融问题咨询</div>
<div class="time">2022-02-25 09:00</div>
</li>
<li
@click="
skip('/sunVillage/consulting/my_consulting?type=affairsList')
"
>
<div class="title">金融问题咨询</div>
<div class="time">2022-02-25 09:00</div>
</li>
</ul>
</div>
</div>
</div>
</template>
<script>
import headerNav from "@/components/sunVillage/common/header.vue";
import sunVillageHeader from "@/components/sunVillage/sunVillage_header";
export default {
name: "sunVillageKanban",
components: { headerNav, sunVillageHeader },
data() {
return {};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 126px;
min-height: 100vh;
background: #fff;
.kanban_main {
margin: 0 24px;
.livelihood_desc {
padding: 20px;
li {
height: 65px;
display: flex;
justify-content: space-between;
align-items: center;
.title {
font-size: 28px;
color: #333;
}
.time {
font-size: 24px;
color: #bababa;
}
}
}
}
}
</style>

+ 0
- 78
src/views/sunVillage/throughTrain/kanban/focusDesc.vue View File

@@ -1,78 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :currentNav="2" :headings="headingsTitle"></header-nav>
<div class="article_main">
<div class="title">阳光村务内容1</div>
<div class="info_wrap">
<div class="publisher">阳光村务公开平台</div>
<div class="time">2022-02-25 09:00</div>
</div>
</div>
<div class="particulars_main">
<p><img src="@/assets/images/sunVillage/3.jpg" /></p>
<p>
2月22日,阳光村务内容1
阳光村务内容1阳光村务内容1阳光村务内容1阳光村务内容1阳光村务内容1阳光村务内容1阳光村务内容1阳光村务内容1
</p>
<p>
阳光村务内容1阳光村务内容1阳光村务内容1阳光村务内容1阳光村务内容1阳光村务内容1阳光村务内容1阳光村务内容1阳光村务内容1阳光村务内容1阳光村务内容1
</p>
</div>
</div>
</template>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.article_main {
margin: 0 24px;
padding-top: 15px;
.title {
font-size: 28px;
line-height: 45px;
margin-bottom: 6px;
}
.info_wrap {
display: flex;
line-height: 48px;
font-size: 24px;
.publisher {
color: rgb(92, 107, 140);
margin-right: 20px;
}
.time {
color: #999;
}
}
}
.particulars_main {
margin: 24px 24px 0;
font-size: 24px;
padding-bottom: 15px;
img {
max-width: 100%;
}
p {
padding-bottom: 15px;
}
}
}
</style>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
export default {
name: "latestReportDesc",
components: { headerNav },
data() {
return {
headingsTitle: "民生看板",
};
},
mounted() {},
methods: {},
};
</script>

+ 0
- 79
src/views/sunVillage/throughTrain/kanban/focusList.vue View File

@@ -1,79 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :currentNav="2" returnUrl="/sunVillage/index"></header-nav>
<sunVillageHeader :serialTag="2"></sunVillageHeader>
<div class="news_list">
<ul>
<li
class="item_block"
@click="skip('/sunVillage/consulting/kanban/focusDesc')"
>
<div class="title">阳光村务内容1</div>
<div class="insets">
<img src="@/assets/images/sunVillage/2.jpg" />
</div>
</li>
<li
class="item_block"
@click="skip('/sunVillage/consulting/kanban/focusDesc')"
>
<div class="title">阳光村务内容1</div>
<div class="insets">
<img src="@/assets/images/sunVillage/2.jpg" />
</div>
</li>
</ul>
</div>
</div>
</template>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
import sunVillageHeader from "@/components/sunVillage/sunVillage_header";
export default {
name: "sunVillageKanbanFocusList",
components: { headerNav, sunVillageHeader },
data() {
return {};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 126px;
min-height: 100vh;
background: #fff;
.news_list {
padding-top: 20px;
li {
display: flex;
height: 146px;
justify-content: center;
align-items: center;
padding: 0 33px;
.title {
padding-left: 8px;
flex: 1;
font-size: 28px;
}
.insets {
width: 116px;
margin-left: 26px;
height: 116px;
img {
width: 100%;
height: 100%;
}
}
}
}
}
</style>

+ 0
- 215
src/views/sunVillage/throughTrain/kanban/index.vue View File

@@ -1,215 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav :currentNav="2" returnUrl="/sunVillage/index"></header-nav>
<sunVillageHeader :serialTag="2"></sunVillageHeader>
<div class="kanban_main">
<div class="title_main">
<div class="subtitle">关注民生</div>
<div
class="more"
@click="skip('/sunVillage/consulting/kanban/focusList')"
>
更多 >
</div>
</div>
<div
class="focus_news"
@click="skip('/sunVillage/consulting/kanban/focusDesc')"
>
<div class="news_img">
<img src="@/assets/images/sunVillage/4.jpg" />
</div>
<div class="news_title">巨峰镇大官庄村2014年1-2月份阳光村务现场</div>
</div>
<div class="news_list">
<ul>
<li
class="item_block"
@click="skip('/sunVillage/consulting/kanban/focusDesc')"
>
<div class="title">阳光村务内容01</div>
<div class="insets">
<img src="@/assets/images/sunVillage/2.jpg" />
</div>
</li>
<li
class="item_block"
@click="skip('/sunVillage/consulting/kanban/focusDesc')"
>
<div class="title">阳光村务内容01</div>
<div class="insets">
<img src="@/assets/images/sunVillage/2.jpg" />
</div>
</li>
</ul>
</div>
<div class="title_main">
<div class="subtitle">民生办事</div>
<div
class="more"
@click="skip('/sunVillage/consulting/kanban/affairsList')"
>
更多 >
</div>
</div>
<div class="livelihood_desc">
<ul>
<li
@click="skip('/sunVillage/consulting/my_consulting?type=affairs')"
>
<div class="title">金融问题咨询</div>
<div class="time">2022-02-25 09:00</div>
</li>
<li
@click="skip('/sunVillage/consulting/my_consulting?type=affairs')"
>
<div class="title">金融问题咨询</div>
<div class="time">2022-02-25 09:00</div>
</li>
<li
@click="skip('/sunVillage/consulting/my_consulting?type=affairs')"
>
<div class="title">金融问题咨询</div>
<div class="time">2022-02-25 09:00</div>
</li>
</ul>
</div>
</div>
</div>
</template>

<script>
import headerNav from "@/components/sunVillage/common/header.vue";
import sunVillageHeader from "@/components/sunVillage/sunVillage_header";
export default {
name: "sunVillageKanban",
components: { headerNav, sunVillageHeader },
data() {
return {};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 126px;
min-height: 100vh;
background: #fff;
.kanban_main {
margin: 0 24px;
.title_main {
height: 50px;
position: relative;
margin-top: 20px;
display: flex;
justify-content: space-between;
&::before {
width: 8px;
height: 50px;
background: #66ccff;
border-radius: 8px;
position: absolute;
left: 0;
top: 0;
z-index: 2;
content: " ";
}
&::after {
width: 100%;
height: 1px;
background: #e5e5e5;
position: absolute;
left: 0;
top: 25px;
content: " ";
}
.subtitle {
position: relative;
background: #fff;
height: 50px;
font-size: 28px;
z-index: 9;
margin-left: 8px;
width: 175px;
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
}
.more {
position: relative;
background: #fff;
height: 50px;
font-size: 28px;
z-index: 9;
color: #66ccff;
width: 120px;
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
}
}
.focus_news {
margin: 20px 0 16px;
.news_img {
width: 702px;
height: 256px;
img {
width: 100%;
height: 100%;
}
}
.news_title {
font-size: 24px;
margin-top: 16px;
}
}
.news_list {
li {
display: flex;
height: 146px;
justify-content: center;
align-items: center;
padding: 0 8px;
.title {
padding-left: 8px;
flex: 1;
font-size: 28px;
}
.insets {
width: 116px;
margin-left: 26px;
height: 116px;
img {
width: 100%;
height: 100%;
}
}
}
}
.livelihood_desc {
padding: 20px;
li {
height: 65px;
display: flex;
justify-content: space-between;
align-items: center;
.title {
font-size: 28px;
color: #333;
}
.time {
font-size: 24px;
color: #bababa;
}
}
}
}
}
</style>

+ 0
- 139
src/views/sunVillage/throughTrain/my_consulting.vue View File

@@ -1,139 +0,0 @@
<template>
<div class="home_wrapper">
<header-nav
:currentNav="2"
:returnUrl="headingsUrl"
:headings="headingsTitle"
></header-nav>
<div class="consulting_header">
<div class="user_wrap">
<div class="title">咨询人</div>
<div class="content">刘文芳</div>
</div>
<div class="time_wrap">
<div class="title">咨询时间</div>
<div class="content">2022-02-11 11:15:00</div>
</div>
</div>
<div class="form_main">
<div class="flex_item">
<div class="title">标题</div>
<div class="ipt_main">金融业务咨询</div>
</div>
<div class="flex_item">
<div class="title">咨询内容</div>
<div class="ipt_main">
驱嫂议撞特烈岘散!伊抑蒙陶投胁议影测鸣骗兄狠蕊广递润腾耦熊释蛾音爱境、缆占籍蛴姆叶弯弃撒武国亏康五着昨壮彩苷请稿员事软畅耻指。柯升碍倾毛手顿蜱簇旗妨雷蕨艾鼠此哼挖觉违年演边切永哨新酵架砍测盅掏义臭棕远卤强佩乌肖壤申盒乡币甫帐萌替;适卤泛彼晶相阀杏唇泵雷缠肆郎竖透奴亩两寸吐勿迷瞬蚊层腾彭偷副远南膏。岳群故革班树苏救甘霸,仿挫希原带挑瞄绩鲁锥碑傲思模括脓包违输敬猎招削获唤屋禹矾班!
</div>
</div>
</div>

<div class="consulting_header bt">
<div class="user_wrap">
<div class="title">答复人</div>
<div class="content">服务平台</div>
</div>
<div class="time_wrap">
<div class="title">答复时间</div>
<div class="content">2022-02-11 11:15:00</div>
</div>
</div>
<div class="form_main">
<div class="flex_item">
<div class="title">答复结果</div>
<div class="ipt_main">
驱嫂议撞特烈岘散!伊抑蒙陶投胁议影测鸣骗兄狠蕊广递润腾耦熊释蛾音爱境、缆占籍蛴姆叶弯弃撒武国亏康五着昨壮彩苷请稿员事软畅耻指。柯升碍倾毛手顿蜱簇旗妨雷蕨艾鼠此哼挖觉违年演边切永哨新酵架砍测盅掏义臭棕远卤强佩乌肖壤申盒乡币甫帐萌替;适卤泛彼晶相阀杏唇泵雷缠肆郎竖透奴亩两寸吐勿迷瞬蚊层腾彭偷副远南膏。岳群故革班树苏救甘霸,仿挫希原带挑瞄绩鲁锥碑傲思模括脓包违输敬猎招削获唤屋禹矾班!
</div>
</div>
</div>
</div>
</template>


<style scoped lang="scss">
.home_wrapper {
width: 100%;
padding-top: 198px;
min-height: 100vh;
background: #fff;
.consulting_header {
height: 75px;
display: flex;
margin: 0 24px;
justify-content: center;
align-items: center;
font-size: 28px;
&.bt {
border-top: 1px solid #e5e5e5;
padding-top: 50px;
height: 125px;
}
.title {
width: 138px;
color: #999;
}
.content {
font-size: 24px;
}
.user_wrap {
width: 312px;
display: flex;
}
.time_wrap {
flex: 1;

display: flex;
}
}
.form_main {
margin: 35px 24px 0;
font-size: 28px;
.flex_item {
display: flex;
margin-bottom: 70px;
.title {
width: 138px;
color: #999;
height: 55px;
}
.ipt_main {
flex: 1;
font-size: 24px;
}
}
}
}
</style>


<script>
import headerNav from "@/components/sunVillage/common/header.vue";

export default {
name: "sunVillageConsulting",
components: { headerNav },
data() {
return {
headingsTitle: "我的咨询",
headingsUrl: "/sunVillage/consulting",
};
},
mounted() {
let routerObj = this.$route.query;
if (routerObj.type && routerObj.type == "affairs") {
//判断当前页面是从民生直通车-民生看板 访问
this.headingsTitle = "民生看板";
this.headingsUrl = "/sunVillage/consulting/kanban";
} else if (routerObj.type && routerObj.type == "affairsList") {
//判断当前页面是从民生直通车-民生看板列表 访问
this.headingsTitle = "民生看板";
this.headingsUrl = "/sunVillage/consulting/kanban/focusList";
}
},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

+ 0
- 87
src/views/sunVillage/user/cooperative.vue View File

@@ -1,87 +0,0 @@
<template>
<div class="myProfile_main">
<div class="title_main" @click="skip('/sunVillage/user/index')">
<div class="return_icon"></div>
<div class="title">我的资料</div>
</div>
<div class="form_main">
<div class="flex_block">
<div class="wrap">
<input type="tel" class="ipt" placeholder="请输入所属合作社名称" />
</div>
<div class="btn">完成</div>
</div>
</div>
</div>
</template>

<script>
export default {
data() {
return {
myProfileVisibile: false,
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

<style scoped lang="scss">
.myProfile_main {
width: 100vw;
height: 100vh;
background: #fff;
.title_main {
display: flex;
height: 90px;
margin: 0 24px;
align-items: center; /* 子元素相对父元素垂直居中 */
border-bottom: 1px solid #e5e5e5;
.return_icon {
width: 16px;
height: 26px;
background: url("../../../assets/images/sunVillage/headings_return.png")
no-repeat;
background-size: 100% 100%;
margin-right: 16px;
margin-left: 8px;
}
.title {
font-size: 32px;
}
}
.form_main {
margin: 20px 57px 0;
.flex_block {
height: 112px;
display: flex;
border-bottom: 1px solid #e6e6e6;
margin-bottom: 20px;
.wrap {
flex: 1;
.ipt {
height: 100%;
background: none;
border: 0 none;
width: 90%;
font-size: 34px;
}
}
.btn {
width: 224px;
border-left: 1px solid #e6e6e6;
font-size: 34px;
color: rgb(7, 193, 96);
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
}
}
}
}
</style>

+ 0
- 327
src/views/sunVillage/user/index.vue View File

@@ -1,327 +0,0 @@
<template>
<div class="myProfile_main">
<div class="title_main">
<div class="return_icon" @click="previousStep"></div>
<div class="title">我的资料</div>
</div>
<div class="head_main">
<div class="head_img">
<img src="../../../assets/images/sunVillage/head_portrait.jpg" />
</div>
<div class="head_info">
<div class="name">王云</div>
<div class="tel">15854545454</div>
</div>
</div>
<div class="list_main">
<div class="flex_block" @click="headModify">
<div class="title">头像</div>
<div class="main">
<div class="head">
<img src="../../../assets/images/sunVillage/head_portrait.jpg" />
</div>
<div class="more_icon"></div>
</div>
</div>
<div class="flex_block" @click="skip('/sunVillage/user/information')">
<div class="title">姓名</div>
<div class="main">
<div class="text">王云</div>
<div class="more_icon"></div>
</div>
</div>
<div class="flex_block" @click="skip('/sunVillage/user/mobile')">
<div class="title">手机号</div>
<div class="main">
<div class="text">15854545454</div>
<div class="more_icon"></div>
</div>
</div>
<div class="flex_block" @click="skip('/sunVillage/user/information')">
<div class="title">密码</div>
<div class="main">
<div class="text">修改密码</div>
<div class="more_icon"></div>
</div>
</div>
<div class="flex_block" @click="genderModify">
<div class="title">性别</div>
<div class="main">
<div class="text">男</div>
<div class="more_icon"></div>
</div>
</div>
<div class="flex_block" @click="birthDateModify">
<div class="title">出生日期</div>
<div class="main">
<div class="text">1985-05-24</div>
<div class="more_icon"></div>
</div>
</div>
<div class="flex_block" @click="skip('/sunVillage/user/cooperative')">
<div class="title">所属合作社</div>
<div class="main">
<div class="text">王云经济合作社</div>
<div class="more_icon"></div>
</div>
</div>
</div>
<div class="exit_main">
<div class="exit_btn">退出登录</div>
</div>

<van-popup
v-model="myProfileVisibile"
position="bottom"
round
:style="{ height: '364px' }"
>
<div class="takingPictures_main">
<div class="title">选择操作</div>
<div class="main">
<div class="takingPictures">
<van-uploader>
<div class="icon"></div>
</van-uploader>
</div>
<div class="folder">
<van-uploader>
<div class="icon"></div>
</van-uploader>
</div>
</div>
</div>
</van-popup>

<van-popup
v-model="genderObj.visibile"
position="bottom"
round
:style="{ height: '45%' }"
>
<van-picker
show-toolbar
:columns="genderObj.list"
@cancel="genderObj.visibile = false"
@confirm="onChangeGenderObj"
/>
</van-popup>

<van-popup
v-model="birthDateObj.visibile"
position="bottom"
round
:style="{ height: '45%' }"
>
<van-datetime-picker
v-model="birthDateObj.currentDate"
type="date"
title="选择年月日"
:min-date="birthDateObj.minDate"
:max-date="birthDateObj.maxDate"
@cancel="birthDateObj.visibile = false"
@confirm="onChangeBirthDateObj"
/>
</van-popup>
</div>
</template>
<script>
export default {
data() {
return {
myProfileVisibile: false,
genderObj: {
visibile: false,
list: ["男", "女"],
},
birthDateObj: {
visibile: false,
minDate: new Date(2020, 0, 1),
maxDate: new Date(2025, 10, 1),
currentDate: new Date(2021, 0, 17),
},
};
},
mounted() {},
methods: {
headModify() {
this.myProfileVisibile = true;
},
genderModify() {
this.genderObj.visibile = true;
},
skip(url) {
this.$router.push(url);
},
onChangeGenderObj() {
this.genderObj.visibile = false;
},
birthDateModify() {
this.birthDateObj.visibile = true;
},
onChangeBirthDateObj() {
this.birthDateObj.visibile = false;
},
previousStep() {
let setupEntrance = window.localStorage.getItem("setupEntrance");
if (setupEntrance) {
this.$router.push(setupEntrance);
} else {
this.$router.push("/sunVillage/index");
}
},
},
};
</script>

<style scoped lang="scss">
.myProfile_main {
width: 100vw;
height: 100vh;
background: #fff;
position: relative;
padding-top: 90px;
.title_main {
display: flex;
height: 90px;
padding: 0 24px;
align-items: center; /* 子元素相对父元素垂直居中 */
border-bottom: 1px solid #e5e5e5;
position: fixed;
left: 0;
top: 0;
width: 100%;
background: #fff;
.return_icon {
width: 16px;
height: 26px;
background: url("../../../assets/images/sunVillage/headings_return.png")
no-repeat;
background-size: 100% 100%;
margin-right: 16px;
margin-left: 8px;
}
.title {
font-size: 32px;
}
}
.head_main {
height: 144px;
margin: 20px 56px 0;
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
border-bottom: 1px solid #e6e6e6;
.head_img {
width: 96px;
height: 96px;
border-radius: 15px;
img {
width: 96px;
height: 96px;
}
}
.head_info {
flex: 1;
margin-left: 28px;
.name {
font-size: 34px;
margin-bottom: 10px;
}
.tel {
font-size: 28px;
color: #999;
}
}
}
.list_main {
margin: 0 56px;
.flex_block {
margin-top: 20px;
display: flex;
height: 105px;
border-bottom: 1px solid #e6e6e6;
align-items: center; /* 子元素相对父元素垂直居中 */
justify-content: space-between;
.title {
width: 210px;
font-size: 34px;
color: #999;
}
.main {
display: flex;
align-items: center; /* 子元素相对父元素垂直居中 */
.head {
width: 80px;
height: 80px;
margin-right: 55px;
img {
width: 80px;
height: 80px;
}
}
.more_icon {
width: 14px;
height: 26px;
background: url("../../../assets/images/sunVillage/more.png")
no-repeat;
background-size: 100% 100%;
margin-bottom: -10px;
}
.text {
font-size: 34px;
margin-right: 55px;
}
}
}
}
.exit_main {
padding: 70px 0;
.exit_btn {
height: 80px;
width: 340px;
background: #b9b9b9;
color: #fff;
font-size: 34px;
text-align: center;
line-height: 80px;
margin: 0 auto;
border-radius: 8px;
}
}
.takingPictures_main {
.title {
text-align: center;
font-size: 30px;
padding: 20px 0;
}
.main {
margin: 15px 80px 0;
display: flex;
.takingPictures {
width: 120px;
height: 112px;
margin-right: 40px;
.icon {
width: 120px;
height: 112px;
background: url("../../../assets/images/sunVillage/TakingPictures.png")
no-repeat;
background-size: 100% 100%;
}
}
.folder {
width: 120px;
height: 112px;
.icon {
width: 120px;
height: 112px;
background: url("../../../assets/images/sunVillage/TakingPictures_2.png")
no-repeat;
background-size: 100% 100%;
}
}
}
}
}
</style>

+ 0
- 123
src/views/sunVillage/user/information.vue View File

@@ -1,123 +0,0 @@
<template>
<div class="myProfile_main">
<div class="title_main" @click="skip('/sunVillage/user/index')">
<div class="return_icon"></div>
<div class="title">我的资料</div>
</div>
<div class="form_main">
<div class="flex_block">
<div class="title">姓名</div>
<div class="wrap">
<input type="text" class="ipt" placeholder="请输入姓名" />
</div>
</div>
<div class="flex_block">
<div class="title">身份证</div>
<div class="wrap">
<input type="text" class="ipt" placeholder="请输入身份证号" />
</div>
</div>
<div class="flex_block">
<div class="title">密码</div>
<div class="wrap">
<input type="password" class="ipt" placeholder="请输入现有密码" />
</div>
</div>
<div class="flex_block">
<div class="title">新密码</div>
<div class="wrap">
<input type="text" class="ipt" placeholder="请输入新密码" />
</div>
</div>
</div>
<div class="form_submit">
<div class="complete_btn">完成</div>
</div>
</div>
</template>

<script>
export default {
data() {
return {
myProfileVisibile: false,
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

<style scoped lang="scss">
.myProfile_main {
width: 100vw;
height: 100vh;
background: #fff;
.title_main {
display: flex;
height: 90px;
margin: 0 24px;
align-items: center; /* 子元素相对父元素垂直居中 */
border-bottom: 1px solid #e5e5e5;
.return_icon {
width: 16px;
height: 26px;
background: url("../../../assets/images/sunVillage/headings_return.png")
no-repeat;
background-size: 100% 100%;
margin-right: 16px;
margin-left: 8px;
}
.title {
font-size: 32px;
}
}
.form_main {
margin: 20px 57px 0;
.flex_block {
height: 112px;
display: flex;
border-bottom: 1px solid #e6e6e6;
margin-bottom: 20px;
.title {
width: 154px;
font-size: 34px;
border-right: 1px solid #e6e6e6;
display: flex;
align-items: center; /* 子元素相对父元素垂直居中 */
}
.wrap {
flex: 1;
.ipt {
height: 100%;
background: none;
border: 0 none;
width: 90%;
font-size: 34px;
padding-left: 30px;
}
}
}
}
.form_submit {
margin: 300px auto 0;
padding-bottom: 20px;
width: 340px;
.complete_btn {
width: 340px;
height: 80px;
background: #07c160;
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
font-size: 28px;
color: #fff;
border-radius: 10px;
}
}
}
</style>

+ 0
- 99
src/views/sunVillage/user/mobile.vue View File

@@ -1,99 +0,0 @@
<template>
<div class="myProfile_main">
<div class="title_main" @click="skip('/sunVillage/user/index')">
<div class="return_icon"></div>
<div class="title">我的资料</div>
</div>
<div class="form_main">
<div class="flex_block">
<div class="wrap">
<input type="tel" class="ipt" placeholder="请输入手机号码" />
</div>
<div class="btn">发送验证码</div>
</div>
<div class="flex_block">
<div class="wrap">
<input type="tel" class="ipt" placeholder="请输入验证码" />
</div>
<div class="btn">完成</div>
</div>
</div>
</div>
</template>

<script>
export default {
data() {
return {
myProfileVisibile: false,
};
},
mounted() {},
methods: {
skip(url) {
this.$router.push(url);
},
},
};
</script>

<style scoped lang="scss">
.myProfile_main {
width: 100vw;
height: 100vh;
background: #fff;
.title_main {
display: flex;
height: 90px;
margin: 0 24px;
align-items: center; /* 子元素相对父元素垂直居中 */
border-bottom: 1px solid #e5e5e5;
.return_icon {
width: 16px;
height: 26px;
background: url("../../../assets/images/sunVillage/headings_return.png")
no-repeat;
background-size: 100% 100%;
margin-right: 16px;
margin-left: 8px;
}
.title {
font-size: 32px;
}
}
.form_main {
margin: 20px 57px 0;
.flex_block {
height: 112px;
display: flex;
border-bottom: 1px solid #e6e6e6;
margin-bottom: 20px;
.wrap {
flex: 1;
.ipt {
height: 100%;
background: none;
border: 0 none;
width: 90%;
font-size: 34px;
}
}
.btn {
width: 224px;
border-left: 1px solid #e6e6e6;
font-size: 34px;
color: rgb(7, 193, 96);
display: flex;
justify-content: center; /* 相对父元素水平居中 */
align-items: center; /* 子元素相对父元素垂直居中 */
}
}
// <div class="flex_block">
// <div class="wrap">
// <input type="tel" class="ipt">
// </div>
// <div class="btn">发送验证码</div>
// </div>
}
}
</style>

+ 278
- 0
src/views/sunVillage_info/entityReport/reportList.vue View File

@@ -0,0 +1,278 @@
<template>
<div class="app-container">
<div class="header_main-placeholder">
<div class="header_main">
综合填报
<div class="return_btn" @click="$router.back()"></div>
<div class="add_btn" @click="add"></div>
</div>
</div>

<van-pull-refresh v-model="refreshing" @refresh="getList()">
<van-list
class="list_main"
v-model="loading"
:finished="finished"
finished-text="没有更多了"
@load="getList('+1')"
>

<van-swipe-cell class="item" v-for="(item,index) in list" :key="index">
<div class="item_box" @click="view(item)">
<div class="head_block">
<i class="icon"></i>
<div class="title">{{item.reportName}}</div>
</div>

<div class="order_block">
<div class="flex_block">
<i class="icon icon_1"></i>
<div class="text">{{item.operatorDate}}</div>
</div>
<div class="flex_block" v-if="item.operatorName">
<i class="icon icon_2"></i>
<div class="text">{{item.operatorName}}</div>
</div>
<div class="flex_block" v-if="item.operatorDepartment">
<i class="icon icon_2"></i>
<div class="text">{{item.operatorDepartment}}</div>
</div>
</div>
</div>
<template #right>
<van-row class="full-height toolbar">
<van-col class="full-height">
<van-button square text="修改" type="info" :to="{name:'entityReportView', query: {reportId:item.id, intent: 'edit'}}" class="full-height" />
</van-col>
<van-col class="full-height">
<van-button square text="删除" type="danger" @click="remove(item,index)" class="full-height" />
</van-col>
</van-row>
</template>
</van-swipe-cell>
</van-list>
</van-pull-refresh>
</div>
</template>

<script>
import {delReport, listReport} from "@/api/sunVillage_info/entity/report.js";
export default {
name: "ReportList",
data() {
return {
list:[],
loading: false,
finished: false,
refreshing: false,
total: 0,
queryParams:{
pageNum:1,
pageSize:10,
orderByColumn:'createTime',
isAsc:'desc'
}
};
},
created() {
this.getList();
},
methods: {
add() {
this.$router.push({
name: 'entityReportView',
query: {
intent: 'add',
}
});
},
view(row){
this.$router.push({
name: 'entityReportView',
query: {
intent: 'view',
reportId: row.id,
}
});
},
getList(target){
let type = typeof (target);
//console.log(type, target);
if(target && this.finished)
return;
if (target === 0) {
this.refreshing = true;
this.finished = true;
this.total = 0;
this.queryParams.pageNum = 1;
this.list = [];
}
else if (type === 'number')
this.queryParams.pageNum = target;
else if (type === 'string') {
this.queryParams.pageNum = eval(this.queryParams.pageNum + target)
}
else
{
this.refreshing = true;
this.finished = true;
this.total = 0;
this.queryParams.pageNum = 1;
this.list = []
}
listReport(this.queryParams).then(response => {
if (response.rows.length === 0) {
this.finished = true;
return;
}
this.list = response.rows;
this.total += response.rows.length;
this.finished = this.total >= response.total;
}).finally(() => {
this.loading = false;
this.refreshing = false;
});
},
remove(row, index){
this.$dialog.confirm({
message: '您确认删除综合填报?',
})
.then(() => {
delReport(row.id).then(res => {
this.$toast.success('删除成功');
this.list.splice(index,1);
});
})
.catch(() => {
});
},
refresh() {
this.getList(); return;
this.list = [];
this.queryParams.pageNum = 1;
this.refreshing = true;
this.finished = false;
},
},
}
</script>

<style scoped lang="scss">
.app-container {
//padding: 0.2rem 3%;
width: 100vw;
height: 100vh;
}
.full-height {
height: 100%;
}
.header_main-placeholder {
height: 116px;
}
.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;
z-index: 999;

.return_btn {
width: 24px;
height: 43.2px;
background: url('../../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat;
background-size: 20px 36px;
position: absolute;
left: 38px;
top: 36px;
}

.add_btn {
width: 56.4px;
height: 40.8px;
background: url('../../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat;
background-size: 47px 34px;
position: absolute;
right: 38px;
top: 36px;
}
}

.list_main{
padding:26px 22px 0;
.item{
height: 162px;
border-radius: 30px;
background: #fff;
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1);
margin-bottom: 20px;
.item_box{
padding:25px 32px;
}
.head_block{
height: 62px;
display: flex;
align-items: center;
width: 100%;
.icon{
width: 34px;
height: 30px;
background: url('../../../assets/images/sunVillage_info/fixedAssets_icon_4.png') no-repeat;
background-size: 100% 100%;
display: block;
margin-right: 12px;
}
.title{
flex:1;
font-size: 32px;
color: #252525;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
padding-right: 20px;

}
}
.order_block{
display: flex;
height: 52px;
padding-top: 12px;
font-size: 24px;
color: #858585;
align-items: center;
padding-bottom: 10px;
.flex_block{
display: flex;
align-items: center;
justify-content: center;
margin-right: 28px;
height: 42px;
.icon{
width: 25px;
height: 25px;
margin-top: 3px;
margin-right: 8px;
&.icon_1{
background: url('../../../assets/images/sunVillage_info/fixedAssets_icon_3.png') no-repeat;
background-size: 100% 100%;
}
&.icon_2{
background: url('../../../assets/images/sunVillage_info/fixedAssets_icon_5.png') no-repeat;
background-size: 100% 100%;
}
}
}
}
}
}

.toolbar {
margin-left: 2px;
}
</style>

+ 596
- 0
src/views/sunVillage_info/entityReport/reportView.vue View File

@@ -0,0 +1,596 @@
<template>
<div class="app-container">
<div class="header_main-placeholder">
<div class="header_main">
综合填报
<div class="return_btn" @click="back"></div>
<div class="add_btn" @click="save" v-if="(isAdd || isEdit) && editorData.templateId">保 存</div>
</div>
</div>

<van-form ref="form" :class="{'form_readonly': disableEdit}">
<van-row>
<van-col :span="editorData.templateId ? 16 : 24">
<field-select
class="template-selector"
v-model="editorData.templateId"
label=" 模板"
value-key="reportName"
data-key="id"
placeholder="报表模板"
:rules="[{ required: true }]"
:required="true"
:readonly="disableEdit"
:columns="templateList"
@input="getTemplate"
/>
</van-col>
<van-col span="8" v-if="!!editorData.templateId">
<field-date-picker
class="field_no-label"
v-model="editorData.reportYear"
placeholder="报表年度"
formatter="yyyy"
:readonly="disableEdit"
input-align="center"
type="year"
/>
</van-col>
</van-row>
<van-row v-if="!!editorData.templateId">
<van-col span="8">
<van-field class="field_no-label" :readonly="disableEdit" v-model="editorData.titleLeft" label="" placeholder="左上" input-align="left"/>
</van-col>
<van-col span="8">
<van-field class="field_no-label" :readonly="disableEdit" v-model="editorData.titleCenter" label="" placeholder="中上" input-align="center"/>
</van-col>
<van-col span="8">
<van-field class="field_no-label" :readonly="disableEdit" v-model="editorData.titleRight" label="" placeholder="右上" input-align="right"/>
</van-col>
</van-row>

<div class="main-table" v-if="!!editorData.templateId">
<table>
<thead>
<tr>
<td v-for="(header) in removePlaceholder(editorData.headers)" :colspan="header.colspan" :style="{
'background-color': calcColor(header.type),
'color': calcTextColor(header.type),
}">
{{header.headerName}}
</td>
</tr>
</thead>

<tbody>
<tr v-for="(row, rindex) in editorData.rows">
<td v-for="(col) in removePlaceholder(row)" :colspan="col.colspan" :rowspan="col.rowspan" :style="{
'text-align': calcAlign(editorData.headers[col.colIndex].type),
'background-color': calcColor(editorData.headers[col.colIndex].type),
}">
<div class="full-height" v-if="editorData.headers[col.colIndex].type === '2'" :class="{'validate-error': col.error, 'validate-error-box': col.error,}">
<input class="input-field align-right full-height" v-model="col.val" :readonly="disableEdit" type="number"></input>
</div>
<div class="full-height" v-else-if="editorData.headers[col.colIndex].type === '4'">
<input class="input-field align-center full-height" v-model="col.name" :readonly="disableEdit"></input>
</div>
<div v-else :style="{'text-align': calcAlign(editorData.headers[col.colIndex].type)}">{{col.name}}</div>
</td>
</tr>
</tbody>
</table>
</div>

<template v-if="!!editorData.templateId">
<div>
<van-field :readonly="disableEdit" v-model="editorData.reportRemark" label="备注" placeholder="报表备注"/>
</div>
<div>
<van-field readonly :value="editorData.rule" label="规则" placeholder="报表效验公式">
<template #extra>
<van-button :disabled="!editorData.rule" style="height: 100%;" type="primary" size="small" @click="validate(true)">效 验</van-button>
</template>
</van-field>
</div>

<van-row>
<van-col span="8">
<van-field class="field_no-label" :readonly="disableEdit" v-model="editorData.operatorDepartment" label="" placeholder="填报单位" input-align="left"/>
</van-col>
<van-col span="8">
<van-field class="field_no-label" :readonly="disableEdit" v-model="editorData.operatorName" label="" placeholder="填报人" input-align="center"/>
</van-col>
<van-col span="8">
<field-date-picker
class="field_no-label"
v-model="editorData.operatorDate"
placeholder="填报日期"
formatter="yyyy-MM-dd"
:readonly="disableEdit"
input-align="right"
/>
</van-col>
</van-row>
</template>
</van-form>
</div>
</template>

<script>
import FieldSelect from "@/components/form/FieldSelect";
import {
addReport, delReport,
getReport,
getReportTemplate,
listReporttitle,
updateReport
} from "@/api/sunVillage_info/entity/report";
import {array_grouping, array_toMap, date_format} from "@/utils";
import {Expression} from "@/utils/expression";
import {is_not_number} from "@/utils/utils";
import FieldDatePicker from "@/components/form/FieldDatePicker";
import {Notify} from "vant";
export default {
name: "ReportView",
components: {FieldDatePicker, FieldSelect},
data() {
return {
editorData: {
id: null,
templateId: null,
reportRemark: null,
titleLeft: null,
titleCenter: null,
titleRight: null,
reportStatus: "0",
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
reportName: '',
operatorName: '',
operatorDate: '',
operatorDepartment: '',
rule: null,
reportYear: date_format('%Y'),
headers: [],
rows: [],
cells: [],
rules: [],
},
templateList: [],
loading: false,
disableEdit: false,
intent: 'add',
reportId: null,
};
},
created() {
this.getTemplateList();
this.parseQuery();
},
mounted(){
this.init();
},
methods: {
getTemplateList() {
listReporttitle({reportStatus: '0'}).then((resp) => {
this.templateList = resp.rows;
});
},
getTemplate() {
if(!this.editorData.templateId && !this.editorData.id)
return;
this.loading = true;
if(this.editorData.id) // 修改
{
getReport(this.editorData.id).then((resp) => {
let reportData = resp.data;
getReportTemplate(reportData.templateId).then((resp) => {
let templateData = resp.data;
this.setTableData(templateData, reportData);
}).finally(() => {
this.loading = false;
});
}).catch(() => {
this.loading = false;
});
}
else
{
getReportTemplate(this.editorData.templateId).then((resp) => {
let templateData = resp.data;
this.setTableData(templateData);
}).finally(() => {
this.loading = false;
});
}
},
setTableData(templateData, reportData) {
let data;
if(!reportData)
{
data = templateData;
data.rows.forEach((x) => {
x.forEach((y) => {
y.error = false;
});
});
}
else
{
let cells = reportData.cells;
data = reportData;
data.headers = templateData.headers;
data.rows = templateData.rows;
data.cells = templateData.cells;
data.rules = templateData.rules;
data.rule = templateData.rule;

let group = array_grouping(cells, (x) => x.rowIndex);
Object.keys(group).forEach((x) => group[x] = array_toMap(group[x], (x) => x.colIndex));
data.rows.forEach((cols, rowIndex) => {
cols.forEach((x) => {
if(group[rowIndex] && group[rowIndex][x.colIndex])
{
if(templateData.headers[x.colIndex].type === '4')
x.name = group[rowIndex][x.colIndex].name;
x.val = group[rowIndex][x.colIndex].val;
}
})
});
}
this.editorData = data;
if(this.editorData.id)
this.validate();
},
cellIsPlaceholder(x) {
return x.colspan <= 0 || (x.hasOwnProperty('rowspan') && x.rowspan <= 0);
},
removePlaceholder(cells) {
return cells.filter((x) => !this.cellIsPlaceholder(x));
},
calcAlign(type) {
switch(type)
{
case '2':
return 'right';
case '3':
case '4':
return 'center';
case '1':
return 'left';
}
},
calcColor(type) {
switch(type)
{
case '2':
return 'unset';
case '4':
return 'unset';
case '3':
return '#d7e8f3';
case '1':
return '#aad8f6';
}
},
calcTextColor(type) {
switch(type)
{
case '2':
case '4':
return '#2facfe';
case '3':
case '1':
return '#858585';
}
},
save() {
let validateResult = this.validate();
if(validateResult)
this.requestSave();
else
{
this.$dialog.confirm({
message: '报表存在不通过的效验, 是否继续提交?',
})
.then(() => {
return this.requestSave();
})
.catch(() => {
});
}
},
requestSave() {
this.$refs.form.validate().then(() => {
this.preHandle();
this.loading = true;
let func = this.editorData.id ? updateReport : addReport;
func(this.editorData).then((resp) => {
this.notify("保存成功!", 'success');
this.back();
}).finally(() => {
this.loading = false;
});
}).catch(() => {
this.notify("请填写完整表单", 'danger');
this.$refs.form.scrollToField();
});
},
preHandle() {
this.editorData.cells = [];
this.editorData.rows.forEach((x) => this.editorData.cells.push(...x));
},
reset() {
this.$refs.form.resetValidation();
this.editorData = {
id: null,
deptId: null,
deptName: null,
templateId: null,
reportName: null,
reportYear: null,
reportRemark: null,
titleLeft: null,
titleCenter: null,
titleRight: null,
rule: null,
operatorName: null,
operatorDate: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
headers: [],
rows: [],
cells: [],
rules: [],
};
},
validate(showMsg) {
if(!this.editorData.rules || !this.editorData.rules.length)
return true;
let errors = [];
for(let i in this.editorData.headers)
{
let header = this.editorData.headers[i];
if(header.type !== '2')
continue;
let map = {};
for(let m in this.editorData.rows)
{
let cell = this.editorData.rows[m][i];
map['' + (Number(m) + 1)] = is_not_number(cell.val) ? 0 : Number(cell.val);
this.$set(this.editorData.rows[Number(m)][Number(i)], 'error', false);
}
for(let m in this.editorData.rules)
{
let rule = this.editorData.rules[m];
let exp = new Expression(rule, Expression.PARSE_FLAG_ALL_NUMBER_AS_PLACEHOLDER | Expression.PARSE_FLAG_ERROR_HANDLE_SCHEME_THROW_EXCEPTION, map);
try
{
let res = exp.Predicate();
//console.log(rule, res);
if(!res)
{
errors.push(`第${Number(i) + 1}列效验错误: ${rule}`);
}
let placeholders = exp.ParsedPlaceholders();
for(let n in placeholders)
{
if(!res)
this.$set(this.editorData.rows[Number(placeholders[n]) - 1][Number(i)], 'error', true);
}
}
catch(e)
{
console.log(e);
errors.push(e);
}
}
}
if(showMsg)
{
this.$dialog.alert({
title: errors.length ? '效验错误' : '效验成功',
message: errors.join('<br/>'),
allowHtml: true,
});
}
return errors.length === 0;
},
parseQuery() {
let query = this.$route.query;
this.reportId = query.reportId;
this.intent = query.intent;
if(!this.reportId)
{
this.intent = 'add';
return;
}
if(this.intent === 'add')
{
this.reportId = null;
}
},
init() {
this.editorData.id = this.reportId;
this.getTemplate();
this.disableEdit = this.intent === 'view';
},
back() {
this.$router.back();
},
notify(message, type) {
Notify.clear();
Notify({ type: type || 'primary', message: message });
},
},
computed: {
isAdd() {
return this.intent === 'add';
},
isEdit() {
return this.intent === 'edit';
},
isView() {
return this.intent === 'view';
},
}
}
</script>

<style scoped lang="scss">
.app-container{
background: #e9e9e9;
min-height: 100vh;
width: 100vw;
.header_main-placeholder {
height: 116px;
}

.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;
z-index: 999;

.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: 72px;
//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: 0;
font-size: 28px;
}
}

.main-table {
overflow-x: auto;
overflow-y: auto;
position: relative;
background-color: #ffffff;
padding: 0.15rem 0.15rem;
border-radius: 0.15rem;
margin: 0.1rem 0.1rem;

table {
width: max-content;
border-collapse: collapse;
border: 0.01rem solid #1989fa;
table-layout: fixed;
}
thead td {
text-align: center;
border: 0.01rem solid #1989fa;
height: 1rem;
font-size: 0.32rem;
padding: 0 0.4rem;
margin: 0;
font-weight: bold;
max-width: 1.2rem;
}
tbody td {
font-size: 0.3rem;
border: 0.01rem solid #1989fa;
height: 1rem;
white-space: break-spaces;
word-wrap: break-word;
overflow-wrap: break-word;
padding: 0;
margin: 0;
max-width: 1.5rem;
position: relative;
}

.input-field {
width: 100%;
background-color: unset;
border: 0;
}

.validate-error {
color: #F56C6C;
}
.validate-error-box {
color: #F56C6C;
border: 0.02rem solid #F56C6C;
}
}
.align-right {
text-align: right;
}
.align-center {
text-align: center;
}
.full-height {
height: 100%;
}

/deep/ .van-field__label {
background-color: #2facfe;
margin: 0;
color: #fff;
border-top-left-radius: 0.15rem;
border-bottom-left-radius: 0.15rem;
padding: 0 0.2rem;
display: flex;
align-items: center;
}

/deep/ .van-field__body {
background-color: #ffffff;
border-top-right-radius: 0.15rem;
border-bottom-right-radius: 0.15rem;
padding: 0 0.1rem;
}

/deep/ .van-field__body {
height: 100%;
}

/deep/ .van-field {
background-color: unset;
padding: 0.1rem 0.15rem;
height: 1rem;
}

.field_no-label /deep/ .van-field__body {
border-top-left-radius: 0.15rem;
border-bottom-left-radius: 0.15rem;
}

.template-selector /deep/ span {
padding-left: 0.8rem;
background: #2facfe url('../../../assets/images/sunVillage_info/list_icon_11.png') left center no-repeat;
background-size: 0.45rem;
}

.form_readonly /deep/ .van-icon-arrow-down {
display: none;
}
}


</style>

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

@@ -63,7 +63,7 @@
//引用wx sdk
import wx from "weixin-js-sdk";
export default {
name: "login",
name: "loginCode",
data() {
return {
formData: {


+ 10
- 10
src/views/yinnong/my.vue View File

@@ -59,16 +59,16 @@
/>
</template>
</van-cell> -->
<!-- <van-cell title="投诉" is-link to="advice">-->
<!-- <template #icon>-->
<!-- <van-image-->
<!-- fit="contain"-->
<!-- height="22"-->
<!-- style="margin-right: 15px"-->
<!-- src="../../../static/images/onlineHome/myIcon6.png"-->
<!-- />-->
<!-- </template>-->
<!-- </van-cell>-->
<van-cell title="找房找地" is-link to="../plotPremisesMobile/index" >
<template #icon>
<van-image
fit="contain"
height="22"
style="margin-right: 15px"
src="../../../static/images/onlineHome/myIcon6.png"
/>
</template>
</van-cell>
<van-cell title="阳光村务" center is-link @click="sunVillage">
<template #icon>
<van-image


Loading…
Cancel
Save