花名册管理
parent
c51bd4bc1e
commit
2667592b63
|
@ -87,6 +87,57 @@ public class ProProjectInfo extends BaseEntity
|
|||
@Excel(name = "纬度")
|
||||
private String latitude;
|
||||
|
||||
@Excel(name = "技术负责人")
|
||||
private String techLeader;
|
||||
@Excel(name = "技术负责人联系电话")
|
||||
private String techLeaderPhone;
|
||||
@Excel(name = "省份")
|
||||
private String province;
|
||||
@Excel(name = "城市")
|
||||
private String city;
|
||||
@Excel(name = "区县")
|
||||
private String district;
|
||||
|
||||
public String getTechLeader() {
|
||||
return techLeader;
|
||||
}
|
||||
|
||||
public void setTechLeader(String techLeader) {
|
||||
this.techLeader = techLeader;
|
||||
}
|
||||
|
||||
public String getTechLeaderPhone() {
|
||||
return techLeaderPhone;
|
||||
}
|
||||
|
||||
public void setTechLeaderPhone(String techLeaderPhone) {
|
||||
this.techLeaderPhone = techLeaderPhone;
|
||||
}
|
||||
|
||||
public String getProvince() {
|
||||
return province;
|
||||
}
|
||||
|
||||
public void setProvince(String province) {
|
||||
this.province = province;
|
||||
}
|
||||
|
||||
public String getCity() {
|
||||
return city;
|
||||
}
|
||||
|
||||
public void setCity(String city) {
|
||||
this.city = city;
|
||||
}
|
||||
|
||||
public String getDistrict() {
|
||||
return district;
|
||||
}
|
||||
|
||||
public void setDistrict(String district) {
|
||||
this.district = district;
|
||||
}
|
||||
|
||||
/** 项目工期 */
|
||||
@Excel(name = "项目工期")
|
||||
private Long projectTimeLimit;
|
||||
|
|
|
@ -57,6 +57,33 @@ public class ProProjectInfoSubdeptsUsers extends BaseEntity
|
|||
@Excel(name = "工人姓名")
|
||||
private String userName;
|
||||
|
||||
/** 联系电话 */
|
||||
@Excel(name = "联系电话")
|
||||
private String userPhone;
|
||||
|
||||
/** 证件类型(字典) */
|
||||
@Excel(name = "证件类型(字典)")
|
||||
private String certificateType;
|
||||
|
||||
/** 证件号码 */
|
||||
@Excel(name = "证件号码")
|
||||
private String certificateCode;
|
||||
|
||||
/** 班组编号(外键) */
|
||||
@Excel(name = "班组编号")
|
||||
private Long subDeptGroup;
|
||||
|
||||
@Excel(name = "班组")
|
||||
private String subDeptGroupName;
|
||||
|
||||
public String getSubDeptGroupName() {
|
||||
return subDeptGroupName;
|
||||
}
|
||||
|
||||
public void setSubDeptGroupName(String subDeptGroupName) {
|
||||
this.subDeptGroupName = subDeptGroupName;
|
||||
}
|
||||
|
||||
/** 工种类型 */
|
||||
@Excel(name = "工种类型")
|
||||
private String craftType;
|
||||
|
@ -65,6 +92,67 @@ public class ProProjectInfoSubdeptsUsers extends BaseEntity
|
|||
@Excel(name = "工种岗位")
|
||||
private String craftPost;
|
||||
|
||||
/** 民族 */
|
||||
@Excel(name = "民族")
|
||||
private String nation;
|
||||
|
||||
/** 年龄 */
|
||||
@Excel(name = "年龄")
|
||||
private Long age;
|
||||
|
||||
/** 性别 */
|
||||
@Excel(name = "性别")
|
||||
private String sex;
|
||||
|
||||
/** 文化程度(字典) */
|
||||
@Excel(name = "文化程度(字典)")
|
||||
private String educationalType;
|
||||
|
||||
/** 出生日期 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date birthDay;
|
||||
|
||||
/** 籍贯 */
|
||||
@Excel(name = "籍贯")
|
||||
private String nativePlace;
|
||||
|
||||
/** 家庭地址 */
|
||||
@Excel(name = "家庭地址")
|
||||
private String address;
|
||||
|
||||
/** 紧急联系人 */
|
||||
@Excel(name = "紧急联系人")
|
||||
private String emergencyContact;
|
||||
|
||||
/** 紧急联系人电话 */
|
||||
@Excel(name = "紧急联系人电话")
|
||||
private String contactPhone;
|
||||
|
||||
/** 工资卡银行 */
|
||||
@Excel(name = "工资卡银行")
|
||||
private String bankName;
|
||||
|
||||
/** 工资卡号 */
|
||||
@Excel(name = "工资卡号")
|
||||
private String bankCardNo;
|
||||
|
||||
/** 开户网点 */
|
||||
@Excel(name = "开户网点")
|
||||
private String bankOffice;
|
||||
|
||||
/** 身份证头像面 */
|
||||
@Excel(name = "身份证头像面")
|
||||
private String certificatePhoto1;
|
||||
|
||||
/** 身份证国徽面 */
|
||||
@Excel(name = "身份证国徽面")
|
||||
private String certificatePhoto2;
|
||||
|
||||
/** 人脸识别头像 */
|
||||
@Excel(name = "人脸识别头像")
|
||||
private String faceImage;
|
||||
|
||||
/** 学习状态 */
|
||||
@Excel(name = "学习状态")
|
||||
private String eduStatus;
|
||||
|
@ -115,6 +203,15 @@ public class ProProjectInfoSubdeptsUsers extends BaseEntity
|
|||
{
|
||||
return id;
|
||||
}
|
||||
public void setComId(Long comId)
|
||||
{
|
||||
this.comId = comId;
|
||||
}
|
||||
|
||||
public Long getComId()
|
||||
{
|
||||
return comId;
|
||||
}
|
||||
public void setProjectId(Long projectId)
|
||||
{
|
||||
this.projectId = projectId;
|
||||
|
@ -133,6 +230,15 @@ public class ProProjectInfoSubdeptsUsers extends BaseEntity
|
|||
{
|
||||
return subDeptId;
|
||||
}
|
||||
public void setSubDeptType(String subDeptType)
|
||||
{
|
||||
this.subDeptType = subDeptType;
|
||||
}
|
||||
|
||||
public String getSubDeptType()
|
||||
{
|
||||
return subDeptType;
|
||||
}
|
||||
public void setSubDeptName(String subDeptName)
|
||||
{
|
||||
this.subDeptName = subDeptName;
|
||||
|
@ -151,6 +257,15 @@ public class ProProjectInfoSubdeptsUsers extends BaseEntity
|
|||
{
|
||||
return userId;
|
||||
}
|
||||
public void setUserType(String userType)
|
||||
{
|
||||
this.userType = userType;
|
||||
}
|
||||
|
||||
public String getUserType()
|
||||
{
|
||||
return userType;
|
||||
}
|
||||
public void setUserName(String userName)
|
||||
{
|
||||
this.userName = userName;
|
||||
|
@ -160,6 +275,42 @@ public class ProProjectInfoSubdeptsUsers extends BaseEntity
|
|||
{
|
||||
return userName;
|
||||
}
|
||||
public void setUserPhone(String userPhone)
|
||||
{
|
||||
this.userPhone = userPhone;
|
||||
}
|
||||
|
||||
public String getUserPhone()
|
||||
{
|
||||
return userPhone;
|
||||
}
|
||||
public void setCertificateType(String certificateType)
|
||||
{
|
||||
this.certificateType = certificateType;
|
||||
}
|
||||
|
||||
public String getCertificateType()
|
||||
{
|
||||
return certificateType;
|
||||
}
|
||||
public void setCertificateCode(String certificateCode)
|
||||
{
|
||||
this.certificateCode = certificateCode;
|
||||
}
|
||||
|
||||
public String getCertificateCode()
|
||||
{
|
||||
return certificateCode;
|
||||
}
|
||||
public void setSubDeptGroup(Long subDeptGroup)
|
||||
{
|
||||
this.subDeptGroup = subDeptGroup;
|
||||
}
|
||||
|
||||
public Long getSubDeptGroup()
|
||||
{
|
||||
return subDeptGroup;
|
||||
}
|
||||
public void setCraftType(String craftType)
|
||||
{
|
||||
this.craftType = craftType;
|
||||
|
@ -178,6 +329,141 @@ public class ProProjectInfoSubdeptsUsers extends BaseEntity
|
|||
{
|
||||
return craftPost;
|
||||
}
|
||||
public void setNation(String nation)
|
||||
{
|
||||
this.nation = nation;
|
||||
}
|
||||
|
||||
public String getNation()
|
||||
{
|
||||
return nation;
|
||||
}
|
||||
public void setAge(Long age)
|
||||
{
|
||||
this.age = age;
|
||||
}
|
||||
|
||||
public Long getAge()
|
||||
{
|
||||
return age;
|
||||
}
|
||||
public void setSex(String sex)
|
||||
{
|
||||
this.sex = sex;
|
||||
}
|
||||
|
||||
public String getSex()
|
||||
{
|
||||
return sex;
|
||||
}
|
||||
public void setEducationalType(String educationalType)
|
||||
{
|
||||
this.educationalType = educationalType;
|
||||
}
|
||||
|
||||
public String getEducationalType()
|
||||
{
|
||||
return educationalType;
|
||||
}
|
||||
public void setBirthDay(Date birthDay)
|
||||
{
|
||||
this.birthDay = birthDay;
|
||||
}
|
||||
|
||||
public Date getBirthDay()
|
||||
{
|
||||
return birthDay;
|
||||
}
|
||||
public void setNativePlace(String nativePlace)
|
||||
{
|
||||
this.nativePlace = nativePlace;
|
||||
}
|
||||
|
||||
public String getNativePlace()
|
||||
{
|
||||
return nativePlace;
|
||||
}
|
||||
public void setAddress(String address)
|
||||
{
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
public String getAddress()
|
||||
{
|
||||
return address;
|
||||
}
|
||||
public void setEmergencyContact(String emergencyContact)
|
||||
{
|
||||
this.emergencyContact = emergencyContact;
|
||||
}
|
||||
|
||||
public String getEmergencyContact()
|
||||
{
|
||||
return emergencyContact;
|
||||
}
|
||||
public void setContactPhone(String contactPhone)
|
||||
{
|
||||
this.contactPhone = contactPhone;
|
||||
}
|
||||
|
||||
public String getContactPhone()
|
||||
{
|
||||
return contactPhone;
|
||||
}
|
||||
public void setBankName(String bankName)
|
||||
{
|
||||
this.bankName = bankName;
|
||||
}
|
||||
|
||||
public String getBankName()
|
||||
{
|
||||
return bankName;
|
||||
}
|
||||
public void setBankCardNo(String bankCardNo)
|
||||
{
|
||||
this.bankCardNo = bankCardNo;
|
||||
}
|
||||
|
||||
public String getBankCardNo()
|
||||
{
|
||||
return bankCardNo;
|
||||
}
|
||||
public void setBankOffice(String bankOffice)
|
||||
{
|
||||
this.bankOffice = bankOffice;
|
||||
}
|
||||
|
||||
public String getBankOffice()
|
||||
{
|
||||
return bankOffice;
|
||||
}
|
||||
public void setCertificatePhoto1(String certificatePhoto1)
|
||||
{
|
||||
this.certificatePhoto1 = certificatePhoto1;
|
||||
}
|
||||
|
||||
public String getCertificatePhoto1()
|
||||
{
|
||||
return certificatePhoto1;
|
||||
}
|
||||
public void setCertificatePhoto2(String certificatePhoto2)
|
||||
{
|
||||
this.certificatePhoto2 = certificatePhoto2;
|
||||
}
|
||||
|
||||
public String getCertificatePhoto2()
|
||||
{
|
||||
return certificatePhoto2;
|
||||
}
|
||||
public void setFaceImage(String faceImage)
|
||||
{
|
||||
this.faceImage = faceImage;
|
||||
}
|
||||
|
||||
public String getFaceImage()
|
||||
{
|
||||
return faceImage;
|
||||
}
|
||||
public void setEduStatus(String eduStatus)
|
||||
{
|
||||
this.eduStatus = eduStatus;
|
||||
|
@ -277,41 +563,39 @@ public class ProProjectInfoSubdeptsUsers extends BaseEntity
|
|||
this.projectName = projectName;
|
||||
}
|
||||
|
||||
public Long getComId() {
|
||||
return comId;
|
||||
}
|
||||
|
||||
public void setComId(Long comId) {
|
||||
this.comId = comId;
|
||||
}
|
||||
|
||||
public String getSubDeptType() {
|
||||
return subDeptType;
|
||||
}
|
||||
|
||||
public void setSubDeptType(String subDeptType) {
|
||||
this.subDeptType = subDeptType;
|
||||
}
|
||||
|
||||
public String getUserType() {
|
||||
return userType;
|
||||
}
|
||||
|
||||
public void setUserType(String userType) {
|
||||
this.userType = userType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("id", getId())
|
||||
.append("comId", getComId())
|
||||
.append("projectId", getProjectId())
|
||||
.append("subDeptId", getSubDeptId())
|
||||
.append("subDeptType", getSubDeptType())
|
||||
.append("subDeptName", getSubDeptName())
|
||||
.append("userId", getUserId())
|
||||
.append("userType", getUserType())
|
||||
.append("userName", getUserName())
|
||||
.append("userPhone", getUserPhone())
|
||||
.append("certificateType", getCertificateType())
|
||||
.append("certificateCode", getCertificateCode())
|
||||
.append("subDeptGroup", getSubDeptGroup())
|
||||
.append("craftType", getCraftType())
|
||||
.append("craftPost", getCraftPost())
|
||||
.append("nation", getNation())
|
||||
.append("age", getAge())
|
||||
.append("sex", getSex())
|
||||
.append("educationalType", getEducationalType())
|
||||
.append("birthDay", getBirthDay())
|
||||
.append("nativePlace", getNativePlace())
|
||||
.append("address", getAddress())
|
||||
.append("emergencyContact", getEmergencyContact())
|
||||
.append("contactPhone", getContactPhone())
|
||||
.append("bankName", getBankName())
|
||||
.append("bankCardNo", getBankCardNo())
|
||||
.append("bankOffice", getBankOffice())
|
||||
.append("certificatePhoto1", getCertificatePhoto1())
|
||||
.append("certificatePhoto2", getCertificatePhoto2())
|
||||
.append("faceImage", getFaceImage())
|
||||
.append("eduStatus", getEduStatus())
|
||||
.append("eduFilePath", getEduFilePath())
|
||||
.append("eduSignPath", getEduSignPath())
|
||||
|
|
|
@ -22,7 +22,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</resultMap>
|
||||
|
||||
<sql id="selectProProjectInfoDeptsVo">
|
||||
select pd.id, pd.project_id, pi.project_name, pd.dept_type, pd.dept_name, pd.dept_code, leader, phone, pd.is_del, pd.create_by, pd.create_time, pd.update_by, pd.update_time, pd.remark from pro_project_info_depts pd
|
||||
select pd.id, pd.project_id, pi.project_name, pd.dept_type, pd.dept_name, pd.dept_code, pd.leader, pd.phone, pd.is_del, pd.create_by, pd.create_time, pd.update_by, pd.update_time, pd.remark
|
||||
from pro_project_info_depts pd
|
||||
left join pro_project_info pi on pi.id = pd.project_id
|
||||
left join sys_dept sd on sd.dept_id = pi.com_id
|
||||
</sql>
|
||||
|
|
|
@ -23,6 +23,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="projectPersonPhone" column="project_person_phone" />
|
||||
<result property="longitude" column="longitude" />
|
||||
<result property="latitude" column="latitude" />
|
||||
|
||||
<result property="techLeader" column="tech_leader" />
|
||||
<result property="techLeaderPhone" column="tech_leader_phone" />
|
||||
<result property="province" column="province" />
|
||||
<result property="city" column="city" />
|
||||
<result property="district" column="district" />
|
||||
|
||||
<result property="projectTimeLimit" column="project_time_limit" />
|
||||
<result property="totalInvestment" column="total_investment" />
|
||||
<result property="floorArea" column="floor_area" />
|
||||
|
@ -72,7 +79,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</resultMap>
|
||||
|
||||
<sql id="selectProProjectInfoVo">
|
||||
select pi.id, pi.com_id, sd.dept_name as com_name, pi.dis_dept_id, pi.project_name, pi.project_code, pi.simple_name, pi.project_type, pi.project_level, pi.project_regional, pi.project_package, pi.project_address, pi.project_nature, pi.licence_number, pi.project_person, pi.project_person_phone, pi.longitude, pi.latitude, pi.project_time_limit, pi.total_investment, pi.floor_area, pi.total_output_value, pi.planned_completion_time, pi.scheduled_start_time, pi.actual_operating_time, pi.actual_completion_time, pi.contract_amount, pi.paid_amount, pi.on_account_amount, pi.project_schedule, pi.project_summarize, pi.project_qr_code, pi.project_status, pi.project_sort, pi.is_del, pi.create_by, pi.create_time, pi.update_by, pi.update_time, pi.remark
|
||||
select pi.id, pi.com_id, sd.dept_name as com_name, pi.dis_dept_id, pi.project_name, pi.project_code,
|
||||
pi.tech_leader,pi.tech_leader_phone,pi.province,pi.city,pi.district,
|
||||
pi.simple_name, pi.project_type, pi.project_level, pi.project_regional, pi.project_package, pi.project_address, pi.project_nature, pi.licence_number, pi.project_person, pi.project_person_phone, pi.longitude, pi.latitude, pi.project_time_limit, pi.total_investment, pi.floor_area, pi.total_output_value, pi.planned_completion_time, pi.scheduled_start_time, pi.actual_operating_time, pi.actual_completion_time, pi.contract_amount, pi.paid_amount, pi.on_account_amount, pi.project_schedule, pi.project_summarize, pi.project_qr_code, pi.project_status, pi.project_sort, pi.is_del, pi.create_by, pi.create_time, pi.update_by, pi.update_time, pi.remark
|
||||
from pro_project_info pi
|
||||
left join sys_dept sd on sd.dept_id = pi.com_id
|
||||
</sql>
|
||||
|
@ -88,6 +97,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="projectName != null and projectName != ''"> and pi.project_name like concat('%', #{projectName}, '%')</if>
|
||||
<if test="projectCode != null and projectCode != ''"> and pi.project_code = #{projectCode}</if>
|
||||
<if test="simpleName != null and simpleName != ''"> and pi.simple_name like concat('%', #{simpleName}, '%')</if>
|
||||
|
||||
<if test="techLeader != null and techLeader != ''"> and pi.tech_leader like concat('%', #{techLeader}, '%')</if>
|
||||
<if test="techLeaderPhone != null and techLeaderPhone != ''"> and pi.tech_leader_phone like concat('%', #{techLeaderPhone}, '%')</if>
|
||||
<if test="province != null and province != ''"> and pi.province like concat('%', #{province}, '%')</if>
|
||||
<if test="city != null and city != ''"> and pi.city like concat('%', #{city}, '%')</if>
|
||||
<if test="district != null and district != ''"> and pi.district like concat('%', #{district}, '%')</if>
|
||||
|
||||
<if test="projectType != null and projectType != ''"> and pi.project_type = #{projectType}</if>
|
||||
<if test="projectLevel != null and projectLevel != ''"> and pi.project_level = #{projectLevel}</if>
|
||||
<if test="projectPerson != null and projectPerson != ''"> and pi.project_person = #{projectPerson}</if>
|
||||
|
@ -102,6 +118,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<select id="selectProProjectInfoById" parameterType="Long" resultMap="ProProjectInfoResult">
|
||||
select pi.id, pi.com_id, sd.dept_name as com_name, pi.dis_dept_id, pi.project_name,
|
||||
pi.project_code, pi.simple_name, pi.project_type, pi.project_level, pi.project_regional, pi.project_package, pi.project_address, pi.project_nature,
|
||||
pi.tech_leader,pi.tech_leader_phone,pi.province,pi.city,pi.district,
|
||||
pi.licence_number, pi.project_person, pi.project_person_phone, pi.longitude, pi.latitude, pi.project_time_limit, pi.total_investment,
|
||||
pi.floor_area, pi.total_output_value, pi.planned_completion_time, pi.scheduled_start_time, pi.actual_operating_time, pi.actual_completion_time,
|
||||
pi.contract_amount, pi.paid_amount, pi.on_account_amount, pi.project_schedule, pi.project_summarize, pi.project_qr_code, pi.project_status,
|
||||
|
@ -135,6 +152,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="projectPersonPhone != null">project_person_phone,</if>
|
||||
<if test="longitude != null">longitude,</if>
|
||||
<if test="latitude != null">latitude,</if>
|
||||
|
||||
<if test="techLeader != null">tech_leader,</if>
|
||||
<if test="techLeaderPhone != null">tech_leader_phone,</if>
|
||||
<if test="province != null">province,</if>
|
||||
<if test="city != null">city,</if>
|
||||
<if test="district != null">district,</if>
|
||||
|
||||
<if test="projectTimeLimit != null">project_time_limit,</if>
|
||||
<if test="totalInvestment != null">total_investment,</if>
|
||||
<if test="floorArea != null">floor_area,</if>
|
||||
|
@ -176,6 +200,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="projectPersonPhone != null">#{projectPersonPhone},</if>
|
||||
<if test="longitude != null">#{longitude},</if>
|
||||
<if test="latitude != null">#{latitude},</if>
|
||||
|
||||
<if test="techLeader != null">#{techLeader},</if>
|
||||
<if test="techLeaderPhone != null">#{techLeaderPhone},</if>
|
||||
<if test="province != null">#{province},</if>
|
||||
<if test="city != null">#{city},</if>
|
||||
<if test="district != null">#{district},</if>
|
||||
|
||||
<if test="projectTimeLimit != null">#{projectTimeLimit},</if>
|
||||
<if test="totalInvestment != null">#{totalInvestment},</if>
|
||||
<if test="floorArea != null">#{floorArea},</if>
|
||||
|
@ -220,6 +251,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="projectPersonPhone != null">project_person_phone = #{projectPersonPhone},</if>
|
||||
<if test="longitude != null">longitude = #{longitude},</if>
|
||||
<if test="latitude != null">latitude = #{latitude},</if>
|
||||
|
||||
<if test="techLeader != null">tech_leader = #{techLeader},</if>
|
||||
<if test="techLeaderPhone != null">tech_leader_phone = #{techLeaderPhone},</if>
|
||||
<if test="province != null">province = #{province},</if>
|
||||
<if test="city != null">city = #{city},</if>
|
||||
<if test="district != null">district = #{district},</if>
|
||||
|
||||
|
||||
<if test="projectTimeLimit != null">project_time_limit = #{projectTimeLimit},</if>
|
||||
<if test="totalInvestment != null">total_investment = #{totalInvestment},</if>
|
||||
<if test="floorArea != null">floor_area = #{floorArea},</if>
|
||||
|
|
|
@ -15,8 +15,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="userId" column="user_id" />
|
||||
<result property="userType" column="user_type" />
|
||||
<result property="userName" column="user_name" />
|
||||
<result property="userPhone" column="user_phone" />
|
||||
<result property="certificateType" column="certificate_type" />
|
||||
<result property="certificateCode" column="certificate_code" />
|
||||
<result property="subDeptGroup" column="sub_dept_group" />
|
||||
<result property="subDeptGroupName" column="sub_dept_group_name"/>
|
||||
<result property="craftType" column="craft_type" />
|
||||
<result property="craftPost" column="craft_post" />
|
||||
<result property="nation" column="nation" />
|
||||
<result property="age" column="age" />
|
||||
<result property="sex" column="sex" />
|
||||
<result property="educationalType" column="educational_type" />
|
||||
<result property="birthDay" column="birth_day" />
|
||||
<result property="nativePlace" column="native_place" />
|
||||
<result property="address" column="address" />
|
||||
<result property="emergencyContact" column="emergency_contact" />
|
||||
<result property="contactPhone" column="contact_phone" />
|
||||
<result property="bankName" column="bank_name" />
|
||||
<result property="bankCardNo" column="bank_card_no" />
|
||||
<result property="bankOffice" column="bank_office" />
|
||||
<result property="certificatePhoto1" column="certificate_photo1" />
|
||||
<result property="certificatePhoto2" column="certificate_photo2" />
|
||||
<result property="faceImage" column="face_image" />
|
||||
<result property="eduStatus" column="edu_status" />
|
||||
<result property="eduFilePath" column="edu_file_path" />
|
||||
<result property="eduSignPath" column="edu_sign_path" />
|
||||
|
@ -35,7 +55,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</resultMap>
|
||||
|
||||
<sql id="selectProProjectInfoSubdeptsUsersVo">
|
||||
select psu.id, psu.com_id, psu.project_id, pi.project_name, psu.sub_dept_id, psu.sub_dept_type, psu.sub_dept_name, psu.user_id, psu.user_type, psu.user_name, psu.craft_type, psu.craft_post, psu.edu_status, psu.edu_file_path, psu.edu_sign_path, psu.edu_date, psu.approve_status, psu.use_status, psu.sub_step, psu.illness_status, psu.sup_illness_status, psu.is_del, psu.create_by, psu.create_time, psu.update_by, psu.update_time, psu.remark from pro_project_info_subdepts_users psu
|
||||
select psu.id, psu.com_id, psu.project_id, pi.project_name, psu.sub_dept_id, psu.sub_dept_type,
|
||||
psu.sub_dept_name, psu.user_id, psu.user_type, psu.user_name, psu.craft_type, psu.craft_post, psu.edu_status,
|
||||
psu.edu_file_path, psu.edu_sign_path, psu.edu_date, psu.approve_status, psu.use_status, psu.sub_step, psu.illness_status,
|
||||
psu.sup_illness_status, psu.is_del, psu.create_by, psu.create_time, psu.update_by, psu.update_time,
|
||||
psu.user_phone,psu.certificate_type,psu.certificate_code,psu.sub_dept_group,psu.sub_dept_group_name,psu.nation,psu.age,psu.sex,
|
||||
psu.educational_type,psu.birth_day,psu.native_place,psu.address,psu.emergency_contact,psu.contact_phone,
|
||||
psu.bank_name,psu.bank_card_no,psu.bank_office,psu.certificate_photo1,psu.certificate_photo2,psu.face_image,
|
||||
psu.remark
|
||||
from pro_project_info_subdepts_users psu
|
||||
left join pro_project_info pi on pi.id = psu.project_id
|
||||
left join sys_dept sd on sd.dept_id = pi.com_id
|
||||
</sql>
|
||||
|
@ -74,11 +102,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="comId != null">com_id,</if>
|
||||
<if test="projectId != null">project_id,</if>
|
||||
<if test="subDeptId != null">sub_dept_id,</if>
|
||||
<if test="subDeptType != null">sub_dept_type,</if>
|
||||
<if test="subDeptName != null">sub_dept_name,</if>
|
||||
<if test="userId != null">user_id,</if>
|
||||
<if test="userType != null">user_type,</if>
|
||||
<if test="userName != null">user_name,</if>
|
||||
<if test="userPhone != null">user_phone,</if>
|
||||
<if test="certificateType != null">certificate_type,</if>
|
||||
<if test="certificateCode != null">certificate_code,</if>
|
||||
<if test="subDeptGroup != null">sub_dept_group,</if>
|
||||
<if test="subDeptGroupName != null">sub_dept_group_name,</if>
|
||||
<if test="craftType != null">craft_type,</if>
|
||||
<if test="craftPost != null">craft_post,</if>
|
||||
<if test="nation != null">nation,</if>
|
||||
<if test="age != null">age,</if>
|
||||
<if test="sex != null">sex,</if>
|
||||
<if test="educationalType != null">educational_type,</if>
|
||||
<if test="birthDay != null">birth_day,</if>
|
||||
<if test="nativePlace != null">native_place,</if>
|
||||
<if test="address != null">address,</if>
|
||||
<if test="emergencyContact != null">emergency_contact,</if>
|
||||
<if test="contactPhone != null">contact_phone,</if>
|
||||
<if test="bankName != null">bank_name,</if>
|
||||
<if test="bankCardNo != null">bank_card_no,</if>
|
||||
<if test="bankOffice != null">bank_office,</if>
|
||||
<if test="certificatePhoto1 != null">certificate_photo1,</if>
|
||||
<if test="certificatePhoto2 != null">certificate_photo2,</if>
|
||||
<if test="faceImage != null">face_image,</if>
|
||||
<if test="eduStatus != null">edu_status,</if>
|
||||
<if test="eduFilePath != null">edu_file_path,</if>
|
||||
<if test="eduSignPath != null">edu_sign_path,</if>
|
||||
|
@ -99,11 +149,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="comId != null">#{comId},</if>
|
||||
<if test="projectId != null">#{projectId},</if>
|
||||
<if test="subDeptId != null">#{subDeptId},</if>
|
||||
<if test="subDeptType != null">#{subDeptType},</if>
|
||||
<if test="subDeptName != null">#{subDeptName},</if>
|
||||
<if test="userId != null">#{userId},</if>
|
||||
<if test="userType != null">#{userType},</if>
|
||||
<if test="userName != null">#{userName},</if>
|
||||
<if test="userPhone != null">#{userPhone},</if>
|
||||
<if test="certificateType != null">#{certificateType},</if>
|
||||
<if test="certificateCode != null">#{certificateCode},</if>
|
||||
<if test="subDeptGroup != null">#{subDeptGroup},</if>
|
||||
<if test="subDeptGroupName != null">#{subDeptGroupName},</if>
|
||||
<if test="craftType != null">#{craftType},</if>
|
||||
<if test="craftPost != null">#{craftPost},</if>
|
||||
<if test="nation != null">#{nation},</if>
|
||||
<if test="age != null">#{age},</if>
|
||||
<if test="sex != null">#{sex},</if>
|
||||
<if test="educationalType != null">#{educationalType},</if>
|
||||
<if test="birthDay != null">#{birthDay},</if>
|
||||
<if test="nativePlace != null">#{nativePlace},</if>
|
||||
<if test="address != null">#{address},</if>
|
||||
<if test="emergencyContact != null">#{emergencyContact},</if>
|
||||
<if test="contactPhone != null">#{contactPhone},</if>
|
||||
<if test="bankName != null">#{bankName},</if>
|
||||
<if test="bankCardNo != null">#{bankCardNo},</if>
|
||||
<if test="bankOffice != null">#{bankOffice},</if>
|
||||
<if test="certificatePhoto1 != null">#{certificatePhoto1},</if>
|
||||
<if test="certificatePhoto2 != null">#{certificatePhoto2},</if>
|
||||
<if test="faceImage != null">#{faceImage},</if>
|
||||
<if test="eduStatus != null">#{eduStatus},</if>
|
||||
<if test="eduFilePath != null">#{eduFilePath},</if>
|
||||
<if test="eduSignPath != null">#{eduSignPath},</if>
|
||||
|
@ -128,11 +200,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="comId != null">com_id = #{comId},</if>
|
||||
<if test="projectId != null">project_id = #{projectId},</if>
|
||||
<if test="subDeptId != null">sub_dept_id = #{subDeptId},</if>
|
||||
<if test="subDeptType != null">sub_dept_type = #{subDeptType},</if>
|
||||
<if test="subDeptName != null">sub_dept_name = #{subDeptName},</if>
|
||||
<if test="userId != null">user_id = #{userId},</if>
|
||||
<if test="userType != null">user_type = #{userType},</if>
|
||||
<if test="userName != null">user_name = #{userName},</if>
|
||||
<if test="userPhone != null">user_phone = #{userPhone},</if>
|
||||
<if test="certificateType != null">certificate_type = #{certificateType},</if>
|
||||
<if test="certificateCode != null">certificate_code = #{certificateCode},</if>
|
||||
<if test="subDeptGroup != null">sub_dept_group = #{subDeptGroup},</if>
|
||||
<if test="subDeptGroupName != null">sub_dept_group_name = #{subDeptGroupName},</if>
|
||||
<if test="craftType != null">craft_type = #{craftType},</if>
|
||||
<if test="craftPost != null">craft_post = #{craftPost},</if>
|
||||
<if test="nation != null">nation = #{nation},</if>
|
||||
<if test="age != null">age = #{age},</if>
|
||||
<if test="sex != null">sex = #{sex},</if>
|
||||
<if test="educationalType != null">educational_type = #{educationalType},</if>
|
||||
<if test="birthDay != null">birth_day = #{birthDay},</if>
|
||||
<if test="nativePlace != null">native_place = #{nativePlace},</if>
|
||||
<if test="address != null">address = #{address},</if>
|
||||
<if test="emergencyContact != null">emergency_contact = #{emergencyContact},</if>
|
||||
<if test="contactPhone != null">contact_phone = #{contactPhone},</if>
|
||||
<if test="bankName != null">bank_name = #{bankName},</if>
|
||||
<if test="bankCardNo != null">bank_card_no = #{bankCardNo},</if>
|
||||
<if test="bankOffice != null">bank_office = #{bankOffice},</if>
|
||||
<if test="certificatePhoto1 != null">certificate_photo1 = #{certificatePhoto1},</if>
|
||||
<if test="certificatePhoto2 != null">certificate_photo2 = #{certificatePhoto2},</if>
|
||||
<if test="faceImage != null">face_image = #{faceImage},</if>
|
||||
<if test="eduStatus != null">edu_status = #{eduStatus},</if>
|
||||
<if test="eduFilePath != null">edu_file_path = #{eduFilePath},</if>
|
||||
<if test="eduSignPath != null">edu_sign_path = #{eduSignPath},</if>
|
||||
|
|
|
@ -127,7 +127,7 @@
|
|||
<!--相当于Dockerfile的ENTRYPOINT指令-->
|
||||
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
|
||||
<!--是否跳过docker build-->
|
||||
<!--<skipDockerBuild>true</skipDockerBuild>-->
|
||||
<skipDockerBuild>true</skipDockerBuild>
|
||||
<dockerHost>${configuration.docker-two-Host}</dockerHost>
|
||||
<resources>
|
||||
<resource>
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
package com.yanzhu.manage.service.impl;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.yanzhu.common.core.context.SecurityContextHolder;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.yanzhu.manage.mapper.BusExamInfoQuesMapper;
|
||||
|
@ -52,6 +55,8 @@ public class BusExamInfoQuesServiceImpl implements IBusExamInfoQuesService
|
|||
@Override
|
||||
public int insertBusExamInfoQues(BusExamInfoQues busExamInfoQues)
|
||||
{
|
||||
busExamInfoQues.setCreateBy(SecurityContextHolder.getUserName());
|
||||
busExamInfoQues.setCreateTime(new Date());
|
||||
return busExamInfoQuesMapper.insertBusExamInfoQues(busExamInfoQues);
|
||||
}
|
||||
|
||||
|
@ -64,6 +69,9 @@ public class BusExamInfoQuesServiceImpl implements IBusExamInfoQuesService
|
|||
@Override
|
||||
public int updateBusExamInfoQues(BusExamInfoQues busExamInfoQues)
|
||||
{
|
||||
|
||||
busExamInfoQues.setUpdateBy(SecurityContextHolder.getUserName());
|
||||
busExamInfoQues.setUpdateTime(new Date());
|
||||
return busExamInfoQuesMapper.updateBusExamInfoQues(busExamInfoQues);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.yanzhu.manage.service.impl;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import com.yanzhu.common.core.context.SecurityContextHolder;
|
||||
import com.yanzhu.common.core.utils.DateUtils;
|
||||
import com.yanzhu.common.core.utils.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -60,6 +61,7 @@ public class BusExamInfoServiceImpl implements IBusExamInfoService
|
|||
public int insertBusExamInfo(BusExamInfo busExamInfo)
|
||||
{
|
||||
busExamInfo.setCreateTime(DateUtils.getNowDate());
|
||||
busExamInfo.setCreateBy(SecurityContextHolder.getUserName());
|
||||
int rows = busExamInfoMapper.insertBusExamInfo(busExamInfo);
|
||||
insertBusExamInfoQues(busExamInfo);
|
||||
return rows;
|
||||
|
@ -76,6 +78,7 @@ public class BusExamInfoServiceImpl implements IBusExamInfoService
|
|||
public int updateBusExamInfo(BusExamInfo busExamInfo)
|
||||
{
|
||||
busExamInfo.setUpdateTime(DateUtils.getNowDate());
|
||||
busExamInfo.setUpdateBy(SecurityContextHolder.getUserName());
|
||||
busExamInfoMapper.deleteBusExamInfoQuesByExamId(busExamInfo.getId());
|
||||
insertBusExamInfoQues(busExamInfo);
|
||||
return busExamInfoMapper.updateBusExamInfo(busExamInfo);
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package com.yanzhu.manage.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.yanzhu.common.core.context.SecurityContextHolder;
|
||||
import com.yanzhu.common.core.utils.DateUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@ -54,6 +56,7 @@ public class BusExamQuestionResultServiceImpl implements IBusExamQuestionResultS
|
|||
public int insertBusExamQuestionResult(BusExamQuestionResult busExamQuestionResult)
|
||||
{
|
||||
busExamQuestionResult.setCreateTime(DateUtils.getNowDate());
|
||||
busExamQuestionResult.setCreateBy(SecurityContextHolder.getUserName());
|
||||
return busExamQuestionResultMapper.insertBusExamQuestionResult(busExamQuestionResult);
|
||||
}
|
||||
|
||||
|
@ -67,6 +70,7 @@ public class BusExamQuestionResultServiceImpl implements IBusExamQuestionResultS
|
|||
public int updateBusExamQuestionResult(BusExamQuestionResult busExamQuestionResult)
|
||||
{
|
||||
busExamQuestionResult.setUpdateTime(DateUtils.getNowDate());
|
||||
busExamQuestionResult.setUpdateBy(SecurityContextHolder.getUserName());
|
||||
return busExamQuestionResultMapper.updateBusExamQuestionResult(busExamQuestionResult);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
package com.yanzhu.manage.service.impl;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.yanzhu.common.core.context.SecurityContextHolder;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.yanzhu.manage.mapper.BusExamUserResultMapper;
|
||||
|
@ -52,6 +55,8 @@ public class BusExamUserResultServiceImpl implements IBusExamUserResultService
|
|||
@Override
|
||||
public int insertBusExamUserResult(BusExamUserResult busExamUserResult)
|
||||
{
|
||||
busExamUserResult.setCreateBy(SecurityContextHolder.getUserName());
|
||||
busExamUserResult.setCreateTime(new Date());
|
||||
return busExamUserResultMapper.insertBusExamUserResult(busExamUserResult);
|
||||
}
|
||||
|
||||
|
@ -64,6 +69,8 @@ public class BusExamUserResultServiceImpl implements IBusExamUserResultService
|
|||
@Override
|
||||
public int updateBusExamUserResult(BusExamUserResult busExamUserResult)
|
||||
{
|
||||
busExamUserResult.setUpdateBy(SecurityContextHolder.getUserName());
|
||||
busExamUserResult.setUpdateTime(new Date());
|
||||
return busExamUserResultMapper.updateBusExamUserResult(busExamUserResult);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.yanzhu.manage.service.impl;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import com.yanzhu.common.core.context.SecurityContextHolder;
|
||||
import com.yanzhu.common.core.utils.DateUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@ -55,6 +56,7 @@ public class BusTrainingVideoServiceImpl implements IBusTrainingVideoService
|
|||
public int insertBusTrainingVideo(BusTrainingVideo busTrainingVideo)
|
||||
{
|
||||
busTrainingVideo.setCreateTime(DateUtils.getNowDate());
|
||||
busTrainingVideo.setCreateBy(SecurityContextHolder.getUserName());
|
||||
return busTrainingVideoMapper.insertBusTrainingVideo(busTrainingVideo);
|
||||
}
|
||||
|
||||
|
@ -68,6 +70,7 @@ public class BusTrainingVideoServiceImpl implements IBusTrainingVideoService
|
|||
public int updateBusTrainingVideo(BusTrainingVideo busTrainingVideo)
|
||||
{
|
||||
busTrainingVideo.setUpdateTime(DateUtils.getNowDate());
|
||||
busTrainingVideo.setUpdateBy(SecurityContextHolder.getUserName());
|
||||
return busTrainingVideoMapper.updateBusTrainingVideo(busTrainingVideo);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.yanzhu.manage.service.impl;
|
||||
|
||||
import com.yanzhu.common.core.context.SecurityContextHolder;
|
||||
import com.yanzhu.common.core.utils.DateUtils;
|
||||
import com.yanzhu.manage.domain.BusTrainingVideoUser;
|
||||
import com.yanzhu.manage.mapper.BusTrainingVideoUserMapper;
|
||||
|
@ -55,6 +56,7 @@ public class BusTrainingVideoUserServiceImpl implements IBusTrainingVideoUserSer
|
|||
public int insertBusTrainingVideoUser(BusTrainingVideoUser busTrainingVideoUser)
|
||||
{
|
||||
busTrainingVideoUser.setCreateTime(DateUtils.getNowDate());
|
||||
busTrainingVideoUser.setCreateBy(SecurityContextHolder.getUserName());
|
||||
return busTrainingVideoUserMapper.insertBusTrainingVideoUser(busTrainingVideoUser);
|
||||
}
|
||||
|
||||
|
@ -68,6 +70,7 @@ public class BusTrainingVideoUserServiceImpl implements IBusTrainingVideoUserSer
|
|||
public int updateBusTrainingVideoUser(BusTrainingVideoUser busTrainingVideoUser)
|
||||
{
|
||||
busTrainingVideoUser.setUpdateTime(DateUtils.getNowDate());
|
||||
busTrainingVideoUser.setUpdateBy(SecurityContextHolder.getUserName());
|
||||
return busTrainingVideoUserMapper.updateBusTrainingVideoUser(busTrainingVideoUser);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.yanzhu.manage.service.impl;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import com.yanzhu.common.core.context.SecurityContextHolder;
|
||||
import com.yanzhu.common.core.utils.DateUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@ -55,6 +56,7 @@ public class ProProjectInfoDeptsServiceImpl implements IProProjectInfoDeptsServi
|
|||
public int insertProProjectInfoDepts(ProProjectInfoDepts proProjectInfoDepts)
|
||||
{
|
||||
proProjectInfoDepts.setCreateTime(DateUtils.getNowDate());
|
||||
proProjectInfoDepts.setCreateBy(SecurityContextHolder.getUserName());
|
||||
return proProjectInfoDeptsMapper.insertProProjectInfoDepts(proProjectInfoDepts);
|
||||
}
|
||||
|
||||
|
@ -68,6 +70,7 @@ public class ProProjectInfoDeptsServiceImpl implements IProProjectInfoDeptsServi
|
|||
public int updateProProjectInfoDepts(ProProjectInfoDepts proProjectInfoDepts)
|
||||
{
|
||||
proProjectInfoDepts.setUpdateTime(DateUtils.getNowDate());
|
||||
proProjectInfoDepts.setUpdateBy(SecurityContextHolder.getUserName());
|
||||
return proProjectInfoDeptsMapper.updateProProjectInfoDepts(proProjectInfoDepts);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.yanzhu.manage.service.impl;
|
|||
|
||||
import com.yanzhu.common.core.constant.CacheConstants;
|
||||
import com.yanzhu.common.core.constant.SecurityConstants;
|
||||
import com.yanzhu.common.core.context.SecurityContextHolder;
|
||||
import com.yanzhu.common.core.domain.R;
|
||||
import com.yanzhu.common.core.exception.ServiceException;
|
||||
import com.yanzhu.common.core.utils.DateUtils;
|
||||
|
@ -150,6 +151,7 @@ public class ProProjectInfoServiceImpl implements IProProjectInfoService
|
|||
public int updateProProjectInfo(ProProjectInfo proProjectInfo)
|
||||
{
|
||||
proProjectInfo.setUpdateTime(DateUtils.getNowDate());
|
||||
proProjectInfo.setUpdateBy(SecurityContextHolder.getUserName());
|
||||
List<ProProjectInfoDepts> depts = proProjectInfo.getProjectDeptsList();
|
||||
if(depts!=null){
|
||||
depts.forEach(dept->{
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.yanzhu.manage.service.impl;
|
||||
|
||||
import com.yanzhu.common.core.context.SecurityContextHolder;
|
||||
import com.yanzhu.common.core.utils.DateUtils;
|
||||
import com.yanzhu.manage.domain.ProProjectInfoSubdeptsUsers;
|
||||
import com.yanzhu.manage.mapper.ProProjectInfoSubdeptsUsersMapper;
|
||||
|
@ -55,6 +56,7 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
|
|||
public int insertProProjectInfoSubdeptsUsers(ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers)
|
||||
{
|
||||
proProjectInfoSubdeptsUsers.setCreateTime(DateUtils.getNowDate());
|
||||
proProjectInfoSubdeptsUsers.setCreateBy(SecurityContextHolder.getUserName());
|
||||
return proProjectInfoSubdeptsUsersMapper.insertProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers);
|
||||
}
|
||||
|
||||
|
@ -68,6 +70,7 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
|
|||
public int updateProProjectInfoSubdeptsUsers(ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers)
|
||||
{
|
||||
proProjectInfoSubdeptsUsers.setUpdateTime(DateUtils.getNowDate());
|
||||
proProjectInfoSubdeptsUsers.setUpdateBy(SecurityContextHolder.getUserName());
|
||||
return proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.yanzhu.manage.service.impl;
|
||||
|
||||
import com.yanzhu.common.core.context.SecurityContextHolder;
|
||||
import com.yanzhu.common.core.utils.DateUtils;
|
||||
import com.yanzhu.common.security.utils.SecurityUtils;
|
||||
import com.yanzhu.manage.domain.ProProjectInfoUsers;
|
||||
|
@ -58,6 +59,7 @@ public class ProProjectInfoUsersServiceImpl implements IProProjectInfoUsersServi
|
|||
public int insertProProjectInfoUsers(ProProjectInfoUsers proProjectInfoUsers)
|
||||
{
|
||||
proProjectInfoUsers.setCreateTime(DateUtils.getNowDate());
|
||||
proProjectInfoUsers.setCreateBy(SecurityContextHolder.getUserName());
|
||||
return proProjectInfoUsersMapper.insertProProjectInfoUsers(proProjectInfoUsers);
|
||||
}
|
||||
|
||||
|
@ -71,6 +73,7 @@ public class ProProjectInfoUsersServiceImpl implements IProProjectInfoUsersServi
|
|||
public int updateProProjectInfoUsers(ProProjectInfoUsers proProjectInfoUsers)
|
||||
{
|
||||
proProjectInfoUsers.setUpdateTime(DateUtils.getNowDate());
|
||||
proProjectInfoUsers.setUpdateBy(SecurityContextHolder.getUserName());
|
||||
return proProjectInfoUsersMapper.updateProProjectInfoUsers(proProjectInfoUsers);
|
||||
}
|
||||
|
||||
|
|
|
@ -115,7 +115,7 @@
|
|||
<!--相当于Dockerfile的ENTRYPOINT指令-->
|
||||
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
|
||||
<!--是否跳过docker build-->
|
||||
<!--<skipDockerBuild>true</skipDockerBuild>-->
|
||||
<skipDockerBuild>true</skipDockerBuild>
|
||||
<dockerHost>${configuration.docker-two-Host}</dockerHost>
|
||||
<resources>
|
||||
<resource>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# 页面标题
|
||||
VITE_APP_TITLE = 若依管理系统
|
||||
VITE_APP_TITLE = 数字建安施工
|
||||
|
||||
# 开发环境配置
|
||||
VITE_APP_ENV = 'development'
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# 页面标题
|
||||
VITE_APP_TITLE = 若依管理系统
|
||||
VITE_APP_TITLE = 数字建安施工
|
||||
|
||||
# 生产环境配置
|
||||
VITE_APP_ENV = 'production'
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# 页面标题
|
||||
VITE_APP_TITLE = 若依管理系统
|
||||
VITE_APP_TITLE = 数字建安施工
|
||||
|
||||
# 生产环境配置
|
||||
VITE_APP_ENV = 'staging'
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<title>若依管理系统</title>
|
||||
<title>数字建安施工</title>
|
||||
<script type="text/javascript"
|
||||
src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=6zAD8CIavtzWnkGg0a7roush5maGMIPn"></script>
|
||||
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
|
||||
|
@ -19,14 +18,12 @@
|
|||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.chromeframe {
|
||||
margin: 0.2em 0;
|
||||
background: #ccc;
|
||||
color: #000;
|
||||
padding: 0.2em 0;
|
||||
}
|
||||
|
||||
#loader-wrapper {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
|
|
|
@ -13,11 +13,16 @@ onMounted(() => {
|
|||
})
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.no-form-label{
|
||||
.el-form-item{
|
||||
.el-form-item__label{
|
||||
.no-form-label {
|
||||
.el-form-item {
|
||||
.el-form-item__label {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
.fitem-no-width{
|
||||
.el-form-item__label{
|
||||
width:unset !important;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,4 @@
|
|||
<svg class="icon" style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6203">
|
||||
<path d="M409.6 652.8H134.4C134.4 576 198.4 512 281.6 512c19.2 0 38.4 6.4 51.2 6.4l19.2-19.2c-6.4 0-12.8-6.4-12.8-6.4l19.2-19.2c12.8-12.8 25.6-38.4 25.6-64s-12.8-51.2-32-70.4c-19.2-25.6-44.8-32-70.4-32-25.6 0-51.2 12.8-70.4 32-25.6 12.8-38.4 38.4-38.4 70.4 0 25.6 12.8 51.2 32 70.4l19.2 19.2c-6.4 0-12.8 6.4-12.8 6.4-19.2 6.4-38.4 19.2-51.2 32-19.2 19.2-32 38.4-38.4 57.6-6.4 19.2-12.8 44.8-12.8 64 0 6.4 6.4 12.8 12.8 12.8h288c6.4 0 12.8-6.4 12.8-12.8s-6.4-6.4-12.8-6.4zM198.4 409.6c0-44.8 38.4-83.2 83.2-83.2 44.8 0 83.2 38.4 83.2 83.2 0 44.8-38.4 83.2-83.2 83.2-44.8 0-83.2-38.4-83.2-83.2z m236.8 185.6c-6.4-19.2-19.2-38.4-32-51.2l-12.8 19.2c19.2 25.6 38.4 57.6 38.4 89.6h-57.6c-6.4 0-12.8 6.4-12.8 12.8s6.4 12.8 12.8 12.8h64c12.8-6.4 12.8-12.8 12.8-19.2 0-19.2 0-44.8-12.8-64z" fill="#ccc" p-id="6204"></path><path d="M371.2 652.8h57.6c-6.4-64-51.2-115.2-108.8-134.4-12.8-6.4 19.2-25.6 12.8-19.2 6.4 0 12.8 6.4 12.8 6.4 19.2 6.4 38.4 19.2 51.2 32 19.2 19.2 32 38.4 38.4 57.6 12.8 19.2 12.8 44.8 12.8 64 0 6.4-6.4 12.8-12.8 12.8h-64c-6.4 0-12.8-6.4-12.8-12.8s6.4-6.4 12.8-6.4z" fill="#ccc" p-id="6205"></path>
|
||||
<path d="M614.4 390.4h236.8c12.8 0 19.2 6.4 19.2 12.8s0 12.8-19.2 12.8H614.4c-12.8 0-19.2-6.4-19.2-12.8s6.4-12.8 19.2-12.8zM614.4 499.2h192c12.8 0 12.8 6.4 12.8 12.8s0 12.8-12.8 12.8h-192c-12.8 0-19.2-6.4-19.2-12.8s6.4-12.8 19.2-12.8zM608 595.2h134.4c6.4 0 6.4 6.4 6.4 12.8s0 12.8-6.4 12.8H608c-6.4 0-12.8-6.4-12.8-12.8s6.4-12.8 12.8-12.8z" fill="#ccc" p-id="6206"></path>
|
||||
<path d="M902.4 147.2H121.6C115.2 147.2 19.2 134.4 19.2 230.4v550.4c0 57.6 44.8 96 102.4 96h787.2c57.6 0 102.4-44.8 102.4-96V608 230.4c0 6.4 12.8-83.2-108.8-83.2zM972.8 364.8v416c0 25.6-38.4 64-70.4 64H121.6c-32 0-70.4-38.4-70.4-64V230.4c0-6.4 6.4-44.8 38.4-51.2h851.2c25.6 0 38.4 44.8 38.4 51.2v134.4z" fill="#ccc" p-id="6207"></path></svg>
|
After Width: | Height: | Size: 2.0 KiB |
|
@ -0,0 +1,4 @@
|
|||
<svg class="icon"
|
||||
style="width: 1.4697265625em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1505 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5165">
|
||||
<path d="M1505.882353 0v1024H0V0h1505.882353z m-40.478118 40.478118H40.478118v943.043764h1424.926117V40.478118z m-139.625411 735.8464v61.343623H186.693271v-61.343623h1139.061458zM379.361882 180.163765l9.240094 5.385035c4.698353 2.734682 14.311906 5.180235 19.684895 5.011576l10.601411-0.337317c13.143341-0.4096 28.0576 7.673976 35.177412 19.070494l5.758494 9.203953c2.915388 4.674259 10.336376 11.444706 15.179294 13.878212l9.529224 4.794729c11.830212 5.9392 21.395576 20.263153 22.576188 33.767906l0.951718 10.914635c0.481882 5.541647 3.999624 15.107012 7.192094 19.576471l6.288565 8.818447c7.794447 10.938729 9.818353 28.202165 4.782682 40.719059l-4.059859 10.131576c-2.060047 5.132047-3.252706 15.299765-2.445553 20.781177l1.602259 10.842353c1.987765 13.420424-3.999624 29.683953-14.095059 38.357835l-8.143812 7.011388c-4.132141 3.553882-9.758118 11.986824-11.516988 17.227294l-3.457506 10.360471c-0.771012 2.313035-1.807059 4.577882-3.072 6.770447l37.056753 65.572141h-54.717741l-26.334871 41.345506-32.9728-58.343906c-7.951059 2.806965-16.781553 3.397271-24.310964 1.2288l-10.215906-2.951529c-5.180235-1.493835-15.094965-1.493835-20.2752 0l-10.215906 2.951529c-7.914918 2.276894-17.275482 1.505882-25.515671-1.662494l-33.225788 58.789647-26.322823-41.357553H199.378824l37.791623-66.861176a35.960471 35.960471 0 0 1-2.361223-5.481412l-3.457506-10.360471c-1.758871-5.252518-7.396894-13.673412-11.516989-17.227294l-8.155858-7.011388c-10.107482-8.685929-16.070776-24.949459-14.095059-38.357835l1.602259-10.842353c0.8192-5.493459-0.373459-15.661176-2.433506-20.781177l-4.071906-10.119529c-5.035671-12.540988-2.999718-29.804424 4.794729-40.719059l6.288565-8.830494c3.192471-4.481506 6.710212-14.046871 7.192094-19.576471l0.963765-10.914635c1.168565-13.528847 10.745976-27.828706 22.552094-33.767906l9.54127-4.794729c4.842918-2.433506 12.263906-9.216 15.179295-13.878212l5.758494-9.203953c7.131859-11.408565 22.046118-19.480094 35.177411-19.070494l10.601412 0.337317c5.385035 0.168659 14.998588-2.288941 19.684894-5.011576l9.240094-5.385035c11.444706-6.674071 28.286494-6.674071 39.719153 0z m-19.8656 28.238306c-76.378353 0-138.300235 63.945788-138.300235 142.829929 0 78.896188 61.921882 142.841976 138.300235 142.841976 76.378353 0 138.300235-63.957835 138.300236-142.841976 0-78.884141-61.921882-142.829929-138.300236-142.829929z m0 15.034729c68.342965 0 123.747388 57.223529 123.747389 127.7952 0 70.595765-55.404424 127.807247-123.747389 127.807247-68.330918 0-123.735341-57.223529-123.735341-127.807247s55.392376-127.7952 123.735341-127.7952z m726.762918 159.864471v61.343623h-397.552941v-61.343623h397.552941z m-723.751153-105.773177l-22.022023 44.248847-47.7184 6.939106 33.948611 35.321977-8.348611 49.007435 43.008-22.431624 42.550211 23.3472-7.360753-49.176094 34.647342-34.575059-47.561789-7.975153-21.142588-44.718682z m967.427012-55.9104v61.343624H692.826353v-61.343624h637.108706z"
|
||||
p-id="5166" fill="#ccc"></path></svg>
|
After Width: | Height: | Size: 3.1 KiB |
|
@ -0,0 +1 @@
|
|||
<svg class="icon" style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8742"><path d="M414.904173 499.40259C329.890072 548.318849 270.439137 659.338129 270.439137 788.258993a29.467626 29.467626 0 0 0 29.467626 29.467626h424.186474a29.467626 29.467626 0 0 0 29.467626-29.467626c0-128.920863-59.450935-239.940144-144.465036-288.856403a162.661295 162.661295 0 1 0-194.191654 0zM29.467626 320.460432a29.467626 29.467626 0 0 0 29.467626-29.467626V88.402878a29.467626 29.467626 0 0 1 29.467626-29.467626h202.589928a29.467626 29.467626 0 0 0 0-58.935252H88.402878A88.402878 88.402878 0 0 0 0 88.402878v202.589928a29.467626 29.467626 0 0 0 29.467626 29.467626zM935.597122 0H733.007194a29.467626 29.467626 0 0 0 0 58.935252H935.597122a29.467626 29.467626 0 0 1 29.467626 29.467626v202.589928a29.467626 29.467626 0 0 0 58.935252 0V88.402878a88.402878 88.402878 0 0 0-88.402878-88.402878zM994.532374 703.539568a29.467626 29.467626 0 0 0-29.467626 29.467626V935.597122a29.467626 29.467626 0 0 1-29.467626 29.467626H733.007194a29.467626 29.467626 0 0 0 0 58.935252H935.597122a88.402878 88.402878 0 0 0 88.402878-88.402878V733.007194a29.467626 29.467626 0 0 0-29.467626-29.467626zM290.992806 965.064748H88.402878a29.467626 29.467626 0 0 1-29.467626-29.467626V733.007194a29.467626 29.467626 0 0 0-58.935252 0V935.597122a88.402878 88.402878 0 0 0 88.402878 88.402878h202.589928a29.467626 29.467626 0 0 0 0-58.935252z" fill="#ccc" p-id="8743"></path></svg>
|
After Width: | Height: | Size: 1.5 KiB |
|
@ -0,0 +1,3 @@
|
|||
<svg class="icon" style="width: 64px;height: 64px;vertical-align: middle;/* fill: #00f9e5; */overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4246"><path d="M1005.69 474.354l-42.674-17.082V430.08A394.176 394.176 0 0 0 681.506 59V20.613a21.37 21.37 0 0 0-22.072-20.6H422.711a21.433 21.433 0 0 0-22.073 20.6v38.388a394.176 394.176 0 0 0-281.509 371.08v27.383l-42.226 16.698a20.601 20.601 0 0 0-13.5 19.194v134.357a21.37 21.37 0 0 0 22.137 20.6h28.727l2.111 27.896a21.37 21.37 0 0 0 22.073 20.601h79.334a214.01 214.01 0 0 0 30.838 60.588l-56.11 52.336a19.642 19.642 0 0 0 0 29.046l101.856 94.625a23.224 23.224 0 0 0 31.157 0l60.269-54.062a248.623 248.623 0 0 0 66.858 25.592v73.96a21.37 21.37 0 0 0 22.137 20.6h132.629a21.433 21.433 0 0 0 22.137-20.6v-73.96a266.602 266.602 0 0 0 70.377-23.609l56.11 52.335a23.224 23.224 0 0 0 31.158 0l102.75-94.625a19.642 19.642 0 0 0 0-29.047l-56.11-52.335a209.212 209.212 0 0 0 29.239-60.588h79.334a21.433 21.433 0 0 0 22.137-20.601l3.71-36.724h28.728a21.37 21.37 0 0 0 22.392-20.922V493.292a20.665 20.665 0 0 0-13.691-18.938z m-542.8-400.19h156.43v279.461H463.21z m417.848 585.474h-65.195a19.194 19.194 0 0 0-19.577 14.396 231.157 231.157 0 0 1-35.829 80.293 17.338 17.338 0 0 0 2.56 22.777l46.768 43.634-43.186 46.193-46.768-43.634a20.665 20.665 0 0 0-24.44-2.367 353.997 353.997 0 0 1-98.848 38.963 18.554 18.554 0 0 0-15.483 18.234v61.484h-78.311v-61.996a18.554 18.554 0 0 0-15.483-18.234 331.54 331.54 0 0 1-94.113-41.97 20.665 20.665 0 0 0-24.44 2.367l-46.77 43.634-47.408-43.058 46.769-43.634a17.338 17.338 0 0 0 2.56-22.776 231.733 231.733 0 0 1-36.405-79.91 19.194 19.194 0 0 0-19.578-14.396h-49.2v-8.317H366.41c10.749 82.405 94.434 139.219 200.32 134.356a179.974 179.974 0 0 0 162.315-139.794h156.045z m-462.634-15.227h247.152c-11.068 63.98-75.367 89.571-143.697 79.014a121.56 121.56 0 0 1-103.966-96.416z m538.194-59.18l-829.363 4.414V499.37l41.138-16.059a19.706 19.706 0 0 0 12.796-18.106v-39.411a335.763 335.763 0 0 1 226.487-312.155v290.082a20.473 20.473 0 0 0 21.113 19.706h226.487a20.473 20.473 0 0 0 21.113-19.706V113.383a335.827 335.827 0 0 1 226.678 312.539v39.347a19.642 19.642 0 0 0 12.796 18.106l40.755 16.315v85.476z" fill="#2C2C2C" p-id="4247" style="
|
||||
fill: #04978b;
|
||||
"></path></svg>
|
After Width: | Height: | Size: 2.2 KiB |
|
@ -43,15 +43,14 @@ function doOk(){
|
|||
|
||||
function getAddress(){
|
||||
let addr=cityInfo.value?.address||'';
|
||||
let poi_desc=cityInfo.value?.poi_desc||'';
|
||||
return addr+poi_desc;
|
||||
return addr;
|
||||
}
|
||||
|
||||
function showDlg(opt){
|
||||
function showDlg(opt){
|
||||
title.value=opt?.title||'选择地址';
|
||||
show.value=true;
|
||||
setTimeout(()=>{
|
||||
initMap();
|
||||
initMap(opt);
|
||||
},400);
|
||||
}
|
||||
|
||||
|
@ -86,7 +85,7 @@ function mapClick(e){
|
|||
});
|
||||
}
|
||||
|
||||
function initMap() {
|
||||
function initMap(opt) {
|
||||
let imap = new BMapGL.Map("index-map");
|
||||
|
||||
map.value = imap;
|
||||
|
@ -124,13 +123,27 @@ function initMap() {
|
|||
} else {
|
||||
alert('您选择的地址没有解析到结果!');
|
||||
}
|
||||
initMapData(opt)
|
||||
}, '陕西省')
|
||||
currentPoint();
|
||||
}
|
||||
function initMapData(data){
|
||||
if(data.latitude && data.longitude){
|
||||
point.value={}
|
||||
point.value.lng=data.longitude*1.0;
|
||||
point.value.lat=data.latitude*1.0;
|
||||
}
|
||||
cityInfo.value={}
|
||||
cityInfo.value.address=data.projectAddress||''
|
||||
cityInfo.value.district=data.district||''
|
||||
cityInfo.value.city=data.city||''
|
||||
cityInfo.value.province=data.province||''
|
||||
}
|
||||
|
||||
/** 暴露组件 */
|
||||
defineExpose({
|
||||
showDlg,
|
||||
initMapData
|
||||
});
|
||||
</script>
|
||||
<style lang="scss" >
|
||||
|
|
|
@ -14,7 +14,7 @@ export function useDict(...args) {
|
|||
res.value[dictType] = dicts;
|
||||
} else {
|
||||
getDicts(dictType).then(resp => {
|
||||
res.value[dictType] = resp.data.map(p => ({ label: p.dictLabel, value: p.dictValue, elTagType: p.listClass, elTagClass: p.cssClass }))
|
||||
res.value[dictType] = resp.data.map(p => ({ label: p.dictLabel,remark:p.remark, value: p.dictValue, elTagType: p.listClass, elTagClass: p.cssClass }))
|
||||
useDictStore().setDict(dictType, res.value[dictType]);
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,879 +1,6 @@
|
|||
<template>
|
||||
<div class="app-container home">
|
||||
<el-row :gutter="20">
|
||||
<el-col :sm="24" :lg="24">
|
||||
<blockquote class="text-warning" style="font-size: 14px">
|
||||
领取阿里云通用云产品1888优惠券
|
||||
<br />
|
||||
<el-link
|
||||
href="https://www.aliyun.com/minisite/goods?userCode=brki8iof"
|
||||
type="primary"
|
||||
target="_blank"
|
||||
>https://www.aliyun.com/minisite/goods?userCode=brki8iof</el-link
|
||||
>
|
||||
<br />
|
||||
领取腾讯云通用云产品2860优惠券
|
||||
<br />
|
||||
<el-link
|
||||
href="https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console"
|
||||
type="primary"
|
||||
target="_blank"
|
||||
>https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console</el-link
|
||||
>
|
||||
<br />
|
||||
阿里云服务器折扣区
|
||||
<el-link href="http://aly.ruoyi.vip" type="primary" target="_blank"
|
||||
>>☛☛点我进入☚☚</el-link
|
||||
>
|
||||
腾讯云服务器秒杀区
|
||||
<el-link href="http://txy.ruoyi.vip" type="primary" target="_blank"
|
||||
>>☛☛点我进入☚☚</el-link
|
||||
><br />
|
||||
<h4 class="text-danger">
|
||||
云产品通用红包,可叠加官网常规优惠使用。(仅限新用户)
|
||||
</h4>
|
||||
</blockquote>
|
||||
|
||||
<hr />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :sm="24" :lg="12" style="padding-left: 20px">
|
||||
<h2>若依后台管理框架</h2>
|
||||
<p>
|
||||
一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了若依管理系统,她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。
|
||||
</p>
|
||||
<p>
|
||||
<b>当前版本:</b> <span>v{{ version }}</span>
|
||||
</p>
|
||||
<p>
|
||||
<el-tag type="danger">¥免费开源</el-tag>
|
||||
</p>
|
||||
<p>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="Cloudy"
|
||||
plain
|
||||
@click="goTarget('https://gitee.com/y_project/RuoYi-Cloud')"
|
||||
>访问码云</el-button
|
||||
>
|
||||
<el-button
|
||||
icon="HomeFilled"
|
||||
plain
|
||||
@click="goTarget('http://ruoyi.vip')"
|
||||
>访问主页</el-button
|
||||
>
|
||||
</p>
|
||||
</el-col>
|
||||
|
||||
<el-col :sm="24" :lg="12" style="padding-left: 50px">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<h2>技术选型</h2>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<h4>后端技术</h4>
|
||||
<ul>
|
||||
<li>SpringBoot</li>
|
||||
<li>SpringCloud</li>
|
||||
<li>Nacos</li>
|
||||
<li>Sentinel</li>
|
||||
<li>Seata</li>
|
||||
<li>Minio</li>
|
||||
<li>...</li>
|
||||
</ul>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<h4>前端技术</h4>
|
||||
<ul>
|
||||
<li>Vue</li>
|
||||
<li>Vuex</li>
|
||||
<li>Element-ui</li>
|
||||
<li>Axios</li>
|
||||
<li>Echarts</li>
|
||||
<li>Quill</li>
|
||||
<li>...</li>
|
||||
</ul>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-divider />
|
||||
<el-row :gutter="20">
|
||||
<el-col :xs="24" :sm="24" :md="12" :lg="8">
|
||||
<el-card class="update-log">
|
||||
<template v-slot:header>
|
||||
<div class="clearfix">
|
||||
<span>联系信息</span>
|
||||
</div>
|
||||
</template>
|
||||
<div class="body">
|
||||
<p>
|
||||
<i class="el-icon-s-promotion"></i> 官网:<el-link
|
||||
href="http://www.ruoyi.vip"
|
||||
target="_blank"
|
||||
>http://www.ruoyi.vip</el-link
|
||||
>
|
||||
</p>
|
||||
<p>
|
||||
<i class="el-icon-user-solid"></i> QQ群:<s>满42799195</s>
|
||||
<s>满170157040</s> <s>满130643120</s> <s>满225920371</s>
|
||||
<s>满201705537</s> <s>满236543183</s> <s>满213618602</s>
|
||||
<s>满148794840</s> <s>满118752664</s>
|
||||
<a href="https://jq.qq.com/?_wv=1027&k=FqImHgH2" target="_blank"
|
||||
>101038945</a
|
||||
>
|
||||
</p>
|
||||
<p>
|
||||
<i class="el-icon-chat-dot-round"></i> 微信:<a
|
||||
href="javascript:;"
|
||||
>/ *若依</a
|
||||
>
|
||||
</p>
|
||||
<p>
|
||||
<i class="el-icon-money"></i> 支付宝:<a
|
||||
href="javascript:;"
|
||||
class="支付宝信息"
|
||||
>/ *若依</a
|
||||
>
|
||||
</p>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="12" :lg="8">
|
||||
<el-card class="update-log">
|
||||
<template v-slot:header>
|
||||
<div class="clearfix">
|
||||
<span>更新日志</span>
|
||||
</div>
|
||||
</template>
|
||||
<el-collapse accordion>
|
||||
<el-collapse-item title="v3.6.3 - 2023-07-07">
|
||||
<ol>
|
||||
<li>支持登录IP黑名单限制</li>
|
||||
<li>操作日志新增消耗时间属性</li>
|
||||
<li>屏蔽定时任务bean违规的字符</li>
|
||||
<li>日志管理使用索引提升查询性能</li>
|
||||
<li>日志注解支持排除指定的请求参数</li>
|
||||
<li>支持自定义隐藏属性列过滤子对象</li>
|
||||
<li>升级spring-boot到最新版本2.7.13</li>
|
||||
<li>升级spring-cloud到最新版2021.0.8</li>
|
||||
<li>升级spring-cloud-alibaba到最新版2021.0.5.0</li>
|
||||
<li>升级druid到最新版本1.2.16</li>
|
||||
<li>升级fastjson到最新版2.0.34</li>
|
||||
<li>升级pagehelper到最新版1.4.7</li>
|
||||
<li>升级transmittable-thread-local到最新版本2.14.3</li>
|
||||
<li>升级element-ui到最新版本2.15.13</li>
|
||||
<li>移除apache/commons-fileupload依赖</li>
|
||||
<li>修复页面切换时布局错乱的问题</li>
|
||||
<li>修复用户多角色数据权限可能出现权限抬升的情况</li>
|
||||
<li>修复导入用户时无法更新存在用户数据的问题</li>
|
||||
<li>修复开启TopNav后一级菜单路由参数设置无效问题</li>
|
||||
<li>优化文件下载出现的异常</li>
|
||||
<li>优化选择图标组件高亮回显</li>
|
||||
<li>优化修改密码日志存储明文问题</li>
|
||||
<li>优化排序属性orderBy参数限制长度</li>
|
||||
<li>优化页签栏关闭其他出现的异常问题</li>
|
||||
<li>优化页签关闭左侧选项排除首页选项</li>
|
||||
<li>优化关闭当前tab页跳转最右侧tab页</li>
|
||||
<li>优化文件上传服务关闭InputStream</li>
|
||||
<li>优化页签在Firefox浏览器被遮挡的问题</li>
|
||||
<li>优化侧边栏的平台标题与VUE_APP_TITLE保持同步</li>
|
||||
<li>优化DictTag组件value没有匹配的值时则展示value</li>
|
||||
<li>优化去除@EnableCustomSwagger注解后会启动失败问题</li>
|
||||
<li>优化upload接口在文件过大和文件名过长的情况返回提示信息</li>
|
||||
<li>优化异步保存日志发生报错不进RemoteLogFallbackFactory问题</li>
|
||||
<li>其他细节优化</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="v3.6.2 - 2022-01-16">
|
||||
<ol>
|
||||
<li>重置时取消部门选中</li>
|
||||
<li>新增返回警告消息提示</li>
|
||||
<li>忽略不必要的属性数据返回</li>
|
||||
<li>修改参数键名时移除前缓存配置</li>
|
||||
<li>开启TopNav没有子菜单隐藏侧边栏</li>
|
||||
<li>删除fuse无效选项maxPatternLength</li>
|
||||
<li>兼容Excel下拉框内容过多无法显示的问题</li>
|
||||
<li>修复文件上传组件格式验证问题</li>
|
||||
<li>修复回显数据字典数组异常问题</li>
|
||||
<li>修复sheet超出最大行数异常问题</li>
|
||||
<li>修复Log注解GET请求记录不到参数问题</li>
|
||||
<li>修复gateway流控规则生效但不显示问题</li>
|
||||
<li>修复主题颜色在Drawer组件不会加载问题</li>
|
||||
<li>修复调度日志点击多次数据不变化的问题</li>
|
||||
<li>修复用户编辑时角色和部门存在无法修改情况</li>
|
||||
<li>修复使用透明底png图片时,自动填充黑色背景</li>
|
||||
<li>修复table中更多按钮切换主题色未生效修复问题</li>
|
||||
<li>修复某些特性的环境生成代码变乱码TXT文件问题</li>
|
||||
<li>修复代码生成图片/文件/单选时选择必填无法校验问题</li>
|
||||
<li>升级spring-cloud到最新版2021.0.5</li>
|
||||
<li>升级spring-boot到最新版本2.7.7</li>
|
||||
<li>升级spring-boot-admin到最新版2.7.10</li>
|
||||
<li>升级kaptcha到最新版2.3.3</li>
|
||||
<li>升级druid到最新版本1.2.15</li>
|
||||
<li>升级fastjson到最新版2.0.22</li>
|
||||
<li>升级pagehelper到最新版1.4.6</li>
|
||||
<li>升级transmittable-thread-local到最新版本2.14.2</li>
|
||||
<li>升级echarts到最新版本5.4.0</li>
|
||||
<li>升级core-js到最新版本3.25.3</li>
|
||||
<li>升级element-ui到最新版本2.15.12</li>
|
||||
<li>移除commons-collections多余的依赖</li>
|
||||
<li>优化弹窗内容过多展示不全问题</li>
|
||||
<li>优化导出对象的子列表为空会出现[]问题</li>
|
||||
<li>优化字符未使用下划线不进行驼峰式处理</li>
|
||||
<li>优化nacos修改xss开关时同步过滤器验证</li>
|
||||
<li>优化修改头像在小屏幕上页面布局错位的问题</li>
|
||||
<li>其他细节优化</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="v3.6.1 - 2022-10-01">
|
||||
<ol>
|
||||
<li>数据逻辑删除不进行唯一验证</li>
|
||||
<li>支持多权限字符匹配角色数据权限</li>
|
||||
<li>页面内嵌iframe切换tab不刷新数据</li>
|
||||
<li>新增密码最大错误次数/锁定时间</li>
|
||||
<li>登录日志新增解锁账户功能</li>
|
||||
<li>通用下载方法新增config配置选项</li>
|
||||
<li>操作日志记录支持排除敏感属性字段</li>
|
||||
<li>Excel注解支持导出对象的子列表方法</li>
|
||||
<li>Excel注解支持自定义隐藏属性列</li>
|
||||
<li>Excel注解支持backgroundColor属性设置背景色</li>
|
||||
<li>升级spring-cloud-alibaba到最新版2021.0.4.0</li>
|
||||
<li>升级spring-cloud到最新版2021.0.4</li>
|
||||
<li>升级spring-boot到最新版本2.7.3</li>
|
||||
<li>升级spring-boot-admin到最新版2.7.5</li>
|
||||
<li>升级seata到最新版1.5.2</li>
|
||||
<li>升级druid到最新版本1.2.12</li>
|
||||
<li>升级fastjson到最新版2.0.14</li>
|
||||
<li>升级pagehelper到最新版1.4.5</li>
|
||||
<li>升级core-js到最新版本3.25.2</li>
|
||||
<li>升级dynamic-ds到最新版本3.5.2</li>
|
||||
<li>升级element-ui到最新版本2.15.10</li>
|
||||
<li>修复多文件上传报错出现的异常问题</li>
|
||||
<li>修复图片预览组件src属性为null值控制台报错问题</li>
|
||||
<li>修复使用FastDFS上传头像失败提示文件名没有后缀问题</li>
|
||||
<li>优化seata单独依赖模块</li>
|
||||
<li>优化任务过期不执行调度</li>
|
||||
<li>优化字典数据使用store存取</li>
|
||||
<li>优化代码生成同步后值NULL问题</li>
|
||||
<li>优化定时任务支持执行父类方法</li>
|
||||
<li>优化修改资料头像被覆盖的问题</li>
|
||||
<li>优化修改用户登录账号重复验证</li>
|
||||
<li>优化用户个人信息接口防止修改部门</li>
|
||||
<li>优化布局设置使用el-drawer抽屉显示</li>
|
||||
<li>优化日志注解记录限制请求地址的长度</li>
|
||||
<li>优化导入更新用户数据前校验数据权限</li>
|
||||
<li>优化excel/scale属性导出单元格数值类型</li>
|
||||
<li>优化日志操作中重置按钮时重复查询的问题</li>
|
||||
<li>优化多个相同角色数据导致权限SQL重复问题</li>
|
||||
<li>优化表格上右侧工具条(搜索按钮显隐&右侧样式凸出)</li>
|
||||
<li>其他细节优化</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="v3.6.0 - 2022-07-16">
|
||||
<ol>
|
||||
<li>Excel注解支持color字体颜色</li>
|
||||
<li>用户头像上传限制只能为图片格式</li>
|
||||
<li>检查定时任务bean所在包名是否为白名单配置</li>
|
||||
<li>字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)</li>
|
||||
<li>升级spring-cloud-alibaba到最新版2021.0.1.0</li>
|
||||
<li>升级spring-cloud到最新版2021.0.3</li>
|
||||
<li>升级spring-boot到最新版本2.7.1</li>
|
||||
<li>升级spring-boot-admin到最新版2.7.2</li>
|
||||
<li>升级seata到最新版1.5.1</li>
|
||||
<li>升级pagehelper到最新版1.4.3</li>
|
||||
<li>升级dynamic-ds到最新版本3.5.1</li>
|
||||
<li>升级fastjson到最新版2.0.9</li>
|
||||
<li>升级druid到最新版本1.2.11</li>
|
||||
<li>升级transmittable-thread-local到最新版本2.13.2</li>
|
||||
<li>升级element-ui到最新版本2.15.9</li>
|
||||
<li>修复字典数据显示不全问题</li>
|
||||
<li>修复操作日志查询类型条件为0时会查到所有数据</li>
|
||||
<li>优化验证码开关变量名</li>
|
||||
<li>优化设置分页参数默认值</li>
|
||||
<li>优化对空字符串参数处理的过滤</li>
|
||||
<li>优化Maven使用阿里云镜像站加速</li>
|
||||
<li>优化用户列表查询不显示密码字段</li>
|
||||
<li>优化表单构建按钮不显示正则校验</li>
|
||||
<li>优化字典类型删除多余的mapper注解</li>
|
||||
<li>优化字典数据回显样式下拉框显示值</li>
|
||||
<li>优化用户管理左侧树型组件增加选中高亮保持</li>
|
||||
<li>优化新增用户与角色信息&用户与岗位信息逻辑</li>
|
||||
<li>优化数据监控Spring Security权限认证过时代码</li>
|
||||
<li>优化岗位长主键溢出问题将查询返回类型改为Long</li>
|
||||
<li>优化删除无用admin-client依赖声明,避免造成误解</li>
|
||||
<li>优化默认不启用压缩文件缓存防止node_modules过大</li>
|
||||
<li>优化获取body请求数据缓存过滤器CacheRequestFilter</li>
|
||||
<li>优化网关通过注解解决循环引用及Bean重复问题删除allow配置</li>
|
||||
<li>其他细节优化</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="v3.5.0 - 2022-04-11">
|
||||
<ol>
|
||||
<li>开启TopNav没有子菜单情况隐藏侧边栏</li>
|
||||
<li>侧边栏菜单名称过长悬停显示标题</li>
|
||||
<li>用户访问控制时校验数据权限,防止越权</li>
|
||||
<li>导出Excel时屏蔽公式,防止CSV注入风险</li>
|
||||
<li>组件ImageUpload支持多图同时选择上传</li>
|
||||
<li>组件FileUpload支持多文件同时选择上传</li>
|
||||
<li>代码生成树表新增(展开/折叠)</li>
|
||||
<li>代码生成子表支持日期/字典配置</li>
|
||||
<li>代码生成编辑修改打开新页签</li>
|
||||
<li>添加页签openPage支持传递参数</li>
|
||||
<li>添加清理分页的线程变量方法</li>
|
||||
<li>修改npm即将过期的注册源地址</li>
|
||||
<li>用户缓存信息添加部门ancestors祖级列表</li>
|
||||
<li>升级spring-cloud到最新版2021.0.1</li>
|
||||
<li>升级spring-boot到最新版本2.6.6</li>
|
||||
<li>升级spring-boot-admin到最新版2.6.6</li>
|
||||
<li>升级spring-boot-mybatis到最新版2.2.2</li>
|
||||
<li>降级jsencrypt版本兼容IE浏览器</li>
|
||||
<li>修复分页组件请求两次问题</li>
|
||||
<li>修复表单清除元素位置未垂直居中问题</li>
|
||||
<li>修复Excel注解prompt/combo同时使用不生效问题</li>
|
||||
<li>修复导入Excel时字典字段类型为Long转义为空问题</li>
|
||||
<li>修复登录超时刷新页面跳转登录页面还提示重新登录问题</li>
|
||||
<li>修复Xss注解字段值为空时的异常问题</li>
|
||||
<li>优化IP地址获取到多个的问题</li>
|
||||
<li>优化文件上传兼容Weblogic环境</li>
|
||||
<li>代码生成同步保留必填/类型选项</li>
|
||||
<li>优化Excel格式化不同类型的日期对象</li>
|
||||
<li>优化菜单表关键字导致的插件报错问题</li>
|
||||
<li>优化Oracle用户头像列为空时不显示问题</li>
|
||||
<li>优化页面若未匹配到字典标签则返回原字典值</li>
|
||||
<li>优化修复登录失效后多次请求提示多次弹窗问题</li>
|
||||
<li>其他细节优化</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="v3.4.0 - 2022-01-24">
|
||||
<ol>
|
||||
<li>新增Vue3前端代码生成模板</li>
|
||||
<li>新增图片预览组件</li>
|
||||
<li>新增压缩插件实现打包Gzip</li>
|
||||
<li>新增docker一键复制的脚本</li>
|
||||
<li>自定义xss校验注解实现</li>
|
||||
<li>路由支持单独配置菜单或角色权限</li>
|
||||
<li>前端支持设置是否需要防止数据重复提交</li>
|
||||
<li>预览组件支持多图显示</li>
|
||||
<li>代码生成列表图片支持预览</li>
|
||||
<li>代码生成新增Java类型Boolean</li>
|
||||
<li>定时任务目标字符串过滤特殊字符</li>
|
||||
<li>定时任务目标字符串验证包名白名单</li>
|
||||
<li>升级nacos到最新版2.0.4</li>
|
||||
<li>升级spring-cloud到最新版2021.0.0</li>
|
||||
<li>升级spring-boot到最新版本2.6.3</li>
|
||||
<li>升级spring-boot-admin到最新版2.6.1</li>
|
||||
<li>升级pagehelper到最新版1.4.1</li>
|
||||
<li>升级fastjson到最新版1.2.79</li>
|
||||
<li>SQL工具类新增检查关键字方法</li>
|
||||
<li>修复打包后字体图标偶现的乱码问题</li>
|
||||
<li>修复版本差异导致的懒加载报错问题</li>
|
||||
<li>修复选项卡点击右键刷新丢失参数问题</li>
|
||||
<li>修复登录失效后多次请求提示多次弹窗问题</li>
|
||||
<li>优化加载字典缓存数据</li>
|
||||
<li>优化代码生成同步更新字段</li>
|
||||
<li>优化代码生成字典组重复问题</li>
|
||||
<li>优化空值不进行回显数据字典</li>
|
||||
<li>优化用户导入提示溢出则显示滚动条</li>
|
||||
<li>优化定时任务cron表达式小时设置24</li>
|
||||
<li>优化部门修改缩放后出现的错位问题</li>
|
||||
<li>优化分页方法设置成通用方便灵活调用</li>
|
||||
<li>优化用户管理部门查询选择节点后分页参数初始</li>
|
||||
<li>其他细节优化</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="v3.3.0 - 2021-12-13">
|
||||
<ol>
|
||||
<li>新增配套并同步的Vue3前端版本</li>
|
||||
<li>新增认证对象简化权限验证</li>
|
||||
<li>新增tab对象简化页签操作</li>
|
||||
<li>修改获取缓存信息方式</li>
|
||||
<li>修改权限认证注解实现</li>
|
||||
<li>自定义文字复制剪贴指令</li>
|
||||
<li>升级axios到最新版本0.24.0</li>
|
||||
<li>升级core-js到最新版本3.19.1</li>
|
||||
<li>升级jsencrypt到最新版本3.2.1</li>
|
||||
<li>升级js-cookie到最新版本3.0.1</li>
|
||||
<li>升级clipboard到最新版本2.0.8</li>
|
||||
<li>升级velocity到最新版本2.3</li>
|
||||
<li>升级spring-boot到最新版本2.5.6</li>
|
||||
<li>升级spring-boot-admin到最新版2.5.4</li>
|
||||
<li>升级dynamic-ds到最新版本3.5.0</li>
|
||||
<li>代码生成预览支持复制内容</li>
|
||||
<li>修复五级以上菜单出现的404问题</li>
|
||||
<li>生产环境使用路由懒加载提升页面响应速度</li>
|
||||
<li>任务屏蔽违规字符&参数忽略双引号中的逗号</li>
|
||||
<li>优化用户个人信息接口防止修改用户名</li>
|
||||
<li>优化登录/验证码请求headers不设置token</li>
|
||||
<li>优化注册成功提示消息类型success</li>
|
||||
<li>优化下载解析blob响应是否登录失效</li>
|
||||
<li>修复字符串无法被反转义问题</li>
|
||||
<li>修复响应体过大出现的乱码问题</li>
|
||||
<li>修复回显数据字典组的键值错误</li>
|
||||
<li>修复代码生成复选框字典遗漏问题</li>
|
||||
<li>修复代码生成模板主子表删除缺少事务</li>
|
||||
<li>其他细节优化</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="v3.2.0 - 2021-10-12">
|
||||
<ol>
|
||||
<li>菜单管理支持配置路由参数</li>
|
||||
<li>定时任务支持在线生成cron表达式</li>
|
||||
<li>自定义弹层溢出滚动样式</li>
|
||||
<li>自定义可拖动弹窗宽度指令</li>
|
||||
<li>自定义可拖动弹窗高度指令</li>
|
||||
<li>修改时检查用户数据权限范围</li>
|
||||
<li>修复保存配置主题颜色失效问题</li>
|
||||
<li>新增暗色菜单风格主题</li>
|
||||
<li>菜单&部门新增展开/折叠功能</li>
|
||||
<li>页签新增关闭左侧&添加图标</li>
|
||||
<li>代码生成主子表多选行数据</li>
|
||||
<li>日期范围支持添加多组</li>
|
||||
<li>Excel导入支持@Excels注解</li>
|
||||
<li>Excel注解支持导入导出标题信息</li>
|
||||
<li>Excel注解支持自定义数据处理器</li>
|
||||
<li>日志注解新增是否保存响应参数</li>
|
||||
<li>定时任务对检查异常进行事务回滚</li>
|
||||
<li>补充定时任务表字段注释</li>
|
||||
<li>定时任务屏蔽ldap远程调用</li>
|
||||
<li>新增通用方法简化下载使用</li>
|
||||
<li>新增通用方法简化模态/缓存使用</li>
|
||||
<li>新增data-dict组件简化数据字典使用</li>
|
||||
<li>禁用dict-tag组件的渐变动画</li>
|
||||
<li>默认首页使用keep-alive缓存</li>
|
||||
<li>升级springcloud到最新版2020.0.4</li>
|
||||
<li>升级spring-boot到最新版本2.5.5</li>
|
||||
<li>升级spring-boot-admin到最新版2.5.2</li>
|
||||
<li>升级pagehelper到最新版1.4.0</li>
|
||||
<li>升级fastjson到最新版1.2.78</li>
|
||||
<li>升级druid到最新版1.2.8</li>
|
||||
<li>升级element-ui到最新版本2.15.6</li>
|
||||
<li>升级sass-loader到最新版本10.1.1</li>
|
||||
<li>升级dart-sass到版本1.32.13</li>
|
||||
<li>升级file-saver到最新版本2.0.5</li>
|
||||
<li>优化异常处理信息</li>
|
||||
<li>验证码默认20s超时</li>
|
||||
<li>优化代码生成导入表按创建时间排序</li>
|
||||
<li>优化代码生成点击预览重置激活tab</li>
|
||||
<li>修复主子表代码模板方法名错误问题</li>
|
||||
<li>修复xss过滤后格式出现的异常</li>
|
||||
<li>修复多图组件验证失败被删除问题</li>
|
||||
<li>请求参数新增reasonable分页合理化属性</li>
|
||||
<li>修复代码生成页面数据编辑保存之后总是跳转第一页的问题</li>
|
||||
<li>修复带safari浏览器无法格式化utc日期格式yyyy-MM-dd'T'HH:mm:ss.SSS问题</li>
|
||||
<li>其他细节优化</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="v3.1.0 - 2021-08-02">
|
||||
<ol>
|
||||
<li>支持配置XSS跨站脚本过滤</li>
|
||||
<li>支持配置验证码开关&类型</li>
|
||||
<li>新增是否开启用户注册功能</li>
|
||||
<li>用户管理新增分配角色功能</li>
|
||||
<li>角色管理新增分配用户功能</li>
|
||||
<li>系统布局配置支持动态标题开关</li>
|
||||
<li>增加字典标签样式回显dict组件</li>
|
||||
<li>FileUpload组件支持多文件上传</li>
|
||||
<li>ImageUpload组件支持多图片上传</li>
|
||||
<li>封装通用iframe组件</li>
|
||||
<li>菜单路由配置支持内链访问</li>
|
||||
<li>全局注册通用组件</li>
|
||||
<li>富文本默认上传返回url类型</li>
|
||||
<li>富文本新增上传文件大小限制</li>
|
||||
<li>增加自定义弹窗拖拽指令</li>
|
||||
<li>顶部菜单排除隐藏的默认路由</li>
|
||||
<li>跳转路由高亮相对应的菜单栏</li>
|
||||
<li>日志列表支持排序操作</li>
|
||||
<li>分页组件新增pagerCount属性</li>
|
||||
<li>定时任务屏蔽http(s)远程调用</li>
|
||||
<li>文件服务本地资源允许跨域访问</li>
|
||||
<li>升级spring-boot到最新版本2.5.3</li>
|
||||
<li>升级spring-boot-admin到最新版2.4.3</li>
|
||||
<li>升级spring-boot-mybatis到最新版2.2.0</li>
|
||||
<li>升级nacos到最新版2.0.3</li>
|
||||
<li>升级pagehelper到最新版1.3.1</li>
|
||||
<li>升级minio到最新版本8.2.2</li>
|
||||
<li>升级tobato到最新版本1.27.2</li>
|
||||
<li>升级dynamic-ds到最新版本3.4.1</li>
|
||||
<li>升级commons.io到最新版本v2.11.0</li>
|
||||
<li>升级common-pool到最新版本2.10.0</li>
|
||||
<li>升级commons.fileupload到最新版本v1.4</li>
|
||||
<li>升级element-ui到最新版本2.15.3</li>
|
||||
<li>优化统一网关错误码响应</li>
|
||||
<li>修复导出含params属性对象参数问题</li>
|
||||
<li>修复任意账户越权问题</li>
|
||||
<li>修复定时任务日志执行状态显示</li>
|
||||
<li>修改登录失效返回值code401</li>
|
||||
<li>用户信息长度校验限制</li>
|
||||
<li>角色&菜单新增字段属性提示信息</li>
|
||||
<li>修复用户搜索分页变量错误</li>
|
||||
<li>优化部门父级启用状态</li>
|
||||
<li>启用部门状态排除顶级节点</li>
|
||||
<li>定时任务新增更多操作</li>
|
||||
<li>优化代码生成模板</li>
|
||||
<li>优化顶部菜单显示样式</li>
|
||||
<li>优化导入用户显示样式</li>
|
||||
<li>优化用户不能删除自己</li>
|
||||
<li>密码框新增显示切换密码图标</li>
|
||||
<li>BLOB下载时清除URL对象引用</li>
|
||||
<li>其他细节优化</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="v3.0.0 - 2021-06-10">
|
||||
<ol>
|
||||
<li>新增菜单导航显示风格TopNav(false为左侧导航菜单,true为顶部导航菜单)</li>
|
||||
<li>布局设置支持保存&重置配置</li>
|
||||
<li>富文本编辑器支持自定义上传地址</li>
|
||||
<li>富文本编辑组件新增readOnly属性</li>
|
||||
<li>优化参数&字典缓存操作</li>
|
||||
<li>新增IE浏览器版本过低提示页面</li>
|
||||
<li>页签TagsView新增关闭右侧功能</li>
|
||||
<li>显隐列组件加载初始默认隐藏列</li>
|
||||
<li>关闭头像上传窗口还原默认图片</li>
|
||||
<li>个人信息添加手机&邮箱重复验证</li>
|
||||
<li>代码生成模板树表操作列添加新增按钮</li>
|
||||
<li>代码生成模板修复主子表字段重名问题</li>
|
||||
<li>支持docker部署项目</li>
|
||||
<li>升级springcloud到最新版2020.0.3</li>
|
||||
<li>升级spring-boot-alibaba到最新版2021.1</li>
|
||||
<li>升级nacos到最新版2.0.1 性能提升</li>
|
||||
<li>升级spring-boot到最新版本2.5.0</li>
|
||||
<li>升级spring-boot-admin到最新版2.4.1</li>
|
||||
<li>升级swagger到最新版本3.0.0</li>
|
||||
<li>升级mybatis到最新版3.5.6</li>
|
||||
<li>升级dynamic-ds到最新版本3.3.2</li>
|
||||
<li>升级minio到最新版本8.2.1</li>
|
||||
<li>升级fastjson到最新版1.2.76</li>
|
||||
<li>升级druid到最新版本v1.2.6</li>
|
||||
<li>修复四级菜单无法显示问题</li>
|
||||
<li>修复树表数据显示不全&加载慢问题</li>
|
||||
<li>修复关闭confirm提示框控制台报错问题</li>
|
||||
<li>上传媒体类型添加视频格式</li>
|
||||
<li>增加feign客户端IP头部信息</li>
|
||||
<li>修复两处存在SQL注入漏洞问题</li>
|
||||
<li>优化图片工具类读取文件,防止异常</li>
|
||||
<li>修复导出角色数据范围翻译缺少仅本人</li>
|
||||
<li>修复表单构建选择下拉选择控制台报错问题</li>
|
||||
<li>修复请求形参未传值记录日志异常问题</li>
|
||||
<li>调整sql默认为当前时间</li>
|
||||
<li>修改ip字段长度防止ipv6地址长度不够</li>
|
||||
<li>删除操作日志记录信息</li>
|
||||
<li>修复firefox下表单构建拖拽会新打卡一个选项卡</li>
|
||||
<li>用户&角色单条删除时使其逻辑删除</li>
|
||||
<li>优化树表代码生成模板</li>
|
||||
<li>修正通知公告日志记录类型</li>
|
||||
<li>修正后端导入表权限标识</li>
|
||||
<li>过滤BindingResult对象,防止异常</li>
|
||||
<li>Redis设置HashKey序列化</li>
|
||||
<li>优化Excel导入增加空行判断</li>
|
||||
<li>树级结构更新子节点使用replaceFirst</li>
|
||||
<li>富文本工具栏配置视频</li>
|
||||
<li>修正模板字符编码</li>
|
||||
<li>优化通用下载完成后删除节点</li>
|
||||
<li>角色非自定义权限范围清空选择值</li>
|
||||
<li>修改主题后mini类型按钮无效问题</li>
|
||||
<li>其他细节优化</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="v2.5.0 - 2021-02-02">
|
||||
<ol>
|
||||
<li>增加分布式事务seata支持</li>
|
||||
<li>代码生成模板支持主子表</li>
|
||||
<li>表格右侧工具栏组件支持显隐列</li>
|
||||
<li>图片组件添加预览&移除功能</li>
|
||||
<li>Excel注解支持Image图片导出</li>
|
||||
<li>操作按钮组调整为朴素按钮样式</li>
|
||||
<li>代码生成支持文件上传组件</li>
|
||||
<li>代码生成日期控件区分范围</li>
|
||||
<li>代码生成数据库文本类型生成表单文本域</li>
|
||||
<li>用户手机邮箱&菜单组件修改允许空字符串</li>
|
||||
<li>修复header获取username中文情况下乱码</li>
|
||||
<li>修复角色管理-编辑角色-功能权限显示异常</li>
|
||||
<li>修正操作日志删除接口路径</li>
|
||||
<li>修复IE11浏览器报错问题</li>
|
||||
<li>修复sentinel流量告警前端不响应</li>
|
||||
<li>修正侧边栏静态路由丢失问题</li>
|
||||
<li>修复导入数据为负浮点数时丢失精度问题</li>
|
||||
<li>修复Get请求参数特殊值无法正确的传参</li>
|
||||
<li>更换过期的共享配置属性</li>
|
||||
<li>添加启动执行脚本</li>
|
||||
<li>升级element-ui到最新版本2.15.0</li>
|
||||
<li>升级spring-boot到最新版本2.3.7</li>
|
||||
<li>升级spring-cloud到Hoxton.SR9</li>
|
||||
<li>升级spring-boot-alibaba到最新版2.2.5</li>
|
||||
<li>升级spring-boot-admin到最新版2.3.1</li>
|
||||
<li>升级druid到最新版本v1.2.4</li>
|
||||
<li>升级fastjson到最新版1.2.75</li>
|
||||
<li>其他细节优化</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="v2.4.0 - 2020-12-22">
|
||||
<ol>
|
||||
<li>增加分布式文件Minio支持</li>
|
||||
<li>支持多数据源切换</li>
|
||||
<li>修复多级菜单之间切换无法缓存的问题</li>
|
||||
<li>三级菜单自动配置组件</li>
|
||||
<li>支持主题风格配置</li>
|
||||
<li>服务之间feign调用传递用户信息</li>
|
||||
<li>删除用户和角色解绑关联</li>
|
||||
<li>去除用户手机邮箱部门必填验证</li>
|
||||
<li>代码生成预览支持高亮显示</li>
|
||||
<li>获取请求token方法移至权限工具类</li>
|
||||
<li>代码生成预览提供滚动机制</li>
|
||||
<li>权限工具类增加管理员判断</li>
|
||||
<li>日志记录增加过滤多文件场景</li>
|
||||
<li>修改用户头像预览宽高</li>
|
||||
<li>Excel支持注解align对齐方式</li>
|
||||
<li>项目添加robots.txt 防止系统被搜索引擎收录</li>
|
||||
<li>移除path-to-regexp正则匹配插件</li>
|
||||
<li>修改Set可能导致嵌套的问题</li>
|
||||
<li>调整代码生成页列宽</li>
|
||||
<li>回显数据字典防止空值报错</li>
|
||||
<li>支持get请求映射params参数</li>
|
||||
<li>登录后push添加catch防止出现检查错误</li>
|
||||
<li>防止安全扫描YUI出现的风险提示</li>
|
||||
<li>代码生成删除多余的数字float类型</li>
|
||||
<li>Excel支持导入Boolean型数据</li>
|
||||
<li>修正转换字符串的目标字符集属性</li>
|
||||
<li>删除多余的依赖</li>
|
||||
<li>修改node-sass为dart-sass</li>
|
||||
<li>升级poi到最新版本4.1.2</li>
|
||||
<li>升级axios到最新版本0.21.0</li>
|
||||
<li>升级element-ui到最新版本2.14.1</li>
|
||||
<li>升级vue到最新版本2.6.12</li>
|
||||
<li>升级vuex到最新版本3.6.0</li>
|
||||
<li>升级vue-cli到版本4.5.9</li>
|
||||
<li>升级vue-router到最新版本3.4.9</li>
|
||||
<li>升级vue-cli到最新版本4.4.6</li>
|
||||
<li>升级vue-cropper到最新版本0.5.5</li>
|
||||
<li>升级clipboard到最新版本2.0.6</li>
|
||||
<li>升级core-js到最新版本3.8.1</li>
|
||||
<li>升级echarts到最新版本4.9.0</li>
|
||||
<li>升级file-saver到最新版本2.0.4</li>
|
||||
<li>升级fuse.js到最新版本6.4.3</li>
|
||||
<li>升级js-beautify到最新版本1.13.0</li>
|
||||
<li>升级js-cookie到最新版本2.2.1</li>
|
||||
<li>升级path-to-regexp到最新版本6.2.0</li>
|
||||
<li>升级quill到最新版本1.3.7</li>
|
||||
<li>升级screenfull到最新版本5.0.2</li>
|
||||
<li>升级sortablejs到最新版本1.10.2</li>
|
||||
<li>升级vuedraggable到最新版本2.24.3</li>
|
||||
<li>升级chalk到最新版本4.1.0</li>
|
||||
<li>升级eslint到最新版本7.15.0</li>
|
||||
<li>升级eslint-plugin-vue到最新版本7.2.0</li>
|
||||
<li>升级lint-staged到最新版本10.5.3</li>
|
||||
<li>升级runjs到最新版本4.4.2</li>
|
||||
<li>升级sass-loader到最新版本10.1.0</li>
|
||||
<li>升级script-ext-html-webpack-plugin到最新版本2.1.5</li>
|
||||
<li>升级svg-sprite-loader到最新版本5.1.1</li>
|
||||
<li>升级vue-template-compiler到最新版本2.6.12</li>
|
||||
<li>其他细节优化</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="v2.3.0 - 2020-11-20">
|
||||
<ol>
|
||||
<li>新增文件服务应用(支持本地、FastDFS)</li>
|
||||
<li>优化头像样式,鼠标移入悬停遮罩</li>
|
||||
<li>AjaxResult重写put方法,以方便链式调用</li>
|
||||
<li>代码生成支持上传控件</li>
|
||||
<li>新增图片上传组件</li>
|
||||
<li>支持用户头像更新</li>
|
||||
<li>调整默认首页</li>
|
||||
<li>角色权限验证hasRole匹配改为equals</li>
|
||||
<li>修正数组权限为空判断</li>
|
||||
<li>修正注释选中节点和半选节点获取</li>
|
||||
<li>升级pagehelper到最新版1.3.0</li>
|
||||
<li>升级fastjson到最新版1.2.74</li>
|
||||
<li>修正定时任务执行一次权限标识</li>
|
||||
<li>修复页签关闭所有固定标签路由不刷新问题</li>
|
||||
<li>表单构建布局型组件新增按钮</li>
|
||||
<li>调整日志路径到模块目录</li>
|
||||
<li>修正菜单提示信息错误</li>
|
||||
<li>其他细节优化</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="v2.2.0 - 2020-10-10">
|
||||
<ol>
|
||||
<li>移除 OAuth2 改为 Redis</li>
|
||||
<li>升级SpringCloud到最新版本Hoxton.SR8</li>
|
||||
<li>升级SpringCloud Alibaba到最新版本2.2.3</li>
|
||||
<li>升级SpringBoot Admin到最新版本2.3.0</li>
|
||||
<li>升级Fastjson到最新版1.2.73</li>
|
||||
<li>新增在线用户会话管理</li>
|
||||
<li>修改用户个人资料/密码同步缓存信息</li>
|
||||
<li>修复前端通用导出方法参数传值请求方式问题</li>
|
||||
<li>菜单新增是否缓存keep-alive</li>
|
||||
<li>菜单&数据权限新增(展开/折叠 全选/全不选 父子联动)</li>
|
||||
<li>Job与Gen模块增加Redis默认配置</li>
|
||||
<li>新增表格右侧工具栏组件right-toolbar</li>
|
||||
<li>代码生成支持同步数据库</li>
|
||||
<li>代码生成支持富文本控件</li>
|
||||
<li>代码生成树模板去掉多余双引号</li>
|
||||
<li>代码生成添加select必填选项</li>
|
||||
<li>代码生成页面时不忽略remark属性</li>
|
||||
<li>修复代码生成下载路径错误</li>
|
||||
<li>左侧菜单文字过长显示省略号</li>
|
||||
<li>表格操作列间距调整</li>
|
||||
<li>Excel注解支持自动统计数据总和</li>
|
||||
<li>Excel注解支持设置BigDecimal精度&舍入规则</li>
|
||||
<li>导入Excel整形值校验优化</li>
|
||||
<li>导出Excel类型NUMERIC支持精度浮点类型</li>
|
||||
<li>导出Excel调整targetAttr获取值方法,防止get方法不规范</li>
|
||||
<li>Token续期调整为后端刷新</li>
|
||||
<li>Token设置默认有效期时长12小时</li>
|
||||
<li>网关白名单放入nacos配置&支持模糊匹配</li>
|
||||
<li>修复富文本工具栏样式不对齐问题</li>
|
||||
<li>Editor组件优化,支持自定义高度&图片冲突问题</li>
|
||||
<li>
|
||||
修复富文本空格和缩进保存后不生效问题&删除重复的placeholder
|
||||
</li>
|
||||
<li>限制系统内置参数不允许删除</li>
|
||||
<li>修正调用目标字符串最大长度</li>
|
||||
<li>修改自定义权限实现</li>
|
||||
<li>优化递归菜单&部门子节点</li>
|
||||
<li>修改sass为node-sass,避免el-icon图标乱码</li>
|
||||
<li>修复根节点为子部门时,树状结构显示问题</li>
|
||||
<li>全局异常状态汉化拦截处理</li>
|
||||
<li>唯一限制条件只返回单条数据</li>
|
||||
<li>其他细节优化</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
|
||||
<el-collapse-item title="v2.1.0 - 2020-08-02">
|
||||
<ol>
|
||||
<li>表格工具栏右侧添加刷新&显隐查询栏</li>
|
||||
<li>OAuth自动刷新续签Token</li>
|
||||
<li>网关支持黑名单配置</li>
|
||||
<li>权限配置自动注册</li>
|
||||
<li>Feign配置自动注册</li>
|
||||
<li>代码生成支持选择上级菜单</li>
|
||||
<li>代码生成支持复选框</li>
|
||||
<li>代码生成支持自定义路径</li>
|
||||
<li>验证码类型支持(数组计算、字符验证)</li>
|
||||
<li>Excel支持sort导出排序</li>
|
||||
<li>Excel支持分割字符串组内容</li>
|
||||
<li>excel 导入数字不需要格式化 ,导入允许列和属性个数不一致</li>
|
||||
<li>新增菜单默认主类目</li>
|
||||
<li>升级vue-cli版本到4.4.4</li>
|
||||
<li>修改 node-sass 为 dart-sass</li>
|
||||
<li>升级element-ui版本到2.13.2</li>
|
||||
<li>删除babel,提高编译速度</li>
|
||||
<li>修复验证码异常时network面板的中文会出现乱码问题</li>
|
||||
<li>修复 utils/index.js 中不包含 parseTime 函数的 bug</li>
|
||||
<li>优化selectDictLabel方法,数组迭代器换为some</li>
|
||||
<li>修复客户端模式认证会出现错误</li>
|
||||
<li>检查字符支持小数点&降级改成异常提醒</li>
|
||||
<li>定时任务添加cron表达式验证</li>
|
||||
<li>代码生成查询条件修正</li>
|
||||
<li>修正角色管理导出权限权限字符</li>
|
||||
<li>修正防止切换权限用户后登录出现404</li>
|
||||
<li>终端设置安全码加密&更新缓存</li>
|
||||
<li>修复头像上传成功二次打开无法改变裁剪框大小和位置问题</li>
|
||||
<li>修复布局为small者mini用户表单显示错位问题</li>
|
||||
<li>修复代码生成点击多次表修改数据不变化的问题</li>
|
||||
<li>修复代码生成导入表结构出现异常页面不提醒问题</li>
|
||||
<li>修复角色权限修改时已有权限未自动勾选异常</li>
|
||||
<li>创建用户不允许选择系统管理员角色</li>
|
||||
<li>添加全局异常处理(网关异常&业务异常)</li>
|
||||
<li>修复终端查询Enter键搜索时是刷新页面而不是查询列表</li>
|
||||
<li>删除job重复表单参数</li>
|
||||
<li>代码生成浮点型改用BigDecimal</li>
|
||||
<li>表单类型为Integer/Long设置整形默认值</li>
|
||||
<li>修改用户管理复选框宽度,防止部分浏览器出现省略号</li>
|
||||
<li>
|
||||
RedisCache中所有方法参数添加final,并优化list取出效率,添加其它常用redis方法
|
||||
</li>
|
||||
<li>修正定时任务日志权限字符</li>
|
||||
<li>添加Jackson时区配置</li>
|
||||
<li>代码生成相关问题修复</li>
|
||||
<li>自定义oauth2返回异常信息</li>
|
||||
<li>升级nacos到最新版1.3.0 全新内核构建</li>
|
||||
<li>修正【代码生成】功能无法下载的问题</li>
|
||||
<li>其他细节优化</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
|
||||
<el-collapse-item title="v2.0.0 - 2019-12-02">
|
||||
<ol>
|
||||
<li>新增代码生成</li>
|
||||
<li>新增@RepeatSubmit注解,防止重复提交</li>
|
||||
<li>新增菜单主目录添加/删除操作</li>
|
||||
<li>日志记录过滤特殊对象,防止转换异常</li>
|
||||
<li>修改代码生成路由脚本错误</li>
|
||||
<li>用户上传头像实时同步缓存,无需重新登录</li>
|
||||
<li>调整切换页签后不重新加载数据</li>
|
||||
<li>添加jsencrypt实现参数的前端加密</li>
|
||||
<li>系统退出删除用户缓存记录</li>
|
||||
<li>其他细节优化</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="v2.0.0 - 2020-06-10">
|
||||
<ol>
|
||||
<li>使用Sentinel代替Hystrix</li>
|
||||
<li>菜单新增终端管理配置</li>
|
||||
<li>菜单新增Nacos&Sentinel控制台</li>
|
||||
<li>代码生成适配Cloud</li>
|
||||
<li>记录登录退出日志信息</li>
|
||||
<li>网关验证码过滤器添加放行校验</li>
|
||||
<li>个性化的定制自动加载类</li>
|
||||
<li>定时任务调整label-width,防止部署出现错位</li>
|
||||
<li>调整表头固定列默认样式</li>
|
||||
<li>代码生成模板调整,字段为String并且必填则加空串条件</li>
|
||||
<li>代码生成字典Integer/Long使用parseInt</li>
|
||||
<li>修复退出登录重定向到登录页,登录后参数丢失。</li>
|
||||
<li>修正岗位导出权限注解</li>
|
||||
<li>修复首页搜索菜单外链无法点击跳转问题</li>
|
||||
<li>修复菜单管理选择图标,backspace删除时不过滤数据</li>
|
||||
<li>用户管理部门分支节点不可检查&显示计数</li>
|
||||
<li>数据范围过滤属性调整</li>
|
||||
<li>字典管理添加缓存读取</li>
|
||||
<li>参数管理支持缓存操作</li>
|
||||
<li>升级fastjson到最新版1.2.70 修复高危安全漏洞</li>
|
||||
<li>dev启动默认打开浏览器</li>
|
||||
<li>使用vue-cli默认source-map</li>
|
||||
<li>slidebar eslint报错优化</li>
|
||||
<li>当tags-view滚动关闭右键菜单</li>
|
||||
<li>支持一级菜单(和主页同级)在main区域显示</li>
|
||||
<li>限制外链地址必须以http(s)😕/开头</li>
|
||||
<li>tagview & sidebar 主题颜色与element ui(全局)同步</li>
|
||||
<li>
|
||||
修复dict_sort不可update为0的问题&查询返回增加dict_sort升序排序
|
||||
</li>
|
||||
<li>权限部分代码调整</li>
|
||||
<li>其他细节优化</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="v1.0.0 - 2020-05-20">
|
||||
<ol>
|
||||
<li>若依微服务系统正式发布</li>
|
||||
</ol>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="12" :lg="8">
|
||||
<el-card class="update-log">
|
||||
<template v-slot:header>
|
||||
<div class="clearfix">
|
||||
<span>捐赠支持</span>
|
||||
</div>
|
||||
</template>
|
||||
<div class="body">
|
||||
<img
|
||||
src="@/assets/images/pay.png"
|
||||
alt="donate"
|
||||
style="width:100%"
|
||||
/>
|
||||
<span style="display: inline-block; height: 30px; line-height: 30px"
|
||||
>你可以请作者喝杯咖啡表示鼓励</span
|
||||
>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -124,9 +124,9 @@
|
|||
<el-tab-pane label="项目基本信息" name="base">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="所属单位" prop="disDeptId">
|
||||
<el-form-item label="归属单位" prop="disDeptId">
|
||||
<el-tree-select v-model="form.disDeptId" :data="deptOptions"
|
||||
:props="{ value: 'id', label: 'label', children: 'children' }" value-key="id" placeholder="请选择所属单位"
|
||||
:props="{ value: 'id', label: 'label', children: 'children' }" value-key="id" placeholder="请选择归属单位"
|
||||
check-strictly style="width:100%" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
@ -161,9 +161,22 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8" class="fitem-no-width">
|
||||
<el-form-item label="项目技术负责人" prop="techLeader">
|
||||
<el-input v-model="form.techLeader" maxlength="10" show-word-limit placeholder="请输入项目技术负责人" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" class="fitem-no-width">
|
||||
<el-form-item label="技术负责人电话" prop="techLeaderPhone">
|
||||
<el-input v-model="form.techLeaderPhone" maxlength="10" show-word-limit placeholder="请输入技术负责人电话" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="项目地址" prop="projectAddress">
|
||||
<el-form-item label="项目地址" prop="projectAddress" ref="fitemPrjAddr">
|
||||
<el-input v-model="addressInfos" placeholder="请选择项目地址信息" @focus="getMapInfo">
|
||||
<template #prefix>
|
||||
<el-icon class="el-input__icon">
|
||||
|
@ -176,22 +189,22 @@
|
|||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目工期" prop="projectTimeLimit">
|
||||
<el-input v-model.number="form.projectTimeLimit" maxlength="10" show-word-limit placeholder="请输入项目工期">
|
||||
<el-form-item label="总工期" prop="projectTimeLimit">
|
||||
<el-input v-model.number="form.projectTimeLimit" maxlength="10" show-word-limit placeholder="请输入总工期">
|
||||
<template #append>天</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目总投资" prop="totalInvestment">
|
||||
<el-input v-model.number="form.totalInvestment" maxlength="20" show-word-limit placeholder="请输入项目总投资">
|
||||
<el-form-item label="总投资" prop="totalInvestment">
|
||||
<el-input v-model.number="form.totalInvestment" maxlength="20" show-word-limit placeholder="请输入总投资">
|
||||
<template #append>万元</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合同总金额" prop="contractAmount">
|
||||
<el-input v-model.number="form.contractAmount" maxlength="20" show-word-limit placeholder="请输入合同总金额">
|
||||
<el-form-item label="合同金额" prop="contractAmount">
|
||||
<el-input v-model.number="form.contractAmount" maxlength="20" show-word-limit placeholder="请输入合同金额">
|
||||
<template #append>万元</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
|
@ -205,6 +218,20 @@
|
|||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" class="fitem-no-width">
|
||||
<el-form-item label="计划开工时间" prop="scheduledStartTime">
|
||||
<el-date-picker v-model="form.scheduledStartTime" type="date" placeholder="请选择计划开工时间"
|
||||
style="width:100%" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" class="fitem-no-width">
|
||||
<el-form-item label="计划完工时间" prop="plannedCompletionTime">
|
||||
<el-date-picker v-model="form.plannedCompletionTime" type="date" placeholder="请选择计划完工时间"
|
||||
style="width:100%" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目进度" prop="projectSchedule">
|
||||
<el-select v-model="form.projectSchedule" placeholder="请选择项目进度" style="width:100%">
|
||||
|
@ -212,28 +239,15 @@
|
|||
:value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="计划开工时间" prop="scheduledStartTime">
|
||||
<el-date-picker v-model="form.scheduledStartTime" type="date" placeholder="请选择计划开工时间"
|
||||
style="width:100%" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="计划完工时间" prop="plannedCompletionTime">
|
||||
<el-date-picker v-model="form.plannedCompletionTime" type="date" placeholder="请选择计划完工时间"
|
||||
style="width:100%" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="8" class="fitem-no-width">
|
||||
<el-form-item label="实际开工时间" prop="actualOperatingTime">
|
||||
<el-date-picker v-model="form.actualOperatingTime" type="date" placeholder="请选择实际开工时间"
|
||||
style="width:100%" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="8" class="fitem-no-width">
|
||||
<el-form-item label="实际完工时间" prop="actualCompletionTime">
|
||||
<el-date-picker v-model="form.actualCompletionTime" type="date" placeholder="请选择实际完工时间"
|
||||
style="width:100%" />
|
||||
|
@ -248,31 +262,45 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注"
|
||||
maxlength="255" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="建设单位信息" name="depts" v-if="data.opt=='edit'">
|
||||
<div v-for="(it,idx) in projectDeptsList" :key="idx" class="prj-dept-item">
|
||||
<div class="scroll" style="max-height: 60vh; overflow-y: auto;">
|
||||
<div v-for="(it,idx) in data.projectDeptsList" :key="idx" class="prj-dept-item">
|
||||
<div class="dept-item-header">
|
||||
<el-icon size="14" color="#2196F3"><OfficeBuilding /></el-icon>
|
||||
<span class="sp-header">{{ it.deptType }}</span>
|
||||
<span class="sp-header">{{ it.header }}</span>
|
||||
<el-button @click="doAddPrjDept(it)" type="primary" size="small" style="margin-left: 10px;" v-if="it.header!='建设单位'">增加一行</el-button>
|
||||
</div>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item :label="it.deptType+'名称'">
|
||||
<el-input v-model="it.deptName" class="txt-dept-name" placeholder="请输入单位名称"/>
|
||||
<el-row v-for="(item,index) in it.datas" :key="index">
|
||||
<el-col :span="7">
|
||||
<el-form-item :label="item.deptType+'名称'">
|
||||
<el-input v-model="item.deptName" class="txt-dept-name" placeholder="请输入单位名称"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="7">
|
||||
<el-form-item label="负责人姓名">
|
||||
<el-input v-model="it.leader" class="txt-leader" placeholder="请输入负责人姓名"/>
|
||||
<el-input v-model="item.leader" class="txt-leader" placeholder="请输入负责人姓名"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="7">
|
||||
<el-form-item label="负责人电话">
|
||||
<el-input v-model="it.phone" class="txt-phone" placeholder="请输入负责人电话"/>
|
||||
<el-input v-model="item.phone" class="txt-phone" placeholder="请输入负责人电话"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="3">
|
||||
<el-button v-if="index>0" type="warning" size="small" @click="doDeletPrjDept(it,item,index)">删除</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="项目大屏设置" name="setting" v-if="data.opt=='edit'" class="pan-setting">
|
||||
<el-row :gutter="20">
|
||||
|
@ -289,7 +317,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" :class="form.setting.orgPlane?'no-up':'can-up'" class="up-img">
|
||||
<el-form-item label="项目平面图" prop="orgPlane">
|
||||
<el-form-item label="施工平面图布置图" prop="orgPlane">
|
||||
<image-upload v-model="form.setting.orgPlane" :limit="1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
@ -308,6 +336,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-form>
|
||||
|
@ -344,6 +373,7 @@ const total = ref(0);
|
|||
const title = ref("");
|
||||
const activeTags = ref('base')
|
||||
const addressInfos = ref("");
|
||||
const fitemPrjAddr=ref()
|
||||
const projectDeptsList = ref([]);
|
||||
const checkedProjectDepts = ref([]);
|
||||
|
||||
|
@ -369,31 +399,42 @@ const data = reactive({
|
|||
projectStatus: null,
|
||||
isDel: null,
|
||||
},
|
||||
rules: {
|
||||
deptId: [{ required: true, message: "所属部门不能为空", trigger: "change" }],
|
||||
disDeptId: [{ required: true, message: "显示层级不能为空", trigger: "change" }],
|
||||
rules: {
|
||||
disDeptId: [{ required: true, message: "归属单位不能为空", trigger: "change" }],
|
||||
projectName: [{ required: true, message: "项目名称不能为空", trigger: "blur" }],
|
||||
simpleName: [{ required: false, message: "项目简称不能为空", trigger: "blur" }],
|
||||
projectType: [{ required: true, message: "项目类型不能为空", trigger: "change" }],
|
||||
projectPerson: [{ required: true, message: "项目负责人不能为空", trigger: "blur" }],
|
||||
projectPersonPhone: [{ required: true, message: "负责人电话不能为空", trigger: "blur" }],
|
||||
projectAddress: [{ required: false, message: "项目地址不能为空", trigger: "blur" }],
|
||||
projectTimeLimit: [{ required: true, message: "工程期限不能为空", trigger: "blur" }],
|
||||
totalInvestment: [{ required: true, message: "项目总投资不能为空", trigger: "blur" }],
|
||||
techLeader: [{ required: true, message: "技术负责人不能为空", trigger: "blur" }],
|
||||
techLeaderPhone: [{ required: true, message: "技术负责人联系电话不能为空", trigger: "blur" }],
|
||||
projectAddress: [{ required: true, message: "项目地址不能为空", trigger: "blur" }],
|
||||
projectTimeLimit: [{ required: true, message: "总工期不能为空", trigger: "blur" }],
|
||||
contractAmount: [{ required: true, message: "合同金额不能为空", trigger: "blur" }],
|
||||
floorArea: [{ required: true, message: "建筑面积不能为空", trigger: "blur" }],
|
||||
scheduledStartTime: [{ required: true, message: "计划开工时间不能为空", trigger: "blur" }],
|
||||
plannedCompletionTime: [{ required: true, message: "计划完工时间不能为空", trigger: "blur" }],
|
||||
projectSchedule: [{ required: true, message: "项目进度不能为空", trigger: "blur" }],
|
||||
actualOperatingTime: [{ required: true, message: "实际开工时间不能为空", trigger: "blur" }],
|
||||
projectSummarize: [{ required: true, message: "项目概述不能为空", trigger: "blur" }],
|
||||
},
|
||||
opt:'',
|
||||
|
||||
projectDeptsList:[]
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
/** 地图选择 */
|
||||
function mapDocom(pt, city) {
|
||||
form.value.projectAddress = (city.address || "") + (city.poi_desc || "");
|
||||
form.value.province=city.province
|
||||
form.value.city=city.city
|
||||
form.value.district=city.district
|
||||
form.value.address=city.address;
|
||||
form.value.projectAddress = city.address || "";
|
||||
form.value.longitude = pt.lng.toFixed(5);
|
||||
form.value.latitude = pt.lat.toFixed(5);
|
||||
addressInfos.value = form.value.projectAddress + "," + form.value.longitude + "," + form.value.latitude;
|
||||
fitemPrjAddr.value.clearValidate();
|
||||
}
|
||||
|
||||
/** 查询项目信息列表 */
|
||||
|
@ -414,6 +455,7 @@ function cancel() {
|
|||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
addressInfos.value="";
|
||||
form.value = {
|
||||
id: null,
|
||||
deptId: null,
|
||||
|
@ -486,6 +528,22 @@ function handleAdd() {
|
|||
open.value = true;
|
||||
title.value = "添加项目";
|
||||
}
|
||||
function doAddPrjDept(it){
|
||||
it.datas.push({
|
||||
deptType:it.header,deptName:'',leader:'',phone:''
|
||||
});
|
||||
}
|
||||
|
||||
function doDeletPrjDept(it,item,index){
|
||||
if(item.deptName || item.leader || item.phone){
|
||||
proxy.$modal.confirm('是否确认删除这个数据?').then(function () {
|
||||
it.datas.splice(index,1)
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => { });
|
||||
}else{
|
||||
it.datas.splice(index,1)
|
||||
}
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
|
@ -493,6 +551,7 @@ function handleUpdate(row) {
|
|||
reset();
|
||||
const _id = row.id || ids.value
|
||||
getProProjectInfo(_id).then(response => {
|
||||
debugger
|
||||
form.value = response.data;
|
||||
form.value.setting=response.data.setting||{
|
||||
orgName:'',
|
||||
|
@ -513,6 +572,16 @@ function handleUpdate(row) {
|
|||
{deptType:'勘察单位',deptName:'',leader:'',phone:''},
|
||||
];
|
||||
}
|
||||
let headers="建设单位,监理单位,设计单位,检测单位,勘察单位".split(",");
|
||||
data.projectDeptsList=[];
|
||||
headers.forEach(h=>{
|
||||
data.projectDeptsList.push({
|
||||
header:h,
|
||||
datas:projectDeptsList.value.filter(it=>it.deptType==h)
|
||||
})
|
||||
});
|
||||
addressInfos.value = form.value.projectAddress + "," + form.value.longitude + "," + form.value.latitude;
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -549,12 +618,25 @@ function handleDeptsSelectionChange(selection) {
|
|||
checkedProjectDepts.value = selection.map(item => item.index)
|
||||
}
|
||||
|
||||
function getProjectDeptsList(){
|
||||
let datas=[];
|
||||
data.projectDeptsList.forEach(d=>{
|
||||
if(d.datas){
|
||||
d.datas.forEach(it=>{
|
||||
if(it.deptName || it.leader || it.phone){
|
||||
datas.push(it);
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
return datas;
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
debugger
|
||||
proxy.$refs["proProjectInfoRef"].validate(valid => {
|
||||
if (valid) {
|
||||
form.value.projectDeptsList = projectDeptsList.value;
|
||||
form.value.projectDeptsList = getProjectDeptsList();
|
||||
let postData={
|
||||
...form.value
|
||||
}
|
||||
|
@ -614,7 +696,7 @@ function getDeptTree() {
|
|||
|
||||
/** 地图选择 */
|
||||
function getMapInfo() {
|
||||
mapRef.value.showDlg();
|
||||
mapRef.value.showDlg(form.value);
|
||||
}
|
||||
|
||||
/** 初始化页面 */
|
||||
|
@ -634,16 +716,20 @@ getDeptTree();
|
|||
<style lang="scss">
|
||||
.project-info-edit-dlg{
|
||||
.prj-dept-item{
|
||||
margin-bottom: 20px;
|
||||
margin-bottom: 10px;
|
||||
.dept-item-header{
|
||||
display: flex;
|
||||
color: #2196F3;
|
||||
align-items: center;
|
||||
line-height: 30px;
|
||||
.sp-header{
|
||||
display: inline-block;
|
||||
margin-left: 4px;
|
||||
}
|
||||
}
|
||||
.el-form-item{
|
||||
margin-bottom: 8px !important;
|
||||
}
|
||||
.el-input{
|
||||
display: inline-block;
|
||||
width:auto;
|
||||
|
|
|
@ -1,116 +1,53 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<div class="app-container pro-project-info-subdepts-users-index">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="项目主键" prop="projectId">
|
||||
<el-input
|
||||
v-model="queryParams.projectId"
|
||||
placeholder="请输入项目主键"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.projectId" placeholder="请输入项目主键" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分包单位" prop="subDeptId">
|
||||
<el-input
|
||||
v-model="queryParams.subDeptId"
|
||||
placeholder="请输入分包单位"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.subDeptId" placeholder="请输入分包单位" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分包单位名称" prop="subDeptName">
|
||||
<el-input
|
||||
v-model="queryParams.subDeptName"
|
||||
placeholder="请输入分包单位名称"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.subDeptName" placeholder="请输入分包单位名称" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="用户主键" prop="userId">
|
||||
<el-input
|
||||
v-model="queryParams.userId"
|
||||
placeholder="请输入用户主键"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.userId" placeholder="请输入用户主键" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工人姓名" prop="userName">
|
||||
<el-input
|
||||
v-model="queryParams.userName"
|
||||
placeholder="请输入工人姓名"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.userName" placeholder="请输入工人姓名" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工种类型" prop="craftType">
|
||||
<el-select v-model="queryParams.craftType" placeholder="请选择工种类型" clearable>
|
||||
<el-option
|
||||
v-for="dict in pro_craft_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
<el-option v-for="dict in pro_craft_type" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工种岗位" prop="craftPost">
|
||||
<el-select v-model="queryParams.craftPost" placeholder="请选择工种岗位" clearable>
|
||||
<el-option
|
||||
v-for="dict in pro_craft_post"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
<el-option v-for="dict in pro_craft_post" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="学习文件地址" prop="eduFilePath">
|
||||
<el-input
|
||||
v-model="queryParams.eduFilePath"
|
||||
placeholder="请输入学习文件地址"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.eduFilePath" placeholder="请输入学习文件地址" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="学习签名地址" prop="eduSignPath">
|
||||
<el-input
|
||||
v-model="queryParams.eduSignPath"
|
||||
placeholder="请输入学习签名地址"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.eduSignPath" placeholder="请输入学习签名地址" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="学习时间" prop="eduDate">
|
||||
<el-date-picker clearable
|
||||
v-model="queryParams.eduDate"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
<el-date-picker clearable v-model="queryParams.eduDate" type="date" value-format="YYYY-MM-DD"
|
||||
placeholder="请选择学习时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="进场状态" prop="useStatus">
|
||||
<el-select v-model="queryParams.useStatus" placeholder="请选择进场状态" clearable>
|
||||
<el-option
|
||||
v-for="dict in sys_use_status"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
<el-option v-for="dict in sys_use_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="进行步骤" prop="subStep">
|
||||
<el-input
|
||||
v-model="queryParams.subStep"
|
||||
placeholder="请输入进行步骤"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.subStep" placeholder="请输入进行步骤" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="删除标识" prop="isDel">
|
||||
<el-select v-model="queryParams.isDel" placeholder="请选择删除标识" clearable>
|
||||
<el-option
|
||||
v-for="dict in sys_is_del"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
<el-option v-for="dict in sys_is_del" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
|
@ -121,179 +58,180 @@
|
|||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:add']"
|
||||
>新增</el-button>
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="Edit"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:edit']"
|
||||
>修改</el-button>
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate"
|
||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:edit']">修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:remove']"
|
||||
>删除</el-button>
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
|
||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:remove']">删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="Download"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:export']"
|
||||
>导出</el-button>
|
||||
<el-button type="warning" plain icon="Download" @click="handleExport"
|
||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:export']">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="proProjectInfoSubdeptsUsersList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="主键" align="center" prop="id" />
|
||||
<el-table-column label="项目主键" align="center" prop="projectId" />
|
||||
<el-table-column label="分包单位" align="center" prop="subDeptId" />
|
||||
<el-table-column label="分包单位名称" align="center" prop="subDeptName" />
|
||||
<el-table-column label="用户主键" align="center" prop="userId" />
|
||||
<el-table-column label="工人姓名" align="center" prop="userName" />
|
||||
<el-table-column label="所属单位" align="center" prop="subDeptName" />
|
||||
<el-table-column label="姓名" align="center" prop="userName" />
|
||||
<el-table-column label="联系电话" align="center" prop="userPhone" />
|
||||
<el-table-column label="班组" align="center" prop="subDeptGroupName" />
|
||||
<el-table-column label="工种类型" align="center" prop="craftType">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="pro_craft_type" :value="scope.row.craftType"/>
|
||||
<dict-tag :options="pro_craft_type" :value="scope.row.craftType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工种岗位" align="center" prop="craftPost">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="pro_craft_post" :value="scope.row.craftPost"/>
|
||||
<dict-tag :options="pro_craft_post" :value="scope.row.craftPost" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="学习状态" align="center" prop="eduStatus" />
|
||||
<el-table-column label="学习文件地址" align="center" prop="eduFilePath" />
|
||||
<el-table-column label="学习签名地址" align="center" prop="eduSignPath" />
|
||||
<el-table-column label="学习时间" align="center" prop="eduDate" width="180">
|
||||
<el-table-column label="民族" align="center" prop="nation" width="80"/>
|
||||
<el-table-column label="年龄" align="center" prop="age" width="80"/>
|
||||
<el-table-column label="性别" align="center" prop="sex" width="80"/>
|
||||
<el-table-column label="出生日期" align="center" prop="birthDay" />
|
||||
<el-table-column label="籍贯" align="center" prop="nativePlace" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.eduDate, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="审批状态" align="center" prop="approveStatus" />
|
||||
<el-table-column label="进场状态" align="center" prop="useStatus">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="sys_use_status" :value="scope.row.useStatus"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="进行步骤" align="center" prop="subStep" />
|
||||
<el-table-column label="疾病状态" align="center" prop="illnessStatus" />
|
||||
<el-table-column label="严重疾病状态" align="center" prop="supIllnessStatus" />
|
||||
<el-table-column label="删除标识" align="center" prop="isDel">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="sys_is_del" :value="scope.row.isDel"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['manage:proProjectInfoSubdeptsUsers:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['manage:proProjectInfoSubdeptsUsers:remove']">删除</el-button>
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
|
||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
|
||||
<!-- 添加或修改分包单位工人对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="proProjectInfoSubdeptsUsersRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="项目主键" prop="projectId">
|
||||
<el-input v-model="form.projectId" placeholder="请输入项目主键" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分包单位" prop="subDeptId">
|
||||
<el-input v-model="form.subDeptId" placeholder="请输入分包单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分包单位名称" prop="subDeptName">
|
||||
<el-input v-model="form.subDeptName" placeholder="请输入分包单位名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="用户主键" prop="userId">
|
||||
<el-input v-model="form.userId" placeholder="请输入用户主键" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工人姓名" prop="userName">
|
||||
<el-input v-model="form.userName" placeholder="请输入工人姓名" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工种类型" prop="craftType">
|
||||
<el-select v-model="form.craftType" placeholder="请选择工种类型">
|
||||
<el-option
|
||||
v-for="dict in pro_craft_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工种岗位" prop="craftPost">
|
||||
<el-select v-model="form.craftPost" placeholder="请选择工种岗位">
|
||||
<el-option
|
||||
v-for="dict in pro_craft_post"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="学习文件地址" prop="eduFilePath">
|
||||
<el-input v-model="form.eduFilePath" placeholder="请输入学习文件地址" />
|
||||
</el-form-item>
|
||||
<el-form-item label="学习签名地址" prop="eduSignPath">
|
||||
<el-input v-model="form.eduSignPath" placeholder="请输入学习签名地址" />
|
||||
</el-form-item>
|
||||
<el-form-item label="学习时间" prop="eduDate">
|
||||
<el-date-picker clearable
|
||||
v-model="form.eduDate"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="请选择学习时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="进场状态" prop="useStatus">
|
||||
<el-radio-group v-model="form.useStatus">
|
||||
<el-radio
|
||||
v-for="dict in sys_use_status"
|
||||
:key="dict.value"
|
||||
:label="dict.value"
|
||||
>{{dict.label}}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="进行步骤" prop="subStep">
|
||||
<el-input v-model="form.subStep" placeholder="请输入进行步骤" />
|
||||
</el-form-item>
|
||||
<el-form-item label="删除标识" prop="isDel">
|
||||
<el-select v-model="form.isDel" placeholder="请选择删除标识">
|
||||
<el-option
|
||||
v-for="dict in sys_is_del"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="parseInt(dict.value)"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-drawer :title="title" v-model="open" size="960px" class="edit-drawer">
|
||||
<el-form ref="proProjectInfoSubdeptsUsersRef" :model="form" :rules="rules" label-width="120px">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所属项目">
|
||||
<el-tag effect="plain">{{ form.projectName }}</el-tag>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所属单位" prop="subDeptId">
|
||||
<el-select v-model="form.subDeptId" placeholder="请选择所属单位" @change="doSubDeptChange">
|
||||
<el-option v-for="(it, idx) in data.subdepts" :key="it.id" :label="it.subDeptName" :value="it.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="姓名" prop="userName">
|
||||
<el-input v-model="form.userName" placeholder="请输入姓名" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系电话" prop="userPhone">
|
||||
<el-input v-model="form.userPhone" placeholder="请输入联系电话" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="证件号码" prop="certificateCode" class="fi-certificate">
|
||||
<el-select v-model="form.certificateType">
|
||||
<el-option v-for="dict in certificate_type" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
<el-input v-model="form.certificateCode" placeholder="请输入证件号码" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="班组名称" prop="subDeptGroup">
|
||||
<el-select v-model="form.subDeptGroup" @change="doDeptGroupChange">
|
||||
<el-option v-for="(it, idx) in data.deptGroups" :key="idx" :label="it.groupName" :value="it.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="岗位">
|
||||
<el-input v-model="form.craftTypeName" disabled/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="工种" v-if="data.isManager" prop="craftPost">
|
||||
<el-select v-model="form.craftPost">
|
||||
<el-option v-for="dict in pro_craft_post.filter(d=>d.remark=='3')" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工种" v-else>
|
||||
<el-input v-model="form.craftPostName" disabled/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12"><el-form-item label="民族">
|
||||
<el-select v-model="form.nation">
|
||||
<el-option v-for="(it, idx) in data.nationOpts" :key="idx" :label="it" :value="it" />
|
||||
</el-select>
|
||||
</el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="年龄">
|
||||
<el-input-number v-model="form.age" :min="16" :max="100" />
|
||||
</el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="性别">
|
||||
<el-radio-group v-model="form.sex">
|
||||
<el-radio v-for="(it, idx) in data.sexOpts" :key="idx" :label="it" :value="it">{{ it }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="文件程度">
|
||||
<el-select v-model="form.educationalType">
|
||||
<el-option v-for="dict in educational_type" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="出生日期">
|
||||
<el-date-picker v-model="form.birthDay" type="date" placeholder="请选择出生日期" />
|
||||
</el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="籍贯">
|
||||
<el-input v-model="form.nativePlace" placeholder="请输入籍贯" />
|
||||
</el-form-item></el-col>
|
||||
<el-col :span="24"><el-form-item label="家庭地址">
|
||||
<el-input v-model="form.address" placeholder="请输入家庭地址" />
|
||||
</el-form-item></el-col>
|
||||
|
||||
<el-col :span="12"><el-form-item label="紧急联系人">
|
||||
<el-input v-model="form.emergencyContact" placeholder="请输入紧急联系人" />
|
||||
</el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="紧急联系人电话">
|
||||
<el-input v-model="form.contactPhone" placeholder="请输入紧急联系人电话" />
|
||||
</el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="工资卡银行">
|
||||
<el-input v-model="form.bankName" placeholder="请输入工资卡银行" />
|
||||
</el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="工资卡号">
|
||||
<el-input v-model="form.bankCardNo" placeholder="请输入工资卡号" />
|
||||
</el-form-item></el-col>
|
||||
<el-col :span="12"><el-form-item label="开户网点">
|
||||
<el-input v-model="form.bankOffice" placeholder="请输入开户网点" />
|
||||
</el-form-item></el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="身份证信息" prop="identificationCard">
|
||||
<el-col :span="8">
|
||||
<div class="div-header">头像面</div>
|
||||
<image-upload v-model="form.certificatePhoto1" :limit="1" class="identification-card-1" @change="doImageUpload"/>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="div-header">国徽面</div>
|
||||
<image-upload v-model="form.certificatePhoto2" :limit="1" class="identification-card-2" @change="doImageUpload"/>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="div-header">人脸识别头像</div>
|
||||
<image-upload v-model="form.faceImage" :limit="1" class="face-image" @change="doImageUpload"/>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
|
@ -301,15 +239,18 @@
|
|||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</el-drawer>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="ProProjectInfoSubdeptsUsers">
|
||||
import { listProProjectInfoSubdeptsUsers, getProProjectInfoSubdeptsUsers, delProProjectInfoSubdeptsUsers, addProProjectInfoSubdeptsUsers, updateProProjectInfoSubdeptsUsers } from "@/api/manage/proProjectInfoSubdeptsUsers";
|
||||
|
||||
import { listProProjectInfoSubdepts } from "@/api/manage/proProjectInfoSubdepts";
|
||||
import { listProProjectInfoSubdeptsGroup } from "@/api/manage/proProjectInfoSubdeptsGroup";
|
||||
import useUserStore from '@/store/modules/user'
|
||||
const userStore = useUserStore()
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { sys_use_status, pro_craft_type, sys_is_del, pro_craft_post } = proxy.useDict('sys_use_status', 'pro_craft_type', 'sys_is_del', 'pro_craft_post');
|
||||
const { sys_use_status, pro_craft_type, sys_is_del, pro_craft_post,certificate_type,educational_type } = proxy.useDict('sys_use_status', 'pro_craft_type', 'sys_is_del', 'pro_craft_post','certificate_type','educational_type');
|
||||
|
||||
const proProjectInfoSubdeptsUsersList = ref([]);
|
||||
const open = ref(false);
|
||||
|
@ -331,8 +272,11 @@ const data = reactive({
|
|||
subDeptName: null,
|
||||
userId: null,
|
||||
userName: null,
|
||||
bankOffice:'',
|
||||
craftTypeName: null,
|
||||
craftType: null,
|
||||
craftPost: null,
|
||||
craftPostName: null,
|
||||
craftPost:null,
|
||||
eduStatus: null,
|
||||
eduFilePath: null,
|
||||
eduSignPath: null,
|
||||
|
@ -345,16 +289,36 @@ const data = reactive({
|
|||
isDel: null,
|
||||
},
|
||||
rules: {
|
||||
}
|
||||
subDeptId:[{required: true, trigger: ['blur', 'change'],message:"请选择所属单位"}],
|
||||
userName:[{required: true, trigger: ['blur', 'change'],message:"请输入姓名"}],
|
||||
userPhone:[{required: true, trigger: ['blur', 'change'],message:"请输入联系电话"}],
|
||||
certificateCode:[{required: true, trigger: ['blur', 'change'],message:"请输入证件号码"}],
|
||||
craftPost:[{required: true, trigger: ['blur', 'change'],message:"请输选择工种"}],
|
||||
identificationCard:[{required: true, trigger: ['blur', 'change'],message:"请上传身份证信息"}],
|
||||
subDeptGroup:[{required: true, trigger: ['blur', 'change'],message:"请选择班组"}],
|
||||
},
|
||||
subdepts: [],
|
||||
deptGroups: [],
|
||||
certificateTypeOpts: "身份证".split(","),
|
||||
nationOpts: '汉族,壮族,满族,回族,苗族,维吾尔族,土家族,彝族,蒙古族,藏族,布依族,侗族,瑶族,朝鲜族,白族,哈尼族,哈萨克族,黎族,傣族,畲族,傈僳族,仡佬族,东乡族,高山族,拉祜族,水族,佤族,纳西族,羌族,土族,仫佬族,锡伯族,柯尔克孜族,达斡尔族,景颇族,毛南族,撒拉族,布朗族,塔吉克族,阿昌族,普米族,鄂温克族,怒族,京族,基诺族,德昂族,保安族,俄罗斯族,裕固族,乌孜别克族,门巴族,鄂伦春族,独龙族,塔塔尔族,赫哲族,珞巴族'.split(","),
|
||||
sexOpts: "男,女".split(","),
|
||||
isManager:false,
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
//图片上传
|
||||
function doImageUpload(){
|
||||
setTimeout(()=>{
|
||||
form.value.identificationCard= form.value.certificatePhoto1 && form.value.certificatePhoto2&& form.value.faceImage ?"yes":''
|
||||
},800);
|
||||
}
|
||||
|
||||
/** 查询分包单位工人列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
listProProjectInfoSubdeptsUsers(queryParams.value).then(response => {
|
||||
proProjectInfoSubdeptsUsersList.value = response.rows;
|
||||
proProjectInfoSubdeptsUsersList.value = response.rows||[];
|
||||
total.value = response.total;
|
||||
loading.value = false;
|
||||
});
|
||||
|
@ -370,31 +334,92 @@ function cancel() {
|
|||
function reset() {
|
||||
form.value = {
|
||||
id: null,
|
||||
projectId: null,
|
||||
subDeptId: null,
|
||||
subDeptName: null,
|
||||
userId: null,
|
||||
userName: null,
|
||||
craftType: null,
|
||||
craftPost: null,
|
||||
eduStatus: null,
|
||||
eduFilePath: null,
|
||||
eduSignPath: null,
|
||||
eduDate: null,
|
||||
approveStatus: null,
|
||||
useStatus: null,
|
||||
subStep: null,
|
||||
illnessStatus: null,
|
||||
supIllnessStatus: null,
|
||||
isDel: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
remark: null
|
||||
projectId: null,//所属项目ID
|
||||
subDeptId: null,//所属单位ID
|
||||
subDeptName: null,//所属单位名称
|
||||
userName: null,//姓名
|
||||
userPhone: "",//联系电话
|
||||
certificateType: '',//证件号码
|
||||
certificateCode: '',//请输入证件号码
|
||||
subDeptGroup: '',//班组ID
|
||||
groupName: '',//班组名称
|
||||
craftTypeName: '',//岗位
|
||||
craftType:'',//岗位编号
|
||||
craftPostName: '',//工种
|
||||
craftPost:'',//工种编号
|
||||
nation: '',//民族
|
||||
age: 20,//年龄
|
||||
sex: '',//性别
|
||||
educationalType: '',//文件程度
|
||||
birthDay:'',//出生日期
|
||||
nativePlace:'',//籍贯
|
||||
address:'',//家庭地址
|
||||
emergencyContact:'',//紧急联系人
|
||||
contactPhone:'',//紧急联系人电话
|
||||
bankName:'',//工资卡银行
|
||||
bankCardNo:'',//工资卡号
|
||||
bankOffice:'',//开户网点
|
||||
};
|
||||
proxy.resetForm("proProjectInfoSubdeptsUsersRef");
|
||||
}
|
||||
//选择所属单位
|
||||
function doSubDeptChange() {
|
||||
if (!form.value.subDeptId) {
|
||||
data.deptGroups = [];
|
||||
form.value.subDeptId="";
|
||||
form.value.groupName="";
|
||||
form.value.craftPostName="";
|
||||
form.value.craftTypeName="";
|
||||
form.value.craftType="";
|
||||
form.value.craftPost="";
|
||||
return;
|
||||
}
|
||||
listProProjectInfoSubdeptsGroup({subDeptId:form.value.subDeptId,pageNum:1,pageSize:100}).then(d=>{
|
||||
data.deptGroups=d.rows||[];
|
||||
if(data.deptGroups.length>0){
|
||||
let dg=data.deptGroups[0];
|
||||
form.value.subDeptId=dg.id;
|
||||
form.value.groupName=dg.groupName;
|
||||
form.value.craftTypeName=getCraftType(dg.craftType);
|
||||
form.value.craftPostName=getCraftPost(dg.craftPost).label;
|
||||
form.value.craftType=dg.craftType;
|
||||
form.value.craftPost=dg.craftPost
|
||||
data.isManager=!dg.craftPost
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function doDeptGroupChange(){
|
||||
data.isManager=false
|
||||
if(!form.value.subDeptGroup){
|
||||
form.value.groupName="";
|
||||
form.value.craftPostName="";
|
||||
form.value.craftTypeName="";
|
||||
form.value.craftType="";
|
||||
form.value.craftPost="";
|
||||
return;
|
||||
}
|
||||
let tmps=data.deptGroups.filter(d=>d.id==form.value.subDeptGroup);
|
||||
if(tmps.length>0){
|
||||
let dg=tmps[0];
|
||||
form.value.groupName=dg.groupName;
|
||||
form.value.craftTypeName=getCraftType(dg.craftType);
|
||||
form.value.craftPostName=getCraftPost(dg.craftPost);
|
||||
form.value.craftPost=dg.craftPost
|
||||
form.value.craftType=dg.craftType;
|
||||
data.isManager=!dg.craftPost;
|
||||
}
|
||||
}
|
||||
|
||||
function getCraftType(id){
|
||||
let tmps=pro_craft_type.value.filter(d=>d.value==id);
|
||||
return tmps.length>0?tmps[0].label:"";
|
||||
}
|
||||
function getCraftPost(id){
|
||||
let tmps=pro_craft_post.value.filter(d=>d.value==id);
|
||||
return tmps.length>0?tmps[0].label:"";
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
|
@ -415,21 +440,50 @@ function handleSelectionChange(selection) {
|
|||
multiple.value = !selection.length;
|
||||
}
|
||||
|
||||
function loadSubDepts(cb) {
|
||||
listProProjectInfoSubdepts({ projectId: userStore.currentProId, pageNum: 1, pageSize: 100 }).then(d => {
|
||||
data.subdepts = d.rows || [];
|
||||
if(data.subdepts.length>0){
|
||||
let sd=data.subdepts[0];
|
||||
form.value.subDeptId=sd.id;
|
||||
doSubDeptChange();
|
||||
}
|
||||
cb && cb();
|
||||
});
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
if (!userStore.currentProId) {
|
||||
proxy.$modal.msgWarning("请切换到项目数据!!!");
|
||||
return false;
|
||||
}
|
||||
reset();
|
||||
loadSubDepts();
|
||||
form.value.certificateType = "";
|
||||
form.value.projectId = userStore.currentProId;
|
||||
form.value.projectName = userStore.currentProName;
|
||||
form.value.nation = data.nationOpts[0];
|
||||
form.value.sex = data.sexOpts[0];
|
||||
open.value = true;
|
||||
title.value = "添加分包单位工人";
|
||||
title.value = "添加劳务人员信息";
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset();
|
||||
const _id = row.id || ids.value
|
||||
getProProjectInfoSubdeptsUsers(_id).then(response => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = "修改分包单位工人";
|
||||
loadSubDepts(()=>{
|
||||
const _id = row.id || ids.value
|
||||
getProProjectInfoSubdeptsUsers(_id).then(response => {
|
||||
form.value =JSON.parse(JSON.stringify( response.data));
|
||||
open.value = true;
|
||||
title.value = "修改劳务人员信息";
|
||||
doImageUpload();
|
||||
doDeptGroupChange();
|
||||
setTimeout(()=>{
|
||||
form.value.craftPost=response.data.craftPost;
|
||||
},400);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -437,6 +491,11 @@ function handleUpdate(row) {
|
|||
function submitForm() {
|
||||
proxy.$refs["proProjectInfoSubdeptsUsersRef"].validate(valid => {
|
||||
if (valid) {
|
||||
let depts=data.subdepts.filter(d=>d.id==form.value.subDeptId);
|
||||
form.value.subDeptName=depts.length>0?depts[0].subDeptName:'';
|
||||
form.value.comId=depts.length>0?depts[0].comId:'';
|
||||
let groups=data.deptGroups.filter(d=>d.id==form.value.subDeptGroup);
|
||||
form.value.subDeptGroupName=groups.length>0?groups[0].groupName:'';
|
||||
if (form.value.id != null) {
|
||||
updateProProjectInfoSubdeptsUsers(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
|
@ -457,12 +516,12 @@ function submitForm() {
|
|||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const _ids = row.id || ids.value;
|
||||
proxy.$modal.confirm('是否确认删除分包单位工人编号为"' + _ids + '"的数据项?').then(function() {
|
||||
proxy.$modal.confirm('是否确认删除分包单位工人编号为"' + _ids + '"的数据项?').then(function () {
|
||||
return delProProjectInfoSubdeptsUsers(_ids);
|
||||
}).then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
}).catch(() => { });
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
|
@ -474,3 +533,70 @@ function handleExport() {
|
|||
|
||||
getList();
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.pro-project-info-subdepts-users-index {
|
||||
.edit-drawer {
|
||||
.el-drawer__header {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
.el-form-item--default{
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.fi-certificate {
|
||||
.el-select {
|
||||
width: 120px;
|
||||
|
||||
.el-input {
|
||||
width: 100%;
|
||||
margin-left: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.el-input {
|
||||
width: calc(100% - 130px);
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.identification-card-1{
|
||||
.el-upload--picture-card{
|
||||
width: 240px;
|
||||
background-image: url("../../../assets/images/card1.svg");
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
}
|
||||
.el-upload__tip{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.div-header{
|
||||
text-align: center;
|
||||
}
|
||||
.identification-card-2{
|
||||
.el-upload--picture-card{
|
||||
width: 240px;
|
||||
background-image: url("../../../assets/images/card2.svg");
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: 60%;
|
||||
}
|
||||
.el-upload__tip{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.face-image{
|
||||
&>div{
|
||||
text-align: center;
|
||||
}
|
||||
.el-upload--picture-card{
|
||||
background-image: url("../../../assets/images/face.svg");
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: 60%;
|
||||
}
|
||||
.el-upload__tip{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
Loading…
Reference in New Issue