| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436 |
- //
- // SBTHistoryDataCell.swift
- // SolarBT
- //
- // Created by weclouds on 2019/3/4.
- // Copyright © 2019 weclouds. All rights reserved.
- //
- import UIKit
- let SBTHistoryDataChartOrFormSelected = "SBTHistoryDataChartOrFormSelected"
- class SBTHistoryDataCell: UITableViewCell {
- var weekData : [OneDayData]? {
- didSet{
- if let arr = self.weekData {
- for i in 0..<arr.count {
- let oneDay = arr[i]
- var aDataArr : [String]? = [String]()
-
- let his_batteryVoltageMin = oneDay.his_batteryVoltageMin// 蓄电池最低电压
- let his_batteryVoltageMax = oneDay.his_batteryVoltageMax// 蓄电池最高电压
- let his_chargingCurrentMax = oneDay.his_chargingCurrentMax// 充电最大电流
- let his_chargingPowerMax = oneDay.his_chargingPowerMax// 充电最大功率
- let his_chargingAmpereHour = oneDay.his_chargingAmpereHour // 充电安时数
- let his_dischargeCurrentmax = oneDay.his_dischargeCurrentmax // 放电最大电流
- let his_dischargePowerMax = oneDay.his_dischargePowerMax// 放电最大功率
- let his_dischargeAmpereHour = oneDay.his_dischargeAmpereHour // 放电安时数
- let his_generationCapacity = oneDay.his_generationCapacity // 发电量
- let his_dischargeCapacity = oneDay.his_dischargeCapacity// 充电量
-
- aDataArr?.append(his_batteryVoltageMin!)
- aDataArr?.append(his_batteryVoltageMax!)
- aDataArr?.append(his_chargingCurrentMax!)
- aDataArr?.append(his_chargingPowerMax!)
- aDataArr?.append(his_chargingAmpereHour!)
- aDataArr?.append(his_dischargeCurrentmax!)
- aDataArr?.append(his_dischargePowerMax!)
- aDataArr?.append(his_dischargeAmpereHour!)
- aDataArr?.append(his_generationCapacity!)
- aDataArr?.append(his_dischargeCapacity!)
-
-
- //self.dataArr?.append(aDataArr!)
- log.debug("一周数据 : \(self.dataArr!)")
- }
- }
- }
- }
-
-
-
-
- var dataArr : [[String]]? = [[String]]() {
- didSet{
-
- }
- }
-
- var toolButtonSelectedIndex:String? = "0"{
- didSet{
-
-
- if let toolButtonSelected = self.toolButtonSelectedIndex {
- if toolButtonSelected == "0"{
- formBtn.isSelected = true
- barChartBtn.isSelected = false
- scaleBtn.isHidden = true
- formView.isHidden = false
- chartsView.isHidden = true
- }else if toolButtonSelected == "1"{
- formBtn.isSelected = false
- barChartBtn.isSelected = true
- scaleBtn.isHidden = false
- formView.isHidden = true
- chartsView.isHidden = false
- }
- }
- }
- }
- var dayArr :[String]? // 日期数组
-
- // 0 formView 1 chartsView
- var clearHistoryDataCallBack :(()->Void)?
-
- var changeViewCallBack:((Bool)->Void)?
- var shareFormViewCallback: (()->Void)?
- var shareCallback:((SBTChartsView)->Void)?
- var horizontalScreenCallback : (()->Void)?
- lazy var toolBox: UIView = {
- let toolBox = UIView(frame: CGRect(x: 0, y: 0, width: KSCREENWIDTH, height: 50))
- toolBox.backgroundColor = UIColor(hexString: "F6F6F6")
- return toolBox
- }()
-
- lazy var formBtn: UIButton = {
- let formBtn = UIButton(type: .custom)
- formBtn.setTitle("Form".da_localizedStr(), for: .normal)
- formBtn.titleLabel?.font = UIFont(name: PingFangSC_Medium, size: 11)
- formBtn.setTitleColor(UIColor(hexString: "FD8B23"), for: .normal )
- formBtn.setBackgroundImage(UIImage(named: "form_normal"), for: .normal)
-
- formBtn.setTitleColor(UIColor(hexString: "FFFFFF"), for: .selected)
- formBtn.setBackgroundImage(UIImage(named: "form_selected"), for: .selected)
- formBtn.addTarget(self, action:#selector(choseFormType) , for: .touchUpInside)
- return formBtn
- }()
-
- lazy var barChartBtn: UIButton = {
- let barChartBtn = UIButton(type: .custom)
- barChartBtn.titleLabel?.font = UIFont(name: PingFangSC_Medium, size: 11)
- barChartBtn.setTitle("Histogram".da_localizedStr(), for: .normal)
- barChartBtn.setTitleColor(UIColor(hexString: "FD8B23"), for: .normal )
- barChartBtn.setBackgroundImage(UIImage(named: "form_normal"), for: .normal)
-
- barChartBtn.setTitleColor(UIColor(hexString: "FFFFFF"), for: .selected)
- barChartBtn.setBackgroundImage(UIImage(named: "form_selected"), for: .selected)
-
- barChartBtn.addTarget(self, action:#selector(choseFormType) , for: .touchUpInside)
- return barChartBtn
- }()
-
- lazy var scaleBtn: UIButton = {
- let scaleBtn = UIButton(type: .custom)
- scaleBtn.setBackgroundImage(UIImage(named: "scale"), for: .normal)
- scaleBtn.layer.masksToBounds = true
- scaleBtn.layer.cornerRadius = 2
- scaleBtn.addTarget(self, action: #selector(scaleAction), for: .touchUpInside)
-
- return scaleBtn
- }()
-
- lazy var shareBtn: UIButton = {
- let shareBtn = UIButton(type: .custom)
- shareBtn.setBackgroundImage(UIImage(named: "share"), for: .normal)
- shareBtn.layer.masksToBounds = true
- shareBtn.layer.cornerRadius = 2
- shareBtn.addTarget(self, action: #selector(shareAction), for: .touchUpInside)
- return shareBtn
- }()
-
-
- lazy var clearDataBtn: UIButton = {
- let clearDataBtn = UIButton(type: .custom)
- clearDataBtn.setBackgroundImage(UIImage(named: "22"), for: .normal)
- clearDataBtn.layer.masksToBounds = true
- clearDataBtn.layer.cornerRadius = 2
- clearDataBtn.addTarget(self, action: #selector(clearHistoryData), for: .touchUpInside)
- return clearDataBtn
- }()
-
- lazy var formView: SheetView = {
- let formView = SheetView()
- formView.delegate = self
- formView.dataSource = self
- formView.titleRowHeight = 63
- formView.titleColWidth = 143
- formView.backgroundColor = UIColor.white
- return formView
- }()
-
- lazy var chartsView: SBTChartsView = {
- let chartsView = SBTChartsView()
- return chartsView
- }()
-
-
- func fillCellData(_ weekData : [OneDayData]){
- self.dataArr?.removeAll()
-
- chartsView.fillChartsData(weekData)
-
-
- for i in 0..<weekData.count {
- let oneDay = weekData[i]
- var aDataArr : [String]? = [String]()
- aDataArr?.removeAll()
- let his_batteryVoltageMin = oneDay.his_batteryVoltageMin// 蓄电池最低电压
- let his_batteryVoltageMax = oneDay.his_batteryVoltageMax// 蓄电池最高电压
- let his_chargingCurrentMax = oneDay.his_chargingCurrentMax// 充电最大电流
- let his_chargingPowerMax = oneDay.his_chargingPowerMax// 充电最大功率
- let his_chargingAmpereHour = oneDay.his_chargingAmpereHour // 充电安时数
- let his_dischargeCurrentmax = oneDay.his_dischargeCurrentmax // 放电最大电流
- let his_dischargePowerMax = oneDay.his_dischargePowerMax// 放电最大功率
- let his_dischargeAmpereHour = oneDay.his_dischargeAmpereHour // 放电安时数
-
- let his_generationCapacity = String(format: "%.3f", Double(oneDay.his_generationCapacity!)! * 0.001)// 发电量
- let his_dischargeCapacity = String(format: "%.3f", Double(oneDay.his_dischargeCapacity!)! * 0.001)// 充电量
- //log.debug("发点量--- \(his_generationCapacity)放电量 === \(his_dischargeCapacity)")
- aDataArr?.append(his_batteryVoltageMin!)
- aDataArr?.append(his_batteryVoltageMax!)
- aDataArr?.append(his_chargingCurrentMax!)
- aDataArr?.append(his_chargingPowerMax!)
- aDataArr?.append(his_chargingAmpereHour!)
- aDataArr?.append(his_dischargeCurrentmax!)
- aDataArr?.append(his_dischargePowerMax!)
- aDataArr?.append(his_dischargeAmpereHour!)
- aDataArr?.append(his_generationCapacity)
- aDataArr?.append(his_dischargeCapacity)
-
-
- self.dataArr?.append(aDataArr!)
- //log.debug("一周数据 : \(self.dataArr!)")
-
- formView.reloadData()
-
- }
-
-
- }
- override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
- super.init(style: style, reuseIdentifier: reuseIdentifier)
- createUI()
- dayArr = [String]()
-
- let first = nowTime("yyyy-M-d")
- let second = getLastDay(first)
- let third = getLastDay(second)
- let foreth = getLastDay(third)
- let fifth = getLastDay(foreth)
- let sixth = getLastDay(fifth)
- let seventh = getLastDay(sixth)
- let eighth = getLastDay(seventh)
- dayArr?.append("Today".da_localizedStr())
- dayArr?.append("Yesterday".da_localizedStr())
- dayArr?.append(third.subString(start: 5))
- dayArr?.append(foreth.subString(start: 5))
- dayArr?.append(fifth.subString(start: 5))
- dayArr?.append(sixth.subString(start: 5))
- dayArr?.append(seventh.subString(start: 5))
- dayArr?.append(eighth.subString(start: 5))
-
- //
-
- }
-
- required init?(coder aDecoder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- override func awakeFromNib() {
- super.awakeFromNib()
- // Initialization code
-
- }
- override func setSelected(_ selected: Bool, animated: Bool) {
- super.setSelected(selected, animated: animated)
- // Configure the view for the selected state
- }
- override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
-
- }
-
- func createUI() {
- //toolBox 添加到scrollview上
- self.addSubview(self.toolBox)
- //添加按钮到toolBox上
- toolBox.addSubview(self.formBtn)
- toolBox.addSubview(self.barChartBtn)
- toolBox.addSubview(self.clearDataBtn)
- toolBox.addSubview(scaleBtn)
- toolBox.addSubview(shareBtn)
-
- formBtn.isSelected = true ///选择表格按钮
- scaleBtn.isHidden = true /// 放大按钮
- formView.isHidden = false /// 表格view
- chartsView.isHidden = true
- //布局
- formBtn.snp.makeConstraints { (make) in
- make.left.equalToSuperview().offset(25)
- make.top.equalToSuperview().offset(10)
- make.width.equalTo(100)
- make.height.equalTo(30)
- }
- barChartBtn.snp.makeConstraints { (make) in
- make.left.equalTo(formBtn.snp.right).offset(8)
- make.top.equalTo(formBtn.snp.top)
- make.width.equalTo(100)
- make.height.equalTo(30)
- }
- shareBtn.snp.makeConstraints { (make) in
- make.left.equalTo(barChartBtn.snp.right).offset(8)
- make.top.equalToSuperview().offset(10)
- make.width.height.equalTo(30)
- }
-
-
- clearDataBtn.snp.makeConstraints { (make) in
- make.left.equalTo(shareBtn.snp.right).offset(8)
- make.top.equalToSuperview().offset(10)
- make.width.height.equalTo(30)
- }
-
- scaleBtn.snp.makeConstraints { (make) in
- make.left.equalTo(clearDataBtn.snp.right).offset(8)
- make.top.equalToSuperview().offset(10)
- make.width.height.equalTo(30)
- }
- //添加表格视图
- self.addSubview(formView)
- self.addSubview(chartsView)
- formView.snp.makeConstraints { (make) in
- make.left.right.equalToSuperview()
- make.top.equalTo(toolBox.snp.bottom)
- make.height.equalTo(510)
- }
- chartsView.snp.makeConstraints { (make) in
- make.left.right.equalToSuperview()
- make.top.equalTo(toolBox.snp.bottom)
- make.height.equalTo(356)
- }
-
- }
-
- @objc func choseFormType(_ sender:UIButton) {
- log.debug("点击了呀 --- -")
- formBtn.isSelected = false
- barChartBtn.isSelected = false
- sender.isSelected = true
-
-
- //处理事件
- if formBtn.isSelected {
- log.debug("表格")
- scaleBtn.isHidden = true
- //shareBtn.isHidden = true
- formView.isHidden = false
- chartsView.isHidden = true
-
- changeViewCallBack!(false)
- //记录当前选择
- UserDefaults.standard.set("0", forKey: SBTHistoryDataChartOrFormSelected)
- UserDefaults.standard.synchronize()
- log.debug(" ++\(chartsView) ---- \(formView)")
- }
-
- if barChartBtn.isSelected {
- log.debug("柱状图")
-
- scaleBtn.isHidden = false
- // shareBtn.isHidden = false
- formView.isHidden = true
- chartsView.isHidden = false
- //记录当前选择
- UserDefaults.standard.set("1", forKey: SBTHistoryDataChartOrFormSelected)
- UserDefaults.standard.synchronize()
-
-
- }
-
- }
-
- //清除历史数据
- @objc func clearHistoryData() {
- log.debug("i清除历史数据")
- self.clearHistoryDataCallBack!()
- }
-
- //分享事件
- @objc func shareAction() {
- log.debug("分享")
- if self.formBtn.isSelected {
- self.shareFormViewCallback!()
- }
- if self.barChartBtn.isSelected == true {
- self.shareCallback!(chartsView)
- }
-
- }
-
- //横屏事件
- @objc func scaleAction() {
- log.debug("横屏")
-
- self.horizontalScreenCallback!()
- }
- }
- extension SBTHistoryDataCell: SheetViewDelegate,SheetViewDataSource{
-
- func sheetView(_ sheetView: SheetView!, heightForRowAt indexPath: IndexPath!) -> CGFloat {
- return 44.5
- }
-
- func sheetView(_ sheetView: SheetView!, widthForColAt indexPath: IndexPath!) -> CGFloat {
- return 55
- }
-
- func sheetView(_ sheetView: SheetView!, didSelectItemAtIndexRow indexRow: IndexPath!, indexCol: IndexPath!) {
- log.debug("点击了 row\(indexRow.row),col\(indexCol.row)")
- }
-
- func sheetView(_ sheetView: SheetView!, numberOfRowsInSection section: Int) -> Int {
- return 10
- }
-
- func sheetView(_ sheetView: SheetView!, numberOfColsInSection section: Int) -> Int {
- return 8
- }
-
- func sheetView(_ sheetView: SheetView!, cellForContentItemAtIndexRow indexRow: IndexPath!, indexCol: IndexPath!) -> String! {
- return self.dataArr![indexCol.row][indexRow.row]
- }
-
- func sheetView(_ sheetView: SheetView!, cellForLeftColAt indexPath: IndexPath!) -> String! {
- let rowArrs = ["Minimum_battery_voltage_of_the_day_(V)".da_localizedStr(),
- "Maximum_battery_voltage_of_the_day_(V)".da_localizedStr(),
- "Maximum_charge_current_of_the_day_(A)".da_localizedStr(),
- "Maximum_charge_power_of_the_day_(W)".da_localizedStr(),
- "Charge_amp_hours_of_the_day_(Ah)".da_localizedStr(),
- "Maximum_discharge_current_of_the_day_(A)".da_localizedStr(),
- "Maximum_discharge_power_of_the_day_(W)".da_localizedStr(),
- "Discharge_amp_hours_of_the_day_(Ah)".da_localizedStr(),
- "Power_generation_of_the_day_(kWh)".da_localizedStr(),
- "Discharge_amount_of_the_day_(kWh)".da_localizedStr()]
-
- return rowArrs[indexPath.row]
- }
-
- func sheetView(_ sheetView: SheetView!, cellForTopRowAt indexPath: IndexPath!) -> String! {
- return dayArr![indexPath.row]
- }
-
- func sheetView(_ sheetView: SheetView!, cellWithColorAtIndexRow indexRow: IndexPath!) -> Bool {
- return indexRow.row % 2 == 0 ? true : false
- }
-
-
- }
|