124 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
 <template>
 | 
						|
  <ai-detail>
 | 
						|
    <template slot="title">
 | 
						|
      <ai-title title="详情" isShowBack isShowBottomBorder @onBackClick="cancel(false)">
 | 
						|
      </ai-title>
 | 
						|
    </template>
 | 
						|
    <template slot="content">
 | 
						|
      <ai-card title="问答信息">
 | 
						|
        <template #content>
 | 
						|
          <p class="title">{{info.content}}</p>
 | 
						|
          <div class="title-text">{{info.createUserName}}发布于{{info.createTime}} <span>已有{{info.answerCount || 0}}个回答</span></div>
 | 
						|
          <div class="item" v-for="(item, index) in info.answers" :key="index">
 | 
						|
            <div class="flex">
 | 
						|
              <img :src="item.createUserAvatar" alt="">
 | 
						|
              <div class="user-info">
 | 
						|
                <h3>{{item.createUserName}}</h3>
 | 
						|
                <p>{{item.createUserDeptName}}</p>
 | 
						|
              </div>
 | 
						|
            </div>
 | 
						|
            <div class="content" v-html="item.content"></div>
 | 
						|
            <ai-uploader :instance="instance" disabled v-model="item.files"></ai-uploader>
 | 
						|
            <p class="time"><span>发布于 </span>{{item.createTime}}</p>
 | 
						|
          </div>
 | 
						|
          <ai-empty v-if="!info.answers.length">暂无回答</ai-empty>
 | 
						|
        </template>
 | 
						|
      </ai-card>
 | 
						|
    </template>
 | 
						|
  </ai-detail>
 | 
						|
</template>
 | 
						|
 | 
						|
<script>
 | 
						|
  export default {
 | 
						|
    name: 'Detail',
 | 
						|
    props: {
 | 
						|
      instance: Function,
 | 
						|
      dict: Object,
 | 
						|
      params: Object
 | 
						|
    },
 | 
						|
    data () {
 | 
						|
      return {
 | 
						|
        info: {}
 | 
						|
      }
 | 
						|
    },
 | 
						|
    created () {
 | 
						|
      this.getInfo()
 | 
						|
    },
 | 
						|
    methods: {
 | 
						|
      getInfo () {
 | 
						|
        this.instance.post(`/app/applearningquestion/queryDetailById?id=${this.params.id}`).then(res => {
 | 
						|
          if (res.code == 0) {
 | 
						|
            if (res.data) {
 | 
						|
              this.info = {...res.data}
 | 
						|
            }
 | 
						|
          }
 | 
						|
        })
 | 
						|
      },
 | 
						|
      cancel () {
 | 
						|
        this.$emit('change', {
 | 
						|
          type: 'List',
 | 
						|
          isRefresh: true
 | 
						|
        })
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
</script>
 | 
						|
 | 
						|
<style scoped lang="scss">
 | 
						|
.title {
 | 
						|
  font-size: 22px;
 | 
						|
  font-weight: 700;
 | 
						|
  line-height: 44px;
 | 
						|
  word-break: break-all;
 | 
						|
}
 | 
						|
.title-text {
 | 
						|
  color: #999!important;
 | 
						|
  margin-bottom: 24px;
 | 
						|
  font-size: 14px;
 | 
						|
  span {
 | 
						|
    margin-left: 8px;
 | 
						|
  }
 | 
						|
}
 | 
						|
.item {
 | 
						|
  margin-bottom: 32px;
 | 
						|
  border-bottom: 1px solid #eee;
 | 
						|
  .flex {
 | 
						|
    display: flex;
 | 
						|
    img {
 | 
						|
      width: 60px;
 | 
						|
      height: 60px;
 | 
						|
      margin-right: 16px;
 | 
						|
      border-radius: 50%;
 | 
						|
    }
 | 
						|
    h3 {
 | 
						|
      line-height: 20px;
 | 
						|
      font-size: 20px;
 | 
						|
      font-weight: 400;
 | 
						|
      margin-bottom: 10px;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  .content {
 | 
						|
    margin: 16px 0;
 | 
						|
  }
 | 
						|
  p {
 | 
						|
    line-height: 30px;
 | 
						|
    color: #999;
 | 
						|
    font-size: 14px;
 | 
						|
  }
 | 
						|
  .time {
 | 
						|
    margin-bottom: 16px;
 | 
						|
  }
 | 
						|
  .img-list {
 | 
						|
    img {
 | 
						|
      width: 300px;
 | 
						|
      height: 300px;
 | 
						|
      margin: 0 8px 8px 0;
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
.item:nth-last-of-type(1) {
 | 
						|
  border-bottom: 0;
 | 
						|
  margin-bottom: 0;
 | 
						|
}
 | 
						|
</style>
 |