123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- //
- // TSAIListHistoryBaseVC.swift
- // AIEmoji
- //
- // Created by 100Years on 2025/4/9.
- //
- class TSAIListHistoryBaseVC: TSBaseVC {
- var generatorStyle:TSGeneratorImageStyle
- var titleString:String?
- init(titleString:String? = nil,generatorStyle:TSGeneratorImageStyle) {
- self.titleString = titleString
- self.generatorStyle = generatorStyle
- super.init()
- }
- @MainActor required init?(coder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- var listModelArray: [TSActionInfoModel] = []
- //###################################### 集合视图 ######################################
- let collectionViewBtootm:CGFloat = 80
- lazy var collectionView: TSSimpleCollectionView = {
- let identifier = "TSAIListHistoryBaseCell"
-
- let itemW = (k_ScreenWidth-32.0-12.0-2.0)/2.0
- let itemH = kGetScaleHeight(originalSize: CGSize(width: 165.0, height: 293.0), width: itemW)
-
- let layout = UICollectionViewFlowLayout()
- let cp = TSSimpleCollectionView()
- cp.layout.itemSize = CGSize(width: itemW, height: itemH)
- cp.layout.minimumLineSpacing = 12
- cp.layout.minimumInteritemSpacing = 12
- cp.delegate = self
- cp.collectionView.contentInset = UIEdgeInsets(top: 16, left: 16, bottom: collectionViewBtootm, right: 16)
- cp.registerCell(TSAIListHistoryBaseCell.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()
-
- var titleString = "History".localized
- if let title = self.titleString {
- titleString = title
- }
- setPageTitle(titleString)
- 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()
- }
-
- 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()
- })
- }
-
- }
- extension TSAIListHistoryBaseVC: TSSimpleCollectionViewDelegate {
-
- func collectionView(didTrigger event: TSSmalCoacopods.TSSimpleCellEvent) {
- switch event.action {
- case .tap:
- let browseVC = TSAIPhotoBrowseVC()
- browseVC.dataModelArray = listModelArray
- browseVC.currentIndex = event.indexPath.item
- browseVC.deleteComplete = { [weak self] deleteModel in
- guard let self = self else { return }
- dbHistory.deleteListModel(id: deleteModel.id)
- updateDataView()
- }
- kPresentModalVC(target: self, modelVC: browseVC,transitionStyle: .crossDissolve)
- default:
- break
- }
- }
-
- }
- extension TSAIListHistoryBaseVC{
- func removeAllHistoryList(){
- dbHistory.delete()
- updateView()
- }
-
- var dbHistory:TSDBHistory{
- switch generatorStyle {
- case .ageOld:
- TSRMShared.oldAgeDBHistory
- case .ageChild:
- TSRMShared.babyAgeDBHistory
- case .oldPhoto:
- TSRMShared.oldPhotoDBHistory
- case .eyeOpen:
- TSRMShared.openEyesDBHistory
- case .pretty:
- TSRMShared.prettyDBHistory
- case .photoLive:
- TSRMShared.photoLiveDBHistory
- case .photoExpand:
- TSRMShared.photoExpandDBHistory
- case .photoQuality:
- TSRMShared.photoQualityDBHistory
- case .motherDay:
- TSRMShared.motherDayDBHistory
- }
- }
-
- }
|