|
@ -21,6 +21,8 @@
|
||||||
<SccProvider>
|
<SccProvider>
|
||||||
</SccProvider>
|
</SccProvider>
|
||||||
<TargetFrameworkProfile />
|
<TargetFrameworkProfile />
|
||||||
|
<NuGetPackageImportStamp>
|
||||||
|
</NuGetPackageImportStamp>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
@ -120,6 +122,7 @@
|
||||||
<Reference Include="System.configuration" />
|
<Reference Include="System.configuration" />
|
||||||
<Reference Include="System.Configuration.ConfigurationManager, Version=6.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
<Reference Include="System.Configuration.ConfigurationManager, Version=6.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Configuration.ConfigurationManager.6.0.1\lib\net461\System.Configuration.ConfigurationManager.dll</HintPath>
|
<HintPath>..\packages\System.Configuration.ConfigurationManager.6.0.1\lib\net461\System.Configuration.ConfigurationManager.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="System.Data.Linq" />
|
<Reference Include="System.Data.Linq" />
|
||||||
|
@ -131,6 +134,8 @@
|
||||||
<Reference Include="System.Drawing" />
|
<Reference Include="System.Drawing" />
|
||||||
<Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
<Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
|
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.IO.Pipelines, Version=5.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
<Reference Include="System.IO.Pipelines, Version=5.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.IO.Pipelines.5.0.1\lib\net461\System.IO.Pipelines.dll</HintPath>
|
<HintPath>..\packages\System.IO.Pipelines.5.0.1\lib\net461\System.IO.Pipelines.dll</HintPath>
|
||||||
|
@ -147,17 +152,22 @@
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
|
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Runtime.Serialization" />
|
<Reference Include="System.Runtime.Serialization" />
|
||||||
<Reference Include="System.Security" />
|
<Reference Include="System.Security" />
|
||||||
<Reference Include="System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Security.AccessControl.6.0.0\lib\net461\System.Security.AccessControl.dll</HintPath>
|
<HintPath>..\packages\System.Security.AccessControl.6.0.0\lib\net461\System.Security.AccessControl.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Security.Permissions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
<Reference Include="System.Security.Permissions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Security.Permissions.6.0.0\lib\net461\System.Security.Permissions.dll</HintPath>
|
<HintPath>..\packages\System.Security.Permissions.6.0.0\lib\net461\System.Security.Permissions.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll</HintPath>
|
<HintPath>..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.ServiceModel" />
|
<Reference Include="System.ServiceModel" />
|
||||||
<Reference Include="System.ServiceProcess" />
|
<Reference Include="System.ServiceProcess" />
|
||||||
|
|
|
@ -4,320 +4,321 @@ using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace BLL {
|
namespace BLL
|
||||||
|
|
||||||
public class MainSevice
|
|
||||||
{
|
{
|
||||||
|
|
||||||
/// <summary>
|
public class MainSevice
|
||||||
/// 在建项目集合
|
|
||||||
/// </summary>
|
|
||||||
private List<string> _beUnderConstructionList;
|
|
||||||
private HSSEData_HSSE _hsseData;
|
|
||||||
private string _unitId;
|
|
||||||
private int _unitType;
|
|
||||||
|
|
||||||
public MainSevice(string userid)
|
|
||||||
{
|
{
|
||||||
var userModel = UserService.GetUserByUserId(userid);
|
|
||||||
int unitType = CommonService.GetUnitTypeByUserId(userid);
|
|
||||||
var projectList = ProjectService.GetProjectWorkList().Select(x => new { x.ProjectId, x.UnitId }).ToList();
|
|
||||||
_unitId = userModel.UnitId;
|
|
||||||
_unitType = unitType;
|
|
||||||
if (unitType == 0)
|
|
||||||
{
|
|
||||||
_beUnderConstructionList = projectList.Select(x => x.ProjectId).ToList();
|
|
||||||
_unitId = CommonService.GetThisUnitId();
|
|
||||||
}
|
|
||||||
else if (unitType == 1)
|
|
||||||
{
|
|
||||||
_beUnderConstructionList = projectList.Where(x => x.UnitId == userModel.UnitId).Select(x => x.ProjectId).ToList();
|
|
||||||
}
|
|
||||||
else if (unitType == 2)
|
|
||||||
{
|
|
||||||
_beUnderConstructionList = new List<string>() { "0" };
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
/// <summary>
|
||||||
public async Task<HSSEData_HSSE> GetHsseDataAsync()
|
/// 在建项目集合
|
||||||
{
|
/// </summary>
|
||||||
|
private List<string> _beUnderConstructionList;
|
||||||
|
private HSSEData_HSSE _hsseData;
|
||||||
|
private string _unitId;
|
||||||
|
private int _unitType;
|
||||||
|
|
||||||
|
public MainSevice(string userid)
|
||||||
|
{
|
||||||
|
var userModel = UserService.GetUserByUserId(userid);
|
||||||
|
int unitType = CommonService.GetUnitTypeByUserId(userid);
|
||||||
|
var projectList = ProjectService.GetProjectWorkList().Select(x => new { x.ProjectId, x.UnitId }).ToList();
|
||||||
|
_unitId = userModel.UnitId;
|
||||||
|
_unitType = unitType;
|
||||||
|
if (unitType == 0)
|
||||||
|
{
|
||||||
|
_beUnderConstructionList = projectList.Select(x => x.ProjectId).ToList();
|
||||||
|
_unitId = CommonService.GetThisUnitId();
|
||||||
|
}
|
||||||
|
else if (unitType == 1)
|
||||||
|
{
|
||||||
|
_beUnderConstructionList = projectList.Where(x => x.UnitId == userModel.UnitId).Select(x => x.ProjectId).ToList();
|
||||||
|
}
|
||||||
|
else if (unitType == 2)
|
||||||
|
{
|
||||||
|
_beUnderConstructionList = new List<string>() { "0" };
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
public async Task<HSSEData_HSSE> GetHsseDataAsync()
|
||||||
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
// 并行执行异步方法
|
// 并行执行异步方法
|
||||||
var totalEnergyConsumptionTask = ChemicalReportItemService.GetLatstTimeTotalEnergyConsumption();
|
var totalEnergyConsumptionTask = ChemicalReportItemService.GetLatstTimeTotalEnergyConsumption();
|
||||||
var incomeComprehensiveEnergyConsumptionTask = ChemicalReportItemService.GetLatstTimeIncomeComprehensiveEnergyConsumption();
|
var incomeComprehensiveEnergyConsumptionTask = ChemicalReportItemService.GetLatstTimeIncomeComprehensiveEnergyConsumption();
|
||||||
var newWaterConsumptionTask = ChemicalReportItemService.GetLatstTimeNewWaterConsumption();
|
var newWaterConsumptionTask = ChemicalReportItemService.GetLatstTimeNewWaterConsumption();
|
||||||
var securityRiskOutputListTask = HSSEData_HSSEService.GetSecurityRiskOutputsAsync()
|
var securityRiskOutputListTask = HSSEData_HSSEService.GetSecurityRiskOutputsAsync()
|
||||||
.ContinueWith(t => t.Result.Where(x => _beUnderConstructionList.Contains(x.ProjectId)));
|
.ContinueWith(t => t.Result.Where(x => _beUnderConstructionList.Contains(x.ProjectId)));
|
||||||
var largeEngineeringOutputsTask = HSSEData_HSSEService.GetLargeEngineeringOutputsAsync()
|
var largeEngineeringOutputsTask = HSSEData_HSSEService.GetLargeEngineeringOutputsAsync()
|
||||||
.ContinueWith(t => t.Result.Where(x => _beUnderConstructionList.Contains(x.ProjectId)));
|
.ContinueWith(t => t.Result.Where(x => _beUnderConstructionList.Contains(x.ProjectId)));
|
||||||
var safetyInjectionEngineerTask = HSSEData_HSSEService.GetSafetyInjectionEngineerAsync();
|
var safetyInjectionEngineerTask = HSSEData_HSSEService.GetSafetyInjectionEngineerAsync();
|
||||||
var certificateATask = HSSEData_HSSEService.GetCertificateAAsync();
|
var certificateATask = HSSEData_HSSEService.GetCertificateAAsync();
|
||||||
var certificateBTask = HSSEData_HSSEService.GetCertificateBAsync();
|
var certificateBTask = HSSEData_HSSEService.GetCertificateBAsync();
|
||||||
var certificateCTask = HSSEData_HSSEService.GetCertificateCAsync();
|
var certificateCTask = HSSEData_HSSEService.GetCertificateCAsync();
|
||||||
var beUnderConstructionTask = HSSEData_HSSEService.GetBeUnderConstructionAsync();
|
var beUnderConstructionTask = HSSEData_HSSEService.GetBeUnderConstructionAsync();
|
||||||
var shutdownTask = HSSEData_HSSEService.GetShutdownAsync();
|
var shutdownTask = HSSEData_HSSEService.GetShutdownAsync();
|
||||||
var joinConstructionPersonTask = HSSEData_HSSEService.GetJoinConstructionPersonAsync();
|
var joinConstructionPersonTask = HSSEData_HSSEService.GetJoinConstructionPersonAsync();
|
||||||
var majorProjectsUnderConstructionTask = HSSEData_HSSEService.GetMajorProjectsUnderConstructionAsync();
|
var majorProjectsUnderConstructionTask = HSSEData_HSSEService.GetMajorProjectsUnderConstructionAsync();
|
||||||
var totalWorkingHourTask = HSSEData_HSSEService.GetTotalWorkingHourAsync();
|
var totalWorkingHourTask = HSSEData_HSSEService.GetTotalWorkingHourAsync();
|
||||||
var lostWorkingHourTask = HSSEData_HSSEService.GetLostWorkingHourAsync();
|
var lostWorkingHourTask = HSSEData_HSSEService.GetLostWorkingHourAsync();
|
||||||
var safeWorkingHourTask = HSSEData_HSSEService.GetSafeWorkingHourAsync();
|
var safeWorkingHourTask = HSSEData_HSSEService.GetSafeWorkingHourAsync();
|
||||||
var safeTrainTask = HSSEData_HSSEService.GetSafeTrainAsync();
|
var safeTrainTask = HSSEData_HSSEService.GetSafeTrainAsync();
|
||||||
var specialTrainTask = HSSEData_HSSEService.GetSpecialTrainAsync();
|
var specialTrainTask = HSSEData_HSSEService.GetSpecialTrainAsync();
|
||||||
var specialOperationTrainTask = HSSEData_HSSEService.GetSpecialOperationTrainAsync();
|
var specialOperationTrainTask = HSSEData_HSSEService.GetSpecialOperationTrainAsync();
|
||||||
var headOfficeInspectorGeneralTask = HSSEData_HSSEService.GetHeadOfficeInspectorGeneralAsync();
|
var headOfficeInspectorGeneralTask = HSSEData_HSSEService.GetHeadOfficeInspectorGeneralAsync();
|
||||||
var headOfficeFullTimeTask = HSSEData_HSSEService.GetHeadOfficeFullTimeAsync();
|
var headOfficeFullTimeTask = HSSEData_HSSEService.GetHeadOfficeFullTimeAsync();
|
||||||
var branchInspectorGeneralTask = HSSEData_HSSEService.GetBranchInspectorGeneralAsync();
|
var branchInspectorGeneralTask = HSSEData_HSSEService.GetBranchInspectorGeneralAsync();
|
||||||
var branchFullTimeTask = HSSEData_HSSEService.GetBranchFullTimeAsync();
|
var branchFullTimeTask = HSSEData_HSSEService.GetBranchFullTimeAsync();
|
||||||
var projectInspectorGeneralTask = HSSEData_HSSEService.GetProjectInspectorGeneralAsync();
|
var projectInspectorGeneralTask = HSSEData_HSSEService.GetProjectInspectorGeneralAsync();
|
||||||
var projectFullTimeTask = HSSEData_HSSEService.GetProjectFullTimeAsync();
|
var projectFullTimeTask = HSSEData_HSSEService.GetProjectFullTimeAsync();
|
||||||
var projectSafetyMonitorTask = HSSEData_HSSEService.GetProjectSafetyMonitorAsync();
|
var projectSafetyMonitorTask = HSSEData_HSSEService.GetProjectSafetyMonitorAsync();
|
||||||
var safetyCommitteeMeetingTask = HSSEData_HSSEService.GetSafetyCommitteeMeetingAsync();
|
var safetyCommitteeMeetingTask = HSSEData_HSSEService.GetSafetyCommitteeMeetingAsync();
|
||||||
var enterpriseTopicsMeetingTask = HSSEData_HSSEService.GetEnterpriseTopicsMeetingAsync();
|
var enterpriseTopicsMeetingTask = HSSEData_HSSEService.GetEnterpriseTopicsMeetingAsync();
|
||||||
var projectSafetyLeadingGroupMeetingTask = HSSEData_HSSEService.GetProjectSafetyLeadingGroupMeetingAsync();
|
var projectSafetyLeadingGroupMeetingTask = HSSEData_HSSEService.GetProjectSafetyLeadingGroupMeetingAsync();
|
||||||
var projectSafetyMeetingTask = HSSEData_HSSEService.GetProjectSafetyMeetingAsync();
|
var projectSafetyMeetingTask = HSSEData_HSSEService.GetProjectSafetyMeetingAsync();
|
||||||
var companyLeadShiftCheckTask = HSSEData_HSSEService.GetCompanyLeadShiftCheckAsync();
|
var companyLeadShiftCheckTask = HSSEData_HSSEService.GetCompanyLeadShiftCheckAsync();
|
||||||
var companyComprehensiveCheckTask = HSSEData_HSSEService.GetCompanyComprehensiveCheckAsync();
|
var companyComprehensiveCheckTask = HSSEData_HSSEService.GetCompanyComprehensiveCheckAsync();
|
||||||
var companySpecialCheckTask = HSSEData_HSSEService.GetCompanySpecialCheckAsync();
|
var companySpecialCheckTask = HSSEData_HSSEService.GetCompanySpecialCheckAsync();
|
||||||
var projectLeadShiftCheckTask = HSSEData_HSSEService.GetProjectLeadShiftCheckAsync();
|
var projectLeadShiftCheckTask = HSSEData_HSSEService.GetProjectLeadShiftCheckAsync();
|
||||||
var projectSpecialCheckTask = HSSEData_HSSEService.GetProjectSpecialCheckAsync();
|
var projectSpecialCheckTask = HSSEData_HSSEService.GetProjectSpecialCheckAsync();
|
||||||
var projectMajorCheckTask = HSSEData_HSSEService.GetProjectMajorCheckAsync();
|
var projectMajorCheckTask = HSSEData_HSSEService.GetProjectMajorCheckAsync();
|
||||||
var nearMissTask = HSSEData_HSSEService.GetNearMissAsync();
|
var nearMissTask = HSSEData_HSSEService.GetNearMissAsync();
|
||||||
var recordableEventTask = HSSEData_HSSEService.GetRecordableEventAsync();
|
var recordableEventTask = HSSEData_HSSEService.GetRecordableEventAsync();
|
||||||
var generalAccidentTask = HSSEData_HSSEService.GetGeneralAccidentAsync();
|
var generalAccidentTask = HSSEData_HSSEService.GetGeneralAccidentAsync();
|
||||||
var majorAccidentTask = HSSEData_HSSEService.GetMajorAccidentAsync();
|
var majorAccidentTask = HSSEData_HSSEService.GetMajorAccidentAsync();
|
||||||
var seriousAccidentTask = HSSEData_HSSEService.GetSeriousAccidentAsync();
|
var seriousAccidentTask = HSSEData_HSSEService.GetSeriousAccidentAsync();
|
||||||
var specialSeriousAccidentTask = HSSEData_HSSEService.GetSpecialSeriousAccidentAsync();
|
var specialSeriousAccidentTask = HSSEData_HSSEService.GetSpecialSeriousAccidentAsync();
|
||||||
var companyComprehensivePlanTask = HSSEData_HSSEService.GetCompanyComprehensivePlanAsync();
|
var companyComprehensivePlanTask = HSSEData_HSSEService.GetCompanyComprehensivePlanAsync();
|
||||||
var companySpecialPlanTask = HSSEData_HSSEService.GetCompanySpecialPlanAsync();
|
var companySpecialPlanTask = HSSEData_HSSEService.GetCompanySpecialPlanAsync();
|
||||||
var companyOnSiteDisposalPlanTask = HSSEData_HSSEService.GetCompanyOnSiteDisposalPlanAsync();
|
var companyOnSiteDisposalPlanTask = HSSEData_HSSEService.GetCompanyOnSiteDisposalPlanAsync();
|
||||||
var companyDrillTask = HSSEData_HSSEService.GetCompanyDrillAsync();
|
var companyDrillTask = HSSEData_HSSEService.GetCompanyDrillAsync();
|
||||||
var projectComprehensivePlanTask = HSSEData_HSSEService.GetProjectComprehensivePlanAsync();
|
var projectComprehensivePlanTask = HSSEData_HSSEService.GetProjectComprehensivePlanAsync();
|
||||||
var projectSpecialPlanTask = HSSEData_HSSEService.GetProjectSpecialPlanAsync();
|
var projectSpecialPlanTask = HSSEData_HSSEService.GetProjectSpecialPlanAsync();
|
||||||
var projectOnSiteDisposalPlanTask = HSSEData_HSSEService.GetProjectOnSiteDisposalPlanAsync();
|
var projectOnSiteDisposalPlanTask = HSSEData_HSSEService.GetProjectOnSiteDisposalPlanAsync();
|
||||||
var projectDrillTask = HSSEData_HSSEService.GetProjectDrillAsync();
|
var projectDrillTask = HSSEData_HSSEService.GetProjectDrillAsync();
|
||||||
var costExtractTask = HSSEData_HSSEService.GetCostExtractAsync();
|
var costExtractTask = HSSEData_HSSEService.GetCostExtractAsync();
|
||||||
var costUseTask = HSSEData_HSSEService.GetCostUseAsync();
|
var costUseTask = HSSEData_HSSEService.GetCostUseAsync();
|
||||||
var useEquipmentTask = HSSEData_HSSEService.GetUseEquipmentAsync();
|
var useEquipmentTask = HSSEData_HSSEService.GetUseEquipmentAsync();
|
||||||
var specialEquipmentTask = HSSEData_HSSEService.GetSpecialEquipmentAsync();
|
var specialEquipmentTask = HSSEData_HSSEService.GetSpecialEquipmentAsync();
|
||||||
var licensesTask = HSSEData_HSSEService.GetLicensesAsync();
|
var licensesTask = HSSEData_HSSEService.GetLicensesAsync();
|
||||||
var licensesCloseTask = HSSEData_HSSEService.GetLicensesCloseAsync();
|
var licensesCloseTask = HSSEData_HSSEService.GetLicensesCloseAsync();
|
||||||
var generalHiddenRectificationOutputsTask = HSSEData_HSSEService.GetGeneralHiddenRectificationOutputsAsync();
|
var generalHiddenRectificationOutputsTask = HSSEData_HSSEService.GetGeneralHiddenRectificationOutputsAsync();
|
||||||
var majorHiddenRectificationOutputsTask = HSSEData_HSSEService.GetMajorHiddenRectificationOutputsAsync();
|
var majorHiddenRectificationOutputsTask = HSSEData_HSSEService.GetMajorHiddenRectificationOutputsAsync();
|
||||||
|
|
||||||
// 等待所有异步方法执行完成
|
// 等待所有异步方法执行完成
|
||||||
await Task.WhenAll(
|
await Task.WhenAll(
|
||||||
securityRiskOutputListTask,
|
securityRiskOutputListTask,
|
||||||
largeEngineeringOutputsTask,
|
largeEngineeringOutputsTask,
|
||||||
safetyInjectionEngineerTask,
|
safetyInjectionEngineerTask,
|
||||||
certificateATask,
|
certificateATask,
|
||||||
certificateBTask,
|
certificateBTask,
|
||||||
certificateCTask,
|
certificateCTask,
|
||||||
beUnderConstructionTask,
|
beUnderConstructionTask,
|
||||||
shutdownTask,
|
shutdownTask,
|
||||||
joinConstructionPersonTask,
|
joinConstructionPersonTask,
|
||||||
majorProjectsUnderConstructionTask,
|
majorProjectsUnderConstructionTask,
|
||||||
totalWorkingHourTask,
|
totalWorkingHourTask,
|
||||||
lostWorkingHourTask,
|
lostWorkingHourTask,
|
||||||
safeWorkingHourTask,
|
safeWorkingHourTask,
|
||||||
safeTrainTask,
|
safeTrainTask,
|
||||||
specialTrainTask,
|
specialTrainTask,
|
||||||
specialOperationTrainTask,
|
specialOperationTrainTask,
|
||||||
headOfficeInspectorGeneralTask,
|
headOfficeInspectorGeneralTask,
|
||||||
headOfficeFullTimeTask,
|
headOfficeFullTimeTask,
|
||||||
branchInspectorGeneralTask,
|
branchInspectorGeneralTask,
|
||||||
branchFullTimeTask,
|
branchFullTimeTask,
|
||||||
projectInspectorGeneralTask,
|
projectInspectorGeneralTask,
|
||||||
projectFullTimeTask,
|
projectFullTimeTask,
|
||||||
projectSafetyMonitorTask,
|
projectSafetyMonitorTask,
|
||||||
safetyCommitteeMeetingTask,
|
safetyCommitteeMeetingTask,
|
||||||
enterpriseTopicsMeetingTask,
|
enterpriseTopicsMeetingTask,
|
||||||
projectSafetyLeadingGroupMeetingTask,
|
projectSafetyLeadingGroupMeetingTask,
|
||||||
projectSafetyMeetingTask,
|
projectSafetyMeetingTask,
|
||||||
companyLeadShiftCheckTask,
|
companyLeadShiftCheckTask,
|
||||||
companyComprehensiveCheckTask,
|
companyComprehensiveCheckTask,
|
||||||
companySpecialCheckTask,
|
companySpecialCheckTask,
|
||||||
projectLeadShiftCheckTask,
|
projectLeadShiftCheckTask,
|
||||||
projectSpecialCheckTask,
|
projectSpecialCheckTask,
|
||||||
projectMajorCheckTask,
|
projectMajorCheckTask,
|
||||||
nearMissTask,
|
nearMissTask,
|
||||||
recordableEventTask,
|
recordableEventTask,
|
||||||
generalAccidentTask,
|
generalAccidentTask,
|
||||||
majorAccidentTask,
|
majorAccidentTask,
|
||||||
seriousAccidentTask,
|
seriousAccidentTask,
|
||||||
specialSeriousAccidentTask,
|
specialSeriousAccidentTask,
|
||||||
companyComprehensivePlanTask,
|
companyComprehensivePlanTask,
|
||||||
companySpecialPlanTask,
|
companySpecialPlanTask,
|
||||||
companyOnSiteDisposalPlanTask,
|
companyOnSiteDisposalPlanTask,
|
||||||
companyDrillTask,
|
companyDrillTask,
|
||||||
projectComprehensivePlanTask,
|
projectComprehensivePlanTask,
|
||||||
projectSpecialPlanTask,
|
projectSpecialPlanTask,
|
||||||
projectOnSiteDisposalPlanTask,
|
projectOnSiteDisposalPlanTask,
|
||||||
projectDrillTask,
|
projectDrillTask,
|
||||||
costExtractTask,
|
costExtractTask,
|
||||||
costUseTask,
|
costUseTask,
|
||||||
useEquipmentTask,
|
useEquipmentTask,
|
||||||
specialEquipmentTask,
|
specialEquipmentTask,
|
||||||
licensesTask,
|
licensesTask,
|
||||||
licensesCloseTask,
|
licensesCloseTask,
|
||||||
generalHiddenRectificationOutputsTask,
|
generalHiddenRectificationOutputsTask,
|
||||||
majorHiddenRectificationOutputsTask
|
majorHiddenRectificationOutputsTask
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
// 统一获取异步方法的返回值
|
// 统一获取异步方法的返回值
|
||||||
var totalEnergyConsumption = totalEnergyConsumptionTask;
|
var totalEnergyConsumption = totalEnergyConsumptionTask;
|
||||||
var incomeComprehensiveEnergyConsumption = incomeComprehensiveEnergyConsumptionTask;
|
var incomeComprehensiveEnergyConsumption = incomeComprehensiveEnergyConsumptionTask;
|
||||||
var newWaterConsumption = newWaterConsumptionTask;
|
var newWaterConsumption = newWaterConsumptionTask;
|
||||||
var safetyInjectionEngineerList = await safetyInjectionEngineerTask;
|
var safetyInjectionEngineerList = await safetyInjectionEngineerTask;
|
||||||
var certificateAList = await certificateATask;
|
var certificateAList = await certificateATask;
|
||||||
var certificateBList = await certificateBTask;
|
var certificateBList = await certificateBTask;
|
||||||
var certificateCList = await certificateCTask;
|
var certificateCList = await certificateCTask;
|
||||||
var beUnderConstructionList = await beUnderConstructionTask;
|
var beUnderConstructionList = await beUnderConstructionTask;
|
||||||
var shutdownList = await shutdownTask;
|
var shutdownList = await shutdownTask;
|
||||||
var joinConstructionPersonList = await joinConstructionPersonTask;
|
var joinConstructionPersonList = await joinConstructionPersonTask;
|
||||||
var majorProjectsUnderConstructionList = await majorProjectsUnderConstructionTask;
|
var majorProjectsUnderConstructionList = await majorProjectsUnderConstructionTask;
|
||||||
var totalWorkingHour = await totalWorkingHourTask;
|
var totalWorkingHour = await totalWorkingHourTask;
|
||||||
var lostWorkingHour = await lostWorkingHourTask;
|
var lostWorkingHour = await lostWorkingHourTask;
|
||||||
var safeWorkingHour = await safeWorkingHourTask;
|
var safeWorkingHour = await safeWorkingHourTask;
|
||||||
var safeTrainList = await safeTrainTask;
|
var safeTrainList = await safeTrainTask;
|
||||||
var specialTrainList = await specialTrainTask;
|
var specialTrainList = await specialTrainTask;
|
||||||
var specialOperationTrainList = await specialOperationTrainTask;
|
var specialOperationTrainList = await specialOperationTrainTask;
|
||||||
var headOfficeInspectorGeneralList = await headOfficeInspectorGeneralTask;
|
var headOfficeInspectorGeneralList = await headOfficeInspectorGeneralTask;
|
||||||
var headOfficeFullTimeList = await headOfficeFullTimeTask;
|
var headOfficeFullTimeList = await headOfficeFullTimeTask;
|
||||||
var branchInspectorGeneralList = await branchInspectorGeneralTask;
|
var branchInspectorGeneralList = await branchInspectorGeneralTask;
|
||||||
var branchFullTimeList = await branchFullTimeTask;
|
var branchFullTimeList = await branchFullTimeTask;
|
||||||
var projectInspectorGeneralList = await projectInspectorGeneralTask;
|
var projectInspectorGeneralList = await projectInspectorGeneralTask;
|
||||||
var projectFullTimeList = await projectFullTimeTask;
|
var projectFullTimeList = await projectFullTimeTask;
|
||||||
var projectSafetyMonitorList = await projectSafetyMonitorTask;
|
var projectSafetyMonitorList = await projectSafetyMonitorTask;
|
||||||
var safetyCommitteeMeetingList = await safetyCommitteeMeetingTask;
|
var safetyCommitteeMeetingList = await safetyCommitteeMeetingTask;
|
||||||
var enterpriseTopicsMeetingList = await enterpriseTopicsMeetingTask;
|
var enterpriseTopicsMeetingList = await enterpriseTopicsMeetingTask;
|
||||||
var projectSafetyLeadingGroupMeetingList = await projectSafetyLeadingGroupMeetingTask;
|
var projectSafetyLeadingGroupMeetingList = await projectSafetyLeadingGroupMeetingTask;
|
||||||
var projectSafetyMeetingList = await projectSafetyMeetingTask;
|
var projectSafetyMeetingList = await projectSafetyMeetingTask;
|
||||||
var companyLeadShiftCheckList = await companyLeadShiftCheckTask;
|
var companyLeadShiftCheckList = await companyLeadShiftCheckTask;
|
||||||
var companyComprehensiveCheckList = await companyComprehensiveCheckTask;
|
var companyComprehensiveCheckList = await companyComprehensiveCheckTask;
|
||||||
var companySpecialCheckList = await companySpecialCheckTask;
|
var companySpecialCheckList = await companySpecialCheckTask;
|
||||||
var projectLeadShiftCheckList = await projectLeadShiftCheckTask;
|
var projectLeadShiftCheckList = await projectLeadShiftCheckTask;
|
||||||
var projectSpecialCheckList = await projectSpecialCheckTask;
|
var projectSpecialCheckList = await projectSpecialCheckTask;
|
||||||
var projectMajorCheckList = await projectMajorCheckTask;
|
var projectMajorCheckList = await projectMajorCheckTask;
|
||||||
var nearMissList = await nearMissTask;
|
var nearMissList = await nearMissTask;
|
||||||
var recordableEventList = await recordableEventTask;
|
var recordableEventList = await recordableEventTask;
|
||||||
var generalAccidentList = await generalAccidentTask;
|
var generalAccidentList = await generalAccidentTask;
|
||||||
var majorAccidentList = await majorAccidentTask;
|
var majorAccidentList = await majorAccidentTask;
|
||||||
var seriousAccidentList = await seriousAccidentTask;
|
var seriousAccidentList = await seriousAccidentTask;
|
||||||
var specialSeriousAccidentList = await specialSeriousAccidentTask;
|
var specialSeriousAccidentList = await specialSeriousAccidentTask;
|
||||||
var companyComprehensivePlanList = await companyComprehensivePlanTask;
|
var companyComprehensivePlanList = await companyComprehensivePlanTask;
|
||||||
var companySpecialPlanList = await companySpecialPlanTask;
|
var companySpecialPlanList = await companySpecialPlanTask;
|
||||||
var companyOnSiteDisposalPlanList = await companyOnSiteDisposalPlanTask;
|
var companyOnSiteDisposalPlanList = await companyOnSiteDisposalPlanTask;
|
||||||
var companyDrillList = await companyDrillTask;
|
var companyDrillList = await companyDrillTask;
|
||||||
var projectComprehensivePlanList = await projectComprehensivePlanTask;
|
var projectComprehensivePlanList = await projectComprehensivePlanTask;
|
||||||
var projectSpecialPlanList = await projectSpecialPlanTask;
|
var projectSpecialPlanList = await projectSpecialPlanTask;
|
||||||
var projectOnSiteDisposalPlanList = await projectOnSiteDisposalPlanTask;
|
var projectOnSiteDisposalPlanList = await projectOnSiteDisposalPlanTask;
|
||||||
var projectDrillList = await projectDrillTask;
|
var projectDrillList = await projectDrillTask;
|
||||||
var costExtractList = await costExtractTask;
|
var costExtractList = await costExtractTask;
|
||||||
var costUseList = await costUseTask;
|
var costUseList = await costUseTask;
|
||||||
var useEquipmentList = await useEquipmentTask;
|
var useEquipmentList = await useEquipmentTask;
|
||||||
var specialEquipmentList = await specialEquipmentTask;
|
var specialEquipmentList = await specialEquipmentTask;
|
||||||
var licensesList = await licensesTask;
|
var licensesList = await licensesTask;
|
||||||
var licensesCloseList = await licensesCloseTask;
|
var licensesCloseList = await licensesCloseTask;
|
||||||
var generalHiddenRectificationOutputsList = await generalHiddenRectificationOutputsTask;
|
var generalHiddenRectificationOutputsList = await generalHiddenRectificationOutputsTask;
|
||||||
var majorHiddenRectificationOutputsList = await majorHiddenRectificationOutputsTask;
|
var majorHiddenRectificationOutputsList = await majorHiddenRectificationOutputsTask;
|
||||||
|
|
||||||
// 构造结果对象
|
// 构造结果对象
|
||||||
var table = new HSSEData_HSSE
|
var table = new HSSEData_HSSE
|
||||||
{
|
{
|
||||||
JoinConstructionPersonNum = joinConstructionPersonList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
JoinConstructionPersonNum = joinConstructionPersonList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
MajorProjectsUnderConstructionNum = majorProjectsUnderConstructionList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
MajorProjectsUnderConstructionNum = majorProjectsUnderConstructionList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
TotalWorkingHour = totalWorkingHour,
|
TotalWorkingHour = totalWorkingHour,
|
||||||
LostWorkingHour = lostWorkingHour,
|
LostWorkingHour = lostWorkingHour,
|
||||||
SafeWorkingHour = safeWorkingHour,
|
SafeWorkingHour = safeWorkingHour,
|
||||||
SafeTrainNum = safeTrainList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.TrainPersonNum),
|
SafeTrainNum = safeTrainList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.TrainPersonNum),
|
||||||
SpecialTrainNum = specialTrainList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.TrainPersonNum),
|
SpecialTrainNum = specialTrainList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.TrainPersonNum),
|
||||||
SpecialOperationTrainNum = specialOperationTrainList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.TrainPersonNum),
|
SpecialOperationTrainNum = specialOperationTrainList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.TrainPersonNum),
|
||||||
EnvironmentalTrainNum = 0,
|
EnvironmentalTrainNum = 0,
|
||||||
TotalEnergyConsumption = totalEnergyConsumption,
|
TotalEnergyConsumption = totalEnergyConsumption,
|
||||||
IncomeComprehensiveEnergyConsumption = incomeComprehensiveEnergyConsumption,
|
IncomeComprehensiveEnergyConsumption = incomeComprehensiveEnergyConsumption,
|
||||||
NewWaterConsumption = newWaterConsumption,
|
NewWaterConsumption = newWaterConsumption,
|
||||||
HeadOfficeInspectorGeneralNum = headOfficeInspectorGeneralList.Count(),
|
HeadOfficeInspectorGeneralNum = headOfficeInspectorGeneralList.Count(),
|
||||||
HeadOfficeFullTimeNum = headOfficeFullTimeList.Count,
|
HeadOfficeFullTimeNum = headOfficeFullTimeList.Count,
|
||||||
BranchInspectorGeneralNum = branchInspectorGeneralList.Count,
|
BranchInspectorGeneralNum = branchInspectorGeneralList.Count,
|
||||||
BranchFullTimeNum = branchFullTimeList.Count,
|
BranchFullTimeNum = branchFullTimeList.Count,
|
||||||
ProjectInspectorGeneralNum = projectInspectorGeneralList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
ProjectInspectorGeneralNum = projectInspectorGeneralList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
ProjectFullTimeNum = projectFullTimeList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
ProjectFullTimeNum = projectFullTimeList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
ProjectSafetyMonitorNum = projectSafetyMonitorList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
ProjectSafetyMonitorNum = projectSafetyMonitorList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
ProjectSafetyLeadingGroupMeetingNum = projectSafetyLeadingGroupMeetingList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
ProjectSafetyLeadingGroupMeetingNum = projectSafetyLeadingGroupMeetingList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
ProjectSafetyMeetingNum = projectSafetyMeetingList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
ProjectSafetyMeetingNum = projectSafetyMeetingList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
CompanyLeadShiftCheckNum = companyLeadShiftCheckList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
CompanyLeadShiftCheckNum = companyLeadShiftCheckList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
CompanyComprehensiveCheckNum = companyComprehensiveCheckList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
CompanyComprehensiveCheckNum = companyComprehensiveCheckList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
CompanySpecialCheckNum = companySpecialCheckList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
CompanySpecialCheckNum = companySpecialCheckList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
ProjectLeadShiftCheckNum = projectLeadShiftCheckList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
ProjectLeadShiftCheckNum = projectLeadShiftCheckList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
ProjectSpecialCheckNum = projectSpecialCheckList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
ProjectSpecialCheckNum = projectSpecialCheckList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
ProjectMajorCheckNum = projectMajorCheckList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
ProjectMajorCheckNum = projectMajorCheckList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
NearMissNum = nearMissList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
NearMissNum = nearMissList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
RecordableEventNum = recordableEventList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
RecordableEventNum = recordableEventList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
GeneralAccidentNum = generalAccidentList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
GeneralAccidentNum = generalAccidentList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
MajorAccidentNum = majorAccidentList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
MajorAccidentNum = majorAccidentList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
SeriousAccidentNum = seriousAccidentList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
SeriousAccidentNum = seriousAccidentList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
SpecialSeriousAccidentNum = specialSeriousAccidentList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
SpecialSeriousAccidentNum = specialSeriousAccidentList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
CompanyComprehensivePlanNum = companyComprehensivePlanList.Count(x => x.UnitId == _unitId),
|
CompanyComprehensivePlanNum = companyComprehensivePlanList.Count(x => x.UnitId == _unitId),
|
||||||
CompanySpecialPlanNum = companySpecialPlanList.Count(x => x.UnitId == _unitId),
|
CompanySpecialPlanNum = companySpecialPlanList.Count(x => x.UnitId == _unitId),
|
||||||
CompanyOnSiteDisposalPlan = companyOnSiteDisposalPlanList.Count(x => x.UnitId == _unitId),
|
CompanyOnSiteDisposalPlan = companyOnSiteDisposalPlanList.Count(x => x.UnitId == _unitId),
|
||||||
CompanyDrillNum = companyDrillList.Count(x => x.UnitId.Contains(_unitId)),
|
CompanyDrillNum = companyDrillList.Count(x => x.UnitId.Contains(_unitId)),
|
||||||
ProjectComprehensivePlanNum = projectComprehensivePlanList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
ProjectComprehensivePlanNum = projectComprehensivePlanList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
ProjectSpecialPlanNum = projectSpecialPlanList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
ProjectSpecialPlanNum = projectSpecialPlanList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
ProjectOnSiteDisposalPlan = projectOnSiteDisposalPlanList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
ProjectOnSiteDisposalPlan = projectOnSiteDisposalPlanList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
ProjectDrillNum = projectDrillList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
ProjectDrillNum = projectDrillList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
CostExtract = Convert.ToInt32(costExtractList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.SUMCost)),
|
CostExtract = Convert.ToInt32(costExtractList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.SUMCost)),
|
||||||
CostUse = Convert.ToInt32(costUseList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.SUMCost)),
|
CostUse = Convert.ToInt32(costUseList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.SUMCost)),
|
||||||
UseEquipmentNum = useEquipmentList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
UseEquipmentNum = useEquipmentList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
SpecialEquipmentNum = specialEquipmentList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
SpecialEquipmentNum = specialEquipmentList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
LicensesNum = licensesList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
LicensesNum = licensesList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
LicensesCloseNum = licensesCloseList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
LicensesCloseNum = licensesCloseList.Count(x => _beUnderConstructionList.Contains(x.ProjectId)),
|
||||||
GeneralClosedNum = generalHiddenRectificationOutputsList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.RecNum),
|
GeneralClosedNum = generalHiddenRectificationOutputsList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.RecNum),
|
||||||
GeneralNotClosedNum = generalHiddenRectificationOutputsList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.NoRecNum),
|
GeneralNotClosedNum = generalHiddenRectificationOutputsList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.NoRecNum),
|
||||||
MajorClosedNum = majorHiddenRectificationOutputsList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.RecNum),
|
MajorClosedNum = majorHiddenRectificationOutputsList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.RecNum),
|
||||||
MajorNotClosedNum = majorHiddenRectificationOutputsList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.NoRecNum),
|
MajorNotClosedNum = majorHiddenRectificationOutputsList.Where(x => _beUnderConstructionList.Contains(x.ProjectId)).Sum(x => x.NoRecNum),
|
||||||
LowRiskNum = securityRiskOutputListTask.Result.Sum(x => x.LowRiskNum),
|
LowRiskNum = securityRiskOutputListTask.Result.Sum(x => x.LowRiskNum),
|
||||||
GeneralRiskNum = securityRiskOutputListTask.Result.Sum(x => x.GeneralRiskNum),
|
GeneralRiskNum = securityRiskOutputListTask.Result.Sum(x => x.GeneralRiskNum),
|
||||||
MediumRiskNum = securityRiskOutputListTask.Result.Sum(x => x.MediumRiskNum),
|
MediumRiskNum = securityRiskOutputListTask.Result.Sum(x => x.MediumRiskNum),
|
||||||
HighRiskNum = securityRiskOutputListTask.Result.Sum(x => x.HighRiskNum),
|
HighRiskNum = securityRiskOutputListTask.Result.Sum(x => x.HighRiskNum),
|
||||||
CompletedNum = largeEngineeringOutputsTask.Result.Sum(x => x.CompletedNum),
|
CompletedNum = largeEngineeringOutputsTask.Result.Sum(x => x.CompletedNum),
|
||||||
TrainPersonNum = largeEngineeringOutputsTask.Result.Sum(x => x.TrainPersonNum),
|
TrainPersonNum = largeEngineeringOutputsTask.Result.Sum(x => x.TrainPersonNum),
|
||||||
ConstructionNum = largeEngineeringOutputsTask.Result.Sum(x => x.ConstructionNum),
|
ConstructionNum = largeEngineeringOutputsTask.Result.Sum(x => x.ConstructionNum),
|
||||||
FinishedNum = largeEngineeringOutputsTask.Result.Sum(x => x.FinishedNum),
|
FinishedNum = largeEngineeringOutputsTask.Result.Sum(x => x.FinishedNum),
|
||||||
SuperCompletedNum = largeEngineeringOutputsTask.Result.Sum(x => x.SuperCompletedNum),
|
SuperCompletedNum = largeEngineeringOutputsTask.Result.Sum(x => x.SuperCompletedNum),
|
||||||
SuperTrainPersonNum = largeEngineeringOutputsTask.Result.Sum(x => x.SuperTrainPersonNum),
|
SuperTrainPersonNum = largeEngineeringOutputsTask.Result.Sum(x => x.SuperTrainPersonNum),
|
||||||
SuperConstructionNum = largeEngineeringOutputsTask.Result.Sum(x => x.SuperConstructionNum)
|
SuperConstructionNum = largeEngineeringOutputsTask.Result.Sum(x => x.SuperConstructionNum)
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_unitType == 0)
|
if (_unitType == 0)
|
||||||
{
|
{
|
||||||
table.BeUnderConstructionNum = beUnderConstructionList.Count();
|
table.BeUnderConstructionNum = beUnderConstructionList.Count();
|
||||||
table.ShutdownNum = shutdownList.Count();
|
table.ShutdownNum = shutdownList.Count();
|
||||||
table.SafetyInjectionEngineer = safetyInjectionEngineerList.Count();
|
table.SafetyInjectionEngineer = safetyInjectionEngineerList.Count();
|
||||||
table.EnterpriseTopicsMeetingNum = enterpriseTopicsMeetingList.Count();
|
table.EnterpriseTopicsMeetingNum = enterpriseTopicsMeetingList.Count();
|
||||||
table.CertificateANum = certificateAList.Count();
|
table.CertificateANum = certificateAList.Count();
|
||||||
table.CertificateBNum = certificateBList.Count();
|
table.CertificateBNum = certificateBList.Count();
|
||||||
table.CertificateCNum = certificateCList.Count();
|
table.CertificateCNum = certificateCList.Count();
|
||||||
table.SafetyCommitteeMeetingNum = safetyCommitteeMeetingList.Count();
|
table.SafetyCommitteeMeetingNum = safetyCommitteeMeetingList.Count();
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (_unitType == 1)
|
else if (_unitType == 1)
|
||||||
{
|
{
|
||||||
table.BeUnderConstructionNum = beUnderConstructionList.Count(x => x.UnitId == _unitId);
|
table.BeUnderConstructionNum = beUnderConstructionList.Count(x => x.UnitId == _unitId);
|
||||||
table.ShutdownNum = shutdownList.Count(x => x.UnitId == _unitId);
|
table.ShutdownNum = shutdownList.Count(x => x.UnitId == _unitId);
|
||||||
table.SafetyCommitteeMeetingNum = safetyCommitteeMeetingList.Count(x => x.UnitId == _unitId);
|
table.SafetyCommitteeMeetingNum = safetyCommitteeMeetingList.Count(x => x.UnitId == _unitId);
|
||||||
table.SafetyInjectionEngineer = safetyInjectionEngineerList.Count(x => _beUnderConstructionList.Contains(x.ProjectId) || x.UnitId == _unitId);
|
table.SafetyInjectionEngineer = safetyInjectionEngineerList.Count(x => _beUnderConstructionList.Contains(x.ProjectId) || x.UnitId == _unitId);
|
||||||
table.EnterpriseTopicsMeetingNum = safetyInjectionEngineerList.Count(x => _beUnderConstructionList.Contains(x.ProjectId) || x.UnitId == _unitId);
|
table.EnterpriseTopicsMeetingNum = safetyInjectionEngineerList.Count(x => _beUnderConstructionList.Contains(x.ProjectId) || x.UnitId == _unitId);
|
||||||
table.CertificateANum = certificateAList.Count(x => _beUnderConstructionList.Contains(x.ProjectId) || x.UnitId == _unitId);
|
table.CertificateANum = certificateAList.Count(x => _beUnderConstructionList.Contains(x.ProjectId) || x.UnitId == _unitId);
|
||||||
table.CertificateBNum = certificateBList.Count(x => _beUnderConstructionList.Contains(x.ProjectId) || x.UnitId == _unitId);
|
table.CertificateBNum = certificateBList.Count(x => _beUnderConstructionList.Contains(x.ProjectId) || x.UnitId == _unitId);
|
||||||
table.CertificateCNum = certificateCList.Count(x => _beUnderConstructionList.Contains(x.ProjectId) || x.UnitId == _unitId);
|
table.CertificateCNum = certificateCList.Count(x => _beUnderConstructionList.Contains(x.ProjectId) || x.UnitId == _unitId);
|
||||||
}
|
}
|
||||||
|
|
||||||
_hsseData = table;
|
_hsseData = table;
|
||||||
return _hsseData;
|
return _hsseData;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -326,35 +327,36 @@ public class MainSevice
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<HSSEDataHiddenDangerDetailItem> GetDataHiddenDangerDetailItems()
|
public List<HSSEDataHiddenDangerDetailItem> GetDataHiddenDangerDetailItems()
|
||||||
{
|
{
|
||||||
var db = Funs.DB;
|
var db = Funs.DB;
|
||||||
var list = from x in db.HSSE_Hazard_HazardRegister
|
var list = from x in db.HSSE_Hazard_HazardRegister
|
||||||
where _beUnderConstructionList.Contains(x.ProjectId)
|
where _beUnderConstructionList.Contains(x.ProjectId)
|
||||||
select x;
|
select x;
|
||||||
var data = (from x in list
|
var data = (from x in list
|
||||||
join y in db.HSSE_Hazard_HazardRegisterTypes on x.RegisterTypesId equals y.RegisterTypesId
|
join y in db.HSSE_Hazard_HazardRegisterTypes on x.RegisterTypesId equals y.RegisterTypesId
|
||||||
group x by new
|
group x by new
|
||||||
{ x.ProjectId, x.RegisterTypesId, y.RegisterTypesName }
|
{ x.ProjectId, x.RegisterTypesId, y.RegisterTypesName }
|
||||||
into g
|
into g
|
||||||
select new
|
select new
|
||||||
{
|
{
|
||||||
UnitId = _unitId,
|
UnitId = _unitId,
|
||||||
ProjectId = g.Key.ProjectId,
|
ProjectId = g.Key.ProjectId,
|
||||||
TypeName = g.Key.RegisterTypesName,
|
TypeName = g.Key.RegisterTypesName,
|
||||||
TotalNum = g.Count(),
|
TotalNum = g.Count(),
|
||||||
NeedRectifyNum = g.Count(x => x.States == "1"),
|
NeedRectifyNum = g.Count(x => x.States == "1"),
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
var result = (from x in data
|
var result = (from x in data
|
||||||
group x by x.TypeName into g
|
group x by x.TypeName into g
|
||||||
select new Model.HSSEDataHiddenDangerDetailItem
|
select new Model.HSSEDataHiddenDangerDetailItem
|
||||||
{
|
{
|
||||||
Id = SQLHelper.GetNewID(),
|
Id = SQLHelper.GetNewID(),
|
||||||
TypeName = g.Key,
|
TypeName = g.Key,
|
||||||
NeedRectifyNum = g.Sum(p => p.NeedRectifyNum),
|
NeedRectifyNum = g.Sum(p => p.NeedRectifyNum),
|
||||||
TotalNum = g.Sum(p => p.TotalNum)
|
TotalNum = g.Sum(p => p.TotalNum)
|
||||||
}).ToList();
|
}).ToList();
|
||||||
return result;
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} }
|
}
|
|
@ -300,6 +300,7 @@
|
||||||
<Content Include="BaseInfo\WorkPost.aspx" />
|
<Content Include="BaseInfo\WorkPost.aspx" />
|
||||||
<Content Include="BaseInfo\WorkStage.aspx" />
|
<Content Include="BaseInfo\WorkStage.aspx" />
|
||||||
<Content Include="bin\Microsoft.QualityTools.Testing.Fakes.dll" />
|
<Content Include="bin\Microsoft.QualityTools.Testing.Fakes.dll" />
|
||||||
|
<Content Include="common\mainnew.aspx" />
|
||||||
<Content Include="common\main1.aspx" />
|
<Content Include="common\main1.aspx" />
|
||||||
<Content Include="common\main2024.aspx" />
|
<Content Include="common\main2024.aspx" />
|
||||||
<Content Include="common\mainMenu_HJGL.aspx" />
|
<Content Include="common\mainMenu_HJGL.aspx" />
|
||||||
|
@ -1080,10 +1081,175 @@
|
||||||
<Content Include="HSSE\QualityAudit\SubcontractLeasingProtocolEdit.aspx" />
|
<Content Include="HSSE\QualityAudit\SubcontractLeasingProtocolEdit.aspx" />
|
||||||
<Content Include="HSSE\QualityAudit\SubcontractLeasingProtocol.aspx" />
|
<Content Include="HSSE\QualityAudit\SubcontractLeasingProtocol.aspx" />
|
||||||
<Content Include="HSSE\SitePerson\ProjectWorkPersonStatistic.aspx" />
|
<Content Include="HSSE\SitePerson\ProjectWorkPersonStatistic.aspx" />
|
||||||
|
<Content Include="indexold.aspx" />
|
||||||
<Content Include="ProjectData\LocationSelect.aspx" />
|
<Content Include="ProjectData\LocationSelect.aspx" />
|
||||||
<Content Include="QualityAudit\SubcontractLeasingProtocolAttachUrl\2024-11\638666775877584960_微信图片_20241106163356.png" />
|
<Content Include="QualityAudit\SubcontractLeasingProtocolAttachUrl\2024-11\638666775877584960_微信图片_20241106163356.png" />
|
||||||
<Content Include="QualityAudit\SubcontractLeasingProtocolAttachUrl\2024-11\638666786935571590_微信图片_20241106163356.png" />
|
<Content Include="QualityAudit\SubcontractLeasingProtocolAttachUrl\2024-11\638666786935571590_微信图片_20241106163356.png" />
|
||||||
<Content Include="QualityAudit\SubcontractLeasingProtocolAttachUrl\2024-11\638666869899670730_微信图片_20241106163356.png" />
|
<Content Include="QualityAudit\SubcontractLeasingProtocolAttachUrl\2024-11\638666869899670730_微信图片_20241106163356.png" />
|
||||||
|
<Content Include="res\font\iconfont.css" />
|
||||||
|
<Content Include="res\font\iconfont.js" />
|
||||||
|
<Content Include="res\home\css\common.css" />
|
||||||
|
<Content Include="res\home\css\element-ui.css" />
|
||||||
|
<Content Include="res\home\css\head.css" />
|
||||||
|
<Content Include="res\home\css\index copy.css" />
|
||||||
|
<Content Include="res\home\css\index.css" />
|
||||||
|
<Content Include="res\images\01\01.png" />
|
||||||
|
<Content Include="res\images\01\01bj.png" />
|
||||||
|
<Content Include="res\images\01\01headbj1.png" />
|
||||||
|
<Content Include="res\images\01\02.png" />
|
||||||
|
<Content Include="res\images\01\03.png" />
|
||||||
|
<Content Include="res\images\01\04.png" />
|
||||||
|
<Content Include="res\images\01\05.png" />
|
||||||
|
<Content Include="res\images\01\b2.png" />
|
||||||
|
<Content Include="res\images\01\b3.png" />
|
||||||
|
<Content Include="res\images\01\b4.png" />
|
||||||
|
<Content Include="res\images\01\l01.png" />
|
||||||
|
<Content Include="res\images\01\l08.png" />
|
||||||
|
<Content Include="res\images\01\leftbj.png" />
|
||||||
|
<Content Include="res\images\01\m07.png" />
|
||||||
|
<Content Include="res\images\01\m08.png" />
|
||||||
|
<Content Include="res\images\01\m09.png" />
|
||||||
|
<Content Include="res\images\01\m12.png" />
|
||||||
|
<Content Include="res\images\01\m14.png" />
|
||||||
|
<Content Include="res\images\01\r01.png" />
|
||||||
|
<Content Include="res\images\01\r04.png" />
|
||||||
|
<Content Include="res\images\01\r10.png" />
|
||||||
|
<Content Include="res\images\01\r11.png" />
|
||||||
|
<Content Include="res\images\01\r15.png" />
|
||||||
|
<Content Include="res\images\01\r16.png" />
|
||||||
|
<Content Include="res\images\01\r18.png" />
|
||||||
|
<Content Include="res\images\01\r20.png" />
|
||||||
|
<Content Include="res\images\01\r23.png" />
|
||||||
|
<Content Include="res\images\01\r25.png" />
|
||||||
|
<Content Include="res\images\01\top.png" />
|
||||||
|
<Content Include="res\images\02\01headbj.png" />
|
||||||
|
<Content Include="res\images\02\02icon1.png" />
|
||||||
|
<Content Include="res\images\02\02navbj.png" />
|
||||||
|
<Content Include="res\images\02\03icon1.png" />
|
||||||
|
<Content Include="res\images\02\03itembg.png" />
|
||||||
|
<Content Include="res\images\02\03line.png" />
|
||||||
|
<Content Include="res\images\02\03select.png" />
|
||||||
|
<Content Include="res\images\02\04bj02.png" />
|
||||||
|
<Content Include="res\images\02\04icon2.png" />
|
||||||
|
<Content Include="res\images\02\05icon-1.png" />
|
||||||
|
<Content Include="res\images\02\05模块bt.png" />
|
||||||
|
<Content Include="res\images\02\06bj.png" />
|
||||||
|
<Content Include="res\images\02\06icon1.png" />
|
||||||
|
<Content Include="res\images\02\07aqtj01.png" />
|
||||||
|
<Content Include="res\images\02\08aqtj02.png" />
|
||||||
|
<Content Include="res\images\02\09aqtj03.png" />
|
||||||
|
<Content Include="res\images\02\10zzyj.png" />
|
||||||
|
<Content Include="res\images\02\11zsyj.png" />
|
||||||
|
<Content Include="res\images\02\12jxyj.png" />
|
||||||
|
<Content Include="res\images\02\14zlyj.png" />
|
||||||
|
<Content Include="res\images\02\15yjbj.png" />
|
||||||
|
<Content Include="res\images\02\16gc 1.png" />
|
||||||
|
<Content Include="res\images\02\17gcbk.png" />
|
||||||
|
<Content Include="res\images\02\18zlbj.png" />
|
||||||
|
<Content Include="res\images\02\19jcsg.png" />
|
||||||
|
<Content Include="res\images\02\19jcsg1.png" />
|
||||||
|
<Content Include="res\images\02\20jgsg.png" />
|
||||||
|
<Content Include="res\images\02\20jgsg1.png" />
|
||||||
|
<Content Include="res\images\02\21ztsg.png" />
|
||||||
|
<Content Include="res\images\02\21ztsg1.png" />
|
||||||
|
<Content Include="res\images\02\22zszx.png" />
|
||||||
|
<Content Include="res\images\02\22zszx1.png" />
|
||||||
|
<Content Include="res\images\02\23jdgc.png" />
|
||||||
|
<Content Include="res\images\02\23jdgc1.png" />
|
||||||
|
<Content Include="res\images\02\24ys.png" />
|
||||||
|
<Content Include="res\images\02\24ys1.png" />
|
||||||
|
<Content Include="res\images\02\25wg.png" />
|
||||||
|
<Content Include="res\images\02\25wg1.png" />
|
||||||
|
<Content Include="res\images\02\26zhbj.png" />
|
||||||
|
<Content Include="res\images\02\27lwbj.png" />
|
||||||
|
<Content Include="res\images\02\28bf.png" />
|
||||||
|
<Content Include="res\images\02\29hjbj.png" />
|
||||||
|
<Content Include="res\images\02\30wd.png" />
|
||||||
|
<Content Include="res\images\02\31sd.png" />
|
||||||
|
<Content Include="res\images\02\32fs.png" />
|
||||||
|
<Content Include="res\images\02\33zy.png" />
|
||||||
|
<Content Include="res\images\02\34pm25.png" />
|
||||||
|
<Content Include="res\images\02\35pm10.png" />
|
||||||
|
<Content Include="res\images\02\36bj.png" />
|
||||||
|
<Content Include="res\images\02\37.png" />
|
||||||
|
<Content Include="res\images\02\bj 2.png" />
|
||||||
|
<Content Include="res\images\02\l01.png" />
|
||||||
|
<Content Include="res\images\02\m01.png" />
|
||||||
|
<Content Include="res\images\02\m02.png" />
|
||||||
|
<Content Include="res\images\02\n01.png" />
|
||||||
|
<Content Include="res\images\02\n02.png" />
|
||||||
|
<Content Include="res\images\02\n03.png" />
|
||||||
|
<Content Include="res\images\02\n04.png" />
|
||||||
|
<Content Include="res\images\bj.jpg" />
|
||||||
|
<Content Include="res\images\logo.png" />
|
||||||
|
<Content Include="res\images\my_face_80.png" />
|
||||||
|
<Content Include="res\images\nav01.png" />
|
||||||
|
<Content Include="res\images\nav02.png" />
|
||||||
|
<Content Include="res\images\nav03.png" />
|
||||||
|
<Content Include="res\images\nav04.png" />
|
||||||
|
<Content Include="res\images\Signature0.png" />
|
||||||
|
<Content Include="res\images\sprite.png" />
|
||||||
|
<Content Include="res\images\v1\01icon-天气.png" />
|
||||||
|
<Content Include="res\images\v1\01icon1.png" />
|
||||||
|
<Content Include="res\images\v1\02icon.png" />
|
||||||
|
<Content Include="res\images\v1\03icon.png" />
|
||||||
|
<Content Include="res\images\v1\04icon.png" />
|
||||||
|
<Content Include="res\images\v1\05icon.png" />
|
||||||
|
<Content Include="res\images\v1\06icon.png" />
|
||||||
|
<Content Include="res\images\v1\06navbj1.png" />
|
||||||
|
<Content Include="res\images\v1\06navbj2.png" />
|
||||||
|
<Content Include="res\images\v1\07headbj.png" />
|
||||||
|
<Content Include="res\images\v1\09titlebg.png" />
|
||||||
|
<Content Include="res\images\v1\10bk.png" />
|
||||||
|
<Content Include="res\images\v1\11aqbj.png" />
|
||||||
|
<Content Include="res\images\v1\12bk.png" />
|
||||||
|
<Content Include="res\images\v1\13bk.png" />
|
||||||
|
<Content Include="res\images\v1\15bj.png" />
|
||||||
|
<Content Include="res\images\v1\16bk.png" />
|
||||||
|
<Content Include="res\images\v1\17change.png" />
|
||||||
|
<Content Include="res\images\v1\bj 2.png" />
|
||||||
|
<Content Include="res\images\v1\item.png" />
|
||||||
|
<Content Include="res\image\01.png" />
|
||||||
|
<Content Include="res\image\02.png" />
|
||||||
|
<Content Include="res\image\03.png" />
|
||||||
|
<Content Include="res\image\04.png" />
|
||||||
|
<Content Include="res\image\05.png" />
|
||||||
|
<Content Include="res\image\06.png" />
|
||||||
|
<Content Include="res\image\07.png" />
|
||||||
|
<Content Include="res\image\08.png" />
|
||||||
|
<Content Include="res\image\09.png" />
|
||||||
|
<Content Include="res\image\10.png" />
|
||||||
|
<Content Include="res\image\11.png" />
|
||||||
|
<Content Include="res\image\12.png" />
|
||||||
|
<Content Include="res\image\13.png" />
|
||||||
|
<Content Include="res\image\14.png" />
|
||||||
|
<Content Include="res\image\15.png" />
|
||||||
|
<Content Include="res\image\16.png" />
|
||||||
|
<Content Include="res\image\17.png" />
|
||||||
|
<Content Include="res\image\18.png" />
|
||||||
|
<Content Include="res\image\19.png" />
|
||||||
|
<Content Include="res\image\20.png" />
|
||||||
|
<Content Include="res\image\21.png" />
|
||||||
|
<Content Include="res\image\22.png" />
|
||||||
|
<Content Include="res\image\23.png" />
|
||||||
|
<Content Include="res\image\acc.png" />
|
||||||
|
<Content Include="res\image\del.png" />
|
||||||
|
<Content Include="res\image\home.png" />
|
||||||
|
<Content Include="res\image\logo.png" />
|
||||||
|
<Content Include="res\image\message.png" />
|
||||||
|
<Content Include="res\image\user.png" />
|
||||||
|
<Content Include="res\image\小心化学反应-13.png" />
|
||||||
|
<Content Include="res\image\已中标-01.png" />
|
||||||
|
<Content Include="res\lib\china1.js" />
|
||||||
|
<Content Include="res\lib\vue.min.js" />
|
||||||
|
<Content Include="res\map\baiduMap.js" />
|
||||||
|
<Content Include="res\map\MarkerClusterer.js" />
|
||||||
|
<Content Include="res\map\TextIconOverlay.js" />
|
||||||
|
<Content Include="res\map\TrafficControl.css" />
|
||||||
|
<Content Include="res\map\TrafficControl.js" />
|
||||||
|
<Content Include="res\ol\bd09.js" />
|
||||||
|
<Content Include="res\ol\ol.css" />
|
||||||
|
<Content Include="res\ol\ol.js" />
|
||||||
<Content Include="ThreeYearAction\ConstructionStandardization\BenchmarkWorkSite.aspx" />
|
<Content Include="ThreeYearAction\ConstructionStandardization\BenchmarkWorkSite.aspx" />
|
||||||
<Content Include="ThreeYearAction\ConstructionStandardization\BenchmarkWorkSiteEdit.aspx" />
|
<Content Include="ThreeYearAction\ConstructionStandardization\BenchmarkWorkSiteEdit.aspx" />
|
||||||
<Content Include="ThreeYearAction\ConstructionStandardization\BenchmarkWorkSiteView.aspx" />
|
<Content Include="ThreeYearAction\ConstructionStandardization\BenchmarkWorkSiteView.aspx" />
|
||||||
|
@ -2047,6 +2213,12 @@
|
||||||
<Content Include="res\indexv3\assets\iconfont\iconfont.ttf" />
|
<Content Include="res\indexv3\assets\iconfont\iconfont.ttf" />
|
||||||
<Content Include="res\indexv3\assets\iconfont\iconfont.woff" />
|
<Content Include="res\indexv3\assets\iconfont\iconfont.woff" />
|
||||||
<Content Include="res\indexv3\assets\iconfont\iconfont.woff2" />
|
<Content Include="res\indexv3\assets\iconfont\iconfont.woff2" />
|
||||||
|
<Content Include="res\font\iconfont.json" />
|
||||||
|
<Content Include="res\font\iconfont.ttf" />
|
||||||
|
<Content Include="res\font\iconfont.woff" />
|
||||||
|
<Content Include="res\font\iconfont.woff2" />
|
||||||
|
<Content Include="res\ol\ol.css.map" />
|
||||||
|
<Content Include="res\ol\ol.js.map" />
|
||||||
<None Include="Scripts\jquery-2.1.1.intellisense.js" />
|
<None Include="Scripts\jquery-2.1.1.intellisense.js" />
|
||||||
<Content Include="Scripts\jquery-2.1.1.js" />
|
<Content Include="Scripts\jquery-2.1.1.js" />
|
||||||
<Content Include="Scripts\jquery-2.1.1.min.js" />
|
<Content Include="Scripts\jquery-2.1.1.min.js" />
|
||||||
|
@ -6755,6 +6927,13 @@
|
||||||
<Compile Include="BaseInfo\WorkStage.aspx.designer.cs">
|
<Compile Include="BaseInfo\WorkStage.aspx.designer.cs">
|
||||||
<DependentUpon>WorkStage.aspx</DependentUpon>
|
<DependentUpon>WorkStage.aspx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="common\mainnew.aspx.cs">
|
||||||
|
<DependentUpon>mainnew.aspx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="common\mainnew.aspx.designer.cs">
|
||||||
|
<DependentUpon>mainnew.aspx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="common\main1.aspx.cs">
|
<Compile Include="common\main1.aspx.cs">
|
||||||
<DependentUpon>main1.aspx</DependentUpon>
|
<DependentUpon>main1.aspx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
@ -12056,6 +12235,13 @@
|
||||||
<Compile Include="HSSE\SitePerson\ProjectWorkPersonStatistic.aspx.designer.cs">
|
<Compile Include="HSSE\SitePerson\ProjectWorkPersonStatistic.aspx.designer.cs">
|
||||||
<DependentUpon>ProjectWorkPersonStatistic.aspx</DependentUpon>
|
<DependentUpon>ProjectWorkPersonStatistic.aspx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="indexold.aspx.cs">
|
||||||
|
<DependentUpon>indexold.aspx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="indexold.aspx.designer.cs">
|
||||||
|
<DependentUpon>indexold.aspx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="ProjectData\LocationSelect.aspx.cs">
|
<Compile Include="ProjectData\LocationSelect.aspx.cs">
|
||||||
<DependentUpon>LocationSelect.aspx</DependentUpon>
|
<DependentUpon>LocationSelect.aspx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
|
|
@ -179,6 +179,9 @@
|
||||||
<%--<f:Tab ID="Tab1" Title="首页"
|
<%--<f:Tab ID="Tab1" Title="首页"
|
||||||
EnableIFrame="true" IFrameUrl="~/common/main1.aspx" runat="server">
|
EnableIFrame="true" IFrameUrl="~/common/main1.aspx" runat="server">
|
||||||
</f:Tab>--%>
|
</f:Tab>--%>
|
||||||
|
<f:Tab ID="Tab1" Title="首页"
|
||||||
|
EnableIFrame="true" IFrameUrl="~/common/mainnew.aspx" runat="server">
|
||||||
|
</f:Tab>
|
||||||
<f:Tab ID="Tab2" Title="安全"
|
<f:Tab ID="Tab2" Title="安全"
|
||||||
EnableIFrame="true" IFrameUrl="~/common/mainMenu_HSSE2.aspx" runat="server">
|
EnableIFrame="true" IFrameUrl="~/common/mainMenu_HSSE2.aspx" runat="server">
|
||||||
</f:Tab>
|
</f:Tab>
|
||||||
|
|
|
@ -50,6 +50,15 @@ namespace FineUIPro.Web.common
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::FineUIPro.TabStrip mainTabStrip;
|
protected global::FineUIPro.TabStrip mainTabStrip;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Tab1 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Tab Tab1;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Tab2 控件。
|
/// Tab2 控件。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -0,0 +1,901 @@
|
||||||
|
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="mainnew.aspx.cs" Inherits="FineUIPro.Web.common.mainnew" Async="true" %>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head runat="server">
|
||||||
|
<%--<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>--%>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||||
|
<title></title>
|
||||||
|
<script src="../res/lib/flex.js"></script>
|
||||||
|
<link rel="stylesheet" href="../res/home/css/common.css"/>
|
||||||
|
<link rel="stylesheet" href="../res/home/css/index.css"/>
|
||||||
|
<script src="../res/assets/js/jquery-3.7.1.min.js"></script>
|
||||||
|
<style >
|
||||||
|
[v-cloak] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="bg1">
|
||||||
|
<div id="app">
|
||||||
|
<div class="container" v-cloak>
|
||||||
|
<div class="side">
|
||||||
|
<!-- 组织机构人员 -->
|
||||||
|
<div class="block" style="height: 3.35rem;">
|
||||||
|
<div class="block-tit"><span>组织机构人员</span></div>
|
||||||
|
<div id="org" class="block-main">
|
||||||
|
<div class="org-row">
|
||||||
|
<div class="org-box">
|
||||||
|
<div class="org-box-value">{{form.org.branchSum}}</div>
|
||||||
|
<div class="org-box-label">分支结构人数</div>
|
||||||
|
</div>
|
||||||
|
<div class="org-box">
|
||||||
|
<div class="org-box-value">{{form.org.projectSum}}</div>
|
||||||
|
<div class="org-box-label">项目人数</div>
|
||||||
|
</div>
|
||||||
|
<div class="org-box">
|
||||||
|
<div class="org-box-value">{{form.org.groupSum}}</div>
|
||||||
|
<div class="org-box-label">企业总部人数</div>
|
||||||
|
</div>
|
||||||
|
<div class="org-box">
|
||||||
|
<div class="org-box-value">{{form.org.director}}</div>
|
||||||
|
<div class="org-box-label">总监</div>
|
||||||
|
</div>
|
||||||
|
<div class="org-box">
|
||||||
|
<div class="org-box-value">{{form.org.fullTime}}</div>
|
||||||
|
<div class="org-box-label">专职</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="org-row1">
|
||||||
|
<i></i>
|
||||||
|
<div class="row1-inner">
|
||||||
|
<div class="row1-tit">分支机构</div>
|
||||||
|
<div class="row1-inner-children">
|
||||||
|
<p><span>总监</span><span>{{form.org.branchDirector}}</span></p>
|
||||||
|
<p><span>专职</span><span>{{form.org.branchFullTime}}</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="org-row1">
|
||||||
|
<i></i>
|
||||||
|
<div class="row1-inner">
|
||||||
|
<div class="row1-tit">注安师</div>
|
||||||
|
<div class="row1-inner-children">
|
||||||
|
<p><span>在岗职业</span><span>{{form.org.attentionSafetyEngineer}}</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="org-row1">
|
||||||
|
<i></i>
|
||||||
|
<div class="row1-inner">
|
||||||
|
<div class="row1-tit">项目人数</div>
|
||||||
|
<div class="row1-inner-children">
|
||||||
|
<p><span>总监</span><span>{{form.org.projectDirector}}</span></p>
|
||||||
|
<p><span>在职</span><span>{{form.org.projectFullTime}}</span></p>
|
||||||
|
<p><span>安全监护</span><span>{{form.org.projectSafetyMonitoring}}</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="org-row1">
|
||||||
|
<i></i>
|
||||||
|
<div class="row1-inner">
|
||||||
|
<div class="row1-tit">三类人员</div>
|
||||||
|
<div class="row1-inner-children">
|
||||||
|
<p><span>A证</span><span>{{form.org.aCard}}</span></p>
|
||||||
|
<p><span>B证</span><span>{{form.org.bCard}}</span></p>
|
||||||
|
<p><span>C证</span><span>{{form.org.cCard}}</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 预警警报 -->
|
||||||
|
<div id="Early" class="block" style="height: 1.725rem;margin-top: 0.25rem;">
|
||||||
|
<div class="block-tit"><span>预警警报</span></div>
|
||||||
|
<div class="block-main">
|
||||||
|
<div class="early-box">
|
||||||
|
<div class="early-box-laber">水电监测</div>
|
||||||
|
<div class="early-box-value">{{form.warning.hydropower}}吨</div>
|
||||||
|
<div class="early-box-value">{{form.warning.hydropower2}}Kwh</div>
|
||||||
|
</div>
|
||||||
|
<div class="early-box">
|
||||||
|
<div class="early-box-laber">塔式起重机<br />预警</div>
|
||||||
|
<div class="early-box-value">{{form.warning.towercrane}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="early-box">
|
||||||
|
<div class="early-box-laber">基坑监测<br />预警</div>
|
||||||
|
<div class="early-box-value">{{form.warning.foundationpit}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="early-box">
|
||||||
|
<div class="early-box-laber">车辆冲洗<br />监测</div>
|
||||||
|
<div class="early-box-value">{{form.warning.car}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 安全/质量问题 -->
|
||||||
|
<div id="check" class="block" style="height: 1.725rem;margin-top: 0.25rem;">
|
||||||
|
<div class="block-tit">
|
||||||
|
<div :class="[checkIdx == 0?'selected':'']" @click="onChangeCheck(0)"><span>安全检查</span></div>
|
||||||
|
<div :class="[checkIdx == 1?'selected':'']" @click="onChangeCheck(1)"><span>质量检查</span></div>
|
||||||
|
</div>
|
||||||
|
<div class="block-main">
|
||||||
|
<div class="early-box">
|
||||||
|
<div class="early-box-laber">问题</div>
|
||||||
|
<div class="early-box-value">75454<span>项</span></div>
|
||||||
|
</div>
|
||||||
|
<div class="early-box">
|
||||||
|
<div class="early-box-laber">未完成</div>
|
||||||
|
<div class="early-box-value">0<span>项</span></div>
|
||||||
|
</div>
|
||||||
|
<div class="early-box">
|
||||||
|
<div class="early-box-laber">整改闭环</div>
|
||||||
|
<div class="early-box-value">0<span>项</span></div>
|
||||||
|
</div>
|
||||||
|
<div class="early-box">
|
||||||
|
<div class="early-box-laber">整改率</div>
|
||||||
|
<div class="early-box-value">0<span>%</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 风险分级管控 -->
|
||||||
|
<div id="risk" class="block" style="height: 1.675rem;margin-top: 0.25rem;">
|
||||||
|
<div class="block-tit"><span>风险分级管控</span></div>
|
||||||
|
<div class="block-main">
|
||||||
|
<div class="box">
|
||||||
|
<i></i>
|
||||||
|
<div class="box-row">
|
||||||
|
<div class="box-row-label">重大风险</div>
|
||||||
|
<div class="box-row-value">6</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="box">
|
||||||
|
<i></i>
|
||||||
|
<div class="box-row">
|
||||||
|
<div class="box-row-label">重大风险</div>
|
||||||
|
<div class="box-row-value">6</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="box">
|
||||||
|
<i></i>
|
||||||
|
<div class="box-row">
|
||||||
|
<div class="box-row-label">重大风险</div>
|
||||||
|
<div class="box-row-value">6</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="box">
|
||||||
|
<i></i>
|
||||||
|
<div class="box-row">
|
||||||
|
<div class="box-row-label">重大风险</div>
|
||||||
|
<div class="box-row-value">6</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 费用、机具及会议 -->
|
||||||
|
<div id="tools" class="block" style="height: 2.15rem;margin-top: 0.25rem;">
|
||||||
|
<div class="block-tit"><span>费用、机具及会议</span></div>
|
||||||
|
<div class="block-main">
|
||||||
|
<div class="t-box">
|
||||||
|
<div class="t-box-tit">
|
||||||
|
<i class="iconfont icon-l10" style="color: #FFBF46;font-size: 20px;"></i>
|
||||||
|
<p>安全费用</p>
|
||||||
|
</div>
|
||||||
|
<div class="r-row">
|
||||||
|
<div class="r-row-label">费用提取</div>
|
||||||
|
<div class="r-row-value"><span>10</span><span>亿元</span></div>
|
||||||
|
</div>
|
||||||
|
<div class="r-row">
|
||||||
|
<div class="r-row-label">费用使用</div>
|
||||||
|
<div class="r-row-value"><span>10</span><span>亿元</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="t-box">
|
||||||
|
<div class="t-box-tit">
|
||||||
|
<i class="iconfont icon-l10" style="color: #00DEFF;font-size: 20px;"></i>
|
||||||
|
<p>施工机具设备</p>
|
||||||
|
</div>
|
||||||
|
<div class="r-row">
|
||||||
|
<div class="r-row-label">在用个数</div>
|
||||||
|
<div class="r-row-value"><span>10</span><span>个</span></div>
|
||||||
|
</div>
|
||||||
|
<div class="r-row">
|
||||||
|
<div class="r-row-label">特种设备</div>
|
||||||
|
<div class="r-row-value"><span>10</span><span>个</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="t-box">
|
||||||
|
<div class="t-box-tit">
|
||||||
|
<i class="iconfont icon-l10" style="color: #00DEFF;font-size: 20px;"></i>
|
||||||
|
<p>会议</p>
|
||||||
|
</div>
|
||||||
|
<div class="r-row">
|
||||||
|
<div class="r-row-label">班前会</div>
|
||||||
|
<div class="r-row-value"><span>10</span><span>个</span></div>
|
||||||
|
</div>
|
||||||
|
<div class="r-row">
|
||||||
|
<div class="r-row-label">周例会</div>
|
||||||
|
<div class="r-row-value"><span>10</span><span>个</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="center">
|
||||||
|
<div class="map">
|
||||||
|
<div class="project-box" style="margin-top: 0.25rem;">
|
||||||
|
<div class="p-item">
|
||||||
|
<i></i>
|
||||||
|
<div class="p-row">
|
||||||
|
<h6>在建项目</h6>
|
||||||
|
<p><span>937</span><span>项</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="p-item">
|
||||||
|
<i></i>
|
||||||
|
<div class="p-row">
|
||||||
|
<h6>停工项目</h6>
|
||||||
|
<p><span>937</span><span>项</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="p-item">
|
||||||
|
<i></i>
|
||||||
|
<div class="p-row">
|
||||||
|
<h6>参建人数</h6>
|
||||||
|
<p><span>937</span><span>项</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="p-item">
|
||||||
|
<i></i>
|
||||||
|
<div class="p-row">
|
||||||
|
<h6>在施危大工程</h6>
|
||||||
|
<p><span>937</span><span>项</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mapandvideo">
|
||||||
|
<div id="chinaMap"></div>
|
||||||
|
<div id="video">
|
||||||
|
<div class="v-tit">安全云监控</div>
|
||||||
|
<div class="v-player">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<p><span>实时视频:线路1</span> <span>2020-10-10 12:40:26</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 危大工程管控数据 -->
|
||||||
|
<div id="wd" class="block4" style="height: 1.425rem;">
|
||||||
|
<div class="block4-tit"><span>危大工程管控数据</span></div>
|
||||||
|
<div class="block4-main">
|
||||||
|
<div class="wd">
|
||||||
|
<div class="wd-box">
|
||||||
|
<i></i>
|
||||||
|
<div class="wd-row">
|
||||||
|
<div class="wd-row-label">审批完成</div>
|
||||||
|
<div class="wd-row-value"><span>2131</span><span>个</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="wd-box">
|
||||||
|
<i></i>
|
||||||
|
<div class="wd-row">
|
||||||
|
<div class="wd-row-label">施工个数</div>
|
||||||
|
<div class="wd-row-value"><span>2131</span><span>个</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="wd-box">
|
||||||
|
<i></i>
|
||||||
|
<div class="wd-row">
|
||||||
|
<div class="wd-row-label">培训人次数</div>
|
||||||
|
<div class="wd-row-value"><span>2131</span><span>个</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="wd-box">
|
||||||
|
<i></i>
|
||||||
|
<div class="wd-row">
|
||||||
|
<div class="wd-row-label">完工个数</div>
|
||||||
|
<div class="wd-row-value"><span>2131</span><span>个</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="wd-box">
|
||||||
|
<i></i>
|
||||||
|
<div class="wd-row">
|
||||||
|
<div class="wd-row-label">论证个数</div>
|
||||||
|
<div class="wd-row-value"><span>2131</span><span>个</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 应急管理数据 / 工程划分 -->
|
||||||
|
<div class="layout"
|
||||||
|
style="height: 1.85rem;display: grid;grid-template-columns: 5.5rem 4.25rem;gap: 0.25rem;">
|
||||||
|
<div id="yjgl" class="block5" style="height: 100%;">
|
||||||
|
<div class="block5-tit"><span>应急管理数据</span></div>
|
||||||
|
<div class="block5-main">
|
||||||
|
<div class="yjgl">
|
||||||
|
<div class="yjgl-row">
|
||||||
|
<i></i>
|
||||||
|
<h6>综合预案</h6>
|
||||||
|
<p><span>59</span><span>项</span></p>
|
||||||
|
</div>
|
||||||
|
<div class="yjgl-row">
|
||||||
|
<i></i>
|
||||||
|
<h6>专项预案</h6>
|
||||||
|
<p><span>59</span><span>项</span></p>
|
||||||
|
</div>
|
||||||
|
<div class="yjgl-row">
|
||||||
|
<i></i>
|
||||||
|
<h6>现场处置</h6>
|
||||||
|
<p><span>59</span><span>项</span></p>
|
||||||
|
</div>
|
||||||
|
<div class="yjgl-row">
|
||||||
|
<i></i>
|
||||||
|
<h6>演练次数</h6>
|
||||||
|
<p><span>59</span><span>项</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="gchf" class="block6" style="height: 100%;">
|
||||||
|
<div class="block6-tit"><span>工程划分</span></div>
|
||||||
|
<div class="block6-main">
|
||||||
|
<div class="gchf">
|
||||||
|
<div class="gc-box">
|
||||||
|
<i></i>
|
||||||
|
<h6><span>单位工程数</span></h6>
|
||||||
|
<p><span>389</span><span>个</span></p>
|
||||||
|
</div>
|
||||||
|
<div class="gc-box">
|
||||||
|
<i></i>
|
||||||
|
<h6><span>分部工程数</span></h6>
|
||||||
|
<p><span>389</span><span>个</span></p>
|
||||||
|
</div>
|
||||||
|
<div class="gc-box">
|
||||||
|
<i></i>
|
||||||
|
<h6><span>分项工程数</span></h6>
|
||||||
|
<p><span>389</span><span>台</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 质量验收数据 -->
|
||||||
|
<div id="zhl" class="block4" style="height: 2.725rem;">
|
||||||
|
<div class="block4-tit"><span>质量验收数据</span></div>
|
||||||
|
<div class="block4-main">
|
||||||
|
<div class="zhl">
|
||||||
|
<div id="map1"></div>
|
||||||
|
<div id="map2"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="side">
|
||||||
|
<!-- 特种设备质保体系 / 图纸会审/设计交底 -->
|
||||||
|
<div class="layout" style="height: 1.7rem;display: grid;grid-template-columns: 1fr 1fr;gap: 0.25rem;">
|
||||||
|
<div class="block1" id="tzsb">
|
||||||
|
<div class="block-tit1"><span>特种设备质保体系</span></div>
|
||||||
|
<div class="block1-main">
|
||||||
|
<div class="box">
|
||||||
|
<i></i>
|
||||||
|
<div class="row">
|
||||||
|
<div class="row-lab">集团总数</div>
|
||||||
|
<div class="row-val"><span>254</span><span>个</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="block1" id="tzh">
|
||||||
|
<div class="block-tit1"><span>图纸会审/设计交底</span></div>
|
||||||
|
<div class="block1-main">
|
||||||
|
<div class="box">
|
||||||
|
<i></i>
|
||||||
|
<div class="row">
|
||||||
|
<div class="row-lab">次数</div>
|
||||||
|
<div class="row-val"><span>254</span><span>个</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 培训教育 -->
|
||||||
|
<div id="educat" class="block" style="height: 2.225rem;margin-top: 0.25rem;">
|
||||||
|
<div class="block-tit">
|
||||||
|
<div :class="[educationIdx == 0?'selected':'']" @click="onChangeEducation(0)">
|
||||||
|
<span>安全教育</span>
|
||||||
|
</div>
|
||||||
|
<div :class="[educationIdx == 1?'selected':'']" @click="onChangeEducation(1)">
|
||||||
|
<span>质量教育数据</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="block-main">
|
||||||
|
<div class="educa-box">
|
||||||
|
<div class="box1">
|
||||||
|
<div class="box1-row">
|
||||||
|
<div class="educa-row-inner" style="margin-right: 0.125rem;">
|
||||||
|
<div class="educa-lab"><span>专项培训</span></div>
|
||||||
|
<div class="educa-val" style="text-align: right;">
|
||||||
|
<span>10</span><span>次</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<i></i>
|
||||||
|
</div>
|
||||||
|
<div class="box1-row">
|
||||||
|
<div class="educa-row-inner" style="margin-right: 0.125rem;">
|
||||||
|
<div class="educa-lab"><span>特种作业培训</span></div>
|
||||||
|
<div class="educa-val" style="text-align: right;">
|
||||||
|
<span>10</span><span>次</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<i></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="box1"></div>
|
||||||
|
<div class="box1" style="align-items: flex-start;">
|
||||||
|
<div class="box1-row">
|
||||||
|
<i></i>
|
||||||
|
<div class="educa-row-inner" style="margin-left: 0.125rem;">
|
||||||
|
<div class="educa-lab"><span>三级安全教育培训</span></div>
|
||||||
|
<div class="educa-val" style="text-align: left;">
|
||||||
|
<span>10</span><span>次</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="box1-row">
|
||||||
|
<i></i>
|
||||||
|
<div class="educa-row-inner" style="margin-left: 0.125rem;">
|
||||||
|
<div class="educa-lab"><span>安全技术交底</span></div>
|
||||||
|
<div class="educa-val" style="text-align: left;">
|
||||||
|
<span>10</span><span>次</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 报验记录 -->
|
||||||
|
<div id="byjl" class="block" style="height: 2.5375rem;margin-top: 0.25rem;">
|
||||||
|
<div class="block-tit"><span>报验记录</span></div>
|
||||||
|
<div class="block-main">
|
||||||
|
<div class="byjl">
|
||||||
|
<div class="byjl-item">
|
||||||
|
<i></i>
|
||||||
|
<h6>设备报验数</h6>
|
||||||
|
<p><span>102</span><span>台套</span></p>
|
||||||
|
<div class="row">
|
||||||
|
<h6>合格率</h6>
|
||||||
|
<div class="bar">
|
||||||
|
<div style="width: 80%;" class="bar-inner"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="byjl-item">
|
||||||
|
<i></i>
|
||||||
|
<h6>机具报验数</h6>
|
||||||
|
<p><span>102</span><span>台套</span></p>
|
||||||
|
<div class="row">
|
||||||
|
<h6>合格率</h6>
|
||||||
|
<div class="bar">
|
||||||
|
<div style="width: 40%;" class="bar-inner"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="byjl-item">
|
||||||
|
<i></i>
|
||||||
|
<h6>人员报验数</h6>
|
||||||
|
<p><span>102</span><span>人次</span></p>
|
||||||
|
<div class="row">
|
||||||
|
<h6>合格率</h6>
|
||||||
|
<div class="bar">
|
||||||
|
<div style="width: 36%;" class="bar-inner"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 施工方案 / 高风险作业许可 -->
|
||||||
|
<div class="layout"
|
||||||
|
style="height: 2.1875rem;margin-top: 0.25rem;display: grid;grid-template-columns: 3.75rem 2.25rem;gap: 0.25rem;">
|
||||||
|
<div class="block2" id="sgfa">
|
||||||
|
<div class="block2-tit"><span>施工方案</span></div>
|
||||||
|
<div class="block2-main">
|
||||||
|
<div class="sgfa">
|
||||||
|
<div class="sgfa-item">
|
||||||
|
<i></i>
|
||||||
|
<h6>总数</h6>
|
||||||
|
<p><span>394</span><span>个</span></p>
|
||||||
|
</div>
|
||||||
|
<div class="sgfa-item">
|
||||||
|
<i></i>
|
||||||
|
<h6>项目审批数</h6>
|
||||||
|
<p><span>394</span><span>个</span></p>
|
||||||
|
</div>
|
||||||
|
<div class="sgfa-item">
|
||||||
|
<i></i>
|
||||||
|
<h6>企业审批数</h6>
|
||||||
|
<p><span>394</span><span>个</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="xkz" class="block3">
|
||||||
|
<div class="block3-tit"><span>高风险作业许可</span></div>
|
||||||
|
<div class="block3-main">
|
||||||
|
<div class="xkz">
|
||||||
|
<div class="xkz-box">
|
||||||
|
<i></i>
|
||||||
|
<h6>关闭项</h6>
|
||||||
|
<p>12</p>
|
||||||
|
</div>
|
||||||
|
<div class="xkz-box">
|
||||||
|
<i></i>
|
||||||
|
<h6>许可证</h6>
|
||||||
|
<p>12</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 计量器具数据 -->
|
||||||
|
<div id="jlqj" class="block" style="height: 1.975rem;margin-top: 0.25rem;">
|
||||||
|
<div class="block-tit"><span>计量器具数据</span></div>
|
||||||
|
<div class="block-main">
|
||||||
|
<div class="jlqj">
|
||||||
|
<div class="jlqj-box">
|
||||||
|
<i></i>
|
||||||
|
<div class="jlqj-item">
|
||||||
|
<h6>计量器具</h6>
|
||||||
|
<p><span>3672</span><span>台</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<i></i>
|
||||||
|
<div class="jlqj-box">
|
||||||
|
<i></i>
|
||||||
|
<div class="jlqj-item">
|
||||||
|
<h6>校验合格</h6>
|
||||||
|
<p><span>3672</span><span>台</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<%--</div>--%>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
<script src="../res/lib/vue.min.js"></script>
|
||||||
|
<script src="../res/lib/echarts.min.js"></script>
|
||||||
|
<script src="../res/lib/china1.js"></script>
|
||||||
|
<script>
|
||||||
|
new Vue({
|
||||||
|
el: '#app',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 控制显示状态
|
||||||
|
show: false,
|
||||||
|
// 当前激活的导航索引
|
||||||
|
nav_idx: 1,
|
||||||
|
// 当前激活的管理菜单索引
|
||||||
|
manage_idx: 1,
|
||||||
|
// 存储所有数据的主要对象
|
||||||
|
form: {
|
||||||
|
org: {// 组织机构人员数据
|
||||||
|
groupSum: 0, // 企业总部人数
|
||||||
|
director: 0, // 总监人数
|
||||||
|
fullTime: 0, // 专职人数
|
||||||
|
branchSum: 0, // 分支结构人数
|
||||||
|
branchDirector: 0, // 分支机构总监人数
|
||||||
|
branchFullTime: 0, // 分支机构专职人数
|
||||||
|
attentionSafetyEngineer: 0, // 注安师人数
|
||||||
|
projectSum: 0, //项目人数
|
||||||
|
projectDirector: 0, // 项目总监人数
|
||||||
|
projectFullTime: 0, // 项目专职人数
|
||||||
|
projectSafetyMonitoring: 0, // 项目安全监护人数
|
||||||
|
aCard: 0, // A证人数
|
||||||
|
bCard: 0, // B证人数
|
||||||
|
cCard: 0, // C证人数
|
||||||
|
},
|
||||||
|
warning: {//预警警报
|
||||||
|
hydropower: 0,//水电监测
|
||||||
|
hydropower2: 0,//水电监测
|
||||||
|
towercrane: 0,//塔式起重机预警
|
||||||
|
foundationpit: 0,//基坑监测预警
|
||||||
|
car: 0,//车辆冲洗监测
|
||||||
|
},
|
||||||
|
education: { // 教育培训和安全工时数据
|
||||||
|
safeWorkingHours: 0, // 安全工时数
|
||||||
|
specialTraining: 0, // 专项培训次数
|
||||||
|
SafetyEducation3: 0, // 三级安全教育培训次数
|
||||||
|
specializedTraining: 0, // 特种作业培训次数
|
||||||
|
safetyTechnicalBriefing: 0, // 安全技术交底次数
|
||||||
|
},
|
||||||
|
safetyHazard: { // 安全隐患排查治理数据
|
||||||
|
// 集团级
|
||||||
|
orgHazard: 0, // 集团安全隐患数量
|
||||||
|
orgIncomplete: 0, // 集团未完成数量
|
||||||
|
orgClosedLoop: 0, // 集团整改闭环数量
|
||||||
|
orgRectificationRate: 0, // 集团整改率
|
||||||
|
// 分支机构级
|
||||||
|
branchHazard: 0, // 分支机构安全隐患数量
|
||||||
|
branchIncomplete: 0, // 分支机构未完成数量
|
||||||
|
branchClosedLoop: 0, // 分支机构整改闭环数量
|
||||||
|
branchRectificationRate: 0, // 分支机构整改率
|
||||||
|
// 企业级
|
||||||
|
enterpriseHazard: 0, // 企业安全隐患数量
|
||||||
|
enterpriseIncomplete: 0, // 企业未完成数量
|
||||||
|
enterpriseClosedLoop: 0, // 企业整改闭环数量
|
||||||
|
enterpriseRectificationRate: 0, // 企业整改率
|
||||||
|
// 项目级
|
||||||
|
projectHazard: 0, // 项目安全隐患数量
|
||||||
|
projectIncomplete: 0, // 项目未完成数量
|
||||||
|
projectClosedLoop: 0, // 项目整改闭环数量
|
||||||
|
projectRectificationRate: 0, // 项目整改率
|
||||||
|
},
|
||||||
|
costEquipment: { // 费用及机具数据
|
||||||
|
expenseExtraction: 0, // 费用提取金额(亿元)
|
||||||
|
costUtilization: 0, // 费用使用金额(亿元)
|
||||||
|
usingNumbers: 0, // 在用机具个数
|
||||||
|
specialEquipment: 0, // 特种设备数量
|
||||||
|
},
|
||||||
|
projectInfo: { // 项目概况信息
|
||||||
|
projectsUnderConstruction: 0, // 在建项目数量
|
||||||
|
shutdownProject: 0, // 停工项目数量
|
||||||
|
participateInNum: 0, // 参建人数
|
||||||
|
dangerousProject: 0, // 在施危大工程数量
|
||||||
|
},
|
||||||
|
dangerousProject: { // 危大工程管控数据
|
||||||
|
approvalCompleted: 0, // 审批完成个数
|
||||||
|
construction: 0, // 施工个数
|
||||||
|
training: 0, // 培训人次数
|
||||||
|
completed: 0, // 完工个数
|
||||||
|
reasoning: 0, // 论证个数
|
||||||
|
},
|
||||||
|
riskClassification: { // 风险分级管控数据
|
||||||
|
major: 0, // 重大风险数量
|
||||||
|
larger: 0, // 较大风险数量
|
||||||
|
general: 0, // 一般风险数量
|
||||||
|
low: 0, // 低风险数量
|
||||||
|
},
|
||||||
|
highRisk: { // 高风险作业许可数据
|
||||||
|
closeItem: 0, // 关闭项数量
|
||||||
|
licenseItem: 0, // 许可项数量
|
||||||
|
},
|
||||||
|
meetAnEmergency: { // 应急管理数据
|
||||||
|
comprehensive: 0, // 综合预案数量
|
||||||
|
special: 0, // 专项预案数量
|
||||||
|
scene: 0, // 现场处置数量
|
||||||
|
drill: 0, // 演练次数
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 当前时间显示
|
||||||
|
nowTime: '09:00:12',
|
||||||
|
// 中国地图数据点
|
||||||
|
chinaData: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
// 组件挂载后执行的操作
|
||||||
|
this.show = true; // 显示内容
|
||||||
|
this.loadData(); // 加载数据
|
||||||
|
this.startTimer(); // 启动时间定时器
|
||||||
|
this.createMap();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 从后台加载HSSE数据
|
||||||
|
loadData() {
|
||||||
|
const that = this;
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: "main_Hsse.aspx/GetHSSEData", // 调用后台WebMethod
|
||||||
|
contentType: "application/json; charset=utf-8",
|
||||||
|
dataType: "json",
|
||||||
|
success: function (response) {
|
||||||
|
console.log(response.d)
|
||||||
|
if (response.d.success) {
|
||||||
|
// 更新数据成功
|
||||||
|
that.form = { ...response.d.data }; // 更新表单数据
|
||||||
|
that.chinaData = [...response.d.data.chinaData]; // 更新地图数据
|
||||||
|
console.log(that.chinaData);
|
||||||
|
that.createMap(); // 重新创建地图
|
||||||
|
} else {
|
||||||
|
// 更新数据失败
|
||||||
|
alert("加载数据失败:" + response.d.msg);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (xhr, status, error) {
|
||||||
|
// AJAX请求错误处理
|
||||||
|
alert("请求失败:" + error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 启动时间定时器,每秒更新一次当前时间
|
||||||
|
startTimer() {
|
||||||
|
setInterval(() => {
|
||||||
|
const now = new Date();
|
||||||
|
this.nowTime = now.toLocaleTimeString('zh-CN', {
|
||||||
|
hour12: false, // 使用24小时制
|
||||||
|
hour: '2-digit', // 两位数显示小时
|
||||||
|
minute: '2-digit', // 两位数显示分钟
|
||||||
|
second: '2-digit' // 两位数显示秒钟
|
||||||
|
});
|
||||||
|
}, 1000); // 1000毫秒 = 1秒
|
||||||
|
},
|
||||||
|
// 切换主导航菜单
|
||||||
|
onSwitchMenu(idx) {
|
||||||
|
this.nav_idx = idx; // 更新导航索引
|
||||||
|
},
|
||||||
|
// 切换管理菜单
|
||||||
|
onSwitchManage(idx) {
|
||||||
|
this.manage_idx = idx; // 更新管理菜单索引
|
||||||
|
},
|
||||||
|
// 刷新数据
|
||||||
|
onRefresh() {
|
||||||
|
this.loadData(); // 重新加载数据
|
||||||
|
},
|
||||||
|
// 创建中国地图
|
||||||
|
createMap() {
|
||||||
|
let that = this;
|
||||||
|
|
||||||
|
// 中国地图配置
|
||||||
|
let chinaOption = {
|
||||||
|
geo: [
|
||||||
|
{
|
||||||
|
// 地理坐标系组件 - 底图层
|
||||||
|
map: "china",
|
||||||
|
roam: false, // 禁止缩放和平移
|
||||||
|
aspectScale: 0.85, // 比例
|
||||||
|
top: 140, // 顶部距离
|
||||||
|
zlevel: 2, // 图层级别
|
||||||
|
zoom: 1.4, // 缩放比例
|
||||||
|
tooltip: {
|
||||||
|
show: false, // 不显示默认提示框
|
||||||
|
backgroundColor: "#031849", // 提示框背景色
|
||||||
|
borderColor: '#031849', // 提示框边框颜色
|
||||||
|
formatter: function (h) {
|
||||||
|
// 自定义提示框内容格式化
|
||||||
|
console.log(h);
|
||||||
|
let html = `<div style="z-index:99999999;">
|
||||||
|
<p><span>【项目名称】:</span>山东裕龙石化有限公司裕龙岛炼化一体化项目(一期)</p>
|
||||||
|
<p><span>【开工时间】:</span>2022-1-30</p>
|
||||||
|
<p><span>【竣工时间】:</span>2023-12-30</p>
|
||||||
|
<p><span>【项目地址】:</span>山东烟台龙门市</p>
|
||||||
|
</div>`;
|
||||||
|
return html;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
show: false // 不显示标签
|
||||||
|
},
|
||||||
|
regions: [
|
||||||
|
{
|
||||||
|
name: "南海诸岛", // 南海诸岛区域特殊处理
|
||||||
|
itemStyle: {
|
||||||
|
// 隐藏南海诸岛区域
|
||||||
|
normal: {
|
||||||
|
opacity: 0, // 不绘制该区域
|
||||||
|
}
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
show: false // 隐藏文字标签
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
itemStyle: {
|
||||||
|
// 地图区域样式
|
||||||
|
normal: {
|
||||||
|
areaColor: "#07121B", // 区域颜色
|
||||||
|
borderColor: "#07121B", // 边界颜色
|
||||||
|
}
|
||||||
|
},
|
||||||
|
emphasis: {
|
||||||
|
disabled: true, // 禁用高亮效果
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// 地理坐标系组件 - 中间层
|
||||||
|
map: "china",
|
||||||
|
roam: false,
|
||||||
|
aspectScale: 0.85,
|
||||||
|
top: 130,
|
||||||
|
zlevel: 9,
|
||||||
|
zoom: 1.4,
|
||||||
|
regions: [
|
||||||
|
{
|
||||||
|
name: "南海诸岛",
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
opacity: 0,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
show: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
areaColor: "#076393",
|
||||||
|
borderColor: "#076393",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
emphasis: {
|
||||||
|
disabled: true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
],
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
// 数据层 - 显示各省份数据
|
||||||
|
type: 'map',
|
||||||
|
map: "china",
|
||||||
|
roam: false,
|
||||||
|
aspectScale: 0.85,
|
||||||
|
top: 120,
|
||||||
|
zlevel: 12,
|
||||||
|
zoom: 1.4,
|
||||||
|
data: that.chinaData, // 使用后台获取的数据
|
||||||
|
label: {
|
||||||
|
color: "#ffffff", // 标签文字颜色
|
||||||
|
show: true, // 显示标签
|
||||||
|
formatter: function (h) {
|
||||||
|
// 标签文字格式化
|
||||||
|
console.log(h);
|
||||||
|
if (h.value && !isNaN(h.value)) {
|
||||||
|
return h.value; // 显示数值
|
||||||
|
} else {
|
||||||
|
return ''; // 无数值时不显示
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
regions: [
|
||||||
|
{
|
||||||
|
name: "南海诸岛",
|
||||||
|
label: {
|
||||||
|
show: false // 隐藏南海诸岛文字
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
itemStyle: {
|
||||||
|
// 地图区域样式
|
||||||
|
normal: {
|
||||||
|
borderWidth: 1, // 边界宽度
|
||||||
|
areaColor: "rgba(0, 221, 255, .8)", // 区域颜色
|
||||||
|
borderColor: "RGBA(27, 225, 255, 1)", // 边界颜色
|
||||||
|
}
|
||||||
|
},
|
||||||
|
emphasis: {
|
||||||
|
disabled: true, // 禁用高亮效果
|
||||||
|
}
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
// 注册中国地图JSON数据
|
||||||
|
echarts.registerMap('china', chinaJson);
|
||||||
|
// 初始化地图
|
||||||
|
let chinaChart = echarts.init(document.getElementById('map'));
|
||||||
|
// 设置地图选项
|
||||||
|
chinaChart.setOption(chinaOption);
|
||||||
|
// 地图点击事件
|
||||||
|
chinaChart.on('click', function (params) {
|
||||||
|
// 点击散点时触发
|
||||||
|
if (params.seriesType == 'effectScatter') {
|
||||||
|
alert('点击了' + params.name);
|
||||||
|
}
|
||||||
|
// 可以在这里添加其他点击逻辑
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
|
@ -0,0 +1,220 @@
|
||||||
|
using BLL;
|
||||||
|
using Model;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Web.Services;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace FineUIPro.Web.common
|
||||||
|
{
|
||||||
|
public partial class mainnew : PageBase
|
||||||
|
{
|
||||||
|
//public Model.HSSEData_HSSE hSSEData_HSSE;
|
||||||
|
public string userId;
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
userId = this.CurrUser.UserId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 看板数据
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[WebMethod]
|
||||||
|
public static object GetHSSEData()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var page = new mainnew();
|
||||||
|
MainSevice mainSevice = new MainSevice(page.CurrUser.UserId);
|
||||||
|
// 获取HSSE数据
|
||||||
|
var hSSEData = Task.Run(() => mainSevice.GetHsseDataAsync()).Result;
|
||||||
|
|
||||||
|
var hiddenDangerList = mainSevice.GetDataHiddenDangerDetailItems();
|
||||||
|
|
||||||
|
// 获取项目数据
|
||||||
|
int unitType = CommonService.GetUnitTypeByUserId(page.CurrUser.UserId);
|
||||||
|
var projects = new List<Base_Project>();
|
||||||
|
|
||||||
|
if (unitType == 0)
|
||||||
|
{
|
||||||
|
projects = Funs.DB.Base_Project.Where(x => x.MapCoordinates != null &&
|
||||||
|
(x.IsDelete == null || x.IsDelete == false)).ToList();
|
||||||
|
}
|
||||||
|
else if (unitType == 1)
|
||||||
|
{
|
||||||
|
projects = Funs.DB.Base_Project.Where(x => x.UnitId == page.CurrUser.UnitId &&
|
||||||
|
x.MapCoordinates != null && (x.IsDelete == null || x.IsDelete == false)).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 计算整改率
|
||||||
|
string zgl1 = "0";
|
||||||
|
string zgl2 = "0";
|
||||||
|
double generalRectificationRate = 0;
|
||||||
|
double majorRectificationRate = 0;
|
||||||
|
|
||||||
|
if (hSSEData.GeneralClosedNum.HasValue && hSSEData.GeneralNotClosedNum.HasValue)
|
||||||
|
{
|
||||||
|
double total = hSSEData.GeneralClosedNum.Value + hSSEData.GeneralNotClosedNum.Value;
|
||||||
|
if (total > 0)
|
||||||
|
{
|
||||||
|
generalRectificationRate = 100.0 * hSSEData.GeneralClosedNum.Value / total;
|
||||||
|
zgl1 = String.Format("{0:N2}", generalRectificationRate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hSSEData.MajorClosedNum.HasValue && hSSEData.MajorNotClosedNum.HasValue)
|
||||||
|
{
|
||||||
|
double total = hSSEData.MajorClosedNum.Value + hSSEData.MajorNotClosedNum.Value;
|
||||||
|
if (total > 0)
|
||||||
|
{
|
||||||
|
majorRectificationRate = 100.0 * hSSEData.MajorClosedNum.Value / total;
|
||||||
|
zgl2 = String.Format("{0:N2}", majorRectificationRate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 构造返回数据
|
||||||
|
return new
|
||||||
|
{
|
||||||
|
success = true,
|
||||||
|
data = new
|
||||||
|
{
|
||||||
|
org = new
|
||||||
|
{//组织机构人员
|
||||||
|
groupSum = (hSSEData.HeadOfficeInspectorGeneralNum ?? 0) + (hSSEData.HeadOfficeFullTimeNum ?? 0),//企业总部人数
|
||||||
|
director = hSSEData.HeadOfficeInspectorGeneralNum ?? 0,//企业总监
|
||||||
|
fullTime = hSSEData.HeadOfficeFullTimeNum ?? 0,//企业专职
|
||||||
|
//enterpriseSum = 0,
|
||||||
|
branchSum = (hSSEData.BranchInspectorGeneralNum ?? 0) + (hSSEData.BranchFullTimeNum ?? 0),//分支机构人数
|
||||||
|
branchDirector = hSSEData.BranchInspectorGeneralNum ?? 0,//分支机构总监
|
||||||
|
branchFullTime = hSSEData.BranchFullTimeNum ?? 0,//分支机构专职
|
||||||
|
attentionSafetyEngineer = hSSEData.SafetyInjectionEngineer ?? 0,//注安师在岗职业
|
||||||
|
projectSum = (hSSEData.ProjectInspectorGeneralNum ?? 0) + (hSSEData.ProjectFullTimeNum ?? 0) + (hSSEData.ProjectSafetyMonitorNum ?? 0),//项目人数
|
||||||
|
projectDirector = hSSEData.ProjectInspectorGeneralNum ?? 0,//项目总监
|
||||||
|
projectFullTime = hSSEData.ProjectFullTimeNum ?? 0,//项目专职
|
||||||
|
projectSafetyMonitoring = hSSEData.ProjectSafetyMonitorNum ?? 0,//项目安全监护
|
||||||
|
aCard = hSSEData.CertificateANum ?? 0,//A证
|
||||||
|
bCard = hSSEData.CertificateBNum ?? 0,//B证
|
||||||
|
cCard = hSSEData.CertificateCNum ?? 0//C证
|
||||||
|
},
|
||||||
|
projectInfo = new
|
||||||
|
{//项目数据
|
||||||
|
projectsUnderConstruction = hSSEData.BeUnderConstructionNum ?? 0,//在建项目
|
||||||
|
shutdownProject = hSSEData.ShutdownNum ?? 0,//停工项目
|
||||||
|
participateInNum = hSSEData.JoinConstructionPersonNum ?? 0,//参建人数
|
||||||
|
dangerousProject = hSSEData.MajorProjectsUnderConstructionNum ?? 0,//在施危大工程
|
||||||
|
chinaData = (from project in projects
|
||||||
|
join city in Funs.DB.RealName_City
|
||||||
|
on new { Province = project.Province, Country = project.Country }
|
||||||
|
equals new { Province = city.ProvinceCode, Country = city.CountryId }
|
||||||
|
group city by city.Cname into g
|
||||||
|
select new
|
||||||
|
{
|
||||||
|
name = g.Key,
|
||||||
|
value = g.Count()
|
||||||
|
}).ToList(),//项目地图数据
|
||||||
|
},
|
||||||
|
specialEquipmentSys = 0,//特种设备质保体系【暂无】
|
||||||
|
designBriefing = 0,//图纸会审、设计交底
|
||||||
|
education = new
|
||||||
|
{//安全教育
|
||||||
|
safeWorkingHour = hSSEData.SafeWorkingHour ?? 0,//安全工时数
|
||||||
|
specialTrainNum = hSSEData.SpecialTrainNum ?? 0,//专项培训
|
||||||
|
safeTrainNum = hSSEData.SafeTrainNum ?? 0,//三级安全教育培训
|
||||||
|
specialOperationTrainNum = hSSEData.SpecialOperationTrainNum ?? 0,//特种作业培训
|
||||||
|
safetyTechnicalBriefing = 0//安全技术交底次数【待处理】
|
||||||
|
},
|
||||||
|
warning = new
|
||||||
|
{//预警警报
|
||||||
|
hydropower = 0,//水电监测
|
||||||
|
hydropower2 = 0,//水电监测
|
||||||
|
towercrane = 0,//塔式起重机预警
|
||||||
|
foundationpit = 0,//基坑监测预警
|
||||||
|
car = 0,//车辆冲洗监测
|
||||||
|
},
|
||||||
|
safetyHazard = new
|
||||||
|
{
|
||||||
|
// 集团级
|
||||||
|
orgHazard = 0,
|
||||||
|
orgIncomplete = 0,
|
||||||
|
orgClosedLoop = 0,
|
||||||
|
orgRectificationRate = 0,
|
||||||
|
// 分支机构级 - 假设使用与企业级相同的数据或可以从其他字段映射
|
||||||
|
branchHazard = 0,
|
||||||
|
branchIncomplete = 0,
|
||||||
|
branchClosedLoop = 0,
|
||||||
|
branchRectificationRate = 0,
|
||||||
|
// 企业级
|
||||||
|
enterpriseHazard = 0,
|
||||||
|
enterpriseIncomplete = 0,
|
||||||
|
enterpriseClosedLoop = 0,
|
||||||
|
enterpriseRectificationRate = 0,
|
||||||
|
// 项目级
|
||||||
|
projectHazard = (hSSEData.GeneralClosedNum ?? 0) + (hSSEData.GeneralNotClosedNum ?? 0),
|
||||||
|
projectIncomplete = hSSEData.GeneralNotClosedNum ?? 0,
|
||||||
|
projectClosedLoop = hSSEData.GeneralClosedNum ?? 0,
|
||||||
|
projectRectificationRate = Convert.ToDouble(zgl1),
|
||||||
|
},
|
||||||
|
costEquipment = new
|
||||||
|
{
|
||||||
|
expenseExtraction = hSSEData.CostExtract.HasValue ?
|
||||||
|
Math.Round(hSSEData.CostExtract.Value / 100000000m, 2) : 0, // 转换为亿元
|
||||||
|
costUtilization = hSSEData.CostUse.HasValue ?
|
||||||
|
Math.Round(hSSEData.CostUse.Value / 100000000m, 2) : 0, // 转换为亿元
|
||||||
|
usingNumbers = hSSEData.UseEquipmentNum ?? 0,
|
||||||
|
specialEquipment = hSSEData.SpecialEquipmentNum ?? 0
|
||||||
|
},
|
||||||
|
dangerousProject = new
|
||||||
|
{
|
||||||
|
approvalCompleted = hSSEData.CompletedNum ?? 0,
|
||||||
|
construction = hSSEData.ConstructionNum ?? 0,
|
||||||
|
training = hSSEData.TrainPersonNum ?? 0,
|
||||||
|
completed = hSSEData.FinishedNum ?? 0,
|
||||||
|
reasoning = 0
|
||||||
|
},
|
||||||
|
riskClassification = new
|
||||||
|
{
|
||||||
|
major = hSSEData.HighRiskNum ?? 0,
|
||||||
|
larger = hSSEData.MediumRiskNum ?? 0,
|
||||||
|
general = hSSEData.GeneralRiskNum ?? 0,
|
||||||
|
low = hSSEData.LowRiskNum ?? 0
|
||||||
|
},
|
||||||
|
highRisk = new
|
||||||
|
{
|
||||||
|
closeItem = hSSEData.LicensesCloseNum ?? 0,
|
||||||
|
licenseItem = hSSEData.LicensesNum ?? 0
|
||||||
|
},
|
||||||
|
meetAnEmergency = new
|
||||||
|
{
|
||||||
|
comprehensive = hSSEData.CompanyComprehensivePlanNum ?? 0,
|
||||||
|
special = hSSEData.CompanySpecialPlanNum ?? 0,
|
||||||
|
scene = hSSEData.CompanyOnSiteDisposalPlan ?? 0,
|
||||||
|
drill = hSSEData.CompanyDrillNum ?? 0
|
||||||
|
},
|
||||||
|
/* chinaData = projects.Select(p => new {
|
||||||
|
name = p.ShortName,
|
||||||
|
value = p.MapCoordinates?.ToString() ?? "",
|
||||||
|
address = p.ProjectAddress,
|
||||||
|
id = p.ProjectId,
|
||||||
|
openDate = p.StartDate.HasValue ? p.StartDate.Value.ToString("yyyy-MM-dd") : "--",
|
||||||
|
endDate = p.EndDate.HasValue ? p.EndDate.Value.ToString("yyyy-MM-dd") : "--",
|
||||||
|
ownUnit = ProjectService.getProjectUnitNameByUnitType(p.ProjectId, Const.ProjectUnitType_4),
|
||||||
|
jLUnit = ProjectService.getProjectUnitNameByUnitType(p.ProjectId, Const.ProjectUnitType_3),
|
||||||
|
sGUnit = ProjectService.getProjectUnitNameByUnitType(p.ProjectId, Const.ProjectUnitType_2),
|
||||||
|
projectMoney = p.ProjectMoney
|
||||||
|
}).ToList()*/
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new { success = false, msg = ex.Message };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <自动生成>
|
||||||
|
// 此代码由工具生成。
|
||||||
|
//
|
||||||
|
// 对此文件的更改可能导致不正确的行为,如果
|
||||||
|
// 重新生成代码,则所做更改将丢失。
|
||||||
|
// </自动生成>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace FineUIPro.Web.common
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
public partial class mainnew
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
|
@ -194,13 +194,6 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="sd-header-top-right">
|
<div class="sd-header-top-right">
|
||||||
<ul>
|
<ul>
|
||||||
<%--<li class="js-showTab-item top-li-item"><a href="javascript:void(0);">
|
|
||||||
<div style="background-image: url('./res/images/Monitoring.png'); width: 19px; height: 19px; float: left; background-repeat: no-repeat; background-position: center;"></div>
|
|
||||||
<span>视频</span></a>
|
|
||||||
<f:Button runat="server" CssClass="bgbtn2"
|
|
||||||
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" ID="Button1" OnClientClick="openVideo()">
|
|
||||||
</f:Button>
|
|
||||||
</li>--%>
|
|
||||||
<li class="js-showTab-item top-li-item">
|
<li class="js-showTab-item top-li-item">
|
||||||
<a href="javascript:void(0);">
|
<a href="javascript:void(0);">
|
||||||
<span><i class="iconfont icon-user"></i></span>
|
<span><i class="iconfont icon-user"></i></span>
|
||||||
|
@ -243,7 +236,7 @@
|
||||||
</f:Button>
|
</f:Button>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<f:Button runat="server" CssClass="bgbtn" Text="安全管理" ID="btnDigData" OnClick="btnHSSE_Click"
|
<f:Button runat="server" CssClass="bgbtn" Text="安全管理" ID="btnHSSE" OnClick="btnHSSE_Click"
|
||||||
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" OnClientClick="parent.removeActiveTab();">
|
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" OnClientClick="parent.removeActiveTab();">
|
||||||
</f:Button>
|
</f:Button>
|
||||||
</li>
|
</li>
|
||||||
|
@ -253,7 +246,7 @@
|
||||||
</f:Button>
|
</f:Button>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<f:Button runat="server" CssClass="bgbtn" Text="资源库" ID="Button2" OnClick="btnDigData_Click"
|
<f:Button runat="server" CssClass="bgbtn" Text="资源库" ID="btnDigData" OnClick="btnDigData_Click"
|
||||||
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" OnClientClick="parent.removeActiveTab();">
|
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" OnClientClick="parent.removeActiveTab();">
|
||||||
</f:Button>
|
</f:Button>
|
||||||
</li>
|
</li>
|
||||||
|
@ -271,7 +264,7 @@
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<f:Button runat="server" CssClass="bgbtn" Text="视频监控" OnClientClick="openVideo();"
|
<f:Button runat="server" CssClass="bgbtn" Text="视频监控" OnClientClick="openVideo();"
|
||||||
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" ID="btnDigitalSite">
|
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" ID="btnVideo">
|
||||||
</f:Button>
|
</f:Button>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
|
|
@ -416,7 +416,7 @@ namespace FineUIPro.Web
|
||||||
{
|
{
|
||||||
this.leftPanel.Hidden = true;
|
this.leftPanel.Hidden = true;
|
||||||
this.XmlDataSource1.DataFile = "common/Menu_Personal.xml";
|
this.XmlDataSource1.DataFile = "common/Menu_Personal.xml";
|
||||||
this.Tab1.IFrameUrl = "~/common/main.aspx";
|
this.Tab1.IFrameUrl = "~/common/mainnew.aspx";
|
||||||
}
|
}
|
||||||
|
|
||||||
UserService.UpdateLastUserInfo(this.CurrUser.UserId, type, true, string.Empty);
|
UserService.UpdateLastUserInfo(this.CurrUser.UserId, type, true, string.Empty);
|
||||||
|
|
|
@ -150,13 +150,13 @@ namespace FineUIPro.Web
|
||||||
protected global::FineUIPro.Button btnPerson;
|
protected global::FineUIPro.Button btnPerson;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnDigData 控件。
|
/// btnHSSE 控件。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// 自动生成的字段。
|
/// 自动生成的字段。
|
||||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::FineUIPro.Button btnDigData;
|
protected global::FineUIPro.Button btnHSSE;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// liThreeYearAction 控件。
|
/// liThreeYearAction 控件。
|
||||||
|
@ -177,13 +177,13 @@ namespace FineUIPro.Web
|
||||||
protected global::FineUIPro.Button btnThreeYearAction;
|
protected global::FineUIPro.Button btnThreeYearAction;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Button2 控件。
|
/// btnDigData 控件。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// 自动生成的字段。
|
/// 自动生成的字段。
|
||||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::FineUIPro.Button Button2;
|
protected global::FineUIPro.Button btnDigData;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnCQMS 控件。
|
/// btnCQMS 控件。
|
||||||
|
@ -204,13 +204,13 @@ namespace FineUIPro.Web
|
||||||
protected global::FineUIPro.Button btnDevice;
|
protected global::FineUIPro.Button btnDevice;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnDigitalSite 控件。
|
/// btnVideo 控件。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// 自动生成的字段。
|
/// 自动生成的字段。
|
||||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::FineUIPro.Button btnDigitalSite;
|
protected global::FineUIPro.Button btnVideo;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnServer 控件。
|
/// btnServer 控件。
|
||||||
|
|
|
@ -0,0 +1,737 @@
|
||||||
|
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="indexold.aspx.cs" Inherits="FineUIPro.Web.indexold" %>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head runat="server">
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
|
<meta name="viewport" content="initial-scale=scale,maximum-scale=scale,minimum-scale=scale,user-scalable=no" />
|
||||||
|
<title>QHSE管理数字化平台</title>
|
||||||
|
<link rel="shortcut icon" type="image/x-icon" href="~/favicon.ico" />
|
||||||
|
<%--
|
||||||
|
<link rel="stylesheet" href="~/res/indexv1/iconfont/iconfont.css" />
|
||||||
|
<link rel="stylesheet" href="~/res/indexv1/css/index1.css" />
|
||||||
|
<link type="text/css" rel="stylesheet" href="~/res/css/default.css" />
|
||||||
|
<link href="res/index/css/home.css" rel="stylesheet" />--%>
|
||||||
|
|
||||||
|
<link href="~/res/indexv2/assets/iconfont/iconfont.css" rel="stylesheet" />
|
||||||
|
<link href="~/res/indexv2/assets/css/video-7.15.0.min.css" rel="stylesheet" />
|
||||||
|
<link href="~/res/indexv2/assets/css/index7.css" rel="stylesheet" />
|
||||||
|
|
||||||
|
<style type="text/css">
|
||||||
|
html {
|
||||||
|
min-height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sd-index1-body {
|
||||||
|
}
|
||||||
|
|
||||||
|
.f-widget-content {
|
||||||
|
border: none;
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
body > .f-panel-border, body > .f-panel-border > div {
|
||||||
|
background: #ffffff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style type="text/css">
|
||||||
|
.f-tabstrip-header-clip {
|
||||||
|
width: 100%;
|
||||||
|
height: 35px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.up-wrap {
|
||||||
|
height: 55px;
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-s {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.f-btn .f-btn-text {
|
||||||
|
vertical-align: baseline !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.f-state-hover {
|
||||||
|
background-color: transparent !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bgbtn {
|
||||||
|
width: 100%;
|
||||||
|
border: none !important;
|
||||||
|
background-color: transparent !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.activeClick {
|
||||||
|
font-weight: 800;
|
||||||
|
color: white !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bgbtn .x-frame-ml, .bgbtn .x-frame-mc, .bgbtn .x-frame-mr,
|
||||||
|
.bgbtn .x-frame-tl, .bgbtn .x-frame-tc, .bgbtn .x-frame-tr,
|
||||||
|
.bgbtn .x-frame-bl, .bgbtn .x-frame-bc, .bgbtn .x-frame-br,
|
||||||
|
.bgbtn a:visited, .bgbtn .f-state-focus {
|
||||||
|
background-image: none;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.f-state-default, .f-widget-content .f-state-default, .f-widget-header .f-state-default {
|
||||||
|
background-image: none;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header .layui-nav {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bgbtntop.f-btn.f-state-default .f-icon, .bgbtntop.f-btn.f-state-hover .f-icon, .bgbtntop.f-btn.f-state-focus .f-icon, .bgbtntop.f-btn.f-state-active .f-icon {
|
||||||
|
color: #37a6ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.activeClick .f-icon {
|
||||||
|
color: white !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.f-panel-title-text {
|
||||||
|
color: #1ab1ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.f-messagebox-notify {
|
||||||
|
background-color: #ffffff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.f-panel, .f-widget-header, .f-tree-headerstyle .f-panel-body {
|
||||||
|
background-color: rgb(14,17,60);
|
||||||
|
/* color: #fff;*/
|
||||||
|
border: none !important;
|
||||||
|
font-size: 14px !important;
|
||||||
|
height: 35px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.f-menu-item-text, .f-tree-cell-text, .f-widget-content a, .f-qtip-content {
|
||||||
|
color: #1ab1ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.f-state-hover.f-tree-node a {
|
||||||
|
color: #37a6ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.f-corner-all {
|
||||||
|
background-color: #dfe4f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.f-state-hover.f-tree-node a {
|
||||||
|
color: #37a6ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.f-state-default, .f-widget-content .f-state-default, .f-widget-header .f-state-default {
|
||||||
|
border-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.f-tree-table .f-state-active, .f-widget-content .f-state-active, .f-widget-header .f-state-active {
|
||||||
|
background: #247ba8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bgbtn2 {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.f-tabstrip-align-left .f-tab-header.f-first {
|
||||||
|
/*background-color: #dfe4f1;
|
||||||
|
color: #333;*/
|
||||||
|
border: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-li-item {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-li-item .f-btn-inner {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sd-header .sd-header-top .sd-header-top-right ul li span:nth-child(2n) {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#Panel1_leftPanel_treeMenu .f-state-hover .f-icon {
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#Panel1_leftPanel_treeMenu .f-state-hover {
|
||||||
|
background: #99e7ff !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body class="wrap">
|
||||||
|
<form id="form1" runat="server">
|
||||||
|
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server"></f:PageManager>
|
||||||
|
<f:Panel ID="Panel1" Layout="Region" ShowBorder="false" ShowHeader="false" runat="server">
|
||||||
|
<Items>
|
||||||
|
<f:ContentPanel ID="topPanel" CssClass="topregion" RegionPosition="Top" ShowBorder="false" ShowHeader="false" EnableCollapse="true" runat="server">
|
||||||
|
<%--头部 开始--%>
|
||||||
|
<f:ContentPanel ID="ContentPanel1" CssClass="bodyregion" ShowBorder="false" ShowHeader="false" runat="server">
|
||||||
|
<div class="sd-index1-body">
|
||||||
|
<div class="sd-header">
|
||||||
|
<div class="sd-header-top">
|
||||||
|
<div class="sd-header-top-left">
|
||||||
|
<div class="sd-location-name">北京</div>
|
||||||
|
<div class="sd-location-weather">
|
||||||
|
<img src="res/indexv1/image/index1/weather/duoyun.png"
|
||||||
|
alt="" /><span runat="server" id="divWeather">多云</span>
|
||||||
|
</div>
|
||||||
|
<div class="sd-location-time"><span id="spDate" runat="server"></span></div>
|
||||||
|
</div>
|
||||||
|
<div class="sd-header-top-right">
|
||||||
|
<ul>
|
||||||
|
<%--<li class="js-showTab-item top-li-item"><a href="javascript:void(0);">
|
||||||
|
<div style="background-image: url('./res/images/Monitoring.png'); width: 19px; height: 19px; float: left; background-repeat: no-repeat; background-position: center;"></div>
|
||||||
|
<span>视频</span></a>
|
||||||
|
<f:Button runat="server" CssClass="bgbtn2"
|
||||||
|
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" ID="Button1" OnClientClick="openVideo()">
|
||||||
|
</f:Button>
|
||||||
|
</li>--%>
|
||||||
|
<li class="js-showTab-item top-li-item">
|
||||||
|
<a href="javascript:void(0);">
|
||||||
|
<span><i class="iconfont icon-user"></i></span>
|
||||||
|
<span id="userName" runat="server"></span>
|
||||||
|
<span id="notification-badge" class="notification-badge" style="display: none;">0</span>
|
||||||
|
</a>
|
||||||
|
<f:Button runat="server" CssClass="bgbtn2" OnClick="btnPersonal_Click"
|
||||||
|
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" ID="btnPersonal" OnClientClick="parent.removeActiveTab();">
|
||||||
|
</f:Button>
|
||||||
|
</li>
|
||||||
|
<li class="js-showTab-item top-li-item"><a href="#"><span><i class="iconfont icon-setting"></i></span>门户</a><f:Button runat="server" IconUrl="~/res/image/home.png" CssClass="bgbtn2" OnClick="btnGateway_Click"
|
||||||
|
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" ID="btnGateway">
|
||||||
|
</f:Button>
|
||||||
|
</li>
|
||||||
|
<li class="js-showTab-item top-li-item"><a href="#"><span><i class="iconfont icon-setting"></i></span>设置</a><f:Button runat="server" CssClass="bgbtn2" OnClick="btnSysSet_Click"
|
||||||
|
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" ID="btnSysSet" OnClientClick="parent.removeActiveTab();">
|
||||||
|
</f:Button>
|
||||||
|
</li>
|
||||||
|
<li><a href="javascript:void(0);" onclick="onToolSignOutClick()"><span><i class="iconfont icon-stop"></i></span>退出</a></li>
|
||||||
|
|
||||||
|
<li class="top-li-item">
|
||||||
|
<f:Button runat="server" CssClass="bgbtntop" Text="刷新" ToolTip="刷新菜单" IconFont="Retweet" OnClick="btnRetweet_Click"
|
||||||
|
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" ID="btnRetweet" OnClientClick="parent.removeActiveTab();">
|
||||||
|
</f:Button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="sd-header-title js-hiddenTab-item">
|
||||||
|
<div id="divTitle" runat="server"></div>
|
||||||
|
<f:Button runat="server" CssClass="bgbtn2" EnablePostBack="true" OnClick="btnHome_Click"
|
||||||
|
EnableDefaultState="true" EnableDefaultCorner="false" ID="btnHome" OnClientClick="parent.removeActiveTab();">
|
||||||
|
</f:Button>
|
||||||
|
</div>
|
||||||
|
<div class="sd-header-bottom" runat="server" visible="true">
|
||||||
|
<ul class="sd-header-bottom-menu">
|
||||||
|
<li>
|
||||||
|
<f:Button runat="server" CssClass="bgbtn" Text="人员管理" ID="btnPerson" OnClick="btnPerson_Click"
|
||||||
|
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" OnClientClick="parent.removeActiveTab();">
|
||||||
|
</f:Button>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<f:Button runat="server" CssClass="bgbtn" Text="安全管理" ID="btnDigData" OnClick="btnHSSE_Click"
|
||||||
|
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" OnClientClick="parent.removeActiveTab();">
|
||||||
|
</f:Button>
|
||||||
|
</li>
|
||||||
|
<li runat="server" id="liThreeYearAction">
|
||||||
|
<f:Button runat="server" CssClass="bgbtn" Text="三年行动" ID="btnThreeYearAction" OnClick="btnThreeYearAction_Click"
|
||||||
|
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" OnClientClick="parent.removeActiveTab();">
|
||||||
|
</f:Button>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<f:Button runat="server" CssClass="bgbtn" Text="资源库" ID="Button2" OnClick="btnDigData_Click"
|
||||||
|
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" OnClientClick="parent.removeActiveTab();">
|
||||||
|
</f:Button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<ul class="sd-header-bottom-menu">
|
||||||
|
<li>
|
||||||
|
<f:Button runat="server" CssClass="bgbtn" Text="质量管理" ID="btnCQMS" OnClick="btnCQMS_Click"
|
||||||
|
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" OnClientClick="parent.removeActiveTab();">
|
||||||
|
</f:Button>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<f:Button runat="server" CssClass="bgbtn" Text="设备管理" ID="btnDevice" OnClick="btnDevice_Click"
|
||||||
|
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" OnClientClick="parent.removeActiveTab();">
|
||||||
|
</f:Button>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<f:Button runat="server" CssClass="bgbtn" Text="视频监控" OnClientClick="openVideo();"
|
||||||
|
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" ID="btnDigitalSite">
|
||||||
|
</f:Button>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<f:Button runat="server" CssClass="bgbtn" Text="数据管理" ID="btnServer" OnClick="btnServer_Click"
|
||||||
|
EnablePostBack="true" EnableDefaultState="true" EnableDefaultCorner="false" OnClientClick="parent.removeActiveTab();">
|
||||||
|
</f:Button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</f:ContentPanel>
|
||||||
|
<%--头部 结束--%>
|
||||||
|
</f:ContentPanel>
|
||||||
|
<f:Panel ID="leftPanel" CssClass="leftregion" RegionPosition="Left" RegionSplit="true" RegionSplitWidth="3px"
|
||||||
|
ShowBorder="true" Width="250px" ShowHeader="true" Title="系统菜单"
|
||||||
|
EnableCollapse="false" Collapsed="false" Layout="Fit" runat="server">
|
||||||
|
<Tools>
|
||||||
|
<%--自定义展开折叠工具图标--%>
|
||||||
|
<f:Tool ID="leftPanelToolCollapse" runat="server" IconFont="ChevronCircleLeft"
|
||||||
|
EnablePostBack="false" ToolTip="展开/折叠" Hidden="true">
|
||||||
|
<Listeners>
|
||||||
|
<f:Listener Event="click" Handler="onLeftPanelToolCollapseClick" />
|
||||||
|
</Listeners>
|
||||||
|
</f:Tool>
|
||||||
|
<f:Tool ID="leftPanelToolGear" runat="server" IconFont="Gear" EnablePostBack="false" Hidden="true" ToolTip="设置">
|
||||||
|
<Menu runat="server" ID="menuSettings">
|
||||||
|
<f:MenuButton ID="btnExpandAll" Text="展开菜单" EnablePostBack="false" runat="server">
|
||||||
|
<Listeners>
|
||||||
|
<f:Listener Event="click" Handler="onExpandAllClick" />
|
||||||
|
</Listeners>
|
||||||
|
</f:MenuButton>
|
||||||
|
<f:MenuButton ID="btnCollapseAll" Text="折叠菜单" EnablePostBack="false" runat="server">
|
||||||
|
<Listeners>
|
||||||
|
<f:Listener Event="click" Handler="onCollapseAllClick" />
|
||||||
|
</Listeners>
|
||||||
|
</f:MenuButton>
|
||||||
|
<f:MenuSeparator runat="server">
|
||||||
|
</f:MenuSeparator>
|
||||||
|
<f:MenuButton runat="server" EnablePostBack="false" ID="MenuMode" Text="显示模式">
|
||||||
|
<Menu runat="server">
|
||||||
|
<Items>
|
||||||
|
<f:MenuCheckBox Text="普通模式" ID="MenuModeNormal" AttributeDataTag="normal" Checked="true" GroupName="MenuMode" runat="server">
|
||||||
|
</f:MenuCheckBox>
|
||||||
|
<f:MenuCheckBox Text="紧凑模式" ID="MenuModeCompact" AttributeDataTag="compact" GroupName="MenuMode" runat="server">
|
||||||
|
</f:MenuCheckBox>
|
||||||
|
<f:MenuCheckBox Text="大字体模式" ID="MenuModeLarge" AttributeDataTag="large" GroupName="MenuMode" runat="server">
|
||||||
|
</f:MenuCheckBox>
|
||||||
|
</Items>
|
||||||
|
<Listeners>
|
||||||
|
<f:Listener Event="checkchange" Handler="onMenuModeCheckChange" />
|
||||||
|
</Listeners>
|
||||||
|
</Menu>
|
||||||
|
</f:MenuButton>
|
||||||
|
<f:MenuButton EnablePostBack="false" Text="菜单样式" ID="MenuStyle" runat="server">
|
||||||
|
<Menu runat="server">
|
||||||
|
<Items>
|
||||||
|
<f:MenuCheckBox Text="智能树菜单" ID="MenuStyleTree" AttributeDataTag="tree" GroupName="MenuStyle" runat="server">
|
||||||
|
</f:MenuCheckBox>
|
||||||
|
<f:MenuCheckBox Text="智能树菜单(默认折叠)" ID="MenuStyleMiniModeTree" AttributeDataTag="tree_minimode" GroupName="MenuStyle" runat="server">
|
||||||
|
</f:MenuCheckBox>
|
||||||
|
<f:MenuCheckBox Text="树菜单" ID="MenuStylePlainTree" AttributeDataTag="plaintree" GroupName="MenuStyle" runat="server" Checked="true">
|
||||||
|
</f:MenuCheckBox>
|
||||||
|
<%-- <f:MenuCheckBox Text="手风琴+树菜单" ID="MenuStyleAccordion" AttributeDataTag="accordion" GroupName="MenuStyle" runat="server">
|
||||||
|
</f:MenuCheckBox>--%>
|
||||||
|
</Items>
|
||||||
|
<Listeners>
|
||||||
|
<f:Listener Event="checkchange" Handler="onMenuStyleCheckChange" />
|
||||||
|
</Listeners>
|
||||||
|
</Menu>
|
||||||
|
</f:MenuButton>
|
||||||
|
<f:MenuButton EnablePostBack="false" Text="语言" ID="MenuLang" runat="server">
|
||||||
|
<Menu ID="Menu2" runat="server">
|
||||||
|
<Items>
|
||||||
|
<f:MenuCheckBox Text="简体中文" ID="MenuLangZHCN" AttributeDataTag="zh_CN" Checked="true" GroupName="MenuLang" runat="server">
|
||||||
|
</f:MenuCheckBox>
|
||||||
|
</Items>
|
||||||
|
<Listeners>
|
||||||
|
<f:Listener Event="checkchange" Handler="onMenuLangCheckChange" />
|
||||||
|
</Listeners>
|
||||||
|
</Menu>
|
||||||
|
</f:MenuButton>
|
||||||
|
</Menu>
|
||||||
|
</f:Tool>
|
||||||
|
</Tools>
|
||||||
|
</f:Panel>
|
||||||
|
<f:TabStrip ID="mainTabStrip" CssClass="centerregion" RegionPosition="Center" ShowTabHeader="false"
|
||||||
|
ShowBorder="true" EnableTabCloseMenu="true" runat="server">
|
||||||
|
<Tabs>
|
||||||
|
<%--.f-tabstrip-noheader>.f-panel-header--%>
|
||||||
|
<f:Tab ID="Tab1" Title="首页" IconFont="Home"
|
||||||
|
EnableIFrame="true" IFrameUrl="~/common/main.aspx" runat="server">
|
||||||
|
</f:Tab>
|
||||||
|
</Tabs>
|
||||||
|
<Tools>
|
||||||
|
<f:Tool runat="server" EnablePostBack="false" IconFont="Refresh" MarginRight="5" CssClass="tabtool" ToolTip="刷新本页" ID="toolRefresh">
|
||||||
|
<Listeners>
|
||||||
|
<f:Listener Event="click" Handler="onToolRefreshClick" />
|
||||||
|
</Listeners>
|
||||||
|
</f:Tool>
|
||||||
|
<f:Tool runat="server" EnablePostBack="false" IconFont="Share" MarginRight="5" CssClass="tabtool" ToolTip="在新标签页中打开" ID="toolNewWindow">
|
||||||
|
<Listeners>
|
||||||
|
<f:Listener Event="click" Handler="onToolNewWindowClick" />
|
||||||
|
</Listeners>
|
||||||
|
</f:Tool>
|
||||||
|
<f:Tool runat="server" EnablePostBack="false" IconFont="Expand" CssClass="tabtool" ToolTip="最大化" ID="toolMaximize" Hidden="true">
|
||||||
|
<Listeners>
|
||||||
|
<f:Listener Event="click" Handler="onToolMaximizeClick" />
|
||||||
|
</Listeners>
|
||||||
|
</f:Tool>
|
||||||
|
<f:Tool runat="server" EnablePostBack="false" IconFont="SignOut" Hidden="true"
|
||||||
|
CssClass="tabtool" ToolTip="注销" ID="toolSignOut">
|
||||||
|
<Listeners>
|
||||||
|
<f:Listener Event="click" Handler="onToolSignOutClick" />
|
||||||
|
</Listeners>
|
||||||
|
</f:Tool>
|
||||||
|
</Tools>
|
||||||
|
</f:TabStrip>
|
||||||
|
</Items>
|
||||||
|
</f:Panel>
|
||||||
|
<f:Window ID="windowCustomQuery" Title="自定义查询" Hidden="true" EnableIFrame="true" IFrameUrl="./SysManage/CustomQuery.aspx" ClearIFrameAfterClose="false"
|
||||||
|
runat="server" IsModal="true" Width="1200px" Height="620px" EnableClose="true"
|
||||||
|
EnableMaximize="true" EnableResize="false">
|
||||||
|
</f:Window>
|
||||||
|
<asp:XmlDataSource ID="XmlDataSource1" runat="server" EnableCaching="false"></asp:XmlDataSource>
|
||||||
|
</form>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var toolRefreshClientID = '<%= toolRefresh.ClientID %>';
|
||||||
|
var toolNewWindowClientID = '<%= toolNewWindow.ClientID %>';
|
||||||
|
var mainTabStripClientID = '<%= mainTabStrip.ClientID %>';
|
||||||
|
var windowCustomQueryClientID = '<%= windowCustomQuery.ClientID %>';
|
||||||
|
var MenuStyleClientID = '<%= MenuStyle.ClientID %>';
|
||||||
|
var MenuLangClientID = '<%= MenuLang.ClientID %>';
|
||||||
|
var topPanelClientID = '<%= topPanel.ClientID %>';
|
||||||
|
var leftPanelClientID = '<%= leftPanel.ClientID %>';
|
||||||
|
var leftPanelToolGearClientID = '<%= leftPanelToolGear.ClientID %>';
|
||||||
|
var leftPanelToolCollapseClientID = '<%= leftPanelToolCollapse.ClientID %>';
|
||||||
|
var tab1ClientID = '<%= Tab1.ClientID %>';
|
||||||
|
// 展开左侧面板
|
||||||
|
function expandLeftPanel() {
|
||||||
|
var leftPanel = F(leftPanelClientID);
|
||||||
|
|
||||||
|
// 获取左侧树控件实例
|
||||||
|
var leftMenuTree = leftPanel.items[0];
|
||||||
|
leftMenuTree.miniMode = false;
|
||||||
|
leftPanel.el.removeClass('minimodeinside');
|
||||||
|
leftPanel.setWidth(220);
|
||||||
|
F(leftPanelToolGearClientID).show();
|
||||||
|
F(leftPanelToolCollapseClientID).setIconFont('chevron-circle-left');
|
||||||
|
// 重新加载树菜单
|
||||||
|
leftMenuTree.loadData();
|
||||||
|
}
|
||||||
|
var videoURL = '<%=VideoURL %>'
|
||||||
|
function openVideo() {
|
||||||
|
if (videoURL) {
|
||||||
|
window.open(videoURL, '_blank');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
alert("您没有权限!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 展开左侧面板
|
||||||
|
function collapseLeftPanel() {
|
||||||
|
var leftPanel = F(leftPanelClientID);
|
||||||
|
// 获取左侧树控件实例
|
||||||
|
var leftMenuTree = leftPanel.items[0];
|
||||||
|
leftMenuTree.miniMode = true;
|
||||||
|
leftMenuTree.miniModePopWidth = 220;
|
||||||
|
leftPanel.el.addClass('minimodeinside');
|
||||||
|
leftPanel.setWidth(50);
|
||||||
|
F(leftPanelToolGearClientID).hide();
|
||||||
|
F(leftPanelToolCollapseClientID).setIconFont('chevron-circle-right');
|
||||||
|
// 重新加载树菜单
|
||||||
|
leftMenuTree.loadData();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 自定义展开折叠工具图标
|
||||||
|
function onLeftPanelToolCollapseClick(event) {
|
||||||
|
var leftPanel = F(leftPanelClientID);
|
||||||
|
var menuStyle = F.cookie('MenuStyle_Pro') || 'tree';
|
||||||
|
|
||||||
|
if (menuStyle === 'tree' || menuStyle === 'tree_minimode') {
|
||||||
|
// 获取左侧树控件实例
|
||||||
|
var leftMenuTree = leftPanel.items[0];
|
||||||
|
|
||||||
|
// 设置 miniMode 模式
|
||||||
|
if (leftMenuTree.miniMode) {
|
||||||
|
expandLeftPanel();
|
||||||
|
} else {
|
||||||
|
collapseLeftPanel();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 对左侧面板重新布局
|
||||||
|
leftPanel.doLayout();
|
||||||
|
} else {
|
||||||
|
leftPanel.toggleCollapse();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 点击展开菜单
|
||||||
|
function onExpandAllClick(event) {
|
||||||
|
var leftPanel = F(leftPanelClientID);
|
||||||
|
var firstChild = leftPanel.items[0];
|
||||||
|
|
||||||
|
if (firstChild.isType('tree')) {
|
||||||
|
// 左侧为树控件
|
||||||
|
firstChild.expandAll();
|
||||||
|
} else {
|
||||||
|
// 左侧为树控件+手风琴控件
|
||||||
|
var activePane = firstChild.getActivePane();
|
||||||
|
if (activePane) {
|
||||||
|
activePane.items[0].expandAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 点击折叠菜单
|
||||||
|
function onCollapseAllClick(event) {
|
||||||
|
var leftPanel = F(leftPanelClientID);
|
||||||
|
var firstChild = leftPanel.items[0];
|
||||||
|
|
||||||
|
if (firstChild.isType('tree')) {
|
||||||
|
// 左侧为树控件
|
||||||
|
firstChild.collapseAll();
|
||||||
|
} else {
|
||||||
|
// 左侧为树控件+手风琴控件
|
||||||
|
var activePane = firstChild.getActivePane();
|
||||||
|
if (activePane) {
|
||||||
|
activePane.items[0].collapseAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function onSearchTrigger1Click(event) {
|
||||||
|
F.removeCookie('SearchText_Pro');
|
||||||
|
top.window.location.reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
function onSearchTrigger2Click(event) {
|
||||||
|
F.cookie('SearchText_Pro', this.getValue(), {
|
||||||
|
expires: 100 // 单位:天
|
||||||
|
});
|
||||||
|
top.window.location.reload();
|
||||||
|
}
|
||||||
|
// 点击标题栏工具图标 - 刷新
|
||||||
|
function onToolRefreshClick(event) {
|
||||||
|
var mainTabStrip = F(mainTabStripClientID);
|
||||||
|
var activeTab = mainTabStrip.getActiveTab();
|
||||||
|
if (activeTab.iframe) {
|
||||||
|
var iframeWnd = activeTab.getIFrameWindow();
|
||||||
|
iframeWnd.location.reload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 点击标题栏工具图标 - 在新标签页中打开
|
||||||
|
function onToolNewWindowClick(event) {
|
||||||
|
var mainTabStrip = F(mainTabStripClientID);
|
||||||
|
var activeTab = mainTabStrip.getActiveTab();
|
||||||
|
if (activeTab.iframe) {
|
||||||
|
var iframeUrl = activeTab.getIFrameUrl();
|
||||||
|
iframeUrl = iframeUrl.replace(/\/mobile\/\?file=/ig, '/mobile/');
|
||||||
|
window.open(iframeUrl, '_blank');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 点击标题栏工具图标 - 注销
|
||||||
|
function onToolSignOutClick(event) {
|
||||||
|
var bConfirmed = confirm('您确定要退出吗?');
|
||||||
|
if (bConfirmed) { window.open('login.aspx', '_top'); }
|
||||||
|
}
|
||||||
|
|
||||||
|
// 点击标题栏工具图标 - 最大化
|
||||||
|
function onToolMaximizeClick(event) {
|
||||||
|
var topPanel = F(topPanelClientID);
|
||||||
|
var leftPanel = F(leftPanelClientID);
|
||||||
|
|
||||||
|
var currentTool = this;
|
||||||
|
if (currentTool.iconFont.indexOf('expand') >= 0) {
|
||||||
|
topPanel.collapse();
|
||||||
|
currentTool.setIconFont('compress');
|
||||||
|
|
||||||
|
collapseLeftPanel();
|
||||||
|
} else {
|
||||||
|
topPanel.expand();
|
||||||
|
currentTool.setIconFont('expand');
|
||||||
|
|
||||||
|
expandLeftPanel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加示例标签页
|
||||||
|
// id: 选项卡ID
|
||||||
|
// iframeUrl: 选项卡IFrame地址
|
||||||
|
// title: 选项卡标题
|
||||||
|
// icon: 选项卡图标
|
||||||
|
// createToolbar: 创建选项卡前的回调函数(接受tabOptions参数)
|
||||||
|
// refreshWhenExist: 添加选项卡时,如果选项卡已经存在,是否刷新内部IFrame
|
||||||
|
// iconFont: 选项卡图标字体
|
||||||
|
function addExampleTab(tabOptions) {
|
||||||
|
if (typeof (tabOptions) === 'string') {
|
||||||
|
tabOptions = {
|
||||||
|
id: arguments[0],
|
||||||
|
iframeUrl: arguments[1],
|
||||||
|
title: arguments[2],
|
||||||
|
icon: arguments[3],
|
||||||
|
createToolbar: arguments[4],
|
||||||
|
refreshWhenExist: arguments[5],
|
||||||
|
iconFont: arguments[6]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
F.addMainTab(F(mainTabStripClientID), tabOptions);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 移除选中标签页
|
||||||
|
function removeActiveTab() {
|
||||||
|
var mainTabStrip = F(mainTabStripClientID);
|
||||||
|
var activeTab = mainTabStrip.getActiveTab();
|
||||||
|
if (activeTab) {
|
||||||
|
if (activeTab.id != tab1ClientID) {
|
||||||
|
activeTab.hide();
|
||||||
|
removeActiveTab();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取当前激活选项卡的ID
|
||||||
|
function getActiveTabId() {
|
||||||
|
var mainTabStrip = F(mainTabStripClientID);
|
||||||
|
var activeTab = mainTabStrip.getActiveTab();
|
||||||
|
if (activeTab) {
|
||||||
|
return activeTab.id;
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 激活选项卡,并刷新其中的内容,示例:表格控件->杂项->在新标签页中打开(关闭后刷新父选项卡)
|
||||||
|
function activeTabAndRefresh(tabId) {
|
||||||
|
var mainTabStrip = F(mainTabStripClientID);
|
||||||
|
var targetTab = mainTabStrip.getTab(tabId);
|
||||||
|
if (targetTab) {
|
||||||
|
mainTabStrip.activeTab(targetTab);
|
||||||
|
targetTab.refreshIFrame();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 激活选项卡,并刷新其中的内容,示例:表格控件->杂项->在新标签页中打开(关闭后更新父选项卡中的表格)
|
||||||
|
function activeTabAndUpdate(tabId, param1) {
|
||||||
|
var mainTabStrip = F(mainTabStripClientID);
|
||||||
|
var targetTab = mainTabStrip.getTab(tabId);
|
||||||
|
if (targetTab) {
|
||||||
|
mainTabStrip.activeTab(targetTab);
|
||||||
|
targetTab.getIFrameWindow().updatePage(param1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 通知框
|
||||||
|
function notify(msg) {
|
||||||
|
F.notify({
|
||||||
|
message: msg,
|
||||||
|
messageIcon: 'information',
|
||||||
|
target: '_top',
|
||||||
|
header: false,
|
||||||
|
displayMilliseconds: 3 * 1000,
|
||||||
|
positionX: 'center',
|
||||||
|
positionY: 'center'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 点击菜单样式
|
||||||
|
function onMenuStyleCheckChange(event, item, checked) {
|
||||||
|
var menuStyle = item.getAttr('data-tag');
|
||||||
|
F.cookie('MenuStyle_Pro', menuStyle, {
|
||||||
|
expires: 100 // 单位:天
|
||||||
|
});
|
||||||
|
top.window.location.reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 点击显示模式
|
||||||
|
function onMenuModeCheckChange(event, item, checked) {
|
||||||
|
var menuMode = item.getAttr('data-tag');
|
||||||
|
|
||||||
|
F.cookie('MenuMode_Pro', menuMode, {
|
||||||
|
expires: 100 // 单位:天
|
||||||
|
});
|
||||||
|
top.window.location.reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 点击语言
|
||||||
|
function onMenuLangCheckChange(event, item, checked) {
|
||||||
|
var lang = item.getAttr('data-tag');
|
||||||
|
F.cookie('Language_Pro', lang, {
|
||||||
|
expires: 100 // 单位:天
|
||||||
|
});
|
||||||
|
top.window.location.reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
///个人信息
|
||||||
|
function onUserProfileClick() {
|
||||||
|
var windowUserProfile = F(windowUserProfileClientID);
|
||||||
|
windowUserProfile.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
F.ready(function () {
|
||||||
|
//点头部菜单,显示标签“首页”
|
||||||
|
$(".sd-header-bottom li").click(function () {
|
||||||
|
var $item = $('.f-tabstrip-header')
|
||||||
|
$item.attr('style', ";display:block !important;")
|
||||||
|
});
|
||||||
|
|
||||||
|
$(".js-showTab-item").click(function () {
|
||||||
|
var $item = $('.f-tabstrip-header')
|
||||||
|
$item.attr('style', ";display:block !important;")
|
||||||
|
});
|
||||||
|
|
||||||
|
$(".js-hiddenTab-item").click(function () {
|
||||||
|
var $item = $('.f-tabstrip-header')
|
||||||
|
$item.attr('style', ";display:none !important;")
|
||||||
|
$(".bgbtn,.bgbtntop").removeClass("activeClick")
|
||||||
|
});
|
||||||
|
|
||||||
|
$(".bgbtn,.bgbtntop").click(function () {
|
||||||
|
// 切换下tab样式
|
||||||
|
var $this = $(this)
|
||||||
|
if (!$this.hasClass('activeClick')) {
|
||||||
|
if ($this.hasClass('bgbtn')) {
|
||||||
|
$(".bgbtn").removeClass('activeClick')
|
||||||
|
} else {
|
||||||
|
$(".bgbtntop").removeClass('activeClick')
|
||||||
|
}
|
||||||
|
$this.addClass('activeClick')
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var mainTabStrip = F(mainTabStripClientID);
|
||||||
|
var leftPanel = F(leftPanelClientID);
|
||||||
|
var mainMenu = leftPanel.items[0];
|
||||||
|
|
||||||
|
// 初始化主框架中的树(或者Accordion+Tree)和选项卡互动,以及地址栏的更新
|
||||||
|
// treeMenu: 主框架中的树控件实例,或者内嵌树控件的手风琴控件实例
|
||||||
|
// mainTabStrip: 选项卡实例
|
||||||
|
// updateLocationHash: 切换Tab时,是否更新地址栏Hash值
|
||||||
|
// refreshWhenExist: 添加选项卡时,如果选项卡已经存在,是否刷新内部IFrame
|
||||||
|
// refreshWhenTabChange: 切换选项卡时,是否刷新内部IFrame
|
||||||
|
F.initTreeTabStrip(mainMenu, mainTabStrip, true, false, false);
|
||||||
|
//var themeTitle = F.cookie('Theme_Pro_Title');
|
||||||
|
//var themeName = F.cookie('Theme_Pro');
|
||||||
|
//if (themeTitle) {
|
||||||
|
// F.removeCookie('Theme_Pro_Title');
|
||||||
|
// //notify('主题更改为:' + themeTitle + '(' + themeName + ')');
|
||||||
|
//}
|
||||||
|
|
||||||
|
var badge = $('#notification-badge');
|
||||||
|
var count = <%= BLL.WorkflowTodoitemsService.GetWorkflow_TodoItemCountByReceiver(this.CurrUser.UserId)%>;
|
||||||
|
if (count > 0) {
|
||||||
|
badge.text(count).show();
|
||||||
|
} else {
|
||||||
|
badge.hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,556 @@
|
||||||
|
using BLL;
|
||||||
|
using System;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using System.Xml;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace FineUIPro.Web
|
||||||
|
{
|
||||||
|
public partial class indexold : PageBase
|
||||||
|
{
|
||||||
|
#region Page_Init
|
||||||
|
|
||||||
|
private string _menuType = "menu";
|
||||||
|
private int _examplesCount = 0;
|
||||||
|
private string _searchText = "";
|
||||||
|
#region Page_Init
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
protected void Page_Init(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
string themeStr = Request.QueryString["theme"];
|
||||||
|
string menuStr = Request.QueryString["menu"];
|
||||||
|
if (!String.IsNullOrEmpty(themeStr) || !String.IsNullOrEmpty(menuStr))
|
||||||
|
{
|
||||||
|
if (!String.IsNullOrEmpty(themeStr))
|
||||||
|
{
|
||||||
|
HttpCookie cookie = new HttpCookie("Theme_Pro", "Cupertino")
|
||||||
|
{
|
||||||
|
Expires = DateTime.Now.AddYears(1)
|
||||||
|
};
|
||||||
|
Response.Cookies.Add(cookie);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!String.IsNullOrEmpty(menuStr))
|
||||||
|
{
|
||||||
|
HttpCookie cookie = new HttpCookie("MenuStyle_Pro", menuStr)
|
||||||
|
{
|
||||||
|
Expires = DateTime.Now.AddYears(1)
|
||||||
|
};
|
||||||
|
Response.Cookies.Add(cookie);
|
||||||
|
}
|
||||||
|
|
||||||
|
PageContext.Redirect("~/default.aspx");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
this.CurrUser.LoginProjectId = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region InitTreeMenu
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
private Tree InitTreeMenu()
|
||||||
|
{
|
||||||
|
Tree treeMenu = new Tree
|
||||||
|
{
|
||||||
|
ID = "treeMenu",
|
||||||
|
ShowBorder = false,
|
||||||
|
ShowHeader = false,
|
||||||
|
EnableIcons = true,
|
||||||
|
AutoScroll = true,
|
||||||
|
EnableSingleClickExpand = true
|
||||||
|
};
|
||||||
|
if (_menuType == "tree" || _menuType == "tree_minimode")
|
||||||
|
{
|
||||||
|
treeMenu.HideHScrollbar = true;
|
||||||
|
treeMenu.ExpanderToRight = true;
|
||||||
|
treeMenu.HeaderStyle = true;
|
||||||
|
if (_menuType == "tree_minimode")
|
||||||
|
{
|
||||||
|
treeMenu.MiniMode = true;
|
||||||
|
treeMenu.MiniModePopWidth = Unit.Pixel(300);
|
||||||
|
|
||||||
|
leftPanelToolGear.Hidden = true;
|
||||||
|
leftPanelToolCollapse.IconFont = IconFont.ChevronCircleRight;
|
||||||
|
leftPanel.Width = Unit.Pixel(50);
|
||||||
|
leftPanel.CssClass = "minimodeinside";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
leftPanel.Items.Add(treeMenu);
|
||||||
|
XmlDocument doc = XmlDataSource1.GetXmlDocument();
|
||||||
|
ResolveXmlDocument(doc);
|
||||||
|
// 绑定 XML 数据源到树控件
|
||||||
|
treeMenu.NodeDataBound += treeMenu_NodeDataBound;
|
||||||
|
treeMenu.PreNodeDataBound += treeMenu_PreNodeDataBound;
|
||||||
|
treeMenu.DataSource = doc;
|
||||||
|
treeMenu.DataBind();
|
||||||
|
return treeMenu;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ResolveXmlDocument
|
||||||
|
|
||||||
|
private void ResolveXmlDocument(XmlDocument doc)
|
||||||
|
{
|
||||||
|
ResolveXmlDocument(doc, doc.DocumentElement.ChildNodes);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int ResolveXmlDocument(XmlDocument doc, XmlNodeList nodes)
|
||||||
|
{
|
||||||
|
// nodes 中渲染到页面上的节点个数
|
||||||
|
int nodeVisibleCount = 0;
|
||||||
|
foreach (XmlNode node in nodes)
|
||||||
|
{
|
||||||
|
// Only process Xml elements (ignore comments, etc)
|
||||||
|
if (node.NodeType == XmlNodeType.Element)
|
||||||
|
{
|
||||||
|
XmlAttribute removedAttr;
|
||||||
|
// 是否叶子节点
|
||||||
|
bool isLeaf = node.ChildNodes.Count == 0;
|
||||||
|
// 所有过滤条件均是对叶子节点而言,而是否显示目录,要看是否存在叶子节点
|
||||||
|
if (isLeaf)
|
||||||
|
{
|
||||||
|
// 存在搜索关键字
|
||||||
|
if (!String.IsNullOrEmpty(_searchText))
|
||||||
|
{
|
||||||
|
XmlAttribute textAttr = node.Attributes["Text"];
|
||||||
|
if (textAttr != null)
|
||||||
|
{
|
||||||
|
if (!textAttr.Value.Contains(_searchText) && isLeaf)
|
||||||
|
{
|
||||||
|
removedAttr = doc.CreateAttribute("Removed");
|
||||||
|
removedAttr.Value = "true";
|
||||||
|
node.Attributes.Append(removedAttr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 存在子节点
|
||||||
|
if (!isLeaf)
|
||||||
|
{
|
||||||
|
// 递归
|
||||||
|
int childVisibleCount = ResolveXmlDocument(doc, node.ChildNodes);
|
||||||
|
|
||||||
|
if (childVisibleCount == 0)
|
||||||
|
{
|
||||||
|
removedAttr = doc.CreateAttribute("Removed");
|
||||||
|
removedAttr.Value = "true";
|
||||||
|
|
||||||
|
node.Attributes.Append(removedAttr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
removedAttr = node.Attributes["Removed"];
|
||||||
|
if (removedAttr == null)
|
||||||
|
{
|
||||||
|
nodeVisibleCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nodeVisibleCount;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region treeMenu_NodeDataBound treeMenu_PreNodeDataBound
|
||||||
|
/// <summary>
|
||||||
|
/// 树节点的绑定后事件
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void treeMenu_NodeDataBound(object sender, TreeNodeEventArgs e)
|
||||||
|
{
|
||||||
|
// 是否叶子节点
|
||||||
|
bool isLeaf = e.XmlNode.ChildNodes.Count == 0;
|
||||||
|
if (!String.IsNullOrEmpty(e.Node.Text))
|
||||||
|
{
|
||||||
|
if (GetIsNewHtml(e.XmlNode))
|
||||||
|
{
|
||||||
|
e.Node.Text = "<span class=\"isnew\">" + e.Node.Text + "</span>";
|
||||||
|
if (e.Node.ParentNode != null)
|
||||||
|
{
|
||||||
|
e.Node.ParentNode.Text = "<span class=\"isnew\">" + e.Node.ParentNode.Text + "</span>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isLeaf)
|
||||||
|
{
|
||||||
|
// 设置节点的提示信息
|
||||||
|
e.Node.ToolTip = e.Node.Text;
|
||||||
|
}
|
||||||
|
// 如果仅显示最新示例,或者存在搜索文本
|
||||||
|
if (!String.IsNullOrEmpty(_searchText))
|
||||||
|
{
|
||||||
|
e.Node.Expanded = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 树节点的预绑定事件
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void treeMenu_PreNodeDataBound(object sender, TreePreNodeEventArgs e)
|
||||||
|
{
|
||||||
|
// 是否叶子节点
|
||||||
|
bool isLeaf = e.XmlNode.ChildNodes.Count == 0;
|
||||||
|
XmlAttribute removedAttr = e.XmlNode.Attributes["Removed"];
|
||||||
|
if (removedAttr != null)
|
||||||
|
{
|
||||||
|
e.Cancelled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isShow = GetIsPowerMenu(e.XmlNode);
|
||||||
|
if (!isShow)
|
||||||
|
{
|
||||||
|
e.Cancelled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isLeaf && !e.Cancelled)
|
||||||
|
{
|
||||||
|
_examplesCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 该节点是否显示
|
||||||
|
/// <summary>
|
||||||
|
/// 该节点是否显示
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="node"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private bool GetIsPowerMenu(XmlNode node)
|
||||||
|
{
|
||||||
|
bool result = true;
|
||||||
|
XmlAttribute isNewAttr = node.Attributes["id"];
|
||||||
|
if (isNewAttr != null)
|
||||||
|
{
|
||||||
|
result = BLL.CommonService.ReturnMenuByUserIdMenuId(this.CurrUser.UserId, isNewAttr.Value.ToString(), this.CurrUser.LoginProjectId);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region GetIsNewHtml 是否必填项
|
||||||
|
/// <summary>
|
||||||
|
/// 是否必填项
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="titleText"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private bool GetIsNewHtml(XmlNode xmlNode)
|
||||||
|
{
|
||||||
|
bool isShow = false;
|
||||||
|
if (xmlNode.Attributes["Text"].Value.Contains("*"))
|
||||||
|
{
|
||||||
|
isShow = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return isShow;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Page_Load
|
||||||
|
/// <summary>
|
||||||
|
/// 加载页面
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
this.MenuSwitchMethod(Request.Params["menuType"]);
|
||||||
|
this.InitMenuStyleButton();
|
||||||
|
this.InitMenuModeButton();
|
||||||
|
this.InitLangMenuButton();
|
||||||
|
this.btnRetweet.Hidden = true;
|
||||||
|
if (this.CurrUser.UserId == Const.hfnbdId)
|
||||||
|
{
|
||||||
|
this.btnRetweet.Hidden = false;
|
||||||
|
}
|
||||||
|
this.userName.InnerText= this.CurrUser.UserName;
|
||||||
|
this.spDate.InnerText = DateTime.Now.ToLongDateString().ToString()+" "+WeekDayService.CaculateWeekDayT(DateTime.Now);
|
||||||
|
|
||||||
|
var getW = WeatherService.GetWeather(null);
|
||||||
|
if (getW != null)
|
||||||
|
{
|
||||||
|
divWeather.InnerHtml = getW.WeatherRef + " " + getW.CurrTem+ "°C";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(this.CurrUser.UnitId) && this.CurrUser.UnitId != CommonService.GetThisUnitId())
|
||||||
|
{
|
||||||
|
this.divTitle.InnerHtml = "QHSE管理数字化平台(分公司级)";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.divTitle.InnerHtml = "QHSE管理数字化平台(公司级)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 菜单树样式
|
||||||
|
/// </summary>
|
||||||
|
private void InitMenuStyleButton()
|
||||||
|
{
|
||||||
|
string menuStyle = "tree";
|
||||||
|
HttpCookie menuStyleCookie = Request.Cookies["MenuStyle_Pro"];
|
||||||
|
if (menuStyleCookie != null)
|
||||||
|
{
|
||||||
|
menuStyle = menuStyleCookie.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
SetSelectedMenuItem(MenuStyle, menuStyle);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
private void InitMenuModeButton()
|
||||||
|
{
|
||||||
|
string menuMode = "normal";
|
||||||
|
HttpCookie menuModeCookie = Request.Cookies["MenuMode_Pro"];
|
||||||
|
if (menuModeCookie != null)
|
||||||
|
{
|
||||||
|
menuMode = menuModeCookie.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
SetSelectedMenuItem(MenuMode, menuMode);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 加载菜单语言
|
||||||
|
/// </summary>
|
||||||
|
private void InitLangMenuButton()
|
||||||
|
{
|
||||||
|
string language = "zh_CN";
|
||||||
|
HttpCookie languageCookie = Request.Cookies["Language_Pro"];
|
||||||
|
if (languageCookie != null)
|
||||||
|
{
|
||||||
|
language = languageCookie.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
SetSelectedMenuItem(MenuLang, language);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 过滤菜单
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="menuButton"></param>
|
||||||
|
/// <param name="selectedDataTag"></param>
|
||||||
|
private void SetSelectedMenuItem(MenuButton menuButton, string selectedDataTag)
|
||||||
|
{
|
||||||
|
foreach (MenuItem item in menuButton.Menu.Items)
|
||||||
|
{
|
||||||
|
MenuCheckBox checkBox = (item as MenuCheckBox);
|
||||||
|
if (checkBox != null)
|
||||||
|
{
|
||||||
|
checkBox.Checked = checkBox.AttributeDataTag == selectedDataTag;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 功能模块切换方法
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="type"></param>
|
||||||
|
protected void MenuSwitchMethod(string type)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(type))
|
||||||
|
{
|
||||||
|
if (CommonService.IsHaveSystemPower(this.CurrUser.UserId, type, this.CurrUser.LoginProjectId) || type == Const.Menu_Personal) //|| type == Const.Menu_ToDo
|
||||||
|
{
|
||||||
|
this.leftPanel.Hidden = false;
|
||||||
|
this.XmlDataSource1.DataFile = "common/" + type + ".xml";
|
||||||
|
this.Tab1.IFrameUrl = "";
|
||||||
|
if (type == Const.Menu_Project)
|
||||||
|
{
|
||||||
|
this.Tab1.IFrameUrl = "ProjectData/ProjectList.aspx";
|
||||||
|
}
|
||||||
|
if (type == Const.Menu_Personal)
|
||||||
|
{
|
||||||
|
this.Tab1.IFrameUrl = "Workflow/WorkflowTodo.aspx";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (type== "Menu_GroupReport")
|
||||||
|
{
|
||||||
|
this.leftPanel.Hidden = false;
|
||||||
|
this.XmlDataSource1.DataFile = "common/" + type + ".xml";
|
||||||
|
this.Tab1.IFrameUrl = "";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Alert.ShowInParent("您没有此模块操作权限,请联系管理员授权!", MessageBoxIcon.Warning);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.leftPanel.Hidden = true;
|
||||||
|
this.XmlDataSource1.DataFile = "common/Menu_Personal.xml";
|
||||||
|
this.Tab1.IFrameUrl = "~/common/main.aspx";
|
||||||
|
}
|
||||||
|
|
||||||
|
UserService.UpdateLastUserInfo(this.CurrUser.UserId, type, true, string.Empty);
|
||||||
|
InitTreeMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnHome_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (this.leftPanel.Hidden)
|
||||||
|
{
|
||||||
|
var currUser = Funs.DB.Sys_User.FirstOrDefault(x => x.UserId == this.CurrUser.UserId);
|
||||||
|
//if (SysType== "SHIYE")
|
||||||
|
//{
|
||||||
|
// string url = "~/indexProjectShiYe.aspx?projectId=" + this.CurrUser.LastProjectId;
|
||||||
|
// UserService.UpdateLastUserInfo(this.CurrUser.UserId, Const.Menu_SHIYE, false, this.CurrUser.LastProjectId);
|
||||||
|
// PageContext.Redirect(url, "_top");
|
||||||
|
//}
|
||||||
|
//else
|
||||||
|
//{
|
||||||
|
string url = "~/indexProject.aspx?projectId=" + this.CurrUser.LastProjectId;
|
||||||
|
UserService.UpdateLastUserInfo(this.CurrUser.UserId, null, false, this.CurrUser.LastProjectId);
|
||||||
|
PageContext.Redirect(url, "_top");
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.MenuSwitchMethod(string.Empty);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnPerson_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.MenuSwitchMethod(Const.Menu_Person);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnGateway_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string url = "~/index_gateway.aspx" ;
|
||||||
|
PageContext.Redirect(url, "_top");
|
||||||
|
}
|
||||||
|
protected void btnNotice_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.MenuSwitchMethod(Const.Menu_Notice);
|
||||||
|
}
|
||||||
|
protected void btnHSSE_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.MenuSwitchMethod(Const.Menu_HSSE);
|
||||||
|
}
|
||||||
|
protected void btnProject_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.MenuSwitchMethod(Const.Menu_Project);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnServer_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.MenuSwitchMethod(Const.Menu_SJTB);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnCQMS_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.MenuSwitchMethod(Const.Menu_CQMS);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnDevice_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.MenuSwitchMethod(Const.Menu_Device);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnDigData_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.MenuSwitchMethod(Const.Menu_DigData);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnZHGL_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.MenuSwitchMethod(Const.Menu_ZHGL);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnPersonal_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.MenuSwitchMethod(Const.Menu_Personal);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnSysSet_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.MenuSwitchMethod(Const.Menu_SysSet);
|
||||||
|
}
|
||||||
|
protected void btnThreeYearAction_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.MenuSwitchMethod(Const.Menu_ThreeYearAction);
|
||||||
|
}
|
||||||
|
protected string VideoURL
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
string video_Url = string.Empty;
|
||||||
|
var sysSet16 = (from x in Funs.DB.Sys_Set where x.SetName == "视频监控地址" select x).ToList().FirstOrDefault();
|
||||||
|
if (sysSet16 != null)
|
||||||
|
{
|
||||||
|
video_Url = sysSet16.SetValue;
|
||||||
|
}
|
||||||
|
var sysSet17 = (from x in Funs.DB.Sys_Set where x.SetName == "视频监控密码" select x).ToList().FirstOrDefault();
|
||||||
|
if (sysSet17 != null)
|
||||||
|
{
|
||||||
|
return video_Url + "#/screen?username=admin&password=" + Funs.EncryptionPassword(sysSet17.SetValue);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 重新生成系统菜单
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
protected void btnRetweet_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
////设置菜单
|
||||||
|
CreateMenuXML.getMenuXML();
|
||||||
|
MenuSwitchMethod(string.Empty);
|
||||||
|
ShowNotify("菜单刷新完成!", MessageBoxIcon.Success);
|
||||||
|
//var users = from x in Funs.DB.Sys_User where x.RawPassword == null || x.RawPassword == "TCC.1234" select x;
|
||||||
|
//if (users.Count() > 0)
|
||||||
|
//{
|
||||||
|
// foreach (var item in users)
|
||||||
|
// {
|
||||||
|
// BLL.UserService.UpdatePassword(item.UserId);
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,431 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <自动生成>
|
||||||
|
// 此代码由工具生成。
|
||||||
|
//
|
||||||
|
// 对此文件的更改可能导致不正确的行为,如果
|
||||||
|
// 重新生成代码,则所做更改将丢失。
|
||||||
|
// </自动生成>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace FineUIPro.Web
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
public partial class indexold
|
||||||
|
{
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// form1 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PageManager1 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.PageManager PageManager1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Panel1 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Panel Panel1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// topPanel 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.ContentPanel topPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ContentPanel1 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.ContentPanel ContentPanel1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// divWeather 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divWeather;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// spDate 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlGenericControl spDate;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// userName 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlGenericControl userName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnPersonal 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Button btnPersonal;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnGateway 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Button btnGateway;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnSysSet 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Button btnSysSet;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnRetweet 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Button btnRetweet;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// divTitle 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnHome 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Button btnHome;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnPerson 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Button btnPerson;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnDigData 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Button btnDigData;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// liThreeYearAction 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlGenericControl liThreeYearAction;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnThreeYearAction 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Button btnThreeYearAction;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Button2 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Button Button2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnCQMS 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Button btnCQMS;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnDevice 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Button btnDevice;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnDigitalSite 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Button btnDigitalSite;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnServer 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Button btnServer;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// leftPanel 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Panel leftPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// leftPanelToolCollapse 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Tool leftPanelToolCollapse;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// leftPanelToolGear 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Tool leftPanelToolGear;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnExpandAll 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.MenuButton btnExpandAll;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnCollapseAll 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.MenuButton btnCollapseAll;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MenuMode 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.MenuButton MenuMode;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MenuModeNormal 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.MenuCheckBox MenuModeNormal;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MenuModeCompact 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.MenuCheckBox MenuModeCompact;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MenuModeLarge 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.MenuCheckBox MenuModeLarge;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MenuStyle 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.MenuButton MenuStyle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MenuStyleTree 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.MenuCheckBox MenuStyleTree;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MenuStyleMiniModeTree 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.MenuCheckBox MenuStyleMiniModeTree;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MenuStylePlainTree 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.MenuCheckBox MenuStylePlainTree;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MenuLang 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.MenuButton MenuLang;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MenuLangZHCN 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.MenuCheckBox MenuLangZHCN;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// mainTabStrip 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.TabStrip mainTabStrip;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Tab1 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Tab Tab1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// toolRefresh 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Tool toolRefresh;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// toolNewWindow 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Tool toolNewWindow;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// toolMaximize 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Tool toolMaximize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// toolSignOut 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Tool toolSignOut;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// windowCustomQuery 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Window windowCustomQuery;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// XmlDataSource1 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.XmlDataSource XmlDataSource1;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
@font-face {
|
||||||
|
font-family: "iconfont"; /* Project id 4891760 */
|
||||||
|
src: url('iconfont.woff2?t=1744614833234') format('woff2'),
|
||||||
|
url('iconfont.woff?t=1744614833234') format('woff'),
|
||||||
|
url('iconfont.ttf?t=1744614833234') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconfont {
|
||||||
|
font-family: "iconfont" !important;
|
||||||
|
font-size: 16px;
|
||||||
|
font-style: normal;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-nav07:before {
|
||||||
|
content: "\e601";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-nav06:before {
|
||||||
|
content: "\e602";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-nav08:before {
|
||||||
|
content: "\e603";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-nav05:before {
|
||||||
|
content: "\e604";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-l09:before {
|
||||||
|
content: "\e605";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-l10:before {
|
||||||
|
content: "\e606";
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
{
|
||||||
|
"id": "4891760",
|
||||||
|
"name": "大屏展示",
|
||||||
|
"font_family": "iconfont",
|
||||||
|
"css_prefix_text": "icon-",
|
||||||
|
"description": "",
|
||||||
|
"glyphs": [
|
||||||
|
{
|
||||||
|
"icon_id": "43979512",
|
||||||
|
"name": "nav07",
|
||||||
|
"font_class": "nav07",
|
||||||
|
"unicode": "e601",
|
||||||
|
"unicode_decimal": 58881
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "43979511",
|
||||||
|
"name": "nav06",
|
||||||
|
"font_class": "nav06",
|
||||||
|
"unicode": "e602",
|
||||||
|
"unicode_decimal": 58882
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "43979510",
|
||||||
|
"name": "nav08",
|
||||||
|
"font_class": "nav08",
|
||||||
|
"unicode": "e603",
|
||||||
|
"unicode_decimal": 58883
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "43979509",
|
||||||
|
"name": "nav05",
|
||||||
|
"font_class": "nav05",
|
||||||
|
"unicode": "e604",
|
||||||
|
"unicode_decimal": 58884
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "43979508",
|
||||||
|
"name": "l09",
|
||||||
|
"font_class": "l09",
|
||||||
|
"unicode": "e605",
|
||||||
|
"unicode_decimal": 58885
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "43979507",
|
||||||
|
"name": "l10",
|
||||||
|
"font_class": "l10",
|
||||||
|
"unicode": "e606",
|
||||||
|
"unicode_decimal": 58886
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,105 @@
|
||||||
|
/* 删除: 之前的样式 */
|
||||||
|
/* 添加重置CSS样式 */
|
||||||
|
html,
|
||||||
|
body,
|
||||||
|
div,
|
||||||
|
span,
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6,
|
||||||
|
p,
|
||||||
|
video {
|
||||||
|
font-family: '宋体';
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 1;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
box-sizing: border-box;
|
||||||
|
user-select: none; /* 添加: 禁止文字选中 */
|
||||||
|
}
|
||||||
|
html,
|
||||||
|
body {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol,
|
||||||
|
ul {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
html::-webkit-scrollbar {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.bg {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
background-image: url(../res/images/bj.jpg);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: left top;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg1{
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
background-image: url(../res/images/bj.jpg);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: left top ;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#app{
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "iconfont"; /* Project id 4891760 */
|
||||||
|
src: url('../res/font/iconfont.woff2?t=1744614833234') format('woff2'),
|
||||||
|
url('../res/font/iconfont.woff?t=1744614833234') format('woff'),
|
||||||
|
url('../res/font/iconfont.ttf?t=1744614833234') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconfont {
|
||||||
|
font-family: "iconfont" !important;
|
||||||
|
font-size: 14px;
|
||||||
|
font-style: normal;
|
||||||
|
color: #FFFFFF;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-nav07:before {
|
||||||
|
content: "\e601";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-nav06:before {
|
||||||
|
content: "\e602";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-nav08:before {
|
||||||
|
content: "\e603";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-nav05:before {
|
||||||
|
content: "\e604";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-l09:before {
|
||||||
|
content: "\e605";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-l10:before {
|
||||||
|
content: "\e606";
|
||||||
|
}
|
|
@ -0,0 +1,108 @@
|
||||||
|
|
||||||
|
header {
|
||||||
|
width: 100%;
|
||||||
|
height: 1rem;
|
||||||
|
background-image: url(../res/images/01/top.png);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: left top;
|
||||||
|
background-size: 100% 0.7125rem;
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 8.2625rem 1fr 8.2625rem;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.nav-box{
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: flex-start;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.logo-img {
|
||||||
|
width: 1.9375rem;
|
||||||
|
height: 0.5rem;
|
||||||
|
background-image: url(../res/images/logo.png);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
.refresh-img {
|
||||||
|
margin-left: 0.125rem;
|
||||||
|
background: url('../res/images/sprite.png') no-repeat 0 0;
|
||||||
|
width: 27px;
|
||||||
|
height: 26px;
|
||||||
|
}
|
||||||
|
.navs{
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.navs>.nav{
|
||||||
|
|
||||||
|
font-size: 14px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
text-align: center;
|
||||||
|
height: 0.375rem;
|
||||||
|
line-height: 0.375rem;
|
||||||
|
width: 1.4rem;
|
||||||
|
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
.navs > .nav-l {
|
||||||
|
background-image: url(../res/images/nav01.png);
|
||||||
|
}
|
||||||
|
.navs > .nav-l-active {
|
||||||
|
background-image: url(../res/images/nav02.png);
|
||||||
|
}
|
||||||
|
.navs > .nav-r {
|
||||||
|
background-image: url(../res/images/nav03.png);
|
||||||
|
}
|
||||||
|
.navs > .nav-r-active {
|
||||||
|
background-image: url(../res/images/nav04.png);
|
||||||
|
}
|
||||||
|
.timer{
|
||||||
|
height: 0.425rem;
|
||||||
|
width: 2.375rem;
|
||||||
|
margin-left: 0.125rem;
|
||||||
|
color: #FFFFFF;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
.timer>p{
|
||||||
|
font-size: 0.175rem;
|
||||||
|
}
|
||||||
|
.timer>p>span{
|
||||||
|
margin-left: 0.125rem;
|
||||||
|
}
|
||||||
|
.timer>p>span:first-child{
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.logo-tit {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 0.4rem;
|
||||||
|
line-height: 0.575rem;
|
||||||
|
letter-spacing: 3px;
|
||||||
|
text-align: center;
|
||||||
|
font-style: normal;
|
||||||
|
text-transform: none;
|
||||||
|
background: linear-gradient(179.9998548775837deg, #E7EDF3 0%, #3EAEE3 100%);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
}
|
||||||
|
.set{
|
||||||
|
position: absolute;
|
||||||
|
left: 0;right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
height: 14px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.set>div{
|
||||||
|
margin: 0 0.125rem;
|
||||||
|
}
|
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 8.4 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 82 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 6.5 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 302 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 118 KiB |
|
@ -28,6 +28,7 @@
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
// detect 0.5px supports
|
// detect 0.5px supports
|
||||||
if (dpr >= 2) {
|
if (dpr >= 2) {
|
||||||
var fakeBody = document.createElement('body')
|
var fakeBody = document.createElement('body')
|
||||||
|
|