提交代码
parent
70f43b3973
commit
7dbe6f0e68
|
@ -17,8 +17,14 @@ public class FlowTaskEntity extends BaseEntity {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private String businessImg;
|
||||||
|
|
||||||
private String businessKey;
|
private String businessKey;
|
||||||
|
|
||||||
|
private String businessMk1;
|
||||||
|
private String businessMk2;
|
||||||
|
private String businessMk3;
|
||||||
|
|
||||||
@ApiModelProperty("任务编号")
|
@ApiModelProperty("任务编号")
|
||||||
private String taskId;
|
private String taskId;
|
||||||
|
|
||||||
|
@ -121,6 +127,14 @@ public class FlowTaskEntity extends BaseEntity {
|
||||||
this.taskId = taskId;
|
this.taskId = taskId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getBusinessImg() {
|
||||||
|
return businessImg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBusinessImg(String businessImg) {
|
||||||
|
this.businessImg = businessImg;
|
||||||
|
}
|
||||||
|
|
||||||
public String getExecutionId() {
|
public String getExecutionId() {
|
||||||
return executionId;
|
return executionId;
|
||||||
}
|
}
|
||||||
|
@ -369,5 +383,27 @@ public class FlowTaskEntity extends BaseEntity {
|
||||||
this.deptAncestors = deptAncestors;
|
this.deptAncestors = deptAncestors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getBusinessMk1() {
|
||||||
|
return businessMk1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBusinessMk1(String businessMk1) {
|
||||||
|
this.businessMk1 = businessMk1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBusinessMk2() {
|
||||||
|
return businessMk2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBusinessMk2(String businessMk2) {
|
||||||
|
this.businessMk2 = businessMk2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBusinessMk3() {
|
||||||
|
return businessMk3;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBusinessMk3(String businessMk3) {
|
||||||
|
this.businessMk3 = businessMk3;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,9 @@ public class ProProjectInfoSubdepts extends BaseEntity
|
||||||
@Excel(name = "分包单位类型")
|
@Excel(name = "分包单位类型")
|
||||||
private String subDeptType;
|
private String subDeptType;
|
||||||
|
|
||||||
|
/** 分包单位类型 */
|
||||||
|
private String subDeptTypeName;
|
||||||
|
|
||||||
/** 分包单位名称 */
|
/** 分包单位名称 */
|
||||||
@Excel(name = "分包单位名称")
|
@Excel(name = "分包单位名称")
|
||||||
private String subDeptName;
|
private String subDeptName;
|
||||||
|
@ -364,6 +367,14 @@ public class ProProjectInfoSubdepts extends BaseEntity
|
||||||
this.leaderDegreeGrade = leaderDegreeGrade;
|
this.leaderDegreeGrade = leaderDegreeGrade;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getSubDeptTypeName() {
|
||||||
|
return subDeptTypeName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSubDeptTypeName(String subDeptTypeName) {
|
||||||
|
this.subDeptTypeName = subDeptTypeName;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||||
|
|
|
@ -0,0 +1,149 @@
|
||||||
|
package com.yanzhu.manage.domain;
|
||||||
|
|
||||||
|
import com.yanzhu.common.core.annotation.Excel;
|
||||||
|
import com.yanzhu.common.core.web.domain.BaseEntity;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单配置对象 wx_menu_config
|
||||||
|
*
|
||||||
|
* @author JiangYuQi
|
||||||
|
* @date 2024-12-29
|
||||||
|
*/
|
||||||
|
public class WxMenuConfig extends BaseEntity
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** 主键 */
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/** 项目主键 */
|
||||||
|
@Excel(name = "项目主键")
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/** 菜单名称 */
|
||||||
|
@Excel(name = "菜单名称")
|
||||||
|
private String menuName;
|
||||||
|
|
||||||
|
/** 菜单标识 */
|
||||||
|
@Excel(name = "菜单标识")
|
||||||
|
private String menuIdenti;
|
||||||
|
|
||||||
|
/** 菜单图标 */
|
||||||
|
@Excel(name = "菜单图标")
|
||||||
|
private String menuImg;
|
||||||
|
|
||||||
|
/** 菜单地址 */
|
||||||
|
@Excel(name = "菜单地址")
|
||||||
|
private String menuUrl;
|
||||||
|
|
||||||
|
/** 删除状态(0 未删除 1 已删除) */
|
||||||
|
private Long delFlag;
|
||||||
|
|
||||||
|
/** 菜单排序 */
|
||||||
|
@Excel(name = "菜单排序")
|
||||||
|
private Long menuSort;
|
||||||
|
|
||||||
|
/** 菜单类型 */
|
||||||
|
@Excel(name = "菜单类型")
|
||||||
|
private String menuType;
|
||||||
|
|
||||||
|
public void setId(Long id)
|
||||||
|
{
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getId()
|
||||||
|
{
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
public void setProjectId(Long projectId)
|
||||||
|
{
|
||||||
|
this.projectId = projectId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getProjectId()
|
||||||
|
{
|
||||||
|
return projectId;
|
||||||
|
}
|
||||||
|
public void setMenuName(String menuName)
|
||||||
|
{
|
||||||
|
this.menuName = menuName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMenuName()
|
||||||
|
{
|
||||||
|
return menuName;
|
||||||
|
}
|
||||||
|
public void setMenuIdenti(String menuIdenti)
|
||||||
|
{
|
||||||
|
this.menuIdenti = menuIdenti;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMenuIdenti()
|
||||||
|
{
|
||||||
|
return menuIdenti;
|
||||||
|
}
|
||||||
|
public void setMenuImg(String menuImg)
|
||||||
|
{
|
||||||
|
this.menuImg = menuImg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMenuImg()
|
||||||
|
{
|
||||||
|
return menuImg;
|
||||||
|
}
|
||||||
|
public void setMenuUrl(String menuUrl)
|
||||||
|
{
|
||||||
|
this.menuUrl = menuUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMenuUrl()
|
||||||
|
{
|
||||||
|
return menuUrl;
|
||||||
|
}
|
||||||
|
public void setDelFlag(Long delFlag)
|
||||||
|
{
|
||||||
|
this.delFlag = delFlag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getDelFlag()
|
||||||
|
{
|
||||||
|
return delFlag;
|
||||||
|
}
|
||||||
|
public void setMenuSort(Long menuSort)
|
||||||
|
{
|
||||||
|
this.menuSort = menuSort;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getMenuSort()
|
||||||
|
{
|
||||||
|
return menuSort;
|
||||||
|
}
|
||||||
|
public void setMenuType(String menuType)
|
||||||
|
{
|
||||||
|
this.menuType = menuType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMenuType()
|
||||||
|
{
|
||||||
|
return menuType;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||||
|
.append("id", getId())
|
||||||
|
.append("projectId", getProjectId())
|
||||||
|
.append("menuName", getMenuName())
|
||||||
|
.append("menuIdenti", getMenuIdenti())
|
||||||
|
.append("menuImg", getMenuImg())
|
||||||
|
.append("menuUrl", getMenuUrl())
|
||||||
|
.append("delFlag", getDelFlag())
|
||||||
|
.append("menuSort", getMenuSort())
|
||||||
|
.append("createTime", getCreateTime())
|
||||||
|
.append("menuType", getMenuType())
|
||||||
|
.toString();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
package com.yanzhu.manage.domain;
|
||||||
|
|
||||||
|
import com.yanzhu.common.core.annotation.Excel;
|
||||||
|
import com.yanzhu.common.core.web.domain.BaseEntity;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单配置角色对象 wx_menu_config_role
|
||||||
|
*
|
||||||
|
* @author JiangYuQi
|
||||||
|
* @date 2024-12-29
|
||||||
|
*/
|
||||||
|
public class WxMenuConfigRole extends BaseEntity
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** 菜单主键 */
|
||||||
|
@Excel(name = "菜单主键")
|
||||||
|
private Long smcid;
|
||||||
|
|
||||||
|
/** 角色主键 */
|
||||||
|
@Excel(name = "角色主键")
|
||||||
|
private Long roleId;
|
||||||
|
|
||||||
|
/** 用户主键 */
|
||||||
|
@Excel(name = "用户主键")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
public void setSmcid(Long smcid)
|
||||||
|
{
|
||||||
|
this.smcid = smcid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getSmcid()
|
||||||
|
{
|
||||||
|
return smcid;
|
||||||
|
}
|
||||||
|
public void setRoleId(Long roleId)
|
||||||
|
{
|
||||||
|
this.roleId = roleId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getRoleId()
|
||||||
|
{
|
||||||
|
return roleId;
|
||||||
|
}
|
||||||
|
public void setUserId(Long userId)
|
||||||
|
{
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getUserId()
|
||||||
|
{
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||||
|
.append("smcid", getSmcid())
|
||||||
|
.append("roleId", getRoleId())
|
||||||
|
.append("userId", getUserId())
|
||||||
|
.toString();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,70 @@
|
||||||
|
package com.yanzhu.manage.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.yanzhu.manage.domain.WxMenuConfig;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单配置Mapper接口
|
||||||
|
*
|
||||||
|
* @author JiangYuQi
|
||||||
|
* @date 2024-12-29
|
||||||
|
*/
|
||||||
|
public interface WxMenuConfigMapper
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询菜单配置
|
||||||
|
*
|
||||||
|
* @param id 菜单配置主键
|
||||||
|
* @return 菜单配置
|
||||||
|
*/
|
||||||
|
public WxMenuConfig selectWxMenuConfigById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询菜单配置列表
|
||||||
|
*
|
||||||
|
* @param wxMenuConfig 菜单配置
|
||||||
|
* @return 菜单配置集合
|
||||||
|
*/
|
||||||
|
public List<WxMenuConfig> selectWxMenuConfigList(WxMenuConfig wxMenuConfig);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增菜单配置
|
||||||
|
*
|
||||||
|
* @param wxMenuConfig 菜单配置
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertWxMenuConfig(WxMenuConfig wxMenuConfig);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改菜单配置
|
||||||
|
*
|
||||||
|
* @param wxMenuConfig 菜单配置
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateWxMenuConfig(WxMenuConfig wxMenuConfig);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除菜单配置
|
||||||
|
*
|
||||||
|
* @param id 菜单配置主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteWxMenuConfigById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除菜单配置
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的数据主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteWxMenuConfigByIds(Long[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询微信用户菜单
|
||||||
|
*
|
||||||
|
* @param wxMenuConfig 菜单配置
|
||||||
|
* @return 菜单配置集合
|
||||||
|
*/
|
||||||
|
public List<WxMenuConfig> findUserMenuList(WxMenuConfig wxMenuConfig);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
package com.yanzhu.manage.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.yanzhu.manage.domain.WxMenuConfigRole;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单配置角色Mapper接口
|
||||||
|
*
|
||||||
|
* @author JiangYuQi
|
||||||
|
* @date 2024-12-29
|
||||||
|
*/
|
||||||
|
public interface WxMenuConfigRoleMapper
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询菜单配置角色
|
||||||
|
*
|
||||||
|
* @param smcid 菜单配置角色主键
|
||||||
|
* @return 菜单配置角色
|
||||||
|
*/
|
||||||
|
public WxMenuConfigRole selectWxMenuConfigRoleBySmcid(Long smcid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询菜单配置角色列表
|
||||||
|
*
|
||||||
|
* @param wxMenuConfigRole 菜单配置角色
|
||||||
|
* @return 菜单配置角色集合
|
||||||
|
*/
|
||||||
|
public List<WxMenuConfigRole> selectWxMenuConfigRoleList(WxMenuConfigRole wxMenuConfigRole);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增菜单配置角色
|
||||||
|
*
|
||||||
|
* @param wxMenuConfigRole 菜单配置角色
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertWxMenuConfigRole(WxMenuConfigRole wxMenuConfigRole);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改菜单配置角色
|
||||||
|
*
|
||||||
|
* @param wxMenuConfigRole 菜单配置角色
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateWxMenuConfigRole(WxMenuConfigRole wxMenuConfigRole);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除菜单配置角色
|
||||||
|
*
|
||||||
|
* @param smcid 菜单配置角色主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteWxMenuConfigRoleBySmcid(Long smcid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除菜单配置角色
|
||||||
|
*
|
||||||
|
* @param smcids 需要删除的数据主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteWxMenuConfigRoleBySmcids(Long[] smcids);
|
||||||
|
}
|
|
@ -48,7 +48,12 @@
|
||||||
|
|
||||||
<!--查询我的代办任务-->
|
<!--查询我的代办任务-->
|
||||||
<select id="selectMyAwaitFlowTask" parameterType="FlowTaskEntity" resultType="Map">
|
<select id="selectMyAwaitFlowTask" parameterType="FlowTaskEntity" resultType="Map">
|
||||||
select fa.* from vw_flow_await fa
|
select fa.*
|
||||||
|
<if test='activeTags == "depts"'>, sud.business_license_path as businessImg, bus.sub_dept_name as businessMk1, sdd.dict_label as businessMk2, sud.sub_dept_code as businessMk3</if>
|
||||||
|
<if test='activeTags == "users"'>, sus.user_picture as businessImg, sus.card_code as businessMk1, sdd.dict_label as businessMk2, bus.sub_dept_name as businessMk3</if>
|
||||||
|
from vw_flow_await fa
|
||||||
|
<if test='activeTags == "depts"'> left join pro_project_info_subdepts_users bus on bus.id = fa.businessKey left join pro_project_info_subdepts sud on sud.id = bus.sub_dept_id left join sys_dict_data sdd on sdd.dict_value = bus.sub_dept_type and sdd.dict_type='sub_dept_type' </if>
|
||||||
|
<if test='activeTags == "users"'> left join pro_project_info_subdepts_users bus on bus.id = fa.businessKey left join sys_dict_data sdd on sdd.dict_value = bus.craft_post and sdd.dict_type='pro_craft_post' left join sys_user sus on sus.user_id = bus.user_id</if>
|
||||||
where
|
where
|
||||||
fa.taskName != '申请人提交'
|
fa.taskName != '申请人提交'
|
||||||
<if test="procDefName != null and procDefName != ''"> and fa.procDefName like concat('%', #{procDefName}, '%')</if>
|
<if test="procDefName != null and procDefName != ''"> and fa.procDefName like concat('%', #{procDefName}, '%')</if>
|
||||||
|
@ -63,6 +68,8 @@
|
||||||
<if test="startComName != null and startComName != ''"> and fa.startComName like concat('%', #{startComName}, '%')</if>
|
<if test="startComName != null and startComName != ''"> and fa.startComName like concat('%', #{startComName}, '%')</if>
|
||||||
<if test="startProId != null and startProId != ''"> and fa.startProId = #{startProId}</if>
|
<if test="startProId != null and startProId != ''"> and fa.startProId = #{startProId}</if>
|
||||||
<if test="startProName != null and startProName != ''"> and fa.startProName like concat('%', #{startProName}, '%')</if>
|
<if test="startProName != null and startProName != ''"> and fa.startProName like concat('%', #{startProName}, '%')</if>
|
||||||
|
<if test='activeTags == "depts"'> and fa.category = '1'</if>
|
||||||
|
<if test='activeTags == "users"'> and fa.category in ('2','3','4')</if>
|
||||||
<if test="assigneeId != null and roleIds != null and roleIds.size()>0">
|
<if test="assigneeId != null and roleIds != null and roleIds.size()>0">
|
||||||
AND (fa.ASSIGNEE_ = #{assigneeId}
|
AND (fa.ASSIGNEE_ = #{assigneeId}
|
||||||
OR (
|
OR (
|
||||||
|
@ -114,7 +121,12 @@
|
||||||
|
|
||||||
<!--查询我的已办任务-->
|
<!--查询我的已办任务-->
|
||||||
<select id="selectMyFinishedFlowTask" parameterType="FlowTaskEntity" resultType="Map">
|
<select id="selectMyFinishedFlowTask" parameterType="FlowTaskEntity" resultType="Map">
|
||||||
select fa.* from vw_flow_finished fa
|
select fa.*
|
||||||
|
<if test='activeTags == "depts"'>, sud.business_license_path as businessImg, bus.sub_dept_name as businessMk1, sdd.dict_label as businessMk2, sud.sub_dept_code as businessMk3</if>
|
||||||
|
<if test='activeTags == "users"'>, sus.user_picture as businessImg, sus.card_code as businessMk1, sdd.dict_label as businessMk2, bus.sub_dept_name as businessMk3</if>
|
||||||
|
from vw_flow_finished fa
|
||||||
|
<if test='activeTags == "depts"'> left join pro_project_info_subdepts_users bus on bus.id = fa.businessKey left join pro_project_info_subdepts sud on sud.id = bus.sub_dept_id left join sys_dict_data sdd on sdd.dict_value = bus.sub_dept_type and sdd.dict_type='sub_dept_type' </if>
|
||||||
|
<if test='activeTags == "users"'> left join pro_project_info_subdepts_users bus on bus.id = fa.businessKey left join sys_dict_data sdd on sdd.dict_value = bus.craft_post and sdd.dict_type='pro_craft_post' left join sys_user sus on sus.user_id = bus.user_id</if>
|
||||||
where
|
where
|
||||||
fa.ASSIGNEE_=#{assigneeId}
|
fa.ASSIGNEE_=#{assigneeId}
|
||||||
<if test="procDefName != null and procDefName != ''"> and fa.procDefName like concat('%', #{procDefName}, '%')</if>
|
<if test="procDefName != null and procDefName != ''"> and fa.procDefName like concat('%', #{procDefName}, '%')</if>
|
||||||
|
@ -127,6 +139,8 @@
|
||||||
<if test="startComName != null and startComName != ''"> and fa.startComName like concat('%', #{startComName}, '%')</if>
|
<if test="startComName != null and startComName != ''"> and fa.startComName like concat('%', #{startComName}, '%')</if>
|
||||||
<if test="startProId != null and startProId != ''"> and fa.startProId = #{startProId}</if>
|
<if test="startProId != null and startProId != ''"> and fa.startProId = #{startProId}</if>
|
||||||
<if test="startProName != null and startProName != ''"> and fa.startProName like concat('%', #{startProName}, '%')</if>
|
<if test="startProName != null and startProName != ''"> and fa.startProName like concat('%', #{startProName}, '%')</if>
|
||||||
|
<if test='activeTags == "depts"'> and fa.category = '1'</if>
|
||||||
|
<if test='activeTags == "users"'> and fa.category in ('2','3','4')</if>
|
||||||
<if test="params.beginTime != null and params.beginTime != '' and params.endTime != null and params.endTime != ''"> and fa.endTime between #{params.beginTime} and #{params.endTime}</if>
|
<if test="params.beginTime != null and params.beginTime != '' and params.endTime != null and params.endTime != ''"> and fa.endTime between #{params.beginTime} and #{params.endTime}</if>
|
||||||
order by fa.endTime desc
|
order by fa.endTime desc
|
||||||
</select>
|
</select>
|
||||||
|
|
|
@ -11,6 +11,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<result property="projectId" column="project_id" />
|
<result property="projectId" column="project_id" />
|
||||||
<result property="projectName" column="project_name" />
|
<result property="projectName" column="project_name" />
|
||||||
<result property="subDeptType" column="sub_dept_type" />
|
<result property="subDeptType" column="sub_dept_type" />
|
||||||
|
<result property="subDeptTypeName" column="sub_dept_type_name" />
|
||||||
<result property="subDeptName" column="sub_dept_name" />
|
<result property="subDeptName" column="sub_dept_name" />
|
||||||
<result property="subDeptCode" column="sub_dept_code" />
|
<result property="subDeptCode" column="sub_dept_code" />
|
||||||
<result property="subDeptLeaderId" column="sub_dept_leader_id" />
|
<result property="subDeptLeaderId" column="sub_dept_leader_id" />
|
||||||
|
@ -35,9 +36,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectProProjectInfoSubdeptsVo">
|
<sql id="selectProProjectInfoSubdeptsVo">
|
||||||
select ps.id, ps.com_id, sd.dept_name as com_name, ps.project_id, pi.project_name, ps.sub_dept_type, ps.sub_dept_name, ps.sub_dept_code, ps.sub_dept_leader_id, ps.sub_dept_leader_name, ps.sub_dept_leader_code, ps.sub_dept_leader_phone, ps.business_license_path, ps.sub_dept_infos, ps.contract_infos, ps.use_dates, ps.start_work_dates, ps.end_work_dates, ps.use_status, ps.approve_status, ps.qr_code, ps.is_del, ps.create_by, ps.create_time, ps.update_by, ps.update_time, ps.remark from pro_project_info_subdepts ps
|
select ps.id, ps.com_id, sd.dept_name as com_name, ps.project_id, pi.project_name, ps.sub_dept_type, sdd.dict_label as sub_dept_type_name, ps.sub_dept_name, ps.sub_dept_code, ps.sub_dept_leader_id, ps.sub_dept_leader_name, ps.sub_dept_leader_code, ps.sub_dept_leader_phone, ps.business_license_path, ps.sub_dept_infos, ps.contract_infos, ps.use_dates, ps.start_work_dates, ps.end_work_dates, ps.use_status, ps.approve_status, ps.qr_code, ps.is_del, ps.create_by, ps.create_time, ps.update_by, ps.update_time, ps.remark from pro_project_info_subdepts ps
|
||||||
left join pro_project_info pi on pi.id = ps.project_id
|
left join pro_project_info pi on pi.id = ps.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 sdd on sdd.dict_value = ps.sub_dept_type and sdd.dict_type = 'sub_dept_type'
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectProProjectInfoSubdeptsList" parameterType="ProProjectInfoSubdepts" resultMap="ProProjectInfoSubdeptsResult">
|
<select id="selectProProjectInfoSubdeptsList" parameterType="ProProjectInfoSubdepts" resultMap="ProProjectInfoSubdeptsResult">
|
||||||
|
|
|
@ -0,0 +1,111 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.yanzhu.manage.mapper.WxMenuConfigMapper">
|
||||||
|
|
||||||
|
<resultMap type="WxMenuConfig" id="WxMenuConfigResult">
|
||||||
|
<result property="id" column="id" />
|
||||||
|
<result property="projectId" column="project_id" />
|
||||||
|
<result property="menuName" column="menu_name" />
|
||||||
|
<result property="menuIdenti" column="menu_identi" />
|
||||||
|
<result property="menuImg" column="menu_img" />
|
||||||
|
<result property="menuUrl" column="menu_url" />
|
||||||
|
<result property="delFlag" column="del_flag" />
|
||||||
|
<result property="menuSort" column="menu_sort" />
|
||||||
|
<result property="createTime" column="create_time" />
|
||||||
|
<result property="menuType" column="menu_type" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectWxMenuConfigVo">
|
||||||
|
select id, project_id, menu_name, menu_identi, menu_img, menu_url, del_flag, menu_sort, create_time, menu_type from wx_menu_config
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectWxMenuConfigList" parameterType="WxMenuConfig" resultMap="WxMenuConfigResult">
|
||||||
|
<include refid="selectWxMenuConfigVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="projectId != null "> and project_id = #{projectId}</if>
|
||||||
|
<if test="menuName != null and menuName != ''"> and menu_name like concat('%', #{menuName}, '%')</if>
|
||||||
|
<if test="menuType != null and menuType != ''"> and menu_type = #{menuType}</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectWxMenuConfigById" parameterType="Long" resultMap="WxMenuConfigResult">
|
||||||
|
<include refid="selectWxMenuConfigVo"/>
|
||||||
|
where id = #{id}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertWxMenuConfig" parameterType="WxMenuConfig" useGeneratedKeys="true" keyProperty="id">
|
||||||
|
insert into wx_menu_config
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="projectId != null">project_id,</if>
|
||||||
|
<if test="menuName != null">menu_name,</if>
|
||||||
|
<if test="menuIdenti != null">menu_identi,</if>
|
||||||
|
<if test="menuImg != null">menu_img,</if>
|
||||||
|
<if test="menuUrl != null">menu_url,</if>
|
||||||
|
<if test="delFlag != null">del_flag,</if>
|
||||||
|
<if test="menuSort != null">menu_sort,</if>
|
||||||
|
<if test="createTime != null">create_time,</if>
|
||||||
|
<if test="menuType != null">menu_type,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="projectId != null">#{projectId},</if>
|
||||||
|
<if test="menuName != null">#{menuName},</if>
|
||||||
|
<if test="menuIdenti != null">#{menuIdenti},</if>
|
||||||
|
<if test="menuImg != null">#{menuImg},</if>
|
||||||
|
<if test="menuUrl != null">#{menuUrl},</if>
|
||||||
|
<if test="delFlag != null">#{delFlag},</if>
|
||||||
|
<if test="menuSort != null">#{menuSort},</if>
|
||||||
|
<if test="createTime != null">#{createTime},</if>
|
||||||
|
<if test="menuType != null">#{menuType},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateWxMenuConfig" parameterType="WxMenuConfig">
|
||||||
|
update wx_menu_config
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="projectId != null">project_id = #{projectId},</if>
|
||||||
|
<if test="menuName != null">menu_name = #{menuName},</if>
|
||||||
|
<if test="menuIdenti != null">menu_identi = #{menuIdenti},</if>
|
||||||
|
<if test="menuImg != null">menu_img = #{menuImg},</if>
|
||||||
|
<if test="menuUrl != null">menu_url = #{menuUrl},</if>
|
||||||
|
<if test="delFlag != null">del_flag = #{delFlag},</if>
|
||||||
|
<if test="menuSort != null">menu_sort = #{menuSort},</if>
|
||||||
|
<if test="createTime != null">create_time = #{createTime},</if>
|
||||||
|
<if test="menuType != null">menu_type = #{menuType},</if>
|
||||||
|
</trim>
|
||||||
|
where id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteWxMenuConfigById" parameterType="Long">
|
||||||
|
delete from wx_menu_config where id = #{id}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteWxMenuConfigByIds" parameterType="String">
|
||||||
|
delete from wx_menu_config where id in
|
||||||
|
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<!--查询角色相关菜单-->
|
||||||
|
<select id="findUserMenuList" parameterType="WxMenuConfig" resultMap="WxMenuConfigResult">
|
||||||
|
SELECT
|
||||||
|
DISTINCT smc.id,
|
||||||
|
smc.menu_name,
|
||||||
|
smc.menu_identi,
|
||||||
|
smc.menu_img,
|
||||||
|
smc.menu_url,
|
||||||
|
smc.menu_sort
|
||||||
|
FROM
|
||||||
|
wx_menu_config smc
|
||||||
|
LEFT JOIN wx_menu_config_role smcr ON smcr.smcid = smc.id
|
||||||
|
LEFT JOIN sys_user_role ur ON ur.role_id = smcr.role_id
|
||||||
|
WHERE smc.del_flag = 0
|
||||||
|
and (ur.user_id = #{currentUserId} or smcr.user_id = #{currentUserId})
|
||||||
|
<if test="activeProjectId != null"> and smc.project_id = #{activeProjectId}</if>
|
||||||
|
<if test="menuType != null and menuType != ''"> and smc.menu_type = #{menuType}</if>
|
||||||
|
order by smc.menu_sort asc
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
|
@ -0,0 +1,65 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.yanzhu.manage.mapper.WxMenuConfigRoleMapper">
|
||||||
|
|
||||||
|
<resultMap type="WxMenuConfigRole" id="WxMenuConfigRoleResult">
|
||||||
|
<result property="smcid" column="smcid" />
|
||||||
|
<result property="roleId" column="role_id" />
|
||||||
|
<result property="userId" column="user_id" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectWxMenuConfigRoleVo">
|
||||||
|
select smcid, role_id, user_id from wx_menu_config_role
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectWxMenuConfigRoleList" parameterType="WxMenuConfigRole" resultMap="WxMenuConfigRoleResult">
|
||||||
|
<include refid="selectWxMenuConfigRoleVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="smcid != null "> and smcid = #{smcid}</if>
|
||||||
|
<if test="roleId != null "> and role_id = #{roleId}</if>
|
||||||
|
<if test="userId != null "> and user_id = #{userId}</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectWxMenuConfigRoleBySmcid" parameterType="Long" resultMap="WxMenuConfigRoleResult">
|
||||||
|
<include refid="selectWxMenuConfigRoleVo"/>
|
||||||
|
where smcid = #{smcid}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertWxMenuConfigRole" parameterType="WxMenuConfigRole">
|
||||||
|
insert into wx_menu_config_role
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="smcid != null">smcid,</if>
|
||||||
|
<if test="roleId != null">role_id,</if>
|
||||||
|
<if test="userId != null">user_id,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="smcid != null">#{smcid},</if>
|
||||||
|
<if test="roleId != null">#{roleId},</if>
|
||||||
|
<if test="userId != null">#{userId},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateWxMenuConfigRole" parameterType="WxMenuConfigRole">
|
||||||
|
update wx_menu_config_role
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="roleId != null">role_id = #{roleId},</if>
|
||||||
|
<if test="userId != null">user_id = #{userId},</if>
|
||||||
|
</trim>
|
||||||
|
where smcid = #{smcid}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteWxMenuConfigRoleBySmcid" parameterType="Long">
|
||||||
|
delete from wx_menu_config_role where smcid = #{smcid}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteWxMenuConfigRoleBySmcids" parameterType="String">
|
||||||
|
delete from wx_menu_config_role where smcid in
|
||||||
|
<foreach item="smcid" collection="array" open="(" separator="," close=")">
|
||||||
|
#{smcid}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
</mapper>
|
|
@ -197,9 +197,9 @@ public class FileUploadUtils
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
absPath = cutResult?(absPath+".sign.png"):absPath;
|
absPath = cutResult?(absPath+".sign.png"):absPath;
|
||||||
int w = ImgUtil.read(FileUtil.file(absPath)).getWidth()/20;
|
int w = ImgUtil.read(FileUtil.file(absPath)).getWidth();
|
||||||
ImgUtil.scale(FileUtil.file(absPath),
|
ImgUtil.scale(FileUtil.file(absPath),
|
||||||
FileUtil.file(absPath + ".min.png"), w);
|
FileUtil.file(absPath + ".min.png"), 25/w);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}catch (Exception ex){
|
}catch (Exception ex){
|
||||||
|
|
|
@ -1,24 +1,32 @@
|
||||||
package com.yanzhu.flowable.controller;
|
package com.yanzhu.flowable.controller;
|
||||||
|
|
||||||
|
import com.yanzhu.common.core.constant.Constants;
|
||||||
import com.yanzhu.common.core.text.Convert;
|
import com.yanzhu.common.core.text.Convert;
|
||||||
import com.yanzhu.common.core.utils.StringUtils;
|
import com.yanzhu.common.core.utils.StringUtils;
|
||||||
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;
|
||||||
import com.yanzhu.common.core.web.page.TableDataInfo;
|
import com.yanzhu.common.core.web.page.TableDataInfo;
|
||||||
|
import com.yanzhu.common.redis.service.RedisService;
|
||||||
import com.yanzhu.common.security.utils.SecurityUtils;
|
import com.yanzhu.common.security.utils.SecurityUtils;
|
||||||
import com.yanzhu.flowable.domain.my.FlowTaskEntity;
|
import com.yanzhu.flowable.domain.my.FlowTaskEntity;
|
||||||
import com.yanzhu.flowable.service.IFlowBusinessKeyService;
|
import com.yanzhu.flowable.service.IFlowBusinessKeyService;
|
||||||
|
import com.yanzhu.flowable.service.IFlowDefinitionService;
|
||||||
import com.yanzhu.system.api.domain.SysRole;
|
import com.yanzhu.system.api.domain.SysRole;
|
||||||
import com.yanzhu.system.api.model.LoginUser;
|
import com.yanzhu.system.api.model.LoginUser;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiParam;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.flowable.bpmn.model.UserTask;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -35,6 +43,12 @@ import java.util.stream.Collectors;
|
||||||
@RequestMapping("/businessKey")
|
@RequestMapping("/businessKey")
|
||||||
public class FlowBusinessKeyController extends BaseController {
|
public class FlowBusinessKeyController extends BaseController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RedisService redisService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IFlowDefinitionService flowDefinitionService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IFlowBusinessKeyService flowBusinessKeyService;
|
private IFlowBusinessKeyService flowBusinessKeyService;
|
||||||
|
|
||||||
|
@ -70,6 +84,24 @@ public class FlowBusinessKeyController extends BaseController {
|
||||||
return getDataTable(flowBusinessKeyService.selectAllFlowTaskByParams(flowTaskEntity));
|
return getDataTable(flowBusinessKeyService.selectAllFlowTaskByParams(flowTaskEntity));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询流程节点
|
||||||
|
* @param deployId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "查询流程节点")
|
||||||
|
@GetMapping("/readDeployNotes/{deployId}")
|
||||||
|
public AjaxResult readDeployNotes(@ApiParam(value = "流程定义id") @PathVariable(value = "deployId") String deployId) {
|
||||||
|
String key = "businessKey_readDeployNotes:" + deployId;
|
||||||
|
Object object = redisService.getCacheObject(key);
|
||||||
|
if (object != null) {
|
||||||
|
return success(object);
|
||||||
|
}
|
||||||
|
List<UserTask> list = flowDefinitionService.findFlowNodes(deployId);
|
||||||
|
redisService.setCacheObject(key, list, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
|
||||||
|
return success(list);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据条件统计所有流任务
|
* 根据条件统计所有流任务
|
||||||
* @param flowTaskEntity
|
* @param flowTaskEntity
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.yanzhu.flowable.service;
|
||||||
|
|
||||||
import com.yanzhu.common.core.web.domain.AjaxResult;
|
import com.yanzhu.common.core.web.domain.AjaxResult;
|
||||||
import com.yanzhu.flowable.domain.dto.FlowProcDefDto;
|
import com.yanzhu.flowable.domain.dto.FlowProcDefDto;
|
||||||
|
import org.flowable.bpmn.model.UserTask;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
@ -91,4 +92,11 @@ public interface IFlowDefinitionService {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
InputStream readImage(String deployId);
|
InputStream readImage(String deployId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 读取流程节点
|
||||||
|
* @param deployId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<UserTask> findFlowNodes(String deployId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ public class FlowBusinessKeyServiceImpl implements IFlowBusinessKeyService {
|
||||||
@Override
|
@Override
|
||||||
public Map<String,Object> quueryCount(FlowTaskEntity flowTaskEntity) {
|
public Map<String,Object> quueryCount(FlowTaskEntity flowTaskEntity) {
|
||||||
flowTaskEntity.setActiveTags("await");
|
flowTaskEntity.setActiveTags("await");
|
||||||
int awaitSize = flowBusinessKeyMapper.selectAllFlowTaskByParams(flowTaskEntity).size();
|
int awaitSize = flowBusinessKeyMapper.selectMyAwaitFlowTask(flowTaskEntity).size();
|
||||||
flowTaskEntity.setActiveTags("finished");
|
flowTaskEntity.setActiveTags("finished");
|
||||||
int finishedSize = flowBusinessKeyMapper.selectAllFlowTaskByParams(flowTaskEntity).size();
|
int finishedSize = flowBusinessKeyMapper.selectAllFlowTaskByParams(flowTaskEntity).size();
|
||||||
Map<String, Object> dataMap = new HashMap<>();
|
Map<String, Object> dataMap = new HashMap<>();
|
||||||
|
|
|
@ -19,6 +19,7 @@ import com.yanzhu.system.api.domain.SysUser;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.flowable.bpmn.model.BpmnModel;
|
import org.flowable.bpmn.model.BpmnModel;
|
||||||
|
import org.flowable.bpmn.model.UserTask;
|
||||||
import org.flowable.engine.repository.Deployment;
|
import org.flowable.engine.repository.Deployment;
|
||||||
import org.flowable.engine.repository.ProcessDefinition;
|
import org.flowable.engine.repository.ProcessDefinition;
|
||||||
import org.flowable.engine.repository.ProcessDefinitionQuery;
|
import org.flowable.engine.repository.ProcessDefinitionQuery;
|
||||||
|
@ -110,6 +111,20 @@ public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IFl
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 读取流程节点
|
||||||
|
* @param deployId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<UserTask> findFlowNodes(String deployId){
|
||||||
|
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().deploymentId(deployId).singleResult();
|
||||||
|
//获得图片流
|
||||||
|
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinition.getId());
|
||||||
|
List<UserTask> list = bpmnModel.getProcesses().get(0).findFlowElementsOfType(UserTask.class);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导入流程文件
|
* 导入流程文件
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,19 +1,26 @@
|
||||||
package com.yanzhu.manage.controller;
|
package com.yanzhu.manage.controller;
|
||||||
|
|
||||||
|
import com.yanzhu.common.core.constant.CacheConstants;
|
||||||
|
import com.yanzhu.common.core.enums.DataSourceEnuns;
|
||||||
|
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;
|
||||||
import com.yanzhu.common.core.web.page.TableDataInfo;
|
import com.yanzhu.common.core.web.page.TableDataInfo;
|
||||||
import com.yanzhu.common.log.annotation.Log;
|
import com.yanzhu.common.log.annotation.Log;
|
||||||
import com.yanzhu.common.log.enums.BusinessType;
|
import com.yanzhu.common.log.enums.BusinessType;
|
||||||
|
import com.yanzhu.common.redis.service.RedisService;
|
||||||
import com.yanzhu.common.security.annotation.RequiresPermissions;
|
import com.yanzhu.common.security.annotation.RequiresPermissions;
|
||||||
|
import com.yanzhu.common.security.utils.SecurityUtils;
|
||||||
import com.yanzhu.manage.domain.BasSignet;
|
import com.yanzhu.manage.domain.BasSignet;
|
||||||
|
import com.yanzhu.manage.domain.ProProjectInfo;
|
||||||
import com.yanzhu.manage.service.IBasSignetService;
|
import com.yanzhu.manage.service.IBasSignetService;
|
||||||
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.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 业务签名管理Controller
|
* 业务签名管理Controller
|
||||||
|
@ -25,6 +32,9 @@ import java.util.List;
|
||||||
@RequestMapping("/basSignet")
|
@RequestMapping("/basSignet")
|
||||||
public class BasSignetController extends BaseController
|
public class BasSignetController extends BaseController
|
||||||
{
|
{
|
||||||
|
@Autowired
|
||||||
|
private RedisService redisService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBasSignetService basSignetService;
|
private IBasSignetService basSignetService;
|
||||||
|
|
||||||
|
@ -40,6 +50,44 @@ public class BasSignetController extends BaseController
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询业务签名
|
||||||
|
*/
|
||||||
|
@GetMapping("/findUserSignList/{proId}")
|
||||||
|
public AjaxResult findUserSignList(@PathVariable("proId") Long proId)
|
||||||
|
{
|
||||||
|
BasSignet basSignet = new BasSignet();
|
||||||
|
basSignet.setProjectId(proId);
|
||||||
|
basSignet.setUserId(SecurityUtils.getUserId());
|
||||||
|
List<BasSignet> list = basSignetService.selectBasSignetList(basSignet);
|
||||||
|
return success(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询业务签名
|
||||||
|
*/
|
||||||
|
@PostMapping("/submitUserSign")
|
||||||
|
public AjaxResult submitUserSign(@RequestBody BasSignet pageBasSignet)
|
||||||
|
{
|
||||||
|
if(Objects.nonNull(pageBasSignet.getId())){
|
||||||
|
BasSignet basSignet = basSignetService.selectBasSignetById(pageBasSignet.getId());
|
||||||
|
basSignet.setSignetPath(pageBasSignet.getSignetPath()+".sign.png.min.png");
|
||||||
|
basSignet.setUpdateBy(DataSourceEnuns.APP.getInfo());
|
||||||
|
basSignet.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
return toAjax(basSignetService.updateBasSignet(basSignet));
|
||||||
|
}else{
|
||||||
|
ProProjectInfo proProjectInfo = redisService.getCacheObject(CacheConstants.PRO_PROJECT+pageBasSignet.getProjectId());
|
||||||
|
BasSignet basSignet = new BasSignet();
|
||||||
|
basSignet.setComId(proProjectInfo.getComId());
|
||||||
|
basSignet.setProjectId(proProjectInfo.getId());
|
||||||
|
basSignet.setUserId(SecurityUtils.getUserId());
|
||||||
|
basSignet.setSignetPath(pageBasSignet.getSignetPath()+".sign.png.min.png");
|
||||||
|
basSignet.setCreateBy(DataSourceEnuns.APP.getInfo());
|
||||||
|
basSignet.setCreateTime(DateUtils.getNowDate());
|
||||||
|
return toAjax(basSignetService.insertBasSignet(basSignet));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出业务签名管理列表
|
* 导出业务签名管理列表
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
package com.yanzhu.manage.controller;
|
package com.yanzhu.manage.controller;
|
||||||
|
|
||||||
|
import com.yanzhu.common.core.constant.Constants;
|
||||||
import com.yanzhu.common.core.domain.R;
|
import com.yanzhu.common.core.domain.R;
|
||||||
|
import com.yanzhu.common.core.utils.PageUtils;
|
||||||
|
import com.yanzhu.common.core.utils.StringUtils;
|
||||||
import com.yanzhu.common.core.utils.bean.BeanUtils;
|
import com.yanzhu.common.core.utils.bean.BeanUtils;
|
||||||
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;
|
||||||
|
@ -8,8 +11,10 @@ import com.yanzhu.common.core.web.domain.AjaxResult;
|
||||||
import com.yanzhu.common.core.web.page.TableDataInfo;
|
import com.yanzhu.common.core.web.page.TableDataInfo;
|
||||||
import com.yanzhu.common.log.annotation.Log;
|
import com.yanzhu.common.log.annotation.Log;
|
||||||
import com.yanzhu.common.log.enums.BusinessType;
|
import com.yanzhu.common.log.enums.BusinessType;
|
||||||
|
import com.yanzhu.common.redis.service.RedisService;
|
||||||
import com.yanzhu.common.security.annotation.InnerAuth;
|
import com.yanzhu.common.security.annotation.InnerAuth;
|
||||||
import com.yanzhu.common.security.annotation.RequiresPermissions;
|
import com.yanzhu.common.security.annotation.RequiresPermissions;
|
||||||
|
import com.yanzhu.common.security.utils.SecurityUtils;
|
||||||
import com.yanzhu.manage.domain.ProProjectInfo;
|
import com.yanzhu.manage.domain.ProProjectInfo;
|
||||||
import com.yanzhu.manage.service.IProProjectInfoService;
|
import com.yanzhu.manage.service.IProProjectInfoService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -18,6 +23,7 @@ import org.springframework.web.bind.annotation.*;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目信息Controller
|
* 项目信息Controller
|
||||||
|
@ -29,6 +35,9 @@ import java.util.Map;
|
||||||
@RequestMapping("/proProjectInfo")
|
@RequestMapping("/proProjectInfo")
|
||||||
public class ProProjectInfoController extends BaseController
|
public class ProProjectInfoController extends BaseController
|
||||||
{
|
{
|
||||||
|
@Autowired
|
||||||
|
private RedisService redisService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IProProjectInfoService proProjectInfoService;
|
private IProProjectInfoService proProjectInfoService;
|
||||||
|
|
||||||
|
@ -123,7 +132,13 @@ public class ProProjectInfoController extends BaseController
|
||||||
public TableDataInfo findMyProjectList(ProProjectInfo proProjectInfo)
|
public TableDataInfo findMyProjectList(ProProjectInfo proProjectInfo)
|
||||||
{
|
{
|
||||||
startPage();
|
startPage();
|
||||||
List<ProProjectInfo> list = proProjectInfoService.selectProProjectInfoList(proProjectInfo);
|
String key="proProjectInfo_findMyProjectList-"+ PageUtils.getLocalPage().getPageNum()+"-"+PageUtils.getLocalPage().getPageSize()+"-"+SecurityUtils.getUserId()+"-"+proProjectInfo.getProjectName();
|
||||||
|
List<ProProjectInfo> list = redisService.getCacheObject(key);
|
||||||
|
if(StringUtils.isNotEmpty(list)){
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
list = proProjectInfoService.selectProProjectInfoList(proProjectInfo);
|
||||||
|
redisService.setCacheObject(key, list, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
package com.yanzhu.manage.controller.wechat;
|
||||||
|
|
||||||
|
import com.yanzhu.common.core.constant.Constants;
|
||||||
|
import com.yanzhu.common.core.web.controller.BaseController;
|
||||||
|
import com.yanzhu.common.core.web.domain.AjaxResult;
|
||||||
|
import com.yanzhu.common.redis.service.RedisService;
|
||||||
|
import com.yanzhu.common.security.utils.SecurityUtils;
|
||||||
|
import com.yanzhu.manage.domain.WxMenuConfig;
|
||||||
|
import com.yanzhu.manage.service.IWxMenuConfigService;
|
||||||
|
import com.yanzhu.system.api.domain.SysUser;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公共信息Controller
|
||||||
|
*
|
||||||
|
* @author JiangYuQi
|
||||||
|
* @date 2024-08-25
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/wxPublic")
|
||||||
|
public class WXPublicController extends BaseController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RedisService redisService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IWxMenuConfigService wxMenuConfigService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据用户查询菜单信息
|
||||||
|
* @param menuType
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/v1/findUserMenuList/{proId}")
|
||||||
|
public AjaxResult findUserMenuList(@PathVariable("proId") Long proId, String menuType){
|
||||||
|
//设置缓存
|
||||||
|
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
|
||||||
|
String key="wxPublic_findUserMenuList-"+sysUser.getUserId()+"-"+proId+"-"+menuType;
|
||||||
|
Object obj=redisService.getCacheObject(key);
|
||||||
|
if(obj!=null){
|
||||||
|
return success(obj);
|
||||||
|
}
|
||||||
|
WxMenuConfig query = new WxMenuConfig();
|
||||||
|
query.setActiveProjectId(proId);
|
||||||
|
query.setMenuType(menuType);
|
||||||
|
query.setCurrentUserId(sysUser.getUserId());
|
||||||
|
List<WxMenuConfig> list = wxMenuConfigService.findUserMenuList(query);
|
||||||
|
redisService.setCacheObject(key, list, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
|
||||||
|
return success(list);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
package com.yanzhu.manage.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.yanzhu.manage.domain.WxMenuConfigRole;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单配置角色Service接口
|
||||||
|
*
|
||||||
|
* @author JiangYuQi
|
||||||
|
* @date 2024-12-29
|
||||||
|
*/
|
||||||
|
public interface IWxMenuConfigRoleService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询菜单配置角色
|
||||||
|
*
|
||||||
|
* @param smcid 菜单配置角色主键
|
||||||
|
* @return 菜单配置角色
|
||||||
|
*/
|
||||||
|
public WxMenuConfigRole selectWxMenuConfigRoleBySmcid(Long smcid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询菜单配置角色列表
|
||||||
|
*
|
||||||
|
* @param wxMenuConfigRole 菜单配置角色
|
||||||
|
* @return 菜单配置角色集合
|
||||||
|
*/
|
||||||
|
public List<WxMenuConfigRole> selectWxMenuConfigRoleList(WxMenuConfigRole wxMenuConfigRole);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增菜单配置角色
|
||||||
|
*
|
||||||
|
* @param wxMenuConfigRole 菜单配置角色
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertWxMenuConfigRole(WxMenuConfigRole wxMenuConfigRole);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改菜单配置角色
|
||||||
|
*
|
||||||
|
* @param wxMenuConfigRole 菜单配置角色
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateWxMenuConfigRole(WxMenuConfigRole wxMenuConfigRole);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除菜单配置角色
|
||||||
|
*
|
||||||
|
* @param smcids 需要删除的菜单配置角色主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteWxMenuConfigRoleBySmcids(Long[] smcids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除菜单配置角色信息
|
||||||
|
*
|
||||||
|
* @param smcid 菜单配置角色主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteWxMenuConfigRoleBySmcid(Long smcid);
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
package com.yanzhu.manage.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.yanzhu.manage.domain.WxMenuConfig;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单配置Service接口
|
||||||
|
*
|
||||||
|
* @author JiangYuQi
|
||||||
|
* @date 2024-12-29
|
||||||
|
*/
|
||||||
|
public interface IWxMenuConfigService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询菜单配置
|
||||||
|
*
|
||||||
|
* @param id 菜单配置主键
|
||||||
|
* @return 菜单配置
|
||||||
|
*/
|
||||||
|
public WxMenuConfig selectWxMenuConfigById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询菜单配置列表
|
||||||
|
*
|
||||||
|
* @param wxMenuConfig 菜单配置
|
||||||
|
* @return 菜单配置集合
|
||||||
|
*/
|
||||||
|
public List<WxMenuConfig> selectWxMenuConfigList(WxMenuConfig wxMenuConfig);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增菜单配置
|
||||||
|
*
|
||||||
|
* @param wxMenuConfig 菜单配置
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertWxMenuConfig(WxMenuConfig wxMenuConfig);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改菜单配置
|
||||||
|
*
|
||||||
|
* @param wxMenuConfig 菜单配置
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateWxMenuConfig(WxMenuConfig wxMenuConfig);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除菜单配置
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的菜单配置主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteWxMenuConfigByIds(Long[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除菜单配置信息
|
||||||
|
*
|
||||||
|
* @param id 菜单配置主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteWxMenuConfigById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询微信用户菜单
|
||||||
|
*
|
||||||
|
* @param wxMenuConfig 菜单配置
|
||||||
|
* @return 菜单配置集合
|
||||||
|
*/
|
||||||
|
public List<WxMenuConfig> findUserMenuList(WxMenuConfig wxMenuConfig);
|
||||||
|
}
|
|
@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 业务签名管理Service业务层处理
|
* 业务签名管理Service业务层处理
|
||||||
|
@ -44,8 +45,10 @@ public class BasSignetServiceImpl implements IBasSignetService
|
||||||
@Override
|
@Override
|
||||||
public List<BasSignet> selectBasSignetList(BasSignet basSignet)
|
public List<BasSignet> selectBasSignetList(BasSignet basSignet)
|
||||||
{
|
{
|
||||||
basSignet.setActiveComId(SecurityUtils.getLoginUser().getProjectDeptId());
|
if(Objects.isNull(basSignet.getProjectId())){
|
||||||
basSignet.setActiveProjectId(SecurityUtils.getLoginUser().getProjectId());
|
basSignet.setActiveComId(SecurityUtils.getLoginUser().getProjectDeptId());
|
||||||
|
basSignet.setActiveProjectId(SecurityUtils.getLoginUser().getProjectId());
|
||||||
|
}
|
||||||
return basSignetMapper.selectBasSignetList(basSignet);
|
return basSignetMapper.selectBasSignetList(basSignet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,93 @@
|
||||||
|
package com.yanzhu.manage.service.impl;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import com.yanzhu.manage.mapper.WxMenuConfigRoleMapper;
|
||||||
|
import com.yanzhu.manage.domain.WxMenuConfigRole;
|
||||||
|
import com.yanzhu.manage.service.IWxMenuConfigRoleService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单配置角色Service业务层处理
|
||||||
|
*
|
||||||
|
* @author JiangYuQi
|
||||||
|
* @date 2024-12-29
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class WxMenuConfigRoleServiceImpl implements IWxMenuConfigRoleService
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private WxMenuConfigRoleMapper wxMenuConfigRoleMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询菜单配置角色
|
||||||
|
*
|
||||||
|
* @param smcid 菜单配置角色主键
|
||||||
|
* @return 菜单配置角色
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WxMenuConfigRole selectWxMenuConfigRoleBySmcid(Long smcid)
|
||||||
|
{
|
||||||
|
return wxMenuConfigRoleMapper.selectWxMenuConfigRoleBySmcid(smcid);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询菜单配置角色列表
|
||||||
|
*
|
||||||
|
* @param wxMenuConfigRole 菜单配置角色
|
||||||
|
* @return 菜单配置角色
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<WxMenuConfigRole> selectWxMenuConfigRoleList(WxMenuConfigRole wxMenuConfigRole)
|
||||||
|
{
|
||||||
|
return wxMenuConfigRoleMapper.selectWxMenuConfigRoleList(wxMenuConfigRole);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增菜单配置角色
|
||||||
|
*
|
||||||
|
* @param wxMenuConfigRole 菜单配置角色
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int insertWxMenuConfigRole(WxMenuConfigRole wxMenuConfigRole)
|
||||||
|
{
|
||||||
|
return wxMenuConfigRoleMapper.insertWxMenuConfigRole(wxMenuConfigRole);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改菜单配置角色
|
||||||
|
*
|
||||||
|
* @param wxMenuConfigRole 菜单配置角色
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int updateWxMenuConfigRole(WxMenuConfigRole wxMenuConfigRole)
|
||||||
|
{
|
||||||
|
return wxMenuConfigRoleMapper.updateWxMenuConfigRole(wxMenuConfigRole);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除菜单配置角色
|
||||||
|
*
|
||||||
|
* @param smcids 需要删除的菜单配置角色主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteWxMenuConfigRoleBySmcids(Long[] smcids)
|
||||||
|
{
|
||||||
|
return wxMenuConfigRoleMapper.deleteWxMenuConfigRoleBySmcids(smcids);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除菜单配置角色信息
|
||||||
|
*
|
||||||
|
* @param smcid 菜单配置角色主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteWxMenuConfigRoleBySmcid(Long smcid)
|
||||||
|
{
|
||||||
|
return wxMenuConfigRoleMapper.deleteWxMenuConfigRoleBySmcid(smcid);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,107 @@
|
||||||
|
package com.yanzhu.manage.service.impl;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.yanzhu.common.core.utils.DateUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import com.yanzhu.manage.mapper.WxMenuConfigMapper;
|
||||||
|
import com.yanzhu.manage.domain.WxMenuConfig;
|
||||||
|
import com.yanzhu.manage.service.IWxMenuConfigService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单配置Service业务层处理
|
||||||
|
*
|
||||||
|
* @author JiangYuQi
|
||||||
|
* @date 2024-12-29
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class WxMenuConfigServiceImpl implements IWxMenuConfigService
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private WxMenuConfigMapper wxMenuConfigMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询菜单配置
|
||||||
|
*
|
||||||
|
* @param id 菜单配置主键
|
||||||
|
* @return 菜单配置
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WxMenuConfig selectWxMenuConfigById(Long id)
|
||||||
|
{
|
||||||
|
return wxMenuConfigMapper.selectWxMenuConfigById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询菜单配置列表
|
||||||
|
*
|
||||||
|
* @param wxMenuConfig 菜单配置
|
||||||
|
* @return 菜单配置
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<WxMenuConfig> selectWxMenuConfigList(WxMenuConfig wxMenuConfig)
|
||||||
|
{
|
||||||
|
return wxMenuConfigMapper.selectWxMenuConfigList(wxMenuConfig);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增菜单配置
|
||||||
|
*
|
||||||
|
* @param wxMenuConfig 菜单配置
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int insertWxMenuConfig(WxMenuConfig wxMenuConfig)
|
||||||
|
{
|
||||||
|
wxMenuConfig.setCreateTime(DateUtils.getNowDate());
|
||||||
|
return wxMenuConfigMapper.insertWxMenuConfig(wxMenuConfig);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改菜单配置
|
||||||
|
*
|
||||||
|
* @param wxMenuConfig 菜单配置
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int updateWxMenuConfig(WxMenuConfig wxMenuConfig)
|
||||||
|
{
|
||||||
|
return wxMenuConfigMapper.updateWxMenuConfig(wxMenuConfig);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除菜单配置
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的菜单配置主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteWxMenuConfigByIds(Long[] ids)
|
||||||
|
{
|
||||||
|
return wxMenuConfigMapper.deleteWxMenuConfigByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除菜单配置信息
|
||||||
|
*
|
||||||
|
* @param id 菜单配置主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteWxMenuConfigById(Long id)
|
||||||
|
{
|
||||||
|
return wxMenuConfigMapper.deleteWxMenuConfigById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询微信用户菜单
|
||||||
|
*
|
||||||
|
* @param wxMenuConfig 菜单配置
|
||||||
|
* @return 菜单配置集合
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<WxMenuConfig> findUserMenuList(WxMenuConfig wxMenuConfig){
|
||||||
|
return wxMenuConfigMapper.findUserMenuList(wxMenuConfig);
|
||||||
|
}
|
||||||
|
}
|
|
@ -21,6 +21,7 @@ import com.yanzhu.system.api.domain.SysUser;
|
||||||
import com.yanzhu.system.api.model.LoginUser;
|
import com.yanzhu.system.api.model.LoginUser;
|
||||||
import com.yanzhu.system.domain.vo.TreeSelect;
|
import com.yanzhu.system.domain.vo.TreeSelect;
|
||||||
import com.yanzhu.system.service.*;
|
import com.yanzhu.system.service.*;
|
||||||
|
import com.yanzhu.system.vo.AlertUserPassVo;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -29,6 +30,7 @@ import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.validation.Valid;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -321,6 +323,15 @@ public class SysUserController extends BaseController {
|
||||||
return toAjax(userService.resetPwd(user));
|
return toAjax(userService.resetPwd(user));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重置密码
|
||||||
|
*/
|
||||||
|
@Log(title = "修改密码", businessType = BusinessType.UPDATE)
|
||||||
|
@PostMapping("/updatePwd")
|
||||||
|
public AjaxResult updatePwd(@RequestBody @Valid AlertUserPassVo vo) {
|
||||||
|
return toAjax(userService.updataUserPassWord(vo));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 状态修改
|
* 状态修改
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.yanzhu.system.service;
|
package com.yanzhu.system.service;
|
||||||
|
|
||||||
import com.yanzhu.system.api.domain.SysUser;
|
import com.yanzhu.system.api.domain.SysUser;
|
||||||
|
import com.yanzhu.system.vo.AlertUserPassVo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -239,4 +240,11 @@ public interface ISysUserService
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public List<Map<String, Object>> selectProjectsByUserId(Long userId);
|
public List<Map<String, Object>> selectProjectsByUserId(Long userId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改用户密码
|
||||||
|
* @param alertUserPassVo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public int updataUserPassWord(AlertUserPassVo alertUserPassVo);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ import com.yanzhu.system.domain.SysPost;
|
||||||
import com.yanzhu.system.domain.SysUserPost;
|
import com.yanzhu.system.domain.SysUserPost;
|
||||||
import com.yanzhu.system.domain.SysUserRole;
|
import com.yanzhu.system.domain.SysUserRole;
|
||||||
import com.yanzhu.system.mapper.*;
|
import com.yanzhu.system.mapper.*;
|
||||||
|
import com.yanzhu.system.vo.AlertUserPassVo;
|
||||||
import net.sourceforge.pinyin4j.PinyinHelper;
|
import net.sourceforge.pinyin4j.PinyinHelper;
|
||||||
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
|
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
|
||||||
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
|
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
|
||||||
|
@ -652,4 +653,16 @@ public class SysUserServiceImpl implements ISysUserService
|
||||||
return successMsg.toString();
|
return successMsg.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改用户密码
|
||||||
|
* @param alertUserPassVo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int updataUserPassWord(AlertUserPassVo alertUserPassVo){
|
||||||
|
SysUser sysUser = userMapper.selectUserByUserId(SecurityUtils.getUserId());
|
||||||
|
sysUser.setPassword(SecurityUtils.encryptPassword(alertUserPassVo.getPassword()));
|
||||||
|
return userMapper.updateUser(sysUser);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
package com.yanzhu.system.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.Pattern;
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改密码
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class AlertUserPassVo {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手机号码格式限制
|
||||||
|
*/
|
||||||
|
public static final String MOBILE_PHONE_NUMBER_PATTERN = "^0{0,1}(13[0-9]|15[0-9]|14[0-9]|18[0-9])[0-9]{8}$";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录账号
|
||||||
|
* @NotBlank(message = "登录账号不能为空")
|
||||||
|
* @Pattern(regexp = "^0{0,1}(13[0-9]|15[0-9]|14[0-9]|18[0-9])[0-9]{8}$", message = "手机号格式异常")
|
||||||
|
*/
|
||||||
|
private String loginName;
|
||||||
|
|
||||||
|
@NotBlank(message = "登录密码不能为空")
|
||||||
|
@Size(min = 6, max = 20, message = "登录密码格式异常")
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
@NotBlank(message = "确认密码不能为空")
|
||||||
|
@Size(min = 6, max = 20, message = "确认密码格式异常")
|
||||||
|
private String confPass;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 旧密码验证
|
||||||
|
* @NotBlank(message = "旧密码不能为空")
|
||||||
|
* @Size(min = 6, max = 20, message = "旧密码格式异常")
|
||||||
|
*/
|
||||||
|
private String oldPass;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Pattern(regexp = "^[0-9]{6}$", message = "验证码格式异常")
|
||||||
|
*/
|
||||||
|
private String code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 来源
|
||||||
|
* @NotBlank(message = "来源不能为空")
|
||||||
|
* @Pattern(regexp = "r|u", message = "来源异常")
|
||||||
|
*/
|
||||||
|
private String source;
|
||||||
|
}
|
|
@ -3,7 +3,7 @@ import {request} from '../utils/request'
|
||||||
// 获取流程申请类型
|
// 获取流程申请类型
|
||||||
export function myDefinitionList(data) {
|
export function myDefinitionList(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/myDefinitionList',
|
url: '/flowable/businessKey/myDefinitionList',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
@ -12,7 +12,7 @@ export function myDefinitionList(data) {
|
||||||
// 启动流程实例
|
// 启动流程实例
|
||||||
export function startProcessInstance(data) {
|
export function startProcessInstance(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/startProcessInstance',
|
url: '/flowable/businessKey/startProcessInstance',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
@ -21,7 +21,7 @@ export function startProcessInstance(data) {
|
||||||
// 查询流程节点
|
// 查询流程节点
|
||||||
export function readNotes(deployId) {
|
export function readNotes(deployId) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/readNotes/'+deployId,
|
url: '/flowable/businessKey/readNotes/'+deployId,
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ export function readNotes(deployId) {
|
||||||
// 查询流程节点
|
// 查询流程节点
|
||||||
export function readDeployNotes(deployId) {
|
export function readDeployNotes(deployId) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/readDeployNotes/'+deployId,
|
url: '/flowable/businessKey/readDeployNotes/'+deployId,
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,7 @@ export function readDeployNotes(deployId) {
|
||||||
// 取消流程申请
|
// 取消流程申请
|
||||||
export function stopProcess(data) {
|
export function stopProcess(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/stopProcess',
|
url: '/flowable/businessKey/stopProcess',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
@ -46,7 +46,7 @@ export function stopProcess(data) {
|
||||||
// 撤回流程办理
|
// 撤回流程办理
|
||||||
export function revokeProcess(data) {
|
export function revokeProcess(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/revokeProcess',
|
url: '/flowable/businessKey/revokeProcess',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
@ -55,7 +55,7 @@ export function revokeProcess(data) {
|
||||||
// 审批任务流程
|
// 审批任务流程
|
||||||
export function complete(data) {
|
export function complete(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/complete',
|
url: '/flowable/task/complete',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
@ -64,7 +64,7 @@ export function complete(data) {
|
||||||
// 驳回任务流程
|
// 驳回任务流程
|
||||||
export function reject(data) {
|
export function reject(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/reject',
|
url: '/flowable/businessKey/reject',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
@ -73,7 +73,7 @@ export function reject(data) {
|
||||||
// 退回任务流程
|
// 退回任务流程
|
||||||
export function returnTask(data) {
|
export function returnTask(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/return',
|
url: '/flowable/task/return',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
@ -82,7 +82,7 @@ export function returnTask(data) {
|
||||||
// 委派任务流程
|
// 委派任务流程
|
||||||
export function delegateTask(data) {
|
export function delegateTask(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/delegateTask',
|
url: '/flowable/businessKey/delegateTask',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
@ -91,7 +91,7 @@ export function delegateTask(data) {
|
||||||
// 转办任务流程
|
// 转办任务流程
|
||||||
export function assignTask(data) {
|
export function assignTask(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/assignTask',
|
url: '/flowable/businessKey/assignTask',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
@ -100,7 +100,7 @@ export function assignTask(data) {
|
||||||
// 删除流程实例
|
// 删除流程实例
|
||||||
export function deleteInstance(instanceId) {
|
export function deleteInstance(instanceId) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/delete/'+instanceId,
|
url: '/flowable/businessKey/delete/'+instanceId,
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,7 @@ export function deleteInstance(instanceId) {
|
||||||
// 获取所有可回退的节点
|
// 获取所有可回退的节点
|
||||||
export function returnList(data) {
|
export function returnList(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/returnList',
|
url: '/flowable/task/returnList',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
@ -117,25 +117,34 @@ export function returnList(data) {
|
||||||
// 根据流程Id查询操作日志
|
// 根据流程Id查询操作日志
|
||||||
export function findCommentByProcInsId(data) {
|
export function findCommentByProcInsId(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/findCommentByProcInsId',
|
url: '/flowable/businessKey/findCommentByProcInsId',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 根据条件查询我的代办任务
|
// 根据条件统计分包单位审批
|
||||||
export function myAwaitFlowTaskList(data) {
|
export function quueryCount(query) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/myAwaitFlowTaskList',
|
url: '/flowable/businessKey/queryCount',
|
||||||
method: 'post',
|
method: 'get',
|
||||||
data: data
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据条件查询我的代办任务
|
||||||
|
export function myAwaitFlowTaskList(query) {
|
||||||
|
return request({
|
||||||
|
url: '/flowable/businessKey/myAwaitFlowTaskList',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 根据条件查询我的已办任务
|
// 根据条件查询我的已办任务
|
||||||
export function myFinishedFlowTaskList(query) {
|
export function myFinishedFlowTaskList(query) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/myFinishedFlowTaskList',
|
url: '/flowable/businessKey/myFinishedFlowTaskList',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
|
@ -144,7 +153,7 @@ export function myFinishedFlowTaskList(query) {
|
||||||
// 根据条件查询所有流申请
|
// 根据条件查询所有流申请
|
||||||
export function allInstanceList(data) {
|
export function allInstanceList(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/allList',
|
url: '/flowable/businessKey/allList',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
@ -153,7 +162,7 @@ export function allInstanceList(data) {
|
||||||
// 根据条件查询所有流申请
|
// 根据条件查询所有流申请
|
||||||
export function myInstanceList(data) {
|
export function myInstanceList(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/myList',
|
url: '/flowable/businessKey/myList',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
@ -162,7 +171,7 @@ export function myInstanceList(data) {
|
||||||
// 根据条件统计所有流程任务
|
// 根据条件统计所有流程任务
|
||||||
export function queryTaskCount(data) {
|
export function queryTaskCount(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/flowTask/queryCount',
|
url: '/flowable/businessKey/queryCount',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
|
|
@ -38,7 +38,7 @@ export function maLogin(data) {
|
||||||
// 登录方法
|
// 登录方法
|
||||||
export function updatePwd(data) {
|
export function updatePwd(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/updatePwd',
|
url: '/system/user/updatePwd',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data,
|
data: data,
|
||||||
})
|
})
|
||||||
|
@ -48,7 +48,7 @@ export function updatePwd(data) {
|
||||||
export function loginOut() {
|
export function loginOut() {
|
||||||
return request({
|
return request({
|
||||||
'url': '/auth/logout',
|
'url': '/auth/logout',
|
||||||
'method': 'get'
|
'method': 'delete'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,14 @@ export function findProSubDeptsInfo(proId, phoneNumber) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查询项目参建单位信息
|
||||||
|
export function findProSubDeptsInfoById(id) {
|
||||||
|
return request({
|
||||||
|
url: '/manage/proProjectInfoSubdepts/' + id,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 查询项目参建人员信息
|
// 查询项目参建人员信息
|
||||||
export function findProSubDeptsUser(proId, phoneNumber) {
|
export function findProSubDeptsUser(proId, phoneNumber) {
|
||||||
return request({
|
return request({
|
||||||
|
@ -43,6 +51,14 @@ export function findProSubDeptsUserById(id) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查询项目参建单位人员
|
||||||
|
export function findProSubDeptsUserInfoById(id) {
|
||||||
|
return request({
|
||||||
|
url: '/manage/proProjectInfoSubdeptsUsers/' + id,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 查询项目参建单位人员
|
// 查询项目参建单位人员
|
||||||
export function findProSubDeptsUserByParams(proId) {
|
export function findProSubDeptsUserByParams(proId) {
|
||||||
return request({
|
return request({
|
||||||
|
|
|
@ -17,11 +17,27 @@ export function getUserInfo() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询用户菜单信息
|
// 查询用户菜单信息
|
||||||
export function selectRoleMenuList(data) {
|
export function findUserMenuList(proId,menuType) {
|
||||||
return request({
|
return request({
|
||||||
url: '/wxApi/publics/v1/selectRoleMenuList',
|
url: '/manage/wxPublic/v1/findUserMenuList/'+proId+'?menuType='+menuType,
|
||||||
method: 'get',
|
method: 'get'
|
||||||
data: data
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询用户签名信息
|
||||||
|
export function findUserSignList(proId) {
|
||||||
|
return request({
|
||||||
|
url: '/manage/basSignet/findUserSignList/'+proId,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 保存用户签名信息
|
||||||
|
export function submitUserSign(data) {
|
||||||
|
return request({
|
||||||
|
url: '/manage/basSignet/submitUserSign',
|
||||||
|
method: 'post',
|
||||||
|
data:data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,4 +80,5 @@ export function findProjectApplyData(id){
|
||||||
url: '/wxApi/publics/projectApply/'+id,
|
url: '/wxApi/publics/projectApply/'+id,
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@ import {
|
||||||
App({
|
App({
|
||||||
globalData: {
|
globalData: {
|
||||||
userData: null,
|
userData: null,
|
||||||
|
subDeptUserData: null,
|
||||||
useProjectId: '',
|
useProjectId: '',
|
||||||
useProjectName: '',
|
useProjectName: '',
|
||||||
searchProject: {},
|
searchProject: {},
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
"pages": [
|
"pages": [
|
||||||
"pages/login/login",
|
"pages/login/login",
|
||||||
"pages/updatePwd/index",
|
|
||||||
"pages/project_flowable/initTask/index",
|
"pages/project_flowable/initTask/index",
|
||||||
"pages/project_flowable/myFlowDefinition/index",
|
"pages/project_flowable/myFlowDefinition/index",
|
||||||
"pages/project_flowable/await/index",
|
"pages/project_flowable/await/index",
|
||||||
|
@ -10,12 +9,13 @@
|
||||||
"pages/project_flowable/detailTask/index",
|
"pages/project_flowable/detailTask/index",
|
||||||
"pages/project_flowable/editTask/index",
|
"pages/project_flowable/editTask/index",
|
||||||
"pages/project_flowable/myProcessIns/index",
|
"pages/project_flowable/myProcessIns/index",
|
||||||
|
"pages/project_flowable/subDepts/index",
|
||||||
|
"pages/project_flowable/subDeptsUsers/index",
|
||||||
"pages/project_info/index",
|
"pages/project_info/index",
|
||||||
"pages/project_list/index",
|
"pages/project_list/index",
|
||||||
"pages/project_check/list/index",
|
"pages/project_more/index",
|
||||||
"pages/project_check/edit/index",
|
"pages/project_qr/index",
|
||||||
"pages/project_check/info/index",
|
"pages/sign_mags/index"
|
||||||
"pages/project_qr/index"
|
|
||||||
],
|
],
|
||||||
"usingComponents": {
|
"usingComponents": {
|
||||||
"van-row": "@vant/weapp/row",
|
"van-row": "@vant/weapp/row",
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
"voucher-date": "pages/components/voucher-date/index",
|
"voucher-date": "pages/components/voucher-date/index",
|
||||||
"voucher-datetime": "pages/components/voucher-datetime/index",
|
"voucher-datetime": "pages/components/voucher-datetime/index",
|
||||||
"file-uploader": "pages/components/file-uploader/index",
|
"file-uploader": "pages/components/file-uploader/index",
|
||||||
"file-uploader-all":"pages/components/file-uploader-all/index",
|
"file-uploader-all": "pages/components/file-uploader-all/index",
|
||||||
"project-select": "pages/components/project-select/index",
|
"project-select": "pages/components/project-select/index",
|
||||||
"safety-pie-chart": "./components/safety-pie-chart/index",
|
"safety-pie-chart": "./components/safety-pie-chart/index",
|
||||||
"safety-pie-charts": "./components/safety-pie-charts/index",
|
"safety-pie-charts": "./components/safety-pie-charts/index",
|
||||||
|
|
|
@ -6,21 +6,20 @@ Component({
|
||||||
* 组件的属性列表
|
* 组件的属性列表
|
||||||
*/
|
*/
|
||||||
properties: {
|
properties: {
|
||||||
chartId:{
|
chartId: {
|
||||||
type: String
|
type: String
|
||||||
},
|
},
|
||||||
data:{
|
data: {
|
||||||
type: Array
|
type: Array
|
||||||
},
|
},
|
||||||
height:{
|
height: {
|
||||||
type: Number
|
type: Number
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
observers: {
|
observers: {
|
||||||
data: function (val) {
|
data: function (val) {
|
||||||
console.log(val)
|
this.initChart()
|
||||||
this.initChart()
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
|
@ -30,45 +29,50 @@ Component({
|
||||||
ec: {
|
ec: {
|
||||||
lazyLoad: true
|
lazyLoad: true
|
||||||
},
|
},
|
||||||
chart:undefined,
|
chart: undefined,
|
||||||
},
|
},
|
||||||
lifetimes: {
|
lifetimes: {
|
||||||
created: function(){
|
created: function () {
|
||||||
//在组件实例刚刚被创建时执行,注意此时不能调用 setData
|
//在组件实例刚刚被创建时执行,注意此时不能调用 setData
|
||||||
},
|
},
|
||||||
|
|
||||||
attached: function () {
|
attached: function () {
|
||||||
//在组件实例进入页面节点树时执行
|
//在组件实例进入页面节点树时执行
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
ready: function () {
|
ready: function () {
|
||||||
// 在组件在视图层布局完成后执行
|
// 在组件在视图层布局完成后执行
|
||||||
this.initChart();
|
this.initChart();
|
||||||
},
|
},
|
||||||
|
|
||||||
detached: function () {
|
detached: function () {
|
||||||
// 在组件实例被从页面节点树移除时执行
|
// 在组件实例被从页面节点树移除时执行
|
||||||
},
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* 组件的方法列表
|
* 组件的方法列表
|
||||||
*/
|
*/
|
||||||
methods: {
|
methods: {
|
||||||
initChart(){
|
initChart() {
|
||||||
var id ='#' + this.data.chartId;
|
var id = '#' + this.data.chartId;
|
||||||
this.component = this.selectComponent(id);
|
this.component = this.selectComponent(id);
|
||||||
this.component.init((canvas, width, height, dpr) => {
|
if(this.component!=null){
|
||||||
let chart = echarts.init(canvas, null, {
|
this.component.init((canvas, width, height, dpr) => {
|
||||||
width: width,
|
let chart = echarts.init(canvas, null, {
|
||||||
height: height,
|
width: width,
|
||||||
devicePixelRatio: dpr
|
height: height,
|
||||||
|
devicePixelRatio: dpr
|
||||||
|
})
|
||||||
|
chart.setOption(this.getData());
|
||||||
|
return chart;
|
||||||
})
|
})
|
||||||
chart.setOption(this.getData());
|
}
|
||||||
return chart;
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
getData() {
|
getData() {
|
||||||
var data = this.data.data
|
var data = this.data.data
|
||||||
|
|
||||||
var max = data[0].total
|
var max = data[0].total
|
||||||
var nameData = [];
|
var nameData = [];
|
||||||
var totalData = []
|
var totalData = []
|
||||||
|
@ -79,20 +83,20 @@ Component({
|
||||||
var notProp = []
|
var notProp = []
|
||||||
var unitData = []
|
var unitData = []
|
||||||
|
|
||||||
for (let i = data.length-1; i >=0 ; i--) {
|
for (let i = data.length - 1; i >= 0; i--) {
|
||||||
nameData.push(data[i].name);
|
nameData.push(data[i].name);
|
||||||
totalData.push(data[i].total)
|
totalData.push(data[i].total)
|
||||||
unitData.push(data[i].unit)
|
unitData.push(data[i].unit)
|
||||||
background.push(100);
|
background.push(100);
|
||||||
yesMonitor.push(data[i].yesMonitor);
|
yesMonitor.push(data[i].yesMonitor);
|
||||||
notMonitor.push(data[i].notMonitor);
|
notMonitor.push(data[i].notMonitor);
|
||||||
yesProp.push((data[i].yesMonitor/max)*100)
|
yesProp.push((data[i].yesMonitor / max) * 100)
|
||||||
notProp.push((data[i].notMonitor/max)*100)
|
notProp.push((data[i].notMonitor / max) * 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
var legend = ["已监控", "未监控"]
|
var legend = ["已监控", "未监控"]
|
||||||
|
|
||||||
var option = {
|
var option = {
|
||||||
grid: {
|
grid: {
|
||||||
//图表的位置
|
//图表的位置
|
||||||
top: "0%",
|
top: "0%",
|
||||||
|
@ -105,45 +109,44 @@ Component({
|
||||||
top: "0",
|
top: "0",
|
||||||
//icon: "circle",
|
//icon: "circle",
|
||||||
itemWidth: 10,
|
itemWidth: 10,
|
||||||
itemHeight:10,
|
itemHeight: 10,
|
||||||
itemGap: 8,
|
itemGap: 8,
|
||||||
textStyle: {
|
textStyle: {
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
color:'#c6d9fa'
|
color: '#c6d9fa'
|
||||||
},
|
},
|
||||||
data: legend,
|
data: legend,
|
||||||
},
|
},
|
||||||
xAxis: [{
|
xAxis: [{
|
||||||
show: false,
|
show: false,
|
||||||
},
|
},
|
||||||
//由于下边X轴已经是百分比刻度了,所以需要在顶部加一个X轴,刻度是金额,也隐藏掉
|
//由于下边X轴已经是百分比刻度了,所以需要在顶部加一个X轴,刻度是金额,也隐藏掉
|
||||||
{
|
{
|
||||||
show: false,
|
show: false,
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
yAxis: [
|
yAxis: [{
|
||||||
{
|
type: 'category',
|
||||||
type: 'category',
|
axisLabel: {
|
||||||
axisLabel: {
|
show: false, //让Y轴数据不显示
|
||||||
show: false, //让Y轴数据不显示
|
},
|
||||||
},
|
itemStyle: {
|
||||||
itemStyle: {
|
|
||||||
|
|
||||||
},
|
},
|
||||||
axisTick: {
|
axisTick: {
|
||||||
show: false, //隐藏Y轴刻度
|
show: false, //隐藏Y轴刻度
|
||||||
},
|
},
|
||||||
axisLine: {
|
axisLine: {
|
||||||
show: false, //隐藏Y轴线段
|
show: false, //隐藏Y轴线段
|
||||||
},
|
},
|
||||||
data: [],
|
data: [],
|
||||||
},{
|
}, {
|
||||||
show: false,
|
show: false,
|
||||||
data: [],
|
data: [],
|
||||||
axisLine: {
|
axisLine: {
|
||||||
show: false
|
show: false
|
||||||
}
|
}
|
||||||
}],
|
}],
|
||||||
series: [
|
series: [
|
||||||
//数据条--------------------我是分割线君------------------------------//
|
//数据条--------------------我是分割线君------------------------------//
|
||||||
{
|
{
|
||||||
|
@ -166,43 +169,43 @@ Component({
|
||||||
rich: { //富文本
|
rich: { //富文本
|
||||||
prop: { //自定义颜色
|
prop: { //自定义颜色
|
||||||
color: '#c6d9fa',
|
color: '#c6d9fa',
|
||||||
fontSize:'14',
|
fontSize: '14',
|
||||||
},
|
},
|
||||||
unit:{
|
unit: {
|
||||||
color: '#6c829a',
|
color: '#6c829a',
|
||||||
fontSize:'12',
|
fontSize: '12',
|
||||||
},
|
},
|
||||||
yes:{
|
yes: {
|
||||||
color: '#55adf7',
|
color: '#55adf7',
|
||||||
fontSize:'14',
|
fontSize: '14',
|
||||||
},
|
},
|
||||||
not:{
|
not: {
|
||||||
color: '#4677fa',
|
color: '#4677fa',
|
||||||
fontSize:'14',
|
fontSize: '14',
|
||||||
},
|
},
|
||||||
index:{
|
index: {
|
||||||
color: '#fcbc02',
|
color: '#fcbc02',
|
||||||
fontStyle: 'italic',
|
fontStyle: 'italic',
|
||||||
padding:[0,0,0,5],
|
padding: [0, 0, 0, 5],
|
||||||
fontSize:'14',
|
fontSize: '14',
|
||||||
},
|
},
|
||||||
name: {
|
name: {
|
||||||
width: 120,
|
width: 120,
|
||||||
color: '#c6d9fa',
|
color: '#c6d9fa',
|
||||||
padding:[0,0,0,5],
|
padding: [0, 0, 0, 5],
|
||||||
fontSize:'14',
|
fontSize: '14',
|
||||||
},
|
},
|
||||||
color:{
|
color: {
|
||||||
color: '#8ca2be',
|
color: '#8ca2be',
|
||||||
fontSize:'14',
|
fontSize: '14',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
formatter: function(data) {
|
formatter: function (data) {
|
||||||
//富文本固定格式{colorName|这里填你想要写的内容}
|
//富文本固定格式{colorName|这里填你想要写的内容}
|
||||||
//return '{arrow|}'
|
//return '{arrow|}'
|
||||||
return '{index|No.'+(nameData.length-data.dataIndex)+'}{name|' + nameData[data.dataIndex] + '}{prop|' + totalData[data.dataIndex] + '}{unit| '+unitData[data.dataIndex]+'}{prop|(} {yes|'+yesMonitor[data.dataIndex]+'}{unit| '+unitData[data.dataIndex]+'/}{not|'+notMonitor[data.dataIndex]+'}{unit| '+unitData[data.dataIndex]+'}{prop|)} ';
|
return '{index|No.' + (nameData.length - data.dataIndex) + '}{name|' + nameData[data.dataIndex] + '}{prop|' + totalData[data.dataIndex] + '}{unit| ' + unitData[data.dataIndex] + '}{prop|(} {yes|' + yesMonitor[data.dataIndex] + '}{unit| ' + unitData[data.dataIndex] + '/}{not|' + notMonitor[data.dataIndex] + '}{unit| ' + unitData[data.dataIndex] + '}{prop|)} ';
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -223,41 +226,42 @@ Component({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data: background
|
data: background
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
//name:legend[0],
|
//name:legend[0],
|
||||||
stack: '1',
|
stack: '1',
|
||||||
legendHoverLink: false,
|
legendHoverLink: false,
|
||||||
barWidth: 6,
|
barWidth: 6,
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
normal: {
|
normal: {
|
||||||
color: '#52adf4'
|
color: '#52adf4'
|
||||||
|
},
|
||||||
|
emphasis: {
|
||||||
|
color: '#52adf4'
|
||||||
|
}
|
||||||
},
|
},
|
||||||
emphasis: {
|
data: yesProp
|
||||||
color: '#52adf4'
|
}, {
|
||||||
}
|
type: 'bar',
|
||||||
},
|
//name:legend[1],
|
||||||
data: yesProp
|
stack: '1',
|
||||||
}, {
|
legendHoverLink: false,
|
||||||
type: 'bar',
|
barWidth: 6,
|
||||||
//name:legend[1],
|
itemStyle: {
|
||||||
stack: '1',
|
normal: {
|
||||||
legendHoverLink: false,
|
color: '#4677ff'
|
||||||
barWidth: 6,
|
},
|
||||||
itemStyle: {
|
emphasis: {
|
||||||
normal: {
|
color: '#4677ff'
|
||||||
color: '#4677ff'
|
}
|
||||||
},
|
},
|
||||||
emphasis: {
|
data: notProp
|
||||||
color: '#4677ff'
|
}
|
||||||
}
|
]
|
||||||
},
|
|
||||||
data: notProp
|
|
||||||
}]
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return option;
|
return option;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
|
@ -29,18 +29,11 @@ import {
|
||||||
},
|
},
|
||||||
|
|
||||||
created() {
|
created() {
|
||||||
let that = this;
|
this.setData({
|
||||||
//获取缓存数据
|
userData: app.globalData.userData,
|
||||||
wx.getStorage({
|
loginName: app.globalData.userData.userName,
|
||||||
key: 'userinfo',
|
msgOpenId: "",
|
||||||
success: function (res) {
|
})
|
||||||
that.setData({
|
|
||||||
userData: res.data,
|
|
||||||
loginName: res.data.loginName,
|
|
||||||
msgOpenId: res.data.msgOpenId || "",
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* 组件的方法列表
|
* 组件的方法列表
|
||||||
|
@ -125,14 +118,13 @@ import {
|
||||||
|
|
||||||
//退出登录
|
//退出登录
|
||||||
loginOut: function () {
|
loginOut: function () {
|
||||||
loginOut({}).then(res => {
|
loginOut().then(res => {
|
||||||
removeToken();
|
removeToken();
|
||||||
|
wx.clearStorageSync();
|
||||||
|
wx.redirectTo({
|
||||||
|
url: '../login/login'
|
||||||
|
})
|
||||||
});
|
});
|
||||||
wx.clearStorageSync();
|
|
||||||
wx.setStorageSync('isReload', "1")
|
|
||||||
wx.redirectTo({
|
|
||||||
url: '../login/index',
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
|
|
||||||
seeTap1() {
|
seeTap1() {
|
||||||
|
@ -167,7 +159,7 @@ import {
|
||||||
*/
|
*/
|
||||||
submit: function () {
|
submit: function () {
|
||||||
var that = this;
|
var that = this;
|
||||||
if (that.data.oldPsw == '') {
|
if (false && that.data.oldPsw == '') {
|
||||||
app.toast("请输入旧密码!");
|
app.toast("请输入旧密码!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -179,7 +171,7 @@ import {
|
||||||
app.toast("两次密码输入不一致!");
|
app.toast("两次密码输入不一致!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (that.data.oldPsw.length < 6) {
|
if (false && that.data.oldPsw.length < 6) {
|
||||||
app.toast("请输入旧密码长度 [6-20]位字符!");
|
app.toast("请输入旧密码长度 [6-20]位字符!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -201,14 +193,15 @@ import {
|
||||||
updatePwd(data).then(res =>{
|
updatePwd(data).then(res =>{
|
||||||
if(res.code==200){
|
if(res.code==200){
|
||||||
app.toast("密码修改成功,请重新登录!",800);
|
app.toast("密码修改成功,请重新登录!",800);
|
||||||
removeToken();
|
loginOut().then(res =>{
|
||||||
wx.clearStorageSync();
|
removeToken();
|
||||||
wx.setStorageSync('isReload', "1");
|
wx.clearStorageSync();
|
||||||
setTimeout(()=>{
|
setTimeout(()=>{
|
||||||
wx.redirectTo({
|
wx.redirectTo({
|
||||||
url: '../login/index',
|
url: '../login/login'
|
||||||
});
|
});
|
||||||
},500)
|
},500)
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<view class="left_max">
|
<view class="left_max">
|
||||||
<van-row class="demo clearfix">
|
<van-row class="demo clearfix">
|
||||||
<van-col span="24">
|
<van-col span="24">
|
||||||
<view class="left_info_dept">{{userData.deptName}}</view>
|
<view class="left_info_dept">{{userData.dept?userData.dept.deptName:userData.remark}}</view>
|
||||||
</van-col>
|
</van-col>
|
||||||
<van-col span="10">
|
<van-col span="10">
|
||||||
<view class="left_head">
|
<view class="left_head">
|
||||||
|
@ -16,17 +16,17 @@
|
||||||
<van-col span="14">
|
<van-col span="14">
|
||||||
<view class="left_info">
|
<view class="left_info">
|
||||||
<view class="left_info_name">{{userData.nickName}}</view>
|
<view class="left_info_name">{{userData.nickName}}</view>
|
||||||
<view class="left_info_name">{{userData.loginName}}</view>
|
<view class="left_info_name">{{userData.userName}}</view>
|
||||||
<view wx:if="{{msgOpenId==''}}" class="left_info_name" style="color: #F56C6C;display:flex;font-weight: 600;"><van-icon name="clear" />消息未授权</view>
|
<view wx:if="{{false}}" class="left_info_name" style="color: #F56C6C;display:flex;font-weight: 600;"><van-icon name="clear" />消息未授权</view>
|
||||||
<view wx:if="{{msgOpenId!=''}}" class="left_info_name" style="color: #38cf4c;display:flex;font-weight: 600;"><van-icon name="checked" />消息已授权</view>
|
<view wx:if="{{false}}" class="left_info_name" style="color: #38cf4c;display:flex;font-weight: 600;"><van-icon name="checked" />消息已授权</view>
|
||||||
</view>
|
</view>
|
||||||
</van-col>
|
</van-col>
|
||||||
</van-row>
|
</van-row>
|
||||||
<view class="left_manage_min" wx:if="{{true}}">
|
<view class="left_manage_min" wx:if="{{false}}">
|
||||||
<view class="message-title">关注公众号才能成功开启消息通知</view>
|
<view class="message-title">关注公众号才能成功开启消息通知</view>
|
||||||
</view>
|
</view>
|
||||||
<button wx:if="{{true}}" type="default" size="default" style="margin-top: 40rpx;background-color: #513ea7;color: #FFF;" bindtap="bindingBuild">立即关注公众号</button>
|
<button wx:if="{{false}}" type="default" size="default" style="margin-top: 40rpx;background-color: #513ea7;color: #FFF;" bindtap="bindingBuild">立即关注公众号</button>
|
||||||
<view class="left_manage_min" wx:if="{{true}}">
|
<view class="left_manage_min" wx:if="{{false}}">
|
||||||
<view class="left_manage" bindtap="binding">
|
<view class="left_manage" bindtap="binding">
|
||||||
<image src="/images/img_1.png" class="left_icon"></image>
|
<image src="/images/img_1.png" class="left_icon"></image>
|
||||||
<text class="left_binding">授权消息通知</text>
|
<text class="left_binding">授权消息通知</text>
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
<image src="https://szgcwx.jhncidg.com/staticFiles/img/yanzhu_logo_blue.png"></image>
|
<image src="https://szgcwx.jhncidg.com/staticFiles/img/yanzhu_logo_blue.png"></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="inspect_info">
|
<view class="inspect_info">
|
||||||
<view class="inspect_info_list">
|
<view class="inspect_info_list" wx:if="{{false}}">
|
||||||
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">旧密码</view>
|
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">旧密码</view>
|
||||||
<view class="inspect_info_content">
|
<view class="inspect_info_content">
|
||||||
<input placeholder="请输入旧密码" placeholder-style="color:#6777aa;" class="inspect_input_fill_in" password="{{showOldPass}}" maxlength="20" model:value="{{oldPsw}}" />
|
<input placeholder="请输入旧密码" placeholder-style="color:#6777aa;" class="inspect_input_fill_in" password="{{showOldPass}}" maxlength="20" model:value="{{oldPsw}}" />
|
||||||
|
|
|
@ -1,328 +0,0 @@
|
||||||
import {
|
|
||||||
findAllByCategory
|
|
||||||
} from '../../../api/publics'
|
|
||||||
import {
|
|
||||||
addApplyDetail
|
|
||||||
} from '../../../api/projectApply'
|
|
||||||
const app = getApp()
|
|
||||||
Page({
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 页面的初始数据
|
|
||||||
*/
|
|
||||||
data: {
|
|
||||||
options: {},
|
|
||||||
dataList: [],
|
|
||||||
detailDataList: [],
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面加载
|
|
||||||
*/
|
|
||||||
onLoad(options) {
|
|
||||||
this.setData({
|
|
||||||
options: options,
|
|
||||||
})
|
|
||||||
this.findMyDeptAssetsList();
|
|
||||||
this.newApplyDetail();
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 栏目触发事件
|
|
||||||
*/
|
|
||||||
onClickNav(e) {
|
|
||||||
var index = e.currentTarget.dataset.index
|
|
||||||
let list = this.data.detailDataList;
|
|
||||||
list[index].activeId = null;
|
|
||||||
list[index].mainActiveIndex = e.detail.index;
|
|
||||||
this.setData({
|
|
||||||
detailDataList: list
|
|
||||||
})
|
|
||||||
console.log(e.detail.index, this.data.dataList);
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 选项触发事件
|
|
||||||
*/
|
|
||||||
onClickItem(e) {
|
|
||||||
var index = e.currentTarget.dataset.index
|
|
||||||
let list = this.data.detailDataList;
|
|
||||||
list[index].detailId = e.detail.id;
|
|
||||||
list[index].detailName = e.detail.text;
|
|
||||||
list[index].showDetailsName = e.detail.detailName;
|
|
||||||
if (e.detail.units) {
|
|
||||||
let itemList = [];
|
|
||||||
e.detail.units.split(',').forEach((item, idx) => {
|
|
||||||
if (idx == 0) {
|
|
||||||
list[index].useUnitIndex = idx;
|
|
||||||
list[index].useUnit = item;
|
|
||||||
}
|
|
||||||
itemList.push({
|
|
||||||
id: idx,
|
|
||||||
text: item
|
|
||||||
});
|
|
||||||
});
|
|
||||||
list[index].assetsUnits = itemList;
|
|
||||||
}
|
|
||||||
list[index].activeId = e.detail.id;
|
|
||||||
list[index].showDetailsPopup = false;
|
|
||||||
this.setData({
|
|
||||||
detailDataList: list
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
//新增问题
|
|
||||||
newApplyDetail() {
|
|
||||||
var data = this.data.detailDataList
|
|
||||||
data.push({
|
|
||||||
detailId: '',
|
|
||||||
detailName: '',
|
|
||||||
showDetailsName: '',
|
|
||||||
showDetailsPopup: false,
|
|
||||||
mainActiveIndex: 0,
|
|
||||||
activeId: [],
|
|
||||||
useUnit: "",
|
|
||||||
useUnitIndex: "",
|
|
||||||
assetsUnits: [],
|
|
||||||
applyNumber: "",
|
|
||||||
assetsVersion: "",
|
|
||||||
useReason: ""
|
|
||||||
})
|
|
||||||
this.setData({
|
|
||||||
detailDataList: data
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除申请详情
|
|
||||||
* @param {*} e
|
|
||||||
*/
|
|
||||||
delApplyDetail(e) {
|
|
||||||
var index = e.currentTarget.dataset.index
|
|
||||||
var data = this.data.detailDataList
|
|
||||||
data.splice(index, 1);
|
|
||||||
this.setData({
|
|
||||||
detailDataList: data
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
//保存
|
|
||||||
onSave() {
|
|
||||||
let {
|
|
||||||
detailDataList,
|
|
||||||
} = this.data;
|
|
||||||
//数据效验
|
|
||||||
if (detailDataList.length > 0) {
|
|
||||||
for (let i = 0; i < detailDataList.length; i++) {
|
|
||||||
if (!detailDataList[i].detailId || !detailDataList[i].detailName || detailDataList[i].activeId.length == 0) {
|
|
||||||
app.toast("请选择申请明细!")
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!detailDataList[i].applyNumber) {
|
|
||||||
app.toast("请填写申请数量!")
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!detailDataList[i].useUnit) {
|
|
||||||
app.toast("请选择单位名称!")
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
app.toast("请添加申请明细!")
|
|
||||||
}
|
|
||||||
let that = this;
|
|
||||||
wx.showModal({
|
|
||||||
title: '提示',
|
|
||||||
content: '是否确认添加申请内容?',
|
|
||||||
success: function (sm) {
|
|
||||||
if (sm.confirm) {
|
|
||||||
that.submit()
|
|
||||||
} else if (sm.cancel) {
|
|
||||||
console.log('用户点击取消');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
submit() {
|
|
||||||
let {
|
|
||||||
options,
|
|
||||||
detailDataList,
|
|
||||||
dataList
|
|
||||||
} = this.data;
|
|
||||||
let applyDetailList = [];
|
|
||||||
detailDataList.forEach(detail => {
|
|
||||||
applyDetailList.push({
|
|
||||||
superTypeKey: options.applyType,
|
|
||||||
typeId: dataList[detail.mainActiveIndex].id,
|
|
||||||
typeName: dataList[detail.mainActiveIndex].name,
|
|
||||||
assetsId: detail.detailId,
|
|
||||||
assetsName: detail.detailName,
|
|
||||||
number: detail.applyNumber,
|
|
||||||
assetsUnit: detail.useUnit,
|
|
||||||
assetsVersion: detail.assetsVersion,
|
|
||||||
useReason: detail.useReason,
|
|
||||||
pushType:3,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
let params = {
|
|
||||||
id: options.id,
|
|
||||||
proProjectApplyDetailList: applyDetailList
|
|
||||||
}
|
|
||||||
addApplyDetail(params).then(res => {
|
|
||||||
if (res.code == '200') {
|
|
||||||
app.toast("添加申请内容成功!", 'success');
|
|
||||||
//跳转页面
|
|
||||||
wx.redirectTo({
|
|
||||||
url: '../info/index?businessKey='+this.data.options.id,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
//查询部门资产列表信息
|
|
||||||
findMyDeptAssetsList() {
|
|
||||||
findAllByCategory(this.data.options.applyType).then(res => {
|
|
||||||
if (res.code == '200') {
|
|
||||||
let list = [];
|
|
||||||
res.data.forEach(item => {
|
|
||||||
let children = [];
|
|
||||||
item.childrenAssetsTypeList.forEach(child => {
|
|
||||||
children.push({
|
|
||||||
id: child.id,
|
|
||||||
text: child.name,
|
|
||||||
units: child.unit,
|
|
||||||
detailName: item.name + ' > ' + child.name
|
|
||||||
});
|
|
||||||
})
|
|
||||||
list.push({
|
|
||||||
id: item.id,
|
|
||||||
text: item.name,
|
|
||||||
children: children
|
|
||||||
});
|
|
||||||
});
|
|
||||||
this.setData({
|
|
||||||
dataList: list
|
|
||||||
})
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
//输入申请数量
|
|
||||||
onInputNumber(e) {
|
|
||||||
var index = e.currentTarget.dataset.index
|
|
||||||
let list = this.data.detailDataList;
|
|
||||||
let value = e.detail.value;
|
|
||||||
list[index].applyNumber = value;
|
|
||||||
this.setData({
|
|
||||||
detailDataList: list
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
//选择资产单位
|
|
||||||
onSelectUnit(e) {
|
|
||||||
var index = e.currentTarget.dataset.index
|
|
||||||
let list = this.data.detailDataList;
|
|
||||||
list[index].useUnit = e.detail.text;
|
|
||||||
list[index].useUnitIndex = e.detail.id;
|
|
||||||
this.setData({
|
|
||||||
detailDataList: list
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
//输入规格型号
|
|
||||||
onInputVersion(e) {
|
|
||||||
var index = e.currentTarget.dataset.index
|
|
||||||
let list = this.data.detailDataList;
|
|
||||||
list[index].assetsVersion = e.detail.value;
|
|
||||||
this.setData({
|
|
||||||
detailDataList: list
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
//输入使用说明
|
|
||||||
onInputUseReason(e) {
|
|
||||||
var index = e.currentTarget.dataset.index
|
|
||||||
let list = this.data.detailDataList;
|
|
||||||
list[index].useReason = e.detail.value;
|
|
||||||
this.setData({
|
|
||||||
detailDataList: list
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
//关闭申请明细选择
|
|
||||||
onShowPopup(e) {
|
|
||||||
var index = e.currentTarget.dataset.index
|
|
||||||
let list = this.data.detailDataList;
|
|
||||||
list[index].showDetailsPopup = true;
|
|
||||||
this.setData({
|
|
||||||
detailDataList: list
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
//关闭申请明细选择
|
|
||||||
onClosePopup(e) {
|
|
||||||
var index = e.currentTarget.dataset.index
|
|
||||||
let list = this.data.detailDataList;
|
|
||||||
list[index].showDetailsPopup = false;
|
|
||||||
this.setData({
|
|
||||||
detailDataList: list
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
returnToPage: function () {
|
|
||||||
/*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/
|
|
||||||
wx.redirectTo({
|
|
||||||
url: '../info/index?businessKey='+this.data.options.id,
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面初次渲染完成
|
|
||||||
*/
|
|
||||||
onReady() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面显示
|
|
||||||
*/
|
|
||||||
onShow() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面隐藏
|
|
||||||
*/
|
|
||||||
onHide() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面卸载
|
|
||||||
*/
|
|
||||||
onUnload() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 页面相关事件处理函数--监听用户下拉动作
|
|
||||||
*/
|
|
||||||
onPullDownRefresh() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 页面上拉触底事件的处理函数
|
|
||||||
*/
|
|
||||||
onReachBottom() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户点击右上角分享
|
|
||||||
*/
|
|
||||||
onShareAppMessage() {
|
|
||||||
|
|
||||||
}
|
|
||||||
})
|
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
"usingComponents": {
|
|
||||||
"van-popup": "@vant/weapp/popup",
|
|
||||||
"van-tree-select": "@vant/weapp/tree-select/index"
|
|
||||||
},
|
|
||||||
"navigationStyle":"custom"
|
|
||||||
}
|
|
|
@ -1,59 +0,0 @@
|
||||||
<wxs module="format" src="/utils/format.wxs"></wxs>
|
|
||||||
<view class="header_title">
|
|
||||||
<view class="header_title_row">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="4">
|
|
||||||
<view class="header_img" bindtap="returnToPage">
|
|
||||||
<image src="/images/left.png"></image>
|
|
||||||
</view>
|
|
||||||
</van-col>
|
|
||||||
<van-col span="16">
|
|
||||||
<view class="header_name">新增申请明细</view>
|
|
||||||
</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="max_content">
|
|
||||||
<view class="inspect_info" wx:for="{{detailDataList}}" wx:key="index">
|
|
||||||
<view class="module_title module_title_flex">
|
|
||||||
<view class="text_active">申请明细 {{ format.indexNumFormat(index) }}</view>
|
|
||||||
<view class="module_see_info_delete" wx:if="{{index != 0}}" bindtap="delApplyDetail" data-index="{{index}}">
|
|
||||||
<van-icon name="delete" /> 删除
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_info_list">
|
|
||||||
<input placeholder="请选择申请明细" placeholder-style="color:#6777aa;" class="inspect_input_fill_in" value="{{item.showDetailsName}}" data-index="{{index}}" bindtap="onShowPopup" disabled="disabled" />
|
|
||||||
<van-popup show="{{ item.showDetailsPopup }}" data-index="{{index}}" bind:close="onClosePopup" position="bottom" round="5">
|
|
||||||
<van-tree-select items="{{ dataList }}" main-active-index="{{ item.mainActiveIndex }}" active-id="{{ item.activeId }}" data-index="{{index}}" bind:click-nav="onClickNav" bind:click-item="onClickItem">
|
|
||||||
</van-tree-select>
|
|
||||||
</van-popup>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_info_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="12">
|
|
||||||
<input type="number" placeholder="填写申请数量" placeholder-style="color:#6777aa;" class="inspect_input_fill_in" data-index="{{index}}" bindinput="onInputNumber" />
|
|
||||||
</van-col>
|
|
||||||
<van-col span="12">
|
|
||||||
<voucher-select columns="{{item.assetsUnits}}" placeholder="选择单位名称" selectValue="{{item.useUnitIndex}}" data-index="{{index}}" bindchange="onSelectUnit"></voucher-select>
|
|
||||||
</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_info_list" wx:if="{{options.category=='wzl'}}">
|
|
||||||
<input placeholder="请填写规格型号" placeholder-style="color:#6777aa;" class="inspect_input_fill_in" value="{{item.assetsVersion}}" bindinput="onInputVersion" data-index="{{index}}" maxlength="32" />
|
|
||||||
</view>
|
|
||||||
<view class="inspect_info_list">
|
|
||||||
<textarea placeholder="请填写使用说明(500字内)" placeholder-style="color:#6777aa;" class="add_textarea" value="{{item.useReason}}" bindinput="onInputUseReason" data-index="{{index}}" maxlength="500" />
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="inspect_new_issues_max">
|
|
||||||
<view class="inspect_new_issues" bindtap="newApplyDetail">
|
|
||||||
<van-icon name="add-o" style="position: relative;top:5rpx;font-size: 30rpx;" /> 添加申请明细
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="problem_submit_to">
|
|
||||||
<view class="problem_submit_to_btn" bindtap="returnToPage">取消</view>
|
|
||||||
<view class="problem_submit_to_btn problem_submit_to_save" bindtap="onSave">提交申请</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
|
@ -1,110 +0,0 @@
|
||||||
.van-popup{
|
|
||||||
background: none !important;
|
|
||||||
}
|
|
||||||
.van-image__img{
|
|
||||||
border-radius: 10rpx !important;
|
|
||||||
}
|
|
||||||
.radio_custom_class{
|
|
||||||
padding: 10rpx 100rpx 10rpx 0;
|
|
||||||
}
|
|
||||||
.radio_label_class{
|
|
||||||
color: #ffffff !important;
|
|
||||||
}
|
|
||||||
.max_tab_name{
|
|
||||||
padding: 0 40rpx;
|
|
||||||
font-size:30rpx;
|
|
||||||
height: 460rpx;
|
|
||||||
overflow: auto;
|
|
||||||
margin-top: 20rpx;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.van-popup.van-popup--bottom{
|
|
||||||
background: #232a44;
|
|
||||||
}
|
|
||||||
.van-popup {
|
|
||||||
background-color: var(--popup-background-color,#232a44) !important;
|
|
||||||
}
|
|
||||||
.font_color{
|
|
||||||
padding: 15rpx 0;
|
|
||||||
color: #157dd2;
|
|
||||||
}
|
|
||||||
.active{
|
|
||||||
font-size:30rpx;
|
|
||||||
font-weight: 600;
|
|
||||||
color: #14feff
|
|
||||||
}
|
|
||||||
.van-collapse.van-hairline--top-bottom:after{
|
|
||||||
border-width: 0px 0;
|
|
||||||
}
|
|
||||||
.van-cell.van-cell--borderless{
|
|
||||||
background-color: #2b345b;
|
|
||||||
color: #fff;
|
|
||||||
margin-top: 30rpx;
|
|
||||||
border-radius: 5rpx;
|
|
||||||
}
|
|
||||||
.van-cell.van-cell--borderless:active{
|
|
||||||
background-color: #2b345b;
|
|
||||||
}
|
|
||||||
.van-collapse-item__title.van-collapse-item__title--expanded:active{
|
|
||||||
background-color: #2b345b;
|
|
||||||
}
|
|
||||||
.van-collapse-item .van-cell:after{
|
|
||||||
border-bottom: 0;
|
|
||||||
}
|
|
||||||
.van-collapse-item.van-hairline--top:after{
|
|
||||||
border-top-width:0
|
|
||||||
}
|
|
||||||
.van-cell.van-cell--clickable{
|
|
||||||
background-color: #2b345b;
|
|
||||||
margin-top: 30rpx;
|
|
||||||
color: #fff;
|
|
||||||
border-radius: 15rpx;
|
|
||||||
|
|
||||||
}
|
|
||||||
.van-cell.van-cell--clickable:active{
|
|
||||||
background-color: #2b345b;
|
|
||||||
}
|
|
||||||
.van-collapse-item__wrapper .van-collapse-item__content{
|
|
||||||
background-color: #1e2336;
|
|
||||||
color:#8ca4ec ;
|
|
||||||
border-width: 0px 0;
|
|
||||||
}
|
|
||||||
.text_active{
|
|
||||||
padding-left: 5rpx;
|
|
||||||
color: #8369f5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.van-steps{
|
|
||||||
background-color: transparent !important;
|
|
||||||
}
|
|
||||||
.van-step--horizontal .van-step__circle-container{
|
|
||||||
background-color: transparent !important;
|
|
||||||
}
|
|
||||||
.van-steps--horizontal{
|
|
||||||
padding: 10px 20px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.van-sidebar{
|
|
||||||
background-color: #212737!important;
|
|
||||||
}
|
|
||||||
.van-sidebar-item{
|
|
||||||
color: #EFEFEF!important;
|
|
||||||
background-color: #212737!important;
|
|
||||||
}
|
|
||||||
.van-sidebar-item--selected{
|
|
||||||
border-color:var(--sidebar-selected-border-color,#8369f5)!important;
|
|
||||||
background-color: #252d41 !important;
|
|
||||||
color: #83a5ef !important;
|
|
||||||
}
|
|
||||||
.van-tree-select__content{
|
|
||||||
background-color:#252d41 !important;
|
|
||||||
}
|
|
||||||
.van-tree-select__item--active {
|
|
||||||
color: var(--tree-select-item-active-color,#8369f5) !important;
|
|
||||||
}
|
|
||||||
.van-tree-select{
|
|
||||||
height: 800rpx !important;
|
|
||||||
}
|
|
||||||
.van-popup.van-popup--bottom {
|
|
||||||
margin-bottom: -55rpx !important;
|
|
||||||
}
|
|
|
@ -1,429 +0,0 @@
|
||||||
import {
|
|
||||||
allInstanceList,
|
|
||||||
readDeployNotes,
|
|
||||||
findCommentByProcInsId
|
|
||||||
} from '../../../api/flowable'
|
|
||||||
import {
|
|
||||||
createQr,
|
|
||||||
editApplyChecked,
|
|
||||||
addApplyDetailCheck,
|
|
||||||
findApplyDetailAllCheck
|
|
||||||
} from '../../../api/projectApply'
|
|
||||||
import {
|
|
||||||
findProjectApplyData
|
|
||||||
} from '../../../api/publics'
|
|
||||||
import config from '../../../config'
|
|
||||||
const app = getApp()
|
|
||||||
Page({
|
|
||||||
/**
|
|
||||||
* 页面的初始数据
|
|
||||||
*/
|
|
||||||
data: {
|
|
||||||
options: {},
|
|
||||||
active: 100,
|
|
||||||
stepList: [],
|
|
||||||
activeName: "",
|
|
||||||
flowRecordList: [],
|
|
||||||
infoData: {},
|
|
||||||
fileNames: [],
|
|
||||||
minImageList: [],
|
|
||||||
imgTypes: ["png", "jpg", "jpeg"],
|
|
||||||
stopBtnShow: false,
|
|
||||||
popupShow: false,
|
|
||||||
actIdx: 0,
|
|
||||||
popupId: null,
|
|
||||||
popupUnit: "吨",
|
|
||||||
popupNumber: "",
|
|
||||||
popupPrices: "",
|
|
||||||
baseUrl: config.baseUrl,
|
|
||||||
popupViewShow: false,
|
|
||||||
checkDirection: "vertical",
|
|
||||||
checkStepList:[],
|
|
||||||
isCheckRole: false
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面加载
|
|
||||||
*/
|
|
||||||
onLoad(options) {
|
|
||||||
let roles = app.globalData.userData.roles;
|
|
||||||
if(roles!=null && roles.length>0){
|
|
||||||
roles.forEach(role =>{
|
|
||||||
if(role.roleId==88){
|
|
||||||
this.setData({
|
|
||||||
isCheckRole: true,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
allInstanceList({
|
|
||||||
'businessKey': options.businessKey
|
|
||||||
}).then(res => {
|
|
||||||
this.setData({
|
|
||||||
options: res.rows[0]
|
|
||||||
})
|
|
||||||
this.findFlowNodes();
|
|
||||||
this.findCommentByProcInsId();
|
|
||||||
});
|
|
||||||
this.findApplyDataInfo(options.businessKey);
|
|
||||||
},
|
|
||||||
|
|
||||||
//查询工作流节点
|
|
||||||
findFlowNodes() {
|
|
||||||
readDeployNotes(this.data.options.deployId).then(res => {
|
|
||||||
let list = [{
|
|
||||||
text: '开始'
|
|
||||||
}];
|
|
||||||
res.data.forEach((item, idx) => {
|
|
||||||
list.push({
|
|
||||||
text: item.name,
|
|
||||||
desc: ''
|
|
||||||
});
|
|
||||||
});
|
|
||||||
list.push({
|
|
||||||
text: '结束'
|
|
||||||
});
|
|
||||||
this.setData({
|
|
||||||
stepList: list
|
|
||||||
})
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
//查询审批日志
|
|
||||||
findCommentByProcInsId() {
|
|
||||||
findCommentByProcInsId({
|
|
||||||
procInsId: this.data.options.procInsId
|
|
||||||
}).then(res => {
|
|
||||||
this.setData({
|
|
||||||
flowRecordList: res.data
|
|
||||||
})
|
|
||||||
let list = [];
|
|
||||||
res.data.forEach((item, idx) => {
|
|
||||||
if (item.deleteReason) {
|
|
||||||
item.deleteReason = this.getDeleteReason(item.deleteReason);
|
|
||||||
}
|
|
||||||
if (item.duration) {
|
|
||||||
item.duration = app.getDurationDate(item.duration);
|
|
||||||
}
|
|
||||||
list.push(item);
|
|
||||||
})
|
|
||||||
this.setData({
|
|
||||||
flowRecordList: list
|
|
||||||
})
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
//查询审批表单参数
|
|
||||||
findApplyDataInfo(businessKey) {
|
|
||||||
findProjectApplyData(businessKey).then(res => {
|
|
||||||
let imgList = [];
|
|
||||||
let fileNames = [];
|
|
||||||
if (res.data.applyFiles) {
|
|
||||||
res.data.applyFiles.split(',').forEach(files => {
|
|
||||||
let fileType = files.split(".")[files.split(".").length - 1].toLowerCase();
|
|
||||||
if (this.data.imgTypes.indexOf(fileType) == -1) {
|
|
||||||
let it = files.split('/');
|
|
||||||
fileNames.push({
|
|
||||||
name: it[it.length - 1],
|
|
||||||
path: files
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
imgList.push({
|
|
||||||
murl: config.baseUrl + files + '.min.jpg',
|
|
||||||
path: files
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
this.setData({
|
|
||||||
infoData: res.data,
|
|
||||||
fileNames: fileNames,
|
|
||||||
minImageList: imgList
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
// 手风琴
|
|
||||||
onChange(event) {
|
|
||||||
this.setData({
|
|
||||||
activeName: event.detail,
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取驳回节点
|
|
||||||
* @param {*} val
|
|
||||||
*/
|
|
||||||
getDeleteReason(val) {
|
|
||||||
val = val.replace("Change activity to ", "");
|
|
||||||
let flowRecordList = this.data.flowRecordList;
|
|
||||||
for (let i = 0; i < flowRecordList.length; i++) {
|
|
||||||
if (flowRecordList[i].taskDefKey == val) {
|
|
||||||
return "驳回至" + flowRecordList[i].taskName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 下载并打开文档
|
|
||||||
* @param {*} e
|
|
||||||
*/
|
|
||||||
downFile: function (e) {
|
|
||||||
let {
|
|
||||||
path
|
|
||||||
} = e.currentTarget.dataset.set
|
|
||||||
wx.downloadFile({
|
|
||||||
// 示例 url,并非真实存在
|
|
||||||
url: config.baseUrl + '/common/download/resource?resource=' + path,
|
|
||||||
success: function (res) {
|
|
||||||
const filePath = res.tempFilePath
|
|
||||||
let fpt = filePath.split(".");
|
|
||||||
wx.openDocument({
|
|
||||||
filePath: filePath,
|
|
||||||
fileType: fpt[fpt.length - 1],
|
|
||||||
success: function (res) {
|
|
||||||
console.log('打开文档成功')
|
|
||||||
},
|
|
||||||
fail: function (res) {
|
|
||||||
console.log(res)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
//选择退回节点
|
|
||||||
onSelectTargetKey(e) {
|
|
||||||
this.setData({
|
|
||||||
targetKey: e.detail.id,
|
|
||||||
backName: e.detail.name
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
returnToPage: function () {
|
|
||||||
/*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/
|
|
||||||
wx.redirectTo({
|
|
||||||
url: '../list/index',
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
createQrSub(){
|
|
||||||
createQr(this.data.options.businessKey).then(res =>{
|
|
||||||
if(res.code==200){
|
|
||||||
this.setData({
|
|
||||||
"infoData.qrPath": res.data.qrPath
|
|
||||||
})
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 左侧抽屉显示
|
|
||||||
*/
|
|
||||||
showPopup(e) {
|
|
||||||
let index = e.currentTarget.dataset.index
|
|
||||||
this.setData({
|
|
||||||
actIdx: index,
|
|
||||||
popupId: this.data.infoData.proProjectApplyDetailList[index].id,
|
|
||||||
popupUnit: this.data.infoData.proProjectApplyDetailList[index].assetsUnit,
|
|
||||||
popupShow: true
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 左侧抽屉隐藏
|
|
||||||
*/
|
|
||||||
onClosePopup() {
|
|
||||||
this.setData({
|
|
||||||
popupShow: false
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 左侧抽屉显示
|
|
||||||
*/
|
|
||||||
showViewPopup(e) {
|
|
||||||
let index = e.currentTarget.dataset.index
|
|
||||||
let unit = this.data.infoData.proProjectApplyDetailList[index].assetsUnit;
|
|
||||||
let detailId = this.data.infoData.proProjectApplyDetailList[index].id;
|
|
||||||
findApplyDetailAllCheck(detailId).then(res =>{
|
|
||||||
let list = [];
|
|
||||||
res.data.forEach(item =>{
|
|
||||||
let desc = "【"+item.createBy+"】 验收"+item.checkValue+" "+unit+",单价 "+item.checkPrice;
|
|
||||||
list.push({text: item.createTime, desc: desc })
|
|
||||||
});
|
|
||||||
this.setData({
|
|
||||||
popupViewShow: true,
|
|
||||||
checkStepList: list,
|
|
||||||
});
|
|
||||||
})
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 左侧抽屉隐藏
|
|
||||||
*/
|
|
||||||
onCloseViewPopup() {
|
|
||||||
this.setData({
|
|
||||||
popupViewShow: false
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
//展示图片
|
|
||||||
showImg:function(e){
|
|
||||||
let paths = e.target.dataset.set;
|
|
||||||
let path = [];
|
|
||||||
paths.split(',').forEach(url => {
|
|
||||||
path.push(config.baseUrl + url);
|
|
||||||
});
|
|
||||||
wx.previewImage({
|
|
||||||
urls: path,
|
|
||||||
current: path[0]
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 添加验收信息
|
|
||||||
*/
|
|
||||||
onAddChecked() {
|
|
||||||
let {
|
|
||||||
popupId,
|
|
||||||
popupNumber,
|
|
||||||
popupPrices
|
|
||||||
} = this.data;
|
|
||||||
if (!popupId) {
|
|
||||||
app.toast("数据异常,请刷新页面重试!")
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!popupNumber) {
|
|
||||||
app.toast("请填写验收数量!")
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!popupPrices) {
|
|
||||||
app.toast("请填写验收单价!")
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
addApplyDetailCheck({'detailId':popupId,'checkValue':popupNumber,'checkPrice':popupPrices}).then(res =>{
|
|
||||||
if(res.code==200){
|
|
||||||
// let da = this.data.infoData;
|
|
||||||
// da.proProjectApplyDetailList[this.data.actIdx].isChecked==1;
|
|
||||||
// da.proProjectApplyDetailList[this.data.actIdx].checkedTotalValue = parseFloat(da.proProjectApplyDetailList[this.data.actIdx].checkedTotalValue)+parseFloat(popupNumber);
|
|
||||||
// this.setData({
|
|
||||||
// popupShow: false,
|
|
||||||
// infoData:da,
|
|
||||||
// popupNumber:"",
|
|
||||||
// popupPrices:"",
|
|
||||||
// });
|
|
||||||
this.setData({
|
|
||||||
popupNumber:"",
|
|
||||||
popupPrices:"",
|
|
||||||
popupShow: false
|
|
||||||
});
|
|
||||||
this.onLoad({'businessKey':this.data.options.businessKey});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
//保存验收结果
|
|
||||||
onCheckedSave(){
|
|
||||||
for(let i=0;i<this.data.infoData.proProjectApplyDetailList.length;i++){
|
|
||||||
if(this.data.infoData.proProjectApplyDetailList[i].isChecked==0){
|
|
||||||
app.toast(this.data.infoData.proProjectApplyDetailList[i].assetsName+" 还未验收完成!")
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let that = this;
|
|
||||||
wx.showModal({
|
|
||||||
title: '提示',
|
|
||||||
content: '是否确定全部验收完成?',
|
|
||||||
success: function (sm) {
|
|
||||||
if (sm.confirm) {
|
|
||||||
that.submit();
|
|
||||||
} else if (sm.cancel) {
|
|
||||||
console.log('用户点击取消');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
submit(){
|
|
||||||
editApplyChecked({'id':this.data.options.businessKey,'applyStatus':"100"}).then(res=>{
|
|
||||||
if(res.code==200){
|
|
||||||
wx.redirectTo({
|
|
||||||
url: '../list/index',
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
//输入验收数量
|
|
||||||
onInputCheckNumber(e) {
|
|
||||||
let value = e.detail.value;
|
|
||||||
this.setData({
|
|
||||||
popupNumber: value
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
//输入验收单价
|
|
||||||
onInputCheckPrices(e) {
|
|
||||||
let value = e.detail.value;
|
|
||||||
this.setData({
|
|
||||||
popupPrices: value
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
onAddDetail(){
|
|
||||||
wx.redirectTo({
|
|
||||||
url: '../edit/index?id='+this.data.infoData.id+"&applyType="+this.data.infoData.applyType,
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面初次渲染完成
|
|
||||||
*/
|
|
||||||
onReady() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面显示
|
|
||||||
*/
|
|
||||||
onShow() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面隐藏
|
|
||||||
*/
|
|
||||||
onHide() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面卸载
|
|
||||||
*/
|
|
||||||
onUnload() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 页面相关事件处理函数--监听用户下拉动作
|
|
||||||
*/
|
|
||||||
onPullDownRefresh() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 页面上拉触底事件的处理函数
|
|
||||||
*/
|
|
||||||
onReachBottom() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户点击右上角分享
|
|
||||||
*/
|
|
||||||
onShareAppMessage() {
|
|
||||||
|
|
||||||
}
|
|
||||||
})
|
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"usingComponents": {
|
|
||||||
"van-collapse": "@vant/weapp/collapse",
|
|
||||||
"van-collapse-item": "@vant/weapp/collapse-item",
|
|
||||||
"van-steps": "@vant/weapp/steps/index",
|
|
||||||
"van-popup": "@vant/weapp/popup/index"
|
|
||||||
},
|
|
||||||
"navigationStyle":"custom"
|
|
||||||
}
|
|
|
@ -1,222 +0,0 @@
|
||||||
<wxs module="format" src="/utils/format.wxs"></wxs>
|
|
||||||
<view class="header_title">
|
|
||||||
<view class="header_title_row">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="4">
|
|
||||||
<view class="header_img" bindtap="returnToPage">
|
|
||||||
<image src="/images/left.png"></image>
|
|
||||||
</view>
|
|
||||||
</van-col>
|
|
||||||
<van-col span="16">
|
|
||||||
<view class="header_name">进场验收详情</view>
|
|
||||||
</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="max_content">
|
|
||||||
<van-steps steps="{{ stepList }}" active="{{ active }}" />
|
|
||||||
<view class="inspect_overview inspect_overview_max">
|
|
||||||
<view class="gk_open" style="margin-top: 20rpx;border: 1px solid transparent;">
|
|
||||||
<van-collapse value="{{activeName}}" bind:change="onChange">
|
|
||||||
<van-collapse-item title="审批日志" name="2">
|
|
||||||
<view class="inspect_list">
|
|
||||||
<view class="inspect_for" wx:for="{{flowRecordList}}" wx:key="index">
|
|
||||||
<view class="inspect_for_bgd">
|
|
||||||
<view class="inspect_list_title">
|
|
||||||
<view class="inspect_list_title_label inspect_list_title_width">
|
|
||||||
<view class="inspect_list_title_number">{{(flowRecordList.length-index) < 9 ?'0'+(flowRecordList.length-index):(flowRecordList.length-index)}}</view>
|
|
||||||
<view class="module_title module_title_flex inspect_list_title_text">{{item.taskName}}{{item.commentResult}}
|
|
||||||
<text wx:if="{{item.commentResult=='通过'}}" class="timeline_for_state_1 color_green">{{item.commentResult}}</text>
|
|
||||||
<text wx:if="{{item.commentResult=='驳回'}}" class="timeline_for_state_2 color_purple">{{item.commentResult}}</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_list_info gk_open_con">
|
|
||||||
<view wx:if="{{item.assigneeName}}">
|
|
||||||
<image src="/images/lw_3.png"></image>办理用户:<text>{{item.assigneeName}}</text>
|
|
||||||
</view>
|
|
||||||
<view wx:if="{{item.assigneeName}}">
|
|
||||||
<image src="/images/s_1.png"></image>办理单位:<text class="color_blue">{{item.deptName}}</text>
|
|
||||||
</view>
|
|
||||||
<view wx:if="{{item.candidate}}">
|
|
||||||
<image src="/images/s_2.png"></image>候选办理:<text>{{item.candidate}}</text>
|
|
||||||
</view>
|
|
||||||
<view wx:if="{{item.deleteReason}}">
|
|
||||||
<image src="/images/s_18.png"></image>驳回节点:<text>{{item.deleteReason}}</text>
|
|
||||||
</view>
|
|
||||||
<view>
|
|
||||||
<image src="/images/s_6.png"></image>接收时间:<text>{{item.startTime}}</text>
|
|
||||||
</view>
|
|
||||||
<view wx:if="{{item.endTime}}">
|
|
||||||
<image src="/images/lw_8.png"></image>处理时间:<text>{{item.endTime}}</text>
|
|
||||||
</view>
|
|
||||||
<view wx:if="{{item.duration}}">
|
|
||||||
<image src="/images/img_11.png"></image>处理耗时:<text>{{item.duration}}</text>
|
|
||||||
</view>
|
|
||||||
<view wx:if="{{item.message}}">
|
|
||||||
<image src="/images/s_7.png"></image>处理意见:<text>{{item.message}}</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</van-collapse-item>
|
|
||||||
</van-collapse>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="problem_submit_to">
|
|
||||||
<view wx:if="{{!infoData.qrPath}}" class="problem_submit_to_btn problem_submit_to_warning" bindtap="createQrSub">生成二维码</view>
|
|
||||||
<image wx:if="{{infoData.qrPath}}" src="{{baseUrl+infoData.qrPath}}" bindtap='showImg' data-set="{{infoData.qrPath}}"></image>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="echarts_max">
|
|
||||||
<view class="echarts_min">
|
|
||||||
<view class="eharts_title module_title_flex">
|
|
||||||
申请信息
|
|
||||||
</view>
|
|
||||||
<view class="inspect_info">
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">临建项目</text></van-col>
|
|
||||||
<van-col span="18" class="color_orange">{{ options.projectName||options.businessKeyName }}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">使用单位</text></van-col>
|
|
||||||
<van-col span="18" class="color_blue">{{infoData.createByDeptName}}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">使用时间</text></van-col>
|
|
||||||
<van-col span="18">{{infoData.useTime}}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">申请原因</text></van-col>
|
|
||||||
<van-col span="18">{{infoData.applyReason}}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list" wx:if="{{minImageList.length>0 || fileNames.length>0}}">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">申请附件</text></van-col>
|
|
||||||
<view class="problem_list_info_con in-img-max" wx:if="{{minImageList.length>0}}">
|
|
||||||
<view class="in-img-div" wx:for="{{minImageList}}" wx:key="index">
|
|
||||||
<image bindtap='showImg' data-set="{{item.path}}" src='{{item.murl}}'></image>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<van-col span="18" class="color_blue" wx:if="{{fileNames.length>0}}">
|
|
||||||
<view class="files" wx:for="{{fileNames}}" wx:key="index">
|
|
||||||
<text data-set="{{item}}" style="word-wrap: break-word;" bindtap='downFile'>{{item.name}}</text>
|
|
||||||
</view>
|
|
||||||
</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple"> 申 请 人 </text></van-col>
|
|
||||||
<van-col span="18">{{infoData.createBy}}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">申请时间</text></van-col>
|
|
||||||
<van-col span="18">{{infoData.createTime}}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="echarts_max" wx:for="{{infoData.proProjectApplyDetailList}}" wx:key="index">
|
|
||||||
<view class="echarts_min">
|
|
||||||
<view class="eharts_title module_title_flex">
|
|
||||||
申请明细 {{ format.indexNumFormat(index) }}
|
|
||||||
<view class="module_see_info" bindtap="showViewPopup" data-index="{{index}}">查看验收
|
|
||||||
<van-icon name="arrow" />
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_info" >
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">申请明细</text></van-col>
|
|
||||||
<van-col span="18">{{item.typeName + ' > '+ item.assetsName }}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">申请数量</text></van-col>
|
|
||||||
<van-col span="18">{{item.number + ' '+ item.assetsUnit }}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list" wx:if="{{item.assetsVersion}}">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">规格型号</text></van-col>
|
|
||||||
<van-col span="18">{{item.assetsVersion }}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list" wx:if="{{item.assetsVersion}}">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">使用说明</text></van-col>
|
|
||||||
<van-col span="18">{{ item.useReason }}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">验收数量</text></van-col>
|
|
||||||
<van-col span="18" class="safety_issue_number">{{ item.checkedTotalValue }}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="problem_submit_to_view" wx:if="{{isCheckRole && infoData.applyStatus!='100'}}">
|
|
||||||
<view class="problem_submit_to_view_btn problem_submit_to_view_blue" bindtap="showPopup" data-index="{{index}}">添加验收</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<!-- 添加验收信息 -->
|
|
||||||
<van-popup show="{{ popupShow }}" position="bottom" custom-style="width:100%;height:45%;background:#191d28" bind:close="onClosePopup">
|
|
||||||
<view class="inspect_info">
|
|
||||||
<view class="inspect_info_list">
|
|
||||||
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">实际到货
|
|
||||||
<text style="font-size: small; color: antiquewhite;">[{{popupUnit}}]</text>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_info_content">
|
|
||||||
<input type="number" placeholder="请填写到货数量" placeholder-style="color:#6777aa;" class="inspect_input_fill_in" bindinput="onInputCheckNumber" value="{{popupNumber}}"/>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_info_list">
|
|
||||||
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">采购单价
|
|
||||||
<text style="font-size: small; color: antiquewhite;">[元]</text>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_info_content">
|
|
||||||
<input type="number" placeholder="请填写采购单价" placeholder-style="color:#6777aa;" class="inspect_input_fill_in" bindinput="onInputCheckPrices" value="{{popupPrices}}"/>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="problem_submit_to">
|
|
||||||
<view class="problem_submit_to_btn problem_submit_to_save" bindtap="onAddChecked">确认添加验收</view>
|
|
||||||
</view>
|
|
||||||
</van-popup>
|
|
||||||
|
|
||||||
<!-- 查看验收信息 -->
|
|
||||||
<van-popup show="{{ popupViewShow }}" position="bottom" custom-style="width:100%;height:50%;background:#191d28" bind:close="onCloseViewPopup">
|
|
||||||
<view wx:if="{{checkStepList.length>0}}" class="inspect_info_2" >
|
|
||||||
<van-steps direction="vertical" steps="{{ checkStepList }}" active="{{ active }}"/>
|
|
||||||
</view>
|
|
||||||
<view wx:else class="inspect_info_2" >
|
|
||||||
<view style="padding-top: 28px;text-align: -webkit-center;">
|
|
||||||
<image src="/images/nodata.png" style="width: 130px;height: 105px;"></image>
|
|
||||||
<view style="color: #a5abbb;">暂无数据</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</van-popup>
|
|
||||||
|
|
||||||
<view class="problem_submit_to" wx:if="{{isCheckRole && infoData.applyStatus!='100'}}">
|
|
||||||
<view class="problem_submit_to_btn problem_submit_to_warning" bindtap="onAddDetail">添加申请明细</view>
|
|
||||||
<view class="problem_submit_to_btn problem_submit_to_save" bindtap="onCheckedSave">验收完成</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
|
@ -1,169 +0,0 @@
|
||||||
.van-popup{
|
|
||||||
background: none !important;
|
|
||||||
}
|
|
||||||
.van-image__img{
|
|
||||||
border-radius: 10rpx !important;
|
|
||||||
}
|
|
||||||
.radio_custom_class{
|
|
||||||
padding: 10rpx 100rpx 10rpx 0;
|
|
||||||
}
|
|
||||||
.radio_label_class{
|
|
||||||
color: #ffffff !important;
|
|
||||||
}
|
|
||||||
.max_tab_name{
|
|
||||||
padding: 0 40rpx;
|
|
||||||
font-size:30rpx;
|
|
||||||
height: 460rpx;
|
|
||||||
overflow: auto;
|
|
||||||
margin-top: 20rpx;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.van-popup.van-popup--bottom{
|
|
||||||
background: #232a44;
|
|
||||||
}
|
|
||||||
.van-popup {
|
|
||||||
background-color: var(--popup-background-color,#232a44) !important;
|
|
||||||
}
|
|
||||||
.font_color{
|
|
||||||
padding: 15rpx 0;
|
|
||||||
color: #157dd2;
|
|
||||||
}
|
|
||||||
.active{
|
|
||||||
font-size:30rpx;
|
|
||||||
font-weight: 600;
|
|
||||||
color: #14feff
|
|
||||||
}
|
|
||||||
.van-collapse.van-hairline--top-bottom:after{
|
|
||||||
border-width: 0px 0;
|
|
||||||
}
|
|
||||||
.van-cell.van-cell--borderless{
|
|
||||||
background-color: #2b345b;
|
|
||||||
color: #fff;
|
|
||||||
margin-top: 30rpx;
|
|
||||||
border-radius: 5rpx;
|
|
||||||
}
|
|
||||||
.van-cell.van-cell--borderless:active{
|
|
||||||
background-color: #2b345b;
|
|
||||||
}
|
|
||||||
.van-collapse-item__title.van-collapse-item__title--expanded:active{
|
|
||||||
background-color: #2b345b;
|
|
||||||
}
|
|
||||||
.van-collapse-item .van-cell:after{
|
|
||||||
border-bottom: 0;
|
|
||||||
}
|
|
||||||
.van-collapse-item.van-hairline--top:after{
|
|
||||||
border-top-width:0
|
|
||||||
}
|
|
||||||
.van-cell.van-cell--clickable{
|
|
||||||
background-color: #2b345b;
|
|
||||||
margin-top: 30rpx;
|
|
||||||
color: #fff;
|
|
||||||
border-radius: 15rpx;
|
|
||||||
|
|
||||||
}
|
|
||||||
.van-cell.van-cell--clickable:active{
|
|
||||||
background-color: #2b345b;
|
|
||||||
}
|
|
||||||
.van-collapse-item__wrapper .van-collapse-item__content{
|
|
||||||
background-color: #1e2336;
|
|
||||||
color:#8ca4ec ;
|
|
||||||
border-width: 0px 0;
|
|
||||||
}
|
|
||||||
.gk_open_con view{
|
|
||||||
padding: 10rpx 0;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.gk_open_con image{
|
|
||||||
width: 30rpx;
|
|
||||||
height: 30rpx;
|
|
||||||
margin-right: 5rpx;
|
|
||||||
position: relative;
|
|
||||||
top: 5rpx;
|
|
||||||
}
|
|
||||||
.pass{
|
|
||||||
background-color: #388a38;
|
|
||||||
}
|
|
||||||
.transact{
|
|
||||||
background-color: #8e6424;
|
|
||||||
}
|
|
||||||
.text_active{
|
|
||||||
padding-left: 5rpx;
|
|
||||||
color: #8369f5;
|
|
||||||
}
|
|
||||||
.van-steps{
|
|
||||||
background-color: transparent !important;
|
|
||||||
}
|
|
||||||
.van-step--horizontal .van-step__circle-container{
|
|
||||||
background-color: transparent !important;
|
|
||||||
}
|
|
||||||
.van-steps--horizontal{
|
|
||||||
padding: 10px 20px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.inspect_info {
|
|
||||||
padding: 30rpx;
|
|
||||||
background: #1e2336;
|
|
||||||
margin-bottom: 10rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.echarts_max{
|
|
||||||
margin-top: 30rpx;
|
|
||||||
padding:0 30rpx;
|
|
||||||
}
|
|
||||||
.echarts_min{
|
|
||||||
background:#1e2336;
|
|
||||||
font-size: 28rpx;
|
|
||||||
padding: 15rpx;
|
|
||||||
border-radius:15rpx;
|
|
||||||
}
|
|
||||||
.eharts_title{
|
|
||||||
height: 40rpx;
|
|
||||||
line-height: 40rpx;
|
|
||||||
padding-left: 40rpx;
|
|
||||||
background: url("https://szgcwx.jhncidg.com/staticFiles/img/menu/CORE_52887EE6A33042408E11C2174974ABA1.png") no-repeat left/35rpx;
|
|
||||||
}
|
|
||||||
.eharts_head{
|
|
||||||
text-align: center;
|
|
||||||
padding: 30rpx 0;
|
|
||||||
}
|
|
||||||
.eharts_head text{
|
|
||||||
color:#0ad7ec;
|
|
||||||
font-size: 40rpx;
|
|
||||||
}
|
|
||||||
.eharts_con{
|
|
||||||
height: 320rpx;
|
|
||||||
width: auto;
|
|
||||||
}
|
|
||||||
.eharts_title_float{
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.eharts_title_float text{
|
|
||||||
padding: 0 5rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.password-icon {
|
|
||||||
width: 40rpx;
|
|
||||||
height: 40rpx;
|
|
||||||
position: absolute;
|
|
||||||
right: 60rpx;
|
|
||||||
margin-top: -60rpx;
|
|
||||||
z-index: 999;
|
|
||||||
}
|
|
||||||
|
|
||||||
.eharts_title_float_img{
|
|
||||||
width: 40rpx;
|
|
||||||
height: 40rpx;
|
|
||||||
float: right;
|
|
||||||
position: relative;
|
|
||||||
top: 2rpx;
|
|
||||||
}
|
|
||||||
.problem_submit_to image{
|
|
||||||
width: 180rpx;
|
|
||||||
height: 180rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 新增安全检查 */
|
|
||||||
.inspect_info_2 {
|
|
||||||
padding: 30rpx;
|
|
||||||
}
|
|
|
@ -1,163 +0,0 @@
|
||||||
import {
|
|
||||||
checkApplyList,
|
|
||||||
findGroupCountByStatus
|
|
||||||
} from '../../../api/projectApply'
|
|
||||||
const app = getApp()
|
|
||||||
Page({
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 页面的初始数据
|
|
||||||
*/
|
|
||||||
data: {
|
|
||||||
jxzCount: 0,
|
|
||||||
ywcCount: 0,
|
|
||||||
activeState: "dys",
|
|
||||||
total: 0,
|
|
||||||
pageNum: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
listData: [],
|
|
||||||
},
|
|
||||||
|
|
||||||
getInfo(e) {
|
|
||||||
let {
|
|
||||||
id
|
|
||||||
} = e.currentTarget.dataset.set
|
|
||||||
wx.redirectTo({
|
|
||||||
url: `../info/index?businessKey=${id}`,
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面加载
|
|
||||||
*/
|
|
||||||
onLoad(options) {
|
|
||||||
//获取缓存数据
|
|
||||||
this.getListData();
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询项目举牌验收数据
|
|
||||||
*/
|
|
||||||
getListData() {
|
|
||||||
this.queryCount();
|
|
||||||
let params = "activeName="+ this.data.activeState +"&pageNum=" + this.data.pageNum + "&pageSize=" + this.data.pageSize;
|
|
||||||
checkApplyList(params).then(res =>{
|
|
||||||
if (res.code == "200") {
|
|
||||||
//这里处理this.data.lastDataSize=this.data.pageSize
|
|
||||||
this.setData({
|
|
||||||
total: res.total,
|
|
||||||
listData: this.data.listData.concat(res.rows)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 加载更多数据
|
|
||||||
*/
|
|
||||||
onScrollToLower() {
|
|
||||||
let nal = Math.ceil(this.data.total / this.data.pageSize);
|
|
||||||
if (this.data.pageNum < nal) {
|
|
||||||
this.setData({
|
|
||||||
pageNum: this.data.pageNum + 1
|
|
||||||
});
|
|
||||||
this.getListData();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
//查询统计
|
|
||||||
queryCount() {
|
|
||||||
let params = "activeName="+ this.data.activeState;
|
|
||||||
//查询统计数量
|
|
||||||
findGroupCountByStatus(params).then(res =>{
|
|
||||||
let dys = 0;
|
|
||||||
let yys = 0;
|
|
||||||
res.data.forEach(item => {
|
|
||||||
if(item.applyStatus==10){
|
|
||||||
dys += item.total;
|
|
||||||
}else{
|
|
||||||
yys += item.total;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
this.setData({
|
|
||||||
jxzCount: dys,
|
|
||||||
ywcCount: yys
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 标签切换
|
|
||||||
*/
|
|
||||||
typeJump(e) {
|
|
||||||
let index = e.currentTarget.dataset.index;
|
|
||||||
let nav = "";
|
|
||||||
if (index == 1) {
|
|
||||||
nav = 'dys';
|
|
||||||
} else if (index == 2) {
|
|
||||||
nav = 'yys';
|
|
||||||
}
|
|
||||||
this.setData({
|
|
||||||
activeState: nav,
|
|
||||||
pageNum: 1,
|
|
||||||
listData: [],
|
|
||||||
});
|
|
||||||
this.getListData();
|
|
||||||
},
|
|
||||||
|
|
||||||
returnToPage: function () {
|
|
||||||
/*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/
|
|
||||||
wx.redirectTo({
|
|
||||||
url: '../../../pages/index/index',
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面初次渲染完成
|
|
||||||
*/
|
|
||||||
onReady() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面显示
|
|
||||||
*/
|
|
||||||
onShow() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面隐藏
|
|
||||||
*/
|
|
||||||
onHide() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面卸载
|
|
||||||
*/
|
|
||||||
onUnload() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 页面相关事件处理函数--监听用户下拉动作
|
|
||||||
*/
|
|
||||||
onPullDownRefresh() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 页面上拉触底事件的处理函数
|
|
||||||
*/
|
|
||||||
onReachBottom() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户点击右上角分享
|
|
||||||
*/
|
|
||||||
onShareAppMessage() {
|
|
||||||
|
|
||||||
}
|
|
||||||
})
|
|
|
@ -1,56 +0,0 @@
|
||||||
<view class="header_title">
|
|
||||||
<view class="header_title_row">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="4">
|
|
||||||
<view class="header_img" bindtap="returnToPage">
|
|
||||||
<image src="/images/left.png"></image>
|
|
||||||
</view>
|
|
||||||
</van-col>
|
|
||||||
<van-col span="15">
|
|
||||||
<view class="header_name">进场验收管理</view>
|
|
||||||
</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<scroll-view class="max_content_scroll" type="list" scroll-y bindscrolltolower="onScrollToLower">
|
|
||||||
<view class="modify_video_nav" style="margin-top: 5rpx;">
|
|
||||||
<view class="{{activeState=='dys'?'active':''}}" bindtap="typeJump" data-index="1"><text>待验收({{jxzCount}})</text></view>
|
|
||||||
<view class="{{activeState=='yys'?'active':''}}" bindtap="typeJump" data-index="2"><text>已验收({{ywcCount}})</text></view>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_max_scroll">
|
|
||||||
<view class="inspect_for_scroll" v-if="{{ listData.length>0 }}" wx:for="{{listData}}" wx:key="index" data-set="{{item}}" bindtap="getInfo">
|
|
||||||
<view class="inspect_for_bgd">
|
|
||||||
<view class="inspect_list_title">
|
|
||||||
<view class="inspect_list_title_label inspect_list_title_width">
|
|
||||||
<view class="inspect_list_title_number">{{index < 9 ?'0'+(index+1):(index+1)}}</view>
|
|
||||||
<view class="module_title module_title_flex inspect_list_title_text">
|
|
||||||
<text class="color_blue">{{item.projName}}</text>
|
|
||||||
<text wx:if="{{item.applyStatus=='10'}}" class="timeline_for_state_1 color_orange" style="font-weight: 800;">待验收</text>
|
|
||||||
<text wx:if="{{item.applyStatus=='100'}}" class="timeline_for_state_1 color_green">已验收</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_list_info">
|
|
||||||
<view class="inspect_list_info_details">
|
|
||||||
<view class="inspect_list_info_data">
|
|
||||||
<view class="inspect_list_info_data_prop">所属项目:<text>{{item.parProjName}}</text></view>
|
|
||||||
<view class="inspect_list_info_data_prop">申请类型:<text wx:if="{{item.applyType=='wzl'}}">物资类</text><text wx:if="{{item.applyType=='rgl'}}">人工类</text><text wx:if="{{item.applyType=='sbl'}}">设备类</text><text wx:if="{{item.applyType=='gll'}}">管理类</text></view>
|
|
||||||
<view class="inspect_list_info_data_prop">申请用户:<text>{{item.createByDeptName}}-{{item.createBy}}</text></view>
|
|
||||||
<view class="inspect_list_info_data_prop">使用时间:<text class="color_blue">{{item.useTime}}</text>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_list_info_data_prop">申请时间:<text class="color_blue">{{item.createTime}}</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_list_info_position">申请原因:<text class="color_purple">{{item.applyReason}}</text></view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view wx:if="{{listData.length==0}}">
|
|
||||||
<view style="padding-top: 70px;text-align: -webkit-center;">
|
|
||||||
<image src="/images/nodata.png" style="width: 130px;height: 105px;"></image>
|
|
||||||
<view style="color: #a5abbb;">暂无数据</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</scroll-view>
|
|
|
@ -1 +0,0 @@
|
||||||
/* pages/project_check/list/index.wxss */
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import config from '../../../config'
|
||||||
import {
|
import {
|
||||||
reject,
|
reject,
|
||||||
complete,
|
complete,
|
||||||
|
@ -9,7 +10,10 @@ import {
|
||||||
import {
|
import {
|
||||||
findProjectApplyData
|
findProjectApplyData
|
||||||
} from '../../../api/publics'
|
} from '../../../api/publics'
|
||||||
import config from '../../../config'
|
import {
|
||||||
|
findProSubDeptsInfoById,
|
||||||
|
findProSubDeptsUserInfoById
|
||||||
|
} from '../../../api/project'
|
||||||
const app = getApp()
|
const app = getApp()
|
||||||
Page({
|
Page({
|
||||||
/**
|
/**
|
||||||
|
@ -19,17 +23,20 @@ Page({
|
||||||
options: {},
|
options: {},
|
||||||
active: 0,
|
active: 0,
|
||||||
stepList: [],
|
stepList: [],
|
||||||
rejectNode:false,
|
rejectNode: false,
|
||||||
activeName: "",
|
activeName: "",
|
||||||
flowRecordList: [],
|
flowRecordList: [],
|
||||||
infoData: {},
|
subDeptData: {
|
||||||
fileNames: [],
|
subDeptInfos: {}
|
||||||
minImageList: [],
|
},
|
||||||
imgTypes: ["png", "jpg", "jpeg"],
|
subDeptUserData: {
|
||||||
|
user: {},
|
||||||
|
},
|
||||||
stopBtnShow: false,
|
stopBtnShow: false,
|
||||||
comment: "",
|
comment: "",
|
||||||
targetKey:"",
|
targetKey: "",
|
||||||
targetKeyList: [],
|
targetKeyList: [],
|
||||||
|
imgBaseUrl: config.baseImgUrl
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -52,9 +59,9 @@ Page({
|
||||||
text: '开始'
|
text: '开始'
|
||||||
}];
|
}];
|
||||||
let index = this.data.active;
|
let index = this.data.active;
|
||||||
res.data.forEach((item,idx) => {
|
res.data.forEach((item, idx) => {
|
||||||
if(this.data.options.taskName==item.name){
|
if (this.data.options.taskName == item.name) {
|
||||||
index = idx+1;
|
index = idx + 1;
|
||||||
}
|
}
|
||||||
list.push({
|
list.push({
|
||||||
text: item.name,
|
text: item.name,
|
||||||
|
@ -102,34 +109,33 @@ Page({
|
||||||
|
|
||||||
//查询审批表单参数
|
//查询审批表单参数
|
||||||
findApplyDataInfo() {
|
findApplyDataInfo() {
|
||||||
findProjectApplyData(this.data.options.businessKey).then(res => {
|
findProSubDeptsUserInfoById(this.data.options.businessKey).then(res => {
|
||||||
let imgList = [];
|
if (res.data.eduFilePath) {
|
||||||
let fileNames = [];
|
let files = res.data.eduFilePath.split('/');
|
||||||
if (res.data.applyFiles) {
|
res.data.eduFileName = files[files.length - 1];
|
||||||
res.data.applyFiles.split(',').forEach(files => {
|
}
|
||||||
let fileType = files.split(".")[files.split(".").length - 1].toLowerCase();
|
if(res.data.user.userInfos){
|
||||||
if (this.data.imgTypes.indexOf(fileType) == -1) {
|
res.data.user.userInfos = JSON.parse(res.data.user.userInfos);
|
||||||
let it = element.split('/');
|
|
||||||
fileNames.push({
|
|
||||||
name: it[it.length - 1],
|
|
||||||
path: files
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
imgList.push({
|
|
||||||
murl: config.baseUrl + files + '.min.jpg',
|
|
||||||
path: files
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
this.setData({
|
this.setData({
|
||||||
infoData: res.data,
|
subDeptUserData: res.data
|
||||||
fileNames: fileNames,
|
})
|
||||||
minImageList: imgList,
|
//查询单位信息
|
||||||
|
this.getSubDeptInfo(res.data.subDeptId);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
//查询审批表单参数
|
||||||
|
getSubDeptInfo(subDeptId) {
|
||||||
|
findProSubDeptsInfoById(subDeptId).then(res => {
|
||||||
|
res.data.subDeptInfos = JSON.parse(res.data.subDeptInfos);
|
||||||
|
this.setData({
|
||||||
|
subDeptData: res.data
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
//初始化退回节点
|
//初始化退回节点
|
||||||
initTargetKeyList() {
|
initTargetKeyList() {
|
||||||
returnList({
|
returnList({
|
||||||
|
@ -189,16 +195,14 @@ Page({
|
||||||
targetKeyList
|
targetKeyList
|
||||||
} = this.data;
|
} = this.data;
|
||||||
returnTask({
|
returnTask({
|
||||||
taskId:options.taskId,
|
taskId: options.taskId,
|
||||||
targetKey:targetKeyList[0].id,
|
targetKey: targetKeyList[0].id,
|
||||||
comment
|
comment
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
app.toast("驳回申请成功!")
|
app.toast("驳回申请成功!")
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
wx.redirectTo({
|
this.returnToPage();
|
||||||
url: '../await/index',
|
|
||||||
})
|
|
||||||
}, 500)
|
}, 500)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -242,16 +246,14 @@ Page({
|
||||||
comment
|
comment
|
||||||
} = this.data;
|
} = this.data;
|
||||||
complete({
|
complete({
|
||||||
taskId:options.taskId,
|
taskId: options.taskId,
|
||||||
instanceId: procInsId,
|
instanceId: procInsId,
|
||||||
comment
|
comment
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
app.toast("申请审批通过成功!")
|
app.toast("申请审批通过成功!")
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
wx.redirectTo({
|
this.returnToPage();
|
||||||
url: '../await/index',
|
|
||||||
})
|
|
||||||
}, 500)
|
}, 500)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -303,9 +305,7 @@ Page({
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
app.toast("驳回申请流程成功!")
|
app.toast("驳回申请流程成功!")
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
wx.redirectTo({
|
this.returnToPage();
|
||||||
url: '../await/index',
|
|
||||||
})
|
|
||||||
}, 500)
|
}, 500)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -343,7 +343,7 @@ Page({
|
||||||
},
|
},
|
||||||
|
|
||||||
//展示图片
|
//展示图片
|
||||||
showImg:function(e){
|
showImg: function (e) {
|
||||||
let paths = e.target.dataset.set;
|
let paths = e.target.dataset.set;
|
||||||
let path = [];
|
let path = [];
|
||||||
paths.split(',').forEach(url => {
|
paths.split(',').forEach(url => {
|
||||||
|
@ -365,7 +365,7 @@ Page({
|
||||||
} = e.currentTarget.dataset.set
|
} = e.currentTarget.dataset.set
|
||||||
wx.downloadFile({
|
wx.downloadFile({
|
||||||
// 示例 url,并非真实存在
|
// 示例 url,并非真实存在
|
||||||
url: config.baseUrl + '/common/download/resource?resource=' + path,
|
url: config.baseUrl + '/file/download?fileName=' + path,
|
||||||
success: function (res) {
|
success: function (res) {
|
||||||
const filePath = res.tempFilePath
|
const filePath = res.tempFilePath
|
||||||
let fpt = filePath.split(".");
|
let fpt = filePath.split(".");
|
||||||
|
@ -391,10 +391,19 @@ Page({
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回页面
|
||||||
|
*/
|
||||||
returnToPage: function () {
|
returnToPage: function () {
|
||||||
wx.redirectTo({
|
if (wx.getStorageSync('nav-types') == "depts") {
|
||||||
url: '../await/index',
|
wx.redirectTo({
|
||||||
})
|
url: '../subDepts/index',
|
||||||
|
})
|
||||||
|
} else if (wx.getStorageSync('nav-types') == "users") {
|
||||||
|
wx.redirectTo({
|
||||||
|
url: '../subDeptsUsers/index',
|
||||||
|
})
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -25,155 +25,310 @@
|
||||||
<view class="inspect_list_title">
|
<view class="inspect_list_title">
|
||||||
<view class="inspect_list_title_label inspect_list_title_width">
|
<view class="inspect_list_title_label inspect_list_title_width">
|
||||||
<view class="inspect_list_title_number">{{(flowRecordList.length-index) < 9 ?'0'+(flowRecordList.length-index):(flowRecordList.length-index)}}</view>
|
<view class="inspect_list_title_number">{{(flowRecordList.length-index) < 9 ?'0'+(flowRecordList.length-index):(flowRecordList.length-index)}}</view>
|
||||||
<view class="module_title module_title_flex inspect_list_title_text">{{item.taskName}}{{item.commentResult}}
|
<view class="module_title module_title_flex inspect_list_title_text">{{item.taskName}}{{item.commentResult}}
|
||||||
<text wx:if="{{item.commentResult=='通过'}}" class="timeline_for_state_1 color_green">{{item.commentResult}}</text>
|
<text wx:if="{{item.commentResult=='通过'}}" class="timeline_for_state_1 color_green">{{item.commentResult}}</text>
|
||||||
<text wx:if="{{item.commentResult=='委派'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text>
|
<text wx:if="{{item.commentResult=='委派'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text>
|
||||||
<text wx:if="{{item.commentResult=='转办'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text>
|
<text wx:if="{{item.commentResult=='转办'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text>
|
||||||
<text wx:if="{{item.commentResult=='驳回'}}" class="timeline_for_state_2 color_purple">{{item.commentResult}}</text>
|
<text wx:if="{{item.commentResult=='驳回'}}" class="timeline_for_state_2 color_purple">{{item.commentResult}}</text>
|
||||||
<text wx:if="{{item.commentResult=='退回'}}" class="timeline_for_state_2 color_purple">{{item.commentResult}}</text>
|
<text wx:if="{{item.commentResult=='退回'}}" class="timeline_for_state_2 color_purple">{{item.commentResult}}</text>
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="inspect_list_info gk_open_con">
|
</view>
|
||||||
<view wx:if="{{item.assigneeName}}">
|
<view class="inspect_list_info gk_open_con">
|
||||||
<image src="/images/lw_3.png"></image>办理用户:<text>{{item.assigneeName}}</text>
|
<view wx:if="{{item.assigneeName}}">
|
||||||
</view>
|
<image src="/images/lw_3.png"></image>办理用户:<text>{{item.assigneeName}}</text>
|
||||||
<view wx:if="{{item.assigneeName}}">
|
</view>
|
||||||
<image src="/images/s_1.png"></image>办理单位:<text class="color_blue">{{item.deptName}}</text>
|
<view wx:if="{{item.assigneeName}}">
|
||||||
</view>
|
<image src="/images/s_1.png"></image>办理单位:<text class="color_blue">{{item.deptName}}</text>
|
||||||
<view wx:if="{{item.candidate}}">
|
</view>
|
||||||
<image src="/images/s_2.png"></image>候选办理:<text>{{item.candidate}}</text>
|
<view wx:if="{{item.candidate}}">
|
||||||
</view>
|
<image src="/images/s_2.png"></image>候选办理:<text>{{item.candidate}}</text>
|
||||||
<view wx:if="{{item.deleteReason}}">
|
</view>
|
||||||
<image src="/images/s_18.png"></image>驳回节点:<text>{{item.deleteReason}}</text>
|
<view wx:if="{{item.deleteReason}}">
|
||||||
</view>
|
<image src="/images/s_18.png"></image>驳回节点:<text>{{item.deleteReason}}</text>
|
||||||
<view>
|
</view>
|
||||||
<image src="/images/s_6.png"></image>接收时间:<text>{{item.startTime}}</text>
|
<view>
|
||||||
</view>
|
<image src="/images/s_6.png"></image>接收时间:<text>{{item.startTime}}</text>
|
||||||
<view wx:if="{{item.endTime}}">
|
</view>
|
||||||
<image src="/images/lw_8.png"></image>处理时间:<text>{{item.endTime}}</text>
|
<view wx:if="{{item.endTime}}">
|
||||||
</view>
|
<image src="/images/lw_8.png"></image>处理时间:<text>{{item.endTime}}</text>
|
||||||
<view wx:if="{{item.duration}}">
|
</view>
|
||||||
<image src="/images/img_11.png"></image>处理耗时:<text>{{item.duration}}</text>
|
<view wx:if="{{item.duration}}">
|
||||||
</view>
|
<image src="/images/img_11.png"></image>处理耗时:<text>{{item.duration}}</text>
|
||||||
<view wx:if="{{item.message}}">
|
</view>
|
||||||
<image src="/images/s_7.png"></image>处理意见:<text>{{item.message}}</text>
|
<view wx:if="{{item.message}}">
|
||||||
</view>
|
<image src="/images/s_7.png"></image>处理意见:<text>{{item.message}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
</view>
|
||||||
</van-collapse-item>
|
</van-collapse-item>
|
||||||
</van-collapse>
|
</van-collapse>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
<view class="module_title module_title_padding">
|
||||||
<view class="inspect_info">
|
<view>{{subDeptData.projectName}}</view>
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">临建项目</text></van-col>
|
|
||||||
<van-col span="18" class="color_orange">{{ options.projectName}}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
</view>
|
||||||
<view class="inspect_overview_list">
|
<view class="inspect_info" wx:if="{{options.category=='1' || options.category=='2' || options.category=='3' || options.category=='4'}}">
|
||||||
<van-row>
|
<view class="inspect_overview_list">
|
||||||
<van-col span="6"><text class="color_purple">使用单位</text></van-col>
|
<van-row>
|
||||||
<van-col span="18" class="color_blue">{{infoData.createByDeptName}}</van-col>
|
<van-col span="8"><text class="color_purple">项目单位</text></van-col>
|
||||||
</van-row>
|
<van-col span="16" class="color_orange">{{ subDeptData.projectName}}</van-col>
|
||||||
</view>
|
</van-row>
|
||||||
<view class="inspect_overview_list">
|
</view>
|
||||||
<van-row>
|
<view class="inspect_overview_list">
|
||||||
<van-col span="6"><text class="color_purple">使用时间</text></van-col>
|
<van-row>
|
||||||
<van-col span="18">{{infoData.useTime}}</van-col>
|
<van-col span="8"><text class="color_purple">单位类型</text></van-col>
|
||||||
</van-row>
|
<van-col span="16" class="color_blue">{{subDeptData.subDeptTypeName}}</van-col>
|
||||||
</view>
|
</van-row>
|
||||||
<view class="inspect_overview_list">
|
</view>
|
||||||
<van-row>
|
<view class="inspect_overview_list">
|
||||||
<van-col span="6"><text class="color_purple">申请原因</text></van-col>
|
<van-row>
|
||||||
<van-col span="18">{{infoData.applyReason}}</van-col>
|
<van-col span="8"><text class="color_purple">单位名称</text></van-col>
|
||||||
</van-row>
|
<van-col span="16">{{subDeptData.subDeptName}}</van-col>
|
||||||
</view>
|
</van-row>
|
||||||
<view class="inspect_overview_list" wx:if="{{minImageList.length>0 || fileNames.length>0}}">
|
</view>
|
||||||
<van-row>
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
<van-col span="6"><text class="color_purple">申请附件</text></van-col>
|
<van-row>
|
||||||
<view class="problem_list_info_con in-img-max" wx:if="{{minImageList.length>0}}">
|
<van-col span="8"><text class="color_purple">信用代码</text></van-col>
|
||||||
<view class="in-img-div" wx:for="{{minImageList}}" wx:key="index">
|
<van-col span="16">{{subDeptData.subDeptCode}}</van-col>
|
||||||
<image bindtap='showImg' data-set="{{item.path}}" src='{{item.murl}}'></image>
|
</van-row>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">营业执照</text></van-col>
|
||||||
|
<van-col span="16">
|
||||||
|
<view class="problem_list_info_con in-img-max">
|
||||||
|
<view class="in-img-div" wx:key="index">
|
||||||
|
<image bindtap='showImg' data-set="{{subDeptData.businessLicensePath}}" src="{{imgBaseUrl+subDeptData.businessLicensePath+'.min.jpg'}}"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">法人姓名</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptData.subDeptInfos.legalPerson}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">法人身份证</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptData.subDeptInfos.legalPersonCard}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">法人证件</text></van-col>
|
||||||
|
<van-col span="16">
|
||||||
|
<view class="problem_list_info_con in-img-max">
|
||||||
|
<view class="in-img-div" wx:key="index">
|
||||||
|
<image bindtap='showImg' data-set="{{subDeptData.subDeptInfos.legalPersonCardImgPos}}" src="{{imgBaseUrl+subDeptData.subDeptInfos.legalPersonCardImgPos+'.min.jpg'}}"></image>
|
||||||
|
<image bindtap='showImg' data-set="{{subDeptData.subDeptInfos.legalPersonCardImgInv}}" src="{{imgBaseUrl+subDeptData.subDeptInfos.legalPersonCardImgInv+'.min.jpg'}}"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">进入场地时间</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptData.useDates}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">计划开工时间</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptData.startWorkDates}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">计划完工时间</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptData.endWorkDates}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">合同约定范围</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptData.contractInfos}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8">
|
||||||
|
<text wx:if="{{options.category=='1'}}" class="color_purple">委托代理人</text>
|
||||||
|
<text wx:if="{{options.category!='1'}}" class="color_purple">人员姓名</text>
|
||||||
|
</van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.nickName}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8">
|
||||||
|
<text wx:if="{{options.category=='1'}}" class="color_purple">代理人身份证</text>
|
||||||
|
<text wx:if="{{options.category!='1'}}" class="color_purple">身份证号码</text>
|
||||||
|
</van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.cardCode}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category!='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8">
|
||||||
|
<text class="color_purple">工种岗位</text>
|
||||||
|
</van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.craftPostName}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category!='1' && options.category!='2'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8">
|
||||||
|
<text class="color_purple">工种班组</text>
|
||||||
|
</van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.subDeptGroupName}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category!='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">所属民族</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.userInfos.nativePlace}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category!='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">详细地址</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.userInfos.address}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8">
|
||||||
|
<text wx:if="{{options.category=='1'}}" class="color_purple">代理人证件</text>
|
||||||
|
<text wx:if="{{options.category!='1'}}" class="color_purple">人员证件照</text>
|
||||||
|
</van-col>
|
||||||
|
<van-col span="16">
|
||||||
|
<view class="problem_list_info_con in-img-max">
|
||||||
|
<view class="in-img-div" wx:key="index">
|
||||||
|
<image bindtap='showImg' data-set="{{subDeptUserData.user.cardImgPos}}" src="{{imgBaseUrl+subDeptUserData.user.cardImgPos+'.min.jpg'}}"></image>
|
||||||
|
<image bindtap='showImg' data-set="{{subDeptUserData.user.cardImgInv}}" src="{{imgBaseUrl+subDeptUserData.user.cardImgInv+'.min.jpg'}}"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">花名册近照</text></van-col>
|
||||||
|
<van-col span="16">
|
||||||
|
<view class="problem_list_info_con in-img-max">
|
||||||
|
<view class="in-img-div" wx:key="index">
|
||||||
|
<image bindtap='showImg' data-set="{{subDeptUserData.user.userPicture}}" src="{{imgBaseUrl+subDeptUserData.user.userPicture+'.min.jpg'}}"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category!='4'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">单位委托书</text></van-col>
|
||||||
|
<van-col span="16">
|
||||||
|
<view class="problem_list_info_con in-img-max">
|
||||||
|
<view class="in-img-div" wx:key="index">
|
||||||
|
<image bindtap='showImg' data-set="{{subDeptUserData.subDeptPowerPath}}" src="{{imgBaseUrl+subDeptUserData.subDeptPowerPath+'.min.jpg'}}"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">联系电话</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.phonenumber}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category!='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">紧急联系人</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.userInfos.emergencyContact}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category!='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">紧急联系电话</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.userInfos.contactPhone}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">开户行名称</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.userInfos.bankName}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">开户行网点</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.userInfos.bankOffice}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">工资银行卡号</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.userInfos.bankCardNo}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list">
|
||||||
|
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">高血压、心脏病等基础身体健康问题
|
||||||
</view>
|
</view>
|
||||||
<van-col span="18" class="color_blue" wx:if="{{fileNames.length>0}}">
|
<view class="inspect_info_content">
|
||||||
<view class="files" wx:for="{{fileNames}}" wx:key="index">
|
<text wx:if="{{subDeptUserData.illnessStatus=='0'}}" class="code_label_2 code_label_green" style="padding: 5rpx 50rpx;font-size: 25rpx;">无</text>
|
||||||
<text data-set="{{item}}" style="word-wrap: break-word;" bindtap='downFile'>{{item.name}}</text>
|
<text wx:if="{{subDeptUserData.illnessStatus!='0'}}" class="code_label_2 code_label_red" style="padding: 5rpx 50rpx;font-size: 25rpx;">有</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list">
|
||||||
|
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">严重呼吸系统疾病、严重心脑血管疾病、肝肾疾病、恶性肿瘤以及药物无法有效控制的高血压和糖尿病等基础性病症状征兆
|
||||||
|
</view>
|
||||||
|
<view class="inspect_info_content">
|
||||||
|
<text wx:if="{{subDeptUserData.supIllnessStatus=='0'}}" class="code_label_2 code_label_green" style="padding: 5rpx 50rpx;font-size: 25rpx;">无</text>
|
||||||
|
<text wx:if="{{subDeptUserData.supIllnessStatus!='0'}}" class="code_label_2 code_label_red" style="padding: 5rpx 50rpx;font-size: 25rpx;">有</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">安全承诺书</text></van-col>
|
||||||
|
<van-col span="16" class="color_blue">
|
||||||
|
<view class="files">
|
||||||
|
<text data-set="{{subDeptUserData.eduFilePath}}" style="word-wrap: break-word;" bindtap='downFile'>点击下载安全承诺书</text>
|
||||||
</view>
|
</view>
|
||||||
</van-col>
|
</van-col>
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple"> 申 请 人 </text></van-col>
|
|
||||||
<van-col span="18">{{infoData.createBy}}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">申请时间</text></van-col>
|
|
||||||
<van-col span="18">{{infoData.createTime}}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view>
|
|
||||||
<view class="inspect_info" wx:for="{{infoData.proProjectApplyDetailList}}" wx:key="index">
|
|
||||||
<view class="module_title module_title_flex">
|
|
||||||
<view class="text_active">申请明细 {{ format.indexNumFormat(index) }}</view>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">申请明细</text></van-col>
|
|
||||||
<van-col span="18">{{item.typeName + ' > '+ item.assetsName }}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">申请数量</text></van-col>
|
|
||||||
<van-col span="18">{{item.number + ' '+ item.assetsUnit }}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list" wx:if="{{item.assetsVersion}}">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">规格型号</text></van-col>
|
|
||||||
<van-col span="18">{{item.assetsVersion }}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list" wx:if="{{item.useReason}}">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">使用说明</text></van-col>
|
|
||||||
<van-col span="18">{{ item.useReason }}</van-col>
|
|
||||||
</van-row>
|
</van-row>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="inspect_info">
|
<view class="inspect_overview_list_max">
|
||||||
<view class="inspect_overview_list">
|
<view class="inspect_overview_list">
|
||||||
<view class="inspect_overview_title" style="padding: 20rpx 0 10rpx;">审批意见</view>
|
<view class="inspect_overview_title" style="padding: 20rpx 0 10rpx;">审批意见</view>
|
||||||
<view class="inspect_overview_content">
|
<view class="inspect_overview_content">
|
||||||
<textarea class="add_textarea" placeholder="请填写审批意见(500字内)" placeholder-style="color:#6777aa;" maxlength="500" bindinput="commentInput" />
|
<textarea class="add_textarea" placeholder="请填写审批意见(500字内)" placeholder-style="color:#6777aa;" maxlength="500" bindinput="commentInput" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="inspect_overview_list" wx:if="{{backShow}}">
|
<view class="inspect_overview_list" wx:if="{{false}}">
|
||||||
<view class="inspect_overview_title" style="padding: 20rpx 0 10rpx;">退回节点</view>
|
<view class="inspect_overview_title" style="padding: 20rpx 0 10rpx;">退回节点</view>
|
||||||
<view class="inspect_overview_content">
|
<view class="inspect_overview_content">
|
||||||
<voucher-select columns="{{targetKeyList}}" placeholder="请选择退回节点" bindchange="onSelectTargetKey"></voucher-select>
|
<voucher-select columns="{{targetKeyList}}" placeholder="请选择退回节点" bindchange="onSelectTargetKey"></voucher-select>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="problem_submit_to">
|
<view class="problem_submit_to">
|
||||||
<view class="problem_submit_to_btn" bindtap="onEditApply">修改申请</view>
|
<view class="problem_submit_to_btn" bindtap="onEditApply" wx:if="{{false}}">修改申请</view>
|
||||||
<view class="problem_submit_to_btn problem_submit_to_blue" bindtap="onAssign" wx:if="{{false}}">任务转办</view>
|
<view class="problem_submit_to_btn problem_submit_to_blue" bindtap="onAssign" wx:if="{{false}}">任务转办</view>
|
||||||
<view class="problem_submit_to_btn problem_submit_to_eq" bindtap="onDelegate" wx:if="{{false}}">任务委派</view>
|
<view class="problem_submit_to_btn problem_submit_to_eq" bindtap="onDelegate" wx:if="{{false}}">任务委派</view>
|
||||||
<view class="problem_submit_to_btn problem_submit_to_delete" bindtap="onBack">审批驳回</view>
|
<view class="problem_submit_to_btn problem_submit_to_delete" bindtap="onBack">审批驳回</view>
|
||||||
<view class="problem_submit_to_btn problem_submit_to_save" bindtap="onPass">审批通过</view>
|
<view class="problem_submit_to_btn problem_submit_to_save" bindtap="onPass">审批通过</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="problem_submit_to" wx:if="{{false}}">
|
<view class="problem_submit_to" wx:if="{{false}}">
|
||||||
<view class="problem_submit_to_btn" bindtap="onEditApply">修改申请信息</view>
|
<view class="problem_submit_to_btn" bindtap="onEditApply">修改申请信息</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
@ -1,14 +1,12 @@
|
||||||
|
import config from '../../../config'
|
||||||
import {
|
import {
|
||||||
stopProcess,
|
|
||||||
revokeProcess,
|
|
||||||
deleteInstance,
|
|
||||||
readDeployNotes,
|
readDeployNotes,
|
||||||
findCommentByProcInsId
|
findCommentByProcInsId
|
||||||
} from '../../../api/flowable'
|
} from '../../../api/flowable'
|
||||||
import {
|
import {
|
||||||
findProjectApplyData
|
findProSubDeptsInfoById,
|
||||||
} from '../../../api/publics'
|
findProSubDeptsUserInfoById
|
||||||
import config from '../../../config'
|
} from '../../../api/project'
|
||||||
const app = getApp()
|
const app = getApp()
|
||||||
Page({
|
Page({
|
||||||
/**
|
/**
|
||||||
|
@ -21,7 +19,12 @@ Page({
|
||||||
stepList: [],
|
stepList: [],
|
||||||
activeName: "",
|
activeName: "",
|
||||||
flowRecordList: [],
|
flowRecordList: [],
|
||||||
infoData: {},
|
subDeptData: {
|
||||||
|
subDeptInfos: {}
|
||||||
|
},
|
||||||
|
subDeptUserData: {
|
||||||
|
user: {},
|
||||||
|
},
|
||||||
stopShow: false,
|
stopShow: false,
|
||||||
deleteShow: false,
|
deleteShow: false,
|
||||||
revocationShow: false,
|
revocationShow: false,
|
||||||
|
@ -101,33 +104,28 @@ Page({
|
||||||
|
|
||||||
//查询审批表单参数
|
//查询审批表单参数
|
||||||
findApplyDataInfo() {
|
findApplyDataInfo() {
|
||||||
findProjectApplyData(this.data.options.businessKey).then(res => {
|
findProSubDeptsUserInfoById(this.data.options.businessKey).then(res => {
|
||||||
let imgList = [];
|
if (res.data.eduFilePath) {
|
||||||
let fileNames = [];
|
let files = res.data.eduFilePath.split('/');
|
||||||
if (res.data.applyFiles) {
|
res.data.eduFileName = files[files.length - 1];
|
||||||
res.data.applyFiles.split(',').forEach(files => {
|
}
|
||||||
let fileType = files.split(".")[files.split(".").length - 1].toLowerCase();
|
if(res.data.user.userInfos){
|
||||||
if (this.data.imgTypes.indexOf(fileType) == -1) {
|
res.data.user.userInfos = JSON.parse(res.data.user.userInfos);
|
||||||
let it = files.split('/');
|
|
||||||
fileNames.push({
|
|
||||||
name: it[it.length - 1],
|
|
||||||
path: files
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
imgList.push({
|
|
||||||
murl: config.baseUrl + files + '.min.jpg',
|
|
||||||
path: files
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
this.setData({
|
this.setData({
|
||||||
infoData: res.data,
|
subDeptUserData: res.data
|
||||||
fileNames: fileNames,
|
})
|
||||||
minImageList: imgList,
|
//查询单位信息
|
||||||
stopShow: !this.data.options.finishTime && this.data.options.startUserId == app.globalData.userData.userId,
|
this.getSubDeptInfo(res.data.subDeptId);
|
||||||
deleteShow: !this.data.options.finishTime && this.data.options.startUserId == app.globalData.userData.userId,
|
})
|
||||||
revocationShow: !this.data.options.finishTime
|
},
|
||||||
|
|
||||||
|
//查询审批表单参数
|
||||||
|
getSubDeptInfo(subDeptId) {
|
||||||
|
findProSubDeptsInfoById(subDeptId).then(res => {
|
||||||
|
res.data.subDeptInfos = JSON.parse(res.data.subDeptInfos);
|
||||||
|
this.setData({
|
||||||
|
subDeptData: res.data
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -283,7 +281,7 @@ Page({
|
||||||
} = e.currentTarget.dataset.set
|
} = e.currentTarget.dataset.set
|
||||||
wx.downloadFile({
|
wx.downloadFile({
|
||||||
// 示例 url,并非真实存在
|
// 示例 url,并非真实存在
|
||||||
url: config.baseUrl + '/common/download/resource?resource=' + path,
|
url: config.baseUrl + '/file/download?fileName=' + path,
|
||||||
success: function (res) {
|
success: function (res) {
|
||||||
const filePath = res.tempFilePath
|
const filePath = res.tempFilePath
|
||||||
let fpt = filePath.split(".");
|
let fpt = filePath.split(".");
|
||||||
|
|
|
@ -25,145 +25,284 @@
|
||||||
<view class="inspect_list_title">
|
<view class="inspect_list_title">
|
||||||
<view class="inspect_list_title_label inspect_list_title_width">
|
<view class="inspect_list_title_label inspect_list_title_width">
|
||||||
<view class="inspect_list_title_number">{{(flowRecordList.length-index) < 9 ?'0'+(flowRecordList.length-index):(flowRecordList.length-index)}}</view>
|
<view class="inspect_list_title_number">{{(flowRecordList.length-index) < 9 ?'0'+(flowRecordList.length-index):(flowRecordList.length-index)}}</view>
|
||||||
<view class="module_title module_title_flex inspect_list_title_text">{{item.taskName}}{{item.commentResult}}
|
<view class="module_title module_title_flex inspect_list_title_text">{{item.taskName}}{{item.commentResult}}
|
||||||
<text wx:if="{{item.commentResult=='通过'}}" class="timeline_for_state_1 color_green">{{item.commentResult}}</text>
|
<text wx:if="{{item.commentResult=='通过'}}" class="timeline_for_state_1 color_green">{{item.commentResult}}</text>
|
||||||
<text wx:if="{{item.commentResult=='驳回'}}" class="timeline_for_state_2 color_purple">{{item.commentResult}}</text>
|
<text wx:if="{{item.commentResult=='委派'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text>
|
||||||
</view>
|
<text wx:if="{{item.commentResult=='转办'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text>
|
||||||
|
<text wx:if="{{item.commentResult=='驳回'}}" class="timeline_for_state_2 color_purple">{{item.commentResult}}</text>
|
||||||
|
<text wx:if="{{item.commentResult=='退回'}}" class="timeline_for_state_2 color_purple">{{item.commentResult}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="inspect_list_info gk_open_con">
|
</view>
|
||||||
<view wx:if="{{item.assigneeName}}">
|
<view class="inspect_list_info gk_open_con">
|
||||||
<image src="/images/lw_3.png"></image>办理用户:<text>{{item.assigneeName}}</text>
|
<view wx:if="{{item.assigneeName}}">
|
||||||
</view>
|
<image src="/images/lw_3.png"></image>办理用户:<text>{{item.assigneeName}}</text>
|
||||||
<view wx:if="{{item.assigneeName}}">
|
</view>
|
||||||
<image src="/images/s_1.png"></image>办理单位:<text class="color_blue">{{item.deptName}}</text>
|
<view wx:if="{{item.assigneeName}}">
|
||||||
</view>
|
<image src="/images/s_1.png"></image>办理单位:<text class="color_blue">{{item.deptName}}</text>
|
||||||
<view wx:if="{{item.candidate}}">
|
</view>
|
||||||
<image src="/images/s_2.png"></image>候选办理:<text>{{item.candidate}}</text>
|
<view wx:if="{{item.candidate}}">
|
||||||
</view>
|
<image src="/images/s_2.png"></image>候选办理:<text>{{item.candidate}}</text>
|
||||||
<view wx:if="{{item.deleteReason}}">
|
</view>
|
||||||
<image src="/images/s_18.png"></image>驳回节点:<text>{{item.deleteReason}}</text>
|
<view wx:if="{{item.deleteReason}}">
|
||||||
</view>
|
<image src="/images/s_18.png"></image>驳回节点:<text>{{item.deleteReason}}</text>
|
||||||
<view>
|
</view>
|
||||||
<image src="/images/s_6.png"></image>接收时间:<text>{{item.startTime}}</text>
|
<view>
|
||||||
</view>
|
<image src="/images/s_6.png"></image>接收时间:<text>{{item.startTime}}</text>
|
||||||
<view wx:if="{{item.endTime}}">
|
</view>
|
||||||
<image src="/images/lw_8.png"></image>处理时间:<text>{{item.endTime}}</text>
|
<view wx:if="{{item.endTime}}">
|
||||||
</view>
|
<image src="/images/lw_8.png"></image>处理时间:<text>{{item.endTime}}</text>
|
||||||
<view wx:if="{{item.duration}}">
|
</view>
|
||||||
<image src="/images/img_11.png"></image>处理耗时:<text>{{item.duration}}</text>
|
<view wx:if="{{item.duration}}">
|
||||||
</view>
|
<image src="/images/img_11.png"></image>处理耗时:<text>{{item.duration}}</text>
|
||||||
<view wx:if="{{item.message}}">
|
</view>
|
||||||
<image src="/images/s_7.png"></image>处理意见:<text>{{item.message}}</text>
|
<view wx:if="{{item.message}}">
|
||||||
</view>
|
<image src="/images/s_7.png"></image>处理意见:<text>{{item.message}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
</view>
|
||||||
</van-collapse-item>
|
</van-collapse-item>
|
||||||
</van-collapse>
|
</van-collapse>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
<view class="module_title module_title_padding">
|
||||||
<view class="inspect_info">
|
<view>{{subDeptData.projectName}}</view>
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">临建项目</text></van-col>
|
|
||||||
<van-col span="18" class="color_orange">{{ options.projectName||options.businessKeyName }}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
</view>
|
||||||
<view class="inspect_overview_list">
|
<view class="inspect_info" wx:if="{{options.category=='1' || options.category=='2' || options.category=='3' || options.category=='4'}}">
|
||||||
<van-row>
|
<view class="inspect_overview_list">
|
||||||
<van-col span="6"><text class="color_purple">使用单位</text></van-col>
|
<van-row>
|
||||||
<van-col span="18" class="color_blue">{{infoData.createByDeptName}}</van-col>
|
<van-col span="8"><text class="color_purple">项目单位</text></van-col>
|
||||||
</van-row>
|
<van-col span="16" class="color_orange">{{ subDeptData.projectName}}</van-col>
|
||||||
</view>
|
</van-row>
|
||||||
<view class="inspect_overview_list">
|
</view>
|
||||||
<van-row>
|
<view class="inspect_overview_list">
|
||||||
<van-col span="6"><text class="color_purple">使用时间</text></van-col>
|
<van-row>
|
||||||
<van-col span="18">{{infoData.useTime}}</van-col>
|
<van-col span="8"><text class="color_purple">单位类型</text></van-col>
|
||||||
</van-row>
|
<van-col span="16" class="color_blue">{{subDeptData.subDeptTypeName}}</van-col>
|
||||||
</view>
|
</van-row>
|
||||||
<view class="inspect_overview_list">
|
</view>
|
||||||
<van-row>
|
<view class="inspect_overview_list">
|
||||||
<van-col span="6"><text class="color_purple">申请原因</text></van-col>
|
<van-row>
|
||||||
<van-col span="18">{{infoData.applyReason}}</van-col>
|
<van-col span="8"><text class="color_purple">单位名称</text></van-col>
|
||||||
</van-row>
|
<van-col span="16">{{subDeptData.subDeptName}}</van-col>
|
||||||
</view>
|
</van-row>
|
||||||
<view class="inspect_overview_list" wx:if="{{minImageList.length>0 || fileNames.length>0}}">
|
</view>
|
||||||
<van-row>
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
<van-col span="6"><text class="color_purple">申请附件</text></van-col>
|
<van-row>
|
||||||
<view class="problem_list_info_con in-img-max" wx:if="{{minImageList.length>0}}">
|
<van-col span="8"><text class="color_purple">信用代码</text></van-col>
|
||||||
<view class="in-img-div" wx:for="{{minImageList}}" wx:key="index">
|
<van-col span="16">{{subDeptData.subDeptCode}}</van-col>
|
||||||
<image bindtap='showImg' data-set="{{item.path}}" src='{{item.murl}}'></image>
|
</van-row>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">营业执照</text></van-col>
|
||||||
|
<van-col span="16">
|
||||||
|
<view class="problem_list_info_con in-img-max">
|
||||||
|
<view class="in-img-div" wx:key="index">
|
||||||
|
<image bindtap='showImg' data-set="{{subDeptData.businessLicensePath}}" src="{{imgBaseUrl+subDeptData.businessLicensePath+'.min.jpg'}}"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">法人姓名</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptData.subDeptInfos.legalPerson}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">法人身份证</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptData.subDeptInfos.legalPersonCard}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">法人证件</text></van-col>
|
||||||
|
<van-col span="16">
|
||||||
|
<view class="problem_list_info_con in-img-max">
|
||||||
|
<view class="in-img-div" wx:key="index">
|
||||||
|
<image bindtap='showImg' data-set="{{subDeptData.subDeptInfos.legalPersonCardImgPos}}" src="{{imgBaseUrl+subDeptData.subDeptInfos.legalPersonCardImgPos+'.min.jpg'}}"></image>
|
||||||
|
<image bindtap='showImg' data-set="{{subDeptData.subDeptInfos.legalPersonCardImgInv}}" src="{{imgBaseUrl+subDeptData.subDeptInfos.legalPersonCardImgInv+'.min.jpg'}}"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">进入场地时间</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptData.useDates}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">计划开工时间</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptData.startWorkDates}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">计划完工时间</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptData.endWorkDates}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">合同约定范围</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptData.contractInfos}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8">
|
||||||
|
<text wx:if="{{options.category=='1'}}" class="color_purple">委托代理人</text>
|
||||||
|
<text wx:if="{{options.category!='1'}}" class="color_purple">人员姓名</text>
|
||||||
|
</van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.nickName}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8">
|
||||||
|
<text wx:if="{{options.category=='1'}}" class="color_purple">代理人身份证</text>
|
||||||
|
<text wx:if="{{options.category!='1'}}" class="color_purple">身份证号码</text>
|
||||||
|
</van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.cardCode}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category!='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8">
|
||||||
|
<text class="color_purple">工种岗位</text>
|
||||||
|
</van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.craftPostName}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category!='1' && options.category!='2'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8">
|
||||||
|
<text class="color_purple">工种班组</text>
|
||||||
|
</van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.subDeptGroupName}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category!='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">所属民族</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.userInfos.nativePlace}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category!='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">详细地址</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.userInfos.address}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8">
|
||||||
|
<text wx:if="{{options.category=='1'}}" class="color_purple">代理人证件</text>
|
||||||
|
<text wx:if="{{options.category!='1'}}" class="color_purple">人员证件照</text>
|
||||||
|
</van-col>
|
||||||
|
<van-col span="16">
|
||||||
|
<view class="problem_list_info_con in-img-max">
|
||||||
|
<view class="in-img-div" wx:key="index">
|
||||||
|
<image bindtap='showImg' data-set="{{subDeptUserData.user.cardImgPos}}" src="{{imgBaseUrl+subDeptUserData.user.cardImgPos+'.min.jpg'}}"></image>
|
||||||
|
<image bindtap='showImg' data-set="{{subDeptUserData.user.cardImgInv}}" src="{{imgBaseUrl+subDeptUserData.user.cardImgInv+'.min.jpg'}}"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">花名册近照</text></van-col>
|
||||||
|
<van-col span="16">
|
||||||
|
<view class="problem_list_info_con in-img-max">
|
||||||
|
<view class="in-img-div" wx:key="index">
|
||||||
|
<image bindtap='showImg' data-set="{{subDeptUserData.user.userPicture}}" src="{{imgBaseUrl+subDeptUserData.user.userPicture+'.min.jpg'}}"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category!='4'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">单位委托书</text></van-col>
|
||||||
|
<van-col span="16">
|
||||||
|
<view class="problem_list_info_con in-img-max">
|
||||||
|
<view class="in-img-div" wx:key="index">
|
||||||
|
<image bindtap='showImg' data-set="{{subDeptUserData.subDeptPowerPath}}" src="{{imgBaseUrl+subDeptUserData.subDeptPowerPath+'.min.jpg'}}"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">联系电话</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.phonenumber}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category!='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">紧急联系人</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.userInfos.emergencyContact}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category!='1'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">紧急联系电话</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.userInfos.contactPhone}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">开户行名称</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.userInfos.bankName}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">开户行网点</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.userInfos.bankOffice}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">工资银行卡号</text></van-col>
|
||||||
|
<van-col span="16">{{subDeptUserData.user.userInfos.bankCardNo}}</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list">
|
||||||
|
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">高血压、心脏病等基础身体健康问题
|
||||||
</view>
|
</view>
|
||||||
<van-col span="18" class="color_blue" wx:if="{{fileNames.length>0}}">
|
<view class="inspect_info_content">
|
||||||
<view class="files" wx:for="{{fileNames}}" wx:key="index">
|
<text wx:if="{{subDeptUserData.illnessStatus=='0'}}" class="code_label_2 code_label_green" style="padding: 5rpx 50rpx;font-size: 25rpx;">无</text>
|
||||||
<text data-set="{{item}}" style="word-wrap: break-word;" bindtap='downFile'>{{item.name}}</text>
|
<text wx:if="{{subDeptUserData.illnessStatus!='0'}}" class="code_label_2 code_label_red" style="padding: 5rpx 50rpx;font-size: 25rpx;">有</text>
|
||||||
</view>
|
|
||||||
</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple"> 申 请 人 </text></van-col>
|
|
||||||
<van-col span="18">{{infoData.createBy}}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">申请时间</text></van-col>
|
|
||||||
<van-col span="18">{{infoData.createTime}}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view>
|
|
||||||
<view class="inspect_info" wx:for="{{infoData.proProjectApplyDetailList}}" wx:key="index">
|
|
||||||
<view class="module_title module_title_flex">
|
|
||||||
<view class="text_active">申请明细 {{ format.indexNumFormat(index) }}</view>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">申请明细</text></van-col>
|
|
||||||
<van-col span="18">{{item.typeName + ' > '+ item.assetsName }}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">申请数量</text></van-col>
|
|
||||||
<van-col span="18">{{item.number + ' '+ item.assetsUnit }}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list" wx:if="{{item.assetsVersion}}">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">规格型号</text></van-col>
|
|
||||||
<van-col span="18">{{item.assetsVersion }}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
<view class="inspect_overview_list" wx:if="{{item.assetsVersion}}">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="6"><text class="color_purple">使用说明</text></van-col>
|
|
||||||
<van-col span="18">{{ item.useReason }}</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view wx:if="{{stopBtnShow}}">
|
|
||||||
<view class="inspect_info">
|
|
||||||
<view class="inspect_overview_list">
|
|
||||||
<view class="inspect_overview_title" style="padding: 20rpx 0 10rpx;">终止原因</view>
|
|
||||||
<view class="inspect_overview_content">
|
|
||||||
<textarea class="add_textarea" placeholder="请填写终止原因(500字内)" placeholder-style="color:#6777aa;" maxlength="500" bindinput="commentblur" />
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="inspect_overview_list">
|
||||||
|
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">严重呼吸系统疾病、严重心脑血管疾病、肝肾疾病、恶性肿瘤以及药物无法有效控制的高血压和糖尿病等基础性病症状征兆
|
||||||
|
</view>
|
||||||
|
<view class="inspect_info_content">
|
||||||
|
<text wx:if="{{subDeptUserData.supIllnessStatus=='0'}}" class="code_label_2 code_label_green" style="padding: 5rpx 50rpx;font-size: 25rpx;">无</text>
|
||||||
|
<text wx:if="{{subDeptUserData.supIllnessStatus!='0'}}" class="code_label_2 code_label_red" style="padding: 5rpx 50rpx;font-size: 25rpx;">有</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_overview_list">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="8"><text class="color_purple">安全承诺书</text></van-col>
|
||||||
|
<van-col span="16" class="color_blue">
|
||||||
|
<view class="files">
|
||||||
|
<text data-set="{{subDeptUserData.eduFilePath}}" style="word-wrap: break-word;" bindtap='downFile'>点击下载安全承诺书</text>
|
||||||
|
</view>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="problem_submit_to">
|
|
||||||
<view wx:if="{{stopShow}}" class="problem_submit_to_btn problem_submit_to_warning" bindtap="onStop">终止</view>
|
|
||||||
<view wx:if="{{false}}" class="problem_submit_to_btn problem_submit_to_delete" bindtap="onDelete">删除</view>
|
|
||||||
<view wx:if="{{revocationShow}}" class="problem_submit_to_btn problem_submit_to_save" bindtap="onRevocation">撤回</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
|
@ -0,0 +1,270 @@
|
||||||
|
import config from '../../../config'
|
||||||
|
import {
|
||||||
|
getToken
|
||||||
|
} from '../../../utils/auth'
|
||||||
|
import {
|
||||||
|
quueryCount,
|
||||||
|
myAwaitFlowTaskList,
|
||||||
|
myFinishedFlowTaskList,
|
||||||
|
} from '../../../api/flowable'
|
||||||
|
const app = getApp()
|
||||||
|
Page({
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面的初始数据
|
||||||
|
*/
|
||||||
|
data: {
|
||||||
|
projectId:'',
|
||||||
|
projectName:'',
|
||||||
|
initData: {},
|
||||||
|
activeState:"dsh",
|
||||||
|
dshCount:0,
|
||||||
|
yshCount:0,
|
||||||
|
listData:[],
|
||||||
|
pageNum:1,
|
||||||
|
pageSize:10,
|
||||||
|
total:0,
|
||||||
|
imgBaseUrl: config.baseImgUrl
|
||||||
|
},
|
||||||
|
|
||||||
|
//项目切换 返回值
|
||||||
|
onProjectSelect(e) {
|
||||||
|
let projectId = e.detail.id;
|
||||||
|
let projectName = e.detail.text;
|
||||||
|
app.globalData.useProjectId = projectId;
|
||||||
|
app.globalData.useProjectName = projectName;
|
||||||
|
this.onLoad();
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面加载
|
||||||
|
*/
|
||||||
|
onLoad(options) {
|
||||||
|
if (getToken()) {
|
||||||
|
this.setData({
|
||||||
|
pageNum:1,
|
||||||
|
pageSize:10,
|
||||||
|
lastDataSize:10,
|
||||||
|
listData:[],
|
||||||
|
total:0,
|
||||||
|
dshCount:0,
|
||||||
|
yshCount:0,
|
||||||
|
activeState:"dsh",
|
||||||
|
projectId: app.globalData.useProjectId,
|
||||||
|
projectName: app.globalData.useProjectName,
|
||||||
|
initData: {
|
||||||
|
id: app.globalData.useProjectId,
|
||||||
|
text: app.globalData.useProjectName,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.getListData();
|
||||||
|
this.getFlowableCount();
|
||||||
|
} else {
|
||||||
|
console.log("未查询到Token...{}...准备重新登录")
|
||||||
|
wx.redirectTo({
|
||||||
|
url: '../login/login',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询列表数据
|
||||||
|
*/
|
||||||
|
getListData(){
|
||||||
|
let params = "pageNum=" + this.data.pageNum + "&pageSize=" + this.data.pageSize+"&activeTags=depts&startProId="+app.globalData.useProjectId;
|
||||||
|
if(this.data.activeState=='dsh'){
|
||||||
|
myAwaitFlowTaskList(params).then(res =>{
|
||||||
|
if (res.code == "200") {
|
||||||
|
res.rows.forEach(item =>{
|
||||||
|
item.businessImg = this.data.imgBaseUrl+item.businessImg;
|
||||||
|
item.durationStr = this.getDurationDate(item.duration);
|
||||||
|
});
|
||||||
|
this.setData({
|
||||||
|
total: res.total,
|
||||||
|
listData: this.data.listData.concat(res.rows)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
myFinishedFlowTaskList(params).then(res =>{
|
||||||
|
if (res.code == "200") {
|
||||||
|
res.rows.forEach(item =>{
|
||||||
|
item.businessImg = this.data.imgBaseUrl+item.businessImg;
|
||||||
|
item.durationStr = this.getDurationDate(item.duration);
|
||||||
|
});
|
||||||
|
this.setData({
|
||||||
|
total: res.total,
|
||||||
|
listData: this.data.listData.concat(res.rows)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计分包单位数据
|
||||||
|
*/
|
||||||
|
getFlowableCount(){
|
||||||
|
let params = "activeTags=depts&startProId="+app.globalData.useProjectId;
|
||||||
|
quueryCount(params).then(res => {
|
||||||
|
if(res.code==200){
|
||||||
|
this.setData({
|
||||||
|
dshCount: res.data.await,
|
||||||
|
yshCount: res.data.finished
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计审批数据
|
||||||
|
*/
|
||||||
|
onScrollToLower() {
|
||||||
|
let nal = Math.ceil(this.data.total / this.data.pageSize);
|
||||||
|
if (this.data.pageNum < nal) {
|
||||||
|
this.setData({
|
||||||
|
pageNum: this.data.pageNum + 1
|
||||||
|
});
|
||||||
|
this.getListData();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 切换页签数据
|
||||||
|
*/
|
||||||
|
switchTabJump(e){
|
||||||
|
let index = e.currentTarget.dataset.index;
|
||||||
|
let nav = "";
|
||||||
|
if(index == 1){
|
||||||
|
nav = 'dsh';
|
||||||
|
}else{
|
||||||
|
nav = 'ysh';
|
||||||
|
}
|
||||||
|
if(nav!=this.data.activeState){
|
||||||
|
this.setData({
|
||||||
|
activeState:nav,
|
||||||
|
pageNum:1,
|
||||||
|
pageSize:10,
|
||||||
|
listData:[],
|
||||||
|
});
|
||||||
|
this.getListData();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 点击栏目
|
||||||
|
* @param {*} e
|
||||||
|
*/
|
||||||
|
findDetail(e){
|
||||||
|
let {taskId,procInsId,deployId,category,businessKey,finishTime} = e.currentTarget.dataset.set
|
||||||
|
wx.setStorageSync('nav-types', "depts");
|
||||||
|
if(finishTime){
|
||||||
|
//详情页面
|
||||||
|
wx.redirectTo({
|
||||||
|
url: `../detailTask/index?taskId=${taskId}&procInsId=${procInsId}&deployId=${deployId}&category=${category}&businessKey=${businessKey}`
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
//审批页面
|
||||||
|
wx.redirectTo({
|
||||||
|
url: `../approveTask/index?taskId=${taskId}&procInsId=${procInsId}&deployId=${deployId}&category=${category}&businessKey=${businessKey}`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 办理时间计算
|
||||||
|
* @param {*} val
|
||||||
|
*/
|
||||||
|
getDurationDate(val){
|
||||||
|
let day=0;
|
||||||
|
let hours=0;
|
||||||
|
let min = val;
|
||||||
|
if(min>1440){
|
||||||
|
day = parseInt(min/1440);
|
||||||
|
min = min % 1440;
|
||||||
|
if(min>60){
|
||||||
|
hours = parseInt(min/60);
|
||||||
|
min = min % 60;
|
||||||
|
}
|
||||||
|
}else if(min>60){
|
||||||
|
hours = parseInt(min/60);
|
||||||
|
min = min % 60;
|
||||||
|
}
|
||||||
|
if(day>0){
|
||||||
|
if(day<10) day="0"+day;
|
||||||
|
if(hours<10) hours="0"+hours;
|
||||||
|
if(min<10) min="0"+min;
|
||||||
|
return day+"天"+hours+"小时"+min+"分钟";
|
||||||
|
}
|
||||||
|
if(hours>0){
|
||||||
|
if(hours<10) hours="0"+hours;
|
||||||
|
if(min<10) min="0"+min;
|
||||||
|
return hours+"小时"+min+"分钟";
|
||||||
|
}
|
||||||
|
if(min>0){
|
||||||
|
if(min<10) min="0"+min;
|
||||||
|
return min+"分钟";
|
||||||
|
}
|
||||||
|
if(min==0){
|
||||||
|
return "1分钟";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回页面
|
||||||
|
*/
|
||||||
|
returnToPage: function () {
|
||||||
|
wx.redirectTo({
|
||||||
|
url: '../../project_more/index',
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面初次渲染完成
|
||||||
|
*/
|
||||||
|
onReady() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面显示
|
||||||
|
*/
|
||||||
|
onShow() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面隐藏
|
||||||
|
*/
|
||||||
|
onHide() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面卸载
|
||||||
|
*/
|
||||||
|
onUnload() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面相关事件处理函数--监听用户下拉动作
|
||||||
|
*/
|
||||||
|
onPullDownRefresh() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面上拉触底事件的处理函数
|
||||||
|
*/
|
||||||
|
onReachBottom() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户点击右上角分享
|
||||||
|
*/
|
||||||
|
onShareAppMessage() {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
|
@ -0,0 +1,57 @@
|
||||||
|
<view class="header_title">
|
||||||
|
<view class="header_title_row">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="4">
|
||||||
|
<view class="header_img" bindtap="returnToPage">
|
||||||
|
<image src="/images/left.png"></image>
|
||||||
|
</view>
|
||||||
|
</van-col>
|
||||||
|
<van-col span="15">
|
||||||
|
<view class="header_name">分包单位审核</view>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<scroll-view class="max_content_scroll" type="list" scroll-y bindscrolltolower="onScrollToLower">
|
||||||
|
<project-select init="{{initData}}" bindchange="onProjectSelect" id="projectSel"></project-select>
|
||||||
|
<view class="modify_video_nav" style="margin-top: 5rpx;">
|
||||||
|
<view class="{{activeState=='dsh'?'active':''}}" bindtap="switchTabJump" data-index="1"><text>待审核({{dshCount}})</text></view>
|
||||||
|
<view class="{{activeState=='ysh'?'active':''}}" bindtap="switchTabJump" data-index="2"><text>已审核({{yshCount}})</text></view>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_max_scroll">
|
||||||
|
<!--专项检查样式zxjc-->
|
||||||
|
<view class="inspect_for_scroll" v-if="{{ listData.length>0 }}" wx:for="{{listData}}" wx:key="index" data-set="{{item}}" bindtap="findDetail">
|
||||||
|
<view class="inspect_for_bgd">
|
||||||
|
<view class="inspect_list_title">
|
||||||
|
<view class="inspect_list_title_label inspect_list_title_width">
|
||||||
|
<view class="inspect_list_title_number">{{index < 9 ?'0'+(index+1):(index+1)}}</view>
|
||||||
|
<view class="module_title_3 module_title_flex">
|
||||||
|
<text wx:if="{{!item.endTime}}" class="color_purple">申请时间 {{item.createTime}}</text>
|
||||||
|
<text wx:if="{{item.endTime}}" class="color_purple">办结时间 {{item.endTime}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="inspect_list_info">
|
||||||
|
<view class="inspect_list_info_details">
|
||||||
|
<view class="inspect_list_info_img">
|
||||||
|
<van-image width="120rpx" height="120rpx" fit="cover" src="{{item.businessImg+'.min.jpg'}}" />
|
||||||
|
</view>
|
||||||
|
<view class="inspect_list_info_data">
|
||||||
|
<view class="inspect_list_info_data_prop color_blue">单位类型:<text>{{item.businessMk2}}</text></view>
|
||||||
|
<view class="inspect_list_info_data_prop">单位名称:<text>{{item.businessMk1}}</text></view>
|
||||||
|
<view class="inspect_list_info_data_prop">信用代码:<text>{{item.businessMk3}}</text></view>
|
||||||
|
<view class="inspect_list_info_data_prop color_orange">处理耗时:{{item.durationStr}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view wx:if="{{listData.length==0}}">
|
||||||
|
<view style="padding-top: 70px;text-align: -webkit-center;">
|
||||||
|
<image src="https://szgcwx.jhncidg.com/staticFiles/nodata.png" style="width: 130px;height: 105px;"></image>
|
||||||
|
<view style="color: #a5abbb;">暂无数据</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
|
@ -0,0 +1 @@
|
||||||
|
/* pages/project_flowable/subDepts/index.wxss */
|
|
@ -0,0 +1,66 @@
|
||||||
|
// pages/project_flowable/subDeptsUsers/index.js
|
||||||
|
Page({
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面的初始数据
|
||||||
|
*/
|
||||||
|
data: {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面加载
|
||||||
|
*/
|
||||||
|
onLoad(options) {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面初次渲染完成
|
||||||
|
*/
|
||||||
|
onReady() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面显示
|
||||||
|
*/
|
||||||
|
onShow() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面隐藏
|
||||||
|
*/
|
||||||
|
onHide() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面卸载
|
||||||
|
*/
|
||||||
|
onUnload() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面相关事件处理函数--监听用户下拉动作
|
||||||
|
*/
|
||||||
|
onPullDownRefresh() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面上拉触底事件的处理函数
|
||||||
|
*/
|
||||||
|
onReachBottom() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户点击右上角分享
|
||||||
|
*/
|
||||||
|
onShareAppMessage() {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"usingComponents": {}
|
||||||
|
}
|
|
@ -0,0 +1,2 @@
|
||||||
|
<!--pages/project_flowable/subDeptsUsers/index.wxml-->
|
||||||
|
<text>pages/project_flowable/subDeptsUsers/index.wxml</text>
|
|
@ -0,0 +1 @@
|
||||||
|
/* pages/project_flowable/subDeptsUsers/index.wxss */
|
|
@ -1,4 +1,3 @@
|
||||||
import * as echarts from '../../ec-canvas/echarts';
|
|
||||||
import config from '../../config'
|
import config from '../../config'
|
||||||
import {
|
import {
|
||||||
getToken
|
getToken
|
||||||
|
@ -14,9 +13,7 @@ import {
|
||||||
findUsersAttendanceView,
|
findUsersAttendanceView,
|
||||||
findSubDeptsAttendanceView
|
findSubDeptsAttendanceView
|
||||||
} from '../../api/attendance'
|
} from '../../api/attendance'
|
||||||
|
|
||||||
const app = getApp();
|
const app = getApp();
|
||||||
|
|
||||||
Page({
|
Page({
|
||||||
/**
|
/**
|
||||||
* 页面的初始数据
|
* 页面的初始数据
|
||||||
|
@ -47,38 +44,8 @@ Page({
|
||||||
"iconSrc": "https://guangzhou.sxyanzhu.com/YZLJXM/profile/icon/zbdw.png"
|
"iconSrc": "https://guangzhou.sxyanzhu.com/YZLJXM/profile/icon/zbdw.png"
|
||||||
}],
|
}],
|
||||||
active: 0,
|
active: 0,
|
||||||
show: false,
|
|
||||||
ec_1: {
|
|
||||||
lazyLoad: true //动态加载
|
|
||||||
},
|
|
||||||
ec_2: {
|
|
||||||
lazyLoad: true
|
|
||||||
},
|
|
||||||
ec_3: {
|
|
||||||
lazyLoad: true
|
|
||||||
},
|
|
||||||
//参数——————————————————————————————————————
|
|
||||||
//组织架构id
|
|
||||||
deptId: '',
|
|
||||||
//项目的id
|
|
||||||
projectId: '',
|
projectId: '',
|
||||||
//项目名称参数
|
projectName: '',
|
||||||
projectNameArgs: '',
|
|
||||||
//视频接入数
|
|
||||||
videoNum: '',
|
|
||||||
//正常视频数
|
|
||||||
videoOnline: '',
|
|
||||||
//机械接入数
|
|
||||||
machineryNum: '',
|
|
||||||
//正常机械运行数
|
|
||||||
machineryOnline: '',
|
|
||||||
monthEarlyNum: '0',
|
|
||||||
yangchenCount: '0',
|
|
||||||
weather: '',
|
|
||||||
weatherPic: '',
|
|
||||||
temperature: '',
|
|
||||||
//加载模板参数
|
|
||||||
loadShow: false,
|
|
||||||
initData: {},
|
initData: {},
|
||||||
todoDb: 0,
|
todoDb: 0,
|
||||||
approveDb: 0,
|
approveDb: 0,
|
||||||
|
@ -149,101 +116,15 @@ Page({
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
switchChart: false,
|
switchChart: false,
|
||||||
attendanceListData:[],
|
attendanceListData: [],
|
||||||
subDeptUserInfo:{},
|
subDeptUserInfo: {},
|
||||||
imgBaseUrl:config.baseImgUrl
|
imgBaseUrl: config.baseImgUrl
|
||||||
},
|
|
||||||
|
|
||||||
// 事件委托
|
|
||||||
selectedTab(e) {
|
|
||||||
this.setData({
|
|
||||||
nactive: e.target.dataset.set,
|
|
||||||
labourImg: this.data.labourTypeList[e.target.dataset.set].img,
|
|
||||||
})
|
|
||||||
this.initSubDeptUsersCharts();
|
|
||||||
},
|
|
||||||
|
|
||||||
//项目切换 返回值
|
|
||||||
onProjectSelect(e) {
|
|
||||||
this.onClickShow();
|
|
||||||
let projectId = e.detail.id;
|
|
||||||
let projectName = e.detail.text;
|
|
||||||
app.globalData.projectId = projectId;
|
|
||||||
app.globalData.projectName = projectName;
|
|
||||||
this.setData({
|
|
||||||
switchChart: true,
|
|
||||||
projectId: projectId,
|
|
||||||
projectName: projectName
|
|
||||||
})
|
|
||||||
this.onLoad();
|
|
||||||
},
|
|
||||||
|
|
||||||
// 手风琴
|
|
||||||
onCollChange(event) {
|
|
||||||
this.setData({
|
|
||||||
activeNames: event.detail,
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
//初始化视频监控饼图数据
|
|
||||||
init_one: function (datas_1) {
|
|
||||||
this.oneComponent.init((canvas, width, height, dpr) => {
|
|
||||||
const chart = echarts.init(canvas, null, {
|
|
||||||
width: width,
|
|
||||||
height: height,
|
|
||||||
devicePixelRatio: dpr //解决小程序视图模糊的问题,必写
|
|
||||||
});
|
|
||||||
initChart_1(chart, datas_1);
|
|
||||||
this.chart = chart;
|
|
||||||
return chart;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
//初始化机械设备饼图数据
|
|
||||||
init_two: function (datas_2, datas_name) {
|
|
||||||
this.twoComponent.init((canvas, width, height, dpr) => {
|
|
||||||
const chart = echarts.init(canvas, null, {
|
|
||||||
width: width,
|
|
||||||
height: height,
|
|
||||||
devicePixelRatio: dpr //解决小程序视图模糊的问题,必写
|
|
||||||
});
|
|
||||||
initChart_2(chart, datas_2, datas_name);
|
|
||||||
this.chart = chart;
|
|
||||||
return chart;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
//初始化劳务管理
|
|
||||||
init_three: function (xData_1, yData_1) {
|
|
||||||
this.threeComponent.init((canvas, width, height, dpr) => {
|
|
||||||
const chart = echarts.init(canvas, null, {
|
|
||||||
width: width,
|
|
||||||
height: height,
|
|
||||||
devicePixelRatio: dpr //解决小程序视图模糊的问题,必写
|
|
||||||
});
|
|
||||||
initChart_3(chart, xData_1, yData_1);
|
|
||||||
this.chart = chart;
|
|
||||||
return chart;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
onClickShow() {
|
|
||||||
this.setData({
|
|
||||||
loadShow: false
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
onClickHide() {
|
|
||||||
this.setData({
|
|
||||||
loadShow: false
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生命周期函数--监听页面加载
|
* 生命周期函数--监听页面加载
|
||||||
*/
|
*/
|
||||||
onLoad: function (options) {
|
onLoad: function (options) {
|
||||||
console.log("config.imgBaseUrl",config.baseImgUrl,this.data.imgBaseUrl)
|
|
||||||
this.setData({
|
this.setData({
|
||||||
labourImg: this.data.labourTypeList[this.data.nactive].img,
|
labourImg: this.data.labourTypeList[this.data.nactive].img,
|
||||||
});
|
});
|
||||||
|
@ -380,6 +261,10 @@ Page({
|
||||||
"labourData[2].yesMonitor": lw,
|
"labourData[2].yesMonitor": lw,
|
||||||
labourTotal: this.data.labourTypeList[this.data.nactive].total
|
labourTotal: this.data.labourTypeList[this.data.nactive].total
|
||||||
})
|
})
|
||||||
|
if (this.data.switchChart) {
|
||||||
|
let chats = this.selectComponent("#userChart");
|
||||||
|
chats.initChart();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -412,6 +297,10 @@ Page({
|
||||||
"labourDays[2].yesMonitor": lw,
|
"labourDays[2].yesMonitor": lw,
|
||||||
labourDaysTotal: gl + ts + lw
|
labourDaysTotal: gl + ts + lw
|
||||||
})
|
})
|
||||||
|
if (this.data.switchChart) {
|
||||||
|
let chats = this.selectComponent("#attsChart");
|
||||||
|
chats.initChart();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -460,9 +349,9 @@ Page({
|
||||||
* 查询用户考勤
|
* 查询用户考勤
|
||||||
* @param {*} proId
|
* @param {*} proId
|
||||||
*/
|
*/
|
||||||
getUsersAttendanceView(proId){
|
getUsersAttendanceView(proId) {
|
||||||
findUsersAttendanceView(proId).then(res =>{
|
findUsersAttendanceView(proId).then(res => {
|
||||||
if(res.code==200){
|
if (res.code == 200) {
|
||||||
this.setData({
|
this.setData({
|
||||||
attendanceListData: res.data
|
attendanceListData: res.data
|
||||||
});
|
});
|
||||||
|
@ -474,8 +363,9 @@ Page({
|
||||||
* 查询单位人员信息
|
* 查询单位人员信息
|
||||||
* @param {*} proId
|
* @param {*} proId
|
||||||
*/
|
*/
|
||||||
getProSubDeptsUserInfo(proId){
|
getProSubDeptsUserInfo(proId) {
|
||||||
findProSubDeptsUserByParams(proId).then(res =>{
|
findProSubDeptsUserByParams(proId).then(res => {
|
||||||
|
app.globalData.subDeptUserData = res.data;
|
||||||
this.setData({
|
this.setData({
|
||||||
subDeptUserInfo: res.data
|
subDeptUserInfo: res.data
|
||||||
});
|
});
|
||||||
|
@ -586,134 +476,32 @@ Page({
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
//加载天气数据
|
// 页签选中事件
|
||||||
getWeatherData: function (even1, even2) {
|
selectedTab(e) {
|
||||||
var that = this;
|
this.setData({
|
||||||
wx.request({
|
nactive: e.target.dataset.set,
|
||||||
url: app.globalData.reqUrl + '/weixin/applets/selectWeather',
|
labourImg: this.data.labourTypeList[e.target.dataset.set].img,
|
||||||
method: "GET",
|
|
||||||
data: {
|
|
||||||
lng: even1,
|
|
||||||
lat: even2,
|
|
||||||
},
|
|
||||||
success: function (weatherRes) {
|
|
||||||
that.setData({
|
|
||||||
weather: weatherRes.data.weather,
|
|
||||||
weatherPic: weatherRes.data.weatherPic,
|
|
||||||
temperature: weatherRes.data.temperature
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
this.initSubDeptUsersCharts();
|
||||||
},
|
},
|
||||||
|
|
||||||
// 获取项目下的视频数
|
//项目切换 返回值
|
||||||
getProjectVideoAll: function (even) {
|
onProjectSelect(e) {
|
||||||
wx.request({
|
let projectId = e.detail.id;
|
||||||
url: app.globalData.reqUrl + '/weixin/video/getProjectVideoNum',
|
let projectName = e.detail.text;
|
||||||
method: 'get',
|
app.globalData.useProjectId = projectId;
|
||||||
data: {
|
app.globalData.useProjectName = projectName;
|
||||||
projectName: even
|
this.setData({
|
||||||
},
|
switchChart: true
|
||||||
success: resData => {
|
|
||||||
this.setData({
|
|
||||||
videoNum: resData.data.videoAll,
|
|
||||||
videoOnline: resData.data.videoOnline
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
this.onLoad();
|
||||||
},
|
},
|
||||||
|
|
||||||
// 获取机械的数据
|
// 手风琴
|
||||||
getMachineryNum: function (event) {
|
onCollChange(event) {
|
||||||
wx.request({
|
this.setData({
|
||||||
url: app.globalData.reqUrl + '/mkl/machinery/getMachineryDataWest',
|
activeNames: event.detail,
|
||||||
data: {
|
});
|
||||||
"projectId": event
|
|
||||||
},
|
|
||||||
method: 'get',
|
|
||||||
success: resData => {
|
|
||||||
this.setData({
|
|
||||||
machineryNum: resData.data.allNum,
|
|
||||||
machineryOnline: resData.data.onlineNum
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
//机械的列表,名称
|
|
||||||
getMachineryList: function (event) {
|
|
||||||
var that = this;
|
|
||||||
wx.request({
|
|
||||||
url: app.globalData.reqUrl + '/mkl/machinery/getMachineryListWest',
|
|
||||||
data: {
|
|
||||||
"projectId": event
|
|
||||||
},
|
|
||||||
method: 'GET',
|
|
||||||
success: resData => {
|
|
||||||
if (resData.data == '') {
|
|
||||||
that.init_two([{
|
|
||||||
"value": "0",
|
|
||||||
"name": ""
|
|
||||||
}]);
|
|
||||||
} else {
|
|
||||||
that.init_two(resData.data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
//获取视频的列表,名称
|
|
||||||
getVideoList: function (even) {
|
|
||||||
var that = this;
|
|
||||||
wx.request({
|
|
||||||
url: app.globalData.reqUrl + '/weixin/video/getProjectVideoListEc',
|
|
||||||
method: 'GET',
|
|
||||||
data: {
|
|
||||||
projectName: even
|
|
||||||
},
|
|
||||||
success: resData => {
|
|
||||||
that.onClickHide();
|
|
||||||
if (resData.data.length > 0) {
|
|
||||||
that.init_one(resData.data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
//查询劳务人员出勤数据
|
|
||||||
selectEnvirData: function (even) {
|
|
||||||
var that = this;
|
|
||||||
wx.request({
|
|
||||||
url: app.globalData.reqUrl + '/weixin/userinfo/selectAttendanceNum',
|
|
||||||
method: "GET",
|
|
||||||
data: {
|
|
||||||
projectId: even,
|
|
||||||
},
|
|
||||||
success: function (hjyj) {
|
|
||||||
that.setData({
|
|
||||||
monthEarlyNum: hjyj.data.userCount,
|
|
||||||
yangchenCount: hjyj.data.userCount
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
//查询出最近一周劳务人员考勤人数
|
|
||||||
wx.request({
|
|
||||||
url: app.globalData.reqUrl + '/weixin/userinfo/selectLabourDayByProjectId',
|
|
||||||
method: "GET",
|
|
||||||
data: {
|
|
||||||
projectId: even
|
|
||||||
},
|
|
||||||
success: function (sspm) {
|
|
||||||
var createTime = [];
|
|
||||||
var userCount = [];
|
|
||||||
for (var i = 0; i < sspm.data.length; i++) {
|
|
||||||
createTime.push(sspm.data[i].createTime);
|
|
||||||
userCount.push(sspm.data[i].userCount);
|
|
||||||
}
|
|
||||||
that.init_three(createTime, userCount);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -790,7 +578,14 @@ Page({
|
||||||
//跳转到更多功能
|
//跳转到更多功能
|
||||||
GDGN: function () {
|
GDGN: function () {
|
||||||
wx.redirectTo({
|
wx.redirectTo({
|
||||||
url: '../gengduogongneng/index'
|
url: '../project_more/index'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
//跳转到项目列表
|
||||||
|
XMLB: function () {
|
||||||
|
wx.redirectTo({
|
||||||
|
url: '../project_list/index'
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -2,16 +2,12 @@
|
||||||
"usingComponents": {
|
"usingComponents": {
|
||||||
"van-row": "@vant/weapp/row",
|
"van-row": "@vant/weapp/row",
|
||||||
"van-col": "@vant/weapp/col",
|
"van-col": "@vant/weapp/col",
|
||||||
"van-action-sheet": "@vant/weapp/action-sheet",
|
|
||||||
"van-sticky": "@vant/weapp/sticky",
|
|
||||||
"van-tabbar": "@vant/weapp/tabbar",
|
"van-tabbar": "@vant/weapp/tabbar",
|
||||||
"van-tabbar-item": "@vant/weapp/tabbar-item",
|
"van-tabbar-item": "@vant/weapp/tabbar-item",
|
||||||
"van-popup": "@vant/weapp/popup/index",
|
|
||||||
"van-collapse": "@vant/weapp/collapse",
|
"van-collapse": "@vant/weapp/collapse",
|
||||||
"van-collapse-item": "@vant/weapp/collapse-item",
|
"van-collapse-item": "@vant/weapp/collapse-item",
|
||||||
"ec-canvas": "../../ec-canvas/ec-canvas",
|
"ec-canvas": "../../ec-canvas/ec-canvas",
|
||||||
"van-notice-bar": "@vant/weapp/notice-bar",
|
"van-notice-bar": "@vant/weapp/notice-bar"
|
||||||
"van-overlay": "@vant/weapp/overlay/index"
|
|
||||||
},
|
},
|
||||||
"navigationStyle":"custom"
|
"navigationStyle":"custom"
|
||||||
}
|
}
|
|
@ -1,15 +1,21 @@
|
||||||
<wxs module="format" src="/utils/format.wxs"></wxs>
|
<wxs module="format" src="/utils/format.wxs"></wxs>
|
||||||
<view class="header_title">
|
<view class="header_title">
|
||||||
<view class="header_title_row">
|
<view class="header_title_row">
|
||||||
<van-row>
|
<van-row>
|
||||||
<van-col span="5">
|
<van-col span="4">
|
||||||
<user-infos id="userInfos"></user-infos>
|
<view class="header_img" bindtap="XMLB">
|
||||||
</van-col>
|
<image src="/images/left.png"></image>
|
||||||
<van-col span="14">
|
<text class="header_fh">返回</text>
|
||||||
<view class="header_name">{{title}}</view>
|
</view>
|
||||||
</van-col>
|
</van-col>
|
||||||
</van-row>
|
<van-col span="3">
|
||||||
</view>
|
<user-infos></user-infos>
|
||||||
|
</van-col>
|
||||||
|
<van-col span="10">
|
||||||
|
<view class="header_name">{{title}}</view>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 中间内容 -->
|
<!-- 中间内容 -->
|
||||||
|
@ -101,7 +107,7 @@
|
||||||
</view>
|
</view>
|
||||||
</van-col>
|
</van-col>
|
||||||
<van-col span="16">
|
<van-col span="16">
|
||||||
<safety-bar-chart chart-id="chart2" data="{{labourData}}" height="350"></safety-bar-chart>
|
<safety-bar-chart id="userChart" chart-id="userChart" data="{{labourData}}" height="350"></safety-bar-chart>
|
||||||
</van-col>
|
</van-col>
|
||||||
</van-row>
|
</van-row>
|
||||||
</view>
|
</view>
|
||||||
|
@ -131,7 +137,7 @@
|
||||||
</view>
|
</view>
|
||||||
</van-col>
|
</van-col>
|
||||||
<van-col span="16">
|
<van-col span="16">
|
||||||
<safety-bar-chart chart-id="chart2" data="{{labourDays}}" height="350"></safety-bar-chart>
|
<safety-bar-chart id="attsChart" chart-id="attsChart" data="{{labourDays}}" height="350"></safety-bar-chart>
|
||||||
</van-col>
|
</van-col>
|
||||||
</van-row>
|
</van-row>
|
||||||
</view>
|
</view>
|
||||||
|
@ -264,11 +270,4 @@
|
||||||
<span class="tabNum" wx:if="{{todoDb>0}}">{{todoDb}}</span>
|
<span class="tabNum" wx:if="{{todoDb>0}}">{{todoDb}}</span>
|
||||||
</van-tabbar-item>
|
</van-tabbar-item>
|
||||||
|
|
||||||
</van-tabbar>
|
</van-tabbar>
|
||||||
|
|
||||||
<van-overlay show="{{loadShow}}">
|
|
||||||
<view class="gif">
|
|
||||||
<image src="../../images/loding2.gif"></image>
|
|
||||||
<view>数据加载中!请稍后...</view>
|
|
||||||
</view>
|
|
||||||
</van-overlay>
|
|
|
@ -183,6 +183,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
margin-top: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.survey_content_img {
|
.survey_content_img {
|
||||||
|
|
|
@ -0,0 +1,156 @@
|
||||||
|
import {
|
||||||
|
getToken
|
||||||
|
} from '../../utils/auth'
|
||||||
|
import {
|
||||||
|
findUserMenuList
|
||||||
|
} from '../../api/publics'
|
||||||
|
const app = getApp()
|
||||||
|
Page({
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面的初始数据
|
||||||
|
*/
|
||||||
|
data: {
|
||||||
|
active:4,
|
||||||
|
projectId:'',
|
||||||
|
projectName:'' ,
|
||||||
|
loginName:'',
|
||||||
|
remark:'',
|
||||||
|
roleId:'',
|
||||||
|
roleName:'',
|
||||||
|
menuList:[],
|
||||||
|
initData:{},
|
||||||
|
hiddenn:true,
|
||||||
|
todoDB:0,
|
||||||
|
lzyjDB:0,
|
||||||
|
approveDB:0,
|
||||||
|
ad:0,
|
||||||
|
todoDb:0,
|
||||||
|
aq:0,
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
//项目切换 返回值
|
||||||
|
onProjectSelect(e){
|
||||||
|
let projectId = e.detail.id;
|
||||||
|
let projectName = e.detail.text;
|
||||||
|
app.globalData.useProjectId = projectId;
|
||||||
|
app.globalData.useProjectName = projectName;
|
||||||
|
this.onLoad();
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面加载
|
||||||
|
*/
|
||||||
|
onLoad: function (options) {
|
||||||
|
if (getToken()) {
|
||||||
|
this.setData({
|
||||||
|
userData: app.globalData.userData,
|
||||||
|
projectId: app.globalData.useProjectId,
|
||||||
|
projectName: app.globalData.useProjectName,
|
||||||
|
initData: {
|
||||||
|
id: app.globalData.useProjectId,
|
||||||
|
text: app.globalData.useProjectName,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//用户权限菜单
|
||||||
|
this.getUserMenuList(app.globalData.useProjectId);
|
||||||
|
} else {
|
||||||
|
console.log("未查询到Token...{}...准备重新登录")
|
||||||
|
wx.redirectTo({
|
||||||
|
url: '../login/login',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询功能菜单
|
||||||
|
* @param {*} proId
|
||||||
|
*/
|
||||||
|
getUserMenuList:function(proId){
|
||||||
|
findUserMenuList(proId,'gdgn').then(res =>{
|
||||||
|
if(res.code==200){
|
||||||
|
this.setData({
|
||||||
|
menuList:res.data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
goMenu:function(event){
|
||||||
|
wx.redirectTo({
|
||||||
|
url: event.currentTarget.dataset.url
|
||||||
|
})
|
||||||
|
//wx.navigateToMiniProgram({
|
||||||
|
// appId: 'wx7c39a25db91228f7',
|
||||||
|
// path: 'pages/tabbar/order-new/index?type=0'
|
||||||
|
//})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 底部导航
|
||||||
|
onChange(event) {
|
||||||
|
// event.detail 的值为当前选中项的索引
|
||||||
|
this.setData({ active: event.detail });
|
||||||
|
},
|
||||||
|
|
||||||
|
//跳转到项目概况页面
|
||||||
|
XMGK:function(){
|
||||||
|
wx.redirectTo({
|
||||||
|
url: '../project_info/index'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
//跳转到安全管理
|
||||||
|
AQGL:function(){
|
||||||
|
app.toast("正在建设中");
|
||||||
|
// wx.redirectTo({
|
||||||
|
// url:'../safety_manage/index'
|
||||||
|
// })
|
||||||
|
},
|
||||||
|
|
||||||
|
//跳转到质量管理
|
||||||
|
ZLGL:function(){
|
||||||
|
app.toast("正在建设中");
|
||||||
|
// wx.redirectTo({
|
||||||
|
// url:'../quality_manage/index'
|
||||||
|
// })
|
||||||
|
},
|
||||||
|
|
||||||
|
//跳转到进度管理
|
||||||
|
JDGL2:function(){
|
||||||
|
app.toast("正在建设中");
|
||||||
|
// wx.redirectTo({
|
||||||
|
// url:'../../pageage/project_schedule/list/index'
|
||||||
|
// })
|
||||||
|
},
|
||||||
|
|
||||||
|
//查询当前登录人的代办任务
|
||||||
|
awaitTask(minRoleId,deptId,loginName,userId) {
|
||||||
|
let param = {
|
||||||
|
"businessKey":app.globalData.projectId,
|
||||||
|
"nowRole":minRoleId,
|
||||||
|
"nowDept":deptId,
|
||||||
|
"nowUserName":loginName,
|
||||||
|
"nowUser":userId,
|
||||||
|
"activeName":"await"
|
||||||
|
}
|
||||||
|
var that = this;
|
||||||
|
wx.request({
|
||||||
|
url: app.globalData.reqUrl + '/wechat/flowTask/myAwaitFlowTaskListCount',
|
||||||
|
data:param,
|
||||||
|
method: "post",
|
||||||
|
success: function (res) {
|
||||||
|
res = res.data;
|
||||||
|
if(res.code=="200"){
|
||||||
|
that.setData({
|
||||||
|
todoDB:res.data.todo,
|
||||||
|
lzyjDB:res.data.approveLZYJ,
|
||||||
|
todoDb:res.data.todo,
|
||||||
|
ad:res.data.approve+res.data.zlCount,
|
||||||
|
aq:res.data.aqCount,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
})
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"usingComponents": {
|
||||||
|
"van-tabbar": "@vant/weapp/tabbar",
|
||||||
|
"van-tabbar-item": "@vant/weapp/tabbar-item"
|
||||||
|
},
|
||||||
|
"navigationStyle":"custom"
|
||||||
|
}
|
|
@ -0,0 +1,119 @@
|
||||||
|
<view class="header_title">
|
||||||
|
<view class="header_title_row">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="4">
|
||||||
|
<view class="header_img" bindtap="XMGK">
|
||||||
|
<image src="/images/left.png"></image>
|
||||||
|
<text class="header_fh">返回</text>
|
||||||
|
</view>
|
||||||
|
</van-col>
|
||||||
|
<van-col span="3">
|
||||||
|
<user-infos></user-infos>
|
||||||
|
</van-col>
|
||||||
|
<van-col span="10">
|
||||||
|
<view class="header_name">项目管理</view>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="max_content">
|
||||||
|
<project-select init="{{initData}}" bindchange="onProjectSelect"></project-select>
|
||||||
|
<view class="gd_max" style="margin-top: 20rpx;">
|
||||||
|
<van-row class="demo clearfix">
|
||||||
|
<van-col span="8" wx:for="{{menuList}}" wx:key="unique">
|
||||||
|
<view class="gd_min" data-id="{{item.menuIdenti}}" data-url="{{item.menuUrl}}" bindtap="goMenu">
|
||||||
|
<span class="tabNum_active" wx:if="{{item.menuIdenti=='FBDWSH' && fbdwDB>0}}">{{fbdwDB}}</span>
|
||||||
|
<span class="tabNum_active" wx:if="{{item.menuIdenti=='FBRYSH' && fbrtDB>0}}">{{fbrtDB}}</span>
|
||||||
|
<image src="{{item.menuImg}}"></image>
|
||||||
|
<view>{{item.menuName}}</view>
|
||||||
|
</view>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<van-tabbar wx:if="{{userData.userType!='77'}}" active="{{ active }}" bind:change="onChange" active-color="#ffffff" inactive-color="#7d95d6">
|
||||||
|
<van-tabbar-item bindtap="XMGK">
|
||||||
|
<image
|
||||||
|
slot="icon"
|
||||||
|
src="/images/footer_5.png"
|
||||||
|
mode="aspectFit"
|
||||||
|
style="width:40rpx; height: 40rpx;"
|
||||||
|
/>
|
||||||
|
<image
|
||||||
|
slot="icon-active"
|
||||||
|
src="/images/foot_5.png"
|
||||||
|
mode="aspectFit"
|
||||||
|
style="width:40rpx; height: 40rpx;"
|
||||||
|
/>
|
||||||
|
项目概况
|
||||||
|
</van-tabbar-item>
|
||||||
|
|
||||||
|
<van-tabbar-item wx:if="{{userData.userType!='80' && userData.userType!='79' && userData.userType!='78' && userData.userType!='77'}}" bindtap="AQGL">
|
||||||
|
<image
|
||||||
|
slot="icon"
|
||||||
|
src="/images/footer_7.png"
|
||||||
|
mode="aspectFit"
|
||||||
|
style="width:40rpx; height: 40rpx;"
|
||||||
|
/>
|
||||||
|
<image
|
||||||
|
slot="icon-active"
|
||||||
|
src="/images/foot_7.png"
|
||||||
|
mode="aspectFit"
|
||||||
|
style="width:40rpx; height: 40rpx;"
|
||||||
|
/>
|
||||||
|
安全管理
|
||||||
|
<span class="tabNum" wx:if="{{aq>0}}">{{aq}}</span>
|
||||||
|
</van-tabbar-item>
|
||||||
|
|
||||||
|
<van-tabbar-item wx:if="{{userData.userType!='80' && userData.userType!='79' && userData.userType!='78' && userData.userType!='77'}}" bindtap="ZLGL">
|
||||||
|
<image
|
||||||
|
slot="icon"
|
||||||
|
src="/images/footer_5.png"
|
||||||
|
mode="aspectFit"
|
||||||
|
style="width:40rpx; height: 40rpx;"
|
||||||
|
/>
|
||||||
|
<image
|
||||||
|
slot="icon-active"
|
||||||
|
src="/images/foot_5.png"
|
||||||
|
mode="aspectFit"
|
||||||
|
style="width:40rpx; height: 40rpx;"
|
||||||
|
/>
|
||||||
|
质量管理
|
||||||
|
<span class="tabNum" wx:if="{{ad>0}}">{{ad}}</span>
|
||||||
|
</van-tabbar-item>
|
||||||
|
|
||||||
|
<van-tabbar-item wx:if="{{userData.userType!='80' && userData.userType!='79' && userData.userType!='78' && userData.userType!='77'}}" bindtap="JDGL2">
|
||||||
|
<image
|
||||||
|
slot="icon"
|
||||||
|
src="/images/footer_6.png"
|
||||||
|
mode="aspectFit"
|
||||||
|
style="width:40rpx; height: 40rpx;"
|
||||||
|
/>
|
||||||
|
<image
|
||||||
|
slot="icon-active"
|
||||||
|
src="/images/foot_6.png"
|
||||||
|
mode="aspectFit"
|
||||||
|
style="width:40rpx; height: 40rpx;"
|
||||||
|
/>
|
||||||
|
进度管理
|
||||||
|
</van-tabbar-item>
|
||||||
|
|
||||||
|
<van-tabbar-item>
|
||||||
|
<image
|
||||||
|
slot="icon"
|
||||||
|
src="/images/footer_1.png"
|
||||||
|
mode="aspectFit"
|
||||||
|
style="width:40rpx; height: 40rpx;"
|
||||||
|
/>
|
||||||
|
<image
|
||||||
|
slot="icon-active"
|
||||||
|
src="/images/foot_1.png"
|
||||||
|
mode="aspectFit"
|
||||||
|
style="width:40rpx; height:40rpx;"
|
||||||
|
/>
|
||||||
|
项目管理
|
||||||
|
<span class="tabNum" wx:if="{{todoDb>0}}">{{todoDb}}</span>
|
||||||
|
</van-tabbar-item>
|
||||||
|
</van-tabbar>
|
|
@ -0,0 +1,23 @@
|
||||||
|
.more_max{
|
||||||
|
padding:10rpx 30rpx 30rpx;
|
||||||
|
}
|
||||||
|
.more_manage{
|
||||||
|
border-radius: 10rpx;
|
||||||
|
margin-top: 50rpx;
|
||||||
|
}
|
||||||
|
.gd_max{
|
||||||
|
padding:10rpx 50rpx 0;
|
||||||
|
}
|
||||||
|
.gd_min{
|
||||||
|
padding: 30rpx 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.gd_min image{
|
||||||
|
width: 150rpx;
|
||||||
|
height: 150rpx;
|
||||||
|
}
|
||||||
|
.gd_min view{
|
||||||
|
padding: 10rpx;
|
||||||
|
color: #89a4eb;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,172 @@
|
||||||
|
import config from '../../config'
|
||||||
|
import {
|
||||||
|
getToken
|
||||||
|
} from '../../utils/auth'
|
||||||
|
import {
|
||||||
|
submitUserSign,
|
||||||
|
findUserSignList
|
||||||
|
} from '../../api/publics'
|
||||||
|
import {
|
||||||
|
securitySignFileUpload
|
||||||
|
} from '../../utils/request'
|
||||||
|
const app = getApp()
|
||||||
|
Page({
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面的初始数据
|
||||||
|
*/
|
||||||
|
data: {
|
||||||
|
projectId: '',
|
||||||
|
projectName: '',
|
||||||
|
initData: {},
|
||||||
|
signData: {
|
||||||
|
id: null,
|
||||||
|
signetPath: null
|
||||||
|
},
|
||||||
|
signPath: '',
|
||||||
|
imgBaseUrl: config.baseImgUrl
|
||||||
|
},
|
||||||
|
|
||||||
|
//项目切换 返回值
|
||||||
|
onProjectSelect(e) {
|
||||||
|
let projectId = e.detail.id;
|
||||||
|
let projectName = e.detail.text;
|
||||||
|
app.globalData.useProjectId = projectId;
|
||||||
|
app.globalData.useProjectName = projectName;
|
||||||
|
this.onLoad();
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面加载
|
||||||
|
*/
|
||||||
|
onLoad(options) {
|
||||||
|
if (getToken()) {
|
||||||
|
this.setData({
|
||||||
|
projectId: app.globalData.useProjectId,
|
||||||
|
projectName: app.globalData.useProjectName,
|
||||||
|
initData: {
|
||||||
|
id: app.globalData.useProjectId,
|
||||||
|
text: app.globalData.useProjectName,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.getUserSignList(app.globalData.useProjectId);
|
||||||
|
} else {
|
||||||
|
console.log("未查询到Token...{}...准备重新登录")
|
||||||
|
wx.redirectTo({
|
||||||
|
url: '../login/login',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取签名
|
||||||
|
* @param {*} proId
|
||||||
|
*/
|
||||||
|
getUserSignList(proId) {
|
||||||
|
findUserSignList(proId).then(res => {
|
||||||
|
if (res.code == 200 && res.data.length > 0) {
|
||||||
|
this.setData({
|
||||||
|
signData: res.data[0]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 确认签名
|
||||||
|
*/
|
||||||
|
sign(e) {
|
||||||
|
let tempFilePath = e.detail
|
||||||
|
securitySignFileUpload(tempFilePath).then(res => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
this.setData({
|
||||||
|
signPath: res.data.url
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 确认修改签名
|
||||||
|
*/
|
||||||
|
submitSign() {
|
||||||
|
let {
|
||||||
|
projectId,
|
||||||
|
signPath,
|
||||||
|
signData
|
||||||
|
} = this.data;
|
||||||
|
//数据效验
|
||||||
|
if (!projectId) {
|
||||||
|
app.toast("信息异常...请刷新后重试!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!signPath) {
|
||||||
|
app.toast("还未完成签名或修改,请签名后再试!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
let param = {
|
||||||
|
id: signData.id,
|
||||||
|
projectId: projectId,
|
||||||
|
signetPath: signPath
|
||||||
|
}
|
||||||
|
submitUserSign(param).then(res => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
app.toast("保存签名成功!")
|
||||||
|
setTimeout(() => {
|
||||||
|
wx.redirectTo({
|
||||||
|
url: '../project_more/index',
|
||||||
|
})
|
||||||
|
}, 200)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面初次渲染完成
|
||||||
|
*/
|
||||||
|
onReady() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面显示
|
||||||
|
*/
|
||||||
|
onShow() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面隐藏
|
||||||
|
*/
|
||||||
|
onHide() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面卸载
|
||||||
|
*/
|
||||||
|
onUnload() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面相关事件处理函数--监听用户下拉动作
|
||||||
|
*/
|
||||||
|
onPullDownRefresh() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面上拉触底事件的处理函数
|
||||||
|
*/
|
||||||
|
onReachBottom() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户点击右上角分享
|
||||||
|
*/
|
||||||
|
onShareAppMessage() {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"usingComponents": {
|
||||||
|
},
|
||||||
|
"navigationStyle":"custom"
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
<view class="header_title">
|
||||||
|
<view class="header_title_row">
|
||||||
|
<van-row>
|
||||||
|
<van-col span="4">
|
||||||
|
<view class="header_img" bindtap="BACK">
|
||||||
|
<image src="/images/left.png"></image>
|
||||||
|
</view>
|
||||||
|
</van-col>
|
||||||
|
<van-col span="13">
|
||||||
|
<view class="header_name">个人签名配置</view>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="max_content">
|
||||||
|
<project-select init="{{initData}}" bindchange="onProjectSelect"></project-select>
|
||||||
|
<view class="echarts_max">
|
||||||
|
<view class="echarts_min">
|
||||||
|
<view class="eharts_title module_title_flex">
|
||||||
|
我的签名<text style="font-size: small; color: antiquewhite;">[点击签名进行修改]</text>
|
||||||
|
</view>
|
||||||
|
<view class="video_ai_survey">
|
||||||
|
<sign bind:returnData="sign" imageUrl="{{signData.signetPath?(imgBaseUrl+signData.signetPath):''}}" canvasId="canvas" class="myCanvas"></sign>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="problem_submit_to">
|
||||||
|
<view class="problem_submit_to_btn problem_submit_to_save" bindtap="submitSign">保 存 签 名</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
|
@ -0,0 +1,251 @@
|
||||||
|
/* pages/xiangmugaikuang/index.wxss */
|
||||||
|
.information-review-tab {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
align-items: center;
|
||||||
|
height: 80rpx;
|
||||||
|
color: #92a1ca;
|
||||||
|
}
|
||||||
|
|
||||||
|
.information-review-tab .active {
|
||||||
|
color: #87e3fa;
|
||||||
|
padding-left: 40rpx;
|
||||||
|
background: url("https://szgcwx.jhncidg.com/staticFiles/icon/utilization.png") no-repeat left/35rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 有赞原码修改 */
|
||||||
|
.van-collapse.van-hairline--top-bottom:after {
|
||||||
|
border-width: 0px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-cell.van-cell--borderless {
|
||||||
|
background-color: #2b345b;
|
||||||
|
color: #fff;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
border-radius: 5rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-cell.van-cell--borderless:active {
|
||||||
|
background-color: #2b345b;
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-collapse-item__title.van-collapse-item__title--expanded:active {
|
||||||
|
background-color: #2b345b;
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-collapse-item .van-cell:after {
|
||||||
|
border-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-collapse-item.van-hairline--top:after {
|
||||||
|
border-top-width: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-cell.van-cell--clickable {
|
||||||
|
background-color: #2b345b;
|
||||||
|
margin-top: 10rpx;
|
||||||
|
color: #fff;
|
||||||
|
border-radius: 15rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-cell.van-cell--clickable:active {
|
||||||
|
background-color: #2b345b;
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-collapse-item__wrapper .van-collapse-item__content {
|
||||||
|
background-color: #1e2336;
|
||||||
|
color: #8ca4ec;
|
||||||
|
border-width: 0px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 页面样式 */
|
||||||
|
.gk_open {
|
||||||
|
padding: 0 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gk_open_con view {
|
||||||
|
padding: 10rpx 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gk_open_con image {
|
||||||
|
width: 30rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
margin-right: 5rpx;
|
||||||
|
position: relative;
|
||||||
|
top: 5rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.echarts_max {
|
||||||
|
margin-top: 30rpx;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.echarts_min {
|
||||||
|
background: #1e2336;
|
||||||
|
font-size: 28rpx;
|
||||||
|
padding: 15rpx;
|
||||||
|
border-radius: 15rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.eharts_title {
|
||||||
|
height: 40rpx;
|
||||||
|
line-height: 40rpx;
|
||||||
|
padding-left: 40rpx;
|
||||||
|
background: url("https://szgcwx.jhncidg.com/staticFiles/img/menu/CORE_52887EE6A33042408E11C2174974ABA1.png") no-repeat left/35rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.eharts_head {
|
||||||
|
text-align: center;
|
||||||
|
padding: 30rpx 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.eharts_head text {
|
||||||
|
color: #0ad7ec;
|
||||||
|
font-size: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.eharts_con {
|
||||||
|
height: 320rpx;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.eharts_title_float {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.eharts_title_float text {
|
||||||
|
padding: 0 5rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.eharts_con_top {
|
||||||
|
margin-top: -320rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.eharts_title_float_img {
|
||||||
|
width: 40rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
float: right;
|
||||||
|
position: relative;
|
||||||
|
top: 2rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.zdzb_bg {
|
||||||
|
height: 88rpx;
|
||||||
|
border-radius: 15rpx;
|
||||||
|
background: #2b345b;
|
||||||
|
margin: 30rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
line-height: 88rpx;
|
||||||
|
padding-left: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.construction_unit {
|
||||||
|
padding: 10rpx 0;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.construction_unit_image {
|
||||||
|
padding-top: 15rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.construction_unit_image image {
|
||||||
|
width: 80rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.construction_unit_list {
|
||||||
|
width: calc(100% - 100rpx);
|
||||||
|
padding-left: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.construction_unit_title {
|
||||||
|
padding: 6rpx 0;
|
||||||
|
color: #c5d9fc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.construction_unit_name {
|
||||||
|
padding: 6rpx 0;
|
||||||
|
color: #54acf6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.construction_unit_phone {
|
||||||
|
padding: 6rpx 0;
|
||||||
|
color: #ce9433;
|
||||||
|
}
|
||||||
|
|
||||||
|
.official {
|
||||||
|
margin-left: 30rpx;
|
||||||
|
margin-right: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.survey_content {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-top: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.survey_content_img {
|
||||||
|
width: 90px;
|
||||||
|
height: 90px;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 90px;
|
||||||
|
position: relative;
|
||||||
|
background: url("https://szgcwx.jhncidg.com/staticFiles/icon/survey_total_icon.png") no-repeat bottom/90px 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.survey_content_img image {
|
||||||
|
text-align: center;
|
||||||
|
line-height: 90px;
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.labour-survey_content_number {
|
||||||
|
color: #cbdaff;
|
||||||
|
font-size: 16px;
|
||||||
|
text-align: center;
|
||||||
|
padding-top: 25px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.survey_content_number {
|
||||||
|
padding-left: 15px;
|
||||||
|
color: #cbdaff;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.labour-survey_content_number {
|
||||||
|
color: #cbdaff;
|
||||||
|
font-size: 16px;
|
||||||
|
text-align: center;
|
||||||
|
padding-top: 25px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.survey_content_value text {
|
||||||
|
font-size: 25px;
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #87e3fa;
|
||||||
|
padding-right: 5px;
|
||||||
|
}
|
||||||
|
.inspect_max_scroll {
|
||||||
|
height: 30vh;
|
||||||
|
max-height: 82vh;
|
||||||
|
}
|
||||||
|
.zz{
|
||||||
|
color: #fcbc02;
|
||||||
|
font-weight: 800;
|
||||||
|
}
|
||||||
|
.qrcode{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.qrtext{
|
||||||
|
margin-top: 25rpx;
|
||||||
|
}
|
||||||
|
.qrcode image{
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
}
|
|
@ -1,114 +0,0 @@
|
||||||
import {
|
|
||||||
loginOut,
|
|
||||||
updatePwd,
|
|
||||||
} from '../../api/login'
|
|
||||||
import {
|
|
||||||
removeToken
|
|
||||||
} from '../../utils/auth'
|
|
||||||
const app = getApp()
|
|
||||||
Page({
|
|
||||||
/**
|
|
||||||
* 页面的初始数据
|
|
||||||
*/
|
|
||||||
data: {
|
|
||||||
loginName: null,
|
|
||||||
oldPsw: '',
|
|
||||||
newPsw: '',
|
|
||||||
password: '',
|
|
||||||
showOldPass: true,
|
|
||||||
showNewPass: true,
|
|
||||||
showPassWord: true
|
|
||||||
},
|
|
||||||
|
|
||||||
seeTap1: function () {
|
|
||||||
let that = this;
|
|
||||||
this.setData({
|
|
||||||
// 切换图标
|
|
||||||
showOldPass: !that.data.showOldPass
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
seeTap2: function () {
|
|
||||||
let that = this;
|
|
||||||
this.setData({
|
|
||||||
// 切换图标
|
|
||||||
showNewPass: !that.data.showNewPass
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
seeTap3: function () {
|
|
||||||
let that = this;
|
|
||||||
this.setData({
|
|
||||||
// 切换图标
|
|
||||||
showPassWord: !that.data.showPassWord
|
|
||||||
})
|
|
||||||
if (this.data.newPsw != '' && this.data.newPsw != this.data.password) {
|
|
||||||
app.toast("两次密码输入不一致!");
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面加载
|
|
||||||
*/
|
|
||||||
onLoad: function (options) {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 添加预警信息
|
|
||||||
*/
|
|
||||||
submit: function () {
|
|
||||||
var that = this;
|
|
||||||
if (that.data.oldPsw == '') {
|
|
||||||
app.toast("请输入旧密码!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (that.data.password == '') {
|
|
||||||
app.toast("请确认新密码!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (that.data.newPsw != '' && that.data.newPsw != that.data.password) {
|
|
||||||
app.toast("两次密码输入不一致!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (that.data.oldPsw.length < 6) {
|
|
||||||
app.toast("请输入旧密码长度 [6-20]位字符!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (that.data.newPsw.length < 6) {
|
|
||||||
app.toast("请输入新密码长度 [6-20]位字符!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (that.data.password.length < 6) {
|
|
||||||
app.toast("请输入确认密码长度 [6-20]位字符!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
let formData = {
|
|
||||||
oldPsw: that.data.oldPsw,
|
|
||||||
newPsw: that.data.newPsw,
|
|
||||||
cfmPsw: that.data.password
|
|
||||||
}
|
|
||||||
updatePwd(formData).then(res => {
|
|
||||||
if (res.data == "200") {
|
|
||||||
loginOut().then(response => {
|
|
||||||
app.toast("密码修改成功,请重新登录!", 'success');
|
|
||||||
removeToken();
|
|
||||||
wx.redirectTo({
|
|
||||||
url: '../login/login',
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
//返回到项目概况页面
|
|
||||||
goGCLB: function () {
|
|
||||||
wx.redirectTo({
|
|
||||||
url: '../index/index'
|
|
||||||
})
|
|
||||||
},
|
|
||||||
//修改密码
|
|
||||||
QRXG: function () {
|
|
||||||
this.submit();
|
|
||||||
}
|
|
||||||
})
|
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
"usingComponents": {
|
|
||||||
"van-row": "@vant/weapp/row",
|
|
||||||
"van-col": "@vant/weapp/col"
|
|
||||||
},
|
|
||||||
"navigationStyle":"custom"
|
|
||||||
}
|
|
|
@ -1,53 +0,0 @@
|
||||||
<view class="header_title">
|
|
||||||
<view class="header_title_row">
|
|
||||||
<van-row>
|
|
||||||
<van-col span="4">
|
|
||||||
<view class="header_img" bindtap="goGCLB">
|
|
||||||
<image src="/images/left.png"></image>
|
|
||||||
<text class="header_fh">返回</text>
|
|
||||||
</view>
|
|
||||||
</van-col>
|
|
||||||
<van-col span="16">
|
|
||||||
<view class="header_name">修改密码</view>
|
|
||||||
</van-col>
|
|
||||||
</van-row>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="max_content">
|
|
||||||
<view class="inspect_info">
|
|
||||||
<view class="inspect_info_list">
|
|
||||||
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">旧密码</view>
|
|
||||||
<view class="inspect_info_content">
|
|
||||||
<input placeholder="请输入旧密码" placeholder-style="color:#6777aa;" password="{{showOldPass}}" maxlength="20" class="inspect_input_fill_in" model:value="{{oldPsw}}" />
|
|
||||||
<image wx:if="{{showOldPass}}" class="password-icon" src="../../images/biyan.png" bindtap="seeTap1"></image>
|
|
||||||
<image wx:else class="password-icon" src="../../images/yj_01.png" bindtap="seeTap1"></image>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="inspect_info_list">
|
|
||||||
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">新密码</view>
|
|
||||||
<view class="inspect_info_content">
|
|
||||||
<input placeholder="请输入新密码" placeholder-style="color:#6777aa;" password="{{showNewPass}}" maxlength="20" class="inspect_input_fill_in" model:value="{{newPsw}}" />
|
|
||||||
<image class="password-icon" src="../../images/biyan.png" bindtap="seeTap2" wx:if="{{showNewPass}}" />
|
|
||||||
<image class="password-icon" src="../../images/yj_01.png" bindtap="seeTap2" wx:else />
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="inspect_info_list">
|
|
||||||
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">确认密码</view>
|
|
||||||
<view class="inspect_info_content">
|
|
||||||
<input placeholder="请确认新密码" placeholder-style="color:#6777aa;" password="{{showPassWord}}" maxlength="20" class="inspect_input_fill_in" model:value="{{password}}" />
|
|
||||||
<image class="password-icon" src="../../images/biyan.png" bindtap="seeTap3" wx:if="{{showPassWord}}" />
|
|
||||||
<image class="password-icon" src="../../images/yj_01.png" bindtap="seeTap3" wx:else />
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="left_manage_min">
|
|
||||||
<view class="left_manage" bindtap="QRXG">
|
|
||||||
<view class="left_password">
|
|
||||||
确认修改
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
|
@ -1,7 +0,0 @@
|
||||||
.password-icon{
|
|
||||||
width: 40rpx;
|
|
||||||
height: 40rpx;
|
|
||||||
position: absolute;
|
|
||||||
right: 60rpx;
|
|
||||||
margin-top: -66rpx;
|
|
||||||
}
|
|
Loading…
Reference in New Issue