合并分支 'dev_third_stage' 到 'master'

Dev third stage

查看合并请求 laws-nio/laws-weilai!39
This commit is contained in:
李雪涛
2022-07-03 12:41:20 +08:00
63 changed files with 3402 additions and 755 deletions
@@ -10,7 +10,7 @@
<a-checkbox :value="item.id" class="checkbox-left"></a-checkbox>
<div class="text-text-right"
:class="{ 'null-input':item.checked }">
<div class="text-header">
<div class="text-header" @click="titleClick(item)">
<a-tooltip placement="topLeft" :mouseEnterDelay="0.5">
<template slot="title">
<span v-html="item.module_type"></span>
@@ -22,19 +22,19 @@
<span v-html="item.serial_number"></span>
</template>
<span style="cursor: pointer"
@click="titleClick(item)" v-html="item.serial_number"></span>
v-html="item.serial_number"></span>
</a-tooltip>
<a-tooltip placement="topLeft" :mouseEnterDelay="0.5">
<template slot="title">
<span v-html="item.title"></span>
</template>
<span style="cursor: pointer" v-html="item.title" @click="titleClick(item)"></span>
<span style="cursor: pointer" v-html="item.title"></span>
</a-tooltip>
<a-tooltip placement="topLeft" :mouseEnterDelay="0.5">
<template slot="title">
<span v-html="item.file_name"></span>
</template>
<span style="cursor: pointer" v-html="item.file_name" @click="titleClick(item)"></span>
<span style="cursor: pointer" v-html="item.file_name"></span>
</a-tooltip>
</div>
<a-tooltip placement="topLeft" v-if="!queryParam.selectValue" :mouseEnterDelay="0.5">
@@ -1,6 +1,7 @@
<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">
@@ -29,6 +30,7 @@
</a-col>
</span>
</a-row>
</a-form>
</div>
<div class="table-operator">
<div @click="handleAdd" class="operator-text" v-has="'params:template:add'">
@@ -200,6 +202,7 @@ export default {
methods: {
handleCancel() {
this.areaVisible=false
this.$refs['ruleForm'].resetFields()
},
handleSubmit() {
if( this.formInline.paramsTemplateName !== undefined) {
@@ -1,32 +1,34 @@
<template>
<a-card :bordered="false">
<div class="table-page-search-wrapper">
<a-row :gutter="24">
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('entryName')">
<span>{{$t('entryName')}}</span>
<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('entryName')">
<span>{{$t('entryName')}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('entryName')"
v-model="queryParam.projectName"></a-input>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('entryName')"
v-model="queryParam.projectName"></a-input>
</div>
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('ListTitle')">
<span>{{$t('ListTitle')}}</span>
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('ListTitle')">
<span>{{$t('ListTitle')}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('ListTitle')"
v-model="queryParam.title"></a-input>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('ListTitle')"
v-model="queryParam.title"></a-input>
</div>
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
<a-col :md="6" :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-row>
</a-form>
</div>
<div>
<a-table
@@ -70,290 +72,294 @@
</template>
<script>
import ExportHistory from '@/components/exporthistory/index'
import { getAction, postAction, downloadFile, deleteAction } from '@/api/manage'
import axios from 'axios'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import eventBUs from '../../../common/event'
import Vue from 'vue'
export default {
name: 'index',
components: {
ExportHistory
},
data() {
return {
token:Vue.ls.get(ACCESS_TOKEN),
loading: false,
toggleSearchStatus: false,
selectedRowKeys: [],
selectedRowKeysArray: '',
formInline: {},
rules: {
paramsTemplateName:[
{ required: true, message: this.$t('PleaseEnter')+this.$t('templateName'), trigger: 'change' },
],
},
visible: false,
dataSource: [],
confirmLoading: false,
url: {
list: 'params/report/page',
},
total: 0,
pageSize: 10,
pageNo: 1,
title: '新增',
columns: [
{
title: this.$t('entryName'),
align: 'center',
width: '10%',
dataIndex: 'projectName',
},
{
title: this.$t('ListTitle'),
align: 'center',
dataIndex: 'title',
},
{
title: this.$t('Version'),
align: 'center',
dataIndex: 'version',
},
{
title: this.$t('operation'),
align: 'center',
fixed: 'right',
width: 200,
scopedSlots: { customRender: 'operation' }
}
],
queryParam: {},
areaVisible:false,
paramsTemplateName: '',
drawerVisible: false,
titleTag: '导出历史'
}
},
mounted() {
this.getList()
},
methods: {
handleCancel() {
this.areaVisible=false
},
handleSubmit() {
if( this.formInline.paramsTemplateName !== undefined) {
this.formInline.paramsTemplateName = this.formInline.paramsTemplateName.trim()
}
this.$refs.ruleForm.validate(valid => {
if (valid) {
getAction(this.url.copy + `?id=${this.selectedRowKeys[0]}&paramsTemplateName=${this.formInline.paramsTemplateName}`, {}).then((res) => {
if (res.success) {
this.areaVisible = false
this.$message.success(res.message)
this.selectedRowKeys = []
this.getList()
} else {
this.$message.warning(res.message)
}
})
}
})
},
handleToggleSearch() {
this.toggleSearchStatus = !this.toggleSearchStatus
},
onSelectChange(value) {
this.selectedRowKeys = value
this.selectedRowKeysArray = this.selectedRowKeys.join(',')
},
// 复制
handlecody(){
this.drawerVisible=true
},
hideModal(){
this.visible = false;
},
//编辑
edit(item) {
this.$refs.addModelRef.editModel(JSON.parse(JSON.stringify(item)))
},
//删除
deleteLib(val) {
let newUrl = this.$router.resolve({
path: '/managementdetails',
query: val
})
window.open(newUrl.href, '_blank')
},
//虚拟清单名称事件
entryNameClick(item) {
this.$router.push({
path: '/ParameterTemplateList',
query: item
})
},
searchQuery() {
this.pageNo = 1
this.getList()
},
searchReset() {
this.pageNo = 1
this.queryParam = {}
this.getList()
},
pageOnChange(page, pageSize) {
this.pageNo = page
this.getList()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
},
addModelList() {
this.pageNo = 1
this.getList()
},
PersonnelSelectionChange(value, id) {
this.queryParam[value] = id
this.queryParam = { ...this.queryParam }
},
getList() {
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
...this.queryParam
}
this.loading = true
getAction(this.url.list, query).then((res) => {
if (res.success) {
if (res.result.current > 1 && res.result.records.length == 0) {
this.pageNo = res.result.current - 1
this.getList()
return
}
this.dataSource = res.result.records || []
import ExportHistory from '@/components/exporthistory/index'
import { getAction, postAction, downloadFile, deleteAction } from '@/api/manage'
import axios from 'axios'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import eventBUs from '../../../common/event'
import Vue from 'vue'
this.total = res.result.total
this.loading = false
} else {
this.loading = false
export default {
name: 'index',
components: {
ExportHistory
},
data() {
return {
token: Vue.ls.get(ACCESS_TOKEN),
loading: false,
toggleSearchStatus: false,
selectedRowKeys: [],
selectedRowKeysArray: '',
formInline: {},
rules: {
paramsTemplateName: [
{ required: true, message: this.$t('PleaseEnter') + this.$t('templateName'), trigger: 'change' }
]
},
visible: false,
dataSource: [],
confirmLoading: false,
url: {
list: 'params/report/page'
},
total: 0,
pageSize: 10,
pageNo: 1,
title: '新增',
columns: [
{
title: this.$t('entryName'),
align: 'center',
width: '10%',
dataIndex: 'projectName'
},
{
title: this.$t('ListTitle'),
align: 'center',
dataIndex: 'title'
},
{
title: this.$t('Version'),
align: 'center',
dataIndex: 'version'
},
{
title: this.$t('operation'),
align: 'center',
fixed: 'right',
width: 200,
scopedSlots: { customRender: 'operation' }
}
],
queryParam: {},
areaVisible: false,
paramsTemplateName: '',
drawerVisible: false,
titleTag: '导出历史'
}
},
mounted() {
this.getList()
},
methods: {
handleCancel() {
this.areaVisible = false
},
handleSubmit() {
if (this.formInline.paramsTemplateName !== undefined) {
this.formInline.paramsTemplateName = this.formInline.paramsTemplateName.trim()
}
})
this.$refs.ruleForm.validate(valid => {
if (valid) {
getAction(this.url.copy + `?id=${this.selectedRowKeys[0]}&paramsTemplateName=${this.formInline.paramsTemplateName}`, {}).then((res) => {
if (res.success) {
this.areaVisible = false
this.$message.success(res.message)
this.selectedRowKeys = []
this.getList()
} else {
this.$message.warning(res.message)
}
})
}
})
},
handleToggleSearch() {
this.toggleSearchStatus = !this.toggleSearchStatus
},
onSelectChange(value) {
this.selectedRowKeys = value
this.selectedRowKeysArray = this.selectedRowKeys.join(',')
},
// 复制
handlecody() {
this.drawerVisible = true
},
hideModal() {
this.visible = false
},
//编辑
edit(item) {
this.$refs.addModelRef.editModel(JSON.parse(JSON.stringify(item)))
},
//删除
deleteLib(val) {
let newUrl = this.$router.resolve({
path: '/managementdetails',
query: val
})
window.open(newUrl.href, '_blank')
},
//虚拟清单名称事件
entryNameClick(item) {
this.$router.push({
path: '/ParameterTemplateList',
query: item
})
},
searchQuery() {
this.pageNo = 1
this.getList()
},
searchReset() {
this.pageNo = 1
this.queryParam = {}
this.getList()
},
pageOnChange(page, pageSize) {
this.pageNo = page
this.getList()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
},
addModelList() {
this.pageNo = 1
this.getList()
},
PersonnelSelectionChange(value, id) {
this.queryParam[value] = id
this.queryParam = { ...this.queryParam }
},
getList() {
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
...this.queryParam
}
this.loading = true
getAction(this.url.list, query).then((res) => {
if (res.success) {
if (res.result.current > 1 && res.result.records.length == 0) {
this.pageNo = res.result.current - 1
this.getList()
return
}
this.dataSource = res.result.records || []
this.total = res.result.total
this.loading = false
} else {
this.loading = false
}
})
}
}
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
@import '~@assets/less/common.less';
.box-title-text {
line-height: 1.4;
display: flex;
align-items: center;
margin-bottom: 10px;
}
.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;
}
.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;
}
.add-input{
width: 82%;
}
.box-button {
height: 38px;
/*margin-top: 2px;*/
}
.box-input {
display: inline-block;
width: 70%;
height: 38px;
margin-top: 2px;
}
.text-operation {
margin-right: 8px;
}
.add-input {
width: 82%;
}
.page {
text-align: right;
margin-top: 20px;
}
.box-button {
height: 38px;
/*margin-top: 2px;*/
}
.box-title-text-add {
line-height: 1.4;
display: flex;
}
.text-operation {
margin-right: 8px;
}
.title-text-add {
width: 114px;
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;
margin-top: 3px;
}
.page {
text-align: right;
margin-top: 20px;
}
.box-input-add {
display: inline-block;
height: 38px;
width: 100%;
}
.box-title-text-add {
line-height: 1.4;
display: flex;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.title-text-add {
width: 114px;
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;
margin-top: 3px;
}
.Required {
color: red;
margin-right: 4px;
}
.box-input-add {
display: inline-block;
height: 38px;
width: 100%;
}
.title-text-text {
margin-top: 9px;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.formAdd {
margin-bottom: 40px;
}
.Required {
color: red;
margin-right: 4px;
}
.drawer-bootom-button {
position: absolute;
bottom: 0;
z-index:100;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
.add-text-text{
margin-top: -14px;
}
.title-text-text {
margin-top: 9px;
}
.formAdd {
margin-bottom: 40px;
}
.drawer-bootom-button {
position: absolute;
bottom: 0;
z-index: 100;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
.add-text-text {
margin-top: -14px;
}
</style>
@@ -1,6 +1,7 @@
<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">
@@ -18,6 +19,7 @@
</a-col>
</span>
</a-row>
</a-form>
</div>
<div class="table-operator">
<div @click="handleAdd" class="operator-text" v-has="'params:template:add'">
@@ -122,7 +122,7 @@
<span class="title-text-text"
:title="$t('NParameterDescription')">{{$t('NParameterDescription')}}</span>
</div>
<a-form-model-item class="itemModel" prop="description">
<a-form-model-item class="itemModel-text" prop="description">
<a-input class="box-input add-input"
style='height: 95px; width: 100%'
type="textarea"
@@ -803,7 +803,11 @@ export default {
height: 38px;
width: 100%;
}
.itemModel-text {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
@@ -1,6 +1,7 @@
<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">
@@ -38,6 +39,7 @@
</a-col>
</span>
</a-row>
</a-form>
</div>
<div class="table-operator">
<div @click="handleAdd" class="operator-text" v-has="'params:paramsInfo:add'">
@@ -51,7 +51,7 @@
<a-icon type="safety-certificate"/>
{{$t('nonConformance')}}
</div>
<div class="Virtual-detail-left-text" v-has="'projectLawsInventory:TaskParameterCollection'"
<div class="Virtual-detail-left-text" v-has="'params:manifest:page'"
:title="$t('TaskParameterCollection')"
@click="textClick(4,$t('TaskParameterCollection'))">
<a-icon type="profile"/>
@@ -80,7 +80,7 @@
@click="textClick(3,$t('nonConformance'))">
<a-icon type="safety-certificate"/>
</div>
<div class="Virtual-detail-left-text" v-has="'projectLawsInventory:TaskParameterCollection'"
<div class="Virtual-detail-left-text" v-has="'params:manifest:page'"
:title="$t('TaskParameterCollection')"
@click="textClick(4,$t('TaskParameterCollection'))">
<a-icon type="profile"/>
@@ -130,6 +130,11 @@
<a-icon type="plus"/>
{{$t('referenceparameter')}}
</div>
<!-- 保存-->
<div @click="handlePreservation(1)" class="operator-text" v-if='currentPersonRole == "dre"'>
<a-icon type="check-circle"/>
{{$t('preservation')}}
</div>
<!-- 提交-->
<div @click="handleSubmit" class="operator-text" v-if='currentPersonRole == "dre"'>
<a-icon type="check-circle"/>
@@ -157,14 +162,17 @@
<div style="width: 100%">
<!-- 表格-10控件-->
<table-collection ref="CollectionTabel" :url='url' :paramsManifest='paramsManifest' @rowValue='rowValue'
:formInline='formInline' :currentPersonRole='currentPersonRole' @value='value'
:formInline='formInline' :currentPersonRole='currentPersonRole'
@getDataSource="getDataSource"
@handlePreservation="handlePreservation"
@value='value'
@listReset='listReset' @LoginUserType='LoginUserType'/>
</div>
</a-card>
</div>
</div>
<!-- 添加--->
<a-modal v-model="areaVisible" :title="$t('ParameterLibrary')" width='750px' :footer="null">
<a-modal v-model="areaVisible" :title="$t('ParameterLibrary')" width='850px' :footer="null">
<parameter-library-add v-if='areaVisible' :paramsManifest='paramsManifest' @areaVisible='areaVisible = false'
@GetgetTableList='GetgetTableList'/>
</a-modal>
@@ -303,39 +311,39 @@
'{{$t('CollectionInitiated')}}'、'{{$t('ReturnedPerson')}}'{{$t('or')}}'{{$t('alteration')}}'
</span>
<!-- 同步上报库-->
<span v-if='jurisdiction === "HOMOTBSBK"'>
<span v-else-if='jurisdiction === "HOMOTBSBK"'>
'{{$t('Submitted')}}'{{$t('or')}}'{{$t('alteration')}}'
</span>
<!-- 截止时间-->
<span v-if='jurisdiction === "HOMOJZSJ"'>
<span v-else-if='jurisdiction === "HOMOJZSJ"'>
'{{$t('CollectionInitiated')}}'
</span>
<!-- 分配填写人 -->
<span v-if='jurisdiction === "SDTFPTXR"'>
<span v-else-if='jurisdiction === "SDTFPTXR"'>
'{{$t('handledInterface')}}'{{$t('or')}}'{{$t('Filledreturn')}}'
</span>
<!-- 引用参数-->
<span v-if='jurisdiction === "DREYYCS"'>
<span v-else-if='jurisdiction === "DREYYCS"'>
'{{$t('completed')}}'{{$t('or')}}'{{$t('ReturnedEngineer')}}'
</span>
<!-- 退回-->
<span v-if='jurisdiction === "homoTH"'>
<span v-else-if='jurisdiction === "homoTH"'>
{{$t('Submitted')}}
</span>
<span v-if='jurisdiction === "sdtTH"'>
<span v-else-if='jurisdiction === "sdtTH"'>
'{{$t('handledInterface')}}'{{$t('or')}}'{{$t('Filledreturn')}}'
</span>
<span v-if='jurisdiction === "dreTH"'>
<span v-else-if='jurisdiction === "dreTH"'>
'{{$t('completed')}}'{{$t('or')}}'{{$t('ReturnedEngineer')}}'
</span>
<!-- 强制撤回-->
<span v-if='jurisdiction === "homoQZTH"'>
<span v-else-if='jurisdiction === "homoQZTH"'>
'{{$t('handledInterface')}}'{{$t('or')}}'{{$t('Filledreturn')}}'
</span>
<span v-if='jurisdiction === "sdtQZTH"'>
<span v-else-if='jurisdiction === "sdtQZTH"'>
{{$t('completed')}}
</span>
<span v-if='jurisdiction === "dreQZTH"'>
<span v-else-if='jurisdiction === "dreQZTH"'>
{{$t('Submitted')}}
</span>
{{$t('timeoperation')}}
@@ -363,6 +371,7 @@
import axios from 'axios'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import Vue from 'vue'
import { mapGetters } from 'vuex'
export default {
name: 'ParameterItemCollectionList',
@@ -502,18 +511,44 @@
},
mounted() {
this.GetgetLoginUserType()
setTimeout(() => {
if (this.currentPersonRole == 'dre') {
this.handlePreservation()
}
}, 10000)
this.paramsManifest = JSON.parse(localStorage.getItem('paramsManifest'))
document.title = `${this.paramsManifest.title}-` + this.$t('ParameteItemCollectionList')
},
methods: {
...mapGetters(['userInfo']),
handleCancelRoleSwitching() {
this.visibleRoleSwitching = false
},
handleOkRoleSwitching() {
this.visibleRoleSwitching = false
this.currentPersonRole = this.formInlineRoleSwitching.roleSwitchingCode
localStorage.setItem('currentPersonRole', JSON.stringify(this.formInlineRoleSwitching.roleSwitchingCode))
this.selectedRowKeysValue = []
this.$refs.ruleFormRoleSwitching.validate(valid => {
if (valid) {
let query = {
userType: this.formInlineRoleSwitching.roleSwitchingCode,
paramsManifestId: this.$route.query.id,
projectId: this.$route.query.projectId,
userId: this.userInfo().id
}
this.confirmLoadingRoleSwitching = true
postAction('/params/userTypeLog/edit', query).then((res) => {
if (res.success) {
this.currentPersonRole = this.formInlineRoleSwitching.roleSwitchingCode
this.$message.success(this.$t('OperationSuccessful'))
this.visibleRoleSwitching = false
this.confirmLoadingRoleSwitching = false
localStorage.setItem('currentPersonRole', JSON.stringify(this.formInlineRoleSwitching.roleSwitchingCode))
this.selectedRowKeysValue = []
} else {
this.confirmLoadingRoleSwitching = false
this.$message.warning(this.$t('operationFailed'))
}
})
}
})
},
roleSwitchingClick() {
this.visibleRoleSwitching = true
@@ -792,13 +827,13 @@
}
return flag
},
LoginUserType(val, currentPersonRole) {
LoginUserType(val, currentPersonRole, userType) {
this.RoleType = []
if (this.currentPersonRole == '') {
this.currentPersonRole = val.length >= 1 ? val[0].value : ''
this.currentPersonRole = currentPersonRole || userType || val[0].value
}
this.RoleType = val
this.formInlineRoleSwitching.roleSwitchingCode = currentPersonRole || val[0].value
this.formInlineRoleSwitching.roleSwitchingCode = currentPersonRole || userType || val[0].value
this.formInlineRoleSwitching = { ...this.formInlineRoleSwitching }
},
// 表格所选中得行内容
@@ -843,12 +878,12 @@
.then((res) => {
if (res.data.success) {
this.textLoading = false
_this.$message.success(res.data.result)
_this.$message.success(this.$t('OperationSuccessful'))
this.areaVisibleFreeze = false
this.$refs.CollectionTabel.getTableList()
} else {
this.textLoading = false
_this.$message.warning(res.data.result)
_this.$message.warning(this.$t('operationFailed'))
}
})
.catch((error) => {
@@ -954,6 +989,7 @@
} else if (homoJurisdictionSynchronousLibrary == 0) {
this.visibleoperationFailed = true
this.jurisdiction = 'HOMOTBSBK'
this.NoEngineer = 1
}
},
// 同步上报库
@@ -969,41 +1005,103 @@
handleSubmit() {
// 填写人 权限
let dreJurisdictionSubmit = this.dreJurisdictionSubmit()
console.log(dreJurisdictionSubmit)
if (dreJurisdictionSubmit == 1) {
this.ishandleSubmit()
} else if (dreJurisdictionSubmit == 0) {
this.visibleoperationFailed = true
this.jurisdiction = 'DREYYCS'
this.NoEngineer = 1
}
},
getDataSource(data) {
this.dataSource = data
},
handlePreservation(num) {
let _this = this
let postDate = []
let data = JSON.parse(JSON.stringify(this.dataSource))
let selectedRowKeysValue = []
data.forEach(res => {
if (res.state == 'Wait Fill' || res.state == '待填写') {
selectedRowKeysValue.push(res)
}
})
for (let i = 0; i < selectedRowKeysValue.length; i++) {
let postDateobj = {}
let itemIn = Object.keys(selectedRowKeysValue[i])
for (let j = 0; j < itemIn.length; j++) {
if (itemIn[j] !== 'sdt') {
if (selectedRowKeysValue[i][itemIn[j]] instanceof Object && !(selectedRowKeysValue[i][itemIn[j]] instanceof Array)) {
postDateobj[itemIn[j]] = selectedRowKeysValue[i][itemIn[j]]
for (let k = 0; k < selectedRowKeysValue[i][itemIn[j]].list.length; k++) {
if (selectedRowKeysValue[i][itemIn[j]].list[k].type == 'pull_more') {
selectedRowKeysValue[i][itemIn[j]].list[k].dataValue = selectedRowKeysValue[i][itemIn[j]].list[k].dataValue.join(',')
}
if (selectedRowKeysValue[i][itemIn[j]].list[k].type == 'text' && selectedRowKeysValue[i][itemIn[j]].list[k].dataValue !== null) {
selectedRowKeysValue[i][itemIn[j]].list[k].dataValue = selectedRowKeysValue[i][itemIn[j]].list[k].dataValue.toString()
}
}
}
}
}
postDateobj.id = selectedRowKeysValue[i].id
postDate.push(postDateobj)
}
let configDataList = { configDataList: postDate }
if (selectedRowKeysValue && selectedRowKeysValue.length > 0) {
if (num && num == 1) {
this.textLoading = true
}
postAction('/params/collectManifest/save', configDataList).then((res) => {
if (res.success) {
if (num && num == 1) {
_this.$message.success(_this.$t('OperationSuccessful'))
this.textLoading = false
}
setTimeout(() => {
if (this.currentPersonRole == 'dre') {
this.handlePreservation()
}
}, 10000)
} else {
if (num && num == 1) {
_this.$message.warning(_this.$t('operationFailed'))
this.textLoading = false
}
}
})
}
},
// 提交数据
ishandleSubmit() {
let _this = this
let postDate = []
for (let i = 0; i < this.selectedRowKeysValue.length; i++) {
let selectedRowKeysValue = JSON.parse(JSON.stringify(this.selectedRowKeysValue))
for (let i = 0; i < selectedRowKeysValue.length; i++) {
let postDateobj = {}
let itemIn = Object.keys(this.selectedRowKeysValue[i])
let itemIn = Object.keys(selectedRowKeysValue[i])
for (let j = 0; j < itemIn.length; j++) {
if (itemIn[j] !== 'sdt') {
if (this.selectedRowKeysValue[i][itemIn[j]] instanceof Object && !(this.selectedRowKeysValue[i][itemIn[j]] instanceof Array)) {
postDateobj[itemIn[j]] = this.selectedRowKeysValue[i][itemIn[j]]
for (let k = 0; k < this.selectedRowKeysValue[i][itemIn[j]].list.length; k++) {
if (this.selectedRowKeysValue[i][itemIn[j]].list[k].type == 'pull_more') {
this.selectedRowKeysValue[i][itemIn[j]].list[k].dataValue = this.selectedRowKeysValue[i][itemIn[j]].list[k].dataValue.join(',')
if (selectedRowKeysValue[i][itemIn[j]] instanceof Object && !(selectedRowKeysValue[i][itemIn[j]] instanceof Array)) {
postDateobj[itemIn[j]] = selectedRowKeysValue[i][itemIn[j]]
for (let k = 0; k < selectedRowKeysValue[i][itemIn[j]].list.length; k++) {
if (selectedRowKeysValue[i][itemIn[j]].list[k].type == 'pull_more') {
selectedRowKeysValue[i][itemIn[j]].list[k].dataValue = selectedRowKeysValue[i][itemIn[j]].list[k].dataValue.join(',')
}
if (this.selectedRowKeysValue[i][itemIn[j]].list[k].type == 'text' && this.selectedRowKeysValue[i][itemIn[j]].list[k].dataValue !== null) {
this.selectedRowKeysValue[i][itemIn[j]].list[k].dataValue = this.selectedRowKeysValue[i][itemIn[j]].list[k].dataValue.toString()
if (selectedRowKeysValue[i][itemIn[j]].list[k].type == 'text' && selectedRowKeysValue[i][itemIn[j]].list[k].dataValue !== null) {
selectedRowKeysValue[i][itemIn[j]].list[k].dataValue = selectedRowKeysValue[i][itemIn[j]].list[k].dataValue.toString()
}
if (!this.selectedRowKeysValue[i][itemIn[j]].list[k].dataValue && this.selectedRowKeysValue[i][itemIn[j]].list[k].isMust == '1'
&& this.selectedRowKeysValue[i][itemIn[j]].list[k].isLock == '0') {
this.$message.warning(this.selectedRowKeysValue[i].nioNumber + ',' + this.$t('requiredParametersEmpty'))
if (!selectedRowKeysValue[i][itemIn[j]].list[k].dataValue && selectedRowKeysValue[i][itemIn[j]].list[k].isMust == '1'
&& selectedRowKeysValue[i][itemIn[j]].list[k].isLock == '0') {
this.$message.warning(selectedRowKeysValue[i].nioNumber + ',' + this.$t('requiredParametersEmpty'))
return
}
}
}
}
}
postDateobj.id = this.selectedRowKeysValue[i].id
postDateobj.id = selectedRowKeysValue[i].id
postDate.push(postDateobj)
}
@@ -1045,6 +1143,7 @@
})
let _this = this
let param = { ids: _array.join(',') }
this.textLoading = true
axios({
url: '/jero-boot/params/collectManifest/back',
method: 'post',
@@ -1063,14 +1162,17 @@
})
.then((res) => {
if (res.data.success) {
this.textLoading = false
_this.$message.success(_this.$t('OperationSuccessful'))
_this.GetgetTableList()
_this.selectedRowKeysValue = []
} else {
this.textLoading = false
_this.$message.warning(_this.$t('operationFailed'))
}
})
.catch((error) => {
this.textLoading = false
})
},
// 强制撤回权限
@@ -1090,6 +1192,7 @@
})
let _this = this
let param = { ids: _array.join(',') }
this.textLoading = true
axios({
url: '/jero-boot/params/collectManifest/withdraw',
method: 'post',
@@ -1108,14 +1211,17 @@
})
.then((res) => {
if (res.data.success) {
this.textLoading = false
_this.$message.success(_this.$t('OperationSuccessful'))
_this.GetgetTableList()
_this.selectedRowKeysValue = []
} else {
this.textLoading = false
_this.$message.warning(_this.$t('operationFailed'))
}
})
.catch((error) => {
this.textLoading = false
})
},
// 分配填写人
@@ -1192,6 +1298,7 @@
this.$confirm({
content: _this.$t('ConfirmBatchDeletion'),
onOk() {
_this.textLoading = true
axios({
url: '/jero-boot/params/collectManifest/deleteBatch',
method: 'post',
@@ -1214,11 +1321,14 @@
_this.selectedRowKeys = []
_this.$refs.CollectionTabel.getData()
_this.$refs.CollectionTabel.getTableList()
_this.textLoading = false
} else {
_this.textLoading = false
_this.$message.warning(_this.$t('operationFailed'))
}
})
.catch((error) => {
_this.textLoading = false
})
}
})
@@ -22,19 +22,19 @@
</a-form>
</div>
<div class="table-operator">
<div @click="handleAdd" class="operator-text">
<div @click="handleAdd" class="operator-text" v-has="'params:manifest:add'">
<a-icon type="plus"/>
{{$t('addDetailList')}}
</div>
<div @click="handleModule" class="operator-text">
<div @click="handleModule" class="operator-text" v-has="'params:manifest:change'">
<a-icon type="bulb"/>
{{$t('changeExtension')}}
</div>
<div @click="handleCody" class="operator-text">
<div @click="handleCody" class="operator-text" v-has="'params:manifest:copy'">
<a-icon type="copy"/>
{{$t('copyParamDetailList')}}
</div>
<div @click="handleDel" class="operator-text">
<div @click="handleDel" class="operator-text" v-has="'params:manifest:deleteBatch'">
<a-icon type="delete"/>
{{$t('BatchDelete')}}
</div>
@@ -63,10 +63,11 @@
</span>
</span>
<span slot="operation" slot-scope="text,record">
<a class="text-operation" @click="configure(record)">{{$t('configure')}}</a>
<a class="text-operation" @click="edit(record)">{{$t('edit')}}</a>
<a class="text-operation" @click="deleteLib(record)">{{$t('deleteLib')}}</a>
<a class="text-operation" @click="historicalVersion(record)">{{$t('historicalVersion')}}</a>
<a class="text-operation" @click="configure(record)" v-has="'params:config:list'">{{$t('configure')}}</a>
<a class="text-operation" @click="edit(record)" v-has="'params:manifest:edit'">{{$t('edit')}}</a>
<a class="text-operation" @click="deleteLib(record)"
v-has="'params:manifest:delete'">{{$t('deleteLib')}}</a>
<a class="text-operation" @click="historicalVersion(record)" v-has="'params:manifest:history'">{{$t('historicalVersion')}}</a>
</span>
</a-table>
</div>
@@ -114,6 +115,7 @@
import Vue from 'vue'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import eventBUs from '@/common/event'
import store from '@/store/'
export default {
name: 'TaskParameterCollection',
@@ -198,7 +200,8 @@
conAdd: 'params/config/addBatch',
conList: 'params/config/list',
changeExtension: 'params/manifest/changeExtension',
verifyConfig: 'params/manifest/verifyConfig'
verifyConfig: 'params/manifest/verifyConfig',
configurelist: 'params/manifest/getConfigFlag'
},
loading: false,
dataSource: [],
@@ -214,6 +217,7 @@
version: 0,
itemId: '', // 配置id
itemRow: {}, // 配置一行数据
configFlag: '',
historicalVisible: false,
historicalRow: {}, // 历史版本得数据
drawerVisible: false,
@@ -222,6 +226,22 @@
selectedRowKeysvalArray: []
}
},
created() {
if (store.getters.userInfo) {
this.$socketPublicOne.dispatch('webSocketInit')//初始化ws
}
},
watch: {
'$socketPublicOne.state.msg': {
//处理接收到的消息
handler: function(res) {
let that = this
if (res.data == '1'){
this.getlist()
}
}
}
},
mounted() {
this.getlist()
},
@@ -238,7 +258,7 @@
})
window.open(newUrl.href, '_blank')
} else {
_this.$message.success(_this.$t('NoConfigurationNotStart'))
_this.$message.warning(_this.$t('NoConfigurationNotStart'))
}
})
},
@@ -274,7 +294,7 @@
configure(item) {
this.itemId = item.id
this.itemRow = item
this.$refs.configureRef.addModel(item.id)
this.$refs.configureRef.addModel(item.id, item)
},
handleCancel(val) {
this.areaVisible = val
@@ -336,7 +356,7 @@
// 默认为0 可全部删除
let flag = 1
this.selectedRowKeysvalArray.forEach((item) => {
if (item.state !== '已完成' && val.state !== 'Finished') {
if (item.state !== '已完成' && item.state !== 'Finished') {
flag = 0
}
})
@@ -92,6 +92,8 @@
<PersonnelSelection
:query="{db_field_name:'lawEngineer',db_field_txt:$t('regulatoryEngineer')}"
:personneQuery="formInline"
:isDelete='true'
@deleteData='deleteData'
@change="PersonnelSelectionChange"
v-model="formInline.lawEngineerName"/>
</a-form-model-item>
@@ -110,6 +112,8 @@
<PersonnelSelection
:query="{db_field_name:'engineeringInterfacePerson',db_field_txt:$t('engineeringInterfacePerson')}"
:personneQuery="formInline"
:isDelete='true'
@deleteData='deleteData'
@change="PersonnelSelectionChange"
v-model="formInline.engineeringInterfacePersonName"/>
</a-form-model-item>
@@ -317,6 +321,10 @@
}
})
},
deleteData(name){
this.formInline[name] = ''
this.formInline = {...this.formInline}
},
getData() {
this.visible = true
this.getList()
@@ -5,7 +5,7 @@
class='tag-module'
ref='ruleForm'
:model='formData'
:rules='rules'
:rules="rules"
:label-col='labelCol'
:wrapper-col='wrapperCol'
>
@@ -24,21 +24,57 @@
</a-row>
<a-row :gutter='24'>
<a-col :span='9'>
<a-form-model-item ref='region' :label="$t('zoneOfApplication')" prop='region'>
<a-form-model-item class='itemModel' prop='region'>
<div class="box-title-text" style="margin-left: -58px;">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('zoneOfApplication')">{{$t('zoneOfApplication')}}</span>
</div>
<a-form-model-item class="itemModel" :prop='region'>
<!-- <a-input class="box-input"-->
<!-- :disabled="disabled"-->
<!-- v-model="formInline[item.db_field_name]"-->
<!-- :placeholder="$t('PleaseEnter')+item.db_field_txt"/>-->
<!-- <a-input-->
<!-- :placeholder="$t('PleaseEnter')+$t('parameterTemplate')"-->
<!-- v-model='form.paramsTemplateName'/>-->
<j-dict-select-tag class='box-input' v-model='form.region'
:placeholder="$t('PleaseSelect')+$t('zoneOfApplication')"
:type="'select'"
:title="$t('PleaseSelect')+$t('zoneOfApplication')"
:triggerChange='false' :dictCode="'region'"/>
</a-form-model-item>
</a-form-model-item>
</div>
<!-- <a-form-model-item ref='region' :label="$t('zoneOfApplication')" prop='region'>-->
<!-- <a-form-model-item class='itemModel' prop='region'>-->
<!-- <j-dict-select-tag class='box-input' v-model='form.region'-->
<!-- :placeholder="$t('PleaseSelect')+$t('zoneOfApplication')"-->
<!-- :type="'select'"-->
<!-- :triggerChange='false' :dictCode="'region'"/>-->
<!-- </a-form-model-item>-->
<!-- </a-form-model-item>-->
</a-col>
<a-col :span='9'>
<a-form-model-item ref='paramsTemplateName' :label="$t('parameterTemplate')" prop='paramsTemplateName'>
<a-input
:placeholder="$t('PleaseEnter')+$t('parameterTemplate')"
v-model='form.paramsTemplateName'/>
</a-form-model-item>
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('parameterTemplate')">{{$t('parameterTemplate')}}</span>
</div>
<a-form-model-item class="itemModel" :prop='region'>
<!-- <a-input class="box-input"-->
<!-- :disabled="disabled"-->
<!-- v-model="formInline[item.db_field_name]"-->
<!-- :placeholder="$t('PleaseEnter')+item.db_field_txt"/>-->
<a-input
:placeholder="$t('PleaseEnter')+$t('parameterTemplate')"
:title="$t('PleaseSelect')+$t('parameterTemplate')"
v-model='form.paramsTemplateName'/>
</a-form-model-item>
</div>
<!-- <a-form-model-item ref='paramsTemplateName' :label="$t('parameterTemplate')" prop='paramsTemplateName'>-->
<!-- <a-input-->
<!-- :placeholder="$t('PleaseEnter')+$t('parameterTemplate')"-->
<!-- v-model='form.paramsTemplateName'/>-->
<!-- </a-form-model-item>-->
</a-col>
<a-col :span='6' style='margin-top: 5px'>
<a-button class='box-button' type='primary' @click='searchQuery'>{{ $t('query') }}</a-button>
@@ -346,6 +382,89 @@
color: red;
margin-right: 4px;
}
.box-title-text {
line-height: 1.4;
display: flex;
/*align-items: center;*/
}
.title-text {
width: 114px;
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;
height: 40px;
margin-bottom: 24px;
}
.itemModel-text {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.Required {
color: red;
margin-right: 4px;
}
.title-text-text {
margin-top: 9px;
}
.header-text {
font-size: 16px;
font-weight: bold;
margin-left: 15px;
/*border-bottom: 1px #d9d9d9 dashed;*/
height: 30px;
margin-bottom: 30px;
}
.formAdd {
margin-bottom: 40px;
}
.button-text {
height: 38px;
width: calc(100% - 100px);
line-height: 38px;
background: #fff;
border: 1px #00B3BE solid;
color: #00B3BE;
}
.button-text-text {
position: absolute;
right: -10px;
top: -21px;
display: inline-block;
padding: 6px;
border-radius: 50%;
background: red;
text-align: center;
line-height: 6px;
color: #fff;
}
</style>
<style lang='less'>
.area-module {
@@ -95,9 +95,9 @@
<div class="title-text">
<!-- <span class="title-text-text" :title="$t('Required')">{{$t('Required')}}</span>-->
</div>
<a-button style="margin-right: .8rem" @click="addConfiguration(index)">{{$t('addConfiguration')}}
<a-button style="margin-right: .8rem" @click="addConfiguration(index)" :loading="loading" v-has="'params:config:add'">{{$t('addConfiguration')}}
</a-button>
<a-button @click="deleteConfiguration(item.id,index)" type="primary" :loading="confirmLoading">
<a-button @click="deleteConfiguration(item.id,index)" v-has="'params:config:delete'" type="primary" :loading="confirmLoading">
{{$t('deleteConfiguration')}}
</a-button>
</div>
@@ -146,6 +146,7 @@
formInline: {},
confirmLoading: false,
visible: false,
loading:false,
rules: {
// nioNumber:[
// { required: true, message: this.$t('PleaseEnter')+this.$t('NiONumber'), trigger: 'change' },
@@ -155,6 +156,7 @@
projectNameList: [],
title: '',
stateOne: '',
conFlag:'',
contentList: [],
paramsConfigEOList: [
{
@@ -174,6 +176,7 @@
},
mounted() {
},
methods: {
getNameList() {
@@ -185,12 +188,13 @@
}
})
},
addModel(id) {
addModel(id,item) {
this.paramsConfigEOList = []
this.visible = true
this.title = this.$t('MaintainConfigureInfo')
this.formInline = {}
this.getconList(id)
},
getconList(id) {
getAction(`${this.url.conList}?paramsManifestId=${id}`, {}).then((res) => {
@@ -217,18 +221,29 @@
})
},
addConfiguration(item) {
if (this.itemRow.configFlag) {
this.paramsConfigEOList.splice(item.displaySeq + 1, 0, {
id: '',
configName: '', // 配置名称
version: '', // 版本
carType: '', // 车型
battery: '', // 电池
motor: '' // 电机
})
} else {
this.$message.warning(this.$t('Theselectedconfiguration'))
}
this.loading = true
getAction(this.url.configurelist, { paramsManifestId: this.itemRow.id }).then((res) => {
if (res.success) {
this.conFlag = res.result
if (this.conFlag == true) {
this.paramsConfigEOList.splice(item.displaySeq + 1, 0, {
id: '',
configName: '', // 配置名称
version: '', // 版本
carType: '', // 车型
battery: '', // 电池
motor: '' // 电机
})
this.loading = false
} else {
this.loading = false
this.$message.warning(this.$t('Theselectedconfiguration'))
}
} else {
this.$message.warning(res.message)
}
})
},
deleteConfiguration(displaySeq, index) {
if (this.paramsConfigEOList.length === 1) {
@@ -252,6 +267,8 @@
},
handleCancel() {
this.visible = false
this.$refs.ruleForm.clearValidate()
this.conFlag = ''
},
handleSubmit() {
let flag = 1