Merge remote-tracking branch 'origin/dev_third_stage' into dev_third_stage
This commit is contained in:
@@ -1192,5 +1192,6 @@ module.exports = {
|
|||||||
Fileuploaded:'File uploaded, please wait',
|
Fileuploaded:'File uploaded, please wait',
|
||||||
uploadedbyyourself:'You can only delete files and data uploaded by yourself',
|
uploadedbyyourself:'You can only delete files and data uploaded by yourself',
|
||||||
Fileuploaded:'File uploading, please wait',
|
Fileuploaded:'File uploading, please wait',
|
||||||
doNotHavePermissionDeleteData:'Do not have permission to delete this data,'
|
doNotHavePermissionDeleteData:'Do not have permission to delete this data,',
|
||||||
|
Parametercollection:'Parameter Collection',
|
||||||
}
|
}
|
||||||
@@ -1295,5 +1295,6 @@ module.exports = {
|
|||||||
Checkthepermissions: '查看权限',
|
Checkthepermissions: '查看权限',
|
||||||
onlyFilesUploaded: '只能上传.docx、.doc文件',
|
onlyFilesUploaded: '只能上传.docx、.doc文件',
|
||||||
uploadedbyyourself: '只能删除自己上传的文件数据',
|
uploadedbyyourself: '只能删除自己上传的文件数据',
|
||||||
doNotHavePermissionDeleteData: '没有权限删除此数据'
|
doNotHavePermissionDeleteData: '没有权限删除此数据',
|
||||||
|
Parametercollection:'参数收集',
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,275 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="table-page-search-wrapper">
|
||||||
|
<a-form layout="inline">
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :md="6" :sm="12">
|
||||||
|
<a-form-item label="订单类型">
|
||||||
|
<a-select placeholder="请输入订单类型" v-model="queryParam.ctype">
|
||||||
|
<a-select-option value="1">国内订单</a-select-option>
|
||||||
|
<a-select-option value="2">国际订单</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="6" :sm="12">
|
||||||
|
<a-form-model-item :label="$t('reviewResults')" prop="value" class="process-form-item">
|
||||||
|
<a-radio-group v-model="queryParam.value" @change="onChange">
|
||||||
|
<a-radio :value="1">
|
||||||
|
{{$t('accord')}}
|
||||||
|
</a-radio>
|
||||||
|
<a-radio :value="2">
|
||||||
|
{{$t('nonConformity')}}
|
||||||
|
</a-radio>
|
||||||
|
</a-radio-group>
|
||||||
|
</a-form-model-item>
|
||||||
|
</a-col>
|
||||||
|
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
<div class="box-content">
|
||||||
|
<div class="box-content-left">
|
||||||
|
<div id="main-left"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<responsibilityList @responsibility="responsibility" ref="responsibilityListRef"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import * as echarts from 'echarts'
|
||||||
|
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
|
||||||
|
import responsibilityList from './responsibilityList'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'DeliverableStatusEchart',
|
||||||
|
components: {
|
||||||
|
responsibilityList
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
queryParam:{},
|
||||||
|
url: {
|
||||||
|
getProjectDetailsStatistics: '/project/projectLibraryBase/getProjectDetailsStatistics'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getData()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getData() {
|
||||||
|
getAction(this.url.getProjectDetailsStatistics, { id: this.$route.query.id }).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
if (res.result) {
|
||||||
|
|
||||||
|
let listingToConfirmMap = res.result.listingToConfirmMap ? res.result.listingToConfirmMap.listingToConfirmMapList : []
|
||||||
|
let taskToConfirmMap = res.result.taskToConfirmMap ? res.result.taskToConfirmMap.taskToConfirmMapList : []
|
||||||
|
let designComplianceMap = res.result.designComplianceMap ? res.result.designComplianceMap.designComplianceMapList : []
|
||||||
|
let prehomoMap = res.result.prehomoMap ? res.result.prehomoMap.prehomoMapList : []
|
||||||
|
let verifyComplianceMap = res.result.verifyComplianceMap ? res.result.verifyComplianceMap.verifyComplianceMapList : []
|
||||||
|
this.dataEcharts(listingToConfirmMap, 1)
|
||||||
|
this.dataEcharts(taskToConfirmMap, 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
dataEcharts(val, num) {
|
||||||
|
let data = []
|
||||||
|
let color = []
|
||||||
|
if (val && val.length > 0) {
|
||||||
|
val.forEach((res) => {
|
||||||
|
if (res.inventoryAffirmStatus == 'Not started' || res.taskAffirmStatus == 'Not started') {
|
||||||
|
data.push({
|
||||||
|
value: res.inventoryAffirmStatusCount || res.taskAffirmStatusCount,
|
||||||
|
name: this.$t('notLaunch'),
|
||||||
|
status: res.inventoryAffirmStatus || res.taskAffirmStatus
|
||||||
|
})
|
||||||
|
color.push('#707486')
|
||||||
|
} else if (res.inventoryAffirmStatus == 'List to confirm' || res.taskAffirmStatus == 'List to confirm') {
|
||||||
|
data.push({
|
||||||
|
value: res.inventoryAffirmStatusCount || res.taskAffirmStatusCount,
|
||||||
|
name: this.$t('toBeConfirmed'),
|
||||||
|
status: res.inventoryAffirmStatus || res.taskAffirmStatus
|
||||||
|
})
|
||||||
|
color.push('#00B3BE')
|
||||||
|
} else if (res.inventoryAffirmStatus == 'Accepted' || res.taskAffirmStatus == 'Accepted') {
|
||||||
|
data.push({
|
||||||
|
value: res.inventoryAffirmStatusCount || res.taskAffirmStatusCount,
|
||||||
|
name: this.$t('accept'),
|
||||||
|
status: res.inventoryAffirmStatus || res.taskAffirmStatus
|
||||||
|
})
|
||||||
|
color.push('#26BD4B')
|
||||||
|
} else if (res.inventoryAffirmStatus == 'Rejected' || res.taskAffirmStatus == 'Rejected') {
|
||||||
|
data.push({
|
||||||
|
value: res.inventoryAffirmStatusCount || res.taskAffirmStatusCount,
|
||||||
|
name: this.$t('refuse'),
|
||||||
|
status: res.inventoryAffirmStatus || res.taskAffirmStatus
|
||||||
|
})
|
||||||
|
color.push('#E83030')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if(num == 1){
|
||||||
|
this.mainLeftEcharts(data, color)
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
getEcharts(chart, title, color, data, num) {
|
||||||
|
var chartDom = document.getElementById(chart);
|
||||||
|
var myChart = echarts.init(chartDom);
|
||||||
|
var option;
|
||||||
|
|
||||||
|
let xAxisData = [];
|
||||||
|
let data1 = [];
|
||||||
|
let data2 = [];
|
||||||
|
let data3 = [];
|
||||||
|
let data4 = [];
|
||||||
|
for (let i = 0; i < 10; i++) {
|
||||||
|
xAxisData.push(this.$t('areaOfResponsibility') + i);
|
||||||
|
data1.push(+(Math.random() * 2).toFixed(2));
|
||||||
|
data2.push(+(Math.random() * 100).toFixed(2));
|
||||||
|
data3.push(+(Math.random() + 0.3).toFixed(2));
|
||||||
|
data4.push(+Math.random().toFixed(2));
|
||||||
|
}
|
||||||
|
option = {
|
||||||
|
legend: {
|
||||||
|
data: ['bar', 'bar2', 'bar3', 'bar4'],
|
||||||
|
left: '10%'
|
||||||
|
},
|
||||||
|
toolbox: {
|
||||||
|
// feature: {
|
||||||
|
// magicType: {
|
||||||
|
// type: ['stack']
|
||||||
|
// },
|
||||||
|
// dataView: {}
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
tooltip: {},
|
||||||
|
xAxis: {
|
||||||
|
data: xAxisData,
|
||||||
|
// name: 'X Axis',
|
||||||
|
axisLine: { onZero: true },
|
||||||
|
splitLine: { show: false },
|
||||||
|
splitArea: { show: false }
|
||||||
|
},
|
||||||
|
yAxis: {},
|
||||||
|
grid: {
|
||||||
|
bottom: 100
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: 'bar',
|
||||||
|
type: 'bar',
|
||||||
|
stack: 'one',
|
||||||
|
barWidth: 30,
|
||||||
|
barGap: '-100%',
|
||||||
|
itemStyle: {
|
||||||
|
color: "#707486",
|
||||||
|
},
|
||||||
|
data: data1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'bar2',
|
||||||
|
type: 'bar',
|
||||||
|
stack: 'one',
|
||||||
|
barWidth: 30,
|
||||||
|
barGap: '-100%',
|
||||||
|
itemStyle: {
|
||||||
|
color: "#00B3BE",
|
||||||
|
},
|
||||||
|
data: data2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'bar3',
|
||||||
|
type: 'bar',
|
||||||
|
stack: 'one',
|
||||||
|
barWidth: 30,
|
||||||
|
barGap: '-100%',
|
||||||
|
itemStyle: {
|
||||||
|
color: "#26BD4B",
|
||||||
|
},
|
||||||
|
data: data3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'bar4',
|
||||||
|
type: 'bar',
|
||||||
|
stack: 'one',
|
||||||
|
barWidth: 30,
|
||||||
|
barGap: '-100%',
|
||||||
|
itemStyle: {
|
||||||
|
color: "#E83030",
|
||||||
|
},
|
||||||
|
data: data4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
option && myChart.setOption(option);
|
||||||
|
},
|
||||||
|
mainLeftEcharts(data, color) {
|
||||||
|
this.getEcharts('main-left', this.$t('Parametercollection'), color, data, 1)
|
||||||
|
},
|
||||||
|
responsibility(item) {
|
||||||
|
this.$emit('currentStatus', item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.box-content {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
|
||||||
|
.box-content-left {
|
||||||
|
width: calc(100% - 12px);
|
||||||
|
height: 600px;
|
||||||
|
border: 2px #eff1f3 solid;
|
||||||
|
|
||||||
|
#main-left {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 24px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main-left-content {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 24px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main-bottom {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 24px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-content-right {
|
||||||
|
width: calc(50% - 12px);
|
||||||
|
height: 398px;
|
||||||
|
border: 2px #eff1f3 solid;
|
||||||
|
|
||||||
|
#main-right {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 24px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main-right-content {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 24px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -125,6 +125,9 @@
|
|||||||
<a-tab-pane :key="$t('CertificationProgress')" :tab="$t('CertificationProgress')">
|
<a-tab-pane :key="$t('CertificationProgress')" :tab="$t('CertificationProgress')">
|
||||||
<certificationProgressEchart @currentStatus="currentStatus" v-if="activeKey == $t('CertificationProgress')"/>
|
<certificationProgressEchart @currentStatus="currentStatus" v-if="activeKey == $t('CertificationProgress')"/>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
|
<a-tab-pane :key="$t('Parametercollection')" :tab="$t('Parametercollection')">
|
||||||
|
<ParameterCollectionEchart @currentStatus="currentStatus" v-if="activeKey == $t('Parametercollection')"/>
|
||||||
|
</a-tab-pane>
|
||||||
</a-tabs>
|
</a-tabs>
|
||||||
<listOfRelevantPersonnel ref="listOfRelevantPersonnelRef"/>
|
<listOfRelevantPersonnel ref="listOfRelevantPersonnelRef"/>
|
||||||
<addModel :url="url" ref="addModelRef" @addModelList="addModelList"/>
|
<addModel :url="url" ref="addModelRef" @addModelList="addModelList"/>
|
||||||
@@ -140,6 +143,7 @@
|
|||||||
import settingList from './settingList'
|
import settingList from './settingList'
|
||||||
import currentStatusOfTheProjectEcharts from './currentStatusOfTheProjectEcharts'
|
import currentStatusOfTheProjectEcharts from './currentStatusOfTheProjectEcharts'
|
||||||
import deliverableStatusEchart from './deliverableStatusEchart'
|
import deliverableStatusEchart from './deliverableStatusEchart'
|
||||||
|
import ParameterCollectionEchart from './ParameterCollectionEchart'
|
||||||
import certificationProgressEchart from './certificationProgressEchart'
|
import certificationProgressEchart from './certificationProgressEchart'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
|
|
||||||
@@ -147,6 +151,7 @@
|
|||||||
name: 'ProjectDetails',
|
name: 'ProjectDetails',
|
||||||
components: {
|
components: {
|
||||||
listOfRelevantPersonnel,
|
listOfRelevantPersonnel,
|
||||||
|
ParameterCollectionEchart,
|
||||||
addModel,
|
addModel,
|
||||||
settingList,
|
settingList,
|
||||||
currentStatusOfTheProjectEcharts,
|
currentStatusOfTheProjectEcharts,
|
||||||
|
|||||||
Reference in New Issue
Block a user