问题管理查看

This commit is contained in:
范强强
2023-10-23 08:53:05 +08:00
parent 7febc32e20
commit 9d55d3a1f8
@@ -49,9 +49,10 @@
:title="'PS-issue'">{{'PS-issue'}}</span> :title="'PS-issue'">{{'PS-issue'}}</span>
</div> </div>
<div> <div>
<a style='width: 273px;display: inline-block;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;margin-top: 12px;' <a
:title='formInline.psIssue' style='width: 273px;display: inline-block;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;margin-top: 12px;'
@click='UserFeedback(formInline.psIssue)'>{{formInline.psIssue}}</a> :title='formInline.psIssue'
@click='UserFeedback(formInline.psIssue)'>{{formInline.psIssue}}</a>
</div> </div>
</div> </div>
</a-col> </a-col>
@@ -112,14 +113,14 @@
</div> </div>
<a-form-model-item class="itemModel-multi" prop="creator"> <a-form-model-item class="itemModel-multi" prop="creator">
<a-select <a-select
allowClear allowClear
show-search show-search
mode="multiple" mode="multiple"
:disabled="disabled" :disabled="disabled"
class="box-input-search" class="box-input-search"
optionFilterProp="label" optionFilterProp="label"
:getPopupContainer="triggerNode=> triggerNode.parentNode" :getPopupContainer="triggerNode=> triggerNode.parentNode"
v-model="formInline.dutyTerritory"> v-model="formInline.dutyTerritory">
<a-select-option v-for="(item, key) in firstLevelDutyTerritoryList" <a-select-option v-for="(item, key) in firstLevelDutyTerritoryList"
:key="key" :key="key"
:label="item.key" :label="item.key"
@@ -186,9 +187,10 @@
:title="$t('descriptions')">{{$t('descriptions')}}</span> :title="$t('descriptions')">{{$t('descriptions')}}</span>
</div> </div>
<a-form-model-item class="itemModel" prop="descriptions"> <a-form-model-item class="itemModel" prop="descriptions">
<a-input class="box-input" <div class="text-box" v-html="formInline.description"></div>
v-model='formInline.description' <!-- <a-input class="box-input"-->
:disabled="disabled"/> <!-- v-model='formInline.description'-->
<!-- :disabled="disabled"/>-->
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -220,11 +222,12 @@
</div> </div>
<a-form-model-item class="itemModel" prop="progresstracking"> <a-form-model-item class="itemModel" prop="progresstracking">
<div v-for="(item,index) in formInline.progressTrackingList" :key="index"> <div v-for="(item,index) in formInline.progressTrackingList" :key="index">
<a-input class="box-input" <div class="text-box-one" v-html="item.progressTracking"></div>
style='width: 89%' <!-- <a-input class="box-input"-->
v-model='item.progressTracking' <!-- style='width: 89%'-->
:title='item.progressTracking' <!-- v-model='item.progressTracking'-->
:disabled="true"/> <!-- :title='item.progressTracking'-->
<!-- :disabled="true"/>-->
</div> </div>
</a-form-model-item> </a-form-model-item>
</div> </div>
@@ -274,251 +277,275 @@
</template> </template>
<script> <script>
import { getAction, postAction,putAction, downloadFile } from '@/api/manage' import { getAction, postAction, putAction, downloadFile } from '@/api/manage'
import moment from 'moment' import moment from 'moment'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
export default { export default {
name: 'fillAdd', name: 'fillAdd',
components: { components: {},
data() {
}, return {
data() { rules: {
return { title: [
rules: { {
title: [ required: true,
message: this.$t('title') + this.$t('cannotEmpty'),
trigger: 'blur'
}
],
problemType: [
{
required: true,
message: this.$t('problemType') + this.$t('cannotEmpty'),
trigger: 'change'
}
]
},
visible: false,
visibletrack: false,
rulestracking: {
progressTracking: [
{
required: true,
message: this.$t('text') + this.$t('cannotEmpty'),
trigger: 'blur'
}
]
},
formInline: {
fileLinkList: [{}],
progressTrackingList: [{}],
approvalEvidenceLinkList: [{}],
dutyTerritory: undefined,
projectId: undefined,
problemState: undefined
},
formInlinetracking: {},
confirmLoading: false,
title: '',
disabled: false,
isTrue: false,
chapterContentsList: [],
firstLevelDutyTerritoryList: [],
projectNameList: [],
ProblemstateList: [this.$t('red'), this.$t('yellow'), this.$t('green')],
templateDisabled: false,
contentTemplateList: [
{ {
required: true, id: '1',
message: this.$t('title') + this.$t('cannotEmpty'), text: this.$t('defaultTemplate')
trigger: 'blur' },
{
id: '2',
text: this.$t('newRequestCommentListTemplate')
},
{
id: '3',
text: this.$t('NewReleasedStandardTemplate')
},
{
id: '4',
text: this.$t('industryInformationDynamicTemplate')
} }
], ],
problemType: [ index: '',
{ url: {
required: true, add: '/project/problemManagementEO/add',
message: this.$t('problemType') + this.$t('cannotEmpty'), edit: '/project/problemManagementEO/edit',
trigger: 'change' queryById: '/report/lawsMonthlyReportWriteEO/queryById'
}
],
},
visible: false,
visibletrack: false,
rulestracking:{
progressTracking: [
{
required: true,
message: this.$t('text') + this.$t('cannotEmpty'),
trigger: 'blur'
}
]
},
formInline: {
fileLinkList:[{}],
progressTrackingList:[{}],
approvalEvidenceLinkList:[{}],
dutyTerritory:undefined,
projectId:undefined,
problemState:undefined,
},
formInlinetracking:{},
confirmLoading: false,
title: '',
disabled: false,
isTrue: false,
chapterContentsList: [],
firstLevelDutyTerritoryList:[],
projectNameList: [],
ProblemstateList:[this.$t('red'),this.$t('yellow'),this.$t('green'),],
templateDisabled: false,
contentTemplateList: [
{
id: '1',
text: this.$t('defaultTemplate')
},
{
id: '2',
text: this.$t('newRequestCommentListTemplate')
},
{
id: '3',
text: this.$t('NewReleasedStandardTemplate')
},
{
id: '4',
text: this.$t('industryInformationDynamicTemplate')
} }
], }
index:'', },
url: { mounted() {
add: '/project/problemManagementEO/add',
edit: '/project/problemManagementEO/edit', },
queryById: '/report/lawsMonthlyReportWriteEO/queryById' methods: {
getNameList() {
getAction('/project/projectNameInfoEO/queryProjectNameList', {}).then((res) => {
if (res.success) {
this.projectNameList = res.result || []
} else {
this.projectNameList = []
}
})
},
getFirstLevelDutyTerritory() {
getAction('/sys/dictItem/getFirstLevelDutyTerritory', {}).then((res) => {
if (res.success) {
this.firstLevelDutyTerritoryList = res.result
} else {
this.firstLevelDutyTerritoryList = []
}
})
},
...mapGetters(['userInfo']),
edit(row) {
this.getNameList()
this.getFirstLevelDutyTerritory()
this.title = this.$t('view')
this.formInline = row
if (this.formInline.dutyTerritory != null) {
this.formInline.dutyTerritory = this.formInline.dutyTerritory.split(',')
} else {
this.formInline.dutyTerritory = undefined
}
if (this.formInline.problemState == null) {
this.formInline.problemState = undefined
}
if (this.formInline.projectId != null) {
this.formInline.projectId = this.formInline.projectId.split(',')
} else {
this.formInline.projectId = undefined
}
getAction('/project/problemManagementEO/queryById', { id: this.formInline.id }).then((res) => {
if (res.success) {
this.formInline.fileList = res.result.fileList
this.formInline.approvalEvidenceFileList = res.result.approvalEvidenceFileList
}
})
console.log(this.formInline)
this.visible = true
this.disabled = true
this.$nextTick(() => {
this.$refs.ruleForm.clearValidate()
})
},
UserFeedback(item) {
window.open(item, '_blank')
},
download(item) {
console.log(item)
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id })
},
handleCancel() {
this.visible = false
} }
} }
},
mounted() {
},
methods: {
getNameList() {
getAction('/project/projectNameInfoEO/queryProjectNameList', {}).then((res) => {
if (res.success) {
this.projectNameList = res.result || []
} else {
this.projectNameList = []
}
})
},
getFirstLevelDutyTerritory() {
getAction('/sys/dictItem/getFirstLevelDutyTerritory', {}).then((res) => {
if (res.success) {
this.firstLevelDutyTerritoryList = res.result
} else {
this.firstLevelDutyTerritoryList = []
}
})
},
...mapGetters(['userInfo']),
edit(row) {
this.getNameList()
this.getFirstLevelDutyTerritory()
this.title = this.$t('view')
this.formInline = row
if(this.formInline.dutyTerritory != null){
this.formInline.dutyTerritory = this.formInline.dutyTerritory.split(',')
}else{
this.formInline.dutyTerritory = undefined
}
if(this.formInline.problemState == null){
this.formInline.problemState = undefined
}
if(this.formInline.projectId != null){
this.formInline.projectId = this.formInline.projectId.split(',')
}else{
this.formInline.projectId = undefined
}
getAction('/project/problemManagementEO/queryById', {id:this.formInline.id}).then((res) => {
if (res.success) {
this.formInline.fileList = res.result.fileList
this.formInline.approvalEvidenceFileList = res.result.approvalEvidenceFileList
}
})
console.log(this.formInline)
this.visible = true
this.disabled = true
this.$nextTick(() => {
this.$refs.ruleForm.clearValidate()
})
},
UserFeedback(item){
window.open(item, '_blank');
},
download(item){
console.log(item)
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id })
},
handleCancel() {
this.visible = false
},
} }
}
</script> </script>
<style> <style>
.ant-select-disabled { .ant-select-disabled {
color: rgba(0, 0, 0, 0.65); color: rgba(0, 0, 0, 0.65);
} }
.ant-input-disabled { .ant-input-disabled {
color: rgba(0, 0, 0, 0.65) !important; color: rgba(0, 0, 0, 0.65) !important;
} }
.text-class{
color: rgba(0, 0, 0, 0.65);
font-weight: bold;
}
p{
margin: 0;
padding: 0;
}
</style> </style>
<style scoped> <style scoped>
.box-title-text { .box-title-text {
line-height: 1.4; line-height: 1.4;
display: flex; display: flex;
} }
.title-text { .title-text {
width: 114px; width: 114px;
text-align: right; text-align: right;
display: inline-block; display: inline-block;
font-weight: 500; font-weight: 500;
font-size: 14px; font-size: 14px;
margin-right: 16px; margin-right: 16px;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
height: 42px; height: 42px;
line-height: 42px; line-height: 42px;
} }
.box-input { .box-input {
display: inline-block; display: inline-block;
height: 38px; height: 38px;
width: 100%; width: 100%;
} }
.itemModel { .itemModel {
width: calc(100% - 130px); width: calc(100% - 130px);
display: inline-block; display: inline-block;
margin-top: 2px; margin-top: 2px;
} }
.title-text-text { .title-text-text {
margin-top: 9px; margin-top: 9px;
} }
.formAdd { .formAdd {
margin-bottom: 40px; margin-bottom: 40px;
} }
.Required { .Required {
color: red; color: red;
margin-right: 4px; margin-right: 4px;
} }
.title-text-text { .title-text-text {
margin-top: 9px; margin-top: 9px;
} }
.formAdd { .formAdd {
margin-bottom: 40px; margin-bottom: 40px;
} }
.drawer-bootom-button { .drawer-bootom-button {
position: absolute; position: absolute;
bottom: 0; bottom: 0;
z-index: 100; z-index: 100;
width: 100%; width: 100%;
border-top: 1px solid #e8e8e8; border-top: 1px solid #e8e8e8;
padding: 10px 16px; padding: 10px 16px;
text-align: right; text-align: right;
left: 0; left: 0;
background: #fff; background: #fff;
border-radius: 0 0 2px 2px; border-radius: 0 0 2px 2px;
} }
.button-text { .button-text {
height: 38px; height: 38px;
margin-top: 4px; margin-top: 4px;
} }
::v-deep .ant-select-tree-treenode-switcher-close { ::v-deep .ant-select-tree-treenode-switcher-close {
width: 255px; width: 255px;
} }
::v-deep .ant-select-tree-node-content-wrapper { ::v-deep .ant-select-tree-node-content-wrapper {
float: right; float: right;
margin-top: -2px !important; margin-top: -2px !important;
} }
::v-deep .ant-select-tree-title { ::v-deep .ant-select-tree-title {
width: 100%; width: 100%;
display: block; display: block;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
word-break: break-word; word-break: break-word;
} }
.text-box {
width: 100%;
height: 200px;
display: inline-block;
border: 1px solid #ccc;
padding: 0 15px;
box-sizing: border-box;
}
.text-box-one {
width: 100%;
height: 200px;
display: inline-block;
border: 1px solid #ccc;
padding: 0 15px;
box-sizing: border-box;
margin-bottom: 20px;
}
</style> </style>