修改任务清单的流程

This commit is contained in:
qq787203167
2022-05-18 16:18:38 +08:00
parent 00bf5d3bdf
commit b30dc1636a
4 changed files with 115 additions and 48 deletions
+3
View File
@@ -836,4 +836,7 @@ module.exports = {
newlyAdded: 'Newly Added', newlyAdded: 'Newly Added',
applicableSupplement: 'Applicable Supplement', applicableSupplement: 'Applicable Supplement',
taskDescription:'Task description', taskDescription:'Task description',
descriptionDeliverables:'Description of deliverables',
startMonth:'Start Month',
endMonth:'End Month',
} }
+4 -1
View File
@@ -840,5 +840,8 @@ module.exports = {
verificationComplianceConfirmationProgress: '验证符合性确认进度', verificationComplianceConfirmationProgress: '验证符合性确认进度',
totalTable: '总数', totalTable: '总数',
applicableSupplement: '适用增补件', applicableSupplement: '适用增补件',
taskDescription: '任务说明' taskDescription: '任务说明',
descriptionDeliverables:'交付物说明',
startMonth:'开始日期',
endMonth:'结束日期',
} }
@@ -433,21 +433,21 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :span="24"> <a-col :span="24">
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="title-text-text" <span class="title-text-text"
:title="$t('remarks')">{{$t('remarks')}}</span> :title="$t('descriptionDeliverables')">{{$t('descriptionDeliverables')}}</span>
</div>
<a-form-model-item class="itemModel-text" :prop="'designRemark'">
<a-textarea
style="width: 100%"
:placeholder="$t('PleaseEnter')+$t('descriptionDeliverables')"
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.designRemark ? true : false"
v-model="formInline.designRemark" :rows="4"/>
</a-form-model-item>
</div> </div>
<a-form-model-item class="itemModel-text" :prop="'designRemark'"> </a-col>
<a-textarea
style="width: 100%"
:placeholder="$t('PleaseEnter')+$t('remarks')"
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.designRemark ? true : false"
v-model="formInline.designRemark" :rows="4"/>
</a-form-model-item>
</div>
</a-col>
</a-row> </a-row>
<div class="header-text"> <div class="header-text">
&nbsp;{{$t('PrehomoConfirmation')}} &nbsp;{{$t('PrehomoConfirmation')}}
@@ -576,12 +576,12 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="title-text-text" <span class="title-text-text"
:title="$t('remarks')">{{$t('remarks')}}</span> :title="$t('descriptionDeliverables')">{{$t('descriptionDeliverables')}}</span>
</div> </div>
<a-form-model-item class="itemModel-text" :prop="'prehomoRemark'"> <a-form-model-item class="itemModel-text" :prop="'prehomoRemark'">
<a-textarea <a-textarea
style="width: 100%" style="width: 100%"
:placeholder="$t('PleaseEnter')+$t('remarks')" :placeholder="$t('PleaseEnter')+$t('descriptionDeliverables')"
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.prehomoRemark ? true : false" :disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.prehomoRemark ? true : false"
v-model="formInline.prehomoRemark" :rows="4"/> v-model="formInline.prehomoRemark" :rows="4"/>
</a-form-model-item> </a-form-model-item>
@@ -713,12 +713,12 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="title-text-text" <span class="title-text-text"
:title="$t('remarks')">{{$t('remarks')}}</span> :title="$t('descriptionDeliverables')">{{$t('descriptionDeliverables')}}</span>
</div> </div>
<a-form-model-item class="itemModel-text" :prop="'verifyRemark'"> <a-form-model-item class="itemModel-text" :prop="'verifyRemark'">
<a-textarea <a-textarea
style="width: 100%" style="width: 100%"
:placeholder="$t('PleaseEnter')+$t('remarks')" :placeholder="$t('PleaseEnter')+$t('descriptionDeliverables')"
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.verifyRemark ? true : false" :disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.verifyRemark ? true : false"
v-model="formInline.verifyRemark" :rows="4"/> v-model="formInline.verifyRemark" :rows="4"/>
</a-form-model-item> </a-form-model-item>
@@ -784,27 +784,27 @@
trigger: 'blur' trigger: 'blur'
} }
], ],
designRemark:[ designRemark: [
{ {
max: 300, max: 300,
message: this.$t('remarks') + this.$t('cannotExceed') + 300 + this.$t('Characters'), message: this.$t('descriptionDeliverables') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur' trigger: 'blur'
} }
], ],
verifyRemark:[ verifyRemark: [
{ {
max: 300, max: 300,
message: this.$t('remarks') + this.$t('cannotExceed') + 300 + this.$t('Characters'), message: this.$t('descriptionDeliverables') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur' trigger: 'blur'
} }
], ],
prehomoRemark:[ prehomoRemark: [
{ {
max: 300, max: 300,
message: this.$t('remarks') + this.$t('cannotExceed') + 300 + this.$t('Characters'), message: this.$t('descriptionDeliverables') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur' trigger: 'blur'
} }
], ]
}, },
formInline: {}, formInline: {},
regulatoryEngineerList: [], regulatoryEngineerList: [],
@@ -1312,7 +1312,7 @@
position: absolute; position: absolute;
bottom: 0; bottom: 0;
width: 100%; width: 100%;
z-index:100; z-index: 100;
border-top: 1px solid #e8e8e8; border-top: 1px solid #e8e8e8;
padding: 10px 16px; padding: 10px 16px;
text-align: right; text-align: right;
@@ -32,6 +32,21 @@
</div> </div>
<div class="box-top"> <div class="box-top">
<span class="box-top-text">{{$t('regulatoryCertificationTaskPlan')}}</span> <span class="box-top-text">{{$t('regulatoryCertificationTaskPlan')}}</span>
<span style="float: right" class="box-top-text-right">
<a-range-picker
:placeholder="[this.$t('startMonth'), this.$t('endMonth')]"
format="YYYY-MM"
class="range-picker"
:value="getTime"
:mode="mode2"
:open="open"
show-time
@ok="okChange"
@openChange="openChange"
@panelChange="panelChange"
@change="hodeChange"
/>
</span>
<div class="box-top-content"> <div class="box-top-content">
<div id="main"></div> <div id="main"></div>
<div class="axis-tip"></div> <div class="axis-tip"></div>
@@ -86,6 +101,7 @@
<script> <script>
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage' import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
import * as echarts from 'echarts' import * as echarts from 'echarts'
import moment from 'moment'
export default { export default {
name: 'index', name: 'index',
@@ -94,6 +110,9 @@
queryParam: {}, queryParam: {},
loading: false, loading: false,
dataSource: [], dataSource: [],
open: false,
getTime: [],
mode2: ['month', 'month'],
url: { url: {
list: '/project/ProjectStatusBoardController/scheduleInfoList', list: '/project/ProjectStatusBoardController/scheduleInfoList',
timeline: '/project/ProjectStatusBoardController/timeline', timeline: '/project/ProjectStatusBoardController/timeline',
@@ -155,7 +174,9 @@
width: 440, width: 440,
scopedSlots: { title: 'verificationComplianceReviewTitle' } scopedSlots: { title: 'verificationComplianceReviewTitle' }
} }
] ],
startTime: undefined,
endTime: undefined
} }
}, },
mounted() { mounted() {
@@ -164,14 +185,39 @@
}, },
methods: { methods: {
getTimeline() { getTimeline() {
getAction(this.url.timeline, {}).then((res) => { let query = {
startTime: this.startTime,
endTime: this.endTime
}
getAction(this.url.timeline, query).then((res) => {
if (res.success) { if (res.success) {
this.getTimelineList(res.result) this.getTimelineList(res.result)
} }
}) })
}, },
openChange(val) {
this.open = val
},
okChange() {
this.open = false
this.getTimeline()
},
hodeChange() {
this.startTime = undefined
this.endTime = undefined
this.getTimeline()
},
panelChange(value, mode) {
this.getTime = value
this.startTime = moment(value[0]).format('YYYY-MM')
this.endTime = moment(value[1]).format('YYYY-MM')
},
getTimelineList(time) { getTimelineList(time) {
getAction(this.url.timelineList, {}).then((res) => { let query = {
startTime: this.startTime,
endTime: this.endTime
}
getAction(this.url.timelineList, query).then((res) => {
if (res.success) { if (res.success) {
this.getEcharts(time, res.result) this.getEcharts(time, res.result)
} }
@@ -196,26 +242,31 @@
list.push(timeList[i] + '-' + num) list.push(timeList[i] + '-' + num)
} }
} }
console.log(listTime)
const hours = listTime const hours = listTime
const days = [] const days = []
let content = []
if (timeData && timeData.length > 0) { if (timeData && timeData.length > 0) {
timeData.forEach(res => { timeData.forEach(res => {
days.push(res.projectName) days.push(res.projectName)
content.push(res.data[0])
}) })
} }
const data = [ let timeDataList = []
[0, 0, 14], [0, 1, 5], [0, 2, 5], [0, 3, 5], [0, 4, 5], [0, 5, 5], let data = []
[1, 0, 5], [1, 2, 5], [1, 3, 5], [1, 4, 5], [1, 5, 5], [1, 6, 5], for (let j = 0; j < content.length; j++) {
[2, 0, 14], [2, 1, 14], [2, 2, 14], [2, 3, 14], [2, 4, 14], [2, 5, 14], for (let k = 0; k < content[j].length; k++) {
[3, 0, 14], [3, 1, 14], [3, 2, 14], [3, 3, 14], [3, 4, 14], [3, 5, 14], content[j][k].index = j
[4, 0, 14], [4, 1, 14], [4, 2, 14], [4, 3, 14], [4, 4, 14], [4, 5, 14], timeDataList.push(content[j][k])
[5, 0, 14], [5, 1, 14], [5, 2, 14], [5, 3, 14], [5, 4, 14], [5, 5, 14], }
[6, 0, 14], [6, 1, 14], [6, 2, 14], [6, 3, 14], [6, 4, 14], [6, 5, 14] }
].map(function(item) { for (let i = 0; i < list.length; i++) {
return [item[1], item[0], item[2]] for (let j = 0; j < timeDataList.length; j++) {
}) let time = JSON.stringify(timeDataList[j].time).slice(1, 11)
if (time == list[i]) {
data.push([i, timeDataList[j].index, 14, j])
}
}
}
option = { option = {
legend: { legend: {
data: ['Punch Card'], data: ['Punch Card'],
@@ -225,11 +276,8 @@
position: 'top', position: 'top',
formatter: function(params) { formatter: function(params) {
return ( return (
params.value[2] + timeDataList[params.value[3]].name + '<br/>' +
' commits in ' + timeDataList[params.value[3]].time.slice(0, 11)
hours[params.value[0]] +
' of ' +
days[params.value[1]]
) )
} }
}, },
@@ -347,7 +395,12 @@
} }
} }
</script> </script>
<style>
.box-top-text-right .ant-calendar-picker-input {
height: 38px;
width: 300px;
}
</style>
<style scoped> <style scoped>
@import '~@assets/less/common.less'; @import '~@assets/less/common.less';
@@ -416,4 +469,12 @@
box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.2); box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.2);
border-radius: 4px; border-radius: 4px;
} }
.box-top-text-right {
display: inline-block;
float: right;
height: 38px;
width: 300px;
margin-top: -4px;
}
</style> </style>