1531 lines
47 KiB
Java
1531 lines
47 KiB
Java
<!--ota管理查看-->
|
|
<template>
|
|
<a-card :bordered="false">
|
|
<div class="table-page-search-wrapper">
|
|
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
|
<a-row :gutter="24">
|
|
<a-col :md="6" :sm="8">
|
|
<div class="box-title-text">
|
|
<div class="title-text" :title="$t('VDR')">
|
|
<span>VDR</span>
|
|
</div>
|
|
<a-input class="box-input" :placeholder="$t('PleaseEnter') + 'VDR'"
|
|
v-model="queryParam.vdr"></a-input>
|
|
</div>
|
|
</a-col>
|
|
|
|
<a-col :md="6" :sm="8">
|
|
<div class="box-title-text">
|
|
<div class="title-text" :title="$t('theme')">
|
|
<span>{{ $t('theme') }}</span>
|
|
</div>
|
|
<a-input class="box-input" :placeholder="$t('PleaseEnter') + $t('theme')"
|
|
v-model="queryParam.summary"></a-input>
|
|
</div>
|
|
</a-col>
|
|
|
|
<a-col :md="6" :sm="8">
|
|
<div class="box-title-text">
|
|
<div class="title-text" :title="$t('influencestatute')">
|
|
<span>{{ $t('influencestatute') }}</span>
|
|
</div>
|
|
<a-input class="box-input" :placeholder="$t('PleaseEnter') + $t('influencestatute')"
|
|
v-model="queryParam.impactHomo"></a-input>
|
|
</div>
|
|
</a-col>
|
|
<template v-if="toggleSearchStatus && vehicleTypeCode== $t('whole')">
|
|
<a-col :md="6" :sm="8">
|
|
<div class="box-title-text">
|
|
<div class="title-text" :title="$t('vehicleType')">
|
|
<span>{{ $t('vehicleType') }}</span>
|
|
</div>
|
|
<a-select :placeholder="$t('PleaseSelect')+$t('vehicleType')"
|
|
class="box-input"
|
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
|
allowClear
|
|
showSearch
|
|
optionFilterProp="label"
|
|
:autoClearSearchValue="false"
|
|
v-model="queryParam.appliedVehicleProject">
|
|
<a-select-option v-for="(item, key) in vehicleTypeList"
|
|
:label='item'
|
|
:key="key"
|
|
:value="item">
|
|
<span style="display: inline-block;width: 100%" :title=" item">
|
|
{{ item }}
|
|
</span>
|
|
</a-select-option>
|
|
</a-select>
|
|
</div>
|
|
</a-col>
|
|
</template>
|
|
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
|
|
<a-col :md="6" :sm="24">
|
|
<a @click="handleToggleSearch" v-if="vehicleTypeCode == $t('whole')">
|
|
{{ !toggleSearchStatus ? $t('open') : $t('away') }}
|
|
<a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
|
|
</a>
|
|
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{ $t('reset') }}</a-button>
|
|
<a-button class="box-button" style="margin-left: 8px" type="primary" @click="searchQuery">{{ $t('query') }}</a-button>
|
|
</a-col>
|
|
</span>
|
|
</a-row>
|
|
</a-form>
|
|
</div>
|
|
<a-divider style='margin-top: -10px;'/>
|
|
<div style='height:100%'>
|
|
<div style='display:flex'>
|
|
<div>
|
|
<span style='font-weight: 900;font-size: 20px'>{{ $route.query.plannedBpLaunchBatch }}</span>
|
|
<span style='margin-left:5px'>{{ $t('softwarereleasetime') }}:{{$route.query.releaseName}}</span>
|
|
</div>
|
|
<div style='margin-left: 10px;width: 300px;'>
|
|
<a-select :placeholder="$t('PleaseSelect')"
|
|
class="box-input"
|
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
|
showSearch
|
|
optionFilterProp="label"
|
|
:autoClearSearchValue="false"
|
|
@change='handChange'
|
|
v-model="vehicleTypeCode">
|
|
<!-- <a-select-option value="all">{{$t('whole')}}</a-select-option>-->
|
|
<a-select-option v-for="(item, key) in typeList"
|
|
:label='item'
|
|
:key="key"
|
|
:value="item">
|
|
<span style="display: inline-block;width: 100%" :title=" item">
|
|
{{ item }}
|
|
</span>
|
|
</a-select-option>
|
|
</a-select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- 全部导出-->
|
|
<div class="table-operator" style='margin-bottom: 19px;text-align: left;margin-top: 20px;'>
|
|
<div v-show="vehicleTypeCode === $t('whole')" class="operator-text" @click="handleExportManage('all')"
|
|
v-has="'otadetail:export'">
|
|
<a-icon type="export" :rotate="-90" />
|
|
{{ $t('export') }}
|
|
</div>
|
|
<!-- 全部下发通知-->
|
|
<div v-show="vehicleTypeCode === $t('whole')" class="operator-text" @click="issuenotice"
|
|
v-has="'otadetail:Issuenotice'">
|
|
<a-icon type="sound" />
|
|
{{ $t('issuenotice') }}
|
|
</div>
|
|
<!-- studio导出-->
|
|
<div v-show="vehicleTypeCode !== $t('whole')" class="operator-text" @click="handleExportManage('studio')"
|
|
v-has="'otad:export'">
|
|
<a-icon type="export" :rotate="-90"/>
|
|
{{ $t('export') }}
|
|
</div>
|
|
<!-- studio批量设置-->
|
|
<div v-show="vehicleTypeCode !== $t('whole')" class="operator-text" @click="BatchSetting"
|
|
v-has="'otad:batchsetting'">
|
|
<a-icon type="setting" />
|
|
{{ $t('BatchSetting') }}
|
|
</div>
|
|
<!-- studio申请重新匹配-->
|
|
<div v-show="vehicleTypeCode !== $t('whole')" class="operator-text" @click="applyforrematch"
|
|
v-has="'otad:rematch'">
|
|
<a-icon type="rollback" />
|
|
{{ $t('applyforrematch') }}
|
|
</div>
|
|
<!-- studio保存-->
|
|
<div v-show="vehicleTypeCode !== $t('whole')" class="operator-text" @click="preservation"
|
|
v-has="'otad:save'">
|
|
<a-icon type="check-circle" />
|
|
{{ $t('preservation') }}
|
|
</div>
|
|
<!-- studio提交-->
|
|
<div v-show="vehicleTypeCode !== $t('whole')" class="operator-text" @click="submit"
|
|
v-has="'otad-submit'">
|
|
<a-icon type="check-circle" />
|
|
{{ $t('submit') }}
|
|
</div>
|
|
<!-- manger确认-->
|
|
<div v-show="vehicleTypeCode !== $t('whole')" class="operator-text" @click="confirm"
|
|
v-has="'otaman:confirm'">
|
|
<a-icon type="check-circle" />
|
|
{{ $t('confirm') }}
|
|
</div>
|
|
<!-- manger退回-->
|
|
<div v-show="vehicleTypeCode !== $t('whole')" class="operator-text" @click="sendBack"
|
|
v-has="'otaman:return'">
|
|
<a-icon type="rollback" />
|
|
{{ $t('sendBack') }}
|
|
</div>
|
|
<!-- 列表设置-->
|
|
<!-- v-if="!this.$route.query.it"-->
|
|
<a-popconfirm :visible="customizevisible" overlayClassName="popconfirmClassName" :getPopupContainer="triggerNode => { return triggerNode.parentNode; }"
|
|
placement="bottomRight" >
|
|
<template slot="title" id="popconfirmmize">
|
|
<div style="max-height:360px;overflow:scroll;overflow-x: auto;width: 216px">
|
|
<a-checkbox
|
|
style="margin-bottom: 22px;"
|
|
v-if="cuList && cuList.length"
|
|
v-model="checkAll"
|
|
:indeterminate="indeterminate"
|
|
@change="onCheckAllChange"
|
|
>{{ $t('selectAll') }}
|
|
</a-checkbox>
|
|
<a-checkbox-group @change="Change" v-model="checkedList" class="customize-text">
|
|
<a-checkbox class="customize-text-title" :disabled="item.disabled" v-for="(item, key) in cuList"
|
|
:key="key" :value="item.field">{{ item.name }}
|
|
</a-checkbox>
|
|
</a-checkbox-group>
|
|
<div class="drawer-bootom-button">
|
|
<a-button @click="cancel" style="margin-right: 16px">{{ $t('cancel') }}</a-button>
|
|
<a-button @click="handleSubmitcustomize" type="primary" :loading="confirmLoading">{{ $t('determine') }}
|
|
</a-button>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<div class="operator-text" style="position: relative" @click="getcustomize">
|
|
<a-icon type="setting"/>
|
|
{{ $t('customize') }}
|
|
</div>
|
|
</a-popconfirm>
|
|
</div>
|
|
<a-table ref="table" size="middle"
|
|
:components="drag(columnsAll, 'columnsAll')"
|
|
:loading="loading" :pagination="false"
|
|
:scroll="{ x: '100%', y: 'calc(100vh - 140px)' }"
|
|
rowKey="id"
|
|
@change="tableOnChange"
|
|
:data-source="dataSource"
|
|
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
|
:columns="columnsAll">
|
|
<!-- 历史记录-->
|
|
<template slot="operation" slot-scope="text, record">
|
|
<a-button class="action-dict" @click="UpdateLog(record)">{{$t('historicalrecord')}}</a-button>
|
|
</template>
|
|
<!-- 备注编辑-->
|
|
<template slot="remarks" slot-scope="text, record">
|
|
<span @click="getremark(record)" :title='text'>{{text}}</span>
|
|
</template>
|
|
<!-- Vdr详情-->
|
|
<template slot="vdr" slot-scope="text, record">
|
|
<a @click="getcdr(record)" :title='text'>{{text}}</a>
|
|
</template>
|
|
<!-- 项目版本编辑-->
|
|
<template slot="projectVersionName" slot-scope="text, record">
|
|
<a-select :placeholder="$t('PleaseSelect')"
|
|
class="box-input"
|
|
style="width: 90%"
|
|
:disabled="record.disabled"
|
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
|
allowClear
|
|
showSearch
|
|
optionFilterProp="label"
|
|
:autoClearSearchValue="false"
|
|
v-model="record.projectVersion">
|
|
<a-select-option v-for="(item, key) in projectVersionList"
|
|
:label='item.versionName'
|
|
:key="key"
|
|
:value="item.projectId">
|
|
<span style="display: inline-block;width: 100%" :title=" item.versionName">
|
|
{{ item.versionName }}
|
|
</span>
|
|
</a-select-option>
|
|
</a-select>
|
|
</template>
|
|
<!-- 认证进度编辑-->
|
|
<template slot="attestationSchedule" slot-scope="text, record">
|
|
<j-dict-select-tag class="box-input" v-model="record.attestationSchedule"
|
|
:disabled="record.disabled"
|
|
:placeholder="$t('PleaseSelect')"
|
|
:type="'select'"
|
|
style="width: 90%"
|
|
:triggerChange="false" :dictCode="'certification_progress'"/>
|
|
</template>
|
|
</a-table>
|
|
<div class="page" v-if="dataSource && dataSource.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="pageOnChange"
|
|
@showSizeChange="SizeChange" />
|
|
</div>
|
|
</div>
|
|
<batSetting :url="url" @getList="getList" ref="batSettingRef"/>
|
|
<applyforrematch :url="url" @getList="getList" ref="applyforrematchRef"/>
|
|
<rejectReason :url="url" @getList="getList" @msgForm='msgForm' ref="rejectReasonRef"/>
|
|
<remark @remarkForm='remarkForm' ref="remarkRef"/>
|
|
<vdrDetial @vdrDetial='vdrDetial' ref="vdrDetialRef"/>
|
|
<!-- 历史记录-->
|
|
<a-modal
|
|
:title="$t('historicalrecord')"
|
|
:width="900"
|
|
:visible="visible"
|
|
:confirm-loading="confirmLoading"
|
|
:maskClosable="false"
|
|
@ok="handleOk"
|
|
@cancel="handleCancel"
|
|
>
|
|
<historyTable :columnshistory='columnshistory' :dataSourcehistory='dataSourcehistory'></historyTable>
|
|
<!-- <a-table-->
|
|
<!-- class="table"-->
|
|
<!-- :columns="columnshistory"-->
|
|
<!-- :pagination="false"-->
|
|
<!-- :scroll="{y: 400}"-->
|
|
<!-- :data-source="dataSourcehistory"-->
|
|
<!-- :loading="loading"-->
|
|
<!-- >-->
|
|
<!-- <span slot="content" slot-scope="text,record">-->
|
|
<!-- <a-tooltip placement="topLeft">-->
|
|
<!-- <template slot="title">-->
|
|
<!-- <span v-html="text"></span>-->
|
|
<!-- </template>-->
|
|
<!-- <span v-html="text"></span>-->
|
|
<!-- </a-tooltip>-->
|
|
<!-- </span>-->
|
|
<!-- <span slot="detailText" slot-scope="text,record">-->
|
|
<!-- <span class="text" :title="text">-->
|
|
<!-- {{text && text.length > 10?text.slice(0,9)+'...':text}}-->
|
|
<!-- </span>-->
|
|
<!-- </span>-->
|
|
<!-- </a-table>-->
|
|
<div class="page" v-if="dataSourcehistory.length > 0">
|
|
<a-pagination
|
|
:show-total="total => $t('total')+` ${total} `+$t('strip')"
|
|
show-quick-jumper
|
|
show-size-changer
|
|
:page-size.sync="pageSizehistory"
|
|
:total="historytotal"
|
|
:current="pageNohistory"
|
|
@change="onChangehistory"
|
|
@showSizeChange="SizeChangehistory"
|
|
/>
|
|
</div>
|
|
</a-modal>
|
|
<!-- 错误数据提示-->
|
|
<a-modal
|
|
:title="$t('operationFailed')"
|
|
:width="860"
|
|
v-model="visibleoperationFailed"
|
|
:maskClosable="false"
|
|
:footer="null"
|
|
>
|
|
<a-row :gutter="24">
|
|
<a-col :span="24">
|
|
<!-- 状态不符合,导致不能操作按钮,没有权限-->
|
|
<div style='font-size: 18px;margin-bottom: 20px;display: flex;justify-content: center'
|
|
class="box-title-text-index" v-for='(item,key) in NotSelectedRowKeysValue'>
|
|
<div>
|
|
<span>{{ item }}</span>
|
|
</div>
|
|
</div>
|
|
</a-col>
|
|
</a-row>
|
|
<div class="imports-footer">
|
|
<div class="imports-footer-wrap">
|
|
<a-button class="imports-btn" type="primary" @click="cancleoperationFailed">{{$t('cancel')}}</a-button>
|
|
</div>
|
|
</div>
|
|
</a-modal>
|
|
</a-card>
|
|
</template>
|
|
|
|
<script>
|
|
import { getAction, postAction, deleteAction,downloadFile } from '@/api/manage'
|
|
import { mapGetters } from 'vuex'
|
|
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
|
|
import ImportFile from '@/components/ImportFileData/index'
|
|
import moment from 'moment'
|
|
import batSetting from './batSetting'
|
|
import applyforrematch from './applyforrematch'
|
|
import rejectReason from './rejectReason'
|
|
import historyTable from './historyTable.vue'
|
|
import remark from './remark.vue'
|
|
import vdrDetial from './vdrDetial.vue'
|
|
|
|
export default {
|
|
name: 'index',
|
|
components: {
|
|
ImportFile,
|
|
batSetting,
|
|
applyforrematch,
|
|
rejectReason,
|
|
historyTable,
|
|
remark,
|
|
vdrDetial,
|
|
},
|
|
mixins: [ResizeHeader, ResizeColumnProvide],
|
|
data() {
|
|
return {
|
|
//url传参严格按照当前命名
|
|
url: {
|
|
list: '/lawsTechnologyEvaluation/lawsTechnologyEvaluationEO/page',
|
|
deleteBatch: '/lawsTechnologyEvaluation/lawsTechnologyEvaluationEO/deleteBatch',
|
|
exportData: '/ota/otaBaCxList/exportData',
|
|
importZipUrl: '/ota/otaBaCxList/importData',//导入
|
|
},
|
|
number:'',
|
|
vehicleTypeCode:this.$t('whole'),
|
|
visible: false,
|
|
loading: false,
|
|
toggleSearchStatus: false,
|
|
customizevisible: false,
|
|
confirmLoading: false,
|
|
indeterminate: false,
|
|
checkAll: false,
|
|
visibleoperationFailed: false, // 数据失败的弹框
|
|
NotSelectedRowKeysValue:[],
|
|
dataSource: [],
|
|
selectedRowKeys: [],
|
|
selectedRowKeysRecord: [],
|
|
// checkedList: ['nio_number', 'params_name', 'operation'],
|
|
checkedList: [],
|
|
serialNumber: '',
|
|
total: 0,
|
|
historytotal: 0,
|
|
pageSize: 10,
|
|
pageNo: 1,
|
|
pageNohistory: 1,
|
|
pageSizehistory: 10,
|
|
CategoryTreeList: [],
|
|
softwareversionList: [],
|
|
softwareplatform: [],
|
|
vehicleTypeList: [],
|
|
projectVersionList: [],
|
|
typeList: [],
|
|
columnsAll: [],
|
|
marketList: [],
|
|
queryParam: {},
|
|
formInline: {},
|
|
cut: '',
|
|
dataSourcehistory: [],
|
|
cuList :[],
|
|
columnshistory: [
|
|
{
|
|
title: this.$t('OperationDetails'),
|
|
dataIndex: 'content',
|
|
align: 'left',
|
|
width: 320,
|
|
// ellipsis: true,
|
|
scopedSlots: { customRender: 'detailText' }
|
|
},
|
|
{
|
|
title: this.$t('OperationTime'),
|
|
dataIndex: 'createTime',
|
|
align: 'left',
|
|
// ellipsis: true,
|
|
width: 180
|
|
}
|
|
],
|
|
rules: {
|
|
whetherTobring: [
|
|
{
|
|
required: true,
|
|
message: this.$t('standardDecompositionDocument') + this.$t('cannotEmpty'),
|
|
trigger: 'change'
|
|
}
|
|
]
|
|
},
|
|
customizeList: [
|
|
{
|
|
sort: '1',
|
|
name: 'VDR',
|
|
headFieldCn: 'VDR',
|
|
headFieldEn: 'VDR',
|
|
field: 'vdr',
|
|
key: 1,
|
|
moduleFlag: '全车型',
|
|
status: 1
|
|
},
|
|
{
|
|
sort: '2',
|
|
name: this.$t('theme'),
|
|
headFieldCn: '主题',
|
|
headFieldEn: 'theme',
|
|
field: 'summary',
|
|
key: 2,
|
|
moduleFlag: '全车型',
|
|
status: 2
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('vdrste'),
|
|
headFieldCn: 'VDR状态',
|
|
headFieldEn: 'VDR status',
|
|
field: 'status',
|
|
key: 3,
|
|
moduleFlag: '全车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('authenticationimpact'),
|
|
headFieldCn: '认证影响',
|
|
headFieldEn: 'Authentication impact',
|
|
field: 'homologationImpact',
|
|
key: 4,
|
|
moduleFlag:'全车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('impactstatement'),
|
|
headFieldCn: '影响描述',
|
|
headFieldEn: 'Impact statement',
|
|
field: 'homologation',
|
|
key: 5,
|
|
moduleFlag: '全车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('influencestatute') + '-CN',
|
|
headFieldCn: '影响法规-CN',
|
|
headFieldEn: 'Influence statute-CN',
|
|
field: 'impactCnHomo',
|
|
key: 6,
|
|
moduleFlag: '全车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('influencestatute') + '-EU',
|
|
headFieldCn: '影响法规-EU',
|
|
headFieldEn: 'Influence statute-EU',
|
|
field: 'impactEuHomo',
|
|
key: 7,
|
|
moduleFlag: '全车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('statisticalNodes'),
|
|
headFieldCn: '责任部门',
|
|
headFieldEn: 'Duty Department',
|
|
field: 'masterDomain',
|
|
key: 8,
|
|
moduleFlag: '全车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('vehicleType'),
|
|
headFieldCn: '适用车型',
|
|
headFieldEn: 'Vehicle Type',
|
|
field: 'appliedVehicleProject',
|
|
key: 9,
|
|
moduleFlag: '全车型'
|
|
}
|
|
],
|
|
customizeSeList: [
|
|
{
|
|
sort: '1',
|
|
name: 'VDR',
|
|
headFieldCn: 'VDR',
|
|
headFieldEn: 'VDR',
|
|
field: 'vdr',
|
|
key: 1,
|
|
moduleFlag: '分车型',
|
|
status: 1
|
|
},
|
|
{
|
|
sort: '2',
|
|
name: this.$t('theme'),
|
|
headFieldCn: '主题',
|
|
headFieldEn: 'theme',
|
|
field: 'summary',
|
|
key: 2,
|
|
moduleFlag: '分车型',
|
|
status: 2
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('vdrste'),
|
|
headFieldCn: 'VDR状态',
|
|
headFieldEn: 'VDR status',
|
|
field: 'status',
|
|
key: 3,
|
|
moduleFlag: '分车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('authenticationimpact'),
|
|
headFieldCn: '认证影响',
|
|
headFieldEn: 'Authentication impact',
|
|
field: 'homologationImpact',
|
|
key: 4,
|
|
moduleFlag:'分车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('impactstatement'),
|
|
headFieldCn: '影响描述',
|
|
headFieldEn: 'Impact statement',
|
|
field: 'homologation',
|
|
key: 5,
|
|
moduleFlag: '分车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('influencestatute') + '-CN',
|
|
headFieldCn: '影响法规-CN',
|
|
headFieldEn: 'Influence statute-CN',
|
|
field: 'impactCnHomo',
|
|
key: 6,
|
|
moduleFlag: '分车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('influencestatute') + '-EU',
|
|
headFieldCn: '影响法规-EU',
|
|
headFieldEn: 'Influence statute-EU',
|
|
field: 'impactEuHomo',
|
|
key: 7,
|
|
moduleFlag: '分车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('statisticalNodes'),
|
|
headFieldCn: '责任部门',
|
|
headFieldEn: 'Duty Department',
|
|
field: 'masterDomain',
|
|
key: 8,
|
|
moduleFlag: '分车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: 'R&H Studio',
|
|
headFieldCn: 'R&H Studio',
|
|
headFieldEn: 'R&H Studio',
|
|
field: 'studioText',
|
|
key: 9,
|
|
moduleFlag: '分车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('projectVersion'),
|
|
headFieldCn: '项目版本',
|
|
headFieldEn: 'Project Version',
|
|
field: 'projectVersionName',
|
|
key: 10,
|
|
moduleFlag: '分车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('certificationStartOne'),
|
|
headFieldCn: '认证开始',
|
|
headFieldEn: 'Homo Starts',
|
|
field: 'attestationStartTime',
|
|
key: 11,
|
|
moduleFlag: '分车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('certificationdeclaration'),
|
|
headFieldCn: '认证申报',
|
|
headFieldEn: 'Certification declaration',
|
|
field: 'certificationSubmission',
|
|
key: 12,
|
|
moduleFlag: '分车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('certificationEnd'),
|
|
headFieldCn: '认证批准',
|
|
headFieldEn: 'Homo Approved',
|
|
field: 'attestationEndTime',
|
|
key: 13,
|
|
moduleFlag: '分车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('CertificationProgress'),
|
|
headFieldCn: '认证进度',
|
|
headFieldEn: 'Homologation Progress',
|
|
field: 'attestationSchedule',
|
|
key: 14,
|
|
moduleFlag: '分车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('matchingstate'),
|
|
headFieldCn: '匹配状态',
|
|
headFieldEn: 'Matching state',
|
|
field: 'matchStatusText',
|
|
key: 15,
|
|
moduleFlag: '分车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('remarks'),
|
|
headFieldCn: '备注',
|
|
headFieldEn: 'remarks',
|
|
field: 'remark',
|
|
key: 16,
|
|
moduleFlag: '分车型'
|
|
},
|
|
{
|
|
sort: '',
|
|
name: this.$t('operation'),
|
|
headFieldCn: '操作',
|
|
headFieldEn: 'operation',
|
|
field: 'operation',
|
|
key: 17,
|
|
moduleFlag: '分车型'
|
|
},
|
|
],
|
|
columns: [
|
|
{
|
|
title: 'VDR',
|
|
align: 'left',
|
|
dataIndex: 'vdr',
|
|
ellipsis: true,
|
|
sorter:true,
|
|
width: 170,
|
|
scopedSlots: { customRender: 'vdr' }
|
|
},
|
|
{
|
|
title: this.$t('theme'),
|
|
align: 'left',
|
|
dataIndex: 'summary',
|
|
ellipsis: true,
|
|
sorter:true,
|
|
width: 170
|
|
},
|
|
{
|
|
title: this.$t('vdrste'),
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'status'
|
|
},
|
|
{
|
|
title: this.$t('authenticationimpact'),
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'homologationImpact'
|
|
},
|
|
{
|
|
title: this.$t('impactdescription'),
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'homologation'
|
|
},
|
|
{
|
|
title: this.$t('influencestatute') + '-CN',
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'impactCnHomo'
|
|
},
|
|
{
|
|
title: this.$t('influencestatute') + '-EU',
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'impactEuHomo'
|
|
},
|
|
{
|
|
title: this.$t('statisticalNodes'),
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'masterDomain'
|
|
},
|
|
{
|
|
title: this.$t('vehicleType'),
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'appliedVehicleProject',
|
|
scopedSlots: { customRender: 'vdr' }
|
|
},
|
|
],
|
|
columnstype: [
|
|
{
|
|
title: 'VDR',
|
|
align: 'left',
|
|
dataIndex: 'vdr',
|
|
ellipsis: true,
|
|
sorter:true,
|
|
width: 170,
|
|
scopedSlots: { customRender: 'vdr' }
|
|
},
|
|
{
|
|
title: this.$t('theme'),
|
|
align: 'left',
|
|
dataIndex: 'summary',
|
|
ellipsis: true,
|
|
sorter:true,
|
|
width: 170
|
|
},
|
|
{
|
|
title: this.$t('vdrste'),
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'status'
|
|
},
|
|
{
|
|
title: this.$t('authenticationimpact'),
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'homologationImpact'
|
|
},
|
|
{
|
|
title: this.$t('impactstatement'),
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'homologation'
|
|
},
|
|
{
|
|
title: this.$t('influencestatute') + '-CN',
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'impactCnHomo'
|
|
},
|
|
{
|
|
title: this.$t('influencestatute') + '-EU',
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'impactEuHomo'
|
|
},
|
|
{
|
|
title: this.$t('statisticalNodes'),
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'masterDomain'
|
|
},
|
|
{
|
|
title: 'R&H Studio',
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'studioText'
|
|
},
|
|
{
|
|
title: this.$t('projectVersion'),
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'projectVersionName',
|
|
scopedSlots: { customRender: 'projectVersionName' }
|
|
},
|
|
{
|
|
title: this.$t('certificationStartOne'),
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'attestationStartTime'
|
|
},
|
|
{
|
|
title: this.$t('certificationdeclaration'),
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'certificationSubmission'
|
|
},
|
|
{
|
|
title: this.$t('certificationEnd'),
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'attestationEndTime'
|
|
},
|
|
{
|
|
title: this.$t('CertificationProgress'),
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'attestationSchedule',
|
|
scopedSlots: { customRender: 'attestationSchedule' }
|
|
},
|
|
{
|
|
title: this.$t('matchingstate'),
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'matchStatusText'
|
|
},
|
|
{
|
|
title: this.$t('remarks'),
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
sorter:true,
|
|
dataIndex: 'remark',
|
|
scopedSlots: { customRender: 'remarks' }
|
|
},
|
|
{
|
|
title: this.$t('operation'),
|
|
align: 'left',
|
|
width: 170,
|
|
ellipsis: true,
|
|
dataIndex:'operation',
|
|
scopedSlots: { customRender: 'operation' }
|
|
},
|
|
],
|
|
userInfoQuery: {},
|
|
orderBy: '1',
|
|
orderByField: '',
|
|
administrators: false
|
|
}
|
|
},
|
|
watch:{
|
|
// 监听车型变化
|
|
vehicleTypeCode(){
|
|
if(this.vehicleTypeCode !== this.$t('whole')){
|
|
this.cuList = this.customizeSeList
|
|
this.$forceUpdate()
|
|
}else{
|
|
this.cuList = this.customizeList
|
|
this.$forceUpdate()
|
|
}
|
|
this.getprojectList()
|
|
}
|
|
},
|
|
mounted() {
|
|
if(this.$route.query.vehicleTypeCode){
|
|
this.vehicleTypeCode = this.$route.query.vehicleTypeCode
|
|
}
|
|
getAction('/ota/otaManageApplyEO/getCarList', {}).then((res) => {
|
|
if (res.success) {
|
|
this.typeList = res.result
|
|
} else {
|
|
}
|
|
})
|
|
this.cuList = this.customizeList
|
|
this.getSelectData()
|
|
this.getHeader()
|
|
this.administrators = false
|
|
},
|
|
methods: {
|
|
...mapGetters(['userInfo']),
|
|
getSelectData(){
|
|
getAction('/ota/otaManageApplyEO/getPullDownList', {}).then((res) => {
|
|
if (res.success) {
|
|
this.vehicleTypeList = res.result.carSet
|
|
this.getprojectList()
|
|
console.log(this.userInfo())
|
|
} else {
|
|
}
|
|
})
|
|
},
|
|
getprojectList(){
|
|
getAction('/ota/otaManageApplyEO/getProjectVersionList', {carMarket:this.vehicleTypeCode}).then((res) => {
|
|
if (res.success) {
|
|
this.projectVersionList = res.result
|
|
} else {
|
|
}
|
|
})
|
|
},
|
|
handleToggleSearch() {
|
|
this.toggleSearchStatus = !this.toggleSearchStatus
|
|
},
|
|
tableOnChange(pagination, filters, sorter) {
|
|
this.orderBy = sorter.order == 'ascend' ? '1' : '2'
|
|
this.orderByField = sorter.columnKey
|
|
this.getList()
|
|
},
|
|
searchQuery() {
|
|
this.pageNo = 1
|
|
this.getList()
|
|
},
|
|
searchReset() {
|
|
this.queryParam = {}
|
|
this.selectedRowKeys = []
|
|
this.pageNo = 1
|
|
this.getList()
|
|
},
|
|
pageOnChange(page) {
|
|
this.pageNo = page
|
|
this.getList()
|
|
},
|
|
SizeChange(page, pageSize) {
|
|
this.pageNo = 1
|
|
this.pageSize = pageSize
|
|
this.getList()
|
|
},
|
|
getList() {
|
|
let queryParam = JSON.parse(JSON.stringify(this.queryParam))
|
|
Object.keys(queryParam).forEach(val => {
|
|
if (queryParam[val] instanceof Array) {
|
|
queryParam[val] = queryParam[val].join(',')
|
|
}
|
|
})
|
|
this.selectedRowKeys = []
|
|
queryParam.appliedVehicleProject = this.vehicleTypeCode == this.$t('whole')?queryParam.appliedVehicleProject:this.vehicleTypeCode
|
|
queryParam.plannedBpLaunchBatch = this.$route.query.plannedBpLaunchBatch
|
|
let query = {
|
|
pageNo: this.pageNo,
|
|
pageSize: this.pageSize,
|
|
orderBy: this.orderBy,
|
|
orderByField: this.orderByField,
|
|
...queryParam
|
|
}
|
|
this.loading = true
|
|
let url = this.vehicleTypeCode == this.$t('whole')?'/ota/otaManageApplyEO/getOtaPage':'/ota/otaManageApplyEO/getOtaCarPage'
|
|
getAction(url, query).then((res) => {
|
|
if (res.success) {
|
|
if (res.result.current > 1 && res.result.records.length == 0) {
|
|
this.pageNo = 1
|
|
this.getList()
|
|
return
|
|
}
|
|
this.dataSource = res.result.records || []
|
|
this.total = res.result.total
|
|
this.loading = false
|
|
} else {
|
|
this.loading = false
|
|
}
|
|
})
|
|
},
|
|
onSelectChange(value, record) {
|
|
this.selectedRowKeys = value
|
|
this.selectedRowKeysRecord = record
|
|
},
|
|
handChange(val){
|
|
this.vehicleTypeCode = val
|
|
this.getHeader()
|
|
this.$forceUpdate()
|
|
},
|
|
//导出
|
|
handleExportManage(code) {
|
|
// console.log('menuId',this.menuId)
|
|
let dateName = moment(new Date()).format('YYYYMMDD')
|
|
let name = ''
|
|
let url = ''
|
|
switch (code){
|
|
case 'all':
|
|
url = 'ota/otaManageApplyEO/allCarExportXls'
|
|
break;
|
|
case 'studio':
|
|
url = 'ota/otaManageApplyEO/oneCarExportXls'
|
|
break;
|
|
}
|
|
let long = localStorage.getItem('language')
|
|
let cut = ''
|
|
if (long && long == 'zh-cn') {
|
|
this.cut = 'cn'
|
|
} else if (long && long == 'en-us') {
|
|
this.cut = 'en'
|
|
}
|
|
this.queryParam.appliedVehicleProject = this.vehicleTypeCode == this.$t('whole')?this.queryParam.appliedVehicleProject:this.vehicleTypeCode
|
|
this.queryParam.plannedBpLaunchBatch = this.$route.query.plannedBpLaunchBatch
|
|
let exportName = this.$route.query.plannedBpLaunchBatch
|
|
let query = {
|
|
exportName: exportName,
|
|
selections: this.selectedRowKeys.join(','),
|
|
...this.queryParam,
|
|
orderBy: this.orderBy,
|
|
orderByField: this.orderByField,
|
|
cut: this.cut,
|
|
}
|
|
|
|
downloadFile(url, exportName, query, this.selectClear)
|
|
},
|
|
// 下发通知
|
|
issuenotice(){
|
|
let _this = this
|
|
this.$confirm({
|
|
content: _this.$t('notificationsent'),
|
|
onOk() {
|
|
let query = {
|
|
id: this.$route.query.plannedBpLaunchBatch
|
|
}
|
|
postAction('/ota/otaManageApplyEO/issueNotice', query).then((res) => {
|
|
if (res.success) {
|
|
_this.$message.success(_this.$t('OperationSuccessful'))
|
|
} else {
|
|
_this.$message.warning(_this.$t('operationFailed'))
|
|
}
|
|
})
|
|
}
|
|
})
|
|
},
|
|
// 批量设置
|
|
BatchSetting(){
|
|
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
|
|
let flag = 1
|
|
this.selectedRowKeysRecord.forEach(item => {
|
|
if(item.disabled == true){
|
|
flag = 2
|
|
return
|
|
}
|
|
})
|
|
console.log(flag)
|
|
if (flag == 2) {
|
|
this.$message.warning(this.$t('datacannotbeedited'))
|
|
} else {
|
|
this.$refs.batSettingRef.edit(JSON.parse(JSON.stringify(this.selectedRowKeysRecord)),this.vehicleTypeCode)
|
|
}
|
|
} else {
|
|
this.$message.warning(this.$t('selectLeastOne'))
|
|
}
|
|
},
|
|
// 申请重新匹配
|
|
applyforrematch(){
|
|
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
|
|
let flag = 1
|
|
this.selectedRowKeysRecord.forEach(item => {
|
|
if(item.matchStatus !== 'locked'){
|
|
flag = 2
|
|
return
|
|
}
|
|
})
|
|
console.log(flag)
|
|
if (flag !== 2) {
|
|
this.$refs.applyforrematchRef.edit(JSON.parse(JSON.stringify(this.selectedRowKeys)),this.vehicleTypeCode)
|
|
} else {
|
|
this.$message.warning(this.$t('selectlocked'))
|
|
}
|
|
} else {
|
|
this.$message.warning(this.$t('selectLeastOne'))
|
|
}
|
|
},
|
|
// 历史记录
|
|
UpdateLog(val) {
|
|
this.visible = true
|
|
this.paramsReportDetailId = val.id
|
|
this.bussLogList(val)
|
|
},
|
|
onChangehistory(page, pageSize) {
|
|
this.pageNohistory = page
|
|
this.bussLogList()
|
|
},
|
|
SizeChangehistory(page, pageSize) {
|
|
this.pageNohistory = 1
|
|
this.pageSizehistory = pageSize
|
|
this.bussLogList()
|
|
},
|
|
bussLogList(val) {
|
|
let query = {
|
|
pageNo: this.pageNohistory,
|
|
pageSize: this.pageSizehistory,
|
|
applyId: this.paramsReportDetailId
|
|
}
|
|
// this.loading = true
|
|
getAction('/ota/otaManageHistory/page', query).then((res) => {
|
|
if (res.success) {
|
|
this.dataSourcehistory = res.result.records
|
|
if (this.dataSourcehistory && this.dataSourcehistory.length > 0) {
|
|
this.dataSourcehistory.forEach(val => {
|
|
val.content = val.content.replace(/\"/g, '<span class=\'textData\'>"</span>')
|
|
})
|
|
}
|
|
this.historytotal = res.result.total
|
|
// this.loading = false
|
|
} else {
|
|
// this.loading = false
|
|
}
|
|
})
|
|
},
|
|
handleOk() {
|
|
this.pageNohistory = 1
|
|
this.visible = false
|
|
},
|
|
handleCancel() {
|
|
this.pageNohistory = 1
|
|
this.visible = false
|
|
},
|
|
// 保存
|
|
preservation(){
|
|
console.log(this.dataSource)
|
|
let OtaManageApplyEO = JSON.parse(JSON.stringify(this.dataSource))
|
|
let query = {
|
|
list: OtaManageApplyEO
|
|
}
|
|
postAction('/ota/otaManageApplyEO/temporarySave', query).then((res) => {
|
|
if (res.success) {
|
|
this.$message.success(this.$t('OperationSuccessful'))
|
|
this.getList()
|
|
} else {
|
|
this.$message.warning(this.$t('operationFailed'))
|
|
}
|
|
})
|
|
},
|
|
// 提交
|
|
submit(){
|
|
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
|
|
// this.$refs.rejectReasonRef.edit(JSON.parse(JSON.stringify(this.selectedRowKeys)))
|
|
let OtaManageApplyEO = JSON.parse(JSON.stringify(this.selectedRowKeysRecord))
|
|
let query = {
|
|
list: OtaManageApplyEO
|
|
}
|
|
postAction('/ota/otaManageApplyEO/submit', query).then((res) => {
|
|
if (res.success) {
|
|
if(res.result.msgList && res.result.msgList.length == 0){
|
|
this.selectedRowKeys = []
|
|
this.getList()
|
|
this.$message.success(this.$t('OperationSuccessful'))
|
|
}else{
|
|
this.NotSelectedRowKeysValue = res.result.msgList
|
|
this.visibleoperationFailed = true
|
|
}
|
|
} else {
|
|
this.$message.warning(this.$t('operationFailed'))
|
|
}
|
|
})
|
|
} else {
|
|
this.$message.warning(this.$t('selectLeastOne'))
|
|
}
|
|
},
|
|
// 确认
|
|
confirm(){
|
|
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
|
|
console.log(this.selectedRowKeys)
|
|
let query = {
|
|
ids:this.selectedRowKeys.join(',')
|
|
}
|
|
getAction('/ota/otaManageApplyEO/confirm', query).then((res) => {
|
|
if (res.success) {
|
|
if(res.result.msgList && res.result.msgList.length == 0){
|
|
this.selectedRowKeys = []
|
|
this.getList()
|
|
this.$message.success(this.$t('OperationSuccessful'))
|
|
}else{
|
|
this.NotSelectedRowKeysValue = res.result.msgList
|
|
this.visibleoperationFailed = true
|
|
}
|
|
} else {
|
|
this.$message.warning(this.$t('operationFailed'))
|
|
}
|
|
})
|
|
} else {
|
|
this.$message.warning(this.$t('selectLeastOne'))
|
|
}
|
|
},
|
|
// 退回
|
|
sendBack(){
|
|
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
|
|
this.$refs.rejectReasonRef.edit(JSON.parse(JSON.stringify(this.selectedRowKeys)))
|
|
} else {
|
|
this.$message.warning(this.$t('selectLeastOne'))
|
|
}
|
|
},
|
|
msgForm(data){
|
|
if(data && data.length !== 0){
|
|
this.NotSelectedRowKeysValue = data
|
|
this.visibleoperationFailed = true
|
|
}else{
|
|
this.selectedRowKeys = []
|
|
this.getList()
|
|
}
|
|
},
|
|
// 备注编辑
|
|
getremark(item){
|
|
this.$refs.remarkRef.edit(JSON.parse(JSON.stringify(item)))
|
|
},
|
|
getcdr(item){
|
|
this.$refs.vdrDetialRef.addModel(JSON.parse(JSON.stringify(item)))
|
|
},
|
|
vdrDetial(){
|
|
|
|
},
|
|
remarkForm(data,val){
|
|
console.log(data,val)
|
|
// 根据id匹配
|
|
let remarkList = []
|
|
this.dataSource.forEach(item => {
|
|
if(item.id == val){
|
|
item.remark = data
|
|
remarkList.push(item)
|
|
}
|
|
})
|
|
this.dataSource = this.dataSource
|
|
console.log(remarkList)
|
|
let OtaManageApplyEO = JSON.parse(JSON.stringify(remarkList))
|
|
let query = {
|
|
list: OtaManageApplyEO
|
|
}
|
|
postAction('/ota/otaManageApplyEO/temporarySave', query).then((res) => {
|
|
if (res.success) {
|
|
this.$message.success(this.$t('OperationSuccessful'))
|
|
} else {
|
|
this.$message.warning(this.$t('operationFailed'))
|
|
}
|
|
})
|
|
this.$refs.remarkRef.confirmLoading = false
|
|
this.$refs.remarkRef.visible = false
|
|
},
|
|
getcustomize() {
|
|
this.customizevisible = true
|
|
},
|
|
cancel() {
|
|
this.customizevisible = false
|
|
},
|
|
Change() {
|
|
this.selectedValue = this.checkedList
|
|
},
|
|
onCheckAllChange(e) {
|
|
// let selectedValue = ['nio_number', 'params_name', 'operation']
|
|
this.checkedList = e.target.checked ? this.cuList.map(item => item.field) : selectedValue
|
|
this.selectedValue = this.checkedList
|
|
this.indeterminate = false
|
|
},
|
|
handleSubmitcustomize() {
|
|
let list = []
|
|
let checked = this.checkedList || this.selectedValue
|
|
let uniqueArray = checked.filter((item, index, array) => {
|
|
return array.indexOf(item) === index
|
|
})
|
|
uniqueArray.forEach(item => {
|
|
this.cuList.forEach((val, index) => {
|
|
if (item == val.field) {
|
|
val.sort = index + 1
|
|
list.push(val)
|
|
}
|
|
})
|
|
})
|
|
this.confirmLoading = true
|
|
let headCustomEOList = JSON.parse(JSON.stringify(list))
|
|
let query = {
|
|
headCustomEOList: headCustomEOList
|
|
}
|
|
postAction('head/headCustomEO/add', query).then((res) => {
|
|
if (res.success) {
|
|
this.confirmLoading = false
|
|
this.$message.success(this.$t('OperationSuccessful'))
|
|
this.customizevisible = false
|
|
this.getHeader()
|
|
} else {
|
|
this.$message.warning(this.$t('operationFailed'))
|
|
this.confirmLoading = false
|
|
this.customizevisible = false
|
|
}
|
|
})
|
|
},
|
|
getHeader() {
|
|
getAction('head/headCustomEO/list', {
|
|
moduleFlag: this.vehicleTypeCode == this.$t('whole')?'全车型':'分车型'
|
|
}).then((res) => {
|
|
if (res.success) {
|
|
if(res.result && res.result.length > 0){
|
|
res.result.forEach(item => {
|
|
item.width = 170
|
|
})
|
|
this.columnsAll = res.result
|
|
}else{
|
|
this.columnsAll = this.vehicleTypeCode == this.$t('whole')?this.columns:this.columnstype
|
|
}
|
|
if(this.vehicleTypeCode == this.$t('whole')){
|
|
for (let j = 0; j < this.columnsAll.length; j++) {
|
|
for (let i = 0; i < this.columns.length; i++) {
|
|
if (this.columns[i].dataIndex == this.columnsAll[j].dataIndex) {
|
|
this.columnsAll[j] = this.columns[i]
|
|
}
|
|
}
|
|
}
|
|
}else{
|
|
for (let j = 0; j < this.columnsAll.length; j++) {
|
|
for (let i = 0; i < this.columnstype.length; i++) {
|
|
if (this.columnstype[i].dataIndex == this.columnsAll[j].dataIndex) {
|
|
this.columnsAll[j] = this.columnstype[i]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
console.log(this.columnsAll)
|
|
this.columnsAll.forEach((item) => {
|
|
if (item.children) {
|
|
item.children.forEach((val) => {
|
|
this.checkedList.push(item.dataIndex, val.dataIndex)
|
|
})
|
|
} else {
|
|
this.checkedList.push(item.dataIndex)
|
|
}
|
|
})
|
|
this.getList()
|
|
this.loading = false
|
|
this.JLoading = false
|
|
} else {
|
|
this.JLoading = false
|
|
this.loading = false
|
|
}
|
|
})
|
|
},
|
|
onChange(value, dateString) {
|
|
if (this.queryParams.softwarereleasetime && this.queryParams.softwarereleasetime.length > 0) {
|
|
let dateOne = moment(dateString[0]).format('YYYY-MM-DD')
|
|
let dateTwo = moment(dateString[1]).format('YYYY-MM-DD')
|
|
this.queryParams.softwarereleasetime = [dateOne, dateTwo]
|
|
} else {
|
|
this.queryParams.softwarereleasetime = []
|
|
// this.queryParamOne[item + '_name'] = []
|
|
}
|
|
},
|
|
// 错误数据的弹框
|
|
cancleoperationFailed() {
|
|
this.NotSelectedRowKeysValue = []
|
|
this.visibleoperationFailed = false
|
|
this.getList()
|
|
// this.GetgetTableList()
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
.tree-select .ant-select-tree-dropdown {
|
|
height: 298px !important;
|
|
}
|
|
</style>
|
|
<style lang="less" scoped>
|
|
@import '~@assets/less/common.less';
|
|
|
|
.page {
|
|
text-align: right;
|
|
margin-top: 20px;
|
|
}
|
|
|
|
.box-title-text {
|
|
line-height: 1.4;
|
|
display: flex;
|
|
align-items: center;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.title-text {
|
|
width: 20%;
|
|
min-width: 110px;
|
|
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: 70%;
|
|
height: 38px;
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.box-button {
|
|
height: 38px;
|
|
/*margin-top: 2px;*/
|
|
}
|
|
|
|
.text-operation {
|
|
margin-right: 8px;
|
|
}
|
|
|
|
.itemModel {
|
|
width: calc(100% - 130px);
|
|
display: inline-block;
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.Required {
|
|
color: red;
|
|
margin-right: 4px;
|
|
}
|
|
|
|
.customize-text {
|
|
/*height: 1533px;*/
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
}
|
|
/deep/ .ant-table-row:first-child {
|
|
background: #fff !important;
|
|
opacity: 0.9;
|
|
}
|
|
.customize-text-title {
|
|
margin-left: 0;
|
|
font-size: 14px;
|
|
font-weight: 400;
|
|
color: #040B29;
|
|
margin-bottom: 22px;
|
|
}
|
|
/deep/ .ant-table-row:first-child {
|
|
background: #fff !important;
|
|
opacity: 2.9;
|
|
}
|
|
|
|
/deep/ .ant-table-body {
|
|
background: transparent !important;
|
|
}
|
|
|
|
/deep/ .ant-table-placeholder {
|
|
margin-top: 8px !important;
|
|
}
|
|
/deep/.popconfirmClassName {
|
|
z-index: 999;
|
|
width: 264px
|
|
}
|
|
/deep/ .ant-popover-inner-content .ant-popover-buttons {
|
|
display: none !important;
|
|
}
|
|
|
|
/deep/.popconfirmClassName .anticon-exclamation-circle {
|
|
display: none !important;
|
|
}
|
|
/deep/ .ant-table-fixed-header .ant-table-body-inner {
|
|
overflow: visible;
|
|
}
|
|
popconfirmmize {
|
|
z-index: 999;
|
|
}
|
|
|
|
.popconfirmmize .anticon-exclamation-circle {
|
|
display: none !important;
|
|
}
|
|
|
|
.popconfirmmize .ant-popover-message {
|
|
padding: 4px 0 36px !important;
|
|
}
|
|
/deep/ .ant-select-dropdown {
|
|
z-index: 100;
|
|
}
|
|
</style>
|
|
<style lang='less'>
|
|
.popconfirmClassName .ant-popover-message-title {
|
|
margin-bottom: 50px;
|
|
}
|
|
.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;
|
|
}
|
|
.imports-footer {
|
|
.imports-footer-wrap {
|
|
margin: 20px 0;
|
|
text-align: center;
|
|
|
|
.imports-sub {
|
|
margin-right: 20px;
|
|
}
|
|
}
|
|
}
|
|
</style> |