|
@@ -14,7 +14,7 @@
|
|
|
@blur="update"
|
|
|
/>
|
|
|
</div>
|
|
|
- <i class="el-icon-delete icon" @click="deleteHandle" />
|
|
|
+ <i class="el-icon-delete icon" @click="deateModel = true" />
|
|
|
</div>
|
|
|
<div class="content base">
|
|
|
<baseContent
|
|
@@ -53,7 +53,7 @@
|
|
|
:empty-text="'点击'"
|
|
|
:input-button="'添加复盘内容'"
|
|
|
:styles="{ padding: '12px 0 20px 0' }"
|
|
|
- @change="(e) => onChange('replayDesc', e)"
|
|
|
+ @change="(e) => onChange('replayDesc', e, true)"
|
|
|
/>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -63,7 +63,14 @@
|
|
|
<span slot="handleSlot">
|
|
|
<!-- <i class="el-icon-edit" @click="$emit('handle')" /> -->
|
|
|
<!-- <span></span> -->
|
|
|
- <span v-show="makeBetterEdit" @click="makeBetterEdit = false">111</span>
|
|
|
+ <span v-show="makeBetterEdit" class="makeBetterBtn" @click="makeBetterSave">
|
|
|
+ <i class="el-icon-circle-check" />
|
|
|
+ 保存
|
|
|
+ </span>
|
|
|
+ <span v-show="makeBetterEdit" class="makeBetterBtn" @click="makeBetterCancel">
|
|
|
+ <i class="el-icon-circle-close" />
|
|
|
+ 取消
|
|
|
+ </span>
|
|
|
</span>
|
|
|
</headTitle>
|
|
|
</header>
|
|
@@ -71,22 +78,19 @@
|
|
|
<!-- edit -->
|
|
|
<make-better-list
|
|
|
v-show="makeBetterEdit"
|
|
|
- :list="improvements"
|
|
|
+ :list="improvementsData"
|
|
|
@addHandle="addMakeBetterList"
|
|
|
@delHandle="delMakeBetterList"
|
|
|
- @onChange="(key, value, index) => change('improvements', key, value, index)"
|
|
|
+ @onChange="(key, value, index) => makeBetterChange(key, value, index)"
|
|
|
/>
|
|
|
<!-- view -->
|
|
|
<make-better-view
|
|
|
v-show="!makeBetterEdit"
|
|
|
- :list="improvements"
|
|
|
- @addHandle="addMakeBetterList"
|
|
|
- @delHandle="delMakeBetterList"
|
|
|
- @onChange="(key, value, index) => change('improvements', key, value, index)"
|
|
|
+ :list="improvementsData"
|
|
|
/>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="content ">
|
|
|
+ <div class="content actionDynamic">
|
|
|
<header class="headerH2">
|
|
|
<headTitle title="动态" />
|
|
|
</header>
|
|
@@ -108,6 +112,16 @@
|
|
|
/>
|
|
|
</div>
|
|
|
</model>
|
|
|
+ <model
|
|
|
+ title="删除确认"
|
|
|
+ :visible="deateModel"
|
|
|
+ @handleClose="deateModel = false"
|
|
|
+ @handleOk="deleteHandle"
|
|
|
+ >
|
|
|
+ <div slot="content" style="text-align: center">
|
|
|
+ 确定要删除该线上问题吗?
|
|
|
+ </div>
|
|
|
+ </model>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
@@ -142,32 +156,32 @@ export default {
|
|
|
return {
|
|
|
size: 'small',
|
|
|
addLinkModelvisible: false,
|
|
|
+ deateModel: false,
|
|
|
id: this.$route.query.id,
|
|
|
form_data: {},
|
|
|
replayUrl: '',
|
|
|
updateData: {},
|
|
|
makeBetterEdit: false,
|
|
|
- improvements: [{}],
|
|
|
- commentlist: [{
|
|
|
- commentInfo: {
|
|
|
- name: 1111
|
|
|
- }
|
|
|
- }], // 评价列表
|
|
|
- changeRecordList: [{
|
|
|
- remark: 111
|
|
|
- }] // 变更记录列表
|
|
|
+ improvementsData: [{}],
|
|
|
+ commentlist: [], // 评价列表
|
|
|
+ changeRecordList: [] // 变更记录列表
|
|
|
}
|
|
|
},
|
|
|
- mounted() {
|
|
|
- this.search()
|
|
|
+ async mounted() {
|
|
|
+ await this.search()
|
|
|
+ this.getCommentList()
|
|
|
},
|
|
|
methods: {
|
|
|
async search() {
|
|
|
const res = await getDetial({ id: this.id })
|
|
|
if (res.code === 200) {
|
|
|
- this.form_data = { ...res.data }
|
|
|
- this.copy_form_data = { ...res.data }
|
|
|
+ this.form_data = JSON.parse(JSON.stringify(res.data))
|
|
|
+ this.copy_form_data = JSON.parse(JSON.stringify(res.data))
|
|
|
this.replayUrl = res.data.replayUrl || ''
|
|
|
+ this.improvementsData = res.data.improvementsData || [{}]
|
|
|
+ this.getRecordList()
|
|
|
+ // 当更改的复盘链接把弹框关闭 所以每次都执行一下就好
|
|
|
+ this.addLinkModelvisible = false
|
|
|
}
|
|
|
},
|
|
|
goto(url) {
|
|
@@ -190,32 +204,40 @@ export default {
|
|
|
this.replayUrl = this.form_data.replayUrl || ''
|
|
|
this.addLinkModelvisible = true
|
|
|
},
|
|
|
- async onChange(key, value) {
|
|
|
+ makeBetterChange(key, value, index) {
|
|
|
+ const data = this.form_data.improvementsData ? [...this.form_data.improvementsData] : []
|
|
|
+ data[index][key] = value
|
|
|
+ this.form_data = { ...this.form_data, ... { improvementsData: data }}
|
|
|
+ },
|
|
|
+ makeBetterCancel() {
|
|
|
+ this.makeBetterEdit = false
|
|
|
+ this.form_data = JSON.parse(JSON.stringify(this.copy_form_data))
|
|
|
+ },
|
|
|
+ makeBetterSave() {
|
|
|
+ this.updateData = { improvementsData: this.improvementsData }
|
|
|
+ this.update()
|
|
|
+ this.makeBetterEdit = false
|
|
|
+ },
|
|
|
+ onChange(key, value, isUpdate = false) {
|
|
|
// 确保每次更新一项
|
|
|
this.updateData = { [key]: value }
|
|
|
+ if (isUpdate) {
|
|
|
+ this.update()
|
|
|
+ }
|
|
|
},
|
|
|
async update() {
|
|
|
const res = await updateOnlineProblem({ ...this.updateData, id: this.form_data.id })
|
|
|
if (res.code === 200) {
|
|
|
this.search()
|
|
|
} else {
|
|
|
- this.form_data = { ...this.copy_form_data }
|
|
|
+ this.form_data = JSON.parse(JSON.stringify(this.copy_form_data))
|
|
|
}
|
|
|
},
|
|
|
addMakeBetterList() {
|
|
|
- this.improvements.push({})
|
|
|
+ this.improvementsData.push({})
|
|
|
},
|
|
|
delMakeBetterList(index) {
|
|
|
- this.improvements.splice(index, 1)
|
|
|
- },
|
|
|
- change(type, key, value, index) {
|
|
|
- if (index !== undefined) {
|
|
|
- const data = [...this[type]]
|
|
|
- data[index][key] = value
|
|
|
- this[type] = [...data]
|
|
|
- } else {
|
|
|
- this[type] = { ...this[type], ...{ [key]: value }}
|
|
|
- }
|
|
|
+ this.improvementsData.splice(index, 1)
|
|
|
},
|
|
|
async deleteHandle() {
|
|
|
const { id } = this.form_data
|
|
@@ -235,7 +257,7 @@ export default {
|
|
|
},
|
|
|
// 获取评价列表
|
|
|
async getCommentList() {
|
|
|
- const res = await getCommentList({ type: 5, joinId: this.taskId })
|
|
|
+ const res = await getCommentList({ type: 6, joinId: this.form_data.id })
|
|
|
if (res.code === 200) {
|
|
|
this.commentlist = res.data
|
|
|
}
|
|
@@ -243,7 +265,7 @@ export default {
|
|
|
|
|
|
// 获取变更记录
|
|
|
async getRecordList() {
|
|
|
- const res = await getRecordList({ checkListId: this.checkListId })
|
|
|
+ const res = await getRecordList({ id: this.form_data.id })
|
|
|
if (res.code === 200) {
|
|
|
this.changeRecordList = res.data
|
|
|
}
|
|
@@ -253,13 +275,11 @@ export default {
|
|
|
const commentInfo = {
|
|
|
joinId: this.form_data.id,
|
|
|
content,
|
|
|
- type: 5,
|
|
|
- fatherId: 0,
|
|
|
- name: this.userNames,
|
|
|
- email: this.userInformation
|
|
|
+ type: 6,
|
|
|
+ fatherId: 0
|
|
|
}
|
|
|
- const user = { name: this.userNames, ename: this.userInformation, id: '' }
|
|
|
- const res = await createComment({ commentInfo, user })
|
|
|
+ // const user = { name: this.userNames, ename: this.userInformation, id: '' }
|
|
|
+ const res = await createComment({ commentInfo })
|
|
|
if (res.code === 200) {
|
|
|
this.$message({ message: '评论成功', type: 'success', duration: 1000, offset: 150 })
|
|
|
this.getCommentList()
|
|
@@ -271,7 +291,7 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
-<style lang="scss">
|
|
|
+<style scoped lang="scss">
|
|
|
.wb-op-detial {
|
|
|
padding: 0 10px 10px 10px;
|
|
|
.content {
|
|
@@ -279,11 +299,17 @@ export default {
|
|
|
border-radius: 4px;
|
|
|
overflow: hidden;
|
|
|
margin-bottom: 10px;
|
|
|
- padding: 16px 20px;
|
|
|
+ padding: 20px 30px;
|
|
|
.makeBetter {
|
|
|
width: calc(100% - 190px);
|
|
|
padding: 12px 0px 20px 0px
|
|
|
}
|
|
|
+ &.actionDynamic {
|
|
|
+ padding: 0px;
|
|
|
+ .headerH2 {
|
|
|
+ padding: 20px 30px;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
.headerH1 {
|
|
|
display: flex;
|
|
@@ -294,12 +320,6 @@ export default {
|
|
|
font-weight: 600;
|
|
|
margin-left: -15px;
|
|
|
cursor: pointer;
|
|
|
- .el-input__inner {
|
|
|
- border-color: transparent;
|
|
|
- &:hover {
|
|
|
- border-color: #DCDFE6;
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
.icon {
|
|
|
font-size: 20px;
|
|
@@ -309,6 +329,31 @@ export default {
|
|
|
}
|
|
|
.headerH2 {
|
|
|
margin-top: 5px;
|
|
|
+ .makeBetterBtn {
|
|
|
+ color: #1890FF;
|
|
|
+ margin-left: 15px;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .replayLink {
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ .name {
|
|
|
+ width:100px;
|
|
|
+ line-height: 32px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|
|
|
+<style lang="scss">
|
|
|
+.wb-op-detial {
|
|
|
+ .headerH1 {
|
|
|
+ .el-input__inner {
|
|
|
+ border-color: transparent;
|
|
|
+ &:hover {
|
|
|
+ border-color: #DCDFE6;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</style>
|