不要的模块
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>
 | 
			
		||||
		Reference in New Issue
	
	Block a user