import UIKit import Foundation import GeneralUtils import Alamofire class VcEdit: BaseViewControllerShowTransculent { @IBOutlet weak var root: UIView! @IBOutlet weak var tvTenCty: UILabel! @IBOutlet weak var tvTenCtruong: UILabel! @IBOutlet weak var tvListShootItem: UILabel! @IBOutlet weak var tvListWillShoot: UILabel! @IBOutlet weak var tvSignboard: UILabel! weak var tableViewListCtruong: UITableViewLoadDataFromUIThread? weak var vcShootItemList: VCShootItemList? var cTruong: CongTruong!; var isChangedCompany = false, isChangedConstruction = false, isChangedSignboard = false, isChangedshoot = false; static func openController(_ viewController: UIViewController, cTruong: CongTruong, tableViewListCtruong: UITableViewLoadDataFromUIThread?, vcShootItemList: VCShootItemList?) { BaseViewControllerShowTransculent.showTransculent(viewController, storyboardName: "Main", viewControllerIdentifier: "VcEdit", isDismisWhenTapOutSide: true, initBeforeLoad: { vc in if let vc = vc as? VcEdit { vc.cTruong = cTruong; vc.tableViewListCtruong = tableViewListCtruong; vc.vcShootItemList = vcShootItemList; } }) } override func viewDidLoad() { super.viewDidLoad() let tap = UITapGestureRecognizer.init(target: self, action: #selector(VcEdit.bgClick)) root.isUserInteractionEnabled = true root.addGestureRecognizer(tap) } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.updateState() } func updateState() { tvTenCty.text = cTruong.companyName tvTenCtruong.text = cTruong.constructionName if let signboard = cTruong.signboard, signboard > 0 { tvSignboard.text = "ON" } else { tvSignboard.text = "OFF" } tvListShootItem.text = cTruong.getShootItemsName(isWillshoot: false) tvListWillShoot.text = cTruong.getShootItemsName(isWillshoot: true) } @IBAction func tvTenCtyClick(_ sender: Any) { let dialog = DialogUtils.builderDialog(showCloseButton: false, showTitle: false) let edt = dialog.addTextField() edt.text = cTruong.companyName dialog.addButton(LocalizedString("OK"), action: { let result = (edt.text ?? ""); self.cTruong.companyName = result; self.isChangedCompany = true; self.updateState(); }) dialog.showTitle("", subTitle: "施工会社名", style: .edit) edt.becomeFirstResponder() } @IBAction func deleteClick(_ sender: Any) { let dialog = DialogUtils.builderDialog() dialog.addButton("消去する", action: { guard let id = self.cTruong.id else { return } let parameters: Parameters = [ "id": id, ] NetWorkUtils.excutePostTypeRawJSONEncoding(parameters: parameters, url: Constants.PathManager.ROOT_SERVER + "api/regulations/delete", isShowProgress: true, vc: self, responseStringParam: { response in guard let value = response.value else { return } println(response.value) let json = JSON.parse(value) if let isSuccess = json["isSuccess"].bool, isSuccess { guard let itemsData = self.tableViewListCtruong?.itemsData else { return } var count = 0; var indexFind = -1; for e in itemsData { if let ctr = e as? CongTruong, ObjectIdentifier(ctr) == ObjectIdentifier(self.cTruong) { indexFind = count; break; } count += 1; } if indexFind >= 0 { self.tableViewListCtruong?.itemsData.remove(at: indexFind); println("delete success: \(self.tableViewListCtruong != nil)") self.tableViewListCtruong?.reloadDataTableView(); self.dismiss(animated: false, completion: { UIApplication.topViewController()?.dismiss(animated: true) }) } return } else { CommonUtils.showToastLong(text: LocalizedString("Has_Error_occurred")) } }) }) dialog.showTitle("リスト消去", subTitle: "リストを消去すると全ての項目が消去されます", style: .warning, closeButtonTitle: "戻る") } @IBAction func boardSettingClick(_ sender: Any) { if cTruong.signboard == 1 { cTruong.signboard = 0 } else { cTruong.signboard = 1 } isChangedSignboard = true; updateState() } @IBAction func listWillShootClick(_ sender: Any) { VCChonMucChup.openControllerFromEdit(self, cTruong: self.cTruong); isChangedshoot = true; } @IBAction func listShootClick(_ sender: Any) { VCNhapMucChup.openControllerFromEdit(self, cTruong: self.cTruong); isChangedshoot = true; } @IBAction func cTruongClick(_ sender: Any) { let dialog = DialogUtils.builderDialog(showCloseButton: false, showTitle: false) let edt = dialog.addTextField() edt.text = cTruong.constructionName dialog.addButton(LocalizedString("OK"), action: { let result = (edt.text ?? ""); self.cTruong.constructionName = result; self.isChangedConstruction = true; self.updateState(); }) dialog.showTitle("", subTitle: "工事件名", style: .edit) edt.becomeFirstResponder() } override func getHeightContent() -> CGFloat { return self.view.bounds.height } override func isFullWidth() -> Bool { return true } @IBAction func whiteClick(_ sender: Any) { } func bgClick() { dismiss(animated: true) guard let id = self.cTruong.id else { return } if isChangedshoot { if let vcShootItemList = self.vcShootItemList { vcShootItemList.tableView.initAndLoadData(vcShootItemList) } var shootingItems = [Any]() if let shootItems = cTruong.shootItems { for item in shootItems { shootingItems.append(item.toDic()) } } let parameters: Parameters = [ "idRegulation": id, "shootingItems": shootingItems ] NetWorkUtils.excutePostTypeRawJSONEncoding(parameters: parameters, url: Constants.PathManager.ROOT_SERVER + "api/regulations/update/shooting", responseStringParam: { response in }); } var parameters: Parameters = [ "id": id ] if isChangedConstruction || isChangedCompany || isChangedSignboard { if isChangedConstruction{ parameters["constructionName"] = self.cTruong.constructionName!; } if isChangedCompany{ parameters["companyName"] = self.cTruong.companyName!; } if isChangedSignboard{ parameters["signboard"] = self.cTruong.signboard!; } NetWorkUtils.excutePostTypeRawJSONEncoding(parameters: parameters, url: Constants.PathManager.ROOT_SERVER + "api/regulations/update", responseStringParam: { response in }); } } }