地区筛选
This commit is contained in:
		@@ -1,10 +1,17 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <div class="AppVillageDiscuss">
 | 
					  <div class="AppVillageDiscuss">
 | 
				
			||||||
    <AiTopFixed v-if="tabs.length > 0">
 | 
					    <AiTopFixed>
 | 
				
			||||||
      <div class="tab-select">
 | 
					      <u-tabs :list="tabslist" :is-scroll="false" :current="currentTabs" active-color="#fff" inactive-color="#CDDCF0" bg-color="#3975C6" @change="change"></u-tabs>
 | 
				
			||||||
        <div class="item" :class="{ active: type == item.dictValue }" v-for="item in tabs" :key="item.dictValue" @click="tabClick(item.dictValue)">{{ item.dictName }}<span /></div>
 | 
					 | 
				
			||||||
      </div>
 | 
					 | 
				
			||||||
    </AiTopFixed>
 | 
					    </AiTopFixed>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <div class="areatop">
 | 
				
			||||||
 | 
					      <u-form label-width="auto">
 | 
				
			||||||
 | 
					        <u-form-item label="区域选择" right-icon="arrow-right" :border-bottom="false" class="addresss">
 | 
				
			||||||
 | 
					          <AiAreaPicker v-model="areaId" :areaId="user.areaId" @select="seachObj" :name.sync="areaName"></AiAreaPicker>
 | 
				
			||||||
 | 
					        </u-form-item>
 | 
				
			||||||
 | 
					      </u-form>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <template v-if="datas.length > 0">
 | 
					    <template v-if="datas.length > 0">
 | 
				
			||||||
      <AiCard v-for="(item, i) in datas" :ref="item.id" :key="i" @click.native="toAdd(item, 1)">
 | 
					      <AiCard v-for="(item, i) in datas" :ref="item.id" :key="i" @click.native="toAdd(item, 1)">
 | 
				
			||||||
        <template #custom>
 | 
					        <template #custom>
 | 
				
			||||||
