lift_detail_page.dart 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403
  1. import 'dart:convert' as convert;
  2. import 'package:flutter/cupertino.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:liftmanager/common/common.dart';
  5. import 'package:liftmanager/common/user_db.dart';
  6. import 'package:liftmanager/internal/lift/model/lift_item.dart';
  7. import 'package:liftmanager/net/api_service.dart';
  8. import 'package:liftmanager/res/resources.dart';
  9. import 'package:liftmanager/routers/fluro_navigator.dart';
  10. import 'package:liftmanager/utils/toast.dart';
  11. import 'package:liftmanager/widgets/app_bar.dart';
  12. import 'package:liftmanager/widgets/click_item.dart';
  13. import '../lift_router.dart';
  14. class LiftDetailPage extends StatefulWidget {
  15. LiftDetailPage(this.projectId, this.id);
  16. final String projectId;
  17. final String id;
  18. @override
  19. State<StatefulWidget> createState() {
  20. return LiftDetailPageState();
  21. }
  22. }
  23. class LiftDetailPageState extends State<LiftDetailPage> {
  24. LiftItem item = LiftItem();
  25. @override
  26. void initState() {
  27. super.initState();
  28. getLiftDetail();
  29. getHasRole();
  30. }
  31. bool noRole = true;
  32. getHasRole() async {
  33. var role = await User().getCompanyRole();
  34. if (role == Constant.RoleAdmin ||
  35. role == Constant.RoleRegion ||
  36. role == Constant.RoleWork) {
  37. noRole = false;
  38. setState(() {});
  39. }
  40. }
  41. getLiftDetail() {
  42. ApiService(context: context).liftDetail(widget.projectId, widget.id,
  43. onSuccess: (res) {
  44. item = res;
  45. setState(() {});
  46. }, onError: (code, msg) {
  47. toasts(msg);
  48. });
  49. }
  50. @override
  51. Widget build(BuildContext context) {
  52. return WillPopScope(
  53. onWillPop: () {
  54. NavigatorUtils.goBackWithParams(context, true);
  55. return Future.value(false);
  56. },
  57. child: Scaffold(
  58. appBar: MyAppBar(
  59. centerTitle: "电梯详情",
  60. actions: <Widget>[
  61. Offstage(
  62. offstage: noRole || item.liftLocked,
  63. child: FlatButton(
  64. child: Text("编辑"),
  65. textColor: Colours.text,
  66. highlightColor: Colors.transparent,
  67. onPressed: () {
  68. String jsonString = convert.jsonEncode(item);
  69. NavigatorUtils.pushResult(context,
  70. "${LiftRouter.liftCreatePage}?id=${widget.projectId}&item=${Uri.encodeComponent(jsonString)}",
  71. (res) {
  72. if (res != null) {
  73. getLiftDetail();
  74. }
  75. });
  76. },
  77. ))
  78. ],
  79. ),
  80. body: ListView(
  81. children: allWidget(),
  82. ),
  83. ));
  84. }
  85. List<Widget> allWidget() {
  86. if (item.category == 0) return [];
  87. List<Widget> liftData = _commontHeader();
  88. if (item.category == 1) {
  89. liftData.addAll(_yeyintiList());
  90. } else if (item.category == 2) {
  91. liftData.addAll(_yeyatiList());
  92. } else if (item.category == 3) {
  93. liftData.addAll(_zawutiList());
  94. } else if (item.category == 4) {
  95. liftData.addAll(_ftList());
  96. } else if (item.category == 5) {
  97. liftData.addAll(_ftList());
  98. }
  99. liftData.addAll(_commontFooter());
  100. return liftData;
  101. }
  102. List<Widget> _commontHeader() {
  103. return [
  104. ClickItem(
  105. title: "设备注册代码",
  106. content: "${item.registrationCode}",
  107. ),
  108. ClickItem(
  109. title: "电梯类别",
  110. content: item.getCategoryName(),
  111. ),
  112. ClickItem(
  113. title: "地图位置",
  114. content: "${item.coordinate.length > 0 ? "已定位" : "未定位"}",
  115. onTap: () {
  116. if (item.coordinate.length == 0) return;
  117. print(item.coordinate);
  118. NavigatorUtils.push(
  119. context,
  120. "${LiftRouter.liftMapPage}?type=look&coordinate=" +
  121. item.coordinate);
  122. },
  123. ),
  124. ClickItem(
  125. title: "设备出厂编号",
  126. content: "${item.factoryCode}",
  127. ),
  128. ClickItem(
  129. title: "设备型号",
  130. content: "${item.liftModel}",
  131. ),
  132. ClickItem(
  133. title: "设备安装地址",
  134. content: "${item.devicePosition}",
  135. ),
  136. ClickItem(
  137. title: "设备内部编号",
  138. content: "${item.useCompanyCode}",
  139. ),
  140. ClickItem(
  141. title: "设备制造商",
  142. content: "${item.factory}",
  143. ),
  144. ClickItem(
  145. title: "进口设备代理商",
  146. content: "${item.agency}",
  147. ),
  148. ClickItem(
  149. title: "自定义编号",
  150. content: "${item.customNumber}",
  151. ),
  152. ClickItem(
  153. title: "设备出厂日期",
  154. content: "${item.manufactureDate}",
  155. ),
  156. ClickItem(
  157. title: "设备改造单位",
  158. content: "${item.reformCompany}",
  159. ),
  160. ClickItem(
  161. title: "设备改造日期",
  162. content: "${item.reformDate}",
  163. ),
  164. ClickItem(
  165. title: "设备安装单位",
  166. content: "${item.installCompany}",
  167. ),
  168. ClickItem(
  169. title: "设备安装日期",
  170. content: "${item.installDate}",
  171. ),
  172. ClickItem(
  173. title: "电梯维保负责人",
  174. content: "${item.workerName}",
  175. ),
  176. ClickItem(
  177. title: "设备用途",
  178. content: "${item.getDeviceUsageName()}",
  179. ),
  180. ClickItem(
  181. title: "品牌",
  182. content: "${item.liftBrandName}",
  183. ),
  184. ClickItem(
  185. title: "年检日期",
  186. content: "${item.annualInspectionDate}",
  187. )
  188. ];
  189. }
  190. _yeyintiList() {
  191. return [
  192. ClickItem(
  193. title: "显示楼层",
  194. content: "${item.innerFloor}",
  195. ),
  196. ClickItem(
  197. title: "曳引轮直径(mm)",
  198. content: "${item.pulleyDiameter}",
  199. ),
  200. ClickItem(
  201. title: "曳引绳根数",
  202. content: "${item.ropeNum}",
  203. ),
  204. ClickItem(
  205. title: "门锁型号",
  206. content: "${item.lockModel}",
  207. ),
  208. ClickItem(
  209. title: "层站门",
  210. content: "${item.layerStationDoor}",
  211. ),
  212. ClickItem(
  213. title: "安全钳类型",
  214. content:
  215. "${item.clampType == "1" ? '瞬时式安全钳' : item.clampType == "2" ? '渐进式安全钳' : ''}",
  216. ),
  217. ClickItem(
  218. title: "电梯载重",
  219. content: "${item.ratedLoad}",
  220. ),
  221. ClickItem(
  222. title: "提升高度",
  223. content: "${item.promoteHeight}",
  224. ),
  225. ClickItem(
  226. title: "电动机功率",
  227. content: "${item.motorPower}",
  228. ),
  229. ClickItem(
  230. title: "钢带",
  231. content: "${item.steelBelt}",
  232. ),
  233. ClickItem(
  234. title: "控制方式",
  235. content: "${item.controlType}",
  236. ),
  237. ClickItem(
  238. title: "额定速度",
  239. content: "${item.ratedSpeed}",
  240. ),
  241. ];
  242. }
  243. _yeyatiList() {
  244. return [
  245. ClickItem(
  246. title: "显示楼层",
  247. content: "${item.innerFloor}",
  248. ),
  249. ClickItem(
  250. title: "门锁型号",
  251. content: "${item.lockModel}",
  252. ),
  253. ClickItem(
  254. title: "电梯载重",
  255. content: "${item.ratedLoad}",
  256. ),
  257. ClickItem(
  258. title: "提升高度",
  259. content: "${item.promoteHeight}",
  260. ),
  261. ClickItem(
  262. title: "电动机功率",
  263. content: "${item.motorPower}",
  264. ),
  265. ClickItem(
  266. title: "额定速度",
  267. content: "${item.ratedSpeed}",
  268. ),
  269. ClickItem(
  270. title: "层站门",
  271. content: "${item.layerStationDoor}",
  272. ),
  273. ClickItem(
  274. title: "安全钳类型",
  275. content:
  276. "${item.clampType == 1 ? '瞬时式安全钳' : item.clampType == 2 ? '渐进式安全钳' : ''}",
  277. ),
  278. ClickItem(
  279. title: "控制方式",
  280. content: "${item.controlType}",
  281. ),
  282. ClickItem(
  283. title: "油缸数量",
  284. content: "${item.cylinderNum}",
  285. ),
  286. ClickItem(
  287. title: "油缸型式",
  288. content: "${item.cylinderType}",
  289. ),
  290. ClickItem(
  291. title: "顶升型式",
  292. content: "${item.topType}",
  293. ),
  294. ClickItem(
  295. title: "液压系统满负荷值",
  296. content: "${item.mpa}",
  297. ),
  298. ];
  299. }
  300. _zawutiList() {
  301. return [
  302. ClickItem(
  303. title: "显示楼层",
  304. content: "${item.innerFloor}",
  305. ),
  306. ClickItem(
  307. title: "门锁型号",
  308. content: "${item.lockModel}",
  309. ),
  310. ClickItem(
  311. title: "电梯载重",
  312. content: "${item.ratedLoad}",
  313. ),
  314. ClickItem(
  315. title: "提升高度",
  316. content: "${item.promoteHeight}",
  317. ),
  318. ClickItem(
  319. title: "电动机功率",
  320. content: "${item.motorPower}",
  321. ),
  322. ClickItem(
  323. title: "额定速度",
  324. content: "${item.ratedSpeed}",
  325. ),
  326. ClickItem(
  327. title: "层站门",
  328. content: "${item.layerStationDoor}",
  329. ),
  330. ClickItem(
  331. title: "安全钳类型",
  332. content:
  333. "${item.clampType == 1 ? '瞬时式安全钳' : item.clampType == 2 ? '渐进式安全钳' : ''}",
  334. ),
  335. ClickItem(
  336. title: "控制方式",
  337. content: "${item.controlType}",
  338. ),
  339. ClickItem(
  340. title: "钢带",
  341. content: "${item.steelBelt}",
  342. )
  343. ];
  344. }
  345. _ftList() {
  346. return [
  347. ClickItem(
  348. title: "电梯载重",
  349. content: "${item.ratedLoad}",
  350. ),
  351. ClickItem(
  352. title: "提升高度",
  353. content: "${item.promoteHeight}",
  354. ),
  355. ClickItem(
  356. title: "梯级宽度",
  357. content: "${item.stepWidth}",
  358. ),
  359. ClickItem(
  360. title: "人行道长度",
  361. content: "${item.sidewalkLength}",
  362. ),
  363. ClickItem(
  364. title: "倾斜角度",
  365. content: "${item.tiltAngle}",
  366. ),
  367. ClickItem(
  368. title: "电动机功率",
  369. content: "${item.motorPower}",
  370. ),
  371. ClickItem(
  372. title: "额定速度",
  373. content: "${item.ratedSpeed}",
  374. ),
  375. ];
  376. }
  377. _commontFooter() {
  378. return [
  379. ClickItem(
  380. title: "备注",
  381. content: "${item.remarks}",
  382. ),
  383. ];
  384. }
  385. }