Merge branch 'dev' of http://git.sinoecare.com/sinoecare/digital_village_cp/dv_cp_wechat_app into dev
This commit is contained in:
		@@ -1,106 +0,0 @@
 | 
				
			|||||||
<template>
 | 
					 | 
				
			||||||
  <section class="AppContentManager">
 | 
					 | 
				
			||||||
    <AiNewsList :list="list" :loadmore="loadmore" @select="showDetail">
 | 
					 | 
				
			||||||
      <template #header>
 | 
					 | 
				
			||||||
        <div flex>
 | 
					 | 
				
			||||||
          <AiAreaPicker :areaId="user.areaId" @select="handleSelectArea" icon="Location2.png"/>
 | 
					 | 
				
			||||||
          <u-search placeholder="请输入标题" :show-action="false" v-model="search.title" @search="current=1,getData()"/>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
      </template>
 | 
					 | 
				
			||||||
    </AiNewsList>
 | 
					 | 
				
			||||||
    <AiFixedBtn>
 | 
					 | 
				
			||||||
      <div class="addBtn iconfont iconfont-iconfangda" @click="gotoAdd"/>
 | 
					 | 
				
			||||||
    </AiFixedBtn>
 | 
					 | 
				
			||||||
  </section>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
import {mapState} from "vuex";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
  name: "AppContentManager",
 | 
					 | 
				
			||||||
  appName: "内容发布",
 | 
					 | 
				
			||||||
  computed: {
 | 
					 | 
				
			||||||
    ...mapState(['user']),
 | 
					 | 
				
			||||||
    loadmore() {
 | 
					 | 
				
			||||||
      return this.pages <= this.current ? 'loading ' : 'nomore'
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  data() {
 | 
					 | 
				
			||||||
    return {
 | 
					 | 
				
			||||||
      list: [],
 | 
					 | 
				
			||||||
      current: 1,
 | 
					 | 
				
			||||||
      pages: 0,
 | 
					 | 
				
			||||||
      search: {}
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  onLoad(params) {
 | 
					 | 
				
			||||||
    if (params.moduleId) {
 | 
					 | 
				
			||||||
      this.moduleId = params.moduleId
 | 
					 | 
				
			||||||
      this.getData(params.moduleId)
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  methods: {
 | 
					 | 
				
			||||||
    getData(moduleId) {
 | 
					 | 
				
			||||||
      let {current, search} = this
 | 
					 | 
				
			||||||
      moduleId && this.$http.post("/app/appcontentinfo/list", null, {
 | 
					 | 
				
			||||||
        params: {moduleId, current, size: 10, ...search}
 | 
					 | 
				
			||||||
      }).then(res => {
 | 
					 | 
				
			||||||
        if (res?.data) {
 | 
					 | 
				
			||||||
          this.list = current > 1 ? [...this.list, ...res.data.records] : res.data.records
 | 
					 | 
				
			||||||
          this.pages = res.data.pages
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      })
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    handleSelectArea(e) {
 | 
					 | 
				
			||||||
      this.search.areaId = e.id
 | 
					 | 
				
			||||||
      this.getData()
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    showDetail(row) {
 | 
					 | 
				
			||||||
      uni.navigateTo({url: `./contentDetail?id=${row.id}`})
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    gotoAdd() {
 | 
					 | 
				
			||||||
      uni.navigateTo({url: `./contentAdd?moduleId=${this.moduleId}`})
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  onReachBottom() {
 | 
					 | 
				
			||||||
    this.current++;
 | 
					 | 
				
			||||||
    this.getData()
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<style lang="scss" scoped>
 | 
					 | 
				
			||||||
.AppContentManager {
 | 
					 | 
				
			||||||
  ::v-deep.location {
 | 
					 | 
				
			||||||
    width: 60px;
 | 
					 | 
				
			||||||
    height: 60px;
 | 
					 | 
				
			||||||
    margin-right: 12px;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  ::v-deep .u-search {
 | 
					 | 
				
			||||||
    margin-bottom: 0 !important;
 | 
					 | 
				
			||||||
    padding-left: 60px;
 | 
					 | 
				
			||||||
    box-shadow: none;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .u-content {
 | 
					 | 
				
			||||||
      padding-left: 50px;
 | 
					 | 
				
			||||||
      box-sizing: border-box;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .addBtn {
 | 
					 | 
				
			||||||
    width: 96px;
 | 
					 | 
				
			||||||
    height: 96px;
 | 
					 | 
				
			||||||
    flex-shrink: 0;
 | 
					 | 
				
			||||||
    background: #fff;
 | 
					 | 
				
			||||||
    box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.2);
 | 
					 | 
				
			||||||
    font-size: 48px;
 | 
					 | 
				
			||||||
    color: $uni-color-primary;
 | 
					 | 
				
			||||||
    border-radius: 50%;
 | 
					 | 
				
			||||||
    justify-content: center;
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
@@ -1,89 +0,0 @@
 | 
				
			|||||||
<template>
 | 
					 | 
				
			||||||
  <section class="contentAdd">
 | 
					 | 
				
			||||||
    <u-form ref="ContentForm" label-position="top" :model="form">
 | 
					 | 
				
			||||||
      <u-form-item label="标题" prop="title" required>
 | 
					 | 
				
			||||||
        <u-input v-model="form.title" placeholder="请输入,最多30字" maxlength="30"/>
 | 
					 | 
				
			||||||
      </u-form-item>
 | 
					 | 
				
			||||||
      <u-form-item label="详情描述" prop="content">
 | 
					 | 
				
			||||||
        <AiEditor v-model="form.content" placeholder="请输入,最多500字" :maxlength="500"/>
 | 
					 | 
				
			||||||
      </u-form-item>
 | 
					 | 
				
			||||||
      <u-form-item label="图片(最多9张)" class="files">
 | 
					 | 
				
			||||||
        <AiUploader multiple :limit="9" :def.sync="form.fileList" action="/admin/file/add2"/>
 | 
					 | 
				
			||||||
      </u-form-item>
 | 
					 | 
				
			||||||
    </u-form>
 | 
					 | 
				
			||||||
    <div flex class="submitBtn" @tap="submitForm">提交</div>
 | 
					 | 
				
			||||||
  </section>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
  name: "contentAdd",
 | 
					 | 
				
			||||||
  computed: {
 | 
					 | 
				
			||||||
    isEdit() {
 | 
					 | 
				
			||||||
      return !!this.$route.query?.id
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  data() {
 | 
					 | 
				
			||||||
    return {
 | 
					 | 
				
			||||||
      form: {
 | 
					 | 
				
			||||||
        fileList: []
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      moduleId: ""
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  onLoad(params) {
 | 
					 | 
				
			||||||
    this.moduleId = params.moduleId
 | 
					 | 
				
			||||||
    this.getForm(params.id)
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  methods: {
 | 
					 | 
				
			||||||
    getForm(id) {
 | 
					 | 
				
			||||||
      id && this.$http.post(`/app/appcontentinfo/queryDetailById`, null, {
 | 
					 | 
				
			||||||
        params: {id}
 | 
					 | 
				
			||||||
      }).then(res => {
 | 
					 | 
				
			||||||
        if (res?.data) {
 | 
					 | 
				
			||||||
          this.form = {...res.data};
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      })
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    submitForm() {
 | 
					 | 
				
			||||||
      if (!this.form.title) {
 | 
					 | 
				
			||||||
        return this.$u.toast("标题请填写")
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      this.$refs.ContentForm?.validate(v => {
 | 
					 | 
				
			||||||
        if (v) {
 | 
					 | 
				
			||||||
          let {moduleId} = this
 | 
					 | 
				
			||||||
          this.$http.post(`/app/appcontentinfo/addOrUpdate`, {moduleId, ...this.form}).then(res => {
 | 
					 | 
				
			||||||
            if (res?.code == 0) {
 | 
					 | 
				
			||||||
              this.$u.toast("提交成功!")
 | 
					 | 
				
			||||||
              setTimeout(() => {
 | 
					 | 
				
			||||||
                uni.navigateBack({})
 | 
					 | 
				
			||||||
              }, 1000)
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          })
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      })
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<style lang="scss" scoped>
 | 
					 | 
				
			||||||
.contentAdd {
 | 
					 | 
				
			||||||
  .files {
 | 
					 | 
				
			||||||
    margin-top: 24px;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .submitBtn {
 | 
					 | 
				
			||||||
    position: fixed;
 | 
					 | 
				
			||||||
    justify-content: center;
 | 
					 | 
				
			||||||
    bottom: 0;
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
    height: 112px;
 | 
					 | 
				
			||||||
    color: #fff;
 | 
					 | 
				
			||||||
    background: $uni-color-primary;
 | 
					 | 
				
			||||||
    font-size: 32px;
 | 
					 | 
				
			||||||
    font-family: PingFangSC-Medium, PingFang SC;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
@@ -1,38 +0,0 @@
 | 
				
			|||||||
<template>
 | 
					 | 
				
			||||||
  <section class="contentDetail">
 | 
					 | 
				
			||||||
    <AiDetail :title="detail.title" :detail="detail" :props="props"/>
 | 
					 | 
				
			||||||
  </section>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
  name: "contentDetail",
 | 
					 | 
				
			||||||
  data() {
 | 
					 | 
				
			||||||
    return {
 | 
					 | 
				
			||||||
      detail: {title: "内容详情"},
 | 
					 | 
				
			||||||
      props: {
 | 
					 | 
				
			||||||
        count: "viewCount"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  onLoad(params) {
 | 
					 | 
				
			||||||
    params.id && this.getDetail(params.id)
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  methods: {
 | 
					 | 
				
			||||||
    getDetail(id) {
 | 
					 | 
				
			||||||
      this.$http.post(`/app/appcontentinfo/queryDetailById`, null, {
 | 
					 | 
				
			||||||
        params: {id}
 | 
					 | 
				
			||||||
      }).then(res => {
 | 
					 | 
				
			||||||
        if (res?.data) {
 | 
					 | 
				
			||||||
          this.detail = res.data
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      })
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<style lang="scss" scoped>
 | 
					 | 
				
			||||||
.contentDetail {
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
@@ -3,19 +3,21 @@
 | 
				
			|||||||
    <div class="header-description">
 | 
					    <div class="header-description">
 | 
				
			||||||
      <u-form :model="forms" ref="uForm" label-width="auto">
 | 
					      <u-form :model="forms" ref="uForm" label-width="auto">
 | 
				
			||||||
        <u-form-item label="标题" prop="title" required label-position="top">
 | 
					        <u-form-item label="标题" prop="title" required label-position="top">
 | 
				
			||||||
          <u-input v-model="forms.title" placeholder="请输入标题(30字以内)" type="textarea" auto-height height="60" maxlength="30" />
 | 
					          <u-input v-model="forms.title" placeholder="请输入标题(30字以内)" type="textarea" auto-height height="60"
 | 
				
			||||||
 | 
					                   maxlength="30"/>
 | 
				
			||||||
        </u-form-item>
 | 
					        </u-form-item>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <u-form-item label="类别" prop="status" required v-if="selectList.length">
 | 
					        <u-form-item label="类别" prop="status" required v-if="selectList.length">
 | 
				
			||||||
          <div class="right" @click="showStstus=true">
 | 
					          <div class="right" @click="showStstus=true">
 | 
				
			||||||
            <span v-if="forms.selectIndex === ''" class="color-999">请选择类别</span>
 | 
					            <span v-if="forms.selectIndex === ''" class="color-999">请选择类别</span>
 | 
				
			||||||
            <span v-else>{{selectList[forms.selectIndex].categoryName}}</span>
 | 
					            <span v-else>{{ selectList[forms.selectIndex].categoryName }}</span>
 | 
				
			||||||
            <u-icon name="arrow-right" color="#CCCCCC" class="right-icon"></u-icon>
 | 
					            <u-icon name="arrow-right" color="#CCCCCC" class="right-icon"></u-icon>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <u-select v-model="showStstus" :list="selectList" value-name="selectIndex" label-name="categoryName" @confirm="selectStatus"></u-select>
 | 
					          <u-select v-model="showStstus" :list="selectList" value-name="selectIndex" label-name="categoryName"
 | 
				
			||||||
 | 
					                    @confirm="selectStatus"></u-select>
 | 
				
			||||||
        </u-form-item>
 | 
					        </u-form-item>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <u-form-item label="发布地区" prop="areaId" required >
 | 
					        <u-form-item label="发布地区" prop="areaId" required>
 | 
				
			||||||
          <div class="right">
 | 
					          <div class="right">
 | 
				
			||||||
            <AiAreaPicker v-model="forms.areaId" :areaId="user.areaId" @select="areaSelect"></AiAreaPicker>
 | 
					            <AiAreaPicker v-model="forms.areaId" :areaId="user.areaId" @select="areaSelect"></AiAreaPicker>
 | 
				
			||||||
            <u-icon name="arrow-right" color="#CCCCCC" class="right-icon area-right-icon"></u-icon>
 | 
					            <u-icon name="arrow-right" color="#CCCCCC" class="right-icon area-right-icon"></u-icon>
 | 
				
			||||||
@@ -23,11 +25,12 @@
 | 
				
			|||||||
        </u-form-item>
 | 
					        </u-form-item>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <u-form-item label="正文" prop="content" required label-position="top">
 | 
					        <u-form-item label="正文" prop="content" required label-position="top">
 | 
				
			||||||
          <u-input v-model="forms.content" placeholder="请输入活动详情(30字以内)" type="textarea" auto-height height="60" maxlength="500" />
 | 
					          <AiEditor v-model="forms.content" placeholder="请输入,最多500字" :maxlength="500"/>
 | 
				
			||||||
        </u-form-item>
 | 
					        </u-form-item>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <u-form-item label="图片(最多9张)" prop="files" class="avatars" label-position="top">
 | 
					        <u-form-item label="图片(最多9张)" prop="files" class="avatars" label-position="top">
 | 
				
			||||||
          <AiUploader :def.sync="forms.files" multiple placeholder="上传图片" :limit="9" action="/admin/file/add2"></AiUploader>
 | 
					          <AiUploader :def.sync="forms.files" multiple placeholder="上传图片" :limit="9"
 | 
				
			||||||
 | 
					                      action="/admin/file/add2"></AiUploader>
 | 
				
			||||||
        </u-form-item>
 | 
					        </u-form-item>
 | 
				
			||||||
      </u-form>
 | 
					      </u-form>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
@@ -40,7 +43,7 @@
 | 
				
			|||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
import { mapState } from 'vuex'
 | 
					import {mapState} from 'vuex'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
  name: 'Add',
 | 
					  name: 'Add',
 | 
				
			||||||
@@ -64,10 +67,10 @@ export default {
 | 
				
			|||||||
      selectList: []
 | 
					      selectList: []
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  computed: { ...mapState(['user']) },
 | 
					  computed: {...mapState(['user'])},
 | 
				
			||||||
  onLoad(o) {
 | 
					  onLoad(o) {
 | 
				
			||||||
    console.log(o)
 | 
					    console.log(o)
 | 
				
			||||||
    if(o.id) {
 | 
					    if (o.id) {
 | 
				
			||||||
      this.id = o.id
 | 
					      this.id = o.id
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -80,15 +83,16 @@ export default {
 | 
				
			|||||||
    document.title = this.listName
 | 
					    document.title = this.listName
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  mounted() {},
 | 
					  mounted() {
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  methods: {
 | 
					  methods: {
 | 
				
			||||||
    getDetail() {
 | 
					    getDetail() {
 | 
				
			||||||
      this.$http.post(`/app/appcontentinfo/queryDetailById?id=${this.id}`).then((res) => {
 | 
					      this.$http.post(`/app/appcontentinfo/queryDetailById?id=${this.id}`).then((res) => {
 | 
				
			||||||
        if (res?.data) {
 | 
					        if (res?.data) {
 | 
				
			||||||
          this.forms = {...res.data}
 | 
					          this.forms = {...res.data}
 | 
				
			||||||
          if(this.selectList.length) {
 | 
					          if (this.selectList.length) {
 | 
				
			||||||
            this.selectList.map((item, index) => {
 | 
					            this.selectList.map((item, index) => {
 | 
				
			||||||
              if(item.id == res.data.categoryId) {
 | 
					              if (item.id == res.data.categoryId) {
 | 
				
			||||||
                this.forms.selectIndex = index
 | 
					                this.forms.selectIndex = index
 | 
				
			||||||
              }
 | 
					              }
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
@@ -102,13 +106,13 @@ export default {
 | 
				
			|||||||
    getType() {
 | 
					    getType() {
 | 
				
			||||||
      this.$http.post(`/app/appcontentmoduleinfo/listByName?names=${this.listName}`).then((res) => {
 | 
					      this.$http.post(`/app/appcontentmoduleinfo/listByName?names=${this.listName}`).then((res) => {
 | 
				
			||||||
        if (res.code == 0) {
 | 
					        if (res.code == 0) {
 | 
				
			||||||
          if(res.data && res.data.length) {
 | 
					          if (res.data && res.data.length) {
 | 
				
			||||||
            this.selectList = res.data[0].categoryList
 | 
					            this.selectList = res.data[0].categoryList
 | 
				
			||||||
            this.selectList.map((item, index) => {
 | 
					            this.selectList.map((item, index) => {
 | 
				
			||||||
              item.selectIndex = index
 | 
					              item.selectIndex = index
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          if(this.id) {
 | 
					          if (this.id) {
 | 
				
			||||||
            this.getDetail()
 | 
					            this.getDetail()
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -123,13 +127,13 @@ export default {
 | 
				
			|||||||
        return this.$u.toast('请输入正文')
 | 
					        return this.$u.toast('请输入正文')
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if(this.selectList.length && this.forms.selectIndex === '') {
 | 
					      if (this.selectList.length && this.forms.selectIndex === '') {
 | 
				
			||||||
        return this.$u.toast('请选择类别')
 | 
					        return this.$u.toast('请选择类别')
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      var categoryId = '', categoryName = ''
 | 
					      var categoryId = '', categoryName = ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if(this.selectList.length) {
 | 
					      if (this.selectList.length) {
 | 
				
			||||||
        categoryId = this.selectList[this.forms.selectIndex].id
 | 
					        categoryId = this.selectList[this.forms.selectIndex].id
 | 
				
			||||||
        categoryName = this.selectList[this.forms.selectIndex].categoryName
 | 
					        categoryName = this.selectList[this.forms.selectIndex].categoryName
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@@ -171,6 +175,7 @@ export default {
 | 
				
			|||||||
<style lang="scss" scoped>
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
.add {
 | 
					.add {
 | 
				
			||||||
  height: 100%;
 | 
					  height: 100%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .header-description {
 | 
					  .header-description {
 | 
				
			||||||
    ::v-deep .u-form {
 | 
					    ::v-deep .u-form {
 | 
				
			||||||
      .u-form-item {
 | 
					      .u-form-item {
 | 
				
			||||||
@@ -196,7 +201,8 @@ export default {
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  .pad-b112{
 | 
					
 | 
				
			||||||
 | 
					  .pad-b112 {
 | 
				
			||||||
    padding-bottom: 224px;
 | 
					    padding-bottom: 224px;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -214,33 +220,39 @@ export default {
 | 
				
			|||||||
    z-index: 999;
 | 
					    z-index: 999;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .right{
 | 
					  .right {
 | 
				
			||||||
    width: 100%;
 | 
					    width: 100%;
 | 
				
			||||||
    text-align: right;
 | 
					    text-align: right;
 | 
				
			||||||
    .right-icon{
 | 
					
 | 
				
			||||||
 | 
					    .right-icon {
 | 
				
			||||||
      vertical-align: middle;
 | 
					      vertical-align: middle;
 | 
				
			||||||
      margin-left: 8px;
 | 
					      margin-left: 8px;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    .area-right-icon{
 | 
					
 | 
				
			||||||
 | 
					    .area-right-icon {
 | 
				
			||||||
      margin: -40px 0 0 8px;
 | 
					      margin: -40px 0 0 8px;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    ::v-deep .AiAreaPicker{
 | 
					
 | 
				
			||||||
 | 
					    ::v-deep .AiAreaPicker {
 | 
				
			||||||
      display: inline-block;
 | 
					      display: inline-block;
 | 
				
			||||||
      width: calc(100% - 50px);
 | 
					      width: calc(100% - 50px);
 | 
				
			||||||
      .areaSelector{
 | 
					
 | 
				
			||||||
        div{
 | 
					      .areaSelector {
 | 
				
			||||||
 | 
					        div {
 | 
				
			||||||
          width: 100%;
 | 
					          width: 100%;
 | 
				
			||||||
          padding-top: 30px;
 | 
					          padding-top: 30px;
 | 
				
			||||||
          box-sizing: border-box;
 | 
					          box-sizing: border-box;
 | 
				
			||||||
          text-align: right;
 | 
					          text-align: right;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .fixedTop{
 | 
					
 | 
				
			||||||
 | 
					        .fixedTop {
 | 
				
			||||||
          text-align: left;
 | 
					          text-align: left;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  .color-999{
 | 
					
 | 
				
			||||||
 | 
					  .color-999 {
 | 
				
			||||||
    color: #999;
 | 
					    color: #999;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,7 +10,8 @@
 | 
				
			|||||||
      <div>区域选择</div>
 | 
					      <div>区域选择</div>
 | 
				
			||||||
      <AiAreaPicker v-model="areaId" :areaId="user.areaId" @select="areaSelect"></AiAreaPicker>
 | 
					      <AiAreaPicker v-model="areaId" :areaId="user.areaId" @select="areaSelect"></AiAreaPicker>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <u-search class="serach_content" placeholder="请输入标题" :show-action="false" v-model="keyword" @clear="clearSearch" @search="search"></u-search>
 | 
					    <u-search class="serach_content" placeholder="请输入标题" :show-action="false" v-model="keyword" @clear="clearSearch"
 | 
				
			||||||
 | 
					              @search="search"></u-search>
 | 
				
			||||||
    <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>
 | 
				
			||||||
@@ -19,20 +20,21 @@
 | 
				
			|||||||
            <u-parse :html="item.content"></u-parse>
 | 
					            <u-parse :html="item.content"></u-parse>
 | 
				
			||||||
          </p>
 | 
					          </p>
 | 
				
			||||||
          <div class="img-list" v-if="item.files.length && item.contentType != 1">
 | 
					          <div class="img-list" v-if="item.files.length && item.contentType != 1">
 | 
				
			||||||
            <img :src="items.accessUrl" alt="" v-for="(items, index) in item.files" :key="index" v-if="index < 3" @click.stop="previewImage(item.files, items.accessUrl)" />
 | 
					            <img :src="items.accessUrl" alt="" v-for="(items, index) in item.files" :key="index" v-if="index < 3"
 | 
				
			||||||
 | 
					                 @click.stop="previewImage(item.files, items.accessUrl)"/>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div class="img-list" v-if="item.files.length && item.contentType == 1">
 | 
					          <div class="img-list" v-if="item.files.length && item.contentType == 1">
 | 
				
			||||||
            <video class="video" :src="item.files[0].url"></video>
 | 
					            <video class="video" :src="item.files[0].url"></video>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div class="flex">
 | 
					          <div class="flex">
 | 
				
			||||||
            <span class="left">
 | 
					            <span class="left">
 | 
				
			||||||
              <span class="type" v-if="item.categoryName">{{item.categoryName}}</span>
 | 
					              <span class="type" v-if="item.categoryName">{{ item.categoryName }}</span>
 | 
				
			||||||
              <span class="times">{{ item.createTime }}</span>
 | 
					              <span class="times">{{ item.createTime }}</span>
 | 
				
			||||||
            </span>
 | 
					            </span>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <span class="right">
 | 
					            <span class="right">
 | 
				
			||||||
              <img src="./img/view-icon.png" alt="">
 | 
					              <img src="./img/view-icon.png" alt="">
 | 
				
			||||||
              <span>{{item.viewCount}}</span>
 | 
					              <span>{{ item.viewCount }}</span>
 | 
				
			||||||
            </span>
 | 
					            </span>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </template>
 | 
					        </template>
 | 
				
			||||||
@@ -62,7 +64,7 @@ import {mapState} from 'vuex'
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
  name: 'AppServicePublic',
 | 
					  name: 'AppServicePublic',
 | 
				
			||||||
  appName: '三务公开',
 | 
					  appName: '内容发布',
 | 
				
			||||||
  components: {},
 | 
					  components: {},
 | 
				
			||||||
  props: {},
 | 
					  props: {},
 | 
				
			||||||
  data() {
 | 
					  data() {
 | 
				
			||||||
@@ -279,7 +281,7 @@ uni-page-body {
 | 
				
			|||||||
        word-break: break-all;
 | 
					        word-break: break-all;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      .item-content{
 | 
					      .item-content {
 | 
				
			||||||
        width: 100%;
 | 
					        width: 100%;
 | 
				
			||||||
        word-break: break-all;
 | 
					        word-break: break-all;
 | 
				
			||||||
        overflow: hidden;
 | 
					        overflow: hidden;
 | 
				
			||||||
@@ -294,9 +296,10 @@ uni-page-body {
 | 
				
			|||||||
        margin-bottom: 24px;
 | 
					        margin-bottom: 24px;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      .img-list{
 | 
					      .img-list {
 | 
				
			||||||
        margin-bottom: 24px;
 | 
					        margin-bottom: 24px;
 | 
				
			||||||
        img{
 | 
					
 | 
				
			||||||
 | 
					        img {
 | 
				
			||||||
          width: calc(33% - 16px);
 | 
					          width: calc(33% - 16px);
 | 
				
			||||||
          height: 204px;
 | 
					          height: 204px;
 | 
				
			||||||
          margin: 0 16px 8px 0;
 | 
					          margin: 0 16px 8px 0;
 | 
				
			||||||
@@ -321,7 +324,7 @@ uni-page-body {
 | 
				
			|||||||
            color: #999999;
 | 
					            color: #999999;
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          .type{
 | 
					          .type {
 | 
				
			||||||
            display: inline-block;
 | 
					            display: inline-block;
 | 
				
			||||||
            padding: 0 16px;
 | 
					            padding: 0 16px;
 | 
				
			||||||
            line-height: 48px;
 | 
					            line-height: 48px;
 | 
				
			||||||
@@ -338,19 +341,21 @@ uni-page-body {
 | 
				
			|||||||
        .right {
 | 
					        .right {
 | 
				
			||||||
          font-size: 28px;
 | 
					          font-size: 28px;
 | 
				
			||||||
          color: #999;
 | 
					          color: #999;
 | 
				
			||||||
          img{
 | 
					
 | 
				
			||||||
 | 
					          img {
 | 
				
			||||||
            width: 32px;
 | 
					            width: 32px;
 | 
				
			||||||
            height: 32px;
 | 
					            height: 32px;
 | 
				
			||||||
            vertical-align: middle;
 | 
					            vertical-align: middle;
 | 
				
			||||||
            margin-right: 8px;
 | 
					            margin-right: 8px;
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          .font {
 | 
					          .font {
 | 
				
			||||||
            color: #4181ff;
 | 
					            color: #4181ff;
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      .iconfont-iconMore{
 | 
					      .iconfont-iconMore {
 | 
				
			||||||
        position: absolute;
 | 
					        position: absolute;
 | 
				
			||||||
        top: 42px;
 | 
					        top: 42px;
 | 
				
			||||||
        right: 32px;
 | 
					        right: 32px;
 | 
				
			||||||
@@ -390,7 +395,7 @@ uni-page-body {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ::v-deep uni-video{
 | 
					  ::v-deep uni-video {
 | 
				
			||||||
    width: 100%;
 | 
					    width: 100%;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user