123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- //
- // TSPTPHistoryVC.swift
- // AIEmoji
- //
- // Created by 100Years on 2025/4/26.
- //
- import UIKit
- class TSPTPHistoryVC: TSBaseVC {
- var listModelArray: [TSActionInfoModel] = []
- var dataChangedBlock:(()->Void)?
-
-
- enum Style {
- case ptp
- case ttp
- }
-
- var style:Style
- init(style: Style) {
- self.style = style
- super.init()
- }
- @MainActor required init?(coder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
- //###################################### 集合视图 ######################################
- let collectionViewBtootm:CGFloat = 80
- lazy var collectionView: TSSimpleCollectionView = {
- let identifier = "TSGenmojiItemCell"
- let headerIdentifier = "TSGenmojiColSectionView"
-
- let itemW = (k_ScreenWidth-32.0-12.0-2.0)/2.0
- let itemH = kGetScaleHeight(originalSize: CGSize(width: 165.0, height: 220.0), width: itemW)
- let layout = UICollectionViewFlowLayout()
- let cp = TSSimpleCollectionView()
- cp.delegate = self
- cp.layout.itemSize = CGSize(width: itemW, height: itemH)
- cp.layout.minimumLineSpacing = 12
- cp.layout.minimumInteritemSpacing = 12
- cp.collectionView.contentInset = UIEdgeInsets(top: 16, left: 16, bottom: collectionViewBtootm, right: 16)
- cp.registerCell(TSGenmojiItemCell.self,identifier:identifier)
- cp.cellIdentifierForItem = { data in
- return identifier
- }
- return cp
- }()
-
- lazy var pageNullView: TSPageNullView = {
- let pageNullView = TSPageNullView()
- pageNullView.isHidden = true
- return pageNullView
- }()
-
- override func createData() {
-
- }
-
- var navRightBtn = UIButton()
- override func createView() {
-
- addNormalNavBarView()
- setPageTitle("History".localized)
- navRightBtn = setNavigationItem("", imageName: "delete", direction: .right, action: #selector(clickNavRight))
-
- contentView.addSubview(pageNullView)
- contentView.addSubview(collectionView)
- collectionView.snp.makeConstraints { make in
- make.edges.equalToSuperview()
- }
- }
-
- override func dealThings() {
- updateDataView()
- NotificationCenter.default.addObserver(forName: .kGeneratePTPOperationChanged, object: nil, queue: nil) { [weak self] notification in
- guard let self = self else { return }
- if let userInfo = notification.userInfo as? [String: Any],let state = userInfo["state"] as? TSProgressState {
- dePrint("TSBaseOperation stateDatauPblished 收到 = \(state)")
- if state.reloadNewData {
- updateDataView()
- }
-
- }
- }
- }
-
- func updateDataView(){
- dbHistory.getModelList { [weak self] array in
- guard let self = self else { return }
- listModelArray = array
- updateView()
- }
- }
-
- func updateView() {
- collectionView.reload(with:[TSSimpleSectionData(items: listModelArray)])
-
- navRightBtn.isHidden = listModelArray.count <= 0
- pageNullView.isHidden = listModelArray.count > 0
- }
-
- @objc func clickNavRight() {
- showCustomAlert(message: "Are you sure to delete".localized, deleteHandler: {
- self.removeAllHistoryList()
- self.updateDataView()
- self.dataChangedNotification()
- })
- }
- }
- extension TSPTPHistoryVC: TSSimpleCollectionViewDelegate {
-
- func collectionView(didTrigger event: TSSmalCoacopods.TSSimpleCellEvent) {
- switch event.action {
- case .tap:
- guard let selectedModel = listModelArray.safeObj(At: event.indexPath.item) else { return }
- let dataModelArray = listModelArray.filter{$0.status == "success" || $0.modelType == .example}
- let browseVC = TSAIPhotoBrowseVC()
- browseVC.dataModelArray = dataModelArray
- browseVC.currentIndex = dataModelArray.firstIndex(of: selectedModel) ?? 0
- browseVC.deleteComplete = { [weak self] deleteModel in
- guard let self = self else { return }
- dbHistory.deleteListModel(id: deleteModel.id)
- updateDataView()
- dataChangedNotification()
- }
- kPresentModalVC(target: self, modelVC: browseVC,transitionStyle: .crossDissolve)
-
- case .buttonTapped(let string):
- if string == "delete_task_expired" {
- if let model = event.data as? TSActionInfoModel{
- dbHistory.deleteListModel(id: model.id)
- updateDataView()
- dataChangedNotification()
- }
- }
- default:
- break
- }
- }
-
- }
- extension TSPTPHistoryVC{
- func removeAllHistoryList(){
- TSGeneratePTPOperationQueue.shared.cancelAllOperations()
- dbHistory.delete()
- }
- }
- extension TSPTPHistoryVC{
-
- var dbHistory:TSDBHistory{
- switch style {
- case .ptp:
- return TSRMShared.ptpDBHistory
- case .ttp:
- return TSRMShared.ttpDBHistory
- }
- }
-
- func dataChangedNotification(){
- switch style {
- case .ptp:
- NotificationCenter.default.post(name: .kPTPDataChanged, object: nil)
- case .ttp:
- NotificationCenter.default.post(name: .kTTPDataChanged, object: nil)
- }
- }
- }
|