Merge branch 'dev_2nd_period_test' into 'feature_dev_20221008_TODO'
# Conflicts: # jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java # jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml
This commit is contained in:
@@ -5,8 +5,12 @@
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="6" :sm="10">
|
||||
<a-form-item :label="$t('Collectlist')">
|
||||
<a-select v-model="queryParam.ctype" @change="getonChange" :getPopupContainer="triggerNode => triggerNode.parentNode" :popper-append-to-body="false">
|
||||
<a-select-option v-for="d in options" :key="d.value" :value="d.value" >{{ d.label }}</a-select-option>
|
||||
<a-select v-model="queryParam.ctype" @change="getonChange" style='width: 183px' :getPopupContainer="triggerNode => triggerNode.parentNode" :popper-append-to-body="false">
|
||||
<a-select-option v-for="d in options" :key="d.value" :value="d.value" >
|
||||
<span style="display: inline-block;width: 80%" :title=" d.label">
|
||||
{{ d.label }}
|
||||
</span>
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -47,6 +51,12 @@
|
||||
components: {
|
||||
responsibilityList
|
||||
},
|
||||
props: {
|
||||
idList: {
|
||||
type: Array,
|
||||
default: []
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
queryParam:{
|
||||
@@ -99,7 +109,13 @@
|
||||
})
|
||||
},
|
||||
getoptions(){
|
||||
getAction('project/projectLibraryBase/getProjectDetailsStatisticsCollectManifestLabel', {id:this.$route.query.id}).then((res) => {
|
||||
let id = ''
|
||||
if (this.idList && this.idList.length > 0) {
|
||||
id = this.idList.join(',')
|
||||
} else {
|
||||
id = this.$route.query.id
|
||||
}
|
||||
getAction('project/projectLibraryBase/getProjectDetailsStatisticsCollectManifestLabel', {id:id}).then((res) => {
|
||||
if (res.success) {
|
||||
this.options = res.result
|
||||
this.queryParam.ctype = this.options[0].value
|
||||
@@ -354,6 +370,12 @@
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
.box-input {
|
||||
display: inline-block;
|
||||
width: calc(70% - 100px);
|
||||
height: 38px;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.box-content-right {
|
||||
width: calc(50% - 12px);
|
||||
|
||||
@@ -210,6 +210,16 @@
|
||||
<a-icon type="delete"/>
|
||||
{{$t('sendBack')}}
|
||||
</div>
|
||||
<!-- 导入-->
|
||||
<div class="operator-text" v-if='currentPersonRole == "dre"'>
|
||||
<ImportFileOnlyList :url="url" :isTrue="false" :accept="'.zip'" :paramsManifestId='this.$route.query.id' @getList='getList'/>
|
||||
</div>
|
||||
<!-- 填写人导出-->
|
||||
<div @click="handleExportDre" class="operator-text"
|
||||
v-if='currentPersonRole == "dre"'>
|
||||
<a-icon type="export"/>
|
||||
{{$t('export')}}
|
||||
</div>
|
||||
<!-- 强制撤回-->
|
||||
<div @click="compulsoryWithdrawaljurisdiction" class="operator-text"
|
||||
v-if='currentPersonRole == "homo" || currentPersonRole == "sdt"'>
|
||||
@@ -443,7 +453,7 @@
|
||||
|
||||
<script>
|
||||
import TableCollection from '@/components/tableCollection/index'
|
||||
import { getAction, postAction } from '../../../api/manage'
|
||||
import { getAction, postAction, downloadFile } from '../../../api/manage'
|
||||
import eventBUs from '../../../common/event'
|
||||
import ParameterLibraryAdd from '@/components/ParameterLibraryAdd/index'
|
||||
import globalAdvancedQuery from '@/components/globalAdvancedQuery/index'
|
||||
@@ -453,6 +463,7 @@
|
||||
import AdjustareaSofrespon from '@/components/AdjustareaSofrespon/index'
|
||||
import ReferenceParameter from '@/components/ReferenceParameter/index'
|
||||
import AssignedBy from '@/components/AssignedBy/index'
|
||||
import ImportFileOnlyList from '@/components/ImportFileOnlyListtag/index'
|
||||
import axios from 'axios'
|
||||
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import Vue from 'vue'
|
||||
@@ -465,6 +476,7 @@
|
||||
ParameterLibraryAdd,
|
||||
AssignedBy,
|
||||
AdjustareaSofrespon,
|
||||
ImportFileOnlyList,
|
||||
TaskCutOffTime,
|
||||
ReferenceParameter,
|
||||
SynchronousSubmissionLibrary,
|
||||
@@ -603,6 +615,7 @@
|
||||
getLoginUserType: 'params/collectManifest/getLoginUserType', // 获取当前登陆人
|
||||
getquerySdtList: 'params/collectManifest/querySdtList', // 获取工程接口人的列表
|
||||
updateSdt: 'params/collectManifest/updateSdt', // 提交工程接口人
|
||||
importZipUrl: 'params/collectManifest/importDre', // 导入
|
||||
deleteBatch: 'params/collectManifest/deleteBatch'
|
||||
},
|
||||
loading: false,
|
||||
@@ -619,6 +632,7 @@
|
||||
rowId: '',
|
||||
version: 0,
|
||||
confirmLoading: false,
|
||||
importsVisible: false,
|
||||
itemId: '',
|
||||
selectedRowKeysValue: [], // table列表所选得数据
|
||||
token: Vue.ls.get(ACCESS_TOKEN),
|
||||
@@ -902,6 +916,36 @@
|
||||
this.textLoading = false
|
||||
})
|
||||
},
|
||||
//填写人导出
|
||||
handleExportDre(){
|
||||
let long = localStorage.getItem('language')
|
||||
this.cut = ''
|
||||
if (long && long === 'zh-cn') {
|
||||
this.cut = 'cn'
|
||||
} else if (long && long === 'en-us') {
|
||||
this.cut = 'en'
|
||||
}
|
||||
console.log(this.formInline)
|
||||
let query = {
|
||||
paramsManifestId: this.paramsManifest.id,
|
||||
cut: this.cut,
|
||||
...this.formInline,
|
||||
...this.queryParamQuery,
|
||||
ids: this.selectedRowKeys.join(','),
|
||||
exportName:this.$route.query.projectName + '(' + this.$route.query.title + ')'
|
||||
}
|
||||
let name = this.$route.query.projectName + '(' + this.$route.query.title + ')' + '.zip'
|
||||
downloadFile('/params/collectManifest/exportDre', name , query , this.selectClear)
|
||||
},
|
||||
getList(){
|
||||
this.$refs.CollectionTabel.getTableList(this.queryParamQuery)
|
||||
},
|
||||
iVisible(val,num) {
|
||||
this.importsVisible = val
|
||||
if (num == 1){
|
||||
eventBUs.$emit('searchGetData')
|
||||
}
|
||||
},
|
||||
// 高级搜索
|
||||
handleSuperQuery(params, matchType) {
|
||||
let sqp = {}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
{{$t('basicInformationOfParameters')}}
|
||||
</div>
|
||||
<div class="header-tight">
|
||||
<a-button v-if="this.$route.query.studioEngineer == this.userInfo().id" class="box-button"
|
||||
<a-button v-if="this.$route.query.studioEngineer == this.userInfo().id || administrators" class="box-button"
|
||||
style="line-height: 32px" @click="edit">
|
||||
{{$t('edit')}}
|
||||
</a-button>
|
||||
@@ -23,13 +23,18 @@
|
||||
<span class="text-field-right" :title="queryForm.targetMarket_dictText"
|
||||
>{{queryForm.targetMarket_dictText}}</span>
|
||||
</div>
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('projectVersion')">{{$t('projectVersion')}}</span>
|
||||
<span class="text-field-right" :title="queryForm.projectVersion"
|
||||
>{{queryForm.projectVersion}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-text">
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('projectStatus')">{{$t('projectStatus')}}</span>
|
||||
<span class="text-field-right" :title="queryForm.projectStatus_dictText"
|
||||
>{{queryForm.projectStatus_dictText}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-text">
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('DigitalPlatform')">{{$t('DigitalPlatform')}}</span>
|
||||
<span class="text-field-right" :title="queryForm.digitalPlatform"
|
||||
@@ -43,17 +48,10 @@
|
||||
</div>
|
||||
<div class="content-text">
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('StudioEngineer')">{{$t('StudioEngineer')}}</span>
|
||||
<span class="text-field-right" :title="queryForm.studioEngineerName"
|
||||
>{{queryForm.studioEngineerName}}</span>
|
||||
<span class="text-field-left" :title="$t('softwareVersion')">{{$t('softwareVersion')}}</span>
|
||||
<span class="text-field-right" :title="queryForm.softwareVersion"
|
||||
>{{queryForm.softwareVersion}}</span>
|
||||
</div>
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('certifiedEngineer')">{{$t('certifiedEngineer')}}</span>
|
||||
<span class="text-field-right" :title="queryForm.certificationEngineerName"
|
||||
>{{queryForm.certificationEngineerName}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-text">
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('IPDInformation')">{{$t('IPDInformation')}}</span>
|
||||
<span class="text-field-right text-field-right-color"
|
||||
@@ -61,6 +59,8 @@
|
||||
@click="urlClick(queryForm.ipdInfo)"
|
||||
>{{queryForm.ipdInfo}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-text">
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('certificationProgram')">{{$t('certificationProgram')}}</span>
|
||||
<span class="text-field-right text-field-right-color"
|
||||
@@ -77,23 +77,46 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-text">
|
||||
<div class="text-field" style="width: 50%">
|
||||
<span class="text-field-left" :title="$t('ListOfRelevantPersonnel')">{{$t('ListOfRelevantPersonnel')}}</span>
|
||||
<div class="text-field-content">
|
||||
<span class="text-field-left" :title="$t('explain')">{{$t('explain')}}</span>
|
||||
<span class="text-field-right" :title="queryForm.explanation"
|
||||
>{{queryForm.explanation}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-text">
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('StudioEngineer')">{{$t('StudioEngineer')}}</span>
|
||||
<span class="text-field-right" :title="queryForm.studioEngineerName"
|
||||
>{{queryForm.studioEngineerName}}</span>
|
||||
</div>
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('certifiedEngineer')">{{$t('certifiedEngineer')}}</span>
|
||||
<span class="text-field-right" :title="queryForm.certificationEngineerName"
|
||||
>{{queryForm.certificationEngineerName}}</span>
|
||||
</div>
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" style="float: left;margin-top: 3px" :title="$t('ListOfRelevantPersonnel')">{{$t('ListOfRelevantPersonnel')}}</span>
|
||||
<span class="text-field-right"
|
||||
>
|
||||
<a-button type="primary" v-has="'projectRelatedPersonnel:page'" class="button-text"
|
||||
<a-button type="primary" v-has="'projectRelatedPersonnel:page'"
|
||||
:title="$t('ListOfRelevantPersonnel')"
|
||||
class="button-text"
|
||||
@click="ListOfRelevantPersonnelClick">
|
||||
{{$t('ListOfRelevantPersonnel')}}
|
||||
</a-button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-text">
|
||||
|
||||
</div>
|
||||
<div class="box-text">
|
||||
<div class="header-text">
|
||||
{{$t('regulatoryCertificationTaskPlan')}}
|
||||
</div>
|
||||
<div class="header-tight">
|
||||
<a-button class="box-button" v-if="this.$route.query.studioEngineer == this.userInfo().id"
|
||||
<a-button class="box-button"
|
||||
v-if="this.$route.query.studioEngineer == this.userInfo().id || administrators"
|
||||
style="line-height: 32px"
|
||||
@click="settingClick">{{$t('setting')}}
|
||||
</a-button>
|
||||
@@ -114,21 +137,21 @@
|
||||
</div>
|
||||
<div class="process-content-right-xian"></div>
|
||||
</div>
|
||||
<a-tabs style="margin-top: 20px" v-model="activeKey" class="ant-tabs">
|
||||
<a-tab-pane :key="$t('CurrentStatusOfTheProject')" :tab="$t('CurrentStatusOfTheProject')">
|
||||
<currentStatusOfTheProjectEcharts @currentStatus="currentStatus"
|
||||
v-if="activeKey == $t('CurrentStatusOfTheProject')"/>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane :key="$t('DeliverableStatus')" :tab="$t('DeliverableStatus')">
|
||||
<deliverableStatusEchart @currentStatus="currentStatus" v-if="activeKey == $t('DeliverableStatus')"/>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane :key="$t('CertificationProgress')" :tab="$t('CertificationProgress')">
|
||||
<certificationProgressEchart @currentStatus="currentStatus" v-if="activeKey == $t('CertificationProgress')"/>
|
||||
</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 style="margin-top: 20px" v-model="activeKey" class="ant-tabs">-->
|
||||
<!-- <a-tab-pane :key="$t('CurrentStatusOfTheProject')" :tab="$t('CurrentStatusOfTheProject')">-->
|
||||
<!-- <currentStatusOfTheProjectEcharts @currentStatus="currentStatus"-->
|
||||
<!-- v-if="activeKey == $t('CurrentStatusOfTheProject')"/>-->
|
||||
<!-- </a-tab-pane>-->
|
||||
<!-- <a-tab-pane :key="$t('DeliverableStatus')" :tab="$t('DeliverableStatus')">-->
|
||||
<!-- <deliverableStatusEchart @currentStatus="currentStatus" v-if="activeKey == $t('DeliverableStatus')"/>-->
|
||||
<!-- </a-tab-pane>-->
|
||||
<!-- <a-tab-pane :key="$t('CertificationProgress')" :tab="$t('CertificationProgress')">-->
|
||||
<!-- <certificationProgressEchart @currentStatus="currentStatus" v-if="activeKey == $t('CertificationProgress')"/>-->
|
||||
<!-- </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>-->
|
||||
<listOfRelevantPersonnel ref="listOfRelevantPersonnelRef"/>
|
||||
<addModel :url="url" ref="addModelRef" @addModelList="addModelList"/>
|
||||
<settingList :url="url" ref="settingListRef" @settingListForm="settingListForm"/>
|
||||
@@ -161,6 +184,7 @@
|
||||
data() {
|
||||
return {
|
||||
queryForm: {},
|
||||
administrators:false,
|
||||
activeKey: this.$t('CurrentStatusOfTheProject'),
|
||||
url: {
|
||||
queryById: 'project/projectLibraryBase/queryById',
|
||||
@@ -177,6 +201,14 @@
|
||||
mounted() {
|
||||
this.getForm()
|
||||
this.getSetting()
|
||||
this.administrators = false
|
||||
if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) {
|
||||
this.userInfo().userRoleList.forEach(res => {
|
||||
if (res.roleCode == 'admin') {
|
||||
this.administrators = true
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
@@ -189,9 +221,9 @@
|
||||
}
|
||||
})
|
||||
},
|
||||
currentStatus(item) {
|
||||
this.$emit('TaskListChange', item)
|
||||
},
|
||||
// currentStatus(item) {
|
||||
// this.$emit('TaskListChange', item)
|
||||
// },
|
||||
getSetting() {
|
||||
getAction(this.url.queryByProjectId, { projectId: this.$route.query.id }).then((res) => {
|
||||
if (res.success) {
|
||||
@@ -273,6 +305,35 @@
|
||||
font-weight: 400;
|
||||
}
|
||||
}
|
||||
|
||||
.text-field-content {
|
||||
width: 100%;
|
||||
margin-bottom: 8px;
|
||||
|
||||
.text-field-left {
|
||||
width: 124px;
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #6F7385;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
float: left;
|
||||
margin-right: 24px;
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
.text-field-right {
|
||||
width: calc(100% - 200px);
|
||||
display: inline-block;
|
||||
font-size: 16px;
|
||||
float: left;
|
||||
word-break: break-word;
|
||||
color: #040B29;
|
||||
font-weight: 400;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.process-content {
|
||||
@@ -354,4 +415,8 @@
|
||||
height: 80px;
|
||||
line-height: 80px;
|
||||
}
|
||||
|
||||
.button-text {
|
||||
padding: 0 13px;
|
||||
}
|
||||
</style>
|
||||
@@ -76,10 +76,10 @@
|
||||
</a-form>
|
||||
</div>
|
||||
<div class="table-operator">
|
||||
<!-- <div class="operator-text" @click="batSettingClick">-->
|
||||
<!-- <a-icon type="setting"/>-->
|
||||
<!-- {{ $t('batSetting') }}-->
|
||||
<!-- </div>-->
|
||||
<div class="operator-text" @click="cuibanClick">
|
||||
<a-icon type="sound"/>
|
||||
{{ $t('CuiBan') }}
|
||||
</div>
|
||||
<div @click="BatchMaintenanceProgress" class="operator-text">
|
||||
<a-icon type="setting"/>
|
||||
{{$t('BatchMaintenanceProgress')}}
|
||||
@@ -189,7 +189,9 @@
|
||||
<TaskListModel @TaskListModelList="TaskListModelList" ref="TaskListModelRef"/>
|
||||
<taskBatSetting @taskBatSettingForm="taskBatSettingForm" ref="taskBatSettingRef"></taskBatSetting>
|
||||
<batchChangeModel @batchChangeModel="batchChangeModel" ref="batchChangeModelRef"/>
|
||||
<cuibanModel @cibanModel="cibanModel" ref="cModelRef"/>
|
||||
<batchModel @batchModel="batchModel" ref="batchModelRef"/>
|
||||
<cuibanModel @cibanModel="cibanModel" ref="cModelRef"/>
|
||||
<!-- 错误数据提示-->
|
||||
<a-modal
|
||||
:title="$t('operationFailed')"
|
||||
@@ -221,7 +223,9 @@
|
||||
import batchChangeModel from './batchChangeModel'
|
||||
import batchModel from './batchModel'
|
||||
import TaskListModel from './TaskListModel'
|
||||
import cuibanModel from './cuibanModel'
|
||||
import taskBatSetting from './taskBatSetting'
|
||||
import cuibanModel from './cuibanModel'
|
||||
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
|
||||
import { mapGetters } from 'vuex'
|
||||
import store from '@/store/'
|
||||
@@ -233,6 +237,7 @@
|
||||
TaskListModel,
|
||||
batchChangeModel,
|
||||
batchModel,
|
||||
cuibanModel,
|
||||
taskBatSetting
|
||||
},
|
||||
props: ['isDisplayNum', 'areaOfResponsibility'],
|
||||
@@ -536,6 +541,17 @@
|
||||
let item = JSON.parse(JSON.stringify(val))
|
||||
this.$refs.TaskListModelRef.getData(item, this.$t('CurrentStatus'))
|
||||
},
|
||||
// 催办
|
||||
cuibanClick(){
|
||||
if(this.selectionRowsArray.length <1){
|
||||
this.$message.warning(this.$t('selectLeastOne'))
|
||||
}else{
|
||||
this.$refs.cModelRef.getData(this.selectionRowsArray)
|
||||
}
|
||||
},
|
||||
cibanModel(){
|
||||
this.getList()
|
||||
},
|
||||
//批量维护进度
|
||||
|
||||
BatchMaintenanceProgress() {
|
||||
@@ -604,6 +620,17 @@
|
||||
}
|
||||
|
||||
},
|
||||
// 催办
|
||||
cuibanClick(){
|
||||
if(this.selectionRowsArray.length <1){
|
||||
this.$message.warning(this.$t('selectLeastOne'))
|
||||
}else{
|
||||
this.$refs.cModelRef.getData(this.selectionRowsArray)
|
||||
}
|
||||
},
|
||||
cibanModel(){
|
||||
this.getList()
|
||||
},
|
||||
cancleoperationFailed(){
|
||||
this.visibleoperationFailed = false
|
||||
},
|
||||
|
||||
@@ -84,11 +84,21 @@
|
||||
/>
|
||||
</div>
|
||||
<!-- 参数模板-->
|
||||
<a-modal v-model="areaVisible" :maskClosable="false" :title="$t('parameterTemplate')" width='750px' :footer="null">
|
||||
<a-drawer
|
||||
:visible="areaVisible"
|
||||
:maskClosable="false"
|
||||
@close="handleCancel"
|
||||
:title="areaTitle"
|
||||
width='850px'
|
||||
style="height: 100%;overflow: auto;padding-bottom: 53px;"
|
||||
placement="right"
|
||||
:footer="null">
|
||||
<parameter-template-add :url='url' ref='templateRef' v-if='areaVisible' @areaVisible='handleCancel'
|
||||
:version='version'
|
||||
:projectId='this.$route.query.id'></parameter-template-add>
|
||||
</a-modal>
|
||||
:projectId='this.$route.query.parentId ? this.$route.query.parentId : this.$route.query.id'>
|
||||
|
||||
</parameter-template-add>
|
||||
</a-drawer>
|
||||
<!-- 配置-->
|
||||
<configure ref="configureRef" :url='url' :itemId='itemId' :itemRow='itemRow'/>
|
||||
<!-- 历史版本-->
|
||||
@@ -96,12 +106,23 @@
|
||||
<historical-version v-if='historicalVisible' :historicalRow='historicalRow'></historical-version>
|
||||
</a-modal>
|
||||
<!-- 复制参数模板-->
|
||||
<a-modal class="show-drawer" :title="$t('Copyparameterlist')" width="700px" v-model="drawerVisible" :footer="null">
|
||||
<a-drawer
|
||||
class="show-drawer"
|
||||
:maskClosable="false"
|
||||
:visible="drawerVisible"
|
||||
style="height: 100%;overflow: auto;padding-bottom: 53px;"
|
||||
placement="right"
|
||||
@close="drawerhandleCancel"
|
||||
:title="$t('Copyparameterlist')"
|
||||
width="850px"
|
||||
:footer="null">
|
||||
<project-collection-parameters v-if='drawerVisible' @areaVisible='drawerhandleCancel'
|
||||
:templateTitle='templatetitle' @copysubmit='copysubmit'
|
||||
:selectedRowKeyS='selectedRowKeys' :rowId='rowId' :version='version' :url='url'
|
||||
:projectId='this.$route.query.id'></project-collection-parameters>
|
||||
</a-modal>
|
||||
:projectId='this.$route.query.parentId ? this.$route.query.parentId : this.$route.query.id'>
|
||||
|
||||
</project-collection-parameters>
|
||||
</a-drawer>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
@@ -151,6 +172,13 @@
|
||||
ellipsis: true,
|
||||
dataIndex: 'paramsTemplateName'
|
||||
},
|
||||
{
|
||||
title: this.$t('relatedProjectVersion'),
|
||||
align: 'center',
|
||||
width: 120,
|
||||
ellipsis: true,
|
||||
dataIndex: 'projectVersion'
|
||||
},
|
||||
{
|
||||
title: this.$t('collectionCompletionTime'),
|
||||
align: 'center',
|
||||
@@ -214,6 +242,7 @@
|
||||
selectedRowKeysArray: '',
|
||||
templatetitle: '',
|
||||
templatetitleId: '',
|
||||
areaTitle:'',
|
||||
rowId: '',
|
||||
version: 0,
|
||||
itemId: '', // 配置id
|
||||
@@ -237,8 +266,8 @@
|
||||
//处理接收到的消息
|
||||
handler: function(res) {
|
||||
let that = this
|
||||
if (res.data == '1'){
|
||||
this.getlist()
|
||||
if (res.data == '1') {
|
||||
this.getlist()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -255,8 +284,8 @@
|
||||
// localStorage.setItem('paramsManifest', JSON.stringify(item))
|
||||
let newUrl = _this.$router.resolve({
|
||||
path: '/ParameterItemCollection',
|
||||
query: item
|
||||
// projectName:this.$route.query.projectName
|
||||
query: item
|
||||
// projectName:this.$route.query.projectName
|
||||
})
|
||||
window.open(newUrl.href, '_blank')
|
||||
} else {
|
||||
@@ -299,12 +328,12 @@
|
||||
this.$refs.configureRef.addModel(item.id, item)
|
||||
},
|
||||
handleCancel(val) {
|
||||
this.areaVisible = val
|
||||
this.areaVisible = false
|
||||
this.getlist()
|
||||
},
|
||||
// 项目收集参数
|
||||
drawerhandleCancel(val) {
|
||||
this.drawerVisible = val
|
||||
this.drawerVisible = false
|
||||
},
|
||||
copysubmit() {
|
||||
this.drawerVisible = false
|
||||
@@ -326,11 +355,13 @@
|
||||
},
|
||||
edit(edit) {
|
||||
this.areaVisible = true
|
||||
this.areaTitle = this.$t('editDetailList')
|
||||
setTimeout(() => {
|
||||
this.$refs.templateRef.editData(edit)
|
||||
}, 50)
|
||||
},
|
||||
handleAdd() {
|
||||
this.areaTitle = this.$t('addDetailList')
|
||||
this.areaVisible = true
|
||||
},
|
||||
// 变更扩展
|
||||
@@ -402,7 +433,7 @@
|
||||
},
|
||||
getlist() {
|
||||
let query = {
|
||||
projectId: this.$route.query.id,
|
||||
projectId: this.$route.query.parentId ? this.$route.query.parentId : this.$route.query.id,
|
||||
pageSize: this.pageSize,
|
||||
pageNo: this.pageNo,
|
||||
...this.queryParam
|
||||
@@ -561,13 +592,14 @@
|
||||
text-justify: inter-ideograph;
|
||||
word-break: break-all
|
||||
}
|
||||
|
||||
::v-deep .ant-table-row:first-child {
|
||||
background: #fff!important;
|
||||
background: #fff !important;
|
||||
opacity: 0.95;
|
||||
}
|
||||
|
||||
::v-deep .ant-table-body {
|
||||
background: transparent!important;
|
||||
background: transparent !important;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
|
||||
@@ -69,6 +69,22 @@
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text" :title="$t('projectVersion')">{{$t('projectVersion')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="projectVersion">
|
||||
<a-input class="box-input"
|
||||
:disabled="true"
|
||||
v-model="formInline.projectVersion"
|
||||
:placeholder="$t('PleaseEnter')+$t('projectVersion')"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
@@ -85,41 +101,41 @@
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text" :title="$t('StudioEngineer')">{{$t('StudioEngineer')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" :prop="'studioEngineerName'">
|
||||
<a-form-model-item class="itemModel-multi" :prop="'studioEngineerName'">
|
||||
<PersonnelSelection :query="{db_field_name:'studioEngineer',db_field_txt:$t('StudioEngineer')}"
|
||||
:isSingleChoice="true"
|
||||
:personneQuery="formInline"
|
||||
v-if="visible"
|
||||
@change="PersonnelSelectionChange"
|
||||
:disabled="disabled"
|
||||
v-model="formInline.studioEngineerName"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text" :title="$t('certifiedEngineer')">{{$t('certifiedEngineer')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" :prop="'certificationEngineerName'">
|
||||
<a-form-model-item class="itemModel-multi" :prop="'certificationEngineerName'">
|
||||
<PersonnelSelection
|
||||
:query="{db_field_name:'certificationEngineer',db_field_txt:$t('certifiedEngineer')}"
|
||||
:personneQuery="formInline"
|
||||
v-if="visible"
|
||||
@change="PersonnelSelectionChange"
|
||||
:disabled="disabled"
|
||||
v-model="formInline.certificationEngineerName"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
@@ -133,6 +149,8 @@
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
@@ -146,8 +164,6 @@
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
@@ -163,6 +179,8 @@
|
||||
<!-- ^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$
|
||||
-->
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
@@ -177,8 +195,6 @@
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
@@ -193,6 +209,36 @@
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text"
|
||||
:title="$t('softwareVersion')">{{$t('softwareVersion')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" :prop="'softwareVersion'">
|
||||
<a-input class="box-input"
|
||||
:disabled="disabled"
|
||||
v-model="formInline.softwareVersion"
|
||||
:placeholder="$t('PleaseEnter')+$t('softwareVersion')"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text" :title="$t('explain')">{{$t('explain')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="explanation">
|
||||
<a-textarea :placeholder="$t('pleaseEnter')+$t('explain')"
|
||||
v-model="formInline.explanation"
|
||||
:rows="4"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form-model>
|
||||
</a-spin>
|
||||
<div class="drawer-bootom-button">
|
||||
@@ -242,6 +288,13 @@
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
explanation: [
|
||||
{
|
||||
max: 500,
|
||||
message: this.$t('explain') + this.$t('cannotExceed') + 500 + this.$t('Characters'),
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
attestationPlan: [
|
||||
{
|
||||
pattern: /(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%$#_]*)?/,
|
||||
@@ -267,6 +320,13 @@
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
softwareVersion:[
|
||||
{
|
||||
max: 300,
|
||||
message: this.$t('softwareVersion') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
projectNameId: [
|
||||
{
|
||||
required: true,
|
||||
@@ -349,6 +409,7 @@
|
||||
this.getNameList()
|
||||
this.formInline.studioEngineerName = this.userInfo().username
|
||||
this.formInline.studioEngineer = this.userInfo().id
|
||||
this.formInline.projectVersion = '00'
|
||||
this.formInline = { ...this.formInline }
|
||||
this.$nextTick(() => {
|
||||
this.$refs.ruleForm.clearValidate()
|
||||
|
||||
@@ -33,6 +33,12 @@
|
||||
components: {
|
||||
responsibilityList
|
||||
},
|
||||
props: {
|
||||
idList: {
|
||||
type: Array,
|
||||
default: []
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
@@ -79,7 +85,13 @@
|
||||
this.$emit('currentStatus', item)
|
||||
},
|
||||
getData() {
|
||||
getAction(this.url.getProjectDetailsStatistics, { id: this.$route.query.id }).then((res) => {
|
||||
let id = ''
|
||||
if (this.idList && this.idList.length > 0) {
|
||||
id = this.idList.join(',')
|
||||
} else {
|
||||
id = this.$route.query.id
|
||||
}
|
||||
getAction(this.url.getProjectDetailsStatistics, { id: id }).then((res) => {
|
||||
if (res.success) {
|
||||
if (res.result) {
|
||||
let certificationProgressMap = res.result.certificationProgressMap ? res.result.certificationProgressMap.certificationProgressMapList : []
|
||||
|
||||
@@ -0,0 +1,189 @@
|
||||
<!--催办-->
|
||||
<template>
|
||||
<a-modal
|
||||
:title="title"
|
||||
:width="700"
|
||||
:visible="visible"
|
||||
:confirm-loading="confirmLoading"
|
||||
:maskClosable="false"
|
||||
@ok="handleOk"
|
||||
@cancel="visible = false"
|
||||
>
|
||||
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text"
|
||||
:title="$t('taskType')">{{$t('taskType')}}</span>
|
||||
</div>
|
||||
<!-- mode="multiple"-->
|
||||
<a-form-model-item class="itemModel" prop="type">
|
||||
<a-select v-model="formInline.type"
|
||||
class='box-input'
|
||||
:placeholder="$t('PleaseSelect') + $t('taskType')"
|
||||
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||
allowClear>
|
||||
<a-select-option v-for="(item, key) in cuibanList" :key="key" :value="item.value">
|
||||
<span style="display: inline-block;width: 100%" :title=" item.label ">
|
||||
{{ item.label }}
|
||||
</span>
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
|
||||
</a-row>
|
||||
</a-form-model>
|
||||
</a-modal>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { postAction, putAction, getAction } from '@/api/manage'
|
||||
|
||||
export default {
|
||||
name: 'TaskListModel',
|
||||
data() {
|
||||
return {
|
||||
formInline: {},
|
||||
selectionRowsArray:[],
|
||||
rules: {
|
||||
type: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t('PleaseSelect') + this.$t('taskType'),
|
||||
trigger: 'change'
|
||||
}
|
||||
]
|
||||
},
|
||||
title:'',
|
||||
visible: false,
|
||||
confirmLoading: false,
|
||||
studioList: [],
|
||||
cuibanList:[
|
||||
{ label: this.$t('confirmationOfDesignConformity'), value: '2' },
|
||||
{ label: this.$t('PrehomoConfirmation'), value: '3' },
|
||||
{ label: this.$t('verificationAndConformityconfirmation'), value: '4' },
|
||||
],
|
||||
ids:'',
|
||||
disabled: false,
|
||||
url: {
|
||||
edit: '/project/projectTaskInventoryEO/edit',
|
||||
addOrUpdate: '/project/projectTaskInventoryConditionAssessmentEO/addOrUpdate',
|
||||
list: '/project/projectTaskInventoryConditionAssessmentEO/list'
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
getData(val) {
|
||||
this.visible = true
|
||||
this.title = this.$t('CuiBan')
|
||||
this.selectionRowsArray = val
|
||||
this.$nextTick(() => {
|
||||
this.formInline = {}
|
||||
this.$refs.ruleForm.clearValidate()
|
||||
})
|
||||
},
|
||||
getList(val) {
|
||||
getAction(this.url.list, { projectLawsInventoryId: val.projectLawsInventoryId }).then((res) => {
|
||||
if (res.success) {
|
||||
this.studioList = res.result || []
|
||||
} else {
|
||||
this.studioList = []
|
||||
}
|
||||
})
|
||||
},
|
||||
handleInput(value) {
|
||||
this.$nextTick(() => {
|
||||
this.formInline = { ...this.formInline }
|
||||
this.$refs.ruleForm.validateField([value])
|
||||
})
|
||||
},
|
||||
handleOk() {
|
||||
if (this.disabled) {
|
||||
this.visible = false
|
||||
return
|
||||
}
|
||||
this.$refs.ruleForm.validate(valid => {
|
||||
if (valid) {
|
||||
let ProjectTaskUrgVo = {}
|
||||
let projectLawsInventoryId = []
|
||||
this.selectionRowsArray.forEach((item) => {
|
||||
if(item.projectLawsInventoryId){
|
||||
projectLawsInventoryId.push(item.projectLawsInventoryId)
|
||||
}
|
||||
})
|
||||
ProjectTaskUrgVo = {
|
||||
projectLawsInventoryIds: projectLawsInventoryId.join(','),
|
||||
type: this.formInline.type,
|
||||
}
|
||||
this.confirmLoading = true
|
||||
postAction('/project/projectLawsInventoryEO/taskUrg', ProjectTaskUrgVo).then((res) => {
|
||||
if (res.success) {
|
||||
this.visible = false
|
||||
this.confirmLoading = false
|
||||
this.$message.success(this.$t('OperationSuccessful'))
|
||||
this.$emit('cibanModel')
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
this.confirmLoading = false
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.box-title-text {
|
||||
line-height: 1.4;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.Required {
|
||||
color: red;
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.title-text {
|
||||
width: 134px;
|
||||
text-align: right;
|
||||
display: inline-block;
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
margin-right: 16px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
height: 42px;
|
||||
line-height: 42px;
|
||||
}
|
||||
|
||||
.box-input {
|
||||
display: inline-block;
|
||||
height: 38px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.itemModel {
|
||||
width: calc(100% - 130px);
|
||||
display: inline-block;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.title-text-text {
|
||||
margin-top: 9px;
|
||||
}
|
||||
|
||||
.headerText {
|
||||
margin-left: 30px;
|
||||
color: #040B29;
|
||||
font-weight: 400;
|
||||
}
|
||||
</style>
|
||||
+13
-1
@@ -40,6 +40,12 @@
|
||||
components: {
|
||||
responsibilityList
|
||||
},
|
||||
props: {
|
||||
idList: {
|
||||
type: Array,
|
||||
default: []
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
@@ -77,7 +83,13 @@
|
||||
},
|
||||
methods: {
|
||||
getData() {
|
||||
getAction(this.url.getProjectDetailsStatistics, { id: this.$route.query.id }).then((res) => {
|
||||
let id = ''
|
||||
if (this.idList && this.idList.length > 0) {
|
||||
id = this.idList.join(',')
|
||||
} else {
|
||||
id = this.$route.query.id
|
||||
}
|
||||
getAction(this.url.getProjectDetailsStatistics, { id: id }).then((res) => {
|
||||
if (res.success) {
|
||||
if (res.result) {
|
||||
let dataSource = res.result.currentProjectStatusMap ? res.result.currentProjectStatusMap.currentProjectStatusMapList : []
|
||||
|
||||
@@ -36,6 +36,12 @@
|
||||
components: {
|
||||
responsibilityList
|
||||
},
|
||||
props: {
|
||||
idList: {
|
||||
type: Array,
|
||||
default: []
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
url: {
|
||||
@@ -52,10 +58,15 @@
|
||||
},
|
||||
methods: {
|
||||
getData() {
|
||||
getAction(this.url.getProjectDetailsStatistics, { id: this.$route.query.id }).then((res) => {
|
||||
let id = ''
|
||||
if (this.idList && this.idList.length > 0) {
|
||||
id = this.idList.join(',')
|
||||
} else {
|
||||
id = this.$route.query.id
|
||||
}
|
||||
getAction(this.url.getProjectDetailsStatistics, { id: 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 : []
|
||||
@@ -67,7 +78,6 @@
|
||||
this.dataEchartsOne(prehomoMap, 2)
|
||||
this.dataEchartsOne(verifyComplianceMap, 3)
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -173,7 +173,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="!isDisplay" style="float: right;margin-top: 1px;margin-bottom: 0px">
|
||||
<div @click="handleExport" v-has="'projectLawsInventory:exportData'" v-if="isRoleSwitching"
|
||||
<div @click="handleExport" v-has="'projectLawsInventory:exportData'"
|
||||
v-if="isRoleSwitching || formInlineRoleSwitching.roleSwitchingCode == '12'"
|
||||
class="operator-text">
|
||||
<a-icon type="export" :rotate="-90"/>
|
||||
{{ $t('export') }}
|
||||
@@ -848,6 +849,7 @@
|
||||
AndUserIdEdit: '/project/projectLibraryRoleRelEO/edit'
|
||||
},
|
||||
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
|
||||
downLoadImgUrl: window._CONFIG['domianWebImgURL'] + '/sys/common/download',
|
||||
loading: false,
|
||||
dataSource: [],
|
||||
isResultReported: false,
|
||||
@@ -1455,15 +1457,18 @@
|
||||
this.selectedRowKeys = value
|
||||
},
|
||||
searchQuery() {
|
||||
this.selectedRowKeys = []
|
||||
this.getList()
|
||||
},
|
||||
searchReset() {
|
||||
this.queryParam = {}
|
||||
this.selectedRowKeys = []
|
||||
this.$refs.globalAdvancedQueryRef.resetLine()
|
||||
this.$refs.globalAdvancedQueryRef.emitCallback()
|
||||
// this.getList()
|
||||
},
|
||||
addModelList() {
|
||||
this.selectedRowKeys = []
|
||||
this.getList()
|
||||
},
|
||||
handleSuperQuery(params, matchType) {
|
||||
@@ -2126,10 +2131,12 @@
|
||||
} else if (fileSuffix == '.docx' || fileSuffix == '.doc') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
} else if (fileSuffix == '.xlsx' || fileSuffix == '.xls'
|
||||
|| fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg') {
|
||||
} else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
} else if (fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadImgUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
} else {
|
||||
downloadFile('/sys/common/downLoadFile', fileQuery.fileName, { id: fileQuery.id })
|
||||
}
|
||||
@@ -2145,10 +2152,12 @@
|
||||
} else if (fileSuffix == '.docx' || fileSuffix == '.doc') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
} else if (fileSuffix == '.xlsx' || fileSuffix == '.xls'
|
||||
|| fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg') {
|
||||
} else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
} else if (fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadImgUrl + '/' + id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
} else {
|
||||
downloadFile('/sys/common/downLoadFile', name, { id: id, userName: this.userInfo().username })
|
||||
}
|
||||
@@ -2479,17 +2488,17 @@
|
||||
}
|
||||
|
||||
::v-deep .ant-table-body-one {
|
||||
padding-bottom: 0!important;
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
|
||||
::v-deep .antfixedLeft {
|
||||
padding-bottom: 0!important;
|
||||
overflow: scroll!important;
|
||||
padding-bottom: 0 !important;
|
||||
overflow: scroll !important;
|
||||
}
|
||||
|
||||
::v-deep .antfixedRight {
|
||||
padding-bottom: 0!important;
|
||||
overflow: scroll!important;
|
||||
padding-bottom: 0 !important;
|
||||
overflow: scroll !important;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
|
||||
@@ -83,14 +83,14 @@
|
||||
</div>
|
||||
<div class="operator-text"
|
||||
v-has="'projectRelatedPersonnel:importExcel'"
|
||||
v-if="this.$route.query.studioEngineer == this.userInfo().id">
|
||||
v-if="this.$route.query.studioEngineer == this.userInfo().id || administrators">
|
||||
<ImportFile :url="url" :projectId="$route.query.id" :isTrue="true" :accept="'.xls'"
|
||||
@getList="getPersonnelList"/>
|
||||
</div>
|
||||
<div class="operator-text"
|
||||
@click="batSettingClick"
|
||||
v-has="'projectRelatedPersonnel:setting'"
|
||||
v-if="this.$route.query.studioEngineer == this.userInfo().id">
|
||||
v-if="this.$route.query.studioEngineer == this.userInfo().id || administrators">
|
||||
<a-icon type="setting"/>
|
||||
{{$t('batSetting')}}
|
||||
</div>
|
||||
@@ -176,8 +176,9 @@
|
||||
<span class="title-text-text" :title="$t('regulatoryEngineer')">{{$t('regulatoryEngineer')}}</span>
|
||||
</div>
|
||||
<!-- :prop="'lawEngineerName'"-->
|
||||
<a-form-model-item class="itemModel">
|
||||
<a-form-model-item class="itemModel-multi">
|
||||
<PersonnelSelection
|
||||
v-if="editVisible"
|
||||
:query="{db_field_name:'lawEngineer',db_field_txt:$t('regulatoryEngineer')}"
|
||||
:personneQuery="formInline"
|
||||
:isDelete='true'
|
||||
@@ -196,8 +197,9 @@
|
||||
<span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
|
||||
</div>
|
||||
<!-- :prop="'engineeringInterfacePersonName'"-->
|
||||
<a-form-model-item class="itemModel">
|
||||
<a-form-model-item class="itemModel-multi">
|
||||
<PersonnelSelection
|
||||
v-if="editVisible"
|
||||
:query="{db_field_name:'engineeringInterfacePerson',db_field_txt:$t('engineeringInterfacePerson')}"
|
||||
:personneQuery="formInline"
|
||||
:isDelete='true'
|
||||
@@ -386,13 +388,15 @@
|
||||
queryCertificationEngineer: '/project/projectRelatedPersonnel/queryCertificationEngineer'
|
||||
},
|
||||
selectedRowKeys: [],
|
||||
dictOptionsValue: []
|
||||
dictOptionsValue: [],
|
||||
administrators: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
columns() {
|
||||
let columnResult = JSON.parse(JSON.stringify(this.columnsAll))
|
||||
if (this.$route.query.studioEngineer != this.userInfo().id) {
|
||||
if (this.$route.query.studioEngineer == this.userInfo().id || this.administrators) {
|
||||
} else {
|
||||
for (var i = 0; i < columnResult.length; i++) {
|
||||
if (columnResult[i].title === this.$t('operation')) {
|
||||
columnResult.splice(i, 1)
|
||||
@@ -439,6 +443,14 @@
|
||||
getData() {
|
||||
this.visible = true
|
||||
this.queryParam = {}
|
||||
this.administrators = false
|
||||
if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) {
|
||||
this.userInfo().userRoleList.forEach(res => {
|
||||
if (res.roleCode == 'admin') {
|
||||
this.administrators = true
|
||||
}
|
||||
})
|
||||
}
|
||||
this.getList()
|
||||
this.queryCertificationEngineer()
|
||||
},
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
<PersonnelSelection
|
||||
:query="{db_field_name:'lawEngineer',db_field_txt:$t('regulatoryEngineer')}"
|
||||
:personneQuery="formInline"
|
||||
v-if="visible"
|
||||
@change="PersonnelSelectionChange"
|
||||
v-model="formInline.lawEngineerName"/>
|
||||
</a-form-model-item>
|
||||
@@ -36,6 +37,7 @@
|
||||
<PersonnelSelection
|
||||
:query="{db_field_name:'engineeringInterfacePerson',db_field_txt:$t('engineeringInterfacePerson')}"
|
||||
:personneQuery="formInline"
|
||||
v-if="visible"
|
||||
@change="PersonnelSelectionChange"
|
||||
v-model="formInline.engineeringInterfacePersonName"/>
|
||||
</a-form-model-item>
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
<template>
|
||||
<a-card :bordered="false">
|
||||
<div class="table-operator" style="margin-bottom: 10px">
|
||||
<div @click="versionStatisticsClick"
|
||||
v-if="!this.$route.query.parentId && $t('Parametercollection')!= activeKey"
|
||||
class="operator-text">
|
||||
<a-icon type="plus"/>
|
||||
{{$t('versionStatistics')}}
|
||||
</div>
|
||||
<div v-else
|
||||
class="operator-text">
|
||||
</div>
|
||||
</div>
|
||||
<a-tabs v-model="activeKey" class="ant-tabs">
|
||||
<a-tab-pane :key="$t('CurrentStatusOfTheProject')" :tab="$t('CurrentStatusOfTheProject')">
|
||||
<currentStatusOfTheProjectEcharts @currentStatus="currentStatus"
|
||||
:idList="idList"
|
||||
v-if="activeKey == $t('CurrentStatusOfTheProject')"/>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane :key="$t('DeliverableStatus')" :tab="$t('DeliverableStatus')">
|
||||
<deliverableStatusEchart @currentStatus="currentStatus" :idList="idList"
|
||||
v-if="activeKey == $t('DeliverableStatus')"/>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane :key="$t('CertificationProgress')" :tab="$t('CertificationProgress')">
|
||||
<certificationProgressEchart @currentStatus="currentStatus" :idList="idList"
|
||||
v-if="activeKey == $t('CertificationProgress')"/>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane :key="$t('Parametercollection')" :tab="$t('Parametercollection')">
|
||||
<ParameterCollectionEchart @currentStatus="currentStatus" :idList="[]"
|
||||
v-if="activeKey == $t('Parametercollection')"/>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
<versionStatistics ref="versionStatisticsRef" @versionStatisticsForm="versionStatisticsForm"/>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import currentStatusOfTheProjectEcharts from './currentStatusOfTheProjectEcharts'
|
||||
import deliverableStatusEchart from './deliverableStatusEchart'
|
||||
import ParameterCollectionEchart from './ParameterCollectionEchart'
|
||||
import certificationProgressEchart from './certificationProgressEchart'
|
||||
import versionStatistics from './versionStatistics'
|
||||
import { getAction, postAction } from '@/api/manage'
|
||||
|
||||
export default {
|
||||
name: 'projectStatus',
|
||||
components: {
|
||||
ParameterCollectionEchart,
|
||||
currentStatusOfTheProjectEcharts,
|
||||
deliverableStatusEchart,
|
||||
certificationProgressEchart,
|
||||
versionStatistics
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
activeKey: this.$t('CurrentStatusOfTheProject'),
|
||||
selectedRowKeys: [],
|
||||
idList: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
currentStatus(item) {
|
||||
this.$emit('TaskListChange', item)
|
||||
},
|
||||
versionStatisticsClick() {
|
||||
this.$refs.versionStatisticsRef.addModel(JSON.parse(JSON.stringify(this.selectedRowKeys)))
|
||||
},
|
||||
versionStatisticsForm(value) {
|
||||
this.idList = []
|
||||
let activeKey = JSON.parse(JSON.stringify(this.activeKey))
|
||||
this.activeKey = ''
|
||||
if (value && value.length > 0) {
|
||||
value.forEach(res => {
|
||||
this.idList.push(JSON.parse(res).id)
|
||||
})
|
||||
}
|
||||
this.selectedRowKeys = JSON.parse(JSON.stringify(value))
|
||||
this.$nextTick(() => {
|
||||
this.activeKey = activeKey
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
@import '~@assets/less/common.less';
|
||||
</style>
|
||||
@@ -49,6 +49,7 @@
|
||||
myuploadAction: window._CONFIG['domianURL'] + this.thisFileUploadUrl,
|
||||
upDataList: [],
|
||||
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
|
||||
downLoadImgUrl: window._CONFIG['domianWebImgURL'] + '/sys/common/download',
|
||||
fileList: [],
|
||||
myfileList: [],
|
||||
isLoding: false,
|
||||
@@ -214,10 +215,12 @@
|
||||
} else if (fileSuffix === '.docx' || fileSuffix === '.doc') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
} else if (fileSuffix === '.xlsx' || fileSuffix === '.xls'
|
||||
|| fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg') {
|
||||
} else if (fileSuffix === '.xlsx' || fileSuffix === '.xls') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
}else if(fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg'){
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadImgUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
} else {
|
||||
downloadFile('/sys/common/downLoadFile', fileQuery.fileName, { id: fileQuery.id,userName:this.userInfo().username })
|
||||
}
|
||||
|
||||
@@ -0,0 +1,212 @@
|
||||
<template>
|
||||
<a-drawer
|
||||
:title="$t('versionStatistics')"
|
||||
:maskClosable="false"
|
||||
:width="1000"
|
||||
placement="right"
|
||||
:closable="true"
|
||||
@close="handleCancel"
|
||||
:visible="visible"
|
||||
style="height: 100%;overflow: auto;padding-bottom: 53px;">
|
||||
<div style="margin-bottom: 60px">
|
||||
<!-- <div class="table-page-search-wrapper">-->
|
||||
<!-- <a-form layout="inline" @keyup.enter.native="searchQuery">-->
|
||||
<!-- <a-row :gutter="24">-->
|
||||
<!-- <a-col :md="12" :sm="8">-->
|
||||
<!-- <div class="box-title-text">-->
|
||||
<!-- <div class="title-text" :title="$t('standard')">-->
|
||||
<!-- <span>{{$t('standard')}}</span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('standard')"-->
|
||||
<!-- v-model="queryParam.serial_number"></a-input>-->
|
||||
<!-- </div>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- <span style="float: right;overflow: hidden;" class="table-page-search-submitButtons">-->
|
||||
<!-- <a-col :md="12" :sm="24">-->
|
||||
<!-- <a-button class="box-button" type="primary" @click="searchQuery">{{$t('query')}}</a-button>-->
|
||||
<!-- <a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- </span>-->
|
||||
<!-- </a-row>-->
|
||||
<!-- </a-form>-->
|
||||
<!-- </div>-->
|
||||
<a-table
|
||||
:columns="columns"
|
||||
:rowKey="(record)=>JSON.stringify(record)"
|
||||
:scroll="{x: '100%',y:500}"
|
||||
:data-source="dataList"
|
||||
:pagination="false"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
:loading="loading">
|
||||
|
||||
</a-table>
|
||||
<div class="page" v-if="dataList.length > 0">
|
||||
<a-pagination
|
||||
:show-total="total => $t('total')+` ${total} `+$t('strip')"
|
||||
show-quick-jumper
|
||||
show-size-changer
|
||||
:page-size.sync="pageSize"
|
||||
:total="total"
|
||||
:current="pageNo"
|
||||
@change="onChange"
|
||||
@showSizeChange="SizeChange"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="drawer-bootom-button">
|
||||
<a-button @click="handleCancel" style="margin-right: 16px">{{$t('cancel')}}</a-button>
|
||||
<a-button @click="handleSubmit" type="primary" :loading="confirmLoading">{{$t('submit')}}</a-button>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getAction, postAction } from '@/api/manage'
|
||||
|
||||
export default {
|
||||
name: 'versionStatistics',
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
queryParam: {},
|
||||
confirmLoading: false,
|
||||
selectedRowKeys: [],
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('VersionNumber'),
|
||||
dataIndex: 'projectVersion',
|
||||
align: 'center',
|
||||
ellipsis: true,
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
title: this.$t('describe'),
|
||||
dataIndex: 'explanation',
|
||||
align: 'center',
|
||||
ellipsis: true,
|
||||
width: 500
|
||||
}
|
||||
],
|
||||
dataList: [],
|
||||
loading: false,
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
total: 0,
|
||||
url: {
|
||||
list: '/project/projectLibraryBase/versionStatistics'
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
addModel(value) {
|
||||
this.visible = true
|
||||
this.queryParam = {}
|
||||
this.selectedRowKeys = JSON.parse(JSON.stringify(value))
|
||||
this.replacePage()
|
||||
},
|
||||
searchQuery() {
|
||||
this.pageNo = 1
|
||||
this.replacePage()
|
||||
},
|
||||
searchReset() {
|
||||
this.pageNo = 1
|
||||
this.queryParam = {}
|
||||
this.replacePage()
|
||||
},
|
||||
onChange(page, pageSize) {
|
||||
this.pageNo = page
|
||||
this.replacePage()
|
||||
},
|
||||
SizeChange(page, pageSize) {
|
||||
this.pageNo = 1
|
||||
this.pageSize = pageSize
|
||||
this.replacePage()
|
||||
},
|
||||
replacePage() {
|
||||
let query = {
|
||||
pageNo: this.pageNo,
|
||||
pageSize: this.pageSize,
|
||||
id:this.$route.query.id,
|
||||
...this.queryParam
|
||||
}
|
||||
this.loading = true
|
||||
postAction(this.url.list, query).then((res) => {
|
||||
if (res.success) {
|
||||
this.dataList = res.result.records || []
|
||||
this.total = res.result.total
|
||||
this.loading = false
|
||||
} else {
|
||||
this.dataList = []
|
||||
this.total = 0
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
},
|
||||
onSelectChange(value) {
|
||||
this.selectedRowKeys = value
|
||||
},
|
||||
handleCancel() {
|
||||
this.visible = false
|
||||
},
|
||||
handleSubmit() {
|
||||
this.$emit('versionStatisticsForm', this.selectedRowKeys)
|
||||
this.visible = false
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.page {
|
||||
text-align: right;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.drawer-bootom-button {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
z-index: 100;
|
||||
border-top: 1px solid #e8e8e8;
|
||||
padding: 10px 16px;
|
||||
text-align: right;
|
||||
left: 0;
|
||||
background: #fff;
|
||||
border-radius: 0 0 2px 2px;
|
||||
}
|
||||
|
||||
.box-title-text {
|
||||
line-height: 1.4;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.title-text {
|
||||
width: 33px;
|
||||
color: #000F16;
|
||||
display: inline-block;
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
margin-right: 16px;
|
||||
margin-top: 3px;
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.box-input {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
height: 38px;
|
||||
}
|
||||
|
||||
.box-button {
|
||||
height: 38px;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user