Merge branch 'feature_dev_20230222_FJDSS' into dev_2nd_LCYH

# Conflicts:
#	jero-boot/db/蔚来标准sql/dev_2nd_period.sql
#	jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java
This commit is contained in:
高嵩
2023-03-20 09:13:21 +08:00
19 changed files with 1956 additions and 340 deletions
+4
View File
@@ -123,8 +123,12 @@ module.exports = {
MergeAll: 'Merge All',
TreeOperation: 'Tree Operation',
essentialInformation: 'General Information',
DetailsPhasedImplementation: 'Details of the phased implementation',
Statutenumberclause: 'Statute number/clause',
OrganizationName: 'Organization Name',
EnterOrganizationDepartment: 'Please enter organization / department name',
Typeofimplementation: 'Type of implementation',
ImplementationDate: 'Implementation date',
SuperiorDepartment: 'Superior Department',
enterOrganizationCode: 'Please enter organization code',
nothing: 'Nothing',
+4
View File
@@ -125,6 +125,10 @@ module.exports = {
MergeAll: '合并所有',
TreeOperation: '树操作',
essentialInformation: '基本信息',
DetailsPhasedImplementation: '分阶段实施详情',
Statutenumberclause: '法规编号/条款',
Typeofimplementation: '实施类型',
ImplementationDate: '实施时间',
OrganizationName: '机构名称',
EnterOrganizationDepartment: '请输入机构/部门名称',
SuperiorDepartment: '上级部门',
@@ -109,7 +109,7 @@
}
})
if (this.triggerChange) {
this.$emit('change', val)
this.$emit('change', val,content)
} else {
this.$emit('input', val)
this.$emit('changeQuery', content, this.db_field_name)
@@ -225,11 +225,184 @@
</a-form-model-item>
</div>
</a-col>
</div>
</a-row>
</div>
</div>
<div>
<div class="header-text" style='margin-bottom: 0px'>
{{$t('DetailsPhasedImplementation')}}
</div>
<a-button key="submit" type="primary" @click="newlyAdded" style='float: right; z-index: 99; margin-bottom: 5px'>
{{ $t('newlyAdded') }}
</a-button>
<a-table
:loading="loading"
:pagination="false"
:data-source="dataGradto"
:columns="columnsGrading"
rowKey='id'
:scroll="{x: '100%'}"
>
<span slot="Gradoperation" slot-scope="text,result,index">
<a @click="handeredit(result,index)" style="margin-right: 10px">
{{$t('edit')}}
</a>
<a @click="deleteLib(result,index)" style="margin-right: 10px">
{{$t("deleteLib")}}
</a>
</span>
</a-table>
</div>
<a-modal
:title="$t('newlyAdded')"
:width="900"
:visible="visibleGrad"
:confirm-loading="confirmLoading"
:maskClosable="false"
@cancel="visibleGrad = false"
>
<a-form-model :rules="tablerules" :model="tabledataGrad"
ref="tableruleForm">
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span>{{$t('Statutenumberclause')}}</span>
</div>
<a-form-model-item class="itemModel" prop="standNumberOrClause">
<a-input class="box-input" v-model="tabledataGrad.standNumberOrClause"
:placeholder="$t('PleaseEnter')+$t('Statutenumberclause')"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span>{{$t('Typeofimplementation')}}</span>
</div>
<a-form-model-item class="itemModel">
<j-multi-select-tag class="box-input" v-model="tabledataGrad.implementationType"
:placeholder="$t('PleaseSelect')+$t('Typeofimplementation')"
:type="'select'"
@changeQuery='implementationTypeChange'
:triggerChange="false" dictCode="shi2_shi1_lei4_xing2"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span>{{$t('ImplementationDate')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-date-picker class="box-input" v-model="tabledataGrad.implementationDate"
:placeholder="$t('PleaseSelect')+$t('ImplementationDate')"
format="YYYY-MM-DD"
@change='dateChangeOne'
style="width: 100%"/>
<!-- :disabledDate="disabledDate"-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span>{{$t('remarks')}}</span>
</div>
<a-form-model-item class="itemModel" style="height: auto" prop="remarks">
<a-textarea :placeholder="$t('pleaseEnter')+$t('remarks')"
:rows="4" v-model="tabledataGrad.remarks"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
<template slot="footer">
<a-button key="back" @click="visibleGrad = false">
{{ $t('cancel') }}
</a-button>
<a-button key="submit" type="primary" @click="handleSubmit">
{{ $t('determine') }}
</a-button>
</template>
</a-modal>
<a-modal
:title="$t('edit')"
:width="900"
:visible="tablevisibleGrad"
:confirm-loading="confirmLoading"
:maskClosable="false"
@cancel="tablevisibleGrad = false"
>
<a-form-model :rules="tablerules" :model="tabledataGrad"
ref="tableruleFormedit">
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span>{{$t('Statutenumberclause')}}</span>
</div>
<a-form-model-item class="itemModel" prop="standNumberOrClause">
<a-input class="box-input" v-model="tabledataGrad.standNumberOrClause"
:placeholder="$t('PleaseEnter')+$t('Statutenumberclause')"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span>{{$t('Typeofimplementation')}}</span>
</div>
<a-form-model-item class="itemModel">
<j-multi-select-tag class="box-input" v-model="tabledataGrad.implementationType"
:placeholder="$t('PleaseSelect')+$t('Typeofimplementation')"
:type="'select'"
@changeQuery='implementationTypeChange'
:triggerChange="false" dictCode="shi2_shi1_lei4_xing2"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span>{{$t('ImplementationDate')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-date-picker class="box-input" v-model="tabledataGrad.implementationDate"
:placeholder="$t('PleaseSelect')+$t('ImplementationDate')"
format="YYYY-MM-DD"
@change='dateChangeOne'
style="width: 100%"/>
<!-- :disabledDate="disabledDate"-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span>{{$t('remarks')}}</span>
</div>
<a-form-model-item class="itemModel" style="height: auto" prop="remarks">
<a-textarea :placeholder="$t('pleaseEnter')+$t('remarks')"
:rows="4" v-model="tabledataGrad.remarks"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
<template slot="footer">
<a-button key="back" @click="tablevisibleGrad = false">
{{ $t('cancel') }}
</a-button>
<a-button key="submit" type="primary" @click="tablehandleSubmit">
{{ $t('determine') }}
</a-button>
</template>
</a-modal>
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"></uploadFile>
</a-form-model>
</a-spin>
@@ -266,9 +439,32 @@
},
data() {
return {
tablevisibleGrad: false,
visibleGrad: false,
loading: false,
formInline: {},
tabledataGrad: {},
dataGradto: [],
isFormInline: false,
rules: {},
tablerules: {
standNumberOrClause: [
{
// required: true,
max: 200,
message: this.$t('Statutenumberclause') + this.$t('cannotExceed') + 200 + this.$t('Characters'),
trigger: 'blur'
}
],
remarks: [
{
// required: true,
max: 1000,
message: this.$t('remarks') + this.$t('cannotExceed') + 1000 + this.$t('Characters'),
trigger: 'blur'
}
]
},
labelCol: {
xs: { span: 24 },
sm: { span: 6 }
@@ -296,13 +492,88 @@
text: this.$t('relatedInformation'),
content: []
}
]
],
columnsGrading: [
{
title: this.$t('Statutenumberclause'),
dataIndex: 'standNumberOrClause',
align: 'left',
ellipsis: true,
width: 160
},
{
title: this.$t('Typeofimplementation'),
dataIndex: 'implementationTypeText',
align: 'left',
ellipsis: true,
width: 150
},
{
title: this.$t('ImplementationDate'),
dataIndex: 'implementationDate',
align: 'left',
ellipsis: true,
width: 150
},
{
title: this.$t('remarks'),
dataIndex: 'remarks',
align: 'left',
ellipsis: true,
width: 204
},
{
title: this.$t('operation'),
align: 'left',
fixed: 'right',
width: 180,
scopedSlots: { customRender: 'Gradoperation' }
}
],
dataGrad: [],
}
},
mounted() {
},
methods: {
tablehandleSubmit(){
this.$refs.tableruleFormedit.validate((valid) => {
if(valid){
this.tablevisibleGrad = false
console.log(this.tabledataGrad)
this.dataGradto[this.tabledataIndex] = this.tabledataGrad
this.dataGradto= [... this.dataGradto]
}
})
},
deleteLib(val,index) {
let _this = this
this.$confirm({
content: _this.$t('ConfirmDelete'),
onOk() {
_this.dataGradto.splice(index,1)
_this.dataGradto = [..._this.dataGradto]
}
})
},
newlyAdded(){
this.tabledataGrad = {}
this.visibleGrad = true
},
handeredit(result,index){
this.tablevisibleGrad = true
this.tabledataIndex = index
this.tabledataGrad = JSON.parse(JSON.stringify(result))
},
handleSubmit(){
this.$refs.tableruleForm.validate(valid => {
if (valid){
this.dataGradto.push(this.tabledataGrad)
this.visibleGrad = false
}
})
},
disabledDate(current) {
return current && current < moment().subtract(1, 'day')
},
@@ -314,6 +585,7 @@
this.formInline = { ...this.formInline }
},
sumber() {
// this.postTable()
this.$refs.ruleForm.validate(valid => {
if (valid) {
this.confirmLoading = true
@@ -329,6 +601,7 @@
formInline[res] = formInline[res].join(',')
}
})
formInline.phasedImplementationDetailsEOList = this.dataGradto
postAction(url, formInline).then((res) => {
if (res.success) {
this.confirmLoading = false
@@ -361,6 +634,13 @@
dateChange(item) {
this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : ''
},
dateChangeOne(item) {
this.tabledataGrad.implementationDate = this.tabledataGrad.implementationDate ? moment(this.tabledataGrad.implementationDate).format('YYYY-MM-DD') : ''
console.log(this.tabledataGrad.implementationDate)
},
implementationTypeChange(val){
this.tabledataGrad.implementationTypeText = val
},
onChange(item) {
let dateOne = moment(this.formInline[item][0]).format('YYYY-MM-DD')
let dateTwo = moment(this.formInline[item][1]).format('YYYY-MM-DD')
@@ -479,18 +759,33 @@
}
})
},
postTable(){
let params = this.dataGradto
postAction(this.url.getDocumentInfo, params).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
}
})
},
edit(item) {
this.type = 'edit'
this.loading = true
this.getForm(() => {
getAction(this.url.getDocumentInfo, { id: item.id }).then((res) => {
if (res.success) {
this.formInline = res.result[0]
this.dataGrad = res.result[0].phasedImplementationDetailsEOList
this.dataGradto = this.dataGrad
this.loading = false
} else {
this.loading = false
}
})
})
},
add() {
this.formInline = {}
this.dataGrad = []
this.type = 'add'
this.getForm()
},
@@ -642,4 +937,13 @@
line-height: 6px;
color: #fff;
}
.table {
margin-top: 5px;
}
.page {
text-align: right;
margin-top: 20px;
}
</style>
@@ -162,9 +162,34 @@
</div>
</div>
</div>
<div class='content-box'>
<div class="content">
<div class="header-text">
{{$t('DetailsPhasedImplementation')}}
</div>
<a-table
:pagination="false"
:scroll="{x: '100%'}"
:data-source="dataGrad"
:columns="columnsGrading"
>
</a-table>
<div class="page" v-if="dataGrad.length > 0">
<a-pagination
:show-total="total => $t('total')+` ${tabletotal} `+$t('strip')"
show-quick-jumper
show-size-changer
:page-size.sync="tablepageSize"
:total="tabletotal"
:current="tablepageNo"
@change="onTableChange"
@showSizeChange="tableSizeChange"
/>
</div>
</div>
</div>
</div>
</div>
</div>
<a-modal
:title="$t('UpdateLog')"
@@ -287,7 +312,8 @@
url: {
getInfo: 'document/bussDocumentLibraryEO/getInfoById',
list: 'log/bussLogEO/page',
getTitle: '/document/bussDocumentLibraryEO/getTitle'
getTitle: '/document/bussDocumentLibraryEO/getTitle',
getPage: '/document/phasedImplementationDetailsEO/page'
},
titleHeader: '',
visibleFile: false,
@@ -319,18 +345,51 @@
],
dataSourceRelated: [],
detailList: [],
dataGrad:[],
visible: false,
serial_number: '',
confirmLoading: false,
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
downLoadImgUrl: window._CONFIG['domianWebImgURL'] + '/sys/common/download',
loading: false,
dataSource: [],
pageNo: 1,
tablepageNo: 1,
pageSize: 10,
tablepageSize: 10,
total: 0,
tabletotal: 0,
visibleRelated: false,
dataSourceFile: [],
columnsGrading: [
{
title: this.$t('Statutenumberclause'),
dataIndex: 'standNumberOrClause',
align: 'left',
ellipsis: true,
width: 300
},
{
title: this.$t('Typeofimplementation'),
dataIndex: 'implementationTypeText',
align: 'left',
ellipsis: true,
width: 150
},
{
title: this.$t('ImplementationDate'),
dataIndex: 'implementationDate',
align: 'left',
ellipsis: true,
width: 150
},
{
title: this.$t('remarks'),
dataIndex: 'remarks',
align: 'left',
ellipsis: true,
width: 350
},
],
columns: [
{
title: this.$t('ModificationContent'),
@@ -364,6 +423,7 @@
this.getTitle(function() {
_this.getInfoById()
})
this.getPage()
},
methods: {
...mapGetters(['userInfo']),
@@ -441,6 +501,23 @@
}
})
},
getPage(){
let tablequery = {
pageNo: this.tablepageNo,
pageSize: this.tablepageSize,
bussDocumentLibraryId: this.$route.query.id
}
getAction(this.url.getPage, tablequery).then((res) => {
if (res.success) {
this.dataGrad = res.result.records
this.tabletotal=res.result.total
this.loading = false
} else {
this.dataGrad = []
this.loading = false
}
})
},
clickButtonToUpload(item) {
this.loading = true
this.visibleFile = true
@@ -518,11 +595,20 @@
this.pageNo = page
this.bussLogList()
},
onTableChange(page, pageSize) {
this.tablepageNo = page
this.getPage()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.bussLogList()
},
tableSizeChange(page, pageSize) {
this.tablepageNo = 1
this.tablepageSize = pageSize
this.getPage()
},
DocumentSplitting() {
let serial_number = ''
if (this.detailList.length > 0) {
@@ -835,6 +921,10 @@
//}
/deep/ .ant-table-placeholder{
margin-top: 8px !important;
margin-top: 0px !important;
}
.text {
margin-right: 10px
}
</style>
@@ -127,7 +127,8 @@
deleteBatch: 'document/bussDocumentLibraryEO/deleteBatch', //删除
pullMessage: 'document/bussDocumentLibraryEO/pullMessage',//推送
importZipUrl: '/document/bussDocumentLibraryEO/importZip',//导入
verifyBind: '/document/bussDocumentLibraryEO/verifyBind' //验证当前的数据是否可以删除
verifyBind: '/document/bussDocumentLibraryEO/verifyBind', //验证当前的数据是否可以删除
getPage : '/document/phasedImplementationDetailsEO/page'
},
idList: []
}
@@ -72,6 +72,26 @@
v-model="queryParam.subtitle"></j-input>
</div>
</a-col>
<template v-if="toggleSearchStatus">
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('vehicleInProductionDate')">
<span>{{$t('vehicleInProductionDate')}}</span>
</div>
<a-range-picker class="box-input" v-model="queryParam.implementTimeString"
@change="onChangedate"></a-range-picker>
</div>
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('StandardImplementationDate')">
<span>{{$t('StandardImplementationDate')}}</span>
</div>
<a-range-picker class="box-input" v-model="queryParam.xin1Che1Xing2Shi2Shi1Ri4Qi1String"
@change="onChangedatet"></a-range-picker>
</div>
</a-col>
</template>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
<a-col :md="6" :sm="24">
<globalAdvancedQuery ref="globalAdvancedQueryRef"
@@ -79,6 +99,10 @@
:fieldList="fieldList"/>
<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 @click="handleToggleSearch" style="margin-left: 8px">
{{ !toggleSearchStatus ? $t('open') : $t('away') }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
</a-col>
</span>
</a-row>
@@ -328,6 +352,7 @@
title: '维护虚拟清单',
queryParam: {},
components: {},
toggleSearchStatus: false,
visibleFile: false,
transferList: false,
orderBy: '1',
@@ -439,14 +464,16 @@
title: this.$t('ImplementationDate'),
align: 'left',
width: 200,
dataIndex: 'xin1Che1Xing2Shi2Shi1Ri4Qi1',
dataIndex: 'xin1Che1Xing2Shi2Shi1Ri4Qi1String',
scopedSlots: { customRender: 'titleName' },
ellipsis: true
},
{
title: this.$t('vehicleInProductionDate'),
align: 'left',
width: 220,
dataIndex: 'implementTime',
dataIndex: 'implementTimeString',
scopedSlots: { customRender: 'titleName' },
ellipsis: true
},
{
@@ -981,7 +1008,7 @@
name: this.$t('ImplementationDate'),
headFieldCn:'标准实施日期',
headFieldEn:'New Type Execution Date',
field: 'xin1Che1Xing2Shi2Shi1Ri4Qi1',
field: 'xin1Che1Xing2Shi2Shi1Ri4Qi1String',
key: 9,
moduleFlag:this.$route.query.title == '虚拟清单详情' ? '虚拟清单详情' : '维护清单',
},
@@ -990,7 +1017,7 @@
name: this.$t('vehicleInProductionDate'),
headFieldCn:'在产车实施日期',
headFieldEn:'New Vehicle Execution Date',
field: 'implementTime',
field: 'implementTimeString',
key: 10,
moduleFlag:this.$route.query.title == '虚拟清单详情' ? '虚拟清单详情' : '维护清单',
},
@@ -1271,16 +1298,16 @@
text: this.$t('implementationCategory'),
dictCode: 'implement_type'//只要 dictCode 有值,无论 type 是什么,都显示为字典下拉框
},
{
type: 'date',
value: 'xin1Che1Xing2Shi2Shi1Ri4Qi1',
text: this.$t('ImplementationDate')
},
{
type: 'date',
value: 'implementTime',
text: this.$t('vehicleInProductionDate')
},
// {
// type: 'date',
// value: 'xin1Che1Xing2Shi2Shi1Ri4Qi1',
// text: this.$t('ImplementationDate')
// },
// {
// type: 'date',
// value: 'implementTime',
// text: this.$t('vehicleInProductionDate')
// },
{
type: 'string',
value: 'wvtaId',
@@ -1363,9 +1390,9 @@
this.getList()
},
searchReset() {
this.queryParam = {}
this.$refs.globalAdvancedQueryRef.resetLine()
this.$refs.globalAdvancedQueryRef.emitCallback()
this.queryParam = {}
this.getList()
},
//模板下载
@@ -1451,6 +1478,9 @@
}
this.getList()
},
handleToggleSearch() {
this.toggleSearchStatus = !this.toggleSearchStatus
},
getHeader(){
getAction('head/headCustomEO/list', {
moduleFlag: this.$route.query.title == '虚拟清单详情' ? '虚拟清单详情' : '维护清单'
@@ -1482,6 +1512,14 @@
item.scopedSlots = {
customRender: 'titleName'
}
}else if(item.title == '在产车实施日期'){
item.scopedSlots = {
customRender: 'titleName'
}
}else if(item.title == '标准实施日期'){
item.scopedSlots = {
customRender: 'titleName'
}
}
else if(item.title == '清单确认状态' || item.title == '任务确认状态' || item.title == '认证级别' || item.title == 'WVTA ID' ||
item.title == '责任领域' || item.title == '法规工程师' || item.title == '认证工程师' || item.title == '工程接口人'){
@@ -1516,6 +1554,12 @@
})
},
getList() {
if(this.queryParam.xin1Che1Xing2Shi2Shi1Ri4Qi1String && this.queryParam.xin1Che1Xing2Shi2Shi1Ri4Qi1String instanceof Array){
this.queryParam.xin1Che1Xing2Shi2Shi1Ri4Qi1String = this.queryParam.xin1Che1Xing2Shi2Shi1Ri4Qi1String.join(',')
}
if(this.queryParam.implementTimeString && this.queryParam.implementTimeString instanceof Array){
this.queryParam.implementTimeString = this.queryParam.implementTimeString.join(',')
}
let query = {
...this.queryParam,
...this.queryParamQuery,
@@ -1564,6 +1608,22 @@
onChange(){
this.selectedValue = this.checkedList
},
onChangedatet(values){
let StartTime = values[0].format('YYYY-MM-DD')
let EndTime = values[1].format('YYYY-MM-DD')
let array = []
array.push(StartTime,EndTime)
console.log(array)
this.queryParam.xin1Che1Xing2Shi2Shi1Ri4Qi1String = array
},
onChangedate(values){
let StartTime = values[0].format('YYYY-MM-DD')
let EndTime = values[1].format('YYYY-MM-DD')
let array = []
array.push(StartTime,EndTime)
console.log(array)
this.queryParam.implementTimeString = array
},
getcustomize(){
this.customizevisible = true
},