Merge remote-tracking branch 'origin/master'

This commit is contained in:
zhaomeijing
2022-04-19 18:01:21 +08:00
18 changed files with 492 additions and 228 deletions
@@ -33,4 +33,10 @@ public interface SysDictItemMapper extends BaseMapper<SysDictItem> {
*/
@Update("update sys_dict_item set del_flag = #{flag,jdbcType=INTEGER} where id = #{id,jdbcType=VARCHAR}")
public void updateDictDelFlag(@Param("flag") int delFlag, @Param("id") String id);
/**根据code查数据字典具体值*/
@Select("SELECT sdi.item_value FROM sys_dict_item as sdi LEFT JOIN sys_dict as sd ON sdi.dict_id =sd.id " +
"WHERE sd.dict_code =#{dictCode} order by sort_order asc, item_value asc")
public List<String> selectItemValueByDictCode(String dictCode);
}
@@ -66,13 +66,13 @@ public class ProjectRelatedPersonnelController extends JeroController<ProjectRel
* @param projectRelatedPersonnel
* @return
*/
@AutoLog(value = "项目库-相关人员维护表-添加")
/*@AutoLog(value = "项目库-相关人员维护表-添加")
@ApiOperation(value="项目库-相关人员维护表-添加", notes="项目库-相关人员维护表-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody ProjectRelatedPersonnel projectRelatedPersonnel) {
projectRelatedPersonnelService.add(projectRelatedPersonnel);
return Result.OK("添加成功!");
}
}*/
/**
* 编辑
@@ -117,16 +117,16 @@ public class ProjectRelatedPersonnelController extends JeroController<ProjectRel
}
/**
* 通过projectId查询
* 通过id查询
*
* @param projectId
* @param id
* @return
*/
@AutoLog(value = "项目库-相关人员维护表-通过projectId查询")
@ApiOperation(value="项目库-相关人员维护表-通过projectId查询", notes="项目库-相关人员维护表-通过projectId查询")
@GetMapping(value = "/queryByProjectId")
public Result<?> queryById(@RequestParam(name="projectId",required=true) String projectId) {
List<ProjectRelatedPersonnel> projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectId(projectId);
@AutoLog(value = "项目库-相关人员维护表-通过id查询")
@ApiOperation(value="项目库-相关人员维护表-通过id查询", notes="项目库-相关人员维护表-通过id查询")
@GetMapping(value = "/queryId")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
List<ProjectRelatedPersonnel> projectRelatedPersonnel = projectRelatedPersonnelService.queryById(id);
if(projectRelatedPersonnel==null) {
return Result.error("未找到对应数据");
}
@@ -46,15 +46,11 @@ public class ProjectLibraryBase implements Serializable {
private java.lang.String studioEngineer;
@TableField(exist = false)
private java.lang.String studioEngineerName;
@TableField(exist = false)
private java.lang.String studioEngineerEnName;
/**认证工程师*/
private java.lang.String certificationEngineer;
@TableField(exist = false)
private java.lang.String certificationEngineerName;
@TableField(exist = false)
private java.lang.String certificationEngineerEnName;
/**车型平台*/
@Dict(dicCode = "vehicle_platform")
@@ -41,32 +41,25 @@ public class ProjectRelatedPersonnel implements Serializable {
private java.lang.String dutyTerritory;
/**法规工程师*/
@Excel(name = "法规工程师", width = 15,orderNum = "2")
@Excel(name = "法规工程师", width = 30,orderNum = "2")
private java.lang.String lawEngineer;
@TableField(exist = false)
private java.lang.String lawEngineerName;
@TableField(exist = false)
private java.lang.String lawEngineerEnName;
/**工程接口人*/
@Excel(name = "工程接口人", width = 15,orderNum = "3")
@Excel(name = "工程接口人", width = 30,orderNum = "3")
private java.lang.String engineeringInterfacePerson;
@TableField(exist = false)
private java.lang.String engineeringInterfacePersonName;
@TableField(exist = false)
private java.lang.String engineeringInterfacePersonEnName;
/**认证工程师*/
@Excel(name = "认证工程师", width = 15,orderNum = "4")
@Excel(name = "认证工程师", width = 30,orderNum = "4")
private java.lang.String certificationEngineer;
@TableField(exist = false)
private java.lang.String certificationEngineerName;
@TableField(exist = false)
private java.lang.String certificationEngineerEnName;
/**备注*/
@Excel(name = "备注", width = 15,orderNum = "5")
@Excel(name = "备注", width = 50,orderNum = "5")
private java.lang.String remark;
/**创建人*/
@@ -0,0 +1,30 @@
package com.jero.modules.project.enums;
public enum DictCodeEnum {
DUTY_TERRITORY("责任领域","duty_territory"),
;
String name;
String value;
DictCodeEnum(String name, String value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
@@ -17,5 +17,5 @@ public interface ProjectRelatedPersonnelMapper extends BaseMapper<ProjectRelated
IPage<ProjectRelatedPersonnel> queryPageList(IPage page, Map<String, Object> params);
List<ProjectRelatedPersonnel> queryByProjectId(String projectId);
List<ProjectRelatedPersonnel> queryById(String id);
}
@@ -29,8 +29,7 @@
plb.target_market,
plb.project_status,
plb.studio_engineer,
studiouser.realname as studio_engineer_name,
studiouser.username as studio_engineer_en_name,
studiouser.username as studio_engineer_name,
plb.certification_engineer,
plb.vehicle_platform,
plb.digital_platform,
@@ -19,8 +19,6 @@
prp.project_id,
prp.duty_territory,
prp.law_engineer,
lawuser.username,
enguser.username,
prp.engineering_interface_person,
prp.certification_engineer,
prp.remark,
@@ -32,11 +30,8 @@
<select id="queryPageList" resultType="com.jero.modules.project.entity.ProjectRelatedPersonnel">
SELECT
<include refid="select_item"/>
FROM
project_related_personnel AS prp
LEFT JOIN sys_user AS lawuser ON prp.law_engineer = lawuser.id
LEFT JOIN sys_user AS enguser ON prp.engineering_interface_person = enguser.id
<where>
<if test="params.projectId != null and params.projectId != ''">
prp.project_id=#{params.projectId}
@@ -45,15 +40,13 @@
order by prp.create_time desc
</select>
<select id="queryByProjectId" resultType="com.jero.modules.project.entity.ProjectRelatedPersonnel">
<select id="queryById" resultType="com.jero.modules.project.entity.ProjectRelatedPersonnel">
SELECT
<include refid="select_item"/>
FROM
project_related_personnel AS prp
LEFT JOIN sys_user AS lawuser ON prp.law_engineer = lawuser.id
LEFT JOIN sys_user AS enguser ON prp.engineering_interface_person = enguser.id
<where>
prp.project_id=#{projectId}
prp.id=#{id}
</where>
order by prp.create_time desc
</select>
@@ -50,10 +50,10 @@ public interface IProjectRelatedPersonnelService extends IService<ProjectRelated
/**
* 通过id查询
*
* @param projectId
* @param id
* @return
*/
List<ProjectRelatedPersonnel> queryByProjectId(String projectId);
List<ProjectRelatedPersonnel> queryById(String id);
/**
* 列表查询
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.enums.DictCodeEnum;
import com.jero.modules.project.mapper.ProjectLibraryBaseMapper;
import com.jero.modules.project.service.IProjectLibraryBaseService;
import com.jero.modules.system.entity.SysUser;
@@ -37,6 +38,9 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
@Autowired
private SysUserMapper sysUserMapper;
@Autowired
private ProjectRelatedPersonnelServiceImpl projectRelatedPersonnelService;
/**
* 保存
*
@@ -46,12 +50,23 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
@Override
public void add(ProjectLibraryBase projectLibraryBase) {
Date now = new Date();
projectLibraryBase.setCreateTime(now);
projectLibraryBase.setUpdateTime(now);
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
projectLibraryBase.setCreateUserId(sysUser.getId());
projectLibraryBase.setUpdateUserId(sysUser.getId());
save(projectLibraryBase);
//查标签内容里的责任领域数据
List<String> sysDictItemValueList = sysDictItemMapper.selectItemValueByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue());
//新建相关人员表里的责任领域数据
if (CollectionUtils.isNotEmpty(sysDictItemValueList)) {
for (String sysDictItemValue : sysDictItemValueList) {
projectRelatedPersonnelService.setDutyTerritoryValue(sysDictItemValue,projectLibraryBase.getId());
}
}
}
/**
@@ -136,41 +151,30 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
for (ProjectLibraryBase projectLibraryBase:records) {
List<SysUser> sysUsers = new ArrayList<>();
//认证工程师多个id查询
List<String> certificationEngineerIdList = Arrays.asList(projectLibraryBase.getCertificationEngineer().split(","));
if (CollectionUtils.isNotEmpty(certificationEngineerIdList)) {
certificationEngineerIdList=certificationEngineerIdList.stream().distinct().collect(Collectors.toList());
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
userqueryWrapper.in("id ", certificationEngineerIdList);
sysUsers = sysUserMapper.selectList(userqueryWrapper);
}
if (StringUtils.isNotEmpty(projectLibraryBase.getCertificationEngineer())) {
List<String> certificationEngineerIdList = Arrays.asList(projectLibraryBase.getCertificationEngineer().split(","));
if (CollectionUtils.isNotEmpty(certificationEngineerIdList)) {
certificationEngineerIdList = certificationEngineerIdList.stream().distinct().collect(Collectors.toList());
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
userqueryWrapper.in("id ", certificationEngineerIdList);
sysUsers = sysUserMapper.selectList(userqueryWrapper);
}
if(CollectionUtils.isNotEmpty(sysUsers)) {
if (CollectionUtils.isNotEmpty(sysUsers)) {
String certificationEngineerId = projectLibraryBase.getCertificationEngineer();
String certificationEngineerName=null;
String certificationEngineerEnName=null;
StringBuilder certificationName=new StringBuilder();
for (String data:certificationEngineerIdList){
String certificationEngineerName = null;
for (String data : certificationEngineerIdList) {
if (StringUtils.isNotEmpty(certificationEngineerId)) {
certificationEngineerName = sysUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getRealname()).collect(Collectors.joining(","));
certificationEngineerEnName = sysUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
}
certificationName.append(certificationEngineerName).append("(").append(certificationEngineerEnName).append(")").append(" ");
}
projectLibraryBase.setCertificationEngineerName(certificationName.toString());
projectLibraryBase.setCertificationEngineerName(certificationEngineerName);
}
StringBuilder studioCnName= new StringBuilder(projectLibraryBase.getStudioEngineerName());
StringBuilder studioEnName= new StringBuilder(projectLibraryBase.getStudioEngineerEnName());
String studioName = studioCnName.append("(").append(studioEnName).append(")").toString();
projectLibraryBase.setStudioEngineerName(studioName);
}
}
}
}
@@ -42,7 +42,6 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
/**
* 保存
*
* @param projectRelatedPersonnel
* @return
*/
@Override
@@ -56,6 +55,17 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
save(projectRelatedPersonnel);
}
/**
* 保存责任领域
*
* @return
*/
public void setDutyTerritoryValue(String sysDictItemValue,String projectId) {
ProjectRelatedPersonnel projectRelatedPersonnel=new ProjectRelatedPersonnel();
projectRelatedPersonnel.setDutyTerritory(sysDictItemValue);
projectRelatedPersonnel.setProjectId(projectId);
add(projectRelatedPersonnel);
}
/**
* 更新
*
@@ -78,9 +88,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
@@ -89,24 +99,24 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过projectId查询
* 通过id查询
*
* @param projectId
* @param id
* @return
*/
@Override
public List<ProjectRelatedPersonnel> queryByProjectId(String projectId) {
List<ProjectRelatedPersonnel> records = projectRelatedPersonnelMapper.queryByProjectId(projectId);
public List<ProjectRelatedPersonnel> queryById(String id) {
List<ProjectRelatedPersonnel> records = projectRelatedPersonnelMapper.queryById(id);
disposeData(records);
return records;
}
/**
/**
* 列表查询
*
* @return
@@ -135,91 +145,75 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
for (ProjectRelatedPersonnel projectRelatedPersonnel:records) {
//法规工程师
List<SysUser> lawEngineerUsers = new ArrayList<>();
List<String> lawEngineerIdList = Arrays.asList(projectRelatedPersonnel.getLawEngineer().split(","));
if (CollectionUtils.isNotEmpty(lawEngineerIdList)) {
lawEngineerIdList = lawEngineerIdList.stream().distinct().collect(Collectors.toList());
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
userqueryWrapper.in("id ", lawEngineerIdList);
lawEngineerUsers = sysUserMapper.selectList(userqueryWrapper);
}
if(CollectionUtils.isNotEmpty(lawEngineerUsers)) {
String lawEngineerId = projectRelatedPersonnel.getLawEngineer();
String lawEngineerName = null;
String lawEngineerEnName = null;
StringBuilder certificationName = new StringBuilder();
for (String data : lawEngineerIdList) {
if (StringUtils.isNotEmpty(lawEngineerId)) {
lawEngineerName = lawEngineerUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getRealname()).collect(Collectors.joining(","));
lawEngineerEnName = lawEngineerUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
}
certificationName.append(lawEngineerName).append("(").append(lawEngineerEnName).append(")").append(" ");
if (StringUtils.isNotEmpty(projectRelatedPersonnel.getLawEngineer())){
List<String> lawEngineerIdList = Arrays.asList(projectRelatedPersonnel.getLawEngineer().split(","));
if (CollectionUtils.isNotEmpty(lawEngineerIdList)) {
lawEngineerIdList = lawEngineerIdList.stream().distinct().collect(Collectors.toList());
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
userqueryWrapper.in("id ", lawEngineerIdList);
lawEngineerUsers = sysUserMapper.selectList(userqueryWrapper);
}
projectRelatedPersonnel.setLawEngineerName(certificationName.toString());
}
if(CollectionUtils.isNotEmpty(lawEngineerUsers)) {
String lawEngineerId = projectRelatedPersonnel.getLawEngineer();
String lawEngineerName = null;
for (String data : lawEngineerIdList) {
if (StringUtils.isNotEmpty(lawEngineerId)) {
lawEngineerName = lawEngineerUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
}
}
projectRelatedPersonnel.setLawEngineerName(lawEngineerName);
}
}
//工程接口人
List<SysUser> engineeringInterfacePersonUsers = new ArrayList<>();
List<String> engineeringInterfacePersonIdList = Arrays.asList(projectRelatedPersonnel.getEngineeringInterfacePerson().split(","));
if (CollectionUtils.isNotEmpty(engineeringInterfacePersonIdList)) {
engineeringInterfacePersonIdList = engineeringInterfacePersonIdList.stream().distinct().collect(Collectors.toList());
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
userqueryWrapper.in("id ", engineeringInterfacePersonIdList);
engineeringInterfacePersonUsers = sysUserMapper.selectList(userqueryWrapper);
}
if(CollectionUtils.isNotEmpty(engineeringInterfacePersonUsers)) {
String engineeringInterfacePersonId = projectRelatedPersonnel.getEngineeringInterfacePerson();
String engineeringInterfacePersonName = null;
String engineeringInterfacePersonEnName = null;
StringBuilder certificationName = new StringBuilder();
if (StringUtils.isNotEmpty(projectRelatedPersonnel.getEngineeringInterfacePerson())) {
List<String> engineeringInterfacePersonIdList = Arrays.asList(projectRelatedPersonnel.getEngineeringInterfacePerson().split(","));
if (CollectionUtils.isNotEmpty(engineeringInterfacePersonIdList)) {
engineeringInterfacePersonIdList = engineeringInterfacePersonIdList.stream().distinct().collect(Collectors.toList());
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
userqueryWrapper.in("id ", engineeringInterfacePersonIdList);
engineeringInterfacePersonUsers = sysUserMapper.selectList(userqueryWrapper);
}
if (CollectionUtils.isNotEmpty(engineeringInterfacePersonUsers)) {
String engineeringInterfacePersonId = projectRelatedPersonnel.getEngineeringInterfacePerson();
String engineeringInterfacePersonName = null;
for (String data : engineeringInterfacePersonIdList) {
if (StringUtils.isNotEmpty(engineeringInterfacePersonId)) {
engineeringInterfacePersonName = engineeringInterfacePersonUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getRealname()).collect(Collectors.joining(","));
engineeringInterfacePersonEnName = engineeringInterfacePersonUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
for (String data : engineeringInterfacePersonIdList) {
if (StringUtils.isNotEmpty(engineeringInterfacePersonId)) {
engineeringInterfacePersonName = engineeringInterfacePersonUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
}
}
certificationName.append(engineeringInterfacePersonName).append("(").append(engineeringInterfacePersonEnName).append(")").append(" ");
projectRelatedPersonnel.setEngineeringInterfacePersonName(engineeringInterfacePersonName);
}
projectRelatedPersonnel.setEngineeringInterfacePersonName(certificationName.toString());
}
//认证工程师
List<SysUser> certificationEngineerUsers = new ArrayList<>();
List<String> certificationEngineerIdList = Arrays.asList(projectRelatedPersonnel.getCertificationEngineer().split(","));
if (CollectionUtils.isNotEmpty(certificationEngineerIdList)) {
certificationEngineerIdList=certificationEngineerIdList.stream().distinct().collect(Collectors.toList());
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
userqueryWrapper.in("id ", certificationEngineerIdList);
certificationEngineerUsers = sysUserMapper.selectList(userqueryWrapper);
}
if(CollectionUtils.isNotEmpty(certificationEngineerUsers)) {
String certificationEngineerId = projectRelatedPersonnel.getCertificationEngineer();
String certificationEngineerName=null;
String certificationEngineerEnName=null;
StringBuilder certificationName=new StringBuilder();
for (String data:certificationEngineerIdList){
if (StringUtils.isNotEmpty(certificationEngineerId)) {
certificationEngineerName = certificationEngineerUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getRealname()).collect(Collectors.joining(","));
certificationEngineerEnName = certificationEngineerUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
}
certificationName.append(certificationEngineerName).append("(").append(certificationEngineerEnName).append(")").append(" ");
if (StringUtils.isNotEmpty(projectRelatedPersonnel.getCertificationEngineer())){
List<String> certificationEngineerIdList = Arrays.asList(projectRelatedPersonnel.getCertificationEngineer().split(","));
if (CollectionUtils.isNotEmpty(certificationEngineerIdList)) {
certificationEngineerIdList=certificationEngineerIdList.stream().distinct().collect(Collectors.toList());
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
userqueryWrapper.in("id ", certificationEngineerIdList);
certificationEngineerUsers = sysUserMapper.selectList(userqueryWrapper);
}
projectRelatedPersonnel.setCertificationEngineerName(certificationName.toString());
if(CollectionUtils.isNotEmpty(certificationEngineerUsers)) {
String certificationEngineerId = projectRelatedPersonnel.getCertificationEngineer();
String certificationEngineerName = null;
for (String data : certificationEngineerIdList) {
if (StringUtils.isNotEmpty(certificationEngineerId)) {
certificationEngineerName = certificationEngineerUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
}
}
projectRelatedPersonnel.setCertificationEngineerName(certificationEngineerName);
}
}
}
+3
View File
@@ -682,4 +682,7 @@ module.exports = {
taskList:'Task list',
TaskParameterCollection:'Task parameter collection',
nonConformance:'Non conformance',
deadlineForConfirmationOfDesignCompliance:'Deadline for confirmation of design compliance',
prehomoConfirmationDeadline:'Prehomo confirmation deadline',
verificationComplianceConfirmationDeadline:'Verification compliance confirmation deadline',
}
+3
View File
@@ -686,4 +686,7 @@ module.exports = {
taskList:'任务清单',
TaskParameterCollection:'任务参数收集',
nonConformance:'未符合项',
deadlineForConfirmationOfDesignCompliance:'设计符合性确认截止时间',
prehomoConfirmationDeadline:'PreHomo确认截止时间',
verificationComplianceConfirmationDeadline:'验证符合性确认截止时间',
}
@@ -8,16 +8,18 @@
<span>{{$t('standard')}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('standard')"
v-model="queryParam.standard"></a-input>
v-model="queryParam.serialNumber"></a-input>
</div>
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('areaOfResponsibility')">
<div class="title-text" style="width: 64px" :title="$t('areaOfResponsibility')">
<span>{{$t('areaOfResponsibility')}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('areaOfResponsibility')"
v-model="queryParam.title"></a-input>
<j-dict-select-tag class="box-input" v-model="queryParam.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'region'"/>
</div>
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
@@ -164,7 +166,7 @@
align: 'center',
dataIndex: 'CurrentProjectStatusEvaluation',
scopedSlots: { customRender: 'CurrentProjectStatusEvaluation' }
},
}
],
selectedRowKeys: [],
queryParam: {},
@@ -188,9 +190,9 @@
handleExport() {
},
CertificationDirectory(){
CertificationDirectory() {
},
}
}
}
</script>
@@ -198,66 +200,6 @@
<style lang="less" scoped>
@import '~@assets/less/common.less';
.doc-detail {
background: #fff;
height: 100%;
.Virtual-detail-header {
width: 100%;
height: 68px;
line-height: 68px;
padding: 0 32px 0 32px;
box-sizing: border-box;
display: flex;
justify-content: space-between;
border-bottom: 2px #eff1f3 solid;
background: #fff;
.Virtual-detail-title {
display: inline-block;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
font-size: 20px;
font-weight: 400;
color: #040B29;
line-height: 68px;
}
.doc-detail-right {
width: 800px;
line-height: 68px;
display: flex;
}
}
.Virtual-detail-content {
padding: 0 38px 0 38px;
box-sizing: border-box;
font-size: 16px;
.box-title-text-add {
line-height: 1.4;
}
.title-text-add {
display: inline-block;
font-weight: 500;
margin-right: 16px;
height: 42px;
line-height: 42px;
}
}
}
.header-text {
font-size: 16px;
font-weight: 400;
height: 60px;
color: #000F16;
line-height: 40px;
}
.box-title-text {
line-height: 1.4;
display: flex;
@@ -266,8 +208,7 @@
}
.title-text {
width: 20%;
min-width: 110px;
width: 32px;
color: #000F16;
display: inline-block;
font-weight: 500;
@@ -0,0 +1,276 @@
<template>
<a-modal
:title="$t('batSetting')"
:width="900"
:visible="visible"
:confirm-loading="confirmLoading"
:maskClosable="false"
@ok="handleOk"
@cancel="handleCancel"
>
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('implementationCategory')">{{$t('implementationCategory')}}</span>
</div>
<a-form-model-item class="itemModel">
<j-dict-select-tag class="box-input" v-model="formInline.implementType"
@input="handleInput('implementType')"
:placeholder="$t('PleaseSelect')+$t('implementationCategory')"
:type="'select'"
:triggerChange="false" dictCode="implement_type"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('certificationType')">{{$t('certificationType')}}</span>
</div>
<a-form-model-item class="itemModel">
<j-dict-select-tag class="box-input" v-model="formInline.attestationType"
@input="handleInput('attestationType')"
:placeholder="$t('PleaseSelect')+$t('certificationType')"
:type="'select'"
:triggerChange="false" dictCode="attestation_type"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('certificationLevel')">{{$t('certificationLevel')}}</span>
</div>
<a-form-model-item class="itemModel">
<j-dict-select-tag class="box-input" v-model="formInline.attestationRank"
@input="handleInput('attestationRank')"
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
:type="'select'"
:triggerChange="false" dictCode="attestation_rank"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
</div>
<a-form-model-item class="itemModel">
<j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory"
@input="handleInput('dutyTerritory')"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" dictCode="duty_territory"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('deadlineForConfirmationOfDesignCompliance')">
{{$t('deadlineForConfirmationOfDesignCompliance')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('deadlineForConfirmationOfDesignCompliance')"
@change="dateChange({db_field_name:'designDueDate'})"
format="YYYY-MM-DD"
v-model="formInline.designDueDate"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('prehomoConfirmationDeadline')">
{{$t('prehomoConfirmationDeadline')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('prehomoConfirmationDeadline')"
@change="dateChange({db_field_name:'prehomoDueDate'})"
format="YYYY-MM-DD"
v-model="formInline.prehomoDueDate"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('verificationComplianceConfirmationDeadline')">
{{$t('verificationComplianceConfirmationDeadline')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('verificationComplianceConfirmationDeadline')"
@change="dateChange({db_field_name:'verifyDueDate'})"
format="YYYY-MM-DD"
v-model="formInline.verifyDueDate"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</template>
<script>
import { getAction, postAction } from '@/api/manage'
import moment from 'moment'
export default {
name: 'batSetting',
props: ['url'],
data() {
return {
visible: false,
confirmLoading: false,
formInline: {},
rules: {},
ids: []
}
},
mounted() {
},
methods: {
edit(data) {
this.visible = true
this.$nextTick(() => {
this.ids = data || []
this.formInline = {}
})
},
handleOk() {
let ids = JSON.parse(JSON.stringify(this.ids))
let query = {
ids: ids.join(','),
...this.formInline
}
this.confirmLoading = true
postAction(this.url.setBatch, query).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
this.confirmLoading = false
this.$emit('batSettingList')
} else {
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
}
})
},
handleCancel() {
this.formInline = {}
this.visible = false
},
handleInput(value) {
this.$nextTick(() => {
this.formInline = { ...this.formInline }
this.$refs.ruleForm.validateField([value])
})
},
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') : ''
}
}
}
</script>
<style>
.formAdd .ant-form-item-label {
width: 130px;
}
.formAdd .ant-form-item-control-wrapper {
display: inline-block;
width: calc(100% - 130px);
}
/*.formAdd .ant-form-item {*/
/* margin-bottom: 20px;*/
/*}*/
.itemModel .ant-form-item-control-wrapper {
width: 100%;
}
.box-input .ant-select-selection--single {
height: 38px;
}
.box-input .ant-select-selection--multiple {
height: 38px;
}
.box-input .ant-select-selection__rendered {
line-height: 38px;
height: 38px;
}
.box-input .ant-select-selection--multiple .ant-select-selection__rendered > ul > li {
margin-top: 6px;
}
.box-input .ant-calendar-picker {
line-height: 38px;
height: 38px;
}
.box-input .ant-calendar-picker-input {
height: 38px;
}
.box-input .ant-input-number-input-wrap {
line-height: 38px;
height: 38px;
}
</style>
<style scoped>
.box-title-text {
line-height: 1.4;
display: flex;
}
.title-text {
width: 84px;
text-align: right;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 42px;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.title-text-text {
margin-top: 9px;
}
.formAdd {
margin-bottom: 40px;
}
</style>
@@ -198,8 +198,8 @@
<a-select-option v-for="(item, key) in regulatoryEngineerList"
:key="key"
:value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.text || item.label ">
{{ item.text || item.label }}
<span style="display: inline-block;width: 100%" :title=" item.name">
{{ item.name }}
</span>
</a-select-option>
</a-select>
@@ -218,11 +218,11 @@
<a-select :placeholder="$t('PleaseSelect')+$t('certifiedEngineer')"
:disabled="formInline.roleCode == 0 ? false : true"
v-model="formInline.homologationEngineerId">
<a-select-option v-for="(item, key) in regulatoryEngineerList"
<a-select-option v-for="(item, key) in certificationEngineerList"
:key="key"
:value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.text || item.label ">
{{ item.text || item.label }}
<span style="display: inline-block;width: 100%" :title=" item.name ">
{{ item.name}}
</span>
</a-select-option>
</a-select>
@@ -239,11 +239,11 @@
<a-select :placeholder="$t('PleaseSelect')+$t('engineeringInterfacePerson')"
:disabled="formInline.roleCode == 0 ? false : true"
v-model="formInline.engineeringInterfacePerson">
<a-select-option v-for="(item, key) in regulatoryEngineerList"
<a-select-option v-for="(item, key) in engineeringInterfacePersonList"
:key="key"
:value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.text || item.label ">
{{ item.text || item.label }}
<span style="display: inline-block;width: 100%" :title=" item.name ">
{{ item.name }}
</span>
</a-select-option>
</a-select>
@@ -569,14 +569,30 @@
rules: {},
formInline: {},
regulatoryEngineerList: [],
engineeringInterfacePersonList: [],
certificationEngineerList: [],
disabled: false
}
},
mounted() {
},
methods: {
queryPersonByProject(row) {
let query = {
projectId: this.$route.query.id,
dutyTerritory: row.dutyTerritory
}
getAction(this.url.queryPersonByProject, query).then((res) => {
if (res.success) {
this.regulatoryEngineerList = res.result.lawEngineerList
this.engineeringInterfacePersonList = res.result.engineeringInterfacePersonList
this.certificationEngineerList = res.result.certificationEngineerList
}
})
},
editModel(item) {
this.visible = true
this.queryPersonByProject(item)
this.$nextTick(() => {
this.rules = {}
this.formInline = item
@@ -680,7 +696,7 @@
},
handleSubmit() {
this.$refs.ruleForm.validate(valid => {
if (valid){
if (valid) {
let formInline = JSON.parse(JSON.stringify(this.formInline))
Object.keys(formInline).forEach(res => {
if (formInline[res] && formInline[res] instanceof Array) {
@@ -163,6 +163,7 @@
</div>
<listAddModel :url="url" @addModelList="addModelList" ref="addModelRef"/>
<listEditModel :url="url" @editModelList="addModelList" ref="editModelRef"/>
<batSetting :url="url" @batSettingList="addModelList" ref="batSettingRef"/>
<a-modal
:title="$t('ListConfirmationDeadline')"
:width="500"
@@ -227,6 +228,7 @@
import ImportFile from '@/components/ImportFile/index'
import listAddModel from './listAddModel'
import listEditModel from './listEditModel'
import batSetting from './batSetting'
import { getAction, postAction, downloadFile, deleteAction } from '@/api/manage'
import moment from 'moment'
import { mapGetters } from 'vuex'
@@ -237,7 +239,8 @@
components: {
ImportFile,
listAddModel,
listEditModel
listEditModel,
batSetting
},
data() {
return {
@@ -484,7 +487,9 @@
deleteBatch: '/project/projectLawsInventoryEO/deleteBatch',
deleteOne: '/project/projectLawsInventoryEO/delete',
updateStatusBatch: '/project/projectLawsInventoryEO/updateStatusBatch',
matchRelevantPeople: '/project/projectLawsInventoryEO/matchRelevantPeople'
matchRelevantPeople: '/project/projectLawsInventoryEO/matchRelevantPeople',
queryPersonByProject: '/project/projectRelatedPersonnel/queryPersonByProjectId',
setBatch: ''
},
loading: false,
dataSource: []
@@ -511,7 +516,11 @@
},
batSettingClick() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.$refs.batSettingRef.edit(JSON.parse(JSON.stringify(this.selectedRowKeys)))
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
handleAdd() {
this.$refs.addModelRef.addModel()
@@ -69,6 +69,7 @@
</div>
<a-form-model-item class="itemModel" prop="dutyTerritory">
<j-multi-select-tag class="box-input" v-model="formInline.dutyTerritory"
:disabled="true"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>