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:
787203167
2022-11-03 14:41:16 +08:00
224 changed files with 15471 additions and 3963 deletions
@@ -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\-\.\?\,\'\/\\\+&amp;%\$#_]*)?$
-->
</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\-\.\?\,\'\/\\\+&amp;%$#_]*)?/,
@@ -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>
@@ -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>