feat: There is no way the, bug #55663 父子组件没有做关联绑定

This commit is contained in:
super_liu
2022-06-15 14:44:15 +08:00
parent 6a9810f84d
commit a0024b5e1d
3 changed files with 98 additions and 50 deletions
@@ -66,23 +66,23 @@
<div class="el-upload__text">点击或拖拽上传文件</div> <div class="el-upload__text">点击或拖拽上传文件</div>
</el-upload> </el-upload>
</el-dialog> </el-dialog>
<!-- 选择回答人-->
<Role-tree
is-title="选择回答人"
:is-visible.sync="roleFlag"
@checkedRole="checkedRole"
:nodeList="nodeList"
></Role-tree>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
name: "answerItem", name: "answerItem",
props: {
list: {
type: Array,
required: false
},
},
data(){ data(){
return{ return{
roleFlag: false, roleFlag: false,
nodeList: [], nodeList: [],
mergeSelectList: [],
// 上传地址 // 上传地址
actionPath: 'api/att/attFile/uploadNew', actionPath: 'api/att/attFile/uploadNew',
importModalshowflagtemp: false, importModalshowflagtemp: false,
@@ -102,21 +102,25 @@ export default {
methods:{ methods:{
//提交 //提交
handleSubmit(){ handleSubmit(){
this.$emit('emitInsState',false) this.$refs['form'].validate((valid) => {
let asdId = sessionStorage.getItem('queId') if (valid) {
this.form.fileList = this.fileList this.$emit('emitInsState',false)
this.form.askId = asdId let asdId = sessionStorage.getItem('queId')
this.$http.postData('lawss/Reply/insertReply',{ ...this.form },{ this.form.fileList = this.fileList
_this: this this.form.askId = asdId
}, res => { this.$http.postData('lawss/Reply/insertReply',{ ...this.form },{
if(res.ok){ _this: this
this.form.reply = '' }, res => {
this.fileList = [] if(res.respCode === '200'){
this.$emit('emitInsState',true) this.form.reply = ''
//此处需要调用父组件中的方法,将问题列表进行刷新操作 this.fileList = []
} this.$emit('emitInsState',true)
}, e => { //此处需要调用父组件中的方法,将问题列表进行刷新操作
}
}, e => {
})
}
}) })
}, },
//上传文件 //上传文件
@@ -187,25 +191,37 @@ export default {
//问题归档 //问题归档
queArchive(){ queArchive(){
let list = [] let list = []
let mergeList = JSON.parse(sessionStorage.getItem('mergeList')) this.mergeSelectList = this.mergeSelectList.filter ( item => item.state !== 'yes' && item.checked);
for (let i = 0; i < mergeList.length; i++) { for (let i = 0; i < this.mergeSelectList.length; i++) {
list.push(mergeList[i]) if(this.mergeSelectList[i].checked){
list.push(this.mergeSelectList[i].id)
}
}
if(this.mergeSelectList && this.mergeSelectList.length > 0){
this.$emit('emitInsState',false)
let listId = list.join(',')
this.$http.post('lawss/Reply/updateReply', {
id: listId,
},{
_this: this
}, res => {
if(res.respCode === '200'){
this.$emit('emitInsState',true)
}
}, e => {
})
}else {
this.$message.warning('请选择归档内容')
} }
let listId = list.join(',')
this.$http.post('lawss/Reply/updateReply', {
id: listId,
},{
_this: this
}, res => {
}, e => {
})
}, },
//邀请 //邀请
invitation(){ invitation(){
this.roleFlag = true this.$emit('roleFlagBoo',true)
}, },
}, },
mounted () {
this.mergeSelectList = this.list
},
}; };
</script> </script>
@@ -24,7 +24,7 @@
</div> </div>
</div> </div>
<div style="float: right; margin-top: 20px"> <div style="float: right; margin-top: 20px">
<el-checkbox v-if="answer.checkedShow" @change="answerChang" v-model="answer.checked">归档</el-checkbox> <el-checkbox v-if="answer.checkedShow" @change="answerChang" :disabled="answer.state && answer.state === 'yes'" v-model="answer.checked">归档</el-checkbox>
</div> </div>
</div> </div>
<!-- <div class="footer-box">--> <!-- <div class="footer-box">-->
+47 -15
View File
@@ -63,8 +63,8 @@
</template> </template>
<div v-if="!questionsList || questionsList.length === 0"> <div v-if="!questionsList || questionsList.length === 0">
<div style="padding: 20px;"> <div style="padding: 20px;">
暂无数据 暂无数据
</div> </div>
</div> </div>
<div style="height: 100%" v-else> <div style="height: 100%" v-else>
<el-tabs <el-tabs
@@ -334,8 +334,8 @@
</template> </template>
<loading :loading="dataLoading">正在加载数据</loading> <loading :loading="dataLoading">正在加载数据</loading>
</div> </div>
<div class="info-answer" > <div class="info-answer" v-if="answerList && answerList.length > 0">
<answer-item @emitInsState="emitInsState"></answer-item> <answer-item :key="aiKey" :list="answerList" @roleFlagBoo="roleFlagBooFunc" @emitInsState="emitInsState"></answer-item>
</div> </div>
</el-tab-pane> </el-tab-pane>
</template> </template>
@@ -395,7 +395,7 @@
</template> </template>
<loading :loading="dataLoading">正在加载数据</loading> <loading :loading="dataLoading">正在加载数据</loading>
</div> </div>
<div class="info-answer" > <div class="info-answer" v-if="answerList && answerList.length > 0">
<answer-item @emitInsState="emitInsState"></answer-item> <answer-item @emitInsState="emitInsState"></answer-item>
</div> </div>
</el-tab-pane> </el-tab-pane>
@@ -456,7 +456,7 @@
</template> </template>
<loading :loading="dataLoading">正在加载数据</loading> <loading :loading="dataLoading">正在加载数据</loading>
</div> </div>
<div class="info-answer" > <div class="info-answer" v-if="answerList && answerList.length > 0">
<answer-item @emitInsState="emitInsState"></answer-item> <answer-item @emitInsState="emitInsState"></answer-item>
</div> </div>
</el-tab-pane> </el-tab-pane>
@@ -519,7 +519,7 @@
</template> </template>
<loading :loading="dataLoading">正在加载数据</loading> <loading :loading="dataLoading">正在加载数据</loading>
</div> </div>
<div class="info-answer" > <div class="info-answer" v-if="answerList && answerList.length > 0">
<answer-item @emitInsState="emitInsState"></answer-item> <answer-item @emitInsState="emitInsState"></answer-item>
</div> </div>
</el-tab-pane> </el-tab-pane>
@@ -1210,6 +1210,13 @@
</div> </div>
</div> </div>
</el-drawer> </el-drawer>
<!-- 选择回答人-->
<Role-tree
is-title="选择回答人"
:is-visible.sync="roleFlag"
@checkedRole="checkedRole"
:nodeList="nodeList"
></Role-tree>
</div> </div>
</template> </template>
@@ -1239,7 +1246,10 @@ export default {
}, },
data(){ data(){
return{ return{
aiKey:1,
dataLoading: true, dataLoading: true,
roleFlag: false,
nodeList: [],
mergeList: [], mergeList: [],
historyList: [], //相似历史问题 historyList: [], //相似历史问题
handleSelectForm: { handleSelectForm: {
@@ -1322,13 +1332,8 @@ export default {
immediate: true, immediate: true,
deep: true, deep: true,
handler(val) { handler(val) {
this.mergeList = [] this.aiKey++
val.forEach(item =>{ // sessionStorage.setItem('mergeList', JSON.stringify(this.mergeList))
if(item.checked){
this.mergeList.push(item.id)
}
})
sessionStorage.setItem('mergeList', JSON.stringify(this.mergeList))
} }
}, },
'questionForm.problemDescription':{ 'questionForm.problemDescription':{
@@ -1337,8 +1342,27 @@ export default {
} }
}, },
methods:{ methods:{
checkedRole(data){
let asdId = sessionStorage.getItem('queId')
this.$http.postData('lawss/AskUser/insertAskUser',{
asdId: asdId,
usid: data[0].id,
},{
_this: this
}, res => {
if(res.ok){
this.$message.success('邀请成功')
}
}, e => {
})
},
roleFlagBooFunc(boo){
if(boo){
this.roleFlag = true
}
},
emitInsState(state){ emitInsState(state){
console.log(state)
if(state){ if(state){
this.questionClick() this.questionClick()
}else { }else {
@@ -1611,6 +1635,11 @@ export default {
if(res.data.length){ if(res.data.length){
res.data.forEach(item => { res.data.forEach(item => {
item.checkedShow = true item.checkedShow = true
if(item.state && item.state === 'yes'){
item.checked = true
}else {
item.checked = false
}
}) })
} }
this.answerList = res.data this.answerList = res.data
@@ -1699,6 +1728,7 @@ export default {
_this: this, _this: this,
}, res => { }, res => {
this.standList = res.data this.standList = res.data
this.questionClick()
}) })
}, },
//查询订阅标准 //查询订阅标准
@@ -1710,6 +1740,7 @@ export default {
_this: this _this: this
}, res => { }, res => {
this.standList = res.data this.standList = res.data
this.questionClick()
}, e =>{ }, e =>{
}) })
@@ -1720,6 +1751,7 @@ export default {
_this: this _this: this
}, res =>{ }, res =>{
this.standList = res.data this.standList = res.data
this.questionClick()
}, e => { }, e => {
}) })