项目需求、任务以及模块精简
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
package com.jeesite.modules.biz.dao;
|
||||
|
||||
import com.jeesite.common.dao.CrudDao;
|
||||
import com.jeesite.common.mybatis.annotation.MyBatisDao;
|
||||
import com.jeesite.modules.biz.entity.MyProjectContract;
|
||||
|
||||
/**
|
||||
* 项目合同 DAO 接口
|
||||
* @author gaoxq
|
||||
* @version 2026-04-04
|
||||
*/
|
||||
@MyBatisDao(dataSourceName="work")
|
||||
public interface MyProjectContractDao extends CrudDao<MyProjectContract> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.jeesite.modules.biz.dao;
|
||||
|
||||
import com.jeesite.common.dao.CrudDao;
|
||||
import com.jeesite.common.mybatis.annotation.MyBatisDao;
|
||||
import com.jeesite.modules.biz.entity.MyProjectRequirement;
|
||||
|
||||
/**
|
||||
* 项目需求 DAO 接口
|
||||
* @author gaoxq
|
||||
* @version 2026-04-04
|
||||
*/
|
||||
@MyBatisDao(dataSourceName="work")
|
||||
public interface MyProjectRequirementDao extends CrudDao<MyProjectRequirement> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.jeesite.modules.biz.dao;
|
||||
|
||||
import com.jeesite.common.dao.CrudDao;
|
||||
import com.jeesite.common.mybatis.annotation.MyBatisDao;
|
||||
import com.jeesite.modules.biz.entity.MyProjectTask;
|
||||
|
||||
/**
|
||||
* 项目任务 DAO 接口
|
||||
* @author gaoxq
|
||||
* @version 2026-04-04
|
||||
*/
|
||||
@MyBatisDao(dataSourceName="work")
|
||||
public interface MyProjectTaskDao extends CrudDao<MyProjectTask> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
package com.jeesite.modules.biz.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
import com.jeesite.common.mybatis.annotation.JoinTable;
|
||||
import com.jeesite.common.mybatis.annotation.JoinTable.Type;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
import com.jeesite.common.entity.DataEntity;
|
||||
import com.jeesite.common.mybatis.annotation.Column;
|
||||
import com.jeesite.common.mybatis.annotation.Table;
|
||||
import com.jeesite.common.mybatis.mapper.query.QueryType;
|
||||
import com.jeesite.common.utils.excel.annotation.ExcelField;
|
||||
import com.jeesite.common.utils.excel.annotation.ExcelField.Align;
|
||||
import com.jeesite.common.utils.excel.annotation.ExcelFields;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 项目合同 Entity
|
||||
*
|
||||
* @author gaoxq
|
||||
* @version 2026-04-04
|
||||
*/
|
||||
@Table(name = "my_project_contract", alias = "a", label = "合同信息", columns = {
|
||||
@Column(name = "create_time", attrName = "createTime", label = "记录时间", isUpdate = false, isUpdateForce = true),
|
||||
@Column(name = "contract_id", attrName = "contractId", label = "唯一主键", isPK = true),
|
||||
@Column(name = "contract_no", attrName = "contractNo", label = "合同编号"),
|
||||
@Column(name = "contract_name", attrName = "contractName", label = "合同名称", queryType = QueryType.LIKE),
|
||||
@Column(name = "project_id", attrName = "projectId", label = "项目编号"),
|
||||
@Column(name = "client_name", attrName = "clientName", label = "供应商名称", isQuery = false),
|
||||
@Column(name = "client_contact", attrName = "clientContact", label = "供应商联系人员", isQuery = false),
|
||||
@Column(name = "client_phone", attrName = "clientPhone", label = "供应商联系电话", isQuery = false),
|
||||
@Column(name = "contract_amount", attrName = "contractAmount", label = "合同金额", isQuery = false),
|
||||
@Column(name = "sign_date", attrName = "signDate", label = "签订日期", isQuery = false, isUpdateForce = true),
|
||||
@Column(name = "start_date", attrName = "startDate", label = "开始日期", isQuery = false, isUpdateForce = true),
|
||||
@Column(name = "end_date", attrName = "endDate", label = "结束日期", isQuery = false, isUpdateForce = true),
|
||||
@Column(name = "contract_status", attrName = "contractStatus", label = "合同状态"),
|
||||
@Column(name = "payment_status", attrName = "paymentStatus", label = "付款状态"),
|
||||
@Column(name = "remark", attrName = "remark", label = "合同备注", isQuery = false),
|
||||
@Column(name = "create_user", attrName = "createUser", label = "创建人员", isUpdate = false, isQuery = false),
|
||||
@Column(name = "update_time", attrName = "updateTime", label = "更新时间", isQuery = false, isUpdateForce = true),
|
||||
}, joinTable = {
|
||||
@JoinTable(type = Type.LEFT_JOIN, entity = MyProjectInfo.class, alias = "b",
|
||||
on = "a.project_id = b.project_id", attrName = "this",
|
||||
columns = {
|
||||
@Column(name = "project_code", attrName = "projectCode", label = "项目编码"),
|
||||
@Column(name = "project_name", attrName = "projectName", label = "项目名称"),
|
||||
}),
|
||||
}, orderBy = "a.create_time DESC"
|
||||
)
|
||||
@Data
|
||||
public class MyProjectContract extends DataEntity<MyProjectContract> implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
private Date createTime; // 记录时间
|
||||
private String contractId; // 唯一主键
|
||||
private String contractNo; // 合同编号
|
||||
private String contractName; // 合同名称
|
||||
private String projectId; // 项目编号
|
||||
private String clientName; // 供应商名称
|
||||
private String clientContact; // 供应商联系人员
|
||||
private String clientPhone; // 供应商联系电话
|
||||
private Double contractAmount; // 合同金额
|
||||
private Date signDate; // 签订日期
|
||||
private Date startDate; // 开始日期
|
||||
private Date endDate; // 结束日期
|
||||
private String contractStatus; // 合同状态
|
||||
private String paymentStatus; // 付款状态
|
||||
private String remark; // 合同备注
|
||||
private String createUser; // 创建人员
|
||||
private Date updateTime; // 更新时间
|
||||
|
||||
private String projectCode;
|
||||
private String projectName;
|
||||
|
||||
@ExcelFields({
|
||||
@ExcelField(title = "记录时间", attrName = "createTime", align = Align.CENTER, sort = 10, dataFormat = "yyyy-MM-dd hh:mm"),
|
||||
@ExcelField(title = "唯一主键", attrName = "contractId", align = Align.CENTER, sort = 20),
|
||||
@ExcelField(title = "合同编号", attrName = "contractNo", align = Align.CENTER, sort = 30),
|
||||
@ExcelField(title = "合同名称", attrName = "contractName", align = Align.CENTER, sort = 40),
|
||||
@ExcelField(title = "项目编号", attrName = "projectCode", align = Align.CENTER, sort = 50),
|
||||
@ExcelField(title = "项目名称", attrName = "projectName", align = Align.CENTER, sort = 50),
|
||||
@ExcelField(title = "供应商名称", attrName = "clientName", align = Align.CENTER, sort = 60),
|
||||
@ExcelField(title = "供应商联系人员", attrName = "clientContact", align = Align.CENTER, sort = 70),
|
||||
@ExcelField(title = "供应商联系电话", attrName = "clientPhone", align = Align.CENTER, sort = 80),
|
||||
@ExcelField(title = "合同金额", attrName = "contractAmount", align = Align.CENTER, sort = 90),
|
||||
@ExcelField(title = "签订日期", attrName = "signDate", align = Align.CENTER, sort = 100, dataFormat = "yyyy-MM-dd hh:mm"),
|
||||
@ExcelField(title = "开始日期", attrName = "startDate", align = Align.CENTER, sort = 110, dataFormat = "yyyy-MM-dd hh:mm"),
|
||||
@ExcelField(title = "结束日期", attrName = "endDate", align = Align.CENTER, sort = 120, dataFormat = "yyyy-MM-dd hh:mm"),
|
||||
@ExcelField(title = "合同状态", attrName = "contractStatus", dictType = "contract_status", align = Align.CENTER, sort = 130),
|
||||
@ExcelField(title = "付款状态", attrName = "paymentStatus", dictType = "payment_status", align = Align.CENTER, sort = 140),
|
||||
@ExcelField(title = "合同备注", attrName = "remark", align = Align.CENTER, sort = 150),
|
||||
@ExcelField(title = "创建人员", attrName = "createUser", align = Align.CENTER, sort = 160),
|
||||
@ExcelField(title = "更新时间", attrName = "updateTime", align = Align.CENTER, sort = 170, dataFormat = "yyyy-MM-dd hh:mm"),
|
||||
})
|
||||
public MyProjectContract() {
|
||||
this(null);
|
||||
}
|
||||
|
||||
public MyProjectContract(String id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
public Date getCreateTime_gte() {
|
||||
return sqlMap.getWhere().getValue("create_time", QueryType.GTE);
|
||||
}
|
||||
|
||||
public void setCreateTime_gte(Date createTime) {
|
||||
sqlMap.getWhere().and("create_time", QueryType.GTE, createTime);
|
||||
}
|
||||
|
||||
public Date getCreateTime_lte() {
|
||||
return sqlMap.getWhere().getValue("create_time", QueryType.LTE);
|
||||
}
|
||||
|
||||
public void setCreateTime_lte(Date createTime) {
|
||||
sqlMap.getWhere().and("create_time", QueryType.LTE, createTime);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
package com.jeesite.modules.biz.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
import com.jeesite.common.mybatis.annotation.JoinTable;
|
||||
import com.jeesite.common.mybatis.annotation.JoinTable.Type;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.Size;
|
||||
|
||||
import com.jeesite.common.entity.DataEntity;
|
||||
import com.jeesite.common.mybatis.annotation.Column;
|
||||
import com.jeesite.common.mybatis.annotation.Table;
|
||||
import com.jeesite.common.mybatis.mapper.query.QueryType;
|
||||
import com.jeesite.common.utils.excel.annotation.ExcelField;
|
||||
import com.jeesite.common.utils.excel.annotation.ExcelField.Align;
|
||||
import com.jeesite.common.utils.excel.annotation.ExcelFields;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 项目需求 Entity
|
||||
*
|
||||
* @author gaoxq
|
||||
* @version 2026-04-04
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table(name = "my_project_requirement", alias = "a", label = "需求信息", columns = {
|
||||
@Column(name = "create_time", attrName = "createTime", label = "记录时间", isUpdate = false, isUpdateForce = true),
|
||||
@Column(name = "requirement_id", attrName = "requirementId", label = "需求标识", isPK = true),
|
||||
@Column(name = "requirement_no", attrName = "requirementNo", label = "需求编号"),
|
||||
@Column(name = "requirement_title", attrName = "requirementTitle", label = "需求标题", queryType = QueryType.LIKE),
|
||||
@Column(name = "project_id", attrName = "projectId", label = "项目编号"),
|
||||
@Column(name = "requirement_content", attrName = "requirementContent", label = "详细内容", isQuery = false),
|
||||
@Column(name = "priority", attrName = "priority", label = "优先等级"),
|
||||
@Column(name = "requirement_status", attrName = "requirementStatus", label = "需求状态"),
|
||||
@Column(name = "handler", attrName = "handler", label = "负责人员", isQuery = false),
|
||||
@Column(name = "plan_finish_time", attrName = "planFinishTime", label = "计划完成时间", isQuery = false, isUpdateForce = true),
|
||||
@Column(name = "actual_finish_time", attrName = "actualFinishTime", label = "实际完成时间", isQuery = false, isUpdateForce = true),
|
||||
@Column(name = "remark", attrName = "remark", label = "备注", isQuery = false),
|
||||
@Column(name = "create_user", attrName = "createUser", label = "创建人", isUpdate = false, isQuery = false),
|
||||
@Column(name = "update_time", attrName = "updateTime", label = "更新时间", isQuery = false, isUpdateForce = true),
|
||||
}, joinTable = {
|
||||
@JoinTable(type = Type.LEFT_JOIN, entity = MyProjectInfo.class, alias = "b",
|
||||
on = "a.project_id = b.project_id", attrName = "this",
|
||||
columns = {
|
||||
@Column(name = "project_code", attrName = "projectCode", label = "项目编码"),
|
||||
@Column(name = "project_name", attrName = "projectName", label = "项目名称"),
|
||||
}),
|
||||
}, orderBy = "a.create_time DESC"
|
||||
)
|
||||
@Data
|
||||
public class MyProjectRequirement extends DataEntity<MyProjectRequirement> implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
private Date createTime; // 记录时间
|
||||
private String requirementId; // 需求标识
|
||||
private String requirementNo; // 需求编号
|
||||
private String requirementTitle; // 需求标题
|
||||
private String projectId; // 项目编号
|
||||
private String requirementContent; // 详细内容
|
||||
private String priority; // 优先等级
|
||||
private String requirementStatus; // 需求状态
|
||||
private String handler; // 负责人员
|
||||
private Date planFinishTime; // 计划完成时间
|
||||
private Date actualFinishTime; // 实际完成时间
|
||||
private String remark; // 备注
|
||||
private String createUser; // 创建人
|
||||
private Date updateTime; // 更新时间
|
||||
|
||||
private String projectCode;
|
||||
private String projectName;
|
||||
|
||||
@ExcelFields({
|
||||
@ExcelField(title = "记录时间", attrName = "createTime", align = Align.CENTER, sort = 10, dataFormat = "yyyy-MM-dd hh:mm"),
|
||||
@ExcelField(title = "需求标识", attrName = "requirementId", align = Align.CENTER, sort = 20),
|
||||
@ExcelField(title = "需求编号", attrName = "requirementNo", align = Align.CENTER, sort = 30),
|
||||
@ExcelField(title = "需求标题", attrName = "requirementTitle", align = Align.CENTER, sort = 40),
|
||||
@ExcelField(title = "项目编号", attrName = "projectCode", align = Align.CENTER, sort = 50),
|
||||
@ExcelField(title = "项目名称", attrName = "projectName", align = Align.CENTER, sort = 50),
|
||||
@ExcelField(title = "详细内容", attrName = "requirementContent", align = Align.CENTER, sort = 60),
|
||||
@ExcelField(title = "优先等级", attrName = "priority", dictType = "biz_priority", align = Align.CENTER, sort = 70),
|
||||
@ExcelField(title = "需求状态", attrName = "requirementStatus", dictType = "requirement_status", align = Align.CENTER, sort = 80),
|
||||
@ExcelField(title = "负责人员", attrName = "handler", align = Align.CENTER, sort = 90),
|
||||
@ExcelField(title = "计划完成时间", attrName = "planFinishTime", align = Align.CENTER, sort = 100, dataFormat = "yyyy-MM-dd hh:mm"),
|
||||
@ExcelField(title = "实际完成时间", attrName = "actualFinishTime", align = Align.CENTER, sort = 110, dataFormat = "yyyy-MM-dd hh:mm"),
|
||||
@ExcelField(title = "备注", attrName = "remark", align = Align.CENTER, sort = 120),
|
||||
@ExcelField(title = "创建人", attrName = "createUser", align = Align.CENTER, sort = 130),
|
||||
@ExcelField(title = "更新时间", attrName = "updateTime", align = Align.CENTER, sort = 140, dataFormat = "yyyy-MM-dd hh:mm"),
|
||||
})
|
||||
public MyProjectRequirement() {
|
||||
this(null);
|
||||
}
|
||||
|
||||
public MyProjectRequirement(String id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
public Date getCreateTime_gte() {
|
||||
return sqlMap.getWhere().getValue("create_time", QueryType.GTE);
|
||||
}
|
||||
|
||||
public void setCreateTime_gte(Date createTime) {
|
||||
sqlMap.getWhere().and("create_time", QueryType.GTE, createTime);
|
||||
}
|
||||
|
||||
public Date getCreateTime_lte() {
|
||||
return sqlMap.getWhere().getValue("create_time", QueryType.LTE);
|
||||
}
|
||||
|
||||
public void setCreateTime_lte(Date createTime) {
|
||||
sqlMap.getWhere().and("create_time", QueryType.LTE, createTime);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
package com.jeesite.modules.biz.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
import com.jeesite.common.mybatis.annotation.JoinTable;
|
||||
import com.jeesite.common.mybatis.annotation.JoinTable.Type;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
import com.jeesite.common.entity.DataEntity;
|
||||
import com.jeesite.common.mybatis.annotation.Column;
|
||||
import com.jeesite.common.mybatis.annotation.Table;
|
||||
import com.jeesite.common.mybatis.mapper.query.QueryType;
|
||||
import com.jeesite.common.utils.excel.annotation.ExcelField;
|
||||
import com.jeesite.common.utils.excel.annotation.ExcelField.Align;
|
||||
import com.jeesite.common.utils.excel.annotation.ExcelFields;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 项目任务 Entity
|
||||
*
|
||||
* @author gaoxq
|
||||
* @version 2026-04-04
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table(name = "my_project_task", alias = "a", label = "任务信息", columns = {
|
||||
@Column(name = "create_time", attrName = "createTime", label = "记录时间", isUpdate = false, isUpdateForce = true),
|
||||
@Column(name = "task_id", attrName = "taskId", label = "任务标识", isPK = true),
|
||||
@Column(name = "task_name", attrName = "taskName", label = "任务名称", queryType = QueryType.LIKE),
|
||||
@Column(name = "project_id", attrName = "projectId", label = "项目标识"),
|
||||
@Column(name = "requirement_id", attrName = "requirementId", label = "需求标识"),
|
||||
@Column(name = "task_status", attrName = "taskStatus", label = "任务状态"),
|
||||
@Column(name = "handler", attrName = "handler", label = "负责人员", isQuery = false),
|
||||
@Column(name = "plan_start_time", attrName = "planStartTime", label = "计划开始", isQuery = false, isUpdateForce = true),
|
||||
@Column(name = "plan_end_time", attrName = "planEndTime", label = "计划结束", isQuery = false, isUpdateForce = true),
|
||||
@Column(name = "actual_start_time", attrName = "actualStartTime", label = "实际开始", isQuery = false, isUpdateForce = true),
|
||||
@Column(name = "actual_end_time", attrName = "actualEndTime", label = "实际结束", isQuery = false, isUpdateForce = true),
|
||||
@Column(name = "work_hours", attrName = "workHours", label = "工时", isQuery = false),
|
||||
@Column(name = "remark", attrName = "remark", label = "备注", queryType = QueryType.LIKE),
|
||||
@Column(name = "create_user", attrName = "createUser", label = "创建人员", isUpdate = false, isQuery = false),
|
||||
@Column(name = "update_time", attrName = "updateTime", label = "更新时间", isUpdate = false, isQuery = false, isUpdateForce = true),
|
||||
}, joinTable = {
|
||||
@JoinTable(type = Type.LEFT_JOIN, entity = MyProjectInfo.class, alias = "b",
|
||||
on = "a.project_id = b.project_id", attrName = "this",
|
||||
columns = {
|
||||
@Column(name = "project_code", attrName = "projectCode", label = "项目编码"),
|
||||
@Column(name = "project_name", attrName = "projectName", label = "项目名称"),
|
||||
}),
|
||||
@JoinTable(type = Type.LEFT_JOIN, entity = MyProjectRequirement.class, alias = "c",
|
||||
on = "a.requirement_id = c.requirement_id", attrName = "this",
|
||||
columns = {
|
||||
@Column(name = "requirement_no", attrName = "requirementNo", label = "需求编号"),
|
||||
@Column(name = "requirement_title", attrName = "requirementTitle", label = "需求标题"),
|
||||
}),
|
||||
}, orderBy = "a.create_time DESC"
|
||||
)
|
||||
@Data
|
||||
public class MyProjectTask extends DataEntity<MyProjectTask> implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
private Date createTime; // 记录时间
|
||||
private String taskId; // 任务标识
|
||||
private String taskName; // 任务名称
|
||||
private String projectId; // 项目标识
|
||||
private String requirementId; // 需求标识
|
||||
private String taskStatus; // 任务状态
|
||||
private String handler; // 负责人员
|
||||
private Date planStartTime; // 计划开始
|
||||
private Date planEndTime; // 计划结束
|
||||
private Date actualStartTime; // 实际开始
|
||||
private Date actualEndTime; // 实际结束
|
||||
private Double workHours; // 工时
|
||||
private String remark; // 备注
|
||||
private String createUser; // 创建人员
|
||||
private Date updateTime; // 更新时间
|
||||
|
||||
|
||||
private String projectCode;
|
||||
private String projectName;
|
||||
|
||||
private String requirementNo;
|
||||
private String requirementTitle;
|
||||
|
||||
|
||||
@ExcelFields({
|
||||
@ExcelField(title = "记录时间", attrName = "createTime", align = Align.CENTER, sort = 10, dataFormat = "yyyy-MM-dd hh:mm"),
|
||||
@ExcelField(title = "任务标识", attrName = "taskId", align = Align.CENTER, sort = 20),
|
||||
@ExcelField(title = "任务名称", attrName = "taskName", align = Align.CENTER, sort = 30),
|
||||
@ExcelField(title = "项目编号", attrName = "projectCode", align = Align.CENTER, sort = 40),
|
||||
@ExcelField(title = "项目名称", attrName = "projectName", align = Align.CENTER, sort = 40),
|
||||
@ExcelField(title = "需求编号", attrName = "requirementNo", align = Align.CENTER, sort = 50),
|
||||
@ExcelField(title = "需求名称", attrName = "requirementTitle", align = Align.CENTER, sort = 50),
|
||||
@ExcelField(title = "任务状态", attrName = "taskStatus", dictType = "task_status", align = Align.CENTER, sort = 60),
|
||||
@ExcelField(title = "负责人员", attrName = "handler", align = Align.CENTER, sort = 70),
|
||||
@ExcelField(title = "计划开始", attrName = "planStartTime", align = Align.CENTER, sort = 80, dataFormat = "yyyy-MM-dd hh:mm"),
|
||||
@ExcelField(title = "计划结束", attrName = "planEndTime", align = Align.CENTER, sort = 90, dataFormat = "yyyy-MM-dd hh:mm"),
|
||||
@ExcelField(title = "实际开始", attrName = "actualStartTime", align = Align.CENTER, sort = 100, dataFormat = "yyyy-MM-dd hh:mm"),
|
||||
@ExcelField(title = "实际结束", attrName = "actualEndTime", align = Align.CENTER, sort = 110, dataFormat = "yyyy-MM-dd hh:mm"),
|
||||
@ExcelField(title = "工时", attrName = "workHours", align = Align.CENTER, sort = 120),
|
||||
@ExcelField(title = "备注", attrName = "remark", align = Align.CENTER, sort = 130),
|
||||
@ExcelField(title = "创建人员", attrName = "createUser", align = Align.CENTER, sort = 140),
|
||||
@ExcelField(title = "更新时间", attrName = "updateTime", align = Align.CENTER, sort = 150, dataFormat = "yyyy-MM-dd hh:mm"),
|
||||
})
|
||||
public MyProjectTask() {
|
||||
this(null);
|
||||
}
|
||||
|
||||
public MyProjectTask(String id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
public Date getCreateTime_gte() {
|
||||
return sqlMap.getWhere().getValue("create_time", QueryType.GTE);
|
||||
}
|
||||
|
||||
public void setCreateTime_gte(Date createTime) {
|
||||
sqlMap.getWhere().and("create_time", QueryType.GTE, createTime);
|
||||
}
|
||||
|
||||
public Date getCreateTime_lte() {
|
||||
return sqlMap.getWhere().getValue("create_time", QueryType.LTE);
|
||||
}
|
||||
|
||||
public void setCreateTime_lte(Date createTime) {
|
||||
sqlMap.getWhere().and("create_time", QueryType.LTE, createTime);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
package com.jeesite.modules.biz.service;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jeesite.common.entity.Page;
|
||||
import com.jeesite.common.service.CrudService;
|
||||
import com.jeesite.modules.biz.entity.MyProjectContract;
|
||||
import com.jeesite.modules.biz.dao.MyProjectContractDao;
|
||||
import com.jeesite.common.service.ServiceException;
|
||||
import com.jeesite.modules.file.utils.FileUploadUtils;
|
||||
import com.jeesite.common.config.Global;
|
||||
import com.jeesite.common.validator.ValidatorUtils;
|
||||
import com.jeesite.common.utils.excel.ExcelImport;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import jakarta.validation.ConstraintViolation;
|
||||
import jakarta.validation.ConstraintViolationException;
|
||||
|
||||
/**
|
||||
* 项目合同 Service
|
||||
* @author gaoxq
|
||||
* @version 2026-04-04
|
||||
*/
|
||||
@Service
|
||||
public class MyProjectContractService extends CrudService<MyProjectContractDao, MyProjectContract> {
|
||||
|
||||
/**
|
||||
* 获取单条数据
|
||||
* @param myProjectContract 主键
|
||||
*/
|
||||
@Override
|
||||
public MyProjectContract get(MyProjectContract myProjectContract) {
|
||||
return super.get(myProjectContract);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询分页数据
|
||||
* @param myProjectContract 查询条件
|
||||
* @param myProjectContract page 分页对象
|
||||
*/
|
||||
@Override
|
||||
public Page<MyProjectContract> findPage(MyProjectContract myProjectContract) {
|
||||
return super.findPage(myProjectContract);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询列表数据
|
||||
* @param myProjectContract 查询条件
|
||||
*/
|
||||
@Override
|
||||
public List<MyProjectContract> findList(MyProjectContract myProjectContract) {
|
||||
return super.findList(myProjectContract);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存数据(插入或更新)
|
||||
* @param myProjectContract 数据对象
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void save(MyProjectContract myProjectContract) {
|
||||
super.save(myProjectContract);
|
||||
// 保存上传附件
|
||||
FileUploadUtils.saveFileUpload(myProjectContract, myProjectContract.getId(), "myProjectContract_file");
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入数据
|
||||
* @param file 导入的数据文件
|
||||
*/
|
||||
@Transactional
|
||||
public String importData(MultipartFile file) {
|
||||
if (file == null){
|
||||
throw new ServiceException(text("请选择导入的数据文件!"));
|
||||
}
|
||||
int successNum = 0; int failureNum = 0;
|
||||
StringBuilder successMsg = new StringBuilder();
|
||||
StringBuilder failureMsg = new StringBuilder();
|
||||
try(ExcelImport ei = new ExcelImport(file, 2, 0)){
|
||||
List<MyProjectContract> list = ei.getDataList(MyProjectContract.class);
|
||||
for (MyProjectContract myProjectContract : list) {
|
||||
try{
|
||||
ValidatorUtils.validateWithException(myProjectContract);
|
||||
this.save(myProjectContract);
|
||||
successNum++;
|
||||
successMsg.append("<br/>" + successNum + "、编号 " + myProjectContract.getId() + " 导入成功");
|
||||
} catch (Exception e) {
|
||||
failureNum++;
|
||||
String msg = "<br/>" + failureNum + "、编号 " + myProjectContract.getId() + " 导入失败:";
|
||||
if (e instanceof ConstraintViolationException){
|
||||
ConstraintViolationException cve = (ConstraintViolationException)e;
|
||||
for (ConstraintViolation<?> violation : cve.getConstraintViolations()) {
|
||||
msg += Global.getText(violation.getMessage()) + " ("+violation.getPropertyPath()+")";
|
||||
}
|
||||
}else{
|
||||
msg += e.getMessage();
|
||||
}
|
||||
failureMsg.append(msg);
|
||||
logger.error(msg, e);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
failureMsg.append(e.getMessage());
|
||||
return failureMsg.toString();
|
||||
}
|
||||
if (failureNum > 0) {
|
||||
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
|
||||
throw new ServiceException(failureMsg.toString());
|
||||
}else{
|
||||
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
|
||||
}
|
||||
return successMsg.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新状态
|
||||
* @param myProjectContract 数据对象
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void updateStatus(MyProjectContract myProjectContract) {
|
||||
super.updateStatus(myProjectContract);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除数据
|
||||
* @param myProjectContract 数据对象
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void delete(MyProjectContract myProjectContract) {
|
||||
super.delete(myProjectContract);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
package com.jeesite.modules.biz.service;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jeesite.common.entity.Page;
|
||||
import com.jeesite.common.service.CrudService;
|
||||
import com.jeesite.modules.biz.entity.MyProjectRequirement;
|
||||
import com.jeesite.modules.biz.dao.MyProjectRequirementDao;
|
||||
import com.jeesite.common.service.ServiceException;
|
||||
import com.jeesite.modules.file.utils.FileUploadUtils;
|
||||
import com.jeesite.common.config.Global;
|
||||
import com.jeesite.common.validator.ValidatorUtils;
|
||||
import com.jeesite.common.utils.excel.ExcelImport;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import jakarta.validation.ConstraintViolation;
|
||||
import jakarta.validation.ConstraintViolationException;
|
||||
|
||||
/**
|
||||
* 项目需求 Service
|
||||
* @author gaoxq
|
||||
* @version 2026-04-04
|
||||
*/
|
||||
@Service
|
||||
public class MyProjectRequirementService extends CrudService<MyProjectRequirementDao, MyProjectRequirement> {
|
||||
|
||||
/**
|
||||
* 获取单条数据
|
||||
* @param myProjectRequirement 主键
|
||||
*/
|
||||
@Override
|
||||
public MyProjectRequirement get(MyProjectRequirement myProjectRequirement) {
|
||||
return super.get(myProjectRequirement);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询分页数据
|
||||
* @param myProjectRequirement 查询条件
|
||||
* @param myProjectRequirement page 分页对象
|
||||
*/
|
||||
@Override
|
||||
public Page<MyProjectRequirement> findPage(MyProjectRequirement myProjectRequirement) {
|
||||
return super.findPage(myProjectRequirement);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询列表数据
|
||||
* @param myProjectRequirement 查询条件
|
||||
*/
|
||||
@Override
|
||||
public List<MyProjectRequirement> findList(MyProjectRequirement myProjectRequirement) {
|
||||
return super.findList(myProjectRequirement);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存数据(插入或更新)
|
||||
* @param myProjectRequirement 数据对象
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void save(MyProjectRequirement myProjectRequirement) {
|
||||
super.save(myProjectRequirement);
|
||||
// 保存上传附件
|
||||
FileUploadUtils.saveFileUpload(myProjectRequirement, myProjectRequirement.getId(), "myProjectRequirement_file");
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入数据
|
||||
* @param file 导入的数据文件
|
||||
*/
|
||||
@Transactional
|
||||
public String importData(MultipartFile file) {
|
||||
if (file == null){
|
||||
throw new ServiceException(text("请选择导入的数据文件!"));
|
||||
}
|
||||
int successNum = 0; int failureNum = 0;
|
||||
StringBuilder successMsg = new StringBuilder();
|
||||
StringBuilder failureMsg = new StringBuilder();
|
||||
try(ExcelImport ei = new ExcelImport(file, 2, 0)){
|
||||
List<MyProjectRequirement> list = ei.getDataList(MyProjectRequirement.class);
|
||||
for (MyProjectRequirement myProjectRequirement : list) {
|
||||
try{
|
||||
ValidatorUtils.validateWithException(myProjectRequirement);
|
||||
this.save(myProjectRequirement);
|
||||
successNum++;
|
||||
successMsg.append("<br/>" + successNum + "、编号 " + myProjectRequirement.getId() + " 导入成功");
|
||||
} catch (Exception e) {
|
||||
failureNum++;
|
||||
String msg = "<br/>" + failureNum + "、编号 " + myProjectRequirement.getId() + " 导入失败:";
|
||||
if (e instanceof ConstraintViolationException){
|
||||
ConstraintViolationException cve = (ConstraintViolationException)e;
|
||||
for (ConstraintViolation<?> violation : cve.getConstraintViolations()) {
|
||||
msg += Global.getText(violation.getMessage()) + " ("+violation.getPropertyPath()+")";
|
||||
}
|
||||
}else{
|
||||
msg += e.getMessage();
|
||||
}
|
||||
failureMsg.append(msg);
|
||||
logger.error(msg, e);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
failureMsg.append(e.getMessage());
|
||||
return failureMsg.toString();
|
||||
}
|
||||
if (failureNum > 0) {
|
||||
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
|
||||
throw new ServiceException(failureMsg.toString());
|
||||
}else{
|
||||
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
|
||||
}
|
||||
return successMsg.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新状态
|
||||
* @param myProjectRequirement 数据对象
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void updateStatus(MyProjectRequirement myProjectRequirement) {
|
||||
super.updateStatus(myProjectRequirement);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除数据
|
||||
* @param myProjectRequirement 数据对象
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void delete(MyProjectRequirement myProjectRequirement) {
|
||||
super.delete(myProjectRequirement);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
package com.jeesite.modules.biz.service;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jeesite.common.entity.Page;
|
||||
import com.jeesite.common.service.CrudService;
|
||||
import com.jeesite.modules.biz.entity.MyProjectTask;
|
||||
import com.jeesite.modules.biz.dao.MyProjectTaskDao;
|
||||
import com.jeesite.common.service.ServiceException;
|
||||
import com.jeesite.modules.file.utils.FileUploadUtils;
|
||||
import com.jeesite.common.config.Global;
|
||||
import com.jeesite.common.validator.ValidatorUtils;
|
||||
import com.jeesite.common.utils.excel.ExcelImport;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import jakarta.validation.ConstraintViolation;
|
||||
import jakarta.validation.ConstraintViolationException;
|
||||
|
||||
/**
|
||||
* 项目任务 Service
|
||||
* @author gaoxq
|
||||
* @version 2026-04-04
|
||||
*/
|
||||
@Service
|
||||
public class MyProjectTaskService extends CrudService<MyProjectTaskDao, MyProjectTask> {
|
||||
|
||||
/**
|
||||
* 获取单条数据
|
||||
* @param myProjectTask 主键
|
||||
*/
|
||||
@Override
|
||||
public MyProjectTask get(MyProjectTask myProjectTask) {
|
||||
return super.get(myProjectTask);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询分页数据
|
||||
* @param myProjectTask 查询条件
|
||||
* @param myProjectTask page 分页对象
|
||||
*/
|
||||
@Override
|
||||
public Page<MyProjectTask> findPage(MyProjectTask myProjectTask) {
|
||||
return super.findPage(myProjectTask);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询列表数据
|
||||
* @param myProjectTask 查询条件
|
||||
*/
|
||||
@Override
|
||||
public List<MyProjectTask> findList(MyProjectTask myProjectTask) {
|
||||
return super.findList(myProjectTask);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存数据(插入或更新)
|
||||
* @param myProjectTask 数据对象
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void save(MyProjectTask myProjectTask) {
|
||||
super.save(myProjectTask);
|
||||
// 保存上传附件
|
||||
FileUploadUtils.saveFileUpload(myProjectTask, myProjectTask.getId(), "myProjectTask_file");
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入数据
|
||||
* @param file 导入的数据文件
|
||||
*/
|
||||
@Transactional
|
||||
public String importData(MultipartFile file) {
|
||||
if (file == null){
|
||||
throw new ServiceException(text("请选择导入的数据文件!"));
|
||||
}
|
||||
int successNum = 0; int failureNum = 0;
|
||||
StringBuilder successMsg = new StringBuilder();
|
||||
StringBuilder failureMsg = new StringBuilder();
|
||||
try(ExcelImport ei = new ExcelImport(file, 2, 0)){
|
||||
List<MyProjectTask> list = ei.getDataList(MyProjectTask.class);
|
||||
for (MyProjectTask myProjectTask : list) {
|
||||
try{
|
||||
ValidatorUtils.validateWithException(myProjectTask);
|
||||
this.save(myProjectTask);
|
||||
successNum++;
|
||||
successMsg.append("<br/>" + successNum + "、编号 " + myProjectTask.getId() + " 导入成功");
|
||||
} catch (Exception e) {
|
||||
failureNum++;
|
||||
String msg = "<br/>" + failureNum + "、编号 " + myProjectTask.getId() + " 导入失败:";
|
||||
if (e instanceof ConstraintViolationException){
|
||||
ConstraintViolationException cve = (ConstraintViolationException)e;
|
||||
for (ConstraintViolation<?> violation : cve.getConstraintViolations()) {
|
||||
msg += Global.getText(violation.getMessage()) + " ("+violation.getPropertyPath()+")";
|
||||
}
|
||||
}else{
|
||||
msg += e.getMessage();
|
||||
}
|
||||
failureMsg.append(msg);
|
||||
logger.error(msg, e);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
failureMsg.append(e.getMessage());
|
||||
return failureMsg.toString();
|
||||
}
|
||||
if (failureNum > 0) {
|
||||
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
|
||||
throw new ServiceException(failureMsg.toString());
|
||||
}else{
|
||||
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
|
||||
}
|
||||
return successMsg.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新状态
|
||||
* @param myProjectTask 数据对象
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void updateStatus(MyProjectTask myProjectTask) {
|
||||
super.updateStatus(myProjectTask);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除数据
|
||||
* @param myProjectTask 数据对象
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void delete(MyProjectTask myProjectTask) {
|
||||
super.delete(myProjectTask);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
package com.jeesite.modules.biz.web;
|
||||
|
||||
import java.util.List;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import com.jeesite.common.config.Global;
|
||||
import com.jeesite.common.collect.ListUtils;
|
||||
import com.jeesite.common.entity.Page;
|
||||
import com.jeesite.common.lang.DateUtils;
|
||||
import com.jeesite.common.utils.excel.ExcelExport;
|
||||
import com.jeesite.common.utils.excel.annotation.ExcelField.Type;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import com.jeesite.common.web.BaseController;
|
||||
import com.jeesite.modules.biz.entity.MyProjectContract;
|
||||
import com.jeesite.modules.biz.service.MyProjectContractService;
|
||||
|
||||
/**
|
||||
* 项目合同 Controller
|
||||
* @author gaoxq
|
||||
* @version 2026-04-04
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping(value = "${adminPath}/biz/myProjectContract")
|
||||
public class MyProjectContractController extends BaseController {
|
||||
|
||||
private final MyProjectContractService myProjectContractService;
|
||||
|
||||
public MyProjectContractController(MyProjectContractService myProjectContractService) {
|
||||
this.myProjectContractService = myProjectContractService;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据
|
||||
*/
|
||||
@ModelAttribute
|
||||
public MyProjectContract get(String contractId, boolean isNewRecord) {
|
||||
return myProjectContractService.get(contractId, isNewRecord);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectContract:view")
|
||||
@RequestMapping(value = {"list", ""})
|
||||
public String list(MyProjectContract myProjectContract, Model model) {
|
||||
model.addAttribute("myProjectContract", myProjectContract);
|
||||
return "modules/biz/myProjectContractList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询列表数据
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectContract:view")
|
||||
@RequestMapping(value = "listData")
|
||||
@ResponseBody
|
||||
public Page<MyProjectContract> listData(MyProjectContract myProjectContract, HttpServletRequest request, HttpServletResponse response) {
|
||||
myProjectContract.setPage(new Page<>(request, response));
|
||||
Page<MyProjectContract> page = myProjectContractService.findPage(myProjectContract);
|
||||
return page;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看编辑表单
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectContract:view")
|
||||
@RequestMapping(value = "form")
|
||||
public String form(MyProjectContract myProjectContract, Model model) {
|
||||
model.addAttribute("myProjectContract", myProjectContract);
|
||||
return "modules/biz/myProjectContractForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存数据
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectContract:edit")
|
||||
@PostMapping(value = "save")
|
||||
@ResponseBody
|
||||
public String save(@Validated MyProjectContract myProjectContract) {
|
||||
myProjectContractService.save(myProjectContract);
|
||||
return renderResult(Global.TRUE, text("保存合同成功!"));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectContract:view")
|
||||
@RequestMapping(value = "exportData")
|
||||
public void exportData(MyProjectContract myProjectContract, HttpServletResponse response) {
|
||||
List<MyProjectContract> list = myProjectContractService.findList(myProjectContract);
|
||||
String fileName = "合同" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
|
||||
try(ExcelExport ee = new ExcelExport("合同", MyProjectContract.class)){
|
||||
ee.setDataList(list).write(response, fileName);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载模板
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectContract:view")
|
||||
@RequestMapping(value = "importTemplate")
|
||||
public void importTemplate(HttpServletResponse response) {
|
||||
MyProjectContract myProjectContract = new MyProjectContract();
|
||||
List<MyProjectContract> list = ListUtils.newArrayList(myProjectContract);
|
||||
String fileName = "合同模板.xlsx";
|
||||
try(ExcelExport ee = new ExcelExport("合同", MyProjectContract.class, Type.IMPORT)){
|
||||
ee.setDataList(list).write(response, fileName);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入数据
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequiresPermissions("biz:myProjectContract:edit")
|
||||
@PostMapping(value = "importData")
|
||||
public String importData(MultipartFile file) {
|
||||
try {
|
||||
String message = myProjectContractService.importData(file);
|
||||
return renderResult(Global.TRUE, "posfull:"+message);
|
||||
} catch (Exception ex) {
|
||||
return renderResult(Global.FALSE, "posfull:"+ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除数据
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectContract:edit")
|
||||
@RequestMapping(value = "delete")
|
||||
@ResponseBody
|
||||
public String delete(MyProjectContract myProjectContract) {
|
||||
myProjectContractService.delete(myProjectContract);
|
||||
return renderResult(Global.TRUE, text("删除合同成功!"));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,154 @@
|
||||
package com.jeesite.modules.biz.web;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import com.jeesite.common.config.Global;
|
||||
import com.jeesite.common.collect.ListUtils;
|
||||
import com.jeesite.common.entity.Page;
|
||||
import com.jeesite.common.lang.DateUtils;
|
||||
import com.jeesite.common.utils.excel.ExcelExport;
|
||||
import com.jeesite.common.utils.excel.annotation.ExcelField.Type;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import com.jeesite.common.web.BaseController;
|
||||
import com.jeesite.modules.biz.entity.MyProjectRequirement;
|
||||
import com.jeesite.modules.biz.service.MyProjectRequirementService;
|
||||
|
||||
/**
|
||||
* 项目需求 Controller
|
||||
*
|
||||
* @author gaoxq
|
||||
* @version 2026-04-04
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping(value = "${adminPath}/biz/myProjectRequirement")
|
||||
public class MyProjectRequirementController extends BaseController {
|
||||
|
||||
private final MyProjectRequirementService myProjectRequirementService;
|
||||
|
||||
public MyProjectRequirementController(MyProjectRequirementService myProjectRequirementService) {
|
||||
this.myProjectRequirementService = myProjectRequirementService;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据
|
||||
*/
|
||||
@ModelAttribute
|
||||
public MyProjectRequirement get(String requirementId, boolean isNewRecord) {
|
||||
return myProjectRequirementService.get(requirementId, isNewRecord);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectRequirement:view")
|
||||
@RequestMapping(value = {"list", ""})
|
||||
public String list(MyProjectRequirement myProjectRequirement, Model model) {
|
||||
model.addAttribute("myProjectRequirement", myProjectRequirement);
|
||||
return "modules/biz/myProjectRequirementList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询列表数据
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectRequirement:view")
|
||||
@RequestMapping(value = "listData")
|
||||
@ResponseBody
|
||||
public Page<MyProjectRequirement> listData(MyProjectRequirement myProjectRequirement, HttpServletRequest request, HttpServletResponse response) {
|
||||
myProjectRequirement.setPage(new Page<>(request, response));
|
||||
Page<MyProjectRequirement> page = myProjectRequirementService.findPage(myProjectRequirement);
|
||||
return page;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看编辑表单
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectRequirement:view")
|
||||
@RequestMapping(value = "form")
|
||||
public String form(MyProjectRequirement myProjectRequirement, Model model) {
|
||||
model.addAttribute("myProjectRequirement", myProjectRequirement);
|
||||
return "modules/biz/myProjectRequirementForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存数据
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectRequirement:edit")
|
||||
@PostMapping(value = "save")
|
||||
@ResponseBody
|
||||
public String save(@Validated MyProjectRequirement myProjectRequirement) {
|
||||
myProjectRequirementService.save(myProjectRequirement);
|
||||
return renderResult(Global.TRUE, text("保存需求成功!"));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectRequirement:view")
|
||||
@RequestMapping(value = "exportData")
|
||||
public void exportData(MyProjectRequirement myProjectRequirement, HttpServletResponse response) {
|
||||
List<MyProjectRequirement> list = myProjectRequirementService.findList(myProjectRequirement);
|
||||
String fileName = "需求" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
|
||||
try (ExcelExport ee = new ExcelExport("需求", MyProjectRequirement.class)) {
|
||||
ee.setDataList(list).write(response, fileName);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载模板
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectRequirement:view")
|
||||
@RequestMapping(value = "importTemplate")
|
||||
public void importTemplate(HttpServletResponse response) {
|
||||
MyProjectRequirement myProjectRequirement = new MyProjectRequirement();
|
||||
List<MyProjectRequirement> list = ListUtils.newArrayList(myProjectRequirement);
|
||||
String fileName = "需求模板.xlsx";
|
||||
try (ExcelExport ee = new ExcelExport("需求", MyProjectRequirement.class, Type.IMPORT)) {
|
||||
ee.setDataList(list).write(response, fileName);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入数据
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequiresPermissions("biz:myProjectRequirement:edit")
|
||||
@PostMapping(value = "importData")
|
||||
public String importData(MultipartFile file) {
|
||||
try {
|
||||
String message = myProjectRequirementService.importData(file);
|
||||
return renderResult(Global.TRUE, "posfull:" + message);
|
||||
} catch (Exception ex) {
|
||||
return renderResult(Global.FALSE, "posfull:" + ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除数据
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectRequirement:edit")
|
||||
@RequestMapping(value = "delete")
|
||||
@ResponseBody
|
||||
public String delete(MyProjectRequirement myProjectRequirement) {
|
||||
myProjectRequirementService.delete(myProjectRequirement);
|
||||
return renderResult(Global.TRUE, text("删除需求成功!"));
|
||||
}
|
||||
|
||||
@RequestMapping(value = "listAll")
|
||||
@ResponseBody
|
||||
public List<MyProjectRequirement> listAll(MyProjectRequirement myProjectRequirement) {
|
||||
return myProjectRequirementService.findList(myProjectRequirement);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
package com.jeesite.modules.biz.web;
|
||||
|
||||
import java.util.List;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import com.jeesite.common.config.Global;
|
||||
import com.jeesite.common.collect.ListUtils;
|
||||
import com.jeesite.common.entity.Page;
|
||||
import com.jeesite.common.lang.DateUtils;
|
||||
import com.jeesite.common.utils.excel.ExcelExport;
|
||||
import com.jeesite.common.utils.excel.annotation.ExcelField.Type;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import com.jeesite.common.web.BaseController;
|
||||
import com.jeesite.modules.biz.entity.MyProjectTask;
|
||||
import com.jeesite.modules.biz.service.MyProjectTaskService;
|
||||
|
||||
/**
|
||||
* 项目任务 Controller
|
||||
* @author gaoxq
|
||||
* @version 2026-04-04
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping(value = "${adminPath}/biz/myProjectTask")
|
||||
public class MyProjectTaskController extends BaseController {
|
||||
|
||||
private final MyProjectTaskService myProjectTaskService;
|
||||
|
||||
public MyProjectTaskController(MyProjectTaskService myProjectTaskService) {
|
||||
this.myProjectTaskService = myProjectTaskService;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据
|
||||
*/
|
||||
@ModelAttribute
|
||||
public MyProjectTask get(String taskId, boolean isNewRecord) {
|
||||
return myProjectTaskService.get(taskId, isNewRecord);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectTask:view")
|
||||
@RequestMapping(value = {"list", ""})
|
||||
public String list(MyProjectTask myProjectTask, Model model) {
|
||||
model.addAttribute("myProjectTask", myProjectTask);
|
||||
return "modules/biz/myProjectTaskList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询列表数据
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectTask:view")
|
||||
@RequestMapping(value = "listData")
|
||||
@ResponseBody
|
||||
public Page<MyProjectTask> listData(MyProjectTask myProjectTask, HttpServletRequest request, HttpServletResponse response) {
|
||||
myProjectTask.setPage(new Page<>(request, response));
|
||||
Page<MyProjectTask> page = myProjectTaskService.findPage(myProjectTask);
|
||||
return page;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看编辑表单
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectTask:view")
|
||||
@RequestMapping(value = "form")
|
||||
public String form(MyProjectTask myProjectTask, Model model) {
|
||||
model.addAttribute("myProjectTask", myProjectTask);
|
||||
return "modules/biz/myProjectTaskForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存数据
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectTask:edit")
|
||||
@PostMapping(value = "save")
|
||||
@ResponseBody
|
||||
public String save(@Validated MyProjectTask myProjectTask) {
|
||||
myProjectTaskService.save(myProjectTask);
|
||||
return renderResult(Global.TRUE, text("保存任务成功!"));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectTask:view")
|
||||
@RequestMapping(value = "exportData")
|
||||
public void exportData(MyProjectTask myProjectTask, HttpServletResponse response) {
|
||||
List<MyProjectTask> list = myProjectTaskService.findList(myProjectTask);
|
||||
String fileName = "任务" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
|
||||
try(ExcelExport ee = new ExcelExport("任务", MyProjectTask.class)){
|
||||
ee.setDataList(list).write(response, fileName);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载模板
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectTask:view")
|
||||
@RequestMapping(value = "importTemplate")
|
||||
public void importTemplate(HttpServletResponse response) {
|
||||
MyProjectTask myProjectTask = new MyProjectTask();
|
||||
List<MyProjectTask> list = ListUtils.newArrayList(myProjectTask);
|
||||
String fileName = "任务模板.xlsx";
|
||||
try(ExcelExport ee = new ExcelExport("任务", MyProjectTask.class, Type.IMPORT)){
|
||||
ee.setDataList(list).write(response, fileName);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入数据
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequiresPermissions("biz:myProjectTask:edit")
|
||||
@PostMapping(value = "importData")
|
||||
public String importData(MultipartFile file) {
|
||||
try {
|
||||
String message = myProjectTaskService.importData(file);
|
||||
return renderResult(Global.TRUE, "posfull:"+message);
|
||||
} catch (Exception ex) {
|
||||
return renderResult(Global.FALSE, "posfull:"+ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除数据
|
||||
*/
|
||||
@RequiresPermissions("biz:myProjectTask:edit")
|
||||
@RequestMapping(value = "delete")
|
||||
@ResponseBody
|
||||
public String delete(MyProjectTask myProjectTask) {
|
||||
myProjectTaskService.delete(myProjectTask);
|
||||
return renderResult(Global.TRUE, text("删除任务成功!"));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
#======================================#
|
||||
#========== Project settings ==========#
|
||||
#======================================#
|
||||
@@ -11,9 +10,6 @@ companyName: ThinkGem
|
||||
productVersion: V5.15
|
||||
copyrightYear: 2026
|
||||
|
||||
# 是否演示模式
|
||||
demoMode: false
|
||||
|
||||
# 专为分离端提供接口服务
|
||||
apiMode: true
|
||||
|
||||
@@ -22,63 +18,37 @@ apiMode: true
|
||||
#======================================#
|
||||
|
||||
server:
|
||||
|
||||
port: 8980
|
||||
servlet:
|
||||
context-path: /js
|
||||
register-default-servlet: false
|
||||
# encoding.enabled: true
|
||||
tomcat:
|
||||
uri-encoding: UTF-8
|
||||
# 表单请求数据的最大大小
|
||||
max-http-form-post-size: 200MB
|
||||
# 客户端发送请求参数个数限制
|
||||
max-parameter-count: 10000
|
||||
# 文件上传的表单请求参数个数限制
|
||||
max-part-count: 50
|
||||
# 进程的最大连接数
|
||||
max-connections: 8192
|
||||
# 连接数满后的排队个数
|
||||
accept-count: 100
|
||||
# 线程数最大和最小个数
|
||||
threads:
|
||||
max: 200
|
||||
min-spare: 10
|
||||
|
||||
# 当 Nginx 为 https,tomcat 为 http 时,设置该选项为 true
|
||||
schemeHttps: false
|
||||
|
||||
|
||||
#======================================#
|
||||
#========= Database settings ==========#
|
||||
#======================================#
|
||||
|
||||
# 数据库连接
|
||||
jdbc:
|
||||
|
||||
# Mysql 数据库配置
|
||||
type: mysql
|
||||
driver: com.mysql.cj.jdbc.Driver
|
||||
url: jdbc:mysql://192.168.31.182:13306/system?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
|
||||
username: dream
|
||||
password: info_dream
|
||||
testSql: SELECT 1
|
||||
|
||||
# 连接信息加密
|
||||
encrypt:
|
||||
|
||||
# 加密连接用户名
|
||||
username: false
|
||||
# 加密连接密码
|
||||
password: true
|
||||
|
||||
# 数据库连接池配置
|
||||
pool:
|
||||
|
||||
# 初始化连接数
|
||||
init: 1
|
||||
# 最小空闲连接数
|
||||
minIdle: 3
|
||||
# 最大激活连接数
|
||||
maxActive: 20
|
||||
|
||||
#======================================#
|
||||
@@ -86,349 +56,49 @@ jdbc:
|
||||
#======================================#
|
||||
|
||||
spring:
|
||||
|
||||
# 应用程序名称
|
||||
application:
|
||||
name: jeesite-web-api
|
||||
|
||||
# 环境名称(注意:不可设置为 test 它是单元测试专用的名称)
|
||||
profiles:
|
||||
active: default
|
||||
|
||||
# 打印横幅
|
||||
main:
|
||||
banner-mode: "off"
|
||||
lazy-initialization: true
|
||||
|
||||
# # MVC 映射匹配策略
|
||||
# mvc:
|
||||
# pathmatch:
|
||||
# matching-strategy: ANT_PATH_MATCHER
|
||||
|
||||
# JTA XA 事务(spring boot 3)
|
||||
jta:
|
||||
enabled: false
|
||||
|
||||
# 注意:如果报 oracle.jdbc.xa.OracleXAResource.recover 错误,则需要授权如下:
|
||||
# grant select on sys.dba_pending_transactions to jeesite;
|
||||
# grant select on sys.pending_trans$ to jeesite;
|
||||
# grant select on sys.dba_2pc_pending to jeesite;
|
||||
# grant execute on sys.dbms_system to jeesite;
|
||||
|
||||
# 事务超时时间,单位秒(30分钟)(spring boot 3)
|
||||
transaction:
|
||||
default-timeout: 30m
|
||||
|
||||
# # Redis 连接参数 (RedisProperties)
|
||||
# data:
|
||||
# redis:
|
||||
# host: 127.0.0.1
|
||||
# port: 6379
|
||||
# ssl:
|
||||
# enabled: false
|
||||
# database: 0
|
||||
# password: 1234
|
||||
# timeout: 20000
|
||||
# lettuce:
|
||||
# pool:
|
||||
# # 最大空闲连接数
|
||||
# maxIdle: 3
|
||||
# # 最大活动连接数
|
||||
# maxActive: 20
|
||||
|
||||
# # 缓存配置
|
||||
# cache:
|
||||
# # 缓存及会话共享(专业版)
|
||||
# isClusterMode: true
|
||||
# # 清理全部缓存按钮所清理的缓存列表
|
||||
# clearNames: sysCache,corpCache,userCache,roleCache,fileUploadCache,msgPcPoolCache,cmsCache,bpmFormCache
|
||||
# # 用户缓存
|
||||
# userCache:
|
||||
# clearTaskPool:
|
||||
# corePoolSize: 5
|
||||
# maxPoolSize: 20
|
||||
# keepAliveSeconds: 60
|
||||
|
||||
# 日志配置(fatal、error、warn、info、debug)
|
||||
# 日志配置
|
||||
logging:
|
||||
config: classpath:config/logback-spring.xml
|
||||
# level:
|
||||
# root: warn
|
||||
# com.jeesite.modules: debug
|
||||
|
||||
# MyBatis 相关
|
||||
mybatis:
|
||||
|
||||
# @MyBatisDao 扫描基础包,如果多个,用“,”分隔
|
||||
scanBasePackage: com.jeesite.modules.**.dao
|
||||
|
||||
# TypeAliases 扫描基础包,如果多个,用“,”分隔 v5.3.1
|
||||
scanTypeAliasesBasePackage: com.jeesite.modules.**.entity
|
||||
|
||||
# # TypeHandlers 扫描基础包,如果多个,用“,”分隔
|
||||
# scanTypeHandlersPackage: ~
|
||||
#
|
||||
# # 是否开启 JDBC 管理事务,默认 Spring 管理事务 v4.2.3
|
||||
# jdbcTransaction: false
|
||||
#
|
||||
# # 批量插入和更新的分批默认大小(防止库一次性接受不了太大的sql语句)
|
||||
# defaultBatchSize: 500
|
||||
#
|
||||
# # 执行逻辑删除的时候,同时修改主键字段值,方便再次使用这个主键值(调用 entity.sqlMap().markIdDelete() 时生效) v5.4.0+
|
||||
# # 案例分析(角色管理场景):
|
||||
# # 1.如果是逻辑删除数据,并非物理删除,所以删除了角色 abc 再次新增时,会提示 abc 编号已存在
|
||||
# # 2.使用方法为:在 super.delete(entity); 前调用:entity.sqlMap().markIdDelete();
|
||||
# # 3.一般在手动填写主键业务中使用,启用后将会在删除后,修改 ID 值数据,例如:abc__del_随机串
|
||||
# markIdDeleteFlag: __del_
|
||||
#
|
||||
# # 允许 @Table orderBy 排序 设置为空,否则默认使用 主键 排序 v4.5.0 v5.1.0
|
||||
# allowOrderEmpty: true
|
||||
#
|
||||
# # 排序字段 SQL 过滤,该参数仅对 sqlMap.getOrder().setOrderBy 内部调用方法有效 page.setOrderBy 和 entity.setOrderBy 必须经过过滤 v5.12.0
|
||||
# orderBySqlFilter: false
|
||||
|
||||
# Mapper文件刷新线程
|
||||
mapper:
|
||||
refresh:
|
||||
enabled: true
|
||||
# delaySeconds: 10
|
||||
# sleepSeconds: 3
|
||||
# mappingPath: mappings
|
||||
|
||||
|
||||
#======================================#
|
||||
#========== System settings ===========#
|
||||
#======================================#
|
||||
|
||||
# 管理基础路径
|
||||
#adminPath: /a
|
||||
|
||||
# 前端基础路径
|
||||
#frontPath: /f
|
||||
|
||||
# 加密设置
|
||||
#encrypt:
|
||||
# # 默认秘钥,可通过 AesUtils.genKeyString() 生成新秘钥 Hex 编码
|
||||
# defaultKey: 9f58a20946b47e190003ec716c1c457d
|
||||
# # 是否使用国密 SM 算法(SHA-1 替换为 SM3、AES 替换为 SM4)
|
||||
# smAlgorithm: false
|
||||
# # 对称或非对称加密是否使用 Base64 存储,默认 Hex 存储
|
||||
# storeBase64: false
|
||||
|
||||
# 分页相关
|
||||
#page:
|
||||
#
|
||||
# # 默认每页显示的数据条数
|
||||
# pageSize: 20
|
||||
#
|
||||
# # 每页最大条数,防止分页过大导致系统缓慢或内存溢出
|
||||
# maxPageSize: 999
|
||||
|
||||
# 用户相关
|
||||
user:
|
||||
|
||||
# # 指定超级管理员编号(研发团队使用的账号)
|
||||
# superAdminCode: system
|
||||
#
|
||||
# # 超级管理员获取菜单的最小权重(默认20;>=40二级管理员;>=60系统管理员;>=80超级管理员)
|
||||
# superAdminGetMenuMinWeight: 40
|
||||
#
|
||||
# # 系统管理员角色编号(客户方管理员使用的角色)
|
||||
# corpAdminRoleCode: corpAdmin
|
||||
#
|
||||
# # 二级管理员的控制权限类型(1拥有的权限 2管理的权限,管理功能包括:用户管理、组织机构、公司管理等)(v4.1.5+)
|
||||
# adminCtrlPermi: 2
|
||||
#
|
||||
# # 是否启用岗位角色,开启后将 用户->岗位->关联角色,纳入菜单和权限管理 v5.9.2
|
||||
# postRolePermi: false
|
||||
#
|
||||
# # 是否启用切换部门功能,再开启启用岗位角色后可支持 用户->附属部门->岗位->关联角色,纳入菜单和权限管理 v5.10.1
|
||||
# switchOffice: false
|
||||
#
|
||||
# # 登录后激活当前用户所在的主部门,默认为不激活即混合权限
|
||||
# loginAfterActiveMainOffice: false
|
||||
|
||||
# 多租户模式(SAAS模式)(专业版)
|
||||
useCorpModel: false
|
||||
|
||||
# # 登录账号是否租户内唯一,否则全局唯一
|
||||
# loginCodeCorpUnique: false
|
||||
#
|
||||
# # 是否启用验证码登录(手机、邮箱)
|
||||
# loginByValidCode: true
|
||||
#
|
||||
# # 用户类型配置信息(employee员工,member会员,btype往来单位,persion个人,expert专家,...),JSON 格式说明如下:
|
||||
# # {"用户类型":{"beanName":"Service或Dao的Bean名称","loginView":"登录页面视图","indexView":"主框架页面视图,支持 redirect: 前缀"}}
|
||||
# userTypeMap: >
|
||||
# {
|
||||
# employee: {beanName: "employeeService", loginView: "", indexView: "modules/sys/sysIndex"},
|
||||
# member: {beanName: "memberService", loginView: "", indexView: "modules/sys/sysIndexMember"},
|
||||
# btype: {beanName: "btypeInfoService", loginView: "", indexView: "modules/sys/sysIndexBtype"},
|
||||
# expert: {beanName: "expertService", loginView: "", indexView: "modules/sys/sysIndexExpert"}
|
||||
# }
|
||||
#
|
||||
# # 数据权限设置参数,可新增自定义数据权限,moduleCode: 针对模块, ctrlPermi: 权限类型, 0全部 1拥有权限 2管理权限
|
||||
# dataScopes: >
|
||||
# [{
|
||||
# moduleCode: "core",
|
||||
# ctrlPermi: "0",
|
||||
# ctrlName: "机构权限",
|
||||
# ctrlName_en: "Office",
|
||||
# ctrlType: "Office",
|
||||
# ctrlDataUrl: "/sys/office/treeData",
|
||||
# chkboxType: {"Y":"ps","N":"ps"},
|
||||
# expandLevel: 1,
|
||||
# remarks: ""
|
||||
# },{
|
||||
# moduleCode: "core",
|
||||
# ctrlName: "公司权限",
|
||||
# ctrlName_en: "Company",
|
||||
# ctrlType: "Company",
|
||||
# ctrlPermi: "0",
|
||||
# ctrlDataUrl: "/sys/company/treeData",
|
||||
# chkboxType: {"Y":"ps","N":"ps"},
|
||||
# expandLevel: 1,
|
||||
# remarks: ""
|
||||
# },{
|
||||
# moduleCode: "core",
|
||||
# ctrlName: "角色权限",
|
||||
# ctrlName_en: "Role",
|
||||
# ctrlType: "Role",
|
||||
# ctrlPermi: "2",
|
||||
# ctrlDataUrl: "/sys/role/treeData",
|
||||
# chkboxType: {"Y":"ps","N":"ps"},
|
||||
# expandLevel: 1,
|
||||
# remarks: ""
|
||||
# }]
|
||||
#
|
||||
# # 数据权限调试模式(会输出一些日志)
|
||||
# dataScopeDebug: false
|
||||
#
|
||||
# # 数据权限使用 API 方式实现(适应 Cloud 环境,基础用户表与业务数据表跨库的情况)
|
||||
# # 开启后设置 ctrlDataAttrName 加 AndChildren 后缀,ctrlDataParentCodesAttrName 清空
|
||||
# # 以方便读取树结构数据权限的表时包含子节点,举例如下:
|
||||
# # ctrlDataAttrName: "officeCodesAndChildren", ctrlDataParentCodesAttrName: ""
|
||||
# dataScopeApiMode: false
|
||||
#
|
||||
# # v5.10.1 开始默认关闭 JOIN 模式的数据权限,如有需要可打开此参数
|
||||
# dataScopeJoinMode: false
|
||||
#
|
||||
# # 菜单数据权限,是否启用自定义 SQL 执行权限 v5.10.1
|
||||
# dataScopeRuleSql: false
|
||||
|
||||
# 角色管理
|
||||
#role:
|
||||
# # 扩展数据权限定义:3:本部门;4:本公司;5:本部门和本公司
|
||||
# extendDataScopes: >
|
||||
# {
|
||||
# 3: {
|
||||
# Office: {
|
||||
# #控制类型的类名 : "用来获取控制表名和主键字段名,如果为 NONE,则代表是不控制该类型权限",
|
||||
# ctrlTypeClass: "com.jeesite.modules.sys.entity.Office",
|
||||
# #控制数据的类名: "指定一个静态类名,方便 ctrlDataAttrName 得到权限数据,如:当前机构编码、当前公司编码、当前行业编码等",
|
||||
# ctrlDataClass: "com.jeesite.modules.sys.utils.EmpUtils",
|
||||
# #控制数据的类名下的属性名 : "可看做 ctrlDataClass 下的 get 方法,如:EmpUtils.getOfficeCodes(),支持返回字符串或字符串数组类型",
|
||||
# ctrlDataAttrName: "officeCodes",
|
||||
# #控制数据的所有上级编码 : "用于控制数据为树表的情况,为数组时,必须与 ctrlDataAttrName 返回的长度相同,不是树表设置为空",
|
||||
# ctrlDataParentCodesAttrName: "officeParentCodess"
|
||||
# },
|
||||
# Company: {
|
||||
# ctrlTypeClass: "NONE"
|
||||
# }
|
||||
# },
|
||||
# 4: {
|
||||
# Office: {
|
||||
# ctrlTypeClass: "NONE"
|
||||
# },
|
||||
# Company: {
|
||||
# ctrlTypeClass: "com.jeesite.modules.sys.entity.Company",
|
||||
# ctrlDataClass: "com.jeesite.modules.sys.utils.EmpUtils",
|
||||
# ctrlDataAttrName: "companyCodes",
|
||||
# ctrlDataParentCodesAttrName: "companyParentCodess"
|
||||
# }
|
||||
# },
|
||||
# 5: {
|
||||
# Office: {
|
||||
# ctrlTypeClass: "com.jeesite.modules.sys.entity.Office",
|
||||
# ctrlDataClass: "com.jeesite.modules.sys.utils.EmpUtils",
|
||||
# ctrlDataAttrName: "officeCodes",
|
||||
# ctrlDataParentCodesAttrName: "officeParentCodess"
|
||||
# },
|
||||
# Company: {
|
||||
# ctrlTypeClass: "com.jeesite.modules.sys.entity.Company",
|
||||
# ctrlDataClass: "com.jeesite.modules.sys.utils.EmpUtils",
|
||||
# ctrlDataAttrName: "companyCodes",
|
||||
# ctrlDataParentCodesAttrName: "companyParentCodess"
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
|
||||
# 菜单管理
|
||||
#menu:
|
||||
# # 根据模块状态去更新相连的菜单状态
|
||||
# updateStatusByModuleStatus: false
|
||||
|
||||
# 国际化管理(专业版)
|
||||
# 国际化管理
|
||||
lang:
|
||||
enabled: false
|
||||
|
||||
# # 默认语言(4.1.3+)
|
||||
# defaultLocale: zh_CN
|
||||
# # 默认时区(4.1.3+)
|
||||
# defaultTimeZone: GMT+08:00
|
||||
|
||||
# 任务调度(标准版)
|
||||
|
||||
# 任务调度
|
||||
job:
|
||||
enabled: false
|
||||
|
||||
# # 是否自动启动任务调度(可关闭)
|
||||
# autoStartup: true
|
||||
#
|
||||
# # 任务调度启动延迟设置(单位:秒)(建议设置项目启动完成后的时间)
|
||||
# startupDelay: 60
|
||||
#
|
||||
# # 任务调度线程池
|
||||
# threadPool:
|
||||
# threadCount: 10
|
||||
# threadPriority: 5
|
||||
#
|
||||
# # 调度设置,集群中每一个实例都必须使用相同的instanceName名称 (区分特定的调度器实例)
|
||||
# # 在微服务模式情况下,请将instanceName名称设置为当前微服务的名称
|
||||
# # 每一个instanceId必须不同,设置AUTO则自动生成
|
||||
# scheduler:
|
||||
# instanceName: JeeSiteScheduler
|
||||
# #instanceName: ${spring.application.name}
|
||||
# instanceId: AUTO
|
||||
#
|
||||
# # 任务调度集群设置
|
||||
# jobStore:
|
||||
# isClustered: true
|
||||
# dataSourceName: job
|
||||
# clusterCheckinInterval: 1000
|
||||
# driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
|
||||
# className: org.springframework.scheduling.quartz.LocalDataSourceJobStore
|
||||
|
||||
# # 调度日志
|
||||
# log:
|
||||
# # 计划调度日志
|
||||
# scheduler:
|
||||
# enabled: true
|
||||
# # 是否只保存错误日志
|
||||
# errorLevel: true
|
||||
# # 任务执行日志
|
||||
# jobDetail:
|
||||
# enabled: true
|
||||
# # 是否只保存错误日志
|
||||
# errorLevel: true
|
||||
# # 计划触发日志
|
||||
# trigger:
|
||||
# enabled: false
|
||||
|
||||
# 代码生成
|
||||
gen:
|
||||
enabled: true
|
||||
|
||||
# # 表名字段名是否强制小写
|
||||
# forceLowerCase: true
|
||||
|
||||
# 系统监控
|
||||
state:
|
||||
@@ -440,236 +110,29 @@ state:
|
||||
|
||||
# Shiro 相关
|
||||
shiro:
|
||||
|
||||
# 主页路径
|
||||
defaultPath: ${shiro.loginUrl}
|
||||
|
||||
# 登录相关设置
|
||||
loginUrl: ${adminPath}/login
|
||||
logoutUrl: ${shiro.loginUrl}
|
||||
successUrl: ${adminPath}/index
|
||||
|
||||
# # Apereo CAS 相关配置(标准版)
|
||||
# casServerUrl: http://127.0.0.1:8981/cas
|
||||
# casClientUrl: http://127.0.0.1:8980/js
|
||||
# loginUrl: ${shiro.casServerUrl}?service=${shiro.casClientUrl}${adminPath}/login-cas
|
||||
# logoutUrl: ${shiro.casServerUrl}/logout?service=${shiro.loginUrl}
|
||||
# successUrl: ${shiro.casClientUrl}${adminPath}/index
|
||||
|
||||
# # LDAP 相关设置(标准版)
|
||||
# ldapUrl: ldap://127.0.0.1:389
|
||||
# ldapUserDn: uid={0},ou=users,dc=mycompany,dc=com
|
||||
|
||||
# 简单 SSO 登录相关配置
|
||||
sso:
|
||||
# 如果启用/sso/{username}/{token}单点登录,请修改此安全key并与单点登录系统key一致。
|
||||
secretKey: ~
|
||||
# 是否加密单点登录安全Key
|
||||
encryptKey: true
|
||||
# token 时效性,如:1天:yyyyMMdd、1小时:yyyyMMddHH、1分钟:yyyyMMddHHmm
|
||||
encryptKeyDateFormat: yyyyMMdd
|
||||
|
||||
# 登录提交信息加密(如果不需要加密,设置为空即可)
|
||||
loginSubmit:
|
||||
# 加密用户名、密码、验证码,后再提交(key设置为3个,用逗号分隔)加密方式:DES(4.1.9及之前版本默认设置)
|
||||
# v4.2.0+ 开始支持 Base64 加密方式,方便移动端及第三方系统处理认证,可直接设置 Key 为 Base64(4.2.0+默认设置)
|
||||
#secretKey: thinkgem,jeesite,com
|
||||
secretKey: Base64
|
||||
#secretKey: ~
|
||||
|
||||
# 记住我密钥设置,你可以通过 com.jeesite.test.RememberMeKeyGen 类快速生成一个秘钥。
|
||||
# 若不设置,则每次启动系统后自动生成一个新秘钥,这样会导致每次重启后,客户端记录的用户信息将失效。
|
||||
rememberMe:
|
||||
secretKey: ~
|
||||
|
||||
# # 指定获取客户端IP的Header名称,防止IP伪造。指定为空,则使用原生方法获取IP。
|
||||
# remoteAddrHeaderName: X-Forwarded-For
|
||||
#
|
||||
# # 允许的请求方法设定,解决安全审计问题(BPM设计器用到了PUT或DELETE方法)
|
||||
# allowRequestMethods: GET, POST, OPTIONS, PUT, DELETE
|
||||
#
|
||||
# # 是否允许账号多地登录,如果设置为false,同一个设备类型的其它地点登录的相同账号被踢下线
|
||||
# isAllowMultiAddrLogin: true
|
||||
#
|
||||
# # 是否允许多账号多设备登录,如果设置为false,其它地点登录的相同账号全部登录设备将被踢下线
|
||||
# isAllowMultiDeviceLogin: true
|
||||
#
|
||||
# # 是否允许刷新主框架页,如果设置为false,刷新主页将导致重新登录。如安全性比较高的,如银行个人首页不允许刷新。
|
||||
# isAllowRefreshIndex: true
|
||||
#
|
||||
# # 是否允许嵌入到外部网站iframe中(true:不限制,false:不允许)
|
||||
# isAllowExternalSiteIframe: true
|
||||
#
|
||||
# # 设定允许获取的资源列表(v4.2.3)
|
||||
# #contentSecurityPolicy: "default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-eval' 'unsafe-inline'; img-src 'self' 'unsafe-inline' 'unsafe-eval' data:"
|
||||
|
||||
# # 是否允许跨域访问 CORS,如果允许,设置允许的域名。v4.2.3 开始支持多个域名和模糊匹配,例如:http://*.jeesite.com,http://*.jeesite.net
|
||||
# accessControlAllowOrigin: '*'
|
||||
#
|
||||
# # 允许跨域访问时 CORS,可以获取和返回的方法和请求头
|
||||
# accessControlAllowMethods: GET, POST, OPTIONS
|
||||
# accessControlAllowHeaders: content-type, x-requested-with, x-ajax, x-token, x-remember
|
||||
# accessControlExposeHeaders: x-token, x-remember
|
||||
|
||||
# # 是否允许接收跨域的Cookie凭证数据 CORS
|
||||
# accessControlAllowCredentials: false
|
||||
#
|
||||
# # 允许的网站来源地址,不设置为全部地址(避免一些跨站点请求伪造 CSRF、防盗链)
|
||||
# allowReferers: http://127.0.0.1,http://localhost
|
||||
#
|
||||
# # 允许重定向的地址,不设置为全部允许,设置this只允许本项目内部跳转,多个用逗号隔开,例如:this,http://*.jeesite.com
|
||||
# allowRedirects: this
|
||||
#
|
||||
# # 是否在登录后生成新的Session(默认false)
|
||||
# isGenerateNewSessionAfterLogin: false
|
||||
#
|
||||
# # 内部系统访问过滤器,可设置多个允许的内部系统IP地址串,多个用逗号隔开,完整的IP使用“]”符号结尾
|
||||
# innerFilterAllowRemoteAddrs: 127.0.0.1]
|
||||
|
||||
# URI 权限过滤器定义(自定义添加参数时,请不要移除 ${adminPath}/** = user,否则会导致权限异常)
|
||||
# 提示:填写过滤规则,请注意先后顺序,从上到下,先匹配先受用规则,匹配成功后不再继续匹配。
|
||||
filterChainDefinitions: |
|
||||
${adminPath}/** = user
|
||||
|
||||
# # URI 权限过滤器定义(以下参考,必须登录user可访问的地址和不需要登录anon可访问地址)
|
||||
# filterChainDefinitions: |
|
||||
# /ReportServer/** = user
|
||||
# ${adminPath}/file/** = anon
|
||||
# ${adminPath}/cms/* = anon
|
||||
# ${adminPath}/cms/site/select = anon
|
||||
# ${adminPath}/cms/site/* = anon
|
||||
# ${adminPath}/cms/category/treeData = anon
|
||||
# ${adminPath}/cms/category/* = anon
|
||||
# ${adminPath}/cms/article/* = anon
|
||||
# ${adminPath}/cms/link/* = anon
|
||||
# ${adminPath}/sys/corpAdmin/treeData = anon
|
||||
# ${adminPath}/${spring.application.name}/swagger/** = anon
|
||||
# ${adminPath}/** = user
|
||||
|
||||
# Session 相关
|
||||
session:
|
||||
|
||||
# 会话超时时间,单位:毫秒,10m=600000, 20m=1200000ms, 30m=1800000ms, 60m=3600000ms, 12h=43200000ms, 1day=86400000ms
|
||||
# 注意:如果超时超过30m,你还需要同步修改当前配置文件的属性:j2cache.caffeine.region.sessionCache 超时时间,大于这个值。
|
||||
|
||||
# 游客会话超时时间:只访问了系统,但未登录系统的用户为游客,游客默认超时时间为3分钟,如:未登录系统时的图片验证码有效时间。
|
||||
sessionTimeout: 180000
|
||||
|
||||
# 登录系统后的用户超时时间(不明确 param_deviceType 参数的,默认设备为 pc 登录)
|
||||
pcSessionTimeout: 1800000
|
||||
|
||||
# # 手机APP设备会话超时参数设置,登录请求参数加 param_deviceType=mobileApp 时有效,一般情况无需设置
|
||||
# mobileAppSessionTimeout: 1800000
|
||||
#
|
||||
# # 定时清理失效会话,清理用户直接关闭浏览器造成的孤立会话(设置为 0 关闭,微服务下只开启 core 即可)
|
||||
# sessionTimeoutClean: 1200000
|
||||
#
|
||||
# # 会话唯一标识SessionId在Cookie中的名称。
|
||||
# sessionIdCookieName: jeesite.session.id
|
||||
# #sessionIdCookiePath: ${server.servlet.context-path}
|
||||
#
|
||||
# # 共享的SessionId的Cookie名称,保存到跟路径下,第三方应用获取。同一域名下多个项目时需设置共享Cookie的名称。
|
||||
# shareSessionIdCookieName: ${session.sessionIdCookieName}
|
||||
#
|
||||
# # 其它 SimpleCookie 参数(v4.2.3)
|
||||
# sessionIdCookieSecure: false
|
||||
# sessionIdCookieHttpOnly: true
|
||||
# sessionIdCookieSameSite: LAX
|
||||
#
|
||||
# # 设置接收 SessionId 请求参数和请求头的名称
|
||||
# sessionIdParamName: __sid
|
||||
# sessionIdHeaderName: x-token
|
||||
#
|
||||
# # 当直接通过 __sid 参数浏览器访问页面时,可将直接将 __sid 写入 Cookie 应用于后面的访问
|
||||
# # 访问地址举例:http://host/js/a/index?__sid=123456&__cookie=true
|
||||
# writeCookieParamName: __cookie
|
||||
#
|
||||
# # 记住我的请求参数和请求头的名称(v4.2.3)
|
||||
# rememberMeHeaderName: x-remember
|
||||
|
||||
# 缓存配置
|
||||
#j2cache:
|
||||
#
|
||||
# # 一级缓存
|
||||
# caffeine:
|
||||
# region:
|
||||
# #[cacheName]: size, xxxx[s|m|h|d]
|
||||
# default: 10000, 1h
|
||||
# sysCache: 100000, 365d
|
||||
# sessionCache: 100000, 12h
|
||||
#
|
||||
# # 二级缓存
|
||||
# redis:
|
||||
# # 存储模式 (generic|hash)
|
||||
# storage: hash
|
||||
# # 缓存命名空间名
|
||||
# namespace: jeesite
|
||||
# # 通知订阅的通道名
|
||||
# channel: ${j2cache.redis.namespace}
|
||||
# # 消息监听器
|
||||
# listener:
|
||||
# taskPool:
|
||||
# corePoolSize: 8
|
||||
# maxPoolSize: 20
|
||||
# keepAliveSeconds: 60
|
||||
# queueCapacity: 1000
|
||||
#
|
||||
# # 通知订阅
|
||||
# broadcast:
|
||||
# # 缓存清理模式
|
||||
# # passive -> 被动清除,一级缓存过期进行通知各节点清除一二级缓存
|
||||
# # active -> 主动清除,二级缓存过期主动通知各节点清除,优点在于所有节点可以同时收到缓存清除,存储模式需要设置为 generic
|
||||
# # blend -> 两种模式一起运作,对于各个节点缓存准确以及及时性要求高的可以使用,正常用前两种模式中一个就可
|
||||
# cache_clean_mode: passive
|
||||
|
||||
# 锁管理器(支持本地锁和分布式锁,当isClusterMode开启时,自动使用分布式锁)
|
||||
#lockManager:
|
||||
# # 分布式锁
|
||||
# redis:
|
||||
# # 锁名称前缀(多系统共用Redis时修改)
|
||||
# keyPrefix: ${j2cache.redis.namespace}:lockKey
|
||||
# # 检查锁的等待毫秒数
|
||||
# sleepMillis: 100
|
||||
|
||||
# Web 相关
|
||||
web:
|
||||
|
||||
# # AJAX 接受参数名和请求头名(v4.3.0)
|
||||
# ajaxParamName: __ajax
|
||||
# ajaxHeaderName: x-ajax
|
||||
#
|
||||
# # 是否默认对结果进行统一包装为:{ code: 200, msg: "", data: {} | [] }(v5.8.1)
|
||||
# # 注意:如果设置为 true 会对前端页面访问产生影响,暂时只为系统纯接口提供开启使用。
|
||||
# isDefaultResult: false
|
||||
#
|
||||
# # 开启对接口结果数据进行包装的请求参数名和请求头名(v5.8.1)
|
||||
# resultParamName: __data
|
||||
# resultHeaderName: x-header
|
||||
#
|
||||
# # MVC 视图相关
|
||||
# view:
|
||||
#
|
||||
# # 系统主题名称,主题视图优先级最高,如果主题下无这个视图文件则访问默认视图
|
||||
# # 引入页面头部:'/themes/'+themeName+'/include/header.html'
|
||||
# # 引入页面尾部:'/themes/'+themeName+'/include/footer.html'
|
||||
# themeName: default
|
||||
#
|
||||
# # 使用智能参数接收器,同时支持 JSON 和 FormData 的参数接受
|
||||
# smartMethodArgumentResolver: true
|
||||
#
|
||||
# # 使用 .json、.xml 后缀匹配返回视图数据(Spring官方已不推荐使用)
|
||||
# favorPathExtension: false
|
||||
# # 使用 __ajax=json、__ajax=xml 后缀匹配返回视图数据
|
||||
# favorParameter: true
|
||||
# # 修改 Spring MVC 默认 format 参数名,避免 406 错误 v5.15.1
|
||||
# favorParameterName: __format
|
||||
# # 使用 x-ajax=json、x-ajax=xml 请求头匹配返回视图数据
|
||||
# favorHeader: true
|
||||
|
||||
# MVC 拦截器
|
||||
interceptor:
|
||||
|
||||
# 后台管理日志记录拦截器
|
||||
log:
|
||||
enabled: true
|
||||
addPathPatterns: >
|
||||
@@ -688,43 +151,14 @@ web:
|
||||
${adminPath}/file/**,
|
||||
${adminPath}/tags/*,
|
||||
${adminPath}/msg/**
|
||||
|
||||
# 前台自动切换到手机视图拦截器
|
||||
mobile:
|
||||
enabled: false
|
||||
addPathPatterns: >
|
||||
${frontPath}/**
|
||||
excludePathPatterns: ~
|
||||
|
||||
# # 静态文件后缀,过滤静态文件,以提高访问性能。
|
||||
# staticFile: .css,.js,.map,.png,.jpg,.gif,.jpeg,.webp,.bmp,.ico,.swf,.psd,.htc,.crx,.xpi,.exe,.ipa,.apk,.otf,.eot,.svg,.ttf,.woff,.woff2
|
||||
#
|
||||
# # 静态文件后缀,排除的url路径,指定哪些uri路径不进行静态文件过滤。
|
||||
# staticFileExcludeUri: /druid/
|
||||
#
|
||||
# # 静态资源路径前缀,可做 CDN 加速优化,默认前面增加 ctxPath 前缀,如果前面写 “//” 两个斜杠 或 包含 “://” 不加 ctxPath。
|
||||
# staticPrefix: /static
|
||||
#
|
||||
# # 严格模式(更严格的数据安全验证)
|
||||
# strictMode: false
|
||||
#
|
||||
# # 所有请求信息将进行xss过滤,这里列出不被xss过滤的地址
|
||||
# xssFilterExcludeUri: /ureport/,/visual/
|
||||
#
|
||||
# # 自定义正则表达式验证(主键、登录名)
|
||||
# validator:
|
||||
# id: '[a-zA-Z0-9_\-/#\u4e00-\u9fa5]{0,64}'
|
||||
# user.loginCode: '[a-zA-Z0-9_\u4e00-\u9fa5]{4,20}'
|
||||
#
|
||||
# # 默认不启用(为兼用旧版保留,建议使用 CORS)
|
||||
# jsonp:
|
||||
# enabled: false
|
||||
# callback: __callback
|
||||
|
||||
# 核心模块的Web功能开启(其它微服务时设为false)
|
||||
core:
|
||||
enabled: true
|
||||
|
||||
|
||||
# 在线API文档
|
||||
springdoc:
|
||||
api-docs:
|
||||
@@ -732,7 +166,7 @@ springdoc:
|
||||
swagger-ui:
|
||||
enabled: true
|
||||
|
||||
# 错误页面500.html是否输出错误信息(正式环境,为提供安全性可设置为false)
|
||||
# 错误页面
|
||||
error:
|
||||
page:
|
||||
printErrorInfo: true
|
||||
@@ -744,107 +178,11 @@ error:
|
||||
# 文件上传
|
||||
file:
|
||||
enabled: true
|
||||
|
||||
# # 文件上传根路径,设置路径中不允许包含“userfiles”,在指定目录中系统会自动创建userfiles目录,如果不设置默认为contextPath路径
|
||||
# #baseDir: D:/jeesite
|
||||
#
|
||||
# # 上传文件的相对路径(支持:yyyy、MM、dd、HH、mm、ss、E、bizType、corpCode、userCode、userType、userCache中的key)
|
||||
# uploadPath: '{yyyy}{MM}/'
|
||||
#
|
||||
# # 上传单个文件最大字节(500M),在这之上还有 > Tomcat限制 > Nginx限制,等,此设置会覆盖 spring.http.multipart.maxFileSize 设置
|
||||
# maxFileSize: '500*1024*1024'
|
||||
#
|
||||
# # 设置允许上传的文件后缀(全局设置)
|
||||
# imageAllowSuffixes: .gif,.bmp,.jpeg,.jpg,.ico,.png,.tif,.tiff,.webp,
|
||||
# mediaAllowSuffixes: .flv,.swf,.mkv,webm,.mid,.mov,.mp3,.mp4,.m4v,.mpc,.mpeg,.mpg,.swf,.wav,.wma,.wmv,.avi,.rm,.rmi,.rmvb,.aiff,.asf,.ogg,.ogv,
|
||||
# fileAllowSuffixes: .doc,.docx,.rtf,.xls,.xlsx,.csv,.ppt,.pptx,.wps,.et,.dps,.pdf,.ofd,.vsd,.txt,.md,.xml,.rar,.zip,.7z,.tar,.tgz,.jar,.gz,.gzip,.bz2,.cab,.iso,.dmg,.ipa,.apk,
|
||||
#
|
||||
# # 允许上传的文件内容类型(图片、word、excel、ppt)防止修改后缀恶意上传文件(默认不启用验证)
|
||||
# #allowContentTypes: image/jpeg,image/gif,image/bmp,image/png,image/x-png,
|
||||
# # application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,
|
||||
# # application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,
|
||||
# # application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation
|
||||
#
|
||||
# # 上传图片自动压缩宽高,指定为 -1 不进行压缩(全局设置) v4.1.7
|
||||
# imageMaxWidth: 1024
|
||||
# imageMaxHeight: 768
|
||||
#
|
||||
# # 缩略图设定,生成的尺寸(宽x高,宽x高)、格式(jpg,png) v5.5.0
|
||||
# #imageThumbConfig: 150x150,300x300
|
||||
# #imageThumbFormat: jpg
|
||||
#
|
||||
# # 是否启用秒传
|
||||
# checkmd5: true
|
||||
# # 是否开启分片上传
|
||||
# chunked: true
|
||||
# # 分片大小,单位字节(10M)
|
||||
# chunkSize: '10*1024*1024'
|
||||
# # 最大上传线程数
|
||||
# threads: 3
|
||||
#
|
||||
# # 是否启用检查点(支持断点续传,上传)
|
||||
# checkpoint: true
|
||||
#
|
||||
# # 是否用文件流方式下载(支持断点续传,下载)
|
||||
# isFileStreamDown: true
|
||||
|
||||
# 视频转码
|
||||
#video:
|
||||
#
|
||||
# # 视频格式转换 ffmpeg.exe 所放的路径
|
||||
# ffmpegFile: d:/tools/video/ffmpeg-4.9/bin/ffmpeg.exe
|
||||
# #ffmpegFile: d:/tools/video/libav-10.6-win64/bin/avconv.exe
|
||||
#
|
||||
# # 视频格式转换 mencoder.exe 所放的路径
|
||||
# mencoderFile: d:/tools/video/mencoder-4.9/mencoder.exe
|
||||
#
|
||||
# # 将mp4视频的元数据信息转到视频第一帧
|
||||
# qtFaststartFile: d:/tools/video/qt-faststart/qt-faststart.exe
|
||||
|
||||
# 文件管理是否启用租户模式
|
||||
#filemanager:
|
||||
# useCorpModel: false
|
||||
|
||||
#======================================#
|
||||
#========== Message settings ==========#
|
||||
#======================================#
|
||||
|
||||
# 消息提醒中心(专业版)
|
||||
# 消息提醒中心
|
||||
msg:
|
||||
enabled: false
|
||||
|
||||
# # 是否开启实时发送消息(保存消息后立即检查未读消息并发送),分布式部署下请单独配置消息发送服务,不建议开启此选项。
|
||||
# realtime:
|
||||
# # 是否开启
|
||||
# enabled: true
|
||||
# # 消息实时推送任务Bean名称
|
||||
# beanName: msgLocalPushTask
|
||||
# # 消息推送线程池
|
||||
# pushTaskPool:
|
||||
# corePoolSize: 5
|
||||
# maxPoolSize: 20
|
||||
# keepAliveSeconds: 60
|
||||
#
|
||||
# # 推送失败次数,如果推送次数超过了设定次数,仍不成功,则放弃并保存到历史
|
||||
# pushFailNumber: 3
|
||||
#
|
||||
# # 邮件发送参数
|
||||
# email:
|
||||
# beanName: emailSendService
|
||||
# fromAddress: test@163.com
|
||||
# fromPassword: 123456
|
||||
# fromHostName: smtp.163.com
|
||||
# sslOnConnect: false
|
||||
# sslSmtpPort: 994
|
||||
#
|
||||
# # 短信网关
|
||||
# sms:
|
||||
# beanName: smsSendService
|
||||
# url: http://localhost:80/msg/sms/send
|
||||
# data: username=jeesite&password=jeesite.com
|
||||
# prefix: 【JeeSite】
|
||||
# suffix: ~
|
||||
|
||||
#======================================#
|
||||
#========== Project settings ==========#
|
||||
#======================================#
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jeesite.modules.biz.dao.MyProjectContractDao">
|
||||
|
||||
<!-- 查询数据
|
||||
<select id="findList" resultType="MyProjectContract">
|
||||
SELECT ${sqlMap.column.toSql()}
|
||||
FROM ${sqlMap.table.toSql()}
|
||||
<where>
|
||||
${sqlMap.where.toSql()}
|
||||
</where>
|
||||
ORDER BY ${sqlMap.order.toSql()}
|
||||
</select> -->
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jeesite.modules.biz.dao.MyProjectRequirementDao">
|
||||
|
||||
<!-- 查询数据
|
||||
<select id="findList" resultType="MyProjectRequirement">
|
||||
SELECT ${sqlMap.column.toSql()}
|
||||
FROM ${sqlMap.table.toSql()}
|
||||
<where>
|
||||
${sqlMap.where.toSql()}
|
||||
</where>
|
||||
ORDER BY ${sqlMap.order.toSql()}
|
||||
</select> -->
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jeesite.modules.biz.dao.MyProjectTaskDao">
|
||||
|
||||
<!-- 查询数据
|
||||
<select id="findList" resultType="MyProjectTask">
|
||||
SELECT ${sqlMap.column.toSql()}
|
||||
FROM ${sqlMap.table.toSql()}
|
||||
<where>
|
||||
${sqlMap.where.toSql()}
|
||||
</where>
|
||||
ORDER BY ${sqlMap.order.toSql()}
|
||||
</select> -->
|
||||
|
||||
</mapper>
|
||||
1
web-api/src/main/resources/worker/_app.config.js
Normal file
1
web-api/src/main/resources/worker/_app.config.js
Normal file
@@ -0,0 +1 @@
|
||||
window.__PRODUCTION__MYWORKER__CONF__={"VITE_GLOB_APP_TITLE":"数据管理系统","VITE_GLOB_APP_SHORT_NAME":"myWorker","VITE_GLOB_API_URL":"","VITE_GLOB_API_URL_PREFIX":"","VITE_GLOB_ADMIN_PATH":"/a","VITE_FILE_PREVIEW":"true"};Object.freeze(window.__PRODUCTION__MYWORKER__CONF__);Object.defineProperty(window,"__PRODUCTION__MYWORKER__CONF__",{configurable:false,writable:false,});if(location.hostname!=='localhost'&&location.hostname!=='127.0.0.1'){var _hmt =_hmt ||[];(function(){var hm =document.createElement("script");hm.src ="https://hm.baidu.com/hm.js?65b88e88a94e0118de2962f328f17622";var s =document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm,s);})();}
|
||||
BIN
web-api/src/main/resources/worker/assets/03-B9ebRJdn.png
Normal file
BIN
web-api/src/main/resources/worker/assets/03-B9ebRJdn.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
BIN
web-api/src/main/resources/worker/assets/14-BfFHvMnp.png
Normal file
BIN
web-api/src/main/resources/worker/assets/14-BfFHvMnp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.2 KiB |
BIN
web-api/src/main/resources/worker/assets/16-Cdqx8Mw5.png
Normal file
BIN
web-api/src/main/resources/worker/assets/16-Cdqx8Mw5.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
BIN
web-api/src/main/resources/worker/assets/18-Cjt80Ywj.png
Normal file
BIN
web-api/src/main/resources/worker/assets/18-Cjt80Ywj.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
BIN
web-api/src/main/resources/worker/assets/23-CYjKliAl.png
Normal file
BIN
web-api/src/main/resources/worker/assets/23-CYjKliAl.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 357 KiB |
BIN
web-api/src/main/resources/worker/assets/33-2On0jK3m.png
Normal file
BIN
web-api/src/main/resources/worker/assets/33-2On0jK3m.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 102 KiB |
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{b as p,j as u,B as m,c as n,o,a as e,F as d,x as _,t as y,L as f}from"./index-BRLZOSuF-1775297478351.js";import{e as v}from"./myQuickLogin-BrWMD070.js";const b={class:"biz-apps-card"},h={class:"card-content"},k=["onClick"],z={class:"biz-apps-item__name"},A=p({__name:"BizApps",setup(B){const c=f(),a=u([]);async function i(){try{const t=await v({ustatus:"1",systemType:"1"});a.value=t||[]}catch{a.value=[]}}function l(s){s.systemUrl&&c.push(s.systemUrl)}return m(()=>{i()}),(s,t)=>(o(),n("div",b,[t[0]||(t[0]=e("div",{class:"card-title"},[e("span",null,"常用应用")],-1)),e("div",h,[(o(!0),n(d,null,_(a.value,r=>(o(),n("button",{class:"biz-apps-item",type:"button",onClick:L=>l(r)},[e("div",z,y(r.systemName),1)],8,k))),256))])]))}});export{A as default};
|
||||
@@ -0,0 +1 @@
|
||||
.biz-apps-card{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#fff}.biz-apps-card .card-title{display:flex;align-items:center;justify-content:space-between;height:var(--analysis-card-title-height, 37px);padding:var(--analysis-card-title-padding, 8px 16px);box-sizing:border-box;flex-shrink:0;font-size:14px;font-weight:500;line-height:20px;color:#334155;border-bottom:1px solid #e2e8f0;background:transparent}.biz-apps-card .card-content{flex:1;min-height:0;padding:var(--analysis-card-content-padding, 8px 12px 12px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:var(--analysis-card-item-gap, 8px);overflow-x:auto;overflow-y:hidden}.biz-apps-card .biz-apps-item{display:flex;flex-direction:row;align-items:center;justify-content:center;min-width:0;min-height:0;padding:6px 4px;border:1px solid #e2e8f0;border-radius:var(--analysis-card-radius, 10px);background:#fff;box-shadow:0 8px 24px #94a3b824;cursor:pointer;appearance:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.biz-apps-card .biz-apps-item:hover{transform:translateY(-2px);border-color:#93c5fd;box-shadow:0 12px 28px #60a5fa33}.biz-apps-card .biz-apps-item__name{display:flex;align-items:center;justify-content:center;width:100%;min-height:100%;color:#334155;font-size:12px;line-height:16px;text-align:center;word-break:break-word}html[data-theme=dark] .biz-apps-card{background:#141414}html[data-theme=dark] .biz-apps-card .card-title{color:#cbd5e1;border-bottom-color:#334155}html[data-theme=dark] .biz-apps-card .biz-apps-item{border-color:#334155;background:#141414;box-shadow:0 10px 24px #0000003d}html[data-theme=dark] .biz-apps-card .biz-apps-item:hover{border-color:#60a5fa;box-shadow:0 14px 32px #2563eb38}html[data-theme=dark] .biz-apps-card .biz-apps-item__name{color:#e2e8f0}@media(max-width:768px){.biz-apps-card .card-content{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-flow:column}}
|
||||
@@ -0,0 +1 @@
|
||||
import{b as R,aa as P,J as w,j as E,L as A,p as D,K as S,ab as N,i as L,ac as T,ad as V,ae as G,af as O,ag as j,ah as q,_ as z,q as b,c as B,o as m,k as J,w as I,e as M,G as K,t as $,D as F,v as H}from"./index-BRLZOSuF-1775297478351.js";import{B as y}from"./index-CiL_w4Vw.js";import"./redshift-CC4Ds1Bk.js";import"./WorkbenchHeader-DLmnKCUw.js";const Q=R({name:"LayoutBreadcrumb",components:{Icon:w,[y.name]:y},props:{theme:P.oneOf(["dark","light"])},setup(){const n=E([]),{currentRoute:i}=A(),{prefixCls:v}=D("layout-breadcrumb"),{getShowBreadCrumbIcon:C}=S(),d=N(),{t:k}=L();T(async()=>{if(i.value.name===G)return;const t=await O(),e=i.value.matched,a=e?.[e.length-1];let r=i.value.path;a&&a?.meta?.currentActiveMenu&&(r=a.meta.currentActiveMenu);const c=j(t,r),u=t.filter(_=>_.path===c[0]),s=l(u,c);if(!s||s.length===0)return;const g=f(s);i.value.meta?.currentActiveMenu&&g.push({...i.value,name:i.value.meta?.title||i.value.name}),n.value=g});function l(t,e){const a=[];return t.forEach(r=>{e.includes(r.path)&&a.push({...r,name:r.meta?.title||r.name}),r.children?.length&&a.push(...l(r.children,e))}),a}function f(t){return q(t,e=>{const{meta:a,name:r}=e;if(!a)return!!r;const{title:c,hideBreadcrumb:u,hideMenu:s}=a;return!(!c||u||s)}).filter(e=>!e.meta?.hideBreadcrumb||!e.meta?.hideMenu)}function h(t,e,a){a?.preventDefault();const{children:r,redirect:c,meta:u}=t;if(r?.length&&!c){a?.stopPropagation();return}if(!u?.carryParam)if(c&&V(c))d(c);else{let s="";e.length===1?s=e[0]:s=`${e.slice(1).pop()||""}`,s=/^\//.test(s)?s:`/${s}`,d(s)}}function o(t,e){return t.indexOf(e)!==t.length-1}function p(t){return t.icon||t.meta?.icon}return{routes:n,t:k,prefixCls:v,getIcon:p,getShowBreadCrumbIcon:C,handleClick:h,hasRedirect:o}}}),U={key:1};function W(n,i,v,C,d,k){const l=b("Icon"),f=b("router-link"),h=b("a-breadcrumb");return m(),B("div",{class:H([n.prefixCls,`${n.prefixCls}--${n.theme}`])},[J(h,{routes:n.routes},{itemRender:I(({route:o,routes:p,paths:t})=>[n.getShowBreadCrumbIcon&&n.getIcon(o)?(m(),M(l,{key:0,icon:n.getIcon(o)},null,8,["icon"])):K("",!0),n.hasRedirect(p,o)?(m(),M(f,{key:2,to:"",onClick:e=>n.handleClick(o,t,e)},{default:I(()=>[F($(n.t(o.name||o.meta.title)),1)]),_:2},1032,["onClick"])):(m(),B("span",U,$(n.t(o.name||o.meta.title)),1))]),_:1},8,["routes"])],2)}const ee=z(Q,[["render",W]]);export{ee as default};
|
||||
@@ -0,0 +1 @@
|
||||
.jeesite-layout-breadcrumb{display:flex;padding:0 8px;align-items:center}.jeesite-layout-breadcrumb .ant-breadcrumb-overlay-link .anticon{margin-right:4px;margin-bottom:2px}.jeesite-layout-breadcrumb--light .ant-breadcrumb .ant-breadcrumb-overlay-link{color:#999}.jeesite-layout-breadcrumb--light .ant-breadcrumb .ant-breadcrumb-overlay-link:hover a{color:#2a50ec}.jeesite-layout-breadcrumb--light .ant-breadcrumb .ant-breadcrumb-overlay-link a{color:#000000a6}.jeesite-layout-breadcrumb--light .ant-breadcrumb .ant-breadcrumb-overlay-link a:hover{color:#2a50ec}.jeesite-layout-breadcrumb--light .ant-breadcrumb .ant-breadcrumb-separator{color:#999}.jeesite-layout-breadcrumb--light .ant-breadcrumb .ant-breadcrumb-link a,.jeesite-layout-breadcrumb--light .ant-breadcrumb .ant-breadcrumb-link span{color:#000000a6}.jeesite-layout-breadcrumb--dark .ant-breadcrumb .ant-breadcrumb-overlay-link{color:#fff9}.jeesite-layout-breadcrumb--dark .ant-breadcrumb .ant-breadcrumb-overlay-link:hover a{color:#fff}.jeesite-layout-breadcrumb--dark .ant-breadcrumb .ant-breadcrumb-overlay-link a{color:#fffc}.jeesite-layout-breadcrumb--dark .ant-breadcrumb .ant-breadcrumb-overlay-link a:hover{color:#fff}.jeesite-layout-breadcrumb--dark .ant-breadcrumb .ant-breadcrumb-separator,.jeesite-layout-breadcrumb--dark .ant-breadcrumb .anticon,.jeesite-layout-breadcrumb--dark .ant-breadcrumb .ant-breadcrumb-link a,.jeesite-layout-breadcrumb--dark .ant-breadcrumb .ant-breadcrumb-link span{color:#fffc}
|
||||
@@ -0,0 +1 @@
|
||||
.chart-top[data-v-d2a9c799]{width:100%;height:100%;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.chart-top__card[data-v-d2a9c799]{min-width:0;height:100%;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;box-shadow:0 8px 24px #94a3b824;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background-color .2s ease}.chart-top__card[data-v-d2a9c799]:hover{transform:translateY(-2px);border-color:#93c5fd;box-shadow:0 12px 28px #60a5fa33}.chart-top__left[data-v-d2a9c799]{min-width:0;display:flex;align-items:center;gap:10px}.chart-top__icon[data-v-d2a9c799]{flex-shrink:0;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px}.chart-top__label[data-v-d2a9c799]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#475569;font-size:14px;line-height:20px}.chart-top__right[data-v-d2a9c799]{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px;color:#0f172a;text-align:center}.chart-top__value[data-v-d2a9c799]{font-size:24px;font-weight:700;line-height:1}.chart-top__unit[data-v-d2a9c799]{color:#64748b;font-size:13px;line-height:18px}html[data-theme=dark] .chart-top__card[data-v-d2a9c799]{border-color:#334155;background:#141414!important;box-shadow:none!important}html[data-theme=dark] .chart-top__card[data-v-d2a9c799]:hover{transform:translateY(-2px);border-color:#60a5fa;background:#141414!important;box-shadow:0 14px 32px #2563eb38!important}html[data-theme=dark] .chart-top__label[data-v-d2a9c799]{color:#94a3b8}html[data-theme=dark] .chart-top__right[data-v-d2a9c799]{color:#f1f5f9}html[data-theme=dark] .chart-top__unit[data-v-d2a9c799]{color:#94a3b8}@media(max-width:1400px){.chart-top[data-v-d2a9c799]{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.chart-top[data-v-d2a9c799]{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}.chart-top__card[data-v-d2a9c799]{padding:10px 12px}.chart-top__value[data-v-d2a9c799]{font-size:20px}}
|
||||
@@ -0,0 +1 @@
|
||||
import{b as s,m as l,c as e,o as t,F as i,x as r,a,y as _,k as d,f as u,J as p,t as n,_ as g}from"./index-BRLZOSuF-1775297478351.js";const b={class:"chart-top"},h={class:"chart-top__left"},v={class:"chart-top__label"},y={class:"chart-top__right"},k={class:"chart-top__value"},f={class:"chart-top__unit"},B=s({__name:"ChartTop",setup(C){const c=l(()=>[{key:"customer",label:"客户总数",value:1280,unit:"户",icon:"ant-design:team-outlined",iconBg:"rgba(59, 130, 246, 0.14)",iconColor:"#2563eb"},{key:"contract",label:"合同金额",value:986,unit:"万",icon:"ant-design:file-text-outlined",iconBg:"rgba(16, 185, 129, 0.14)",iconColor:"#059669"},{key:"project",label:"项目数量",value:246,unit:"个",icon:"ant-design:appstore-outlined",iconBg:"rgba(249, 115, 22, 0.14)",iconColor:"#ea580c"},{key:"payment",label:"本月回款",value:368,unit:"万",icon:"ant-design:wallet-outlined",iconBg:"rgba(168, 85, 247, 0.14)",iconColor:"#7e22ce"},{key:"warning",label:"风险预警",value:19,unit:"条",icon:"ant-design:alert-outlined",iconBg:"rgba(236, 72, 153, 0.14)",iconColor:"#db2777"},{key:"rate",label:"完成率",value:92.6,unit:"%",icon:"ant-design:line-chart-outlined",iconBg:"rgba(6, 182, 212, 0.14)",iconColor:"#0891b2"}]);return(m,x)=>(t(),e("div",b,[(t(!0),e(i,null,r(c.value,o=>(t(),e("div",{key:o.key,class:"chart-top__card"},[a("div",h,[a("div",{class:"chart-top__icon",style:_({background:o.iconBg,color:o.iconColor})},[d(u(p),{icon:o.icon,size:"18"},null,8,["icon"])],4),a("div",v,n(o.label),1)]),a("div",y,[a("span",k,n(o.value),1),a("span",f,n(o.unit),1)])]))),128))]))}}),z=g(B,[["__scopeId","data-v-d2a9c799"]]);export{z as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,20 @@
|
||||
import{b as L,j as x,B as _,ai as I,c as N,o as A,a as n,aj as Y,an as i,_ as $}from"./index-BRLZOSuF-1775297478351.js";import{f as W}from"./index-CkelhEk4.js";import"./myChartInfo-CETPSFOA.js";const R={class:"chart-card"},k=L({__name:"ChartV02",setup(B){const r=x([]),c=x(null);let l=null;const s=t=>{const o=Number(t??0);return Number.isFinite(o)?o:0},S=t=>{const o=Number(t??0);return Number.isFinite(o)?Number(o.toFixed(2)):0},d=()=>{l?.resize()};async function F(){try{const t=await W({});r.value=t||[]}catch{r.value=[]}}function h(){const t=c.value;if(!t)return;l||(l=Y(t));const o=r.value.map(e=>{const a=e.axisName||"";return a.includes("年")?a:`${a}年`}),p=r.value.map(e=>s(e.value01)),y=r.value.map(e=>s(e.value02)),b=r.value.map(e=>S(e.value03)),m=r.value.map(e=>s(e.value04)),u=r.value.map(e=>s(e.value05)),f=r.value.map(e=>s(e.value06)),g=p.map(e=>Number((e/1e4).toFixed(2))),w=y.map(e=>Number((e/1e4).toFixed(2))),v=m.map(e=>Number((e/1e4).toFixed(2))),E=u.map(e=>Number((e/1e4).toFixed(2))),C=f.map(e=>Number((e/1e4).toFixed(2))),z={tooltip:{trigger:"axis",axisPointer:{type:"cross"},backgroundColor:"rgba(145, 200, 255, 0.9)",borderColor:"#409EFF",borderWidth:1,textStyle:{color:"#0a3b70"},padding:[8,12],borderRadius:6,formatter:e=>{const a=e[0].dataIndex;return`
|
||||
<div style="text-align:center;font-weight:bold;margin-bottom:6px">${e[0].axisValue}</div>
|
||||
<table style="width:100%;border-collapse:collapse;text-align:center">
|
||||
<tr>
|
||||
<td style="border:1px solid #409EFF;padding:4px;font-weight:bold">本年收入(元)</td>
|
||||
<td style="border:1px solid #409EFF;padding:4px;font-weight:bold">本年支出(元)</td>
|
||||
<td style="border:1px solid #409EFF;padding:4px;font-weight:bold">利润率(%)</td>
|
||||
<td style="border:1px solid #409EFF;padding:4px;font-weight:bold">净利润(元)</td>
|
||||
<td style="border:1px solid #409EFF;padding:4px;font-weight:bold">上年收入(元)</td>
|
||||
<td style="border:1px solid #409EFF;padding:4px;font-weight:bold">上年支出(元)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border:1px solid #409EFF;padding:4px">${p[a]}</td>
|
||||
<td style="border:1px solid #409EFF;padding:4px">${y[a]}</td>
|
||||
<td style="border:1px solid #409EFF;padding:4px">${b[a]}</td>
|
||||
<td style="border:1px solid #409EFF;padding:4px">${m[a]}</td>
|
||||
<td style="border:1px solid #409EFF;padding:4px">${u[a]}</td>
|
||||
<td style="border:1px solid #409EFF;padding:4px">${f[a]}</td>
|
||||
</tr>
|
||||
</table>`}},legend:{top:"10",left:"center",textStyle:{fontSize:12,color:"#e0e6ff"},data:["本年收入","本年支出","利润率","净利润","上年收入","上年支出"]},grid:{left:"5%",right:"5%",bottom:"10%",top:"15%",containLabel:!0},xAxis:[{type:"category",data:o,axisLabel:{fontSize:11,interval:0,color:"#b4c7e7"},axisLine:{lineStyle:{color:"#1a508b"}},boundaryGap:!0}],yAxis:[{type:"value",name:"金额 (万元)",nameTextStyle:{fontSize:12,color:"#b4c7e7"},axisLabel:{formatter:"{value}",color:"#b4c7e7"},axisLine:{lineStyle:{color:"#1a508b"}},splitLine:{lineStyle:{color:"rgba(26, 80, 139, 0.3)"}}},{type:"value",name:"利润率 (%)",nameTextStyle:{fontSize:12,color:"#b4c7e7"},axisLabel:{formatter:"{value} %",color:"#b4c7e7"},axisLine:{lineStyle:{color:"#1a508b"}},splitLine:{lineStyle:{color:"rgba(26, 80, 139, 0.2)"}},min:"dataMin",max:"dataMax",scale:!0}],series:[{name:"本年收入",type:"line",yAxisIndex:0,data:g,smooth:!0,itemStyle:{color:"#67C23A"},lineStyle:{width:2,color:"#67C23A"},symbol:"circle",symbolSize:5,label:{show:!0,position:"top",fontSize:10,color:"#fff",formatter:"{c}"},emphasis:{focus:"series",blurScope:"coordinateSystem"},blur:{lineStyle:{opacity:.12},itemStyle:{opacity:.12},label:{opacity:0}},areaStyle:{color:new i(0,0,0,1,[{offset:0,color:"rgba(103,194,58,0.22)"},{offset:1,color:"rgba(103,194,58,0)"}])}},{name:"本年支出",type:"line",yAxisIndex:0,data:w,smooth:!0,itemStyle:{color:"#F56C6C"},lineStyle:{width:2,color:"#F56C6C"},symbol:"circle",symbolSize:5,label:{show:!0,position:"top",fontSize:10,color:"#fff",formatter:"{c}"},emphasis:{focus:"series",blurScope:"coordinateSystem"},blur:{lineStyle:{opacity:.12},itemStyle:{opacity:.12},label:{opacity:0}},areaStyle:{color:new i(0,0,0,1,[{offset:0,color:"rgba(245,108,108,0.2)"},{offset:1,color:"rgba(245,108,108,0)"}])}},{name:"利润率",type:"line",yAxisIndex:1,data:b,smooth:!0,lineStyle:{width:1.5,color:"#FCC367"},symbol:"circle",symbolSize:5,label:{show:!0,position:"top",fontSize:10,color:"#FCC367",formatter:"{c}",offset:[0,-5]},areaStyle:{color:new i(0,0,0,1,[{offset:0,color:"rgba(252,195,103,0.3)"},{offset:1,color:"rgba(252,195,103,0)"}])},emphasis:{focus:"series",blurScope:"coordinateSystem"},blur:{lineStyle:{opacity:.12},itemStyle:{opacity:.12},label:{opacity:0}}},{name:"净利润",type:"line",yAxisIndex:0,data:v,smooth:!0,lineStyle:{width:1.5,color:"#409EFF"},symbol:"circle",symbolSize:5,label:{show:!0,position:"top",fontSize:10,color:"#409EFF",formatter:"{c}",offset:[0,-5]},areaStyle:{color:new i(0,0,0,1,[{offset:0,color:"rgba(64,158,255,0.3)"},{offset:1,color:"rgba(64,158,255,0)"}])},emphasis:{focus:"series",blurScope:"coordinateSystem"},blur:{lineStyle:{opacity:.12},itemStyle:{opacity:.12},label:{opacity:0}}},{name:"上年收入",type:"line",yAxisIndex:0,data:E,smooth:!0,lineStyle:{width:1.5,color:"#36CFC9"},symbol:"circle",symbolSize:5,label:{show:!0,position:"top",fontSize:10,color:"#36CFC9",formatter:"{c}",offset:[0,-5]},areaStyle:{color:new i(0,0,0,1,[{offset:0,color:"rgba(54,207,201,0.25)"},{offset:1,color:"rgba(54,207,201,0)"}])},emphasis:{focus:"series",blurScope:"coordinateSystem"},blur:{lineStyle:{opacity:.12},itemStyle:{opacity:.12},label:{opacity:0}}},{name:"上年支出",type:"line",yAxisIndex:0,data:C,smooth:!0,lineStyle:{width:1.5,color:"#FF9D28"},symbol:"circle",symbolSize:5,label:{show:!0,position:"top",fontSize:10,color:"#FF9D28",formatter:"{c}",offset:[0,-5]},areaStyle:{color:new i(0,0,0,1,[{offset:0,color:"rgba(255,157,40,0.25)"},{offset:1,color:"rgba(255,157,40,0)"}])},emphasis:{focus:"series",blurScope:"coordinateSystem"},blur:{lineStyle:{opacity:.12},itemStyle:{opacity:.12},label:{opacity:0}}}]};l.setOption(z,!0)}return _(async()=>{await F(),h(),window.addEventListener("resize",d)}),I(()=>{window.removeEventListener("resize",d),l?.dispose(),l=null}),(t,o)=>(A(),N("div",R,[o[0]||(o[0]=n("div",{class:"chart-card-header"},[n("span",{class:"chart-card-title"},"年度收支分析")],-1)),n("div",{class:"bar-line-chart-container",ref_key:"chartRef",ref:c},null,512)]))}}),P=$(k,[["__scopeId","data-v-e81bf12c"]]);export{P as default};
|
||||
@@ -0,0 +1 @@
|
||||
.chart-card[data-v-e81bf12c]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#0000001a url(/vuePath/assets/16-Cdqx8Mw5.png) no-repeat;background-size:100% 100%}.chart-card-header[data-v-e81bf12c]{height:40px;line-height:40px;padding:0 16px;background-color:#1a508b80;border-bottom:1px solid #1a508b;display:flex;align-items:center;background:#0000001a url(/vuePath/assets/03-B9ebRJdn.png) no-repeat;background-size:100% 100%}.chart-card-title[data-v-e81bf12c]{font-size:16px;font-weight:600;color:#409eff;letter-spacing:.5px}.bar-line-chart-container[data-v-e81bf12c]{flex:1;width:100%;height:calc(100% - 40px)}
|
||||
@@ -0,0 +1 @@
|
||||
.chart-card[data-v-9d40241b]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#0000001a url(/vuePath/assets/16-Cdqx8Mw5.png) no-repeat;background-size:100% 100%}.chart-card-header[data-v-9d40241b]{height:40px;line-height:40px;padding:0 16px;background-color:#1a508b80;border-bottom:1px solid #1a508b;display:flex;align-items:center;background:#0000001a url(/vuePath/assets/03-B9ebRJdn.png) no-repeat;background-size:100% 100%}.chart-card-title[data-v-9d40241b]{font-size:16px;font-weight:600;color:#409eff;letter-spacing:.5px}.bar-line-chart-container[data-v-9d40241b]{flex:1;width:100%;height:calc(100% - 40px)}
|
||||
@@ -0,0 +1,15 @@
|
||||
import{b as A,j as m,W as y,B as C,ai as N,c as V,o as W,a as s,aj as I,an as l,X as k,_ as P}from"./index-BRLZOSuF-1775297478351.js";import{a as R}from"./index-CkelhEk4.js";import"./myChartInfo-CETPSFOA.js";const B={class:"chart-card"},$=A({__name:"ChartV03",props:{formParams:{type:Object,default:()=>({})}},setup(h){const d=h,o=m([]),c=m(null);let r=null;const p=()=>r?.resize(),n=a=>{const t=Number(a??0);return Number.isFinite(t)?t:0};async function g(){try{const a={...d.formParams},t=await R(a);o.value=t||[]}catch{o.value=[]}}function f(){const a=c.value;if(!a)return;r||(r=I(a));const t={tooltip:{trigger:"axis",axisPointer:{type:"cross"},backgroundColor:"rgba(145, 200, 255, 0.9)",borderColor:"#409EFF",borderWidth:1,textStyle:{color:"#0a3b70"},padding:[8,12],borderRadius:6},legend:{top:"10",left:"center",textStyle:{fontSize:12,color:"#e0e6ff"},data:["收入","支出","净利润"]},grid:{left:"5%",right:"5%",bottom:"10%",top:"15%",containLabel:!0},xAxis:[{type:"category",data:[],axisLabel:{fontSize:11,interval:0,color:"#b4c7e7"},axisLine:{lineStyle:{color:"#1a508b"}},boundaryGap:!0}],yAxis:[{type:"value",name:"金额 (万元)",nameTextStyle:{fontSize:12,color:"#b4c7e7"},axisLabel:{formatter:"{value}",color:"#b4c7e7"},axisLine:{lineStyle:{color:"#1a508b"}},splitLine:{lineStyle:{color:"rgba(26, 80, 139, 0.3)"}}},{type:"value",name:"净利润 (万元)",nameTextStyle:{fontSize:12,color:"#b4c7e7"},axisLabel:{formatter:"{value}",color:"#b4c7e7"},axisLine:{lineStyle:{color:"#1a508b"}},splitLine:{lineStyle:{color:"rgba(26, 80, 139, 0.2)"}},min:"dataMin",max:"dataMax",scale:!0}],series:[{name:"收入",type:"bar",yAxisIndex:0,data:[],barWidth:"12%",itemStyle:{color:new l(0,0,0,1,[{offset:0,color:"#85E868"},{offset:1,color:"#67C23A"}]),borderRadius:[8,8,0,0]},label:{show:!0,position:"top",fontSize:10,color:"#fff",formatter:"{c}"}},{name:"支出",type:"bar",yAxisIndex:0,data:[],barWidth:"12%",itemStyle:{color:new l(0,0,0,1,[{offset:0,color:"#FF8A8A"},{offset:1,color:"#F56C6C"}]),borderRadius:[8,8,0,0]},label:{show:!0,position:"top",fontSize:10,color:"#fff",formatter:"{c}"}},{name:"净利润",type:"line",yAxisIndex:1,data:[],smooth:!0,lineStyle:{width:1.5,color:"#409EFF"},symbol:"circle",symbolSize:5,label:{show:!0,position:"top",fontSize:10,color:"#409EFF",formatter:"{c}",offset:[0,-5]},areaStyle:{color:new l(0,0,0,1,[{offset:0,color:"rgba(64, 158, 255, 0.3)"},{offset:1,color:"rgba(64, 158, 255, 0.0)"}])},emphasis:{focus:"series"}}]};if(o.value?.length>0){const v=o.value.map(e=>e.axisName||""),u=o.value.map(e=>n(e.value01)),b=o.value.map(e=>n(e.value02)),x=o.value.map(e=>n(e.value03)),F=u.map(e=>Number((e/1e4).toFixed(2))),S=b.map(e=>Number((e/1e4).toFixed(2))),w=x.map(e=>Number((e/1e4).toFixed(2)));t.tooltip.formatter=function(e){const E=e[0].axisValue,i=e[0].dataIndex,L=u[i],z=b[i],_=x[i];return`
|
||||
<div style="text-align:center; font-weight:bold; margin-bottom:6px">${E}</div>
|
||||
<table style="width:100%; border-collapse:collapse; text-align:center">
|
||||
<tr>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">收入(元)</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">支出(元)</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">净利润(元)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${L}</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${z}</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${_}</td>
|
||||
</tr>
|
||||
</table>
|
||||
`},t.xAxis[0].data=v,t.series[0].data=F,t.series[1].data=S,t.series[2].data=w}r.setOption(t,!0)}return y(()=>d.formParams,()=>{g()},{deep:!0,immediate:!0}),y(o,()=>{k(()=>f())},{deep:!0}),C(()=>{f(),window.addEventListener("resize",p)}),N(()=>{window.removeEventListener("resize",p),r&&(r.dispose(),r=null)}),(a,t)=>(W(),V("div",B,[t[0]||(t[0]=s("div",{class:"chart-card-header"},[s("span",{class:"chart-card-title"},"账户收支分析")],-1)),s("div",{class:"bar-line-chart-container",ref_key:"chartRef",ref:c},null,512)]))}}),T=P($,[["__scopeId","data-v-9d40241b"]]);export{T as default};
|
||||
@@ -0,0 +1 @@
|
||||
.chart-card[data-v-02cd4b1b]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#0000001a url(/vuePath/assets/16-Cdqx8Mw5.png) no-repeat;background-size:100% 100%}.chart-card-header[data-v-02cd4b1b]{height:40px;line-height:40px;padding:0 16px;background-color:#1a508b80;border-bottom:1px solid #1a508b;display:flex;align-items:center;background:#0000001a url(/vuePath/assets/23-CYjKliAl.png) no-repeat;background-size:100% 100%}.chart-card-title[data-v-02cd4b1b]{font-size:16px;font-weight:600;color:#409eff;letter-spacing:.5px}.pie-chart-container[data-v-02cd4b1b]{flex:1;width:100%;height:calc(100% - 40px);margin:0;padding:0}[data-v-02cd4b1b] .echarts-tooltip{background-color:#91c8ffe6!important;border-color:#409eff!important;color:#0a3b70!important;border-radius:6px!important}[data-v-02cd4b1b] .echarts-legend-scroll{background-color:transparent!important}[data-v-02cd4b1b] .echarts-legend-scroll-text{color:#e0e6ff!important;font-size:11px!important}[data-v-02cd4b1b] .echarts-legend-scroll-button{border-color:#1a508b!important}[data-v-02cd4b1b] .echarts-legend-scroll-button-icon{color:#409eff!important}[data-v-02cd4b1b] .ec-label{z-index:9999!important;white-space:nowrap!important;font-size:10px!important;color:#e0e6ff!important}[data-v-02cd4b1b] .ec-label-line{stroke:#e0e6ff!important;stroke-width:1px!important}
|
||||
@@ -0,0 +1 @@
|
||||
import{b as C,j as d,W as u,B as v,ai as F,c as y,o as w,a as n,aj as E,_}from"./index-BRLZOSuF-1775297478351.js";import{E as x}from"./index-CkelhEk4.js";import"./myChartInfo-CETPSFOA.js";const z={class:"chart-card"},A=C({__name:"ChartV04",props:{formParams:{type:Object,default:()=>({})}},setup(p){const i=p,a=d([]),s=d(null);let t=null;const l=()=>t?.resize(),f=r=>{const e=Number(r??0);return Number.isFinite(e)?e:0};async function m(){try{const r={...i.formParams,flowType:"1"},e=await x(r);a.value=e||[]}catch{a.value=[]}}const h=()=>{const r=s.value;if(!r)return;t&&t.dispose(),t=E(r);const e=a.value.map(o=>{const c=f(o.value01),g=(c/1e4).toFixed(2);return{name:o.axisName||"未知分类",value:Number(g),originalValue:c}}).filter(o=>o.value>0),b={tooltip:{trigger:"item",backgroundColor:"rgba(145, 200, 255, 0.9)",borderColor:"#409EFF",borderWidth:1,textStyle:{color:"#0a3b70",fontSize:12},padding:[10,15],borderRadius:6,formatter:function(o){return`分类:${o.name}<br/>支出:${o.data.originalValue}元<br/>占比:${o.percent.toFixed(1)}%`}},legend:{orient:"horizontal",top:"10%",left:"center",textStyle:{fontSize:11,color:"#e0e6ff"},itemWidth:12,itemHeight:12,itemGap:10,pageIconColor:"#409EFF",pageTextStyle:{color:"#e0e6ff",fontSize:10},pageButtonItemGap:6,pageButtonGap:10,type:"scroll"},series:[{name:"支出",type:"pie",radius:["30%","55%"],center:["50%","65%"],avoidLabelOverlap:!0,itemStyle:{borderRadius:4,borderColor:"rgba(15, 52, 96, 0.9)",borderWidth:1},label:{show:!0,position:"outside",fontSize:10,color:"#e0e6ff",formatter:"{b} {c}万元 ({d}%)",overflow:"truncate",ellipsis:"...",distance:8},labelLine:{show:!0,length:12,length2:8,lineStyle:{color:"#e0e6ff",width:1},smooth:.2,minTurnAngle:45},data:e,color:["#409EFF","#36CFc9","#67C23A","#E6A23C","#F56C6C","#909399","#722ED1","#EB2F96","#1890FF","#52C41A","#FAAD14","#F5222D","#8C8C8C","#A062D4","#F7BA1E"]}]};t.setOption(b)};return u(()=>i.formParams,()=>{m()},{deep:!0,immediate:!0}),u(a,()=>{h()},{deep:!0}),v(()=>{window.addEventListener("resize",l)}),F(()=>{window.removeEventListener("resize",l),t&&(t.dispose(),t=null)}),(r,e)=>(w(),y("div",z,[e[0]||(e[0]=n("div",{class:"chart-card-header"},[n("span",{class:"chart-card-title"},"支出结构分析")],-1)),n("div",{class:"pie-chart-container",ref_key:"chartRef",ref:s},null,512)]))}}),D=_(A,[["__scopeId","data-v-02cd4b1b"]]);export{D as default};
|
||||
@@ -0,0 +1 @@
|
||||
import{b as C,j as d,W as u,B as v,ai as F,c as y,o as w,a as n,aj as E,_}from"./index-BRLZOSuF-1775297478351.js";import{E as x}from"./index-CkelhEk4.js";import"./myChartInfo-CETPSFOA.js";const z={class:"chart-card"},A=C({__name:"ChartV05",props:{formParams:{type:Object,default:()=>({})}},setup(p){const i=p,a=d([]),s=d(null);let t=null;const l=()=>t?.resize(),f=r=>{const e=Number(r??0);return Number.isFinite(e)?e:0};async function m(){try{const r={...i.formParams,flowType:"2"},e=await x(r);a.value=e||[]}catch{a.value=[]}}const h=()=>{const r=s.value;if(!r)return;t&&t.dispose(),t=E(r);const e=a.value.map(o=>{const c=f(o.value01),g=(c/1e4).toFixed(2);return{name:o.axisName||"未知分类",value:Number(g),originalValue:c}}).filter(o=>o.value>0),b={tooltip:{trigger:"item",backgroundColor:"rgba(145, 200, 255, 0.9)",borderColor:"#409EFF",borderWidth:1,textStyle:{color:"#0a3b70",fontSize:12},padding:[10,15],borderRadius:6,formatter:function(o){return`分类:${o.name}<br/>收入:${o.data.originalValue}元<br/>占比:${o.percent.toFixed(1)}%`}},legend:{orient:"horizontal",top:"10%",left:"center",textStyle:{fontSize:11,color:"#e0e6ff"},itemWidth:12,itemHeight:12,itemGap:10,pageIconColor:"#409EFF",pageTextStyle:{color:"#e0e6ff",fontSize:10},pageButtonItemGap:6,pageButtonGap:10,type:"scroll"},series:[{name:"收入",type:"pie",radius:["30%","55%"],center:["50%","65%"],avoidLabelOverlap:!0,itemStyle:{borderRadius:4,borderColor:"rgba(15, 52, 96, 0.9)",borderWidth:1},label:{show:!0,position:"outside",fontSize:10,color:"#e0e6ff",formatter:"{b} {c}万元 ({d}%)",overflow:"truncate",ellipsis:"...",distance:8},labelLine:{show:!0,length:12,length2:8,lineStyle:{color:"#e0e6ff",width:1},smooth:.2,minTurnAngle:45},data:e,color:["#409EFF","#36CFc9","#67C23A","#E6A23C","#F56C6C","#909399","#722ED1","#EB2F96","#1890FF","#52C41A","#FAAD14","#F5222D","#8C8C8C","#A062D4","#F7BA1E"]}]};t.setOption(b)};return u(()=>i.formParams,()=>{m()},{deep:!0,immediate:!0}),u(a,()=>{h()},{deep:!0}),v(()=>{window.addEventListener("resize",l)}),F(()=>{window.removeEventListener("resize",l),t&&(t.dispose(),t=null)}),(r,e)=>(w(),y("div",z,[e[0]||(e[0]=n("div",{class:"chart-card-header"},[n("span",{class:"chart-card-title"},"收入来源分析")],-1)),n("div",{class:"pie-chart-container",ref_key:"chartRef",ref:s},null,512)]))}}),D=_(A,[["__scopeId","data-v-120701f3"]]);export{D as default};
|
||||
@@ -0,0 +1 @@
|
||||
.chart-card[data-v-120701f3]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#0000001a url(/vuePath/assets/16-Cdqx8Mw5.png) no-repeat;background-size:100% 100%}.chart-card-header[data-v-120701f3]{height:40px;line-height:40px;padding:0 16px;background-color:#1a508b80;border-bottom:1px solid #1a508b;display:flex;align-items:center;background:#0000001a url(/vuePath/assets/23-CYjKliAl.png) no-repeat;background-size:100% 100%}.chart-card-title[data-v-120701f3]{font-size:16px;font-weight:600;color:#409eff;letter-spacing:.5px}.pie-chart-container[data-v-120701f3]{flex:1;width:100%;height:calc(100% - 40px);margin:0;padding:0}[data-v-120701f3] .echarts-tooltip{background-color:#91c8ffe6!important;border-color:#409eff!important;color:#0a3b70!important;border-radius:6px!important}[data-v-120701f3] .echarts-legend-scroll{background-color:transparent!important}[data-v-120701f3] .echarts-legend-scroll-text{color:#e0e6ff!important;font-size:11px!important}[data-v-120701f3] .echarts-legend-scroll-button{border-color:#1a508b!important}[data-v-120701f3] .echarts-legend-scroll-button-icon{color:#409eff!important}[data-v-120701f3] .ec-label{z-index:9999!important;white-space:nowrap!important;font-size:10px!important;color:#e0e6ff!important}[data-v-120701f3] .ec-label-line{stroke:#e0e6ff!important;stroke-width:1px!important}
|
||||
@@ -0,0 +1 @@
|
||||
.chart-card[data-v-079af4ba]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#0000001a url(/vuePath/assets/16-Cdqx8Mw5.png) no-repeat;background-size:100% 100%}.chart-card-header[data-v-079af4ba]{height:40px;line-height:40px;padding:0 16px;background-color:#1a508b80;border-bottom:1px solid #1a508b;display:flex;align-items:center;background:#0000001a url(/vuePath/assets/03-B9ebRJdn.png) no-repeat;background-size:100% 100%}.chart-card-title[data-v-079af4ba]{font-size:16px;font-weight:600;color:#409eff;letter-spacing:.5px}.bar-line-chart-container[data-v-079af4ba]{flex:1;width:100%;height:calc(100% - 40px)}
|
||||
@@ -0,0 +1,17 @@
|
||||
import{b as V,j as h,W as F,B as I,ai as W,c as R,o as $,a as d,aj as k,an as n,X as B,_ as M}from"./index-BRLZOSuF-1775297478351.js";import{e as P}from"./index-CkelhEk4.js";import"./myChartInfo-CETPSFOA.js";const j={class:"chart-card"},D=V({__name:"ChartV06",props:{formParams:{type:Object,default:()=>({})}},setup(g){const c=g,a=h([]),p=h(null);let r=null;const f=()=>r?.resize(),l=o=>{const e=Number(o??0);return Number.isFinite(e)?e:0},v=o=>{const e=Number(o??0);return Number.isFinite(e)?Number(e.toFixed(2)):0};async function S(){try{const o={...c.formParams},e=await P(o);a.value=e||[]}catch{a.value=[]}}function b(){const o=p.value;if(!o)return;r||(r=k(o));const e={tooltip:{trigger:"axis",axisPointer:{type:"cross"},backgroundColor:"rgba(145, 200, 255, 0.9)",borderColor:"#409EFF",borderWidth:1,textStyle:{color:"#0a3b70"},padding:[8,12],borderRadius:6},legend:{top:"10",left:"center",textStyle:{fontSize:12,color:"#e0e6ff"},data:["收入","支出","利润率","净利润"]},grid:{left:"5%",right:"5%",bottom:"10%",top:"15%",containLabel:!0},xAxis:[{type:"category",data:[],axisLabel:{fontSize:11,interval:0,color:"#b4c7e7"},axisLine:{lineStyle:{color:"#1a508b"}},boundaryGap:!0}],yAxis:[{type:"value",name:"金额 (万元)",nameTextStyle:{fontSize:12,color:"#b4c7e7"},axisLabel:{formatter:"{value}",color:"#b4c7e7"},axisLine:{lineStyle:{color:"#1a508b"}},splitLine:{lineStyle:{color:"rgba(26, 80, 139, 0.3)"}}},{type:"value",name:"利润率 (%)",nameTextStyle:{fontSize:12,color:"#b4c7e7"},axisLabel:{formatter:"{value} %",color:"#b4c7e7"},axisLine:{lineStyle:{color:"#1a508b"}},splitLine:{lineStyle:{color:"rgba(26, 80, 139, 0.2)"}},min:"dataMin",max:"dataMax",scale:!0}],series:[{name:"收入",type:"bar",yAxisIndex:0,data:[],barWidth:"12%",itemStyle:{color:new n(0,0,0,1,[{offset:0,color:"#85E868"},{offset:1,color:"#67C23A"}]),borderRadius:[8,8,0,0]},label:{show:!0,position:"top",fontSize:10,color:"#fff",formatter:"{c}"}},{name:"支出",type:"bar",yAxisIndex:0,data:[],barWidth:"12%",itemStyle:{color:new n(0,0,0,1,[{offset:0,color:"#FF8A8A"},{offset:1,color:"#F56C6C"}]),borderRadius:[8,8,0,0]},label:{show:!0,position:"top",fontSize:10,color:"#fff",formatter:"{c}"}},{name:"利润率",type:"line",yAxisIndex:1,data:[],smooth:!0,lineStyle:{width:1.5,color:"#409EFF"},symbol:"circle",symbolSize:5,label:{show:!0,position:"top",fontSize:10,color:"#409EFF",formatter:"{c}",offset:[0,-5]},areaStyle:{color:new n(0,0,0,1,[{offset:0,color:"rgba(64, 158, 255, 0.3)"},{offset:1,color:"rgba(64, 158, 255, 0.0)"}])},emphasis:{focus:"series"}},{name:"净利润",type:"line",yAxisIndex:0,data:[],smooth:!0,lineStyle:{width:1.5,color:"#FF9D28"},symbol:"circle",symbolSize:5,label:{show:!0,fontSize:10,color:"#FF9D28",formatter:"{c}"},areaStyle:{color:new n(0,0,0,1,[{offset:0,color:"rgba(255, 157, 40, 0.3)"},{offset:1,color:"rgba(255, 157, 40, 0)"}])},emphasis:{focus:"series"}}]};if(a.value?.length>0){const w=a.value.map(t=>{const s=t.axisName||"";return s.includes("月")?s:`${s}月`}),u=a.value.map(t=>l(t.value01)),m=a.value.map(t=>l(t.value02)),x=a.value.map(t=>v(t.value03)),y=a.value.map(t=>l(t.value04)),E=u.map(t=>Number((t/1e4).toFixed(2))),z=m.map(t=>Number((t/1e4).toFixed(2))),L=y.map(t=>Number((t/1e4).toFixed(2)));e.tooltip.formatter=function(t){const s=t[0].axisValue,i=t[0].dataIndex,_=u[i],A=m[i],N=x[i],C=y[i];return`
|
||||
<div style="text-align:center; font-weight:bold; margin-bottom:6px">${s}</div>
|
||||
<table style="width:100%; border-collapse:collapse; text-align:center">
|
||||
<tr>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">收入(元)</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">支出(元)</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">利润率(%)</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">净利润(元)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${_}</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${A}</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${N}</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${C}</td>
|
||||
</tr>
|
||||
</table>
|
||||
`},e.xAxis[0].data=w,e.series[0].data=E,e.series[1].data=z,e.series[2].data=x,e.series[3].data=L}r.setOption(e,!0)}return F(()=>c.formParams,()=>{S()},{deep:!0,immediate:!0}),F(a,()=>{B(()=>b())},{deep:!0}),I(()=>{b(),window.addEventListener("resize",f)}),W(()=>{window.removeEventListener("resize",f),r&&(r.dispose(),r=null)}),(o,e)=>($(),R("div",j,[e[0]||(e[0]=d("div",{class:"chart-card-header"},[d("span",{class:"chart-card-title"},"月度收支分析")],-1)),d("div",{class:"bar-line-chart-container",ref_key:"chartRef",ref:p},null,512)]))}}),G=M(D,[["__scopeId","data-v-079af4ba"]]);export{G as default};
|
||||
@@ -0,0 +1 @@
|
||||
.chart-card[data-v-fa968455]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#0000001a url(/vuePath/assets/16-Cdqx8Mw5.png) no-repeat;background-size:100% 100%}.chart-card-header[data-v-fa968455]{height:40px;line-height:40px;padding:0 16px;background-color:#1a508b80;border-bottom:1px solid #1a508b;display:flex;align-items:center;background:#0000001a url(/vuePath/assets/23-CYjKliAl.png) no-repeat;background-size:100% 100%}.chart-card-title[data-v-fa968455]{font-size:16px;font-weight:600;color:#409eff;letter-spacing:.5px}.rank-chart-container[data-v-fa968455]{flex:1;width:100%;height:calc(100% - 40px)}[data-v-fa968455] .echarts-tooltip{background-color:#91c8ffe6!important;border-color:#409eff!important;color:#0a3b70!important;border-radius:6px!important}
|
||||
@@ -0,0 +1,13 @@
|
||||
import{b as E,j as u,W as m,B as L,ai as _,c as N,o as C,a as n,aj as S,an as z,_ as $}from"./index-BRLZOSuF-1775297478351.js";import{E as k}from"./index-CkelhEk4.js";import"./myChartInfo-CETPSFOA.js";const B={class:"chart-card"},D=E({__name:"ChartV07",props:{formParams:{type:Object,default:()=>({})}},setup(f){const i=f,s=u([]),l=u(null);let a=null;const d=()=>a?.resize();async function b(){try{const o={...i.formParams,flowType:"1"},t=await k(o);s.value=t||[]}catch{s.value=[]}}const c=()=>{const o=l.value;if(!o)return;a&&a.dispose(),a=S(o);const t=[...s.value].sort((e,r)=>Number(r.value01||0)-Number(e.value01||0)).slice(0,10),x=t.map((e,r)=>`${r+1}. ${e.axisName||"未知"}`),h=t.map(e=>Number((Number(e.value01||0)/1e4).toFixed(2))||0),p=t.map(e=>Number(Number(e.value02||0).toFixed(2))||0),g=t.map(e=>Number(e.value01||0)),y={tooltip:{trigger:"axis",axisPointer:{type:"shadow"},backgroundColor:"rgba(145, 200, 255, 0.9)",borderColor:"#409EFF",borderWidth:1,textStyle:{color:"#0a3b70"},padding:[8,12],borderRadius:6,formatter:e=>{const r=e[0].dataIndex,v=e[0].name,F=g[r],w=p[r];return`
|
||||
<div style="text-align:center; font-weight:bold; margin-bottom:6px">${v}</div>
|
||||
<table style="width:100%; border-collapse:collapse; text-align:center">
|
||||
<tr>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">支出(元)</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">占比(%)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${F}</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${w}</td>
|
||||
</tr>
|
||||
</table>
|
||||
`}},legend:{show:!1},grid:{left:"5%",right:"15%",bottom:"10%",top:"15%",containLabel:!0},xAxis:[{type:"value",axisLabel:{fontSize:11,color:"#b4c7e7"},axisLine:{lineStyle:{color:"#1a508b"}},splitLine:{lineStyle:{color:"rgba(26, 80, 139, 0.3)"}}}],yAxis:[{type:"category",data:x,axisLabel:{fontSize:11,color:"#b4c7e7"},axisLine:{lineStyle:{color:"#1a508b"}},inverse:!0}],series:[{name:"支出",type:"bar",barWidth:"12%",data:h,itemStyle:{color:new z(0,0,1,0,[{offset:0,color:"#409EFF"},{offset:0,color:"#409EFF"},{offset:1,color:"#1890FF"}])},label:{show:!0,position:"right",fontSize:10,color:"#e0e6ff",formatter:e=>`${e.value} 万元 (${p[e.dataIndex]}%)`}}]};a.setOption(y)};return m(()=>i.formParams,()=>{b()},{deep:!0,immediate:!0}),m(s,()=>{c()},{deep:!0}),L(()=>{c(),window.addEventListener("resize",d)}),_(()=>{window.removeEventListener("resize",d),a&&(a.dispose(),a=null)}),(o,t)=>(C(),N("div",B,[t[0]||(t[0]=n("div",{class:"chart-card-header"},[n("span",{class:"chart-card-title"},"支出排名分析")],-1)),n("div",{class:"rank-chart-container",ref_key:"chartRef",ref:l},null,512)]))}}),j=$(D,[["__scopeId","data-v-fa968455"]]);export{j as default};
|
||||
@@ -0,0 +1 @@
|
||||
.chart-card[data-v-987b95c9]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#0000001a url(/vuePath/assets/16-Cdqx8Mw5.png) no-repeat;background-size:100% 100%}.chart-card-header[data-v-987b95c9]{height:40px;line-height:40px;padding:0 16px;background-color:#1a508b80;border-bottom:1px solid #1a508b;display:flex;align-items:center;background:#0000001a url(/vuePath/assets/23-CYjKliAl.png) no-repeat;background-size:100% 100%}.chart-card-title[data-v-987b95c9]{font-size:16px;font-weight:600;color:#409eff;letter-spacing:.5px}.bar-line-chart-container[data-v-987b95c9]{flex:1;width:100%;height:calc(100% - 40px)}
|
||||
@@ -0,0 +1,15 @@
|
||||
import{b as A,j as y,W as v,B as C,ai as N,c as V,o as I,a as i,aj as R,an as n,X as W,_ as k}from"./index-BRLZOSuF-1775297478351.js";import{d as B}from"./index-CkelhEk4.js";import"./myChartInfo-CETPSFOA.js";const P={class:"chart-card"},$=A({__name:"ChartV08",props:{formParams:{type:Object,default:()=>({})}},setup(h){const l=h,o=y([]),d=y(null);let r=null;const c=()=>r?.resize();async function g(){try{const a={...l.formParams},e=await B(a);o.value=e||[]}catch{o.value=[]}}const p=a=>{const e=Number(a??0);return Number.isFinite(e)?e:0},F=a=>{const e=Number(a??0);return Number.isFinite(e)?Number(e.toFixed(2)):0};function u(){const a=d.value;if(!a)return;r||(r=R(a));const e={tooltip:{trigger:"axis",axisPointer:{type:"cross"},backgroundColor:"rgba(145, 200, 255, 0.9)",borderColor:"#409EFF",borderWidth:1,textStyle:{color:"#0a3b70"},padding:[8,12],borderRadius:6},legend:{top:"10",left:"center",textStyle:{fontSize:12,color:"#e0e6ff"},data:["收入","支出","占比"]},grid:{left:"5%",right:"5%",bottom:"10%",top:"15%",containLabel:!0},xAxis:[{type:"category",data:[],axisLabel:{fontSize:11,interval:0,color:"#b4c7e7"},axisLine:{lineStyle:{color:"#1a508b"}},boundaryGap:!0}],yAxis:[{type:"value",name:"金额 (万元)",nameTextStyle:{fontSize:12,color:"#b4c7e7"},axisLabel:{formatter:"{value}",color:"#b4c7e7"},axisLine:{lineStyle:{color:"#1a508b"}},splitLine:{lineStyle:{color:"rgba(26, 80, 139, 0.3)"}}},{type:"value",name:"占比 (%)",nameTextStyle:{fontSize:12,color:"#b4c7e7"},axisLabel:{formatter:"{value} %",color:"#b4c7e7"},axisLine:{lineStyle:{color:"#1a508b"}},splitLine:{lineStyle:{color:"rgba(26, 80, 139, 0.2)"}},min:"dataMin",max:"dataMax",scale:!0}],series:[{name:"收入",type:"bar",yAxisIndex:0,data:[],barWidth:"12%",itemStyle:{color:new n(0,0,0,1,[{offset:0,color:"#85E868"},{offset:1,color:"#67C23A"}]),borderRadius:[8,8,0,0]},label:{show:!0,position:"top",fontSize:10,color:"#fff",formatter:"{c}"}},{name:"支出",type:"bar",yAxisIndex:0,data:[],barWidth:"12%",itemStyle:{color:new n(0,0,0,1,[{offset:0,color:"#FF8A8A"},{offset:1,color:"#F56C6C"}]),borderRadius:[8,8,0,0]},label:{show:!0,position:"top",fontSize:10,color:"#fff",formatter:"{c}"}},{name:"占比",type:"line",yAxisIndex:1,data:[],smooth:!0,lineStyle:{width:1.5,color:"#409EFF"},symbol:"circle",symbolSize:5,label:{show:!0,position:"top",fontSize:10,color:"#409EFF",formatter:"{c}",offset:[0,-5]},areaStyle:{color:new n(0,0,0,1,[{offset:0,color:"rgba(64, 158, 255, 0.3)"},{offset:1,color:"rgba(64, 158, 255, 0.0)"}])},emphasis:{focus:"series"}}]};if(o.value.length>0){const S=o.value.map(t=>t.axisName||""),f=o.value.map(t=>p(t.value01)),b=o.value.map(t=>p(t.value02)),m=o.value.map(t=>F(t.value03)),w=f.map(t=>Number((t/1e4).toFixed(2))),E=b.map(t=>Number((t/1e4).toFixed(2)));e.tooltip.formatter=function(t){const x=t[0].axisValue,s=t[0].dataIndex,L=f[s],z=b[s],_=m[s];return`
|
||||
<div style="text-align:center; font-weight:bold; margin-bottom:6px">${x}</div>
|
||||
<table style="width:100%; border-collapse:collapse; text-align:center">
|
||||
<tr>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">收入(元)</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">支出(元)</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">占比(%)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${L}</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${z}</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${_}</td>
|
||||
</tr>
|
||||
</table>
|
||||
`},e.xAxis[0].data=S,e.series[0].data=w,e.series[1].data=E,e.series[2].data=m}r.setOption(e,!0)}return v(()=>l.formParams,()=>{g()},{deep:!0,immediate:!0}),v(o,()=>{W(()=>u())},{deep:!0}),C(()=>{u(),window.addEventListener("resize",c)}),N(()=>{window.removeEventListener("resize",c),r&&(r.dispose(),r=null)}),(a,e)=>(I(),V("div",P,[e[0]||(e[0]=i("div",{class:"chart-card-header"},[i("span",{class:"chart-card-title"},"季度收支分析")],-1)),i("div",{class:"bar-line-chart-container",ref_key:"chartRef",ref:d},null,512)]))}}),T=k($,[["__scopeId","data-v-987b95c9"]]);export{T as default};
|
||||
@@ -0,0 +1,25 @@
|
||||
import{b as M,j as w,W as E,B as V,ai as W,c as P,o as k,a as u,aj as B,an as i,X as Y,_ as D}from"./index-BRLZOSuF-1775297478351.js";import{e as j}from"./index-CkelhEk4.js";import"./myChartInfo-CETPSFOA.js";const O={class:"chart-card"},T=M({__name:"ChartV09",props:{formParams:{type:Object,default:()=>({})}},setup(z){const x=z,a=w([]),f=w(null);let l=null;const y=()=>l?.resize(),n=s=>{const t=Number(s??0);return Number.isFinite(t)?t:0},A=s=>{const t=Number(s??0);return Number.isFinite(t)?Number(t.toFixed(2)):0};async function L(){try{const s={...x.formParams},t=await j(s);a.value=t||[]}catch{a.value=[]}}function g(){const s=f.value;if(!s)return;l&&l.dispose(),l=B(s);const t={tooltip:{trigger:"axis",axisPointer:{type:"cross"},backgroundColor:"rgba(145, 200, 255, 0.9)",borderColor:"#409EFF",borderWidth:1,textStyle:{color:"#0a3b70"},padding:[8,12],borderRadius:6},legend:{top:"10",left:"center",textStyle:{fontSize:12,color:"#e0e6ff"},data:["本月收入","本月支出","利润率","上月收入","上月支出","收入环比","支出环比","净利润"]},grid:{left:"5%",right:"5%",bottom:"10%",top:"15%",containLabel:!0},xAxis:[{type:"category",data:[],axisLabel:{fontSize:11,interval:0,color:"#b4c7e7"},axisLine:{lineStyle:{color:"#1a508b"}},boundaryGap:!0}],yAxis:[{type:"value",name:"金额 (万元)",nameTextStyle:{fontSize:12,color:"#b4c7e7"},axisLabel:{formatter:"{value}",color:"#b4c7e7"},axisLine:{lineStyle:{color:"#1a508b"}},splitLine:{lineStyle:{color:"rgba(26, 80, 139, 0.3)"}}},{type:"value",name:"占比/环比 (%)",nameTextStyle:{fontSize:12,color:"#b4c7e7"},axisLabel:{formatter:"{value} %",color:"#b4c7e7"},axisLine:{lineStyle:{color:"#1a508b"}},splitLine:{lineStyle:{color:"rgba(26, 80, 139, 0.2)"}},min:"dataMin",max:"dataMax",scale:!0}],series:[{name:"本月收入",type:"line",yAxisIndex:0,data:[],smooth:!0,lineStyle:{width:1.5,color:"#67C23A"},symbol:"circle",symbolSize:5,areaStyle:{color:new i(0,0,0,1,[{offset:0,color:"rgba(103, 194, 58, 0.3)"},{offset:1,color:"rgba(103, 194, 58, 0.0)"}])},emphasis:{focus:"series"}},{name:"本月支出",type:"line",yAxisIndex:0,data:[],smooth:!0,lineStyle:{width:1.5,color:"#F56C6C"},symbol:"circle",symbolSize:5,areaStyle:{color:new i(0,0,0,1,[{offset:0,color:"rgba(245, 108, 108, 0.3)"},{offset:1,color:"rgba(245, 108, 108, 0.0)"}])},emphasis:{focus:"series"}},{name:"利润率",type:"line",yAxisIndex:1,data:[],smooth:!0,lineStyle:{width:1.5,color:"#409EFF"},symbol:"circle",symbolSize:5,areaStyle:{color:new i(0,0,0,1,[{offset:0,color:"rgba(64, 158, 255, 0.3)"},{offset:1,color:"rgba(64, 158, 255, 0.0)"}])},emphasis:{focus:"series"}},{name:"上月收入",type:"line",yAxisIndex:0,data:[],smooth:!0,lineStyle:{width:1.5,color:"#36CFc9"},symbol:"circle",symbolSize:5,areaStyle:{color:new i(0,0,0,1,[{offset:0,color:"rgba(54, 207, 201, 0.3)"},{offset:1,color:"rgba(54, 207, 201, 0.0)"}])},emphasis:{focus:"series"}},{name:"上月支出",type:"line",yAxisIndex:0,data:[],smooth:!0,lineStyle:{width:1.5,color:"#E6A23C"},symbol:"circle",symbolSize:5,areaStyle:{color:new i(0,0,0,1,[{offset:0,color:"rgba(230, 162, 60, 0.3)"},{offset:1,color:"rgba(230, 162, 60, 0.0)"}])},emphasis:{focus:"series"}},{name:"收入环比",type:"line",yAxisIndex:1,data:[],smooth:!0,lineStyle:{width:1.5,color:"#722ED1"},symbol:"circle",symbolSize:5,areaStyle:{color:new i(0,0,0,1,[{offset:0,color:"rgba(114, 46, 209, 0.3)"},{offset:1,color:"rgba(114, 46, 209, 0.0)"}])},emphasis:{focus:"series"}},{name:"支出环比",type:"line",yAxisIndex:1,data:[],smooth:!0,lineStyle:{width:1.5,color:"#EB2F96"},symbol:"circle",symbolSize:5,areaStyle:{color:new i(0,0,0,1,[{offset:0,color:"rgba(235, 47, 150, 0.3)"},{offset:1,color:"rgba(235, 47, 150, 0.0)"}])},emphasis:{focus:"series"}},{name:"净利润",type:"bar",yAxisIndex:0,data:[],barWidth:"12%",itemStyle:{color:new i(0,0,0,1,[{offset:0,color:"#FF9D28"},{offset:1,color:"#FAAD14"}]),borderRadius:[8,8,0,0]},label:{show:!0,position:"top",fontSize:10,color:"#fff",formatter:"{c}"}}]};if(a.value.length>0){const N=a.value.map(e=>{const r=e.axisName||"";return r.includes("月")?r:`${r}月`}),d=a.value.map(e=>n(e.value01)),c=a.value.map(e=>n(e.value02)),h=a.value.map(e=>A(e.value03)),F=a.value.map(e=>n(e.value04)),p=a.value.map(e=>n(e.value05)),m=a.value.map(e=>n(e.value06)),S=a.value.map((e,r)=>{const o=p[r],b=d[r]||0;return o===0?0:Number(((b-o)/o*100).toFixed(2))}),v=a.value.map((e,r)=>{const o=m[r],b=c[r]||0;return o===0?0:Number(((b-o)/o*100).toFixed(2))}),I=d.map(e=>Number((e/1e4).toFixed(2))),C=c.map(e=>Number((e/1e4).toFixed(2))),_=p.map(e=>Number((e/1e4).toFixed(2))),$=m.map(e=>Number((e/1e4).toFixed(2))),R=F.map(e=>Number((e/1e4).toFixed(2)));t.tooltip.formatter=function(e){const r=e[0].axisValue,o=e[0].dataIndex;return`
|
||||
<div style="text-align:center; font-weight:bold; margin-bottom:6px">${r}</div>
|
||||
<table style="width:100%; border-collapse:collapse; text-align:center">
|
||||
<tr>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">本月收入(元)</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">本月支出(元)</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">上月收入(元)</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">上月支出(元)</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">收入环比(%)</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">支出环比(%)</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">利润率(%)</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px; font-weight:bold">净利润(元)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${d[o]}</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${c[o]}</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${p[o]}</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${m[o]}</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${S[o]}</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${v[o]}</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${h[o]}</td>
|
||||
<td style="border:1px solid #409EFF; padding:4px">${F[o]}</td>
|
||||
</tr>
|
||||
</table>
|
||||
`},t.xAxis[0].data=N,t.series[0].data=I,t.series[1].data=C,t.series[2].data=h,t.series[3].data=_,t.series[4].data=$,t.series[5].data=S,t.series[6].data=v,t.series[7].data=R}l.setOption(t,!0)}return E(()=>x.formParams,()=>{L()},{deep:!0,immediate:!0}),E(a,()=>{Y(()=>g())},{deep:!0}),V(()=>{g(),window.addEventListener("resize",y)}),W(()=>{window.removeEventListener("resize",y),l&&(l.dispose(),l=null)}),(s,t)=>(k(),P("div",O,[t[0]||(t[0]=u("div",{class:"chart-card-header"},[u("span",{class:"chart-card-title"},"环比收支分析")],-1)),u("div",{class:"bar-line-chart-container",ref_key:"chartRef",ref:f},null,512)]))}}),X=D(T,[["__scopeId","data-v-1bc1f9ad"]]);export{X as default};
|
||||
@@ -0,0 +1 @@
|
||||
.chart-card[data-v-1bc1f9ad]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#0000001a url(/vuePath/assets/16-Cdqx8Mw5.png) no-repeat;background-size:100% 100%}.chart-card-header[data-v-1bc1f9ad]{height:40px;line-height:40px;padding:0 16px;background-color:#1a508b80;border-bottom:1px solid #1a508b;display:flex;align-items:center;background:#0000001a url(/vuePath/assets/14-BfFHvMnp.png) no-repeat;background-size:100% 100%}.chart-card-title[data-v-1bc1f9ad]{font-size:16px;font-weight:600;color:#409eff;letter-spacing:.5px}.bar-line-chart-container[data-v-1bc1f9ad]{flex:1;width:100%;height:calc(100% - 40px)}[data-v-1bc1f9ad] .echarts-tooltip{background-color:#91c8ffe6!important;border-color:#409eff!important;color:#0a3b70!important;border-radius:6px!important;white-space:nowrap!important;max-width:none!important}
|
||||
@@ -0,0 +1 @@
|
||||
.chart-card[data-v-76768672]{width:100%;height:100%;overflow:hidden;background:#0000001a url(/vuePath/assets/16-Cdqx8Mw5.png) no-repeat;background-size:100% 100%!important}.carousel-item-inner[data-v-76768672]{width:100%;height:100%;display:flex;flex-direction:column;background:transparent!important}.chart-card-header[data-v-76768672]{height:40px;line-height:40px;padding:0 16px;background-color:#1a508b80;border-bottom:1px solid #1a508b;display:flex;align-items:center;background:#0000001a url(/vuePath/assets/14-BfFHvMnp.png) no-repeat;background-size:100% 100%}.chart-card-title[data-v-76768672]{font-size:16px;font-weight:600;color:#409eff;letter-spacing:.5px}.table-container[data-v-76768672]{flex:1;width:100%;height:calc(100% - 40px);padding:10px;overflow:auto;background:transparent!important;position:relative}.custom-loading[data-v-76768672]{position:absolute;inset:0;background:#0000001a!important;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:999}.loading-icon[data-v-76768672]{font-size:24px;color:#409eff;animation:loading-rotate-76768672 2s linear infinite;margin-bottom:8px}.loading-text[data-v-76768672]{font-size:14px;color:#b4c7e7}@keyframes loading-rotate-76768672{0%{transform:rotate(0)}to{transform:rotate(360deg)}}[data-v-76768672] .el-carousel,[data-v-76768672] .el-carousel__container,[data-v-76768672] .el-carousel__item{height:100%!important;background:transparent!important}[data-v-76768672] .el-table{--el-table-bg-color: transparent !important;--el-table-text-color: #b4c7e7 !important;--el-table-header-text-color: #b4c7e7 !important;--el-table-row-hover-bg-color: rgba(26, 80, 139, .2) !important;--el-table-border-color: transparent !important;--el-table-stripe-row-bg-color: rgba(0, 0, 0, .1) !important;background:transparent!important;border:none!important;width:100%;height:100%;position:relative;z-index:1}[data-v-76768672] .el-table *,[data-v-76768672] .el-table__inner-wrapper,[data-v-76768672] .el-table__body-wrapper,[data-v-76768672] .el-table__header-wrapper,[data-v-76768672] .el-table__body,[data-v-76768672] .el-table__header,[data-v-76768672] .el-table__body tr,[data-v-76768672] .el-table__header tr{background:transparent!important;background-color:transparent!important}[data-v-76768672] .el-table__header th,[data-v-76768672] .el-table__body td{background:transparent!important;border:none!important;border-bottom:1px solid rgba(26,80,139,.3)!important;color:#b4c7e7!important}[data-v-76768672] .el-table__empty-block,[data-v-76768672] .el-table__empty-text{background:transparent!important;color:#b4c7e7!important}.table-container[data-v-76768672]::-webkit-scrollbar{width:6px;height:6px}.table-container[data-v-76768672]::-webkit-scrollbar-thumb{background:#1a508b80;border-radius:3px}.table-container[data-v-76768672]::-webkit-scrollbar-track{background:#0000001a}
|
||||
@@ -0,0 +1 @@
|
||||
import{b as v}from"./index-CkelhEk4.js";import{b as $,j as _,W as N,q as n,c,o as i,k as e,w as l,a as t,G as x,F as y,x as w,_ as P}from"./index-BRLZOSuF-1775297478351.js";import"./myChartInfo-CETPSFOA.js";const V={class:"chart-card"},E={class:"carousel-item-inner"},j={class:"table-container"},D={key:0,class:"custom-loading"},F={class:"carousel-item-inner"},I={class:"table-container"},T={key:0,class:"custom-loading"},q=$({__name:"ChartV10",props:{formParams:{type:Object,default:()=>({})}},setup(k){const p=k,u=_(),m=_(),d=_(!1);async function B(){try{const s=await v({...p.formParams,flowType:"2"});u.value=s||[]}catch{u.value=[]}}async function C(){try{const s=await v({...p.formParams,flowType:"1"});m.value=s||[]}catch{m.value=[]}}async function L(){d.value=!0,await Promise.all([B(),C()]),d.value=!1}return N(()=>p.formParams,()=>L(),{deep:!0,immediate:!0}),(s,a)=>{const f=n("Loading"),g=n("el-icon"),r=n("el-table-column"),b=n("el-table"),h=n("el-carousel-item"),S=n("el-carousel");return i(),c("div",V,[e(S,{height:"100%",arrow:"hover",trigger:"click",autoplay:!1},{default:l(()=>[e(h,null,{default:l(()=>[t("div",E,[a[1]||(a[1]=t("div",{class:"chart-card-header"},[t("span",{class:"chart-card-title"},"账户收入分析")],-1)),t("div",j,[d.value?(i(),c("div",D,[e(g,{class:"loading-icon"},{default:l(()=>[e(f)]),_:1}),a[0]||(a[0]=t("span",{class:"loading-text"},"加载中...",-1))])):x("",!0),e(b,{data:u.value,stripe:"","empty-text":"暂无账户收入数据","row-style":{background:"transparent"},"cell-style":{borderBottom:"1px solid rgba(26, 80, 139, 0.3)"},"header-row-style":{background:"transparent"},"header-cell-style":{borderBottom:"1px solid rgba(26, 80, 139, 0.3)"}},{default:l(()=>[e(r,{prop:"axisName",label:"账户名称",width:"120",fixed:"left"}),(i(),c(y,null,w(12,o=>e(r,{key:`in-${o}`,prop:`value${String(o).padStart(2,"0")}`,label:`${o}月`,align:"center"},null,8,["prop","label"])),64)),e(r,{prop:"indexSum",label:"合计",width:"120",fixed:"right"})]),_:1},8,["data"])])])]),_:1}),e(h,null,{default:l(()=>[t("div",F,[a[3]||(a[3]=t("div",{class:"chart-card-header"},[t("span",{class:"chart-card-title"},"账户支出分析")],-1)),t("div",I,[d.value?(i(),c("div",T,[e(g,{class:"loading-icon"},{default:l(()=>[e(f)]),_:1}),a[2]||(a[2]=t("span",{class:"loading-text"},"加载中...",-1))])):x("",!0),e(b,{data:m.value,stripe:"","empty-text":"暂无账户支出数据","row-style":{background:"transparent"},"cell-style":{borderBottom:"1px solid rgba(26, 80, 139, 0.3)"},"header-row-style":{background:"transparent"},"header-cell-style":{borderBottom:"1px solid rgba(26, 80, 139, 0.3)"}},{default:l(()=>[e(r,{prop:"axisName",label:"账户名称",width:"120",fixed:"left"}),(i(),c(y,null,w(12,o=>e(r,{key:`ex-${o}`,prop:`value${String(o).padStart(2,"0")}`,label:`${o}月`,align:"center"},null,8,["prop","label"])),64)),e(r,{prop:"indexSum",label:"合计",width:"120",fixed:"right"})]),_:1},8,["data"])])])]),_:1})]),_:1})])}}}),O=P(q,[["__scopeId","data-v-76768672"]]);export{O as default};
|
||||
@@ -0,0 +1 @@
|
||||
import{c as v}from"./index-CkelhEk4.js";import{b as $,j as _,W as N,q as n,c,o as i,k as e,w as l,a as t,G as x,F as y,x as w,_ as P}from"./index-BRLZOSuF-1775297478351.js";import"./myChartInfo-CETPSFOA.js";const V={class:"chart-card"},E={class:"carousel-item-inner"},j={class:"table-container"},D={key:0,class:"custom-loading"},F={class:"carousel-item-inner"},I={class:"table-container"},T={key:0,class:"custom-loading"},q=$({__name:"ChartV11",props:{formParams:{type:Object,default:()=>({})}},setup(k){const p=k,u=_(),m=_(),d=_(!1);async function C(){try{const s=await v({...p.formParams,flowType:"2"});u.value=s||[]}catch{u.value=[]}}async function B(){try{const s=await v({...p.formParams,flowType:"1"});m.value=s||[]}catch{m.value=[]}}async function L(){d.value=!0,await Promise.all([C(),B()]),d.value=!1}return N(()=>p.formParams,()=>L(),{deep:!0,immediate:!0}),(s,a)=>{const f=n("Loading"),g=n("el-icon"),r=n("el-table-column"),b=n("el-table"),h=n("el-carousel-item"),S=n("el-carousel");return i(),c("div",V,[e(S,{height:"100%",arrow:"hover",trigger:"click",autoplay:!1},{default:l(()=>[e(h,null,{default:l(()=>[t("div",E,[a[1]||(a[1]=t("div",{class:"chart-card-header"},[t("span",{class:"chart-card-title"},"分类收入分析")],-1)),t("div",j,[d.value?(i(),c("div",D,[e(g,{class:"loading-icon"},{default:l(()=>[e(f)]),_:1}),a[0]||(a[0]=t("span",{class:"loading-text"},"加载中...",-1))])):x("",!0),e(b,{data:u.value,stripe:"","empty-text":"暂无分类收入数据","row-style":{background:"transparent"},"cell-style":{borderBottom:"1px solid rgba(26, 80, 139, 0.3)"},"header-row-style":{background:"transparent"},"header-cell-style":{borderBottom:"1px solid rgba(26, 80, 139, 0.3)"}},{default:l(()=>[e(r,{prop:"axisName",label:"分类名称",width:"120",fixed:"left"}),(i(),c(y,null,w(12,o=>e(r,{key:`in-${o}`,prop:`value${String(o).padStart(2,"0")}`,label:`${o}月`,align:"center"},null,8,["prop","label"])),64)),e(r,{prop:"indexSum",label:"合计",width:"120",fixed:"right"})]),_:1},8,["data"])])])]),_:1}),e(h,null,{default:l(()=>[t("div",F,[a[3]||(a[3]=t("div",{class:"chart-card-header"},[t("span",{class:"chart-card-title"},"分类支出分析")],-1)),t("div",I,[d.value?(i(),c("div",T,[e(g,{class:"loading-icon"},{default:l(()=>[e(f)]),_:1}),a[2]||(a[2]=t("span",{class:"loading-text"},"加载中...",-1))])):x("",!0),e(b,{data:m.value,stripe:"","empty-text":"暂无分类支出数据","row-style":{background:"transparent"},"cell-style":{borderBottom:"1px solid rgba(26, 80, 139, 0.3)"},"header-row-style":{background:"transparent"},"header-cell-style":{borderBottom:"1px solid rgba(26, 80, 139, 0.3)"}},{default:l(()=>[e(r,{prop:"axisName",label:"分类名称",width:"120",fixed:"left"}),(i(),c(y,null,w(12,o=>e(r,{key:`ex-${o}`,prop:`value${String(o).padStart(2,"0")}`,label:`${o}月`,align:"center"},null,8,["prop","label"])),64)),e(r,{prop:"indexSum",label:"合计",width:"120",fixed:"right"})]),_:1},8,["data"])])])]),_:1})]),_:1})])}}}),W=P(q,[["__scopeId","data-v-ad5ea66a"]]);export{W as default};
|
||||
@@ -0,0 +1 @@
|
||||
.chart-card[data-v-ad5ea66a]{width:100%;height:100%;overflow:hidden;background:#0000001a url(/vuePath/assets/16-Cdqx8Mw5.png) no-repeat;background-size:100% 100%!important}.carousel-item-inner[data-v-ad5ea66a]{width:100%;height:100%;display:flex;flex-direction:column;background:transparent!important}.chart-card-header[data-v-ad5ea66a]{height:40px;line-height:40px;padding:0 16px;background-color:#1a508b80;border-bottom:1px solid #1a508b;display:flex;align-items:center;background:#0000001a url(/vuePath/assets/14-BfFHvMnp.png) no-repeat;background-size:100% 100%}.chart-card-title[data-v-ad5ea66a]{font-size:16px;font-weight:600;color:#409eff;letter-spacing:.5px}.table-container[data-v-ad5ea66a]{flex:1;width:100%;height:calc(100% - 40px);padding:10px;overflow:auto;background:transparent!important;position:relative}.custom-loading[data-v-ad5ea66a]{position:absolute;inset:0;background:#0000001a!important;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:999}.loading-icon[data-v-ad5ea66a]{font-size:24px;color:#409eff;animation:loading-rotate-ad5ea66a 2s linear infinite;margin-bottom:8px}.loading-text[data-v-ad5ea66a]{font-size:14px;color:#b4c7e7}@keyframes loading-rotate-ad5ea66a{0%{transform:rotate(0)}to{transform:rotate(360deg)}}[data-v-ad5ea66a] .el-carousel,[data-v-ad5ea66a] .el-carousel__container,[data-v-ad5ea66a] .el-carousel__item{height:100%!important;background:transparent!important}[data-v-ad5ea66a] .el-table{--el-table-bg-color: transparent !important;--el-table-text-color: #b4c7e7 !important;--el-table-header-text-color: #b4c7e7 !important;--el-table-row-hover-bg-color: rgba(26, 80, 139, .2) !important;--el-table-border-color: transparent !important;--el-table-stripe-row-bg-color: rgba(0, 0, 0, .1) !important;background:transparent!important;border:none!important;width:100%;height:100%;position:relative;z-index:1}[data-v-ad5ea66a] .el-table *,[data-v-ad5ea66a] .el-table__inner-wrapper,[data-v-ad5ea66a] .el-table__body-wrapper,[data-v-ad5ea66a] .el-table__header-wrapper,[data-v-ad5ea66a] .el-table__body,[data-v-ad5ea66a] .el-table__header,[data-v-ad5ea66a] .el-table__body tr,[data-v-ad5ea66a] .el-table__header tr{background:transparent!important;background-color:transparent!important}[data-v-ad5ea66a] .el-table__header th,[data-v-ad5ea66a] .el-table__body td{background:transparent!important;border:none!important;border-bottom:1px solid rgba(26,80,139,.3)!important;color:#b4c7e7!important}[data-v-ad5ea66a] .el-table__empty-block,[data-v-ad5ea66a] .el-table__empty-text{background:transparent!important;color:#b4c7e7!important}.table-container[data-v-ad5ea66a]::-webkit-scrollbar{width:6px;height:6px}.table-container[data-v-ad5ea66a]::-webkit-scrollbar-thumb{background:#1a508b80;border-radius:3px}.table-container[data-v-ad5ea66a]::-webkit-scrollbar-track{background:#0000001a}
|
||||
@@ -0,0 +1 @@
|
||||
import{b as g,aa as d,i as j,bg as E,j as c,c as s,o as l,F as S,x as K,G as O,k as U,f,X as F}from"./index-BRLZOSuF-1775297478351.js";import{_ as R}from"./Tree.vue_vue_type_style_index_0_lang-Cc3_yt3U.js";import"./index-k8EE2qLa.js";import"./index-G1HvrRWr.js";import"./formItem-9bQod6RV.js";import"./typespec-CVzloLly.js";import"./redshift-CC4Ds1Bk.js";import"./sql-DiFTSuVq.js";import"./index-B7dHRAHV.js";import"./index-By3U8KVx.js";import"./account-DFLpYKDc.js";import"./index-CiQOAmGE.js";import"./index-HHcosjnG.js";const V={class:"flex flex-row flex-wrap"},A={key:0,class:"mb-5 mr-5"},B=g({name:"ViewsSysRoleAuthDataScope"}),ee=g({...B,props:{namespace:d.string,checkStrictly:d.bool,api:{type:Function},ctrlPermis:d.array.def(["0","1"])},setup(n,{expose:T}){const b=n,{t:x}=j(b.namespace),C=E(),u=c([]),m=c([]),y=c([]),k=c(""),h=c(""),i=c(!1),p=c([]),r={},_=a=>t=>{t&&(r[a]=t)};let o;async function L(a){u.value=a.dataScopes||[],m.value=a.dataScopeList||[],y.value=a.moduleCodes||[],k.value=a.ctrlPermi||"1",h.value=a.menuCode||"0",o=0,await F(()=>{if(i.value)for(const t of Object.keys(r))r[t].setCheckedKeys([]),r[t].reload();else i.value=!0}),p.value=u.value.filter(t=>String(t.ctrlDataUrl).includes("isLoadUser=true")).map(t=>t.ctrlType)}function D(){const a=Object.keys(r);if(o=o+1,o==a.length){let t={};m.value.forEach(e=>{t[e.ctrlType]||(t[e.ctrlType]=[]),t[e.ctrlType].push((p.value.includes(e.ctrlType)?"u_":"")+e.ctrlData)});for(const e of a)r[e].setCheckedKeys(t[e]||[])}}function v(){const a=Object.keys(r);let t=[];for(const e of a){const P=r[e].getCheckedKeys();for(const w of P)t.push({ctrlType:String(e),ctrlData:String(w).replace(/^u_/g,""),menuCode:h.value})}return t}function N(){return JSON.stringify(v())}return T({loadDataScopeList:L,getDataScopeList:v,getDataScopeListJson:N}),(a,t)=>(l(),s("div",V,[(l(!0),s(S,null,K(u.value,e=>(l(),s(S,{key:e.moduleCode},[y.value.includes(e.moduleCode)&&n.ctrlPermis.includes(e.ctrlPermi)?(l(),s("div",A,[U(f(R),{class:"bg-gray",style:{"min-width":"300px"},title:f(x)(e["ctrlName_"+f(C).getLocale]||e.ctrlName),toolbar:!0,checkable:!0,checkStrictly:!(e.chkboxType?.Y+e.chkboxType?.N).includes("p"),api:n.api,params:{url:e.ctrlDataUrl,ctrlPermi:k.value,parentAttr:"disableCheckbox"},canSelectParent:!p.value.includes(e.ctrlType),immediate:i.value,defaultExpandLevel:Number(e.expandLevel),ref_for:!0,ref:_(e.ctrlType),onTreeDataChange:D},null,8,["title","checkStrictly","api","params","canSelectParent","immediate","defaultExpandLevel"])])):O("",!0)],64))),128))]))}});export{ee as default};
|
||||
@@ -0,0 +1 @@
|
||||
import{B as R}from"./index-DN3n5Bx7.js";import{b as j,j as D,p as W,b5 as F,m as d,f as e,k as a,s as v,b6 as O,b7 as w,b8 as L,b9 as V,ba as q,bb as z,aq as G,i as H,e as J,o as K,w as Q}from"./index-BRLZOSuF-1775297478351.js";import{C as T}from"./index-k8EE2qLa.js";import{D as P}from"./index-CUNcuXdU.js";import{getDescSchema as U}from"./data-BENsec6f.js";import"./index-G1HvrRWr.js";import"./index-CiQOAmGE.js";function X(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!V(t)}const Y={useCollapse:{type:Boolean,default:!0},title:{type:String,default:""},size:{type:String,validator:t=>["small","default","middle",void 0].includes(t),default:"small"},bordered:{type:Boolean,default:!0},column:{type:[Number,Object],default:()=>({xxl:4,xl:3,lg:3,md:3,sm:2,xs:1})},collapseOptions:{type:Object,default:null},schema:{type:Array,default:()=>[]},data:{type:Object}},Z=j({name:"Description",props:Y,emits:["register"],setup(t,{slots:o,emit:i}){const r=D(null),{prefixCls:g}=W("description"),l=F(),b=d(()=>({...t,...e(r)})),f=d(()=>({...e(b),title:void 0})),B=d(()=>!!e(b).title||!!o.title),M=d(()=>({canExpand:!1,expand:!0,...e(f).collapseOptions})),S=d(()=>({...e(l),...e(f)}));function k(n){r.value={...e(r),...n}}function I({label:n,labelMinWidth:c,labelStyle:s}){if(!s&&!c)return n;const u={...s,minWidth:`${c}px `};return a("div",{style:u},[n])}function $(){const{schema:n,data:c}=e(f);return e(n).map(s=>{const{render:u,field:m,span:A,show:y,contentMinWidth:x}=s;if(y&&w(y)&&!y(c))return null;const C=()=>{const p=e(f)?.data;if(!p)return null;const _=L(p,m);return w(u)?u(_,p):_??""},N=x;return a(P.Item,{label:I(s),key:m,span:A},{default:()=>{if(!x)return C();const p={minWidth:`${N}px`};return a("div",{style:p},[C()])}})}).filter(s=>!!s)}const h=()=>{let n;return a(P,v({class:`${g}`},e(S)),X(n=$())?n:{default:()=>[n]})},E=()=>{const n=t.useCollapse?h():a("div",null,[h()]);if(!t.useCollapse)return n;const{canExpand:c,expand:s,helpMessage:u}=e(M),{title:m}=e(b);return a(T,{title:m,canExpan:c,expand:s,helpMessage:u},{default:()=>n,action:()=>O(o,"action"),title:()=>O(o,"title")})};return i("register",{setDescProps:k}),()=>e(B)?E():h()}});function ee(t){if(!q())throw new Error("useDescription() can only be used inside setup() or functional components!");const o=D(null),i=D(!1);function r(l){e(i)&&z()||(o.value=l,t&&l.setDescProps(t),i.value=!0)}return[r,{setDescProps:l=>{e(o)?.setDescProps(l)}}]}const te=G(Z),ue=j({__name:"DetailModal",props:{info:{type:Object,default:null}},setup(t){const{t:o}=H(),[i]=ee({column:2,schema:U()});return(r,g)=>(K(),J(e(R),v(r.$attrs,{title:e(o)("sys.errorLog.tableActionDesc"),showOkBtn:!1,width:800}),{default:Q(()=>[a(e(te),{data:t.info,onRegister:e(i)},null,8,["data","onRegister"])]),_:1},16,["title"]))}});export{ue as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{b as x,j as c,p as P,n as z,W as w,m as R,f as s,c as u,o as l,k as C,w as O,y as F,by as j,v as S,a as B,a8 as g,bz as L,_ as q,q as E,G as H,F as $,x as N,e as V}from"./index-BRLZOSuF-1775297478351.js";import{u as W}from"./useContentViewHeight-Bggdxgev.js";const D=["src"],_=13,I=x({__name:"FramePage",props:{frame:{type:Object},query:{type:Object},fullHeight:{type:Boolean,default:!1}},setup(a){const n=a,o=c(!0),m=c(50),f=c(window.innerHeight),p=c(),{headerHeightRef:h}=W(),{prefixCls:r}=P("iframe-page");z(y,150,{immediate:!0});const i=c();w(()=>g.currentRoute.value.query,()=>{let e=n.frame?.meta?.frameSrc||"",t=window.location.search;t&&t!=""&&(e+=t);const d=window.location.pathname.replace(/\/\//g,"/");(!i.value||i.value!=e&&e.indexOf(d)!=-1)&&(i.value=e)},{immediate:!0}),w(()=>g.currentRoute.value.name,()=>{let e=g.currentRoute.value.params;if(e&&e.path==n.frame?.path){let t=n.frame?.meta?.frameSrc;t+=t?.indexOf("?")!=-1?"&":"?",i.value=t+"__t"+new Date().getTime()}});const v=R(()=>({height:`${s(f)-_}px`}));function y(){const e=s(p);if(!e)return;if(n.fullHeight){const k=document.documentElement.clientHeight-6;e.style.height=`${k}px`;return}const t=h.value+_;m.value=t,f.value=window.innerHeight-t;const d=document.documentElement.clientHeight-t;e.style.height=`${d-_}px`}function b(){o.value=!1,y()}return(e,t)=>(l(),u("div",{class:S(s(r)),style:F(v.value)},[C(s(j),{spinning:o.value,size:"large",style:F(v.value)},{default:O(()=>[B("iframe",{src:i.value,class:S(`${s(r)}__main ${n.frame?.name}`),ref_key:"frameRef",ref:p,onLoad:b},null,42,D)]),_:1},8,["spinning","style"])],6))}}),T=x({name:"FrameSimple",components:{FramePage:I},setup(){const{getFramePages:a,hasRenderFrame:n,showIframe:o}=L(),m=R(()=>s(a).length>0);return{getFramePages:a,hasRenderFrame:n,showIframe:o,showFrame:m}}}),A={key:0};function G(a,n,o,m,f,p){const h=E("FramePage");return a.showFrame?(l(),u("div",A,[(l(!0),u($,null,N(a.getFramePages,r=>(l(),u($,{key:r.path},[r.meta.frameSrc&&a.showIframe(r)?(l(),V(h,{key:0,frame:r,fullHeight:!0},null,8,["frame"])):H("",!0)],64))),128))])):H("",!0)}const K=q(T,[["render",G]]),Q=Object.freeze(Object.defineProperty({__proto__:null,default:K},Symbol.toStringTag,{value:"Module"}));export{Q as F,I as _};
|
||||
@@ -0,0 +1 @@
|
||||
.jeesite-iframe-page .ant-spin-nested-loading{position:relative;height:100%}.jeesite-iframe-page .ant-spin-nested-loading .ant-spin-container{width:100%;height:100%}.jeesite-iframe-page__mask{position:absolute;top:0;left:0;width:100%;height:100%}.jeesite-iframe-page__main{width:100%;height:100%;overflow:hidden;background-color:#fff;border:0;box-sizing:border-box;border-radius:5px}
|
||||
10
web-api/src/main/resources/worker/assets/Grid-BzA34qXb.js
Normal file
10
web-api/src/main/resources/worker/assets/Grid-BzA34qXb.js
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{b as V,j as l,m as y,B as D,ai as H,c as b,o as i,a,k as c,e as I,G as W,q as g,w,f as z,a_ as j,at as q,F,x as U,t as $,X as G,aj as L}from"./index-BRLZOSuF-1775297478351.js";import{H as P}from"./myAnalysis-C35jL5gK.js";const X={class:"card-title"},J={class:"card-title__main"},K={class:"card-content"},Q={class:"host-overview"},Y={class:"host-gauge-panel"},Z={class:"host-metrics"},ee={class:"metric-item__label"},ne=V({__name:"HostInfo",setup(te){const u=l(),d=l(),f=new Map,s=l([]),h=l(!1),v=y(()=>s.value.find(e=>e.key==="used")),k=y(()=>s.value.find(e=>e.key==="time")?.remark||""),C=y(()=>["sys","wait","user","free"].map(t=>s.value.find(o=>o.key===t)).filter(t=>!!t));let n=null;const r=new Map;let _=null;function M(e,t){e instanceof HTMLDivElement?f.set(t,e):f.delete(t)}async function x(){h.value=!0;try{const e=await P();s.value=e||[]}catch{s.value=[]}finally{h.value=!1,G(()=>{B(),N()})}}function R(){return v.value?.value||0}function E(){return v.value?.label||"CPU使用率"}function T(){return v.value?.color||"#ef4444"}function B(){if(!d.value)return;n||(n=L(d.value));const e=R(),t=E(),o=T();n.setOption({series:[{type:"gauge",startAngle:210,endAngle:-30,radius:"72%",center:["50%","56%"],min:0,max:100,splitNumber:5,progress:{show:!0,width:10,itemStyle:{color:o}},axisLine:{lineStyle:{width:10,color:[[1,"#e5e7eb"]]}},pointer:{show:!0,length:"52%",width:5,offsetCenter:[0,"0%"],itemStyle:{color:o}},axisTick:{distance:-10,splitNumber:4,lineStyle:{width:1,color:"#cbd5e1"}},splitLine:{distance:-10,length:7,lineStyle:{width:2,color:"#94a3b8"}},axisLabel:{distance:-18,color:"#64748b",fontSize:9},anchor:{show:!0,showAbove:!0,size:8,itemStyle:{color:o,borderWidth:2,borderColor:"#fff"}},title:{show:!0,offsetCenter:[0,"44%"],fontSize:11,color:"#64748b"},detail:{valueAnimation:!0,formatter:"{value}%",color:"#0f172a",fontSize:22,fontWeight:"bold",offsetCenter:[0,"2%"]},data:[{value:e,name:t}]}]})}function m(){n?.resize(),r.forEach(e=>e.resize())}function N(){C.value.forEach(e=>{const t=f.get(e.key);if(!t)return;let o=r.get(e.key);o||(o=L(t),r.set(e.key,o)),o.setOption({animation:!0,series:[{type:"pie",radius:["66%","82%"],center:["50%","50%"],silent:!0,label:{show:!1},labelLine:{show:!1},data:[{value:e.value,itemStyle:{color:e.color,borderRadius:10}},{value:Math.max(100-Number(e.value||0),0),itemStyle:{color:"rgba(148, 163, 184, 0.18)"}}]}],graphic:[{type:"text",left:"center",top:"center",style:{text:`${e.value}%`,textAlign:"center",fill:e.color,fontSize:12,fontWeight:700}}]})})}return D(()=>{x(),u.value&&(_=new ResizeObserver(()=>{m()}),_.observe(u.value)),window.addEventListener("resize",m)}),H(()=>{_?.disconnect(),window.removeEventListener("resize",m),n?.dispose(),r.forEach(e=>e.dispose()),r.clear(),n=null}),(e,t)=>{const o=g("el-icon"),S=g("el-tooltip"),O=g("el-button");return i(),b("div",{ref_key:"hostCardRef",ref:u,class:"host-card"},[a("div",X,[a("div",J,[t[0]||(t[0]=a("span",null,"主机信息",-1)),k.value?(i(),I(S,{key:0,content:`运行时长:${k.value}`,placement:"top","show-after":200},{default:w(()=>[c(o,{class:"card-title__tips"},{default:w(()=>[c(z(j))]),_:1})]),_:1},8,["content"])):W("",!0)]),c(S,{content:"刷新",placement:"top","show-after":200},{default:w(()=>[c(O,{class:"card-title__refresh",link:"",type:"primary",icon:z(q),loading:h.value,onClick:x},null,8,["icon","loading"])]),_:1})]),a("div",K,[a("div",Q,[a("div",Y,[a("div",{ref_key:"chartRef",ref:d,class:"gauge-chart"},null,512)]),a("div",Z,[(i(!0),b(F,null,U(C.value,p=>(i(),b("div",{key:p.key,class:"metric-item"},[a("div",{ref_for:!0,ref:A=>M(A,p.key),class:"metric-item__chart"},null,512),a("div",ee,$(p.label),1)]))),128))])])])],512)}}});export{ne as default};
|
||||
@@ -0,0 +1 @@
|
||||
.host-card{width:100%;height:100%;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;background:#fff}.host-card .card-title{display:flex;align-items:center;justify-content:space-between;height:37px;padding:8px 16px;box-sizing:border-box;flex-shrink:0;font-size:14px;font-weight:500;line-height:20px;color:#334155;border-bottom:1px solid #e2e8f0;background:transparent}.host-card .card-title__main{display:inline-flex;align-items:center;gap:6px}.host-card .card-title__tips{font-size:14px;color:#64748b;cursor:pointer;transition:color .2s ease}.host-card .card-title__tips:hover{color:#3b82f6}.host-card .card-title__refresh{padding:0;font-size:16px}.host-card .card-content{flex:1;min-height:0;padding:8px 12px 12px;overflow:hidden;background:transparent}.host-card .host-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;height:100%;align-items:stretch;min-height:0}.host-card .host-gauge-panel{display:flex;align-items:center;justify-content:center;min-width:0;min-height:160px;padding:8px;border-radius:10px;background:#fff;box-shadow:0 8px 24px #94a3b824;overflow:hidden}.host-card .gauge-chart{width:100%;height:100%;min-height:160px;max-width:280px;margin:0 auto}.host-card .host-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;padding:0;background:transparent;min-width:0;min-height:0;height:100%}.host-card .metric-item{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:0;padding:8px;border-radius:10px;background:#fff;box-shadow:0 8px 24px #94a3b824;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.host-card .metric-item__label{margin-top:4px;color:#475569;font-size:12px;line-height:16px;text-align:center;word-break:break-word}.host-card .metric-item__chart{width:100%;height:68px;min-height:68px}.host-card .metric-item:hover{transform:translateY(-2px);box-shadow:0 12px 28px #60a5fa33}html[data-theme=dark] .host-card{background:#141414}html[data-theme=dark] .host-card .card-title{color:#cbd5e1;border-bottom-color:#334155}html[data-theme=dark] .host-card .card-title__tips{color:#94a3b8}html[data-theme=dark] .host-card .card-title__tips:hover{color:#93c5fd}html[data-theme=dark] .host-card .card-title__refresh:deep(.el-icon){color:#93c5fd}html[data-theme=dark] .host-card .host-gauge-panel,html[data-theme=dark] .host-card .host-metrics{background:transparent}html[data-theme=dark] .host-card .host-gauge-panel,html[data-theme=dark] .host-card .metric-item{background:linear-gradient(180deg,#141414,#1c1c1c);box-shadow:0 10px 24px #0000003d}html[data-theme=dark] .host-card .metric-item__label{color:#94a3b8}html[data-theme=dark] .host-card .metric-item:hover{box-shadow:0 12px 28px #60a5fa33}@media(max-width:900px){.host-card .host-overview{grid-template-columns:1fr;grid-template-rows:auto 1fr}.host-card .host-metrics{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(88px,1fr))}.host-card .host-gauge-panel,.host-card .gauge-chart{min-height:160px}}@media(max-width:560px){.host-card .host-metrics{grid-template-columns:1fr}}
|
||||
@@ -0,0 +1 @@
|
||||
import{b as m,p as n,_ as i,q as s,c as a,o as l,a as u,k as c,t as f,s as b,v as d}from"./index-BRLZOSuF-1775297478351.js";import{b as C}from"./index-B3ZNeyI7.js";import{I as g}from"./dayjs-DLosx6bn.js";import"./index-ClX-lDht.js";import"./index-k8EE2qLa.js";import"./index-G1HvrRWr.js";import"./ErrorAction-EvBh0byA.js";import"./redshift-CC4Ds1Bk.js";import"./index-HHcosjnG.js";import"./typespec-CVzloLly.js";import"./sql-DiFTSuVq.js";import"./formItem-9bQod6RV.js";import"./formGroup-BS-9qm03.js";import"./index-By3U8KVx.js";import"./account-DFLpYKDc.js";import"./index-CiQOAmGE.js";import"./mips-98dl4GSD.js";import"./index-DIJjAvRv.js";import"./index-DN3n5Bx7.js";import"./index-B7dHRAHV.js";import"./uploadImage-CFYO5TZM.js";import"./uploadFile-C0VCSXjO.js";import"./WorkbenchHeader-DLmnKCUw.js";import"./sb-adnPBAyt.js";import"./index-CiL_w4Vw.js";import"./datePicker-BwizO_EZ.js";import"./col-7QJHwc-2.js";import"./row-CoF0dbW4.js";import"./index-y7ZRJF0h.js";import"./useContentViewHeight-Bggdxgev.js";import"./index-BVLeRLLr.js";import"./FrameSimple-BNF3p-7Y.js";import"./index-CBlVRlqP.js";const I=m({name:"InputNumberItem",components:{InputNumber:g},props:{event:{type:Number},title:{type:String}},setup(t){const{prefixCls:e}=n("setting-input-number-item");function r(o){t.event&&C(t.event,o)}return{prefixCls:e,handleChange:r}}});function N(t,e,r,o,h,v){const p=s("InputNumber");return l(),a("div",{class:d(t.prefixCls)},[u("span",null,f(t.title),1),c(p,b(t.$attrs,{size:"small",class:`${t.prefixCls}-input-number`,onChange:t.handleChange}),null,16,["class","onChange"])],2)}const et=i(I,[["render",N]]);export{et as default};
|
||||
@@ -0,0 +1 @@
|
||||
.jeesite-setting-input-number-item{display:flex;justify-content:space-between;margin:16px 0;color:#000000e0}.jeesite-setting-input-number-item-input-number{width:126px!important}
|
||||
@@ -0,0 +1 @@
|
||||
.jeesite-listselect .jeesite-basic-tree-header{padding:2px 0 4px;border:0}.jeesite-listselect-table .ant-table-wrapper .ant-table td{cursor:pointer}.jeesite-listselect-tags{overflow:auto}.jeesite-listselect-tags .ant-tag{margin:4px 0 0;padding:0 4px;width:100%;display:flex;justify-content:space-between}.jeesite-listselect-tags .ant-tag span{overflow:hidden;white-space:nowrap;cursor:default}.jeesite-listselect-tags .ant-tag .anticon{margin-left:4px!important;height:20px;cursor:pointer}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{b as x,i as v,m as r,f as t,u as h,p as w,j as y,c as b,o as n,e as M,G as L,a as o,aV as k,k as e,aW as p,v as c}from"./index-BRLZOSuF-1775297478351.js";import{_ as B}from"./LoginForm-iawXFK1F.js";import{_ as S,a as C}from"./MobileForm-4hmLPxWf.js";import{u as D,L as a}from"./LoginFormTitle-CYfZMbiW.js";import"./mips-98dl4GSD.js";import"./formItem-9bQod6RV.js";import"./typespec-CVzloLly.js";import"./redshift-CC4Ds1Bk.js";import"./sql-DiFTSuVq.js";import"./index-DIJjAvRv.js";import"./row-CoF0dbW4.js";import"./col-7QJHwc-2.js";import"./account-DFLpYKDc.js";import"./formGroup-BS-9qm03.js";import"./index-By3U8KVx.js";import"./index-CiQOAmGE.js";import"./index-HHcosjnG.js";import"./dayjs-DLosx6bn.js";import"./index-CiL_w4Vw.js";import"./WorkbenchHeader-DLmnKCUw.js";import"./datePicker-BwizO_EZ.js";import"./index-DN3n5Bx7.js";import"./index-k8EE2qLa.js";import"./index-G1HvrRWr.js";import"./index-B7dHRAHV.js";import"./uploadImage-CFYO5TZM.js";import"./uploadFile-C0VCSXjO.js";import"./sb-adnPBAyt.js";import"./index-y7ZRJF0h.js";import"./useContentViewHeight-Bggdxgev.js";const E="/vuePath/assets/login-box-bg-DMecJRbx.svg",N={class:"-enter-x lg:hidden"},T={class:"relative mx-auto h-full py-2 container"},V={class:"h-full flex"},$={class:"mr-4 min-h-full pl-4 md:hidden lg:w-13/24 lg:flex lg:flex-col"},G={class:"my-auto"},I=["alt"],O={class:"h-full w-full flex overflow-auto py-5 lg:my-0 lg:h-auto lg:w-11/24 lg:py-0"},_o=x({__name:"Login",props:{sessionTimeout:{type:Boolean}},setup(u){const{t:A}=v(),{getLoginState:d}=D();r(()=>{const s=t(d);return s===a.LOGIN||s===a.MOBILE||s===a.QR_CODE});const g=h(),{prefixCls:m}=w("login"),f=r(()=>g?.title??""),i=y(!1);return(s,l)=>(n(),b("div",{class:c([t(m),"relative h-full w-full bg-light-400 px-4"])},[u.sessionTimeout?L("",!0):(n(),M(t(k),{key:0,class:"enter-x absolute right-8 top-5"})),o("span",N,[e(t(p),{alwaysShowTitle:!0})]),o("div",T,[o("div",V,[o("div",$,[o("div",G,[e(t(p),{class:"-enter-x logo"}),o("img",{alt:f.value,src:E,class:"-enter-x w-1/2"},null,8,I),l[1]||(l[1]=o("div",{class:"-enter-x mt-10 text-white font-medium"},[o("span",{class:"mt-4 inline-block text-3xl"})],-1))])]),o("div",O,[o("div",{class:c([`${t(m)}-form`,"enter-x relative mx-auto my-auto w-full px-5 py-8 shadow-md lg:ml-16 lg:w-2/4 lg:w-auto sm:w-3/4 lg:px-10 lg:py-9 sm:px-8"])},[e(B,{onDemoMode:l[0]||(l[0]=_=>i.value=_)}),e(S,{demoMode:i.value},null,8,["demoMode"]),e(C,{demoMode:i.value},null,8,["demoMode"])],2)])])])],2))}});export{_o as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
.jeesite-countdown-input .ant-input-group-addon{padding-right:0;background-color:transparent;border:none}.jeesite-countdown-input .ant-input-group-addon button{font-size:14px}.jeesite-countdown-input .ant-input-group-addon button.ant-btn-sm{font-size:13px;height:22px;padding:0 7px}
|
||||
@@ -0,0 +1 @@
|
||||
import{b as E,i as F,u as V,ak as I,p as P,j as c,W,B as A,q as J,e as $,o as T,w as l,a as U,s as H,f as e,bA as Q,aq as X,bf as D,br as Y,m as Z,bB as ee,bC as se,a3 as te,c as oe,G as O,k as o,bD as ae,D as h,t as R,bp as z,bE as le}from"./index-BRLZOSuF-1775297478351.js";import{u as ie,a as ne,L,_ as re,b as ue}from"./LoginFormTitle-CYfZMbiW.js";import{u as de}from"./mips-98dl4GSD.js";import{F as B}from"./formItem-9bQod6RV.js";import{C as ce}from"./index-DIJjAvRv.js";import{r as me}from"./row-CoF0dbW4.js";import{m as fe}from"./col-7QJHwc-2.js";const pe=["src"],ge=E({name:"JeeSiteValidCode"}),ve=E({...ge,props:{value:{type:String},size:{type:String,validator:m=>["default","large","small"].includes(m)},refreshTime:{type:Number,default:0}},emits:["change","update:value"],setup(m,{expose:w,emit:C}){const g=m,{t:i}=F(),{ctxPath:x}=V(),a=I(),{prefixCls:n}=P("jeesite-valid-code"),[f]=de(g),S=c("");function r(){S.value=x+"/validCode?__sid="+a.getToken+"&t="+new Date().getTime()}return W(()=>g.refreshTime,()=>r()),A(()=>{r()}),w({refreshValidCodeImg:r}),(b,v)=>{const _=J("a-input");return T(),$(_,H(b.$attrs,{value:e(f),"onUpdate:value":v[0]||(v[0]=p=>Q(f)?f.value=p:null),visibilityToggle:"",class:e(n),size:m.size,placeholder:e(i)("sys.login.validCode"),autocomplete:"off"}),{suffix:l(()=>[U("img",{src:S.value,onClick:r,class:"cursor-pointer",width:"100"},null,8,pe)]),_:1},16,["value","class","size","placeholder"])}}}),_e=X(ve),ye={key:0},we=E({__name:"LoginForm",emits:["demoMode"],setup(m,{emit:w}){const C=fe,g=me,i=B.Item,x=D.Password,{t:a}=F(),{showMessage:n,notification:f}=te();P("login");const{ctxPath:S}=V(),r=I(),{setLoginState:b,getLoginState:v}=ie(),_=c(),p=c(!1),k=c(!1),y=c(0),M=c(!1),j=w,u=Y({account:"",password:"",validCode:""}),{getFormRules:q}=ne(u),{validForm:G}=ue(_),K=Z(()=>e(v)===L.LOGIN);A(async()=>{setTimeout(()=>ee.destroy());try{const t=await se("none");if(t.result=="true"){await r.afterLoginAction(t,!0);return}r.initPageCache(t),M.value=t.demoMode||!1,j("demoMode",M.value),t.isValidCodeLogin&&(y.value=new Date().getTime())}catch(t){const s=t?.toString?.()??"";t?.code==="ECONNABORTED"&&s.indexOf("timeout of")!==-1?n(a("sys.api.apiTimeoutMessage")):s.indexOf("Network Error")!==-1?n(a("sys.api.networkExceptionMsg")):t?.code==="ERR_BAD_RESPONSE"&&n(a("sys.api.apiRequestFailed"))}});async function N(){try{const t=await G();if(!t)return;p.value=!0;const s=await r.login(le({password:t.password,username:t.account,validCode:t.validCode,rememberMe:e(k.value)}));s.isValidCodeLogin&&(y.value=new Date().getTime()),s.result==="true"&&f.success({message:a("sys.login.loginSuccessTitle"),description:`${a("sys.login.loginSuccessDesc")}: ${s.user.userName}`,duration:1})}catch(t){const s=t?.toString?.()??"";t?.code==="ECONNABORTED"&&s.indexOf("timeout of")!==-1?n(a("sys.api.apiTimeoutMessage")):s.indexOf("Network Error")!==-1?n(a("sys.api.networkExceptionMsg")):t?.code==="ERR_BAD_RESPONSE"&&n(a("sys.api.apiRequestFailed"))}finally{p.value=!1}}return(t,s)=>K.value?(T(),oe("div",ye,[o(re,{class:"enter-x"}),o(e(B),{class:"enter-x p-4",model:u,rules:e(q),ref_key:"formRef",ref:_,onKeypress:ae(N,["enter"])},{default:l(()=>[s[5]||(s[5]=U("div",{class:"font-size mb-5 text-center font-size-4 text-red"},null,-1)),o(e(i),{name:"account",class:"enter-x"},{default:l(()=>[o(e(D),{size:"large",value:u.account,"onUpdate:value":s[0]||(s[0]=d=>u.account=d),placeholder:e(a)("sys.login.account"),class:"fix-auto-fill"},null,8,["value","placeholder"])]),_:1}),o(e(i),{name:"password",class:"enter-x"},{default:l(()=>[o(e(x),{size:"large",visibilityToggle:"",value:u.password,"onUpdate:value":s[1]||(s[1]=d=>u.password=d),placeholder:e(a)("sys.login.password"),autocomplete:"off"},null,8,["value","placeholder"])]),_:1}),y.value?(T(),$(e(i),{key:0,name:"validCode",class:"enter-x valid-code"},{default:l(()=>[o(e(_e),{size:"large",value:u.validCode,"onUpdate:value":s[2]||(s[2]=d=>u.validCode=d),refreshTime:y.value},null,8,["value","refreshTime"])]),_:1})):O("",!0),o(e(g),{class:"enter-x"},{default:l(()=>[o(e(C),{span:12},{default:l(()=>[o(e(i),null,{default:l(()=>[o(e(ce),{checked:k.value,"onUpdate:checked":s[3]||(s[3]=d=>k.value=d),size:"small"},{default:l(()=>[h(R(e(a)("sys.login.rememberMe")),1)]),_:1},8,["checked"])]),_:1})]),_:1}),o(e(C),{span:12},{default:l(()=>[o(e(i),{style:{"text-align":"right"}},{default:l(()=>[o(e(z),{type:"link",size:"small",onClick:s[4]||(s[4]=d=>e(b)(e(L).RESET_PASSWORD))},{default:l(()=>[h(R(e(a)("sys.login.forgetPassword")),1)]),_:1})]),_:1})]),_:1})]),_:1}),o(e(i),{class:"enter-x"},{default:l(()=>[o(e(z),{type:"primary",size:"defult",block:"",onClick:N,loading:p.value},{default:l(()=>[h(R(e(a)("sys.login.loginButton")),1)]),_:1},8,["loading"])]),_:1})]),_:1},8,["model","rules"])])):O("",!0)}}),Te=Object.freeze(Object.defineProperty({__proto__:null,default:we},Symbol.toStringTag,{value:"Module"}));export{Te as L,_e as V,we as _};
|
||||
@@ -0,0 +1 @@
|
||||
import{m as s,j as O,i as w,f as r,b,c as T,o as S,t as C}from"./index-BRLZOSuF-1775297478351.js";var u=(e=>(e[e.LOGIN=0]="LOGIN",e[e.REGISTER=1]="REGISTER",e[e.RESET_PASSWORD=2]="RESET_PASSWORD",e[e.MOBILE=3]="MOBILE",e[e.QR_CODE=4]="QR_CODE",e))(u||{});const g=O(0);function I(){function e(i){g.value=i}const o=s(()=>g.value);function n(){e(0)}return{setLoginState:e,getLoginState:o,handleBackLogin:n}}function j(e){async function o(){const n=r(e);return n?await n.validate():void 0}return{validForm:o}}function N(e){const{t:o}=w(),n=s(()=>l(o("sys.login.accountPlaceholder"))),i=s(()=>l(o("sys.login.passwordPlaceholder"))),d=s(()=>l(o("sys.login.smsPlaceholder"))),R=s(()=>l(o("sys.login.mobilePlaceholder"))),F=s(()=>l(o("sys.login.emailPlaceholder"))),y=s(()=>l(o("sys.login.pwdQuestionAnswer"))),P=s(()=>l(o("sys.login.userNamePlaceholder"))),_=async(a,c)=>c?Promise.resolve():Promise.reject(o("sys.login.policyPlaceholder")),f=a=>async(c,t)=>t?t!==a?Promise.reject(o("sys.login.diffPwd")):Promise.resolve():Promise.reject(o("sys.login.passwordPlaceholder"));return{getFormRules:s(()=>{const a=r(n),c=r(i),t=r(d),p=r(R),h=r(F),m=r(y),v=r(P);switch(r(g)){case 1:return{loginCode:a,userName:v,mobile:p,email:h,validCode:t,regValidCode:t,password:c,confirmPassword:[{validator:f(e?.password),trigger:"change"}],policy:[{validator:_,trigger:"change"}]};case 2:return{loginCode:a,validCode:t,fpValidCode:t,password:c,confirmPassword:[{validator:f(e?.password),trigger:"change"}],pwdQuestionAnswer:m,pwdQuestionAnswer2:m,pwdQuestionAnswer3:m};case 3:return{validCode:t,loginValidCode:t,mobile:p};default:return{account:a,password:c}}})}}function l(e){return[{required:!0,message:e,trigger:"change"}]}const E={class:"enter-x mb-3 text-3xl font-bold text-left xl:text-3xl"},A=b({__name:"LoginFormTitle",setup(e){const{t:o}=w(),{getLoginState:n}=I(),i=s(()=>({[u.RESET_PASSWORD]:o("sys.login.forgetFormTitle"),[u.LOGIN]:o("sys.login.signInFormTitle"),[u.REGISTER]:o("sys.login.signUpFormTitle"),[u.MOBILE]:o("sys.login.mobileSignInFormTitle"),[u.QR_CODE]:o("sys.login.qrSignInFormTitle")})[r(n)]);return(d,R)=>(S(),T("h2",E,C(i.value),1))}}),B=Object.freeze(Object.defineProperty({__proto__:null,default:A},Symbol.toStringTag,{value:"Module"}));export{u as L,A as _,N as a,j as b,B as c,I as u};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
.note-card{width:100%;height:100%;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden}.note-card .card-title{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;font-size:14px;font-weight:500;line-height:20px;color:#334155;border-bottom:1px solid #e2e8f0;background:transparent}.note-card .card-title__more{padding:0;font-size:13px}.note-card .card-content{flex:1;min-height:0;padding:16px;overflow:hidden;background:transparent}.note-card .note-overview{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(0,1.6fr);gap:12px;height:100%;min-height:0}.note-card .note-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:10px;min-height:0}.note-card .metric-item,.note-card .note-chart-panel{border-radius:12px;background:#fff;box-shadow:0 8px 24px #94a3b824}.note-card .metric-item{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;padding:8px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.note-card .metric-item--active{box-shadow:0 12px 28px #3b82f62e;outline:1px solid #93c5fd}.note-card .metric-item:hover{transform:translateY(-2px)}.note-card .metric-item__main{display:flex;flex:1;width:100%;min-height:0;gap:8px;padding:6px}.note-card .metric-item__pane{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;background:#fff;box-shadow:0 8px 24px #94a3b824}.note-card .metric-item__value{font-size:28px;font-weight:700;line-height:1;text-align:center}.note-card .metric-item__value--small{font-size:24px}.note-card .metric-item__extra{margin-top:8px;color:#64748b;font-size:12px;line-height:16px;text-align:center}.note-card .metric-item__label{display:flex;align-items:center;justify-content:center;width:calc(100% - 16px);min-height:30px;margin-top:0;margin-left:8px;margin-right:8px;padding:6px 10px;border:1px solid #e2e8f0;color:#475569;font-size:12px;line-height:16px;text-align:center;border-radius:999px;box-sizing:border-box;overflow:hidden;background:#f8fafc;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.note-card .metric-item__label--active{border-color:#bfdbfe;background:#eff6ff!important;color:#3b82f6!important;font-weight:600}.note-card .note-chart-panel{min-width:0;min-height:0;padding:12px}.note-card .note-chart{width:100%;height:100%;min-height:0}html[data-theme=dark] .note-card .card-title{color:#cbd5e1;border-bottom-color:#334155}html[data-theme=dark] .note-card .card-title__more:deep(.el-button){color:#93c5fd}html[data-theme=dark] .note-card .metric-item,html[data-theme=dark] .note-card .note-chart-panel,html[data-theme=dark] .note-card .metric-item__pane{background:linear-gradient(180deg,#141414,#1c1c1c);box-shadow:0 10px 24px #0000003d}html[data-theme=dark] .note-card .metric-item__extra,html[data-theme=dark] .note-card .metric-item__label{color:#94a3b8}html[data-theme=dark] .note-card .metric-item__label{border-color:#334155;background:#141414}html[data-theme=dark] .note-card .metric-item__label--active{border-color:#3b82f666;background:#2563eb24!important;color:#bfdbfe!important}@media(max-width:900px){.note-card .note-overview{grid-template-columns:1fr}.note-card .note-metrics{grid-template-rows:repeat(2,minmax(88px,1fr))}}
|
||||
@@ -0,0 +1 @@
|
||||
import{d as B,u as $,b as A,j as i,m as I,B as V,X as k,ai as j,c as x,o as C,a as r,k as q,q as H,w as K,D as U,F as X,x as J,v as D,y as L,t as w,L as Q,aj as Y}from"./index-BRLZOSuF-1775297478351.js";const{adminPath:F}=$(),Z=()=>B.get({url:F+"/desktop/workbench/getNoteInfo"}),R=N=>B.get({url:F+"/desktop/workbench/getNoteChart",params:N}),ee={class:"card-title"},te={class:"card-content"},ae={class:"note-overview"},oe={class:"note-metrics"},re={class:"metric-item__main"},se={class:"metric-item__pane"},le={class:"metric-item__pane"},ne=["onClick"],ie={class:"note-chart-panel"},ue=A({__name:"NoteInfo",setup(N){const E=Q(),b=i(),f=i(),v=i(!1),p=i([]),s=i([]),c=i("work"),M=I(()=>{const o=["#3B82F6","#10B981","#F97316","#8B5CF6","#EC4899","#06B6D4"];return p.value.map((t,l)=>({key:t.key,label:t.label,color:o[l%o.length],total:Number(t.value01||0),finished:Number(t.value02||0)}))});let n=null,_=null,h=null;async function W(o){c.value=o,await G(),k(()=>{y()})}async function O(){v.value=!0;try{const[o,t]=await Promise.all([Z(),R({type:c.value})]);p.value=o||[],s.value=t||[]}catch{p.value=[],s.value=[]}finally{v.value=!1,k(()=>{y()})}}async function G(){v.value=!0;try{const o={type:c.value},t=await R(o);s.value=t||[]}catch{s.value=[]}finally{v.value=!1}}function P(){E.push("/biz/myNotes/list")}function T(){const o=[{label:"待开始",color:"#F97316",field:"value01"},{label:"进行中",color:"#3B82F6",field:"value02"},{label:"已完成",color:"#10B981",field:"value03"}],t=s.value.map(a=>{const m=a.axisName||"-";return m.endsWith("月")?m:`${m}月`}),l=s.value.map(a=>Number(a.value01||0)),e=s.value.map(a=>Number(a.value02||0)),u=s.value.map(a=>Number(a.value03||0)),d=s.value.map(a=>Number(a.value01||0)+Number(a.value02||0)+Number(a.value03||0)),S=o.map((a,m)=>({name:a.label,type:"bar",stack:"total",barWidth:"24%",emphasis:{focus:"series"},label:{show:!0,position:"inside",formatter:({value:z})=>Number(z)>0?`${z}`:"",color:"#ffffff",fontSize:11},itemStyle:{color:a.color,borderRadius:0},data:[l,e,u][m]||[]}));return S.push({name:"总数",type:"bar",stack:"total",barWidth:"24%",silent:!0,legendHoverLink:!1,itemStyle:{color:"rgba(0,0,0,0)",borderRadius:0},tooltip:{show:!1},label:{show:!0,position:"top",formatter:({dataIndex:a})=>d[a]>0?`${d[a]}`:"",color:"#475569",fontSize:11},data:d.map(()=>0),z:10}),{categories:t,series:S}}function y(){if(!f.value)return;n||(n=Y(f.value));const{categories:o,series:t,title:l}=T(),e=document.documentElement.getAttribute("data-theme")==="dark",u=t.find(d=>d.name==="总数");u?.label&&(u.label.color=e?"#cbd5e1":"#475569"),n.setOption({grid:{left:12,right:12,top:52,bottom:10,containLabel:!0},title:{text:l,left:12,top:6,textStyle:{color:e?"#e2e8f0":"#334155",fontSize:13,fontWeight:600}},tooltip:{trigger:"axis",backgroundColor:e?"rgba(20, 20, 20, 0.96)":"rgba(255, 255, 255, 0.96)",borderColor:e?"rgb(51 65 85)":"rgb(226 232 240)",borderWidth:1,textStyle:{color:e?"#e2e8f0":"#334155"},axisPointer:{type:"shadow"}},legend:{top:6,left:"center",selectedMode:!0,itemGap:16,data:["待开始","进行中","已完成"],textStyle:{color:e?"#e2e8f0":"#475569"}},xAxis:{type:"category",data:o,boundaryGap:["2%","2%"],axisTick:{alignWithLabel:!0},axisLine:{lineStyle:{color:e?"#475569":"#cbd5e1"}},axisLabel:{color:e?"#cbd5e1":"#64748b",margin:8,rotate:30}},yAxis:{type:"value",name:"数量",nameTextStyle:{color:e?"#94a3b8":"#64748b",padding:[0,0,4,0]},splitLine:{lineStyle:{color:e?"rgba(71, 85, 105, 0.35)":"rgba(203, 213, 225, 0.55)"}},axisLabel:{color:e?"#94a3b8":"#64748b"}},series:t})}function g(){n?.resize()}return V(async()=>{await O(),b.value&&(_=new ResizeObserver(()=>{g()}),_.observe(b.value)),window.addEventListener("resize",g),h=new MutationObserver(()=>{k(()=>{y()})}),h.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]})}),j(()=>{_?.disconnect(),h?.disconnect(),window.removeEventListener("resize",g),n?.dispose(),n=null}),(o,t)=>{const l=H("el-button");return C(),x("div",{ref_key:"noteCardRef",ref:b,class:"note-card"},[r("div",ee,[t[1]||(t[1]=r("span",null,"便签信息",-1)),q(l,{class:"card-title__more",link:"",type:"primary",onClick:P},{default:K(()=>[...t[0]||(t[0]=[U("更多",-1)])]),_:1})]),r("div",te,[r("div",ae,[r("div",oe,[(C(!0),x(X,null,J(M.value,e=>(C(),x("div",{key:e.key,class:D(["metric-item",{"metric-item--active":c.value===e.key}])},[r("div",re,[r("div",se,[r("div",{class:"metric-item__value",style:L({color:e.color})},w(e.total),5),t[2]||(t[2]=r("div",{class:"metric-item__extra"},"总数",-1))]),r("div",le,[r("div",{class:"metric-item__value metric-item__value--small",style:L({color:e.color})},w(e.finished),5),t[3]||(t[3]=r("div",{class:"metric-item__extra"},"已完成",-1))])]),r("div",{class:D(["metric-item__label",{"metric-item__label--active":c.value===e.key}]),onClick:u=>W(e.key)},w(e.label),11,ne)],2))),128))]),r("div",ie,[r("div",{ref_key:"chartRef",ref:f,class:"note-chart"},null,512)])])])],512)}}});export{ue as default};
|
||||
@@ -0,0 +1 @@
|
||||
import{b as R,j as s,B as W,a$ as A,c as r,o as d,a as e,k as l,F as D,x as L,v as E,t as n,Z as G,a9 as I,e as O,q as _,w as u,D as j,f as w,b0 as J,G as V,J as X,b1 as Z,b2 as Q,u as Y,X as K}from"./index-BRLZOSuF-1775297478351.js";import{d as ee}from"./sb-adnPBAyt.js";import{f as te,g as ae}from"./myNoticeTodo-CyJx6oWb.js";const oe={class:"notice-card"},le={class:"card-title"},ne={class:"card-tabs"},ie=["onClick"],se={class:"card-content"},ce={key:0,class:"notice-dialog"},de={class:"notice-dialog__header"},re={class:"notice-dialog__title"},_e={class:"notice-dialog__time"},ue={class:"notice-dialog__time-left"},ve={class:"notice-dialog__time-right"},pe={class:"notice-dialog__content-panel"},he=["innerHTML"],me={key:0,class:"notice-dialog__attachments-panel"},fe={class:"notice-dialog__attachments-title"},ge={class:"notice-dialog__attachments-list"},be={class:"notice-dialog__attachment-meta"},we={class:"notice-dialog__attachment-name"},ye={class:"notice-dialog__attachment-actions"},ke={class:"notice-dialog__attachment-size"},De=R({__name:"NoticeInfo",setup(Ne){const z=[{key:"0",label:"未读"},{key:"1",label:"已读"}],p=s("0"),v=s([]),m=s([]),h=s(),y=s(0),f=s(!1),g=s(!1),c=s(null);let b=null;function B(t){U(t.id),c.value=t,g.value=!0}function M(t){return{1:"通知",2:"消息",3:"待办"}[String(t??"")]||"-"}async function F(t){const{ctxAdminPath:o}=Y();await ee({url:o+"/biz/myNoticeTodo/downloadFile",params:t})}function k(){K(()=>{const t=h.value;t&&(y.value=Math.max(t.clientHeight,0))})}function H(t){p.value!==t&&(p.value=t,N())}const N=async()=>{f.value=!0;try{const t={type:"1",ustatus:"1",readFlag:p.value},o=await te(t);m.value=o||[]}catch{m.value=[]}finally{f.value=!1}},U=async t=>{try{const i=await ae({id:t});v.value=i||[]}catch{v.value=[]}};return W(()=>{N(),k(),h.value&&(b=new ResizeObserver(()=>{k()}),b.observe(h.value))}),A(()=>{b?.disconnect()}),(t,o)=>{const i=_("el-table-column"),T=_("el-button"),C=_("el-tooltip"),$=_("el-table"),q=_("el-divider"),P=_("el-dialog"),S=I("loading");return d(),r("div",oe,[e("div",le,[o[1]||(o[1]=e("span",null,"通知消息",-1)),e("div",ne,[(d(),r(D,null,L(z,a=>e("button",{key:a.key,class:E(["tab-item",{active:p.value===a.key}]),onClick:x=>H(a.key)},n(a.label),11,ie)),64))])]),e("div",se,[e("div",{ref_key:"tableWrapRef",ref:h,class:"table-container"},[G((d(),O($,{data:m.value,height:y.value,"show-header":!0,border:!1},{default:u(()=>[l(i,{prop:"title",label:"标题","min-width":"80","show-overflow-tooltip":"true"}),l(i,{prop:"type",label:"类型",width:"60"},{default:u(({row:a})=>[j(n(M(a.type)),1)]),_:1}),l(i,{prop:"createTime",label:"记录时间",width:"150","show-overflow-tooltip":"true"}),l(i,{prop:"datetime",label:"截至时间",width:"150","show-overflow-tooltip":"true"}),l(i,{prop:"createUser",label:"发布人员",width:"120","show-overflow-tooltip":"true"}),l(i,{label:"操作",width:"90",align:"center",fixed:"right"},{default:u(({row:a})=>[l(C,{content:"查看",placement:"top","show-after":200},{default:u(()=>[l(T,{class:"notice-action-button",link:"",type:"primary",icon:w(J),onClick:x=>B(a)},null,8,["icon","onClick"])]),_:2},1024)]),_:1})]),_:1},8,["data","height"])),[[S,f.value]])],512)]),l(P,{modelValue:g.value,"onUpdate:modelValue":o[0]||(o[0]=a=>g.value=a),class:"notice-info-dialog",title:"通知详情",width:"50%","destroy-on-close":""},{default:u(()=>[c.value?(d(),r("div",ce,[e("div",de,[e("div",re,n(c.value.title),1),o[2]||(o[2]=e("div",{class:"notice-dialog__header-divider"},null,-1)),e("div",_e,[e("div",ue,[e("span",null,"发布时间:"+n(c.value.createTime),1),e("span",null,"发布人员:"+n(c.value.createUser),1)]),e("div",ve,"截至时间:"+n(c.value.datetime),1)])]),l(q,{class:"notice-dialog__divider"}),e("div",pe,[e("div",{class:"notice-dialog__content",innerHTML:c.value.description},null,8,he)]),v.value?.length?(d(),r("div",me,[e("div",fe,"附件区域("+n(v.value?.length)+")",1),e("div",ge,[(d(!0),r(D,null,L(v.value,a=>(d(),r("div",{key:a,class:"notice-dialog__attachment-item"},[e("div",be,[l(w(X),{icon:a.fileIcon,class:"icon-img",size:"24"},null,8,["icon"]),l(C,{content:a.fileName,placement:"top","show-after":200},{default:u(()=>[e("span",we,n(a.fileName),1)]),_:2},1032,["content"])]),e("div",ye,[e("span",ke,n(a.fileSize),1),l(T,{type:"primary",link:"",icon:w(Q),class:"notice-dialog__attachment-download",onClick:Z(x=>F(a),["stop"])},null,8,["icon","onClick"])])]))),128))])])):V("",!0)])):V("",!0)]),_:1},8,["modelValue"])])}}});export{De as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{d as l,u as m,b as _,T as w,J as y,i as C,L as g,bq as I,j as O,B as b,a3 as T,_ as k,q as i,e as h,o as v,w as d,k as f}from"./index-BRLZOSuF-1775297478351.js";import{B}from"./index-HHcosjnG.js";const{adminPath:c}=m(),D=n=>l.post({url:c+"/sys/online/listData",params:n}),q=n=>l.post({url:c+"/sys/online/tickOut",params:n}),$=()=>l.post({url:c+"/sys/online/count?__notUpdateSession=true"},{errorMessageMode:"none"}),M=_({name:"JeeSiteOnlineCount",components:{Icon:y,Tooltip:w,Badge:B},setup(){const{t:n}=C(),{push:r}=g(),{hasPermission:u}=I(),{createConfirm:p}=T(),t=O(0);async function s(){const e=await $();if(e&&e.message){(e.result=="false"||e.result=="login")&&(window.rocInt&&clearInterval(window.rocInt),window.ppmInt&&clearInterval(window.ppmInt)),p({title:n("sys.api.errorTip"),content:e.message,iconType:"info",onOk(){location.reload()}});return}let o=Number(e||0);t.value=o!==o?0:o}b(async()=>{await s(),window.rocInt=setInterval(s,18e4)});function a(){u("sys:online:view")&&r("/sys/online/list")}return{t:n,count:t,handleToOnlineList:a}}});function S(n,r,u,p,t,s){const a=i("Icon"),e=i("Badge"),o=i("Tooltip");return v(),h(o,{title:n.t("在线用户"),placement:"bottom",mouseEnterDelay:.5,onClick:n.handleToOnlineList},{default:d(()=>[f(e,{count:n.count,offset:[-6,11],overflowCount:99,"number-style":{backgroundColor:"#00a65a"}},{default:d(()=>[f(a,{icon:"i-simple-line-icons:people"})]),_:1},8,["count"])]),_:1},8,["title","onClick"])}const L=k(M,[["render",S]]),J=Object.freeze(Object.defineProperty({__proto__:null,default:L},Symbol.toStringTag,{value:"Module"}));export{J as O,q as a,D as o};
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{b as Z,j as u,br as A,B as G,c as z,o as d,a as c,k as o,q as s,b1 as H,w as a,F as B,x,e as T,f as P,fQ as J,D as f,at as K,Z as W,a9 as X,t as k}from"./index-BRLZOSuF-1775297478351.js";import{e as Y}from"./myProjectInfo-DRQmEfFh.js";import{a as L}from"./account-DFLpYKDc.js";const $={class:"oper-log-card"},ee={class:"card-content"},te={class:"query-panel"},oe={class:"table-panel"},ae={class:"table-panel__body"},le={class:"pagination-panel"},ue=Z({__name:"ProjectInfo",setup(re){const j=u([]),_=u([]),b=u([]),S=u([]),V=u(!1),n=A({projectName:"",projectType:"",projectStatus:""}),p=u(1),g=u(20),D=u(0),q=()=>{p.value=1,m()},U=()=>{Object.assign(n,{projectName:"",projectType:"",projectStatus:""}),p.value=1,m()},F=l=>{g.value=l,p.value=1,m()},R=l=>{p.value=l,m()};async function I(){try{j.value=await L({dictType:"biz_priority"}),_.value=await L({dictType:"project_type"}),b.value=await L({dictType:"project_status"})}catch{j.value=[],_.value=[],b.value=[]}}function N(l,e){return e?l?.find(i=>i.dictValue===e)?.dictLabelRaw||e:"-"}async function m(){V.value=!0;try{const l={...n,pageNum:p.value,pageSize:g.value},e=await Y(l);D.value=e?.total||0,S.value=e?.list||[]}catch{S.value=[],D.value=0}finally{V.value=!1}}G(()=>{m(),I()});function M({columns:l,data:e}){return l.map((w,i)=>i===0?"合计":w.property!=="budget"?"":e.reduce((v,h)=>{const y=Number(h.budget||0);return Number.isFinite(y)?v+y:v},0).toLocaleString("zh-CN"))}return(l,e)=>{const w=s("el-input"),i=s("el-form-item"),C=s("el-option"),v=s("el-select"),h=s("el-button"),y=s("el-form"),r=s("el-table-column"),E=s("el-table"),O=s("el-pagination"),Q=X("loading");return d(),z("div",$,[e[8]||(e[8]=c("div",{class:"card-title"},[c("span",null,"项目信息")],-1)),c("div",ee,[c("div",te,[o(y,{model:n,inline:"",class:"query-form",onSubmit:e[3]||(e[3]=H(()=>{},["prevent"]))},{default:a(()=>[o(i,{label:"项目名称"},{default:a(()=>[o(w,{modelValue:n.projectName,"onUpdate:modelValue":e[0]||(e[0]=t=>n.projectName=t),placeholder:"请输入项目名称",clearable:""},null,8,["modelValue"])]),_:1}),o(i,{label:"项目类型"},{default:a(()=>[o(v,{modelValue:n.projectType,"onUpdate:modelValue":e[1]||(e[1]=t=>n.projectType=t),placeholder:"请选择项目类型",clearable:""},{default:a(()=>[(d(!0),z(B,null,x(_.value,t=>(d(),T(C,{key:t.dictValue,label:t.dictLabelRaw,value:t.dictValue},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(i,{label:"项目状态"},{default:a(()=>[o(v,{modelValue:n.projectStatus,"onUpdate:modelValue":e[2]||(e[2]=t=>n.projectStatus=t),placeholder:"请选择项目状态",clearable:""},{default:a(()=>[(d(!0),z(B,null,x(b.value,t=>(d(),T(C,{key:t.dictValue,label:t.dictLabelRaw,value:t.dictValue},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(i,{class:"query-form__actions"},{default:a(()=>[o(h,{type:"primary",icon:P(J),onClick:q},{default:a(()=>[...e[6]||(e[6]=[f("查询",-1)])]),_:1},8,["icon"]),o(h,{icon:P(K),onClick:U},{default:a(()=>[...e[7]||(e[7]=[f("重置",-1)])]),_:1},8,["icon"])]),_:1})]),_:1},8,["model"])]),c("div",oe,[c("div",ae,[W((d(),T(E,{data:S.value,height:"100%",border:!1,"show-header":!0,"show-summary":"","summary-method":M},{default:a(()=>[o(r,{prop:"projectCode",label:"项目编码","min-width":"100","show-overflow-tooltip":""}),o(r,{prop:"projectName",label:"项目名称","min-width":"120","show-overflow-tooltip":""}),o(r,{prop:"projectType",label:"项目类型",width:"100","show-overflow-tooltip":""},{default:a(({row:t})=>[f(k(N(_.value,t.projectType)),1)]),_:1}),o(r,{prop:"priority",label:"项目级别",width:"100","show-overflow-tooltip":""},{default:a(({row:t})=>[f(k(N(j.value,t.priority)),1)]),_:1}),o(r,{prop:"projectStatus",label:"项目状态",width:"100"},{default:a(({row:t})=>[f(k(N(b.value,t.projectStatus)),1)]),_:1}),o(r,{prop:"treeName",label:"项目区域","min-width":"120","show-overflow-tooltip":""}),o(r,{prop:"personName",label:"项目人员","min-width":"100","show-overflow-tooltip":""}),o(r,{prop:"startDate",label:"开始日期",width:"150","show-overflow-tooltip":""}),o(r,{prop:"endDate",label:"结束日期",width:"150","show-overflow-tooltip":""}),o(r,{prop:"budget",label:"项目预算(元)",width:"120","show-overflow-tooltip":""})]),_:1},8,["data"])),[[Q,V.value]])]),c("div",le,[o(O,{"current-page":p.value,"onUpdate:currentPage":e[4]||(e[4]=t=>p.value=t),"page-size":g.value,"onUpdate:pageSize":e[5]||(e[5]=t=>g.value=t),total:D.value,"page-sizes":[10,20,50,99],layout:"total, sizes, prev, pager, next, jumper",onSizeChange:F,onCurrentChange:R,background:""},null,8,["current-page","page-size","total"])])])])])}}});export{ue as default};
|
||||
@@ -0,0 +1 @@
|
||||
import{b as L,j as i,B as z,X as f,ai as R,q as g,c as S,o as A,a as n,k as y,w as B,f as E,at as O,aj as N}from"./index-BRLZOSuF-1775297478351.js";import{P}from"./myAnalysis-C35jL5gK.js";const F={class:"card-title"},T={class:"card-content"},V={class:"province-chart-panel"},D=L({__name:"ProvinceInfo",setup(W){const a=i([]),s=i(!1),c=i(),u=i();async function m(){s.value=!0;try{const e=await P();a.value=e||[],f(()=>{v()})}catch{a.value=[],f(()=>{v()})}finally{s.value=!1}}let r=null,d=null,b=null;function v(){if(!u.value)return;r||(r=N(u.value));const e=document.documentElement.getAttribute("data-theme")==="dark",l=a.value.length>10?45:a.value.length>6?30:0;r.setOption({grid:{left:12,right:12,top:36,bottom:8,containLabel:!0},tooltip:{trigger:"axis",axisPointer:{type:"shadow"},backgroundColor:e?"rgba(20, 20, 20, 0.96)":"rgba(255, 255, 255, 0.96)",borderColor:e?"rgb(51 65 85)":"rgb(226 232 240)",borderWidth:1,textStyle:{color:e?"#e2e8f0":"#334155"},formatter:t=>{const o=Array.isArray(t)?t[0]:t,x=o?.axisValue||o?.name||"-",h=o?.value??0,_=a.value.reduce((w,C)=>w+Number(C.value||0),0),k=_>0?(Number(h)/_*100).toFixed(2):"0.00";return`区域:${x}<br/>数量:${h}<br/>占比:${k}%`}},xAxis:{type:"category",data:a.value.map(t=>t.label||"-"),axisTick:{alignWithLabel:!0},axisLine:{lineStyle:{color:e?"#475569":"#cbd5e1"}},axisLabel:{color:e?"#cbd5e1":"#64748b",margin:10,rotate:l}},yAxis:{type:"value",name:"数量",nameTextStyle:{color:e?"#94a3b8":"#64748b",padding:[0,0,4,0]},splitLine:{lineStyle:{color:e?"rgba(71, 85, 105, 0.35)":"rgba(203, 213, 225, 0.55)"}},axisLabel:{color:e?"#94a3b8":"#64748b"}},series:[{type:"bar",barWidth:"24%",data:a.value.map(t=>({value:t.value,itemStyle:{color:t.color||"#3B82F6",borderRadius:[6,6,0,0]}})),label:{show:!0,position:"top",color:e?"#cbd5e1":"#475569",fontSize:11}}]})}function p(){r?.resize()}return z(()=>{m(),c.value&&(d=new ResizeObserver(()=>{p()}),d.observe(c.value)),window.addEventListener("resize",p),b=new MutationObserver(()=>{f(()=>{v()})}),b.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]})}),R(()=>{d?.disconnect(),b?.disconnect(),window.removeEventListener("resize",p),r?.dispose(),r=null}),(e,l)=>{const t=g("el-button"),o=g("el-tooltip");return A(),S("div",{ref_key:"provinceCardRef",ref:c,class:"province-card"},[n("div",F,[l[0]||(l[0]=n("span",null,"社区分布",-1)),y(o,{content:"刷新",placement:"top","show-after":200},{default:B(()=>[y(t,{class:"card-title__refresh",link:"",type:"primary",icon:E(O),loading:s.value,onClick:m},null,8,["icon","loading"])]),_:1})]),n("div",T,[n("div",V,[n("div",{ref_key:"chartRef",ref:u,class:"province-chart"},null,512)])])],512)}}});export{D as default};
|
||||
@@ -0,0 +1 @@
|
||||
.province-card{width:100%;height:100%;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;background:#fff}.province-card .card-title{display:flex;align-items:center;justify-content:space-between;height:37px;padding:8px 16px;box-sizing:border-box;flex-shrink:0;font-size:14px;font-weight:500;line-height:20px;color:#334155;border-bottom:1px solid #e2e8f0;background:transparent}.province-card .card-title__refresh{padding:0;font-size:16px}.province-card .card-content{flex:1;min-height:0;padding:8px 12px 12px;overflow:hidden;background:transparent}.province-card .province-chart-panel{width:100%;height:100%;min-height:0;padding:12px;border-radius:10px;background:#fff;box-shadow:0 8px 24px #94a3b824;box-sizing:border-box}.province-card .province-chart{width:100%;height:100%;min-height:0}html[data-theme=dark] .province-card{background:#141414}html[data-theme=dark] .province-card .card-title{color:#cbd5e1;border-bottom-color:#334155}html[data-theme=dark] .province-card .card-title__refresh:deep(.el-icon){color:#93c5fd}html[data-theme=dark] .province-card .province-chart-panel{background:linear-gradient(180deg,#141414,#1c1c1c);box-shadow:0 10px 24px #0000003d}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
.quick-login-card{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#fff}.quick-login-card .card-title{display:flex;align-items:center;justify-content:space-between;height:var(--analysis-card-title-height, 37px);padding:var(--analysis-card-title-padding, 8px 16px);box-sizing:border-box;flex-shrink:0;font-size:14px;font-weight:500;line-height:20px;color:#334155;border-bottom:1px solid #e2e8f0;background:transparent}.quick-login-card .card-content{flex:1;min-height:0;padding:var(--analysis-card-content-padding, 8px 12px 12px);overflow:hidden;background:transparent;display:flex;align-items:stretch;gap:var(--analysis-card-item-gap, 8px);height:100%}.quick-login-card .quick-login-nav{flex-shrink:0;width:24px;height:100%;display:inline-flex;align-items:center;justify-content:center}.quick-login-card .quick-login-viewport{flex:1;min-width:0;height:100%;display:flex;align-items:stretch;overflow:hidden}.quick-login-card .quick-login-track{display:flex;gap:var(--analysis-card-item-gap, 8px);align-items:stretch;height:100%;min-height:0;transition:transform .45s ease;will-change:transform}.quick-login-card .quick-login-item{flex:0 0 136px;width:136px;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;min-height:0;height:100%;padding:8px;border:1px solid #e2e8f0;border-radius:var(--analysis-card-radius, 10px);background:#fff;box-shadow:0 8px 24px #94a3b824;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.quick-login-card .quick-login-item:hover{transform:translateY(-2px);border-color:#93c5fd;box-shadow:0 12px 28px #60a5fa33}.quick-login-card .quick-login-item:hover .quick-login-item__image-wrap{border-color:#93c5fd;box-shadow:0 8px 18px #60a5fa33}.quick-login-card .quick-login-item__image-wrap{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;overflow:hidden;border-radius:8px;background:#f8fafc;border:1px solid #bfdbfe;box-shadow:0 6px 14px #60a5fa1f}.quick-login-card .quick-login-item__image{width:100%;height:100%;object-fit:cover;border-radius:8px}.quick-login-card .quick-login-item__name{display:flex;align-items:center;justify-content:flex-start;flex:1;min-width:0;min-height:100%;color:#334155;font-size:12px;line-height:16px;text-align:left;word-break:break-word}html[data-theme=dark] .quick-login-card{background:#141414}html[data-theme=dark] .quick-login-card .card-title{color:#cbd5e1;border-bottom-color:#334155}html[data-theme=dark] .quick-login-card .quick-login-item{border-color:#334155;background:#141414;box-shadow:0 10px 24px #0000003d}html[data-theme=dark] .quick-login-card .quick-login-item:hover{border-color:#60a5fa;box-shadow:0 14px 32px #2563eb38}html[data-theme=dark] .quick-login-card .quick-login-item__name{color:#e2e8f0}html[data-theme=dark] .quick-login-card .quick-login-item__image-wrap{background:#1e293b;border-color:#3b82f659;box-shadow:0 6px 14px #2563eb29}@media(max-width:768px){.quick-login-card .card-content{padding:var(--analysis-card-content-padding, 8px 12px 12px)}.quick-login-card .quick-login-item{flex-basis:120px;width:120px}.quick-login-card .quick-login-nav{width:22px;height:100%}}
|
||||
@@ -0,0 +1 @@
|
||||
import{b as M,j as i,m as k,B as W,X as w,a$ as z,c as p,o as g,a as n,k as x,q as A,f as C,b3 as O,y as P,F as R,x as T,t as V,b4 as $}from"./index-BRLZOSuF-1775297478351.js";import{e as D}from"./myQuickLogin-BrWMD070.js";const F={class:"quick-login-card"},Q={class:"card-content"},U=["onClick"],X={class:"quick-login-item__image-wrap"},j=["src","alt"],E={class:"quick-login-item__name"},G=136,I=8,Z=M({__name:"QuickLogin",setup(H){const s=i([]),y=i(!1),b=G+I,v=i(1),e=i(0),c=i();let d=null,u=null;const o=k(()=>s.value.length>v.value),r=k(()=>{const t=s.value.length-v.value;return t>0?t:0}),L=k(()=>e.value*b);function f(){const t=c.value?.clientWidth||0;if(!t)return;const l=Math.max(1,Math.floor((t+I)/b));v.value=l,e.value>r.value&&(e.value=r.value)}function h(){o.value&&(e.value=e.value>=r.value?0:e.value+1)}function N(){o.value&&(e.value=e.value<=0?r.value:e.value-1)}function m(){o.value&&(_(),u=setInterval(()=>{h()},2600))}function _(){u&&(clearInterval(u),u=null)}function S(t){window.open(t.systemUrl,"_blank")}async function B(){y.value=!0;try{const l=await D({ustatus:"1",systemType:"2"});s.value=l||[],e.value=0,w(()=>{f(),m()})}catch{s.value=[]}finally{y.value=!1}}return W(()=>{B(),w(()=>{f(),m()}),c.value&&(d=new ResizeObserver(()=>{f()}),d.observe(c.value))}),z(()=>{d?.disconnect(),_()}),(t,l)=>{const q=A("el-button");return g(),p("div",F,[l[0]||(l[0]=n("div",{class:"card-title"},[n("span",null,"快捷登录")],-1)),n("div",Q,[x(q,{class:"quick-login-nav quick-login-nav--left",circle:"",link:"",type:"primary",icon:C(O),disabled:!o.value,onClick:N},null,8,["icon","disabled"]),n("div",{ref_key:"viewportRef",ref:c,class:"quick-login-viewport",onMouseenter:_,onMouseleave:m},[n("div",{class:"quick-login-track",style:P({transform:`translateX(-${L.value}px)`})},[(g(!0),p(R,null,T(s.value,a=>(g(),p("button",{key:a.quickId||a.systemName,class:"quick-login-item",type:"button",onClick:J=>S(a)},[n("div",X,[n("img",{class:"quick-login-item__image",src:a.systemIcon,alt:a.systemName},null,8,j)]),n("div",E,V(a.systemName),1)],8,U))),128))],4)],544),x(q,{class:"quick-login-nav quick-login-nav--right",circle:"",link:"",type:"primary",icon:C($),disabled:!o.value,onClick:h},null,8,["icon","disabled"])])])}}});export{Z as default};
|
||||
@@ -0,0 +1 @@
|
||||
import{b as c,aa as C,i as g,j as i,c as P,o as v,k as m,f as l,w as y}from"./index-BRLZOSuF-1775297478351.js";import{a as F,b as L}from"./formGroup-BS-9qm03.js";import{e as I}from"./role-1Qb-7aMA.js";import R from"./CustomDataScope-Jku5j38J.js";import"./index-By3U8KVx.js";import"./account-DFLpYKDc.js";import"./index-CiQOAmGE.js";import"./index-HHcosjnG.js";import"./redshift-CC4Ds1Bk.js";import"./typespec-CVzloLly.js";import"./sql-DiFTSuVq.js";import"./formItem-9bQod6RV.js";import"./mips-98dl4GSD.js";import"./dayjs-DLosx6bn.js";import"./index-DIJjAvRv.js";import"./index-CiL_w4Vw.js";import"./WorkbenchHeader-DLmnKCUw.js";import"./datePicker-BwizO_EZ.js";import"./index-DN3n5Bx7.js";import"./index-k8EE2qLa.js";import"./index-G1HvrRWr.js";import"./index-B7dHRAHV.js";import"./uploadImage-CFYO5TZM.js";import"./uploadFile-C0VCSXjO.js";import"./sb-adnPBAyt.js";import"./col-7QJHwc-2.js";import"./row-CoF0dbW4.js";import"./index-y7ZRJF0h.js";import"./useContentViewHeight-Bggdxgev.js";import"./Tree.vue_vue_type_style_index_0_lang-Cc3_yt3U.js";const T={class:"pt-2"},k=c({name:"ViewsSysRoleAuthDataScope"}),me=c({...k,props:{menuDataScope:C.bool},setup(n,{expose:d}){const t=n,{t:e}=g("sys.role"),s=i({}),p=i({}),r=i(),u=[{label:e("菜单名称"),field:"menuName",component:"Input",componentProps:{disabled:!0},ifShow:()=>!!t.menuDataScope},{label:e("权限标识"),field:"permission",component:"Input",componentProps:{disabled:!0},ifShow:()=>!!t.menuDataScope},{label:e("角色名称"),field:"roleName",component:"Input",componentProps:{disabled:!0},ifShow:()=>!t.menuDataScope},{label:e("角色编码"),field:"roleCode",component:"Input",componentProps:{disabled:!0},ifShow:()=>!t.menuDataScope},{label:e("数据范围"),field:"dataScope",helpMessage:e("指定数据权限范围类型,多个角色同时指定,之间为或者关系"),component:"RadioGroup",componentProps:{dictType:"sys_role_data_scope",allowClear:!0},colProps:{md:24,lg:24}},{label:e("业务范围"),field:"bizScope",helpMessage:e("在 addFilter 权限过滤的时候指定适应的业务范围,不指定代表所有生效,如:有的功能看本部门,有的功能看本公司;新的业务范围从字典 sys_role_biz_scope 类型添加。"),component:"Select",componentProps:{dictType:"sys_role_biz_scope",allowClear:!0,mode:"multiple"},colProps:{md:24,lg:24},ifShow:()=>!t.menuDataScope},{label:e("授权数据权限"),field:"authDataScopeInfo",component:"FormGroup",colProps:{md:24,lg:24},show:({values:o})=>o.dataScope==="2"},{field:"roleDataScopeList",component:"Input",colProps:{md:24,lg:24},slot:"dataScopeTrees",show:({values:o})=>o.dataScope==="2"}],[S,{resetFields:f,setFieldsValue:_,getFieldsValue:x,validate:D}]=F({labelWidth:120,schemas:u,baseColProps:{md:24,lg:12}});async function b(o,a){await f(),s.value=o,await _(s.value),a?p.value={dataScopes:a.dataScopes||[],moduleCodes:a.moduleCodes||[],dataScopeList:t.menuDataScope?[]:(a.roleDataScopeList||[]).filter(w=>w.menuCode==="0"),ctrlPermi:a.ctrlPermi||"2"}:(p.value.menuCode=o.menuCode||"0",p.value.dataScopeList=o.roleDataScopeList||[]),await r.value?.loadDataScopeList(p.value)}async function h(){return{...await D(),menuCode:s.value.menuCode,roleDataScopeList:r.value?.getDataScopeList()}}return d({loadDataScopeFormData:b,getDataScopeFormData:h}),(o,a)=>(v(),P("div",T,[m(l(L),{onRegister:l(S)},{dataScopeTrees:y(()=>[m(R,{ref_key:"customDataScopeRef",ref:r,api:l(I)},null,8,["api"])]),_:1},8,["onRegister"])]))}});export{me as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
.jeesite-setting-select-item{display:flex;justify-content:space-between;margin:16px 0;color:#000000e0}.jeesite-setting-select-item-select{width:126px}
|
||||
@@ -0,0 +1 @@
|
||||
import{b as s,S as a,p,m,_ as l,q as d,c,o as u,a as f,k as g,t as b,s as C,v as S}from"./index-BRLZOSuF-1775297478351.js";import{b as y}from"./index-B3ZNeyI7.js";import"./index-ClX-lDht.js";import"./index-k8EE2qLa.js";import"./index-G1HvrRWr.js";import"./ErrorAction-EvBh0byA.js";import"./redshift-CC4Ds1Bk.js";import"./index-HHcosjnG.js";import"./typespec-CVzloLly.js";import"./sql-DiFTSuVq.js";import"./formItem-9bQod6RV.js";import"./formGroup-BS-9qm03.js";import"./index-By3U8KVx.js";import"./account-DFLpYKDc.js";import"./index-CiQOAmGE.js";import"./mips-98dl4GSD.js";import"./dayjs-DLosx6bn.js";import"./index-DIJjAvRv.js";import"./index-CiL_w4Vw.js";import"./WorkbenchHeader-DLmnKCUw.js";import"./datePicker-BwizO_EZ.js";import"./index-DN3n5Bx7.js";import"./index-B7dHRAHV.js";import"./uploadImage-CFYO5TZM.js";import"./uploadFile-C0VCSXjO.js";import"./sb-adnPBAyt.js";import"./col-7QJHwc-2.js";import"./row-CoF0dbW4.js";import"./index-y7ZRJF0h.js";import"./useContentViewHeight-Bggdxgev.js";import"./index-BVLeRLLr.js";import"./FrameSimple-BNF3p-7Y.js";import"./index-CBlVRlqP.js";const h=s({name:"SelectItem",components:{Select:a},props:{event:{type:Number},disabled:{type:Boolean},title:{type:String},def:{type:[String,Number]},initValue:{type:[String,Number]},options:{type:Array,default:()=>[]}},setup(e){const{prefixCls:t}=p("setting-select-item"),o=m(()=>e.def?{value:e.def,defaultValue:e.initValue||e.def}:{});function i(r){e.event&&y(e.event,r)}return{prefixCls:t,handleChange:i,getBindValue:o}}});function v(e,t,o,i,r,V){const n=d("Select");return u(),c("div",{class:S(e.prefixCls)},[f("span",null,b(e.title),1),g(n,C(e.getBindValue,{class:`${e.prefixCls}-select`,onChange:e.handleChange,disabled:e.disabled,size:"small",options:e.options}),null,16,["class","onChange","disabled","options"])],2)}const oe=l(h,[["render",v]]);export{oe as default};
|
||||
@@ -0,0 +1 @@
|
||||
.jeesite-st-login{position:fixed;z-index:9999999;width:100%;height:100%;background:#fff}
|
||||
@@ -0,0 +1 @@
|
||||
import{b as m,p as a,ak as n,bc as p,a1 as u,j as c,B as l,a$ as d,e as f,o as _,w as C,Z as g,a as B,v as S,f as v,k,$ as M,bd as b,be as h}from"./index-BRLZOSuF-1775297478351.js";import w from"./Login-Bhx-7hLk.js";import"./LoginForm-iawXFK1F.js";import"./LoginFormTitle-CYfZMbiW.js";import"./mips-98dl4GSD.js";import"./formItem-9bQod6RV.js";import"./typespec-CVzloLly.js";import"./redshift-CC4Ds1Bk.js";import"./sql-DiFTSuVq.js";import"./index-DIJjAvRv.js";import"./row-CoF0dbW4.js";import"./col-7QJHwc-2.js";import"./MobileForm-4hmLPxWf.js";import"./account-DFLpYKDc.js";import"./formGroup-BS-9qm03.js";import"./index-By3U8KVx.js";import"./index-CiQOAmGE.js";import"./index-HHcosjnG.js";import"./dayjs-DLosx6bn.js";import"./index-CiL_w4Vw.js";import"./WorkbenchHeader-DLmnKCUw.js";import"./datePicker-BwizO_EZ.js";import"./index-DN3n5Bx7.js";import"./index-k8EE2qLa.js";import"./index-G1HvrRWr.js";import"./index-B7dHRAHV.js";import"./uploadImage-CFYO5TZM.js";import"./uploadFile-C0VCSXjO.js";import"./sb-adnPBAyt.js";import"./index-y7ZRJF0h.js";import"./useContentViewHeight-Bggdxgev.js";const mo=m({__name:"SessionTimeoutLogin",setup(x){const{prefixCls:t}=a("st-login"),e=n(),r=p(),s=u(),o=c(0),i=()=>s.getProjectConfig.permissionMode===h.BACK;return l(()=>{o.value=e.getUserInfo?.userCode}),d(()=>{(o.value&&o.value!==e.getUserInfo.userCode||i()&&r.getLastBuildMenuTime===0)&&document.location.reload()}),(T,U)=>(_(),f(b,null,{default:C(()=>[g(B("div",{class:S(v(t))},[k(w,{sessionTimeout:""})],2),[[M,!0]])]),_:1}))}});export{mo as default};
|
||||
@@ -0,0 +1 @@
|
||||
.jeesite-setting-footer{display:flex;flex-direction:column;align-items:center}
|
||||
@@ -0,0 +1 @@
|
||||
import{k as s,a0 as b,b as h,p as v,i as _,a1 as S,a2 as k,f as m,a3 as M,a4 as d,a5 as P,a6 as R,a7 as j,_ as H,q as l,c as V,o as w,w as f,D as g,t as y,v as z}from"./index-BRLZOSuF-1775297478351.js";import{R as A}from"./formGroup-BS-9qm03.js";import"./index-By3U8KVx.js";import"./account-DFLpYKDc.js";import"./index-CiQOAmGE.js";import"./index-HHcosjnG.js";import"./redshift-CC4Ds1Bk.js";import"./typespec-CVzloLly.js";import"./sql-DiFTSuVq.js";import"./formItem-9bQod6RV.js";import"./mips-98dl4GSD.js";import"./dayjs-DLosx6bn.js";import"./index-DIJjAvRv.js";import"./index-CiL_w4Vw.js";import"./WorkbenchHeader-DLmnKCUw.js";import"./datePicker-BwizO_EZ.js";import"./index-DN3n5Bx7.js";import"./index-k8EE2qLa.js";import"./index-G1HvrRWr.js";import"./index-B7dHRAHV.js";import"./uploadImage-CFYO5TZM.js";import"./uploadFile-C0VCSXjO.js";import"./sb-adnPBAyt.js";import"./col-7QJHwc-2.js";import"./row-CoF0dbW4.js";import"./index-y7ZRJF0h.js";import"./useContentViewHeight-Bggdxgev.js";var B={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"}}]},name:"copy",theme:"outlined"};function C(t){for(var e=1;e<arguments.length;e++){var o=arguments[e]!=null?Object(arguments[e]):{},r=Object.keys(o);typeof Object.getOwnPropertySymbols=="function"&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(n){return Object.getOwnPropertyDescriptor(o,n).enumerable}))),r.forEach(function(n){$(t,n,o[n])})}return t}function $(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}var p=function(e,o){var r=C({},e,o.attrs);return s(b,C({},r,{icon:B}),null)};p.displayName="CopyOutlined";p.inheritAttrs=!1;const D=h({name:"SettingFooter",components:{CopyOutlined:p,RedoOutlined:A},setup(){const{prefixCls:t}=v("setting-footer"),{t:e}=_(),{createSuccessModal:o,createMessage:r}=M(),n=S();function u(){const{isSuccessRef:a}=k(JSON.stringify(m(n.getProjectConfig),null,2));m(a)&&o({title:e("layout.setting.operatingTitle"),content:e("layout.setting.operatingContent")})}function c(){try{n.setProjectConfig(d);const{colorWeak:a,grayMode:O}=d;P(a),R(O),r.success(e("layout.setting.resetSuccess"))}catch(a){r.error(a)}location.reload()}function i(){j.clearAll(!0),location.reload()}return{prefixCls:t,t:e,handleCopy:u,handleResetSetting:c,handleClearAndRedo:i}}});function N(t,e,o,r,n,u){const c=l("CopyOutlined"),i=l("a-button"),a=l("RedoOutlined");return w(),V("div",{class:z(t.prefixCls)},[s(i,{type:"primary",block:"",onClick:t.handleCopy},{default:f(()=>[s(c,{class:"mr-2"}),g(" "+y(t.t("layout.setting.copyBtn")),1)]),_:1},8,["onClick"]),s(i,{color:"error",block:"",onClick:t.handleClearAndRedo,class:"mb-2 mt-3"},{default:f(()=>[s(a,{class:"mr-2"}),g(" "+y(t.t("layout.setting.clearBtn")),1)]),_:1},8,["onClick"])],2)}const ut=H(D,[["render",N]]);export{ut as default};
|
||||
@@ -0,0 +1 @@
|
||||
import{bi as c,bj as S,bk as g,b as d,i as v,j as x,c as F,o as w,k as p,a as I,f as m}from"./index-BRLZOSuF-1775297478351.js";import{s as l,f as q,a as y,b as D}from"./formGroup-BS-9qm03.js";import{b as P}from"./formItem-9bQod6RV.js";import{A}from"./dayjs-DLosx6bn.js";import"./index-By3U8KVx.js";import"./account-DFLpYKDc.js";import"./index-CiQOAmGE.js";import"./index-HHcosjnG.js";import"./redshift-CC4Ds1Bk.js";import"./typespec-CVzloLly.js";import"./sql-DiFTSuVq.js";import"./mips-98dl4GSD.js";import"./index-DIJjAvRv.js";import"./index-DN3n5Bx7.js";import"./index-k8EE2qLa.js";import"./index-G1HvrRWr.js";import"./index-B7dHRAHV.js";import"./uploadImage-CFYO5TZM.js";import"./uploadFile-C0VCSXjO.js";import"./WorkbenchHeader-DLmnKCUw.js";import"./sb-adnPBAyt.js";import"./index-CiL_w4Vw.js";import"./datePicker-BwizO_EZ.js";import"./col-7QJHwc-2.js";import"./row-CoF0dbW4.js";import"./index-y7ZRJF0h.js";import"./useContentViewHeight-Bggdxgev.js";function V(e,t){for(var o=e.length;o--&&c(t,e[o],0)>-1;);return o}function W(e,t){for(var o=-1,r=e.length;++o<r&&c(t,e[o],0)>-1;);return o}function k(e,t,o){if(e=S(e),e&&t===void 0)return P(e);if(!e||!(t=g(t)))return e;var r=l(e),s=l(t),n=W(r,s),i=V(r,s)+1;return q(r,n,i).join("")}const C={class:"pt-2"},R={class:"ml-5 mt-2"},T=d({name:"ViewsSysRoleAuthDataScope"}),le=d({...T,setup(e,{expose:t}){const{t:o}=v("sys.role"),r=x({}),s=[{label:o("菜单名称"),field:"menuName",component:"Input",componentProps:{disabled:!0}},{label:o("权限标识"),field:"permission",component:"Input",componentProps:{disabled:!0}},{label:o("SQL片段"),field:"authDataScopeSql",component:"FormGroup",colProps:{md:24,lg:24}},{field:"sqlWhere",component:"InputTextArea",componentProps:{rows:8},colProps:{md:24,lg:24}}],[n,{resetFields:i,setFieldsValue:u,getFieldsValue:j,validate:f}]=y({labelWidth:120,schemas:s,baseColProps:{md:24,lg:12}});async function h(a,_){await i(),r.value=a,await u(r.value)}async function b(){const a={...await f(),menuCode:r.value.menuCode};return a.sqlWhere&&(a.sqlWhere=k(a.sqlWhere)),a}return t({loadDataScopeFormData:h,getDataScopeFormData:b}),(a,_)=>(w(),F("div",C,[p(m(D),{onRegister:m(n)},null,8,["onRegister"]),I("div",R,[p(m(A),{message:"提示:在后端配置文件开启 user.dataScopeRuleSql 参数后,方可使用该功能。",type:"info"})])]))}});export{le as default};
|
||||
@@ -0,0 +1 @@
|
||||
.jeesite-setting-switch-item{display:flex;justify-content:space-between;margin:16px 0;color:#000000e0}
|
||||
@@ -0,0 +1 @@
|
||||
import{b as l,p as c,i as d,m as h,_ as u,q as s,c as f,o as a,a as g,k as C,D as B,e as k,G as y,t as S,s as b,v}from"./index-BRLZOSuF-1775297478351.js";import{B as w}from"./index-k8EE2qLa.js";import{b as V}from"./index-B3ZNeyI7.js";import{S as N}from"./dayjs-DLosx6bn.js";import"./index-G1HvrRWr.js";import"./index-ClX-lDht.js";import"./ErrorAction-EvBh0byA.js";import"./redshift-CC4Ds1Bk.js";import"./index-HHcosjnG.js";import"./typespec-CVzloLly.js";import"./sql-DiFTSuVq.js";import"./formItem-9bQod6RV.js";import"./formGroup-BS-9qm03.js";import"./index-By3U8KVx.js";import"./account-DFLpYKDc.js";import"./index-CiQOAmGE.js";import"./mips-98dl4GSD.js";import"./index-DIJjAvRv.js";import"./index-DN3n5Bx7.js";import"./index-B7dHRAHV.js";import"./uploadImage-CFYO5TZM.js";import"./uploadFile-C0VCSXjO.js";import"./WorkbenchHeader-DLmnKCUw.js";import"./sb-adnPBAyt.js";import"./index-CiL_w4Vw.js";import"./datePicker-BwizO_EZ.js";import"./col-7QJHwc-2.js";import"./row-CoF0dbW4.js";import"./index-y7ZRJF0h.js";import"./useContentViewHeight-Bggdxgev.js";import"./index-BVLeRLLr.js";import"./FrameSimple-BNF3p-7Y.js";import"./index-CBlVRlqP.js";const H=l({name:"SwitchItem",components:{Switch:N,BasicHelp:w},props:{event:{type:Number},disabled:{type:Boolean},title:{type:String},helpMessage:{type:String},def:{type:Boolean}},setup(e){const{prefixCls:t}=c("setting-switch-item"),{t:o}=d(),i=h(()=>e.def?{checked:e.def}:{});function n(r){e.event&&V(e.event,r)}return{prefixCls:t,t:o,handleChange:n,getBindValue:i}}});function _(e,t,o,i,n,r){const p=s("BasicHelp"),m=s("Switch");return a(),f("div",{class:v(e.prefixCls)},[g("span",null,[B(S(e.title)+" ",1),e.helpMessage?(a(),k(p,{key:0,placement:"top",text:e.helpMessage},null,8,["text"])):y("",!0)]),C(m,b(e.getBindValue,{onChange:e.handleChange,disabled:e.disabled,checkedChildren:e.t("layout.setting.on"),unCheckedChildren:e.t("layout.setting.off")}),null,16,["onChange","disabled","checkedChildren","unCheckedChildren"])],2)}const pe=u(H,[["render",_]]);export{pe as default};
|
||||
@@ -0,0 +1 @@
|
||||
.jeesite-setting-theme-picker{display:flex;flex-wrap:wrap;margin:16px 0;justify-content:space-around;color:#000000e0}.jeesite-setting-theme-picker__item{width:20px;height:20px;cursor:pointer;border:1px solid #ddd;border-radius:2px}.jeesite-setting-theme-picker__item svg{display:none}.jeesite-setting-theme-picker__item--active{border:1px solid #5976f0}.jeesite-setting-theme-picker__item--active .anticon{vertical-align:1px}.jeesite-setting-theme-picker__item--active svg{display:inline-block;margin:0 0 3px 3px;font-size:12px;fill:#ddd!important}
|
||||
@@ -0,0 +1 @@
|
||||
import{b as a,C as l,p as c,_ as d,q as u,c as r,o,F as C,x as f,y as k,v as n,k as _}from"./index-BRLZOSuF-1775297478351.js";import{b as h}from"./index-B3ZNeyI7.js";import"./index-ClX-lDht.js";import"./index-k8EE2qLa.js";import"./index-G1HvrRWr.js";import"./ErrorAction-EvBh0byA.js";import"./redshift-CC4Ds1Bk.js";import"./index-HHcosjnG.js";import"./typespec-CVzloLly.js";import"./sql-DiFTSuVq.js";import"./formItem-9bQod6RV.js";import"./formGroup-BS-9qm03.js";import"./index-By3U8KVx.js";import"./account-DFLpYKDc.js";import"./index-CiQOAmGE.js";import"./mips-98dl4GSD.js";import"./dayjs-DLosx6bn.js";import"./index-DIJjAvRv.js";import"./index-CiL_w4Vw.js";import"./WorkbenchHeader-DLmnKCUw.js";import"./datePicker-BwizO_EZ.js";import"./index-DN3n5Bx7.js";import"./index-B7dHRAHV.js";import"./uploadImage-CFYO5TZM.js";import"./uploadFile-C0VCSXjO.js";import"./sb-adnPBAyt.js";import"./col-7QJHwc-2.js";import"./row-CoF0dbW4.js";import"./index-y7ZRJF0h.js";import"./useContentViewHeight-Bggdxgev.js";import"./index-BVLeRLLr.js";import"./FrameSimple-BNF3p-7Y.js";import"./index-CBlVRlqP.js";const v=a({name:"ThemeColorPicker",components:{CheckOutlined:l},props:{colorList:{type:Array,defualt:[]},event:{type:Number},def:{type:String}},setup(e){const{prefixCls:i}=c("setting-theme-picker");function p(m){e.event&&h(e.event,m)}return{prefixCls:i,handleClick:p}}}),y=["onClick"];function $(e,i,p,m,b,g){const s=u("CheckOutlined");return o(),r("div",{class:n(e.prefixCls)},[(o(!0),r(C,null,f(e.colorList||[],t=>(o(),r("span",{key:t,onClick:L=>e.handleClick(t),class:n([`${e.prefixCls}__item`,{[`${e.prefixCls}__item--active`]:e.def===t}]),style:k({background:t})},[_(s)],14,y))),128))],2)}const ie=d(v,[["render",$]]);export{ie as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user