Blame view
App/commons/CellMucChupWithCamera.swift
6.38 KB
1341bf603
|
1 2 3 |
import Foundation import UIKit import GeneralUtils |
defd9642e
|
4 |
import Alamofire |
1341bf603
|
5 6 7 |
class CellMucChupWithCamera: BaseTableViewCellUI { var tvTitle: UILabel!, imv: UIImageView! |
defd9642e
|
8 |
var shootItem: ShootItem! |
1341bf603
|
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
static func registerClass(tableView: UITableView, forCellReuseIdentifier: String) { tableView.register(CellMucChupWithCamera.self, forCellReuseIdentifier: forCellReuseIdentifier) } override init(style: UITableViewCellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) initView() } required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) initView() } private func initView() { let stackView = UIStackView() stackView.axis = UILayoutConstraintAxis.horizontal stackView.translatesAutoresizingMaskIntoConstraints = false self.contentView.addSubview(stackView) NSLayoutConstraint.activate([stackView.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 8), stackView.leftAnchor.constraint(equalTo: contentView.leftAnchor, constant: 8), stackView.rightAnchor.constraint(equalTo: contentView.rightAnchor, constant: -8), stackView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -8)]) tvTitle = UILabel() tvTitle.numberOfLines = 0 stackView.addArrangedSubview(tvTitle) tvTitle.isUserInteractionEnabled = true let tapTitle = UITapGestureRecognizer(target: self, action: #selector(CellMucChupWithCamera.titleClick)) tvTitle.addGestureRecognizer(tapTitle) imv = UIImageView() imv.contentMode = .scaleAspectFit imv.isUserInteractionEnabled = true stackView.addArrangedSubview(imv) imv.widthAnchor.constraint(equalToConstant: 80).isActive = true imv.heightAnchor.constraint(equalToConstant: 60).isActive = true imv.image = #imageLiteral(resourceName:"camera_black_ic").imageWithInsets(insetDimen: 10) ?? #imageLiteral(resourceName:"camera_black_ic") let tap = UITapGestureRecognizer(target: self, action: #selector(CellMucChupWithCamera.btnImvClick)) imv.addGestureRecognizer(tap) } func titleClick() { guard let viewController = self.viewController else { return } if viewController is VCConfirmMucDaChon { return } |
defd9642e
|
54 55 56 |
if let imgs = shootItem.imgs, imgs.count > 0 { VCPageImgs.openController(viewController, imgObjs: imgs) } |
1341bf603
|
57 58 59 60 61 |
} func btnImvClick() { guard let viewController = self.viewController else { return } if viewController is VCConfirmMucDaChon { return } |
defd9642e
|
62 63 |
let cameraViewController = CameraViewController(croppingEnabled: false, allowsLibraryAccess: true) { image, asset in viewController.dismiss(animated: true, completion: nil) |
1341bf603
|
64 |
guard let image = image else { return } |
defd9642e
|
65 66 67 68 69 |
self.imv?.image = image guard let id = self.shootItem.id, let data = UIImageJPEGRepresentation(image, 1.0) else { return } let signboard = self.shootItem?.signboard ?? 1 self.uploadImage(id: id, signboard: signboard, data: data) |
1341bf603
|
70 71 72 73 74 75 76 |
} viewController.present(cameraViewController, animated: true, completion: nil) } override func configCellWithData(baseObj: Any, index: Int) { super.configCellWithData(baseObj: baseObj, index: index) |
defd9642e
|
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
shootItem = baseObj as! ShootItem tvTitle.text = shootItem.name if let imgs = shootItem.imgs, imgs.count > 0, let imgUrl = imgs[0].url { setImageUrl(imv: imv, imageUrl: imgUrl) } else { imv.image = #imageLiteral(resourceName:"camera_black_ic").imageWithInsets(insetDimen: 10) ?? #imageLiteral(resourceName:"camera_black_ic") } } //region upload ======= fileprivate func uploadImage(id: Int, signboard: Int, data: Data) { let tvProgress = SwiftOverlays.showBlockingWaitOverlayWithText(LocalizedString("Uploading") + ".....") Alamofire.upload(multipartFormData: { (multipartFormData: MultipartFormData) in multipartFormData.append(data, withName: "file", fileName: "file_\(DataTypeUtils.getCurrentTimeSecond()).jpg", mimeType: "image/jpeg") multipartFormData.append("\(id)".data(using: String.Encoding.utf8)!, withName: "idShooting") multipartFormData.append("\(signboard)".data(using: String.Encoding.utf8)!, withName: "signboard") // if let note = self.shootItem. { //multipartFormData.append("\(note)".data(using: String.Encoding.utf8)!, withName: "note") // } }, to: Constants.PathManager.ROOT_SERVER + "api/board/store", method: .post, encodingCompletion: { (encodingResult: SessionManager.MultipartFormDataEncodingResult) in switch encodingResult { case .success(let upload, _, _): upload.uploadProgress(closure: { progress in CommonUtils.excuteOnMainThread({tvProgress.text = (LocalizedString("Uploading") + " \(Int(progress.fractionCompleted * 100))%")}) }) .responseString { response in SwiftOverlays.removeAllBlockingOverlays() debugPrint("SUCCESS RESPONSE: \(response.result.value)") if let value = response.result.value{ let json = JSON.parse(value) if let isSuccess = json["isSuccess"].bool, isSuccess, let url = json["url"].string{ self.shootItem.addImg(img: ImgObj(url: url, signboard: signboard, date: nil, note: nil)) CommonUtils.showToastLong(text: LocalizedString("successful")) return } } self.handleError() } case .failure(let encodingError): SwiftOverlays.removeAllBlockingOverlays() self.handleError() print("ERROR RESPONSE: \(encodingError)") } }) } fileprivate func handleError() { //DialogUtils.showQuestion(messageParam: <#T##String?##Swift.String?#>, yesAction: <#T##@escaping () -> Void##@escaping () -> Swift.Void#>) |
1341bf603
|
125 |
} |
defd9642e
|
126 |
//endregion |
1341bf603
|
127 |
} |