Merge remote-tracking branch 'origin/fix_2nd_20230103'

# Conflicts:
#	jero-web/src/views/projectManagement/components/listAddModel.vue
This commit is contained in:
高嵩
2023-01-12 21:09:27 +08:00
24 changed files with 742 additions and 63 deletions
@@ -159,3 +159,12 @@ ALTER TABLE `laws_weilai`.`params_report_detail`
-- 更新拆分详情列 展示顺序不在列表头展示sql 2022-12-30 已同步生产环境
UPDATE `laws_weilai`.`onl_cgform_field` SET `is_show_list` = 0 WHERE `id` = '1529373706885799937'
-- 项目库置顶 2023-1-12 未同步生产环境
CREATE TABLE `laws_weilai`.`top_project` (
`id` varchar(36) NOT NULL COMMENT 'id',
`project_library_base_id` varchar(36) NULL COMMENT '项目id',
`flag` varchar(255) NULL COMMENT '置顶标识',
`sort` varchar(255) NULL COMMENT '置顶排序',
PRIMARY KEY (`id`)
);
@@ -524,6 +524,10 @@ public class QueryGenerator {
//update-end-author:taoyan date:20200909 for:【bug】in 类型多值查询 不适配postgresql #1671
break;
case LIKE:
//由于适用地区数据字典的问题,所以对于适用地区条件查询单独进行处理(由于美国和澳大利亚都包含US,所以不能直接用like)
if("region".equals(name)){
name = " binary " + name;
}
queryWrapper.like(name, value);
break;
case LEFT_LIKE:
@@ -4153,7 +4153,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
StringBuilder condition = new StringBuilder();
for (String valueTemp : value.split(",")) {
valueSb.append("'" + valueTemp + "',");
condition.append(" or " + key + " like concat(concat('%','" + valueTemp + "'),'%')");
condition.append(" or " + key + " like binary concat(concat('%','" + valueTemp + "'),'%')");
}
condition.append(")");
String substring = valueSb.substring(0, valueSb.length() - 1);
@@ -136,7 +136,7 @@
<where>
parent_id = '' or parent_id is null
</where>
order by plb.sort desc, plb.create_time desc
order by plb.create_time desc
</select>
<!-- <select id="queryPageList" resultType="com.jero.modules.project.entity.ProjectLibraryBase">-->
@@ -52,6 +52,8 @@ import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
import com.jero.modules.system.util.StringUtils;
import com.jero.modules.top.entity.TopProjectEO;
import com.jero.modules.top.service.ITopProjectEOService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.poi.hssf.usermodel.HSSFSheet;
@@ -74,6 +76,7 @@ import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
@@ -157,6 +160,9 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
@Autowired
private IProjectUserBrandService projectUserBrandService;
@Autowired
private ITopProjectEOService iTopProjectEOService;
/**
* 保存
*
@@ -792,7 +798,31 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
//目标市场
List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
//置顶
List<String> idList = result.stream().map(ProjectLibraryBase::getId).collect(Collectors.toList());
List<TopProjectEO> topProjectEOList = new ArrayList<>();
if(ObjectUtils.isNotEmpty(idList)){
LambdaQueryWrapper<TopProjectEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(TopProjectEO::getCreateBy,loginUser.getUsername()).in(TopProjectEO::getProjectLibraryBaseId,idList).orderByDesc(TopProjectEO::getSort);
topProjectEOList = iTopProjectEOService.list(wrapper);
}
for(ProjectLibraryBase projectLibraryBase: result){
//置顶处理
if(ObjectUtils.isNotEmpty(topProjectEOList)){
List<TopProjectEO> collect = topProjectEOList.stream()
.filter(e -> projectLibraryBase.getId().equals(e.getProjectLibraryBaseId())
&& loginUser.getUsername().equals(e.getCreateBy()))
.collect(Collectors.toList());
if(ObjectUtils.isNotEmpty(collect)){
projectLibraryBase.setFlag(collect.get(0).getFlag());
projectLibraryBase.setSort(collect.get(0).getSort());
}else{
projectLibraryBase.setSort("0");
}
}else{
projectLibraryBase.setSort("0");
}
//目标市场
String targetMarket = getMarket(params, targetMarketList, projectLibraryBase);
//主项目的版本号
@@ -809,6 +839,16 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
+ "-" + projectVersion);
}
}
if(ObjectUtils.isEmpty(params.get("orderByField"))){
Collections.sort(result, new Comparator<ProjectLibraryBase>() {
@Override
public int compare(ProjectLibraryBase o1, ProjectLibraryBase o2) {
return -o1.getSort().compareTo(o2.getSort());
}
});
}
//所有主项目
List<ProjectLibraryBase> projectLibraryBaseListParent = projectLibraryBaseMapper.queryMaimList();
disposeData(projectLibraryBaseListParent,"",false);
@@ -1665,32 +1705,64 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
@Override
public void top(String id, String flag) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
ProjectLibraryBase projectLibraryBase = this.getById(id);
//置顶的时候将取消置顶标识传过来即:flag=1
if(TopEnum.TOP_CANCEL.getValue().equals(flag)){
TopProjectEO topProjectEO = new TopProjectEO();
topProjectEO.setProjectLibraryBaseId(id);
topProjectEO.setFlag(TopEnum.TOP_CANCEL.getValue());
topProjectEO.setCreateBy(loginUser.getUsername());
//置顶
LambdaQueryWrapper<ProjectLibraryBase> wrapper = new LambdaQueryWrapper<>();
wrapper.isNotNull(ProjectLibraryBase::getSort).orderByDesc(ProjectLibraryBase::getSort);
List<ProjectLibraryBase> list = this.list(wrapper);
LambdaQueryWrapper<TopProjectEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(TopProjectEO::getCreateBy,loginUser.getUsername()).orderByDesc(TopProjectEO::getSort);
List<TopProjectEO> list = iTopProjectEOService.list(wrapper);
if(list.size() != 0){
String sort = list.get(list.size() - 1).getSort();
String sort = list.get(0).getSort();
int sortTemp = Integer.valueOf(sort) + 1;
projectLibraryBase.setSort(String.valueOf(sortTemp));
topProjectEO.setSort(String.valueOf(sortTemp));
}else{
//首个置顶的项目排序为1
projectLibraryBase.setSort("1");
topProjectEO.setSort("1");
}
projectLibraryBase.setFlag(TopEnum.TOP_CANCEL.getValue());
this.updateById(projectLibraryBase);
iTopProjectEOService.save(topProjectEO);
}else{
//取消置顶
LambdaUpdateWrapper<ProjectLibraryBase> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.in(ProjectLibraryBase::getId,id);
updateWrapper.set(ProjectLibraryBase::getSort,null).set(ProjectLibraryBase::getFlag,null);
this.update(projectLibraryBase,updateWrapper);
LambdaUpdateWrapper<TopProjectEO> wrapper = new LambdaUpdateWrapper<>();
wrapper.in(TopProjectEO::getCreateBy,loginUser.getUsername()).in(TopProjectEO::getProjectLibraryBaseId,id);
iTopProjectEOService.remove(wrapper);
}
}
// @Override
// public void top(String id, String flag) {
// ProjectLibraryBase projectLibraryBase = this.getById(id);
// //置顶的时候将取消置顶标识传过来即:flag=1
// if(TopEnum.TOP_CANCEL.getValue().equals(flag)){
// //置顶
// LambdaQueryWrapper<ProjectLibraryBase> wrapper = new LambdaQueryWrapper<>();
// wrapper.isNotNull(ProjectLibraryBase::getSort).orderByDesc(ProjectLibraryBase::getSort);
// List<ProjectLibraryBase> list = this.list(wrapper);
// if(list.size() != 0){
// String sort = list.get(list.size() - 1).getSort();
// int sortTemp = Integer.valueOf(sort) + 1;
// projectLibraryBase.setSort(String.valueOf(sortTemp));
// }else{
// //首个置顶的项目排序为1
// projectLibraryBase.setSort("1");
// }
// projectLibraryBase.setFlag(TopEnum.TOP_CANCEL.getValue());
// this.updateById(projectLibraryBase);
//
// }else{
// //取消置顶
// LambdaUpdateWrapper<ProjectLibraryBase> updateWrapper = new LambdaUpdateWrapper<>();
// updateWrapper.in(ProjectLibraryBase::getId,id);
// updateWrapper.set(ProjectLibraryBase::getSort,null).set(ProjectLibraryBase::getFlag,null);
// this.update(projectLibraryBase,updateWrapper);
// }
// }
@Override
public List<String> getVersionsInfo(String id) {
@@ -0,0 +1,79 @@
package com.jero.modules.top.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* @Description: 项目库置顶关联表
* @Author: jero-boot
* @Date: 2023-01-12
* @Version: V1.0
*/
@Data
@TableName("top_project")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="top_project对象", description="项目库置顶关联表")
public class TopProjectEO implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
/**项目id*/
@Excel(name = "项目id", width = 15)
@ApiModelProperty(value = "项目id")
private java.lang.String projectLibraryBaseId;
/**置顶标识*/
@Excel(name = "置顶标识", width = 15)
@ApiModelProperty(value = "置顶标识")
private java.lang.String flag;
/**置顶排序*/
@Excel(name = "置顶排序", width = 15)
@ApiModelProperty(value = "置顶排序")
private java.lang.String sort;
}
@@ -0,0 +1,17 @@
package com.jero.modules.top.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.top.entity.TopProjectEO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 项目库置顶关联表
* @Author: jero-boot
* @Date: 2023-01-12
* @Version: V1.0
*/
public interface TopProjectEOMapper extends BaseMapper<TopProjectEO> {
}
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.top.mapper.TopProjectEOMapper">
<resultMap id="TopProjectEOResultMap" type="com.jero.modules.top.entity.TopProjectEO">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="project_library_base_id" property="projectLibraryBaseId" />
<result column="flag" property="flag" />
<result column="sort" property="sort" />
</resultMap>
</mapper>
@@ -0,0 +1,61 @@
package com.jero.modules.top.service;
import com.jero.modules.top.entity.TopProjectEO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 项目库置顶关联表
* @Author: jero-boot
* @Date: 2023-01-12
* @Version: V1.0
*/
public interface ITopProjectEOService extends IService<TopProjectEO> {
/**
* 保存
*
* @param topProjectEO
* @return
*/
void add(TopProjectEO topProjectEO);
/**
* 更新
*
* @param topProjectEO
* @return
*/
void editById(TopProjectEO topProjectEO);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
TopProjectEO queryById(String id);
/**
* 列表查询
*
* @return
*/
List<TopProjectEO> queryList();
}
@@ -0,0 +1,89 @@
package com.jero.modules.top.service.impl;
import com.jero.modules.top.entity.TopProjectEO;
import com.jero.modules.top.mapper.TopProjectEOMapper;
import com.jero.modules.top.service.ITopProjectEOService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 项目库置顶关联表
* @Author: jero-boot
* @Date: 2023-01-12
* @Version: V1.0
*/
@Service
public class TopProjectEOServiceImpl extends ServiceImpl<TopProjectEOMapper, TopProjectEO> implements ITopProjectEOService {
/**
* 保存
*
* @param topProjectEO
* @return
*/
@Override
public void add(TopProjectEO topProjectEO) {
Date now = new Date();
topProjectEO.setCreateTime(now);
topProjectEO.setUpdateTime(now);
save(topProjectEO);
}
/**
* 更新
*
* @param topProjectEO
* @return
*/
@Override
public void editById(TopProjectEO topProjectEO) {
Date now = new Date();
topProjectEO.setUpdateTime(now);
saveOrUpdate(topProjectEO);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public TopProjectEO queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<TopProjectEO> queryList() {
return list();
}
}
+1 -1
View File
@@ -1369,7 +1369,7 @@ module.exports = {
CuiBan:'CuiBan',
brand:'Brand',
allsubitemsitem:'Whether to delete all subitems under this item',
contactTheFounder:'Contact the founder',
contactTheFounder:'Contact author',
certificationCategoryNumber: 'certification Category Number',
historicalrecord:'historical Record',
Referenceparametercolumn:'Reference Parameter Column',
+1 -1
View File
@@ -1476,7 +1476,7 @@ module.exports = {
columnforced:'确认强制撤回?',
brand:'品牌',
allsubitemsitem:'该项目下拥有子项目是否全部删除',
contactTheFounder:'联系创建人',
contactTheFounder:'联系作者',
customize:'自定义表头',
customColumn:'自定义列',
}
@@ -95,16 +95,26 @@
<a-col :md="4" :xs="24" style="margin-bottom: 12px;">
<a-select :placeholder="$t('matchRules')" :value="item.rule"
:getPopupContainer="node=>node.parentNode" @change="handleRuleChange(item,$event)">
<!-- 等于-->
<a-select-option value="eq">{{$t('beEqualTo')}}</a-select-option>
<a-select-option value="like">{{$t('contain')}}</a-select-option>
<a-select-option value="right_like">{{$t('withStart')}}</a-select-option>
<a-select-option value="left_like">{{$t('withEnd')}}</a-select-option>
<a-select-option value="in">{{$t('in')}}</a-select-option>
<!-- 包含-->
<a-select-option v-if="item.type != 'date'" value="like">{{$t('contain')}}</a-select-option>
<!-- 以..开始-->
<a-select-option v-if="item.type == 'string'" value="right_like">{{$t('withStart')}}</a-select-option>
<!-- 以..结尾-->
<a-select-option v-if="item.type == 'string'" value="left_like">{{$t('withEnd')}}</a-select-option>
<!-- 在...中-->
<a-select-option v-if="item.type == 'string'" value="in">{{$t('in')}}</a-select-option>
<!-- 不等于-->
<a-select-option value="ne">{{$t('notEqual')}}</a-select-option>
<a-select-option value="gt">{{$t('granter')}}</a-select-option>
<a-select-option value="ge">{{$t('greaterOrEqual')}}</a-select-option>
<a-select-option value="lt">{{$t('less')}}</a-select-option>
<a-select-option value="le">{{$t('lessOrEqual')}}</a-select-option>
<!-- 大于-->
<a-select-option v-if="item.type == 'date'" value="gt">{{$t('granter')}}</a-select-option>
<!-- 大于等于-->
<a-select-option v-if="item.type == 'date'" value="ge">{{$t('greaterOrEqual')}}</a-select-option>
<!-- 小于-->
<a-select-option v-if="item.type == 'date'" value="lt">{{$t('less')}}</a-select-option>
<!-- 小于等于-->
<a-select-option v-if="item.type == 'date'" value="le">{{$t('lessOrEqual')}}</a-select-option>
</a-select>
</a-col>
@@ -885,7 +885,7 @@
}
::v-deep .ant-table-body {
background: transparent !important;
//background: transparent !important;
}
.textfield {
@@ -31,7 +31,10 @@
</div>
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
<a-col :md="12" :sm="24">
<a-col :md="6" :sm="24">
<globalAdvancedQuery ref="globalAdvancedQueryRef"
@handleSuperQuery="handleSuperQuery"
: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-col>
@@ -42,7 +45,7 @@
<a-table
:columns="columns"
rowKey="id"
:scroll="{x: 800}"
:scroll="{x: 800,y:600}"
:data-source="dataList"
:pagination="false"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,columnTitle:' ' }"
@@ -72,13 +75,17 @@
<script>
import { getAction, postAction } from '@/api/manage'
import globalAdvancedQuery from '@/components/globalAdvancedQuery/index'
export default {
name: 'transferList',
components: {},
components: {
globalAdvancedQuery
},
props: ['url'],
data() {
return {
toggleSearchStatus: false,
visible: false,
queryParam: {},
confirmLoading: false,
@@ -86,29 +93,161 @@ export default {
columns: [
{
title: this.$t('standard'),
align: 'center',
align: 'left',
dataIndex: 'serialNumber',
width: 100,
fixed: 'left',
scopedSlots: { customRender: 'standard' }
},
{
title: this.$t('title'),
align: 'center',
align: 'left',
dataIndex: 'title',
width: 100,
fixed: 'left',
scopedSlots: { customRender: 'titleName' }
},
{
title: this.$t('subtitle'),
align: 'center',
align: 'left',
dataIndex: 'subtitle',
ellipsis: true,
width: 150
},
{
title: this.$t('zoneOfApplication'),
align: 'left',
dataIndex: 'region_dictText',
width: 150,
ellipsis: true
},
{
title: this.$t('correspondingStandard'),
align: 'left',
dataIndex: 'correspondingStandard',
width: 150,
ellipsis: true
},
{
title: this.$t('implementationCategory'),
align: 'left',
dataIndex: 'implementType_dictText',
width: 150,
ellipsis: true
},
{
title: this.$t('ImplementationDate'),
align: 'left',
width: 200,
dataIndex: 'xin1Che1Xing2Shi2Shi1Ri4Qi1',
ellipsis: true
},
{
title: this.$t('vehicleInProductionDate'),
align: 'left',
width: 220,
dataIndex: 'implementTime',
ellipsis: true
},
{
title: this.$t('certificationType'),
align: 'left',
dataIndex: 'attestationType_dictText',
width: 180,
ellipsis: true
},
{
title: this.$t('certificationLevel'),
align: 'left',
dataIndex: 'attestationRank_dictText',
width: 180,
ellipsis: true
},
{
title: this.$t('applicableSupplement'),
align: 'left',
width: 220,
dataIndex: 'applicableSupplement',
ellipsis: true
},
{
title: 'WVTA ID',
align: 'left',
dataIndex: 'wvtaId',
width: 180,
ellipsis: true
},
{
title: this.$t('areaOfResponsibility'),
align: 'center',
align: 'left',
ellipsis: true,
dataIndex: 'dutyTerritory_dictText'
dataIndex: 'dutyTerritory_dictText',
width: 180
},
],
fieldList: [
{
type: 'string',
value: 'subtitle',
text: this.$t('subtitle')
},
{
type: '',
value: 'region',
text: this.$t('zoneOfApplication'),
dictCode: 'region'//只要 dictCode 有值,无论 type 是什么,都显示为字典下拉框
},
{
type: 'string',
value: 'correspondingStandard',
text: this.$t('correspondingStandard')
},
{
type: '',
value: 'implementType',
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: '',
value: 'attestationType',
text: this.$t('certificationType'),
dictCode: 'attestation_type'//只要 dictCode 有值,无论 type 是什么,都显示为字典下拉框
},
{
type: '',
value: 'attestationRank',
text: this.$t('certificationLevel'),
dictCode: 'attestation_rank'//只要 dictCode 有值,无论 type 是什么,都显示为字典下拉框
},
{
type: 'string',
value: 'applicableSupplement',
text: this.$t('applicableSupplement')
},
{
type: 'string',
value: 'wvtaId',
text: 'WVTA ID'
},
{
type: '',
value: 'dutyTerritory',
text: this.$t('areaOfResponsibility'),
dictCode: 'duty_territory'//只要 dictCode 有值,无论 type 是什么,都显示为字典下拉框
},
],
dataList: [],
content: [],
loading: false,
@@ -122,6 +261,9 @@ export default {
},
methods: {
handleToggleSearch() {
this.toggleSearchStatus = !this.toggleSearchStatus
},
transferModel(id) {
this.visible = true
this.dummyInventoryBaseId = id
@@ -137,6 +279,9 @@ export default {
this.pageNo = 1
this.queryParam = {}
this.replacePage()
this.$refs.globalAdvancedQueryRef.resetLine()
this.$refs.globalAdvancedQueryRef.emitCallback()
},
onChange(page, pageSize) {
this.pageNo = page
@@ -147,10 +292,24 @@ export default {
this.pageSize = pageSize
this.replacePage()
},
handleSuperQuery(params, matchType) {
let sqp = {}
if (!params || (params && params.length == 0)) {
sqp['superQueryParams'] = ''
this.$refs.globalAdvancedQueryRef.superQueryFlag = false
} else {
this.$refs.globalAdvancedQueryRef.superQueryFlag = true
sqp['superQueryParams'] = encodeURI(JSON.stringify(params))
sqp['superQueryMatchType'] = matchType
}
this.queryParamQuery = sqp
this.replacePage()
},
replacePage() {
let query = {
// pageNo: this.pageNo,
// pageSize: this.pageSize,
...this.queryParamQuery,
...this.queryParam,
dummyInventoryBaseId: this.dummyInventoryBaseId
}
@@ -1130,9 +1130,9 @@
overflow: visible;
}
::v-deep .ant-table-body {
padding-bottom: 7px;
}
//::v-deep .ant-table-body {
// padding-bottom: 7px;
//}
::v-deep .ant-table-body-inner {
padding-bottom: 16px;
@@ -748,7 +748,7 @@
.box-input {
display: inline-block;
width: calc(100% - 64px);
width: calc(100% - 126px);
height: 38px;
margin-top: 2px;
}
@@ -33,7 +33,7 @@
<span class="title-text-text"
:title="$t('remarks')">{{$t('remarks')}}</span>
</div>
<a-form-model-item class="itemModel" :prop="!disabled?'certificationProgressRemark':''">
<a-form-model-item class="itemModel remarkbox" :prop="!disabled?'certificationProgressRemark':''">
<a-textarea
:placeholder="$t('PleaseEnter')+$t('remarks')"
:disabled="disabled"
@@ -159,7 +159,7 @@ export default {
.box-input {
display: inline-block;
height: 38px;
width: 100%;
width: 128%;
}
.itemModel {
@@ -171,7 +171,9 @@ export default {
.title-text-text {
margin-top: 9px;
}
/deep/ .remarkbox .ant-form-item-control{
width: 128%;
}
.headerText {
margin-left: 30px;
color: #040B29;
@@ -12,7 +12,7 @@
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="12" :sm="8">
<a-col :md="12" :sm="5">
<div class="box-title-text">
<div class="title-text" :title="$t('standard')">
<span>{{$t('standard')}}</span>
@@ -22,7 +22,7 @@
</div>
</a-col>
<template v-if="toggleSearchStatus">
<a-col :md="12" :sm="8">
<a-col :md="12" :sm="5">
<div class="box-title-text">
<div class="title-text" :title="$t('title')">
<span>{{$t('title')}}</span>
@@ -31,7 +31,7 @@
v-model="queryParam.title"></a-input>
</div>
</a-col>
<a-col :md="12" :sm="8">
<a-col :md="12" :sm="5">
<div class="box-title-text">
<div class="title-text" :title="$t('status')">
<span>{{$t('status')}}</span>
@@ -312,6 +312,7 @@
.title-text {
width: 110px;
min-width: 110px;
color: #000F16;
display: inline-block;
font-weight: 500;
@@ -326,8 +327,9 @@
.box-input {
display: inline-block;
width: 100%;
width: 70%;
height: 38px;
margin-top: 2px;
}
.box-button {
@@ -2426,7 +2426,7 @@
.box-input {
display: inline-block;
width: 70%;
width: calc(100% - 126px);
height: 38px;
margin-top: 2px;
}
@@ -2550,9 +2550,9 @@
/*::v-deep .ant-table-fixed-right .ant-table-body-inner {*/
/* overflow-y: scroll;*/
/*}*/
::v-deep .ant-table-body {
padding-bottom: 7px;
}
//::v-deep .ant-table-body {
// padding-bottom: 7px;
//}
::v-deep .ant-table-body-inner {
padding-bottom: 16px;
@@ -23,7 +23,7 @@
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" style="width: 64px" :title="$t('areaOfResponsibility')">
<div class="title-text" :title="$t('areaOfResponsibility')">
<span>{{$t('areaOfResponsibility')}}</span>
</div>
<j-dict-select-tag class="box-input" v-model="queryParam.dutyTerritory"
@@ -331,7 +331,7 @@
.box-input {
display: inline-block;
width: 70%;
width: calc(100% - 126px);
height: 38px;
margin-top: 2px;
}
@@ -32,6 +32,9 @@
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
<a-col :md="12" :sm="24">
<globalAdvancedQuery ref="globalAdvancedQueryRef"
@handleSuperQuery="handleSuperQuery"
: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-col>
@@ -42,10 +45,10 @@
<a-table
:columns="columns"
rowKey="id"
:scroll="{x: 800}"
:scroll="{x: 800,y:600}"
:data-source="dataList"
:pagination="false"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,columnTitle:' ' }"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,columnTitle:'' }"
:loading="loading">
</a-table>
@@ -72,10 +75,13 @@
<script>
import { getAction, postAction } from '@/api/manage'
import globalAdvancedQuery from '@/components/globalAdvancedQuery/index'
export default {
name: 'transferList',
components: {},
components: {
globalAdvancedQuery
},
props: ['url'],
data() {
return {
@@ -86,29 +92,161 @@ export default {
columns: [
{
title: this.$t('standard'),
align: 'center',
align: 'left',
dataIndex: 'serialNumber',
width: 100,
fixed: 'left',
scopedSlots: { customRender: 'standard' }
},
{
title: this.$t('title'),
align: 'center',
align: 'left',
dataIndex: 'title',
width: 100,
fixed: 'left',
scopedSlots: { customRender: 'titleName' }
},
{
title: this.$t('subtitle'),
align: 'center',
align: 'left',
dataIndex: 'subtitle',
ellipsis: true,
width: 150
},
{
title: this.$t('zoneOfApplication'),
align: 'left',
dataIndex: 'region_dictText',
width: 150,
ellipsis: true
},
{
title: this.$t('correspondingStandard'),
align: 'left',
dataIndex: 'correspondingStandard',
width: 150,
ellipsis: true
},
{
title: this.$t('implementationCategory'),
align: 'left',
dataIndex: 'implementType_dictText',
width: 150,
ellipsis: true
},
{
title: this.$t('ImplementationDate'),
align: 'left',
width: 200,
dataIndex: 'xin1Che1Xing2Shi2Shi1Ri4Qi1',
ellipsis: true
},
{
title: this.$t('vehicleInProductionDate'),
align: 'left',
width: 220,
dataIndex: 'implementTime',
ellipsis: true
},
{
title: this.$t('certificationType'),
align: 'left',
dataIndex: 'attestationType_dictText',
width: 180,
ellipsis: true
},
{
title: this.$t('certificationLevel'),
align: 'left',
dataIndex: 'attestationRank_dictText',
width: 180,
ellipsis: true
},
{
title: this.$t('applicableSupplement'),
align: 'left',
width: 220,
dataIndex: 'applicableSupplement',
ellipsis: true
},
{
title: 'WVTA ID',
align: 'left',
dataIndex: 'wvtaId',
width: 180,
ellipsis: true
},
{
title: this.$t('areaOfResponsibility'),
align: 'center',
align: 'left',
ellipsis: true,
dataIndex: 'dutyTerritory_dictText'
dataIndex: 'dutyTerritory_dictText',
width: 180
},
],
fieldList: [
{
type: 'string',
value: 'subtitle',
text: this.$t('subtitle')
},
{
type: '',
value: 'region',
text: this.$t('zoneOfApplication'),
dictCode: 'region'//只要 dictCode 有值无论 type 是什么都显示为字典下拉框
},
{
type: 'string',
value: 'correspondingStandard',
text: this.$t('correspondingStandard')
},
{
type: '',
value: 'implementType',
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: '',
value: 'attestationType',
text: this.$t('certificationType'),
dictCode: 'attestation_type'//只要 dictCode 有值无论 type 是什么都显示为字典下拉框
},
{
type: '',
value: 'attestationRank',
text: this.$t('certificationLevel'),
dictCode: 'attestation_rank'//只要 dictCode 有值无论 type 是什么都显示为字典下拉框
},
{
type: 'string',
value: 'applicableSupplement',
text: this.$t('applicableSupplement')
},
{
type: 'string',
value: 'wvtaId',
text: 'WVTA ID'
},
{
type: '',
value: 'dutyTerritory',
text: this.$t('areaOfResponsibility'),
dictCode: 'duty_territory'//只要 dictCode 有值无论 type 是什么都显示为字典下拉框
},
],
dataList: [],
content: [],
loading: false,
@@ -137,6 +275,8 @@ export default {
this.pageNo = 1
this.queryParam = {}
this.replacePage()
this.$refs.globalAdvancedQueryRef.resetLine()
this.$refs.globalAdvancedQueryRef.emitCallback()
},
onChange(page, pageSize) {
this.pageNo = page
@@ -147,10 +287,24 @@ export default {
this.pageSize = pageSize
this.replacePage()
},
handleSuperQuery(params, matchType) {
let sqp = {}
if (!params || (params && params.length == 0)) {
sqp['superQueryParams'] = ''
this.$refs.globalAdvancedQueryRef.superQueryFlag = false
} else {
this.$refs.globalAdvancedQueryRef.superQueryFlag = true
sqp['superQueryParams'] = encodeURI(JSON.stringify(params))
sqp['superQueryMatchType'] = matchType
}
this.queryParamQuery = sqp
this.replacePage()
},
replacePage() {
let query = {
// pageNo: this.pageNo,
// pageSize: this.pageSize,
...this.queryParamQuery,
...this.queryParam,
dummyInventoryBaseId: this.dummyInventoryBaseId
}
@@ -45,7 +45,7 @@
<a-form-model-item class="itemModel" prop='projectVersion'>
<a-select
class="box-input propbox"
style="width: 100%"
style="width: 109%"
v-model='formData.projectVersion'
:placeholder="$t('PleaseSelect')+$t('relatedProjectVersion')">
<!-- <a-select-option :value="null">{{$t('pleaseSelect')}}</a-select-option>-->
@@ -66,13 +66,13 @@
<!-- <a-col :span='6'>-->
<!-- </a-col>-->
</a-row>
<a-row :gutter="24" style="border-bottom: 1px #f5f5f5 solid;margin-bottom: 10px">
<a-row :gutter="24" style="border-bottom: 1px #e8e8e8 solid;margin-bottom: 10px">
<a-col :span="22">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('explain')">{{$t('explain')}}</span>
</div>
<a-form-model-item class="itemModel" prop="explanation">
<a-form-model-item class="itemModel explainbox" prop="explanation">
<a-textarea
:placeholder="$t('PleaseEnter')+$t('explain')"
v-model.trim="formData.explanation" :rows="4"/>
@@ -467,7 +467,7 @@
.diolag-area {
.table-area {
margin: 20px 0;
//margin: 20px 0;
.action-edit {
margin-right: 10px;
@@ -481,6 +481,9 @@
/deep/.propbox .ant-form-explain{
margin-top: -17px !important;
}
/deep/.explainbox .ant-form-item-control{
width: 104%;
}
.drawer-bootom-button {
position: absolute;
bottom: 0;
@@ -506,7 +509,7 @@
}
.title-text {
width: 84px;
width: 100px;
text-align: right;
display: inline-block;
font-weight: 500;
@@ -263,6 +263,9 @@
onSelectChange(selectedRowKeys, selectedRowKeysDate) {
this.selectedRowKeysDate = selectedRowKeysDate
this.selectedRowKeys = selectedRowKeys
if (this.selectedRowKeys.length > 1) {
this.selectedRowKeys.shift()
}
},
handleTableChange(val) {
console.log(',,,')