学习问答

This commit is contained in:
shijingjing
2023-01-11 14:10:31 +08:00
parent 785979c736
commit 9e896d7446
4 changed files with 129 additions and 54 deletions

View File

@@ -1,17 +1,17 @@
<template> <template>
<div class="answerAdd"> <div class="answerAdd">
<div class="input_box"> <div class="input_box">
<u-input v-model="value" type="textarea" height="580" maxlength="10000" <u-input v-model="form.content" type="textarea" height="580" maxlength="10000"
:clearable="false" placeholder="请输入回答内容" :auto-height="true" placeholder-style="color: '#AAAAAA';font-size: 16px" /> :clearable="false" placeholder="请输入回答内容" :auto-height="true" placeholder-style="color: '#AAAAAA';font-size: 16px" />
</div> </div>
<div class="upload"> <div class="upload">
<h4>图片上传<span>(最多9张)</span></h4> <h4>图片上传<span>(最多9张)</span></h4>
<AiUploader :def.sync="form.url" multiple placeholder="上传图片" :limit="9" action="/admin/file/add2"></AiUploader> <AiUploader :def.sync="form.files" multiple placeholder="上传图片" :limit="9" action="/admin/file/add2"></AiUploader>
</div> </div>
<div class="submitBtn"> <div class="submitBtn">
<div class="btn">提交</div> <div class="btn" @click="submit">提交</div>
</div> </div>
</div> </div>
</template> </template>
@@ -22,16 +22,43 @@ export default {
appName: "进行回答", appName: "进行回答",
data() { data() {
return { return {
value: '',
form: { form: {
url: [] qid: '',
} content: '',
files: []
},
flag: false,
} }
}, },
methods: { methods: {
submit() {
if(this.flag) return
if(!this.form.content) {
return this.$u.toast('请输入回答内容')
}
this.flag = true
this.$http.post(`/app/applearningquestion/addOrUpdateAnswer`, {
...this.form
}).then(res=> {
if(res?.code==0) {
this.$u.toast('提交成功!')
setTimeout(()=> {
uni.navigateBack()
}, 500)
}
})
}
},
onLoad(o) {
if(o.qid) {
this.form.qid = o?.qid
}
if(o.data) {
this.form = JSON.parse(o?.data)
}
}, },
onShow() {},
} }
</script> </script>

View File

