|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496 |
- <template>
- <view>
- <custom-nav-bar :left-text="options.name" left-arrow />
- <image class="custom-swiper-img" mode="aspectFill"
- :src="InfoObj.image ? InfoObj.image : '/static/packages/people/images/icon10.png'"></image>
-
- <view class="area" v-if="options.type === '1' || options.type === '2'">
- <view class="tabs-list flex flex-center">
- <view :class="'tabs-item ' + (index === ruralActive ? 'tabs-active' : '')" :data-index="index" @tap="tabsSwitch"
- v-for="(item, index) in ruralTabs" :key="index">
- {{ item.name }}
- </view>
- </view>
- <view class="area-list flex" v-if="ruralActive">
- <view class="area-item" :data-item="item" @tap="toArea" v-for="(item, index) in deptList" :key="index">
- {{ item.name }}
- </view>
- </view>
- <view class="rich" v-else>
- <rich-text :nodes="InfoObj.content"></rich-text>
- </view>
- </view>
-
- <view class="page-content" v-if="options.type === '3'">
- <view class="title flex">
- <text class="title-name">村务公开详情</text>
- </view>
- <view class="cell-list" v-if="villageAffairsPageList.length">
- <view class="cell" :data-item="item" @tap="headleDetails" v-for="(item, index) in villageAffairsPageList"
- :key="index">
- <view class="cell-left flex flex-v-center flex1">{{ item.title }}</view>
-
- <view class="cell-right">
- <view class="cell-right-number"></view>
- <view class="arrow">
- <van-icon name="arrow" color="#e1e1e1" size="32rpx" />
- </view>
- </view>
- </view>
- </view>
- <view v-else>
- <van-empty description="暂无数据" />
- </view>
- </view>
-
- <view class="party" v-if="options.type === '12101'">
- <view class="rich">
- <rich-text :nodes="InfoObj.content"></rich-text>
- </view>
-
- <view class="tabs-list flex flex-center">
- <view :class="'tabs-item ' + (index === ruralActive ? 'tabs-active' : '')" :data-index="index" @tap="tabsSwitch"
- v-for="(item, index) in ruralTabs" :key="index">
- {{ item.name }}
- </view>
- </view>
-
- <view class="party-list flex flex-col" v-if="ruralActive">
- <view class="section-item flex flex-between" :data-item="item" @tap="headleDetails"
- v-for="(item, index) in partyEventPageList" :key="index" >
- <image class="section-item-right" :src="item.image" mode="aspectFill"></image>
-
- <view class="section-item-left flex1 flex flex-col">
- <view class="consult-content-title text-line-2">{{ item.title }}</view>
- <view class="consult-content-block">{{ item.createTime }}</view>
- </view>
- </view>
- </view>
- <view class="rich2" v-else>
- <rich-text v-if="partyEventPageList.length !== 0" :nodes="partyEventPageList[0].content"></rich-text>
- </view>
- </view>
- </view>
- </template>
- <!-- <script module="util" lang="wxs" src="@/wxs/util.wxs"></script> -->
- <script>
- // const app = getApp();
- // const { peopleApi } = app.globalData.api;
- import * as peopleApi from '@/api/peopleApi';
- export default {
- components: {},
- data() {
- return {
- options: {
- name: '',
- type: ''
- },
-
- InfoObj: {
- image: false,
- content: ''
- },
-
- // 富文本渲染
- ruralActive: 0,
-
- // tabs下标
- ruralTabs: [],
-
- deptList: [],
- villageAffairsPageList: [],
- partyEventPageList: [],
- content: ''
- };
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad(options) {
- console.log('options', options);
- this.options = options
- if (options.type === '1' || options.type === '2') {
- const typeTbas = {
- 1: [{
- name: '乡镇农业产业'
- },
- {
- name: '村列表'
- }
- ],
- 2: [{
- name: '街道简介'
- },
- {
- name: '社区列表'
- }
- ]
- };
- this.ruralTabs = typeTbas[Number(options.type)] || []
- this.tabsSwitch();
- }
- if (options.type === '3') {
- this.villageAffairsPageApi();
- this.getVillageAffairsGetApi();
- }
- if (options.type === '12101') {
- this.ruralTabs = [{
- name: '优秀事迹'
- },
- {
- name: '党建活动'
- }
- ]
- this.partyBranchGetApi();
- this.tabsSwitch();
- }
- },
- methods: {
- // 切换tabs
- tabsSwitch(event) {
- if (event) {
- const {
- index
- } = event.currentTarget.dataset;
- this.ruralActive = index || 0
- }
- if (['1', '2'].includes(this.options.type)) {
- if (this.ruralActive) {
- this.deptListApi();
- } else {
- this.agencyContentGetApi();
- }
- }
- if (['12101'].includes(this.options.type)) {
- if (this.ruralActive) {
- this.partyEventPageApi(2);
- } else {
- this.partyEventPageApi(1);
- }
- }
- },
-
- // 获取简介
- // TODO:10月13日之前读的是 agencyContentGetOrgIdApi 这个接口
- async agencyContentGetApi() {
- const res = await peopleApi.agencyGetApi({
- id: this.options.id,
- orgId: this.options.orgId
- });
- this.InfoObj = this.generalFunction(res)
- },
-
- // 获取党支部详情
- async partyBranchGetApi() {
- const res = await peopleApi.partyBranchGetApi({
- id: this.options.id
- });
- res.data.title = res.data.name || '';
- res.data.content = res.data.descInfo || '';
- this.InfoObj = this.generalFunction(res)
- },
-
- // 获取村务公开详情
- async getVillageAffairsGetApi() {
- const res = await peopleApi.agencyGetApi({
- id: this.options.id
- });
- res.data.title = res.data.name || '';
- res.data.content = res.data.descInfo || '';
- this.InfoObj = this.generalFunction(res)
- },
-
- // 获取列表
- async deptListApi() {
- const res = await peopleApi.deptListApi({
- parentId: this.options.orgId
- });
- this.deptList = res.data
- },
-
- // 获取村务公开详情列表
- async villageAffairsPageApi() {
- const params = {
- pageNo: 1,
- pageSize: 99,
- agencyId: this.options.id
- };
- const res = await peopleApi.villageAffairsPageApi(params);
- if (res.data) {
- const {
- list = []
- } = res.data;
- this.villageAffairsPageList = list
- }
- },
-
- // 获得党活动事件分页
- async partyEventPageApi(eventType) {
- const params = {
- pageNo: 1,
- pageSize: 99,
- eventType,
- // 字典
- partyBranchId: this.options.id
- };
- const res = await peopleApi.partyEventPageApi(params);
- if (res.data) {
- let list = res.data.list
- if (eventType === 1) {
- let setList = list.map((item) => {
- const e = item;
- // e.createTime = app.globalData.util.timeFormat(e.createTime);
- e.content = e.content
- .replace(/<img/gi, '<img style="max-width:100%;height:auto;display:block" ')
- .replace(/</g, '<')
- .replace(/>/g, '>')
- .replace(/&nbsp;/g, ' ')
- .replace(/"/g, '"');
- return e;
- });
- console.log(setList)
- this.partyEventPageList = setList
- return;
- }
-
- this.partyEventPageList = list
- }
- },
-
- // 通用函数
- generalFunction(res) {
- if (res.data && res.data.createTime) {
- // res.data.createTime = app.globalData.util.timeFormat(res.data.createTime);
- if (res.data.introduce) {
- res.data.content = res.data.introduce;
- }
- if (res.data.content) {
- res.data.content = res.data.content
- .replace(/<img/gi, '<img style="max-width:100%;height:auto;display:block" ')
- .replace(/</g, '<')
- .replace(/>/g, '>')
- .replace(/&nbsp;/g, ' ')
- .replace(/"/g, '"');
- }
- return res.data;
- }
- return {};
- },
-
- toArea(event) {
- const {
- item
- } = event.currentTarget.dataset;
- uni.navigateTo({
- url: `/packages/people/pages/area-detail/area-detail?orgId=${item.id}&name=${item.name}`
- });
- },
-
- headleDetails(event) {
- const {
- item
- } = event.currentTarget.dataset;
- uni.navigateTo({
- url: `/packages/public/pages/details/details-no-ops?name=村务公开详情&referId=${item.id}`
- });
- }
- }
- };
- </script>
- <style lang="less">
- .custom-swiper-img {
- width: 100%;
- height: 400rpx;
- display: block;
- }
-
- .rich {
- padding: 45rpx;
- font-size: 30rpx;
- font-weight: 400;
- color: #222222;
- line-height: 60rpx;
- }
-
- .tabs-list {
- .tabs-item {
- font-size: 32rpx;
- font-weight: 500;
- color: #000000;
- line-height: 32rpx;
- position: relative;
-
- &:not(:last-child) {
- margin-right: 55rpx;
- }
- }
-
- .tabs-active {
- color: #f5001c;
-
- &::after {
- content: '';
- position: absolute;
- left: 4rpx;
- bottom: 0;
- z-index: -1;
- // width: 175rpx;
- width: 95%;
- height: 10rpx;
- background: var(--title-guides-color);
- border-radius: 2rpx;
- }
- }
- }
-
- .area {
- margin-top: 60rpx;
-
- .area-list {
- padding: 46rpx 40rpx;
- flex-wrap: wrap;
-
- .area-item {
- // flex: 1 0 0;
- flex-shrink: 0;
- width: 326rpx;
- height: 80rpx;
- background: #fff6f7;
- border-radius: 8rpx;
- font-size: 32rpx;
- font-weight: 500;
- color: #333333;
- line-height: 80rpx;
- text-align: center;
-
- &:nth-child(2n) {
- margin-left: 16rpx;
- }
-
- &:nth-child(n + 3) {
- margin-top: 16rpx;
- }
- }
- }
- }
-
- .page-content {
- margin-top: 70rpx;
- padding: 0 40rpx;
-
- .title {
- font-size: 36rpx;
- font-weight: 500;
- color: #000000;
- line-height: 36rpx;
- padding-left: 6rpx;
-
- .title-name {
- position: relative;
-
- &::after {
- content: '';
- position: absolute;
- left: -6rpx;
- bottom: 0;
- z-index: -1;
- // width: 175rpx;
- width: 115%;
- height: 10rpx;
- background: var(--title-guides-color);
- border-radius: 2rpx;
- }
- }
- }
-
- .cell-list {
- margin-top: 20rpx;
-
- .cell {
- width: 100%;
- padding: 24rpx 0;
- background: #ffffff;
- border-bottom: 1px solid #efefef;
- display: flex;
- justify-content: space-between;
-
- .cell-left {
- height: 100%;
- font-size: 30rpx;
- font-weight: 400;
- color: #007bd7;
- line-height: 30rpx;
- }
-
- .cell-right {
- height: 100%;
- width: 40rpx;
- display: flex;
- align-items: center;
- justify-content: flex-end;
-
- .cell-right-number {
- font-size: 32rpx;
-
- font-weight: 400;
- color: #666666;
- margin-right: 28rpx;
- }
- }
- }
- }
- }
-
- .party {
- .rich {
- padding: 60rpx 45rpx;
- }
-
- .party-list {
- margin-top: 55rpx;
- padding: 0 40rpx 0;
-
- .section-item {
- padding: 20rpx 0;
- border-bottom: 1px solid #e1e1e1;
-
- &:first-child {
- padding-top: 0;
- }
-
- .section-item-left {
- margin-left: 24rpx;
-
- .consult-content-title {
- font-size: 32rpx;
- font-weight: 400;
- color: #333333;
- line-height: 40rpx;
- margin-bottom: 24rpx;
- }
-
- .consult-content-block {
- font-size: 28rpx;
- font-weight: 400;
- color: #666666;
- line-height: 28rpx;
- }
- }
-
- .section-item-right {
- width: 214rpx;
- height: 140rpx;
- border-radius: 8rpx;
- }
- }
- }
-
- .rich2 {
- padding: 44rpx 45rpx;
- font-size: 30rpx;
- font-weight: 400;
- color: #222222;
- line-height: 60rpx;
- }
- }
- </style>
|