@@ -59,10 +66,24 @@ export default {
 | 
				
			|||||||
      pages: 0,
 | 
					      pages: 0,
 | 
				
			||||||
      deletShow: false,
 | 
					      deletShow: false,
 | 
				
			||||||
      deletId: '',
 | 
					      deletId: '',
 | 
				
			||||||
      type: '0',
 | 
					 | 
				
			||||||
      listName: '',
 | 
					      listName: '',
 | 
				
			||||||
      tabIndex: 0,
 | 
					      tabIndex: 0,
 | 
				
			||||||
      showBackTop: false,
 | 
					      showBackTop: false,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      tabslist: [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          name: '进行中',
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          name: '公示中',
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          name: '已完成',
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      currentTabs: 0,
 | 
				
			||||||
 | 
					      areaName: '',
 | 
				
			||||||
 | 
					      areaId: '',
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  computed: {
 | 
					  computed: {
 | 
				
			||||||
@@ -77,6 +98,9 @@ export default {
 | 
				
			|||||||
  onLoad(o) {
 | 
					  onLoad(o) {
 | 
				
			||||||
    this.moduleId = o.moduleId
 | 
					    this.moduleId = o.moduleId
 | 
				
			||||||
    this.listName = o.listName
 | 
					    this.listName = o.listName
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    this.areaName = this.user.areaName
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    this.getList()
 | 
					    this.getList()
 | 
				
			||||||
    uni.$on('update', () => {
 | 
					    uni.$on('update', () => {
 | 
				
			||||||
      this.getList()
 | 
					      this.getList()
 | 
				
			||||||
@@ -90,26 +114,10 @@ export default {
 | 
				
			|||||||
    this.showBackTop = obj.scrollTop > 0
 | 
					    this.showBackTop = obj.scrollTop > 0
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  methods: {
 | 
					  methods: {
 | 
				
			||||||
    previewImage(images, img) {
 | 
					 | 
				
			||||||
      uni.previewImage({
 | 
					 | 
				
			||||||
        urls: images.map((v) => v.url),
 | 
					 | 
				
			||||||
        current: img,
 | 
					 | 
				
			||||||
      })
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    tabClick(type) {
 | 
					 | 
				
			||||||
      this.type = type
 | 
					 | 
				
			||||||
      this.current = 1
 | 
					 | 
				
			||||||
      this.getList()
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    search() {
 | 
					 | 
				
			||||||
      this.current = 1
 | 
					 | 
				
			||||||
      this.getList()
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    getList() {
 | 
					    getList() {
 | 
				
			||||||
      let { current, type } = this
 | 
					 | 
				
			||||||
      this.$http
 | 
					      this.$http
 | 
				
			||||||
        .post('/app/appvillagediscuss/list', null, {
 | 
					        .post('/app/appvillagediscuss/list', null, {
 | 
				
			||||||
          params: { size: 20, current, type },
 | 
					          params: { size: 20, current: this.current, status: this.currentTabs, areaId: this.areaId },
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
        .then((res) => {
 | 
					        .then((res) => {
 | 
				
			||||||
          if (res?.data) {
 | 
					          if (res?.data) {
 | 
				
			||||||
@@ -125,6 +133,37 @@ export default {
 | 
				
			|||||||
        })
 | 
					        })
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    change(e) {
 | 
				
			||||||
 | 
					      console.log(e)
 | 
				
			||||||
 | 
					      this.areaId = ''
 | 
				
			||||||
 | 
					      this.datas = []
 | 
				
			||||||
 | 
					      this.current = 1
 | 
				
			||||||
 | 
					      this.currentTabs = e
 | 
				
			||||||
 | 
					      this.getList()
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    seachObj(e) {
 | 
				
			||||||
 | 
					      this.areaId = e
 | 
				
			||||||
 | 
					      this.current = 1
 | 
				
			||||||
 | 
					      this.getList()
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    previewImage(images, img) {
 | 
				
			||||||
 | 
					      uni.previewImage({
 | 
				
			||||||
 | 
					        urls: images.map((v) => v.url),
 | 
				
			||||||
 | 
					        current: img,
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    // tabClick(type) {
 | 
				
			||||||
 | 
					    //   this.type = type
 | 
				
			||||||
 | 
					    //   this.current = 1
 | 
				
			||||||
 | 
					    //   this.getList()
 | 
				
			||||||
 | 
					    // },
 | 
				
			||||||
 | 
					    search() {
 | 
				
			||||||
 | 
					      this.current = 1
 | 
				
			||||||
 | 
					      this.getList()
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    toAdd(item, type) {
 | 
					    toAdd(item, type) {
 | 
				
			||||||
      if (item?.id) {
 | 
					      if (item?.id) {
 | 
				
			||||||
        this.$refs?.[item.id]?.[0]?.handleClose()
 | 
					        this.$refs?.[item.id]?.[0]?.handleClose()
 | 
				
			||||||
@@ -172,6 +211,38 @@ export default {
 | 
				
			|||||||
.AppVillageDiscuss {
 | 
					.AppVillageDiscuss {
 | 
				
			||||||
  height: 100%;
 | 
					  height: 100%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .areatop {
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    justify-content: space-between;
 | 
				
			||||||
 | 
					    align-items: center;
 | 
				
			||||||
 | 
					    margin-bottom: 16px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .u-form {
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .addresss {
 | 
				
			||||||
 | 
					        .u-form-item__body {
 | 
				
			||||||
 | 
					          .u-form-item--right {
 | 
				
			||||||
 | 
					            .u-form-item--right__content {
 | 
				
			||||||
 | 
					              .u-form-item--right__content__slot {
 | 
				
			||||||
 | 
					                .AiAreaPicker {
 | 
				
			||||||
 | 
					                  width: 100%;
 | 
				
			||||||
 | 
					                  display: flex;
 | 
				
			||||||
 | 
					                  justify-content: flex-end;
 | 
				
			||||||
 | 
					                  .areaSelector {
 | 
				
			||||||
 | 
					                    .location {
 | 
				
			||||||
 | 
					                      opacity: 0;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                  }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .avatar {
 | 
					  .avatar {
 | 
				
			||||||
    height: 64px;
 | 
					    height: 64px;
 | 
				
			||||||
    width: 64px;
 | 
					    width: 64px;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,18 +9,22 @@
 | 
				
			|||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="statusTag" :class="{ over: data.status > 0 }" v-text="data.status == 0 ? (data.type == 0 ? '征集中' : '投票中') : $dict.getLabel('discussStatus', data.status)" />
 | 
					        <div class="statusTag" :class="{ over: data.status > 0 }" v-text="data.status == 0 ? (data.type == 0 ? '征集中' : '投票中') : $dict.getLabel('discussStatus', data.status)" />
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <div class="header-middle">
 | 
					      <div class="header-middle">
 | 
				
			||||||
        <div class="contsnts">
 | 
					        <div class="contsnts">
 | 
				
			||||||
          <u-parse :html="data.content"></u-parse>
 | 
					          <u-parse :html="data.content"></u-parse>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <div class="img-list" v-if="data.images && data.images.length && data.contentType != 1">
 | 
					      <div class="img-list" v-if="data.images && data.images.length && data.contentType != 1">
 | 
				
			||||||
        <img :src="item.accessUrl" alt="" v-for="(item, index) in data.images" :key="index" @click="previewImage(data.images, item.accessUrl)" />
 | 
					        <img :src="item.accessUrl" alt="" v-for="(item, index) in data.images" :key="index" @click="previewImage(data.images, item.accessUrl)" />
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <div class="img-list" v-if="data.images && data.images.length && data.contentType == 1">
 | 
					      <div class="img-list" v-if="data.images && data.images.length && data.contentType == 1">
 | 
				
			||||||
        <video class="video" :src="data.images[0].url"></video>
 | 
					        <video class="video" :src="data.images[0].url"></video>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </AiTopFixed>
 | 
					    </AiTopFixed>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <div v-if="data.type == 0" class="comments">
 | 
					    <div v-if="data.type == 0" class="comments">
 | 
				
			||||||
      <span class="totalCount">
 | 
					      <span class="totalCount">
 | 
				
			||||||
        <span class="total" v-text="`全部评论(${commentCount})`" />
 | 
					        <span class="total" v-text="`全部评论(${commentCount})`" />
 | 
				
			||||||
@@ -39,7 +43,9 @@
 | 
				
			|||||||
        <div class="content color-999" v-text="op.createTime" />
 | 
					        <div class="content color-999" v-text="op.createTime" />
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <div v-else-if="data.type == 1" class="comments"></div>
 | 
					    <div v-else-if="data.type == 1" class="comments"></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <div class="bottomBar">
 | 
					    <div class="bottomBar">
 | 
				
			||||||
      <div v-if="data.status < 2" @click="handleComplete">结束公示</div>
 | 
					      <div v-if="data.status < 2" @click="handleComplete">结束公示</div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
@@ -84,7 +90,8 @@ export default {
 | 
				
			|||||||
          this.data = {
 | 
					          this.data = {
 | 
				
			||||||
            ...res.data,
 | 
					            ...res.data,
 | 
				
			||||||
            avatar: res.data.createUserName?.substr(0, 2) || '游客',
 | 
					            avatar: res.data.createUserName?.substr(0, 2) || '游客',
 | 
				
			||||||
            images: JSON.parse(res.data.images),
 | 
					            images: res.data.images,
 | 
				
			||||||
 | 
					            // images: JSON.parse(res.data.images) || [],
 | 
				
			||||||
            messages: res.data.messages || [],
 | 
					            messages: res.data.messages || [],
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          var discussTime = (new Date(res.data.discussDeadline).getTime() * 1) / 1000
 | 
					          var discussTime = (new Date(res.data.discussDeadline).getTime() * 1) / 1000
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user