Merge branch 'dev_xd' of http://62.234.3.186:3000/jiangyq/YZProjectCloud into dev_xd
commit
181d2e9d53
|
@ -19,35 +19,51 @@ public class ProProjectInfoSubdeptsUsers extends BaseEntity
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
|
||||||
|
@Excel(name = "所属项目")
|
||||||
|
private String projectName;
|
||||||
|
/** 分包单位名称 */
|
||||||
|
@Excel(name = "所属单位")
|
||||||
|
private String subDeptName;
|
||||||
|
|
||||||
/** 主键 */
|
/** 主键 */
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
@Excel(name = "姓名")
|
||||||
|
private String userName;
|
||||||
|
@Excel(name = "身份证")
|
||||||
|
private String cardCode;
|
||||||
|
@Excel(name = "性别")
|
||||||
|
private String userSex;
|
||||||
|
@Excel(name = "民族")
|
||||||
|
private String userNation;
|
||||||
|
@Excel(name = "年龄")
|
||||||
|
private Integer userAge;
|
||||||
|
|
||||||
/** 公司主键 */
|
/** 公司主键 */
|
||||||
@Excel(name = "公司主键")
|
|
||||||
private Long comId;
|
private Long comId;
|
||||||
|
|
||||||
/** 项目主键 */
|
/** 项目主键 */
|
||||||
@Excel(name = "项目主键")
|
|
||||||
private Long projectId;
|
private Long projectId;
|
||||||
|
|
||||||
/** 分包单位 */
|
/** 分包单位 */
|
||||||
@Excel(name = "分包单位")
|
|
||||||
private Long subDeptId;
|
private Long subDeptId;
|
||||||
|
|
||||||
/** 单位类型 */
|
/** 单位类型 */
|
||||||
@Excel(name = "单位类型")
|
|
||||||
private String subDeptType;
|
private String subDeptType;
|
||||||
|
|
||||||
/** 分包单位名称 */
|
|
||||||
@Excel(name = "分包单位名称")
|
|
||||||
private String subDeptName;
|
|
||||||
|
|
||||||
/** 用户主键 */
|
/** 用户主键 */
|
||||||
@Excel(name = "用户主键")
|
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
|
||||||
/** 班组编号(外键) */
|
/** 班组编号(外键) */
|
||||||
@Excel(name = "班组编号(外键)")
|
|
||||||
private Long subDeptGroup;
|
private Long subDeptGroup;
|
||||||
|
|
||||||
/** 班组名称 */
|
/** 班组名称 */
|
||||||
|
@ -55,50 +71,129 @@ public class ProProjectInfoSubdeptsUsers extends BaseEntity
|
||||||
private String subDeptGroupName;
|
private String subDeptGroupName;
|
||||||
|
|
||||||
/** 工种类型 */
|
/** 工种类型 */
|
||||||
@Excel(name = "工种类型")
|
|
||||||
private String craftType;
|
private String craftType;
|
||||||
|
@Excel(name = "工种类型")
|
||||||
|
private String craftTypeName;
|
||||||
/** 工种岗位 */
|
/** 工种岗位 */
|
||||||
@Excel(name = "工种岗位")
|
|
||||||
private String craftPost;
|
|
||||||
|
|
||||||
|
private String craftPost;
|
||||||
|
@Excel(name = "工种岗位")
|
||||||
|
private String craftPostName;
|
||||||
|
|
||||||
|
@Excel(name = "状态")
|
||||||
|
private String enterState;
|
||||||
/** 学习状态 */
|
/** 学习状态 */
|
||||||
@Excel(name = "学习状态")
|
@Excel(name = "学习状态")
|
||||||
private String eduStatus;
|
private String eduStatus;
|
||||||
|
|
||||||
/** 学习文件地址 */
|
/** 学习文件地址 */
|
||||||
@Excel(name = "学习文件地址")
|
|
||||||
private String eduFilePath;
|
private String eduFilePath;
|
||||||
|
|
||||||
/** 学习签名地址 */
|
/** 学习签名地址 */
|
||||||
@Excel(name = "学习签名地址")
|
|
||||||
private String eduSignPath;
|
private String eduSignPath;
|
||||||
|
|
||||||
/** 学习时间 */
|
/** 学习时间 */
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
@Excel(name = "学习时间", width = 30, dateFormat = "yyyy-MM-dd")
|
|
||||||
private Date eduDate;
|
private Date eduDate;
|
||||||
|
|
||||||
/** 审批状态 */
|
/** 审批状态 */
|
||||||
@Excel(name = "审批状态")
|
|
||||||
private Long approveStatus;
|
private Long approveStatus;
|
||||||
|
|
||||||
/** 进场状态 */
|
/** 进场状态 */
|
||||||
@Excel(name = "进场状态")
|
|
||||||
private String useStatus;
|
private String useStatus;
|
||||||
|
|
||||||
/** 进行步骤 */
|
/** 进行步骤 */
|
||||||
@Excel(name = "进行步骤")
|
|
||||||
private Long subStep;
|
private Long subStep;
|
||||||
|
|
||||||
|
private String comName;
|
||||||
|
|
||||||
|
public String getComName() {
|
||||||
|
return comName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setComName(String comName) {
|
||||||
|
this.comName = comName;
|
||||||
|
}
|
||||||
|
|
||||||
/** 疾病状态 */
|
/** 疾病状态 */
|
||||||
@Excel(name = "疾病状态")
|
|
||||||
private Long illnessStatus;
|
private Long illnessStatus;
|
||||||
|
|
||||||
/** 严重疾病状态 */
|
/** 严重疾病状态 */
|
||||||
@Excel(name = "严重疾病状态")
|
|
||||||
private Long supIllnessStatus;
|
private Long supIllnessStatus;
|
||||||
|
|
||||||
|
public String getEnterState() {
|
||||||
|
return enterState;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnterState(String enterState) {
|
||||||
|
this.enterState = enterState;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUserName() {
|
||||||
|
return userName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserName(String userName) {
|
||||||
|
this.userName = userName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCardCode() {
|
||||||
|
return cardCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCardCode(String cardCode) {
|
||||||
|
this.cardCode = cardCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUserSex() {
|
||||||
|
return userSex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserSex(String userSex) {
|
||||||
|
this.userSex = userSex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUserNation() {
|
||||||
|
return userNation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserNation(String userNation) {
|
||||||
|
this.userNation = userNation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getUserAge() {
|
||||||
|
return userAge;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserAge(Integer userAge) {
|
||||||
|
this.userAge = userAge;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCraftTypeName() {
|
||||||
|
return craftTypeName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCraftTypeName(String craftTypeName) {
|
||||||
|
this.craftTypeName = craftTypeName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCraftPostName() {
|
||||||
|
return craftPostName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCraftPostName(String craftPostName) {
|
||||||
|
this.craftPostName = craftPostName;
|
||||||
|
}
|
||||||
|
|
||||||
public SysUser getUser() {
|
public SysUser getUser() {
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
@ -119,7 +214,7 @@ public class ProProjectInfoSubdeptsUsers extends BaseEntity
|
||||||
private SysUser user;
|
private SysUser user;
|
||||||
|
|
||||||
/** 删除标识 */
|
/** 删除标识 */
|
||||||
@Excel(name = "删除标识")
|
|
||||||
private Long isDel;
|
private Long isDel;
|
||||||
|
|
||||||
public void setId(Long id)
|
public void setId(Long id)
|
||||||
|
@ -312,7 +407,6 @@ public class ProProjectInfoSubdeptsUsers extends BaseEntity
|
||||||
return isDel;
|
return isDel;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String projectName;
|
|
||||||
|
|
||||||
public String getProjectName() {
|
public String getProjectName() {
|
||||||
return projectName;
|
return projectName;
|
||||||
|
|
|
@ -7,7 +7,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<resultMap type="ProProjectInfoSubdeptsUsers" id="ProProjectInfoSubdeptsUsersResult">
|
<resultMap type="ProProjectInfoSubdeptsUsers" id="ProProjectInfoSubdeptsUsersResult">
|
||||||
<result property="id" column="id" />
|
<result property="id" column="id" />
|
||||||
<result property="comId" column="com_id" />
|
<result property="comId" column="com_id" />
|
||||||
|
<result property="comName" column="comName"/>
|
||||||
<result property="projectId" column="project_id" />
|
<result property="projectId" column="project_id" />
|
||||||
|
<result property="projectName" column="project_name" />
|
||||||
<result property="subDeptId" column="sub_dept_id" />
|
<result property="subDeptId" column="sub_dept_id" />
|
||||||
<result property="subDeptType" column="sub_dept_type" />
|
<result property="subDeptType" column="sub_dept_type" />
|
||||||
<result property="subDeptName" column="sub_dept_name" />
|
<result property="subDeptName" column="sub_dept_name" />
|
||||||
|
@ -26,6 +28,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<result property="illnessStatus" column="illness_status" />
|
<result property="illnessStatus" column="illness_status" />
|
||||||
<result property="supIllnessStatus" column="sup_illness_status" />
|
<result property="supIllnessStatus" column="sup_illness_status" />
|
||||||
<result property="isDel" column="is_del" />
|
<result property="isDel" column="is_del" />
|
||||||
|
<result property="enterState" column="enter_state" />
|
||||||
|
<result property="craftTypeName" column="craft_type_name" />
|
||||||
|
<result property="craftPostName" column="craft_post_name" />
|
||||||
<result property="createBy" column="create_by" />
|
<result property="createBy" column="create_by" />
|
||||||
<result property="createTime" column="create_time" />
|
<result property="createTime" column="create_time" />
|
||||||
<result property="updateBy" column="update_by" />
|
<result property="updateBy" column="update_by" />
|
||||||
|
@ -60,11 +65,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
psu.sub_dept_group_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.sub_dept_group_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.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,su.`user_name`,su.`nick_name`,su.`user_type`,su.`card_type`,su.`card_code`,su.admitGuid,su.admitGuid usAdmitGuid,
|
psu.remark,su.`user_name`,su.`nick_name`,su.`user_type`,su.`card_type`,su.`card_code`,su.admitGuid,su.admitGuid usAdmitGuid,
|
||||||
|
dic1.dict_label craft_type_name,dic2.dict_label craft_post_name,psu.enter_state,sd.dept_name comName,
|
||||||
su.`user_picture`, su.`card_img_inv`,su.`card_img_pos`,su.`user_infos`,su.`email`,su.`phonenumber`,su.`sex`,su.`avatar`,su.`login_ip`,su.`login_date`
|
su.`user_picture`, su.`card_img_inv`,su.`card_img_pos`,su.`user_infos`,su.`email`,su.`phonenumber`,su.`sex`,su.`avatar`,su.`login_ip`,su.`login_date`
|
||||||
FROM pro_project_info_subdepts_users psu
|
FROM pro_project_info_subdepts_users psu
|
||||||
LEFT JOIN sys_user su ON psu.user_id=su.user_id
|
LEFT JOIN sys_user su ON psu.user_id=su.user_id
|
||||||
LEFT JOIN pro_project_info PI ON pi.id = psu.project_id
|
LEFT JOIN pro_project_info PI ON pi.id = psu.project_id
|
||||||
LEFT JOIN sys_dept sd ON sd.dept_id = pi.com_id
|
LEFT JOIN sys_dept sd ON sd.dept_id = pi.com_id
|
||||||
|
LEFT JOIN sys_dict_data dic1 ON psu.`craft_type`=dic1.`dict_value` AND dic1.`dict_type`='pro_craft_type'
|
||||||
|
LEFT JOIN sys_dict_data dic2 ON psu.`craft_post`=dic2.`dict_value` AND dic2.`dict_type`='pro_craft_post'
|
||||||
|
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
|
@ -82,6 +90,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="craftType != null and craftType != ''"> and psu.craft_type = #{craftType}</if>
|
<if test="craftType != null and craftType != ''"> and psu.craft_type = #{craftType}</if>
|
||||||
<if test="craftPost != null and craftPost != ''"> and psu.craft_post = #{craftPost}</if>
|
<if test="craftPost != null and craftPost != ''"> and psu.craft_post = #{craftPost}</if>
|
||||||
<if test="eduStatus != null and eduStatus != ''"> and psu.edu_status = #{eduStatus}</if>
|
<if test="eduStatus != null and eduStatus != ''"> and psu.edu_status = #{eduStatus}</if>
|
||||||
|
<if test="enterState != null and enterState != ''"> and psu.enter_state = #{enterState}</if>
|
||||||
<if test="eduFilePath != null and eduFilePath != ''"> and psu.edu_file_path = #{eduFilePath}</if>
|
<if test="eduFilePath != null and eduFilePath != ''"> and psu.edu_file_path = #{eduFilePath}</if>
|
||||||
<if test="eduSignPath != null and eduSignPath != ''"> and psu.edu_sign_path = #{eduSignPath}</if>
|
<if test="eduSignPath != null and eduSignPath != ''"> and psu.edu_sign_path = #{eduSignPath}</if>
|
||||||
<if test="eduDate != null "> and psu.edu_date = #{eduDate}</if>
|
<if test="eduDate != null "> and psu.edu_date = #{eduDate}</if>
|
||||||
|
@ -124,6 +133,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="illnessStatus != null">illness_status,</if>
|
<if test="illnessStatus != null">illness_status,</if>
|
||||||
<if test="supIllnessStatus != null">sup_illness_status,</if>
|
<if test="supIllnessStatus != null">sup_illness_status,</if>
|
||||||
<if test="isDel != null">is_del,</if>
|
<if test="isDel != null">is_del,</if>
|
||||||
|
<if test="enterState != null">enter_state,</if>
|
||||||
<if test="createBy != null">create_by,</if>
|
<if test="createBy != null">create_by,</if>
|
||||||
<if test="createTime != null">create_time,</if>
|
<if test="createTime != null">create_time,</if>
|
||||||
<if test="updateBy != null">update_by,</if>
|
<if test="updateBy != null">update_by,</if>
|
||||||
|
@ -151,6 +161,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="illnessStatus != null">#{illnessStatus},</if>
|
<if test="illnessStatus != null">#{illnessStatus},</if>
|
||||||
<if test="supIllnessStatus != null">#{supIllnessStatus},</if>
|
<if test="supIllnessStatus != null">#{supIllnessStatus},</if>
|
||||||
<if test="isDel != null">#{isDel},</if>
|
<if test="isDel != null">#{isDel},</if>
|
||||||
|
<if test="enterState != null">#{enterState},</if>
|
||||||
<if test="createBy != null">#{createBy},</if>
|
<if test="createBy != null">#{createBy},</if>
|
||||||
<if test="createTime != null">#{createTime},</if>
|
<if test="createTime != null">#{createTime},</if>
|
||||||
<if test="updateBy != null">#{updateBy},</if>
|
<if test="updateBy != null">#{updateBy},</if>
|
||||||
|
@ -182,6 +193,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="illnessStatus != null">illness_status = #{illnessStatus},</if>
|
<if test="illnessStatus != null">illness_status = #{illnessStatus},</if>
|
||||||
<if test="supIllnessStatus != null">sup_illness_status = #{supIllnessStatus},</if>
|
<if test="supIllnessStatus != null">sup_illness_status = #{supIllnessStatus},</if>
|
||||||
<if test="isDel != null">is_del = #{isDel},</if>
|
<if test="isDel != null">is_del = #{isDel},</if>
|
||||||
|
<if test="enterState != null">enter_state = #{enterState},</if>
|
||||||
<if test="createBy != null">create_by = #{createBy},</if>
|
<if test="createBy != null">create_by = #{createBy},</if>
|
||||||
<if test="createTime != null">create_time = #{createTime},</if>
|
<if test="createTime != null">create_time = #{createTime},</if>
|
||||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
package com.yanzhu.manage.controller;
|
package com.yanzhu.manage.controller;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
|
import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
|
||||||
|
import com.yanzhu.common.core.utils.DateUtils;
|
||||||
import com.yanzhu.common.core.utils.poi.ExcelUtil;
|
import com.yanzhu.common.core.utils.poi.ExcelUtil;
|
||||||
import com.yanzhu.common.core.web.controller.BaseController;
|
import com.yanzhu.common.core.web.controller.BaseController;
|
||||||
import com.yanzhu.common.core.web.domain.AjaxResult;
|
import com.yanzhu.common.core.web.domain.AjaxResult;
|
||||||
|
@ -9,13 +12,15 @@ import com.yanzhu.common.log.enums.BusinessType;
|
||||||
import com.yanzhu.common.security.annotation.RequiresPermissions;
|
import com.yanzhu.common.security.annotation.RequiresPermissions;
|
||||||
import com.yanzhu.manage.domain.ProProjectInfoSubdeptsUsers;
|
import com.yanzhu.manage.domain.ProProjectInfoSubdeptsUsers;
|
||||||
import com.yanzhu.manage.service.IProProjectInfoSubdeptsUsersService;
|
import com.yanzhu.manage.service.IProProjectInfoSubdeptsUsersService;
|
||||||
|
import com.yanzhu.manage.service.IUniService;
|
||||||
import com.yanzhu.system.api.domain.SysUser;
|
import com.yanzhu.system.api.domain.SysUser;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分包单位工人Controller
|
* 分包单位工人Controller
|
||||||
|
@ -30,6 +35,8 @@ public class ProProjectInfoSubdeptsUsersController extends BaseController
|
||||||
@Autowired
|
@Autowired
|
||||||
private IProProjectInfoSubdeptsUsersService proProjectInfoSubdeptsUsersService;
|
private IProProjectInfoSubdeptsUsersService proProjectInfoSubdeptsUsersService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IUniService uniService;
|
||||||
/**
|
/**
|
||||||
* 查询分包单位工人列表
|
* 查询分包单位工人列表
|
||||||
*/
|
*/
|
||||||
|
@ -51,6 +58,20 @@ public class ProProjectInfoSubdeptsUsersController extends BaseController
|
||||||
public void export(HttpServletResponse response, ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers)
|
public void export(HttpServletResponse response, ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers)
|
||||||
{
|
{
|
||||||
List<ProProjectInfoSubdeptsUsers> list = proProjectInfoSubdeptsUsersService.selectProProjectInfoSubdeptsUsersList(proProjectInfoSubdeptsUsers);
|
List<ProProjectInfoSubdeptsUsers> list = proProjectInfoSubdeptsUsersService.selectProProjectInfoSubdeptsUsersList(proProjectInfoSubdeptsUsers);
|
||||||
|
for(ProProjectInfoSubdeptsUsers u :list){
|
||||||
|
SysUser su=u.getUser();
|
||||||
|
u.setUserName(su.getUserName());
|
||||||
|
u.setCardCode(su.getCardCode());
|
||||||
|
u.setUserSex(su.getSex());
|
||||||
|
u.setEnterState("0".equals(u.getEnterState())?"在场":"离场");
|
||||||
|
JSONObject jo=JSONObject.parseObject(su.getUserInfos());
|
||||||
|
u.setUserNation(jo.getString("nation"));
|
||||||
|
Date dt=jo.getDate("birthDay");
|
||||||
|
if(dt!=null){
|
||||||
|
int age=(int)((new Date().getTime()-dt.getTime())/1000/3600/24/365);
|
||||||
|
u.setUserAge(age);
|
||||||
|
}
|
||||||
|
}
|
||||||
ExcelUtil<ProProjectInfoSubdeptsUsers> util = new ExcelUtil<ProProjectInfoSubdeptsUsers>(ProProjectInfoSubdeptsUsers.class);
|
ExcelUtil<ProProjectInfoSubdeptsUsers> util = new ExcelUtil<ProProjectInfoSubdeptsUsers>(ProProjectInfoSubdeptsUsers.class);
|
||||||
util.exportExcel(response, list, "分包单位工人数据");
|
util.exportExcel(response, list, "分包单位工人数据");
|
||||||
}
|
}
|
||||||
|
@ -97,4 +118,25 @@ public class ProProjectInfoSubdeptsUsersController extends BaseController
|
||||||
{
|
{
|
||||||
return toAjax(proProjectInfoSubdeptsUsersService.deleteProProjectInfoSubdeptsUsersByIds(ids));
|
return toAjax(proProjectInfoSubdeptsUsersService.deleteProProjectInfoSubdeptsUsersByIds(ids));
|
||||||
}
|
}
|
||||||
|
@RequiresPermissions("manage:proProjectInfoSubdeptsUsers:remove")
|
||||||
|
@PostMapping("/enterState/{state}")
|
||||||
|
public AjaxResult updateEnterState(@RequestBody List<Long> ids,@PathVariable int state){
|
||||||
|
try {
|
||||||
|
for (Long id : ids) {
|
||||||
|
ProProjectInfoSubdeptsUsers user=proProjectInfoSubdeptsUsersService.selectProProjectInfoSubdeptsUsersById(id);
|
||||||
|
if(user!=null) {
|
||||||
|
if (state == 0) {//进场
|
||||||
|
uniService.syncUserAuthDevice(id);
|
||||||
|
} else {
|
||||||
|
uniService.syncUserRevoke(id);
|
||||||
|
}
|
||||||
|
user.setEnterState(""+state);
|
||||||
|
proProjectInfoSubdeptsUsersService.updateProProjectInfoSubdeptsUsers(user);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return AjaxResult.success();
|
||||||
|
}catch (Exception ex){
|
||||||
|
return AjaxResult.error(ex.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,7 +127,7 @@ public class UniCallBackController {
|
||||||
if(proUser!=null && proUser.getUser()!=null){
|
if(proUser!=null && proUser.getUser()!=null){
|
||||||
AttendanceUbiData addData=new AttendanceUbiData();
|
AttendanceUbiData addData=new AttendanceUbiData();
|
||||||
addData.setAdmitGuid(admitGuid);
|
addData.setAdmitGuid(admitGuid);
|
||||||
addData.setComName(proUser.getActiveComName());
|
addData.setComName(proUser.getComName());
|
||||||
addData.setProjectName(proUser.getProjectName());
|
addData.setProjectName(proUser.getProjectName());
|
||||||
addData.setComId(proUser.getComId());
|
addData.setComId(proUser.getComId());
|
||||||
addData.setUserId(proUser.getUserId());
|
addData.setUserId(proUser.getUserId());
|
||||||
|
|
|
@ -152,4 +152,16 @@ public interface IUniService {
|
||||||
public Long syncUniDeviceUser(Long deviceId,Long projectId);
|
public Long syncUniDeviceUser(Long deviceId,Long projectId);
|
||||||
|
|
||||||
public long syncUniDeviceDelete(Long[] ids);
|
public long syncUniDeviceDelete(Long[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户设备销权识别主体
|
||||||
|
* @param id
|
||||||
|
*/
|
||||||
|
public void syncUserRevoke(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户设备授权识别主体
|
||||||
|
* @param id
|
||||||
|
*/
|
||||||
|
public void syncUserAuthDevice(Long id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,7 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IUniService uniService;
|
private IUniService uniService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询分包单位工人
|
* 查询分包单位工人
|
||||||
*
|
*
|
||||||
|
@ -112,6 +113,9 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
|
||||||
@Override
|
@Override
|
||||||
public int deleteProProjectInfoSubdeptsUsersByIds(Long[] ids)
|
public int deleteProProjectInfoSubdeptsUsersByIds(Long[] ids)
|
||||||
{
|
{
|
||||||
|
for(Long id:ids){
|
||||||
|
uniService.syncUserRevoke(id);
|
||||||
|
}
|
||||||
return proProjectInfoSubdeptsUsersMapper.deleteProProjectInfoSubdeptsUsersByIds(ids);
|
return proProjectInfoSubdeptsUsersMapper.deleteProProjectInfoSubdeptsUsersByIds(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,6 +128,7 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
|
||||||
@Override
|
@Override
|
||||||
public int deleteProProjectInfoSubdeptsUsersById(Long id)
|
public int deleteProProjectInfoSubdeptsUsersById(Long id)
|
||||||
{
|
{
|
||||||
|
uniService.syncUserRevoke(id);
|
||||||
return proProjectInfoSubdeptsUsersMapper.deleteProProjectInfoSubdeptsUsersById(id);
|
return proProjectInfoSubdeptsUsersMapper.deleteProProjectInfoSubdeptsUsersById(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -357,12 +357,56 @@ public class UniServiceImpl implements IUniService{
|
||||||
public long syncUniDeviceDelete(Long[] ids) {
|
public long syncUniDeviceDelete(Long[] ids) {
|
||||||
long cnt=0;
|
long cnt=0;
|
||||||
for(Long id :ids){
|
for(Long id :ids){
|
||||||
cnt+=deletDevice(id);
|
cnt+=deleteDevice(id);
|
||||||
}
|
}
|
||||||
return cnt;
|
return cnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Long deletDevice(Long id) {
|
/**
|
||||||
|
* 用户设备销权识别主体
|
||||||
|
* @param id
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void syncUserRevoke(Long id) {
|
||||||
|
ProProjectInfoSubdeptsUsers user= proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id);
|
||||||
|
if(user==null){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
AttendanceUbiDevice where=new AttendanceUbiDevice();
|
||||||
|
where.setProjectId(user.getProjectId());
|
||||||
|
List<AttendanceUbiDevice> devList=attendanceUbiDeviceMapper.selectAttendanceUbiDeviceList(where);
|
||||||
|
for(AttendanceUbiDevice device :devList){
|
||||||
|
JSONObject jo=new JSONObject();
|
||||||
|
jo.put("projectId",user.getProjectId());
|
||||||
|
jo.put("deviceNo",device.getDeviceNo());
|
||||||
|
jo.put("admitGuids",user.getAdmitGuid());
|
||||||
|
authDeviceRevoke(jo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户设备授权识别主体
|
||||||
|
* @param id
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void syncUserAuthDevice(Long id) {
|
||||||
|
ProProjectInfoSubdeptsUsers user= proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id);
|
||||||
|
if(user==null){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
AttendanceUbiDevice where=new AttendanceUbiDevice();
|
||||||
|
where.setProjectId(user.getProjectId());
|
||||||
|
List<AttendanceUbiDevice> devList=attendanceUbiDeviceMapper.selectAttendanceUbiDeviceList(where);
|
||||||
|
for(AttendanceUbiDevice device :devList) {
|
||||||
|
JSONObject jo=new JSONObject();
|
||||||
|
jo.put("projectId",user.getProjectId());
|
||||||
|
jo.put("deviceNo",device.getDeviceNo());
|
||||||
|
jo.put("admitGuids",user.getAdmitGuid());
|
||||||
|
authDevice(jo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Long deleteDevice(Long id) {
|
||||||
AttendanceUbiDevice device=attendanceUbiDeviceMapper.selectAttendanceUbiDeviceById(id);
|
AttendanceUbiDevice device=attendanceUbiDeviceMapper.selectAttendanceUbiDeviceById(id);
|
||||||
if(device==null){
|
if(device==null){
|
||||||
return 0l;
|
return 0l;
|
||||||
|
@ -440,7 +484,7 @@ public class UniServiceImpl implements IUniService{
|
||||||
userJo.put("tag",user.getNickName());
|
userJo.put("tag",user.getNickName());
|
||||||
userJo.put("cardNo",user.getUserId()+","+projectId);
|
userJo.put("cardNo",user.getUserId()+","+projectId);
|
||||||
userJo.put("idCardNo",user.getCardCode());
|
userJo.put("idCardNo",user.getCardCode());
|
||||||
userJo.put("password","123456");
|
userJo.put("password","");
|
||||||
userJo.put("addition","");
|
userJo.put("addition","");
|
||||||
boolean hasUpdate=false;
|
boolean hasUpdate=false;
|
||||||
if(StringUtils.isEmpty(admitGuid)){
|
if(StringUtils.isEmpty(admitGuid)){
|
||||||
|
@ -492,6 +536,7 @@ public class UniServiceImpl implements IUniService{
|
||||||
}
|
}
|
||||||
return ret.longValue();
|
return ret.longValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0l;
|
return 0l;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,3 +42,12 @@ export function delProProjectInfoSubdeptsUsers(id) {
|
||||||
method: 'delete'
|
method: 'delete'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 删除分包单位工人
|
||||||
|
export function updateEnterState(ids,state) {
|
||||||
|
return request({
|
||||||
|
url: '/manage/proProjectInfoSubdeptsUsers/enterState/' + state,
|
||||||
|
method: 'post',
|
||||||
|
data: ids
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
@ -79,7 +79,7 @@
|
||||||
<el-tag effect="plain">{{ form.projectName }}</el-tag>
|
<el-tag effect="plain">{{ form.projectName }}</el-tag>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="设备序列号" prop="deviceNo">
|
<el-form-item label="设备序列号" prop="deviceNo">
|
||||||
<el-input v-model="form.deviceNo" placeholder="请输入设备序列号" />
|
<el-input v-model="form.deviceNo" :disabled="data.mode=='edit'" placeholder="请输入设备序列号" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="通道编号" prop="channel">
|
<el-form-item label="通道编号" prop="channel">
|
||||||
<el-input v-model="form.channel" placeholder="请输入通道编号" />
|
<el-input v-model="form.channel" placeholder="请输入通道编号" />
|
||||||
|
@ -157,6 +157,10 @@ const data = reactive({
|
||||||
})
|
})
|
||||||
const { queryParams, form, rules } = toRefs(data);
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
|
||||||
|
/*行进场,离场操作 */
|
||||||
|
function handleEnter(row){
|
||||||
|
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 设备人员同步
|
* 设备人员同步
|
||||||
*/
|
*/
|
||||||
|
@ -244,6 +248,7 @@ function handleSelectionChange(selection) {
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
function handleAdd() {
|
function handleAdd() {
|
||||||
reset();
|
reset();
|
||||||
|
data.mode="add"
|
||||||
form.value.projectId = data.row.projectId;
|
form.value.projectId = data.row.projectId;
|
||||||
form.value.projectName = data.row.projectName;
|
form.value.projectName = data.row.projectName;
|
||||||
form.value.source=ubi_device_source.value[0].value;
|
form.value.source=ubi_device_source.value[0].value;
|
||||||
|
@ -254,6 +259,7 @@ function handleAdd() {
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
function handleUpdate(row) {
|
function handleUpdate(row) {
|
||||||
reset();
|
reset();
|
||||||
|
data.mode="edit"
|
||||||
const _id = row.id || ids.value
|
const _id = row.id || ids.value
|
||||||
getAttendance_ubi_device(_id).then(response => {
|
getAttendance_ubi_device(_id).then(response => {
|
||||||
form.value = response.data;
|
form.value = response.data;
|
||||||
|
|
|
@ -56,26 +56,31 @@
|
||||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:export']">导出花名册</el-button>
|
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:export']">导出花名册</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="danger" plain icon="Download" @click="handleExport"
|
<el-button type="danger" plain icon="Download" @click="handleBatchEnterState(1)"
|
||||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:export']">批量离场</el-button>
|
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:export']">批量离场</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="success" plain icon="Download" @click="handleExport"
|
<el-button type="success" plain icon="Download" @click="handleBatchEnterState(0)"
|
||||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:export']">批量入场</el-button>
|
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:export']">批量入场</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="proProjectInfoSubdeptsUsersList" @selection-change="handleSelectionChange">
|
<el-table v-loading="loading" :data="proProjectInfoSubdeptsUsersList" @selection-change="handleSelectionChange">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column label="所属单位" align="center" prop="subDeptName" />
|
|
||||||
<el-table-column label="姓名" align="center" prop="user.userName" />
|
|
||||||
<el-table-column label="头像" align="center">
|
<el-table-column label="头像" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-image :src="scope.row.user.userPicture" style="height:80px;" :preview-teleported="true" :preview-src-list="[scope.row.user.userPicture]"></el-image>
|
<el-image :src="scope.row.user.userPicture" style="height:80px;" :preview-teleported="true" :preview-src-list="[scope.row.user.userPicture]"></el-image>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="联系电话" align="center" prop="user.phonenumber" />
|
<el-table-column label="姓名" align="center" prop="user.userName" />
|
||||||
|
<el-table-column label="身份证" align="center" prop="user.cardCode" />
|
||||||
|
<el-table-column label="性别" align="center" prop="user.sex" width="80" />
|
||||||
|
<el-table-column label="民族" align="center" prop="info.nation" width="80" />
|
||||||
|
<el-table-column label="年龄" align="center" prop="info.age" width="80" />
|
||||||
|
<el-table-column label="所属单位" align="center" prop="subDeptName" />
|
||||||
|
|
||||||
|
<el-table-column label="联系电话" align="center" prop="user.phonenumber" v-if="false"/>
|
||||||
<el-table-column label="班组" align="center" prop="subDeptGroupName" />
|
<el-table-column label="班组" align="center" prop="subDeptGroupName" />
|
||||||
<el-table-column label="工种类型" align="center" prop="craftType">
|
<el-table-column label="工种类型" align="center" prop="craftType">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
|
@ -87,17 +92,25 @@
|
||||||
<dict-tag :options="pro_craft_post" :value="scope.row.craftPost" />
|
<dict-tag :options="pro_craft_post" :value="scope.row.craftPost" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="民族" align="center" prop="info.nation" width="80" />
|
|
||||||
<el-table-column label="年龄" align="center" prop="info.age" width="80" />
|
<el-table-column label="状态" align="center" prop="enterState">
|
||||||
<el-table-column label="性别" align="center" prop="user.sex" width="80" />
|
<template #default="scope">
|
||||||
<el-table-column label="出生日期" align="center" prop="info.birthDayStr" />
|
<span v-if="scope.row.enterState==0" style="color: green;">在场</span>
|
||||||
<el-table-column label="籍贯" align="center" prop="info.nativePlace" />
|
<span v-else style="color: red">离场</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="出生日期" align="center" prop="info.birthDayStr" v-if="false"/>
|
||||||
|
<el-table-column label="籍贯" align="center" prop="info.nativePlace" v-if="false"/>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
|
||||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:edit']">修改</el-button>
|
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:edit']">修改</el-button>
|
||||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
|
||||||
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:remove']">删除</el-button>
|
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:remove']">删除</el-button>
|
||||||
|
<el-button link type="primary" icon="Delete" @click="handleEnter(scope.row)" v-if="scope.row.enterState==0"
|
||||||
|
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:remove']">离场</el-button>
|
||||||
|
<el-button link type="primary" icon="Delete" @click="handleEnter(scope.row)" v-else
|
||||||
|
v-hasPermi="['manage:proProjectInfoSubdeptsUsers:remove']">进场</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -248,7 +261,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="ProProjectInfoSubdeptsUsers">
|
<script setup name="ProProjectInfoSubdeptsUsers">
|
||||||
import { listProProjectInfoSubdeptsUsers, getProProjectInfoSubdeptsUsers, delProProjectInfoSubdeptsUsers, addProProjectInfoSubdeptsUsers, updateProProjectInfoSubdeptsUsers } from "@/api/manage/proProjectInfoSubdeptsUsers";
|
import { listProProjectInfoSubdeptsUsers, getProProjectInfoSubdeptsUsers,updateEnterState, delProProjectInfoSubdeptsUsers, addProProjectInfoSubdeptsUsers, updateProProjectInfoSubdeptsUsers } from "@/api/manage/proProjectInfoSubdeptsUsers";
|
||||||
import { listProProjectInfoSubdepts } from "@/api/manage/proProjectInfoSubdepts";
|
import { listProProjectInfoSubdepts } from "@/api/manage/proProjectInfoSubdepts";
|
||||||
import { listProProjectInfoSubdeptsGroup } from "@/api/manage/proProjectInfoSubdeptsGroup";
|
import { listProProjectInfoSubdeptsGroup } from "@/api/manage/proProjectInfoSubdeptsGroup";
|
||||||
import { listUser } from "@/api/system/user";
|
import { listUser } from "@/api/system/user";
|
||||||
|
@ -323,10 +336,40 @@ const data = reactive({
|
||||||
phoneState: '',
|
phoneState: '',
|
||||||
userInfo: null,
|
userInfo: null,
|
||||||
mode: '',
|
mode: '',
|
||||||
|
editData:null,
|
||||||
});
|
});
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data);
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
|
||||||
|
//进场,离场
|
||||||
|
function handleEnter(row){
|
||||||
|
let ids=[row.id];
|
||||||
|
if(row.enterState==0){
|
||||||
|
updateEnterState(ids,1).then(d=>{
|
||||||
|
row.enterState=1;
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
updateEnterState(ids,0).then(d=>{
|
||||||
|
row.enterState=0;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//批量入场,批量离场
|
||||||
|
function handleBatchEnterState(state){
|
||||||
|
if(ids.value.length==0){
|
||||||
|
proxy.$modal.msgWarning("请选择数据!!!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
updateEnterState(ids.value,state).then(d=>{
|
||||||
|
proProjectInfoSubdeptsUsersList.value.forEach(it=>{
|
||||||
|
if(ids.value.indexOf(it.id)>=0){
|
||||||
|
it.enterState=state;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
//图片上传
|
//图片上传
|
||||||
function doImageUpload() {
|
function doImageUpload() {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
@ -527,6 +570,7 @@ function handleAdd() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
reset();
|
reset();
|
||||||
|
data.editData=null;
|
||||||
data.mode = 'add';
|
data.mode = 'add';
|
||||||
form.value.certificateType = "";
|
form.value.certificateType = "";
|
||||||
form.value.projectId = userStore.currentProId;
|
form.value.projectId = userStore.currentProId;
|
||||||
|
@ -538,14 +582,11 @@ function handleAdd() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
function handleUpdate(row) {
|
function handleUpdate(row) {
|
||||||
if (!userStore.currentProId) {
|
|
||||||
proxy.$modal.msgWarning("请切换到项目数据!!!");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
reset();
|
reset();
|
||||||
const _id = row.id || ids.value
|
const _id = row.id || ids.value
|
||||||
data.mode = 'edit'
|
data.mode = 'edit'
|
||||||
|
data.editData=row;
|
||||||
getProProjectInfoSubdeptsUsers(_id).then(response => {
|
getProProjectInfoSubdeptsUsers(_id).then(response => {
|
||||||
let obj = JSON.parse(JSON.stringify(response.data));
|
let obj = JSON.parse(JSON.stringify(response.data));
|
||||||
obj.info = tryToJson(obj.user?.userInfos || "{}")
|
obj.info = tryToJson(obj.user?.userInfos || "{}")
|
||||||
|
@ -554,8 +595,8 @@ function handleUpdate(row) {
|
||||||
form.value = obj;
|
form.value = obj;
|
||||||
form.value.userId = obj.userId;
|
form.value.userId = obj.userId;
|
||||||
|
|
||||||
form.value.projectId = userStore.currentProId;
|
form.value.projectId = row.projectId;
|
||||||
form.value.projectName = userStore.currentProName;
|
form.value.projectName = row.projectName;
|
||||||
showEditUser(obj.user);
|
showEditUser(obj.user);
|
||||||
data.phoneState = "edit";
|
data.phoneState = "edit";
|
||||||
open.value = true;
|
open.value = true;
|
||||||
|
|
Loading…
Reference in New Issue