@@ -2,28 +2,24 @@
<div class="answerDetail"> <div class="answerDetail">
<div class="head"> <div class="head">
<div class="left"> <div class="left">
<img src="./img/avatar.png" alt=""> <img :src="info.createUserAvatar" alt="">
<div class="head_avtar"> <div class="head_avtar">
<h4></h4> <h4>{{ info.createUserName }}</h4>
<div class="col-999">产品部</div> <div class="col-999">{{ info.createUserDeptName }}</div>
</div> </div>
</div> </div>
<div class="right col-999">12-30 12:23:54</div> <div class="right col-999">{{ info.createTime }}</div>
</div> </div>
<div class="content"> <div class="content">
极目新闻消息据韩国中央日报报道当地时间1月3日韩国在对来自中国的入境者实施高强度防疫措施两天后 {{ info.content }}
该国疾病预防控制中心运营的新冠信息管理系统出现错误无法将中国入境者的信息传递给各地政府 </div>
韩国仁川国际机场对中国游客进行检测来源韩联社 <div class="picture">
据韩国疾病控制与预防中心和首尔市政府称从3日上午开始新冠信息管理系统出现错误因此本应传达给全国市区公共卫生部门的中国入境者信息无法送达 <img :src="item.url" v-for="(item,index) in info.files" :key="index" alt=""
有卫生部门人士表示疾病预防控制中心表示下午2点左右系统将修复并恢复运行但截止下午2时30分还是没有恢复 @click="preview(info.files, item.url)">
</div> </div>
<!-- <img :src="item.url" v-for="(item,index) in data.files" :key="index" alt=""
@click="preview(data.files, item.url)"> -->
<div class="btn_box"> <div class="btn_box">
<div class="del" @click="deleteBtn()">删除</div> <div class="del" @click="deleteBtn(info.id)">删除</div>
<div class="edit" @click="linkTo(`./answerAdd`)">修改</div> <div class="edit" @click="editBtn()">修改</div>
</div> </div>
</div> </div>
</template> </template>
@@ -33,14 +29,24 @@ export default {
name: "answerDetail", name: "answerDetail",
appName: "Ta的回答", appName: "Ta的回答",
data() { data() {
return {
info: {},
}
}, },
methods: { methods: {
editBtn() {
uni.navigateTo({
url: './answerAdd?data=' + JSON.stringify(this.info)
})
},
deleteBtn(id) { deleteBtn(id) {
this.$confirm('确定要删除该回答吗?').then(()=> { this.$confirm('确定要删除该回答吗?').then(()=> {
this.$http.post(`/app/applearningquestion/deleteAnswer?id=${id}`,null, { this.$http.post(`/app/applearningquestion/deleteAnswer?id=${id}`).then(res=> {
params: { if(res?.code == 0) {
this.$u.toast('删除成功!')
setTimeout(()=> {
uni.navigateBack()
}, 500)
} }
}) })
}) })
@@ -52,7 +58,9 @@ export default {
}) })
}, },
}, },
onShow() {}, onLoad(o) {
this.info = JSON.parse(o.data)
},
} }
</script> </script>
@@ -91,6 +99,15 @@ export default {
margin-top: 24px; margin-top: 24px;
} }
.picture {
margin-top: 24px;
img {
width: 220px;
height: 220px;
margin-right: 8px;
}
}
.btn_box { .btn_box {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
@@ -100,6 +117,8 @@ export default {
padding: 16px 32px; padding: 16px 32px;
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;
background: #f3f5f7;
z-index: 9;
div { div {
flex: 1; flex: 1;
border-radius: 44px; border-radius: 44px;

View File

@@ -1,70 +1,94 @@
<template> <template>
<div class="answerList"> <div class="answerList">
<div class="answer_title"> <div class="answer_title">
基层工作如何展开相关工作合适基层工作如何展开相关工作合适 {{ info.content }}
</div> </div>
<p class="answer_tips">已有<span>15</span>条回答</p> <p class="answer_tips">已有<span>{{ answersArr.length }}</span>条回答</p>
<div class="answer_card"> <div class="answer_card" v-for="item in answersArr" :key="item.id">
<div class="card_head"> <div class="card_head">
<div class="left"> <div class="left">
<img src="./img/avatar.png" alt=""> <img :src="item.createUserAvatar" alt="">
<div class="card_head_avtar"> <div class="card_head_avtar">
<h4></h4> <h4>{{ item.createUserName }}</h4>
<div>产品部</div> <div>{{ item.createUserDeptName }}</div>
</div> </div>
</div> </div>
<div class="right">12-30 12:23:54</div> <div class="right">{{ item.createTime }}</div>
</div> </div>
<div class="card_body" @click="toDetail"> <div class="card_body" :class="item.createUserId != user.id? 'card_radius':''" @click="toDetail(item)">
<div class="card_content"> <div class="card_content">
据韩国中央日报报道,当地时间1月3日,韩国在对 {{ item.content }}
中国的入境者实施高强度防疫措施两天后,该国疾病预防控制中心运营的新冠信息管理系统出现错误,无法将传.
据韩国中央日报报道,当地时间1月3日,韩国在对中国的入境者实施高强度防疫措施中国的入境者实施高
强度防疫措施两天后韩国在对中国的入境者实施高强度防疫措施中国的入境者实施高强度防疫措施两天后
</div> </div>
</div> </div>
<div class="card_btn"> <div class="card_btn" v-if="item.createUserId == user.id">
<div @click="toEdit">修改</div> <div @click="toEdit(item)">修改</div>
<div @click="deleteBtn">删除</div> <div @click="deleteBtn(item.id)">删除</div>
</div> </div>
</div> </div>
<div class="btn" @click="toAdd">去回答</div> <AiEmpty v-if="!answersArr.length" description="暂无数据"></AiEmpty>
<div class="btn" @click="toAdd(info.id)">去回答</div>
</div> </div>
</template> </template>
<script> <script>
import { mapState } from 'vuex'
export default { export default {
name: 'answerList', name: 'answerList',
appName: '学习问答', appName: '学习问答',
data() { data() {
return { return {
id: '', id: '',
answersArr: [] info: {},
answersArr: [],
} }
}, },
computed: {
...mapState(['user'])
},
methods: { methods: {
getDetail() { getDetail() {
this.$http.post(`/app/applearningquestion/queryDetailById?id=${this.id}`).then(res=> { this.$http.post(`/app/applearningquestion/queryDetailById?id=${this.id}`).then(res=> {
if(res?.data) { if(res?.data) {
console.log(res); this.info = res.data
this.answersArr = res.data.answers this.answersArr = res.data.answers
} }
}) })
}, },
toDetail() { toDetail(data) {
uni.navigateTo({url: `./answerDetail`}) uni.navigateTo({
url: './answerDetail?data=' + JSON.stringify(data)
})
}, },
deleteBtn() {}, deleteBtn(id) {
toAdd() { this.$confirm('确定要删除该回答吗?').then(()=> {
uni.navigateTo({url: `./answerAdd`}) this.$http.post(`/app/applearningquestion/deleteAnswer?id=${id}`).then(res=> {
if(res?.code == 0) {
this.$u.toast('删除成功!')
setTimeout(()=> {
this.getDetail()
}, 500)
}
})
})
},
toEdit(data) {
uni.navigateTo({
url: './answerAdd?data=' + JSON.stringify(data)
})
},
toAdd(id) {
uni.navigateTo({url: `./answerAdd?qid=${id}`})
}, },
}, },
onLoad(o) { onLoad(o) {
this.id = o.id this.id = o.id
this.getDetail()
}, },
onShow() {
this.getDetail()
}
} }
</script> </script>
@@ -122,7 +146,7 @@ export default {
background: #FFF; background: #FFF;
padding: 0 24px 24px 24px; padding: 0 24px 24px 24px;
box-sizing: border-box; box-sizing: border-box;
border-bottom: 2px solid #E4E5E6;
.card_content { .card_content {
height: 100%; height: 100%;
@@ -135,6 +159,10 @@ export default {
} }
} }
.card_radius {
border-radius: 0 0 16px 16px;
}
.card_btn { .card_btn {
background: #FFF; background: #FFF;
height: 88px; height: 88px;
@@ -142,6 +170,7 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
border-radius: 0 0 16px 16px; border-radius: 0 0 16px 16px;
border-top: 2px solid #E4E5E6;
div { div {
flex: 1; flex: 1;
text-align: center; text-align: center;

View File

@@ -21,7 +21,7 @@
</div> </div>
<div class="right"> <div class="right">
<span @click.stop="linkTo('./Add?id=' + item.id)" v-if="item.createUserId === user.id && item.answerCount === 0">修改问题</span> <span @click.stop="linkTo('./Add?id=' + item.id)" v-if="item.createUserId === user.id && item.answerCount === 0">修改问题</span>
<span @click.stop="linkTo('./answerAdd')">去回答</span> <span @click.stop="linkTo(`./answerAdd?qid=${item.id}`)">去回答</span>
</div> </div>
</div> </div>
</div> </div>